Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-04 - decus/20-0125/loader.lst
There are 2 other files named loader.lst in the archive. Click here to see a list.
MAIN. 	LOADER.FOR	FORTRAN V.5A(621) /KI	1-FEB-81	11:37	PAGE 1


00001	C  THIS PROGRAM IS USED TO PERFORM A DOWN LINE
00002	C  LOAD (EIGHT BIT) TO THE GT40. THE FIRST STEP
00003	C  IS TO LOAD A SMALL HANDLER FOR THE GT40 IN
00004	C  ORDER TO FACILITATE THE EIGHT BIT LOAD. THIS
00005	C  HANDLER IS SENT TO THE GT40 BOOTSTRAP BY
00006	C  SUBROUTINE INIT
00007	
00008	C	SUBPROGRAMS
00009	
00010	C	INIT	INITIALIZES THE GT40
00011	C	GETBLK	GETS A BLOCK FROM DISK
00012	C	GETBYT	GETS A BYTE FROM DISK
00013	C	SNDBLK	SENDS A BLOCK TO THE GT40
00014	C	LISTEN	LISTENS TO THE GT40 AFTER EACH TRANSFER
00015	C	GFIELD	BYTE RETRIEVAL ROUTINE
00016	C	SFIELD	BYTE STORAGE ROUTINE
00017	C		N.B. GFIELD & SFIELD AS DOCUMENTED PDP/10 ALGOL
00018	C	GETCHR	GETS AN ASCII BYTE FROM THE GT40
00019	C	SNDCHR	SENDS AN IMAGE BYTE TO THE GT40
00020	
00021		IMPLICIT INTEGER (A - Z)
00022		DIMENSION BLOCK (500)
00023		DATA DSK, LOG, BLKCT /20, 21, 0/
00024		DATA READY, ERROR, HALT, START /"122, "105, "110, "123/
00025		DATA LEFT, RIGHT /"133000000000, "135000000000/
00026	
00027	1	FORMAT(' FILENAME DIALOGUE:')
00028	2	FORMAT(1X,A1,'START OF GT40 LOADER LOG FILE (EIGHT BIT)',A1)
00029	3	FORMAT(' ? GT40 NOT INITIALIZED OR HANDLER TRANSFER FAILED')
00030	4	FORMAT(' %ATTEMPT #',I1,' CHECKSUM ERROR FOR BLOCK #',I2)
00031	5	FORMAT(' ? LOAD FAILS')
00032	6	FORMAT(1X,A1,'LOAD SUCCESSFUL, NO SELF START',A1)
00033	7	FORMAT(1X,A1,'LOAD SUCCESSFUL, PROGRAM STARTED',A1)
00034	8	FORMAT(' ? INVALID REPLY FROM GT40, LOADER IS HUNG')
00035	
00036		TYPE 1
00037		OPEN(UNIT=DSK, FILE='GIDUS.BIN', ACCESS='SEQIN',
00038		1    MODE='IMAGE', DIALOG)
00039		OPEN(UNIT=LOG, FILE='LOADER.LOG', ACCESS='SEQOUT')
00040		WRITE(LOG, 2) LEFT, RIGHT
00041		CALL INIT
00042		CALL LISTEN(STATUS)
00043		IF(STATUS .EQ. READY) GO TO 10
00044		WRITE(LOG, 3)
00045		CLOSE(UNIT=LOG)
00046		STOP
00047	10	BLKCT = BLKCT + 1
00048		ERRCT = 1
00049		CALL GETBLK(BLOCK, COUNT, BLKCT)
00050	20	CALL SDBLK8(BLOCK, COUNT)
00051		CALL LISTEN(STATUS)
00052		IF(STATUS .EQ. READY) GO TO 10
00053		IF(STATUS .NE. ERROR) GO TO 30
00054		WRITE(LOG, 4) ERRCT, BLKCT
00055		ERRCT = ERRCT + 1
00056		IF(ERRCT .LT. 10) GO TO 20
MAIN. 	LOADER.FOR	FORTRAN V.5A(621) /KI	1-FEB-81	11:37	PAGE 1-1


00057		WRITE(LOG, 5)
00058		CLOSE(UNIT=LOG)
00059		STOP
00060	30	IF(STATUS .EQ. HALT) WRITE(LOG,6) LEFT, RIGHT
00061		IF(STATUS .EQ. START) WRITE(LOG, 7) LEFT, RIGHT
00062		IF(STATUS .NE. HALT .AND. STATUS .NE. START) WRITE(LOG,8)
00063		CLOSE(UNIT=LOG)
00064		STOP
00065		END


SUBPROGRAMS CALLED

INIT
LISTEN	GETBLK	SDBLK8	

SCALARS AND ARRAYS [ "*" NO EXPLICIT DEFINITION - "%" NOT REFERENCED ]

 BLOCK	1	*ERRCT	765	*STATUS	766	*READY	767	*BLKCT	770	
*LOG	771	*RIGHT	772	*COUNT	773	*DSK	774	*ERROR	775	
*HALT	776	*START	777	*LEFT	1000	

TEMPORARIES



MAIN. 	[ NO ERRORS DETECTED ]