PAGE * * ******************************************* * * * * TEMPORARY STORAGE AREA * * OPER RES 1 DOS OPERATION * * DIRECTORY SEARCH PARAMETERS * DFC RES 2 FREE DIRECTORY ENTRY SECTOR ADDRESS DBUF RES 2 DIRECTORY ENTRY POINTER DCNT RES 1 DIRECTORY ENTRY COUNTER DRID RES 2 FILE ID TO SEARCH FOR * TBUFA RES 2 TRUE BUFFER ADDRESS (USED ALL OVER) * DISA RES 2 DISPATCH ADDRESS (SYS) * AFBT1 RES 1 SECTORS REQUIRED AFBT3 RES 2 TRACK MAP POINTER AFBT4 RES 1 START SECTOR AFBT6 RES 2 PBUF POINTER AFBTT RES 1 TRACK NUMBER * DABT1 RES 2 BUFFER ADDRESS DABT2 RES 2 BUFFER SIZE DABT3 RES 1 FCB COUNTER * * WBUFSZ RES 2 AUTO DEALLOCATION WBUFAD RES 2 * SFCT1 RES 1 COUNT FOUND SFCT2 RES 1 FCB COUNTER * LNKT1 RES 2 CURRENT SECTOR LNKT2 RES 2 BACK POINTER * * SOU RES 2 SOURCE (RWP) DEST RES 2 DESTINATION RWF RES 1 READ/WRITE FLAG LCNT RES 2 LOCAL COUNT DELFG RES 1 DELIMITER FLAG (0=>NONE,-1=>SEARCHING,1=>FND) * ETMP RES 2 FOR EOF ECRS RES 2 LAST BLOCK CLCNT EQU SOU CLOSE ALL FCB COUNTER RINAD RES 2 RANDOM INDEX ADDRESS (IN MEMORY) * LSECT RES 2 LAST SECTOR ADDRESS (DDRNB) * RFBCN RES 1 COUNT, (RFBLK) RFBC1 RES 1 COUNT, (RFBLK) * * XA RES 1 A FOR UTIL AND CI XHL RES 2 HL FOR UTIL XOPER RES 1 OPER FOR UTIL * RNPTR RES 2 RANDOM INDEX POINTER RNCNT RES 1 ENTRY COUNT CICNT RES 1 COUNTER (CI) CPNT RES 2 POINTER (CI) CECT EQU CPNT ECHO COUNT (CI) CERC EQU CICNT LINE POSITION (CI) FRAD2 RES 2 FOR OPEN XQFLG RES 1 EXECUTE FLAG FOR CI CONCH RES 1 CHARACTER READ BY CONIN OR CONOUT * * * PSCAN TEMPORARIES * PBASE DS 1 BASE CHARACTER OPT DS 1 OPTIONS UOBUF DS 2 USER OUTPUT BUFFER POINTER UIBUF DS 2 USER INPUT BUFFER POINTER CCLC EQU $ CHAR CT/LAST CHAR CC DS 1 CHARACTER COUNT LC DS 1 LAST CHARACTER ERSWC DS 2 AERR SAVE AREA RSTK DS 2 RETURN ADDRESS * * * VDM TEMPORARIES * SPEED RES 1 VDMAD RES 2 BOT RES 1 KNTT RES 1 * * * DISK DRIVER TEMPORARIES * DTRIES RES 1 DRIVER TRIES DSECN RES 1 DRIVER SECTOR COUNT DNERR RES 1 DRIVER WARP DTERR RES 1 TRACK ERROR COUNTER NOERR RES 1 VERIFY FLAG FOR ERRORS DRLEN RES 2 TRANSFER LENGTH HOLDER DOPER RES 1 DRIVER OPERATION RUNIT RES 1 TUNIT OVERLAP IMAGE CUNIT RES 1 CURRENT UNIT FOR OPERATIONS CTRCK RES 1 CURRENT TRACK FOR OPERATIONS * UNTAB RES 4 TRACK COUNT TABLE FOR EACH DRIVE * INTRT DS 2 FOR INTERRUPT PROCESSING RETURN INRET DS 2 INTERRUPT TEST ROUTINE ADDRESS DSKRT DS 2 SYSTEM STACK SAVE LOCATION DRVRT DS 2 DRIVER STACK SAVE LOCATION DSKRD DS 2 DRIVE NOT READY RETURN TRAP * PAGE * * ******************************************* * * * * SYSTEM BUFFERS * * * * DISK ALLOCATION BUFFER * DKBUF RES 77+77 TRACKS/DISK *2 * * NOTE: OUTPUT TRANSFERS EAT GARBAGE PAST THIS (UP TO 256) * * * * COMMAND INTERPRETER INPUT BUFFER * * (THIS BUFFER IS HERE TO SOLVE MEMORY PROTECT PROBLEMS) * CBUF RES NMLEN+2+1 * * * * DIRECTORY SEARCH BUFFER * DIBUF RES SECTSZ 256 BYTES * * * HEADER OFFSET VAUES FOR DIBUF * DINE EQU DIBUF NUMBER OF ENTRIES DIND EQU DIBUF+1 NEXT ENTRY DISPLACEMENT DRFDS EQU DIND+1 ADDRESS OF FIRST ENTRY * * * * NEXT FILE ID BUFFER * IDBUF RES NIDBC * * * * TRACK MAP BUFFER * TMBUF RES 16 FOR UNPACKED TRACK MAP * * * * COMMAND INTERPRETER STACK * CISS RES 50 FOR CI STACK CISTK EQU CISS+50 CI STACK * * * * DIRECTORY ENTRY BUFFER * DEBUF RES NMLEN NAME DETYP RES 1 TYPE DEBBS RES 2 BLOCK SIZE IN BYTES DEPRO RES 1 PROTECTION ATTRIBUTES DEFID RES 2 FILE ID DEINX RES 2 FILE INDEX DEFBA RES 2 FIRST BLOCK DISK ADDRESS DENBL RES 2 NUMBER OF BLOCKS DESPR RES 1 SPARE FOR EXPANSION * DRESZ EQU DESPR+1-DEBUF ENTRY SIZE * PAGE * * ******************************************* * * * * FCB ENTRY FORMAT, CURRENT FCB ENTRY * FCBORG RES 1 BEGINNING FTYPE EQU FCBORG FILE TYPE FBLKS RES 2 BLOCK SIZE FPROT RES 1 PROTECTION FID RES 2 FILE ID FINDX RES 2 INDEX ADDRESS FFBA RES 2 FIRST BLOCK ADDRESS FUNIT RES 1 UNIT FBUFA RES 2 BUFFER ADDRESS/UNBUFFERED FLAG FDLTA RES 2 DELTA ALLOCATION IN BLOCKS FDRIV RES 2 DRIVER POINTER FAIND RES 2 MEMORY ADDRESS OF FILE INDEX BLOCK OR -1 FNBD RES 2 NEXT BYTE DISPLACEMENT FBDL RES 2 BYTE DISPLACEMENT LIMIT FFLAG RES 1 DIRTY BLOCK FLAG FCURSC RES 2 CURRENT SECTOR ADDRESS FGSPR RES 1 GARYS SPARE FFORE RES 2 FORE POINTER FBACK RES 2 BACK POINTER FHID RES 2 ID FROM HEADER FPRST RES 1 PROTECTION/STATUS * * NOTES: * 1) FTYPE-FFBA MUST MATCH DETYP-DEFBA * 2) FFORE-FPRST MUST MATCH THE DISK HEADER * TSTV1 EQU FTYPE-FFBA TSTV2 EQU DETYP-DEFBA TSTV3 EQU FFORE-FPRST * * * LNFCB EQU FPRST+1-FCBORG FCB LENGTH * TSTV4 EQU LNFCB TSTV5 EQU FPRST+1-FCBORG * * THIS MUST AGREE OR ELSE! * PAGE * * ******************************************* * * * DISK INTERFACE CONTROL BLOCKS * * * TRANSFER DESCRIPTOR * TDAD EQU $ TSEC RES 1 SECTOR TTRK RES 1 TRACK. TBCNT RES 2 BYTE COUNT TFID RES 2 FILE ID TBUF RES 2 MEMORY ADDRESS TUNIT RES 1 DISK AND UNIT NUMBER * * * * INCOMING HEADER * IHEAD EQU $ IHSEC RES 1 SECTOR IHTRK RES 1 TRACK IHFOR RES 2 FORE POINTER IHBAK RES 2 BACK POINTER IHFID RES 2 FILE ID IHPRO RES 1 PROTECTION/BLOCK SIZE IHSIZ RES 2 BLOCK SIZE IHSPR RES 2 ROOM FOR EXPANSION * * * OUTGOING HEADER * OHEAD EQU $ OHSEC RES 1 SECTOR OHTRK RES 1 TRACK OHFOR RES 2 FORE POINTER OHBAK RES 2 BACK POINTER OHFID RES 2 FILE ID OHPRO RES 1 PROTECTION-SECTORS/BLOCK OHSIZ RES 2 BLOCK SIZE OHSPR RES 2 MORE EXPANSION ROOM * ENPAR EQU $ END OF THIS * * MARES EQU 0A002H SYSTEM RESIDENT WILL START HERE * PAGE * * ******************************************* * * * * FILE 0 FCB * * * THIS FILE IS THE SYSTEM CONSOLE. IT IS USED FOR * DEFAULT INPUT AND CANNOT BE CLOSED. * * * THE INITIAL FCB'S ARE ASSEMBLED HERE AND MOVED * TO FCB0 (THEIR PROPER PLACE) WHEN THE SYSTEM IS * BOOTSTRAPPED. * * ORG SP1 INITIALLY HERE * * * FILE '0'--C/I INPUT FILE * DB 255 TYPE IS DEVICE DW BUFT BLOCK SIZE DB PWRI WRITE PROTECTED KEYBOARD DW -1 ID DW 0 INDEX DW 0 FIRST BLOCK DB 0 UNIT DW FCB0-BUFT BUFFER ADDRESS DW 0 DELTA DW TDRIV TTY DRIVER DW -1 ALTERNATE INDEX DW 0 NBD DW 0 BDL DB 0 FLAG DW 0 CURRENT SECTOR DB 0 FGSPR DW EOFCD FORE = EOF DW BOFCD BACK = BOF DW -1 FILE ID DB 0 PROTECTION * * * * FILE '1'--CI OUTPUT FILE * DB 255 TYPE DW BUFT2 BLOCK SIZE DB PREA READ PROTECTED TYPER DW -1 IDENTIFICATION DW 0 INDEX DW 0 FBA DB 0 UNIT DW FCB0-BUFT-BUFT2 DW 0 DELTA DW TDRIV DRIVER DW -1 ALTERNATE INDEX ADDRESS DW 0 NBD DW 0 BDL DB 0 FLAG DW 0 CUR SECT DB 0 FGSPR DW EOFCD FORE DW BOFCD BACK DW -1 ID DB 0 PROT * * * * UTILITY FILE RESIDES HERE (FILE '2') *