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 STO P
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 ]