*20 //MOD4-8E /DECODE MODULE 4 /BLOCK 26 /CONTENTS / COMFL2 (COMFIL STARTER) / ENDCOM (COMFIL ENDER) / MAKDIL / DISK LODSYM /RK8E CODE. DSKP=6741 DCLR=6742 DLAG=6743 DLCA=6744 DRST=6745 DLDC=6746 DMAN=6747 /DF32 CODE. DCMA=6601 DMAR=6603 DMAW=6605 DCEA=6611 DEAL=6615 DFSE=6621 DFSC=6622 SEGMNT 4 *1400 4 ADD COMAND ADA I JMP .+4 STC .+2 STC COMAND JMP / JMP DODSK JMP MAKDL JMP GONORM JMP GOCOM / GOCOM, IOB 2 0 / IOB 6002 CLR AXO LDF 0 RDC 4050 RDC 5051 RDC 6052 RDC 7053 LDF 3 WRC 6056 RCG 3054 / / SET I 14 CURNUM SET I 17 FILE0-1 CLR LDF 3 / LDH 4\DILUN STA I 14 STA I 17 LDA DILBLK STA I 14 STA I 14 STA I 17 STA I 17 LDA I 4\3400+1 STA I 14 STA I 17 JMP GOUSER EJECT GONORM, IOB 2 0 IOB 6002 CLR AXO LDF 0 RDC 4000 RDC 5001 RDC 6002 RDC 7003 LIF 0 JMP 20 EJECT /ROUTINE TO MAKE A DIAL INDEX ENTRY /GET ARGUMENTS FROM USER CALL SEQUENCE / /GET DIAL NAME MAKDL, FETCH STC FDV+1 FETCH STC FDV+2 FETCH STC FDV+3 FETCH STC FDV+4 /GET TAPE UNIT AND FILE TYPE FETCH STC FDV ADD FDV BCL I 0777 /FILE TYPE AZE JMP .+4 /SOURCE LDA I /BINARY 2 /BINARY CODE JMP .+3 LDA I 23 /SOURCE CODE STC FDV+5 /FILE TYPE CODE ADD FDV BCL I 7770 STC FDV /TAPE UNIT /GET FILE LENGTH FETCH STC FDV+7 / /GET FRED; PUT IN DF 6 /FIRST SAVE DF 6 & 7 JMP SAV67 LDF 6 IOB 12 4036 IOB 12 5037 /JUMP TO FRED TO ENTER DIAL NAME /FIRST TURN OFF INTERRUPT IOB 6002 /IOF LDA I FDV LIF 6 JMP 22 /ENTER IN INDEX JMP EXISTS /FILE ALREADY EXISTS SKP /NO ROOM FOR FILE LV10, XSK I RETURN /NORMAL RETURN LV7, LDA FDV+6 /FILE BN STC COMNO /RETURN AC /TURN BACK ON INTERRUPT IOB 6001 /ION /RESTORE DF 6 & 7 AND RETURN TO USER JMP GET67 / /FILE ALREADY PRESENT /ASK IF WANT TO REPLACE EXISTS, TYPEC RMES /REPLACE? JMP DECOD /OPEN INPUT BUFFER / LDH INBUF SAE I 22 /R JMP LV7 /NO REPLACE, LEAVE /REPLACE FILE USING FRED /FIRST TURN OFF INTERRUPT IOB 6002 /IOF LIF 6 JMP 24 /REPLACE JMP LV7 /NO ROOM JMP LV10 /NORMAL RETURN / /PARAMETER LIST FOR FRED / FDV, 0 /TAPE UNIT NUMBER 0 /DIAL NAME 0 0 0 0 /FILE TYPE / 2 = BINARY / 23 = SOURCE 0 /STARTING BN / (FILLED BY FRED) 0 /NO. OF BLOCKS / /DISK HANDLER /CALL /READ=3, WRITE=5 /XCORE /CORE /XDISK /DISK /-N. WORDS 2S COMP / DODSK, FETCH /3 READ, 5 WRITE BSE I 6600 STC D32COM /DMAR, DMAW ADD D32COM ROL 11 BCL I 3777 STC RK8COM /DLAG FETCH /X CORE BCL I 7770 ROL 3 STA I CEXT, 0 /EX MEM BITS FETCH /CORE ADR STA I CORLOC, 0 PDP PMODE CLA CMA /AC=-1 TAD CORLOC LINC LMODE LDF 3 STA 3751 /WC FETCH /X DISK ADD RK8COM STC RK8COM FETCH /DISK ADR STC DADR CLR ADD DADR BCL I 7000 SCR 4 ROL 6 ADD CEXT STC DDEAL QAC ROL 1 STC D32ADR FETCH /-WC, 2S COMP LDF 3 STA 3750 /WC SCR 10 /DIV BY 256 STC DBLKS /CHECK TO SEE WHICH DISK IS UP. DF32 IS /DEFAULT. PDP PMODE CLA CMA /AC=7777 DRST /8E STATUS RTL /BIT 2 TO 0 JMP DF32 /NO 8E, ASSUME 32 /8E EXISTS, BUT IS IT ON. RTL /BIT 4 TO 0 SMA JMP RK8E /8E IS ON /DF32 RUNNER. DF32, CLA TAD DDEAL DEAL CLA TAD D32ADR D32COM, 0 /DMAR OR DMAW DFSC /DUN? JMP .-1 DFSE /ERRORS? JMP DF32 /YES, RETRY /OK, LEAVE. LVDSK, DCEA DCMA LINC LMODE JMP GOUSER PMODE /RK8E RUNNER. RK8E, DCLR /CLEAR STATUS DRST /WAIT TIL CLR SZA CLA JMP .-2 TAD CORLOC DLCA NXTBLK, TAD CEXT TAD RK8COM DLDC /COM GER TAD DADR DLAG /LOAD DSKADR & GO DSKP /DUN? JMP .-1 DRST /STATUS TO AC CLL RAL /CLR SUCCESS BIT SNA JMP MR8E /OK, NEXT BLK /8E ERROR ROUTINE. FIRST CHECK FOR SEEK /FAILED OR CYLINDER ADDRESS ERROR. RECAL /FOR THESE. BAD8E, AND K1002 /NOTE AC RAL SNA CLA JMP RK8E /OTHER, RETRY /RECAL & RETRY. DCLR /CLR STATUS STL RTL /AC=2 DCLR /RECAL DSKP /WAIT DUN JMP .-1 JMP RK8E /RETRY /ROUTINE TO SUBSEQUENT 8E BLKS. MR8E, ISZ DADR /BUMP DISK ADDR ISZ DBLKS /? DUN SKP JMP LVDSK /LEAVE, DUN TAD K1000 /MAKE WRITE ALL JMP NXTBLK /CONSTANTS & STOREAGE LOCATIONS. DADR, 0 DBLKS, 0 K1000, 1000 K1002, 1002 DDEAL, 0 D32ADR, 0 RK8COM, 0 LMODE AA4, 0 / / /MOD4-8E /OCT 75