Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | /IOPEN SUBROUTINE OS8 FORTRAN II LIBRARY |
2 | / | |
3 | / | |
4 | / | |
5 | / | |
6 | / | |
7 | / | |
8 | / | |
9 | / | |
10 | / | |
11 | /COPYRIGHT (C) 1974,1977 BY DIGITAL EQUIPMENT CORPORATION | |
12 | / | |
13 | / | |
14 | / | |
15 | / | |
16 | / | |
17 | / | |
18 | / | |
19 | / | |
20 | / | |
21 | / | |
22 | /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE | |
23 | /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT | |
24 | /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY | |
25 | /FOR ANY ERRORS THAT MAY APPEAR IN THIS MANUAL. | |
26 | / | |
27 | /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER | |
28 | /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED | |
29 | /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH | |
30 | /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. | |
31 | / | |
32 | /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE | |
33 | /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY | |
34 | /DIGITAL. | |
35 | / | |
36 | / | |
37 | / | |
38 | / | |
39 | / | |
40 | / | |
41 | / | |
42 | / | |
43 | / | |
44 | / | |
45 | \f/ VERSION 21A | |
46 | / VERSION NUMBER IS AVAILABLE AT ENTRY POINTS | |
47 | / SUBROUTINES TO MANIPULATE OS/8 FILES | |
48 | / | |
49 | ||
50 | ENTRY IOPEN /OPEN AN INPUT FILE | |
51 | ENTRY OOPEN /OPEN AN OUTPUT FILE | |
52 | ENTRY OCLOS /CLOSE AN OUTPUT FILE | |
53 | ENTRY CHAIN /CHAIN TO A PROGRAM | |
54 | ||
55 | OPDEF TADI 1400 | |
56 | OPDEF ISZI 2400 | |
57 | OPDEF DCAI 3400 | |
58 | OPDEF JMPI 5400 | |
59 | ||
60 | LAP /LEAVE AUTOMATIC PAGING - WE NEED THE 2 LOCATIONS | |
61 | ||
62 | IOER, 1117;0522 /"IOER" ERROR MESSAGE | |
63 | IOPEN, BLOCK 1 | |
64 | 21 | |
65 | TAD ASDVM1 | |
66 | JMS SETUP /PUT 2 WORDS OF FIRST ARGUMENT INTO "ASDEV" | |
67 | TADI INHNDL /DATA FIELD IS 0 HERE - GET INPUT HANDLER PAGE | |
68 | SNA | |
69 | JMP IOERR /NO /I GIVEN - ERROR | |
70 | DCAI 10 /STORE IN "ASPAGE" | |
71 | JMS GFILNM /MOVE FILE NAME INTO LOCS 00000-00003 | |
72 | TAD FLUKUP /LOAD POINTER TO "FLUKUP" IN RUN-TIME ROUTINES | |
73 | CALASN, 6202 /CIF 0 | |
74 | JMS I FASIGN /SET DF=CURRENT AND GO LOOKUP FILE | |
75 | RETRN IOPEN /** FASIGN SKIPS BUT SECOND WORD IS SMALL ** | |
76 | IOERR, CALL 1,ERROR /I-O ERROR - GIVE MESSAGE AND QUIT | |
77 | ARG IOER | |
78 | ||
79 | OOPEN, BLOCK 1 | |
80 | 21 | |
81 | JMS OOCOMN | |
82 | TAD FENTER | |
83 | JMP CALASN /SEE "IOPEN" FOR COMMENTS | |
84 | ||
85 | OOCOMN, 0 /COMMON SUBR BETWEEN "OOPEN" AND "OCLOS" | |
86 | TAD OOPEN | |
87 | DCA IOPEN | |
88 | TAD OOPEN# | |
89 | DCA IOPEN# /MOVE CALLING ADDRESS TO IOPEN | |
90 | TAD ASDVM1 | |
91 | JMS SETUP /SET UP DEVICE NAME IN FIELD 0 | |
92 | TADI OUHNDL | |
93 | SNA | |
94 | JMP IOERR /NO /O GIVEN - ERROR | |
95 | DCAI 10 /STORE IN "ASPAGE" | |
96 | JMS GFILNM /PUT FILE NAME INTO 00000-3 | |
97 | JMPI OOCOMN | |
98 | ||
99 | OCLOS, BLOCK 1 | |
100 | 21 | |
101 | JMS OOCOMN /SET UP DEVICE AND FILE NAME | |
102 | TAD OCLOS | |
103 | DCA IOPEN | |
104 | TAD OCLOS# | |
105 | DCA IOPEN# /SET UP IOPEN FOR RETURN | |
106 | TAD CHAIN /=7177 | |
107 | DCA OOCOMN | |
108 | OCLOOP, TAD CHAIN# /=1632 =^Z ON DEVICE 4 OUTPUT | |
109 | CALL 0,GENIO | |
110 | ISZ OOCOMN | |
111 | JMP OCLOOP /FORCE OUT THE LAST BUFFER | |
112 | TAD FCLOSE | |
113 | JMP CALASN /DO WORK AND LEAVE | |
114 | ||
115 | SETUP, 0 | |
116 | DCA 10 | |
117 | TAD IOPEN | |
118 | DCA SETDF | |
119 | SETDF, 0 /SET CALLING DATA FIELD | |
120 | TADI IOPEN# | |
121 | DCA GETWD# /SAVE FIELD OF ARGUMENT | |
122 | INC IOPEN# | |
123 | TADI IOPEN# | |
124 | DCA SETDF /SAVE ADDRESS OF ARGUMENT | |
125 | INC IOPEN# | |
126 | JMS GETWD /TRANSFER TWO WORDS FROM THE | |
127 | JMS GETWD /ARGUMENT LIST TO WHERE XR 10 POINTS | |
128 | JMPI SETUP /RETURN WITH DATA FIELD =0 | |
129 | ||
130 | GETWD, 0 | |
131 | NOP /SET ARGUMENT FIELD | |
132 | TADI SETDF | |
133 | INC SETDF | |
134 | 6201 /CDF 00 | |
135 | DCAI 10 | |
136 | JMPI GETWD /DO NOT RESTORE DATA FIELD | |
137 | ||
138 | GFILNM, 0 | |
139 | CLA CMA | |
140 | JMS SETUP /MOVE TWO WORDS TO 00000 AND 00001 | |
141 | JMS GETWD /MOVE THE THIRD WORD | |
142 | TAD DA | |
143 | DCAI 10 /SUPPLY AN EXTENSION | |
144 | JMPI GFILNM | |
145 | ||
146 | DA, 0401 /.DA EXTENSION | |
147 | INHNDL, 74 | |
148 | OUHNDL, 75 | |
149 | FASIGN, 541 /***************** | |
150 | ASDVM1, 552 / CAUTION! | |
151 | FLUKUP, 567 /ALL THESE LOCATIONS ARE VERY VOLATILE!! | |
152 | FENTER, 741 /WATCH OUT IF YOU REASSEMBLE THE LOADER! | |
153 | FCLOSE, 757 /***************** | |
154 | ||
155 | CHAIN, 7177 /USE "CHAIN" TO STORE CONSTANTS | |
156 | 1632 /SINCE IT IS ONLY CALLED TERMINALLY | |
157 | TAD CHAIN | |
158 | DCA IOPEN | |
159 | CALL 0,CKIO /WAIT FOR DEVICE | |
160 | TAD CHAIN# | |
161 | DCA IOPEN# | |
162 | JMS GFILNM /GET FILE NAME INTO 00000-00003 | |
163 | ISZI INHNDL /FORCE INHNDL NONZERO SO IOPEN WONT FAIL | |
164 | TAD SV /CHANGE ASSUMED EXTENSION | |
165 | DCA DA /FROM .DA TO .SV | |
166 | TAD (0310 | |
167 | DCA IOER /IF IOPEN FAILS GIVE "CHER" MESSAGE | |
168 | CALOPN, CALL 1,IOPEN | |
169 | ARG SYS /CHAIN WORKS FROM THE SYSTEMS DEVICE ONLY | |
170 | 6201 | |
171 | 0 /"ARG 0" POINTING TO 00000! | |
172 | TAD (6 | |
173 | 6201 /SET DF TO 0 | |
174 | DCAI K2 /MODIFY "LOOKUP" INTO "CHAIN" | |
175 | DCAI ZRONAM /ALSO KILL LOC WHICH ZEROS FILE NAME PTR | |
176 | JMP CALOPN /GO BACK - THIS TIME IOPEN WILL CHAIN. | |
177 | ||
178 | SYS, 2303 /***** 2303+2326 =4631 = "SYS"! WATCH IT! | |
179 | SV, 2326 | |
180 | K2, 571 /**** SUPER VOLATILE LOCATION **** | |
181 | ZRONAM, 557 /**** DITTO **** | |
182 | ||
183 | END | |
184 | \f |