/COPYRIGHT 1970, DIGITAL EQUIPMENT CORP., MAYNARD MASS. /8K FORTRAN LIBRARY /IOPEN.V01 / / SUBROUTINES TO MANIPULATE PS/8 FILES / ENTRY IOPEN /OPEN AN INPUT FILE ENTRY OOPEN /OPEN AN OUTPUT FILE ENTRY OCLOS /CLOSE AN OUTPUT FILE ENTRY CHAIN /CHAIN TO A PROGRAM OPDEF TADI 1400 OPDEF ISZI 2400 OPDEF DCAI 3400 OPDEF JMPI 5400 LAP /LEAVE AUTOMATIC PAGING - WE NEED THE 2 LOCATIONS IOER, 1117;0522 /"IOER" ERROR MESSAGE IOPEN, BLOCK 2 TAD ASDVM1 JMS SETUP /PUT 2 WORDS OF FIRST ARGUMENT INTO "ASDEV" TADI INHNDL /DATA FIELD IS 0 HERE - GET INPUT HANDLER PAGE SNA JMP IOERR /NO /I GIVEN - ERROR DCAI 10 /STORE IN "ASPAGE" JMS GFILNM /MOVE FILE NAME INTO LOCS 00000-00003 TAD FLUKUP /LOAD POINTER TO "FLUKUP" IN RUN-TIME ROUTINES CALASN, 6202 /CIF 0 JMS I FASIGN /SET DF=CURRENT AND GO LOOKUP FILE RETRN IOPEN /** FASIGN SKIPS BUT SECOND WORD IS SMALL ** IOERR, CALL 1,ERROR /I-O ERROR - GIVE MESSAGE AND QUIT ARG IOER OOPEN, BLOCK 2 JMS OOCOMN TAD FENTER JMP CALASN /SEE "IOPEN" FOR COMMENTS OOCOMN, 0 /COMMON SUBR BETWEEN "OOPEN" AND "OCLOS" TAD OOPEN DCA IOPEN TAD OOPEN# DCA IOPEN# /MOVE CALLING ADDRESS TO IOPEN TAD ASDVM1 JMS SETUP /SET UP DEVICE NAME IN FIELD 0 TADI OUHNDL SNA JMP IOERR /NO /O GIVEN - ERROR DCAI 10 /STORE IN "ASPAGE" JMS GFILNM /PUT FILE NAME INTO 00000-3 JMPI OOCOMN OCLOS, BLOCK 2 JMS OOCOMN /SET UP DEVICE AND FILE NAME TAD OCLOS DCA IOPEN TAD OCLOS# DCA IOPEN# /SET UP IOPEN FOR RETURN TAD CHAIN /=7177 DCA OOCOMN OCLOOP, TAD CHAIN# /=1632 =^Z ON DEVICE 4 OUTPUT CALL 0,GENIO ISZ OOCOMN JMP OCLOOP /FORCE OUT THE LAST BUFFER TAD FCLOSE JMP CALASN /DO WORK AND LEAVE SETUP, 0 DCA 10 TAD IOPEN DCA SETDF SETDF, 0 /SET CALLING DATA FIELD TADI IOPEN# DCA GETWD# /SAVE FIELD OF ARGUMENT INC IOPEN# TADI IOPEN# DCA SETDF /SAVE ADDRESS OF ARGUMENT INC IOPEN# JMS GETWD /TRANSFER TWO WORDS FROM THE JMS GETWD /ARGUMENT LIST TO WHERE XR 10 POINTS JMPI SETUP /RETURN WITH DATA FIELD =0 GETWD, 0 NOP /SET ARGUMENT FIELD TADI SETDF INC SETDF 6201 /CDF 00 DCAI 10 JMPI GETWD /DO NOT RESTORE DATA FIELD GFILNM, 0 CLA CMA JMS SETUP /MOVE TWO WORDS TO 00000 AND 00001 JMS GETWD /MOVE THE THIRD WORD TAD DA DCAI 10 /SUPPLY AN EXTENSION JMPI GFILNM DA, 0401 /.DA EXTENSION INHNDL, 74 OUHNDL, 75 FASIGN, 541 /***************** ASDVM1, 552 / CAUTION! FLUKUP, 567 /ALL THESE LOCATIONS ARE VERY VOLATILE!! FENTER, 741 /WATCH OUT IF YOU REASSEMBLE THE LOADER! FCLOSE, 757 /***************** CHAIN, 7177 /USE "CHAIN" TO STORE CONSTANTS 1632 /SINCE IT IS ONLY CALLED TERMINALLY TAD CHAIN DCA IOPEN TAD CHAIN# DCA IOPEN# JMS GFILNM /GET FILE NAME INTO 00000-00003 ISZI INHNDL /FORCE INHNDL NONZERO SO IOPEN WONT FAIL TAD SV /CHANGE ASSUMED EXTENSION DCA DA /FROM .DA TO .SV TAD (0310 DCA IOER /IF IOPEN FAILS GIVE "CHER" MESSAGE CALOPN, CALL 1,IOPEN ARG SYS /CHAIN WORKS FROM THE SYSTEMS DEVICE ONLY 6201 0 /"ARG 0" POINTING TO 00000! TAD (6 6201 /SET DF TO 0 DCAI K2 /MODIFY "LOOKUP" INTO "CHAIN" DCAI ZRONAM /ALSO KILL LOC WHICH ZEROS FILE NAME PTR JMP CALOPN /GO BACK - THIS TIME IOPEN WILL CHAIN. SYS, 2303 /***** 2303+2326 =4631 = "SYS"! WATCH IT! SV, 2326 K2, 571 /**** SUPER VOLATILE LOCATION **** ZRONAM, 557 /**** DITTO **** END