/INSYS.SB, PAGE 1 OF 3. (8/12/71 - C.M.MOORE, RICE U., HOUSTON) / /THIS FILE CONTAINS ENTRY POINTS: LSYS,RSYS,LINK. / /SEE THE LISTING OF FILE 'XPLAIN.IO' FOR A DETAILED EXPLANATION /OF HOW TO USE THESE ROUTINES. / /THE BINARY FILE OF THIS PACKAGE (INSYS.RL) OCCUPIES 1 PAGE OF /CORE, AND MUST NOT BE LOADED INTO LOCS 0000 TO 1777 OF FIELD 1. /THIS IS THE USR OVERLAY AREA. IF LOADED INTO THIS AREA, THESE /ROUTINES WILL TYPE FATAL MONITOR ERROR 4 WHEN CALLED. / OPDEF CIF0 6202 OPDEF CIF10 6212 OPDEF TADI 1400 OPDEF DCAI 3400 OPDEF JMSI 4400 OPDEF JMPI 5400 / LAP /DISABLE AUTOMATIC PAGING TO CONSERVE SPACE / P7700, 7700 /POINTS TO USR. ***MUST BE 1ST LOC ON PAGE*** P7607, 7607 /SYS DEVICE HANDLER ENTRY POINT IFILEP, INFILE P77, 77 P70, 70 P40, 40 M40, -40 / /ADDRES LOADS ARG ADDRESS FROM LSYS TO TEM ADDRES, 0 TAD I LSYS DCA CDFARG INC LSYS# TADI LSYS# DCA TEM INC LSYS# JMP I ADDRES /CHANGE TO CURRENT DF / /FETCH LOADS NEXT ARG AS SPECIFIED BY TEM FETCH, 0 CDFARG, HLT /CHANGE TO DF OF ARG TADI TEM JMP I FETCH /CHANGE TO CURRENT DF / /ENTRYP MOVES ENTRY POINT POINTERS TO LSYS, THEN FETCHES 1ST ARG. ENTRYP, 0 CLA CMA CLL RTL /SET AC=-3 TAD ENTRYP DCA FETCH TADI FETCH INC FETCH DCA LSYS TADI FETCH DCA LSYS# JMS ADDRES JMS FETCH JMPI ENTRYP / /INSYS.SB, PAGE 2 OF 3. / /SUBROUTINE LINK(IBLK1) ENTRY LINK LINK, BLOCK 2 JMS ENTRYP SPA JMP BADDF /NEGATIVE STARTING BLOCK # FOR .SV FILE DCA AMPS CIF10 JMSI P7700 6 /REQUEST 6 / /AMPS CONVERTS BLANKS(40) TO AMPERSANDS(00) IN BOTH CHARACTERS /OF THE WORD IN THE AC. AMPS, 0 /THIS LOC ALSO USED TO HOLD BLOCK # FOR LINK AND P77 TAD M40 SZA TAD P40 DCA LENTH JMS FETCH P200, AND P7700 CLL RAL SZA RAR TAD LENTH JMPI AMPS / /TYPE FATAL ERROR MESSAGE. (NEGATIVE IBLK1 FOR LINK, I/O ERROR IN RSYS.) /MESSAGE WILL READ: 'FILE ERROR AT LOC NNNNN' BADDF, CALL 1,ERROR ARG FILEMS / /FUNCTION LSYS(NAME,LENTH) ENTRY LSYS FILEMS, TEXT /FILE/ LSYS, BLOCK 2 JMS ENTRYP /GET 1ST WORD OF FILE NAME JMS AMPS DCAI IFILEP CLA CMA CLL RTL/SET AC=-3 DCA ADDRES TAD IFILEP DCA ENTRYP INGF, INC TEM /LOOP TO GET REMAINDER OF 4-WORD FILE NAME JMS FETCH JMS AMPS INC ENTRYP DCAI ENTRYP ISZ ADDRES JMP INGF JMS ADDRES /GET ADDRESS OF LENTH / /INSYS.SB, PAGE 3 OF 3. / /LOOK UP PERMANENT FILE TAD IFILEP /POINTS TO INPUT FILE NAME DCA INBNUM CIF10 CLA IAC /SYS DEVICE # == 1. JMSI P7700 2 /REQUEST 2 INBNUM, 0 /WILL BE OVERLAID WITH STARTING BLOCK # LENTH, 0 /NEGATIVE OF FILE LENGTH IN BLOCKS JMP INERR /FILE NOT FOUND TAD CDFARG DCA CDFAR2 TAD LENTH CIA CDFAR2, HLT /CHANGE TO DF OF ARG DCAI TEM /STORE LENGTH OF FILE IN BLOCKS TAD INBNUM /LOAD AC WITH STARTING BLOCK # JBACK, RETRN LSYS /ERROR. SET BLOCK # = -1. INERR, CLA CMA JMP JBACK / /SUBROUTINE RSYS(NUM,IBLK1,LOC1) ENTRY RSYS INFILE, BLOCK 2 /NEXT 4 LOCS HOLD INPUT FILE NAME RSYS, BLOCK 2 JMS ENTRYP /GET # OF PAGES SPA /CHECK FOR NEGATIVE # OF BLOCKS TAD M40 /SET UP TO WRITE INSTEAD OF READ SPA CIA CLL RTL RTL RTL DCA NBLKS JMS ADDRES JMS FETCH /GET STARTING BLOCK # DCA IBLK1 JMS ADDRES /GET ADDRESS OF LOC1 TAD CDFARG /GET FIELD OF LOC1 AND P70 TAD NBLKS /SET UP TO READ/WRITE NUM PAGES DCA NBLKS CIF0 JMSI P7607 /JUMP TO SYS HANDLER NBLKS, 0 /# OF PAGES TEM, LOC1, 0 /BUFFER ADDRESS IBLK1, 0 /STARTING BLOCK # JMP BADDF /FATAL I/O ERROR AAPAG1, JMP JBACK END