/ 21.B IOPEN SUBROUTINE OS8 V3D FORTRAN II LIBRARY / / 11-SEP-78 W. HOUBEN / / CALL IOPEN ( 'DEV' , 'FILENA' , 'EX' ) / / CALL OOPEN ( 'DEV' , 'FILENA' , 'EX' ) / / CALL OCLOS / / CALL CHAIN ( 'FILENA' ) / 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 / IOER, 1117; 0522 / "IOER" ERROR MESSAGE IOPEN, BLOCK 2 TAD ASDVM1 JMS SETUP / PUT 2 WORDS OF FIRST ARG INTO ASDVM1 JMS GETWD TADI INHNDL / DF IS 0 HERE - GET INPUT HANDLER SNA JMP IOERR / NO /I GIVEN - ERROR DCAI 10 / STORE IN "ASPAGE" JMS GFILNM / MOVE FILENAME INTO LOCS 0-2 CLA CLL IAC RAL / AC=2 JMS SETUP / MOVE EXTENSION TO LOC 3 TAD FLUKUP / LOAD POINTER TO "FLUKUP" IN RTS CALASN, 6202 / DF 00 JMS I FASIGN / SET DF=CUR 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 CALL ADDR TO IOPEN TAD ASDVM1 JMS SETUP / SETUP DEV NAME IN FLD 0 JMS GETWD / CHAR 2+3 TADI OUHNDL SNA JMP IOERR / NO /O GIVEN ERROR DCAI 10 / STORE IN "ASPAGE" JMS GFILNM / PUT FILENAME INTO 0-2 CLA CLL IAC RAL / AC=2 JMS SETUP / MOVE EXTENSION TO LOC 3 JMPI OOCOMN / OCLOS, BLOCK 2 JMS OOCOMN / SET UP DEV AND FILENAME TAD OCLOS DCA IOPEN TAD OCLOS# DCA IOPEN# / SET UP IOPEN FOR RETURN TAD CHAIN / =7177 DCA OOCOMN OCLOOP, TAD CHAIN# / =1632 =^Z ON LUN 4 OUTPUT CALL 0,GENIO ISZ OOCOMN JMP OCLOOP / FORCE OUT THE LAST BUFFER TAD FCLOSE JMP CALASN / DO THE WORK AND LEAVE / SETUP, 0 DCA 10 TAD IOPEN DCA SETDF SETDF, HLT / SET TO CALLING DF TADI IOPEN# DCA GETWD# / SAVE FLD OF ARG INC IOPEN# TADI IOPEN# DCA SETDF / SAVE ADDR OF ARG INC IOPEN# JMS GETWD / TRANSFER TWO WORDS FROM THE / ARG LIST TO WHERE XR10 POINTS JMPI SETUP / RETURN WITH DF 00 / GETWD, 0 HLT / SET TO ARG FLD TADI SETDF INC SETDF 6201 / CDF 00 DCAI 10 JMPI GETWD / DO NOT RESTORE DF / GFILNM, 0 CLA CMA JMS SETUP / MOVE TWO WORDS TO 0 & 1 JMS GETWD / MOVE THE SECOND WORD JMS GETWD / MOVE THE THIRD WORD JMPI GFILNM / INHNDL, 74 OUHNDL, 75 FASIGN, 541 ASDVM1, 552 FLUKUP, 567 FENTER, 741 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 FILENAME INTO 0-2 TAD SV DCAI 10 / MOVE EXTENSION TO LOC 3 ISZI INHNDL / FORCE INHNDL NONZERO SO IOPEN WONT FAIL TAD (0310 DCA IOER / IF IOPEN FAILS GIVE "CHER" MESSAGE CALOPN, CALL 1,IOPEN ARG SYS / CHAIN WORKS FROM SYS DEV ONLY 6201 / "ARG 0" POINTING TO 00000!! 0000 6201 / "ARG 3" POINTING TO 00003!! 0003 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 ZRONAM, 557 / END