.MACRO $DEF NAME, SUB, LABEL, ?L .ENABL LSB .EMIT <.WORD SUB> .EMIT <.WORD L> .IIF NB LABEL .EMITL LABEL .EMIT <.ASCIZ NAME> E.VEN .EMITL L .DSABL LSB .ENDM $DEF .MACRO $END .WORD ^O<-1> .ENDM $END MONCNT =: ^O<10000> ; Monitor size is 4K ; ; Driver interface ; XWCTR =: ^O<-62> ; Index to write counter XFLMOD =: ^O<-60> ; Index to file mode indicator XFLCNT =: ^O<-56> ; Index to file count XSVMAP =: ^O<-54> XSVCNT =: ^O<-52> XSVBLK =: ^O<-50> XSVNAM =: ^O<-46> ; Phony UFD block pointers XSVEXT =: ^O<-42> XSVDAT =: ^O<-40> XSVXX =: ^O<-36> X1STBK =: ^O<-34> XBKLGT =: ^O<-32> XLSTBK =: ^O<-30> XSVUPT =: ^O<-26> XBT =: ^O<-24> ; Index to boot routine DRT =: ^O<-22> ; Index to directory routine ZER =: ^O<-20> ; Index to zero routine DLT =: ^O<-16> ; Index to delete routine CLS =: ^O<-14> ; Index to close routine ETR =: ^O<-12> ; Index to enter routine SRH =: ^O<-10> ; Index to lookup routine ALC =: ^O<-6> ; Index to allocate routine XSV =: ^O<-4> ; Index to service routine (driver) XDN =: ^O<-2> ; Driver number index XCM =: ^O<0> ; Index to command register XWC =: ^O<2> ; Index to word count XBA =: ^O<4> ; Index to bus address XDT =: ^O<6> ; Index to block number XCO =: ^O<10> ; Index to command XRD =: ^O<12> ; Index to read command XWT =: ^O<14> ; Index to write command XBC =: ^O<16> ; Index to request block count XDR =: ^O<20> ; Index to 1st directory block pointer XNB =: ^O<22> ; Index to last block # allocated XXNAM =: ^O<24> ; Index to ASCII name in DDB .MACRO $PDDB1 PXBT, PDRT, PZER, PDLT, PCLS, PETR, PSRH, PALC, PXSV, PXDN .WORD PXBT ; -24 XBT - Index to boot routine .WORD PDRT ; -22 DRT - Index to directory routine .WORD PZER ; -20 ZER - Index to zero routine .WORD PDLT ; -16 DLT - Index to delete routine .WORD PCLS ; -14 CLS - Index to close routine .WORD PETR ; -12 ETR - Index to enter routine .WORD PSRH ; -10 SRH - Index to lookup routine .WORD PALC ; -6 ALC - Index to allocate routine .WORD PXSV ; -4 XSV - Index to service routine (driver) .WORD PXDN ; -2 XDN - Driver number index .ENDM $PDDB1 .MACRO $PDDB2 PXCM, PXWC, PXBA, PXDT, PXCO, PXRD, PXWT, PXBC, PXDR, PXNB .WORD ^O ; 0 XCM - Index to command register .WORD PXWC ; 2 XWC - Index to word count .WORD PXBA ; 4 XBA - Index to bus address .WORD PXDT ; 6 XDT - Index to block number .WORD PXCO ; 10 XCO - Index to command .WORD PXRD ; 12 XRD - Index to read command .WORD PXWT ; 14 XWT - Index to write command .WORD PXBC ; 16 XBC - Index to request block count .WORD PXDR ; 20 XDR - Index to 1st directory block pointer .WORD PXNB ; 22 XNB - Index to last block # allocated .ENDM $PDDB2 .MACRO $DDB L,?LB .ENABL LSB .IIF NDF DDB.LN .EMITL LB .WORD 0 ; -62 XWCTR - Index to write counter .WORD 0 ; -60 XFLMOD - Index to file mode indicator .WORD 0 ; -56 XFLCNT - Index to file count .WORD 0 ; -54 XSVMAP .WORD 0 ; -52 XSVCNT .WORD 0 ; -50 XSVBLK .WORD 0 ; -46 XSVNAM - Phony UFD block pointers .WORD 0 ; -44 .WORD 0 ; -42 XSVEXT .WORD 0 ; -40 XSVDAT .WORD 0 ; -36 XSVXX .WORD 0 ; -34 X1STBK .WORD 0 ; -32 XBKLGT .WORD 0 ; -30 XLSTBK .WORD 0 ; -26 XSVUPT $PDDB1 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .IIF NB .EMITL $PDDB2 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .BYTE 0, 0, 0, 0, 0, 0, 0, 0, 0 ; 24 XXNAM - Index to ASCII name in DDB .IIF NDF DDB.LN DDB.LN = .-LB E.VEN .DSABL LSB .ENDM $DDB .MACRO $FSDEF UFDB, UFDC, MAPB, MAPC, MFD1, MFD2, SIZE, PALL, IL, BOOTB, MONB, MFDRF .WORD ^D ; H2.UFD UFD .WORD ^D ; H2.DBC UFD count .WORD ^D ; H2.MAP MAP .WORD ^D ; H2.MBC MAP count .WORD ^D ; H2.MFD MFD1 .WORD ^D ; H2.VER MFD2 .WORD ^D ; H2.TOT SIZE .WORD ^D ; H2.RES # of blocks to preallocate at zero .WORD ^D ; H2.INT Interleave .WORD ^D ; H2.BOO Boot block # .WORD ^D ; H2.MON Monitor core image block # .IIF NB .WORD ^D ; MFD refresh flag .ENDM $FSDEF