.TITLE DATA .SBTTL COMMON DATA DEFINITIONS ;************************************************************************ ; ; FILE DESCRIPTORS ; ;************************************************************************ FSRSZ$ 6 ;6 POSSIBLE FILES OPEN AT ONCE OUTCIL::FDBDF$ ;FDB FOR OUTPUT CIL FILE FDRC$A FD.RWM ;BLOCK MODE FDBK$A ,512.,,1,CILER ;BLOCK = 512. BYTES FDOP$A 2,,OUTDST ;LUN = 2 CILER:: .BLKW 2 ;I/O ERROR BLOCK CILNAM::NMBLK$ ,CIL,,SY,0 ;DEFAULT SY0:*.CIL OUTDST::NMBLK$ ;GENERAL SPEC USED FOR SEVERAL FILES ; OUTLIL::FDBDF$ ;FDB FOR OUTPUT LIL FILE FDRC$A FD.RWM ;BLOCK MODE FDBK$A LILBUF,512.,,1,LILER ;BLOCK = 512. BYTES FDOP$A 3,,LILDST ;LUN = 3 LILBUF::.BLKW 256. ;OUTPUT LIL BUFFER LILER:: .BLKW 2 ;I/O ERROR BLOCK LILNAM::NMBLK$ ,LCL,,SY,0 ;DEFAULT SY0:*.LCL LILDST::NMBLK$ ;FINAL LIL FILENAME BLOCK ; OUTLST::FDBDF$ ;FDB FOR OUTPUT LIST FILE FDAT$A R.VAR,FD.CR,BUFSIZ ;VARIABLE RECORDS FDRC$A FD.PLC,, ;LOCATE MODE FDOP$A 6,,OUTDST ;LUN = 6 LSTNAM::NMBLK$ ,LST,,SY,0 ;DEFAULT SY0:*.LST TINAM:: NMBLK$ ,,,TI,0 ;TERMINAL DEFAULT ; PRIINP::FDBDF$ ;FDB FOR PRIMARY INPUT FILE FDRC$A FD.RWM ;BLOCK MODE FDBK$A PRIBUF,512.,,1,PRIER ;BLOCK = 512. BYTES FDOP$A 4,,PRIDST ;LUN = 4 PRIBUF::.BLKW 256. ;INPUT BUFFER PRIER:: .BLKW 2 ;I/O STATUS BLOCK LDANAM::NMBLK$ ,LDA,,SY,0 ;DEFAULT SY0:*.LDA PRIDST::NMBLK$ ;FINAL FILENAME BLOCK ; SECINP::FDBDF$ ;FDB FOR SECONDARY INPUT FILE FDRC$A FD.RWM ;BLOCK MODE FDBK$A PRIBUF,512.,,1,PRIER ;BLOCK = 512. BYTES FDOP$A 5,,SECDST ;LUN = 5 SECER:: .BLKW 2 ;I/O STATUS BLOCK SECDST::NMBLK$ ;FINAL FILENAME BLOCK .PAGE ;************************************************************************** ; ; COMMAND LINE MACROS ; ;************************************************************************** CMDL:: GCMLB$ 2,CIL,,1 ;GET COMMAND LINE CONTROL BLOCK ; CSI$ ;COMMAND INTERPRETTER CONTROL BLOCK CSIBLK::.BLKB C.SIZE .EVEN ;************************************************************************** ; ; SWITCH TABLE ; ;************************************************************************** FLAG:: .WORD 0 ;SWITCH FLAG WORD SWTAB:: CSI$SW SPL,SPL,FLAG,SET,NEG ;SPOOL OUTPUT CSI$SW BU,BU,FLAG,SET, ;BUILD A CIL OR LICIL CSI$SW ED,ED,FLAG,SET,,,EXACT ;EDITS CSI$SW LO,LO,FLAG,SET, ;LOAD A LICIL AS A CIL CSI$SW LI,LI,FLAG,SET, ;LIST DIRECTORY CSI$SW DI,DI,FLAG,SET, ;LIST DIRECTORY ALSO CSI$SW DU,DU,FLAG,SET, ;DUMP MODULE(S) CSI$SW E,E,FLAG,SET,,,EXACT ;END OF INPUTS CSI$SW BO,BO,FLAG,SET, ;BOOT (NOT FUNCTIONING) CSI$SW CT,CT,FLAG,SET, ;CASSETTE TAPE BOOT ADDED (NOT INCLD) CSI$SW HO,HO,FLAG,SET, ;HOOKS CIL TO BOOTSTRAP CSI$SW MT,MT,FLAG,SET,,MAG ;MAG TAPE BOOT ADDED CSI$SW PA,PA,FLAG,SET, ;PATCH MODULE(S) CSI$SW TA,TA,FLAG,SET,,TAP ;TAPES NUMBER FOR LICIL CSI$SW SI,SI,FLAG,SET,,SIZ ;MAX MODULE SIZE CSI$ND MAG: CSI$SV ASCII,MAGSTR,6 ;MT SWITCH VALUES CSI$ND TAP: CSI$SV DECIMAL,TAPNUM,2 ;TA SWITCH VALUE CSI$ND SIZ: CSI$SV OCTAL,MODSIZ,2 ;SI SWITCH VALUE CSI$ND MAGSTR::.BLKW 3 TAPNUM::.WORD 0 MODSIZ::.WORD 0 .PAGE ;************************************************************************** ; ; INPUT AND OUTPUT BUFFERS ; ;************************************************************************** INP:: .BLKB BUFSIZ ;INPUT BUFFER .EVEN OUT:: .BLKW BUFSIZ ;OUTPUT BUFFER FOR LISTING FILE INP2:: .BLKW 256. ;SPARE INPUT BUFFER FOR DUMPING ICMD:: .REPT ICNUM ;INDIRECT COMMAND BUFFER .BLKW 5 ;5 WORDS PER COMMAND ;1 = COMMAND CODE BITS ;2 = 1ST WORD OF NAME ;3 = 2ND WORD OF NAME ;4 = 1ST WORD OF IDENT ;5 = 2ND WORD OF IDENT .ENDR ICMDE:: ;END OF COMMAND BUFFER ;************************************************************************** ; ; CIL AND LICIL FILE HEADER FORMATS ; ;************************************************************************** CILHDR::.WORD 1 ;"1" .WORD 34 ;BYTE COUNT CILBLP::.WORD 0 ;BLOCK LOAD POINT .BYTE 3 ;FLAG A CIL .BYTE 10. ;# OF WORDS TO FOLLOW CILTIM::.WORD 0,0 ;TIME CILDAT::.WORD 0 ;DATE .WORD BLKSIZ ;BLOCK SIZE CILCIC::.WORD 0 ;# OF CORE IMAGES CILISZ::.WORD 0 ;INDEX BUFFER SIZE IN BYTES CILBK1::.WORD 0 ;# OF BLOCKS IN CIL CILBK2::.WORD 0 ;# OF BLOCKS REQUIRED IN CIL CILBK3::.WORD 0 ;# OF 64. WORD BLOCKS CILBK4::.WORD 0 ;# OF 256. WORD BLOCKS CILLEN = .-CILHDR ;LENGTH OF HEADER ; LILHDR::.WORD 1 ;"1" .WORD 12 ;BYTE COUNT LILBLP::.WORD 0 ;BLOCK LOAD POINT .BYTE 4 ;FLAG AN LCL .BYTE 1 ;# OF WORDS TO FOLLOW .WORD 1 ; LILLEN = .-LILHDR ;LENGTH .PAGE ;************************************************************************** ; ; ARGUMENT BUFFER ; ;************************************************************************** ARG:: .WORD 0 ;ARGUMENT BLOCK ARG2:: .WORD 0 ; ARG3:: .WORD 0 ; ARG4:: .WORD 0 ; ARG5:: .WORD 0 ; ARG6:: .WORD 0 ; ARG7:: .WORD 0 ; ARG8:: .WORD 0 ; ARG9:: .WORD 0 ; ARG10:: .WORD 0 ; ARG11:: .WORD 0 ; .WORD 0,0,0,0,0 ; ;************************************************************************** ; ; MISC DATA DEFINITIONS ; ;************************************************************************** BLOCK:: .WORD 0 ;RELATIVE BLOCK # OF CORE IMAGE NAME:: .WORD 0,0,0 ;NAME OF FILE DESIRED (EDIT,DUMP) LADR:: .WORD 0 ;LOAD ADDRESS SIZE:: .WORD 0 ;SIZE YEAR:: .WORD 0 ;YEAR OFFSET BECAUSE OF LNK ERROR LCLFLG::.WORD 0 ;FLAG THAT LCL HAS BEEN SPECIFIED PRIFLG::.WORD 0 ;PRIMARY INPUT FILE FLAG ; NEGATIVE MEANS WE GOT ONE ; -1 = LDA TYPE ; -2 = LICIL TYPE ; -3 = CIL TYPE SECFLG::.WORD 0 ;SECONDARY FILE FLAG (SAME AS ABOVE) CODE:: .WORD 0 ;COMMAND CODE WORD STORAGE INXSIZ::.WORD 0 ;INDEX BUFFER SIZE IN BLOCKS CKSUM:: .WORD 0 ;COMMON CHECKSUM STORAGE LCLPTR::.WORD 0 ;LICIL BUFFER POINTER STORAGE .PAGE ;************************************************************************** ; ; THE INITIAL JUMP TO GET US STARTED ; ;************************************************************************** BEGIN:: JMP START ;LET'S GO!!! RESTAR::CALL CLOSE ;CLOSE ANY OPEN FILES JMP RESTRT ;LET'S TRY AGAIN!! LSTDIR::JMP DIRECT ;GO PROCESS LIST DIRECTORY DMPMOD::PROMPT 'C,'D,'U ;DUMP CALL INDCMD ;PROCESS INDIRECT COMMANDS CALL DIRECT ;BANNER IS SAME AS LI OR DI JMP DUMP ;PROCESS DUMP COMMAND LOD:: JMP LOAD ;PROCESS LOAD EDT:: PROMPT 'C,'E,'D ;EDIT CALL INDCMD ;PROCESS INDIRECT COMMANDS JMP EDIT ;PROCESS EDIT PAT:: PROMPT 'C,'P,'A ;PATCH JMP PATCH ;PROCESS PATCH BLD:: JMP BUILD ;PROCESS BUILD MKE:: JMP MAKE ;BUILD THE CIL FORE IMAGES .END BEGIN