Cleanup of typos.
[retro-software/dec/tops10/v1.19.git] / src / m140.lst
1 LPTSPL Version 3(105)  Running on LPT000\r
2  **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
3 \13   \r
4 \13   \r
5 \13   \r
6 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
7 \13   \r
8 \13   \r
9 \13   \r
10 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
11 \13   \r
12 \13   \r
13 \13   \r
14 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
15 \13   \r
16 \13   \r
17 \13   \r
18 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
19 \13   \r
20 \13   \r
21 \13   \r
22 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
23 \13   \r
24 \13   \r
25 \13   \r
26 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
27 \13   \r
28 \13   \r
29 \13   \r
30 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
31 \13   \r
32 \13   \r
33 \13   \r
34 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
35 \13   \r
36 \13   \r
37 \13   \r
38 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
39 \13   \r
40 \13   \r
41 \13   \r
42 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
43 \13   \r
44 \13   \r
45 \13   \r
46 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
47 \13   \r
48 \13   \r
49 \13   \r
50 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
51 \13   \r
52 \13   \r
53 \13   \r
54 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
55 \13   \r
56 \13   \r
57 \13   \r
58 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
59 \13   \r
60 \13   \r
61 \13   \r
62 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
63 \13   \r
64 \13   \r
65 \13   \r
66 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
67 \13   \r
68 \13   \r
69 \13   \r
70 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
71 \13   \r
72 \13   \r
73 \13   \r
74 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
75 \13   \r
76 \13   \r
77 \13   \r
78 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
79 \13   \r
80 \13   \r
81 \13   \r
82 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
83 \13   \r
84 \13   \r
85 \13   \r
86 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
87 \13   \r
88 \13   \r
89 \13   \r
90 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
91 \13   \r
92 \13   \r
93 \13   \r
94 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
95 \13   \r
96 \13   \r
97 \13   \r
98 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
99 \13   \r
100 \13   \r
101 \13   \r
102 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
103 \13   \r
104 \13   \r
105 \13   \r
106 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
107 \13   \r
108 \13   \r
109 \13   \r
110 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
111 \13   \r
112 \13   \r
113 \13   \r
114 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
115 \13   \r
116 \13   \r
117 \13   \r
118 \13 **START** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:31 Address: **** UNKNOWN ****    \r
119 \13   \r
120 \13   \r
121 \13   \r
122 \13\f   CCCCCCCCCCCC      DDDDDDDDDDDD         RRRRRRRRRRRR            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
123    CCCCCCCCCCCC      DDDDDDDDDDDD         RRRRRRRRRRRR            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
124    CCCCCCCCCCCC      DDDDDDDDDDDD         RRRRRRRRRRRR            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
125 CCC                  DDD         DDD      RRR         RRR      SSS                  EEE                  RRR         RRR\r
126 CCC                  DDD         DDD      RRR         RRR      SSS                  EEE                  RRR         RRR\r
127 CCC                  DDD         DDD      RRR         RRR      SSS                  EEE                  RRR         RRR\r
128 CCC                  DDD         DDD      RRR         RRR      SSS                  EEE                  RRR         RRR\r
129 CCC                  DDD         DDD      RRR         RRR      SSS                  EEE                  RRR         RRR\r
130 CCC                  DDD         DDD      RRR         RRR      SSS                  EEE                  RRR         RRR\r
131 CCC                  DDD         DDD      RRRRRRRRRRRR            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
132 CCC                  DDD         DDD      RRRRRRRRRRRR            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
133 CCC                  DDD         DDD      RRRRRRRRRRRR            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
134 CCC                  DDD         DDD      RRR   RRR                        SSS      EEE                  RRR   RRR      \r
135 CCC                  DDD         DDD      RRR   RRR                        SSS      EEE                  RRR   RRR      \r
136 CCC                  DDD         DDD      RRR   RRR                        SSS      EEE                  RRR   RRR      \r
137 CCC                  DDD         DDD      RRR      RRR                     SSS      EEE                  RRR      RRR   \r
138 CCC                  DDD         DDD      RRR      RRR                     SSS      EEE                  RRR      RRR   \r
139 CCC                  DDD         DDD      RRR      RRR                     SSS      EEE                  RRR      RRR   \r
140    CCCCCCCCCCCC      DDDDDDDDDDDD         RRR         RRR      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
141    CCCCCCCCCCCC      DDDDDDDDDDDD         RRR         RRR      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
142    CCCCCCCCCCCC      DDDDDDDDDDDD         RRR         RRR      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
143 \r
144 \r
145 \r
146 \r
147 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
148 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
149 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
150 LLL                  SSS                        TTT                                                                     \r
151 LLL                  SSS                        TTT                                                                     \r
152 LLL                  SSS                        TTT                                                                     \r
153 LLL                  SSS                        TTT                                                                     \r
154 LLL                  SSS                        TTT                                                                     \r
155 LLL                  SSS                        TTT                                                                     \r
156 LLL                     SSSSSSSSS               TTT                                                                     \r
157 LLL                     SSSSSSSSS               TTT                                                                     \r
158 LLL                     SSSSSSSSS               TTT                                                                     \r
159 LLL                              SSS            TTT                                                                     \r
160 LLL                              SSS            TTT                                                                     \r
161 LLL                              SSS            TTT                                                                     \r
162 LLL                              SSS            TTT                                                                     \r
163 LLL                              SSS            TTT                                                                     \r
164 LLL                              SSS            TTT                                                                     \r
165 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
166 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
167 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
168 \r
169 \r
170 \r
171 \r
172 Request created: 24-April-1978  05:53:58\r
173 File: DSKB0 :CDRSER.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:31\r
174 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1992 \r
175 File will be deleted after printing\r
176 \f\r
177 CDRSER - CARD READER SERVICE    MACRO 10 05:51 24-APR-78 PAGE 1\r
178 S       MAC     24-APR-78 21:40         8-2-65\r
179 \r
180                                         XLIST\r
181                                        LIST\r
182                                 TITLE CDRSER - CARD READER SERVICE\r
183                                 SUBTTL  8-2-65\r
184                                 EXTERNAL STODAT, ADVBFF, IOSET, SETIOD, SETBYT, STOSQD\r
185                                 EXTERNAL CDRSAV, CDRCHN,  CDRRET,ILLOUT,PIOMOD\r
186                                 INTERNAL CDRINT\r
187 \r
188                                 ;DEVICE DATA BLOCK LINKAGE\r
189                                 EXTERNAL CDRDB,CDRDAT,CRDIS\r
190                                 ENTRY CDRDSP\r
191 \r
192 \fCDRSER - CARD READER SERVICE   MACRO 10 05:51 24-APR-78 PAGE 2\r
193 CDRSER  MAC     24-APR-78 21:33         8-2-65\r
194 \r
195 \r
196 \r
197 \r
198                                 ,CDR PARAMETER ASSIGNMENTS\r
199 \r
200                                 ,   CDR CONTROL REGISTER\r
201                         000010            CRDONE=10;            DONE FLAG\r
202                         000020            CRBUSY=20;            BUSY FLAG\r
203                         000040            CRBIN=40;             BINARY\r
204                         000100            CRALL=100;            ALL FLAG\r
205                         000200            CRMISS=200;           DATA MISSED\r
206                         000400            CREOC=400;            END OF CARD\r
207                         001000            CREOFF=1000;          END OF FILE\r
208                         002000            CRERR=2000;           ERROR\r
209                         000002            CHCHN=2\r
210                                 ,   ACCUMULATORS\r
211                         000010            CRDAT1=TEM\r
212                         000011            CRAC=JDAT\r
213 \r
214                                 ,   SPECIAL IO STATUS WORD ASSIGNMENTS\r
215                         004000            CRMFST=40000;         FIRST CARD\r
216                         020000            CRMBIN=200000;                BINARY\r
217                         010000            CRMIMG=100000;                IMAGE\r
218                                 ,   SPECIAL CHARACTERS\r
219                         000032            S2EOF=32;             END OF FILE\r
220 \r
221                                 REPEAT 0,<\r
222                                 ,CDR DATA BLOCK\r
223                                 \r
224                                 CDRDAT:   SIXBIT /CRD\r
225                                  34\r
226                                  0\r
227                                  EXP CDRDSP\r
228                                  XWD 1400+PROG,10403\r
229                                  0\r
230                                  0 \r
231                                  XWD PROG,0\r
232                                  0\r
233                                  0\r
234                                 CRDIS:    JRST .\r
235                                 >\r
236 \r
237                                 ,CDR SERVICE DISPATCH TABLE\r
238 \r
239         000000' 715200  000000  CDRDSP:   CONO CR,0 ;RELEASE\r
240         000001' 263140  000000            POPJ PDP,;            CLOSE\r
241         000002' 254000  000000*           JRST ILLOUT           ;OUTPUT\r
242         000003' 254000  000004'           JRST CRINP;           INPUT\r
243 --- Page break\r
244 - 2 blank\r
245         000004' 621000  000002  CRINP:    TLZ IOS,IOBEG;        VIRGIN DEVICE?  IOBUF:=0\r
246 \r
247         000005' 661000  004004  CDRIN1:   TLO IOS,IOFST+CRMFST;         IOFST:=CRMFST:=1\r
248         000006' 135040  000000*           LDB TAC,PIOMOD\r
249 \r
250 \fCDRSER - CARD READER SERVICE   MACRO 10 05:51 24-APR-78 PAGE 2-1\r
251 CDRSER  MAC     24-APR-78 21:33         8-2-65\r
252 \r
253         000007' 306040  000014            CAIN TAC,B;           MODE=BINARY?\r
254         000010' 661000  020000            TLO IOS,CRMBIN;       YES.  CRMBIN:=1\r
255         000011' 306040  000010            CAIN TAC,I;           MODE=IMAGE?\r
256         000012' 661000  100000            TLO IOS,CRMIMG;       YES.  CRMIMG:=1\r
257         000013' 660000  010000            TRO IOS,IOACT;        IOACT:=1\r
258         000014' 202006  000002            MOVEM IOS,DEVIOS(DEVDAT)\r
259         000015' 260140  000000*           PUSHJ PDP,SETBYT;     TAC0-5:=TAC12-13:=0; TAC6-11:=BYTE SIZE\r
260         000016' 202046  000010            MOVEM TAC,DEVPTR(DEVDAT)\r
261         000017' 201040  000000*           MOVEI TAC, CDRCHN;    ASSIGN PI CHANNEL\r
262         000020' 715201  000160            CONO CR,CRBIN+CRALL+CRBUSY(TAC);              SELECT BINARY, ALL\r
263         000021' 263140  000000            POPJ PDP,;            RETURN\r
264 \r
265 \fCDRSER - CARD READER SERVICE   MACRO 10 05:51 24-APR-78 PAGE 3\r
266 CDRSER  MAC     24-APR-78 21:33         8-2-65\r
267 \r
268 --- two blank\r
269         000022' 715340  000010  CDRINT:   CONSO CR,CRDONE;      DONE FLAG?\r
270         000023' 254000  000022'           JRST CDRINT\r
271         000024' 265000  000000*           JSR CDRSAV;                   SAVE ACCUMULATORS AND ESTABLI\r
272         000025' 201300  000000*           MOVEI DEVDAT,CDRDAT\r
273         000026' 200006  000002            MOVE IOS,DEVIOS(DEVDAT)\r
274         000027' 715300  002200            CONSZ CR,  CRMISS+CRERR;      DATA MISSED OR ERROR?\r
275         000030' 660000  200000            TRO IOS,IODERR;       IODERR:=1\r
276         000031' 715040  000010            DATAI CR, CRDAT1;     INPUT INFORMATION\r
277         000032' 260140  000000*           PUSHJ PDP,IOSET;      PROG:=C(JBTADR18-35), ITEM:= C(DEVPTR)\r
278         000033' 627000  004000            TLZN IOS,CRMFST;      FIRST CARD?  CRMFST:=0\r
279         000034' 256000  000000*           XCT CRDIS             ;NOT FIRST, GO TO SUBROUTINE\r
280 \r
281         000035' 640400  007400  CRFIRS:   TRC CRDAT1, 7400;     FIRST COL OF FIRST CARD\r
282         000036' 646400  007400            TRCN CRDAT1,7400;     Y, X, 0, OR 1 PUNCH?\r
283         000037' 254000  000047'           JRST CREOFC;                  NO, END OF FILE CARD\r
284         000040' 715300  001000            CONSZ CR, CREOFF;     END OF FILE?\r
285         000041' 254000  000051'           JRST CREOF;                   YES\r
286         000042' 603000  200000            TLNE IOS,CRMBIN;      CRMBIN=1?\r
287         000043' 254000  000125'           JRST CRFSTB;          YES\r
288         000044' 603000  100000            TLNE IOS,CRMIMG;      CRMIMG=1?\r
289         000045' 254000  000144'           JRST CRFSTI;          YES\r
290         000046' 254000  000067'           JRST CRFSTL+1\r
291 \r
292         000047' 201040  000017* CREOFC:   MOVEI TAC,CDRCHN      ;WAIT FOR EOC\r
293         000050' 715201  000020            CONO CR,CRBUSY(TAC)\r
294         000051' 661000  000040  CREOF:    TLO IOS, IOEND;       IUEND:=1\r
295         000052' 201240  000032            MOVEI DAT,S2EOF\r
296         000053' 260140  000000*           PUSHJ PDP,STODAT;     STORE END OF FILE CHARACTER\r
297         000054' 330000  000000            SKIP\r
298         000055' 254000  000217'           JRST CRLST2;          BLOCK FULL OR BLOCK COMPLETE\r
299         000056' 201040  000056'           MOVEI TAC,.;          DATA STATED PROPERLY\r
300         000057' 542040  000034*           HRRM TAC, CRDIS;      SET DISPATCH TO RETURN HERE.\r
301         000060' 715340  000400            CONSO CR, CREOC;      END OF CARD?\r
302         000061' 254000  000226'           JRST CREXIT;          NO.\r
303         000062' 260140  000000*           PUSHJ PDP,ADVBFF;     ADVANCE BUFFER\r
304         000063' 330000  000000            SKIP\r
305         000064  661000  000002            TLO IOS,IOBEG;        IOBEG:=1\r
306         000065' 254000  000231'           JRST CROFF\r
307 \r
308         000066' 260140  000164' CRFSTL:   PUSHJ PDP, CRITMS;    STORE ITEM\r
309         000067' 201040  000074'           MOVEI TAC,CRCV;       TAC:=CRCV.   HOLLERITH READ\r
310 \r
311         000070' 715240  000002  CRREST:   CONI CR, TAC1\r
312         000071' 620100  000160            TRZ TAC1, CRBIN+CRALL+CRBUSY; SELECT HOLERITH, ALL:=0, BUS\r
313         000072' 715202  000000            CONO CR, (TAC1);      RESET CARD READER\r
314         000073' 254000  000112'           JRST CREXT1;          CHANGE DISPATCH AND GO\r
315 \r
316 blank line\fCDRSER - CARD READER SERVICE MACRO 10 05:51 24-APR-78 PAGE 4\r
317 CDRSER  MAC     24-APR-78 21:33         8-2-65\r
318 2 blank lines\r
319 \r
320                                 , HOLLERITH READ MODE\r
321 \r
322         000074' 200440  000241' CRCV:     MOVE CRAC, [POINT 6,CRDAT1,23];       COLUMNS 79 AND 80\r
323         000075' 715340  000400            CONSO CR,CREOC;       END OF CARD?\r
324         000076' 200440  000142'           MOVE CRAC,CRC1;       NO.  LOOK AT ALL CHARACTERS\r
325         000077' 134040  000011            LDBI TAC,CRAC         ;CONVERT HOLLERITH\r
326         000100' 231040  000005            IDIVI TAC, 5;         TO ASCII\r
327         000101' 135242  000206'           LDB DAT, CRCV1(TAC1)\r
328         000102' 260140  000053*           PUSHJ PDP,STODAT;     STORE IN BU FER\r
329         000103' 254000  000052'           JRST CREOF+1\r
330         000104' 254000  000115'           JRST CRINS\r
331         000105' 603440  760000            TLNE CRAC, 760000;    WORD COMPLETE?\r
332         000106' 254000  000077'           JRST CRCV+3;          NO\r
333         000107' 715300  000400            CONSZ CR,CREOC;       END OF CARD?\r
334         000110' 254000  000115'           JRST CRINS;           YES\r
335         000111' 201040  000074'           MOVEI TAC, CRCV;      NEXT DISPATCH TO CRCV.  HOLLERITH READ\r
336 \r
337         000112' 542040  000057* CREXT1:   HRRM TAC, CRDIS;      UPDATE DISPTACHER\r
338         000113' 254000  000226'           JRST CREXIT\r
339         000114' 000000  006424  CRCON:    OCT 6424\r
340 \r
341         000115' 200440  000143' CRINS:    MOVE CRAC,CRC2;       BLOCK FULL OR BLOCK COMPLETE  INSERT CR\r
342         000116' 134240  000011            LDBI DAT, CRAC\r
343         000117' 260140  000102*           PUSHJ PDP,STODAT;     STORE CHAR\r
344         000120' 330000  000000            SKIP;                 EXIT1.\r
345         000121' 254000  000217'           JRST CRLST2;          EXIT2.  BLOCK FULL OR BLOCK COMPLETE\r
346         000122' 603440  760000            TLNE CRAC,760000;     THATS ALL?\r
347         000123' 254000  000116'           JRST CRINS+1;         NO\r
348         000124' 254000  000213'           JRST CRLAST;          END OF CARD\r
349 \r
350 \fCDRSER - CARD READER SERVICE   MACRO 10 05:51 24-APR-78 PAGE 5\r
351 CDRSER  MAC     24-APR-78 21:33         8-2-65\r
352 \r
353 \r
354                                 , BINARY READ MODE\r
355 \r
356         000125' 135040  000242' CRFSTB:   LDB TAC,[POINT 3,CRDAT1,35];  7-9 PUNCH?\r
357         000126' 302040  000005            CAIE TAC, 5\r
358         000127' 660000  400000            TRO IOS, IOIMPM;      YES.  IOIMPM:=1\r
359         000130' 715240  000001            CONI CR, TAC\r
360         000131' 620040  000120            TRZ TAC, CRBUSY+CRALL;        BUSY FLAG:=0, ALL FLAG;=0\r
361         000132' 715201  000000            CONO CR,(TAC);        RESET TO RE-READ COL 3\r
362         000133' 201040  000135'           MOVEI TAC, CRCOL2;    DISPATCH TO CRCOL2 ON NEXT INTERRUPT\r
363         000134' 254000  000112'           JRST CREXT1\r
364 \r
365         000135' 201040  000137' CRCOL2:   MOVEI TAC, CRCOL4;    DISPATCH TO CRCOL4 ON NEXT INTERRUPT\r
366         000136' 542040  000112*           HRRM TAC,CRDIS\r
367 \r
368         000137' 200240  000010  CRCOL4:   MOVE DAT, CRDAT1\r
369         000140' 260140  000165'           PUSHJ PDP, CRITMS+1;          STORE THE WORD FROM DAT\r
370         000141' 254000  000226'           JRST CREXIT\r
371 \r
372         000142' 440600  000010  CRC1:     POINT 6,CRDAT1\r
373         000143' 170700  000114' CRC2:     POINT 7,CRCON,20\r
374 \r
375 \fCDRSER - CARD READER SERVICE   MACRO 10 05:51 24-APR-78 PAGE 6\r
376 CDRSER  MAC     24-APR-78 21:33         8-2-65\r
377 \r
378 \r
379                                 ,IMAGE READ MODE\r
380 \r
381         000144' 201040  000147' CRFSTI:   MOVEI TAC,  .+3;      DISPATCH TO CRFSTI + 3 ON NEXT INTERRUP\r
382         000145' 137400  000243'           DPB CRDAT1,[POINT 24,CRTEM,23];       SAVE COLUMN 1 AS MI\r
383         000146' 254000  000112'           JRST CREXT1\r
384 \r
385         000147' 260140  000164'           PUSHJ PDP, CRITMS;    SET ITEM AND CHECK SIZE\r
386         000150' 434400  000240'           IOR CRDAT1, CRTEM;    CRTEM12-35:=COL 1 AND 2\r
387         000151' 201040  000153'           MOVEI TAC, .+2;       DISPATCH TO CRFSTI + 7 ON NEXT INTERRUP\r
388         000152' 254000  000157'           JRST CRIM1+1\r
389 \r
390         000153' 715240  000002            CONI CR, TAC1\r
391         000154' 620100  000120            TRZ TAC1, CRBUSY+CRALL;       BUSY FLAG:=ALL FLAG:=0\r
392         000155' 715202  000000            CONO CR, (TAC1);      RESET READER ON COL 3\r
393 \r
394         000156' 201040  000156' CRIM1:    MOVEI TAC,.;          DISPATCH TO CRIM1 ON NEXT INTERRUPT\r
395         000157' 715300  000400            CONSZ CR, CREOC;      END OF CARD?\r
396         000160' 254000  000213'           JRST CRLAST;          YES\r
397         000161' 202026  000010            MOVEM @DEVPTR(DEVDAT)\r
398         000162' 350006  000010            AOS DEVPTR(DEVDAT);   INCREMENT ITEM POINTER\r
399         000163' 254000  000112'           JRST CREXT1\r
400 \r
401         000164' 661000  000004  CRITMS:   TLO IOS, IOFST;       IOFST:=1\r
402         000165' 260140  000117*           PUSHJ PDP, STODAT;    STORE WORD\r
403         000166' 254000  000052'           JRST CREOF+1\r
404         000167' 254000  000052'           JRST CREOF+1\r
405         000170' 263140  000000            POPJ PDP,;            RETURN\r
406 \r
407         000171' 265426  231550  CRCNV:    ASCII ._123456789.\r
408         000172' 325546  734162\r
409         000173' 301730  057116            ASCII .0=@^'\ /ST.\r
410         000174' 561005  751650\r
411         000175' 526552  754262            ASCII .UVWXYZ;,(".\r
412         000176' 551665  424104\r
413         000177' 215125  545226            ASCII .#%-JKLMNOP.\r
414         000200' 462331  647640\r
415         000201' 506447  222124            ASCII .QR:$*[>&+A.\r
416         000202' 555744  625602\r
417         000203' 412070  442614            ASCII :BCDEFGHI?.:\r
418         000204' 436211  137534\r
419         000205' 246727  420576            ASCII :)]<!?:\r
420 \r
421         000206' 350701  000171' CRCV1:    POINT 7,CRCNV(TAC),6\r
422         000207' 260701  000171'           POINT 7,CRCNV(TAC),13\r
423         000210' 170701  000171'           POINT 7,CRCNV(TAC),20\r
424         000211' 100701  000171'           POINT 7,CRCNV(TAC),27\r
425         000212' 010701  000171'           POINT 7,CRCNV(TAC),34\r
426 \r
427 \fCDRSER - CARD READER SERVICE   MACRO 10 05:51 24-APR-78 PAGE 7\r
428 CDRSER  MAC     24-APR-78 21:33         8-2-65\r
429 \r
430 \r
431         000213' 301200  000122  CRLAST:   CAIL ITEM,^D82;       C(ITEM)<82?\r
432         000214' 254000  000234'           JRST CRCONT;          NO\r
433         000215' 260140  000000* CRLST0:   PUSHJ PDP,STOSQD;     STORE WORD COUNT\r
434         000216' 330000  000000            SKIP\r
435         000217' 260140  000062* CRLST2:   PUSHJ PDP,ADVBFF;     ADVANCE BUFFER\r
436         000220' 254000  000231'           JRST CROFF;           EXIT1.  NECT BUFFER FULL\r
437         000221' 201040  000047*           MOVEI TAC, CDRCHN\r
438         000222' 715201  000160            CONO CR, CRBIN+CRALL+CRBUSY(TAC);     SELECT BINARY, ALL\r
439                                                                 ,ASSIGN PI CHANNEL\r
440         000223' 661000  004004  CRLST1:   TLO IOS,IOFST+CRMFST;         IOFST:=CRMFST:=1\r
441         000224' 623000  000001            TLZE IOS, IOW;        IN A WAIT?  IOW:=0\r
442         000225' 260140  000000*           PUSHJ PDP, SETIOD;    IOWS:=1\r
443 \r
444         000226' 202006  000002  CREXIT:   MOVEM IOS,DEVIOS(DEVDAT);     C(CRIOS):=C(IOS)\r
445         000227' 202206  000011            MOVEM ITEM, DEVCTR(DEVDAT);   C(CRCTR):=C(ITEM)\r
446         000230' 254000  000000*           JRST CDRRET;          RESTORE ACCUMULATORS AND DISMISS INTERR\r
447 \r
448         000231' 620000  010000  CROFF:    TRZ IOS,IOACT;        IOACT:=0\r
449         000232' 715200  000000            CONO CR,0;            CLEAR CDR CONTROL REGISTER\r
450         000233' 254000  000223'           JRST CRLST1\r
451 \r
452         000234' 201040  000221* CRCONT:   MOVEI TAC, CDRCHN;    ASSIGN PI CHANNEL\r
453         000235' 715201  000160            CONO CR, CRBIN+CRALL+CRBUSY(TAC);     SELECT BINARY, ALL,\r
454         000236' 661000  040000            TLO IOS,CRMFST;       CRMFST:=1\r
455         000237' 254000  000226'           JRST CREXIT\r
456 \r
457         000240' 000000  000000  CRTEM:    0\r
458                                 END,\r
459 \r
460 NO ERRORS DETECTED\r
461 \r
462 PROGRAM BREAK IS 000244\r
463 \r
464 9K CORE USED\r
465 \r
466 \fCDRSER - CARD READER SERVICE   MACRO 10 05:51 24-APR-78 PAGE 8\r
467 CDRSER  MAC     24-APR-78 21:33         SYMBOL TABLE\r
468 \r
469 A               000000  INT\r
470 AC1             000015  INT\r
471 AC2             000016  INT\r
472 AC3             000017  INT\r
473 ADVBFF          000217' EXT\r
474 AL              000001  INT\r
475 ASSCON          400000  INT\r
476 ASSPRG          200000  INT\r
477 B               000014  INT\r
478 BUFPNT          000012  INT\r
479 BUFWRD          000013  INT\r
480 CDRCHN          000234' EXT\r
481 CDRDAT          000025' EXT\r
482 CDRDB           000000  EXT\r
483 CDRDSP          000000' ENT\r
484 CDRIN1          000005' \r
485 CDRINT          000022' INT\r
486 CDRRET          000230' EXT\r
487 CDRSAV          000024' EXT\r
488 CHCHN           000002  \r
489 CLOSB           002000  INT\r
490 CLSIN           000002  INT\r
491 CLSOUT          000001  INT\r
492 CR              000150  SPD\r
493 CRAC            000011  \r
494 CRALL           000100  \r
495 CRBIN           000040  \r
496 CRBUSY          000020  \r
497 CRC1            000142' \r
498 CRC2            000143' \r
499 CRCNV           000171' \r
500 CRCOL2          000135' \r
501 CRCOL4          000137' \r
502 CRCON           000114' \r
503 CRCONT          000234' \r
504 CRCV            000074' \r
505 CRCV1           000206' \r
506 CRDAT1          000010  \r
507 CRDIS           000136' EXT\r
508 CRDONE          000010  \r
509 CREOC           000400  \r
510 CREOF           000051' \r
511 CREOFC          000047' \r
512 CREOFF          001000  \r
513 CRERR           002000  \r
514 CREXIT          000226' \r
515 CREXT1          000112' \r
516 CRFIRS          000035' \r
517 CRFSTB          000125' \r
518 CRFSTI          000144' \r
519 CRFSTL          000066' \r
520 CRIM1           000156' \r
521 \r
522 \r
523 \fCDRSER - CARD READER SERVICE   MACRO 10 05:51 24-APR-78 PAGE 8-1\r
524 CDRSER  MAC     24-APR-78 21:33         SYMBOL TABLE\r
525 \r
526 CRINP           000004' \r
527 CRINS           000115' \r
528 CRITMS          000164' \r
529 CRLAST          000213' \r
530 CRLST0          000215' \r
531 CRLST1          000223' \r
532 CRLST2          000217' \r
533 CRMBIN          020000  \r
534 CRMFST          004000  \r
535 CRMIMG          010000  \r
536 CRMISS          000200  \r
537 CROFF           000231' \r
538 CRREST          000070' \r
539 CRTEM           000240' \r
540 D               000017  INT\r
541 DAT             000005  INT\r
542 DCL             000001  INT\r
543 DCW             020000  INT\r
544 DDI             000007  INT\r
545 DDO             000006  INT\r
546 DDTMEM          000037  INT\r
547 DDTSYM          000036  INT\r
548 DEN             000004  INT\r
549 DEVADR          000007  INT\r
550 DEVBUF          000006  INT\r
551 DEVCHR          000001  INT\r
552 DEVCTR          000011  INT\r
553 DEVDAT          000006  INT\r
554 DEVIAD          000007  INT\r
555 DEVIOS          000002  INT\r
556 DEVLOG          000005  INT\r
557 DEVMOD          000004  INT\r
558 DEVNAM          000000  INT\r
559 DEVOAD          000010  INT\r
560 DEVPTR          000010  INT\r
561 DEVSER          000003  INT\r
562 DGF             000012  INT\r
563 DIN             000003  INT\r
564 DLK             000005  INT\r
565 DOU             000002  INT\r
566 DR              000016  INT\r
567 DRL             000000  INT\r
568 DSI             000011  INT\r
569 DSO             000010  INT\r
570 DTW             040000  INT\r
571 DVAVAL          000040  INT\r
572 DVCDR           100000  INT\r
573 DVDIR           000004  INT\r
574 DVDIRI          400000  INT\r
575 DVIN            000002  INT\r
576 DVLPT           040000  INT\r
577 DVMTA           000020  INT\r
578 DVOUT           000001  INT\r
579 \r
580 \fCDRSER - CARD READER SERVICE   MACRO 10 05:51 24-APR-78 PAGE 8-2\r
581 CDRSER  MAC     24-APR-78 21:33         SYMBOL TABLE\r
582 \r
583 DVTTY           000010  INT\r
584 ENTRB           020000  INT\r
585 I               000010  INT\r
586 IB              000013  INT\r
587 IBUFB           200000  INT\r
588 ILLOUT          000002' EXT\r
589 INITB           400000  INT\r
590 INPB            010000  INT\r
591 IO              000020  INT\r
592 IOACT           010000  INT\r
593 IOBEG           000002  INT\r
594 IOBKTL          040000  INT\r
595 IOCON           000040  INT\r
596 IODEND          020000  INT\r
597 IODERR          200000  INT\r
598 IODISC          400000  INT\r
599 IODONE          400000  INT\r
600 IODTER          100000  INT\r
601 IOEND           000040  INT\r
602 IOFST           000004  INT\r
603 IOIMPM          400000  INT\r
604 IONRCK          000100  INT\r
605 IORDEL          000100  INT\r
606 IORET           000020  INT\r
607 IOS             000000  INT\r
608 IOSET           000032' EXT\r
609 IOSTRT          000010  INT\r
610 IOUSE           400000  INT\r
611 IOW             000001  INT\r
612 IOWC            000020  INT\r
613 IOWS            400000  INT\r
614 ITEM            000004  INT\r
615 JBFADR          000000  INT\r
616 JBFCTR          000002  INT\r
617 JBFPTR          000001  INT\r
618 JBUF            000005  INT\r
619 JDAT            000011  INT\r
620 JERR            002000  INT\r
621 JIOW            100000  INT\r
622 JNA             004000  INT\r
623 LOOKB           040000  INT\r
624 MTW             010000  INT\r
625 OBUFB           100000  INT\r
626 OUTPB           004000  INT\r
627 PDP             000003  INT\r
628 PICHN           000100  INT\r
629 PIOMOD          000006' EXT\r
630 PROG            000007  INT\r
631 RUN             200000  INT\r
632 RUNABL          204000  INT\r
633 S2EOF           000032  \r
634 SETBYT          000015' EXT\r
635 SETIOD          000225' EXT\r
636 \r
637 \fCDRSER - CARD READER SERVICE   MACRO 10 05:51 24-APR-78 PAGE 8-3\r
638 CDRSER  MAC     24-APR-78 21:33         SYMBOL TABLE\r
639 \r
640 STODAT          000165' EXT\r
641 STOSQD          000215' EXT\r
642 TAC             000001  INT\r
643 TAC1            000002  INT\r
644 TEM             000010  INT\r
645 TTYATC          020000  INT\r
646 TTYUSE          010000  INT\r
647 USRMOD          010000  INT\r
648 UUO             000014  INT\r
649 \f   CCCCCCCCCCCC      LLL                  KKK         KKK         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
650    CCCCCCCCCCCC      LLL                  KKK         KKK         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
651    CCCCCCCCCCCC      LLL                  KKK         KKK         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
652 CCC                  LLL                  KKK         KKK      CCC                  SSS                  SSS            \r
653 CCC                  LLL                  KKK         KKK      CCC                  SSS                  SSS            \r
654 CCC                  LLL                  KKK         KKK      CCC                  SSS                  SSS            \r
655 CCC                  LLL                  KKK      KKK         CCC                  SSS                  SSS            \r
656 CCC                  LLL                  KKK      KKK         CCC                  SSS                  SSS            \r
657 CCC                  LLL                  KKK      KKK         CCC                  SSS                  SSS            \r
658 CCC                  LLL                  KKKKKKKKK            CCC                     SSSSSSSSS            SSSSSSSSS   \r
659 CCC                  LLL                  KKKKKKKKK            CCC                     SSSSSSSSS            SSSSSSSSS   \r
660 CCC                  LLL                  KKKKKKKKK            CCC                     SSSSSSSSS            SSSSSSSSS   \r
661 CCC                  LLL                  KKK      KKK         CCC                              SSS                  SSS\r
662 CCC                  LLL                  KKK      KKK         CCC                              SSS                  SSS\r
663 CCC                  LLL                  KKK      KKK         CCC                              SSS                  SSS\r
664 CCC                  LLL                  KKK         KKK      CCC                              SSS                  SSS\r
665 CCC                  LLL                  KKK         KKK      CCC                              SSS                  SSS\r
666 CCC                  LLL                  KKK         KKK      CCC                              SSS                  SSS\r
667    CCCCCCCCCCCC      LLLLLLLLLLLLLLL      KKK         KKK         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
668    CCCCCCCCCCCC      LLLLLLLLLLLLLLL      KKK         KKK         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
669    CCCCCCCCCCCC      LLLLLLLLLLLLLLL      KKK         KKK         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
670 \r
671 \r
672 \r
673 \r
674 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
675 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
676 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
677 LLL                  SSS                        TTT                                                                     \r
678 LLL                  SSS                        TTT                                                                     \r
679 LLL                  SSS                        TTT                                                                     \r
680 LLL                  SSS                        TTT                                                                     \r
681 LLL                  SSS                        TTT                                                                     \r
682 LLL                  SSS                        TTT                                                                     \r
683 LLL                     SSSSSSSSS               TTT                                                                     \r
684 LLL                     SSSSSSSSS               TTT                                                                     \r
685 LLL                     SSSSSSSSS               TTT                                                                     \r
686 LLL                              SSS            TTT                                                                     \r
687 LLL                              SSS            TTT                                                                     \r
688 LLL                              SSS            TTT                                                                     \r
689 LLL                              SSS            TTT                                                                     \r
690 LLL                              SSS            TTT                                                                     \r
691 LLL                              SSS            TTT                                                                     \r
692 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
693 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
694 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
695 \r
696 \r
697 \r
698 \r
699 Request created: 24-April-1978  05:53:58\r
700 File: DSKB0 :CLKCSS.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:32\r
701 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1980 \r
702 File will be deleted after printing\r
703 \f\r
704 CLKCSS - SCHEDULING ALOGRITHM   MACRO 10 05:51 24-APR-78 PAGE 1\r
705 S       MAC     24-APR-78 21:40         T. HASTING 6-29-65\r
706 \r
707                                         XLIST\r
708                                        LIST\r
709                                 TITLE CLKCSS - SCHEDULING ALOGRITHM\r
710                                 SUBTTL      T. HASTING 6-29-65\r
711                                 ;SCHEDULING ALOGRITHM\r
712                                 ;CALL:\r
713                                 ;       PUSHJ PDP, NXTJOB\r
714                                 ;       EXIT                    ;RETURN HIGHEST PRIORITY USER IN AC ITEM\r
715 \r
716                                 ;NEXJOB ASSUMES NO ACS SET EXCEPT PDP AND THAT IS MAY USE\r
717                                 ;ANY OF THE OTHER ACS\r
718                                 ;EXECUTION REQUIRES ROUGHLY 37 CYCLES FOR NORMAL CASE\r
719 \r
720                                 INTERNAL NXTJOB, QUANTS\r
721                                 EXTERNAL IOCOMP,JOBN,JBTSTS,JOB\r
722                                 EXTERNAL MTAVAL,DCAVAL,DTAVAL,SCNOFF,SCNON\r
723 blank line+\r
724 \r
725                         000002  T=TAC1    ;TEMPORARY AC\r
726                         000006  C=DEVDAT\r
727                         000005  P=DAT\r
728 \r
729         000000' 200100  000000* NXTJOB:   MOVE T, IOCOMP        ;NO. OF COMPLETED IO JOBS\r
730         000001' 202100  000064'           MOVEM T, IOAVAL       ;MAKE SLOW IO LOOK LIKE FAST IO\r
731 \r
732                                 ;KEEP IO DEVICES BUSY\r
733         000002' 515240  777774            HRLZI P, -NUM         ;NO. OF IO DEVICES CATEGORIES TO CHECK\r
734         000003' 336025  000060' NXT0:     SKIPN @AVALTB(P)      ;NON-ZERO IF IO JUST BECOME AVAILABLE\r
735         000004' 253240  000003' NXT1:     AOBJN P, NXT0\r
736         000005' 327240  000026'           JUMPG P, NXT4         ;FINISHED YET\r
737         000006' 402025  000060'           SETZM @AVALTB(P)      ;IO DEVICE AVAIL. ACKNOWLEDGE FACT\r
738         000007' 200105  000065'           MOVE T,WAITB(P)       ;GET APPROPRIATE JOB STATUS BIT\r
739         000010' 200205  000071'           MOVE ITEM,JOBP(P)     ;SEARCH FOR WAITING JOB\r
740         000011' 350000  000004            AOS ITEM              ;LOOK AT EVERYONE ELSE FIRST\r
741         000012' 301200  000000* NXT2:     CAIL ITEM,JOBN        ;MODULO JOBN\r
742         000013' 201200  000001            MOVEI ITEM,1          ;SKIP NULL JOB\r
743         000014' 617104  000000*           TSNN T,JBTSTS(ITEM)   ;IS WAIT BIT SET FOR THIS JOB?\r
744         000015' 254000  000023'           JRST NXT3 ;NO. KEEP LOOKING\r
745         000016' 700600  000000*           CONO PI,SCNOFF        ;YES, TURN SCANNER CHAN. OFF(CONTROL C)\r
746         000017' 554044  000014*           HLRZ TAC,JBTSTS(ITEM)           ;IS JOB RUNABLE?\r
747         000020' 306042  204000            CAIN TAC,RUNABLE(T)\r
748         000021' 254000  000041'           JRST NXT7             ;YES, CLEAR BIT. SET RUN TIME. RETURN\r
749         000022' 700600  000000*           CONO PI,SCNON         ;NO. TURN SCANNER CHAN. ON. KEEP LOOKIN\r
750         000023' 312205  000071' NXT3:     CAME ITEM, JOBP(P)    ;HAVE ALL USERS BEEN LOOKED AT\r
751         000024' 344200  000012'           AOJA ITEM, NXT2       ;NO. KEEP LOOKING\r
752         000025' 254000  000004'           JRST NXT1             ;YES. SHOULD NOT HAPPEN\r
753 \r
754 \fCLKCSS - SCHEDULING ALOGRITHM  MACRO 10 05:51 24-APR-78 PAGE 2\r
755 CLKCSS  MAC     24-APR-78 03:01         T. HASTING 6-29-65\r
756 \r
757 \r
758                                 ;NO JOBS WAITING TO USE IO DEVICES\r
759                                 ;HAS CURENT JOB USED ITS QUANTUM\r
760 \r
761         000026' 201300  000012* NXT4:     MOVEI C,JOBN          ;GET READY FOR POSSIBLE LOOP\r
762         000027' 334200  000000*           SKIPA ITEM, JOB       ;CURRENTLY RUNNING JOB\r
763 \r
764         000030' 350000  000004  NXT6:     AOS ITEM              ;LOOK AT NEXT JOB\r
765         000031' 301200  000026*           CAIL ITEM, JOBN       ;MODULO JOBN\r
766         000032' 201200  000001            MOVEI ITEM, 1         ;SKIP NULL JOB\r
767 \r
768         000033' 554104  000017* NXT5:     HLRZ T, JBTSTS(ITEM)           ;IS THIS JOB RUNNABLE\r
769         000034' 306100  204000            CAIN T, RUNABLE\r
770         000035' 254000  000050'           JRST NXT9             ;YES,RETURN WITH ITEM SET\r
771         000036' 367300  000030' NXT5A:    SOJG C, NXT6          ;NO. LOOKED AT ALL JOBS YET?\r
772         000037' 403200  000002            SETZB ITEM,T          ;YES. INDICATE NULL JOB TO RUN\r
773         000040' 344100  000054'           AOJA T,NXT8           ;SET TO RUN FOR ONE CLOCK TICK\r
774 \r
775         000041' 202205  000071' NXT7:     MOVEM ITEM, JOBP(P)   ;SAVE THIS JOB NO. FOR NEXT TIME\r
776         000042' 620042  000000            TRZ TAC,(T)           ;CLEAR WAIT BIT\r
777         000043' 506044  000033*           HRLM TAC,JBTSTS(ITEM)           ;IN JOB STATUS WORD\r
778         000044' 602100  400000            TRNE T,IOWS           ;IS WAIT BIT IOWS?\r
779         000045' 370000  000000*           SOS IOCOMP            ;YES, SUBTRACT REQUEST COUNT\r
780         000046' 700600  000022*           CONO PI,SCNON         ;TURN SCANNER CHANNEL BACK ON\r
781         000047' 254000  000053'           JRST NXT10            ;AND GO SET RUNNING TIME\r
782 \r
783         000050' 550104  000043* NXT9:     HRRZ T,JBTSTS(ITEM)   ;HAS TIME GONE TO ZERO FOR THIS JOB?\r
784         000051' 602100  777777            TRNE T,-1\r
785         000052' 263140  000000            POPJ PDP,             ;NO\r
786         000053' 200105  000075' NXT10:    MOVE T, QUANTS(P)     ;SET QUANTUM RUNNING TIME FOR THIS QUEU\r
787         000054' 542104  000050* NXT8:     HRRM T, JBTSTS(ITEM)\r
788         000055' 316200  000027*           CAMN ITEM, JOB        ;IS THIS SAME AS OLD JOB?\r
789         000056' 326200  000036'           JUMPN ITEM, NXT5A     ;AND NOT NULL JOB\r
790         000057' 263140  000000            POPJ PDP,\r
791 \r
792 \fCLKCSS - SCHEDULING ALOGRITHM  MACRO 10 05:51 24-APR-78 PAGE 3\r
793 CLKCSS  MAC     24-APR-78 03:01         T. HASTING 6-29-65\r
794 \r
795 \r
796                                 ;FLAGS SET NON-ZERO WHEN IO DEVICES BECOME AVAILABLE\r
797 \r
798         000060' 000000  000000* AVALTB:   EXP MTAVAL            ;MAG TAPE\r
799         000061' 000000  000000*           EXP DCAVAL            ;DATA CONTROL\r
800         000062' 000000  000000*           EXP DTAVAL            ;DECTAPE\r
801         000063' 000000  000064'           EXP IOAVAL            ;ALL OTHER DEVICES\r
802                         000004  NUM=.-AVALTB\r
803 \r
804         000064' 000000  000000  IOAVAL:   0                     ;FLAG = NO. OF IO COMPLETED JOBS\r
805 \r
806                                 ;BIT IN STATUS WORD MEANING JOB WAITING TO USE DEVICE\r
807         000065' 000000  010000  WAITB:    EXP MTW\r
808         000066' 000000  020000            EXP DCW\r
809         000067' 000000  040000            EXP DTW\r
810         000070' 000000  400000            EXP IOWS\r
811 \r
812                                 ;LAST JOB SCHEDULED FOR DEVICE\r
813                                 JOBP:     REPEAT NUM,\r
814                                 <         EXP 1\r
815                                 >\r
816         000071' 000000  000001            EXP 1\r
817 \r
818         000072' 000000  000001            EXP 1\r
819 \r
820         000073' 000000  000001            EXP 1\r
821 \r
822         000074' 000000  000001            EXP 1\r
823 \r
824 \r
825                                 ;QUANTUM TIMES FOR EACH QUEUE\r
826 \r
827         000075' 000000  000004  QUANTS:   EXP 4                 ;MAGTAPE QUEUE\r
828         000076' 000000  000004            EXP 4                 ;DATA CONTROL QUEUE\r
829         000077' 000000  000004            EXP 4                 ;DECTAPE QUEUE\r
830         000100' 000000  000006            EXP 6                 ;IOWAIT SATISFIED QUEUE\r
831         000101' 000000  000017            EXP QUANT1            ;STRAIGHT COMPUTATION QUEUE\r
832 \r
833                                 XP  QUANT1,^D15;        STRAIGHT COMPUTATION QUEUE\r
834 \r
835                                           END,\r
836 \r
837 NO ERRORS DETECTED\r
838 \r
839 PROGRAM BREAK IS 000102\r
840 \r
841 9K CORE USED\r
842 \r
843 \fCLKCSS - SCHEDULING ALOGRITHM  MACRO 10 05:51 24-APR-78 PAGE 4\r
844 CLKCSS  MAC     24-APR-78 03:01         SYMBOL TABLE\r
845 \r
846 A               000000  INT\r
847 AC1             000015  INT\r
848 AC2             000016  INT\r
849 AC3             000017  INT\r
850 AL              000001  INT\r
851 ASSCON          400000  INT\r
852 ASSPRG          200000  INT\r
853 AVALTB          000060' \r
854 B               000014  INT\r
855 BUFPNT          000012  INT\r
856 BUFWRD          000013  INT\r
857 C               000006  \r
858 CLOSB           002000  INT\r
859 CLSIN           000002  INT\r
860 CLSOUT          000001  INT\r
861 D               000017  INT\r
862 DAT             000005  INT\r
863 DCAVAL          000061' EXT\r
864 DCL             000001  INT\r
865 DCW             020000  INT\r
866 DDI             000007  INT\r
867 DDO             000006  INT\r
868 DDTMEM          000037  INT\r
869 DDTSYM          000036  INT\r
870 DEN             000004  INT\r
871 DEVADR          000007  INT\r
872 DEVBUF          000006  INT\r
873 DEVCHR          000001  INT\r
874 DEVCTR          000011  INT\r
875 DEVDAT          000006  INT\r
876 DEVIAD          000007  INT\r
877 DEVIOS          000002  INT\r
878 DEVLOG          000005  INT\r
879 DEVMOD          000004  INT\r
880 DEVNAM          000000  INT\r
881 DEVOAD          000010  INT\r
882 DEVPTR          000010  INT\r
883 DEVSER          000003  INT\r
884 DGF             000012  INT\r
885 DIN             000003  INT\r
886 DLK             000005  INT\r
887 DOU             000002  INT\r
888 DR              000016  INT\r
889 DRL             000000  INT\r
890 DSI             000011  INT\r
891 DSO             000010  INT\r
892 DTAVAL          000062' EXT\r
893 DTW             040000  INT\r
894 DVAVAL          000040  INT\r
895 DVCDR           100000  INT\r
896 DVDIR           000004  INT\r
897 DVDIRI          400000  INT\r
898 \r
899 \r
900 \fCLKCSS - SCHEDULING ALOGRITHM  MACRO 10 05:51 24-APR-78 PAGE 4-1\r
901 CLKCSS  MAC     24-APR-78 03:01         SYMBOL TABLE\r
902 \r
903 DVIN            000002  INT\r
904 DVLPT           040000  INT\r
905 DVMTA           000020  INT\r
906 ----\r
907 DVOUT           000001  INT\r
908 DVTTY           000010  INT\r
909 ENTRB           020000  INT\r
910 I               000010  INT\r
911 IB              000013  INT\r
912 IBUFB           200000  INT\r
913 INITB           400000  INT\r
914 INPB            010000  INT\r
915 IO              000020  INT\r
916 IOACT           010000  INT\r
917 IOAVAL          000064' \r
918 IOBEG           000002  INT\r
919 IOBKTL          040000  INT\r
920 IOCOMP          000045' EXT\r
921 IOCON           000040  INT\r
922 IODEND          020000  INT\r
923 IODERR          200000  INT\r
924 IODISC          400000  INT\r
925 IODONE          400000  INT\r
926 IODTER          100000  INT\r
927 IOEND           000040  INT\r
928 IOFST           000004  INT\r
929 IOIMPM          400000  INT\r
930 IONRCK          000100  INT\r
931 IORDEL          000100  INT\r
932 IORET           000020  INT\r
933 IOS             000000  INT\r
934 IOSTRT          000010  INT\r
935 IOUSE           400000  INT\r
936 IOW             000001  INT\r
937 IOWC            000020  INT\r
938 IOWS            400000  INT\r
939 ITEM            000004  INT\r
940 JBFADR          000000  INT\r
941 JBFCTR          000002  INT\r
942 JBFPTR          000001  INT\r
943 JBTSTS          000054' EXT\r
944 JBUF            000005  INT\r
945 JDAT            000011  INT\r
946 JERR            002000  INT\r
947 JIOW            100000  INT\r
948 JNA             004000  INT\r
949 JOB             000055' EXT\r
950 JOBN            000031' EXT\r
951 JOBP            000071' \r
952 LOOKB           040000  INT\r
953 MTAVAL          000060' EXT\r
954 MTW             010000  INT\r
955 NUM             000004  \r
956 NXT0            000003' \r
957 \r
958 \fCLKCSS - SCHEDULING ALOGRITHM  MACRO 10 05:51 24-APR-78 PAGE 4-2\r
959 CLKCSS  MAC     24-APR-78 03:01         SYMBOL TABLE\r
960 \r
961 NXT1            000004' \r
962 NXT10           000053' \r
963 NXT2            000012' \r
964 NXT3            000023' \r
965 NXT4            000026' \r
966 NXT5            000033' \r
967 NXT5A           000036' \r
968 NXT6            000030' \r
969 NXT7            000041' \r
970 NXT8            000054' \r
971 NXT9            000050' \r
972 NXTJOB          000000' INT\r
973 OBUFB           100000  INT\r
974 OUTPB           004000  INT\r
975 P               000005  \r
976 PDP             000003  INT\r
977 PI              000004  SPD\r
978 PICHN           000100  INT\r
979 PROG            000007  INT\r
980 QUANT1          000017  INT\r
981 QUANTS          000075' INT\r
982 RUN             200000  INT\r
983 RUNABL          204000  INT\r
984 SCNOFF          000016' EXT\r
985 SCNON           000046' EXT\r
986 T               000002  \r
987 TAC             000001  INT\r
988 TAC1            000002  INT\r
989 TEM             000010  INT\r
990 TTYATC          020000  INT\r
991 TTYUSE          010000  INT\r
992 USRMOD          010000  INT\r
993 UUO             000014  INT\r
994 WAITB           000065' \r
995 \f   CCCCCCCCCCCC      LLL                     OOOOOOOOO            CCCCCCCCCCCC      KKK         KKK                     \r
996    CCCCCCCCCCCC      LLL                     OOOOOOOOO            CCCCCCCCCCCC      KKK         KKK                     \r
997    CCCCCCCCCCCC      LLL                     OOOOOOOOO            CCCCCCCCCCCC      KKK         KKK                     \r
998 CCC                  LLL                  OOO         OOO      CCC                  KKK         KKK                     \r
999 CCC                  LLL                  OOO         OOO      CCC                  KKK         KKK                     \r
1000 CCC                  LLL                  OOO         OOO      CCC                  KKK         KKK                     \r
1001 CCC                  LLL                  OOO         OOO      CCC                  KKK      KKK                        \r
1002 CCC                  LLL                  OOO         OOO      CCC                  KKK      KKK                        \r
1003 CCC                  LLL                  OOO         OOO      CCC                  KKK      KKK                        \r
1004 CCC                  LLL                  OOO         OOO      CCC                  KKKKKKKKK                           \r
1005 CCC                  LLL                  OOO         OOO      CCC                  KKKKKKKKK                           \r
1006 CCC                  LLL                  OOO         OOO      CCC                  KKKKKKKKK                           \r
1007 CCC                  LLL                  OOO         OOO      CCC                  KKK      KKK                        \r
1008 CCC                  LLL                  OOO         OOO      CCC                  KKK      KKK                        \r
1009 CCC                  LLL                  OOO         OOO      CCC                  KKK      KKK                        \r
1010 CCC                  LLL                  OOO         OOO      CCC                  KKK         KKK                     \r
1011 CCC                  LLL                  OOO         OOO      CCC                  KKK         KKK                     \r
1012 CCC                  LLL                  OOO         OOO      CCC                  KKK         KKK                     \r
1013    CCCCCCCCCCCC      LLLLLLLLLLLLLLL         OOOOOOOOO            CCCCCCCCCCCC      KKK         KKK                     \r
1014    CCCCCCCCCCCC      LLLLLLLLLLLLLLL         OOOOOOOOO            CCCCCCCCCCCC      KKK         KKK                     \r
1015    CCCCCCCCCCCC      LLLLLLLLLLLLLLL         OOOOOOOOO            CCCCCCCCCCCC      KKK         KKK                     \r
1016 \r
1017 \r
1018 \r
1019 \r
1020 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
1021 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
1022 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
1023 LLL                  SSS                        TTT                                                                     \r
1024 LLL                  SSS                        TTT                                                                     \r
1025 LLL                  SSS                        TTT                                                                     \r
1026 LLL                  SSS                        TTT                                                                     \r
1027 LLL                  SSS                        TTT                                                                     \r
1028 LLL                  SSS                        TTT                                                                     \r
1029 LLL                     SSSSSSSSS               TTT                                                                     \r
1030 LLL                     SSSSSSSSS               TTT                                                                     \r
1031 LLL                     SSSSSSSSS               TTT                                                                     \r
1032 LLL                              SSS            TTT                                                                     \r
1033 LLL                              SSS            TTT                                                                     \r
1034 LLL                              SSS            TTT                                                                     \r
1035 LLL                              SSS            TTT                                                                     \r
1036 LLL                              SSS            TTT                                                                     \r
1037 LLL                              SSS            TTT                                                                     \r
1038 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
1039 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
1040 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
1041 \r
1042 \r
1043 \r
1044 \r
1045 Request created: 24-April-1978  05:53:58\r
1046 File: DSKB0 :CLOCK .LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:32\r
1047 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1974 \r
1048 File will be deleted after printing\r
1049 \f\r
1050 CLOCK - CLOCK SERVICE ROUTINE   MACRO 10 05:51 24-APR-78 PAGE 1\r
1051 S       MAC     24-APR-78 21:40         T. HASTINGS 6-2-65\r
1052 \r
1053                                         XLIST\r
1054                                        LIST\r
1055                                 TITLE CLOCK - CLOCK SERVICE ROUTINE\r
1056                                 SUBTTL      T. HASTINGS 6-2-65\r
1057                                 INTERNAL CLOCK, CLKINI,NULJOB,APRINT,RSCHED\r
1058                                 EXTERNAL APRSAV, APRRET, APRCHN,APRILM,APRCHL\r
1059                                 EXTERNAL COMCNT,COMMAND,JOB,JOBADR,APRSAC,JOBDAC,JOBPDP,JOBREL\r
1060                                 EXTERNAL USRPDP,JOBPFU,JOBPC,JBTADR,JOBADR,JOBDAT,USRPFU,CLDS,NXTJOB\r
1061                                 EXTERNAL STOPU,SCHEDF,TIME,JOBLEV,JOBUXT,UUO0,JOBDHI,CLKOFF,JBTSTS\r
1062 \r
1063                                 ;CLOCK WILL TIME AN INTERVAL AND PUSHJ PDP, TO AN ADDRESS\r
1064                                 ;AFTER THE INTERVAL HAS EXPIRED\r
1065                                 ;TO MAKE A REQUEST:\r
1066                                 ;       CONO PI,PIOFF\r
1067                                 ;       DPBI AC,CLOCK\r
1068                                 ;       CONO PI,PION\r
1069                                 ;AC MUST CONTAIN- XWD ADDRESS,NUMBER OF CLOCK COUNTS+DATA*1000\r
1070                                 ;THE HIGH ORDER SIX BITS OF THE RIGHT HALF(DATA) ARE PLACED IN AC\r
1071                                 ;TAC RIGHT JUSTIFIED BEFORE THE PUSHJ PDP, ADDRES IS DONE\r
1072 \r
1073                                 ;SYSTEM FLAGS:\r
1074                                 ; STOPU IS SET NON-ZERO AT EITHER INTERRUPT SERVICE LEVEL OR\r
1075                                 ;   UUO LEVEL AND A CLOCK INTERRUPT IS REQUESTED WHEN CURRENT\r
1076                                 ;   JOB MUST BE STOPPED AND ANOTHER ONE RUN.\r
1077                                 ; SCHEDF IS SET NON-ZERO BY CLOCK ROUTINE WHEN IF IS IN THE PROCESS\r
1078                                 ;   OF RESCHEDULING.  IT IS CLEARED AFTER JOB HAS BEEN SET TO\r
1079                                 ;   CURRENTLY RUNNING JOB.\r
1080                                 ; TIME IS THE TIME SYSTEM HAS RUN IN 60THS OF A SECOND\r
1081 \r
1082                         000200  PION=200\r
1083                         000400  PIOFF=400\r
1084 \r
1085                         000005  STOR=DAT\r
1086                         000001  T=TAC\r
1087                         000011  JA=JDAT\r
1088 \r
1089         000000' 004400  000000' CLOCK:    POINT 36,CIPWT-1,35           ;BYTE POINTER TO CLOCK QUEUE\r
1090         000001'                 CIPWT:    BLOCK 12                      ;THE QUEUE\r
1091 \r
1092         000013' 201000  000000' CLKINI:   MOVEI CIPWT-1                 ;SET UP BYTE POINTER\r
1093         000014' 542000  000000'           HRRM CLOCK\r
1094         000015' 263140  000000            POPJ PDP,\r
1095 \r
1096 \fCLOCK - CLOCK SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 2\r
1097 CLOCK   MAC     24-APR-78 03:29         T. HASTINGS 6-2-65\r
1098 \r
1099 \r
1100         000016' 254000  000020' APRINT:   JRST .+2              ;HERE ON APR INTERRUPT\r
1101         000017' 254000  000017'           JRST .                ;TO OTHER DEVICES ON THIS CHANNEL\r
1102         000020' 700340  230000            CONSO APR,230000              ;IS IT ANY OF THE OTHERS\r
1103         000021' 254000  000024'           JRST CIP0             ;NO. GO CHECK CLOCK\r
1104         000022' 264000  000000*           JSR APRSAV                    ;YES, SAVE ACS\r
1105         000023' 254000  000000*           JRST APRILM                   ;AND GO PROCESS ILLEGAL MEMOR\r
1106         000024' 700340  002000  CIP0:     CONSO APR, 2000       ;IS CLOCK ENABLED\r
1107         000025' 254000  000030'           JRST CIP1  ;NO. GO TO OTHER DEVICES\r
1108         000026' 700300  001000            CONSZ APR, 1000       ;YES, DID CLOCK CAUSE INTERRUPT\r
1109         000027' 254000  000034'           JRST CIP2             ;YES\r
1110         000030' 336000  000000* CIP1:     SKIPN STOPU           ;NO, IS THIS A REQUEST INTERRUPT\r
1111         000031' 254000  000017'           JRST APRINT+1         ;NO. GO TO OTHER DEVICES\r
1112         000032' 264000  000022* CIP1B:    JSR APRSAV            ;YES, SAVE ACS\r
1113         000033' 254000  000064'           JRST CIP6             ;RESCHEDULE BUT DONT TIME\r
1114 \r
1115 \fCLOCK - CLOCK SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 3\r
1116 CLOCK   MAC     24-APR-78 03:29         T. HASTINGS 6-2-65\r
1117 \r
1118 \r
1119         000034' 264000  000032* CIP2:     JSR APRSAV                    ;SAVE ACS\r
1120         000035' 350000  000000*           AOS TIME              ;INCREMENT TIME\r
1121         000036' 200040  000000*           MOVE TAC,JOB          ;DECREMENT CURRENT JOBS RUNNING TIME\r
1122         000037' 370001  000000*           SOS JBTSTS(TAC)\r
1123         000040' 700200  000000*           CONO APR,CLKOFF       ;TURN CLOCK FLAG OFF\r
1124 \r
1125                                 ;PROCESS TIMING REQUESTS STORED IN QUEUE\r
1126         000041' 550240  000000'           HRRZ STOR, CLOCK      ;GET END OF LIST\r
1127         000042' 306240  000000' CIP4:     CAIN STOR, CIPWT-1    ;END YET\r
1128         000043' 254000  000062'           JRST CIP5             ;YES\r
1129         000044' 370105  000000            SOS TAC1, (STOR)      ;DECREMENT TIMING REQUEST\r
1130         000045' 602100  007777            TRNE TAC1, 7777       ;TIME EXPIRED YET\r
1131         000046' 364240  000042'           SOJA STOR, CIP4       ;NO, CONTINUE SCAN\r
1132         000047' 700600  000400            CONO PI, PIOFF        ;YES. MOVE LAST ITEM IN LIST TO THS\r
1133         000050' 200060  000000'           MOVE TAC, @CLOCK\r
1134         000051' 370000  000000'           SOS CLOCK\r
1135         000052' 700600  000200            CONO PI, PION\r
1136         000053' 202045  000000            MOVEM TAC, (STOR)\r
1137         000054' 135040  000143'           LDB TAC, [POINT 6, TAC1, 23]  ;GET 6 BIT DATA ITEM\r
1138         000055' 207000  000002            MOVSS TAC1            ;SETUP DISPATCH ADDRESS\r
1139         000056' 261140  000005            PUSH PDP, STOR        ;SAVE ONLY VALUABLE AC\r
1140         000057' 260142  000000            PUSHJ PDP, (TAC1)     ;AND DISPATCH TO TIMING REQUEST ROUTINE\r
1141         000060' 262140  000005            POP PDP, STOR\r
1142         000061' 364240  000042'           SOJA STOR, CIP4       ;GO BACK FOR MORE REQUESTS\r
1143 \r
1144         000062' 332000  000000* CIP5:     SKIPE COMCNT          ;ANY COMMANDS TO PROCESS\r
1145         000063' 260140  000000*           PUSHJ PDP, COMMAND    ;YES\r
1146         000064'                 RSCHED:                         ;RESCHEDULE, HERE AFTER APRILM\r
1147         000064' 402000  000030* CIP6:     SETZM STOPU           ;CLEAR INTERRUPT REQUEST FLAG\r
1148         000065' 476000  000000*           SETOM SCHEDF          ;FLAG THAT SCHEDULING IS IN PROGRESS\r
1149         000066' 260140  000000*           PUSHJ PDP, NXTJOB     ;RETURN HIGHEST PRIORITY JOB IN AC ITEM\r
1150         000067' 316200  000036*           CAMN ITEM, JOB        ;IS IT SAME AS CURRENT JOB\r
1151         000070' 254000  000136'           JRST CIP8 ;YES, EXIT\r
1152 \r
1153 \fCLOCK - CLOCK SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 4\r
1154 CLOCK   MAC     24-APR-78 03:29         T. HASTINGS 6-2-65\r
1155 \r
1156 \r
1157                                 ;DIFFERENT JOB, SAVE OLD JOB\r
1158         000071' 336000  000067*           SKIPN JOB             ;IS OLD JOB THE NULL JOB\r
1159         000072' 254000  000110'           JRST CIP7             ;YES, DONT BOTHER TO SAVE ANYTHING\r
1160         000073' 200440  000000*           MOVE JA, JOBADR       ;NO. MOVE CHANNEL ACS TO USER JOB AREA\r
1161         000074' 201051  000000*           MOVEI T,JOBDAC(JA)\r
1162         000075' 505040  000000*           HRLI T, APRSAC\r
1163         000076' 251051  000000*           BLT T, JOBDHI(JA)\r
1164         000077' 201051  000000*           MOVEI T, JOBPDP(JA)   ;MOVE JOB STATE VARIABLES TO JOB DATA A\r
1165         000100' 505040  000000*           HRLI T, USRPDP\r
1166         000101' 251051  000000*           BLT T, JOBPFU(JA)\r
1167         000102' 200040  000040            MOVE T, 40                    ;SAVE LOC. 40\r
1168         000103' 202051  000000*           MOVEM T, JOBLEV(JA)\r
1169         000104' 200040  000000*           MOVE T, UUO0                  ;AND UUO PC\r
1170         000105' 202051  000000*           MOVEM T, JOBUXT(JA)\r
1171         000106' 200040  000000*           MOVE T, APRCHL        ;SET C(CHANNEL INTERRUPT LOC.) AS PC\r
1172         000107' 202051  000000*           MOVEM T, JOBPC(JA)\r
1173 \r
1174 \r
1175 \fCLOCK - CLOCK SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 5\r
1176 CLOCK   MAC     24-APR-78 03:29         T. HASTINGS 6-2-65\r
1177 \r
1178 \r
1179                                 ;RESTOR NEW JOB\r
1180         000110' 202200  000071* CIP7:     MOVEM ITEM, JOB       ;STORE NEW CURRENT JOB NUMBER\r
1181         000111' 403000  000065*           SETZB 0,SCHEDF        ;INDICATE SCHEDULING FINISHED\r
1182         000112' 322200  000140'           JUMPE ITEM, NUL0      ;IS NEW JOB NULL JOB\r
1183         000113' 200444  000000*           MOVE JA, JBTADR(ITEM)         ;SETUP STATE VARIABLES FOR CU\r
1184         000114' 552440  000073*           HRRZM JA, JOBADR      ;IN SYSTEM AREA\r
1185         000115' 552440  000000*           HRRZM JA, JOBDAT\r
1186         000116' 556451  000000*           HLRZM JA, JOBREL(JA)          ;SET RELOCATION AND PROTECTION\r
1187         000117' 700140  000011            DATAO JA\r
1188         000120' 201040  000100*           MOVEI T,USRPDP\r
1189         000121' 505051  000077*           HRLI T, JOBPDP(JA)    ;MOVE JOB STATE VARIABLES TO SYSTEM ARE\r
1190         000122' 251040  000000*           BLT T, USRPFU\r
1191         000123' 200051  000103*           MOVE T, JOBLEV(JA)    ;RESTORE LOC. 40\r
1192         000124' 202040  000040            MOVEM T, 40\r
1193         000125' 200051  000105*           MOVE T, JOBUXT(JA)    ;AND UUO PC\r
1194         000126' 202040  000104*           MOVEM T, UUO0\r
1195         000127' 200051  000107*           MOVE T, JOBPC(JA)     ;SET C(CHANNEL LOC.) TO C(JOBPC)\r
1196         000130' 202040  000106*           MOVEM T, APRCHL\r
1197         000131' 205751  000074*           MOVSI 17, JOBDAC(JA)          ;RESTORE USER ACS\r
1198         000132' 251740  000017            BLT 17,17\r
1199         000133' 332000  000064*           SKIPE STOPU           ;HAS STOPU BEEN SET SINCE CIP6\r
1200         000134' 254000  000032'           JRST CIP1B                    ;YES, GO RESCHEDULE\r
1201         000135' 254520  000130*           JEN @APRCHL           ;NO. DISMISS CHANNEL\r
1202 \r
1203         000136' 402000  000111* CIP8:     SETZM SCHEDF                  ;CLEAR SCHEDULING FLAG\r
1204         000137' 254000  000000*           JRST APRRET                   ;AND DISMISS INTERRUPT\r
1205 \r
1206                                 ;THE NULL JOB\r
1207         000140' 254400  000141' NUL0:     JRST 10, NULJOB       ;RENABLE AND RUN IN EXEC. MODE\r
1208 \r
1209         000141' 200040  000142' NULJOB:   MOVE 1,.+1\r
1210         000142' 344000  000001            AOJA 0,1  ;COUNT IN AC0 FOR VISUAL MONITORING\r
1211                                                                 ;ALSO PC = 1\r
1212                                           END,\r
1213 \r
1214 NO ERRORS DETECTED\r
1215 \r
1216 PROGRAM BREAK IS 000144\r
1217 \r
1218 9K CORE USED\r
1219 \r
1220 \fCLOCK - CLOCK SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 6\r
1221 CLOCK   MAC     24-APR-78 03:29         SYMBOL TABLE\r
1222 \r
1223 A               000000  INT\r
1224 AC1             000015  INT\r
1225 AC2             000016  INT\r
1226 AC3             000017  INT\r
1227 AL              000001  INT\r
1228 APR             000000  SPD\r
1229 APRCHL          000135' EXT\r
1230 APRCHN          000000  EXT\r
1231 APRILM          000023' EXT\r
1232 APRINT          000016' INT\r
1233 APRRET          000137' EXT\r
1234 APRSAC          000075' EXT\r
1235 APRSAV          000034' EXT\r
1236 ASSCON          400000  INT\r
1237 ASSPRG          200000  INT\r
1238 B               000014  INT\r
1239 BUFPNT          000012  INT\r
1240 BUFWRD          000013  INT\r
1241 CIP0            000024' \r
1242 CIP1            000030' \r
1243 CIP1B           000032' \r
1244 CIP2            000034' \r
1245 CIP4            000042' \r
1246 CIP5            000062' \r
1247 CIP6            000064' \r
1248 CIP7            000110' \r
1249 CIP8            000136' \r
1250 CIPWT           000001' \r
1251 CLDS            000000  EXT\r
1252 CLKINI          000013' INT\r
1253 CLKOFF          000040' EXT\r
1254 CLOCK           000000' INT\r
1255 CLOSB           002000  INT\r
1256 CLSIN           000002  INT\r
1257 CLSOUT          000001  INT\r
1258 COMCNT          000062' EXT\r
1259 COMMAN          000063' EXT\r
1260 D               000017  INT\r
1261 DAT             000005  INT\r
1262 DCL             000001  INT\r
1263 DCW             020000  INT\r
1264 DDI             000007  INT\r
1265 DDO             000006  INT\r
1266 DDTMEM          000037  INT\r
1267 DDTSYM          000036  INT\r
1268 DEN             000004  INT\r
1269 DEVADR          000007  INT\r
1270 DEVBUF          000006  INT\r
1271 DEVCHR          000001  INT\r
1272 DEVCTR          000011  INT\r
1273 DEVDAT          000006  INT\r
1274 DEVIAD          000007  INT\r
1275 \r
1276 \r
1277 \fCLOCK - CLOCK SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 6-1\r
1278 CLOCK   MAC     24-APR-78 03:29         SYMBOL TABLE\r
1279 \r
1280 DEVIOS          000002  INT\r
1281 DEVLOG          000005  INT\r
1282 DEVMOD          000004  INT\r
1283 DEVNAM          000000  INT\r
1284 DEVOAD          000010  INT\r
1285 DEVPTR          000010  INT\r
1286 DEVSER          000003  INT\r
1287 DGF             000012  INT\r
1288 DIN             000003  INT\r
1289 DLK             000005  INT\r
1290 DOU             000002  INT\r
1291 DR              000016  INT\r
1292 DRL             000000  INT\r
1293 DSI             000011  INT\r
1294 DSO             000010  INT\r
1295 DTW             040000  INT\r
1296 DVAVAL          000040  INT\r
1297 DVCDR           100000  INT\r
1298 DVDIR           000004  INT\r
1299 DVDIRI          400000  INT\r
1300 DVIN            000002  INT\r
1301 DVLPT           040000  INT\r
1302 DVMTA           000020  INT\r
1303 DVOUT           000001  INT\r
1304 DVTTY           000010  INT\r
1305 ENTRB           020000  INT\r
1306 I               000010  INT\r
1307 IB              000013  INT\r
1308 IBUFB           200000  INT\r
1309 INITB           400000  INT\r
1310 INPB            010000  INT\r
1311 IO              000020  INT\r
1312 IOACT           010000  INT\r
1313 IOBEG           000002  INT\r
1314 IOBKTL          040000  INT\r
1315 IOCON           000040  INT\r
1316 IODEND          020000  INT\r
1317 IODERR          200000  INT\r
1318 IODISC          400000  INT\r
1319 IODONE          400000  INT\r
1320 IODTER          100000  INT\r
1321 IOEND           000040  INT\r
1322 IOFST           000004  INT\r
1323 IOIMPM          400000  INT\r
1324 IONRCK          000100  INT\r
1325 IORDEL          000100  INT\r
1326 IORET           000020  INT\r
1327 IOS             000000  INT\r
1328 IOSTRT          000010  INT\r
1329 IOUSE           400000  INT\r
1330 IOW             000001  INT\r
1331 IOWC            000020  INT\r
1332 IOWS            400000  INT\r
1333 \r
1334 \fCLOCK - CLOCK SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 6-2\r
1335 CLOCK   MAC     24-APR-78 03:29         SYMBOL TABLE\r
1336 \r
1337 ITEM            000004  INT\r
1338 JA              000011  \r
1339 JBFADR          000000  INT\r
1340 JBFCTR          000002  INT\r
1341 JBFPTR          000001  INT\r
1342 JBTADR          000113' EXT\r
1343 JBTSTS          000037' EXT\r
1344 JBUF            000005  INT\r
1345 JDAT            000011  INT\r
1346 JERR            002000  INT\r
1347 JIOW            100000  INT\r
1348 JNA             004000  INT\r
1349 JOB             000110' EXT\r
1350 JOBADR          000114' EXT\r
1351 JOBDAC          000131' EXT\r
1352 JOBDAT          000115' EXT\r
1353 JOBDHI          000076' EXT\r
1354 JOBLEV          000123' EXT\r
1355 JOBPC           000127' EXT\r
1356 JOBPDP          000121' EXT\r
1357 JOBPFU          000101' EXT\r
1358 JOBREL          000116' EXT\r
1359 JOBUXT          000125' EXT\r
1360 LOOKB           040000  INT\r
1361 MTW             010000  INT\r
1362 NUL0            000140' \r
1363 NULJOB          000141' INT\r
1364 NXTJOB          000066' EXT\r
1365 OBUFB           100000  INT\r
1366 OUTPB           004000  INT\r
1367 PDP             000003  INT\r
1368 PI              000004  SPD\r
1369 PICHN           000100  INT\r
1370 PIOFF           000400  \r
1371 PION            000200  \r
1372 PROG            000007  INT\r
1373 RSCHED          000064' INT\r
1374 RUN             200000  INT\r
1375 RUNABL          204000  INT\r
1376 SCHEDF          000136' EXT\r
1377 STOPU           000133' EXT\r
1378 STOR            000005  \r
1379 T               000001  \r
1380 TAC             000001  INT\r
1381 TAC1            000002  INT\r
1382 TEM             000010  INT\r
1383 TIME            000035' EXT\r
1384 TTYATC          020000  INT\r
1385 TTYUSE          010000  INT\r
1386 USRMOD          010000  INT\r
1387 USRPDP          000120' EXT\r
1388 USRPFU          000122' EXT\r
1389 UUO             000014  INT\r
1390 \r
1391 \fCLOCK - CLOCK SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 6-3\r
1392 CLOCK   MAC     24-APR-78 03:29         SYMBOL TABLE\r
1393 \r
1394 UUO0            000126' EXT\r
1395 \f   CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
1396    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
1397    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
1398 CCC                  OOO         OOO      MMMMMM   MMMMMM      CCC                  OOO         OOO      NNN         NNN\r
1399 CCC                  OOO         OOO      MMMMMM   MMMMMM      CCC                  OOO         OOO      NNN         NNN\r
1400 CCC                  OOO         OOO      MMMMMM   MMMMMM      CCC                  OOO         OOO      NNN         NNN\r
1401 CCC                  OOO         OOO      MMM   MMM   MMM      CCC                  OOO         OOO      NNNNNN      NNN\r
1402 CCC                  OOO         OOO      MMM   MMM   MMM      CCC                  OOO         OOO      NNNNNN      NNN\r
1403 CCC                  OOO         OOO      MMM   MMM   MMM      CCC                  OOO         OOO      NNNNNN      NNN\r
1404 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN   NNN   NNN\r
1405 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN   NNN   NNN\r
1406 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN   NNN   NNN\r
1407 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN      NNNNNN\r
1408 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN      NNNNNN\r
1409 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN      NNNNNN\r
1410 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN         NNN\r
1411 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN         NNN\r
1412 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN         NNN\r
1413    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
1414    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
1415    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
1416 \r
1417 \r
1418 \r
1419 \r
1420 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
1421 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
1422 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
1423 LLL                  SSS                        TTT                                                                     \r
1424 LLL                  SSS                        TTT                                                                     \r
1425 LLL                  SSS                        TTT                                                                     \r
1426 LLL                  SSS                        TTT                                                                     \r
1427 LLL                  SSS                        TTT                                                                     \r
1428 LLL                  SSS                        TTT                                                                     \r
1429 LLL                     SSSSSSSSS               TTT                                                                     \r
1430 LLL                     SSSSSSSSS               TTT                                                                     \r
1431 LLL                     SSSSSSSSS               TTT                                                                     \r
1432 LLL                              SSS            TTT                                                                     \r
1433 LLL                              SSS            TTT                                                                     \r
1434 LLL                              SSS            TTT                                                                     \r
1435 LLL                              SSS            TTT                                                                     \r
1436 LLL                              SSS            TTT                                                                     \r
1437 LLL                              SSS            TTT                                                                     \r
1438 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
1439 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
1440 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
1441 \r
1442 \r
1443 \r
1444 \r
1445 Request created: 24-April-1978  05:53:58\r
1446 File: DSKB0 :COMCON.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:32\r
1447 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1965 \r
1448 File will be deleted after printing\r
1449 \f\r
1450 COMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES    MACRO 10 05:51 24-APR-78 PAGE 1\r
1451 S       MAC     24-APR-78 21:40         T.HASTINGS 8-2-65\r
1452 \r
1453                                         XLIST\r
1454                                        LIST\r
1455                                         TITLE COMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES\r
1456                                         SUBTTL T.HASTINGS 8-2-65\r
1457                                 ;CALLED FROM COMMAND DECODER WHICH IS CALLED FROM CLOCK ROUTINE\r
1458                                 ;WITH FOLLOWING ACS SET:\r
1459                                 ;TAC= BYTE POINTER TO COMMAND STRING(SPACE OR CR AFTER COMMAND NAME)\r
1460                                 ;ITEM = JOB NUMBER\r
1461                                 ;DAT = BYTE POINTER TO LAST OUTPUT CHARACTER\r
1462                                 ;DEVDAT= ADDRESS OF DEVICE DATA BLOCK INITIATING COMMAND\r
1463                                 ;JDAT = ADDRESS OF JOB DATA AREA, = 0 IF NO JOB AREA\r
1464 \r
1465                                 ;UPON RETURN FROM COMMAND SETUP ROUTINE, A CR-LF IS ADDED IF\r
1466                                 ;NEEDED AND TTY IS STARTED\r
1467 \r
1468                                 ;SINCE THE COMMAND DECODER IS CALLED FROM THE CLOCK ROUTINE\r
1469                                 ;COMMAND SETUP ROUTINES MUST RUN TO COMPLETION QUICKLY\r
1470                                 ;IF A COMMAND FUNCTION CANNOT DO THIS, IT MUST JUST SET\r
1471                                 ;THE JOB TO A RUNNABLE STATUS AND RETURN I MEDIATELY\r
1472 \r
1473                                 ; "IJOB" - INITIALIZE JOB\r
1474                                 INTERNAL IJOB\r
1475                                 EXTERNAL RADX10,JOBINI,JOBKIL,CRLF,MONJOB\r
1476 \r
1477         000000' 254000  000000* IJOB:   JRST JOBINI\r
1478 \r
1479                                 ;PRINT JOB NUMBER\r
1480 \r
1481                                         INTERNAL PJOB\r
1482         000001' 200040  000004  PJOB:   MOVE TAC, ITEM\r
1483         000002' 260140  000000*         PUSHJ PDP,RADX10\r
1484         000003' 254000  000000*         JRST CRLF\r
1485 \r
1486                                 ;KILL JOB(MUST HAVE CORE ASSIGNED)\r
1487 \r
1488                                         INTERNAL KJOB\r
1489         000004' 254000  000000* KJOB:   JRST JOBKIL\r
1490 \r
1491 \fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES   MACRO 10 05:51 24-APR-78 PAGE 2\r
1492 COMCON  MAC     24-APR-78 01:00         T.HASTINGS 8-2-65\r
1493 \r
1494 \r
1495 \r
1496                                 ; "START L" OR "START" - START AT LOC. L OR STARTING ADDRESS\r
1497                                 INTERNAL START\r
1498                                 EXTERNAL OCTIN,JOBSA,START1,COMERA,STARTU,CPOPJ,CPOPJ1,STARTM\r
1499 \r
1500         000005' 260140  000013' START:  PUSHJ PDP,STRT\r
1501         000006' 254000  000000*         JRST COMERA     ;ERROR\r
1502         000007' 254000  000000*         JRST STARTU     ;GO SET JOB TO START(CONSOLE IN USER MO\r
1503 \r
1504                                 ; "STARTC L" OR  "STARTC" - START AT LOC. L(TTY IN COMMAND MODE)\r
1505 \r
1506                                 INTERNAL STARTC\r
1507                                 EXTERNAL STARTM\r
1508 \r
1509         000010' 260140  000013' STARTC: PUSHJ PDP,STRT\r
1510         000011' 254000  000006*         JRST COMERA     ;ERROR\r
1511         000012' 254000  000000*         JRST STARTM     ;FO SET JOB TO START(TTY IN COM. MODE)\r
1512 \r
1513                                 ;ROUTINE TO SCAN ARGUMENT\r
1514 \r
1515         000013' 260140  000000* STRT:   PUSHJ PDP,OCTIN ;CONVERT OCTAL NO,\r
1516         000014' 254000  000016'         JRST ST2        ;EITHER NO NUMBER OR ERROR\r
1517         000015' 254000  000020'         JRST ST3        ;START JOB C(TAC1)\r
1518 \r
1519         000016' 326100  000000* ST2:    JUMPN TAC1, CPOPJ       ;NOT A NUMBER IF NON-ZERO\r
1520         000017' 550111  000000*         HRRZ TAC1, JOBSA(JDAT)          ;NO, START AT STARTING ADDRES\r
1521         000020' 505100  001000  ST3:    HRLI TAC1, 1000         ;USER MODE FLAG\r
1522         000021' 254000  000000*         JRST CPOPJ1             ;OR RETURN\r
1523 \r
1524 \fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES   MACRO 10 05:51 24-APR-78 PAGE 3\r
1525 COMCON  MAC     24-APR-78 01:00         T.HASTINGS 8-2-65\r
1526 \r
1527 \r
1528 \r
1529                                 ; "CONT" - CONTINUE EXECUTION FROM WHERE LEFT OFF\r
1530                                 INTERNAL CONT\r
1531                                 EXTERNAL CONTU,CONMES,JBTSTS\r
1532 \r
1533         000022' 205100  002000  CONT:   MOVSI TAC1, JERR\r
1534         000023' 616104  000000*         TDNN TAC1, JBTSTS(ITEM)         ;IS JOB ERROR BIT SET?\r
1535         000024' 254000  000000*         JRST CONTU                      ;NO, GO SET JOB TO CONTINUE\r
1536         000025' 265040  000000* CONTA:  JSP TAC,CONMES          ;YES, PRINT CANT CONTINUE\r
1537 \r
1538         000026' 416031  623650          ASCIZ /CAN'T CONTINUE\r
1539         000027' 202071  747250\r
1540         000030' 446352  542432\r
1541         000031' 050000  000000  /\r
1542 \r
1543                                 ; "CONTC" - CONTINUE EXECUTION(TTY REMAINS IN COMMAND MODE)\r
1544 \r
1545                                 INTERNAL CONTC\r
1546                                 EXTERNAL CONTM\r
1547 \r
1548         000032' 205100  002000  CONTC:  MOVSI TAC1, JERR\r
1549         000033' 616104  000023*         TDNN TAC1, JBTSTS(ITEM)         ;IS JOB ERROR BIT SET?\r
1550         000034' 254000  000000*         JRST CONTM      ;NO\r
1551         000035' 254000  000025'         JRST CONTA      ;YES\r
1552 \r
1553                                 ; "DDT" - START EXECUTION AT DDT IN USER AREA\r
1554                                 INTERNAL DDTGO\r
1555                                 EXTERNAL JOBDDT,STARTU\r
1556 \r
1557         000036' 550111  000000* DDTGO:  HRRZ TAC1, JOBDDT(JDAT)         ;GET DDT STARTING ADDRESS\r
1558         000037' 326100  000043'         JUMPN TAC1,DDT1         ;GO START JOB IF NON-ZERO\r
1559         000040' 265040  000025*         JSP TAC,CONMES                  ;ZERO, PRINT"NO DDT"\r
1560 \r
1561         000041' 472364  042210          ASCII /NO DDT\r
1562         000042' 520321  200000  /\r
1563 \r
1564         000043' 505100  010000  DDT1:   HRLI TAC1,USRMOD        ;USER MODE BIT\r
1565         000044' 254000  000007*         JRST STARTU             ;GO SET TO RUN JOB\r
1566                                 ;DIGITAL MAYNARD\r
1567 \r
1568                                 INTERNAL DIGITAL\r
1569 \r
1570         000045' 265040  000040* DIGITAL:        JSP TAC,CONMES\r
1571         000046' 442131  446236          ASCIZ /HELLO\r
1572         000047' 064240  000000  /\r
1573 \r
1574 \fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES   MACRO 10 05:51 24-APR-78 PAGE 4\r
1575 COMCON  MAC     24-APR-78 01:00         T.HASTINGS 8-2-65\r
1576 \r
1577 \r
1578 \r
1579 \r
1580 \r
1581                                 ; "CORE  #" - ASSIGNS #*1024 WORDS OF CORE TO JOB\r
1582                                 ;   "CORE" WITH NO ARGUMENT IS EQUIVALENT TO "CORE 0"\r
1583 \r
1584                                 INTERNAL CORE\r
1585                                 EXTERNAL CORE1,DECIN,ANYRIN,CONMES,COMERA,NOTENF\r
1586                                 EXTERNAL JOBPFI,JBTADR,CPOPJ,JOBPRT,JOBPR1,JOBZER\r
1587                                 EXTERNAL RADX10\r
1588 \r
1589         000050' 260140  000000* CORE:   PUSHJ PDP, DECIN        ;GET NO. OF 1K BLOCKS\r
1590         000051' 254000  000077'         JRST COR3               ;ERROR\r
1591         000052' 336040  000002          SKIPN TAC,TAC1          ;IS ZERO BEING ASKED FOR?\r
1592         000053' 326440  000000*         JUMPN JDAT,JOBZER       ;YES, RELEASE ALL DEVICES IF THERE WAS\r
1593         000054' 260140  000000*         PUSHJ PDP,CORE1\r
1594         000055' 254000  000065'         JRST COR2               ;CORE NOT AVAILABLE (AC TAC = BLO CKS L\r
1595         000056' 550444  000000*         HRRZ JDAT, JBTADR(ITEM)         ;CORE GRANTED, CLEAR PART OF\r
1596         000057' 322440  000016*         JUMPE JDAT, CPOPJ       ;UNLESS ALL CORE WAS RETURNED\r
1597         000060' 402011  000000*         SETZM JOBPRT(JDAT)              ;CLEAR PART PROTECTED FROM IO\r
1598         000061' 505051  000060*         HRLI TAC,JOBPRT(JDAT)\r
1599         000062' 541051  000000*         HRRI TAC, JOBPR1(JDAT)\r
1600         000063' 251051  000000*         BLT TAC, JOBPFI(JDAT)\r
1601         000064' 263140  000000          POPJ PDP,\r
1602 \r
1603         000065' 260140  000002* COR2:   PUSHJ PDP,RADX10        ;PRINT NO. OF FREE 1K BLOCKS LEFT\r
1604         000066' 265040  000045*         JSP TAC,CONMES\r
1605 \r
1606         000067' 202152  242612          ASCIZ / FREE 1K BLOCKS LEFT, NONE ASSIGNED\r
1607         000070' 201431  320204\r
1608         000071' 462370  345646\r
1609         000072' 202310  543250\r
1610         000073' 261011  647634\r
1611         000074' 425010  151646\r
1612         000075' 446171  642610\r
1613         000076' 064240  000000  /\r
1614         000077' 326100  000011* COR3:   JUMPN TAC1, COMERA      ;NOT A NO. IF NON-ZERO, APPEND "?"\r
1615         000100' 254000  000000*         JRST NOTENF             ;NOT ENOUGH ARGUMENT\r
1616 \r
1617 \fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES   MACRO 10 05:51 24-APR-78 PAGE 5\r
1618 COMCON  MAC     24-APR-78 01:00         T.HASTINGS 8-2-65\r
1619 \r
1620 \r
1621 \r
1622                                 ; "SAVE FILE-NAME" - SAVES JOB AREA ON RETRIEVABLE DEVICE\r
1623                                 ;ONLY A SAVE OR A GET IN PROGRESS FOR EACH JOB\r
1624                                 ;NO ATTEMPT IS MADE TO SAVE DEVICE ASSIGNMENTS, ACS, OR PC\r
1625                                 INTERNAL SAVE\r
1626                                 EXTERNAL SAVJOB,START1,SGSET\r
1627 \r
1628         000101' 201100  000000* SAVE:   MOVEI TAC1, SAVJOB      ;SETUP TO RUN SAVJOB\r
1629         000102' 254000  000000*         JRST SGSET\r
1630 \r
1631                                 ; "GET DEVICE:FILE-NAME" - SETS UP JOB AREA FROM RETRIEVABLE DEVICE\r
1632                                 INTERNAL GET\r
1633                                 EXTERNAL GETJOB\r
1634 \r
1635         000103' 201100  000000* GET:    MOVEI TAC1, GETJOB      ;SETUP TO RUN GET JOB\r
1636         000104' 254000  000102*         JRST SGSET\r
1637 \r
1638 \fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES   MACRO 10 05:51 24-APR-78 PAGE 6\r
1639 COMCON  MAC     24-APR-78 01:00         T.HASTINGS 8-2-65\r
1640 \r
1641 \r
1642 \r
1643 \r
1644                                 ;"ASSIGN DEV:NAME" - ASSIGNS DEV TO JOB AND GIVES IT LOGICAL NAME NAM\r
1645 \r
1646                                 ;TEMPORARY ACS\r
1647                         000012          T1=BUFPNT\r
1648                         000013          T=BUFWRD\r
1649 \r
1650                                 INTERNAL ASSIGN\r
1651                                 EXTERNAL CTEXT1, NOTENF, DEVLST, ASSASG, CONMES, PJOBN, ANYRDX, ERNAM\r
1652                                 EXTERNAL CRLF, DEVLG,SYSTAP\r
1653 \r
1654         000105' 260140  000000* ASSIGN: PUSHJ PDP, CTEXT1       ;GET FIRST ARGUMENT\r
1655         000106' 322100  000100*         JUMPE TAC1, NOTENF      ;NO ARGUMENTS TYPED IF 0\r
1656         000107' 200500  000002          MOVE T1, TAC1                   ;SAVE DEVICE NAME\r
1657         000110' 261140  400000          PUSH PDP, ASSCON        ;SAVE INPUT BYTE POINTER\r
1658         000111' 201100  400000          MOVEI TAC1, ASSCON      ;SETUP ASSIGNED BY CONSOLE BIT\r
1659         000112' 554300  000000* ASSN:   HLRZ DEVDAT, DEVLST\r
1660         000113' 312506  000000  ASSG0:  CAME T1,DEVNAM(DEVDAT)          ;DOES PHYSICAL NAME MATCH?\r
1661         000114' 254000  000120'         JRST ASSG1              ;NO\r
1662         000115' 260140  000000*         PUSHJ PDP, ASSASG       ;YES, TRY TO ASSIGN DEVICE\r
1663         000116' 254000  000135'         JRST ASSER1             ;ALREADY ASSIGNED TO ANOTHER JOB\r
1664         000117' 254000  000151'         JRST ASSFIN             ;ASSIGNED\r
1665 \r
1666         000120' 200046  000000  ASSG1:  MOVE TAC,DEVNAM(DEVDAT)         ;IS THIS THE SYSTEM TAPE?\r
1667         000121' 316040  000000*         CAMN TAC,SYSTAP\r
1668         000122' 254000  000131'         JRST ASSG2              ;YES\r
1669         000123' 135540  000000*         LDB T, PJOBN            ;SAVE OLD JOB NUMBER FOR THIS\r
1670         000124' 620040  777777          TRZ TAC,-1              ;COMPARE LEFT HALF ONLY\r
1671         000125' 316040  000012          CAMN TAC, T1\r
1672         000126' 260140  000115*         PUSHJ PDP, ASSASG       ;MATCH, TRY TO ASSIGN IT\r
1673         000127' 254000  000131'         JRST ASSG2              ;KEEP LOOKING\r
1674         000130' 322540  000151'         JUMPE T,ASSFIN          ;IF OLD JOB NUMBER 0, DEVICE PREVIOSLY\r
1675 \r
1676         000131' 554306  000003  ASSG2:  HLRZ DEVDAT, DEVSER(DEVDAT)\r
1677         000132' 326300  000113'         JUMPN DEVDAT, ASSG0\r
1678         000133' 262140  000001          POP PDP, TAC\r
1679         000134' 254000  000211'         JRST NOTDEV             ;PRINT NO SUCH DEVICE\r
1680 \r
1681 \fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES   MACRO 10 05:51 24-APR-78 PAGE 7\r
1682 COMCON  MAC     24-APR-78 01:00         T.HASTINGS 8-2-65\r
1683 \r
1684 \r
1685 \r
1686                                 ;ALREADY ASSIGNED TO ANOTHER JOB\r
1687 \r
1688         000135' 262140  000001  ASSER1: POP PDP, TAC\r
1689         000136' 201040  000144'         MOVEI TAC, ASSMS2\r
1690         000137' 260140  000066*         PUSHJ PDP, CONMES\r
1691         000140' 201100  000012          MOVEI TAC1, ^D10\r
1692         000141' 135040  000123*         LDB TAC, PJOBN\r
1693         000142' 260140  000000*         PUSHJ PDP,ANYRDX\r
1694         000143' 254000  000003*         JRST CRLF\r
1695 \r
1696         000144' 406312  242602  ASSMS2: ASCIZ /ALREADY ASSIGNED TO JOB /\r
1697         000145' 422624  040646\r
1698         000146' 516230  747212\r
1699         000147' 421012  447500\r
1700         000150' 452370  220000\r
1701 \r
1702                                 ;DEVICE ASSIGNED, GIVE IT A LOGICAL NAME\r
1703 \r
1704         000151' 262140  000001  ASSFIN: POP PDP,TAC     ;RESTORE INPUT BYTE POINTER\r
1705         000152' 261140  000006          PUSH PDP,DEVDAT ;SAVE DDB ADDRESS\r
1706         000153' 260140  000105*         PUSHJ PDP,CTEXT1        ;GET SECOND ARG, LOGICAL DEVICE NAME\r
1707         000154' 332040  000002          SKIPE TAC,TAC1  ;IS THERE A LOGICAL NAME SPECIFIED?\r
1708         000155' 260140  000000*         PUSHJ PDP, DEVLG        ;YES, SEE IF IT IS ALREADY IN USE\r
1709                                                                 ;BY THIS USER\r
1710         000156' 254000  000161'         JRST ASSF1                      ;NO\r
1711         000157' 201040  000173'         MOVEI TAC,LOGERR        ;YES, PRINT ERROR\r
1712         000160' 260140  000137*         PUSHJ PDP,CONMES\r
1713         000161' 200303  000000  ASSF1:  MOVE DEVDAT,(PDP)       ;RESTORE DDB ADDRESS\r
1714         000162' 202106  000005          MOVEM TAC1,DEVLOG(DEVDAT)       ;STORE IN DEVICE DATA BLOCK\r
1715         000163' 205100  400000          MOVSI TAC1,DVDIRIN      ;CLEAR DIRECTORY IN CORE BIT\r
1716         000164' 412106  000004          ANDCAM TAC1,DEVMOD(DEVDAT)\r
1717         000165' 260140  000000*         PUSHJ PDP, ERNAM        ;PRINT PHYSICAL DEVICE NAME\r
1718         000166' 262140  000006          POP PDP, DEVDAT\r
1719         000167' 265040  000160*         JSP TAC,CONMES\r
1720 \r
1721         000170' 202032  351622          ASCIZ / ASSIGNED\r
1722         000171' 436350  542032\r
1723         000172' 050000  000000  /\r
1724 \r
1725         000173' 462370  744606  LOGERR: ASCIZ /LOGICAL NAME ALREADY IN USE, /\r
1726         000174' 406304  047202\r
1727         000175' 466124  040630\r
1728         000176' 512130  142262\r
1729         000177' 202231  620252\r
1730         000200' 516125  420000\r
1731 \r
1732 \fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES   MACRO 10 05:51 24-APR-78 PAGE 8\r
1733 COMCON  MAC     24-APR-78 01:00         T.HASTINGS 8-2-65\r
1734 \r
1735 \r
1736 \r
1737                                 ;"DEASSIGN DEV" - DEASSIGNS DEVICE FROM CONSOLE\r
1738 \r
1739                                 INTERNAL DEASSIGN, NOTDEV\r
1740                                 EXTERNAL CTEXT1, DEVSRC, CONMES, ERNAM, DEASG, DEASTY\r
1741 \r
1742         000201' 260140  000153* DEASSIGN: PUSHJ PDP, CTEXT1     ;GET DEVICE NAME\r
1743         000202' 322100  000000*         JUMPE TAC1,DEASTY       ;NO ARG. IF 0, DEASSIGN ALL BUT TTY\r
1744         000203' 200040  000002          MOVE TAC, TAC1          ;DEVICE NAME\r
1745         000204' 260140  000000*         PUSHJ PDP, DEVSRC       ;SEARCH FOR DEVICE\r
1746         000205' 254000  000211'         JRST DEAER1             ;NOT FOUND\r
1747         000206' 260140  000000*         PUSHJ PDP, DEASG        ;FOUND, DEASSIGN IT\r
1748         000207' 254000  000216'         JRST DEAER2             ;NOT PREVIOUSLY ASSIGNED\r
1749         000210' 263140  000000          POPJ PDP,               ;DEVICE DEASSIGNED\r
1750 \r
1751         000211'                 NOTDEV:\r
1752         000211' 265040  000167* DEAER1: JSP TAC,CONMES          ;PRINT NO SUCH DEVICE\r
1753 \r
1754         000212' 472364  051652          ASCIZ /NO SUCH DEVICE\r
1755         000213' 416204  042212\r
1756         000214' 532230  342432\r
1757         000215' 050000  000000  /\r
1758 \r
1759         000216' 261140  000006  DEAER2: PUSH PDP, DEVDAT        ;PRINT PHYSICAL DEVICE NAME\r
1760         000217' 260140  000165*         PUSHJ PDP, ERNAM\r
1761         000220' 262140  000006          POP PDP, DEVDAT\r
1762         000221' 265040  000211*         JSP TAC,CONMES\r
1763 \r
1764         000222' 536032  347116          ASCIZ /WASN'T ASSIGNED\r
1765         000223' 521010  151646\r
1766         000224' 446171  642610\r
1767         000225' 064240  000000  /\r
1768 \r
1769 \fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES   MACRO 10 05:51 24-APR-78 PAGE 9\r
1770 COMCON  MAC     24-APR-78 01:00         T.HASTINGS 8-2-65\r
1771 \r
1772 \r
1773 \r
1774                                 ; "ATTACH N" - ATTACH CONSOLE TO JOB N\r
1775                                 ;CHANGES ADDRESS OF TTY DEVICE DATA BLOCK STORED IN -1(PDP)\r
1776                                 ;BY THE COMMAND DECODER\r
1777 \r
1778                                 INTERNAL ATTACH\r
1779                                 EXTERNAL DECIN,TTYATT,JOBN,ERNAM,CONMES,TTYFND\r
1780 \r
1781         000226' 260140  000050* ATTACH: PUSHJ PDP,DECIN         ;GET JOB NO.\r
1782         000227' 254000  000243'         JRST ATT1               ;NOT A NUMBER OR NONE SPECIFIEED\r
1783         000230' 332000  000002          SKIPE TAC1                      ;0 IS ILLEGAL\r
1784         000231' 301100  000000*         CAIL TAC1, JOBN         ;IS JOB NUMBER TOO BIG?\r
1785         000232' 254000  000243'         JRST ATT1               ;ILLEGAL JOB NUMBER\r
1786         000233' 205040  004000          MOVSI TAC,JNA           ;HAS THIS JOB NO BEEN ASSIGNED?\r
1787         000234' 616042  000033*         TDNN TAC,JBTSTS(TAC1)\r
1788         000235' 254000  000261'         JRST ATT4               ;NO, PRINT ERROR\r
1789         000236' 200200  000002          MOVE ITEM,TAC1          ;JOB NUMBER TO ITEM\r
1790         000237' 260140  000000*         PUSHJ PDP,TTYATT        ;NO, ATTACH TTY\r
1791         000240' 254000  000251'         JRST ATT2               ;ERROR CANT ATTACH\r
1792         000241' 202303  777777          MOVEM DEVDAT,-1(PDP)            ;CHANGE DEV DATA BLOCK ADDRES\r
1793         000242' 254000  000000*         JRST TTYFND             ;ATTACHED. GO SET UP OUTP. BYTE PTR.\r
1794 \r
1795         000243' 265040  000221* ATT1:   JSP TAC,CONMES\r
1796         000244' 446311  442616          ASCIZ /ILLEGAL JOB NUMBER\r
1797         000245' 406304  045236\r
1798         000246' 411011  652632\r
1799         000247' 412132  206424  /\r
1800         000250' 000000  000000\r
1801 \r
1802         000251' 261140  000006  ATT2:   PUSH PDP,DEVDAT\r
1803         000252' 260140  000217*         PUSHJ PDP,ERNAM         ;PRINT TTY DEVICE NAME\r
1804         000253' 262140  000001          POP PDP,TAC\r
1805         000254' 265040  000243*         JSP TAC,CONMES\r
1806         000255' 202031  451212          ASCIZ / ALREADY ATTACHED\r
1807         000256' 406113  120202\r
1808         000257' 522510  141620\r
1809         000260' 426101  505000  /\r
1810 \r
1811         000261' 265040  000254* ATT4:   JSP TAC,CONMES\r
1812         000262' 452370  220234          ASCIZ /JOB NEVER WAS INITIATED\r
1813         000263' 426550  551100\r
1814         000264' 536032  320222\r
1815         000265' 472232  444602\r
1816         000266' 522130  406424  /\r
1817         000267' 000000  000000\r
1818 \r
1819                                 ; "DETACH" - DETACH CONSOLE FORM JOB\r
1820 \r
1821                                 INTERNAL DETACH\r
1822                                 EXTERNAL TTYDET\r
1823 \r
1824         000270' 350003  000000  DETACH: AOS (PDP)       ;SUPRESS CR-LF SO NO TTY DDB SETUP\r
1825 \r
1826 \fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES   MACRO 10 05:51 24-APR-78 PAGE 9-1\r
1827 COMCON  MAC     24-APR-78 01:00         T.HASTINGS 8-2-65\r
1828 \r
1829         000271' 254000  000000*         JRST TTYDET     ;GO DETACH TTY\r
1830 \r
1831                                         END,\r
1832 \r
1833 NO ERRORS DETECTED\r
1834 \r
1835 PROGRAM BREAK IS 000272\r
1836 \r
1837 9K CORE USED\r
1838 \r
1839 \fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES   MACRO 10 05:51 24-APR-78 PAGE 10\r
1840 COMCON  MAC     24-APR-78 01:00         SYMBOL TABLE\r
1841 \r
1842 A               000000  INT\r
1843 AC1             000015  INT\r
1844 AC2             000016  INT\r
1845 AC3             000017  INT\r
1846 AL              000001  INT\r
1847 ANYRDX          000142' EXT\r
1848 ANYRIN          000000  EXT\r
1849 ASSASG          000126' EXT\r
1850 ASSCON          400000  INT\r
1851 ASSER1          000135' \r
1852 ASSF1           000161' \r
1853 ASSFIN          000151' \r
1854 ASSG0           000113' \r
1855 ASSG1           000120' \r
1856 ASSG2           000131' \r
1857 ASSIGN          000105' INT\r
1858 ASSMS2          000144' \r
1859 ASSN            000112' \r
1860 ASSPRG          200000  INT\r
1861 ATT1            000243' \r
1862 ATT2            000251' \r
1863 ATT4            000261' \r
1864 ATTACH          000226' INT\r
1865 B               000014  INT\r
1866 BUFPNT          000012  INT\r
1867 BUFWRD          000013  INT\r
1868 CLOSB           002000  INT\r
1869 CLSIN           000002  INT\r
1870 CLSOUT          000001  INT\r
1871 COMERA          000077' EXT\r
1872 CONMES          000261' EXT\r
1873 CONT            000022' INT\r
1874 CONTA           000025' \r
1875 CONTC           000032' INT\r
1876 CONTM           000034' EXT\r
1877 CONTU           000024' EXT\r
1878 COR2            000065' \r
1879 COR3            000077' \r
1880 CORE            000050' INT\r
1881 CORE1           000054' EXT\r
1882 CPOPJ           000057' EXT\r
1883 CPOPJ1          000021' EXT\r
1884 CRLF            000143' EXT\r
1885 CTEXT1          000201' EXT\r
1886 D               000017  INT\r
1887 DAT             000005  INT\r
1888 DCL             000001  INT\r
1889 DCW             020000  INT\r
1890 DDI             000007  INT\r
1891 DDO             000006  INT\r
1892 DDT1            000043' \r
1893 DDTGO           000036' INT\r
1894 \r
1895 \r
1896 \fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES   MACRO 10 05:51 24-APR-78 PAGE 10-1\r
1897 COMCON  MAC     24-APR-78 01:00         SYMBOL TABLE\r
1898 \r
1899 DDTMEM          000037  INT\r
1900 DDTSYM          000036  INT\r
1901 DEAER1          000211' \r
1902 DEAER2          000216' \r
1903 DEASG           000206' EXT\r
1904 DEASSI          000201' INT\r
1905 DEASTY          000202' EXT\r
1906 DECIN           000226' EXT\r
1907 DEN             000004  INT\r
1908 DETACH          000270' INT\r
1909 DEVADR          000007  INT\r
1910 DEVBUF          000006  INT\r
1911 DEVCHR          000001  INT\r
1912 DEVCTR          000011  INT\r
1913 DEVDAT          000006  INT\r
1914 DEVIAD          000007  INT\r
1915 DEVIOS          000002  INT\r
1916 DEVLG           000155' EXT\r
1917 DEVLOG          000005  INT\r
1918 DEVLST          000112' EXT\r
1919 DEVMOD          000004  INT\r
1920 DEVNAM          000000  INT\r
1921 DEVOAD          000010  INT\r
1922 DEVPTR          000010  INT\r
1923 DEVSER          000003  INT\r
1924 DEVSRC          000204' EXT\r
1925 DGF             000012  INT\r
1926 DIGITA          000045' INT\r
1927 DIN             000003  INT\r
1928 DLK             000005  INT\r
1929 DOU             000002  INT\r
1930 DR              000016  INT\r
1931 DRL             000000  INT\r
1932 DSI             000011  INT\r
1933 DSO             000010  INT\r
1934 DTW             040000  INT\r
1935 DVAVAL          000040  INT\r
1936 DVCDR           100000  INT\r
1937 DVDIR           000004  INT\r
1938 DVDIRI          400000  INT\r
1939 DVIN            000002  INT\r
1940 DVLPT           040000  INT\r
1941 DVMTA           000020  INT\r
1942 DVOUT           000001  INT\r
1943 DVTTY           000010  INT\r
1944 ENTRB           020000  INT\r
1945 ERNAM           000252' EXT\r
1946 GET             000103' INT\r
1947 GETJOB          000103' EXT\r
1948 I               000010  INT\r
1949 IB              000013  INT\r
1950 IBUFB           200000  INT\r
1951 IJOB            000000' INT\r
1952 \r
1953 \fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES   MACRO 10 05:51 24-APR-78 PAGE 10-2\r
1954 COMCON  MAC     24-APR-78 01:00         SYMBOL TABLE\r
1955 \r
1956 INITB           400000  INT\r
1957 INPB            010000  INT\r
1958 IO              000020  INT\r
1959 IOACT           010000  INT\r
1960 IOBEG           000002  INT\r
1961 IOBKTL          040000  INT\r
1962 IOCON           000040  INT\r
1963 IODEND          020000  INT\r
1964 IODERR          200000  INT\r
1965 IODISC          400000  INT\r
1966 IODONE          400000  INT\r
1967 IODTER          100000  INT\r
1968 IOEND           000040  INT\r
1969 IOFST           000004  INT\r
1970 IOIMPM          400000  INT\r
1971 IONRCK          000100  INT\r
1972 IORDEL          000100  INT\r
1973 IORET           000020  INT\r
1974 IOS             000000  INT\r
1975 IOSTRT          000010  INT\r
1976 IOUSE           400000  INT\r
1977 IOW             000001  INT\r
1978 IOWC            000020  INT\r
1979 IOWS            400000  INT\r
1980 ITEM            000004  INT\r
1981 JBFADR          000000  INT\r
1982 JBFCTR          000002  INT\r
1983 JBFPTR          000001  INT\r
1984 JBTADR          000056' EXT\r
1985 JBTSTS          000234' EXT\r
1986 JBUF            000005  INT\r
1987 JDAT            000011  INT\r
1988 JERR            002000  INT\r
1989 JIOW            100000  INT\r
1990 JNA             004000  INT\r
1991 JOBDDT          000036' EXT\r
1992 JOBINI          000000' EXT\r
1993 JOBKIL          000004' EXT\r
1994 JOBN            000231' EXT\r
1995 JOBPFI          000063' EXT\r
1996 JOBPR1          000062' EXT\r
1997 JOBPRT          000061' EXT\r
1998 JOBSA           000017' EXT\r
1999 JOBZER          000053' EXT\r
2000 KJOB            000004' INT\r
2001 LOGERR          000173' \r
2002 LOOKB           040000  INT\r
2003 MONJOB          000000  EXT\r
2004 MTW             010000  INT\r
2005 NOTDEV          000211' INT\r
2006 NOTENF          000106' EXT\r
2007 OBUFB           100000  INT\r
2008 OCTIN           000013' EXT\r
2009 \r
2010 \fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES   MACRO 10 05:51 24-APR-78 PAGE 10-3\r
2011 COMCON  MAC     24-APR-78 01:00         SYMBOL TABLE\r
2012 \r
2013 OUTPB           004000  INT\r
2014 PDP             000003  INT\r
2015 PICHN           000100  INT\r
2016 PJOB            000001' INT\r
2017 PJOBN           000141' EXT\r
2018 PROG            000007  INT\r
2019 RADX10          000065' EXT\r
2020 RUN             200000  INT\r
2021 RUNABL          204000  INT\r
2022 SAVE            000101' INT\r
2023 SAVJOB          000101' EXT\r
2024 SGSET           000104' EXT\r
2025 ST2             000016' \r
2026 ST3             000020' \r
2027 START           000005' INT\r
2028 START1          000000  EXT\r
2029 STARTC          000010' INT\r
2030 STARTM          000012' EXT\r
2031 STARTU          000044' EXT\r
2032 STRT            000013' \r
2033 SYSTAP          000121' EXT\r
2034 T               000013  \r
2035 T1              000012  \r
2036 TAC             000001  INT\r
2037 TAC1            000002  INT\r
2038 TEM             000010  INT\r
2039 TTYATC          020000  INT\r
2040 TTYATT          000237' EXT\r
2041 TTYDET          000271' EXT\r
2042 TTYFND          000242' EXT\r
2043 TTYUSE          010000  INT\r
2044 USRMOD          010000  INT\r
2045 UUO             000014  INT\r
2046 \f   CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
2047    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
2048    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
2049 CCC                  OOO         OOO      MMMMMM   MMMMMM      CCC                  SSS                  SSS            \r
2050 CCC                  OOO         OOO      MMMMMM   MMMMMM      CCC                  SSS                  SSS            \r
2051 CCC                  OOO         OOO      MMMMMM   MMMMMM      CCC                  SSS                  SSS            \r
2052 CCC                  OOO         OOO      MMM   MMM   MMM      CCC                  SSS                  SSS            \r
2053 CCC                  OOO         OOO      MMM   MMM   MMM      CCC                  SSS                  SSS            \r
2054 CCC                  OOO         OOO      MMM   MMM   MMM      CCC                  SSS                  SSS            \r
2055 CCC                  OOO         OOO      MMM         MMM      CCC                     SSSSSSSSS            SSSSSSSSS   \r
2056 CCC                  OOO         OOO      MMM         MMM      CCC                     SSSSSSSSS            SSSSSSSSS   \r
2057 CCC                  OOO         OOO      MMM         MMM      CCC                     SSSSSSSSS            SSSSSSSSS   \r
2058 CCC                  OOO         OOO      MMM         MMM      CCC                              SSS                  SSS\r
2059 CCC                  OOO         OOO      MMM         MMM      CCC                              SSS                  SSS\r
2060 CCC                  OOO         OOO      MMM         MMM      CCC                              SSS                  SSS\r
2061 CCC                  OOO         OOO      MMM         MMM      CCC                              SSS                  SSS\r
2062 CCC                  OOO         OOO      MMM         MMM      CCC                              SSS                  SSS\r
2063 CCC                  OOO         OOO      MMM         MMM      CCC                              SSS                  SSS\r
2064    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
2065    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
2066    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
2067 \r
2068 \r
2069 \r
2070 \r
2071 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
2072 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
2073 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
2074 LLL                  SSS                        TTT                                                                     \r
2075 LLL                  SSS                        TTT                                                                     \r
2076 LLL                  SSS                        TTT                                                                     \r
2077 LLL                  SSS                        TTT                                                                     \r
2078 LLL                  SSS                        TTT                                                                     \r
2079 LLL                  SSS                        TTT                                                                     \r
2080 LLL                     SSSSSSSSS               TTT                                                                     \r
2081 LLL                     SSSSSSSSS               TTT                                                                     \r
2082 LLL                     SSSSSSSSS               TTT                                                                     \r
2083 LLL                              SSS            TTT                                                                     \r
2084 LLL                              SSS            TTT                                                                     \r
2085 LLL                              SSS            TTT                                                                     \r
2086 LLL                              SSS            TTT                                                                     \r
2087 LLL                              SSS            TTT                                                                     \r
2088 LLL                              SSS            TTT                                                                     \r
2089 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
2090 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
2091 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
2092 \r
2093 \r
2094 \r
2095 \r
2096 Request created: 24-April-1978  05:53:58\r
2097 File: DSKB0 :COMCSS.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:32\r
2098 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1951 \r
2099 File will be deleted after printing\r
2100 \f\r
2101 COMCSS - COMMAND COMMON ROUTINES        MACRO 10 05:51 24-APR-78 PAGE 1\r
2102 S       MAC     24-APR-78 21:40         T. HASTINGS         8-15-65\r
2103 \r
2104                                         XLIST\r
2105                                        LIST\r
2106                                 TITLE COMCSS - COMMAND COMMON ROUTINES\r
2107                                 SUBTTL    T. HASTINGS       8-15-65\r
2108                                 ;ROUTINE TO RETURN NEXT ALPHANUMERIC STRING\r
2109                                 ; IN COMMAND LINE (SIXBIT)\r
2110                                 ; CALL:   MOVE TAC, BYTE POINTER TO FIRST CHAR.-1\r
2111                                 ;         PUSHJ PDP, CTEXT\r
2112                                 ; SIXBIT STRING RETURN LEFT JUSTIFIED IN AC TAC1\r
2113 \r
2114                                 INTERNAL CTEXT, CTEXT1\r
2115 \r
2116                         000012  T=BUFPNT            ;TEMPORARY ACS\r
2117                         000013  T1=BUFWRD\r
2118                         000014  T2=UUO\r
2119 \r
2120         000000' 201100  000000  CTEXT1:   MOVEI TAC1, 0         ;CHECK PREVIOUS BREAK CHAR.\r
2121         000001' 135500  000001            LDB T, TAC\r
2122         000002' 306500  000015            CAIN T, 15            ;RETURN IF CR.\r
2123         000003' 263140  000000            POPJ PDP,\r
2124 \r
2125         000004' 260140  000035' CTEXT:    PUSHJ PDP, SKIPS              ;SKIP LEADING SPACES, TABS\r
2126         000005' 200500  000231'           MOVE T,[POINT 6,TAC1]\r
2127         000006' 201100  000000            MOVEI TAC1, 0\r
2128         000007' 135540  000001            LDB T1, TAC\r
2129         000010' 254000  000012'           JRST CTEX1\r
2130         000011' 134540  000001  CTEX0:    ILDB T1,TAC\r
2131         000012' 260140  000024' CTEX1:    PUSHJ PDP, CTEX               ;IS IT ALPHANUMERIC\r
2132         000013' 263140  000000            POPJ PDP,                     ;NO. EXIT\r
2133         000014' 640540  000040            TRC T1,40                     ;CONVERT TO SIXBIT\r
2134         000015' 136540  000012            IDPB T1,T                     ;YES, STORE AWAY\r
2135         000016' 312500  000232'           CAME T,[POINT 6,TAC1,35]      ;SIX CHARACTER YET\r
2136         000017' 254000  000011'           JRST CTEX0                    ;NO\r
2137         000020' 134540  000001  CTEX2:    ILDB T1, TAC                  ;YES\r
2138         000021' 260140  000024'           PUSHJ PDP, CTEX               ;IS IT ALPHANUMERIC\r
2139         000022' 263140  000000            POPJ PDP,                     ;NO, EXIT\r
2140         000023' 254000  000020'           JRST CTEX2\r
2141 \r
2142                                 ;SCAN FOR ALPHANUMERIC CHAR IN T1\r
2143         000024' 301540  000060  CTEX:     CAIL T1, "0"\r
2144         000025' 303540  000132            CAILE T1, "Z"         ;LETTERS ARE LARGER THAN NOS.\r
2145         000026' 263140  000000            POPJ PDP,           ;NEITHER\r
2146         000027' 303540  000071            CAILE T1, "9"\r
2147         000030' 301540  000101            CAIL T1, "A"\r
2148         000031' 350003  000000            AOS (PDP)           ;LETTER OR NUMBER\r
2149         000032' 263140  000000            POPJ PDP,\r
2150 \r
2151 \fCOMCSS - COMMAND COMMON ROUTINES       MACRO 10 05:51 24-APR-78 PAGE 2\r
2152 COMCSS  MAC     24-APR-78 01:01         T. HASTINGS         8-15-65\r
2153 \r
2154 \r
2155                                 ;ROUTINE TO IGNORE LEADING SPACES AND TABS\r
2156                                 ;CALL:    MOVE TAC, BYTE POINTER TO CHAR.\r
2157                                 ;         PUSHJ PDP, SKIPS1\r
2158 \r
2159                                 INTERNAL SKIPS1\r
2160 \r
2161         000033' 135500  000001  SKIPS1:   LDB T, TAC\r
2162         000034' 254000  000036'           JRST SKIPSA\r
2163 \r
2164                                 ;ROUTINE TO IGNORE LEDING SPACES AND TABS \r
2165                                 ;CALL:    MOVE TAC, BYTE POINTER TO CHAR.-1\r
2166                                 ;         PUSHJ PDP, SKIPS\r
2167 \r
2168                                 INTERNAL SKIPS\r
2169 \r
2170         000035' 134500  000001  SKIPS:    ILDB T, TAC\r
2171         000036' 302500  000040  SKIPSA:   CAIE T, " "\r
2172         000037' 306500  000011            CAIN T, 11\r
2173         000040' 254000  000035'           JRST SKIPS\r
2174         000041' 263140  000000            POPJ PDP,\r
2175 \r
2176 \fCOMCSS - COMMAND COMMON ROUTINES       MACRO 10 05:51 24-APR-78 PAGE 3\r
2177 COMCSS  MAC     24-APR-78 01:01         T. HASTINGS         8-15-65\r
2178 \r
2179 \r
2180                                 ;ROUTINE TO APPEND A "?" TO INPUT STRING AND SET AS OUTPUT\r
2181                                 ;CALL:    MOVE TAC, BYTE POINTER TO LAST CHAR. IN INPUT STRING\r
2182                                 ;         PUSHJ PDP, COMERA\r
2183 \r
2184                                 INTERNAL COMERA\r
2185 \r
2186         000042' 133000  000001  COMERA:   IBP TAC\r
2187  \r
2188                                 ;ROUTINE TO REPLACE LAST CHARACTER IN INPUT STRING BY "?"\r
2189                                 ;AND SET AS OUTPUT\r
2190                                 ;CALL:    MOVE TAC, BYTE POINTER TO LAST CHAR. IN INPUT STRING\r
2191                                 ;         PUSHJ PDP, COMERR\r
2192 \r
2193                                 INTERNAL COMERR\r
2194 \r
2195                                 EXTERNAL TTYBUF\r
2196 \r
2197         000043' 200240  000001  COMERR:   MOVE DAT,TAC\r
2198         000044' 201506  000000*           MOVEI T,TTYBUF(DEVDAT)        ;IS THERE MORE THAN 3 WORDS I\r
2199         000045' 305505  777775            CAIGE T,-3(DAT)\r
2200         000046' 541252  000003            HRRI DAT,3(T)         ;YES, TYPE ONLY 3\r
2201         000047' 201500  000077            MOVEI T, "?"            ;APPEND "?"\r
2202         000050' 137500  000005            DPB T, DAT\r
2203         000051' 265040  000060'           JSP TAC,CONMES\r
2204 \r
2205         000052' 202331  747222            ASCIZ / MONITOR COMMAND ERROR\r
2206         000053' 522372  220206\r
2207         000054' 476331  540634\r
2208         000055' 421010  551244\r
2209         000056' 476441  505000  /\r
2210 \r
2211 \fCOMCSS - COMMAND COMMON ROUTINES       MACRO 10 05:51 24-APR-78 PAGE 4\r
2212 COMCSS  MAC     24-APR-78 01:01         T. HASTINGS         8-15-65\r
2213 \r
2214 \r
2215                                 ;ROUTINE TO PRINT CARRIAGE RETURN-LINE-FEED\r
2216                                 ;CALL:    MOVE DAT,BYTE POINTER TO OUTPUT\r
2217                                 ;         PUSHJ PDP,CRLF\r
2218 \r
2219                                 INTERNAL CRLF\r
2220 \r
2221                                 CRLF:     MOVEI TAC,[ASCII /\r
2222         000057' 201040  000233' /]\r
2223 \r
2224                                 ;ROUTINE TO MOVE ASCII CHAR. STRING TO CONSOLE OUTPUT BUFFER\r
2225                                 ; CALL:   MOVE DAT, BYTE POINTER TO LAST OUTPUT CHARACTER\r
2226                                 ;         MOVEI TAC,  ADDRESS OF ASCII MESSAGE`\r
2227                                 ;         PUSHJ PDP, CONMES\r
2228                                 ; STRING TERMINATED BY NULL\r
2229                                 ; CONMES DOES NOT START TTY\r
2230 \r
2231                                 INTERNAL CONMES\r
2232 \r
2233         000060' 261140  000002  CONMES:   PUSH PDP, TAC1\r
2234         000061' 505040  440700            HRLI TAC, 440700      ;FORM BYTE POINTER\r
2235         000062' 134100  000001  CON0:     ILDB TAC1, TAC\r
2236         000063' 322100  000066'           JUMPE TAC1, CON1\r
2237         000064' 136100  000005            IDPB TAC1, DAT\r
2238         000065' 254000  000062'           JRST CON0\r
2239         000066' 262140  000002  CON1:     POP PDP, TAC1\r
2240         000067' 263140  000000            POPJ PDP,\r
2241 \r
2242                                 ;ROUTINE TO PRINT "TO FEW ARGUMENTS"\r
2243                                 ;CALL:    MOVE DAT,BYTE POINTER\r
2244                                 ;         PUSHJ PDP,NOTENF\r
2245 \r
2246                                 INTERNAL NOTENF\r
2247 \r
2248         000070' 265040  000060' NOTENF:   JSP TAC,CONMES\r
2249 \r
2250         000071' 522371  720214  ASCIZ /TOO FEW ARGUMENTS\r
2251         000072' 426564  040644\r
2252         000073' 436531  542634\r
2253         000074' 522461  505000  /\r
2254 \r
2255 \fCOMCSS - COMMAND COMMON ROUTINES       MACRO 10 05:51 24-APR-78 PAGE 5\r
2256 COMCSS  MAC     24-APR-78 01:01         T. HASTINGS         8-15-65\r
2257 \r
2258 \r
2259                                 ;ROUTINE TO INITIALIZE A JOB\r
2260                                 ;CALL:    MOVE ITEM, JOB NUMBER\r
2261                                 ;         PUSHJ PDP, JOBINI\r
2262                                 ;         DEVDAT IS SETUP ON RETURN\r
2263 \r
2264                                 INTERNAL JOBINI,JOBZER\r
2265                                 EXTERNAL JBTSTS,PJOBN,CORE1,MONJOB,ESTOP,TTYATT\r
2266 \r
2267         000075' 326200  000100' JOBINI:   JUMPN ITEM,JOB0       ;HAS A JOB NUMBER BEED ASSIGNED?\r
2268         000076' 260140  000135'           PUSHJ PDP,ASSJOB      ;NO, THEN ASSIGN ONE.\r
2269         000077' 254000  000060'           JRST CONMESS          ;NONE LEFT\r
2270         000100' 260140  000000* JOB0:     PUSHJ PDP,TTYATT      ;ATTACH TTY\r
2271         000101' 255000  000000            JFCL                  ;ALREADY ATTACHED\r
2272         000102' 205040  004000            MOVSI TAC,JNA         ;CLEAR JOB NO. ASSIGNED BIT\r
2273         000103' 412044  000000*           ANDCAM TAC,JBTSTS(ITEM)         ;TO FORCE MESSAGE\r
2274         000104' 205040  646471            MOVSI TAC,646471      ;SIXBIT /TTY/\r
2275         000105' 202046  000005            MOVEM TAC, DEVLOG(DEVDAT)       ;SET LOGICAL NAME\r
2276         000106' 201500  400000            MOVEI T, ASSCON       ;SET ASSIGNED BY CONSOLE BIT\r
2277         000107' 436506  000004            IORM T, DEVMOD(DEVDAT)\r
2278         000110' 260140  000172'           PUSHJ PDP, DEASTY     ;DE-ASSIGNED ALL DEVICES EXCEPT TTY\r
2279         000111' 322440  000000*           JUMPE JDAT,CPOPJ      ;DOES JOB ALREDY HAVE CORE?\r
2280 \r
2281                                 ;ROUTINE TO RELEASE ALL DEVICES AND FLUSH CORE\r
2282                                 ;RUN AS MONITOR JOB\r
2283                                 ;CALL:    SAME AS JOBIN\r
2284 \r
2285                                 EXTERNAL IOKILL\r
2286 \r
2287         000112' 541100  000115' JOBZER:   HRRI TAC1,JOB1        ;ADDRESS OF SUB. TO RELEASE DEV.\r
2288         000113' 505100  000000* JOBZR1:   HRLI TAC1, ESTOP      ;RETURN ADDRESS AFER IORELS\r
2289         000114' 254000  000000*           JRST MONJOB           ;GO SCHEDULE MONITOR JOB\r
2290 \r
2291         000115' 260140  000000* JOB1:     PUSHJ PDP,IOKILL      ;KILL ALL IO DEVICES\r
2292         000116' 201040  000000            MOVEI TAC,0           ;FLUSH ALL CORE\r
2293         000117' 370003  000000            SOS (PDP)             ;CORE1 WILL SKIP RETURN\r
2294         000120' 254000  000000*           JRST CORE1\r
2295 \r
2296 \fCOMCSS - COMMAND COMMON ROUTINES       MACRO 10 05:51 24-APR-78 PAGE 6\r
2297 COMCSS  MAC     24-APR-78 01:01         T. HASTINGS         8-15-65\r
2298 \r
2299 \r
2300                                 ;ROUTINE TO KILL CURRENT JOB\r
2301                                 ;CALL   PUSHJ PDP,JOBKIL\r
2302 \r
2303                                 INTERNAL JOBKIL\r
2304                                 EXTERNAL JBTSTS,TTYKIL\r
2305 \r
2306         000121' 350003  000000  JOBKIL:   AOS (PDP)             ;SUPRESS CR-LF AND JOB INIT. CHECK\r
2307         000122' 201040  000001            MOVEI TAC,1\r
2308         000123' 260140  000173'           PUSHJ PDP,DEASAL      ;DEASSIGN ALL DEVICES\r
2309         000124' 322440  000132'           JUMPE JDAT,JOBKA      ;DOES JOB HAVE CORE?\r
2310         000125' 541100  000127'           HRRI TAC1,JOBK2       ;YES,RELEAS DEVICE AND CLEAR\r
2311         000126' 254000  000113'           JRST JOBZR1\r
2312 \r
2313         000127' 261140  000006  JOBK2:    PUSH PDP,DEVDAT       ;SAVE DEVDAT FOR TTYKIL\r
2314         000130' 260140  000115'           PUSHJ PDP,JOB1        ;FLUSH CORE AND RELEASE DEVICES\r
2315         000131' 262140  000006            POP PDP,DEVDAT\r
2316         000132' 205040  002000  JOBKA:    MOVSI TAC,JERR        ;CLEAR ALL BUT JOB ERROR BIT\r
2317         000133' 202044  000103*           MOVEM TAC,JBTSTS(ITEM)          ;IN JOB STATUS WORD\r
2318         000134' 254000  000000*           JRST TTYKIL           ;RETURN TTY TO VIRGIN STATE\r
2319 \r
2320                                 ;ROUTINE TO ASSIGN AN UNUSED JOB NUMBER\r
2321                                 ;CALL     PUSHJ PDP,ASSJOB\r
2322                                 ;         ERROR RETURN       TAC DESTROYED\r
2323                                 ;         OK RETURN       ITEM SET, TAC AND TAC1 PRESERVED\r
2324 \r
2325                                 INTERNAL ASSJOB\r
2326                                 EXTERNAL MJOBN,JBTSTS,CPOPJ1\r
2327 \r
2328         000135' 205200  000000* ASSJOB:   MOVSI ITEM,MJOBN\r
2329         000136' 253200  000137'           AOBJN ITEM,.+1\r
2330         000137' 205540  004000            MOVSI T1,JNA\r
2331         000140' 612544  000133*           TDNE T1,JBTSTS(ITEM)\r
2332         000141' 253200  000140'           AOBJN ITEM,.-1\r
2333         000142' 325200  000145'           JUMPGE ITEM,ASSJB1\r
2334         000143' 405200  777777            ANDI ITEM,-1\r
2335         000144' 254000  000000*           JRST CPOPJ1\r
2336 \r
2337         000145' 265040  000060' ASSJB1:   JSP TAC,CONMES\r
2338         000146' 452370  220206            ASCIZ /JOB CAPACITY EXCEEDED\r
2339         000147' 406410  141622\r
2340         000150' 522624  042660\r
2341         000151' 416130  542212\r
2342         000152' 420321  200000  /\r
2343 \r
2344 \fCOMCSS - COMMAND COMMON ROUTINES       MACRO 10 05:51 24-APR-78 PAGE 7\r
2345 COMCSS  MAC     24-APR-78 01:01         T. HASTINGS         8-15-65\r
2346 \r
2347 \r
2348                                 ;ROUTINE TO DEASSIGN A DEVICE \r
2349                                 ;CALL:    MOVE DEVDAT, DEVICE DATA BLOCK\r
2350                                 ;         MOVE ITEM, JOB NUMBER\r
2351                                 ;         PUSHJ DPD, DEASG\r
2352                                 ;         ERROR NOT PREVIOUSLY ASSIGNED\r
2353                                 ;         OK RETURN WITH DEVICE DEASSIGNED\r
2354 \r
2355                                 INTERNAL DEASG\r
2356                                 EXTERNAL PJOBN, CPOPJ1\r
2357 \r
2358         000153' 135500  000000* DEASG:    LDB T, PJOBN          ;WAS DEVICE ASSIGNED TO THIS JOB?\r
2359         000154' 312500  000004            CAME T, ITEM\r
2360         000155' 263140  000000            POPJ PDP,             ;NO. RETURN\r
2361         000156' 205500  400000            MOVSI T,DVDIRIN       ;CLEAR DIRECTORY IN CORE BIT\r
2362         000157' 412506  000004            ANDCAM T,DEVMOD(DEVDAT)\r
2363         000160' 201500  400000            MOVEI T, ASSCON       ;YES, IS ASSIGNED BY CONSOLE BIT ON?\r
2364         000161' 616506  000004            TDNN T, DEVMOD(DEVDAT)\r
2365         000162' 263140  000000            POPJ PDP,             ;NO\r
2366         000163' 413506  000004            ANDCAB T,DEVMOD(DEVDAT)        ;YES, CLEAR BIT\r
2367         000164' 402006  000005            SETZM DEVLOG(DEVDAT)           ;CLEAR LOGICAL NAME\r
2368         000165' 602500  200000            TRNE T, ASSPRG        ;IS ASSIGNED BY PROGRAM BIT ON?\r
2369         000166' 254000  000144*           JRST CPOPJ1           ;YES\r
2370         000167' 201500  000000            MOVEI T,0             ;NO, CLEAR JOB NUMBER\r
2371         000170' 137500  000153*           DPB T, PJOBN\r
2372         000171' 254000  000166*           JRST CPOPJ1\r
2373 \r
2374                                 ;ROUTINE TO DEASSIGN ALL DEVICES EXCEPT LOGICAL TTY\r
2375                                 ;CALL:    MOVE ITEM, JOB NUMBER \r
2376                                 ;         PUSHJ PDP, DEASTY\r
2377 \r
2378                                 INTERNAL DEASTY\r
2379 \r
2380         000172' 205040  646471  DEASTY:   MOVSI TAC, 646471     ;SIXBIT /TTY/\r
2381                                                                 ;FALL INTO DEASAL\r
2382 \r
2383                                 ;ROUTINE TO DEASSIGN ALL DEVICES EXECPT ONE\r
2384                                 ;CALL:    MOVE ITEM, JOB NUMBER\r
2385                                 ;         MOVE TAC, LOGICAL DEVICE NOT TO BE DEASSIGNED\r
2386                                 ;         PUSHJ PDP, DEASAL\r
2387 \r
2388                                 INTERNAL DEASAL\r
2389                                 EXTERNAL DEVLST\r
2390 \r
2391         000173' 261140  000006  DEASAL:   PUSH PDP,DEVDAT\r
2392         000174' 554300  000000*           HLRZ DEVDAT,DEVLST    ;SEARCH ALL DDBS\r
2393         000175' 312046  000005  DEA1:     CAME TAC, DEVLOG(DEVDAT)        ;IS THIS THE LOGICAL NAME\r
2394         000176' 260140  000153'           PUSHJ PDP, DEASG      ;NO, TRY TO DEASSIGN IT\r
2395         000177' 255000  000000            JFCL                  ;IGNORE IF CANT\r
2396         000200' 554306  000003            HLRZ DEVDAT, DEVSER(DEVDAT)\r
2397         000201' 326300  000175'           JUMPN DEVDAT, DEA1\r
2398         000202' 262140  000006            POP PDP,DEVDAT\r
2399         000203' 263140  000000            POPJ PDP,\r
2400 \r
2401 \fCOMCSS - COMMAND COMMON ROUTINES       MACRO 10 05:51 24-APR-78 PAGE 8\r
2402 COMCSS  MAC     24-APR-78 01:01         T. HASTINGS         8-15-65\r
2403 \r
2404 \r
2405                                 ;ROUTINE TO READ CONSOLE AND CONVERT ANY RADIX NUMBER\r
2406                                 ; CALL:   MOVE TAC1,  DESIRED RADIX\r
2407                                 ;         MOVE TAC,  BYTE POINTER TO FIRST CHRACTER\r
2408                                 ;         PUSHJ PDP, ANYRIN\r
2409                                 ;         ERROR EXIT            ;AC TAC1=0 IF NO NUMBER BEFORE FIRST NO\r
2410                                 ;         NORMAL EXIT           ;AC TAC1 CONTAINS NUMEBR\r
2411                                 ; SCAN STOPS ON FIRST ILLEGAL CHARACTER OR CR\r
2412                                 ; IGNORES SPACES, TABS, RUBOUTS\r
2413 \r
2414                                 INTERNAL OCTIN,ANYRIN,DECIN,DECIN1\r
2415                                 EXTERNAL CPOPJ1, CPOPJ\r
2416 \r
2417                         000012  C=BUFPNT  ;CHARACTER AC\r
2418                         000013  R=BUFWRD  ;RADIX AC\r
2419 \r
2420         000204' 133000  000001  DECIN1:   IBP TAC       ;SKIP SEPARATION CHARACTER\r
2421         000205' 201100  000012  DECIN:    MOVEI TAC1,12         ;DECIMAL INPUT\r
2422         000206' 254000  000210'           JRST ANYRIN\r
2423 \r
2424         000207' 201100  000010  OCTIN:    MOVEI TAC1, 10\r
2425         000210' 200540  000002  ANYRIN:   MOVE R, TAC1\r
2426         000211' 201100  000000            MOVEI TAC1, 0\r
2427         000212' 260140  000033'           PUSHJ PDP, SKIPS1     ;SKIP LEADING SPACES, TABS\r
2428         000213' 135500  000001            LDB C, TAC\r
2429         000214' 306500  000015            CAIN C, 15            ;CHECK FOR INITIAL CR\r
2430         000215' 263140  000000            POPJ PDP,             ;EXIT WITH 0 IN TAC1\r
2431         000216' 302500  000055  OCT0:     CAIE C,"-"   ;DASH?\r
2432         000217' 306500  000015            CAIN C,15  ;CR?\r
2433         000220' 254000  000171*           JRST CPOPJ1           ;YES, ONLY LEGAL TERMINATORS\r
2434         000221' 275500  000060            SUBI C,60\r
2435         000222' 321500  000224'           JUMPL C, OCTE         ;ERROR IF NEGATIVE\r
2436         000223' 311500  000013            CAML C, R             ;OR .GE. RADIX\r
2437         000224' 344100  000111* OCTE:     AOJA TAC1,CPOPJ       ;ERROR,INSURE TAC1 NON-ZERO\r
2438         000225' 220100  000013            IMUL TAC1, R\r
2439         000226' 270100  000012            ADD TAC1, C\r
2440         000227' 134500  000001  OCT1:     ILDB C, TAC\r
2441         000230' 254000  000216'           JRST OCT0\r
2442 \r
2443                                           END,\r
2444 \r
2445 NO ERRORS DETECTED\r
2446 \r
2447 PROGRAM BREAK IS 000234\r
2448 \r
2449 9K CORE USED\r
2450 \r
2451 \fCOMCSS - COMMAND COMMON ROUTINES       MACRO 10 05:51 24-APR-78 PAGE 9\r
2452 COMCSS  MAC     24-APR-78 01:01         SYMBOL TABLE\r
2453 \r
2454 A               000000  INT\r
2455 AC1             000015  INT\r
2456 AC2             000016  INT\r
2457 AC3             000017  INT\r
2458 AL              000001  INT\r
2459 ANYRIN          000210' INT\r
2460 ASSCON          400000  INT\r
2461 ASSJB1          000145' \r
2462 ASSJOB          000135' INT\r
2463 ASSPRG          200000  INT\r
2464 B               000014  INT\r
2465 BUFPNT          000012  INT\r
2466 BUFWRD          000013  INT\r
2467 C               000012  \r
2468 CLOSB           002000  INT\r
2469 CLSIN           000002  INT\r
2470 CLSOUT          000001  INT\r
2471 COMERA          000042' INT\r
2472 COMERR          000043' INT\r
2473 CON0            000062' \r
2474 CON1            000066' \r
2475 CONMES          000060' INT\r
2476 CORE1           000120' EXT\r
2477 CPOPJ           000224' EXT\r
2478 CPOPJ1          000220' EXT\r
2479 CRLF            000057' INT\r
2480 CTEX            000024' \r
2481 CTEX0           000011' \r
2482 CTEX1           000012' \r
2483 CTEX2           000020' \r
2484 CTEXT           000004' INT\r
2485 CTEXT1          000000' INT\r
2486 D               000017  INT\r
2487 DAT             000005  INT\r
2488 DCL             000001  INT\r
2489 DCW             020000  INT\r
2490 DDI             000007  INT\r
2491 DDO             000006  INT\r
2492 DDTMEM          000037  INT\r
2493 DDTSYM          000036  INT\r
2494 DEA1            000175' \r
2495 DEASAL          000173' INT\r
2496 DEASG           000153' INT\r
2497 DEASTY          000172' INT\r
2498 DECIN           000205' INT\r
2499 DECIN1          000204' INT\r
2500 DEN             000004  INT\r
2501 DEVADR          000007  INT\r
2502 DEVBUF          000006  INT\r
2503 DEVCHR          000001  INT\r
2504 DEVCTR          000011  INT\r
2505 DEVDAT          000006  INT\r
2506 \r
2507 \r
2508 \fCOMCSS - COMMAND COMMON ROUTINES       MACRO 10 05:51 24-APR-78 PAGE 9-1\r
2509 COMCSS  MAC     24-APR-78 01:01         SYMBOL TABLE\r
2510 \r
2511 DEVIAD          000007  INT\r
2512 DEVIOS          000002  INT\r
2513 DEVLOG          000005  INT\r
2514 DEVLST          000174' EXT\r
2515 DEVMOD          000004  INT\r
2516 DEVNAM          000000  INT\r
2517 DEVOAD          000010  INT\r
2518 DEVPTR          000010  INT\r
2519 DEVSER          000003  INT\r
2520 DGF             000012  INT\r
2521 DIN             000003  INT\r
2522 DLK             000005  INT\r
2523 DOU             000002  INT\r
2524 DR              000016  INT\r
2525 DRL             000000  INT\r
2526 DSI             000011  INT\r
2527 DSO             000010  INT\r
2528 DTW             040000  INT\r
2529 DVAVAL          000040  INT\r
2530 DVCDR           100000  INT\r
2531 DVDIR           000004  INT\r
2532 DVDIRI          400000  INT\r
2533 DVIN            000002  INT\r
2534 DVLPT           040000  INT\r
2535 DVMTA           000020  INT\r
2536 DVOUT           000001  INT\r
2537 DVTTY           000010  INT\r
2538 ENTRB           020000  INT\r
2539 ESTOP           000113' EXT\r
2540 I               000010  INT\r
2541 IB              000013  INT\r
2542 IBUFB           200000  INT\r
2543 INITB           400000  INT\r
2544 INPB            010000  INT\r
2545 IO              000020  INT\r
2546 IOACT           010000  INT\r
2547 IOBEG           000002  INT\r
2548 IOBKTL          040000  INT\r
2549 IOCON           000040  INT\r
2550 IODEND          020000  INT\r
2551 IODERR          200000  INT\r
2552 IODISC          400000  INT\r
2553 IODONE          400000  INT\r
2554 IODTER          100000  INT\r
2555 IOEND           000040  INT\r
2556 IOFST           000004  INT\r
2557 IOIMPM          400000  INT\r
2558 IOKILL          000115' EXT\r
2559 IONRCK          000100  INT\r
2560 IORDEL          000100  INT\r
2561 IORET           000020  INT\r
2562 IOS             000000  INT\r
2563 IOSTRT          000010  INT\r
2564 \r
2565 \fCOMCSS - COMMAND COMMON ROUTINES       MACRO 10 05:51 24-APR-78 PAGE 9-2\r
2566 COMCSS  MAC     24-APR-78 01:01         SYMBOL TABLE\r
2567 \r
2568 IOUSE           400000  INT\r
2569 IOW             000001  INT\r
2570 IOWC            000020  INT\r
2571 IOWS            400000  INT\r
2572 ITEM            000004  INT\r
2573 JBFADR          000000  INT\r
2574 JBFCTR          000002  INT\r
2575 JBFPTR          000001  INT\r
2576 JBTSTS          000140' EXT\r
2577 JBUF            000005  INT\r
2578 JDAT            000011  INT\r
2579 JERR            002000  INT\r
2580 JIOW            100000  INT\r
2581 JNA             004000  INT\r
2582 JOB0            000100' \r
2583 JOB1            000115' \r
2584 JOBINI          000075' INT\r
2585 JOBK2           000127' \r
2586 JOBKA           000132' \r
2587 JOBKIL          000121' INT\r
2588 JOBZER          000112' INT\r
2589 JOBZR1          000113' \r
2590 LOOKB           040000  INT\r
2591 MJOBN           000135' EXT\r
2592 MONJOB          000114' EXT\r
2593 MTW             010000  INT\r
2594 NOTENF          000070' INT\r
2595 OBUFB           100000  INT\r
2596 OCT0            000216' \r
2597 OCT1            000227' \r
2598 OCTE            000224' \r
2599 OCTIN           000207' INT\r
2600 OUTPB           004000  INT\r
2601 PDP             000003  INT\r
2602 PICHN           000100  INT\r
2603 PJOBN           000170' EXT\r
2604 PROG            000007  INT\r
2605 R               000013  \r
2606 RUN             200000  INT\r
2607 RUNABL          204000  INT\r
2608 SKIPS           000035' INT\r
2609 SKIPS1          000033' INT\r
2610 SKIPSA          000036' \r
2611 T               000012  \r
2612 T1              000013  \r
2613 T2              000014  \r
2614 TAC             000001  INT\r
2615 TAC1            000002  INT\r
2616 TEM             000010  INT\r
2617 TTYATC          020000  INT\r
2618 TTYATT          000100' EXT\r
2619 TTYBUF          000044' EXT\r
2620 TTYKIL          000134' EXT\r
2621 \r
2622 \fCOMCSS - COMMAND COMMON ROUTINES       MACRO 10 05:51 24-APR-78 PAGE 9-3\r
2623 COMCSS  MAC     24-APR-78 01:01         SYMBOL TABLE\r
2624 \r
2625 TTYUSE          010000  INT\r
2626 USRMOD          010000  INT\r
2627 UUO             000014  INT\r
2628 \f   CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
2629    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
2630    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
2631 CCC                  OOO         OOO      MMMMMM   MMMMMM            III            NNN         NNN            III      \r
2632 CCC                  OOO         OOO      MMMMMM   MMMMMM            III            NNN         NNN            III      \r
2633 CCC                  OOO         OOO      MMMMMM   MMMMMM            III            NNN         NNN            III      \r
2634 CCC                  OOO         OOO      MMM   MMM   MMM            III            NNNNNN      NNN            III      \r
2635 CCC                  OOO         OOO      MMM   MMM   MMM            III            NNNNNN      NNN            III      \r
2636 CCC                  OOO         OOO      MMM   MMM   MMM            III            NNNNNN      NNN            III      \r
2637 CCC                  OOO         OOO      MMM         MMM            III            NNN   NNN   NNN            III      \r
2638 CCC                  OOO         OOO      MMM         MMM            III            NNN   NNN   NNN            III      \r
2639 CCC                  OOO         OOO      MMM         MMM            III            NNN   NNN   NNN            III      \r
2640 CCC                  OOO         OOO      MMM         MMM            III            NNN      NNNNNN            III      \r
2641 CCC                  OOO         OOO      MMM         MMM            III            NNN      NNNNNN            III      \r
2642 CCC                  OOO         OOO      MMM         MMM            III            NNN      NNNNNN            III      \r
2643 CCC                  OOO         OOO      MMM         MMM            III            NNN         NNN            III      \r
2644 CCC                  OOO         OOO      MMM         MMM            III            NNN         NNN            III      \r
2645 CCC                  OOO         OOO      MMM         MMM            III            NNN         NNN            III      \r
2646    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
2647    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
2648    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
2649 \r
2650 \r
2651 \r
2652 \r
2653 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
2654 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
2655 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
2656 LLL                  SSS                        TTT                                                                     \r
2657 LLL                  SSS                        TTT                                                                     \r
2658 LLL                  SSS                        TTT                                                                     \r
2659 LLL                  SSS                        TTT                                                                     \r
2660 LLL                  SSS                        TTT                                                                     \r
2661 LLL                  SSS                        TTT                                                                     \r
2662 LLL                     SSSSSSSSS               TTT                                                                     \r
2663 LLL                     SSSSSSSSS               TTT                                                                     \r
2664 LLL                     SSSSSSSSS               TTT                                                                     \r
2665 LLL                              SSS            TTT                                                                     \r
2666 LLL                              SSS            TTT                                                                     \r
2667 LLL                              SSS            TTT                                                                     \r
2668 LLL                              SSS            TTT                                                                     \r
2669 LLL                              SSS            TTT                                                                     \r
2670 LLL                              SSS            TTT                                                                     \r
2671 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
2672 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
2673 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
2674 \r
2675 \r
2676 \r
2677 \r
2678 Request created: 24-April-1978  05:53:58\r
2679 File: DSKB0 :COMINI.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:33\r
2680 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1939 \r
2681 File will be deleted after printing\r
2682 \f\r
2683 COMINI - THE COMMAND DECODER    MACRO 10 05:51 24-APR-78 PAGE 1\r
2684 S       MAC     24-APR-78 21:40         T. HASTINGS 8-2-65\r
2685 \r
2686                                         XLIST\r
2687                                        LIST\r
2688                                         TITLE COMINI - THE COMMAND DECODER\r
2689                                         SUBTTL  T. HASTINGS 8-2-65\r
2690                                 ;CALLED FROM CLOCK ROUTINE WHEN COMCNT IS GREATER THAN 0\r
2691                                 ;AS SET BY TTY SERVICE ROUTINE\r
2692                                 ;ALL ACS HAVE BEEN SAVED BY CLOCK CHANNEL\r
2693                                 ;THE COMMAND DECODER CALLS TTYCOM WHICH SCANS FOR TTY WHICH TYPED\r
2694                                 ;THE COMMAND AND THEN DISPATCHES(PUSHJ) TO APPROPRIATE\r
2695                                 ;COMMAND SETUP ROTUINE OF THE SAME NAME WITH ACS SET AS:\r
2696                                 ;ITEM = JOB NUMBER\r
2697                                 ;TAC = BYTE POINTER TO COMMAND STRING(SSPACE OR CR AFTER COMMAND NAME)\r
2698                                 ;DAT = BYTE POINTER TO LAST OUTPUT CHARACTER\r
2699                                 ;DEVDAT = ADDRESS OF DEVICE DATA BLOCK TYPING COMMAND\r
2700                                 ;JDAT = ADDRESS OF JOB AREA, = 0 IF NO JOB AREA\r
2701                                 ;PROG = ADDRESS OF PROGRAM AREA\r
2702                                 ;DEVDAT IS ALSO PUSHED ON END OF PD LIST SO IT MAY BE DESTROYED\r
2703                                 ;UPON RETURN FROM COMMAND SETUP ROUTINE. A CR-LF IS ADDED TO\r
2704                                 ;MASSAGE AND TTY IS STARTED ON TTY SPCIFIED BY -1(PDP)\r
2705 \r
2706                                 ;SINCE THE COMMAND DECODER IS CALLED FROM CLOCK ROUTINE\r
2707                                 ;COMMAND SETUP ROUTINE MUST RUN TO COMPLETION QUICKLY\r
2708                                 ;IF A COMMAND FUNCTION CANNON DO THIS. IT MUST JUST SET\r
2709                                 ;THE JOB TO RUNABLE STATUS AND RETURN IMMEDIATELY\r
2710 \r
2711                                 INTERNAL COMMAND\r
2712                                 EXTERNAL TTYCOM,TTYSTR,CTEXT,JBTADR,CONMES\r
2713                                 EXTERNAL COMERR,COMCNT\r
2714                                 EXTERNAL JOBINI,CRLF,CTEXT,RADX10,ASSJOB,JBTSTS\r
2715 \r
2716                         000012  T=BUFPNT  ;TEMPORARY ACS\r
2717                         000013  T1=BUFWRD\r
2718 \r
2719 \fCOMINI - THE COMMAND DECODER   MACRO 10 05:51 24-APR-78 PAGE 2\r
2720 COMINI  MAC     24-APR-78 03:49         T. HASTINGS 8-2-65\r
2721 \r
2722 \r
2723         000000' 260140  000000* COMMAND:  PUSHJ PDP, TTYCOM     ;SETUP DEVDAT,DAT,TAC, AND ITEM\r
2724         000001' 254000  000041'           JRST COM2             ;NONE FOUND\r
2725         000002' 261140  000006            PUSH PDP,DEVDAT       ;SAVE TTY DDB ADDRESS\r
2726         000003' 260140  000000*           PUSHJ PDP, CTEXT      ;RETURN COMMAND NAME IN TAC1\r
2727         000004' 322100  000043'           JUMPE TAC1, COM2A     ;IGNORE BLANK LINE\r
2728         000005' 205500  777760            MOVSI T, -DISPL       ;SEARCH FOR COMMAND NAME\r
2729         000006' 312112  000074'           CAME TAC1, COMTAB(T)  \r
2730         000007' 253500  000006'           AOBJN T, .-1\r
2731         000010' 325500  000047'           JUMPGE T,COM2B        ;WAS COMMAND FOUND?\r
2732         000011' 200112  000114'           MOVE TAC1,DISP(T)     ;YES, GET DISPATCH ADDRESS AND BITS\r
2733         000012' 326200  000026'           JUMPN ITEM, COM1      ;HAS A JOB NUMBER BEEN ASSIGNED\r
2734         000013' 603100  200000            TLNE TAC1,NOJOBN      ;NO, IS A JOB NUMBER NEEDED FOR THIS CO\r
2735         000014' 254000  000026'           JRST COM1 ;NO\r
2736         000015' 260140  000000*           PUSHJ PDP,ASSJOB      ;TRY TO ASSIGN A FREE JOB NUMBER\r
2737         000016' 254000  000067'           JRST COM3A            ;NONE AVAILABLE, ERROR MESSAGE\r
2738 \r
2739 \fCOMINI - THE COMMAND DECODER   MACRO 10 05:51 24-APR-78 PAGE 3\r
2740 COMINI  MAC     24-APR-78 03:49         T. HASTINGS 8-2-65\r
2741 \r
2742         000017' 261140  000001            PUSH PDP, TAC         ;SAVE INPUT BYTE POINTER\r
2743         000020' 261140  000002            PUSH PDP,TAC1         ;SAVE ADDRESS OF COMMAND ROUTINE\r
2744         000021' 403340  000011            SETZB PROG,JDAT       ;NO CORE, CLEAR REL. ADRESS\r
2745         000022' 260140  000000*           PUSHJ PDP,JOBINI      ;INITIALIZE JOB\r
2746         000023' 262140  000002            POP PDP,TAC1          ;RESTORE ADR OF COMMAND ROUTINE\r
2747         000024' 262140  000001            POP PDP, TAC          ;RESTORE INPUT BYTE POINTER\r
2748         000025' 202303  000000            MOVEM DEVDAT,(PDP)    ;SET ADDRESS OF TTY DEV. DATA BLOCK\r
2749         000026' 550444  000000* COM1:     HRRZ JDAT, JBTADR(ITEM)       ;AND JOB DATA AREA\r
2750         000027' 336340  000011            SKIPN PROG,JDAT       ;SET PROG. DOES JOB HAVE CORE?\r
2751         000030' 603100  400000            TLNE TAC1,NOCORE      ;NO. IS CORE NEEDED FOR THIS COMMAND?\r
2752         000031' 254000  000035'           JRST COM1C            ;NO\r
2753         000032' 201040  000051'           MOVEI TAC,NOCOR       ;YES, PRINT "NO CORE ASSIGNED"\r
2754         000033' 260140  000000* COM1B:    PUSHJ PDP,CONMES\r
2755         000034' 254000  000036'           JRST COM1A\r
2756 \r
2757         000035' 260142  000000  COM1C:    PUSHJ PDP,(TAC1)      ;DISPATCH TO COMMAND SETUP ROUTINE\r
2758         000036' 326200  000055' COM1A:    JUMPN ITEM, COM3      ;ADD CR-LF AND CHECK FOR JOB INIT.\r
2759         000037' 262140  000006  COM1D:    POP PDP,DEVDAT        ;RESTORE TTY DDB ADDRESS\r
2760         000040' 260140  000000*           PUSHJ PDP, TTYSTR     ;START OUTPUT, IF ANY\r
2761         000041' 370000  000000* COM2:     SOS COMCNT            ;DECREMENT COMMAND COUNT\r
2762         000042' 263140  000000            POPJ PDP,             ;EXIT\r
2763 \r
2764         000043' 135100  000001  COM2A:    LDB TAC1, TAC         ;NULL FIELD. WAS BREAK CHAR. A CR?\r
2765         000044' 302100  000015            CAIE TAC1,15          ;A CR?\r
2766         000045' 306100  000073            CAIN TAC1,";"           ;OR A SEMI COLON?\r
2767         000046' 254000  000037'           JRST COM1D            ;YES. IGNORE LINE\r
2768         000047' 260140  000000* COM2B:    PUSHJ PDP,COMERR      ;NO. PRINT MONITOR COMMAND ERROR\r
2769         000050' 254000  000037'           JRST COM1D\r
2770 \r
2771         000051' 472364  041636  NOCOR:    ASCIZ /NO CORE ASSIGNED\r
2772         000052' 512124  040646\r
2773         000053' 516230  747212\r
2774         000054' 420321  200000  /\r
2775 \r
2776         000055' 200044  000000* COM3:     MOVE TAC,JBTSTS(ITEM)         ;GET STATUS WORD\r
2777         000056' 663040  004000            TLOE TAC,JNA                  ;IS JOB NO ASSIGNED BIT ON YET\r
2778         000057' 254000  000067'           JRST COM3A                    ;YES, JOB INIT. BEFORE\r
2779         000060' 202044  000055*           MOVEM TAC,JBTSTS(ITEM)\r
2780         000061' 201040  000134'           MOVEI TAC,[ASCIZ /JOB /]\r
2781         000062' 260140  000033*           PUSHJ PDP,CONMES      ;PRINT JOB N INITIALIZED\r
2782         000063' 200040  000004            MOVE TAC,ITEM\r
2783         000064' 260140  000000*           PUSHJ PDP,RADX10      ;PRINT JOB NUMBER\r
2784         000065' 201040  000071'           MOVEI TAC,JOBM\r
2785         000066' 260140  000062*           PUSHJ PDP,CONMES\r
2786         000067' 260140  000000* COM3A:    PUSHJ PDP,CRLF\r
2787         000070' 254000  000037'           JRST COM1D\r
2788 \r
2789         000071' 202231  644650  JOBM:     ASCIZ / INITIALIZED\r
2790         000072' 446031  444664\r
2791         000073' 426101  505000  /\r
2792 \r
2793 \fCOMINI - THE COMMAND DECODER   MACRO 10 05:51 24-APR-78 PAGE 4\r
2794 COMINI  MAC     24-APR-78 03:49         T. HASTINGS 8-2-65\r
2795 \r
2796 \r
2797                                 ;TABLE OF CONSOLE COMMANDS.\r
2798 \r
2799                         400000  NOCORE=400000           ;NO CORE NEEDED FOR COMMAND\r
2800                         200000  NOJOBN=200000           ;NO JOB NUMBER NEEDED FOR COMMAND\r
2801 \r
2802                                 DEFINE NAMES\r
2803                                 <REPEAT 0,<\r
2804                                  C G,COMERR,0\r
2805                                 >\r
2806                                  C CORE,CORE,NOCORE\r
2807                                  C GET,GET,0\r
2808                                  C START,START,0\r
2809                                  C IJOB,IJOB,NOCORE+NOJOBN\r
2810                                  C PJOB,PJOB,NOCORE\r
2811                                  C KJOB,KJOB,NOCORE\r
2812                                  C SAVE,SAVE,0\r
2813                                 REPEAT 0,<\r
2814                                  C RESAVE,COMERR,0\r
2815                                 >\r
2816                                  C CONT,CONT,0\r
2817                                  C DDT,DDTGO,0\r
2818                                  C ASSIGN,ASSIGN,NOCORE\r
2819                                  C DEASSI,DEASSIGN,NOCORE\r
2820                                  C STARTC,STARTC,0\r
2821                                  C CONTC,CONTC,0\r
2822                                  C DETACH,DETACH,NOCORE+NOJOBN\r
2823                                  C ATTACH,ATTACH,NOCORE+NOJOBN\r
2824                                 REPEAT 0,<\r
2825                                  C MTAPE,COMERR,0\r
2826                                  C DAYTIM,COMERR,NOCORE\r
2827                                  C RUNTIM,COMERR,NOCORE\r
2828                                  C TOTTIM,COMERR,NOCORE\r
2829                                  C NULTIM,COMERR,NOCRE\r
2830                                  C SYSDDT,COMERR,NOCORE\r
2831                                  C SYSMAK,SYSMAK,0\r
2832                                 >\r
2833                                  C DIGITAL,DIGITAL,NOCORE+NOJOBN\r
2834                                 >\r
2835 \r
2836 \fCOMINI - THE COMMAND DECODER   MACRO 10 05:51 24-APR-78 PAGE 5\r
2837 COMINI  MAC     24-APR-78 03:49         T. HASTINGS 8-2-65\r
2838 \r
2839 \r
2840                                 ;GENERATE TABLE OF SIXBIT COMMAND NAMES\r
2841 \r
2842                                 DEFINE C(A,B,C)\r
2843                                 <         ZZ=.+1\r
2844                                  SIXBIT /A/\r
2845                                  IFN .-ZZ,<RELOC ZZ> ;ONLY FIRST 6 CHARACTERS\r
2846                                 >\r
2847 \r
2848                                 COMTAB:   NAMES^REPEAT 0,<\r
2849                                  C G,COMERR,0\r
2850                                 >\r
2851         000074' 435762  450000   SIXBIT /CORE/\r
2852         000075' 474564  000000   SIXBIT /GET/\r
2853         000076' 636441  626400   SIXBIT /START/\r
2854         000077' 515257  420000   SIXBIT /IJOB/\r
2855         000100' 605257  420000   SIXBIT /PJOB/\r
2856         000101' 535257  420000   SIXBIT /KJOB/\r
2857         000102' 634166  450000   SIXBIT /SAVE/\r
2858         000103' 435756  640000   SIXBIT /CONT/\r
2859         000104' 444464  000000   SIXBIT /DDT/\r
2860         000105' 416363  514756   SIXBIT /ASSIGN/\r
2861         000106' 444541  636351   SIXBIT /DEASSI/\r
2862         000107' 636441  626443   SIXBIT /STARTC/\r
2863         000110' 435756  644300   SIXBIT /CONTC/\r
2864         000111' 444564  414350   SIXBIT /DETACH/\r
2865         000112' 416464  414350   SIXBIT /ATTACH/\r
2866         000113' 445147  516441   SIXBIT /DIGITAL/\r
2867         000114' 540000  000000\r
2868                         000020  DISPL=.-COMTAB          ;LENTH OF TABLE\r
2869 \r
2870 \fCOMINI - THE COMMAND DECODER   MACRO 10 05:51 24-APR-78 PAGE 6\r
2871 COMINI  MAC     24-APR-78 03:49         T. HASTINGS 8-2-65\r
2872 \r
2873 \r
2874                                 ;GENERATE THE DISPATCH TABLE\r
2875 \r
2876                                 DEFINE C(A,B,C)\r
2877                                 <         XWD C,B\r
2878                                 EXTERNAL B\r
2879                                 >\r
2880 \r
2881                                 DISP:     NAMES^REPEAT 0,<\r
2882                                  C G,COMERR,0\r
2883                                 >\r
2884         000114' 400000  000000*  C CORE,CORE,NOCORE^      XWD NOCORE,CORE\r
2885         000115' 000000  000000*  C GET,GET,0^     XWD 0,GET\r
2886         000116' 000000  000000*  C START,START,0^         XWD 0,START\r
2887         000117' 600000  000000*  C IJOB,IJOB,NOCORE+NOJOBN^       XWD NOCORE+NOJOBN,IJOB\r
2888         000120' 400000  000000*  C PJOB,PJOB,NOCORE^      XWD NOCORE,PJOB\r
2889         000121' 400000  000000*  C KJOB,KJOB,NOCORE^      XWD NOCORE,KJOB\r
2890         000122' 000000  000000*  C SAVE,SAVE,0^   XWD 0,SAVE\r
2891         000123' 000000  000000*  C CONT,CONT,0^   XWD 0,CONT\r
2892         000124' 000000  000000*  C DDT,DDTGO,0^   XWD 0,DDTGO\r
2893         000125' 400000  000000*  C ASSIGN,ASSIGN,NOCORE^          XWD NOCORE,ASSIGN\r
2894         000126' 400000  000000*  C DEASSI,DEASSIGN,NOCORE^        XWD NOCORE,DEASSIGN\r
2895         000127' 000000  000000*  C STARTC,STARTC,0^       XWD 0,STARTC\r
2896         000130' 000000  000000*  C CONTC,CONTC,0^         XWD 0,CONTC\r
2897         000131' 600000  000000*  C DETACH,DETACH,NOCORE+NOJOBN^   XWD NOCORE+NOJOBN,DETACH\r
2898         000132' 600000  000000*  C ATTACH,ATTACH,NOCORE+NOJOBN^   XWD NOCORE+NOJOBN,ATTACH\r
2899         000133' 600000  000000*  C DIGITAL,DIGITAL,NOCORE+NOJOBN^         XWD NOCORE+NOJOBN,DIGITAL\r
2900 \r
2901                                           END,\r
2902 \r
2903 NO ERRORS DETECTED\r
2904 \r
2905 PROGRAM BREAK IS 000135\r
2906 \r
2907 9K CORE USED\r
2908 \r
2909 \fCOMINI - THE COMMAND DECODER   MACRO 10 05:51 24-APR-78 PAGE 7\r
2910 COMINI  MAC     24-APR-78 03:49         SYMBOL TABLE\r
2911 \r
2912 A               000000  INT\r
2913 AC1             000015  INT\r
2914 AC2             000016  INT\r
2915 AC3             000017  INT\r
2916 AL              000001  INT\r
2917 ASSCON          400000  INT\r
2918 ASSIGN          000125' EXT\r
2919 ASSJOB          000015' EXT\r
2920 ASSPRG          200000  INT\r
2921 ATTACH          000132' EXT\r
2922 B               000014  INT\r
2923 BUFPNT          000012  INT\r
2924 BUFWRD          000013  INT\r
2925 CLOSB           002000  INT\r
2926 CLSIN           000002  INT\r
2927 CLSOUT          000001  INT\r
2928 COM1            000026' \r
2929 COM1A           000036' \r
2930 COM1B           000033' \r
2931 COM1C           000035' \r
2932 COM1D           000037' \r
2933 COM2            000041' \r
2934 COM2A           000043' \r
2935 COM2B           000047' \r
2936 COM3            000055' \r
2937 COM3A           000067' \r
2938 COMCNT          000041' EXT\r
2939 COMERR          000047' EXT\r
2940 COMMAN          000000' INT\r
2941 COMTAB          000074' \r
2942 CONMES          000066' EXT\r
2943 CONT            000123' EXT\r
2944 CONTC           000130' EXT\r
2945 CORE            000114' EXT\r
2946 CRLF            000067' EXT\r
2947 CTEXT           000003' EXT\r
2948 D               000017  INT\r
2949 DAT             000005  INT\r
2950 DCL             000001  INT\r
2951 DCW             020000  INT\r
2952 DDI             000007  INT\r
2953 DDO             000006  INT\r
2954 DDTGO           000124' EXT\r
2955 DDTMEM          000037  INT\r
2956 DDTSYM          000036  INT\r
2957 DEASSI          000126' EXT\r
2958 DEN             000004  INT\r
2959 DETACH          000131' EXT\r
2960 DEVADR          000007  INT\r
2961 DEVBUF          000006  INT\r
2962 DEVCHR          000001  INT\r
2963 \r
2964 \r
2965 \fCOMINI - THE COMMAND DECODER   MACRO 10 05:51 24-APR-78 PAGE 7-1\r
2966 COMINI  MAC     24-APR-78 03:49         SYMBOL TABLE\r
2967 \r
2968 DEVCTR          000011  INT\r
2969 DEVDAT          000006  INT\r
2970 DEVIAD          000007  INT\r
2971 DEVIOS          000002  INT\r
2972 DEVLOG          000005  INT\r
2973 DEVMOD          000004  INT\r
2974 DEVNAM          000000  INT\r
2975 DEVOAD          000010  INT\r
2976 DEVPTR          000010  INT\r
2977 DEVSER          000003  INT\r
2978 DGF             000012  INT\r
2979 DIGITA          000133' EXT\r
2980 DIN             000003  INT\r
2981 DISP            000114' \r
2982 DISPL           000020  \r
2983 DLK             000005  INT\r
2984 DOU             000002  INT\r
2985 DR              000016  INT\r
2986 DRL             000000  INT\r
2987 DSI             000011  INT\r
2988 DSO             000010  INT\r
2989 DTW             040000  INT\r
2990 DVAVAL          000040  INT\r
2991 DVCDR           100000  INT\r
2992 DVDIR           000004  INT\r
2993 DVDIRI          400000  INT\r
2994 DVIN            000002  INT\r
2995 DVLPT           040000  INT\r
2996 DVMTA           000020  INT\r
2997 DVOUT           000001  INT\r
2998 DVTTY           000010  INT\r
2999 ENTRB           020000  INT\r
3000 GET             000115' EXT\r
3001 I               000010  INT\r
3002 IB              000013  INT\r
3003 IBUFB           200000  INT\r
3004 IJOB            000117' EXT\r
3005 INITB           400000  INT\r
3006 INPB            010000  INT\r
3007 IO              000020  INT\r
3008 IOACT           010000  INT\r
3009 IOBEG           000002  INT\r
3010 IOBKTL          040000  INT\r
3011 IOCON           000040  INT\r
3012 IODEND          020000  INT\r
3013 IODERR          200000  INT\r
3014 IODISC          400000  INT\r
3015 IODONE          400000  INT\r
3016 IODTER          100000  INT\r
3017 IOEND           000040  INT\r
3018 IOFST           000004  INT\r
3019 IOIMPM          400000  INT\r
3020 IONRCK          000100  INT\r
3021 \r
3022 \fCOMINI - THE COMMAND DECODER   MACRO 10 05:51 24-APR-78 PAGE 7-2\r
3023 COMINI  MAC     24-APR-78 03:49         SYMBOL TABLE\r
3024 \r
3025 IORDEL          000100  INT\r
3026 IORET           000020  INT\r
3027 IOS             000000  INT\r
3028 IOSTRT          000010  INT\r
3029 IOUSE           400000  INT\r
3030 IOW             000001  INT\r
3031 IOWC            000020  INT\r
3032 IOWS            400000  INT\r
3033 ITEM            000004  INT\r
3034 JBFADR          000000  INT\r
3035 JBFCTR          000002  INT\r
3036 JBFPTR          000001  INT\r
3037 JBTADR          000026' EXT\r
3038 JBTSTS          000060' EXT\r
3039 JBUF            000005  INT\r
3040 JDAT            000011  INT\r
3041 JERR            002000  INT\r
3042 JIOW            100000  INT\r
3043 JNA             004000  INT\r
3044 JOBINI          000022' EXT\r
3045 JOBM            000071' \r
3046 KJOB            000121' EXT\r
3047 LOOKB           040000  INT\r
3048 MTW             010000  INT\r
3049 NOCOR           000051' \r
3050 NOCORE          400000  \r
3051 NOJOBN          200000  \r
3052 OBUFB           100000  INT\r
3053 OUTPB           004000  INT\r
3054 PDP             000003  INT\r
3055 PICHN           000100  INT\r
3056 PJOB            000120' EXT\r
3057 PROG            000007  INT\r
3058 RADX10          000064' EXT\r
3059 RUN             200000  INT\r
3060 RUNABL          204000  INT\r
3061 SAVE            000122' EXT\r
3062 START           000116' EXT\r
3063 STARTC          000127' EXT\r
3064 T               000012  \r
3065 T1              000013  \r
3066 TAC             000001  INT\r
3067 TAC1            000002  INT\r
3068 TEM             000010  INT\r
3069 TTYATC          020000  INT\r
3070 TTYCOM          000000' EXT\r
3071 TTYSTR          000040' EXT\r
3072 TTYUSE          010000  INT\r
3073 USRMOD          010000  INT\r
3074 UUO             000014  INT\r
3075 ZZ              000114' \r
3076 \f   CCCCCCCCCCCC         OOOOOOOOO         RRRRRRRRRRRR         EEEEEEEEEEEEEEE                                          \r
3077    CCCCCCCCCCCC         OOOOOOOOO         RRRRRRRRRRRR         EEEEEEEEEEEEEEE                                          \r
3078    CCCCCCCCCCCC         OOOOOOOOO         RRRRRRRRRRRR         EEEEEEEEEEEEEEE                                          \r
3079 CCC                  OOO         OOO      RRR         RRR      EEE                                                      \r
3080 CCC                  OOO         OOO      RRR         RRR      EEE                                                      \r
3081 CCC                  OOO         OOO      RRR         RRR      EEE                                                      \r
3082 CCC                  OOO         OOO      RRR         RRR      EEE                                                      \r
3083 CCC                  OOO         OOO      RRR         RRR      EEE                                                      \r
3084 CCC                  OOO         OOO      RRR         RRR      EEE                                                      \r
3085 CCC                  OOO         OOO      RRRRRRRRRRRR         EEEEEEEEEEEE                                             \r
3086 CCC                  OOO         OOO      RRRRRRRRRRRR         EEEEEEEEEEEE                                             \r
3087 CCC                  OOO         OOO      RRRRRRRRRRRR         EEEEEEEEEEEE                                             \r
3088 CCC                  OOO         OOO      RRR   RRR            EEE                                                      \r
3089 CCC                  OOO         OOO      RRR   RRR            EEE                                                      \r
3090 CCC                  OOO         OOO      RRR   RRR            EEE                                                      \r
3091 CCC                  OOO         OOO      RRR      RRR         EEE                                                      \r
3092 CCC                  OOO         OOO      RRR      RRR         EEE                                                      \r
3093 CCC                  OOO         OOO      RRR      RRR         EEE                                                      \r
3094    CCCCCCCCCCCC         OOOOOOOOO         RRR         RRR      EEEEEEEEEEEEEEE                                          \r
3095    CCCCCCCCCCCC         OOOOOOOOO         RRR         RRR      EEEEEEEEEEEEEEE                                          \r
3096    CCCCCCCCCCCC         OOOOOOOOO         RRR         RRR      EEEEEEEEEEEEEEE                                          \r
3097 \r
3098 \r
3099 \r
3100 \r
3101 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
3102 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
3103 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
3104 LLL                  SSS                        TTT                                                                     \r
3105 LLL                  SSS                        TTT                                                                     \r
3106 LLL                  SSS                        TTT                                                                     \r
3107 LLL                  SSS                        TTT                                                                     \r
3108 LLL                  SSS                        TTT                                                                     \r
3109 LLL                  SSS                        TTT                                                                     \r
3110 LLL                     SSSSSSSSS               TTT                                                                     \r
3111 LLL                     SSSSSSSSS               TTT                                                                     \r
3112 LLL                     SSSSSSSSS               TTT                                                                     \r
3113 LLL                              SSS            TTT                                                                     \r
3114 LLL                              SSS            TTT                                                                     \r
3115 LLL                              SSS            TTT                                                                     \r
3116 LLL                              SSS            TTT                                                                     \r
3117 LLL                              SSS            TTT                                                                     \r
3118 LLL                              SSS            TTT                                                                     \r
3119 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
3120 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
3121 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
3122 \r
3123 \r
3124 \r
3125 \r
3126 Request created: 24-April-1978  05:53:58\r
3127 File: DSKB0 :CORE  .LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:33\r
3128 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1930 \r
3129 File will be deleted after printing\r
3130 \f\r
3131 CORE - CORE ALLOCATION ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 1\r
3132 S       MAC     24-APR-78 21:40         G. BELL 6-29-65\r
3133 \r
3134                                         XLIST\r
3135                                        LIST\r
3136                                 TITLE CORE - CORE ALLOCATION ROUTINE\r
3137                                         SUBTTL G. BELL 6-29-65\r
3138                                 ;         PUSHJ PDP, CORE1      ;ITEM = JOB #. TAC = 1K CORE BLOCKS\r
3139                                                                 ;REQUESTED\r
3140                                 ;         RET1                  ;OLD CORE RETURNED.\r
3141                                 ;         RET2                  ;OLD CORE RETURNED.   JBTADR, JOBREL ARE\r
3142                                                                 ;SET UP\r
3143                                 ; JBADR (ITEM) = POINTER TO JOB AREA. JOBREL (JBTADR) = HIGHEST LOCAT\r
3144                                 ; C(RH) JBTADR IS SET OT 0 OR REQUESTED CORE. JOBREL IS SET IF CORE G\r
3145                                 ; NOT A PURE PROCEDURE ...\r
3146                                 ;CORTAL:  0                             ;COUNT OF FREE CORE\r
3147                                 ;CORTAB:  BLOCK ^D3                     ;TABLE OF 72 BITS. 1 BIT FOR\r
3148                                 ;1K OF CORE. 1 = USED. 0 = FREE\r
3149                                 ;CORLST:  POINT 1, CORTAB, 32           ;POINTER FIRST OUT OF BOUNDS\r
3150                                 ;\r
3151                                 ;TEMPORARY USAGE\r
3152         000000' 000000  000000  CORUSZ:   0                             ;SIZE OF USERS CODE, OLD.-NEW\r
3153         000001' 000000  000000  CORLOC:   0                             ;POSITION OF 1ST FREE BLOCK\r
3154                                 ;\r
3155                                 ;AC ASSIGNMENTS\r
3156                         000012  COR1=BUFPNT\r
3157                         000013  COR2=BUFWRD\r
3158                         000014  COR3=UUO\r
3159                                 INTERNAL CORE1\r
3160                                 EXTERNAL JBTADR,JOBREL,CORLST,CORTAL,CORTAB\r
3161 \r
3162 \fCORE - CORE ALLOCATION ROUTINE MACRO 10 05:51 24-APR-78 PAGE 2\r
3163 CORE    MAC     24-APR-78 22:34         G. BELL 6-29-65\r
3164 \r
3165 \r
3166         000002' 135500  000042' CORE1:    LDB COR1, CORE1P      \r
3167         000003' 202500  000001'           MOVEM COR1, CORLOC\r
3168         000004' 322500  000013'           JUMPE COR1, CORGET            ;IF 0 NO CORE NOEW.\r
3169         000005' 554504  000000*           HLRZ COR1, JBTADR(ITEM)       ;CLEAR OLD CORE\r
3170         000006' 350000  000012            AOS COR1                      ;HIGHEST ADDRESS AVAIL. FORM\r
3171         000007' 240500  777766            ASH COR1, -^D10\r
3172         000010' 202500  000000'           MOVEM COR1, CORUSZ\r
3173         000011' 402000  000014  CORRET:   CLEARM COR3                   ;RETURN OLD CORE\r
3174         000012' 260140  000056'           PUSHJ PDP, CORSTG\r
3175         000013' 402004  000005* CORGET:   SETZM JBTADR(ITEM)    ;CLEAR JOB ADDRESS TO 0\r
3176         000014' 322040  000037'           JUMPE TAC, COROK              ;IF NO CORE TO GET, RETURN\r
3177         000015' 200600  000043'           MOVE COR3, CORE2P     ;SET UP FOR\r
3178         000016' 476000  000001'           SETOM CORLOC                  ;HOLE SEARCH\r
3179         000017' 260140  000044' CORG1:    PUSHJ PDP, CORHOL\r
3180         000020' 254000  000040'           JRST CORNG                    ;UNSUCCESSFUL SEARCH\r
3181         000021' 315500  000001            CAMGE COR1, TAC               ;HOLE FOUND\r
3182         000022' 254000  000017'           JRST CORG1\r
3183         000023' 213000  000012  CORGVE:   MOVNS COR1                    ;BACKUP CORLOC\r
3184         000024' 272500  000001'           ADDM COR1, CORLOC\r
3185         000025' 202040  000000'           MOVEM TAC, CORUSZ             ;RESERVE HOLD FOR JOB\r
3186         000026' 201600  000001            MOVEI COR3, 1                 ;SET CORTAB\r
3187         000027' 260140  000056'           PUSHJ PDP, CORSTG\r
3188         000030' 200500  000001'           MOVE COR1, CORLOC             ;C(RH)=RELOC, C(LH)=PROTECT\r
3189         000031' 240500  000012            ASH COR1, ^D10\r
3190         000032' 542504  000013*           HRRM COR1, JBTADR(ITEM)\r
3191         000033' 240040  000012            ASH TAC, ^D10\r
3192         000034' 275040  000001            SUBI TAC, 1\r
3193         000035' 542052  000000*           HRRM TAC, JOBREL (COR1)\r
3194         000036' 506044  000032*           HRLM TAC,JBTADR(ITEM)\r
3195         000037' 350003  000000  COROK:    AOS (PDP)\r
3196         000040' 200040  000000* CORNG:    MOVE TAC, CORTAL\r
3197         000041' 263140  000000            POPJ PDP,\r
3198 \r
3199         000042' 121004  000036* CORE1P:   POINT 8, JBTADRR(ITEM),25\r
3200         000043' 440100  000000* CORE2P:   POINT 1, CORTAB\r
3201 \r
3202 \fCORE - CORE ALLOCATION ROUTINE MACRO 10 05:51 24-APR-78 PAGE 3\r
3203 CORE    MAC     24-APR-78 22:34         G. BELL 6-29-65\r
3204 \r
3205 \r
3206                                 ;         PUSHJ PDP, CORHOL     ;COR1-HOLES FREE, COR2=TEMP\r
3207                                 ;         RETURN1               ;COR3=POINTER. RETURN1=END OF STRING RE\r
3208                                 ;         RETURN2               ;HOLE FOUND.\r
3209                                 ; CORLOC CONTAINS 0,1.. N, THE CORE BLK PTR. CORLST IS PTR TO\r
3210                                 ; STOP STRING TEST\r
3211         000044' 402000  000012  CORHOL:   CLEARM COR1\r
3212         000045' 316600  000000* CORH01:   CAMN COR3, CORLST             ;TEST DONE\r
3213         000046' 263140  000000            POPJ PDP,\r
3214         000047' 134540  000014            ILDB COR2, COR3               ;TEST NEXT BLOCK\r
3215         000050' 350000  000001'           AOS CORLOC\r
3216         000051' 336000  000013            SKIPN COR2\r
3217         000052' 344500  000045'           AOJA COR1, CORH01             ;COUNT FREE\r
3218         000053' 322500  000045'           JUMPE COR1, CORH01\r
3219         000054' 350003  000000            AOS (PDP)\r
3220         000055' 263140  000000            POPJ PDP,\r
3221                                 ;;        PUSHJ PDP, CORSTG     ;CORUSZ=SIZE RESERVED. CORLOC=LOCATION\r
3222                                 ; IF COR3=0, THEN FREE CORE\r
3223                                 ; IF COR3=1, THEN RESERVE CORE.\r
3224                                 ; USES COR1, COR2, COR3\r
3225                                 ; CORTAL=COUNT OF FREE CORE. AND IS UPDATED\r
3226         000056' 261140  000001  CORSTG:   PUSH PDP, TAC                 ;SAVE NO. OF BLOCKS BEING REQ\r
3227         000057' 200540  000000'           MOVE COR2,CORUSZ              ;FIX CORTALLY\r
3228         000060' 332000  000014            SKIPE COR3\r
3229         000061' 213000  000013            MOVNS COR2\r
3230         000062' 272540  000040*           ADDM COR2, CORTAL\r
3231         000063' 200040  000001'           MOVE TAC, CORLOC              ;GET POINTER-1\r
3232         000064' 231040  000044            IDIVI TAC, ^D36               ;TAC=WORD,TAC1=BIT\r
3233         000065' 270040  000076'           ADD TAC, CORLP1       ;FORM BYTE POINTER\r
3234         000066' 213000  000002            MOVNS TAC1\r
3235         000067' 271100  000044            ADDI TAC1, ^D36\r
3236         000070' 137100  000077'           DPB TAC1, [POINT 6, TAC, 5]\r
3237         000071' 200540  000000'           MOVE COR2, CORUSZ\r
3238         000072' 136600  000001  CORLOP:   DPBI COR3, TAC                ;SET OR CLEAR EACH BIT IN USE\r
3239         000073' 367540  000072'           SOJG COR2, CORLOP\r
3240         000074' 262140  000001            POP PDP, TAC\r
3241         000075' 263140  000000            POPJ PDP,\r
3242 \r
3243         000076' 000100  000043* CORLP1:   XWD 100, CORTAB\r
3244 \r
3245                                           END,\r
3246 \r
3247 NO ERRORS DETECTED\r
3248 \r
3249 PROGRAM BREAK IS 000100\r
3250 \r
3251 9K CORE USED\r
3252 \r
3253 \fCORE - CORE ALLOCATION ROUTINE MACRO 10 05:51 24-APR-78 PAGE 4\r
3254 CORE    MAC     24-APR-78 22:34         SYMBOL TABLE\r
3255 \r
3256 A               000000  INT\r
3257 AC1             000015  INT\r
3258 AC2             000016  INT\r
3259 AC3             000017  INT\r
3260 AL              000001  INT\r
3261 ASSCON          400000  INT\r
3262 ASSPRG          200000  INT\r
3263 B               000014  INT\r
3264 BUFPNT          000012  INT\r
3265 BUFWRD          000013  INT\r
3266 CLOSB           002000  INT\r
3267 CLSIN           000002  INT\r
3268 CLSOUT          000001  INT\r
3269 COR1            000012  \r
3270 COR2            000013  \r
3271 COR3            000014  \r
3272 CORE1           000002' INT\r
3273 CORE1P          000042' \r
3274 CORE2P          000043' \r
3275 CORG1           000017' \r
3276 CORGET          000013' \r
3277 CORGVE          000023' \r
3278 CORH01          000045' \r
3279 CORHOL          000044' \r
3280 CORLOC          000001' \r
3281 CORLOP          000072' \r
3282 CORLP1          000076' \r
3283 CORLST          000045' EXT\r
3284 CORNG           000040' \r
3285 COROK           000037' \r
3286 CORRET          000011' \r
3287 CORSTG          000056' \r
3288 CORTAB          000076' EXT\r
3289 CORTAL          000062' EXT\r
3290 CORUSZ          000000' \r
3291 D               000017  INT\r
3292 DAT             000005  INT\r
3293 DCL             000001  INT\r
3294 DCW             020000  INT\r
3295 DDI             000007  INT\r
3296 DDO             000006  INT\r
3297 DDTMEM          000037  INT\r
3298 DDTSYM          000036  INT\r
3299 DEN             000004  INT\r
3300 DEVADR          000007  INT\r
3301 DEVBUF          000006  INT\r
3302 DEVCHR          000001  INT\r
3303 DEVCTR          000011  INT\r
3304 DEVDAT          000006  INT\r
3305 DEVIAD          000007  INT\r
3306 DEVIOS          000002  INT\r
3307 DEVLOG          000005  INT\r
3308 \r
3309 \r
3310 \fCORE - CORE ALLOCATION ROUTINE MACRO 10 05:51 24-APR-78 PAGE 4-1\r
3311 CORE    MAC     24-APR-78 22:34         SYMBOL TABLE\r
3312 \r
3313 DEVMOD          000004  INT\r
3314 DEVNAM          000000  INT\r
3315 DEVOAD          000010  INT\r
3316 DEVPTR          000010  INT\r
3317 DEVSER          000003  INT\r
3318 DGF             000012  INT\r
3319 DIN             000003  INT\r
3320 DLK             000005  INT\r
3321 DOU             000002  INT\r
3322 DR              000016  INT\r
3323 DRL             000000  INT\r
3324 DSI             000011  INT\r
3325 DSO             000010  INT\r
3326 DTW             040000  INT\r
3327 DVAVAL          000040  INT\r
3328 DVCDR           100000  INT\r
3329 DVDIR           000004  INT\r
3330 DVDIRI          400000  INT\r
3331 DVIN            000002  INT\r
3332 DVLPT           040000  INT\r
3333 DVMTA           000020  INT\r
3334 DVOUT           000001  INT\r
3335 DVTTY           000010  INT\r
3336 ENTRB           020000  INT\r
3337 I               000010  INT\r
3338 IB              000013  INT\r
3339 IBUFB           200000  INT\r
3340 INITB           400000  INT\r
3341 INPB            010000  INT\r
3342 IO              000020  INT\r
3343 IOACT           010000  INT\r
3344 IOBEG           000002  INT\r
3345 IOBKTL          040000  INT\r
3346 IOCON           000040  INT\r
3347 IODEND          020000  INT\r
3348 IODERR          200000  INT\r
3349 IODISC          400000  INT\r
3350 IODONE          400000  INT\r
3351 IODTER          100000  INT\r
3352 IOEND           000040  INT\r
3353 IOFST           000004  INT\r
3354 IOIMPM          400000  INT\r
3355 IONRCK          000100  INT\r
3356 IORDEL          000100  INT\r
3357 IORET           000020  INT\r
3358 IOS             000000  INT\r
3359 IOSTRT          000010  INT\r
3360 IOUSE           400000  INT\r
3361 IOW             000001  INT\r
3362 IOWC            000020  INT\r
3363 IOWS            400000  INT\r
3364 ITEM            000004  INT\r
3365 JBFADR          000000  INT\r
3366 \r
3367 \fCORE - CORE ALLOCATION ROUTINE MACRO 10 05:51 24-APR-78 PAGE 4-2\r
3368 CORE    MAC     24-APR-78 22:34         SYMBOL TABLE\r
3369 \r
3370 JBFCTR          000002  INT\r
3371 JBFPTR          000001  INT\r
3372 JBTADR          000042' EXT\r
3373 JBUF            000005  INT\r
3374 JDAT            000011  INT\r
3375 JERR            002000  INT\r
3376 JIOW            100000  INT\r
3377 JNA             004000  INT\r
3378 JOBREL          000035' EXT\r
3379 LOOKB           040000  INT\r
3380 MTW             010000  INT\r
3381 OBUFB           100000  INT\r
3382 OUTPB           004000  INT\r
3383 PDP             000003  INT\r
3384 PICHN           000100  INT\r
3385 PROG            000007  INT\r
3386 RUN             200000  INT\r
3387 RUNABL          204000  INT\r
3388 TAC             000001  INT\r
3389 TAC1            000002  INT\r
3390 TEM             000010  INT\r
3391 TTYATC          020000  INT\r
3392 TTYUSE          010000  INT\r
3393 USRMOD          010000  INT\r
3394 UUO             000014  INT\r
3395 \fDDDDDDDDDDDD         TTTTTTTTTTTTTTT         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR            222222222   \r
3396 DDDDDDDDDDDD         TTTTTTTTTTTTTTT         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR            222222222   \r
3397 DDDDDDDDDDDD         TTTTTTTTTTTTTTT         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR            222222222   \r
3398 DDD         DDD            TTT            SSS                  EEE                  RRR         RRR      222         222\r
3399 DDD         DDD            TTT            SSS                  EEE                  RRR         RRR      222         222\r
3400 DDD         DDD            TTT            SSS                  EEE                  RRR         RRR      222         222\r
3401 DDD         DDD            TTT            SSS                  EEE                  RRR         RRR                  222\r
3402 DDD         DDD            TTT            SSS                  EEE                  RRR         RRR                  222\r
3403 DDD         DDD            TTT            SSS                  EEE                  RRR         RRR                  222\r
3404 DDD         DDD            TTT               SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR                  222   \r
3405 DDD         DDD            TTT               SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR                  222   \r
3406 DDD         DDD            TTT               SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR                  222   \r
3407 DDD         DDD            TTT                        SSS      EEE                  RRR   RRR                  222      \r
3408 DDD         DDD            TTT                        SSS      EEE                  RRR   RRR                  222      \r
3409 DDD         DDD            TTT                        SSS      EEE                  RRR   RRR                  222      \r
3410 DDD         DDD            TTT                        SSS      EEE                  RRR      RRR            222         \r
3411 DDD         DDD            TTT                        SSS      EEE                  RRR      RRR            222         \r
3412 DDD         DDD            TTT                        SSS      EEE                  RRR      RRR            222         \r
3413 DDDDDDDDDDDD               TTT            SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR      222222222222222\r
3414 DDDDDDDDDDDD               TTT            SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR      222222222222222\r
3415 DDDDDDDDDDDD               TTT            SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR      222222222222222\r
3416 \r
3417 \r
3418 \r
3419 \r
3420 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
3421 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
3422 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
3423 LLL                  SSS                        TTT                                                                     \r
3424 LLL                  SSS                        TTT                                                                     \r
3425 LLL                  SSS                        TTT                                                                     \r
3426 LLL                  SSS                        TTT                                                                     \r
3427 LLL                  SSS                        TTT                                                                     \r
3428 LLL                  SSS                        TTT                                                                     \r
3429 LLL                     SSSSSSSSS               TTT                                                                     \r
3430 LLL                     SSSSSSSSS               TTT                                                                     \r
3431 LLL                     SSSSSSSSS               TTT                                                                     \r
3432 LLL                              SSS            TTT                                                                     \r
3433 LLL                              SSS            TTT                                                                     \r
3434 LLL                              SSS            TTT                                                                     \r
3435 LLL                              SSS            TTT                                                                     \r
3436 LLL                              SSS            TTT                                                                     \r
3437 LLL                              SSS            TTT                                                                     \r
3438 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
3439 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
3440 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
3441 \r
3442 \r
3443 \r
3444 \r
3445 Request created: 24-April-1978  05:53:58\r
3446 File: DSKB0 :DTSER2.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:33\r
3447 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1924 \r
3448 File will be deleted after printing\r
3449 \f\r
3450 DTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING        MACRO 10 05:51 24-APR-78 PAGE 1\r
3451 S       MAC     24-APR-78 21:40         L. HANTMANN 8-2-65 MULTIPLE DIRECTORIES VERSION\r
3452 \r
3453                                         XLIST\r
3454                                        LIST\r
3455                                 TITLE DTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING\r
3456                                 SUBTTL  L. HANTMANN 8-2-65 MULTIPLE DIRECTORIES VERSION\r
3457                         000001          DTSIZ=1\r
3458 \r
3459                                 ;SUBROUTINE FOR DIRECTORY SEARCH\r
3460                                 ;PROG CONTAINS ACTUAL START OF PROGRAM\r
3461                                 ;DEVDAT CONTAINS ACTUAL START OF DVDB\r
3462                                 ;UUO CONTAINS RELATIVE ADDRESS OF DIRECTORY ENTRY IN USER AREA\r
3463                                 ;FORMAT   PUSHJ PDP, UDIRSH\r
3464                                 ;         JRST X                ;RETURN IF EMPTY ENTRY FOUND\r
3465                                 ;         NORMAL RETURN WHEN ENTRY IS FOUND\r
3466                                 INTERNAL ULOOK, UENTER\r
3467                                 EXTERNAL UXIT,PUUOAC,IOIERR,DIRERR,ADRCK,CPOPJ1,THSDAT\r
3468                         000004            UDIRLN=4\r
3469                         000100            UDIRIN=100            ;DIRECTORY IN\r
3470                         000200            UDIREN=200            ;DIRECTORY ENTERED INTO\r
3471                         000400            UNWFRE=400            ;FREE BLCOK POINTER CHANGED\r
3472                         001000            ULINKF=1000           ;LAST OUTPUT BLOCK LINKED TO STORAGE\r
3473                         000001            UX1=TAC\r
3474                         000002            UX2=TAC1\r
3475                         000005            UX3=DAT\r
3476         000000' 602600  777760  UDIRSH:   TRNE UUO,777760       ;IS BLOCK IN UUO ACS?\r
3477         000001' 260140  000000*           PUSHJ PDP,ADRCK       ;NO. CHECK ADDRESS\r
3478         000002' 201054  000003            MOVEI  TAC,3(UUO)\r
3479         000003' 603000  000002            TLNE IOS,IOBEG\r
3480         000004' 260140  000343'           PUSHJ PDP, UBEG\r
3481         000005' 550040  000007            HRRZ UX1, PROG                ;COPY ADR OF START OF PROGRAM\r
3482         000006' 272040  000014            ADDM UX1, UUO                 ;ACTUAL START OF DIR. IN USER\r
3483         000007' 201066  000000*           MOVEI UX1,@UDIR(DEVDAT)       ;ACTUAL POINTER TO DIRECTORY\r
3484         000010' 550101  000000            HRRZ UX2, 0(UX1)              ;RELATIVE ADDR OF 1ST ENTRY I\r
3485                                                                         ;DIRECTORY\r
3486         000011' 505042  777603            HRLI UX1, -^D129+UDIRLN(UX2)  ;ENTRY COUNTER\r
3487         000012' 272100  000001            ADDM UX2, UX1                 ;START OF 1ST ENTRY IN DIRECT\r
3488         000013' 332000  000002            SKIPE UX2\r
3489         000014' 303100  000174            CAILE UX2,174         ;IS THE REL ADR OF 1ST ENTRY INSIDE BUF\r
3490         000015' 254000  000000*           JRST DIRERR           ;NO\r
3491         000016' 336101  000000  UDIR2:    SKIPN UX2, 0 (UX1)            ;FIRST WORD OF ENTRY\r
3492         000017' 263140  000000            POPJ PDP,                     ;SPACES FOUND\r
3493         000020' 316114  000000            CAMN UX2, 0(UUO)              ;CHECK IF = TO USER AREA\r
3494         000021' 254000  000026'           JRST UDIR4                    ;CHECK 2ND WORD\r
3495         000022' 270040  000034' UDIR3:    ADD UX1, UDIRK1       \r
3496         000023' 321040  000016'           JUMPL UX1, UDIR2\r
3497         000024' 262140  000001            POP PDP, UX1                  ;TAKE PREVIOUS EXIT FROM TABL\r
3498         000025' 254000  000000*           JRST UXIT                     ;TABLE FULL\r
3499         000026' 554114  000001  UDIR4:    HLRZ UX2, 1 (UUO)             ;2ND WORD IN USER ARE\r
3500         000027' 322100  000000*           JUMPE UX2, CPOPJ1\r
3501         000030' 554241  000001            HLRZ UX3, 1 (UX1)             ;2ND WORD OF DIRECTORY AREA\r
3502         000031' 302242  000000            CAIE UX3, 0 (UX2)\r
3503         000032' 254000  000022'           JRST UDIR3                    ;CHECK MORE ENTRIES\r
3504         000033' 254000  000027*           JRST CPOPJ1           ;MATCH, SKIP RETURN\r
3505 \r
3506         000034' 000004  000004  UDIRK1:   XWD UDIRLN, UDIRLN\r
3507 \r
3508 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 2\r
3509 DTSER2  MAC     24-APR-78 02:46         L. HANTMANN 8-2-65 MULTIPLE DIRECTORIES VERSION\r
3510 \r
3511 \r
3512                                 ;SUBROUTINE FOR DIRECTORY LOOKUP\r
3513 \r
3514                                 ;FORMAT   PUSHJ PDP, UDIRLU             ;VIA UUO\r
3515                                 ;         JRST X                        ;ENTRY NOT IN TABLE\r
3516 \r
3517         000035' 260140  000000' ULOOK:    PUSHJ PDP, UDIRSH\r
3518         000036' 254000  000025*           JRST UXIT\r
3519         000037' 540241  000001            HRR UX3, 1 (UX1)\r
3520         000040' 506246  000007            HRLM UX3, DEVIAD (DEVDAT)\r
3521         000041' 505101  000000  ULOOK1:   HRLI UX2, 0 (UX1)             ;FROM DIRECTORY\r
3522         000042' 541114  000000            HRRI UX2, 0 (UUO)             ;TO USER\r
3523         000043' 251114  000003            BLT UX2, UDIRLN-1(UUO)\r
3524         000044' 135100  001272'           LDB UX2,[POINT 12,2(UX1),35]  ;GET DATE USER(ENTER)EXEC(LOO\r
3525         000045' 326100  000050'           JUMPN UX2,.+3         ;IS IT 0?\r
3526         000046' 200100  000000*           MOVE UX2,THSDAT       ;YES, USE CURRENT DATE\r
3527         000047' 137100  001273'           DPB UX2,[POINT 12,2(UUO),35]  ;SET EXEC\r
3528         000050' 350003  000000            AOS (PDP)\r
3529         000051' 254000  000311'           JRST UTWDR\r
3530 \r
3531                                 ;SUBROUTINE TO ENTER NEW OR CHANGE OLD DIRECTORY ENTRY\r
3532                                 ;FORMAT   PUSHJ PDP, UDIRCH\r
3533                                 ;         JRST X                        ;NO ROOM IN TABLE\r
3534 \r
3535         000052' 260140  000000' UENTER:   PUSHJ PDP, UDIRSH\r
3536         000053' 254000  000054'           JRST .+1\r
3537         000054' 350246  000000*           AOS UX3, UFREE (DEVDAT)\r
3538         000055' 542254  000001            HRRM UX3,1(UUO)\r
3539         000056' 506246  000010            HRLM UX3, DEVOAD (DEVDAT)\r
3540         000057' 250040  000014            EXCH UX1, UUO\r
3541         000060' 661000  001600            TLO IOS, UDIREN+UNWFRE+ULINKF\r
3542         000061' 202006  000002            MOVEM IOS, DEVIOS(DEVDAT)\r
3543         000062' 254000  000041'           JRST ULOOK1\r
3544 \r
3545 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 3\r
3546 DTSER2  MAC     24-APR-78 02:46         L. HANTMANN 8-2-65 MULTIPLE DIRECTORIES VERSION\r
3547 \r
3548 \r
3549                                 ;CREATE A CLEAN TAPE AND DIRECTORY\r
3550 \r
3551                                 INTERNAL UTPCLR\r
3552                                 EXTERNAL USRJDA\r
3553 \r
3554         000063' 135040  000000* UTPCLR:   LDB TAC,PUUOAC\r
3555         000064' 200301  000000*           MOVE DEVDAT,USRJDA(TAC)\r
3556         000065' 322300  000000*           JUMPE DEVDAT,IOIERR\r
3557         000066' 554046  000000            HLRZ TAC,DEVNAM(DEVDAT)\r
3558         000067' 302040  446441            CAIE TAC,446441\r
3559         000070' 254000  000036*           JRST UXIT             ;NOT DTA\r
3560         000071' 200006  000002            MOVE IOS,DEVIOS(DEVDAT)\r
3561         000072' 621000  000002            TLZ IOS,IOBEG\r
3562         000073' 661000  000700            TLO IOS,UDIRIN+UDIREN+UNWFRE\r
3563                                 IFE DTSIZ,<        MOVEM DEVDAT,DIREC>\r
3564                                 ;THIS FOR SINGLE DIRECTORY ONLY\r
3565         000074' 200046  000007*           MOVE TAC,UDIR(DEVDAT)\r
3566         000075' 200100  001274'           MOVE TAC1,[XWD 1,5]\r
3567         000076' 202101  000000            MOVEM TAC1,(TAC)\r
3568         000077' 507000  000001            HRLS TAC\r
3569         000100' 253040  000101'           AOBJN TAC,.+1\r
3570         000101' 402001  000000            SETZM (TAC)\r
3571         000102' 200100  000001            MOVE TAC1,TAC\r
3572         000103' 350000  000001            AOS TAC\r
3573         000104' 251042  000176            BLT TAC,176(TAC1)\r
3574         000105' 201040  000001            MOVEI TAC, 1\r
3575         000106' 202046  000054*           MOVEM TAC, UFREE (DEVDAT)\r
3576         000107' 202006  000002            MOVEM IOS, DEVIOS(DEVDAT)\r
3577         000110' 260140  000326'           PUSHJ PDP,UTPREL\r
3578         000111' 254000  000070*           JRST UXIT\r
3579 \r
3580 \r
3581                                 ;END OF DTDR\r
3582 \r
3583 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 4\r
3584 DTSER2  MAC     24-APR-78 02:46         L. HANTMANN 8-2-65 MULTIPLE DIRECTORIES VERSION\r
3585 \r
3586 \r
3587                                 SUBTTL  L. HANTMAN PART 1 7-13-65\r
3588                         010000            UREV=10000            ;DT REVERSE BIT\r
3589                         000001            DTSIZ=1               ;1 FOR ONE BUFFER PER TAPE UNIT\r
3590 \r
3591                         000001            UBLK=1                ;NUMBER OF BLOCKS/BLOCK\r
3592                         000001            UCHN=1                ;CHANNEL OF DATA CONTROL = 1, LOC 42\r
3593                         000042            UCHA=42               ;DATA CONTROL INTERRUPT POSITION\r
3594                                           EXTERNAL UXIT,ADVBFF,ADVBFE,IOSET,OUT,WAIT1,WSYNC\r
3595                                           EXTERNAL PIOMOD,PUNIT,UFREE,UDIR,ADRERR,JOBPFI\r
3596                                           ENTRY UTDSP\r
3597 \r
3598                         004010  DACI=4010                       ;DC INPUT DT\r
3599                         003410  DACO=3410                       ;DC OUTPUT DT\r
3600                         220000  SL=220000                       ;DT TURN ON. SELECT\r
3601                         003000          DTR=3000                        ;DT TURN AROUND DELAY\r
3602                         002000  DT=2000                         ;DT START/STOP DELAY\r
3603                         000300  RD=300                          ;DT RD\r
3604                         000700  WD=700                          ;DT WR\r
3605                         000200  RB=200                          ;DT READ BLOCK NOS.\r
3606                         000002  VEOT=2                          ;EOT FLAG BIT\r
3607                         010000  GR=10000                        ;DT REVERSE BIT\r
3608                         040000  JDE=40000                       ;JOB DONE ENABLE\r
3609                         100000  EE=100000                       ;ENABLE END FLAG\r
3610                         002000  URDIR=2000                      ;READING DIRECTORY\r
3611 \r
3612         000112' 254000  000326' UTDSP:    JRST UTPREL           ;RELEASE\r
3613         000113' 254000  000312'           JRST UTPCLS           ;CLOSE\r
3614         000114' 254000  000125'           JRST UOUT             ;OUTPUT\r
3615         000115' 254000  000204'           JRST UIN              ;INPUT\r
3616         000116' 254000  000052'           JRST UENTER           ;ENTER IN DIRECTORY\r
3617         000117' 254000  000035'           JRST ULOOK            ;LOOKUP IN DIRECTORY\r
3618         000120' 254000  000633'           JRST UDMPO            ;DUMPOUT\r
3619         000121' 254000  001022'           JRST UDMPI            ;DUMPIN\r
3620         000122' 254000  000272'           JRST SETO             ;SET OUTPUT BLOCK NO.\r
3621         000123' 254000  000267'           JRST SETI             ;SET INPUT BLOCK NO.\r
3622         000124' 254000  000277'           JRST GETF             ;GET FREE BLOCK\r
3623 \r
3624 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 5\r
3625 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
3626 \r
3627 \r
3628         000125' 260140  001142' UOUT:     PUSHJ PDP, UINTER             ;CHECK INTERLOCK\r
3629         000126' 661000  000020            TLO IOS, IO                   ;WRITING\r
3630         000127' 550046  000010            HRRZ TAC,DEVOAD(DEVDAT)\r
3631         000130' 270040  000007            ADD TAC, PROG                 ;ACTUAL BUFFER ADDRESS\r
3632         000131' 554106  000010            HLRZ TAC1, DEVOAD(DEVDAT)     ;BLOCK TO WRITE\r
3633         000132' 306100  000001            CAIN TAC1,1\r
3634         000133' 254000  000171'           JRST UOUT4                    ;COPY DIRECTORY\r
3635         000134' 554101  000001            HLRZ TAC1, 1(TAC)             ;BLOCK TIE\r
3636         000135' 621000  001000            TLZ IOS, ULINKF               ;NOT LINKED TO FREE STORAGE\r
3637         000136' 326100  000144'           JUMPN TAC1, UOUT1             ;USE BALOCK NUMBER INDICATED\r
3638         000137' 623000  000002            TLZE IOS, IOBEG               ;GET FREE STORAGE BLOCK\r
3639         000140' 260140  000370'           PUSHJ PDP, UBEG3\r
3640         000141' 661000  001400            TLO IOS,UNWFRE+ULINKF         ;LINKED TO FREE STORAGE\r
3641         000142' 202006  000002            MOVEM IOS, DEVIOS (DEVDAT)\r
3642         000143' 350106  000106*           AOS TAC1,UFREE(DEVDAT)        ;NEXT FREE BLOCK\r
3643         000144' 306100  000001  UOUT1:    CAIN TAC1,1                   ;IF 1, THIS IS LAST BLOCK\r
3644         000145' 400100  000000            SETZ TAC1,                    ;LAST BLOCK TIE = 0\r
3645         000146' 506101  000001            HRLM TAC1,1(TAC)              ;BLOCK\r
3646         000147' 552040  001121'           HRRZM TAC,UBUF                ;ACTUAL LOCATION OF DATA\r
3647         000150' 544046  000010            HLR TAC,DEVOAD(DEVDAT)\r
3648         000151' 506106  000010            HRLM TAC1, DEVOAD(DEVDAT)     ;NEXT BLOCK\r
3649         000152' 254000  000375'           JRST USETW\r
3650                                 ;RETURN FROM WRITING 1 BLOCK\r
3651 \r
3652         000153' 200046  000010  UOUT2:    MOVE TAC,DEVOAD(DEVDAT)\r
3653         000154' 505040  000007            HRLI TAC,PROG                 ;PROG, BUFFER ADDRESS\r
3654         000155' 515100  400000            HRLZI TAC1,IOUSE\r
3655         000156' 412120  000001            ANDCAM TAC1,@TAC              ;SET USE BIT IN BUFFER\r
3656         000157' 554106  000010            HLRZ TAC1,DEVOAD(DEVDAT)      ;BLOCK TIE\r
3657         000160' 322100  000167'           JUMPE TAC1,UOUT3              ;WAS BLOCK WRITTEN THE LAST 0\r
3658         000161' 540060  000001            HRR TAC,@TAC                  ;PROG, NEXT BUFFER ADDRESS\r
3659         000162' 542046  000010            HRRM TAC,DEVOAD(DEVDAT)       ;NEXT BUFFER\r
3660         000163' 602000  000040            TRNE IOS, IOCON               ;CONTINUOUS?\r
3661         000164' 254000  000167'           JRST UOUT3                    ;STOP TAPE AND DISMISS\r
3662         000165' 335020  000001            SKIPGE @TAC                   ;IS NEXT BUFFER EMPTY?\r
3663         000166' 254000  000126'           JRST UOUT+1                   ;PROCESS NEXT BLOCK\r
3664         000167' 262140  000001  UOUT3:    POP PDP, TAC                  ;REDUCE TABLE\r
3665         000170' 254000  001220'           JRST DTC1                     ;STOP TAPE AND DISMISS\r
3666 \r
3667 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 6\r
3668 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
3669 \r
3670 \r
3671                                 ;COPY DIRECTORY WHEN WRITING BLOCK 1\r
3672         000171' 505101  000001  UOUT4:    HRLI TAC1,1(TAC)              ;BUFFER ADDRESS, FROM\r
3673         000172' 540106  000074*           HRR TAC1, UDIR(DEVDAT)        ;DIRECTORY ADDRESS, TO\r
3674         000173' 550046  000172*           HRRZ TAC, UDIR(DEVDAT)        ;DIRECTORY ADDRESS\r
3675         000174' 251101  000177            BLT TAC1, 177(TAC)            ;MORE BUFFER AREA TO DIRECTORY\r
3676         000175' 661000  000300            TLO IOS, UDIRIN+UDIREN        ;SET DIRECTORY BITS\r
3677         000176' 200126  000173*           MOVE TAC1, @UDIR(DEVDAT)      ;NEXT FREE BLOCK IN DIRECTORY\r
3678         000177' 556106  000143*           HLRZM TAC1,UFREE(DEVDAT)      ;PLACE IN DATA BLOCK\r
3679         000200' 515100  400000            HRLZI TAC1, IOUSE\r
3680         000201' 413101  000000            ANDCAB TAC1, 0(TAC)           ;CLEAR USE BIT\r
3681         000202' 542106  000010            HRRM TAC1, DEVOAD(DEVDAT)     ;ADVANCE BUFFER POINTER\r
3682         000203' 254000  000242'           JRST UEND2\r
3683                                 ,INPUT- NON DUMP\r
3684 \r
3685         000204' 260140  001142' UIN:      PUSHJ PDP, UINTER             ;CHECK INTERLOCK\r
3686         000205' 621000  000020            TLZ IOS, IO                   ;READING\r
3687         000206' 550046  000007            HRRZ TAC,DEVIAD(DEVDAT)       ;UBUF:=TAC:=DEVIAD+PROG\r
3688         000207' 270040  000007            ADD TAC,PROG\r
3689         000210' 554106  000007            HLRZ TAC1, DEVIAD(DEVDAT)     ;BLOCK TO READ\r
3690         000211' 306100  000001            CAIN TAC1, 1                  ;TRYING TO READ DIRECTORY?\r
3691         000212' 254000  000251'           JRST UIN2                     ;COPY DIRECTORY\r
3692         000213' 552040  001121'           HRRZM TAC,UBUF\r
3693         000214' 554046  000007            HLRZ TAC,DEVIAD(DEVDAT)       ;TAC:=C(DEVIAD LH)\r
3694         000215' 322040  000236'           JUMPE TAC,UEND                ;NEXT BLOCK=00, THEN END OF FI\r
3695         000216' 254000  000377'           JRST USETR\r
3696                                 ;RETURN FROM READING ONE BLOCK\r
3697 \r
3698         000217' 550046  000007  UIN1:     HRRZ TAC,DEVIAD(DEVDAT)\r
3699         000220' 270040  000007            ADD TAC,PROG\r
3700         000221' 554101  000001            HLRZ TAC1,1(TAC)\r
3701         000222' 546106  000007            HLRM TAC1,DEVIAD(DEVDAT)      ;NEXT BLOCK NUMBER TO READ\r
3702         000223' 200046  000007            MOVE TAC,DEVIAD(DEVDAT)\r
3703         000224' 505040  000007            HRLI TAC,PROG\r
3704         000225' 515100  400000            HRLZI TAC1,IOUSE\r
3705         000226' 436120  000001            IORM TAC1,@TAC                ;SET USE BIT\r
3706         000227' 540060  000001            HRR TAC,@TAC\r
3707         000230' 542046  000007            HRRM TAC,DEVIAD(DEVDAT)       ;NEXT BUFFER ADDRESS\r
3708         000231' 602000  000040            TRNE IOS, IOCON               ;CONTINUOUS?\r
3709         000232' 254000  000167'           JRST UOUT3                    ;EXIT\r
3710         000233' 331020  000001            SKIPL @TAC                    ;IS NEXT BUFFER FULL\r
3711         000234' 254000  000205'           JRST UIN+1                    ;PROCESS NEXT BLOCK\r
3712         000235' 254000  000167'           JRST UOUT3                    ;EXIT\r
3713 \r
3714         000236' 661000  000040  UEND:     TLO IOS, IOEND\r
3715         000237' 202006  000002            MOVEM IOS, DEVIOS(DEVDAT)\r
3716         000240' 721300  020000            CONSZ UTC, 20000              ;IS TAPE STOPPED?\r
3717         000241' 254000  000167'           JRST UOUT3                    ;STOP TAPE AND EXIT\r
3718         000242' 371000  000000* UEND2:    SOSL DCREQ            ;DECREMENT REQUEST COUNT, IS ANY ONE WA\r
3719         000243' 476000  000000*           SETOM DCAVAL                  ;YES,SET DATA CONTROL AVAILABLE\r
3720         000244' 371000  000000*           SOSL DTREQ            ;DECREMENT REQUEST COUNT, IS ANY ONE WA\r
3721         000245' 476000  000000*           SETOM DTAVAL                  ;YES,SET DECTAPE CONTROL AVAI\r
3722         000246' 620000  010000            TRZ IOS, IOACT                ;CLEAR ACTIVE BIT\r
3723 \r
3724 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 6-1\r
3725 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
3726 \r
3727         000247' 202006  000002            MOVEM IOS, DEVIOS(DEVDAT)     ;RESTORE STATUS BITS\r
3728         000250' 263140  000000            POPJ PDP, 0                   ;EXIT\r
3729 \r
3730 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 7\r
3731 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
3732 \r
3733 \r
3734                                 ;COPY DIRECTORY WHEN READING BLOCK 1\r
3735         000251' 623000  000002  UIN2:     TLZE IOS, IOBEG               ;IS DIRECTORY IN\r
3736         000252' 254000  000265'           JRST UIN4                     ;READ IN DIRECTORY\r
3737         000253' 260140  000242'           PUSHJ PDP, UEND2              ;CLR INDICATORS\r
3738         000254' 200106  000177* UIN3:     MOVE TAC1,UFREE(DEVDAT)       ;NEXT FREE BLOCK IN DATA BLOC\r
3739         000255' 506126  000176*           HRLM TAC1, @UDIR(DEVDAT)      ;PLACE IN DIRECTORY\r
3740         000256' 541101  000001            HRRI TAC1, 1(TAC)             ;BUFFER ADDRESS, TO\r
3741         000257' 504106  000255*           HRL TAC1, UDIR(DEVDAT)        ;DIRECTORY ADDRESS, TO\r
3742         000260' 251101  000200            BLT TAC1, 200 (TAC)           ;MOVE DIRECTORY TO BUFFER ARE\r
3743         000261' 515100  400000            HRLZI TAC1, IOUSE\r
3744         000262' 437100  400000            IORB TAC1, IOUSE              ;SET USE BIT\r
3745         000263' 542106  000007            HRRM TAC1,DEVIAD(DEVDAT)      ;ADVANCE BUFFER\r
3746         000264' 263140  000000            POPJ PDP, 0                   ;EXIT\r
3747         000265' 260140  000370' UIN4:     PUSHJ PDP, UBEG3\r
3748         000266' 254000  000254'           JRST UIN3\r
3749         000267' 260140  000000* SETI:     PUSHJ PDP,WAIT1\r
3750         000270' 506606  000007            HRLM UUO,DEVIAD(DEVDAT)       ;SET INPUT BLOCK NO.\r
3751         000271' 254000  000111*           JRST UXIT\r
3752 \r
3753         000272' 260140  000267* SETO:     PUSHJ PDP,WAIT1       \r
3754         000273' 260140  001142'           PUSHJ PDP, UINTER             ;WAIT FOR USE TO STOP\r
3755         000274' 260140  000242'           PUSHJ PDP, UEND2              ;CLEAR INDICATORS\r
3756         000275' 506606  000010            HRLM UUO,DEVOAD(DEVDAT)       ;SET OUTPUT BLOCK NO.\r
3757         000276' 254000  000271*           JRST UXIT\r
3758 \r
3759         000277' 260140  000272* GETF:     PUSHJ PDP,WAIT1\r
3760         000300' 603000  000002            TLNE IOS,IOBEG\r
3761         000301' 260140  000343'           PUSHJ PDP,UBEG\r
3762         000302' 661000  000400            TLO IOS,UNWFRE\r
3763         000303' 202006  000002            MOVEM IOS,DEVIOS(DEVDAT)\r
3764         000304' 350046  000254*           AOS TAC, UFREE(DEVDAT)        ;GET FREE BLOCK\r
3765         000305' 506046  000010            HRLM TAC, DEVOAD(DEVDAT)\r
3766         000306' 505600  000007            HRLI UUO,PROG\r
3767         000307' 542060  000014            HRRM TAC,@UUO\r
3768         000310' 254000  000276*           JRST UXIT\r
3769 \r
3770 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 8\r
3771 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
3772 \r
3773 \r
3774                                 INTERNAL UTPCLS,UTWDR,UBEG,UTPREL\r
3775 \r
3776         000311'                 UTWDR:    IFE DTSIZ,<        PUSHJ PDP,UTPREL>\r
3777 \r
3778         000311' 254000  000310*           JRST UXIT\r
3779 \r
3780         000312' 607000  001000  UTPCLS:   TLNN IOS, ULINKF\r
3781         000313' 254000  000326'           JRST UTPREL\r
3782         000314' 135040  000000*           LDB TAC,PIOMOD        ;MODE\r
3783         000315' 301040  000016            CAIL TAC,16\r
3784         000316' 254000  000326'           JRST UTPREL\r
3785         000317' 544046  000006            HLR TAC,DEVBUF(DEVDAT)\r
3786         000320' 545040  000007            HLRI TAC, PROG\r
3787         000321' 540060  000001            HRR TAC, @TAC                 ;TAC:=BUFFER ADDRESS\r
3788         000322' 271040  000001            ADDI TAC,1\r
3789         000323' 201100  000001            MOVEI TAC1,1\r
3790         000324' 506120  000001            HRLM TAC1,@TAC\r
3791         000325' 254000  000000*           JRST OUT\r
3792 \r
3793                                 UTPREL:   IFE DTSIZ,< TLNE  IOS,IOBEG   ;RELEASE\r
3794                                  POPJ PDP,\r
3795                                  TLZE IOS,UDIREN\r
3796                                  JRST UTPRL1\r
3797                                  TLNN IOS,UNWFRE\r
3798                                  POPJ PDP,\r
3799                                  TLNN IOS,UDIRIN\r
3800                                  PUSHJ PDP,UBEG>\r
3801 \r
3802         000326' 627000  000600            IFN DTSIZ,< TLZN IOS,UDIREN+UNWFRE\r
3803         000327' 263140  000000   POPJ PDP,>\r
3804         000330' 260140  001142' UTPRL1:   PUSHJ PDP,UINTER      ;IS SYSTEM AVAILABLE?\r
3805         000331' 540046  000304*           HRR TAC,UFREE(DEVDAT)\r
3806         000332' 506066  000257*           HRLM TAC,@UDIR(DEVDAT)\r
3807         000333' 200046  000332*           MOVE TAC,UDIR(DEVDAT)\r
3808         000334' 275040  000001            SUBI TAC,1\r
3809         000335' 202040  001121'           MOVEM TAC,UBUF\r
3810         000336' 661000  002000            TLO IOS, URDIR\r
3811         000337' 202006  000002            MOVEM IOS,DEVIOS(DEVDAT)\r
3812         000340' 201040  000001            MOVEI TAC,1\r
3813         000341' 260140  000375'           PUSHJ PDP,USETW\r
3814         000342' 254000  000277*           JRST WAIT1\r
3815 \r
3816 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 9\r
3817 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
3818 \r
3819 \r
3820                                 ,READ THE DIRECTORY FROM THIS DEC-TAPE\r
3821 \r
3822         000343' 335006  000004  UBEG:     SKIPGE DEVMOD(DEVDAT)         ;IS DIRECTORY IN CORE?\r
3823         000344' 661000  000100            TLO IOS,UDIRIN\r
3824         000345' 603000  000100            TLNE IOS,UDIRIN\r
3825         000346' 263140  000000            POPJ PDP, 0\r
3826         000347' 260140  001142'           PUSHJ PDP, UINTER             ;CHECK INTERLOCK\r
3827         000350' 261140  000001  UBEG2:    PUSH PDP, TAC                 ;SAVE TAC\r
3828         000351' 550046  000333*           HRRZ TAC,UDIR(DEVDAT)\r
3829         000352' 275040  000001            SUBI TAC, 1\r
3830         000353' 202040  001121'           MOVEM TAC,UBUF\r
3831         000354' 661000  002100            TLO IOS,UDIRIN+URDIR\r
3832         000355' 621000  000002            TLZ IOS, IOBEG\r
3833         000356' 202006  000002            MOVEM IOS,DEVIOS(DEVDAT)\r
3834         000357' 205040  400000            MOVSI TAC,DVDIRIN     ;SET DIRECTORY IN CORE BIT\r
3835         000360' 436046  000004            IORM TAC,DEVMOD(DEVDAT)\r
3836         000361' 201040  000001            MOVEI TAC,1\r
3837         000362' 260140  000377'           PUSHJ PDP,USETR\r
3838         000363' 260140  000000*           PUSHJ PDP,WSYNC\r
3839         000364' 544066  000351*           HLR TAC,@UDIR(DEVDAT)\r
3840         000365' 552046  000331*           HRRZM TAC,UFREE(DEVDAT)\r
3841         000366' 262140  000001  UBEGX:    POP PDP,TAC\r
3842         000367' 263140  000000            POPJ PDP, 0\r
3843 \r
3844         000370' 603000  000100  UBEG3:    TLNE IOS, UDIRIN\r
3845         000371' 263140  000000            POPJ PDP, 0\r
3846         000372' 254000  000350'           JRST UBEG2\r
3847 \r
3848         000373' 260140  001220' UTBERR:   PUSHJ PDP, DTC1       ;ILL. BLOCK NO.\r
3849         000374' 254000  000000*           JRST UTBKER\r
3850 \r
3851         000375' 201100  000535' USETW:    MOVEI TAC1, RIT\r
3852         000376' 334000  000000            SKIPA\r
3853         000377' 201100  000527' USETR:    MOVEI TAC1,READ\r
3854         000400' 542100  000500'           HRRM TAC1,DDIG\r
3855         000401' 552040  001117'           HRRZM TAC,UBKN\r
3856         000402' 323040  000373'           JUMPLE TAC,UTBERR     ;ILL. BLOCK NO.?\r
3857         000403' 301040  001102            CAIL TAC,1102\r
3858         000404' 254000  000373'           JRST UTBERR           ;ILL. BLOCK NO.\r
3859         000405' 135040  000000*           LDB TAC,PUNIT         ;UNIT\r
3860         000406' 241040  000003            ROT TAC, 3\r
3861         000407' 271040  000000*           ADDI TAC, DTCCHN              ;DECTAPE CHANNEL\r
3862         000410' 202040  001116'           MOVEM TAC, UNIT               ;UNIT AND CHANNEL\r
3863         000411' 201040  000137            MOVEI TAC, 137\r
3864         000412' 542040  001166'           HRRM TAC, DTCINT\r
3865         000413' 275040  000021            SUBI TAC, 21\r
3866         000414' 542040  001172'           HRRM TAC, CONSZ1              ;FALL INTO FILL\r
3867 \r
3868 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 10\r
3869 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
3870 \r
3871 \r
3872         000415' 720200  000000  FILL:     CONO DC,0                     ;DESELECT DC\r
3873         000416' 700600  002100            CONO PI,2100                  ;TURN ON CHANNEL 1\r
3874         000417' 202300  001151'           MOVEM DEVDAT, USVDB           ;SAVE DATA BLOCK ADDR\r
3875         000420' 202300  001122'           MOVEM DEVDAT,UDVDAT           ;UDVDAT:=DTJIOS POINTER\r
3876         000421' 201040  000002            MOVEI TAC, DEVIOS\r
3877         000422' 272040  001122'           ADDM TAC,UDVDAT\r
3878         000423' 200040  001275'           MOVE TAC, [JSR DDIF]          ;DATA CONTROL INTERRUPT CHANN\r
3879         000424' 202040  000042            MOVEM TAC,UCHA\r
3880         000425' 202340  001120'           MOVEM PROG,UPROG              ;UPROG:=PROG\r
3881         000426' 200040  001121'           MOVE TAC,UBUF                 ;BLI:=XWD-200,C(UBUF)\r
3882         000427' 505040  777600            HRLI TAC,-200\r
3883         000430' 202040  001114'           MOVEM TAC,BLI\r
3884         000431' 271040  000177            ADDI TAC,200-1\r
3885         000432' 202040  001113'           MOVEM TAC,BLO\r
3886         000433' 721300  020000            CONSZ UTC, 20000              ;IS TAPE MOVING?\r
3887         000434' 254000  000453'           JRST FILLC                    ;YES\r
3888         000435' 200040  001116'           MOVE TAC, UNIT                ;RDDA:=RDRM:=WTDA:=WTRM:=C(UN\r
3889         000436' 137040  000457'           DPB TAC,F1\r
3890         000437' 137040  000460'           DPB TAC,F2\r
3891         000440' 137040  000461'           DPB TAC,F3\r
3892         000441' 137040  000462'           DPB TAC,F4\r
3893         000442' 200040  001116'           MOVE TAC,UNIT\r
3894         000443' 405040  000070            ANDI TAC, 70                  ;TAC HAS UNIT ONLY\r
3895         000444' 271040  323201                  ADDI TAC, SL+DTR+RB+EE+UCHN\r
3896         000445' 607000  010000            TLNN IOS, UREV                ;WAS REV, GO FWD\r
3897         000446' 271040  010000            ADDI TAC,GR                   ;WAS FWD, GO REV\r
3898         000447' 721220  000001            CONO UTC, @TAC\r
3899         000450' 720200  004011  FILL2:    CONO DC, DACI+UCHN            ;SET UP DC FOR INPUT\r
3900         000451' 202006  000002            MOVEM IOS, DEVIOS (DEVDAT)\r
3901         000452' 263140  000000            POPJ PDP,\r
3902 \r
3903 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 11\r
3904 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
3905 \r
3906 \r
3907                                 ,TAPE IS ACTIVE - GIVE A COMMAND\r
3908         000453' 721240  000001  FILLC:    CONI UTC,TAC                  ;UTC COMMAND: UNIT, OLD DIRE\r
3909         000454' 405040  010070            ANDI TAC,GR+70                ;DIRECTION PLUS UNIT\r
3910         000455' 721201  320201            CONO UTC,SL+RB+EE+UCHN(TAC)   ;NO TIME DELAY\r
3911         000456' 254000  000450'           JRST FILL2\r
3912 \r
3913         000457' 000600  000517' F1:       POINT 6,RDDA,35\r
3914         000460' 000600  000531' F2:       POINT 6,RDRM,35\r
3915         000461' 000600  000523' F3:       POINT 6,WTDA,35\r
3916         000462' 000600  000537' F4:       POINT 6,WTRM,35\r
3917                                 ,CHANGE DIRECTIONS - GIVE NEW COMMANDS\r
3918         000463' 721240  000001  RRV:      CONI UTC,TAC\r
3919         000464' 431040  010000            XORI TAC,GR                   ;REVERSE BIT\r
3920         000465' 405040  550777            ANDI TAC,550777\r
3921         000466' 435040  002000            IORI TAC,DT\r
3922         000467' 721201  220000            CONO UTC,SL(TAC)\r
3923         000470' 720200  004011            CONO DC,DACI+UCHN\r
3924         000471' 254000  000515'           JRST DXIT\r
3925                                 ,EXAMINE BLOCK NUMBERS - DISPATCHED FROM INTERRUPT - CHAN, DC.\r
3926         000472' 000000  000000  DDIF:     0                             ;GOING FORWARD\r
3927         000473' 202040  001115'           MOVEM TAC,SV1                 ;SV1:=TAC\r
3928         000474' 721700  000002            CONSZ UTS, VEOT\r
3929         000475' 254000  000463'           JRST RRV\r
3930         000476' 720040  000001            DATAI DC,TAC\r
3931         000477' 316040  001117'           CAMN TAC,UBKN                 ;BLK NOT =STR\r
3932         000500' 254000  000500' DDIG:     JRST .                        ;JRST READ, BIT, IFRIGHT UBK\r
3933         000501' 721300  010000            CONSZ UTC,10000               ;GOING BACKWARDS\r
3934         000502' 254000  000506'           JRST .+4                      ;BACKWARDS\r
3935         000503' 311040  001117'           CAML TAC,UBKN                 ;BLK > STR > FORWARD\r
3936         000504' 254000  000463'           JRST RRV\r
3937         000505' 254000  000510'           JRST .+3\r
3938         000506' 317040  001117'           CAMG TAC,UBKN                 ;BACKWARDS\r
3939         000507' 254000  000463'           JRST RRV                      ;BACKWARDS\r
3940         000510' 721240  000001  DDIG2:    CONI UTC,TAC\r
3941         000511' 405040  550777            ANDI TAC,550777\r
3942         000512' 721201  220000            CONO UTC,SL(TAC)\r
3943         000513' 334000  000000            SKIPA\r
3944         000514' 542040  000042  DXIT1:    HRRM TAC,UCHA\r
3945         000515' 200040  001115' DXIT:     MOVE TAC,SV1                  ;RESTORE TAC\r
3946         000516' 254520  000472'           JEN @DDIF                     ;RE-ENABLE, DISMISS.\r
3947 \r
3948 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 12\r
3949 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
3950 \r
3951 \r
3952                                 ,DISPATCH FROM UCHA INITIALLY ON CORRECT BLOCK MARK\r
3953                                 ,SETS OP TO READ, WRITE IN FWD, REVERSE\r
3954 \r
3955                                 ;RD FORWARD\r
3956         000517' 721200  360300  RDDA:     CONO UTC,SL+RD+JDE+EE                 ;GETS UNIT NO. - RE\r
3957         000520' 201040  000551'           MOVEI TAC,RDFW\r
3958         000521' 720200  004011            CONO DC,DACI+UCHN\r
3959         000522' 254000  000514'           JRST DXIT1\r
3960 \r
3961         000523' 721200  360700  WTDA:     CONO UTC,SL+WD+JDE+EE                 ;GETS UNIT NO. - RE\r
3962         000524' 201040  000563'           MOVEI TAC,WTFW\r
3963         000525' 720200  003411            CONO DC,DACO+UCHN\r
3964         000526' 254000  000514'           JRST DXIT1\r
3965 \r
3966         000527' 721340  010000  READ:     CONSO UTC,10000               ;ENTRY TO SET UP READ\r
3967         000530' 254000  000517'           JRST, RDDA\r
3968                                 ;READ REVERSE\r
3969         000531' 721200  370300  RDRM:     CONO UTC,SL+GR+RD+JDE+EE      ;GETS UNIT NO. - RESETS TO RD\r
3970         000532' 201040  000543'           MOVEI TAC,RDRV\r
3971         000533' 720200  004011            CONO DC,DACI+UCHN\r
3972         000534' 254000  000514'           JRST DXIT1\r
3973         000535' 721340  010000  RIT:      CONSO UTC,10000               ;GOING REVERSE - ENTRY TO SET\r
3974         000536' 254000  000523'           JRST WTDA                     ;WRITE FORWARD\r
3975                                 ;WRITE REVERSE\r
3976         000537' 721200  370700  WTRM:     CONO UTC,SL+WD+GR+JDE+EE      ;GETS UNIT NO. -RESETS. TO WT\r
3977         000540' 201040  000555'           MOVEI TAC,WTRV\r
3978         000541' 720200  003411            CONO DC,DACO+UCHN\r
3979         000542' 254000  000514'           JRST DXIT1\r
3980 \r
3981                                 ,DC INTERRUPT PROCESSSING TO READ/WRITE DATA IN EITHER\r
3982                                 ,DIRECTION, AND RE-ENABLE INTERRUP.\r
3983                                 ,EXIT BLOCK PROCESSING AT ENPT(WRITE), ENPTI(READ)\r
3984 \r
3985         000543' 000000  000000  RDRV:     0                             ;ENTRY VIA UCHA - READ REV\r
3986         000544' 720000  001113'           BLKI DC,BLO\r
3987         000545' 264000  000620'           JSR ENPTI\r
3988         000546' 370000  001113'           SOS BLO\r
3989         000547' 370000  001113'           SOS BLO\r
3990         000550' 254520  000543'           JEN @RDRV\r
3991 \r
3992         000551' 000000  000000  RDFW:     0                             ;ENTRY VIA UCHA - READ FWD\r
3993         000552' 720000  001114'           BLKI DC,BLI\r
3994         000553' 264000  000620'           JSR ENPTI\r
3995         000554' 254520  000551'           JEN @RDFW\r
3996 \r
3997         000555' 000000  000000  WTRV:     0                             ;ENTRY VIA UCHA - WRITE REV\r
3998         000556' 720100  001113'           BLKO DC,BLO\r
3999         000557' 264000  000567'           JSR ENPT\r
4000         000560' 370000  001113'           SOS BLO\r
4001         000561' 370000  001113'           SOS BLO\r
4002         000562' 254520  000555'           JEN @WTRV\r
4003 \r
4004 \r
4005 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 12-1\r
4006 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
4007 \r
4008         000563' 000000  000000  WTFW:     0                             ;ENTRY VIA UCHA - WRITE FWD\r
4009         000564' 720100  001114'           BLKO DC,BLI\r
4010         000565' 264000  000567'           JSR ENPT\r
4011         000566' 254520  000563'           JEN @WTFW\r
4012 \r
4013 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 13\r
4014 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
4015 \r
4016 \r
4017                                 ;END OF OUTPUT BLOCK\r
4018 \r
4019         000567' 000000  000000  ENPT:     0\r
4020         000570' 264000  000603'           JSR, ENP\r
4021         000571' 202040  001115' ENPT2:    MOVEM TAC,SV1                 ;SV1:=TAC\r
4022         000572' 515040  010000            HRLZI TAC,UREV\r
4023         000573' 721300  010000            CONSZ UTC,10000\r
4024         000574' 412060  001122'           ANDCAM TAC,@UDVDAT\r
4025         000575' 721340  010000            CONSO UTC,10000\r
4026         000576' 436060  001122'           IORM TAC,@UDVDAT\r
4027         000577' 201040  000615'           MOVEI TAC,UOFF\r
4028         000600' 542040  000042            HRRM TAC,UCHA\r
4029         000601' 200040  001115'           MOVE TAC,SV1\r
4030         000602' 254120  000567'           JRSTF @ENPT\r
4031 \r
4032                                 ,CHECK ERROR BITS DC MISSED, 0T PARITY, 1 LEG OP, TAPE END\r
4033         000603' 000000  000000  ENP:      0\r
4034         000604' 720300  010000            CONSZ DC, 10000;      DATA MISSED\r
4035         000605' 264000  000627'           JSR ERROR2\r
4036         000606' 254120  000603'           JRSTF @ENP\r
4037 \r
4038                                 ,SAVE STATE OF UTS, UTC, DC, TURN OFF DC, UTC, +1@ERRTAL,+1@UERR\r
4039                                 ;ERROR LOOPS\r
4040         000607' 000000  000000  ERROR:    0\r
4041         000610' 721640  001111'           CONI UTS, C12\r
4042         000611' 721240  001112'           CONI UTC, C13\r
4043         000612' 720240  001110'           CONI DC, C11\r
4044         000613' 476000  001124'           SETOM ERRFLG\r
4045         000614' 254120  000607'           JRSTF @ERROR\r
4046                                 ;INTERRUPT FROM DATA FLAG AFER BLKO HAS COUNTED OUT\r
4047         000615' 000000  000000  UOFF:     0\r
4048         000616' 700600  001100            CONO PI, 1100         ;TURN DC CHANNEL OFF\r
4049         000617' 254520  000615'           JEN @UOFF             ;DISMISS EXTRA WRITE FLAG\r
4050 \r
4051                                 ;END OF INPUT BLOCK\r
4052         000620' 000000  000000  ENPTI:    0\r
4053         000621' 250040  000620'           EXCH TAC, ENPTI\r
4054         000622' 202040  000567'           MOVEM TAC, ENPT\r
4055         000623' 264000  000603'           JSR ENP\r
4056         000624' 720200  000000            CONO DC, 0\r
4057         000625' 200040  000620'           MOVE TAC, ENPTI\r
4058         000626' 254000  000571'           JRST ENPT2\r
4059                                 ;DETECT FIRST ERROR ONLY\r
4060         000627' 000000  000000  ERROR2:   0\r
4061         000630' 336000  001124'           SKIPN ERRFLG          ;PREVIOUSLY DETECTED ERROR!\r
4062         000631' 264000  000607'           JSR ERROR             ;STORE ERROR CONDITIONS\r
4063         000632' 254120  000627'           JRSTF @ERROR2         ;CONTINUE LOOP\r
4064 \r
4065                                 ;END OF PART 1 DTSER2\r
4066 \r
4067 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 14\r
4068 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
4069 \r
4070 \r
4071                                           EXTERNAL SETIOD\r
4072                                           INTERNAL UDMP0, UDMPI\r
4073 \r
4074                                 ; DUMP OUT\r
4075         000633' 661000  000020  UDMPO:    TLO IOS, IO                   ;SET FOR OUTPUT\r
4076         000634' 260140  001142'           PUSHJ PDP, UINTER             ;CHECK INTERLOCK\r
4077         000635' 606600  777777            TRNN UUO, 777777              ;COMMAND ADDRESS?\r
4078         000636' 254000  000722'           JRST UDMP2-1                  ;ERROR\r
4079         000637' 201040  000727'           MOVEI TAC, DDUMP              ;RETURN WHEN BLOCK FOUND\r
4080         000640' 200100  001276' UDMP0:    MOVE TAC1, [JSR DMPADV]       ;BLKI OR BLKO RETURN, COMMANDS\r
4081 \r
4082                                 ;COMMON ROUTINE FOR ALL DUMP MODES,  START SEARCH\r
4083         000641' 542040  000500' UDMP1:    HRRM TAC,DDIG                 ;SEARCH RETURN\r
4084         000642' 202100  000043            MOVEM TAC1, UCHA+1            ;INTERRUPT RETURN\r
4085         000643' 200040  001275'           MOVE TAC, [JSR DDIF]  \r
4086         000644' 202040  000042            MOVEM TAC, UCHA               ;DATA CONTROL CHANNEL\r
4087         000645' 554046  000010            HLRZ TAC, DEVOAD (DEVDAT)     ;BLOCK NUMBER\r
4088         000646' 607000  000020            TLNN IOS, IO                  ;WRITING?\r
4089         000647' 554046  000007            HLRZ TAC, DEVIAD(DEVDAT)      ;INPUT BLOCK NUMBER\r
4090         000650' 202040  001117'           MOVEM TAC, UBKN               ;BLOCK TO LOOK FOR\r
4091         000651' 552300  001151'           HRRZM DEVDAT, USVDB           ;DATA BLOCK ADDRESS\r
4092         000652' 135040  000405*           LDB TAC,PUNIT         ;UNIT\r
4093         000653' 241040  000003            ROT TAC, 3\r
4094         000654' 271040  000407*           ADDI TAC, DTCCHN\r
4095         000655' 202040  001116'           MOVEM TAC, UNIT               ;UNIT AND DT CHANNEL\r
4096         000656' 405040  000070            ANDI TAC, 70\r
4097         000657' 721201  323201                  CONO UTC, SL+DTR+RB+EE+UCHN(TAC)\r
4098         000660' 476000  001153'           SETOM UERRCN                  ;SET ERROR COUNTER\r
4099         000661' 201040  000037            MOVEI TAC, 37                 ;DO NOT CHECK FOR INCOMPLETE\r
4100         000662' 542040  001166'           HRRM TAC, DTCINT\r
4101         000663' 201040  000016            MOVEI TAC,16\r
4102         000664' 542040  001172'           HRRM TAC, DTCINT+4\r
4103         000665' 720200  004011            CONO DC, DACI+UCHN            ;SET DATA CONTROL\r
4104         000666' 700600  002100            CONO PI,2100          ;INSURE CHANNEL 1 ON\r
4105         000667' 552340  001126'           HRRZM PROG, UDMPA             ;SAVE PROGRAM\r
4106         000670' 606600  777777            TRNN UUO, 777777              ;COMMAND ADDRESS\r
4107         000671' 263140  000000            POPJ PDP, 0                   ;COMMAND LIST ON TAPE, INPUT\r
4108         000672' 550040  000014            HRRZ TAC, UUO                 ;GET CMD PNTR\r
4109         000673' 550100  000001            HRRZ TAC1, TAC                ;SAVE POINTER\r
4110         000674' 270100  000007  UDMP1A:   ADD TAC1, PROG                ;GET ACTUAL POINTER\r
4111         000675' 552100  001125'           HRRZM TAC1, UDMP              ;STORE WORKING POINTER\r
4112 \r
4113                                 ;CHECK ENTIRE COMMAND LIST FOR VALIDITY\r
4114         000676' 336120  001125' UDMP1B:   SKIPN TAC1, @UDMP             ;GET COMMAND\r
4115         000677' 254000  000712'           JRST UDMP1C                   ;END OF COMMAND LIST\r
4116         000700' 327100  000674'           JUMPG TAC1, UDMP1A            ;CHANGE COMMAND SEQUENCE\r
4117         000701' 576100  001141'           HLREM TAC1, SVCNTR            ;SAVE -N\r
4118         000702' 553000  000002            HRRZS TAC1                    ;GET ADDRESS\r
4119         000703' 305100  000000*           CAIGE TAC1, JOBPFI    ;IS IT ABOVE IO PROT. AREA\r
4120         000704' 254000  000000*           JRST ADRERR           ;NO. ADDRESS CHECK ERROR\r
4121         000705' 274100  001141'           SUB TAC1, SVCNTR              ;GET AREA END\r
4122         000706' 313100  000000*           CAMLE TAC1, USRREL            ;LESS THEN END?\r
4123 \r
4124 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 14-1\r
4125 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
4126 \r
4127         000707' 254000  000722'           JRST UDMP2-1                  ;OUT OF BOUNDS\r
4128         000710' 350000  001125'           AOS UDMP                      ;INDEX COMMAND LIST POINTER\r
4129         000711' 254000  000676'           JRST UDMP1B                   ;GET NEXT COMMAND\r
4130 \r
4131 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 15\r
4132 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
4133 \r
4134 \r
4135                                 ;GET FIRST COMMAND\r
4136         000712' 270040  000007  UDMP1C:   ADD TAC, PROG                 ;GET ACTUAL ADDRESS\r
4137         000713' 552040  001125'           HRRZM TAC, UDMP               ;SAVE POINTER\r
4138         000714' 336060  001125'           SKIPN TAC, @UDMP              ;1ST COMMAND\r
4139         000715' 254000  000723'           JRST UDMP2                    ;NOTHING TO DO\r
4140         000716' 270040  000007            ADD TAC, PROG                 ;ACTUAL POINTER\r
4141         000717' 325040  000713'           JUMPGE TAC, .-4               ;CHANGE COMMAND SEQUENCE\r
4142         000720' 202040  001113'           MOVEM TAC, BLO                ;SAVE I/O POINTER\r
4143         000721' 263140  000000            POPJ PDP, 0\r
4144                                 ;EXIT WITH ERROR\r
4145         000722' 660000  040000            TRO IOS, IOBKTL\r
4146         000723' 201040  777775  UDMP2:    MOVEI TAC, -3\r
4147         000724' 572040  001153'           HRREM TAC, UERRCN\r
4148         000725' 402000  001124'           SETZM ERRFLG\r
4149         000726' 254000  000242'           JRST UEND2\r
4150 \r
4151                                 ;SEARCH RETURN,OUTPUT,COMMAND LIST IN MEMORY\r
4152         000727' 721300  010000  DDUMP:    CONSZ UTC,GR\r
4153         000730' 254000  000510'           JRST DDIG2            ;KEEP GOING\r
4154         000731' 200040  001277'           MOVE TAC,[BLKO DC,BLO]\r
4155         000732' 202040  000042            MOVEM TAC, UCHA\r
4156         000733' 720200  003411            CONO DC,DACO+UCHN\r
4157         000734' 200040  001116'           MOVE TAC,UNIT\r
4158 \r
4159         000735' 721201  360700            CONO UTC,SL+WD+JDE+EE(TAC)\r
4160         000736' 254000  000515'           JRST DXIT\r
4161                                 ;BLKI OR BLKO RETURNS, COMMAND LIST IN MEMORY\r
4162         000737' 000000  000000  DMPADV:   0\r
4163         000740' 202040  001115'           MOVEM TAC,SV1\r
4164         000741' 354040  001125'           AOSA TAC,UDMP                 ;POINTER\r
4165 \r
4166 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 16\r
4167 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
4168 \r
4169 \r
4170         000742' 552040  001125' DMPA1:    HRRZM TAC, UDMP               ;STORE POINTER\r
4171         000743' 336041  000000            SKIPN TAC, 0(TAC)             ;IS WORD ZERO\r
4172         000744' 254000  000752'           JRST DMPA2                    ;END\r
4173         000745' 270040  001126'           ADD TAC, UDMPA                ;ADD PROGRAM\r
4174         000746' 325040  000742'           JUMPGE TAC, DMPA1             ;CHANGE COMMAND\r
4175         000747' 202040  001113'           MOVEM TAC, BLO\r
4176         000750' 200040  001115' DMPXT:    MOVE TAC, SV1\r
4177         000751' 254520  000737'           JEN @DMPADV\r
4178 \r
4179                                 ;END OF COMMAND LIST, INPUT OR OUTPUT\r
4180         000752' 264000  000603' DMPA2:    JSR ENP\r
4181         000753' 700600  001100            CONO PI, 1100                 ;TURN DATA CONTROL CHANNEL OF\r
4182         000754' 721740  000040            CONSO UTS, 40                 ;WRITING?\r
4183         000755' 720200  000000            CONO DC, 0                    ;SHUT OFF DATA CONTROL\r
4184         000756' 254000  000750'           JRST DMPXT\r
4185                                 ;SEARCH RETURN, INPUT COMMAND LIST ON TAPE\r
4186         000757' 721300  010000  DDMPI:    CONSZ UTC, GR                 ;GOING BACKWARDS?\r
4187         000760' 254000  000510'           JRST DDIG2                    ;KEEP GOING\r
4188         000761' 200040  001300'           MOVE TAC, [XWD -1,BLO-1]\r
4189         000762' 202040  001113'           MOVEM TAC, BLO\r
4190 \r
4191                                 ;COMMON INSTRUCTIONS FOR COMMAND LIST IN MEMORY OR ON TAPE\r
4192         000763' 200040  001301' DDMPI2:   MOVE TAC, [BLKI DC,BLO]\r
4193         000764' 202040  000042            MOVEM TAC, UCHA\r
4194         000765' 720200  004011            CONO DC, DACI+UCHN\r
4195         000766' 200040  001116'           MOVE TAC, UNIT\r
4196         000767' 721201  360300            CONO UTC, SL+RD+JDE+EE(TAC)\r
4197         000770' 254000  000515'           JRST DXIT\r
4198 \r
4199                                 ;INPUT COMMAND LIST ON TAPE.  BLKI RETURN AFTER READING COMMAND\r
4200         000771' 000000  000000  DMPRD:    0\r
4201         000772' 331000  001113'           SKIPL BLO                     ;END OF COMMAND LIST?\r
4202         000773' 254000  001010'           JRST DMPRD1\r
4203         000774' 202040  001115'           MOVEM TAC, SV1                ;SAVE TAC\r
4204         000775' 200040  001113'           MOVE TAC, BLO                 ;PICK UP COMMAND\r
4205         000776' 576040  001141'           HLREM TAC, SVCNTR             ;-N\r
4206         000777' 553000  000001            HRRZS TAC                     ;ADDRESS\r
4207         001000' 274040  001141'           SUB TAC, SVCNTR               ;END ADDRESS\r
4208         001001' 303040  000000  DMPRD0:   CAILE TAC, 0                  ;<END? MODIFIED\r
4209         001002' 254000  001102'           JRST DMPERR                   ;OUT OF BOUNDS, EXIT\r
4210         001003' 200040  001125'           MOVE TAC, UDMP                ;PROG\r
4211         001004' 272040  001113'           ADDM TAC, BLO                 ;TO GET ACTUAL I/O POINTER\r
4212         001005' 201040  001012'           MOVEI TAC,DMPRDA              ;NEW RETURN\r
4213         001006' 542040  000042            HRRM TAC, UCHA+\r
4214         001007' 334040  001115'           SKIPA TAC, SV1                ;RESTORE TAC\r
4215         001010' 720200  000000  DMPRD1:   CONO DC, 0\r
4216         001011' 254520  000771'           JEN @DMPRD\r
4217 \r
4218 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 17\r
4219 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
4220 \r
4221 \r
4222                                 ;INPUT COMMAND LIST ON TAPE.  BLKI RETURN AFTER READING DATA\r
4223         001012' 000000  000000  DMPRDA:   0\r
4224         001013' 202040  001115'           MOVEM TAC, SV1                ;SAVE TAC\r
4225         001014' 200040  001300'           MOVE TAC, [XWD -1,BLO-1]\r
4226         001015' 202040  001113'           MOVEM TAC, BLO                ;READ INTO BLO\r
4227         001016' 201040  000771'           MOVEI TAC, DMPRD              ;USE PREV. RETURN\r
4228         001017' 542040  000043            HRRM TAC, UCHA+1\r
4229         001020' 200040  001115'           MOVE TAC, SV1                 ;SAVE TAC\r
4230         001021' 254520  001012'           JEN @DMPRDA\r
4231                                 ;DUMP IN\r
4232         001022' 621000  000020  UDMPI:    TLZ IOS, IO\r
4233         001023' 260140  001142'           PUSHJ PDP, UINTER\r
4234         001024' 602600  777777            TRNE UUO, 777777              ;COMMAND LIST ON TAPE\r
4235         001025' 254000  001033'           JRST UDMPI2                   ;COMMAND LIST IN CORE\r
4236         001026' 200040  000706*           MOVE TAC, USRREL              ;LENGTH OF USER AREA\r
4237         001027' 542040  001001'           HRRM TAC, DMPRD0\r
4238         001030' 201040  000757'           MOVEI TAC, DDMPI              ;SEARCH RETURN\r
4239         001031' 200100  001302'           MOVE TAC1, [JSR DMPRD]                ;BLOCK IN RETURN\r
4240         001032' 254000  000641'           JRST UDMP1\r
4241         001033' 201040  001035' UDMPI2:   MOVEI TAC, DDMPI3             ;COMMAND LIST IN CORE\r
4242         001034' 254000  000640'           JRST UDMP0\r
4243                                 ;SEARCH RETURN, INPUT COMMAND LIST IN MEMORY\r
4244         001035' 721300  010000  DDMPI3:   CONSZ UTC, GR\r
4245         001036' 254000  000510'           JRST DDIG2                    ;KEEP GOING\r
4246         001037' 254000  000763'           JRST DDMPI2                   ;INPUT COMMAND LIST IN CORE\r
4247                                 ;JOB DONE AFTER COMMAND LIST RUNS OUT\r
4248         001040' 332000  001124' DMPEND:   SKIPE ERRFLG\r
4249         001041' 660000  200000            TRO IOS,IODERR\r
4250         001042' 202006  000002            MOVEM IOS,DEVIOS(DEVDAT)\r
4251         001043' 200040  001116'           MOVE TAC,UNIT\r
4252         001044' 405040  000070            ANDI TAC, 70\r
4253         001045' 700600  002100            CONO PI,2100\r
4254         001046' 720200  004011            CONO DC, DACI+UCHN\r
4255         001047' 721201  220200            CONO UTC, SL+RB(TAC)          ;SWITCH TO SEARCH MODE\r
4256         001050' 200040  001303'           MOVE TAC, [JSR UDMPRB]\r
4257         001051' 202040  000042            MOVEM TAC, UCHA\r
4258         001052' 254000  000000*           JRST DTCRET\r
4259                                 ;SEARCH RETURN TO READ NEXT FREE BLOCK\r
4260         001053' 000000  000000  UDMPRB:   0\r
4261         001054' 250300  001151'           EXCH DEVDAT, USVDB            ;GET DVDB\r
4262         001055' 202040  001130'           MOVEM TAC,SVAC\r
4263         001056' 202000  001131'           MOVEM IOS,SVAC+1\r
4264         001057' 202140  001132'           MOVEM PDP,SVAC+2\r
4265         001060' 202100  001133'           MOVEM TAC1,SVAC+3\r
4266         001061' 200006  000002            MOVE IOS,DEVIOS(DEVDAT)\r
4267         001062' 607000  000020            TLNN IOS,IO                   ;INPUT OR OUTPUT?\r
4268         001063' 254000  001066'           JRST .+3                      ;INPUT\r
4269         001064' 720046  000365*           DATAI DC,UFREE(DEVDAT)        ;LAST FREEBLOCK TALLY\r
4270         001065' 661000  000400            TLO IOS,UNWFRE                ;SET FREE BLOCK CHANGED BIT\r
4271         001066' 720200  000000            CONO DC,0                     ;TURN OFF DATA CONTROL\r
4272         001067' 201040  000654*           MOVEI TAC,DTCCHN\r
4273         001070' 721201  005000            CONO UTC,5000(TAC)            ;STOP TAPE\r
4274 \r
4275 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 17-1\r
4276 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
4277 \r
4278         001071' 200140  001304'           MOVE PDP,[XWD -5,SVAC+3]      ;USE REST OF SCAV BLOCK\r
4279         001072' 264000  001154'           JSR IODSET\r
4280         001073' 260140  001227'           PUSHJ PDP,DTC1B\r
4281 \r
4282 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 18\r
4283 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
4284 \r
4285 \r
4286         001074' 200040  001130'           MOVE TAC,SVAC\r
4287         001075' 200000  001131'           MOVE IOS,SVAC+1\r
4288         001076' 200140  001132'           MOVE PDP,SVAC+2\r
4289         001077' 200100  001133'           MOVE TAC1,SVAC+3\r
4290         001100' 250300  001151'           EXCH DEVDAT,USVDB\r
4291         001101' 254520  001053'           JEN @UDMPRB\r
4292                                 ;ADDRESS CHECK FROM COMMAND.  COMMANDS ON TAPE\r
4293         001102' 250300  001151' DMPERR:   EXCH DEVDAT, USVDB            ;GET DVDB\r
4294         001103' 201040  400000            MOVEI TAC, IOIMPM             ;ERROR BITS\r
4295         001104' 436046  000002            ORM TAC, DEVIOS(DEVDAT)       ;SET STATUS\r
4296         001105' 250300  001151'           EXCH DEVDAT, USVDB            ;RESTORE DEVDAT\r
4297         001106' 200040  001115'           MOVE TAC, SV1                 ;RESTORE TAC\r
4298         001107' 254000  001010'           JRST DMPRD1\r
4299 \r
4300 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 19\r
4301 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
4302 \r
4303 \r
4304         001110' 000000  000000  C11:      0             ;TEMP CONI DC\r
4305         001111' 000000  000000  C12:      0             ;TEMP CONI UTS\r
4306         001112' 000000  000000  C13:      0             ;TEMP CONI UTC\r
4307         001113' 000000  000000  BLO:      0             ;XWD -200 C(UBUF)\r
4308         001114' 000000  000000  BLI:      0             ;XWD,-200,C(UBUF+200)\r
4309         001115' 000000  000000  SV1:      0             ;TEMPORARY FOR TAC DURING INTERRUPT\r
4310         001116' 000000  000000  UNIT:     0             ;IN BITS 30-32\r
4311         001117' 000000  000000  UBKN:     0             ;BLOCK BEING SEARCHED FOR\r
4312         001120' 000000  000000  UPROG:    0             ;HOLDS PROG\r
4313         001121' 000000  000000  UBUF:     0             ;ABS. LOC OF DATA\r
4314         001122' 000000  000000  UDVDAT:   0             ;PTR TO IOS\r
4315         001123' 000000  000000  ERRTAL:   0             ;TOTAL NO. OF ERRORS\r
4316         001124' 000000  000000  ERRFLG:   0             ;-1 IF ERROR OCCURED, 0 OTHERWISSE\r
4317 \r
4318         001125' 000000  000000  UDMP:     0             ;HOLDS DUMP UUO ADDRESS\r
4319         001126' 000000  000000  UDMPA:    0             ;HOLDS USER PROGRAM STARTING ADDRESS\r
4320         001127' 000000  000000  SV0:      0\r
4321         001130'                 SVAC:     BLOCK 11\r
4322         001141' 000000  000000  SVCNTR:   0             ;HOLDS -N OF DUMP COMMAND WORD\r
4323 \r
4324                                 ;CHECK FRO INTERLOCK ON DECTAPE AND DATA CONTROLS\r
4325         001142' 660000  010000  UINTER:   TRO IOS, IOACT\r
4326         001143' 202006  000002            MOVEM IOS, DEVIOS(DEVDAT)\r
4327         001144' 352000  000244*           AOSE DTREQ                    ;IS DECTAPE CONTROL FREE?\r
4328         001145' 260140  000000*           PUSHJ PDP, DTWAIT             ;WAIT\r
4329         001146' 352000  000242*           AOSE DCREQ                    ;IS DATA CONTROL FREE?\r
4330         001147' 260140  000000*           PUSHJ PDP, DCWAIT             ;WAIT\r
4331         001150' 263140  000000            POPJ PDP, 0                   ;EXIT\r
4332 \r
4333         001151' 000000  000000  USVDB:    0             ;SAVE DATA BLOCK ADDRESS\r
4334         001152' 000000  000000  USVIOS:   0             ;SAVE IOS\r
4335         001153' 777777  777775  UERRCN:   -3            ;ERROR COUNTER\r
4336 \r
4337         001154' 000000  000000  IODSET:   0\r
4338         001155' 623000  000001            TLZE IOS,IOW\r
4339         001156' 260140  000000*           PUSHJ PDP,SETIOD\r
4340         001157' 202006  000002            MOVEM IOS,DEVIOS(DEVDAT)\r
4341         001160' 254020  001154'           JRST @IODSET\r
4342 \r
4343 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 20\r
4344 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
4345 \r
4346 \r
4347                                 ;INITIALZATION\r
4348 \r
4349         001161' 201040  777775  DTCINI:   MOVEI TAC, -3                 ;CLEAR ERROR COUNTER\r
4350         001162' 572040  001153'           HRREM TAC, UERRCN\r
4351         001163' 402000  001124'           SETZM ERRFLG\r
4352         001164' 721200  000000            CONO UTC, 0\r
4353         001165' 263140  000000            POPJ PDP, 0\r
4354 \r
4355         001166' 721740  000137  DTCINT:   CONSO UTS, 137                ;ALL ERRORS AND JOB DONE\r
4356         001167' 254000  001167'           JRST .                        ;MODIFIED BY INITIALIZATION\r
4357         001170' 721700  000020            CONSZ UTS,20                  ;TIME FLAG\r
4358         001171' 254000  001244'           JRST UTIME                    ;SET DECTAPE CONTROL AVAILABL\r
4359         001172' 721700  000116  CONSZ1:   CONSZ UTS, 116                ;INC BLK, PARITY, ILL OP, END\r
4360         001173' 264000  000627'           JSR ERROR2                    ;ERROR\r
4361 \r
4362                                 ;JOB DONE\r
4363         001174' 720200  000000            CONO DC, 0                    ;TURN OFF DATA CONTROL\r
4364         001175' 202000  001127'           MOVEM 0, SV0                  ;SAVE ZERO\r
4365         001176' 721240  000000            CONI UTC, 0\r
4366         001177' 202000  001152'           MOVEM 0, USVIOS\r
4367         001200' 405000  230070            ANDI 0, 230070                ;SAVE DIRECTION AND UNIT\r
4368         001201' 721220  000000            CONO UTC, @0                  ;SWITCH TO MOVE MODE\r
4369         001202' 200000  001127'           MOVE 0, SV0\r
4370         001203' 264000  000000*           JSR DTCSAV\r
4371         001204' 260140  001252'           PUSHJ PDP, DSETAC\r
4372         001205' 332000  001124'           SKIPE ERRFLG\r
4373         001206' 254000  001256'           JRST DTRED0\r
4374         001207' 623000  002000            TLZE IOS,URDIR\r
4375         001210' 254000  001213'           JRST .+3\r
4376         001211' 264000  001154'           JSR IODSET\r
4377         001212' 254000  001220'           JRST DTC1\r
4378         001213' 640000  000017            TRC IOS,17\r
4379         001214' 646000  000017            TRCN IOS,17\r
4380         001215' 254000  001040'           JRST DMPEND\r
4381         001216' 264000  001154'           JSR IODSET\r
4382         001217' 254000  001237'           JRST DTCONT\r
4383         001220' 200040  001152' DTC1:     MOVE TAC, USVIOS\r
4384         001221' 405040  010007            ANDI TAC, 10007               ;DIRECTION, CHANNEL\r
4385         001222' 435040  005000            ORI TAC,5000                  ;TIME FLAG ENABLE\r
4386         001223' 721220  000001            CONO UTC, @ TAC               ;STOP TAPE, AND DESELECT\r
4387         001224' 621000  010000            TLZ IOS, UREV\r
4388         001225' 602040  010000            TRNE TAC, 10000\r
4389         001226' 661000  010000            TLO IOS,UREV\r
4390 \r
4391 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 21\r
4392 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
4393 \r
4394 \r
4395         001227'                 DTC1A:\r
4396         001227' 371000  001146* DTC1B:    SOSL DCREQ            ;DECREMENT REQUEST COUNT, ANYONE LEFT W\r
4397         001230' 476000  000243*           SETOM DCAVAL                  ;YES.DATA CONTROL AVAILABLE\r
4398         001231' 620000  010000            TRZ IOS, IOACT\r
4399         001232' 202006  000002  DTC2:     MOVEM IOS, DEVIOS(DEVDAT)\r
4400         001233' 201040  777775            MOVEI TAC, -3\r
4401         001234' 572040  001153'           HRREM TAC, UERRCN\r
4402         001235' 402000  001124'           SETZM ERRFLG\r
4403         001236' 263140  000000            POPJ PDP,\r
4404 \r
4405         001237' 201100  000153' DTCONT:   MOVEI TAC1, UOUT2\r
4406         001240' 607000  000020            TLNN IOS, IO                  ;WRITING?\r
4407         001241' 201100  000217'           MOVEI TAC1, UIN1\r
4408         001242' 260142  000000            PUSHJ PDP, 0(TAC1)\r
4409         001243' 254000  001232'           JRST DTC2\r
4410 \r
4411                                 ;INTERRUPT FROM TIME FLAG AFTER STOP DELAY\r
4412         001244' 721340  004000  UTIME:    CONSO UTC,4000\r
4413         001245' 254000  001167'           JRST DTCINT+1\r
4414         001246' 371000  001144*           SOSL DTREQ            ;DECREMENT REQUEST COUNT, IS ANYONE STI\r
4415         001247' 476000  000245*           SETOM DTAVAL                  ;YES,DECTAPE CONTROL AVAILABL\r
4416         001250' 721200  000000            CONO UTC, 0\r
4417         001251' 254520  000000*           JEN @DTCCHL\r
4418 \r
4419                                 ;SET UP NECESSARY DECTAPE ACCUMULATORS\r
4420         001252' 200300  001151' DSETAC:   MOVE DEVDAT, USVDB\r
4421         001253' 200340  001120'           MOVE PROG, UPROG\r
4422         001254' 200006  000002            MOVE IOS, DEVIOS(DEVDAT)\r
4423         001255' 263140  000000            POPJ PDP,\r
4424                                 ;RE-DO DECTAPE COMMAND IF AN ERROR OCCURED\r
4425         001256' 640000  000017  DTRED0:   TRC IOS,17\r
4426         001257' 646000  000017            TRCN IOS,17\r
4427         001260' 254000  001040'           JRST DMPEND\r
4428         001261' 350000  001153'           AOS UERRCN                    ;NOT YET 3 ERRORS\r
4429         001262' 254000  001266'           JRST DTRD2                    ;THIRD ERROR\r
4430         001263' 402000  001124'           SETZM ERRFLG                  ;CLEAR FLAG\r
4431 I       001264' 260140  000415'           PUSHJ PDP, FILL               ;RE-EXECUTE THE COMMAND\r
4432         001265' 254000  001052*           JRST DTCRET                   ;EXIT\r
4433         001266' 660000  200000  DTRD2:    TRO IOS, IODERR               ;SET ERROR INDICATION\r
4434         001267' 623000  000001            TLZE IOS, IOW\r
4435         001270' 260140  001156*           PUSHJ PDP, SETIOD             ;RELEASE WAIT\r
4436         001271' 254000  001220'           JRST DTC1                     ;STOP THE TAPE\r
4437                                 EXTERNAL DTREQ, DCREQ, DTWAIT, DCWAIT, DTCSAV,DTCRET\r
4438                                 EXTERNAL DTAVAL, DCAVAL, DTCCHL, UTBKER, DTCCHN, USRREL\r
4439                                 INTERNAL DTCINT, DTCINI, DTSIZ,UBUF\r
4440 \r
4441                                           END,\r
4442 \r
4443 NO ERRORS DETECTED\r
4444 \r
4445 PROGRAM BREAK IS 001305\r
4446 \r
4447 \r
4448 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 21-1\r
4449 DTSER2  MAC     24-APR-78 02:46         L. HANTMAN PART 1 7-13-65\r
4450 \r
4451 9K CORE USED\r
4452 \r
4453 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 22\r
4454 DTSER2  MAC     24-APR-78 02:46         SYMBOL TABLE\r
4455 \r
4456 A               000000  INT\r
4457 AC1             000015  INT\r
4458 AC2             000016  INT\r
4459 AC3             000017  INT\r
4460 ADRCK           000001' EXT\r
4461 ADRERR          000704' EXT\r
4462 ADVBFE          000000  EXT\r
4463 ADVBFF          000000  EXT\r
4464 AL              000001  INT\r
4465 ASSCON          400000  INT\r
4466 ASSPRG          200000  INT\r
4467 B               000014  INT\r
4468 BLI             001114' \r
4469 BLO             001113' \r
4470 BUFPNT          000012  INT\r
4471 BUFWRD          000013  INT\r
4472 C11             001110' \r
4473 C12             001111' \r
4474 C13             001112' \r
4475 CLOSB           002000  INT\r
4476 CLSIN           000002  INT\r
4477 CLSOUT          000001  INT\r
4478 CONSZ1          001172' \r
4479 CPOPJ1          000033' EXT\r
4480 D               000017  INT\r
4481 DACI            004010  \r
4482 DACO            003410  \r
4483 DAT             000005  INT\r
4484 DC              000200  SPD\r
4485 DCAVAL          001230' EXT\r
4486 DCL             000001  INT\r
4487 DCREQ           001227' EXT\r
4488 DCW             020000  INT\r
4489 DCWAIT          001147' EXT\r
4490 DDI             000007  INT\r
4491 DDIF            000472' \r
4492 DDIG            000500' \r
4493 DDIG2           000510' \r
4494 DDMPI           000757' \r
4495 DDMPI2          000763' \r
4496 DDMPI3          001035' \r
4497 DDO             000006  INT\r
4498 DDTMEM          000037  INT\r
4499 DDTSYM          000036  INT\r
4500 DDUMP           000727' \r
4501 DEN             000004  INT\r
4502 DEVADR          000007  INT\r
4503 DEVBUF          000006  INT\r
4504 DEVCHR          000001  INT\r
4505 DEVCTR          000011  INT\r
4506 DEVDAT          000006  INT\r
4507 DEVIAD          000007  INT\r
4508 \r
4509 \r
4510 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 22-1\r
4511 DTSER2  MAC     24-APR-78 02:46         SYMBOL TABLE\r
4512 \r
4513 DEVIOS          000002  INT\r
4514 DEVLOG          000005  INT\r
4515 DEVMOD          000004  INT\r
4516 DEVNAM          000000  INT\r
4517 DEVOAD          000010  INT\r
4518 DEVPTR          000010  INT\r
4519 DEVSER          000003  INT\r
4520 DGF             000012  INT\r
4521 DIN             000003  INT\r
4522 DIRERR          000015' EXT\r
4523 DLK             000005  INT\r
4524 DMPA1           000742' \r
4525 DMPA2           000752' \r
4526 DMPADV          000737' \r
4527 DMPEND          001040' \r
4528 DMPERR          001102' \r
4529 DMPRD           000771' \r
4530 DMPRD0          001001' \r
4531 DMPRD1          001010' \r
4532 DMPRDA          001012' \r
4533 DMPXT           000750' \r
4534 DOU             000002  INT\r
4535 DR              000016  INT\r
4536 DRL             000000  INT\r
4537 DSETAC          001252' \r
4538 DSI             000011  INT\r
4539 DSO             000010  INT\r
4540 DT              002000  \r
4541 DTAVAL          001247' EXT\r
4542 DTC1            001220' \r
4543 DTC1A           001227' \r
4544 DTC1B           001227' \r
4545 DTC2            001232' \r
4546 DTCCHL          001251' EXT\r
4547 DTCCHN          001067' EXT\r
4548 DTCINI          001161' INT\r
4549 DTCINT          001166' INT\r
4550 DTCONT          001237' \r
4551 DTCRET          001265' EXT\r
4552 DTCSAV          001203' EXT\r
4553 DTR             003000  \r
4554 DTRD2           001266' \r
4555 DTRED0          001256' \r
4556 DTREQ           001246' EXT\r
4557 DTSIZ           000001  INT\r
4558 DTW             040000  INT\r
4559 DTWAIT          001145' EXT\r
4560 DVAVAL          000040  INT\r
4561 DVCDR           100000  INT\r
4562 DVDIR           000004  INT\r
4563 DVDIRI          400000  INT\r
4564 DVIN            000002  INT\r
4565 DVLPT           040000  INT\r
4566 \r
4567 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 22-2\r
4568 DTSER2  MAC     24-APR-78 02:46         SYMBOL TABLE\r
4569 \r
4570 DVMTA           000020  INT\r
4571 DVOUT           000001  INT\r
4572 DVTTY           000010  INT\r
4573 DXIT            000515' \r
4574 DXIT1           000514' \r
4575 EE              100000  \r
4576 ENP             000603' \r
4577 ENPT            000567' \r
4578 ENPT2           000571' \r
4579 ENPTI           000620' \r
4580 ENTRB           020000  INT\r
4581 ERRFLG          001124' \r
4582 ERROR           000607' \r
4583 ERROR2          000627' \r
4584 ERRTAL          001123' \r
4585 F1              000457' \r
4586 F2              000460' \r
4587 F3              000461' \r
4588 F4              000462' \r
4589 FILL            000415' \r
4590 FILL2           000450' \r
4591 FILLC           000453' \r
4592 GETF            000277' \r
4593 GR              010000  \r
4594 I               000010  INT\r
4595 IB              000013  INT\r
4596 IBUFB           200000  INT\r
4597 INITB           400000  INT\r
4598 INPB            010000  INT\r
4599 IO              000020  INT\r
4600 IOACT           010000  INT\r
4601 IOBEG           000002  INT\r
4602 IOBKTL          040000  INT\r
4603 IOCON           000040  INT\r
4604 IODEND          020000  INT\r
4605 IODERR          200000  INT\r
4606 IODISC          400000  INT\r
4607 IODONE          400000  INT\r
4608 IODSET          001154' \r
4609 IODTER          100000  INT\r
4610 IOEND           000040  INT\r
4611 IOFST           000004  INT\r
4612 IOIERR          000065' EXT\r
4613 IOIMPM          400000  INT\r
4614 IONRCK          000100  INT\r
4615 IORDEL          000100  INT\r
4616 IORET           000020  INT\r
4617 IOS             000000  INT\r
4618 IOSET           000000  EXT\r
4619 IOSTRT          000010  INT\r
4620 IOUSE           400000  INT\r
4621 IOW             000001  INT\r
4622 IOWC            000020  INT\r
4623 \r
4624 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 22-3\r
4625 DTSER2  MAC     24-APR-78 02:46         SYMBOL TABLE\r
4626 \r
4627 IOWS            400000  INT\r
4628 ITEM            000004  INT\r
4629 JBFADR          000000  INT\r
4630 JBFCTR          000002  INT\r
4631 JBFPTR          000001  INT\r
4632 JBUF            000005  INT\r
4633 JDAT            000011  INT\r
4634 JDE             040000  \r
4635 JERR            002000  INT\r
4636 JIOW            100000  INT\r
4637 JNA             004000  INT\r
4638 JOBPFI          000703' EXT\r
4639 LOOKB           040000  INT\r
4640 MTW             010000  INT\r
4641 OBUFB           100000  INT\r
4642 OUT             000325' EXT\r
4643 OUTPB           004000  INT\r
4644 PDP             000003  INT\r
4645 PI              000004  SPD\r
4646 PICHN           000100  INT\r
4647 PIOMOD          000314' EXT\r
4648 PROG            000007  INT\r
4649 PUNIT           000652' EXT\r
4650 PUUOAC          000063' EXT\r
4651 RB              000200  \r
4652 RD              000300  \r
4653 RDDA            000517' \r
4654 RDFW            000551' \r
4655 RDRM            000531' \r
4656 RDRV            000543' \r
4657 READ            000527' \r
4658 RIT             000535' \r
4659 RRV             000463' \r
4660 RUN             200000  INT\r
4661 RUNABL          204000  INT\r
4662 SETI            000267' \r
4663 SETIOD          001270' EXT\r
4664 SETO            000272' \r
4665 SL              220000  \r
4666 SV0             001127' \r
4667 SV1             001115' \r
4668 SVAC            001130' \r
4669 SVCNTR          001141' \r
4670 TAC             000001  INT\r
4671 TAC1            000002  INT\r
4672 TEM             000010  INT\r
4673 THSDAT          000046' EXT\r
4674 TTYATC          020000  INT\r
4675 TTYUSE          010000  INT\r
4676 UBEG            000343' INT\r
4677 UBEG2           000350' \r
4678 UBEG3           000370' \r
4679 UBEGX           000366' \r
4680 \r
4681 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 22-4\r
4682 DTSER2  MAC     24-APR-78 02:46         SYMBOL TABLE\r
4683 \r
4684 UBKN            001117' \r
4685 UBLK            000001  \r
4686 UBUF            001121' INT\r
4687 UCHA            000042  \r
4688 UCHN            000001  \r
4689 UDIR            000364' EXT\r
4690 UDIR2           000016' \r
4691 UDIR3           000022' \r
4692 UDIR4           000026' \r
4693 UDIREN          000200  \r
4694 UDIRIN          000100  \r
4695 UDIRK1          000034' \r
4696 UDIRLN          000004  \r
4697 UDIRSH          000000' \r
4698 UDMP            001125' \r
4699 UDMP0           000640' INT\r
4700 UDMP1           000641' \r
4701 UDMP1A          000674' \r
4702 UDMP1B          000676' \r
4703 UDMP1C          000712' \r
4704 UDMP2           000723' \r
4705 UDMPA           001126' \r
4706 UDMPI           001022' INT\r
4707 UDMPI2          001033' \r
4708 UDMPO           000633' \r
4709 UDMPRB          001053' \r
4710 UDVDAT          001122' \r
4711 UEND            000236' \r
4712 UEND2           000242' \r
4713 UENTER          000052' INT\r
4714 UERRCN          001153' \r
4715 UFREE           001064' EXT\r
4716 UIN             000204' \r
4717 UIN1            000217' \r
4718 UIN2            000251' \r
4719 UIN3            000254' \r
4720 UIN4            000265' \r
4721 UINTER          001142' \r
4722 ULINKF          001000  \r
4723 ULOOK           000035' INT\r
4724 ULOOK1          000041' \r
4725 UNIT            001116' \r
4726 UNWFRE          000400  \r
4727 UOFF            000615' \r
4728 UOUT            000125' \r
4729 UOUT1           000144' \r
4730 UOUT2           000153' \r
4731 UOUT3           000167' \r
4732 UOUT4           000171' \r
4733 UPROG           001120' \r
4734 URDIR           002000  \r
4735 UREV            010000  \r
4736 USETR           000377' \r
4737 \r
4738 \fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING       MACRO 10 05:51 24-APR-78 PAGE 22-5\r
4739 DTSER2  MAC     24-APR-78 02:46         SYMBOL TABLE\r
4740 \r
4741 USETW           000375' \r
4742 USRJDA          000064' EXT\r
4743 USRMOD          010000  INT\r
4744 USRREL          001026' EXT\r
4745 USVDB           001151' \r
4746 USVIOS          001152' \r
4747 UTBERR          000373' \r
4748 UTBKER          000374' EXT\r
4749 UTC             000210  SPD\r
4750 UTDSP           000112' ENT\r
4751 UTIME           001244' \r
4752 UTPCLR          000063' INT\r
4753 UTPCLS          000312' INT\r
4754 UTPREL          000326' INT\r
4755 UTPRL1          000330' \r
4756 UTS             000214  SPD\r
4757 UTWDR           000311' INT\r
4758 UUO             000014  INT\r
4759 UX1             000001  \r
4760 UX2             000002  \r
4761 UX3             000005  \r
4762 UXIT            000311' EXT\r
4763 VEOT            000002  \r
4764 WAIT1           000342' EXT\r
4765 WD              000700  \r
4766 WSYNC           000363' EXT\r
4767 WTDA            000523' \r
4768 WTFW            000563' \r
4769 \fEEEEEEEEEEEEEEE      RRRRRRRRRRRR         RRRRRRRRRRRR            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
4770 EEEEEEEEEEEEEEE      RRRRRRRRRRRR         RRRRRRRRRRRR            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
4771 EEEEEEEEEEEEEEE      RRRRRRRRRRRR         RRRRRRRRRRRR            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
4772 EEE                  RRR         RRR      RRR         RRR      CCC                  OOO         OOO      NNN         NNN\r
4773 EEE                  RRR         RRR      RRR         RRR      CCC                  OOO         OOO      NNN         NNN\r
4774 EEE                  RRR         RRR      RRR         RRR      CCC                  OOO         OOO      NNN         NNN\r
4775 EEE                  RRR         RRR      RRR         RRR      CCC                  OOO         OOO      NNNNNN      NNN\r
4776 EEE                  RRR         RRR      RRR         RRR      CCC                  OOO         OOO      NNNNNN      NNN\r
4777 EEE                  RRR         RRR      RRR         RRR      CCC                  OOO         OOO      NNNNNN      NNN\r
4778 EEEEEEEEEEEE         RRRRRRRRRRRR         RRRRRRRRRRRR         CCC                  OOO         OOO      NNN   NNN   NNN\r
4779 EEEEEEEEEEEE         RRRRRRRRRRRR         RRRRRRRRRRRR         CCC                  OOO         OOO      NNN   NNN   NNN\r
4780 EEEEEEEEEEEE         RRRRRRRRRRRR         RRRRRRRRRRRR         CCC                  OOO         OOO      NNN   NNN   NNN\r
4781 EEE                  RRR   RRR            RRR   RRR            CCC                  OOO         OOO      NNN      NNNNNN\r
4782 EEE                  RRR   RRR            RRR   RRR            CCC                  OOO         OOO      NNN      NNNNNN\r
4783 EEE                  RRR   RRR            RRR   RRR            CCC                  OOO         OOO      NNN      NNNNNN\r
4784 EEE                  RRR      RRR         RRR      RRR         CCC                  OOO         OOO      NNN         NNN\r
4785 EEE                  RRR      RRR         RRR      RRR         CCC                  OOO         OOO      NNN         NNN\r
4786 EEE                  RRR      RRR         RRR      RRR         CCC                  OOO         OOO      NNN         NNN\r
4787 EEEEEEEEEEEEEEE      RRR         RRR      RRR         RRR         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
4788 EEEEEEEEEEEEEEE      RRR         RRR      RRR         RRR         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
4789 EEEEEEEEEEEEEEE      RRR         RRR      RRR         RRR         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
4790 \r
4791 \r
4792 \r
4793 \r
4794 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
4795 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
4796 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
4797 LLL                  SSS                        TTT                                                                     \r
4798 LLL                  SSS                        TTT                                                                     \r
4799 LLL                  SSS                        TTT                                                                     \r
4800 LLL                  SSS                        TTT                                                                     \r
4801 LLL                  SSS                        TTT                                                                     \r
4802 LLL                  SSS                        TTT                                                                     \r
4803 LLL                     SSSSSSSSS               TTT                                                                     \r
4804 LLL                     SSSSSSSSS               TTT                                                                     \r
4805 LLL                     SSSSSSSSS               TTT                                                                     \r
4806 LLL                              SSS            TTT                                                                     \r
4807 LLL                              SSS            TTT                                                                     \r
4808 LLL                              SSS            TTT                                                                     \r
4809 LLL                              SSS            TTT                                                                     \r
4810 LLL                              SSS            TTT                                                                     \r
4811 LLL                              SSS            TTT                                                                     \r
4812 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
4813 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
4814 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
4815 \r
4816 \r
4817 \r
4818 \r
4819 Request created: 24-April-1978  05:53:58\r
4820 File: DSKB0 :ERRCON.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:33\r
4821 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1892 \r
4822 File will be deleted after printing\r
4823 \f\r
4824 ERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS    MACRO 10 05:51 24-APR-78 PAGE 1\r
4825 S       MAC     24-APR-78 21:40         8-9-65\r
4826 \r
4827                                         XLIST\r
4828                                        LIST\r
4829                                 TITLE ERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS\r
4830                                 SUBTTL  8-9-65\r
4831                                 EXTERNAL APRCHL,APRRET,HOLD,HOLDI,APRCHN\r
4832                                 EXTERNAL JOB,JOBADR,JOBREL,TTYFND,TTYCTR,TTYSTR\r
4833                                 EXTERNAL JBTADR, UXIT,JOBPDP,JOBTRP,USRPDP,UBUF,PJOBN\r
4834                                 EXTERNAL CPOPJ,HOLDI1,WAIT1,USRPOV,JOBPFI\r
4835                                 EXTERNAL CRLF,MJOBPD,JOBPDL,CPOPJ1\r
4836 \r
4837 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 2\r
4838 ERRCON  MAC     24-APR-78 23:01         8-9-65\r
4839 \r
4840 \r
4841                                 ;CALL:    PUSHJ PDP,ADRCK\r
4842                                 ;                   HRRZ TAC,LOC\r
4843                                 ;                   OK RETURN\r
4844 \r
4845                                           INTERNAL ADRCK\r
4846 \r
4847         000000' 261140  000001  ADRCK:    PUSH PDP, TAC\r
4848         000001' 256023  777777            XCT @-1(PDP)\r
4849         000002' 350003  777777            AOS -1(PDP)\r
4850         000003' 261140  000002            PUSH PDP,TAC1\r
4851         000004' 135100  000000*           LDB TAC1,PJOBN\r
4852         000005' 554102  000000*           HLRZ TAC1,JBTADR(TAC1)\r
4853         000006' 303040  000000*           CAILE TAC,JOBPFI      ;IN IO PROTECTED PART OF DATA AREA?\r
4854         000007' 313040  000002            CAMLE TAC,TAC1        ;NO,IS IT GREATER THAN PROTECTION?\r
4855         000010' 260140  000014'           PUSHJ PDP,ADRERR      ;YES\r
4856         000011' 262140  000002            POP PDP,TAC1          ;NO\r
4857         000012' 262140  000001            POP PDP, TAC\r
4858         000013' 263140  000000            POPJ PDP,\r
4859 \r
4860 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 3\r
4861 ERRCON  MAC     24-APR-78 23:01         8-9-65\r
4862 \r
4863 \r
4864                                           INTERNAL ADRERR\r
4865 \r
4866         000014' 550100  000003  ADRERR:   HRRZ TAC1,PDP\r
4867         000015' 317100  000000*           CAMG TAC1,JOBADR      ;IS THIS ERROR AT UUO OR INTERRUPT SERV\r
4868         000016' 254000  000027'           JRST ADRERI           ;INTERRUPT SERVICE LEVEL\r
4869         000017' 265040  000231'           JSP TAC,ERRPTU\r
4870         000020' 440700  000023'           POINT 7,AERM1\r
4871         000021' 260140  000155'           PUSHJ PDP,ERNAM\r
4872         000022' 254000  000207'           JRST ERSYC1\r
4873 \r
4874         000023' 406110  451212  AERM1:    ASCIZ /ADDRESS CHECK FOR /\r
4875         000024' 516464  041620\r
4876         000025' 426071  320214\r
4877         000026' 476444  000000\r
4878 \r
4879         000027' 135200  000004* ADRERI:   LDB ITEM, PJOBN\r
4880         000030' 265040  000232'           JSP TAC,ERRPNT\r
4881         000031' 440700  000023'           POINT 7,AERM1\r
4882         000032' 260140  000155'           PUSHJ PDP,ERNAM\r
4883         000033' 201100  000045'           MOVEI TAC1,AERM3\r
4884         000034' 260140  000333'           PUSHJ PDP,MESPNT\r
4885         000035' 250303  000000  ADRER2:   EXCH DEVDAT, (PDP)    ;GET ADDRESS OF D.D. BLOCK DECTECTING ER\r
4886         000036' 135040  000422'           LDB TAC, [POINT 3, DEVCHR(DEVDAT), 11]  ;GET PI CHANNEL NO.\r
4887         000037' 261140  000001            PUSH PDP, TAC                 ;AND SAVE\r
4888         000040' 200046  000003            MOVE TAC,DEVSER(DEVDAT)\r
4889         000041' 260141  000000            PUSHJ PDP,DRL(TAC)    ;RELEASE DEVICE\r
4890         000042' 262140  000001            POP PDP, TAC          ;RESTORE PI CHANNEL NO.\r
4891         000043' 250303  000000            EXCH DEVDAT,(PDP)\r
4892         000044' 254000  000000*           JRST HOLDI                    ;AND GO DISMISS CHANNEL\r
4893 \r
4894         000045' 202112  551222  AERM3:    ASCIZ / DURING INTERRUPT/\r
4895         000046' 472164  044634\r
4896         000047' 522132  251252\r
4897         000050' 502500  000000\r
4898 \r
4899 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 4\r
4900 ERRCON  MAC     24-APR-78 23:01         8-9-65\r
4901 \r
4902 \r
4903                                           INTERNAL APRILM\r
4904                                           EXTERNAL USRREL\r
4905 \r
4906                         200000            POVF=200000\r
4907                         400000            POVC=400000\r
4908                         010000            NXM=10000\r
4909                         020000            ILM=20000\r
4910 \r
4911         000051' 201040  000000* APRILM:   MOVEI TAC,APRCHN\r
4912         000052' 700340  020000            CONSO APR,ILM\r
4913         000053' 254000  000100'           JRST APRNXM\r
4914         000054' 700201  020000            CONO APR,ILM(TAC)\r
4915         000055' 550040  000000*           HRRZ TAC,APRCHL\r
4916         000056' 313040  000000*           CAMLE TAC, USRREL\r
4917         000057' 254000  000064'           JRST APRJRS\r
4918         000060' 265040  000231'           JSP TAC,ERRPTU\r
4919         000061' 440700  000070'           POINT 7,APM1\r
4920         000062' 260140  000144' APRIL1:   PUSHJ PDP,EPTADR\r
4921         000063' 254000  000132'           JRST APRDMS           ;GO DISMISS APR CHANNEL\r
4922 \r
4923         000064' 265040  000231' APRJRS:   JSP TAC,ERRPTU\r
4924         000065' 440700  000073'           POINT 7,APM2\r
4925         000066' 260140  000144'           PUSHJ PDP,EPTADR\r
4926         000067' 254000  000132'           JRST APRDMS\r
4927 \r
4928         000070' 446311  420232  APM1:     ASCIZ /ILL MEM REF/\r
4929         000071' 426324  051212\r
4930         000072' 430000  000000\r
4931 \r
4932         000073' 502064  042660  APM2:     ASCIZ /PC EXCEEDS MEM BOUND/\r
4933         000074' 416130  542246\r
4934         000075' 202330  546500\r
4935         000076' 412372  547210\r
4936         000077' 000000  000000\r
4937 \r
4938 \r
4939 \r
4940 \r
4941         000100' 700340  010000  APRNXM:   CONSO APR,NXM\r
4942         000101' 254000  000111'           JRST APRPDL\r
4943         000102' 700201  010000            CONO APR,NXM(TAC)\r
4944         000103' 265040  000231'           JSP TAC,ERRPTU\r
4945         000104' 440700  000106'           POINT 7,APM3\r
4946         000105' 254000  000062'           JRST APRIL1\r
4947 \r
4948         000106' 472371  620212  APM3:     ASCIZ /NON EX MEM/\r
4949         000107' 541011  542632\r
4950         000110' 000000  000000\r
4951 \r
4952 \r
4953 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 5\r
4954 ERRCON  MAC     24-APR-78 23:01         8-9-65\r
4955 \r
4956 \r
4957         000111' 700340  200000  APRPDL:   CONSO APR,POVF\r
4958         000112' 265240  000202'           JSP DAT, ERROR        ;NOT APR, MUST BE HARDWARE PROB.\r
4959         000113' 700201  400000            CONO APR,POVC(TAC)\r
4960         000114' 200040  000055*           MOVE TAC,APRCHL\r
4961         000115' 332100  000000*           SKIPE TAC1,USRPOV\r
4962         000116' 607040  010000            TLNN TAC,10000        ;WAS OVF IN USER MODE?\r
4963         000117' 254000  000122'           JRST PDLOV                    ;NO, GO PRINT MESSAGE\r
4964         000120' 542100  000114*           HRRM TAC1,APRCHL      ;RESET RETURN\r
4965         000121' 254000  000000*           JRST APRRET                   ;DISMISS CLOCK\r
4966         000122' 265040  000231' PDLOV:    JSP TAC,ERRPTU\r
4967         000123' 440700  000134'           POINT 7,APM4\r
4968         000124' 260140  000144'           PUSHJ PDP,EPTADR\r
4969         000125' 200040  000120*           MOVE TAC,APRCHL\r
4970         000126' 603040  010000            TLNE TAC,10000\r
4971         000127' 254000  000132'           JRST APRDMS           ;GO DISMISS APR CHANNEL\r
4972         000130' 201100  000225'           MOVEI TAC1,ERMS1\r
4973         000131' 260140  000340'           PUSHJ PDP,MESPC\r
4974         000132' 201040  000000  APRDMS:   MOVEI TAC, 0          ;SET TO DISMISS APR CHANNEL\r
4975         000133' 254000  000000*           JRST HOLDI1\r
4976 \r
4977         000134' 502111  420236  APM4:     ASCIZ .PDL OV.\r
4978         000135' 530000  000000\r
4979 \r
4980         000136' 202032  420212  APMSYS:   ASCIZ / AT EXEC LOC /\r
4981         000137' 542130  320230\r
4982         000140' 476064  000000\r
4983 \r
4984 \r
4985         000141' 202032  420252  APMUSR:   ASCIZ / AT USER LOC /\r
4986         000142' 516132  220230\r
4987         000143' 476064  000000\r
4988 \r
4989 \r
4990         000144' 200040  000125* EPTADR:   MOVE TAC,APRCHL\r
4991         000145' 261140  000001  EPTAD1:   PUSH PDP,TAC          ;PPRINT "AT EXEC LOC " OR "AT USER LOC"\r
4992         000146' 201100  000136'           MOVEI TAC1,APMSYS\r
4993         000147' 603040  010000            TLNE TAC,10000\r
4994         000150' 201100  000141'           MOVEI TAC1,APMUSR\r
4995         000151' 260140  000333'           PUSHJ PDP,MESPNT\r
4996         000152' 262140  000001            POP PDP,TAC\r
4997         000153' 405040  777777            ANDI TAC,-1\r
4998         000154' 254000  000344'           JRST OCTPNT\r
4999 \r
5000 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 6\r
5001 ERRCON  MAC     24-APR-78 23:01         8-9-65\r
5002 \r
5003 \r
5004                                           INTERNAL ERNAM\r
5005 \r
5006 \r
5007         000155' 201100  000167' ERNAM:    MOVEI TAC1,ERRDEV\r
5008         000156' 260140  000333'           PUSHJ PDP,MESPNT\r
5009         000157' 200100  000423'           MOVE TAC1,[POINT 6,@-(PDP)]\r
5010         000160' 201000  000006            MOVEI 0,6\r
5011         000161' 134040  000002  ERNAM1:   ILDB TAC,TAC1\r
5012         000162' 322040  000166'           JUMPE TAC,.+4\r
5013         000163' 271040  000240            ADDI TAC,240\r
5014         000164' 136040  000005            IDPB TAC,DAT\r
5015         000165' 367000  000161'           SOJG 0,ERNAM1\r
5016         000166' 263140  000000            POPJ PDP,\r
5017 \r
5018         000167' 422132  644606  ERRDEV:   ASCIZ /DEVICE /\r
5019         000170' 425000  000000\r
5020 \r
5021                                 INTERNAL DIRERR\r
5022 \r
5023         000171' 262140  000000  DIRERR:   POP PDP,0 ;FLUSH RETURN ADDRESS\r
5024         000172' 265040  000231'           JSP TAC,ERRPTU\r
5025         000173' 440700  000176'           POINT 7,DIRER1\r
5026         000174' 260140  000155'           PUSHJ PDP,ERNAM\r
5027         000175' 254000  000207'           JRST ERSYC1\r
5028 \r
5029         000176' 412030  420210  DIRER1:   ASCIZ /BAD DIRECTORY FOR /\r
5030         000177' 446450  541650\r
5031         000200' 476453  120214\r
5032         000201' 476444  000000\r
5033 \r
5034 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 7\r
5035 ERRCON  MAC     24-APR-78 23:01         8-9-65\r
5036 \r
5037 \r
5038                                 ;         INTERNAL ERRDIS\r
5039 \r
5040                                 ;ERRDIS:  LDB TAC,[POINT 4,DEVCHR(DEVDAT),17]\r
5041                                 ;         ADDI TAC,ERRC2\r
5042                                 ;         SKIPL TAC1,@TAC\r
5043                                 ;         JRST 4,.\r
5044                                 ;         TLZ TAC1,400000\r
5045                                 ;         MOVEM TAC1,@TAC\r
5046                                 ;         MOVE PDP,JOBPDP(PROG)\r
5047                                 ;         MOVE TAC,@TAC\r
5048                                 ;         HRLI TAC,PROG\r
5049                                 ;         MOVE TAC,@TAC\r
5050                                 ;         HLL TAC,1(PDP)\r
5051                                 ;         PUSH PDP,TAC\r
5052                                 ;         JRST UXIT\r
5053 \r
5054                                 ;ERRC2:   XWD PROG,JOBTRP\r
5055 \r
5056 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 8\r
5057 ERRCON  MAC     24-APR-78 23:01         8-9-65\r
5058 \r
5059 \r
5060                                 ;UNEXPLAINED ERROR ENTRY\r
5061                                 ;CALL:    JSP DAT, ERROR\r
5062 \r
5063                                 INTERNAL ERROR\r
5064                                 EXTERNAL JOBPD1\r
5065 \r
5066         000202' 201200  000001  ERROR:    MOVEI ITEM,1          ;PRINT ON OPERATORS CONSOLE(JOB 1)\r
5067         000203' 265040  000232'           JSP TAC,ERRPNT\r
5068         000204' 440700  000220'           POINT 7,ERR1\r
5069         000205' 550043  777776            HRRZ TAC,-2(PDP)      ;GET LOC OF CALL TO ERROR\r
5070         000206' 260140  000342' EPOCT:    PUSHJ PDP,PCPNT\r
5071         000207' 201100  000225' ERSYC1:   MOVEI TAC1,ERMS1\r
5072 \r
5073         000210' 260140  000340' ERSYCL:   PUSHJ PDP,MESPC\r
5074         000211' 254000  000000*           JRST HOLD\r
5075 \r
5076         000212' 260140  000333' EPCAD0:   PUSHJ PDP,MESPNT      ;PRINT MESS\r
5077         000213' 260140  000216' EPCAD1:   PUSHJ PDP,EPCAD       ;PRINT LAST USER CALL TO MONITOR\r
5078         000214' 254000  000211*           JRST HOLD\r
5079 \r
5080         000215' 260140  000333' EPCADR:   PUSHJ PDP,MESPNT\r
5081         000216' 200051  000000* EPCAD:    MOVE TAC, JOBPD1(JDAT)        ;GET LAST USER UUO CALL\r
5082         000217' 364040  000145'           SOJA TAC,EPTAD1\r
5083 \r
5084         000220' 426452  247644  ERR1:     ASCIZ /ERROR IN MONITOR AT /\r
5085         000221' 202231  620232\r
5086         000222' 476351  152236\r
5087         000223' 511010  152100\r
5088         000224' 000000  000000\r
5089         000225' 355010  554212  ERMS1:    ASCIZ /; EXEC CALLED FROM /\r
5090         000226' 415010  340630\r
5091         000227' 462130  420214\r
5092         000230' 512371  520000\r
5093 \r
5094 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 9\r
5095 ERRCON  MAC     24-APR-78 23:01         8-9-65\r
5096 \r
5097 \r
5098                                 ;ERROR SETUP ROUTINE\r
5099                                 ;CALL:    MOVE ITEM, JOBNUMBER\r
5100                                 ;         MOVE DEVDAT, DEVICE DATA BLOCK IF DEVICE ERROR\r
5101                                 ;         JSP TAC, ERRPNT\r
5102                                 ;         POINT 7, ERROR MESSAGE\r
5103                                 ;         RETURN\r
5104 \r
5105 \r
5106                                           INTERNAL ERRPNT,ERRPTU\r
5107 \r
5108         000231' 200200  000000* ERRPTU:   MOVE ITEM,JOB\r
5109         000232' 200344  000005* ERRPNT:   MOVE PROG,JBTADR(ITEM)\r
5110         000233' 200444  000232*           MOVE JDAT,JBTADR(ITEM)        ;GET ADDRESS OF JOB DATA AREA\r
5111         000234' 322440  000240'           JUMPE JDAT, ERRPD     ;SET UP PDP IN USER AREA IF HE HAS CORE\r
5112         000235' 205140  000000*           MOVSI PDP, MJOBPD\r
5113         000236' 541151  000000*           HRRI PDP, JOBPDL(JDAT)\r
5114 \r
5115         000237' 253140  000240'           AOBJN PDP, .+1                ;LEAVE ROOM FOR UUO RETURN\r
5116         000240' 261140  000005  ERRPD:    PUSH PDP, DAT         ;SAVE CLALL TO ERROR SUB\r
5117         000241' 261140  000006            PUSH PDP, DEVDAT\r
5118         000242' 261140  000001            PUSH PDP, TAC                 ;SAVE RETURN\r
5119         000243' 260140  000000*           PUSHJ PDP, TTYFND\r
5120         000244' 201100  000254'           MOVEI TAC1,SYSERR\r
5121         000245' 260140  000333'           PUSHJ PDP,MESPNT\r
5122         000246' 200040  000004            MOVE TAC, ITEM\r
5123         000247' 260140  000362'           PUSHJ PDP,RADX10\r
5124         000250' 260140  000000*           PUSHJ PDP, CRLF               ;PRINT CRLF\r
5125         000251' 200123  000000            MOVE TAC1, @(PDP)\r
5126         000252' 260140  000333'           PUSHJ PDP, MESPNT\r
5127         000253' 254000  000000*           JRST CPOPJ1\r
5128 \r
5129         000254'                 SYSERR:   ASCIZ /\r
5130         000254' 064250  551244  ERROR IN JOB /\r
5131         000255' 476444  044634\r
5132         000256' 202251  741100\r
5133         000257' 000000  000000\r
5134 \r
5135 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 10\r
5136 ERRCON  MAC     24-APR-78 23:01         8-9-65\r
5137 \r
5138 \r
5139                                 ,ERROR TRAP HANDLING\r
5140 \r
5141                                 ;ERRTRP:  LDB TAC,[POINT 4,DEVCHR(DEVDAT),17]\r
5142                                 ;         ADDI TAC,ERRC2\r
5143                                 ;         SKIPG TAC1,@TAC\r
5144                                 ;         TLO TAC1,400000\r
5145                                 ;         MOVEM TAC1,@TAC\r
5146                                 ;         AOS       TAC\r
5147                                 ;         MOVE PDP,JOBPDP(PROG)\r
5148                                 ;         AOS       TAC\r
5149                                 ;         MOVE TAC1,1(PDP)\r
5150                                 ;         PUSH PDP,TAC\r
5151                                 ;         HLL TAC1,0(PDP)\r
5152                                 ;         HRLI TAC1,PROG\r
5153                                 ;         MOVEM TAC,@TAC1\r
5154                                 ;         JRST UXIT\r
5155 \r
5156 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 11\r
5157 ERRCON  MAC     24-APR-78 23:01         8-9-65\r
5158 \r
5159 \r
5160                                           INTERNAL ILLINP\r
5161 \r
5162         000260' 265040  000231' ILLINP:   JSP TAC,ERRPTU\r
5163         000261' 440700  000270'           POINT 7,ILLOT\r
5164         000262' 260140  000155'           PUSHJ PDP,ERNAM\r
5165         000263' 265100  000212'           JSP TAC1, EPCAD0\r
5166         000264' 202070  147234  ASCIZ / CANNOT DO INPUT/\r
5167         000265' 476504  042236\r
5168         000266' 202231  650252\r
5169         000267' 520000  000000\r
5170 \r
5171         000270' 476532  450252  ILLOT:    ASCIZ /OUTPUT /\r
5172         000271' 521000  000000\r
5173 \r
5174 \r
5175                                           INTERNAL ILLINS\r
5176 \r
5177         000272' 265040  000231' ILLINS:   JSP TAC,ERRPTU\r
5178         000273' 440700  000275'           POINT 7,ERRIL\r
5179         000274' 254000  000213'           JRST EPCAD1\r
5180 \r
5181         000275' 446311  420222  ERRIL:    ASCIZ /ILL INST/\r
5182         000276' 472472  400000\r
5183 \r
5184 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 12\r
5185 ERRCON  MAC     24-APR-78 23:01         8-9-65\r
5186 \r
5187 \r
5188                                         INTERNAL ILLMOD\r
5189 \r
5190         000277' 265040  000231' ILLMOD: JSP TAC,ERRPTU\r
5191         000300' 440700  000303'         POINT 7,ILLMO1\r
5192         000301' 260140  000155'         PUSHJ PDP,ERNAM\r
5193         000302' 254000  000213'         JRST EPCAD1\r
5194 \r
5195         000303' 446311  420210  ILLMO1: ASCIZ /ILL DEVICE DATA MODE FOR /\r
5196         000304' 426551  141612\r
5197         000305' 202110  152202\r
5198         000306' 202331  742212\r
5199         000307' 202151  751100\r
5200         000310' 000000  000000\r
5201 \r
5202                                         INTERNAL ILLOUT\r
5203 \r
5204         000311' 265040  000231' ILLOUT: JSP TAC,ERRPTU\r
5205         000312' 440700  000321'         POINT 7,ILLIN\r
5206         000313' 260140  000155'         PUSHJ PDP,ERNAM\r
5207         000314' 265100  000212'         JSP TAC1,EPCAD0\r
5208 \r
5209         000315' 202070  147234  ILM3:           ASCIZ / CANNOT DO OUTPUT/\r
5210         000316' 476504  042236\r
5211         000317' 202372  552240\r
5212         000320' 526500  000000\r
5213 \r
5214         000321' 446352  052650  ILLIN:  ASCIZ /INPUT /\r
5215         000322' 200000  000000\r
5216                                 INTERNAL IOIERR\r
5217 \r
5218         000323' 265040  000231' IOIERR: JSP TAC,ERRPTU\r
5219         000324' 440700  000326'         POINT 7,IOIER1\r
5220         000325' 254000  000213'         JRST EPCAD1\r
5221 \r
5222         000326' 446364  052236  IOIER1: ASCIZ /IO TO UNASSIGNED CHANNEL/\r
5223         000327' 202531  640646\r
5224         000330' 516230  747212\r
5225         000331' 421010  344202\r
5226         000332' 472350  546000\r
5227 \r
5228                                 ,CALL WITH DEST. POINTER IN DAT\r
5229                                 ,SOURCE POINTER IN TAC1\r
5230                                 ,MOVES UNTIL A ZERO CHAR. IS FOUND\r
5231 \r
5232                                         INTERNAL MESPNT\r
5233         000333' 505100  440700  MESPNT: HRLI TAC1,440700\r
5234         000334' 134040  000002  MES1:   ILDB TAC, TAC1\r
5235         000335' 322040  000000*         JUMPE TAC,CPOPJ\r
5236         000336' 136040  000005          IDPB TAC, DAT\r
5237         000337' 254000  000334'         JRST MES1\r
5238 \r
5239                                 ,ANY RADIX PRINT\r
5240 \r
5241 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 12-1\r
5242 ERRCON  MAC     24-APR-78 23:01         8-9-65\r
5243 \r
5244                                 ,  TAC1 = RADIX\r
5245                                 ,  DAT = BYTE POINTER\r
5246                                 ,  TAC = NUMBER\r
5247 \r
5248                                         INTERNAL OCTPNT, ANYRDX, PCPNT\r
5249                                         EXTERNAL UUO0,JOBPD1\r
5250 \r
5251         000340' 260140  000333' MESPC:  PUSHJ PDP, MESPNT       ;PRINT LAST USER UUO CALL\r
5252         000341' 550051  000216*         HRRZ TAC,JOBPD1(JDAT)\r
5253         000342' 275040  000001  PCPNT:  SUBI TAC,1\r
5254         000343' 404040  777777          AND TAC,-1\r
5255         000344' 201100  000010  OCTPNT: MOVEI TAC1,10\r
5256         000345' 261140  000004  ANYRDX: PUSH PDP,ITEM\r
5257         000346' 552100  000004          HRRZM TAC1, ITEM\r
5258         000347' 260140  000352'         PUSHJ PDP,OCTP1\r
5259         000350' 262140  000004          POP PDP,ITEM\r
5260         000351' 263140  000000          POPJ PDP,\r
5261 \r
5262         000352' 230040  000004  OCTP1:  IDIV TAC,ITEM\r
5263         000353' 506103  000000          HRLM TAC1, (PDP)\r
5264         000354' 322040  000356'         JUMPE TAC, .+2\r
5265         000355' 260140  000352'         PUSHJ PDP, OCTP1\r
5266         000356' 554043  000000          HLRZ TAC, (PDP)\r
5267         000357' 271040  000060          ADDI TAC, "0"\r
5268         000360' 136040  000005          IDPB TAC, DAT\r
5269         000361' 263140  000000          POPJ PDP,\r
5270 \r
5271                                 INTERNAL RADX10\r
5272 \r
5273         000362' 261140  000002  RADX10: PUSH PDP,TAC1   ;OUTPUT DECIMAL\r
5274         000363' 201100  000012          MOVEI TAC1,12\r
5275         000364' 260140  000345'         PUSHJ PDP,ANYRDX\r
5276         000365' 262140  000002          POP PDP,TAC1\r
5277         000366' 263140  000000          POPJ PDP,\r
5278 \r
5279                                 REPEAT 0,<\r
5280                                 PCPNT:  SUBI TAC,1\r
5281                                 OCTPNT: HRLZ TAC1,TAC\r
5282                                   MOVSI TAC,-1\r
5283                                  LSHC TAC,3\r
5284                                   TRNN TAC,7\r
5285                                    JUMPN TAC1,.-2\r
5286                                 OCTPN1: ADDI TAC,"0"\r
5287                                   IDPB TAC,DAT\r
5288                                   JUMPGE TAC,CPOPJ\r
5289                                   HLLZS TAC\r
5290                                   LSHC TAC,3\r
5291                                   JRST OCTPN1\r
5292                                 >\r
5293 \r
5294                                         INTERNAL UTBKER\r
5295         000367' 135200  000027* UTBKER: LDB ITEM,PJOBN  ;JOB NUMBER\r
5296         000370' 265040  000232'         JSP TAC,ERRPNT\r
5297 \r
5298 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 12-2\r
5299 ERRCON  MAC     24-APR-78 23:01         8-9-65\r
5300 \r
5301         000371' 440700  000401'         POINT 7,UTERM\r
5302         000372' 200040  000000*         MOVE TAC,UBUF\r
5303         000373' 275047  000000          SUBI TAC,(PROG)\r
5304         000374' 260140  000344'         PUSHJ PDP,OCTPNT\r
5305         000375' 201100  000424'         MOVEI TAC1, [ASCII / /]\r
5306         000376' 260140  000333'         PUSHJ PDP, MESPNT\r
5307         000377' 260140  000155'         PUSHJ PDP,ERNAM\r
5308         000400' 254000  000035'         JRST ADRER2\r
5309 \r
5310         000401' 446311  420210  UTERM:  ASCIZ /ILL DT BLOCK NO. , BUFFER AT /\r
5311         000402' 521010  246236\r
5312         000403' 416264  047236\r
5313         000404' 271005  420204\r
5314         000405' 526150  642644\r
5315         000406' 202032  420000\r
5316 \r
5317                                         INTERNAL UUOERR\r
5318                                         EXTERNAL UUO0\r
5319 \r
5320         000407' 265040  000231' UUOERR: JSP TAC,ERRPTU\r
5321         000410' 440700  000416'         POINT 7,UUOER1\r
5322         000411' 200040  000000*         MOVE TAC, UUO0  ;UUO PC\r
5323         000412' 603040  010000          TLNE TAC, 10000 ;WAS IT FROM USER?\r
5324         000413' 254000  000213'         JRST EPCAD1     ;YES, JUST PRINT LOC OF CALL\r
5325         000414' 260140  000145'         PUSHJ PDP,EPTAD1        ;NO, PRINT BOTH EXEC CALL\r
5326         000415' 254000  000207'         JRST ERSYC1     ;AND USER CALL\r
5327 \r
5328         000416' 446311  420240  UUOER1: ASCIZ /ILL PROG. OP. USED/\r
5329         000417' 512370  727100\r
5330         000420' 476405  620252\r
5331         000421' 516130  400000\r
5332                                         END,\r
5333 \r
5334 NO ERRORS DETECTED\r
5335 \r
5336 PROGRAM BREAK IS 000425\r
5337 \r
5338 9K CORE USED\r
5339 \r
5340 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 13\r
5341 ERRCON  MAC     24-APR-78 23:01         SYMBOL TABLE\r
5342 \r
5343 A               000000  INT\r
5344 AC1             000015  INT\r
5345 AC2             000016  INT\r
5346 AC3             000017  INT\r
5347 ADRCK           000000' INT\r
5348 ADRER2          000035' \r
5349 ADRERI          000027' \r
5350 ADRERR          000014' INT\r
5351 AERM1           000023' \r
5352 AERM3           000045' \r
5353 AL              000001  INT\r
5354 ANYRDX          000345' INT\r
5355 APM1            000070' \r
5356 APM2            000073' \r
5357 APM3            000106' \r
5358 APM4            000134' \r
5359 APMSYS          000136' \r
5360 APMUSR          000141' \r
5361 APR             000000  SPD\r
5362 APRCHL          000144' EXT\r
5363 APRCHN          000051' EXT\r
5364 APRDMS          000132' \r
5365 APRIL1          000062' \r
5366 APRILM          000051' INT\r
5367 APRJRS          000064' \r
5368 APRNXM          000100' \r
5369 APRPDL          000111' \r
5370 APRRET          000121' EXT\r
5371 ASSCON          400000  INT\r
5372 ASSPRG          200000  INT\r
5373 B               000014  INT\r
5374 BUFPNT          000012  INT\r
5375 BUFWRD          000013  INT\r
5376 CLOSB           002000  INT\r
5377 CLSIN           000002  INT\r
5378 CLSOUT          000001  INT\r
5379 CPOPJ           000335' EXT\r
5380 CPOPJ1          000253' EXT\r
5381 CRLF            000250' EXT\r
5382 D               000017  INT\r
5383 DAT             000005  INT\r
5384 DCL             000001  INT\r
5385 DCW             020000  INT\r
5386 DDI             000007  INT\r
5387 DDO             000006  INT\r
5388 DDTMEM          000037  INT\r
5389 DDTSYM          000036  INT\r
5390 DEN             000004  INT\r
5391 DEVADR          000007  INT\r
5392 DEVBUF          000006  INT\r
5393 DEVCHR          000001  INT\r
5394 DEVCTR          000011  INT\r
5395 \r
5396 \r
5397 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 13-1\r
5398 ERRCON  MAC     24-APR-78 23:01         SYMBOL TABLE\r
5399 \r
5400 DEVDAT          000006  INT\r
5401 DEVIAD          000007  INT\r
5402 DEVIOS          000002  INT\r
5403 DEVLOG          000005  INT\r
5404 DEVMOD          000004  INT\r
5405 DEVNAM          000000  INT\r
5406 DEVOAD          000010  INT\r
5407 DEVPTR          000010  INT\r
5408 DEVSER          000003  INT\r
5409 DGF             000012  INT\r
5410 DIN             000003  INT\r
5411 DIRER1          000176' \r
5412 DIRERR          000171' INT\r
5413 DLK             000005  INT\r
5414 DOU             000002  INT\r
5415 DR              000016  INT\r
5416 DRL             000000  INT\r
5417 DSI             000011  INT\r
5418 DSO             000010  INT\r
5419 DTW             040000  INT\r
5420 DVAVAL          000040  INT\r
5421 DVCDR           100000  INT\r
5422 DVDIR           000004  INT\r
5423 DVDIRI          400000  INT\r
5424 DVIN            000002  INT\r
5425 DVLPT           040000  INT\r
5426 DVMTA           000020  INT\r
5427 DVOUT           000001  INT\r
5428 DVTTY           000010  INT\r
5429 ENTRB           020000  INT\r
5430 EPCAD           000216' \r
5431 EPCAD0          000212' \r
5432 EPCAD1          000213' \r
5433 EPCADR          000215' \r
5434 EPOCT           000206' \r
5435 EPTAD1          000145' \r
5436 EPTADR          000144' \r
5437 ERMS1           000225' \r
5438 ERNAM           000155' INT\r
5439 ERNAM1          000161' \r
5440 ERR1            000220' \r
5441 ERRDEV          000167' \r
5442 ERRIL           000275' \r
5443 ERROR           000202' INT\r
5444 ERRPD           000240' \r
5445 ERRPNT          000232' INT\r
5446 ERRPTU          000231' INT\r
5447 ERSYC1          000207' \r
5448 ERSYCL          000210' \r
5449 HOLD            000214' EXT\r
5450 HOLDI           000044' EXT\r
5451 HOLDI1          000133' EXT\r
5452 I               000010  INT\r
5453 \r
5454 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 13-2\r
5455 ERRCON  MAC     24-APR-78 23:01         SYMBOL TABLE\r
5456 \r
5457 IB              000013  INT\r
5458 IBUFB           200000  INT\r
5459 ILLIN           000321' \r
5460 ILLINP          000260' INT\r
5461 ILLINS          000272' INT\r
5462 ILLMO1          000303' \r
5463 ILLMOD          000277' INT\r
5464 ILLOT           000270' \r
5465 ILLOUT          000311' INT\r
5466 ILM             020000  \r
5467 ILM3            000315' \r
5468 INITB           400000  INT\r
5469 INPB            010000  INT\r
5470 IO              000020  INT\r
5471 IOACT           010000  INT\r
5472 IOBEG           000002  INT\r
5473 IOBKTL          040000  INT\r
5474 IOCON           000040  INT\r
5475 IODEND          020000  INT\r
5476 IODERR          200000  INT\r
5477 IODISC          400000  INT\r
5478 IODONE          400000  INT\r
5479 IODTER          100000  INT\r
5480 IOEND           000040  INT\r
5481 IOFST           000004  INT\r
5482 IOIER1          000326' \r
5483 IOIERR          000323' INT\r
5484 IOIMPM          400000  INT\r
5485 IONRCK          000100  INT\r
5486 IORDEL          000100  INT\r
5487 IORET           000020  INT\r
5488 IOS             000000  INT\r
5489 IOSTRT          000010  INT\r
5490 IOUSE           400000  INT\r
5491 IOW             000001  INT\r
5492 IOWC            000020  INT\r
5493 IOWS            400000  INT\r
5494 ITEM            000004  INT\r
5495 JBFADR          000000  INT\r
5496 JBFCTR          000002  INT\r
5497 JBFPTR          000001  INT\r
5498 JBTADR          000233' EXT\r
5499 JBUF            000005  INT\r
5500 JDAT            000011  INT\r
5501 JERR            002000  INT\r
5502 JIOW            100000  INT\r
5503 JNA             004000  INT\r
5504 JOB             000231' EXT\r
5505 JOBADR          000015' EXT\r
5506 JOBPD1          000341' EXT\r
5507 JOBPDL          000236' EXT\r
5508 JOBPDP          000000  EXT\r
5509 JOBPFI          000006' EXT\r
5510 \r
5511 \fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS   MACRO 10 05:51 24-APR-78 PAGE 13-3\r
5512 ERRCON  MAC     24-APR-78 23:01         SYMBOL TABLE\r
5513 \r
5514 JOBREL          000000  EXT\r
5515 JOBTRP          000000  EXT\r
5516 LOOKB           040000  INT\r
5517 MES1            000334' \r
5518 MESPC           000340' \r
5519 MESPNT          000333' INT\r
5520 MJOBPD          000235' EXT\r
5521 MTW             010000  INT\r
5522 NXM             010000  \r
5523 OBUFB           100000  INT\r
5524 OCTP1           000352' \r
5525 OCTPNT          000344' INT\r
5526 OUTPB           004000  INT\r
5527 PCPNT           000342' INT\r
5528 PDLOV           000122' \r
5529 PDP             000003  INT\r
5530 PICHN           000100  INT\r
5531 PJOBN           000367' EXT\r
5532 POVC            400000  \r
5533 POVF            200000  \r
5534 PROG            000007  INT\r
5535 RADX10          000362' INT\r
5536 RUN             200000  INT\r
5537 RUNABL          204000  INT\r
5538 SYSERR          000254' \r
5539 TAC             000001  INT\r
5540 TAC1            000002  INT\r
5541 TEM             000010  INT\r
5542 TTYATC          020000  INT\r
5543 TTYCTR          000000  EXT\r
5544 TTYFND          000243' EXT\r
5545 TTYSTR          000000  EXT\r
5546 TTYUSE          010000  INT\r
5547 UBUF            000372' EXT\r
5548 USRMOD          010000  INT\r
5549 USRPDP          000000  EXT\r
5550 USRPOV          000115' EXT\r
5551 USRREL          000056' EXT\r
5552 UTBKER          000367' INT\r
5553 UTERM           000401' \r
5554 UUO             000014  INT\r
5555 UUO0            000411' EXT\r
5556 UUOER1          000416' \r
5557 UUOERR          000407' INT\r
5558 UXIT            000000  EXT\r
5559 WAIT1           000000  EXT\r
5560 \f   IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN      TTTTTTTTTTTTTTT\r
5561    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN      TTTTTTTTTTTTTTT\r
5562    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN      TTTTTTTTTTTTTTT\r
5563       III            OOO         OOO      CCC                  OOO         OOO      NNN         NNN            TTT      \r
5564       III            OOO         OOO      CCC                  OOO         OOO      NNN         NNN            TTT      \r
5565       III            OOO         OOO      CCC                  OOO         OOO      NNN         NNN            TTT      \r
5566       III            OOO         OOO      CCC                  OOO         OOO      NNNNNN      NNN            TTT      \r
5567       III            OOO         OOO      CCC                  OOO         OOO      NNNNNN      NNN            TTT      \r
5568       III            OOO         OOO      CCC                  OOO         OOO      NNNNNN      NNN            TTT      \r
5569       III            OOO         OOO      CCC                  OOO         OOO      NNN   NNN   NNN            TTT      \r
5570       III            OOO         OOO      CCC                  OOO         OOO      NNN   NNN   NNN            TTT      \r
5571       III            OOO         OOO      CCC                  OOO         OOO      NNN   NNN   NNN            TTT      \r
5572       III            OOO         OOO      CCC                  OOO         OOO      NNN      NNNNNN            TTT      \r
5573       III            OOO         OOO      CCC                  OOO         OOO      NNN      NNNNNN            TTT      \r
5574       III            OOO         OOO      CCC                  OOO         OOO      NNN      NNNNNN            TTT      \r
5575       III            OOO         OOO      CCC                  OOO         OOO      NNN         NNN            TTT      \r
5576       III            OOO         OOO      CCC                  OOO         OOO      NNN         NNN            TTT      \r
5577       III            OOO         OOO      CCC                  OOO         OOO      NNN         NNN            TTT      \r
5578    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN            TTT      \r
5579    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN            TTT      \r
5580    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN            TTT      \r
5581 \r
5582 \r
5583 \r
5584 \r
5585 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
5586 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
5587 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
5588 LLL                  SSS                        TTT                                                                     \r
5589 LLL                  SSS                        TTT                                                                     \r
5590 LLL                  SSS                        TTT                                                                     \r
5591 LLL                  SSS                        TTT                                                                     \r
5592 LLL                  SSS                        TTT                                                                     \r
5593 LLL                  SSS                        TTT                                                                     \r
5594 LLL                     SSSSSSSSS               TTT                                                                     \r
5595 LLL                     SSSSSSSSS               TTT                                                                     \r
5596 LLL                     SSSSSSSSS               TTT                                                                     \r
5597 LLL                              SSS            TTT                                                                     \r
5598 LLL                              SSS            TTT                                                                     \r
5599 LLL                              SSS            TTT                                                                     \r
5600 LLL                              SSS            TTT                                                                     \r
5601 LLL                              SSS            TTT                                                                     \r
5602 LLL                              SSS            TTT                                                                     \r
5603 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
5604 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
5605 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
5606 \r
5607 \r
5608 \r
5609 \r
5610 Request created: 24-April-1978  05:53:58\r
5611 File: DSKB0 :IOCONT.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:33\r
5612 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1874 \r
5613 File will be deleted after printing\r
5614 \f\r
5615 IOCONT - CONTROL FOR IO PROGRAMMED OPERATORS    MACRO 10 05:51 24-APR-78 PAGE 1\r
5616 S       MAC     24-APR-78 21:40         8-9-95\r
5617 \r
5618                                         XLIST\r
5619                                        LIST\r
5620                                         TITLE IOCONT - CONTROL FOR IO PROGRAMMED OPERATORS\r
5621                                         SUBTTL 8-9-95\r
5622                                         EXTERNAL BUFCLC,ERROR,IOSETC,IOIERR,BUFCLR\r
5623                                         EXTERNAL SETBYT,UINTQ,WAIT1,WSYNC,ADRCK\r
5624                                         EXTERNAL UXIT,USRJDA,JOBJDA,ILLMOD,PUUOAC,PIOMOD\r
5625                                         EXTERNAL JOB,ASSIN,PJOBN,ADRERR,USRREL,CUXIT1,CUXIT2\r
5626                                         EXTERNAL SETIOS\r
5627 \r
5628                                 ;FOR PURPOSES OF COMMENTING THIS SUBROUTINE THE\r
5629                                 ;TERM BUFFER HEADER SHALL REFER TO THE 3 WORD HEADER\r
5630                                 ;WHICH IS USED BY THE USER PROGRAM AND THIS EXEC FOR\r
5631                                 ;REFERING TO THE RING BUFFERS.\r
5632 \r
5633                                 ;THE CONTENTS OF THE 3 WORD HEADER (AS SET BY THE MONITOR FOR THE USE\r
5634                                 ;                  FROM USERS PROGRAM BY AN INPUT OR AN OUTPUT UUO\r
5635                                 ;        WORD 2:   BYTE POINTER TO CURRENT ITEM.\r
5636                                 ;        WORD 3:   POSITIVE ITEM COUNT (NO. OF ITEMS LEFT ON\r
5637                                 ;                  INPUT, NO. OF FREE ITEMS TO GO ON OUTPUT).\r
5638 \r
5639                                 ;EACH BUFFER IN THE RING HAS FOLLOWING FORMAT (AS THE USER SEES IT)\r
5640 \r
5641                                 ;        WORD 1:   RESERVED FOR BLOCK NUMBER FOR FIXED ADDRESS DEVIC\r
5642                                 ;        WORD 2:   BIT 0=USE BIT FOR THIS BUFFER\r
5643                                 ;                  BIT 1-17=NO. OF WORDS WHICH FOLLOW (LENGTH OF BUF\r
5644                                 ;                  BIT 18-35=ADDRESS OF SECOND WORD OF NEXT BUFFER I\r
5645                                 ;        WORD 3:   LH=LINK TO NEXT BLOCK (SET BY MONITOR FOR DECTAB\r
5646                                 ;                  RH=NO. OF WORDS OF DATA WHICH FOLLOW (USUALLY\r
5647                                 ;                  SET BY EXEC EXCEPT TO COMPUTE WORD COUNT\r
5648                                 ;                  THAT HE WANTS TO COMPUTE WORD COUNT\r
5649                                 ;                  HIMSELF INSTEAD OF HAVING THE MONITOR DO IT\r
5650                                 ;                  USING THE BYTE POINTER IN THE 3 WORD HEADER).\r
5651 \r
5652 \r
5653 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 2\r
5654 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
5655 \r
5656 \r
5657                                 ,H. R. MORSE      2/21/65\r
5658                                 ,CALLING SEQUENCE\r
5659                                 ,         CLOSE D,\r
5660                                 ,         EXIT                ALWAYS RETURNS HERE\r
5661                                 , THIS ROUTINE PROCESSES THE CLOSE UUO AND DETERMINES WHETHER THE\r
5662                                 ,OUTPUT ROUTINE SHOULD BE CALLED IF OUTPUT WERE ACTIVE, CLEARS\r
5663                                 ,THE INPUT BUFFER AREA IF INPUT WERE ACTIVE, AND CLEARS THE\r
5664                                 ,ITEM COUNTS OF BOTH INPUT AND OUTPUT HEADERS SERVING TO BOTH\r
5665                                 ,TERMINATE THE USE OF THE DEVICE AND SET THE I/O ROUTINES TO\r
5666                                 ,ACCEPT ANOTHER INPUT OR OUTPUT COMMAND IN A CLEAR STATE.\r
5667                                 ,IN THE CASE OF OUTPUT DEVICES. THE CLOSE ROUTINE OF THE DEVICE HANDL\r
5668                                 ,ING ROUTINE IS CALLED IN CASE ANY SPECIAL HANDLING IS REQUIRED.\r
5669                                 ,MONITOR INTERFACE\r
5670                                 ,         STORAGE: 30\r
5671                                 ,         ROUTINES CALLED:   DCL, WAIT1, UXIT\r
5672                                 ,         SYMBOLS SET/USED:\r
5673                                 ,             ACCUMULATORS:       DAT    S/U    PROG U\r
5674                                 ,                                 DEVDAT U      TAC  S/U\r
5675                                 ,                                 IOS    S/U    TAC1 S/U\r
5676                                 ,                                  PDP   U\r
5677                                 ,             DEVICE DATA BLOCK:   DEVBUF  U\r
5678                                 ,                                  DEVIOS  S/U\r
5679                                 ,                                  DEVSER  U\r
5680                                 ,             IO STATUS WORD:      IOACT   S    IODTER S\r
5681                                 ,                                  IOBEG   S    IOEND  S\r
5682                                 ,                                  IOBKTL  2    IOFST  S\r
5683                                 ,                                  IODEND  S    IOIMPM S\r
5684                                 ,                                  IODERR  S    IOSTRT S\r
5685                                 ,                                  IODISC  S    IOW    S\r
5686                                 ,             JOB BUFFER AREA:     IOUSE   S    \r
5687                                 ,                                  JBFCTR  S\r
5688 \r
5689 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 3\r
5690 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
5691 \r
5692 \r
5693 \r
5694                                 INTERNAL CLOSE1\r
5695 \r
5696         000000' 663300  002000  CLOSE1:   TLOE DEVDAT,CLOSB     ;HAS A CLOSE ALREADY BEEN DONE?\r
5697         000001' 254000  000000*           JRST UXIT             ;YES, FOR THIS CHANNEL\r
5698         000002' 135040  000000*           LDB TAC,PUUOAC        ;USER DEVICE CHANNEL NO.\r
5699         000003' 502301  000000*           HLLM DEVDAT,USRJDA(TAC)\r
5700         000004' 261140  000005            PUSH PDP,DAT\r
5701         000005' 135040  000000*           LDB TAC,PIOMOD\r
5702         000006' 305040  000016            CAIGE TAC,DR\r
5703         000007' 254000  000013'           JRST UCLS4\r
5704         000010' 200046  000003            MOVE TAC,DEVSER(DEVDAT)\r
5705         000011' 260141  000001            PUSHJ PDP,DCL(TAC)\r
5706         000012' 254000  000060'           JRST UCLS3\r
5707         000013' 260140  000000* UCLS4:    PUSHJ PDP,WAIT1;      WAIT UNTIL DEVICE IS INACTIVE.\r
5708         000014' 606600  000002            TRNN UUO,CLSIN        ;SUPPRESS INPUT?\r
5709         000015' 607300  200000            TLNN DEVDAT,IBUFB     ;NO, WAS INPUT BUFFER SPECIFIED?\r
5710         000016' 254000  000041'           JRST UCLS2                                ;NO\r
5711         000017' 550106  000006            HRRZ TAC1,DEVBUF(DEVDAT)\r
5712         000020' 505100  000007            HRLI TAC1,PROG\r
5713         000021' 550260  000002            HRRZ DAT,@TAC1        ;FIRST WORD OF 3 WORD BUFFER HEADER\r
5714         000022' 540120  000002            HRR TAC1,@TAC1        ;REMEMBER CURRENT BUFFER IN TAC1\r
5715         000023' 515040  400000            HRLZI TAC,IOUSE       ;USER BOTH FOR HEADER AND EACH BUFFER\r
5716         000024' 322240  000034'           JUMPE DAT,UCLS1       ;HAS A RING BEEN SETUP?(NO IF 0)\r
5717         000025' 505240  000007            HRLI DAT,PROG         ;YES\r
5718         000026' 540260  000005  UCLS0:    HRR DAT,@DAT;         ADVANCE CURRENT INPUT BUFFER ADDRESS\r
5719                                           ADRCHK DAT  ;IS ADDRESS OF?\r
5720         000027' 260140  000000*         PUSHJ PDP,ADRCK\r
5721         000030' 550040  000005          HRRZ TAC,DAT  \r
5722         000031' 412060  000005            ANDCAM TAC,@DAT       ;YES, CLEAR USE BIT.\r
5723         000032' 312100  000005            CAME TAC1,DAT;        DONE?\r
5724         000033' 254000  000026'           JRST UCLS0\r
5725         000034' 505240  000007  UCLS1:    HRLI DAT,PROG\r
5726         000035' 540246  000006            HRR DAT,DEVBUF(DEVDAT)\r
5727         000036' 436060  000005            IORM TAC,@DAT         ;FLAG AS VIRGIN BUFFER IN 3 WORD HEADER\r
5728         000037' 271240  000002            ADDI DAT,2;           JBFCTR:=0\r
5729         000040' 402020  000005            SETZM @DAT            ;CLEAR INPUT ITEM COUNT.\r
5730         000041' 606600  000001  UCLS2:    TRNN UUO,CLSOUT       ;SUPPRESS OUTPUT?\r
5731         000042' 607300  100000            TLNN DEVDAT,OBUFB     ;NO.WAS OUPUT BUFFER SPECIFIED?\r
5732         000043' 254000  000060'           JRST UCLS3                    ;NO\r
5733         000044' 544246  000006            HLR DAT, DEVBUF(DEVDAT)       ;VIRGIN OUBPUT BUFFER?\r
5734         000045' 505240  000007            HRLI DAT, PROG\r
5735         000046' 337020  000005            SKIPG @DAT\r
5736         000047' 254000  000060'           JRST UCLS3            ;YES\r
5737         000050' 200046  000003            MOVE TAC,DEVSER(DEVDAT)\r
5738         000051' 260141  000001            PUSHJ PDP,DCL(TAC); CLOSE OUTPUT BUFFER\r
5739         000052' 544246  000006            HLR DAT,DEVBUF(DEVDAT)\r
5740         000053' 505240  000007            HRLI DAT,PROG\r
5741         000054' 515040  400000            HRLZI TAC,IOUSE\r
5742         000055' 436060  000005            IORM TAC,@DAT\r
5743         000056' 271240  000002            ADDI DAT,2\r
5744         000057' 402020  000005            SETZM @DAT;           JBFCTR:=0\r
5745 \r
5746 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 3-1\r
5747 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
5748 \r
5749         000060' 260140  000013* UCLS3:    PUSHJ PDP,WAIT1\r
5750         000061' 262140  000005            POP PDP,DAT\r
5751         000062' 630000  000471'           TDZ IOS,[XWD IOEND,IODEND]\r
5752         000063' 661000  000002            TLO IOS,IOBEG\r
5753         000064' 202006  000002            MOVEM IOS,DEVIOS(DEVDAT);     IODISC:=0\r
5754         000065' 254000  000001*           JRST UXIT;            EXIT THIS UUO\r
5755 \r
5756 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 4\r
5757 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
5758 \r
5759 \r
5760 \r
5761                                 ,DEC 06 00 EX UUO L PT PRE 02 INBUF,OUTBUF\r
5762                                 ,H. R. MORSE        64-12-26\r
5763                                 ,CALLING SEQUENCE\r
5764                                 ,         INBUF D,N\r
5765                                 ,         EXIT                RETURNS HERE IF MEMORY NOT EXCEEDED\r
5766                                 ,CALLING SEQUENCE\r
5767                                 ,         OUTBUF D,N\r
5768                                 ,         EXIT                RETURNS HERE IF MEMORY NOT EXCEEDED\r
5769                                 , SETS UP AN N BUFFER RING FOLLOWING THE USERS PROGRAM FOR DEVICE\r
5770                                 , D AND INITIALIZES THE JOB BUFFER AREA HEADER:\r
5771                                 ,         JBFADR0:=1,         JBFADR 1-17:=0\r
5772                                 ,         JBFADR 18-35:=ADDRESS OF FIRST BUFFER IN RING\r
5773                                 ,INPUT SETS DEVIAD:=ADDRESS OF FIRST BUFFER IN RING\r
5774                                 ,OUTPUT SET DEVOAD:=ADDRESS OF FIRST BUFFER IN RING\r
5775                                 ,BUFPNT IS RESTORED.\r
5776                                 ,MONITOR INTERFACE\r
5777                                 ,         STORAGE:13\r
5778                                 ,         ROUTINES CALLED: BUFCLC,  UXIT\r
5779                                 ,         SYMBOLS SET/USED:\r
5780                                 ,             ACCUMULATORS:   BUFPNT  S/U               PROG U\r
5781                                 ,                             DEVDAT  U                 TAC  S/U\r
5782                                 ,                             PDP     U                 TAC1 S/U\r
5783                                 ,             DEVICE DATA BLOCK:        DEVBUF  U\r
5784                                 ,                             DEVIAD  S\r
5785                                 ,                             DEVOAD  S\r
5786                                 ,             JOB BUFFER AREA:          JBFADR  S\r
5787 \r
5788 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 5\r
5789 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
5790 \r
5791 \r
5792 \r
5793                                         INTERN UINBF, UOUTBF\r
5794 \r
5795         000066' 261140  000012  UOUTBF:   PUSH PDP,BUFPNT;      SAVE BUFPNT ON STACK\r
5796         000067' 260140  000000*           PUSHJ PDP,BUFCLC;     SET UP BUFFER RIGH\r
5797         000070' 544046  000006            HLR TAC,DEVBUF(DEVDAT);TAC:=OUTPUT BUFFER AREA HEADER ADDRE\r
5798         000071' 542506  000010            HRRM BUFPNT,DEVOAD(DEVDAT);DEVOAD:=ADDRESS OF FIRST BUFFER\r
5799                                 ,                                       IN RING\r
5800         000072' 505040  000007  UOBF1:    HRLI TAC,PROG;        RELOCATE BUFFER AREA HEADER ADDRESS\r
5801         000073' 202520  000001            MOVEM BUFPNT,@TAC;    JBFADR:=IOUSE,ADDRESS OF FIRST BUFFER\r
5802                                 ,                                       IN RING\r
5803         000074' 262140  000012            POP PDP,BUFPNT;       RESTORE BUFPNT FROM STACK\r
5804         000075' 254000  000065*           JRST UXIT;            EXIT THIS UUO\r
5805         000076' 261140  000012  UINBF:    PUSH PDP,BUFPNT;      SAVE BUFPNT ON STACK\r
5806         000077' 260140  000067*           PUSHJ PDP,BUFCLC;     SET UP BUFFER RING\r
5807         000100' 542506  000007            HRRM BUFPNT,DEVIAD(DEVDAT); DEVIAD:=ADDRESS OF FIRST BUFFER\r
5808                                 ,                                       IN RING\r
5809         000101' 540046  000006            HRR TAC,DEVBUF(DEVDAT); TAC:=INPUT BUFFER AREA HEADER ADDRE\r
5810         000102' 254000  000072'           JRST UOBF1\r
5811 \r
5812 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 6\r
5813 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
5814 \r
5815 \r
5816 \r
5817                                 ,DEC 06 00 EX UUO L PT PRE 03 INIT\r
5818                                 ,H. R. MORSE AND D. A. WITCRAFT          2/21/65\r
5819                                 ,CALLING SEQUENCE\r
5820                                 ,         INIT D,MODUS          D=JOB DEVICE CHANNEL\r
5821                                 ,                               MODUS=IORDEL,IOCON,IOWC,MODE.\r
5822                                 ,         SIXBIT/NAME/          DEVICE NAME\r
5823                                 ,         XWD OBUF,IBUF         BUFFER AREA HEADER ADDRESS\r
5824                                 ,         EXIT1                 DEVICE NOT AVAILABLE\r
5825                                 ,         EXIT2                 DEVICE PROPERLY AVAILABLE\r
5826                                 ,THE LEFT HALF OF NAME CONTAINS THE THREE LETTER DEVICE MNEMONIC,\r
5827                                 ,   THE RIGHT HALF IS EITHER ZOER (SYSTEM WILL ASSIGN AN ARBITRARY\r
5828                                 ,   UNIT) OR NON-ZERO TO REQUEST A SPECIFIC UNIT (LEFT JUSTIFIED).\r
5829                                 ,IF THE SELECTED DEVICE IS NOT AVAILABLE. CONTROL RETURNS TO EXIT1.\r
5830                                 ,OTHERWISE, THE DEVICE IS ASSIGNED TO THE USER AND ATTACHED TO HIS\r
5831                                 ,CHANNEL D.  THE DEVICE IS INITIALIZED IN THE FOLLOWING MANNER AFTER\r
5832                                 ,IOACT IS ZERO:\r
5833                                 ,         IOBEG:=1\r
5834                                 ,         DATA MODE:=BITS 32-35 OF AC UUO\r
5835                                 ,         IOCON:=BIT 31 OF AC UUO\r
5836                                 ,         IOWC:=BIT 40 OF AC UUO\r
5837                                 ,         IORDEL:=BIT 29 OF AC UUO\r
5838                                 ,         IOACT:=IODEND:=IOBKTL:=IODTER:=IODERR:=IOIMPM:=0\r
5839                                 ,         JBFADR:=JBFCTR:=0 FOR THE SPECIFIED BUFFERS.\r
5840                                 ,         DEVBUF:=OBUF,IBUF\r
5841                                 ,MONITOR INTERFACE\r
5842                                 ,         STORAGE:  20\r
5843                                 ,         ROUTINES CALLED:      UINTQ, ASSIGN(UASG1),USEL,UINITZ,UXIT\r
5844                                 ,         SYMBOLS SET/USED:\r
5845                                 ,             ACCUMULATORS:     DEVDAT U\r
5846                                 ,                               PDP    U        TAC  U\r
5847                                 ,                               PROG   U        TAC1 S/U\r
5848                                 ,             DEVICE DATA BLOCK:         DEVBUF S\r
5849 \r
5850 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 7\r
5851 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
5852 \r
5853 \r
5854 \r
5855                                           INTERN UINIT,UINIT1\r
5856         000103' 135040  000002* UINIT:    LDB TAC,PUUOAC        ;USER DEVICE CHANNEL NO.\r
5857         000104' 332301  000003*           SKIPE DEVDAT,USRJDA(TAC)        ;IS A DEVICE ALREADY HERE?\r
5858         000105' 260140  000426'           PUSHJ PDP,RELEA0      ;YES, RELEASE IT\r
5859         000106' 200600  000040            MOVE UUO,40           ;RESTORE AC UUO FROM LOC 40\r
5860         000107' 260140  000000*           PUSHJ PDP,UINTQ       ;GET SIXBIT DEVICE NAME FROM USER\r
5861         000110' 350003  000000            AOS (PDP)\r
5862         000111' 200200  000000* UINIT1:   MOVE ITEM,JOB         ;CALLED BY SAVGET\r
5863         000112' 260140  000000*           PUSHJ PDP,ASSIN;      TRY TO ASSIGN DEVICE\r
5864         000113' 254000  000000*           JRST CUXIT1;          NOT AVAILABLE\r
5865         000114' 135040  000103*           LDB TAC,PUUOAC\r
5866         000115' 552301  000104*           HRRZM DEVDAT,USRJDA(TAC)      ;STORE DDB ADR IN DEVICE TABL\r
5867         000116' 515040  000002            HRLZI TAC,IOBEG\r
5868         000117' 202046  000002            MOVEM TAC,DEVIOS(DEVDAT)\r
5869         000120' 260140  000000*           PUSHJ PDP,SETIOS      ;SET DDB IOS STATUS WORD\r
5870                                                                 ;FROM RT. HALF OF UUO\r
5871         000121' 260140  000107*           PUSHJ PDP,UINTQ\r
5872         000122' 505300  400000            HRLI DEVDAT, INITB    ;SET INIT UUO BIT\r
5873         000123' 607040  777777            TLNN TAC,-1   \r
5874         000124' 254000  000127'           JRST UINIT4           ;OUTPUT NOT SPECIFIED\r
5875         000125' 502046  000006            HLLM TAC,DEVBUF(DEVDAT)\r
5876         000126' 661300  100000            TLO DEVDAT,OBUFB      ;SET OUTPUT BUFFER SPECIFIED BIT\r
5877         000127' 606040  777777  UINIT4:   TRNN TAC,-1;          IS IBUF SPECIFIED?\r
5878         000130' 254000  000133'           JRST UINIT5           ;INPUT BUF NOT SPECIFIED\r
5879         000131' 542046  000006            HRRM TAC,DEVBUF(DEVDAT);      DEVBUF 18-35:=IBUF\r
5880         000132' 661300  200000            TLO DEVDAT,IBUFB      ;SET INPUT BUFFER SPECIFIED BIT\r
5881         000133' 550100  000001  UINIT5:   HRRZ TAC1,TAC;        TAC1:=PROG,IBUF\r
5882         000134' 260140  000142'           PUSHJ PDP,UINITZ;     JBFADR:=JBFCTR:=0 FOR IBUF\r
5883         000135' 544100  000001            HLR TAC1,TAC;         TAC1:=PROG,OBUF\r
5884         000136' 260140  000142'           PUSHJ PDP,UINITZ;     JBFADR:=JBFCTR:=0 FOR OBUF\r
5885         000137' 135040  000114*           LDB TAC,PUUOAC        ;STORE UUO BITS FOR THIS CHANNEL\r
5886         000140' 502301  000115*           HLLM DEVDAT,USRJDA(TAC)\r
5887         000141' 254000  000000*           JRST CUXIT2\r
5888 \r
5889 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 8\r
5890 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
5891 \r
5892 \r
5893 \r
5894                                 ,DEC 06 00 EX COM L PT PRE 03 UINITZ\r
5895                                 ,H. R. MORSE        64-12-26\r
5896                                 ,CALLING SEQUENCE\r
5897                                 ,         PUSHJ PDP,UINITZ\r
5898                                 ,         EXIT                  RETURNS HERE IF MEMORY NOT EXCEEDED.\r
5899                                 ,SETS JBFADR:=JBFCTR:=0 FOR THE BUFFER AREA HEADER WHOSE ADDRESS\r
5900                                 ,IS IN AC TAC1.  ALSO,JBFPTR 0-5:=JBFPTR 12-17:=0,JBFPTR 6-11:=BYTE S\r
5901                                 ,MONITOR INTERFACE\r
5902                                 ,         STORAGE:15\r
5903                                 ,         ROUTINES CALLED:      ADRCK, SETBYT\r
5904                                 ,         SYMBOLS SET/USED:\r
5905                                 ,             ACCUMULATORS:     PDP   U                 TAC    S/U\r
5906                                 ,                       TAC1  S/U\r
5907                                 ,            JOB BUFFER AREA:  JBFADR S\r
5908                                 ,                                       JBFCTR S\r
5909                                 ,                                       JBFPTR S\r
5910                                           INTERN UINITZ\r
5911 \r
5912         000142' 606100  777777  UINITZ:   TRNN TAC1,-1;         IS BUFFER SPECIFIED?\r
5913         000143' 263140  000000            POPJ PDP,;RETURN\r
5914         000144' 505100  000007            HRLI TAC1,PROG\r
5915         000145' 260140  000027*           PUSHJ PDP,ADRCK       ;CHECK 3 WORD BUFFER HEADER\r
5916         000146' 551042  000002            HRRZI TAC,2(TAC1)\r
5917         000147' 402020  000002            SETZM @TAC1;          JBFADR:=0\r
5918         000150' 350000  000002            AOS TAC1\r
5919         000151' 261140  000001            PUSH PDP,TAC\r
5920         000152' 261140  000002            PUSH PDP,TAC1\r
5921         000153' 350000  000002            AOS TAC1\r
5922         000154' 402020  000002            SETZM @TAC1;          JBFCTR:=0\r
5923         000155' 260140  000000*           PUSHJ PDP,SETBYT;     JBFPTR 6-11:=BYTE SIZE\r
5924         000156' 621040  770077            TLZ TAC,770077\r
5925         000157' 262140  000002            POP PDP,TAC1\r
5926         000160' 502060  000002            HLLM TAC,@TAC1\r
5927         000161' 262140  000001            POP PDP,TAC\r
5928         000162' 263140  000000            POPJ PDP,;            RETURN\r
5929 \r
5930 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 9\r
5931 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
5932 \r
5933 \r
5934 \r
5935                                 INTERNAL IN\r
5936         000163' 603000  000020  IN:       TLNE IOS,IO           ;IS THIS DEVICE ALREADY DOING OUTPUT!\r
5937         000164' 260140  000060*           PUSHJ PDP,WAIT1       ;YES,WAIT TILL IT IS FINISHED\r
5938         000165' 135040  000137*           LDB TAC,PUUOAC        ;SET BIT THAT SAYS AN INPUT UUO HAS OCC\r
5939         000166' 661300  010000            TLO DEVDAT,INPB       ;FOR THIS DEVICE\r
5940         000167' 502301  000140*           HLLM DEVDAT,USRJDA(TAC)         ;IN LH OF CURRENT JOB DEVICE\r
5941         000170' 135040  000005*           LDB TAC,PIOMOD        ;IO MODE\r
5942         000171' 301040  000016            CAIL TAC,DR           ;IS THE IO MODE DUMP MODE?\r
5943         000172' 254000  000271'           JRST INDMP            ;YES\r
5944         000173' 540246  000006  IN1:      HRR JBUF,DEVBUF(DEVDAT)         ;NO, GET ADDRESS OF R WORD BU\r
5945         000174' 515040  400000            HRLZI TAC,IOUSE       ;BUFFER INUSE BIT\r
5946         000175' 505240  000007            HRLI JBUF,PROG        ;SET INDEX FIELD FOR RELOCATION USING A\r
5947         000176' 260140  000145*           PUSHJ PDP,ADRCK       ;CHECK BUFFER HEADER\r
5948         000177' 551045  000002            HRRZI TAC,2(JBUF)     ;END ADDRESS OF 3 WORD HEADER\r
5949         000200' 200120  000005            MOVE TAC1,@JBUF       ;GET WORD 1 OF 3 WORD BUFFER HEADER (PO\r
5950         000201' 505100  000007            HRLI TAC1,PROG        ;SET INDEX FIELD COR RELOCATION USING A\r
5951         000202' 337020  000005            SKIPG @JBUF           ;HAS A BUFFER RING BEEN SET UP (RH NON-\r
5952                                                                 ;WHICH HAS BEEN REFERENCED BY PREVIOUS\r
5953         000203' 254000  000256'           JRST INPUTF           ;NO, GO SET UP BUFFER IF NECESSARY AND\r
5954                                           ADRCHK TAC1           ;YES, CHECK ADDRESS TO SEE IF IN BOUNDS\r
5955         000204' 260140  000176* PUSHJ PDP,ADRCK\r
5956         000205' 550040  000002          HRRZ TAC,TAC1           \r
5957         000206' 413060  000002            ANDCAB TAC,@TAC1      ;FLAG THIS BUFFER AS BEING FILLED (USE\r
5958                                                                 ;AND GET POINTER TO NEXT BUFFER\r
5959         000207' 542060  000005            HRRM TAC,@JBUF        ;SET WORD 1 IN 3 WORD HEADER TO NEXT BU\r
5960                                           ADRCHK TAC ;AND CHECK ITS ADDRESS TO SEE IF IN BOUNDS\r
5961         000210' 260140  000204* PUSHJ PDP,ADRCK\r
5962         000211' 550040  000001          HRRZ TAC,TAC \r
5963         000212' 200006  000002  INPUT0:   MOVE IOS,DEVIOS(DEVDAT)       ;GET IO STATUS WORD\r
5964         000213' 606000  010000            TRNN IOS,IOACT        ;IS THE DEVICE ALREADY ACTIVE (FILLING\r
5965         000214' 254000  000220'           JRST INPT0B           ;NO.\r
5966         000215' 606000  000040            TRNN IOS,IOCON        ;DOES THE USER WANT TO STOP AFTER EVERY\r
5967         000216' 254000  000224'           JRST INPT0C           ;NO. HE WANTS NORMAL CONTINUOUS OVERLAP\r
5968         000217' 260140  000000*           PUSHJ PDP,WSYNC       ;YES, WAIT TILL DEVICE FINISHES WITH ON\r
5969         000220' 505040  000007  INPT0B:   HRLI TAC,PROG         ;SET FOR RELOCATION\r
5970         000221' 540060  000001            HRR TAC,@TAC          ;GET POINTER 1 BLOCK AHEAD OF NEXT BBUF\r
5971         000222' 331020  000001            SKIPL @TAC\r
5972         000223' 260140  000276'           PUSHJ PDP,CALIN\r
5973         000224' 540120  000002  INPT0C:   HRR TAC1,@TAC1\r
5974         000225' 335020  000002  INPT0A:   SKIPGE @TAC1\r
5975         000226' 254000  000236'           JRST INPUT2\r
5976         000227' 260140  000217* INPUT1:   PUSHJ PDP,WSYNC\r
5977         000230' 335020  000002            SKIPGE @TAC1\r
5978         000231' 254000  000236'           JRST INPUT2\r
5979         000232' 612000  000472'           TDNE IOS,[XWD IOEND,IODERR]\r
5980         000233' 254000  000250'           JRST INEOF\r
5981         000234' 200006  000002            MOVE IOS,DEVIOS(DEVDAT)\r
5982         000235' 254000  000227'           JRST INPUT1\r
5983 \r
5984         000236' 271100  000001  INPUT2:   ADDI TAC1,1\r
5985         000237' 550220  000002            HRRZ ITEM,@TAC1\r
5986 \r
5987 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 9-1\r
5988 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
5989 \r
5990         000240' 275100  000001            SUBI TAC1,1\r
5991         000241' 261140  000004            PUSH PDP,ITEM         ;SAVE WORD COUNT AS STORED BY IO SERVIC\r
5992         000242' 260140  000000*           PUSHJ PDP,IOSETC\r
5993         000243' 262140  000004            POP PDP,ITEM\r
5994         000244' 135040  000170*           LDB TAC,PIOMOD        ;GET DEVICE DATA MODE\r
5995         000245' 306040  000010            CAIN TAC, I           ;IMAGE MODE?\r
5996         000246' 202220  000005            MOVEM ITEM,@JBUF      ;YES, STORE WORD COUNT NOT ITEM COUNT\r
5997         000247' 254000  000075*           JRST UXIT\r
5998 \r
5999 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 10\r
6000 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
6001 \r
6002 \r
6003 \r
6004         000250' 551000  020000  INEOF:    HRRZI IOS,IODEND\r
6005         000251' 436006  000002            IORM IOS,DEVIOS(DEVDAT)\r
6006         000252' 254000  000247*           JRST UXIT\r
6007 \r
6008         000253' 540100  000014  INPUTA:   HRR TAC1,UUO\r
6009         000254' 412060  000002            ANDCAM TAC,@TAC1\r
6010         000255' 254000  000212'           JRST INPUT0\r
6011 \r
6012                                 ;HERE ON FIRST INPUT AFTER INIT, INIT & LOOKUP, OR INIT & LOOKUP & IN\r
6013         000256' 412060  000005  INPUTF:   ANDCAM TAC,@JBUF      ;MARK THAT BUFFERS HAVE BEEN REFERENCED\r
6014         000257' 540060  000005            HRR TAC,@JBUF         ;PICKUP ADDRESS OF FIRST BUFFERE IN RING\r
6015         000260' 542046  000007            HRRM TAC,DEVIAD(DEVDAT)               ;SET CURRENT RING BUFFER ADDR\r
6016                                                                                 ;IN DEVICE DATA BLOCK\r
6017         000261' 336020  000005            SKIPN @JBUF           ;HAS A RING BEEN SET UP YET?\r
6018         000262' 254000  000265'           JRST INPUT3           ;NO, GO SET UP A 2 BUFFER RING\r
6019         000263' 260140  000276'           PUSHJ PDP,CALIN       ;YES, GO START TO SERVICE ROUTINE\r
6020                                                                         ;FILLING BUFFER\r
6021         000264' 254000  000225'           JRST INPT0A\r
6022         000265' 541600  000002  INPUT3:   HRRI UUO,2            ;BUFFERS NOT SETUP YET.\r
6023                                                                         ;SET UP 2\r
6024         000266' 260140  000076'           PUSHJ PDP, UINBF\r
6025         000267' 513000  000014            HLLZS UUO             ;CLEAR RIGHT HALF\r
6026         000270' 254000  000173'           JRST IN1\r
6027 \r
6028         000271' 260140  000227* INDMP:    PUSHJ PDP,WSYNC\r
6029         000272' 200046  000003            MOVE TAC,DEVSER(DEVDAT)\r
6030         000273' 260141  000007            PUSHJ PDP,DDI(TAC)\r
6031         000274' 260140  000164*           PUSHJ PDP,WAIT1\r
6032         000275' 254000  000252*           JRST UXIT\r
6033 \r
6034 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 11\r
6035 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
6036 \r
6037 \r
6038 \r
6039 \r
6040 \r
6041         000276' 603000  000040  CALIN:    TLNE IOS,IOEND\r
6042         000277' 263140  000000            POPJ PDP,\r
6043         000300' 260140  000271*           PUSHJ PDP,WSYNC\r
6044         000301' 261140  000002            PUSH PDP,TAC1\r
6045         000302' 200046  000003            MOVE TAC,DEVSER(DEVDAT)\r
6046         000303' 260141  000003            PUSHJ PDP,DIN(TAC)\r
6047         000304' 262140  000002            POP PDP,TAC1\r
6048         000305' 263140  000000            POPJ PDP,\r
6049 \r
6050 \r
6051 \r
6052 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 12\r
6053 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
6054 \r
6055 \r
6056 \r
6057                                 ,DEC 06 00 EX COM  L PT PRE 03 OUTPUT\r
6058                                 ,H.R. MORSE    2/21/65\r
6059                                 ,CALLING SEQUENCE\r
6060                                 ,       OUTPUT D,\r
6061                                 ,       EXIT\r
6062                                 ,OR\r
6063                                 ,       OUTPUT D, ADR\r
6064                                 ,       EXIT\r
6065 \r
6066                                 ,IF INPUT IS ACTIVE, WAIT FOR IT TO COMPLETE.\r
6067                                 ,IF DUMP MODE WAS SELECTED BY THE LAST INIT UUO., THEN A CHECK IS MADE\r
6068                                 ,   TO SEE IF DUMP FILES ARE LEGAL FOR THIS DEVICE.  IF DUMP FILES AR\r
6069                                 ,   NOT LEGAL. (IORET=0) AN ERROR MESSAGE IS PRINTED ON THE TTY AND\r
6070                                 ,   CONTROL IS TRANSFERRED T THE COMMAND INPUT ROUTINE.\r
6071                                 ,   OTHERWISE,THE PROGRAM WAITS UNTIL THE DEVICE IS INACTIVE AND THEN\r
6072                                 ,   WRITES THE DUMPFILE AND RETURNS CONTROL TO THE USERS PROGRAM\r
6073                                 ,IF THE MODE IS NOT DUMP, THEN\r
6074                                 ,1) IF ADR IS NOT ZERO, WAIT FOR DEVICE TO BECOME INACTIVE THEN SET T\r
6075                                 ,   CURRENT BUFFER ADDRESS EQUAL TO ADR AND AN INDICATOR (JBFADR0)\r
6076                                 ,   SPECIFYING THAT THIS BUFFER RING HAS NEVER BEEN REFERENCED FROM T\r
6077                                 ,   USERS PROGRAM BY AN INPUT OR AN OUTPUT UUO.  OTHERWISE, GO TO\r
6078                                 ,   2) DIRECTLY.\r
6079 \r
6080                                 ,2) IF THE BUFFER RING HAS NEVER BEEN REFERENCED (JBFADR0=1), THE\r
6081                                 ,   BUFFER IS CLEARED. IOUSE SET TO ZERO AND\r
6082                                 ,      IF THE CURRENT BUFFER ADDRESS IS ZERO, A TWO BUFFER RING IS SE\r
6083                                 ,      THE GO TO 8\r
6084                                 ,\r
6085                                 ,3) IF THE BUFFER RING HAS BEEN REFERENCED (JBFADR0=0   ,THEN A C\r
6086                                 ,   MADE TO DETERMINE IF THE WORD COUNT IS TO BE COMPUTED.\r
6087                                 ,       IF THE WORD COUNT IS TO BE COMPUTED (IOWC=0), IT IS SET EQUAL\r
6088                                 ,       TO THE ADDRESS FOR THE LAST DATA WORD MINUS THE ADDRESS OF THE\r
6089                                 ,       BUFFER MINUS ONE,\r
6090 \r
6091                                 ,4) IOUSE IS SET TO ONE. INDICATING THAT THE BUFFER IS FULL OR BEING\r
6092                                 ,   EMPTIED, AND THE CURRENT BUFFER ADDRESS IS ADVANCED.\r
6093 \r
6094                                 ,5) IF THE DEVICE IS NOT ACTIVE (IOACT=0), OUTPUT IS STARTED.\r
6095                                 ,6) IF THE CURRENT BUFFER IS FULL OR BEING EMPTIED (IOUSE=1),\r
6096                                 ,   THE PROGRAM WAITS UNTIL THE DEVICE IS INACTIVE\r
6097                                 ,7) THE CURRENT BUFFER IS CLEARED.\r
6098                                 ,8) THE ITEM POINTER IS INITIATED TO THE CURRENT BUFFER ADDRESS+1\r
6099                                 ,   AND THE ITEM COUNT IS SET TO THE PRODUCT OF THE BUFFER SIZE\r
6100                                 ,   MINUS ONE AND THE INTEGER PART OF 36/BYTE SIZE.\r
6101                                 ,9) RETURN TO THE USERS PROGRAM\r
6102 \r
6103 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 13\r
6104 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
6105 \r
6106 \r
6107 \r
6108                                 ,MONITOR INTERFACE\r
6109                                 ,     STORAGE:  54\r
6110                                 ,     ROUTINE CALLED:  ADRCK, BUFCLR, CALOUT, INOUT, IOSETC, OUTA,\r
6111                                 ,                       OUTBUF, UXIT, WSYNC,\r
6112                                 ,     SYMBOLS SET/USED:\r
6113                                 ,        ACCUMULATORS:  DEVDAT U        PROG U\r
6114                                 ,                       IOS U           TAC S/U\r
6115                                 ,                       ITEM S/U        TAC1 S/U\r
6116                                 ,                       JBUF S/U        UUO S\r
6117                                 ,                       PDP U\r
6118                                 ,       DEVICE DATA BLOCK: DEVBUF U     DEVOAD S\r
6119                                 ,       IO STATUS WORD: IOACT U\r
6120                                 ,                       IOWC U\r
6121                                 ,       JOB BUFFER AREA:        JBADR S/U\r
6122                                 ,                        JBFCTR S\r
6123                                 ,                        JBPPTR S/U\r
6124                                 ,                        BUFFER SIZE U\r
6125                                 ,                        IOUSE S/U\r
6126                                 ,                        WORD COUNT S\r
6127 \r
6128 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 14\r
6129 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
6130 \r
6131 \r
6132 \r
6133 \r
6134                                           INTERN OUT\r
6135 \r
6136         000306' 607000  000020  OUT:      TLNN IOS,IO   ;IS THIS DEVICE ALREADY DOING INPUT?\r
6137         000307' 260140  000274*           PUSHJ PDP,WAIT1       ;YES, WAIT TILL IT BECOMES INACTIVE\r
6138         000310' 135040  000165*           LDB TAC,PUUOAC\r
6139         000311' 661301  000167*           TLO DEVDAT,OUTPB\r
6140                                               HLLM DEVDAT,USRJDA(TAC)\r
6141         000312' 135040  000244*           LDB TAC,PIOMOD\r
6142         000313' 301040  000016            CAIL TAC,DR\r
6143         000314' 254000  000400'           JRST OUTDMP\r
6144                                                         PUSHJ PDP,OUTA\r
6145         000315' 544246  000006  OUT1:     HLR JBUF,DEVBUF(DEVDAT)\r
6146         000316' 260140  000210*           PUSHJ PDP,ADRCK       ;CHECK END OF 3 WORD HEADER\r
6147         000317' 551045  000002            HRRZI TAC,2(JBUF)\r
6148         000320' 505240  000007            HRLI JBUF,PROG\r
6149         000321' 515040  400000            HRLZI TAC, IOUSE\r
6150         000322' 337120  000005            SKIPG TAC1, @JBUF             ;HAS THIS BUFFER EVER BEEN\r
6151                                                                         ;;REFERENCED?(JBFADR0=0?)\r
6152         000323' 254000  000357'           JRST OUTF\r
6153         000324' 350000  000005            AOS JBUF\r
6154         000325' 550060  000005            HRRZ TAC, @JBUF\r
6155         000326' 271100  000001            ADDI TAC1, 1\r
6156         000327' 274040  000002            SUB TAC, TAC1\r
6157         000330' 505100  000007            HRLI TAC1,PROG\r
6158         000331' 602000  000020            TRNE IOS, IOWC                ;COMPUTE WORD COUNT?(IOWC=0?)\r
6159         000332' 254000  000336'           JRST OUT2\r
6160                                           ADRCHK TAC1           ;PROCEED IF ADDRESS OF WORD COUNT\r
6161         000333' 260140  000316* PUSHJ PDP,ADRCK\r
6162         000334' 550040  000002          HRRZ TAC,TAC1           \r
6163                                                                         ;<PROTECTION ADDRESS\r
6164         000335' 542060  000002            HRRM TAC, @TAC1               ;WORD COUNT:=C(JBFPTR18-35)\r
6165                                                                         ;            -C(JBFPTR18-35)-\r
6166         000336' 275240  000001  OUT2:     SUBI JBUF,1\r
6167         000337' 275100  000001            SUBI TAC1,1\r
6168         000340' 515040  400000            HRLZI TAC, IOUSE\r
6169         000341' 437060  000002            IORB TAC, @TAC1               ;IOUSE:=1\r
6170         000342' 260140  000333*           ADRCHK TAC1^PUSHJ PDP,ADRCK\r
6171         000343' 550040  000002          HRRZ TAC,TAC1^\r
6172         000344' 542060  000005            HRRM TAC,@JBUF                ;ADVANCE CURRENT BUFFER ADDRE\r
6173         000345' 200006  000002            MOVE IOS,DEVIOS (DEVDAT)\r
6174         000346' 606000  010000            TRNN IOS,IOACT\r
6175         000347' 260140  000417'           PUSHJ PDP, CALOUT             ;START OUTPUT\r
6176         000350' 544246  000006            HLR JBUF,DEVBUF(DEVDAT)\r
6177         000351' 505240  000007            HRLI JBUF,PROG\r
6178         000352' 200120  000005            MOVE TAC1,@JBUF\r
6179         000353' 505100  000007            HRLI TAC1,PROG\r
6180         000354' 337020  000002            SKIPG @TAC1                   ;IOUSE=1?\r
6181         000355' 260140  000300*           PUSHJ PDP, WSYNC              ;WAIT FOR DEVICE TO BECOME IN\r
6182         000356' 254000  000370'           JRST OUTS\r
6183 \r
6184 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 15\r
6185 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
6186 \r
6187 \r
6188 \r
6189         000357' 332120  000005  OUTF:     SKIPE TAC1,@JBUF\r
6190         000360' 254000  000365'           JRST OUTF1\r
6191         000361' 541600  000002            HRRI UUO,2\r
6192         000362' 260140  000066'           PUSHJ PDP,UOUTBF\r
6193         000363' 544246  000006            HLR JBUF,DEVBUF(DEVDAT)\r
6194         000364' 505240  000007            HRLI JBUF,PROG\r
6195         000365' 515040  400000  OUTF1:    HRLZI TAC, IOUSE\r
6196         000366' 413060  000005            ANDCAB TAC, @JBUF             ;IOUSE:=0\r
6197         000367' 542046  000010            HRRM TAC,DEVOAD(DEVDAT)\r
6198         000370' 550060  000005  OUTS:     HRRZ TAC,@JBUF\r
6199         000371' 260140  000000*           PUSHJ PDP,BUFCLR\r
6200         000372' 540120  000005            HRR TAC1,@JBUF\r
6201         000373' 505100  000007            HRLI TAC1,PROG\r
6202         000374' 135200  000473'           LDB ITEM,[POINT 17,@TAC1,17]\r
6203         000375' 275200  000001            SUBI ITEM,1\r
6204         000376' 260140  000242*           PUSHJ PDP,IOSETC      ;JBFPTR18-35:=CURRENT BUFFER\r
6205                                                                 ;ADDRESS+1\r
6206                                                                 ;JBFCTR:=(BUFFER SIZE-1)*[36/BYTE\r
6207                                                                 ;SIZE]\r
6208         000377' 254000  000275*           JRST UXIT             ;RETURN TO USERS PROGRAM\r
6209 \r
6210         000400' 260140  000355* OUTDMP:   PUSHJ PDP,WSYNC\r
6211         000401' 200046  000003            MOVE TAC,DEVSER(DEVDAT)\r
6212         000402' 260141  000006            PUSHJ PDP,DDO(TAC)\r
6213         000403' 260140  000307*           PUSHJ PDP,WAIT1\r
6214         000404' 254000  000377*           JRST UXIT\r
6215 \r
6216 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 16\r
6217 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
6218 \r
6219 \r
6220 \r
6221 \r
6222                                 ,DEC 06 00 EX COM L PT PRE 01 OUTA\r
6223                                 ,H.R. MORSE     64-12-26\r
6224 \r
6225                                 ,CALLING SEQUENCE:\r
6226                                 ,         PUSHJ PDP,OUTA\r
6227                                 ,         EXIT                  ALWAYS RETURN HERE\r
6228                                 ,IF THE ADDRESS FIELD OF AC UUO IS ZERO,EXIT. OTHERWISE,CHECK IOACT.\r
6229                                 ,IF IOACT=1, WIAT FOR IOACT=0.\r
6230                                 ,SET JBFADR18-35:=ADDRESS FIELD OF AC UUO. JBFADR0:=1 AND EXIT.\r
6231 \r
6232                                 ,MONITOR INTERFACE\r
6233                                 ,         STORAGE:13\r
6234                                 ,         ROUTINES CALLED:      WSYNC\r
6235                                 ,         SYMBOLS SET/USED:\r
6236                                 ,             ACCUMULATORS:     DEVDAT U\r
6237                                 ,                               IOS U           PROG U\r
6238                                 ,                               JBUF S/U        TAC S/U\r
6239                                 ,         DEVICE DATA BLOCK:    DEVIOS U        DEVBUF U\r
6240                                 ,         IO STATUS WORD:       IOACT U\r
6241                                 ,         JOB BUFFER AREA:      IOUSE U\r
6242                                 ,                               JBFADR S\r
6243 \r
6244                                           INTERN OUTA\r
6245         000405' 606600  777777  OUTA:     TRNN UUO, 777777      ;IS BUFFER ADDRESS SPECIFIED?\r
6246         000406' 263140  000000            POPJ PDP,             ;NO\r
6247         000407' 260140  000403*           PUSHJ PDP,WAIT1\r
6248         000410' 544246  000006            HLR JBUF,DEVBUF(DEVDAT)\r
6249         000411' 545240  000007            HLRI JBUF,PROG\r
6250         000412' 542620  000005            HRRM UUO,@JBUF\r
6251         000413' 542606  000010            HRRM UUO,DEVOAD(DEVDAT)\r
6252         000414' 515040  400000            HRLZI TAC,IOUSE\r
6253         000415' 412060  000005            ANDCAM TAC,@JBUF\r
6254         000416' 263140  000000            POPJ PDP,             ;RETURN\r
6255 \r
6256 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 17\r
6257 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
6258 \r
6259 \r
6260 \r
6261 \r
6262                                 ,DEC 06 00 EX COM L PT PRE 03 CALOUT\r
6263                                 ,H.R. MORSE      2/21/65\r
6264 \r
6265                                 ,CALLING SEQUENCE\r
6266                                 ,         PUSHJ PDP,CALOUT\r
6267                                 ,         EXIT\r
6268 \r
6269                                 ,DISPATCH TO DEVICE SERVICE ROUTINE DOU TO INITIATE OUTPUT.\r
6270 \r
6271                                 ,MONITOR INTERFACE\r
6272                                 ,         STORAGE:2\r
6273                                 ,         SYMBOLS SET/USED:\r
6274                                 ,             ACCUMULATORS:     DEVDAT U\r
6275                                 ,                               TAC U\r
6276                                 ,         DEVICE DATA BLOCK:    DEVSER U\r
6277 \r
6278                                           INTERN CALOUT\r
6279         000417' 606000  010000  CALOUT:   TRNN IOS,IOACT\r
6280         000420' 254000  000424'           JRST CALOU1\r
6281         000421' 606000  000040            TRNN IOS,IOCON\r
6282         000422' 263140  000000            POPJ PDP,\r
6283         000423' 260140  000400*           PUSHJ PDP,WSYNC\r
6284         000424' 200046  000003  CALOU1:   MOVE TAC,DEVSER(DEVDAT)\r
6285         000425' 254001  000002            JRST DOU(TAC)\r
6286 \r
6287 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 18\r
6288 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
6289 \r
6290 \r
6291 \r
6292 \r
6293                                 ,RELEASE A DEVICE\r
6294 \r
6295                                 INTERNAL RELEA1,RELEA2,RELEA3,RELEA5\r
6296 \r
6297         000426' 200006  000002  RELEA0:   MOVE IOS,DEVIOS(DEVDAT)       ;CALLED FROM INIT\r
6298         000427'                 RELEA2:RELEA3:\r
6299         000427' 620600  777777  RELEA1:   TRZ UUO,-1            ;CLOSE BOTH INPUT AND OUTPUT\r
6300         000430' 260140  000000'           PUSHJ PDP,CLOSE1\r
6301         000431' 260140  000407*           PUSHJ PDP,WAIT1       ;WAIT FOR DEVICE TO BECOME INACTIVE\r
6302         000432' 200046  000003  RELEA5:   MOVE TAC, DEVSER(DEVDAT)      ;RELEASE WITHOUT WAITING\r
6303         000433' 260141  000000            PUSHJ PDP, DRL (TAC)\r
6304         000434' 135040  000310*           LDB TAC,PUUOAC\r
6305         000435' 402001  000311*           SETZM USRJDA(TAC)\r
6306         000436' 201040  000017            MOVEI TAC,17          ;IS THE DEVICE ON AONTHER USER CHANNEL?\r
6307         000437' 550101  000435* RELEA4:   HRRZ TAC1,USRJDA(TAC)\r
6308         000440' 302106  000000            CAIE TAC1,(DEVDAT)\r
6309         000441' 365040  000437'           SOJGE TAC,RELEA4\r
6310         000442' 325040  000404*           JUMPGE TAC,UXIT       ;EXIT IF ON ANOTHER CHANNEL\r
6311         000443' 201100  200000            MOVEI TAC1,ASSPRG     ;OTHERWISE CLEAR ASSIGNED BY PROG. BIT\r
6312         000444' 413106  000004            ANDCAB TAC1,DEVMOD(DEVDAT)\r
6313         000445' 616100  000474'           TDNN TAC1,[XWD TTYUSE,ASSCON] ; ASSIGNED BY CONSOLE OR TTY I\r
6314         000446' 137600  000000*           DPB UUO,PJOBN         ;NO. CLEAR JOB NUMBER\r
6315         000447' 254000  000442*           JRST UXIT\r
6316 \r
6317 \r
6318 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 19\r
6319 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
6320 \r
6321 \r
6322 \r
6323 \r
6324                                 ,DEC 06 00 EX UUO L PT PRE 01 STATO\r
6325                                 ,H.R. MORSE     64-12-26\r
6326 \r
6327                                 ,CALLING SEQUENCE\r
6328                                 ,         STATO D,MASK\r
6329                                 ,         EXIT1                 ALL SELECTED BITS ARE 0\r
6330                                 ,         EXIT2                 SOME SELECTED BITS ARE 1\r
6331                                 ,TESTS BITS OF I/O STATUS WORD OF DEVICE ON USERS CHANNEL D WHICH\r
6332                                 ,ARE SELECTED BY MASK.\r
6333 \r
6334                                 ,MONITOR INTERFACE:\r
6335                                 ,         STORAGE:              3\r
6336                                 ,         ROUTINES CALLED:      UXIT\r
6337                                 ,         SYMBOLS SET/USED:\r
6338                                 ,             ACCUMULATORS:     IOS U\r
6339                                 ,                               PDP U\r
6340                                 ,                               UUO U\r
6341 \r
6342                                           INTERN USTATO\r
6343 \r
6344         000450' 602014  000000  USTATO:   TRNE IOS,(UUO)        ;SKIP IF ANY INDICATED BITS ARE ONE\r
6345         000451' 350003  000000            AOS (PDP)\r
6346         000452' 254000  000447*           JRST UXIT\r
6347 \r
6348 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 20\r
6349 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
6350 \r
6351 \r
6352 \r
6353                                 ,DEC 06 00 EX UUO L PT PRE 01 STATUS\r
6354                                 ,H.R. MORSE   64-12-26\r
6355 \r
6356                                 ,CALLING SEQUENCE\r
6357                                 ,         STATUS D,ADR\r
6358                                 ,         EXIT                  ALWAYS RETURNS HERE\r
6359                                 ,STORES I/O STATUS WORD OF DEVICE ON CHANNEL D IN LOCATION ADR.\r
6360 \r
6361                                 ,MONITOR INTERFACE\r
6362                                 ,         STORAGE:              3\r
6363                                 ,         ROUTINES CALLED:      UXIT\r
6364                                 ,         SYMBOLS SET/USED:     \r
6365                                 ,             ACCUMULATORS:     IOS U\r
6366                                 ,                               PROG U\r
6367                                 ,                               UUO U\r
6368 \r
6369                                 INTERN USTATS\r
6370                                 EXTERNAL ADRERR,USRREL\r
6371 \r
6372         000453' 200040  000000* USTATS:   MOVE TAC,USRREL               ;CHECK TO SEE IF IN BOUNDS\r
6373         000454' 307054  000000            CAIG TAC,(UUO)\r
6374         000455' 260140  000000*           PUSHJ PDP,ADRERR\r
6375         000456' 505600  000007            HRLI UUO,PROG         ;LOAD STATUS INTO INDICATED ADDRESS.\r
6376         000457' 552020  000014            HRRZM IOS,@UUO\r
6377         000460' 254000  000452*           JRST UXIT\r
6378 \r
6379 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 21\r
6380 IOCONT  MAC     24-APR-78 23:08         8-9-95\r
6381 \r
6382 \r
6383 \r
6384                                 ,CALLING SEQUENCE\r
6385                                 ,         SETSTS D,BITS\r
6386                                 ,         EXIT                  ALWAYS RETURN HERE\r
6387 \r
6388                                 INTERNAL USETST\r
6389                                 EXTERNAL WAIT1,SETIOS\r
6390 \r
6391         000461' 260140  000431* USETST:   PUSHJ PDP,WAIT1       ;WAIT TILL DEVICE INACTIVE\r
6392         000462' 205000  000002            MOVSI IOS, IOBEG\r
6393         000463' 436006  000002            IORM IOS,DEVIOS(DEVDAT)\r
6394         000464' 542606  000002            HRRM UUO,DEVIOS(DEVDAT)\r
6395         000465' 254000  000460*           JRST UXIT\r
6396 \r
6397                                 ,DEC 06 00 EX UUO L PT PRE 01 STATZ\r
6398                                 ,H.R. MORSE     64-12-26\r
6399 \r
6400                                 ,CALLING SEQUENCE\r
6401                                 ,         STATZ D,MASK\r
6402                                 ,         EXIT1                 SOME SELECTED BITS ARE 1\r
6403                                 ,         EXIT2                 ALL SELECTED BITS ARE 0\r
6404 \r
6405                                 ,TESTS BITS OF I/O STATUS WORD OF DEVICE ON USERS\r
6406                                 ,CHANNEL D WHICH ARE SELECTED BY MASK,\r
6407 \r
6408                                 ,MONITOR INTERFACE\r
6409                                 ,         STORAGE:              3\r
6410                                 ,         ROUTINES CALLED:      UXIT\r
6411                                 ,         SYMBOLS SET/USED:\r
6412                                 ,             ACCUMULATORS:     IOS U\r
6413                                 ,                               PDP U\r
6414                                 ,                               UUO U\r
6415 \r
6416                                           INTERN USTATZ\r
6417 \r
6418         000466' 606014  000000  USTATZ:   TRNN IOS,(UUO)        ;SKIP IF ALL INDICATED BITS ARE ZERO\r
6419         000467' 350003  000000            AOS (PDP)\r
6420         000470' 254000  000465*           JRST UXIT\r
6421 \r
6422                                           END,\r
6423 \r
6424 NO ERRORS DETECTED\r
6425 \r
6426 PROGRAM BREAK IS 000475\r
6427 \r
6428 9K CORE USED\r
6429 \r
6430 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 22\r
6431 IOCONT  MAC     24-APR-78 23:08         SYMBOL TABLE\r
6432 \r
6433 A               000000  INT\r
6434 AC1             000015  INT\r
6435 AC2             000016  INT\r
6436 AC3             000017  INT\r
6437 ADRCK           000342' EXT\r
6438 ADRERR          000455' EXT\r
6439 AL              000001  INT\r
6440 ASSCON          400000  INT\r
6441 ASSIN           000112' EXT\r
6442 ASSPRG          200000  INT\r
6443 B               000014  INT\r
6444 BUFCLC          000077' EXT\r
6445 BUFCLR          000371' EXT\r
6446 BUFPNT          000012  INT\r
6447 BUFWRD          000013  INT\r
6448 CALIN           000276' \r
6449 CALOU1          000424' \r
6450 CALOUT          000417' INT\r
6451 CLOSB           002000  INT\r
6452 CLOSE1          000000' INT\r
6453 CLSIN           000002  INT\r
6454 CLSOUT          000001  INT\r
6455 CUXIT1          000113' EXT\r
6456 CUXIT2          000141' EXT\r
6457 D               000017  INT\r
6458 DAT             000005  INT\r
6459 DCL             000001  INT\r
6460 DCW             020000  INT\r
6461 DDI             000007  INT\r
6462 DDO             000006  INT\r
6463 DDTMEM          000037  INT\r
6464 DDTSYM          000036  INT\r
6465 DEN             000004  INT\r
6466 DEVADR          000007  INT\r
6467 DEVBUF          000006  INT\r
6468 DEVCHR          000001  INT\r
6469 DEVCTR          000011  INT\r
6470 DEVDAT          000006  INT\r
6471 DEVIAD          000007  INT\r
6472 DEVIOS          000002  INT\r
6473 DEVLOG          000005  INT\r
6474 DEVMOD          000004  INT\r
6475 DEVNAM          000000  INT\r
6476 DEVOAD          000010  INT\r
6477 DEVPTR          000010  INT\r
6478 DEVSER          000003  INT\r
6479 DGF             000012  INT\r
6480 DIN             000003  INT\r
6481 DLK             000005  INT\r
6482 DOU             000002  INT\r
6483 DR              000016  INT\r
6484 DRL             000000  INT\r
6485 \r
6486 \r
6487 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 22-1\r
6488 IOCONT  MAC     24-APR-78 23:08         SYMBOL TABLE\r
6489 \r
6490 DSI             000011  INT\r
6491 DSO             000010  INT\r
6492 DTW             040000  INT\r
6493 DVAVAL          000040  INT\r
6494 DVCDR           100000  INT\r
6495 DVDIR           000004  INT\r
6496 DVDIRI          400000  INT\r
6497 DVIN            000002  INT\r
6498 DVLPT           040000  INT\r
6499 DVMTA           000020  INT\r
6500 DVOUT           000001  INT\r
6501 DVTTY           000010  INT\r
6502 ENTRB           020000  INT\r
6503 ERROR           000000  EXT\r
6504 I               000010  INT\r
6505 IB              000013  INT\r
6506 IBUFB           200000  INT\r
6507 ILLMOD          000000  EXT\r
6508 IN              000163' INT\r
6509 IN1             000173' \r
6510 INDMP           000271' \r
6511 INEOF           000250' \r
6512 INITB           400000  INT\r
6513 INPB            010000  INT\r
6514 INPT0A          000225' \r
6515 INPT0B          000220' \r
6516 INPT0C          000224' \r
6517 INPUT0          000212' \r
6518 INPUT1          000227' \r
6519 INPUT2          000236' \r
6520 INPUT3          000265' \r
6521 INPUTA          000253' \r
6522 INPUTF          000256' \r
6523 IO              000020  INT\r
6524 IOACT           010000  INT\r
6525 IOBEG           000002  INT\r
6526 IOBKTL          040000  INT\r
6527 IOCON           000040  INT\r
6528 IODEND          020000  INT\r
6529 IODERR          200000  INT\r
6530 IODISC          400000  INT\r
6531 IODONE          400000  INT\r
6532 IODTER          100000  INT\r
6533 IOEND           000040  INT\r
6534 IOFST           000004  INT\r
6535 IOIERR          000000  EXT\r
6536 IOIMPM          400000  INT\r
6537 IONRCK          000100  INT\r
6538 IORDEL          000100  INT\r
6539 IORET           000020  INT\r
6540 IOS             000000  INT\r
6541 IOSETC          000376' EXT\r
6542 IOSTRT          000010  INT\r
6543 \r
6544 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 22-2\r
6545 IOCONT  MAC     24-APR-78 23:08         SYMBOL TABLE\r
6546 \r
6547 IOUSE           400000  INT\r
6548 IOW             000001  INT\r
6549 IOWC            000020  INT\r
6550 IOWS            400000  INT\r
6551 ITEM            000004  INT\r
6552 JBFADR          000000  INT\r
6553 JBFCTR          000002  INT\r
6554 JBFPTR          000001  INT\r
6555 JBUF            000005  INT\r
6556 JDAT            000011  INT\r
6557 JERR            002000  INT\r
6558 JIOW            100000  INT\r
6559 JNA             004000  INT\r
6560 JOB             000111' EXT\r
6561 JOBJDA          000000  EXT\r
6562 LOOKB           040000  INT\r
6563 MTW             010000  INT\r
6564 OBUFB           100000  INT\r
6565 OUT             000306' INT\r
6566 OUT1            000315' \r
6567 OUT2            000336' \r
6568 OUTA            000405' INT\r
6569 OUTDMP          000400' \r
6570 OUTF            000357' \r
6571 OUTF1           000365' \r
6572 OUTPB           004000  INT\r
6573 OUTS            000370' \r
6574 PDP             000003  INT\r
6575 PICHN           000100  INT\r
6576 PIOMOD          000312' EXT\r
6577 PJOBN           000446' EXT\r
6578 PROG            000007  INT\r
6579 PUUOAC          000434' EXT\r
6580 RELEA0          000426' \r
6581 RELEA1          000427' INT\r
6582 RELEA2          000427' INT\r
6583 RELEA3          000427' INT\r
6584 RELEA4          000437' \r
6585 RELEA5          000432' INT\r
6586 RUN             200000  INT\r
6587 RUNABL          204000  INT\r
6588 SETBYT          000155' EXT\r
6589 SETIOS          000120' EXT\r
6590 TAC             000001  INT\r
6591 TAC1            000002  INT\r
6592 TEM             000010  INT\r
6593 TTYATC          020000  INT\r
6594 TTYUSE          010000  INT\r
6595 UCLS0           000026' \r
6596 UCLS1           000034' \r
6597 UCLS2           000041' \r
6598 UCLS3           000060' \r
6599 UCLS4           000013' \r
6600 \r
6601 \fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS   MACRO 10 05:51 24-APR-78 PAGE 22-3\r
6602 IOCONT  MAC     24-APR-78 23:08         SYMBOL TABLE\r
6603 \r
6604 UINBF           000076' INT\r
6605 UINIT           000103' INT\r
6606 UINIT1          000111' INT\r
6607 UINIT4          000127' \r
6608 UINIT5          000133' \r
6609 UINITZ          000142' INT\r
6610 UINTQ           000121' EXT\r
6611 UOBF1           000072' \r
6612 UOUTBF          000066' INT\r
6613 USETST          000461' INT\r
6614 USRJDA          000437' EXT\r
6615 USRMOD          010000  INT\r
6616 USRREL          000453' EXT\r
6617 USTATO          000450' INT\r
6618 USTATS          000453' INT\r
6619 USTATZ          000466' INT\r
6620 UUO             000014  INT\r
6621 UXIT            000470' EXT\r
6622 WAIT1           000461' EXT\r
6623 WSYNC           000423' EXT\r
6624 \f   IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS                     \r
6625    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS                     \r
6626    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS                     \r
6627       III            OOO         OOO      CCC                  SSS                  SSS                                 \r
6628       III            OOO         OOO      CCC                  SSS                  SSS                                 \r
6629       III            OOO         OOO      CCC                  SSS                  SSS                                 \r
6630       III            OOO         OOO      CCC                  SSS                  SSS                                 \r
6631       III            OOO         OOO      CCC                  SSS                  SSS                                 \r
6632       III            OOO         OOO      CCC                  SSS                  SSS                                 \r
6633       III            OOO         OOO      CCC                     SSSSSSSSS            SSSSSSSSS                        \r
6634       III            OOO         OOO      CCC                     SSSSSSSSS            SSSSSSSSS                        \r
6635       III            OOO         OOO      CCC                     SSSSSSSSS            SSSSSSSSS                        \r
6636       III            OOO         OOO      CCC                              SSS                  SSS                     \r
6637       III            OOO         OOO      CCC                              SSS                  SSS                     \r
6638       III            OOO         OOO      CCC                              SSS                  SSS                     \r
6639       III            OOO         OOO      CCC                              SSS                  SSS                     \r
6640       III            OOO         OOO      CCC                              SSS                  SSS                     \r
6641       III            OOO         OOO      CCC                              SSS                  SSS                     \r
6642    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS                        \r
6643    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS                        \r
6644    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS                        \r
6645 \r
6646 \r
6647 \r
6648 \r
6649 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
6650 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
6651 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
6652 LLL                  SSS                        TTT                                                                     \r
6653 LLL                  SSS                        TTT                                                                     \r
6654 LLL                  SSS                        TTT                                                                     \r
6655 LLL                  SSS                        TTT                                                                     \r
6656 LLL                  SSS                        TTT                                                                     \r
6657 LLL                  SSS                        TTT                                                                     \r
6658 LLL                     SSSSSSSSS               TTT                                                                     \r
6659 LLL                     SSSSSSSSS               TTT                                                                     \r
6660 LLL                     SSSSSSSSS               TTT                                                                     \r
6661 LLL                              SSS            TTT                                                                     \r
6662 LLL                              SSS            TTT                                                                     \r
6663 LLL                              SSS            TTT                                                                     \r
6664 LLL                              SSS            TTT                                                                     \r
6665 LLL                              SSS            TTT                                                                     \r
6666 LLL                              SSS            TTT                                                                     \r
6667 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
6668 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
6669 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
6670 \r
6671 \r
6672 \r
6673 \r
6674 Request created: 24-April-1978  05:53:58\r
6675 File: DSKB0 :IOCSS .LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:34\r
6676 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1847 \r
6677 File will be deleted after printing\r
6678 \f\r
6679 IOCSS - IO COMMON SYSTEM SUBROUTINES    MACRO 10 05:51 24-APR-78 PAGE 1\r
6680 S       MAC     24-APR-78 21:40         8-15-65\r
6681 \r
6682                                         XLIST\r
6683                                        LIST\r
6684                                            TITLE IOCSS - IO COMMON SYSTEM SUBROUTINES\r
6685                                            SUBTTL 8-15-65\r
6686                                            EXTERNAL CLOSE1,DEVLST,ERROR,JBTADR\r
6687                                            EXTERNAL JOB,JOBFF,RELEA1,USRJDA,WAIT1,CLDS,CLEN\r
6688                                            EXTERNAL PJOBN,CPOPJ1,PIOMOD,CPOPJ,CPOPJ2\r
6689                                            EXTERNAL SCNOFF,SCNON\r
6690 \r
6691 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 2\r
6692 IOCSS   MAC     24-APR-78 23:13         8-15-65\r
6693 \r
6694 \r
6695 \r
6696                                 ,DEC 06 00 EX COM L PT PRE 01 ADVBFE\r
6697                                 ,H.R. MORSE         64-12-26\r
6698                                 ,CALLING SEQUENCE\r
6699                                 ,         PUSHJ PDP,ADVBFE\r
6700                                 ,         EXIT1               RETURN IF NEXT BUFFER IS EMPTY\r
6701                                 ,         EXIT2               RETURN IF NEXT BUFFER IS FULL\r
6702                                 ,CLEARS THE USE BIT (IOUSE:=0) OF THE BUFFER POINTED TO BY THE\r
6703                                 ,OUTPUT BUFFER ADDRESS (DEVOAD) OF THE CURRENT DEVICE DATA BLOCK\r
6704                                 ,AND ADVANCES THE BUFFER ADDRESS TO THE NEXT BUFFER IN THE RING\r
6705                                 ,UPON RETURN, SKIPS IF THE NEXT BUFFER IS FULL.\r
6706                                 ,MONITOR INTERFACE\r
6707                                 ,         STORAGE:  6\r
6708                                 ,         SYMBOLS SET/USED:\r
6709                                 ,             ACCUMULATORS:     DEVDAT U\r
6710                                 ,                               PDP    S/U\r
6711                                 ,                               TAC    S/U\r
6712                                 ,             DEVICE DATA BLOCK:         DEVOAD S/U\r
6713                                 ,             JOB BUFFER HEADER:         IOUSE  S/U\r
6714                                           INTERN ADVBFE\r
6715         000000'                 ADVBFE:   ADRCHK DEVOAD(DEVDAT)^        EXTERNAL ADRCK\r
6716         000000' 260140  000000*         PUSHJ PDP,ADRCK\r
6717         000001' 550046  000010          HRRZ TAC,DEVOAD(DEVDAT)^\r
6718         000002' 515040  400000            HRLZI TAC,IOUSE;      IOUSE:=0\r
6719         000003' 413066  000010            ANDCAB TAC,@DEVOAD(DEVDAT)\r
6720         000004' 542046  000010            HRRM TAC,DEVOAD(DEVDAT); DEVOAD 18-35:=NEXT BUFFER ADDRESS\r
6721         000005' 335026  000010            SKIPGE @DEVOAD(DEVDAT);       IS IOUSE=0?\r
6722         000006' 350003  000000            AOS (PDP);                    EXIT2. BUFFER IS FULL\r
6723         000007' 263140  000000            POPJ PDP,;            EXIT1. BUFFER IS EMPTY\r
6724 \r
6725 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 3\r
6726 IOCSS   MAC     24-APR-78 23:13         8-15-65\r
6727 \r
6728 \r
6729 \r
6730                                 ,DEC 06 00 EX COM L PT PRE 01 ADVBFF\r
6731                                 ,H.R. MORSE         64-12-26\r
6732                                 ,CALLING SEQUENCE\r
6733                                 ,         PUSHJ PDP,ADVBFF\r
6734                                 ,         EXIT1                 RETURN IF NEXT BUFFER IS FULL\r
6735                                 ,         EXIT2                 RETURN IF NEXT BUFFER IS EMPTY\r
6736                                 ,SETS THE USE BIT (IOUSE:=1) OF THE BUFFER POINTED TO BY THE\r
6737                                 ,INPUT BUFFER ADDRESS (DEVIAD) OF THE CURRENT DEVICE DATA BLOCK\r
6738                                 ,AND ADVANCES THE BUFFER ADDRESS TO THE NEXT BUFFER IN THE RING.\r
6739                                 ,UPON RETURN. SKIPS IF THE NEXT BUFFER IS EMPTY,\r
6740                                 ,MONITOR INTERFACE\r
6741                                 ,         STORAGE:   6\r
6742                                 ,         SYMBOLS SET/USED:\r
6743                                 ,             ACCUMULATORS:             DEVDAT U\r
6744                                 ,                                       PDP    S/U\r
6745                                 ,                                       TAC    S/U\r
6746                                 ,             DEVICE DATA BLOCK:        DEVIAD S/U\r
6747                                 ,             JOB BUFFER HEADER:        IOUSE  S/U\r
6748                                           INTERN ADVBFF\r
6749         000010' 260140  000000* ADVBFF:   ADRCHK DEVIAD(DEVDAT)^PUSHJ PDP,ADRCK\r
6750         000011' 550046  000007          HRRZ TAC,DEVIAD(DEVDAT)^\r
6751         000012' 515040  400000            HRLZI TAC,IOUSE;      IOUSE:=1\r
6752         000013' 437066  000007            IORB TAC,@DEVIAD(DEVDAT)\r
6753         000014' 542046  000007            HRRM TAC,DEVIAD(DEVDAT); DEVIAD:=NEXT BUFFER ADDRESS\r
6754         000015' 331026  000007            SKIPL @DEVIAD(DEVDAT);        IOUSE=1?\r
6755         000016' 350003  000000            AOS (PDP);            EXIT2. NEXT BUFFER IS EMPTY\r
6756         000017' 263140  000000            POPJ PDP,;            EXIT1. NEXT BUFFER IS FULL\r
6757 \r
6758 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 4\r
6759 IOCSS   MAC     24-APR-78 23:13         8-15-65\r
6760 \r
6761 \r
6762 \r
6763 \r
6764                                 ,DEC 06 00 EX COM L PT PRE 01 ASCIA\r
6765                                 ,C. FRAZIER AND W. SEGAL      64-12-26\r
6766                                 ,CALLING SEQUENCE\r
6767                                 ,         PUSHJ PDP,ASCIA\r
6768                                 ,         EXIT                ALWAYS RETURNS HERE\r
6769                                 ,ADDS THE ASCII INCREMENT (RIGHT JUSTIFIED) IN AC TAC1 TO THE FIVE\r
6770                                 ,DIGIT ASCII NUMBER (LEFT JUSTIFIED) IN AC TAC AND LEAVES THE \r
6771                                 ,RESULT (LEFT JUSTIFIED) IN AC TAC. TAC1 IS RESTORED.\r
6772                                 ,MONITOR INTERFACE\r
6773                                 ,         STORAGE:  21\r
6774                                 ,         SYMBOLS SET/USED:\r
6775                                 ,             ACCUMULATORS:     PDP  U\r
6776                                 ,                               TAC  S/U\r
6777                                 ,                               TAC1 S/U\r
6778 \r
6779 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 5\r
6780 IOCSS   MAC     24-APR-78 23:13         8-15-65\r
6781 \r
6782 \r
6783 \r
6784                                 ;         INTERN ASCIA\r
6785                                 ;ASCIA:   PUSH PDP,TAC1;        SAVE TAC1 = ASCII INCREMENT (RIGHT JUST\r
6786                                 ;         AND TAC1,K2;          CLEAR MOST SIGNIFICANT 3 BITS OF\r
6787                                 ;,                              EACH CHARACTER\r
6788                                 ;         LSH TAC,-1;           TAC=FIVE DIGIT ASCII NO.(RIGHT JUST.)\r
6789                                 ;         IOR TAC,K4;           SET SECOND AND THIRD MOST SIGNIFICANT\r
6790                                 ;,                              BITS OF EACH CHARACTER TO ONES.\r
6791                                 ;         TLZN TAC,400000\r
6792                                 ;         ADD TAC,K1\r
6793                                 ;         ADD TAC1,TAC\r
6794                                 ;         AND TAC1,K3\r
6795                                 ;         MOVE TAC,K4\r
6796                                 ;         AND TAC,TAC1\r
6797                                 ;         ASH TAC,-3\r
6798                                 ;         SUBM TAC1,TAC\r
6799                                 ;         IOR TAC,K4\r
6800                                 ;         LSH TAC,1\r
6801                                 ;         TRO TAC,1\r
6802                                 ;         POP PDP,TAC1;         RESTORE TAC1\r
6803                                 ;         POPJ PDP,;            RETURN\r
6804                                 ;K1:      OCT 215064321506;     CHARACTER MASK: 1000110\r
6805                                 ;K2:      OCT 036170743617;     CHARACTER MASK: 0001111\r
6806                                 ;K3:      OCT 176773757677;     CHARACTER MASK: 0111111\r
6807                                 ;K4:      OCT 140603014060;     CHARACTER MASK: 0110000\r
6808 \r
6809 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 6\r
6810 IOCSS   MAC     24-APR-78 23:13         8-15-65\r
6811 \r
6812 \r
6813 \r
6814                                           INTERNAL ASSIN,ASSASG\r
6815 \r
6816         000020' 260140  000041' ASSIN:    PUSHJ PDP,DEVSRC      ;SEARCH FOR DEVICE\r
6817         000021' 263140  000000            POPJ PDP,             ;DEVICE NOT FOUND\r
6818         000022' 201100  200000            MOVEI TAC1, ASSPRG    ;DEVICE FOUND, FLAG AS ASSIGNED BY PROG\r
6819 \r
6820                                 ;ASSIGN DEVICE IF UNASSIGNED\r
6821                                 ;CALL:    MOVE ITEM, JOB NUMBER\r
6822                                 ;         MOVE DEVDAT, ADDR. OF DDB\r
6823                                 ;         MOVEI TAC1, EITHER ASSPRG OR ASSCON\r
6824                                 ;         PUSHJ PDP, ASSASG\r
6825                                 ;         CANT ASSIGN RETURN\r
6826                                 ;         ASSIGNED RETURN\r
6827 \r
6828         000023' 700200  000000* ASSASG:   CONO APR,CLDS         ;DISABLE CLOCK\r
6829         000024' 135040  000000*           LDB TAC,PJOBN         ;GET JOB NUMBER IN DEV DATA BLOCK\r
6830         000025' 316040  000004            CAMN TAC,ITEM         ;IS IT ALREADY ASSIGNED TO THIS JOB\r
6831         000026' 254000  000035'           JRST ASSAS1           ;YES\r
6832         000027' 201040  600000            MOVEI TAC, ASSPRG+ASSCON      ;NO, IS IT ASSIGNED TO ANOTHE\r
6833         000030' 700600  000000*           CONO PI, SCNOFF       ;TURN SCANNER OFF\r
6834         000031' 612046  000004            TDNE TAC, DEVMOD(DEVDAT)      ;ARE EITHER ASSIGNED BITS SET\r
6835         000032' 254000  000036'           JRST ASSAS2           ;YES\r
6836         000033' 436106  000004            IORM TAC1, DEVMOD(DEVDAT)     ;NO, SET ONE OF THEM\r
6837         000034' 137200  000024*           DPB ITEM,PJOBN        ;AND STORE JOB NUMBER\r
6838         000035' 350003  000000  ASSAS1:   AOS (PDP)\r
6839         000036' 700600  000000* ASSAS2:   CONO PI, SCNON        ;TURN SCANNER BACK ON\r
6840         000037' 700200  000000*           CONO APR,CLEN         ;RENABLE CLOCK\r
6841         000040' 263140  000000            POPJ PDP,\r
6842 \r
6843 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 7\r
6844 IOCSS   MAC     24-APR-78 23:13         8-15-65\r
6845 \r
6846 \r
6847 \r
6848                                 ;ROUTINE TO SEARCH FOR A DEVICE\r
6849                                 ;CALL:    HRR ITEM,JOB NUMBER\r
6850                                 ;         MOVE TAC,[SIXBIT .DEVICE NAME.]\r
6851                                 ;         PUSHJ PDP, DEVSRC\r
6852                                 ;         NOT FOUND\r
6853                                 ;         FOUND\r
6854 \r
6855                                           INTERNAL DEVLG,DEVSRC,DEVPHY\r
6856                                           EXTERNAL SYSTAP,DEVOPR\r
6857 \r
6858         000041' 260140  000044' DEVSRC:   PUSHJ PDP, DEVLG      ;SEARCH LOGICAL NAMES FIRST\r
6859         000042' 254000  000056'           JRST DEVPHY           ;NOT FOUND, SEARCH PHYSICAL NAMES\r
6860         000043' 254000  000000*           JRST CPOPJ1           ;FOUND\r
6861 \r
6862                                 ;SEARCH LOGICAL NAMES\r
6863 \r
6864         000044' 554300  000000* DEVLG:    HLRZ DEVDAT,DEVLST    ;BEGINNING OF DDB CHAIN\r
6865         000045' 322040  000000*           JUMPE TAC,CPOPJ       ;0 CANNOT BE A LOGICAL NAME\r
6866         000046' 312046  000005  DEVLP0:   CAME TAC,DEVLOG(DEVDAT)       ;COMPARE WITH LOGICAL NAME\r
6867         000047' 254000  000053'           JRST DEV0             ;NO MATCH\r
6868         000050' 135100  000034*           LDB TAC1,PJOBN        ;DOES THE LOGICAL NAME BELONG TO THIS J\r
6869         000051' 316100  000004            CAMN TAC1,ITEM\r
6870         000052' 254000  000043*           JRST CPOPJ1                   ;YES\r
6871         000053' 554306  000003  DEV0:     HLRZ DEVDAT,DEVSER(DEVDAT)    ;NO, KEEP LOOKING\r
6872         000054' 326300  000046'           JUMPN DEVDAT,DEVLP0\r
6873         000055' 263140  000000            POPJ PDP,             ;FINISH AND NOT FOUND\r
6874 \r
6875                                 ;SEARCH PHYSICAL NAMES\r
6876 \r
6877         000056' 322040  000045* DEVPHY:   JUMPE TAC,CPOPJ       ;ZERO CANNOT BE A LOGICAL NAME\r
6878         000057' 316040  000367'           CAMN TAC,[SIXBIT  /OPR/] ;IS IT "OPR"?\r
6879         000060' 200040  000000*           MOVE TAC,DEVOPR       ;YES, CHANGE TO OPERATORS TTY\r
6880         000061' 316040  000370'           CAMN TAC,[SIXBIT  /SYS/] ;IS IT "SYS"?\r
6881         000062' 200040  000000*           MOVE TAC,SYSTAP       ;YES, CHANGE TO SYSTEM TAPE NAME\r
6882         000063' 554300  000044*           HLRZ DEVDAT,DEVLST    ;SEARCH DEVICE DATA BLOCKS\r
6883         000064' 316046  000000  DEVLP1:   CAMN TAC,DEVNAM(DEVDAT)\r
6884         000065' 254000  000052*           JRST CPOPJ1           ;FOUND\r
6885         000066' 554306  000003            HLRZ DEVDAT,DEVSER(DEVDAT)\r
6886         000067' 326300  000064'           JUMPN DEVDAT,DEVLP1\r
6887         000070' 263140  000000            POPJ PDP, ;NOT FOUND\r
6888 \r
6889 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 8\r
6890 IOCSS   MAC     24-APR-78 23:13         8-15-65\r
6891 \r
6892 \r
6893 \r
6894                                 ,DEC 06 00 EX COM L PT PRE 01 BUFCLC\r
6895                                 ,H. R. MORSE        64-12-26\r
6896                                 ,CALLING SEQUENCE\r
6897                                 ,         PUSHJ PDP,BUFCLC\r
6898                                 ,         EXIT                  RETURNS HERE IF MEMORY NOT EXCEEDED\r
6899                                 , SETS UP AN N BUFFER RING FOLLOWING THE USERS PROGRAM, WHERE N\r
6900                                 , IS IN THE ADDRESS FIELD OF AC UUO.\r
6901                                 , THE BUFFER RING FORMAT IS AS FOLLOWS:\r
6902                                 ,         LOCATION  LH   CONTENTS   RH\r
6903                                 , C(JOBFF) + 1              BUFFER              C(JOBFF) +1\r
6904                                 ,    + 0(BUFFER SIZE+2)      SIZE                    + 1(BUFFER SIZ+2)\r
6905                                 , C(JOBFF) +1               BUFFER              C(JOBFF) +1\r
6906                                 ,    +1(BUFFER SIZE+2)       SIZE                    +  2(BUFFER SIZE+2)\r
6907                                 ,        .                    .                             .\r
6908                                 ,        .                    .                             .\r
6909                                 ,        .                    .                             .\r
6910                                 , C(JOBFF) + 1              BUFFER              C(JOBFF) + 1\r
6911                                 ,    + (N-2)(BUFFER SIZE+2)  SIZE                    +(N-1)(BUFFER SIZE+2)\r
6912                                 , C(JOBFF) + 1              BUFFER              C(JOBFF) + 1\r
6913                                 ,    + (N-1)(BUFFER SIZE+2)  SIZE       \r
6914                                 ,THEN SET           BUFPNT:=IOUS,C(JOBFF) + 1\r
6915                                 , AND               JOBFF:=C(JOBFF) + 1 + N(BUFFER SIZE + 2)\r
6916                                 , BUFWRD IS RESTORED.\r
6917                                 ,MONITOR INTERFACE\r
6918                                 ,         STORAGE:  20\r
6919                                 ,         ROUTINES CALLED:   ADRCK\r
6920                                 ,         SYMBOLS SET/USED:\r
6921                                 ,             ACCUMULATORS:  BUFPNT S/U         PROG   U\r
6922                                 ,                            BUFWRD S/U         TAC   S/U\r
6923                                 ,                            DEVDAT U           TAC1  S/U\r
6924                                 ,                            PDP    S/U         UUO   U\r
6925                                 ,         DEVICE DATA BLOCK: DEVCHR U\r
6926                                 ,         JOB AREA:          JOBFF  S/U\r
6927                                 ,         JOB BUFFER HEADER: IOUSE  U\r
6928 \r
6929 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 9\r
6930 IOCSS   MAC     24-APR-78 23:13         8-15-65\r
6931 \r
6932 \r
6933 \r
6934                                           INTERN BUFCLC\r
6935         000071' 261140  000013  BUFCLC:   PUSH PDP,BUFWRD;      SAVE BUFWRD ON STACK\r
6936         000072' 135040  000371'           LDB TAC,[POINT 12,DEVCHR(DEVDAT),35];TAC:=BUFFER SIZE\r
6937         000073' 550507  000000*           HRRZ BUFPNT,JOBFF(PROG);BUFPNT:=FIRST FREE LOCATION + 1\r
6938         000074' 271500  000001            ADDI BUFPNT,1\r
6939         000075' 550540  000012            HRRZ BUFWRD,BUFPNT\r
6940         000076' 505500  000007            HRLI BUFPNT,PROG\r
6941         000077' 504540  000001            HRL BUFWRD,TAC;       BUFWRD:=BUFFER SIZE,FIRST FREE LOC + 1\r
6942         000100' 271040  000002            ADDI TAC,2;           TAC:=BUFFER SIZE + 2\r
6943         000101' 550100  000014            HRRZ TAC1,UUO;        TAC1:=N=ADDRESS FIELD OF AC UUO\r
6944         000102' 270540  000001  BUFC1:    ADD BUFWRD,TAC;       BUFWRD:=C(BUFWRD) + C(TAC)\r
6945                                           ADRCHK BUFPNT;        CHECK BUFFER FOR MEMORY BOUND\r
6946         000103' 260140  000010* PUSHJ PDP,ADRCK\r
6947         000104' 550040  000012          HRRZ TAC,BUFPNT\r
6948         000105' 202560  000012            MOVEM BUFWRD,@BUFPNT; BUFFER HEADER+1:=C(BUFWRD)\r
6949         000106' 540500  000013            HRR BUFPNT,BUFWRD;    BUFPNT 18-35:=C(BUFWRD 18-35)\r
6950         000107' 367100  000102'           SOJG TAC1,BUFC1;      N:=N-1.  IS N>0?\r
6951         000110' 540547  000073*           HRR BUFWRD,JOBFF(PROG)\r
6952         000111' 271540  000001            ADDI BUFWRD,1\r
6953         000112' 260140  000103*           PUSHJ PDP,ADRCK       ;CHECK LAST ADR. OF HEADER\r
6954         000113' 551052  777776            HRRZI TAC,-2(BUFPNT)\r
6955         000114' 274500  000001            SUB BUFPNT,TAC\r
6956         000115' 202560  000012            MOVEM BUFWRD,@BUFPNT;LINK LAST BUFFER TO FIRST BUFFER\r
6957         000116' 270500  000001            ADD BUFPNT,TAC\r
6958         000117' 542507  000110*           HRRM BUFPNT,JOBFF(PROG);JOBFF:=C(JOBFF)+1+N(BUFFER SIZE+2)\r
6959         000120' 540500  000013            HRR BUFPNT,BUFWRD;    BUFPNT:=IOUSE,ADDRESS OF FIRST BUFFER\r
6960                                 ,                                        IN RING.\r
6961         000121' 505500  400000            HRLI BUFPNT,IOUSE\r
6962         000122' 262140  000013            POP PDP,BUFWRD;       RESTORE BUFWRD FROM STACK.\r
6963         000123' 263140  000000            POPJ PDP,;            RETURN\r
6964 \r
6965 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 10\r
6966 IOCSS   MAC     24-APR-78 23:13         8-15-65\r
6967 \r
6968 \r
6969 \r
6970                                 ,DEC 06 00 EX COM L PT PRE 01 BUFCLR\r
6971                                 ,H. R. MORSE        64-12-26\r
6972                                 ,CALLING SEQUENCE\r
6973                                 ,         PUSHJ PDP,BUFCLR\r
6974                                 ,         EXIT                  RETURNS HERE IF MEMORY NOT EXCEEDED\r
6975                                 , CLEAR THE WORD COUNT AND DATA AREA OF THE BUFFER WHOSE ADDRESS\r
6976                                 , IS IN TAC 18-35.\r
6977                                 ,MONITOR INTERFACE:\r
6978                                 ,         STORAGE:  13\r
6979                                 ,         ROUTINE CALLED:    ADRCK\r
6980                                 ,         SYMBOLS SET/USED:\r
6981                                 ,             ACCUMULATORS:  PDP  U             TAC   S/U\r
6982                                 ,                            PROG U             TAC1  S/U\r
6983                                           INTERN BUFCLR\r
6984         000124' 505040  000007  BUFCLR:   HRLI TAC,PROG\r
6985         000125' 000000  000001*           ADRCHK TAC;           PROCEED IF CURRENT BUFFER ADDRESS\r
6986                                 ,                                   < PROTECTION ADDRESS.\r
6987         000126' 554120  000001            HLRZ TAC1,@TAC;       TAC1 18-35=SIZE\r
6988         000127' 620100  400000            TRZ TAC1,400000\r
6989         000130' 270100  000001            ADD TAC1,TAC;         TAC1:=CURRENT BUFFER ADDRESS + SIZE\r
6990                                           ADRCHK TAC1;          PROCEED IF CURRENT BUFFER ADDRESS\r
6991         000131' 260140  000112* PUSHJ PDP,ADRCK\r
6992         000132' 550040  000002          HRRZ TAC,TAC1\r
6993                                 ,                                    + SIZE < PROTECTION ADDRESS.\r
6994         000133' 201060  000001            MOVEI TAC,@TAC;       TAC:=CURRENT BUFFER ADDRESS+1,\r
6995                                 ,                                    CURRENT BUFFER ADDRESS+1\r
6996         000134' 504040  000001            HRL TAC,TAC\r
6997         000135' 253040  000136'           AOBJN TAC,.+1\r
6998         000136' 402001  000000            CLEARM 0(TAC);        WORD COUNT:=0\r
6999         000137' 350000  000001            AOS TAC;              TAC:=CURRENT BUFFER ADDRESS+1,\r
7000                                 ,                                    CURRENT BUFFER ADDRESS+2\r
7001         000140' 251060  000002            BLT TAC,@TAC1;        CLEAR BUFFER\r
7002         000141' 263140  000000            POPJ PDP,;            RETURN\r
7003 \r
7004 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 11\r
7005 IOCSS   MAC     24-APR-78 23:13         8-15-65\r
7006 \r
7007 \r
7008                                           SUBTTL 5-17-65 PART 2\r
7009 \r
7010 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 12\r
7011 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7012 \r
7013 \r
7014 \r
7015                                 ,CALLING SEQUENCE\r
7016                                 ,         PUSHJ PDP,CKS12\r
7017                                 ,         EXIT                  ALWAYS RETURNS HERE\r
7018                                 ,CALCULATES FOLDED 12 BIT CHECKSUMS OF THE DATA WORDS IN THE\r
7019                                 ,BUFFER WHOSE ADDRESS IS IN AC TAC1.  TWO ALGORITHMS ARE USED.\r
7020                                 ,ON RETURN, THE LEFT HALF OF AC TAC CONTAINS A CHECKSUM OBTAINED\r
7021                                 ,BY ACCUMULATING, IN ONES COMPLEMENT, THE DATA WORDS AND FOLDING IT.\r
7022                                 ,THE LEFT HALF OF AC DAT CONTAINS A CHECKSUM OBTAINED BY ACCUMULATING\r
7023                                 ,IN TWOS COMPLEMENT, THE DATA WORDS AND FOLDING IT.  AC TAC1\r
7024                                 ,CONTAINS A 1.\r
7025                                 ,MONITOR INTERFACE\r
7026                                 ,         STORAGE:  20\r
7027                                 ,         ROUTINES CALLED:   FOLD\r
7028                                 ,         SYMBOLS SET/USED:\r
7029                                 ,             ACCUMULATORS:  DAT   S/U          SUB    S\r
7030                                 ,                            PDP   U            TAC    S/U\r
7031                                 ,                            PROG  U            TAC1   S/U\r
7032 \r
7033 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 13\r
7034 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7035 \r
7036 \r
7037 \r
7038                                           INTERN CKS12\r
7039         000142' 270100  000007  CKS12:    ADD TAC1,PROG;        TAC1:=-WORD COUNTER,ADDRESS OF FIRST DATA\r
7040         000143' 350000  000002            AOS TAC1\r
7041         000144' 550042  000000            HRRZ TAC,0(TAC1)\r
7042         000145' 213000  000001            MOVNS TAC\r
7043         000146' 350000  000002            AOS TAC1\r
7044         000147' 504100  000001            HRL TAC1,TAC\r
7045         000150' 402000  000001            CLEARM TAC;           INITIALIZE TWOS COMPLEMENT SUM\r
7046         000151' 270042  000000  CKS12A:   ADD TAC,0(TAC1);      TWOS COMPLEMENT ADD\r
7047         000152' 253100  000151'           AOBJN TAC1,CKS12A;    DONE?\r
7048         000153' 246040  777750  FOLD:     LSHC TAC,-30\r
7049         000154' 242100  777764            LSH TAC1,-14\r
7050         000155' 270040  000002            ADD TAC,TAC1\r
7051         000156' 246040  777764            LSHC TAC,-14\r
7052         000157' 242100  777750            LSH TAC1,-30\r
7053         000160' 270040  000002            ADD TAC,TAC1\r
7054         000161' 622040  770000            TRZE TAC,770000\r
7055         000162' 350000  000001            AOS TAC\r
7056         000163' 517000  000001            HRLZS TAC\r
7057         000164' 201100  000001            MOVEI TAC1,1          ;TAC1:=1\r
7058         000165' 263140  000000            POPJ PDP,\r
7059 \r
7060 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 14\r
7061 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7062 \r
7063 \r
7064 \r
7065                                 ,DEC 06 00 EX COM L PT PRE 01 CLRBYT\r
7066                                 ,H. R. MORSE        64-12-26\r
7067                                 ,CALLING SEQUENCE \r
7068                                 ,         PUSHJ PDP,CLRBYT\r
7069                                 ,         EXIT                  ALWAYS RETURN HERE\r
7070                                 ,CALLED WITH A BYTE POINTER IN AC TAC, IT CLEARS THE REST OF THE\r
7071                                 ,WORD POINTED TO BY THE BYTE POINTER.\r
7072                                 ,MONITOR INTERFACE\r
7073                                 ,         STORAGE:   7\r
7074                                 ,         SYMBOLS SET/USED:\r
7075                                 ,             ACCUMULATORS:   PDP    U\r
7076                                 ,                             TAC    U\r
7077                                 ,                             TAC1   S/U\r
7078                                           INTERN CLRBYT\r
7079         000166' 135100  000372' CLRBYT:   LDB TAC1,[POINT 6,TAC,5];     TAC1:=P\r
7080         000167' 137100  000373'           DPB TAC1,[POINT 12,TAC,11];   TAC 0-5:=0, TAC 6-12:=P\r
7081         000170' 402000  000002            SETZM TAC1\r
7082         000171' 137100  000001            DPB TAC1,TAC;         CLEAR BITS 36-P THROUGH 35\r
7083         000172' 263140  000000            POPJ PDP,;            RETURN\r
7084 \r
7085 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 15\r
7086 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7087 \r
7088 \r
7089 \r
7090                                 ;ROUTINE TO RELEASE ALL DEVICES ASSIGNED TO JOB\r
7091 \r
7092                                 INTERNAL IORELS\r
7093                                 EXTERNAL PUUOAC,RELEA3\r
7094 \r
7095 \r
7096         000173' 201040  000000* IORELS:   MOVEI TAC,RELEA3      ;RELEASE ALL IO DEVICES(DONT CLOSE)\r
7097 \r
7098                                 ;ROUTINE TO DO IO FOR ALL DEVICES ASSIGNED TOI JOB\r
7099                                 ;CALL     MOVEI TAC,ADR. OR IO SUB.\r
7100                                 ;         PUSHJ PDP,IOALL\r
7101 \r
7102                                 INTERNAL IOALL\r
7103 \r
7104         000174' 261140  000001  IOALL:    PUSH PDP,TAC          ;SAVE ADR. FO SUB.\r
7105         000175' 515240  777760            HRLZI DAT, -20\r
7106         000176' 200305  000000* IOALL1:   MOVE DEVDAT, USRJDA(DAT)\r
7107         000177' 200006  000002            MOVE IOS,DEVIOS(DEVDAT)\r
7108         000200' 201600  000000            MOVEI UUO,0\r
7109         000201' 137240  000000*           DPB DAT,PUUOAC\r
7110         000202' 332000  000006            SKIPE DEVDAT\r
7111         000203' 260163  000000            PUSHJ PDP,@(PDP)      ;CALL THE SUB.\r
7112         000204' 253240  000176'           AOBJN DAT, IOALL1\r
7113         000205' 262140  000001            POP PDP,TAC\r
7114         000206' 263140  000000            POPJ PDP,\r
7115 \r
7116                                 ;KILL ALL DEVICES(RELEASE WITHOUT WAITING FOR DEVICE INACTIVE)\r
7117 \r
7118                                 INTERNAL IOKILL\r
7119                                 EXTERNAL RELEA5\r
7120 \r
7121         000207' 201040  000000* IOKILL:   MOVEI TAC,RELEA5\r
7122         000210' 254000  000174'           JRST IOALL\r
7123 \r
7124 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 16\r
7125 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7126 \r
7127 \r
7128 \r
7129                                 ,DEC 06 00 EX COM L PT PRE 01 IOSET\r
7130                                 ,H. R. MORSE        64-12-26\r
7131                                 ,CALLING SEQUENCE\r
7132                                 ,         PUSHJ PDP,IOSET\r
7133                                 ,         EXIT      ALWAYS RETURNS HERE\r
7134                                 ,THIS PROGRAM IS CALLED FROM AN INTERRUPT SERVICE ROUTINE.\r
7135                                 ,IT PUTS THE ADDRESS OF THE DATA AREA OF THE JOB (C(JBTADR18-35))\r
7136                                 ,CONNECTED TO THE DEVICE SPECIFIED BY AC DEVDAT IN AC PROG AND\r
7137                                 ,PUTS THE ITEM POINTER (C(DEVCTR)) IN AC ITEM.\r
7138                                 ,MONITOR INTERFACE\r
7139                                 ,         STORAGE:   5\r
7140                                 ,         SYMBOLS SET/USED:\r
7141                                 ,             ACCUMULATORS:             DEVDAT U   PDP  U\r
7142                                 ,                                       ITEM   S   PROG S/U\r
7143                                 ,             DEVICE DATA BLOCK:        DEVCHR U\r
7144                                 ,                                       DEVCTR U\r
7145                                 ,             SYSTEM ADDRESSES:         JBTADR U\r
7146                                           INTERN IOSET\r
7147 \r
7148         000211' 135340  000050* IOSET:    LDB PROG,PJOBN\r
7149         000212' 200206  000011            MOVE ITEM,DEVCTR(DEVDAT); ITEM:=ITEM POINTER=C(DEVCTR)\r
7150         000213' 550347  000000*           HRRZ PROG,JBTADR(PROG);       PROG:=C(JBTADR 18-35)\r
7151         000214' 263140  000000            POPJ PDP,;                    RETURN\r
7152 \r
7153 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 17\r
7154 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7155 \r
7156 \r
7157 \r
7158                                 ,6-CSS-DEC-IOSETC-PL-PRE1\r
7159                                 ,H.R. MORSE   17-11-64\r
7160 \r
7161                                 ,CALLING SEQUENCE\r
7162                                 ,         PUSHJ PDP,IOSETC\r
7163                                 ,         EXIT                  ALWAYS RETURN HERE\r
7164 \r
7165                                 ,SETS JBFPTR18-35:=C(TAC1 18-35)\r
7166                                 ,         JBFCTR:=C(ITEM)*[WORD LENGTH/BYTE SIZE]\r
7167                                 ,WHERE    WORD LENGTH:=36 DECIMAL\r
7168                                 ,         BYTE SIZE:=C(JBFPTR6-11)\r
7169                                 ,         [X]:= INTEGER PART OF X\r
7170 \r
7171                                 ,MONITOR INTERFACE\r
7172                                 ,         STORAGE:   11\r
7173                                 ,         ROUTINES CALLED:      ITMCT1\r
7174                                 ,         SYMBOLS SET/USED:\r
7175                                 ,             ACCUMULATORS:     JBUF S/U        TAC S/U\r
7176                                 ,                               ITEM S/U        TAC1 S/U\r
7177                                 ,                               PDP U\r
7178 \r
7179                                           INTERN IOSETC\r
7180 \r
7181         000215' 271240  000001  IOSETC:   ADDI JBUF,1                   ;JBFPTR12-18:=0\r
7182         000216' 515040  007777            HRLZI TAC,7777        ;JBFPTR18-35:=C(TAC1 18-35)+1\r
7183         000217' 406060  000005            ANDM TAC,@JBUF\r
7184         000220' 542120  000005            HRRM TAC1,@JBUF\r
7185         000221' 350020  000005            AOS @JBUF\r
7186         000222' 135100  000374'           LDB TAC1,[POINT 6,@JBUF,11]   ;TAC1:=BYTE SIZE\r
7187         000223' 260140  000232'           PUSHJ PDP,ITMCT1      ;JBFCTR:=C(ITEM)*[36/BYTE SIZE]\r
7188         000224' 271000  000006            ADDI JBUF+1\r
7189         000225' 202220  000005            MOVEM ITEM,@JBUF\r
7190         000226' 263140  000000            POPJ PDP,             ;EXIT\r
7191 \r
7192 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 18\r
7193 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7194 \r
7195 \r
7196 \r
7197                                 ,DEC 06 00 EX COM L PT PRE 01 ITMSET, ITMCNT, ITMCT1\r
7198                                 ,H.R. MORSE   64-12-26\r
7199 \r
7200                                 ,CALLING SEQUENCE\r
7201                                 ,         PUSHJ PDP,ITMSET\r
7202                                 ,         EXIT                  ALWAYS RETURNS HERE\r
7203                                 ,SETS AC ITEM:=(BUFFER SIZE-1)*[WORD LENGTH/BYTE SIZE]\r
7204                                 ,WHERE BUFFER SIZE:=BITS 1-17 OF THE BUFFER HEADER WORD POINTED TO\r
7205                                 ,                   BY C(DEVADR)\r
7206                                 ,        WORD LENGTH:=36 DECIMAL\r
7207                                 ,        BYTE SIZE:=INTEGER PART OF X.\r
7208 \r
7209                                 ,CALLING SEQUENCE\r
7210                                 ,         PUSHJ PDP,ITMCNT\r
7211                                 ,         EXIT                  ALWAYS RETURNS HERE\r
7212                                 ,SETS AC ITEM=C(ITEM)*[WORD LENGTH/BYTE SIZE]\r
7213 \r
7214                                 ,CALLING SEQUENCE\r
7215                                 ,         PUSHJ PDP,ITMCT1\r
7216                                 ,         EXIT                  ALWAYS RETURNS HERE\r
7217                                 ,SETS AC ITEM:=C(ITEM)*[WORD LENGTH/C(TAC1)]\r
7218 \r
7219                                 ,MONITOR INTERFACE\r
7220                                 ,         STOAGE:   7\r
7221                                 ,         SYMBOLS SET/USED:\r
7222                                 ,             ACCUMULATORS:     DEVDAT U   TAC S/U\r
7223                                 ,                               ITEM S/U   TAC1 S/U\r
7224                                 ,                               PDP U\r
7225                                 ,         DEVICE DATA BLOCK:    DEVADR U\r
7226                                 ,                               DEVPTR U\r
7227 \r
7228 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 19\r
7229 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7230 \r
7231 \r
7232 \r
7233                                           INTERN ITMSET,ITMCNT,ITMCT1\r
7234         000227' 135200  000375' ITMSET:   LDB ITEM,[POINT 17,@DEVADR(DEVDAT),17];ITEM:=BUFFER SIZE-1\r
7235         000230' 275200  000001            SUBI ITEM,1\r
7236         000231' 135100  000376' ITMCNT:   LDB TAC1,[POINT 6,DEVPTR(DEVDAT),11];TAC1:=BYTE SIZE\r
7237         000232' 201040  000044  ITMCT1:   MOVEI TAC,44          ;ITEM:=C(ITEM)*[WORD LENGTH/C(TAC1)]\r
7238         000233' 230040  000002            IDIV TAC,TAC1\r
7239         000234' 220200  000001            IMUL ITEM,TAC\r
7240         000235' 263140  000000            POPJ PDP,\r
7241 \r
7242 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 20\r
7243 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7244 \r
7245 \r
7246 \r
7247                                 ;ROUTINE TO SET DEVICE STATUS WORD FROM UUO\r
7248 \r
7249                                 INTERNAL SETIOS\r
7250                                 EXTERNAL ILLMOD\r
7251 \r
7252         000236' 135040  000377' SETIOS:   LDB TAC,[POINT 4,UUO,35]      ;GET DEVICE DATA MODE\r
7253         000237' 201040  000001            MOVEI TAC,1           ;AND CHECK FOR LEGALITY\r
7254         000240' 242042  000000            LSH TAC,(TAC1)\r
7255         000241' 616046  000004            TDNN TAC,DEVMOD(DEVDAT)\r
7256         000242' 254000  000000*           JRST ILLMOD           ;ILLEGAL MODE\r
7257         000243' 620600  010000            TRZ UUO,IOACT         ;LET USER SET ALL BITS EXCEPT IOACT\r
7258         000244' 542606  000002            HRRM UUO,DEVIOS(DEVDAT)\r
7259         000245' 263140  000000            POPJ PDP,\r
7260 \r
7261 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 21\r
7262 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7263 \r
7264 \r
7265 \r
7266                                 ,DEC 06 00 EX COM L PT PRE 01 NEWBUF, BPNSET\r
7267                                 ,H. R. MORSE        64-12-26\r
7268                                 ,CALLING SEQUENCE\r
7269                                 ,         PUSHJ PDP,NEWBUF\r
7270                                 ,         EXIT                  ALWAYS RETURNS HERE\r
7271                                 ,CLEARS THE BUFFERE CURRENTLY POINTED TO BY THE INPUT BUFFER\r
7272                                 ,ADDRESS (DEVDR) OF THE CURRENT DEVICE. SETS UP THE BYTE\r
7273                                 ,POINTER (DEVPTR), AND THE ITEM COUNT (DEVCTR) AND RETURNS.\r
7274                                 ,CALLING SEQUENCE\r
7275                                 ,         PUSHJ PDP,BPNSET\r
7276                                 ,         EXIT                  ALWAYS RETURNS HERE\r
7277                                 ,SETS UP THE BYTE POINTER (DEVPTR) AND THE ITEM COUNT (DEVCTR)\r
7278                                 ,OF THE CURRENT DEVICE AND RETURNS.\r
7279                                 ,MONITOR INTERFACE\r
7280                                 ,         STORAGE:  10\r
7281                                 ,         ROUTINES CALLED:      BUFCLR, ITMSET\r
7282                                 ,         SYMBOLS SET/USED:     \r
7283                                 ,             ACCUMULATORS:     DEVDAT U        PDP U\r
7284                                 ,                               ITEM   U        TAC S/U\r
7285                                 ,             DEVICE DATA BLOCKS:       DEVADR U\r
7286                                 ,                               DEVCTR S\r
7287                                 ,                               DEVPTR S/U\r
7288 \r
7289 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 22\r
7290 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7291 \r
7292 \r
7293                                           INTERN BPNSET,NEWBUF\r
7294 \r
7295         000246' 550046  000007  NEWBUF:   HRRZ TAC,DEVADR(DEVDAT); TAC:=INPUT BUFFER HEADER ADDRESS\r
7296         000247' 260140  000124'           PUSHJ PDP,BUFCLR;     CLEAR INPUT BUFFER.\r
7297         000250' 540046  000007  BPNSET:   HRR TAC,DEVADR(DEVDAT)\r
7298         000251' 515040  007737            HRLZI TAC,7737\r
7299         000252' 404046  000010            AND TAC,DEVPTR(DEVDAT); DEVPTR 0-5:=0, DEVPTR 12:=0\r
7300         000253' 540046  000007            HRR TAC,DEVADR(DEVDAT); DEVPTR 10-35:=C(DEVADR 18-35) + 1\r
7301         000254' 350000  000001            AOS TAC\r
7302         000255' 202046  000010            MOVEM TAC,DEVPTR(DEVDAT)\r
7303         000256' 260140  000227'           PUSHJ PDP,ITMSET;     ITEM:=(BUFFER SIZE-1)[36/BYTE SIZE]\r
7304         000257' 202206  000011            MOVEM ITEM,DEVCTR(DEVDAT); DEVCTR:=ITEM COUNT\r
7305         000260' 263140  000000            POPJ PDP,;            RETURN\r
7306 \r
7307 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 23\r
7308 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7309 \r
7310 \r
7311 \r
7312                                 ,DEC 06 00 EX COM L PT PRE 02 SETBYT\r
7313                                 ,H. R. MORSE        64-12-26\r
7314                                 ,CALLING SEQUENCE\r
7315                                 ,         PUSHJ PDP,SETBYT\r
7316                                 ,         EXIT                  ALWAYS RETURN HERE\r
7317                                 ,SETS     TAC 0-5:=0\r
7318                                 ,         TAC 6-11:=S\r
7319                                 ,         TAC 12-13:=0\r
7320                                 ,         TAC 14-17:=PROG\r
7321                                 ,WHERE S=35 IF DATA MODE (IOS 32-25) IS BINARY (B)\r
7322                                 ,      S=8  IF DATA MODE IS IMAGE (I)\r
7323                                 ,      S=7  IF DATA MODE IS   ASCII PACKED (A)\r
7324                                 ,                             ASCII LINE (AL)\r
7325                                 ,                             ASCII SEQUENCED (AS)\r
7326                                 ,                             ASCII SEQUENCED (ASL)\r
7327                                 ,                   OR        ALTERNATE MODE BREAK (AM)\r
7328                                 ,MONITOR INTERFACE\r
7329                                 ,         STORAGE:   12\r
7330                                 ,         SYMBOLS SET/USED:\r
7331                                 ,             ACCUMULATORS:     PROG  U                 TAC   S\r
7332                                 ,                               PDP   U                 TAC1  S/U\r
7333                                 ,             DEVICE DATA BLOCK:          DEVIOS U\r
7334                                           INTERN SETBYT\r
7335         000261' 200106  000002  SETBYT:   MOVE TAC1,DEVIOS(DEVDAT);     FETCH DATA MODE, BITS 32-35 0\r
7336         000262' 405100  000017            ANDI TAC1, 17\r
7337         000263' 302100  000013            CAIE TAC1,IB          ;DATA MODE IMAGE BINARY?\r
7338         000264' 306100  000014            CAIN TAC1,B;          IS DATA MODE=BINARY?\r
7339         000265' 505040  004407            HRLI TAC,4400+PROG;   SET BYTE SIZE TO 36.\r
7340         000266' 306100  000010            CAIN TAC1,I;          IS DATA MODE=IMAGE?\r
7341         000267' 254000  000274'           JRST SETBY1\r
7342         000270' 602100  000014            TRNE TAC1,14;         IS DATA MODE=ASCII PACKED,ASCII LINE,\r
7343         000271' 254000  000273'           JRST .+2;             ASCII SEQUENCED,OR ASCII SEQUENCED LINE\r
7344         000272' 505040  000707            HRLI TAC,700+PROG;    SET BYTE SIZE TO 7.\r
7345         000273' 263140  000000            POPJ PDP,;            RETURN\r
7346 \r
7347         000274' 510046  000004  SETBY1:   HLLZ TAC,DEVMOD(DEVDAT)\r
7348         000275' 621040  770077            TLZ TAC,770077\r
7349         000276' 661040  000007            TLO TAC,PROG\r
7350         000277' 263140  000000            POPJ PDP,\r
7351 \r
7352 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 24\r
7353 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7354 \r
7355 \r
7356 \r
7357                                 ,DEC 06 00 EX COM L PT PRE 01 STORE ITEM\r
7358                                 ,H.R. MORSE         64-12-26\r
7359                                 ,CALLING SEQUENCE\r
7360                                 ,         PUSHJ PDP,STODAT\r
7361                                 ,         EXIT1                 CHECKSUM ERROR\r
7362                                 ,         EXIT2                 BLOCK FULL OR BLOCK COMPLETE\r
7363                                 ,         EXIT3                 DATA STORED CORRECTLY\r
7364                                 ,CALLED FROM AN INPUT SERVICE ROUTINE WITH A DATA ITEM IN AC DAT.\r
7365                                 ,STORES THE DATA ITEM IN THE BUFFER, CHECKING TO SEE IF IT WERE\r
7366                                 ,THE FIRST ITEM ON THE BUFFER AND SETTING UP THE POINTER AND\r
7367                                 ,WORD COUNT APPROPRIATELY CHECKING THE MODE TO SEE IF ANY SPECIAL\r
7368                                 ,PROCESSING NEED BE DONE.  FOR EXAMPLE, GENERATION OF SEQUENCE\r
7369                                 ,NUMBERS PRECEDING EACH LINE IN SEQUENCE MODE, OR THE TERMINATION\r
7370                                 ,OF A BUFFER ON CERTAIN CHARACTERS IN OTHER MODES, OR IF THE BUFFER\r
7371                                 ,RETURN OCCURS ON AN ERROR CONDITION. THE SECOND RETURN OCCURS\r
7372                                 ,ON A BLOCK FULL CONDITION OR BLOCK COMPLETE CONDITION, THE THIRD\r
7373                                 ,RETURN OCCURS ON THE DATA STORED CORRECTLY CONDITION.  THIS\r
7374                                 ,ROUTINE ALSO DOES SOME CHECKING ON INPUT OF BINARY RECORD,\r
7375                                 ,PAPER TAPE OR CARDS.\r
7376                                 ,CALLING SEQUENCE\r
7377                                 ,         PUSHJ PDP,STOSQD\r
7378                                 ,         XXXX                  ALWAYS SKIPS\r
7379                                 ,         EXIT                  ALWAYS RETURNS HERE\r
7380                                 ,STORES THE WORD COUNT:=C(DEVPTR 18-35) -C(DEVIAD 18-35) - 1\r
7381                                 ,IN THE BUFFER.\r
7382                                 ,MONITOR INTERFACE\r
7383                                 ,         STORAGE:  69\r
7384                                 ,         ROUTINES CALLED: ASCIA, CKS12, ITMSET, NEWBUF\r
7385                                 ,         SYMBOLS SET/USED:\r
7386                                 ,             ACCUMULATORS:             DAT    U  PDP  U\r
7387                                 ,                                       DEVDAT U  TAC S/U\r
7388                                 ,                                       IOS    S/U         TAC1 S/U\r
7389                                 ,                                       ITEM   S/U\r
7390                                 ,             DEVICE DATA BLOCK:        DEVCTR U  DEVPTR S/\r
7391                                 ,                                       DEVIAD U  DEVSEQ S/\r
7392                                 ,             IO STATUS WORD: A     U             I      U\r
7393                                 ,                                       AS   U             IOBKTL S\r
7394                                 ,                                       ASL  U             IODTER S\r
7395                                 ,                                       B    U             IOFST  S/\r
7396                                 ,             JOB BUFFER AREA:          WORD COUNT S\r
7397 \r
7398 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 25\r
7399 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7400 \r
7401 \r
7402                                           INTERN STODAT, STOSQD\r
7403 \r
7404         000300' 603000  000004  STODAT:   TLNE IOS,IOFST;       WILL THE NEXT ITEM BE THE FIRST ITEM\r
7405                                 ,                                  OF A BUFFER?\r
7406         000301' 260140  000246'           PUSHJ PDP,NEWBUF;     SET UP A NEW BUFFER. ITEM:=(BUFFER\r
7407                                 ,                                  SIZE - 1)*[36/BYTE SIZE]\r
7408         000302' 135100  000000*           LDB TAC1,PIOMOD;      TAC1:=DATA MODE\r
7409         000303' 306100  000014            CAIN TAC1,B;          MODE=BINARY?\r
7410         000304' 254000  000343'           JRST STOBIN\r
7411         000305' 621000  000004            TLZ IOS,IOFST\r
7412         000306' 136246  000010  STO1:     DPBI DAT,DEVPTR(DEVDAT); STORE DATA IN BUFFER.\r
7413         000307' 302100  000000            CAIE TAC1,A;          MODE=ASCII,  IMAGE, OR BINARY?\r
7414         000310' 306100  000010            CAIN TAC1,I\r
7415         000311' 254000  000323'           JRST STOAIB\r
7416         000312' 306100  000014            CAIN TAC1,B\r
7417         000313' 254000  000323'           JRST STOAIB\r
7418         000314' 307240  000214            CAIG DAT,214          ;LINE FEED,FORM FEED, OR VERTICAL TAB?\r
7419         000315' 305240  000212            CAIGE DAT,212\r
7420         000316' 254000  000320'           JRST .+2  ;NO\r
7421         000317' 254000  000335'           JRST STOSQD           ;YES\r
7422         000320' 365200  000000*           SOJGE ITEM,CPOPJ2;    ITEM:=C(ITEM)-1. IS C(ITEM)>OR=0?\r
7423         000321' 660000  040000  STOE1:    TRO IOS,IOBKTL                ;IOBKTL:=1\r
7424         000322' 254000  000056*           JRST CPOPJ\r
7425         000323' 367200  000320* STOAIB:   SOJG ITEM,CPOPJ2;     ITEM:=C(ITEM)-1. IS C(ITEM)>0?\r
7426         000324' 306100  000000            CAIN TAC1,A;          MODE=ASCII?\r
7427         000325' 254000  000335'           JRST STOSQD\r
7428         000326' 306100  000014            CAIN TAC1,B;          MODE=BINARY?\r
7429         000327' 254000  000353'           JRST STOBND\r
7430         000330' 260140  000227' STOI:     PUSHJ PDP,ITMSET;     ITEM:=(BUFFER SIZE-1)*[36/BYTE SIZE]\r
7431                                 ,                                      - C(DEVCTR)\r
7432         000331' 274206  000011            SUB ITEM,DEVCTR(DEVDAT)\r
7433         000332' 550106  000007            HRRZ TAC1,DEVIAD(DEVDAT)      ;STORE ITEM COUNT INSTEAD OF\r
7434         000333' 271200  000001            ADDI ITEM,1           ;IN FIRST WORD OF BUFFER\r
7435         000334' 344100  000341'           AOJA TAC1,STOSQE\r
7436 \r
7437 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 26\r
7438 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7439 \r
7440 \r
7441         000335' 200106  000007  STOSQD:   MOVE TAC1,DEVIAD(DEVDAT); TAC1:=ADDRESS OF WORD COUNT\r
7442         000336' 350000  000002            AOS TAC1\r
7443         000337' 550206  000010            HRRZ ITEM,DEVPTR(DEVDAT); ITEM:=C(DEVPTR 18-25) -\r
7444                                 ,                                     C(DEVIAD 18-35) -1\r
7445         000340' 274200  000002            SUB ITEM,TAC1\r
7446         000341' 542220  000002  STOSQE:   HRRM ITEM,@TAC1       ;WORD COUNT TO FIRST WORD IN BUFFER\r
7447         000342' 254000  000065*           JRST CPOPJ1;          EXIT2. BLOCK COMPLETE\r
7448         000343' 627000  000004  STOBIN:   TLZN IOS,IOFST;       WILL THE NEXT ITEM BE THE FIRST ITEM\r
7449         000344' 254000  000306'           JRST STO1;               OF A BUFFER?  IOSFST:=0\r
7450         000345' 550040  000005            HRRZ TAC,DAT\r
7451         000346' 313040  000004            CAMLE TAC,ITEM;       IS WORD COUNT <OR= (BUFFER SIZE-1)*\r
7452         000347' 254000  000321'           JRST STOE1;              [36/BYTE SIZE]?\r
7453         000350' 200200  000001            MOVE ITEM,TAC;        ITEM:=WORD COUNT\r
7454         000351' 202266  000010            MOVEM DAT,@DEVPTR(DEVDAT); STORE WORD COUNT IN BUFFER\r
7455         000352' 254000  000323*           JRST CPOPJ2;          EXIT3.  DATA STORED CORRECTLY.\r
7456         000353' 550106  000007  STOBND:   HRRZ TAC1,DEVIAD(DEVDAT)\r
7457         000354' 260140  000142'           PUSHJ PDP,CKS12;      COMPUTE CHECKSUM\r
7458         000355' 270106  000007            ADD TAC1, DEVIAD(DEVDAT)\r
7459         000356' 510120  000002            HLLZ TAC1,@TAC1;      DATA CHECKSUM=COMPUTED CHECKSUM?\r
7460         000357' 316040  000002            CAMN TAC,TAC1\r
7461         000360' 254000  000342*           JRST CPOPJ1;          EXIT2. BLOCK COMPLETE\r
7462         000361' 660000  100000            TRO IOS,IODTER;       IODTER:=1\r
7463         000362' 254000  000322*           JRST CPOPJ;           EXIT1. CHECKSUM ERROR\r
7464 \r
7465 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 27\r
7466 IOCSS   MAC     24-APR-78 23:13         5-17-65 PART 2\r
7467 \r
7468 \r
7469 \r
7470                                 ,DEC 06 00 EX COM L PT PRE 01 UINTQ\r
7471                                 ,H.R. MORSE  64-12-26\r
7472                                 ,CALLING SEQUENCE\r
7473                                 ,         PUSHJ PDP, UINT1\r
7474                                 ,         EXIT                  ALWAYS RETURNS HERE\r
7475                                 ,TAC:=CONTENTYS OF WORD FOLLOWING UUO CALL\r
7476                                 ,FROM USERS AREA.\r
7477                                 ,MONITOR INTERFACE\r
7478                                 ,         STORAGE: 4\r
7479                                 ,         SYMBOLS SET/USED:\r
7480                                 ,            ACCUMULATORS:   PDP U      TAC S/U\r
7481                                 ,                            PROG U     \r
7482                                               INTERN UINTQ\r
7483         000363' 200043  777777  UINTQ:        MOVE TAC, -1(PDP)                 ;TAC:=ADDRESS FOLLOWING UUO C\r
7484         000364' 505040  000007                HRLI TAC, PROG                    ;RELOCATE ADDRESS\r
7485         000365' 200060  000001                MOVE TAC, @TAC                    ;TAC:=CONTENTS OF WORD FOLLOW\r
7486                                                                                 ;UUO CALL FROM USERS AREA\r
7487         000366' 263140  000000                POPJ PDP,                         ;RETURN\r
7488 \r
7489                                               END,\r
7490 \r
7491 NO ERRORS DETECTED\r
7492 \r
7493 PROGRAM BREAK IS 000400\r
7494 \r
7495 9K CORE USED\r
7496 \r
7497 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 28\r
7498 IOCSS   MAC     24-APR-78 23:13         SYMBOL TABLE\r
7499 \r
7500 A               000000  INT\r
7501 AC1             000015  INT\r
7502 AC2             000016  INT\r
7503 AC3             000017  INT\r
7504 ADRCK           000131' EXT\r
7505 ADVBFE          000000' INT\r
7506 ADVBFF          000010' INT\r
7507 AL              000001  INT\r
7508 APR             000000  SPD\r
7509 ASSAS1          000035' \r
7510 ASSAS2          000036' \r
7511 ASSASG          000023' INT\r
7512 ASSCON          400000  INT\r
7513 ASSIN           000020' INT\r
7514 ASSPRG          200000  INT\r
7515 B               000014  INT\r
7516 BPNSET          000250' INT\r
7517 BUFC1           000102' \r
7518 BUFCLC          000071' INT\r
7519 BUFCLR          000124' INT\r
7520 BUFPNT          000012  INT\r
7521 BUFWRD          000013  INT\r
7522 CKS12           000142' INT\r
7523 CKS12A          000151' \r
7524 CLDS            000023' EXT\r
7525 CLEN            000037' EXT\r
7526 CLOSB           002000  INT\r
7527 CLOSE1          000000  EXT\r
7528 CLRBYT          000166' INT\r
7529 CLSIN           000002  INT\r
7530 CLSOUT          000001  INT\r
7531 CPOPJ           000362' EXT\r
7532 CPOPJ1          000360' EXT\r
7533 CPOPJ2          000352' EXT\r
7534 D               000017  INT\r
7535 DAT             000005  INT\r
7536 DCL             000001  INT\r
7537 DCW             020000  INT\r
7538 DDI             000007  INT\r
7539 DDO             000006  INT\r
7540 DDTMEM          000037  INT\r
7541 DDTSYM          000036  INT\r
7542 DEN             000004  INT\r
7543 DEV0            000053' \r
7544 DEVADR          000007  INT\r
7545 DEVBUF          000006  INT\r
7546 DEVCHR          000001  INT\r
7547 DEVCTR          000011  INT\r
7548 DEVDAT          000006  INT\r
7549 DEVIAD          000007  INT\r
7550 DEVIOS          000002  INT\r
7551 DEVLG           000044' INT\r
7552 \r
7553 \r
7554 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 28-1\r
7555 IOCSS   MAC     24-APR-78 23:13         SYMBOL TABLE\r
7556 \r
7557 DEVLOG          000005  INT\r
7558 DEVLP0          000046' \r
7559 DEVLP1          000064' \r
7560 DEVLST          000063' EXT\r
7561 DEVMOD          000004  INT\r
7562 DEVNAM          000000  INT\r
7563 DEVOAD          000010  INT\r
7564 DEVOPR          000060' EXT\r
7565 DEVPHY          000056' INT\r
7566 DEVPTR          000010  INT\r
7567 DEVSER          000003  INT\r
7568 DEVSRC          000041' INT\r
7569 DGF             000012  INT\r
7570 DIN             000003  INT\r
7571 DLK             000005  INT\r
7572 DOU             000002  INT\r
7573 DR              000016  INT\r
7574 DRL             000000  INT\r
7575 DSI             000011  INT\r
7576 DSO             000010  INT\r
7577 DTW             040000  INT\r
7578 DVAVAL          000040  INT\r
7579 DVCDR           100000  INT\r
7580 DVDIR           000004  INT\r
7581 DVDIRI          400000  INT\r
7582 DVIN            000002  INT\r
7583 DVLPT           040000  INT\r
7584 DVMTA           000020  INT\r
7585 DVOUT           000001  INT\r
7586 DVTTY           000010  INT\r
7587 ENTRB           020000  INT\r
7588 ERROR           000000  EXT\r
7589 FOLD            000153' \r
7590 I               000010  INT\r
7591 IB              000013  INT\r
7592 IBUFB           200000  INT\r
7593 ILLMOD          000242' EXT\r
7594 INITB           400000  INT\r
7595 INPB            010000  INT\r
7596 IO              000020  INT\r
7597 IOACT           010000  INT\r
7598 IOALL           000174' INT\r
7599 IOALL1          000176' \r
7600 IOBEG           000002  INT\r
7601 IOBKTL          040000  INT\r
7602 IOCON           000040  INT\r
7603 IODEND          020000  INT\r
7604 IODERR          200000  INT\r
7605 IODISC          400000  INT\r
7606 IODONE          400000  INT\r
7607 IODTER          100000  INT\r
7608 IOEND           000040  INT\r
7609 IOFST           000004  INT\r
7610 \r
7611 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 28-2\r
7612 IOCSS   MAC     24-APR-78 23:13         SYMBOL TABLE\r
7613 \r
7614 IOIMPM          400000  INT\r
7615 IOKILL          000207' INT\r
7616 IONRCK          000100  INT\r
7617 IORDEL          000100  INT\r
7618 IORELS          000173' INT\r
7619 IORET           000020  INT\r
7620 IOS             000000  INT\r
7621 IOSET           000211' INT\r
7622 IOSETC          000215' INT\r
7623 IOSTRT          000010  INT\r
7624 IOUSE           400000  INT\r
7625 IOW             000001  INT\r
7626 IOWC            000020  INT\r
7627 IOWS            400000  INT\r
7628 ITEM            000004  INT\r
7629 ITMCNT          000231' INT\r
7630 ITMCT1          000232' INT\r
7631 ITMSET          000227' INT\r
7632 JBFADR          000000  INT\r
7633 JBFCTR          000002  INT\r
7634 JBFPTR          000001  INT\r
7635 JBTADR          000213' EXT\r
7636 JBUF            000005  INT\r
7637 JDAT            000011  INT\r
7638 JERR            002000  INT\r
7639 JIOW            100000  INT\r
7640 JNA             004000  INT\r
7641 JOB             000000  EXT\r
7642 JOBFF           000117' EXT\r
7643 LOOKB           040000  INT\r
7644 MTW             010000  INT\r
7645 NEWBUF          000246' INT\r
7646 OBUFB           100000  INT\r
7647 OUTPB           004000  INT\r
7648 PDP             000003  INT\r
7649 PI              000004  SPD\r
7650 PICHN           000100  INT\r
7651 PIOMOD          000302' EXT\r
7652 PJOBN           000211' EXT\r
7653 PROG            000007  INT\r
7654 PUUOAC          000201' EXT\r
7655 RELEA1          000000  EXT\r
7656 RELEA3          000173' EXT\r
7657 RELEA5          000207' EXT\r
7658 RUN             200000  INT\r
7659 RUNABL          204000  INT\r
7660 SCNOFF          000030' EXT\r
7661 SCNON           000036' EXT\r
7662 SETBY1          000274' \r
7663 SETBYT          000261' INT\r
7664 SETIOS          000236' INT\r
7665 STO1            000306' \r
7666 STOAIB          000323' \r
7667 \r
7668 \fIOCSS - IO COMMON SYSTEM SUBROUTINES   MACRO 10 05:51 24-APR-78 PAGE 28-3\r
7669 IOCSS   MAC     24-APR-78 23:13         SYMBOL TABLE\r
7670 \r
7671 STOBIN          000343' \r
7672 STOBND          000353' \r
7673 STODAT          000300' INT\r
7674 STOE1           000321' \r
7675 STOI            000330' \r
7676 STOSQD          000335' INT\r
7677 STOSQE          000341' \r
7678 SYSTAP          000062' EXT\r
7679 TAC             000001  INT\r
7680 TAC1            000002  INT\r
7681 TEM             000010  INT\r
7682 TTYATC          020000  INT\r
7683 TTYUSE          010000  INT\r
7684 UINTQ           000363' INT\r
7685 USRJDA          000176' EXT\r
7686 USRMOD          010000  INT\r
7687 UUO             000014  INT\r
7688 WAIT1           000000  EXT\r
7689 \f   IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII               111      \r
7690    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII               111      \r
7691    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII               111      \r
7692       III            OOO         OOO            III            NNN         NNN            III               111111      \r
7693       III            OOO         OOO            III            NNN         NNN            III               111111      \r
7694       III            OOO         OOO            III            NNN         NNN            III               111111      \r
7695       III            OOO         OOO            III            NNNNNN      NNN            III                  111      \r
7696       III            OOO         OOO            III            NNNNNN      NNN            III                  111      \r
7697       III            OOO         OOO            III            NNNNNN      NNN            III                  111      \r
7698       III            OOO         OOO            III            NNN   NNN   NNN            III                  111      \r
7699       III            OOO         OOO            III            NNN   NNN   NNN            III                  111      \r
7700       III            OOO         OOO            III            NNN   NNN   NNN            III                  111      \r
7701       III            OOO         OOO            III            NNN      NNNNNN            III                  111      \r
7702       III            OOO         OOO            III            NNN      NNNNNN            III                  111      \r
7703       III            OOO         OOO            III            NNN      NNNNNN            III                  111      \r
7704       III            OOO         OOO            III            NNN         NNN            III                  111      \r
7705       III            OOO         OOO            III            NNN         NNN            III                  111      \r
7706       III            OOO         OOO            III            NNN         NNN            III                  111      \r
7707    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            111111111   \r
7708    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            111111111   \r
7709    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            111111111   \r
7710 \r
7711 \r
7712 \r
7713 \r
7714 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
7715 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
7716 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
7717 LLL                  SSS                        TTT                                                                     \r
7718 LLL                  SSS                        TTT                                                                     \r
7719 LLL                  SSS                        TTT                                                                     \r
7720 LLL                  SSS                        TTT                                                                     \r
7721 LLL                  SSS                        TTT                                                                     \r
7722 LLL                  SSS                        TTT                                                                     \r
7723 LLL                     SSSSSSSSS               TTT                                                                     \r
7724 LLL                     SSSSSSSSS               TTT                                                                     \r
7725 LLL                     SSSSSSSSS               TTT                                                                     \r
7726 LLL                              SSS            TTT                                                                     \r
7727 LLL                              SSS            TTT                                                                     \r
7728 LLL                              SSS            TTT                                                                     \r
7729 LLL                              SSS            TTT                                                                     \r
7730 LLL                              SSS            TTT                                                                     \r
7731 LLL                              SSS            TTT                                                                     \r
7732 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
7733 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
7734 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
7735 \r
7736 \r
7737 \r
7738 \r
7739 Request created: 24-April-1978  05:53:58\r
7740 File: DSKB0 :IOINI1.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:34\r
7741 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1816 \r
7742 File will be deleted after printing\r
7743 \f\r
7744 IOINI1 - IO INITIALIZATION PART 1       MACRO 10 05:51 24-APR-78 PAGE 1\r
7745 S       MAC     24-APR-78 21:40         MINIMAL CONFIGURATION\r
7746 \r
7747                                         XLIST\r
7748                                        LIST\r
7749                                 ;SOME MACROS FOR DEFINING CONFIGURATION\r
7750 \r
7751                                 DEFINE NAME (A)\r
7752                                 <DEFINE NAME1\r
7753                                 <CONFIG:  ASCIZ /A/\r
7754                                 INTERNAL CONFIG\r
7755                                 >\r
7756                                 XP A,0\r
7757                                 SUBTTL A CONFIGURATION\r
7758                                 >\r
7759 \r
7760                                 DEFINE DATE (A)\r
7761                                 <DEFINE DATE1\r
7762                                 <SYSDAT:  ASCIZ /A/\r
7763                                 INTERNAL SYSDAT\r
7764                                 >>\r
7765 \r
7766                                 DEFINE VERSION (A,B)\r
7767                                 <DEFINE VERS1\r
7768                                 <SYSNUM:  XWD ^D'A,^D'B\r
7769                                 XP SYSMOD,^D'A\r
7770                                 XP SYSVER,^D'B\r
7771                                 INTERNAL SYSNUM\r
7772                                 >>\r
7773 \r
7774                                 DEFINE CUSPTAPE (A)\r
7775                                 <DEFINE CUSP1\r
7776                                 <SYSTAP:  SIXBIT /A/\r
7777                                 INTERNAL SYSTAP\r
7778                                 >>\r
7779 \r
7780                                 DEFINE ACPDL (J,CHJN,CHJPDN)\r
7781                                 <         CH'J'N=CHJN\r
7782                                  CH'J'PDN=CHJPDN\r
7783                                 >\r
7784 \r
7785 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 2\r
7786 IOINI   MAC     24-APR-78 01:14         MINIMAL CONFIGURATION\r
7787 \r
7788 \r
7789                                 NAME <MINIMAL>^DEFINE NAME1\r
7790                                 <CONFIG:  ASCIZ /MINIMAL/\r
7791                                 INTERNAL CONFIG\r
7792                                 >\r
7793 \r
7794 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 2\r
7795 IOMIN   MAC     24-APR-78 02:16         MINIMAL CONFIGURATION\r
7796 \r
7797 \r
7798                                         DATE <8-16-65>^DEFINE DATE1\r
7799                                 <SYSDAT:  ASCIZ /8-16-65/\r
7800                                 INTERNAL SYSDAT\r
7801                                 >^\r
7802                                         VERSION 1,4^DEFINE VERS1\r
7803                                 <SYSNUM:  XWD ^D1,^D4\r
7804                                 XP SYSMOD,^D1\r
7805                                 XP SYSVER,^D4\r
7806                                 INTERNAL SYSNUM\r
7807                                 >^\r
7808                                         CUSPTAPE DTA0^DEFINE CUSP1\r
7809                                 <SYSTAP:  SIXBIT /DTA0/\r
7810                                 INTERNAL SYSTAP\r
7811                                 >^\r
7812 \r
7813                                 ;DEFINE THE IO PART OF THE SYSTEM\r
7814                                 ;THAT IS:\r
7815                                 ;         DEFINE INTERRUPT SERVICE ROTUINE TO BE USED\r
7816                                 ;       ASSIGN DEVICES TO PI CHANNELS\r
7817 \r
7818                                 DEFINE SYSTEM\r
7819                                  <\r
7820                                  ASSOC APR,6,<>\r
7821                                  ASSOC CTY,3,<>\r
7822                                  ASSOC SCN,3,<TTY0,TTY1>\r
7823                                  ASSOC DTC,4,<DTA0>\r
7824                                 >\r
7825 \r
7826                         000001  DTSIZ=1   ;MULTIPLE DECTAPE DIRECTORIES\r
7827 \r
7828                         000001  SCNLIN=1\r
7829 \r
7830                                 ;DEFINE HIGHEST AC TO SAVE AND LENGTH OF PD LIST FOR EACH PI CHANNEL\r
7831 \r
7832                         000000  ACPDL (1,0,0)^    CH1N=0\r
7833                         000000  ACPDL (2,0,0)^    CH2N=0\r
7834                         000011  ACPDL (3,11,20)^          CH3N=11\r
7835                         000011  ACPDL (4,11,20)^          CH4N=11\r
7836                         000000  ACPDL (5,0,0)^    CH5N=0\r
7837                         000017  ACPDL (6,17,20^   CH6N=17\r
7838                         000000  ACPDL (7,0,0)^    CH7N=0\r
7839                                           TITLE IOINI1 - IO INITIALIZATION PART 1\r
7840         000000' 466231  644632            NAME1^CONFIG:  ASCIZ /MINIMAL/\r
7841         000001' 406300  000000\r
7842         000002' 341326  133132            DATE1^SYSDAT:  ASCIZ /8-16-65/\r
7843         000003' 331520  000000\r
7844         000004' 000001  000004            VERS1^SYSNUM:  XWD ^D1,^D4\r
7845         000005' 446441  200000            CUSP1^SYSTAP:  SIXBIT /DTA0/\r
7846 \r
7847                                 ;CONFIGURATION INDEPENDANT PART OF IOINIT FOLLOWS:\r
7848 \r
7849                                 EXTERNAL ERROR\r
7850 \r
7851 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 1\r
7852 IOINI1  MAC     24-APR-78 04:05         MINIMAL CONFIGURATION\r
7853 \r
7854 \r
7855                                 ;SETUP CHANNEL SAVE AND RESTORE ROUTINES\r
7856 \r
7857                         000000  CHANU1=0\r
7858                         000000  CHANU2=0\r
7859                         000000  CHANU3=0\r
7860                         000000  CHANU4=0\r
7861                         000000  CHANU5=0\r
7862                         000000  CHANU6=0\r
7863                         000000  CHANU7=0\r
7864                                 DEFINE ASSOC(A,NO,D)\r
7865                                 <IFE CHANU'NO,<\r
7866                                 CHANU'NO=1\r
7867                                 INTERNAL CH'NO'SAV,CH'NO',CH'NO'XIT,CH'NO'SAC\r
7868                                 \r
7869                                 CH'NO'SAV: 0\r
7870                                   MOVEM CH'NO'N, CH'NO'SAC+CH'NO'N\r
7871                                   MOVEI CH'NO'N, CH'NO'SAC\r
7872                                   BLT CH'NO'N,CH'NO'SAC+CH'NO'N-1       ;DO ONLY ONCE FOR EACH CHANNEL\r
7873                                   MOVE PDP, CH'NO'CJ\r
7874                                   JRST @CH'NO'SAV\r
7875                                 \r
7876                                 CH'NO'SAC: REPEAT CH'NO'N+1,<EXP 0>     ;SPACE TO SAVE SOME AC'S\r
7877                                           EXP CH'NO'XIT         ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
7878                                           REPEAT CH'NO'PDN-1,<EXP 0>    ;REST OF PD LIST\r
7879                                 \r
7880                                 CH'NO'XIT: MOVSI CH'NO'N, CH'NO'SAC\r
7881                                  BLT CH'NO'N, CH'NO'N\r
7882                                  JEN @CH'NO\r
7883                                 \r
7884                                 CH'NO'CJ: XWD -CH'NO'PDN+1,CH'NO'SAC+CH'NO'N+1  ;INIT. SETTING OF P\r
7885                                 \r
7886                                 CH'NO':   0             ;PC STORED HERE BY JSR\r
7887                                  JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
7888                                  AOS CH'NO'ERR          ;SPURIOUS INTERRUPT, ADD TO COUNT\r
7889                                  JEN @CH'NO             ;AND DISMISS\r
7890                                 >\r
7891                                 >\r
7892                                 ;GENERATE THE SAVE AND RESTORE ROUTINES\r
7893 \r
7894                                           SYSTEM^\r
7895         000006' 000000  000000  CH6SAV: 0\r
7896         000007' 202740  000033'   MOVEM CH6N, CH6SAC+CH6N\r
7897         000010' 201740  000014'   MOVEI CH6N, CH6SAC\r
7898         000011' 251740  000032'   BLT CH6N,CH6SAC+CH6N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
7899         000012' 200140  000057'   MOVE PDP, CH6CJ\r
7900         000013' 254020  000006'   JRST @CH6SAV\r
7901         000014' 000000  000000  EXP 0\r
7902         000015' 000000  000000  EXP 0\r
7903         000016' 000000  000000  EXP 0\r
7904         000017' 000000  000000  EXP 0\r
7905         000020' 000000  000000  EXP 0\r
7906         000021' 000000  000000  EXP 0\r
7907 \r
7908 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 1-1\r
7909 IOINI1  MAC     24-APR-78 04:05         MINIMAL CONFIGURATION\r
7910 \r
7911         000022' 000000  000000  EXP 0\r
7912         000023' 000000  000000  EXP 0\r
7913         000024' 000000  000000  EXP 0\r
7914         000025' 000000  000000  EXP 0\r
7915         000026' 000000  000000  EXP 0\r
7916         000027' 000000  000000  EXP 0\r
7917         000030' 000000  000000  EXP 0\r
7918         000031' 000000  000000  EXP 0\r
7919         000032' 000000  000000  EXP 0\r
7920         000033' 000000  000000  EXP 0   ;SPACE TO SAVE SOM AC'S\r
7921         000034' 000000  000054'           EXP CH6XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
7922         000035' 000000  000000  EXP 0\r
7923         000036' 000000  000000  EXP 0\r
7924         000037' 000000  000000  EXP 0\r
7925         000040' 000000  000000  EXP 0\r
7926         000041' 000000  000000  EXP 0\r
7927         000042' 000000  000000  EXP 0\r
7928         000043' 000000  000000  EXP 0\r
7929         000044' 000000  000000  EXP 0\r
7930         000045' 000000  000000  EXP 0\r
7931         000046' 000000  000000  EXP 0\r
7932         000047' 000000  000000  EXP 0\r
7933         000050' 000000  000000  EXP 0\r
7934         000051' 000000  000000  EXP 0\r
7935         000052' 000000  000000  EXP 0\r
7936         000053' 000000  000000  EXP 0   ;REST OF PD LIST\r
7937         000054' 205740  000014' CH6XIT: MOVSI CH6N, CH6SAC\r
7938         000055' 251740  000017   BLT CH6N, CH6N\r
7939         000056' 254520  000060'  JEN @CH6\r
7940         000057' 777761  000034' CH6CJ: XWD -CH6PDN+1,CH6SAC+CH6N+1      ;INIT. SETTING OF P\r
7941         000060' 000000  000000  CH6:      0             ;PC STORED HERE BY JSR\r
7942         000061' 254000  000062'  JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
7943         000062' 350000  000317'  AOS CH6ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
7944         000063' 254520  000060'  JEN @CH6               ;AND DISMISS\r
7945         000064' 000000  000000  CH3SAV: 0\r
7946         000065' 202440  000103'   MOVEM CH3N, CH3SAC+CH3N\r
7947         000066' 201440  000072'   MOVEI CH3N, CH3SAC\r
7948         000067' 251440  000102'   BLT CH3N,CH3SAC+CH3N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
7949         000070' 200140  000127'   MOVE PDP, CH3CJ\r
7950         000071' 254020  000064'   JRST @CH3SAV\r
7951         000072' 000000  000000  EXP 0\r
7952         000073' 000000  000000  EXP 0\r
7953         000074' 000000  000000  EXP 0\r
7954         000075' 000000  000000  EXP 0\r
7955         000076' 000000  000000  EXP 0\r
7956         000077' 000000  000000  EXP 0\r
7957         000100' 000000  000000  EXP 0\r
7958         000101' 000000  000000  EXP 0\r
7959         000102' 000000  000000  EXP 0\r
7960         000103' 000000  000000  EXP 0   ;SPACE TO SAVE SOM AC'S\r
7961         000104' 000000  000124'           EXP CH3XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
7962         000105' 000000  000000  EXP 0\r
7963         000106' 000000  000000  EXP 0\r
7964 \r
7965 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 1-2\r
7966 IOINI1  MAC     24-APR-78 04:05         MINIMAL CONFIGURATION\r
7967 \r
7968         000107' 000000  000000  EXP 0\r
7969         000110' 000000  000000  EXP 0\r
7970         000111' 000000  000000  EXP 0\r
7971         000112' 000000  000000  EXP 0\r
7972         000113' 000000  000000  EXP 0\r
7973         000114' 000000  000000  EXP 0\r
7974         000115' 000000  000000  EXP 0\r
7975         000116' 000000  000000  EXP 0\r
7976         000117' 000000  000000  EXP 0\r
7977         000120' 000000  000000  EXP 0\r
7978         000121' 000000  000000  EXP 0\r
7979         000122' 000000  000000  EXP 0\r
7980         000123' 000000  000000  EXP 0   ;REST OF PD LIST\r
7981         000124' 205440  000072' CH3XIT: MOVSI CH3N, CH3SAC\r
7982         000125' 251440  000011   BLT CH3N, CH3N\r
7983         000126' 254520  000130'  JEN @CH3\r
7984         000127' 777761  000104' CH3CJ: XWD -CH3PDN+1,CH3SAC+CH3N+1      ;INIT. SETTING OF P\r
7985         000130' 000000  000000  CH3:      0             ;PC STORED HERE BY JSR\r
7986         000131' 254000  000132'  JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
7987         000132' 350000  000314'  AOS CH3ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
7988         000133' 254520  000130'  JEN @CH3               ;AND DISMISS\r
7989         000134' 000000  000000  CH4SAV: 0\r
7990         000135' 202440  000153'   MOVEM CH4N, CH4SAC+CH4N\r
7991         000136' 201440  000142'   MOVEI CH4N, CH4SAC\r
7992         000137' 251440  000152'   BLT CH4N,CH4SAC+CH4N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
7993         000140' 200140  000177'   MOVE PDP, CH4CJ\r
7994         000141' 254020  000134'   JRST @CH4SAV\r
7995         000142' 000000  000000  EXP 0\r
7996         000143' 000000  000000  EXP 0\r
7997         000144' 000000  000000  EXP 0\r
7998         000145' 000000  000000  EXP 0\r
7999         000146' 000000  000000  EXP 0\r
8000         000147' 000000  000000  EXP 0\r
8001         000150' 000000  000000  EXP 0\r
8002         000151' 000000  000000  EXP 0\r
8003         000152' 000000  000000  EXP 0\r
8004         000153' 000000  000000  EXP 0   ;SPACE TO SAVE SOM AC'S\r
8005         000154' 000000  000174'           EXP CH4XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
8006         000155' 000000  000000  EXP 0\r
8007         000156' 000000  000000  EXP 0\r
8008         000157' 000000  000000  EXP 0\r
8009         000160' 000000  000000  EXP 0\r
8010         000161' 000000  000000  EXP 0\r
8011         000162' 000000  000000  EXP 0\r
8012         000163' 000000  000000  EXP 0\r
8013         000164' 000000  000000  EXP 0\r
8014         000165' 000000  000000  EXP 0\r
8015         000166' 000000  000000  EXP 0\r
8016         000167' 000000  000000  EXP 0\r
8017         000170' 000000  000000  EXP 0\r
8018         000171' 000000  000000  EXP 0\r
8019         000172' 000000  000000  EXP 0\r
8020         000173' 000000  000000  EXP 0   ;REST OF PD LIST\r
8021 \r
8022 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 1-3\r
8023 IOINI1  MAC     24-APR-78 04:05         MINIMAL CONFIGURATION\r
8024 \r
8025         000174' 205440  000142' CH4XIT: MOVSI CH4N, CH4SAC\r
8026         000175' 251440  000011   BLT CH4N, CH4N\r
8027         000176' 254520  000200'  JEN @CH4\r
8028         000177' 777761  000154' CH4CJ: XWD -CH4PDN+1,CH4SAC+CH4N+1      ;INIT. SETTING OF P\r
8029         000200' 000000  000000  CH4:      0             ;PC STORED HERE BY JSR\r
8030         000201' 254000  000202'  JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
8031         000202' 350000  000315'  AOS CH4ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
8032         000203' 254520  000200'  JEN @CH4               ;AND DISMISS\r
8033 \r
8034                                 ;SET UP NULL CHANNEL ROUTINES FOR UNUSED CHANNELS\r
8035 \r
8036                                 DEFINE NULCHN(J)\r
8037                                 <\r
8038                                 INTERNAL CH'J,CH'J'XIT\r
8039                                 CH'J:     0\r
8040                                 CH'J'XIT: AOS CH'J'ERR\r
8041                                  JEN @CH'J\r
8042                                 >\r
8043 \r
8044                                           IFE CHANU1,<NULCHN(1)>^\r
8045         000204' 000000  000000  CH1:      0\r
8046         000205' 350000  000312' CH1XIT: AOS CH1ERR\r
8047         000206' 254520  000204'  JEN @CH1\r
8048                                           IFE CHANU2,<NULCHN(2)>^\r
8049         000207' 000000  000000  CH2:      0\r
8050         000210' 350000  000313' CH2XIT: AOS CH2ERR\r
8051         000211' 254520  000207'  JEN @CH2\r
8052                                           IFE CHANU3,<NULCHN(3)>\r
8053                                           IFE CHANU4,<NULCHN(4)>\r
8054                                           IFE CHANU5,<NULCHN(5)>^\r
8055         000212' 000000  000000  CH5:      0\r
8056         000213' 350000  000316' CH5XIT: AOS CH5ERR\r
8057         000214' 254520  000212'  JEN @CH5\r
8058                                           IFE CHANU6,<NULCHN(6)>\r
8059                                           IFE CHANU7,<NULCHN(7)>^\r
8060         000215' 000000  000000  CH7:      0\r
8061         000216' 350000  000320' CH7XIT: AOS CH7ERR\r
8062         000217' 254520  000215'  JEN @CH7\r
8063 \r
8064 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 2\r
8065 IOINI1  MAC     24-APR-78 04:05         MINIMAL CONFIGURATION\r
8066 \r
8067 \r
8068 \r
8069                                 ;ASSIGN DEVICE TO CHANNELS AND SETUP CORESPONDENCE TABLE\r
8070                                 ;OF CHANNELS TO SERVICE ROUTINES\r
8071 \r
8072                                 DEFINE ASSOC (A,N,D)\r
8073                                 <         A'RET=CH'N'XIT\r
8074                                  A'SAV=CH'N'SAV\r
8075                                  A'SAC=CH'N'SAC\r
8076                                  A'CHL=CH'N\r
8077                                  A'CHN=N\r
8078                                  A'BIT=1\r
8079                                  REPEAT 7-N,<A'BIT=A'BIT*2>\r
8080                                  A'OFF=1000+A'BIT       ;CONO PI, A'OFF WIL TURN CHANNEL OFF\r
8081                                  A'ON=2000+A'BIT        ;TURN BACK ON\r
8082                                  A'ACT=4000+A'BIT       ;FORCE INTERRUPT ON CHAN.\r
8083                                 INTERN A'RET, A'SAV, A'CHL, A'CHN, A'SAC\r
8084                                 INTERNAL A'OFF,A'ON,A'ACT,A'BIT\r
8085                                  XWD A'CHL,A'INT\r
8086                                  EXTERNAL A'INT\r
8087                                 >\r
8088 \r
8089                                 INTERNAL DEVINT\r
8090         000220'                 DEVINT:   SYSTEM^\r
8091         000220' 000060' 000000*  XWD APRCHL,APRINT\r
8092         000221' 000130' 000000*  XWD CTYCHL,CTYINT\r
8093         000222' 000130' 000000*  XWD SCNCHL,SCNINT\r
8094         000223' 000200' 000000*  XWD DTCCHL,DTCINT\r
8095                         000004  NDEV=.-DEVINT           ;NO. OF DEVICE INTERUPT SERVICE ROUTINES\r
8096                         000003  NDEVM1=NDEV-1           ;(USED BY ONCE)\r
8097                                 INTERNAL NDEVM1\r
8098 \r
8099 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 3\r
8100 IOINI1  MAC     24-APR-78 04:05         MINIMAL CONFIGURATION\r
8101 \r
8102 \r
8103 \r
8104                                 ;INITIALIZE SOME IO DEVICES\r
8105                                 ;IOINI CALLED BY A PUSHJ PDP, FROM SYSINI AT SYSTEM INITIALIZATION\r
8106 \r
8107                                 DEFINE IOINIT (A)\r
8108                                 <IRP A\r
8109                                 <         EXTERNAL A'INI\r
8110                                  PUSHJ PDP,A'INI\r
8111                                 >>\r
8112 \r
8113                                 DEFINE ASSOC (A,B,C)\r
8114                                 <         IFIDN <A><MTC>,< IOINIT MTC>\r
8115                                  IFIDN <A><DTC>,< IOINIT DTC>\r
8116                                  IFIDN <A><LPT>,< IOINIT LPT>\r
8117                                  IFIDN <A><SCN>,< IOINIT SCN>\r
8118                                  IFIDN <A><PTP>,<IOINIT PTP>\r
8119                                  IFIDN <A><PTR>,<IOINIT PTR>\r
8120                                 >\r
8121 \r
8122                                 INTERNAL IOINI\r
8123 \r
8124         000224'                 IOINI:  SYSTEM^\r
8125         000224' 260140  000000*  PUSHJ PDP,SCNINI\r
8126         000225' 260140  000000*  PUSHJ PDP,DTCINI\r
8127         000226' 254000  000000*         JRST CLKINI             ;ALWAYS INIT. CLOCK\r
8128 \r
8129                                 EXTERNAL CLKINI\r
8130 \r
8131 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 4\r
8132 IOINI1  MAC     24-APR-78 04:05         MINIMAL CONFIGURATION\r
8133 \r
8134 \r
8135 \r
8136                                 ;CLOCK CONTROL PARAMETERS\r
8137 \r
8138                         004006            CLDS=4000+APRCHN      ;CLOCK DISABLE\r
8139                         000206            CLEN=200+APRCHN       ;CLOCK ENABLE\r
8140 \r
8141                                           INTERNAL CLDS,CLEN\r
8142 \r
8143                                 ;BYTE POINTERS\r
8144 \r
8145         000227' 270400  000014  PUUOAC:   POINT 4,UUO,12        ;UUO AC FIELD\r
8146         000230' 000400  000000  PIOMOD:   POINT 4,IOS,35        ;MODE BITS\r
8147         000231' 331106  000001  PJOBN:    POINT 9,DEVCHR(DEVDAT),8      ;DEVICE JOB ASSIGNMENT\r
8148         000232' 220406  000001  PJDCHN:   POINT 4,DEVCHR(DEVDAT),17     ;JOB DEVICE CHANNEL NO.\r
8149         000233' 140606  000001  PUNIT:    POINT 6,DEVCHR(DEVDAT),23     ;DEVICE UNIT NO.\r
8150 \r
8151                                 INTERNAL PUUOAC,PIOMOD,PJOBN,PJDCHN,PUNIT\r
8152 \r
8153                                 ;COMMON SUBROUTINE RETURNS\r
8154 \r
8155         000234' 350003  000000  CPOPJ2:   AOS (PDP)\r
8156         000235' 350003  000000  CPOPJ1:   AOS (PDP)\r
8157         000236' 263140  000000  CPOPJ:    POPJ PDP,\r
8158 \r
8159                                 INTERNAL CPOPJ,CPOPJ1,CPOPJ2\r
8160 \r
8161 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 5\r
8162 IOINI1  MAC     24-APR-78 04:05         MINIMAL CONFIGURATION\r
8163 \r
8164 \r
8165                                 ,SYSTEM DATA STORAGE\r
8166 \r
8167 \r
8168                                 INTERNAL JOB,JOBADR,JBTADR,JBTSTS,USRREL,USRINF,USRJDA\r
8169                                 INTERNAL USRPDP,JOBDAT,USRDDT,USRSAV,USRUXT,USRLO,USRHI\r
8170                                 INTERNAL COMCNT,IOCOMP,USRPOV,STOPU,SCHEDF,TIME,JBTAD1\r
8171                                 INTERNAL MTAVAL,DCAVAL,DTAVAL,MTREQ,DCREQ,DTREQ,TTYTAB,CORTAB\r
8172                                 INTERNAL CH1ERR,CH2ERR,CH3ERR,CH4ERR,CH5ERR,CH6ERR,CH7ERR\r
8173                                 INTERNAL CORLST,CORTAB,CORTAL,SYSEND,SYSBEG,DEVOPR\r
8174 \r
8175                         000000  JOBN=0  ;DEFINE NO. OF JOBS (0 THRU JOBN-1)\r
8176                                 ;THERE MUST BE MORE TTY DEVICE DATA BLCKS THAN JOBS.\r
8177 \r
8178                                 DEFINE ASSOC (A,N,D)\r
8179                                 <IRP D,<IFIDN <A><SCN>,<JOBN=JOBN+1>>>\r
8180                                           SYSTEM^\r
8181                 777777  777776  MJOBN=-JOBN\r
8182                                 INTERNAL JOBN,MJOBN\r
8183 \r
8184         000237'                 SYSBEG:   ;FIRST LOC IN SYSTEM DATA AREA\r
8185                                 XP SYSBG1,SYSBEG+1      ;FIRST LOC+1\r
8186         000237' 000000  000000  JOB:      0             ;CURRENT JOB NUMBER EXCEPT WEN SCHEDF IS NON-ZERO\r
8187         000240' 000000  000000  JOBADR:   0             ;CONTAINS ADDRESS OF JOB CURRENTLY RUNNING\r
8188         000241' 000000  000000  JOBDAT:   0             ;CONTAINS ADDRESS OF JOB DATA AREA\r
8189 \r
8190         000242'                 JBTADR:   BLOCK JOBN            ;C(LH)=PROTECT, C(RH)=RELOCATION\r
8191                                 XP JBTAD1,JBTADR+1   ;ADDRESS OF JOB 1(USED BY SYSMAK)\r
8192         000244'                 JBTSTS:   BLOCK JOBN            ;CONTAINS STATUS INFORMATION FOR EACH J\r
8193 \r
8194         000246' 000000  000000  USRPDP:   0         ;USER PUSH DOWN POINTER\r
8195         000247' 000000  000000  USRREL:   0         ;LH=0, RH CONTAINS CONTENTS OF PROTECTION REGISTER\r
8196         000250'                 USRLO:    ;FIRST LOC CLEARD BY SETUSR SUBROUTINE\r
8197         000250' 000000  000000  USRUXT:   0         ;UNUSED,  JOBUXT USED TO SAVE UUO PC(UUO0)\r
8198         000251' 000000  000000  USRLEV:   0         ;UNUSED,  JOBLEV USED TO SAVE LOC. 40\r
8199         000252' 000000  000000  USRSAV:   0         ;TEMPORARY STORAGE FOR UUO HANDLER\r
8200         000253' 000000  000000  USRPOV:   0         ;PUSH DOWN OVERFLOW TRAP\r
8201         000254'                           BLOCK 2\r
8202         000256' 000000  000000  USRINF:   0         ;UN LAYED OUT USER INFORMATION\r
8203         000257'                 USRJDA:   BLOCK 20  ;RH=JOB DEVICE ASSIGNMENTS FOR THIS USER,LH=UUOS\r
8204                                 XP USRHI,.-1        ;LAST LOC CLEARED BY SETUSR ROUTINE\r
8205                                 XP USRPFI,.-1       ;LAST LOC PROTECTED FROM IO SERVICE\r
8206                                 XP USRPFU,.         ;LAST LOC PROTECTED FROM USER PROGRAM\r
8207         000277' 000000  000000  USRDDT:   0         ;STARTING ADDR OF USER DDT\r
8208 \r
8209                                 ;DEVICE JUSTR BECOME AVAILABLE FLAGS\r
8210         000300' 000000  000000  MTAVAL:   0          ;MAGNETIC TAPE\r
8211         000301' 000000  000000  DCAVAL:   0          ;DATA CONTROL\r
8212         000302' 000000  000000  DTAVAL:   0          ;DECTAPE\r
8213 \r
8214                                 ;NUMBER OF JOBS WAITING FOR DEVICES(-1=NONE, 0=1 USING, 1=1 USING)\r
8215         000303' 777777  777777  MTREQ:    -1        ;MAGNETIC TAPE\r
8216         000304' 777777  777777  DCREQ:    -1        ;DATA CONTROL\r
8217 \r
8218 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 5-1\r
8219 IOINI1  MAC     24-APR-78 04:05         MINIMAL CONFIGURATION\r
8220 \r
8221         000305' 777777  777777  DTREQ:    -1        ;DECTAPE\r
8222         000306' 000000  000000  IOCOMP:   0         ;NUMBER OF USERS IN IO WAIT STATE\r
8223         000307' 000000  000000  COMCNT:   0         ;NUMBER OF COMMANDS TYPED-IN BUT NOT DECODED\r
8224         000310' 000000  000000  STOPU:    0         ;NON-ZERO WHEN CLOCK INTERRUPT FORCED TO STOP USER\r
8225         000311' 000000  000000  SCHEDF:   0         ;NON-ZERO WHEN CLOCK ROUTINE IS SCHEDULING\r
8226 \r
8227         000312' 000000  000000  CH1ERR:   0         ;SPURIOUS INTERRUPT COUNTS FOR EACH CHANNEL\r
8228         000313' 000000  000000  CH2ERR:   0\r
8229         000314' 000000  000000  CH3ERR:   0\r
8230         000315' 000000  000000  CH4ERR:   0\r
8231         000316' 000000  000000  CH5ERR:   0\r
8232         000317' 000000  000000  CH6ERR:   0\r
8233         000320' 000000  000000  CH7ERR:   0\r
8234 \r
8235                         000251'            USRLO1=USRLO+1\r
8236                                            INTERNAL USRLO1\r
8237 \r
8238 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 6\r
8239 IOINI1  MAC     24-APR-78 04:05         MINIMAL CONFIGURATION\r
8240 \r
8241 \r
8242         000321' 000000  000000  TIME:     0             ;TIME SYSTEM HAS RUN IN 60THS OF A SECOND\r
8243 \r
8244 \r
8245                                 XP TTYLEN,SCNLIN+1   ;LENGTH OF TTY TRANSLATOR TABLES(INCLUDING CTY)\r
8246         000322'                 TTYTAB:   BLOCK TTYLEN          ;TTY TRANSLATOR TABLE\r
8247                                                                 ;SIGN BIT = 1 IF COMMAND JUST TYPED\r
8248                                                                 ;BITS 1 -9, JOB CONSOLE IS ATTACHED TO\r
8249                                                                 ;BITS 18-35, THE DEVICE DATA BLOCK FOR\r
8250         000324' 000000  000000  DEVOPR:   0             ;SIXBIT PHYSICAL NAME OF OPERATORS\r
8251                                                         ;CONSOLE SET BY SCNSER TO FIRST ACTIVE TTY.\r
8252                                 ;LOCATIONS FOR CORE ALLOCATION\r
8253                                 XP CORBLK,^D256          ;NO. OF 1K BLOCKS POSSIBLE\r
8254         000325'                 CORTAB:   BLOCK <CORBLK>/^D36+1         ;1K BLOCK USE BIT TABLE\r
8255                                                                 ;A 1 MEANS BLOCK IS IN USE\r
8256         000335' 000000  000000  CORLST:   0             ;1 BIT BYTE POINTER TO LAST FREE BLOCK POSSIBLE\r
8257         000336' 000000  000000  CORTAL:   0             ;TOTAL NO. OF FREE CORE BLOCKS LEFT\r
8258                                 ;CORLST AND CORTAL ARE SET UP AT SYSTEM INITIALIZATION\r
8259 \r
8260                         000336' SYSEND=.-1              ;LAST LOC. CLEARED BY SYSINI\r
8261 \r
8262                                 INTERNAL SYSSIZ\r
8263                                 EXTERNAL SYSFIN\r
8264         000337' 000000  000000* SYSSIZ:   EXP SYSFIN            ;SIZE OF MONITOR(LAST LOC. USED)\r
8265 \r
8266 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 7\r
8267 IOINI1  MAC     24-APR-78 04:05         MINIMAL CONFIGURATION\r
8268 \r
8269 \r
8270                                           END,\r
8271 \r
8272 NO ERRORS DETECTED\r
8273 \r
8274 PROGRAM BREAK IS 000340\r
8275 \r
8276 9K CORE USED\r
8277 \r
8278 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 8\r
8279 IOINI1  MAC     24-APR-78 04:05         SYMBOL TABLE\r
8280 \r
8281 A               000000  INT\r
8282 AC1             000015  INT\r
8283 AC2             000016  INT\r
8284 AC3             000017  INT\r
8285 AL              000001  INT\r
8286 APRACT          004002  INT\r
8287 APRBIT          000002  INT\r
8288 APRCHL          000060' INT\r
8289 APRCHN          000006  INT\r
8290 APRINT          000220' EXT\r
8291 APROFF          001002  INT\r
8292 APRON           002002  INT\r
8293 APRRET          000054' INT\r
8294 APRSAC          000014' INT\r
8295 APRSAV          000006' INT\r
8296 ASSCON          400000  INT\r
8297 ASSPRG          200000  INT\r
8298 B               000014  INT\r
8299 BUFPNT          000012  INT\r
8300 BUFWRD          000013  INT\r
8301 CH1             000204' INT\r
8302 CH1ERR          000312' INT\r
8303 CH1N            000000  \r
8304 CH1PDN          000000  \r
8305 CH1XIT          000205' INT\r
8306 CH2             000207' INT\r
8307 CH2ERR          000313' INT\r
8308 CH2N            000000  \r
8309 CH2PDN          000000  \r
8310 CH2XIT          000210' INT\r
8311 CH3             000130' INT\r
8312 CH3CJ           000127' \r
8313 CH3ERR          000314' INT\r
8314 CH3N            000011  \r
8315 CH3PDN          000020  \r
8316 CH3SAC          000072' INT\r
8317 CH3SAV          000064' INT\r
8318 CH3XIT          000124' INT\r
8319 CH4             000200' INT\r
8320 CH4CJ           000177' \r
8321 CH4ERR          000315' INT\r
8322 CH4N            000011  \r
8323 CH4PDN          000020  \r
8324 CH4SAC          000142' INT\r
8325 CH4SAV          000134' INT\r
8326 CH4XIT          000174' INT\r
8327 CH5             000212' INT\r
8328 CH5ERR          000316' INT\r
8329 CH5N            000000  \r
8330 CH5PDN          000000  \r
8331 \r
8332 \r
8333 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 8-1\r
8334 IOINI1  MAC     24-APR-78 04:05         SYMBOL TABLE\r
8335 \r
8336 CH5XIT          000213' INT\r
8337 CH6             000060' INT\r
8338 CH6CJ           000057' \r
8339 CH6ERR          000317' INT\r
8340 CH6N            000017  \r
8341 CH6PDN          000020  \r
8342 CH6SAC          000014' INT\r
8343 CH6SAV          000006' INT\r
8344 CH6XIT          000054' INT\r
8345 CH7             000215' INT\r
8346 CH7ERR          000320' INT\r
8347 CH7N            000000  \r
8348 CH7PDN          000000  \r
8349 CH7XIT          000216' INT\r
8350 CHANU1          000000  \r
8351 CHANU2          000000  \r
8352 CHANU3          000001  \r
8353 CHANU4          000001  \r
8354 CHANU5          000000  \r
8355 CHANU6          000001  \r
8356 CHANU7          000000  \r
8357 CLDS            004006  INT\r
8358 CLEN            000206  INT\r
8359 CLKINI          000226' EXT\r
8360 CLOSB           002000  INT\r
8361 CLSIN           000002  INT\r
8362 CLSOUT          000001  INT\r
8363 COMCNT          000307' INT\r
8364 CONFIG          000000' INT\r
8365 CORBLK          000400  INT\r
8366 CORLST          000335' INT\r
8367 CORTAB          000325' INT\r
8368 CORTAL          000336' INT\r
8369 CPOPJ           000236' INT\r
8370 CPOPJ1          000235' INT\r
8371 CPOPJ2          000234' INT\r
8372 CTYACT          004020  INT\r
8373 CTYBIT          000020  INT\r
8374 CTYCHL          000130' INT\r
8375 CTYCHN          000003  INT\r
8376 CTYINT          000221' EXT\r
8377 CTYOFF          001020  INT\r
8378 CTYON           002020  INT\r
8379 CTYRET          000124' INT\r
8380 CTYSAC          000072' INT\r
8381 CTYSAV          000064' INT\r
8382 D               000017  INT\r
8383 DAT             000005  INT\r
8384 DCAVAL          000301' INT\r
8385 \r
8386 \r
8387 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 8-2\r
8388 IOINI1  MAC     24-APR-78 04:05         SYMBOL TABLE\r
8389 \r
8390 DCL             000001  INT\r
8391 DCREQ           000304' INT\r
8392 DCW             020000  INT\r
8393 DDI             000007  INT\r
8394 DDO             000006  INT\r
8395 DDTMEM          000037  INT\r
8396 DDTSYM          000036  INT\r
8397 DEN             000004  INT\r
8398 DEVADR          000007  INT\r
8399 DEVBUF          000006  INT\r
8400 DEVCHR          000001  INT\r
8401 DEVCTR          000011  INT\r
8402 DEVDAT          000006  INT\r
8403 DEVIAD          000007  INT\r
8404 DEVINT          000220' INT\r
8405 DEVIOS          000002  INT\r
8406 DEVLOG          000005  INT\r
8407 DEVMOD          000004  INT\r
8408 DEVNAM          000000  INT\r
8409 DEVOAD          000010  INT\r
8410 DEVOPR          000324' INT\r
8411 DEVPTR          000010  INT\r
8412 DEVSER          000003  INT\r
8413 DGF             000012  INT\r
8414 DIN             000003  INT\r
8415 DLK             000005  INT\r
8416 DOU             000002  INT\r
8417 DR              000016  INT\r
8418 DRL             000000  INT\r
8419 DSI             000011  INT\r
8420 DSO             000010  INT\r
8421 DTAVAL          000302' INT\r
8422 DTCACT          004010  INT\r
8423 DTCBIT          000010  INT\r
8424 DTCCHL          000200' INT\r
8425 DTCCHN          000004  INT\r
8426 DTCINI          000225' EXT\r
8427 DTCINT          000223' EXT\r
8428 DTCOFF          001010  INT\r
8429 DTCON           002010  INT\r
8430 DTCRET          000174' INT\r
8431 DTCSAC          000142' INT\r
8432 DTCSAV          000134' INT\r
8433 DTREQ           000305' INT\r
8434 DTSIZ           000001  \r
8435 DTW             040000  INT\r
8436 DVAVAL          000040  INT\r
8437 DVCDR           100000  INT\r
8438 DVDIR           000004  INT\r
8439 DVDIRI          400000  INT\r
8440 DVIN            000002  INT\r
8441 DVLPT           040000  INT\r
8442 DVMTA           000020  INT\r
8443 \r
8444 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 8-3\r
8445 IOINI1  MAC     24-APR-78 04:05         SYMBOL TABLE\r
8446 \r
8447 DVOUT           000001  INT\r
8448 DVTTY           000010  INT\r
8449 ENTRB           020000  INT\r
8450 ERROR           000000  EXT\r
8451 I               000010  INT\r
8452 IB              000013  INT\r
8453 IBUFB           200000  INT\r
8454 INITB           400000  INT\r
8455 INPB            010000  INT\r
8456 IO              000020  INT\r
8457 IOACT           010000  INT\r
8458 IOBEG           000002  INT\r
8459 IOBKTL          040000  INT\r
8460 IOCOMP          000306' INT\r
8461 IOCON           000040  INT\r
8462 IODEND          020000  INT\r
8463 IODERR          200000  INT\r
8464 IODISC          400000  INT\r
8465 IODONE          400000  INT\r
8466 IODTER          100000  INT\r
8467 IOEND           000040  INT\r
8468 IOFST           000004  INT\r
8469 IOIMPM          400000  INT\r
8470 IOINI           000224' INT\r
8471 IONRCK          000100  INT\r
8472 IORDEL          000100  INT\r
8473 IORET           000020  INT\r
8474 IOS             000000  INT\r
8475 IOSTRT          000010  INT\r
8476 IOUSE           400000  INT\r
8477 IOW             000001  INT\r
8478 IOWC            000020  INT\r
8479 IOWS            400000  INT\r
8480 ITEM            000004  INT\r
8481 JBFADR          000000  INT\r
8482 JBFCTR          000002  INT\r
8483 JBFPTR          000001  INT\r
8484 JBTAD1          000243' INT\r
8485 JBTADR          000242' INT\r
8486 JBTSTS          000244' INT\r
8487 JBUF            000005  INT\r
8488 JDAT            000011  INT\r
8489 JERR            002000  INT\r
8490 JIOW            100000  INT\r
8491 JNA             004000  INT\r
8492 JOB             000237' INT\r
8493 JOBADR          000240' INT\r
8494 JOBDAT          000241' INT\r
8495 JOBN            000002  INT\r
8496 LOOKB           040000  INT\r
8497 MINIMA          000000  INT\r
8498 MJOBN   777777  777776  INT\r
8499 \r
8500 \r
8501 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 8-4\r
8502 IOINI1  MAC     24-APR-78 04:05         SYMBOL TABLE\r
8503 \r
8504 MTAVAL          000300' INT\r
8505 MTREQ           000303' INT\r
8506 MTW             010000  INT\r
8507 NDEV            000004  \r
8508 NDEVM1          000003  INT\r
8509 OBUFB           100000  INT\r
8510 OUTPB           004000  INT\r
8511 PDP             000003  INT\r
8512 PICHN           000100  INT\r
8513 PIOMOD          000230' INT\r
8514 PJDCHN          000232' INT\r
8515 PJOBN           000231' INT\r
8516 PROG            000007  INT\r
8517 PUNIT           000233' INT\r
8518 PUUOAC          000227' INT\r
8519 RUN             200000  INT\r
8520 RUNABL          204000  INT\r
8521 SCHEDF          000311' INT\r
8522 SCNACT          004020  INT\r
8523 SCNBIT          000020  INT\r
8524 SCNCHL          000130' INT\r
8525 SCNCHN          000003  INT\r
8526 SCNINI          000224' EXT\r
8527 SCNINT          000222' EXT\r
8528 SCNLIN          000001  \r
8529 SCNOFF          001020  INT\r
8530 SCNON           002020  INT\r
8531 SCNRET          000124' INT\r
8532 SCNSAC          000072' INT\r
8533 SCNSAV          000064' INT\r
8534 STOPU           000310' INT\r
8535 SYSBEG          000237' INT\r
8536 SYSBG1          000240' INT\r
8537 SYSDAT          000002' INT\r
8538 SYSEND          000336' INT\r
8539 SYSFIN          000337' EXT\r
8540 SYSMOD          000001  INT\r
8541 SYSNUM          000004' INT\r
8542 SYSSIZ          000337' INT\r
8543 SYSTAP          000005' INT\r
8544 SYSVER          000004  INT\r
8545 TAC             000001  INT\r
8546 TAC1            000002  INT\r
8547 TEM             000010  INT\r
8548 TIME            000321' INT\r
8549 TTYATC          020000  INT\r
8550 TTYLEN          000002  INT\r
8551 TTYTAB          000322' INT\r
8552 TTYUSE          010000  INT\r
8553 \r
8554 \r
8555 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 8-5\r
8556 IOINI1  MAC     24-APR-78 04:05         SYMBOL TABLE\r
8557 \r
8558 USRDDT          000277' INT\r
8559 USRHI           000276' INT\r
8560 USRINF          000256' INT\r
8561 USRJDA          000257' INT\r
8562 USRLEV          000251' \r
8563 USRLO           000250' INT\r
8564 USRLO1          000251' INT\r
8565 USRMOD          010000  INT\r
8566 USRPDP          000246' INT\r
8567 USRPFI          000276' INT\r
8568 USRPFU          000277' INT\r
8569 USRPOV          000253' INT\r
8570 USRREL          000247' INT\r
8571 USRSAV          000252' INT\r
8572 USRUXT          000250' INT\r
8573 UUO             000014  INT\r
8574 \f   IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            222222222   \r
8575    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            222222222   \r
8576    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            222222222   \r
8577       III            OOO         OOO            III            NNN         NNN            III            222         222\r
8578       III            OOO         OOO            III            NNN         NNN            III            222         222\r
8579       III            OOO         OOO            III            NNN         NNN            III            222         222\r
8580       III            OOO         OOO            III            NNNNNN      NNN            III                        222\r
8581       III            OOO         OOO            III            NNNNNN      NNN            III                        222\r
8582       III            OOO         OOO            III            NNNNNN      NNN            III                        222\r
8583       III            OOO         OOO            III            NNN   NNN   NNN            III                     222   \r
8584       III            OOO         OOO            III            NNN   NNN   NNN            III                     222   \r
8585       III            OOO         OOO            III            NNN   NNN   NNN            III                     222   \r
8586       III            OOO         OOO            III            NNN      NNNNNN            III                  222      \r
8587       III            OOO         OOO            III            NNN      NNNNNN            III                  222      \r
8588       III            OOO         OOO            III            NNN      NNNNNN            III                  222      \r
8589       III            OOO         OOO            III            NNN         NNN            III               222         \r
8590       III            OOO         OOO            III            NNN         NNN            III               222         \r
8591       III            OOO         OOO            III            NNN         NNN            III               222         \r
8592    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII         222222222222222\r
8593    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII         222222222222222\r
8594    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII         222222222222222\r
8595 \r
8596 \r
8597 \r
8598 \r
8599 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
8600 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
8601 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
8602 LLL                  SSS                        TTT                                                                     \r
8603 LLL                  SSS                        TTT                                                                     \r
8604 LLL                  SSS                        TTT                                                                     \r
8605 LLL                  SSS                        TTT                                                                     \r
8606 LLL                  SSS                        TTT                                                                     \r
8607 LLL                  SSS                        TTT                                                                     \r
8608 LLL                     SSSSSSSSS               TTT                                                                     \r
8609 LLL                     SSSSSSSSS               TTT                                                                     \r
8610 LLL                     SSSSSSSSS               TTT                                                                     \r
8611 LLL                              SSS            TTT                                                                     \r
8612 LLL                              SSS            TTT                                                                     \r
8613 LLL                              SSS            TTT                                                                     \r
8614 LLL                              SSS            TTT                                                                     \r
8615 LLL                              SSS            TTT                                                                     \r
8616 LLL                              SSS            TTT                                                                     \r
8617 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
8618 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
8619 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
8620 \r
8621 \r
8622 \r
8623 \r
8624 Request created: 24-April-1978  05:53:58\r
8625 File: DSKB0 :IOINI2.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:34\r
8626 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1796 \r
8627 File will be deleted after printing\r
8628 \f\r
8629 IOINI2 - IO INITIALIZATION PART 2       MACRO 10 05:51 24-APR-78 PAGE 1\r
8630 S       MAC     24-APR-78 21:40         MINIMAL CONFIGURATION\r
8631 \r
8632                                         XLIST\r
8633                                        LIST\r
8634                                 ;SOME MACROS FOR DEFINING CONFIGURATION\r
8635 \r
8636                                 DEFINE NAME (A)\r
8637                                 <DEFINE NAME1\r
8638                                 <CONFIG:  ASCIZ /A/\r
8639                                 INTERNAL CONFIG\r
8640                                 >\r
8641                                 XP A,0\r
8642                                 SUBTTL A CONFIGURATION\r
8643                                 >\r
8644 \r
8645                                 DEFINE DATE (A)\r
8646                                 <DEFINE DATE1\r
8647                                 <SYSDAT:  ASCIZ /A/\r
8648                                 INTERNAL SYSDAT\r
8649                                 >>\r
8650 \r
8651                                 DEFINE VERSION (A,B)\r
8652                                 <DEFINE VERS1\r
8653                                 <SYSNUM:  XWD ^D'A,^D'B\r
8654                                 XP SYSMOD,^D'A\r
8655                                 XP SYSVER,^D'B\r
8656                                 INTERNAL SYSNUM\r
8657                                 >>\r
8658 \r
8659                                 DEFINE CUSPTAPE (A)\r
8660                                 <DEFINE CUSP1\r
8661                                 <SYSTAP:  SIXBIT /A/\r
8662                                 INTERNAL SYSTAP\r
8663                                 >>\r
8664 \r
8665                                 DEFINE ACPDL (J,CHJN,CHJPDN)\r
8666                                 <         CH'J'N=CHJN\r
8667                                  CH'J'PDN=CHJPDN\r
8668                                 >\r
8669 \r
8670 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 2\r
8671 IOINI   MAC     24-APR-78 01:14         MINIMAL CONFIGURATION\r
8672 \r
8673 \r
8674                                 NAME <MINIMAL>^DEFINE NAME1\r
8675                                 <CONFIG:  ASCIZ /MINIMAL/\r
8676                                 INTERNAL CONFIG\r
8677                                 >\r
8678 \r
8679 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 2\r
8680 IOMIN   MAC     24-APR-78 02:16         MINIMAL CONFIGURATION\r
8681 \r
8682 \r
8683                                         DATE <8-16-65>^DEFINE DATE1\r
8684                                 <SYSDAT:  ASCIZ /8-16-65/\r
8685                                 INTERNAL SYSDAT\r
8686                                 >^\r
8687                                         VERSION 1,4^DEFINE VERS1\r
8688                                 <SYSNUM:  XWD ^D1,^D4\r
8689                                 XP SYSMOD,^D1\r
8690                                 XP SYSVER,^D4\r
8691                                 INTERNAL SYSNUM\r
8692                                 >^\r
8693                                         CUSPTAPE DTA0^DEFINE CUSP1\r
8694                                 <SYSTAP:  SIXBIT /DTA0/\r
8695                                 INTERNAL SYSTAP\r
8696                                 >^\r
8697 \r
8698                                 ;DEFINE THE IO PART OF THE SYSTEM\r
8699                                 ;THAT IS:\r
8700                                 ;         DEFINE INTERRUPT SERVICE ROTUINE TO BE USED\r
8701                                 ;       ASSIGN DEVICES TO PI CHANNELS\r
8702 \r
8703                                 DEFINE SYSTEM\r
8704                                  <\r
8705                                  ASSOC APR,6,<>\r
8706                                  ASSOC CTY,3,<>\r
8707                                  ASSOC SCN,3,<TTY0,TTY1>\r
8708                                  ASSOC DTC,4,<DTA0>\r
8709                                 >\r
8710 \r
8711                         000001  DTSIZ=1   ;MULTIPLE DECTAPE DIRECTORIES\r
8712 \r
8713                         000001  SCNLIN=1\r
8714 \r
8715                                 ;DEFINE HIGHEST AC TO SAVE AND LENGTH OF PD LIST FOR EACH PI CHANNEL\r
8716 \r
8717                         000000  ACPDL (1,0,0)^    CH1N=0\r
8718                         000000  ACPDL (2,0,0)^    CH2N=0\r
8719                         000011  ACPDL (3,11,20)^          CH3N=11\r
8720                         000011  ACPDL (4,11,20)^          CH4N=11\r
8721                         000000  ACPDL (5,0,0)^    CH5N=0\r
8722                         000017  ACPDL (6,17,20^   CH6N=17\r
8723                         000000  ACPDL (7,0,0)^    CH7N=0\r
8724                                         TITLE IOINI2 - IO INITIALIZATION PART 2\r
8725 \r
8726                                 ;DEFINITIONS OF DEVCHN AND DEVBIT\r
8727                                 ;THESE ALSO OCCUR IN IOINT1\r
8728 \r
8729                                 DEFINE ASSOC (A,N,D)\r
8730                                 <\r
8731                                   A'CHN=N\r
8732                                 >\r
8733 \r
8734                                           SYSTEM^\r
8735 \r
8736 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 1\r
8737 IOINI2  MAC     24-APR-78 03:06         MINIMAL CONFIGURATION\r
8738 \r
8739 \r
8740 \r
8741 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 2\r
8742 IOINI2  MAC     24-APR-78 03:06         MINIMAL CONFIGURATION\r
8743 \r
8744 \r
8745 \r
8746                                 ;APR PIP BITS\r
8747 \r
8748                         000001  APRBIT=1\r
8749                         000002  REPEAT 7-APRCHN,<APRBIT=APRBIT*2>\r
8750                                 XP PION,200             ;CONO PI,PION TURNS PI SYSTEM ON\r
8751                                 XP PIOFF,400            ;TURN IT OFF\r
8752                                 XP PICLK,PION+1B24+APRBIT       ;TURN PI ON, AND FORCE CLOCK INT.\r
8753                                 XP CLKOFF,1000+APRCHN           ;CONO APR,CLKOFF TURNS CLOCK FLAG OFF\r
8754 \r
8755 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 3\r
8756 IOINI2  MAC     24-APR-78 03:06         MINIMAL CONFIGURATION\r
8757 \r
8758 \r
8759 \r
8760                                 ;ASSEMBLE ALL DEVICE DATA BLOCKS AND LINK THEM TOGETHER\r
8761 \r
8762                                 DEFINE SCNDDB (A,B,C)\r
8763                                 <         INTERNAL C'DB\r
8764                                 C'DB:     ZZ=.\r
8765                                  SIXBIT /C/\r
8766                                  XWD A'CHN*PICHN,STTYBF+1       ;LONG ENOUGH FOR PRINTING\r
8767                                                 ;SEQUENCE CARD IMAGE.\r
8768                                                 ;USER BUFFERS ARE 2 WORDS\r
8769                                                 ;LONGER THEN THE MONITORY TTY BUFFERS.\r
8770                                  0\r
8771                                 EXTERNAL  TTYDSP\r
8772                                  XWD C,TTYDSP\r
8773                                  XWD DVTTY+DVIN+DVOUT,3\r
8774                                  0\r
8775                                  0\r
8776                                  XWD PROG,0\r
8777                                  XWD PROG,0\r
8778                                  XP TTYPTR,.-ZZ\r
8779                                  0\r
8780                                  XP TTYCTR,.-ZZ\r
8781                                  0\r
8782                                  XP TTYSAV,.-ZZ\r
8783                                  0\r
8784                                  XP TTYBUF,.-ZZ\r
8785                                  XP TTYBM1,TTYBUF-1\r
8786                                 XP STTYBF,20\r
8787                                 XP STTYB1,STTYBF+1      ;LENGTH+1\r
8788                                  BLOCK STTYBF\r
8789                                 XP TTYBFE,.-ZZ-1\r
8790                                 \r
8791                                 ;LINE NO. PARAMETERS\r
8792                                 XP TTYLEN,SCNLIN+1  ;LENGTH OF TTY TRANSLATOR TABLE(INCLUDE TTY)\r
8793                                 XP TSCNLN,SCNLIN-1  ;HIGHEST TTY LINE NO.(NOT COUNTING CTY)\r
8794                                 XP TCONLN,TSCNLN+1  ;CTY LINE NUMBER\r
8795                                 XP MTTYLN,-TTYLEN   ;NEGATIVEL LENGTH OF TRANSLATOR TABLE\r
8796                                 XP FSNCHN,SCNCHN*101 ;CHANNEL ASSIGNED, FOR FULL DUPLEX SCN.\r
8797                                  XP TTYLST,TTY0DB    ;FIRST TTY DEVICE DATA BLOCK\r
8798                                  >\r
8799 \r
8800                                 ;NEG. NO. OF TELTYPE DEVICE DATA BLOCKS\r
8801 \r
8802                         000000  MLTTYL=0\r
8803                                 DEFINE ASSOC (A,N,D)\r
8804                                 <IRP D,<IFIDN <A>,<SCN>,<MLTTYL=MLTTYL-1>>>\r
8805 \r
8806                                           SYSTEM^\r
8807 \r
8808                                 INTERNAL MLTTYL\r
8809 \r
8810 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 4\r
8811 IOINI2  MAC     24-APR-78 03:06         MINIMAL CONFIGURATION\r
8812 \r
8813 \r
8814 \r
8815                                 ;MAG TAPE DEVICE DATA BLOCK\r
8816 \r
8817                         000000  MTCNUM=0\r
8818 \r
8819                                 DEFINE MTCDDB (A,B,C)\r
8820                                 <         INTERNAL C'DB\r
8821                                 C'DB:     SIXBIT /C/\r
8822                                 MTCNUM=MTCNUM+1\r
8823                                  XWD IORET+A'CHN*PICHN,<MTCNUM-1>*10000+201\r
8824                                 \r
8825                                  0\r
8826                                  XWD C,MTDISP\r
8827                                 EXTERNAL MTDISP\r
8828                                  XWD 4400+DVMTA+DVIN+DVOUT,154403\r
8829                                  0\r
8830                                  0\r
8831                                  XWD PROG,0\r
8832                                  XWD PROG,0\r
8833                                 >\r
8834 \r
8835 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 5\r
8836 IOINI2  MAC     24-APR-78 03:06         MINIMAL CONFIGURATION\r
8837 \r
8838 \r
8839                                 ;DECTAPE DEVICE DATA BLOCK\r
8840 \r
8841                         000000  DTCNUM=0\r
8842 \r
8843                                 DEFINE DTCDDB (A,B,C)\r
8844                                 <         INTERNAL C'DB\r
8845                                 C'DB:     ZZ=.\r
8846                                  SIXBIT /C/\r
8847                                 DTCNUM=DTCNUM+1\r
8848                                  XWD IORET+A'CHN*PICHN,<DTCNUM-1>*10000+201\r
8849                                  0\r
8850                                  XWD C,UTDSP\r
8851                                 EXTERNAL UTDSP\r
8852                                  XWD 4400+DVDIR+DVIN+DVOUT,154403\r
8853                                  0\r
8854                                  0\r
8855                                  0\r
8856                                  0\r
8857                                 XP UFREE,.-ZZ   ;NEXT FREE BLOCK NO.\r
8858                                  0\r
8859                                  XP UDIR,.-ZZ   ;LINK TO DIRECTORY IN DATA BLOCK\r
8860                                  IFE DTSIZ,<    EXP DIRBUF\r
8861                                 >\r
8862                                 IFN DTSIZ,<     EXP DTDIR+200*<DTCNUM-1>\r
8863                                 >\r
8864                                 >\r
8865 \r
8866 \r
8867 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 6\r
8868 IOINI2  MAC     24-APR-78 03:06         MINIMAL CONFIGURATION\r
8869 \r
8870 \r
8871 \r
8872                                 ;LINE PRINTER DEVICE DTA BLOCK\r
8873 \r
8874                                 DEFINE LPTDDB (A,B,C)\r
8875                                 <INTERNAL LPTDB,LPTDAT,LPTCHR,LPTIOS,LPTSER,LPTMOD\r
8876                                 INTERNAL LPTBUF,LPTPTR,LPTADR,LPTSV1\r
8877                                 EXTERNAL LPTDSP\r
8878                                 \r
8879                                 LPTDB:\r
8880                                 LPTDAT:   SIXBIT /LPT/\r
8881                                 LPTCHR:   XWD A'CHN*PICHN,32\r
8882                                 LPTIOS:   0\r
8883                                 LPTSER:   XWD C,LPTDSP\r
8884                                 LPTMOD:   XWD 0+DVOUT,3\r
8885                                  0\r
8886                                 LPTBUF:   0\r
8887                                 LPTPTR:   0\r
8888                                 LPTADR:   XWD PROG,0\r
8889                                 LPTSV1:   0\r
8890                                 \r
8891                                 XP LPTCLB,LPTCHN+200  ;PI CHANNEL AND BUSY FLAG\r
8892                                 XP LPTCHB,11*LPTCHN ;LINE PRINTER ERROR AND DATA CHANNELS\r
8893                                 >\r
8894 \r
8895 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 7\r
8896 IOINI2  MAC     24-APR-78 03:06         MINIMAL CONFIGURATION\r
8897 \r
8898 \r
8899 \r
8900                                 ;CARD READER DEVICE DATA BLOCK\r
8901 \r
8902                                 DEFINE CDRDDB (A,B,C)\r
8903                                 <INTERNAL CDRDB,CDRDAT,CRDIS\r
8904                                 EXTERNAL CDRDSP\r
8905                                 \r
8906                                 CDRDB:\r
8907                                 CDRDAT:   SIXBIT /CDR/\r
8908                                  XWD A'CHN*PICHN,34 ;LONG ENOUGHT FOR BINARY CARDS\r
8909                                  0\r
8910                                  XWD C,CDRDSP\r
8911                                  XWD DVCDR+1400+DVIN,14403\r
8912                                  0\r
8913                                  0\r
8914                                  XWD PROG,0\r
8915                                  0\r
8916                                  0\r
8917                                 CRDIS:    JRST .\r
8918                                 >\r
8919 \r
8920 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 8\r
8921 IOINI2  MAC     24-APR-78 03:06         MINIMAL CONFIGURATION\r
8922 \r
8923 \r
8924 \r
8925                                 ;PAPER TAPE READER DEVICE DATA BLOCK\r
8926 \r
8927                                 DEFINE PTRDDB (A,B,C)\r
8928                                 <INTERNAL PTRDB,PTRDAT,PTRCHR,PTRIOS,PTRSER\r
8929                                 INTERNAL PTRMOD,PTRBUF,PTRADR,PTRPTR,PTRCTR,PTRSVC,PTRSV1\r
8930                                 EXTERNAL PTRDSP\r
8931                                 \r
8932                                 PTRDB:\r
8933                                 PTRDAT:   SIXBIT /PTR/\r
8934                                 PTRCHR:   XWD A'CHN*PICHN,41\r
8935                                 PTRIOS:   0\r
8936                                 PTRSER:   XWD C,PTRDSP\r
8937                                 PTRMOD:   XWD 1000+DVIN,14403\r
8938                                  0\r
8939                                 PTRBUF:   0\r
8940                                 PTRADR:   XWD PROG,0\r
8941                                 PTRPTR:   0\r
8942                                 PTRCTR:   0\r
8943                                 PTRSVC:   0\r
8944                                 PTRSV1:   0\r
8945                                 >\r
8946 \r
8947 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 9\r
8948 IOINI2  MAC     24-APR-78 03:06         MINIMAL CONFIGURATION\r
8949 \r
8950 \r
8951 \r
8952                                 ;PAPER TAPE PUNCH DEVICE DATA BLOCK\r
8953 \r
8954                                 DEFINE PTPDDB (A,B,C)\r
8955                                 <INTERNAL PTPDB,PTPDAT,PTPCHR,PTPIOS,PTPSER,PTPMOD,PTPBUF\r
8956                                 INTERNAL PTPPTR,PTPADR,PTPCTR,PTPCNT,PTPCHA,PTPSIO\r
8957                                 EXTERNAL PTPDSP\r
8958                                 \r
8959                                 PTPDB:\r
8960                                 PTPDAT:   SIXBIT /PTP/\r
8961                                 PTPCHR:   XWD A'CHN*PICHN,41\r
8962                                 PTPIOS:   0\r
8963                                 PTPSER:   XWD C,PTPDSP\r
8964                                 PTPMOD:   XWD 1000+DVOUT,14403\r
8965                                  0\r
8966                                 PTPBUF:   0\r
8967                                 PTPPTR:   0\r
8968                                 PTPADR:   XWD PROG,0\r
8969                                 PTPCTR:   0\r
8970                                 PTPCNT:   0\r
8971                                 PTPCHA:   0\r
8972                                 PTPSIO:   0\r
8973                                 >\r
8974 \r
8975 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 10\r
8976 IOINI2  MAC     24-APR-78 03:06         MINIMAL CONFIGURATION\r
8977 \r
8978 \r
8979 \r
8980                                 ;GENERATE DEVICE DATA BLOCKS NEEDED FOR THIS CONFIGURATION\r
8981 \r
8982                                 DEFINE ASSOC (A,B,C)\r
8983                                 <\r
8984                                 IRP C,<\r
8985                                           ;DEFINE FORWARD LINL SYMBOL\r
8986                                  LINK\r
8987                                 ;\r
8988                                 ;\r
8989                                 ;\r
8990                                  A'DDB A,B,C\r
8991                                 \r
8992                                 C=0       ;SET LINK TO 0(IN CASE THIS IS LAST DDB)\r
8993                                 DEFINE LINK\r
8994                                 <C=.>\r
8995                                 >\r
8996                                 >\r
8997 \r
8998                                 INTERNAL DEVLST\r
8999 \r
9000         000000' 000001' 000000  DEVLST:   XWD FIRDB,0           ;BEGINNING OF DEVICE DATA BLOCK CHAIN\r
9001 \r
9002                                 DEFINE LINK\r
9003                                 <FIRDB=.>\r
9004 \r
9005                                           SYSTEM^\r
9006         000001' 646471  200000   SIXBIT /TTY0/\r
9007         000002' 000300  000021   XWD SCNCHN*PICHN,STTYBF+1      ;LONG ENOUGH FOR PRINTING\r
9008         000003' 000000  000000   0\r
9009         000004' 000035' 000000*  XWD TTY0,TTYDSP\r
9010         000005' 000013  000003   XWD DVTTY+DVIN+DVOUT,3\r
9011         000006' 000000  000000   0\r
9012         000007' 000000  000000   0\r
9013         000010' 000007  000000   XWD PROG,0\r
9014         000011' 000007  000000   XWD PROG,0\r
9015         000012' 000000  000000   0\r
9016         000013' 000000  000000   0\r
9017         000014' 000000  000000   0\r
9018         000035' 646471  210000   SIXBIT /TTY1/\r
9019         000036' 000300  000021   XWD SCNCHN*PICHN,STTYBF+1      ;LONG ENOUGH FOR PRINTING\r
9020         000037' 000000  000000   0\r
9021         000040' 000071' 000004*  XWD TTY1,TTYDSP\r
9022         000041' 000013  000003   XWD DVTTY+DVIN+DVOUT,3\r
9023         000042' 000000  000000   0\r
9024         000043' 000000  000000   0\r
9025         000044' 000007  000000   XWD PROG,0\r
9026         000045' 000007  000000   XWD PROG,0\r
9027         000046' 000000  000000   0\r
9028         000047' 000000  000000   0\r
9029         000050' 000000  000000   0\r
9030         000071' 446441  200000   SIXBIT /DTA0/\r
9031 \r
9032 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 10-1\r
9033 IOINI2  MAC     24-APR-78 03:06         MINIMAL CONFIGURATION\r
9034 \r
9035         000072' 000420  000201   XWD IORET+DTCCHN*PICHN,<DTCNUM-1>*10000+201\r
9036         000073' 000000  000000   0\r
9037         000074' 000000  000000*  XWD DTA0,UTDSP\r
9038         000075' 004407  154403   XWD 4400+DVDIR+DVIN+DVOUT,154403\r
9039         000076' 000000  000000   0\r
9040         000077' 000000  000000   0\r
9041         000100' 000000  000000   0\r
9042         000101' 000000  000000   0\r
9043         000102' 000000  000000   0\r
9044         000103' 000000  000104' IFN DTSIZ,<     EXP DTDIR+200*<DTCNUM-1>\r
9045 \r
9046 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 11\r
9047 IOINI2  MAC     24-APR-78 03:06         MINIMAL CONFIGURATION\r
9048 \r
9049 \r
9050 \r
9051         000104'                           LIT\r
9052 \r
9053                                           IFE DTSIZ,<           DIRBUF: BLOCK 200\r
9054                                  INTERNAL DIRBUF\r
9055                                 >\r
9056 \r
9057         000104'                 IFN DTSIZ,<DTDIR:       BLOCK DTCNUM*200\r
9058                                 INTERNAL DTDIR\r
9059                                 >\r
9060 \r
9061                                           END,\r
9062 \r
9063 NO ERRORS DETECTED\r
9064 \r
9065 PROGRAM BREAK IS 000304\r
9066 \r
9067 10K CORE USED\r
9068 \r
9069 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 12\r
9070 IOINI2  MAC     24-APR-78 03:06         SYMBOL TABLE\r
9071 \r
9072 A               000000  INT\r
9073 AC1             000015  INT\r
9074 AC2             000016  INT\r
9075 AC3             000017  INT\r
9076 AL              000001  INT\r
9077 APRBIT          000002  \r
9078 APRCHN          000006  \r
9079 ASSCON          400000  INT\r
9080 ASSPRG          200000  INT\r
9081 B               000014  INT\r
9082 BUFPNT          000012  INT\r
9083 BUFWRD          000013  INT\r
9084 CH1N            000000  \r
9085 CH1PDN          000000  \r
9086 CH2N            000000  \r
9087 CH2PDN          000000  \r
9088 CH3N            000011  \r
9089 CH3PDN          000020  \r
9090 CH4N            000011  \r
9091 CH4PDN          000020  \r
9092 CH5N            000000  \r
9093 CH5PDN          000000  \r
9094 CH6N            000017  \r
9095 CH6PDN          000020  \r
9096 CH7N            000000  \r
9097 CH7PDN          000000  \r
9098 CLKOFF          001006  INT\r
9099 CLOSB           002000  INT\r
9100 CLSIN           000002  INT\r
9101 CLSOUT          000001  INT\r
9102 CTYCHN          000003  \r
9103 D               000017  INT\r
9104 DAT             000005  INT\r
9105 DCL             000001  INT\r
9106 DCW             020000  INT\r
9107 DDI             000007  INT\r
9108 DDO             000006  INT\r
9109 DDTMEM          000037  INT\r
9110 DDTSYM          000036  INT\r
9111 DEN             000004  INT\r
9112 DEVADR          000007  INT\r
9113 DEVBUF          000006  INT\r
9114 DEVCHR          000001  INT\r
9115 DEVCTR          000011  INT\r
9116 DEVDAT          000006  INT\r
9117 \r
9118 \r
9119 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 12-1\r
9120 IOINI2  MAC     24-APR-78 03:06         SYMBOL TABLE\r
9121 \r
9122 DEVIAD          000007  INT\r
9123 DEVIOS          000002  INT\r
9124 DEVLOG          000005  INT\r
9125 DEVLST          000000' INT\r
9126 DEVMOD          000004  INT\r
9127 DEVNAM          000000  INT\r
9128 DEVOAD          000010  INT\r
9129 DEVPTR          000010  INT\r
9130 DEVSER          000003  INT\r
9131 DGF             000012  INT\r
9132 DIN             000003  INT\r
9133 DLK             000005  INT\r
9134 DOU             000002  INT\r
9135 DR              000016  INT\r
9136 DRL             000000  INT\r
9137 DSI             000011  INT\r
9138 DSO             000010  INT\r
9139 DTA0            000000  \r
9140 DTA0DB          000071' INT\r
9141 DTCCHN          000004  \r
9142 DTCNUM          000001  \r
9143 DTDIR           000104' INT\r
9144 DTSIZ           000001  \r
9145 DTW             040000  INT\r
9146 DVAVAL          000040  INT\r
9147 DVCDR           100000  INT\r
9148 DVDIR           000004  INT\r
9149 DVDIRI          400000  INT\r
9150 DVIN            000002  INT\r
9151 DVLPT           040000  INT\r
9152 DVMTA           000020  INT\r
9153 DVOUT           000001  INT\r
9154 DVTTY           000010  INT\r
9155 ENTRB           020000  INT\r
9156 FIRDB           000001' \r
9157 FSNCHN          000303  INT\r
9158 I               000010  INT\r
9159 IB              000013  INT\r
9160 IBUFB           200000  INT\r
9161 INITB           400000  INT\r
9162 INPB            010000  INT\r
9163 IO              000020  INT\r
9164 IOACT           010000  INT\r
9165 IOBEG           000002  INT\r
9166 IOBKTL          040000  INT\r
9167 IOCON           000040  INT\r
9168 IODEND          020000  INT\r
9169 IODERR          200000  INT\r
9170 IODISC          400000  INT\r
9171 IODONE          400000  INT\r
9172 IODTER          100000  INT\r
9173 IOEND           000040  INT\r
9174 \r
9175 \r
9176 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 12-2\r
9177 IOINI2  MAC     24-APR-78 03:06         SYMBOL TABLE\r
9178 \r
9179 IOFST           000004  INT\r
9180 IOIMPM          400000  INT\r
9181 IONRCK          000100  INT\r
9182 IORDEL          000100  INT\r
9183 IORET           000020  INT\r
9184 IOS             000000  INT\r
9185 IOSTRT          000010  INT\r
9186 IOUSE           400000  INT\r
9187 IOW             000001  INT\r
9188 IOWC            000020  INT\r
9189 IOWS            400000  INT\r
9190 ITEM            000004  INT\r
9191 JBFADR          000000  INT\r
9192 JBFCTR          000002  INT\r
9193 JBFPTR          000001  INT\r
9194 JBUF            000005  INT\r
9195 JDAT            000011  INT\r
9196 JERR            002000  INT\r
9197 JIOW            100000  INT\r
9198 JNA             004000  INT\r
9199 LOOKB           040000  INT\r
9200 MINIMA          000000  INT\r
9201 MLTTYL  777777  777776  INT\r
9202 MTCNUM          000000  \r
9203 MTTYLN  777777  777776  INT\r
9204 MTW             010000  INT\r
9205 OBUFB           100000  INT\r
9206 OUTPB           004000  INT\r
9207 PDP             000003  INT\r
9208 PICHN           000100  INT\r
9209 PICLK           004202  INT\r
9210 PIOFF           000400  INT\r
9211 PION            000200  INT\r
9212 PROG            000007  INT\r
9213 RUN             200000  INT\r
9214 RUNABL          204000  INT\r
9215 SCNCHN          000003  \r
9216 SCNLIN          000001  \r
9217 STTYB1          000021  INT\r
9218 STTYBF          000020  INT\r
9219 TAC             000001  INT\r
9220 TAC1            000002  INT\r
9221 TCONLN          000001  INT\r
9222 TEM             000010  INT\r
9223 \r
9224 \r
9225 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 12-3\r
9226 IOINI2  MAC     24-APR-78 03:06         SYMBOL TABLE\r
9227 \r
9228 TSCNLN          000000  INT\r
9229 TTY0            000035' \r
9230 TTY0DB          000001' INT\r
9231 TTY1            000071' \r
9232 TTY1DB          000035' INT\r
9233 TTYATC          020000  INT\r
9234 TTYBFE          000033  INT\r
9235 TTYBM1          000013  INT\r
9236 TTYBUF          000014  INT\r
9237 TTYCTR          000012  INT\r
9238 TTYDSP          000040' EXT\r
9239 TTYLEN          000002  INT\r
9240 TTYLST          000001' INT\r
9241 TTYPTR          000011  INT\r
9242 TTYSAV          000013  INT\r
9243 TTYUSE          010000  INT\r
9244 UDIR            000012  INT\r
9245 UFREE           000011  INT\r
9246 USRMOD          010000  INT\r
9247 UTDSP           000074' EXT\r
9248 UUO             000014  INT\r
9249 \f   IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            333333333   \r
9250    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            333333333   \r
9251    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            333333333   \r
9252       III            OOO         OOO            III            NNN         NNN            III            333         333\r
9253       III            OOO         OOO            III            NNN         NNN            III            333         333\r
9254       III            OOO         OOO            III            NNN         NNN            III            333         333\r
9255       III            OOO         OOO            III            NNNNNN      NNN            III                        333\r
9256       III            OOO         OOO            III            NNNNNN      NNN            III                        333\r
9257       III            OOO         OOO            III            NNNNNN      NNN            III                        333\r
9258       III            OOO         OOO            III            NNN   NNN   NNN            III                     333   \r
9259       III            OOO         OOO            III            NNN   NNN   NNN            III                     333   \r
9260       III            OOO         OOO            III            NNN   NNN   NNN            III                     333   \r
9261       III            OOO         OOO            III            NNN      NNNNNN            III                        333\r
9262       III            OOO         OOO            III            NNN      NNNNNN            III                        333\r
9263       III            OOO         OOO            III            NNN      NNNNNN            III                        333\r
9264       III            OOO         OOO            III            NNN         NNN            III            333         333\r
9265       III            OOO         OOO            III            NNN         NNN            III            333         333\r
9266       III            OOO         OOO            III            NNN         NNN            III            333         333\r
9267    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            333333333   \r
9268    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            333333333   \r
9269    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            333333333   \r
9270 \r
9271 \r
9272 \r
9273 \r
9274 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
9275 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
9276 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
9277 LLL                  SSS                        TTT                                                                     \r
9278 LLL                  SSS                        TTT                                                                     \r
9279 LLL                  SSS                        TTT                                                                     \r
9280 LLL                  SSS                        TTT                                                                     \r
9281 LLL                  SSS                        TTT                                                                     \r
9282 LLL                  SSS                        TTT                                                                     \r
9283 LLL                     SSSSSSSSS               TTT                                                                     \r
9284 LLL                     SSSSSSSSS               TTT                                                                     \r
9285 LLL                     SSSSSSSSS               TTT                                                                     \r
9286 LLL                              SSS            TTT                                                                     \r
9287 LLL                              SSS            TTT                                                                     \r
9288 LLL                              SSS            TTT                                                                     \r
9289 LLL                              SSS            TTT                                                                     \r
9290 LLL                              SSS            TTT                                                                     \r
9291 LLL                              SSS            TTT                                                                     \r
9292 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
9293 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
9294 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
9295 \r
9296 \r
9297 \r
9298 \r
9299 Request created: 24-April-1978  05:53:58\r
9300 File: DSKB0 :IOINI3.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:34\r
9301 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1777 \r
9302 File will be deleted after printing\r
9303 \f\r
9304 IOINI1 - IO INITIALIZATION PART 1       MACRO 10 05:51 24-APR-78 PAGE 1\r
9305 S       MAC     24-APR-78 21:40         MAXIMAL CONFIGURATION\r
9306 \r
9307                                         XLIST\r
9308                                        LIST\r
9309                                 ;SOME MACROS FOR DEFINING CONFIGURATION\r
9310 \r
9311                                 DEFINE NAME (A)\r
9312                                 <DEFINE NAME1\r
9313                                 <CONFIG:  ASCIZ /A/\r
9314                                 INTERNAL CONFIG\r
9315                                 >\r
9316                                 XP A,0\r
9317                                 SUBTTL A CONFIGURATION\r
9318                                 >\r
9319 \r
9320                                 DEFINE DATE (A)\r
9321                                 <DEFINE DATE1\r
9322                                 <SYSDAT:  ASCIZ /A/\r
9323                                 INTERNAL SYSDAT\r
9324                                 >>\r
9325 \r
9326                                 DEFINE VERSION (A,B)\r
9327                                 <DEFINE VERS1\r
9328                                 <SYSNUM:  XWD ^D'A,^D'B\r
9329                                 XP SYSMOD,^D'A\r
9330                                 XP SYSVER,^D'B\r
9331                                 INTERNAL SYSNUM\r
9332                                 >>\r
9333 \r
9334                                 DEFINE CUSPTAPE (A)\r
9335                                 <DEFINE CUSP1\r
9336                                 <SYSTAP:  SIXBIT /A/\r
9337                                 INTERNAL SYSTAP\r
9338                                 >>\r
9339 \r
9340                                 DEFINE ACPDL (J,CHJN,CHJPDN)\r
9341                                 <         CH'J'N=CHJN\r
9342                                  CH'J'PDN=CHJPDN\r
9343                                 >\r
9344 \r
9345 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 2\r
9346 IOINI   MAC     24-APR-78 01:14         MAXIMAL CONFIGURATION\r
9347 \r
9348 \r
9349                                 NAME <MAXIMAL>^DEFINE NAME1\r
9350                                 <CONFIG:  ASCIZ /MAXIMAL/\r
9351                                 INTERNAL CONFIG\r
9352                                 >\r
9353 \r
9354 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 2\r
9355 IOMAX   MAC     24-APR-78 02:50         MAXIMAL CONFIGURATION\r
9356 \r
9357 \r
9358                                         DATE <8-16-65>^DEFINE DATE1\r
9359                                 <SYSDAT:  ASCIZ /8-16-65/\r
9360                                 INTERNAL SYSDAT\r
9361                                 >^\r
9362                                         VERSION 1,4^DEFINE VERS1\r
9363                                 <SYSNUM:  XWD ^D1,^D4\r
9364                                 XP SYSMOD,^D1\r
9365                                 XP SYSVER,^D4\r
9366                                 INTERNAL SYSNUM\r
9367                                 >^\r
9368                                         CUSPTAPE DTA0^DEFINE CUSP1\r
9369                                 <SYSTAP:  SIXBIT /DTA0/\r
9370                                 INTERNAL SYSTAP\r
9371                                 >^\r
9372 \r
9373                                 ;DEFINE THE IO PART OF THE SYSTEM\r
9374                                 ;THAT IS:\r
9375                                 ;         DEFINE INTERRUPT SERVICE ROTUINE TO BE USED\r
9376                                 ;       ASSIGN DEVICES TO PI CHANNELS\r
9377 \r
9378                                 DEFINE SYSTEM\r
9379                                  <\r
9380                                  ASSOC APR,6,<>\r
9381                                  ASSOC CTY,3,<>\r
9382                                  ASSOC SCN,3,<TTY0,TTY1>\r
9383                                  ASSOC DTC,4,<DTA0>\r
9384                                  ASSOC DTC,4,<DTA1>\r
9385                                  ASSOC DTC,4,<DTA2>\r
9386                                  ASSOC DTC,4,<DTA3>\r
9387                                  ASSOC MTC,2,<MTA0>\r
9388                                  ASSOC MTC,2,<MTA1>\r
9389                                  ASSOC MTC,2,<MTA2>\r
9390                                  ASSOC MTC,2,<MTA3>\r
9391                                  ASSOC LPT,5,<LPT>\r
9392                                  ASSOC PTP,5,<PTP>\r
9393                                  ASSOC PTR,5,<PTR>\r
9394                                  ASSOC CDR,5,<CDR>\r
9395                                 >\r
9396 \r
9397                         000001  DTSIZ=1   ;MULTIPLE DECTAPE DIRECTORIES\r
9398 \r
9399                         000001  SCNLIN=1\r
9400 \r
9401                                 ;DEFINE HIGHEST AC TO SAVE AND LENGTH OF PD LIST FOR EACH PI CHANNEL\r
9402 \r
9403                         000000  ACPDL (1,0,0)^    CH1N=0\r
9404                         000011  ACPDL (2,11,20)^          CH2N=11\r
9405                         000011  ACPDL (3,11,20)^          CH3N=11\r
9406                         000011  ACPDL (4,11,20)^          CH4N=11\r
9407                         000011  ACPDL (5,11,20)^          CH5N=11\r
9408                         000017  ACPDL (6,17,20^   CH6N=17\r
9409                         000000  ACPDL (7,0,0)^    CH7N=0\r
9410 \r
9411 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 2-1\r
9412 IOMAX   MAC     24-APR-78 02:50         MAXIMAL CONFIGURATION\r
9413 \r
9414                                           TITLE IOINI1 - IO INITIALIZATION PART 1\r
9415         000000' 466033  044632            NAME1^CONFIG:  ASCIZ /MAXIMAL/\r
9416         000001' 406300  000000\r
9417         000002' 341326  133132            DATE1^SYSDAT:  ASCIZ /8-16-65/\r
9418         000003' 331520  000000\r
9419         000004' 000001  000004            VERS1^SYSNUM:  XWD ^D1,^D4\r
9420         000005' 446441  200000            CUSP1^SYSTAP:  SIXBIT /DTA0/\r
9421 \r
9422                                 ;CONFIGURATION INDEPENDANT PART OF IOINIT FOLLOWS:\r
9423 \r
9424                                 EXTERNAL ERROR\r
9425 \r
9426                                 ;SETUP CHANNEL SAVE AND RESTORE ROUTINES\r
9427 \r
9428                         000000  CHANU1=0\r
9429                         000000  CHANU2=0\r
9430                         000000  CHANU3=0\r
9431                         000000  CHANU4=0\r
9432                         000000  CHANU5=0\r
9433                         000000  CHANU6=0\r
9434                         000000  CHANU7=0\r
9435                                 DEFINE ASSOC(A,NO,D)\r
9436                                 <IFE CHANU'NO,<\r
9437                                 CHANU'NO=1\r
9438                                 INTERNAL CH'NO'SAV,CH'NO',CH'NO'XIT,CH'NO'SAC\r
9439                                 \r
9440                                 CH'NO'SAV: 0\r
9441                                   MOVEM CH'NO'N, CH'NO'SAC+CH'NO'N\r
9442                                   MOVEI CH'NO'N, CH'NO'SAC\r
9443                                   BLT CH'NO'N,CH'NO'SAC+CH'NO'N-1       ;DO ONLY ONCE FOR EACH CHANNEL\r
9444                                   MOVE PDP, CH'NO'CJ\r
9445                                   JRST @CH'NO'SAV\r
9446                                 \r
9447                                 CH'NO'SAC: REPEAT CH'NO'N+1,<EXP 0>     ;SPACE TO SAVE SOM AC'S\r
9448                                           EXP CH'NO'XIT         ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
9449                                           REPEAT CH'NO'PDN-1,<EXP 0>    ;REST OF PD LIST\r
9450                                 \r
9451                                 CH'NO'XIT: MOVSI CH'NO'N, CH'NO'SAC\r
9452                                  BLT CH'NO'N, CH'NO'N\r
9453                                  JEN @CH'NO\r
9454                                 \r
9455                                 CH'NO'CJ: XWD -CH'NO'PDN+1,CH'NO'SAC+CH'NO'N+1  ;INIT. SETTING OF P\r
9456                                 \r
9457                                 CH'NO':   0             ;PC STORED HERE BY JSR\r
9458                                  JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
9459                                  AOS CH'NO'ERR          ;SPURIOUS INTERRUPT, ADD TO COUNT\r
9460                                  JEN @CH'NO             ;AND DISMISS\r
9461                                 >\r
9462                                 >\r
9463                                 ;GENERATE THE SAVE AND RESTORE ROUTINES\r
9464 \r
9465                                           SYSTEM^       000006' 000000  000000  CH6SAV: 0\r
9466         000007' 202740  000033'   MOVEM CH6N, CH6SAC+CH6N\r
9467 \r
9468 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 1\r
9469 IOINI1  MAC     24-APR-78 04:05         MAXIMAL CONFIGURATION\r
9470 \r
9471         000010' 201740  000014'   MOVEI CH6N, CH6SAC\r
9472         000011' 251740  000032'   BLT CH6N,CH6SAC+CH6N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
9473         000012' 200140  000057'   MOVE PDP, CH6CJ\r
9474         000013' 254020  000006'   JRST @CH6SAV\r
9475         000014' 000000  000000  EXP 0\r
9476         000015' 000000  000000  EXP 0\r
9477         000016' 000000  000000  EXP 0\r
9478         000017' 000000  000000  EXP 0\r
9479         000020' 000000  000000  EXP 0\r
9480         000021' 000000  000000  EXP 0\r
9481         000022' 000000  000000  EXP 0\r
9482         000023' 000000  000000  EXP 0\r
9483         000024' 000000  000000  EXP 0\r
9484         000025' 000000  000000  EXP 0\r
9485         000026' 000000  000000  EXP 0\r
9486         000027' 000000  000000  EXP 0\r
9487         000030' 000000  000000  EXP 0\r
9488         000031' 000000  000000  EXP 0\r
9489         000032' 000000  000000  EXP 0\r
9490         000033' 000000  000000  EXP 0   ;SPACE TO SAVE SOM AC'S\r
9491         000034' 000000  000054'           EXP CH6XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
9492         000035' 000000  000000  EXP 0\r
9493         000036' 000000  000000  EXP 0\r
9494         000037' 000000  000000  EXP 0\r
9495         000040' 000000  000000  EXP 0\r
9496         000041' 000000  000000  EXP 0\r
9497         000042' 000000  000000  EXP 0\r
9498         000043' 000000  000000  EXP 0\r
9499         000044' 000000  000000  EXP 0\r
9500         000045' 000000  000000  EXP 0\r
9501         000046' 000000  000000  EXP 0\r
9502         000047' 000000  000000  EXP 0\r
9503         000050' 000000  000000  EXP 0\r
9504         000051' 000000  000000  EXP 0\r
9505         000052' 000000  000000  EXP 0\r
9506         000053' 000000  000000  EXP 0   ;REST OF PD LIST\r
9507         000054' 205740  000014' CH6XIT: MOVSI CH6N, CH6SAC\r
9508         000055' 251740  000017   BLT CH6N, CH6N\r
9509         000056' 254520  000060'  JEN @CH6\r
9510         000057' 777761  000034' CH6CJ: XWD -CH6PDN+1,CH6SAC+CH6N+1      ;INIT. SETTING OF P\r
9511         000060' 000000  000000  CH6:      0             ;PC STORED HERE BY JSR\r
9512         000061' 254000  000062'  JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
9513         000062' 350000  000456'  AOS CH6ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
9514         000063' 254520  000060'  JEN @CH6               ;AND DISMISS\r
9515         000064' 000000  000000  CH3SAV: 0\r
9516         000065' 202440  000103'   MOVEM CH3N, CH3SAC+CH3N\r
9517         000066' 201440  000072'   MOVEI CH3N, CH3SAC\r
9518         000067' 251440  000102'   BLT CH3N,CH3SAC+CH3N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
9519         000070' 200140  000127'   MOVE PDP, CH3CJ\r
9520         000071' 254020  000064'   JRST @CH3SAV\r
9521         000072' 000000  000000  EXP 0\r
9522         000073' 000000  000000  EXP 0\r
9523         000074' 000000  000000  EXP 0\r
9524 \r
9525 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 1-1\r
9526 IOINI1  MAC     24-APR-78 04:05         MAXIMAL CONFIGURATION\r
9527 \r
9528         000075' 000000  000000  EXP 0\r
9529         000076' 000000  000000  EXP 0\r
9530         000077' 000000  000000  EXP 0\r
9531         000100' 000000  000000  EXP 0\r
9532         000101' 000000  000000  EXP 0\r
9533         000102' 000000  000000  EXP 0\r
9534         000103' 000000  000000  EXP 0   ;SPACE TO SAVE SOM AC'S\r
9535         000104' 000000  000124'           EXP CH3XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
9536         000105' 000000  000000  EXP 0\r
9537         000106' 000000  000000  EXP 0\r
9538         000107' 000000  000000  EXP 0\r
9539         000110' 000000  000000  EXP 0\r
9540         000111' 000000  000000  EXP 0\r
9541         000112' 000000  000000  EXP 0\r
9542         000113' 000000  000000  EXP 0\r
9543         000114' 000000  000000  EXP 0\r
9544         000115' 000000  000000  EXP 0\r
9545         000116' 000000  000000  EXP 0\r
9546         000117' 000000  000000  EXP 0\r
9547         000120' 000000  000000  EXP 0\r
9548         000121' 000000  000000  EXP 0\r
9549         000122' 000000  000000  EXP 0\r
9550         000123' 000000  000000  EXP 0   ;REST OF PD LIST\r
9551         000124' 205440  000072' CH3XIT: MOVSI CH3N, CH3SAC\r
9552         000125' 251440  000011   BLT CH3N, CH3N\r
9553         000126' 254520  000130'  JEN @CH3\r
9554         000127' 777761  000104' CH3CJ: XWD -CH3PDN+1,CH3SAC+CH3N+1      ;INIT. SETTING OF P\r
9555         000130' 000000  000000  CH3:      0             ;PC STORED HERE BY JSR\r
9556         000131' 254000  000132'  JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
9557         000132' 350000  000453'  AOS CH3ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
9558         000133' 254520  000130'  JEN @CH3               ;AND DISMISS\r
9559         000134' 000000  000000  CH4SAV: 0\r
9560         000135' 202440  000153'   MOVEM CH4N, CH4SAC+CH4N\r
9561         000136' 201440  000142'   MOVEI CH4N, CH4SAC\r
9562         000137' 251440  000152'   BLT CH4N,CH4SAC+CH4N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
9563         000140' 200140  000177'   MOVE PDP, CH4CJ\r
9564         000141' 254020  000134'   JRST @CH4SAV\r
9565         000142' 000000  000000  EXP 0\r
9566         000143' 000000  000000  EXP 0\r
9567         000144' 000000  000000  EXP 0\r
9568         000145' 000000  000000  EXP 0\r
9569         000146' 000000  000000  EXP 0\r
9570         000147' 000000  000000  EXP 0\r
9571         000150' 000000  000000  EXP 0\r
9572         000151' 000000  000000  EXP 0\r
9573         000152' 000000  000000  EXP 0\r
9574         000153' 000000  000000  EXP 0   ;SPACE TO SAVE SOM AC'S\r
9575         000154' 000000  000174'           EXP CH4XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
9576         000155' 000000  000000  EXP 0\r
9577         000156' 000000  000000  EXP 0\r
9578         000157' 000000  000000  EXP 0\r
9579         000160' 000000  000000  EXP 0\r
9580         000161' 000000  000000  EXP 0\r
9581 \r
9582 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 1-2\r
9583 IOINI1  MAC     24-APR-78 04:05         MAXIMAL CONFIGURATION\r
9584 \r
9585         000162' 000000  000000  EXP 0\r
9586         000163' 000000  000000  EXP 0\r
9587         000164' 000000  000000  EXP 0\r
9588         000165' 000000  000000  EXP 0\r
9589         000166' 000000  000000  EXP 0\r
9590         000167' 000000  000000  EXP 0\r
9591         000170' 000000  000000  EXP 0\r
9592         000171' 000000  000000  EXP 0\r
9593         000172' 000000  000000  EXP 0\r
9594         000173' 000000  000000  EXP 0   ;REST OF PD LIST\r
9595         000174' 205440  000142' CH4XIT: MOVSI CH4N, CH4SAC\r
9596         000175' 251440  000011   BLT CH4N, CH4N\r
9597         000176' 254520  000200'  JEN @CH4\r
9598         000177' 777761  000154' CH4CJ: XWD -CH4PDN+1,CH4SAC+CH4N+1      ;INIT. SETTING OF P\r
9599         000200' 000000  000000  CH4:      0             ;PC STORED HERE BY JSR\r
9600         000201' 254000  000202'  JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
9601         000202' 350000  000454'  AOS CH4ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
9602         000203' 254520  000200'  JEN @CH4               ;AND DISMISS\r
9603         000204' 000000  000000  CH2SAV: 0\r
9604         000205' 202440  000223'   MOVEM CH2N, CH2SAC+CH2N\r
9605         000206' 201440  000212'   MOVEI CH2N, CH2SAC\r
9606         000207' 251440  000222'   BLT CH2N,CH2SAC+CH2N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
9607         000210' 200140  000247'   MOVE PDP, CH2CJ\r
9608         000211' 254020  000204'   JRST @CH2SAV\r
9609         000212' 000000  000000  EXP 0\r
9610         000213' 000000  000000  EXP 0\r
9611         000214' 000000  000000  EXP 0\r
9612         000215' 000000  000000  EXP 0\r
9613         000216' 000000  000000  EXP 0\r
9614         000217' 000000  000000  EXP 0\r
9615         000220' 000000  000000  EXP 0\r
9616         000221' 000000  000000  EXP 0\r
9617         000222' 000000  000000  EXP 0\r
9618         000223' 000000  000000  EXP 0   ;SPACE TO SAVE SOM AC'S\r
9619         000224' 000000  000244'           EXP CH2XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
9620         000225' 000000  000000  EXP 0\r
9621         000226' 000000  000000  EXP 0\r
9622         000227' 000000  000000  EXP 0\r
9623         000230' 000000  000000  EXP 0\r
9624         000231' 000000  000000  EXP 0\r
9625         000232' 000000  000000  EXP 0\r
9626         000233' 000000  000000  EXP 0\r
9627         000234' 000000  000000  EXP 0\r
9628         000235' 000000  000000  EXP 0\r
9629         000236' 000000  000000  EXP 0\r
9630         000237' 000000  000000  EXP 0\r
9631         000240' 000000  000000  EXP 0\r
9632         000241' 000000  000000  EXP 0\r
9633         000242' 000000  000000  EXP 0\r
9634         000243' 000000  000000  EXP 0   ;REST OF PD LIST\r
9635         000244' 205440  000212' CH2XIT: MOVSI CH2N, CH2SAC\r
9636         000245' 251440  000011   BLT CH2N, CH2N\r
9637         000246' 254520  000250'  JEN @CH2\r
9638 \r
9639 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 1-3\r
9640 IOINI1  MAC     24-APR-78 04:05         MAXIMAL CONFIGURATION\r
9641 \r
9642         000247' 777761  000224' CH2CJ: XWD -CH2PDN+1,CH2SAC+CH2N+1      ;INIT. SETTING OF P\r
9643         000250' 000000  000000  CH2:      0             ;PC STORED HERE BY JSR\r
9644         000251' 254000  000252'  JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
9645         000252' 350000  000452'  AOS CH2ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
9646         000253' 254520  000250'  JEN @CH2               ;AND DISMISS\r
9647         000254' 000000  000000  CH5SAV: 0\r
9648         000255' 202440  000273'   MOVEM CH5N, CH5SAC+CH5N\r
9649         000256' 201440  000262'   MOVEI CH5N, CH5SAC\r
9650         000257' 251440  000272'   BLT CH5N,CH5SAC+CH5N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
9651         000260' 200140  000317'   MOVE PDP, CH5CJ\r
9652         000261' 254020  000254'   JRST @CH5SAV\r
9653         000262' 000000  000000  EXP 0\r
9654         000263' 000000  000000  EXP 0\r
9655         000264' 000000  000000  EXP 0\r
9656         000265' 000000  000000  EXP 0\r
9657         000266' 000000  000000  EXP 0\r
9658         000267' 000000  000000  EXP 0\r
9659         000270' 000000  000000  EXP 0\r
9660         000271' 000000  000000  EXP 0\r
9661         000272' 000000  000000  EXP 0\r
9662         000273' 000000  000000  EXP 0   ;SPACE TO SAVE SOM AC'S\r
9663         000274' 000000  000314'           EXP CH5XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
9664         000275' 000000  000000  EXP 0\r
9665         000276' 000000  000000  EXP 0\r
9666         000277' 000000  000000  EXP 0\r
9667         000300' 000000  000000  EXP 0\r
9668         000301' 000000  000000  EXP 0\r
9669         000302' 000000  000000  EXP 0\r
9670         000303' 000000  000000  EXP 0\r
9671         000304' 000000  000000  EXP 0\r
9672         000305' 000000  000000  EXP 0\r
9673         000306' 000000  000000  EXP 0\r
9674         000307' 000000  000000  EXP 0\r
9675         000310' 000000  000000  EXP 0\r
9676         000311' 000000  000000  EXP 0\r
9677         000312' 000000  000000  EXP 0\r
9678         000313' 000000  000000  EXP 0   ;REST OF PD LIST\r
9679         000314' 205440  000262' CH5XIT: MOVSI CH5N, CH5SAC\r
9680         000315' 251440  000011   BLT CH5N, CH5N\r
9681         000316' 254520  000320'  JEN @CH5\r
9682         000317' 777761  000274' CH5CJ: XWD -CH5PDN+1,CH5SAC+CH5N+1      ;INIT. SETTING OF P\r
9683         000320' 000000  000000  CH5:      0             ;PC STORED HERE BY JSR\r
9684         000321' 254000  000322'  JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
9685         000322' 350000  000455'  AOS CH5ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
9686         000323' 254520  000320'  JEN @CH5               ;AND DISMISS\r
9687 \r
9688                                 ;SET UP NULL CHANNEL ROUTINES FOR UNUSED CHANNELS\r
9689 \r
9690                                 DEFINE NULCHN(J)\r
9691                                 <\r
9692                                 INTERNAL CH'J,CH'J'XIT\r
9693                                 CH'J:     0\r
9694                                 CH'J'XIT: AOS CH'J'ERR\r
9695 \r
9696 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 1-4\r
9697 IOINI1  MAC     24-APR-78 04:05         MAXIMAL CONFIGURATION\r
9698 \r
9699                                  JEN @CH'J\r
9700                                 >\r
9701 \r
9702                                           IFE CHANU1,<NULCHN(1)>^\r
9703         000324' 000000  000000  CH1:      0\r
9704         000325' 350000  000451' CH1XIT: AOS CH1ERR\r
9705         000326' 254520  000324'  JEN @CH1\r
9706                                           IFE CHANU2,<NULCHN(2)>\r
9707                                           IFE CHANU3,<NULCHN(3)>\r
9708                                           IFE CHANU4,<NULCHN(4)>\r
9709                                           IFE CHANU5,<NULCHN(5)>\r
9710                                           IFE CHANU6,<NULCHN(6)>\r
9711                                           IFE CHANU7,<NULCHN(7)>^\r
9712         000327' 000000  000000  CH7:      0\r
9713         000330' 350000  000457' CH7XIT: AOS CH7ERR\r
9714         000331' 254520  000327'  JEN @CH7\r
9715 \r
9716 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 2\r
9717 IOINI1  MAC     24-APR-78 04:05         MAXIMAL CONFIGURATION\r
9718 \r
9719 \r
9720 \r
9721                                 ;ASSIGN DEVICE TO CHANNELS AND SETUP CORESPONDENCE TABLE\r
9722                                 ;OF CHANNELS TO SERVICE ROUTINES\r
9723 \r
9724                                 DEFINE ASSOC (A,N,D)\r
9725                                 <         A'RET=CH'N'XIT\r
9726                                  A'SAV=CH'N'SAV\r
9727                                  A'SAC=CH'N'SAC\r
9728                                  A'CHL=CH'N\r
9729                                  A'CHN=N\r
9730                                  A'BIT=1\r
9731                                  REPEAT 7-N,<A'BIT=A'BIT*2>\r
9732                                  A'OFF=1000+A'BIT       ;CONO PI, A'OFF WIL TURN CHANNEL OFF\r
9733                                  A'ON=2000+A'BIT        ;TURN BACK ON\r
9734                                  A'ACT=4000+A'BIT       ;FORCE INTERRUPT ON CHAN.\r
9735                                 INTERN A'RET, A'SAV, A'CHL, A'CHN, A'SAC\r
9736                                 INTERNAL A'OFF,A'ON,A'ACT,A'BIT\r
9737                                  XWD A'CHL,A'INT\r
9738                                  EXTERNAL A'INT\r
9739                                 >\r
9740 \r
9741                                 INTERNAL DEVINT\r
9742         000332'                 DEVINT:   SYSTEM^       000332' 000060' 000000*  XWD APRCHL,APRINT\r
9743         000333' 000130' 000000*  XWD CTYCHL,CTYINT\r
9744         000334' 000130' 000000*  XWD SCNCHL,SCNINT\r
9745         000335' 000200' 000000*  XWD DTCCHL,DTCINT\r
9746         000336' 000200' 000335*  XWD DTCCHL,DTCINT\r
9747         000337' 000200' 000336*  XWD DTCCHL,DTCINT\r
9748         000340' 000200' 000337*  XWD DTCCHL,DTCINT\r
9749         000341' 000250' 000000*  XWD MTCCHL,MTCINT\r
9750         000342' 000250' 000341*  XWD MTCCHL,MTCINT\r
9751         000343' 000250' 000342*  XWD MTCCHL,MTCINT\r
9752         000344' 000250' 000343*  XWD MTCCHL,MTCINT\r
9753         000345' 000320' 000000*  XWD LPTCHL,LPTINT\r
9754         000346' 000320' 000000*  XWD PTPCHL,PTPINT\r
9755         000347' 000320' 000000*  XWD PTRCHL,PTRINT\r
9756         000350' 000320' 000000*  XWD CDRCHL,CDRINT\r
9757                         000017  NDEV=.-DEVINT           ;NO. OF DEVICE INTERUPT SERVICE ROUTINES\r
9758                         000016  NDEVM1=NDEV-1           ;(USED BY ONCE)\r
9759                                 INTERNAL NDEVM1\r
9760 \r
9761 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 3\r
9762 IOINI1  MAC     24-APR-78 04:05         MAXIMAL CONFIGURATION\r
9763 \r
9764 \r
9765 \r
9766                                 ;INITIALIZE SOME IO DEVICES\r
9767                                 ;IOINI CALLED BY A PUSHJ PDP, FROM SYSINI AT SYSTEM INITIALIZATION\r
9768 \r
9769                                 DEFINE IOINIT (A)\r
9770                                 <IRP A\r
9771                                 <         EXTERNAL A'INI\r
9772                                  PUSHJ PDP,A'INI\r
9773                                 >>\r
9774 \r
9775                                 DEFINE ASSOC (A,B,C)\r
9776                                 <         IFIDN <A><MTC>,< IOINIT MTC>\r
9777                                  IFIDN <A><DTC>,< IOINIT DTC>\r
9778                                  IFIDN <A><LPT>,< IOINIT LPT>\r
9779                                  IFIDN <A><SCN>,< IOINIT SCN>\r
9780                                  IFIDN <A><PTP>,<IOINIT PTP>\r
9781                                  IFIDN <A><PTR>,<IOINIT PTR>\r
9782                                 >\r
9783 \r
9784                                 INTERNAL IOINI\r
9785 \r
9786         000351'                 IOINI:  SYSTEM^ 000351' 260140  000000*  PUSHJ PDP,SCNINI\r
9787         000352' 260140  000000*  PUSHJ PDP,DTCINI\r
9788         000353' 260140  000352*  PUSHJ PDP,DTCINI\r
9789         000354' 260140  000353*  PUSHJ PDP,DTCINI\r
9790         000355' 260140  000354*  PUSHJ PDP,DTCINI\r
9791         000356' 260140  000000*  PUSHJ PDP,MTCINI\r
9792         000357' 260140  000356*  PUSHJ PDP,MTCINI\r
9793         000360' 260140  000357*  PUSHJ PDP,MTCINI\r
9794         000361' 260140  000360*  PUSHJ PDP,MTCINI\r
9795         000362' 260140  000000*  PUSHJ PDP,LPTINI\r
9796         000363' 260140  000000*  PUSHJ PDP,PTPINI\r
9797         000364' 260140  000000*  PUSHJ PDP,PTRINI\r
9798         000365' 254000  000000*         JRST CLKINI             ;ALWAYS INIT. CLOCK\r
9799 \r
9800                                 EXTERNAL CLKINI\r
9801 \r
9802 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 4\r
9803 IOINI1  MAC     24-APR-78 04:05         MAXIMAL CONFIGURATION\r
9804 \r
9805 \r
9806 \r
9807                                 ;CLOCK CONTROL PARAMETERS\r
9808 \r
9809                         004006            CLDS=4000+APRCHN      ;CLOCK DISABLE\r
9810                         000206            CLEN=200+APRCHN       ;CLOCK ENABLE\r
9811 \r
9812                                           INTERNAL CLDS,CLEN\r
9813 \r
9814                                 ;BYTE POINTERS\r
9815 \r
9816         000366' 270400  000014  PUUOAC:   POINT 4,UUO,12        ;UUO AC FIELD\r
9817         000367' 000400  000000  PIOMOD:   POINT 4,IOS,35        ;MODE BITS\r
9818         000370' 331106  000001  PJOBN:    POINT 9,DEVCHR(DEVDAT),8      ;DEVICE JOB ASSIGNMENT\r
9819         000371' 220406  000001  PJDCHN:   POINT 4,DEVCHR(DEVDAT),17     ;JOB DEVICE CHANNEL NO.\r
9820         000372' 140606  000001  PUNIT:    POINT 6,DEVCHR(DEVDAT),23     ;DEVICE UNIT NO.\r
9821 \r
9822                                 INTERNAL PUUOAC,PIOMOD,PJOBN,PJDCHN,PUNIT\r
9823 \r
9824                                 ;COMMON SUBROUTINE RETURNS\r
9825 \r
9826         000373' 350003  000000  CPOPJ2:   AOS (PDP)\r
9827         000374' 350003  000000  CPOPJ1:   AOS (PDP)\r
9828         000375' 263140  000000  CPOPJ:    POPJ PDP,\r
9829 \r
9830                                 INTERNAL CPOPJ,CPOPJ1,CPOPJ2\r
9831 \r
9832 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 5\r
9833 IOINI1  MAC     24-APR-78 04:05         MAXIMAL CONFIGURATION\r
9834 \r
9835 \r
9836                                 ,SYSTEM DATA STORAGE\r
9837 \r
9838 \r
9839                                 INTERNAL JOB,JOBADR,JBTADR,JBTSTS,USRREL,USRINF,USRJDA\r
9840                                 INTERNAL USRPDP,JOBDAT,USRDDT,USRSAV,USRUXT,USRLO,USRHI\r
9841                                 INTERNAL COMCNT,IOCOMP,USRPOV,STOPU,SCHEDF,TIME,JBTAD1\r
9842                                 INTERNAL MTAVAL,DCAVAL,DTAVAL,MTREQ,DCREQ,DTREQ,TTYTAB,CORTAB\r
9843                                 INTERNAL CH1ERR,CH2ERR,CH3ERR,CH4ERR,CH5ERR,CH6ERR,CH7ERR\r
9844                                 INTERNAL CORLST,CORTAB,CORTAL,SYSEND,SYSBEG,DEVOPR\r
9845 \r
9846                         000000  JOBN=0  ;DEFINE NO. OF JOBS (0 THRU JOBN-1)\r
9847                                 ;THERE MUST BE MORE TTY DEVICE DATA BLCKS THAN JOBS.\r
9848 \r
9849                                 DEFINE ASSOC (A,N,D)\r
9850                                 <IRP D,<IFIDN <A><SCN>,<JOBN=JOBN+1>>>\r
9851                                           SYSTEM^               777777  777776  MJOBN=-JOBN\r
9852                                 INTERNAL JOBN,MJOBN\r
9853 \r
9854         000376'                 SYSBEG:   ;FIRST LOC IN SYSTEM DATA AREA\r
9855                                 XP SYSBG1,SYSBEG+1      ;FIRST LOC+1\r
9856         000376' 000000  000000  JOB:      0             ;CURRENT JOB NUMBER EXCEPT WEN SCHEDF IS NON-ZERO\r
9857         000377' 000000  000000  JOBADR:   0             ;CONTAINS ADDRESS OF JOB CURRENTLY RUNNING\r
9858         000400' 000000  000000  JOBDAT:   0             ;CONTAINS ADDRESS OF JOB DATA AREA\r
9859 \r
9860         000401'                 JBTADR:   BLOCK JOBN            ;C(LH)=PROTECT, C(RH)=RELOCATION\r
9861                                 XP JBTAD1,JBTADR+1   ;ADDRESS OF JOB 1(USED BY SYSMAK)\r
9862         000403'                 JBTSTS:   BLOCK JOBN            ;CONTAINS STATUS INFORMATION FOR EACH J\r
9863 \r
9864         000405' 000000  000000  USRPDP:   0         ;USER PUSH DOWN POINTER\r
9865         000406' 000000  000000  USRREL:   0         ;LH=0, RH CONTAINS CONTENTS OF PROTECTION REGISTER\r
9866         000407'                 USRLO:    ;FIRST LOC CLEARD BY SETUSR SUBROUTINE\r
9867         000407' 000000  000000  USRUXT:   0         ;UNUSED,  JOBUXT USED TO SAVE UUO PC(UUO0)\r
9868         000410' 000000  000000  USRLEV:   0         ;UNUSED,  JOBLEV USED TO SAVE LOC. 40\r
9869         000411' 000000  000000  USRSAV:   0         ;TEMPORARY STORAGE FOR UUO HANDLER\r
9870         000412' 000000  000000  USRPOV:   0         ;PUSH DOWN OVERFLOW TRAP\r
9871         000413'                           BLOCK 2\r
9872         000415' 000000  000000  USRINF:   0         ;UN LAYED OUT USER INFORMATION\r
9873         000416'                 USRJDA:   BLOCK 20  ;RH=JOB DEVICE ASSIGNMENTS FOR THIS USER,LH=UUOS\r
9874                                 XP USRHI,.-1        ;LAST LOC CLEARED BY SETUSR ROUTINE\r
9875                                 XP USRPFI,.-1       ;LAST LOC PROTECTED FROM IO SERVICE\r
9876                                 XP USRPFU,.         ;LAST LOC PROTECTED FROM USER PROGRAM\r
9877         000436' 000000  000000  USRDDT:   0         ;STARTING ADDR OF USER DDT\r
9878 \r
9879                                 ;DEVICE JUSTR BECOME AVAILABLE FLAGS\r
9880         000437' 000000  000000  MTAVAL:   0          ;MAGNETIC TAPE\r
9881         000440' 000000  000000  DCAVAL:   0          ;DATA CONTROL\r
9882         000441' 000000  000000  DTAVAL:   0          ;DECTAPE\r
9883 \r
9884                                 ;NUMBER OF JOBS WAITING FOR DEVICES(-1=NONE, 0=1 USING, 1=1 USING)\r
9885         000442' 777777  777777  MTREQ:    -1        ;MAGNETIC TAPE\r
9886         000443' 777777  777777  DCREQ:    -1        ;DATA CONTROL\r
9887         000444' 777777  777777  DTREQ:    -1        ;DECTAPE\r
9888 \r
9889 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 5-1\r
9890 IOINI1  MAC     24-APR-78 04:05         MAXIMAL CONFIGURATION\r
9891 \r
9892         000445' 000000  000000  IOCOMP:   0         ;NUMBER OF USERS IN IO WAIT STATE\r
9893         000446' 000000  000000  COMCNT:   0         ;NUMBER OF COMMANDS TYPED-IN BUT NOT DECODED\r
9894         000447' 000000  000000  STOPU:    0         ;NON-ZERO WHEN CLOCK INTERRUPT FORCED TO STOP USER\r
9895         000450' 000000  000000  SCHEDF:   0         ;NON-ZERO WHEN CLOCK ROUTINE IS SCHEDULING\r
9896 \r
9897         000451' 000000  000000  CH1ERR:   0         ;SPURIOUS INTERRUPT COUNTS FOR EACH CHANNEL\r
9898         000452' 000000  000000  CH2ERR:   0\r
9899         000453' 000000  000000  CH3ERR:   0\r
9900         000454' 000000  000000  CH4ERR:   0\r
9901         000455' 000000  000000  CH5ERR:   0\r
9902         000456' 000000  000000  CH6ERR:   0\r
9903         000457' 000000  000000  CH7ERR:   0\r
9904 \r
9905                         000410'            USRLO1=USRLO+1\r
9906                                            INTERNAL USRLO1\r
9907 \r
9908 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 6\r
9909 IOINI1  MAC     24-APR-78 04:05         MAXIMAL CONFIGURATION\r
9910 \r
9911 \r
9912         000460' 000000  000000  TIME:     0             ;TIME SYSTEM HAS RUN IN 60THS OF A SECOND\r
9913 \r
9914 \r
9915                                 XP TTYLEN,SCNLIN+1   ;LENGTH OF TTY TRANSLATOR TABLES(INCLUDING CTY)\r
9916         000461'                 TTYTAB:   BLOCK TTYLEN          ;TTY TRANSLATOR TABLE\r
9917                                                                 ;SIGN BIT = 1 IF COMMAND JUST TYPED\r
9918                                                                 ;BITS 1 -9, JOB CONSOLE IS ATTACHED TO\r
9919                                                                 ;BITS 18-35, THE DEVICE DATA BLOCK FOR\r
9920         000463' 000000  000000  DEVOPR:   0             ;SIXBIT PHYSICAL NAME OF OPERATORS\r
9921                                                         ;CONSOLE SET BY SCNSER TO FIRST ACTIVE TTY.\r
9922                                 ;LOCATIONS FOR CORE ALLOCATION\r
9923                                 XP CORBLK,^D256          ;NO. OF 1K BLOCKS POSSIBLE\r
9924         000464'                 CORTAB:   BLOCK <CORBLK>/^D36+1         ;1K BLOCK USE BIT TABLE\r
9925                                                                 ;A 1 MEANS BLOCK IS IN USE\r
9926         000474' 000000  000000  CORLST:   0             ;1 BIT BYTE POINTER TO LAST FREE BLOCK POSSIBLE\r
9927         000475' 000000  000000  CORTAL:   0             ;TOTAL NO. OF FREE CORE BLOCKS LEFT\r
9928                                 ;CORLST AND CORTAL ARE SET UP AT SYSTEM INITIALIZATION\r
9929 \r
9930                         000475' SYSEND=.-1              ;LAST LOC. CLEARED BY SYSINI\r
9931 \r
9932                                 INTERNAL SYSSIZ\r
9933                                 EXTERNAL SYSFIN\r
9934         000476' 000000  000000* SYSSIZ:   EXP SYSFIN            ;SIZE OF MONITOR(LAST LOC. USED)\r
9935 \r
9936 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 7\r
9937 IOINI1  MAC     24-APR-78 04:05         MAXIMAL CONFIGURATION\r
9938 \r
9939 \r
9940                                           END,\r
9941 \r
9942 NO ERRORS DETECTED\r
9943 \r
9944 PROGRAM BREAK IS 000477\r
9945 \r
9946 9K CORE USED\r
9947 \r
9948 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 8\r
9949 IOINI1  MAC     24-APR-78 04:05         SYMBOL TABLE\r
9950 \r
9951 A               000000  INT\r
9952 AC1             000015  INT\r
9953 AC2             000016  INT\r
9954 AC3             000017  INT\r
9955 AL              000001  INT\r
9956 APRACT          004002  INT\r
9957 APRBIT          000002  INT\r
9958 APRCHL          000060' INT\r
9959 APRCHN          000006  INT\r
9960 APRINT          000332' EXT\r
9961 APROFF          001002  INT\r
9962 APRON           002002  INT\r
9963 APRRET          000054' INT\r
9964 APRSAC          000014' INT\r
9965 APRSAV          000006' INT\r
9966 ASSCON          400000  INT\r
9967 ASSPRG          200000  INT\r
9968 B               000014  INT\r
9969 BUFPNT          000012  INT\r
9970 BUFWRD          000013  INT\r
9971 CDRACT          004004  INT\r
9972 CDRBIT          000004  INT\r
9973 CDRCHL          000320' INT\r
9974 CDRCHN          000005  INT\r
9975 CDRINT          000350' EXT\r
9976 CDROFF          001004  INT\r
9977 CDRON           002004  INT\r
9978 CDRRET          000314' INT\r
9979 CDRSAC          000262' INT\r
9980 CDRSAV          000254' INT\r
9981 CH1             000324' INT\r
9982 CH1ERR          000451' INT\r
9983 CH1N            000000  \r
9984 CH1PDN          000000  \r
9985 CH1XIT          000325' INT\r
9986 CH2             000250' INT\r
9987 CH2CJ           000247' \r
9988 CH2ERR          000452' INT\r
9989 CH2N            000011  \r
9990 CH2PDN          000020  \r
9991 CH2SAC          000212' INT\r
9992 CH2SAV          000204' INT\r
9993 CH2XIT          000244' INT\r
9994 CH3             000130' INT\r
9995 CH3CJ           000127' \r
9996 CH3ERR          000453' INT\r
9997 CH3N            000011  \r
9998 CH3PDN          000020  \r
9999 CH3SAC          000072' INT\r
10000 CH3SAV          000064' INT\r
10001 \r
10002 \r
10003 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 8-1\r
10004 IOINI1  MAC     24-APR-78 04:05         SYMBOL TABLE\r
10005 \r
10006 CH3XIT          000124' INT\r
10007 CH4             000200' INT\r
10008 CH4CJ           000177' \r
10009 CH4ERR          000454' INT\r
10010 CH4N            000011  \r
10011 CH4PDN          000020  \r
10012 CH4SAC          000142' INT\r
10013 CH4SAV          000134' INT\r
10014 CH4XIT          000174' INT\r
10015 CH5             000320' INT\r
10016 CH5CJ           000317' \r
10017 CH5ERR          000455' INT\r
10018 CH5N            000011  \r
10019 CH5PDN          000020  \r
10020 CH5SAC          000262' INT\r
10021 CH5SAV          000254' INT\r
10022 CH5XIT          000314' INT\r
10023 CH6             000060' INT\r
10024 CH6CJ           000057' \r
10025 CH6ERR          000456' INT\r
10026 CH6N            000017  \r
10027 CH6PDN          000020  \r
10028 CH6SAC          000014' INT\r
10029 CH6SAV          000006' INT\r
10030 CH6XIT          000054' INT\r
10031 CH7             000327' INT\r
10032 CH7ERR          000457' INT\r
10033 CH7N            000000  \r
10034 CH7PDN          000000  \r
10035 CH7XIT          000330' INT\r
10036 CHANU1          000000  \r
10037 CHANU2          000001  \r
10038 CHANU3          000001  \r
10039 CHANU4          000001  \r
10040 CHANU5          000001  \r
10041 CHANU6          000001  \r
10042 CHANU7          000000  \r
10043 CLDS            004006  INT\r
10044 CLEN            000206  INT\r
10045 CLKINI          000365' EXT\r
10046 CLOSB           002000  INT\r
10047 CLSIN           000002  INT\r
10048 CLSOUT          000001  INT\r
10049 COMCNT          000446' INT\r
10050 CONFIG          000000' INT\r
10051 CORBLK          000400  INT\r
10052 CORLST          000474' INT\r
10053 CORTAB          000464' INT\r
10054 CORTAL          000475' INT\r
10055 CPOPJ           000375' INT\r
10056 CPOPJ1          000374' INT\r
10057 CPOPJ2          000373' INT\r
10058 CTYACT          004020  INT\r
10059 \r
10060 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 8-2\r
10061 IOINI1  MAC     24-APR-78 04:05         SYMBOL TABLE\r
10062 \r
10063 CTYBIT          000020  INT\r
10064 CTYCHL          000130' INT\r
10065 CTYCHN          000003  INT\r
10066 CTYINT          000333' EXT\r
10067 CTYOFF          001020  INT\r
10068 CTYON           002020  INT\r
10069 CTYRET          000124' INT\r
10070 CTYSAC          000072' INT\r
10071 CTYSAV          000064' INT\r
10072 D               000017  INT\r
10073 DAT             000005  INT\r
10074 DCAVAL          000440' INT\r
10075 DCL             000001  INT\r
10076 DCREQ           000443' INT\r
10077 DCW             020000  INT\r
10078 DDI             000007  INT\r
10079 DDO             000006  INT\r
10080 DDTMEM          000037  INT\r
10081 DDTSYM          000036  INT\r
10082 DEN             000004  INT\r
10083 DEVADR          000007  INT\r
10084 DEVBUF          000006  INT\r
10085 DEVCHR          000001  INT\r
10086 DEVCTR          000011  INT\r
10087 DEVDAT          000006  INT\r
10088 DEVIAD          000007  INT\r
10089 DEVINT          000332' INT\r
10090 DEVIOS          000002  INT\r
10091 DEVLOG          000005  INT\r
10092 DEVMOD          000004  INT\r
10093 DEVNAM          000000  INT\r
10094 DEVOAD          000010  INT\r
10095 DEVOPR          000463' INT\r
10096 DEVPTR          000010  INT\r
10097 DEVSER          000003  INT\r
10098 DGF             000012  INT\r
10099 DIN             000003  INT\r
10100 DLK             000005  INT\r
10101 DOU             000002  INT\r
10102 DR              000016  INT\r
10103 DRL             000000  INT\r
10104 DSI             000011  INT\r
10105 DSO             000010  INT\r
10106 DTAVAL          000441' INT\r
10107 DTCACT          004010  INT\r
10108 DTCBIT          000010  INT\r
10109 DTCCHL          000200' INT\r
10110 DTCCHN          000004  INT\r
10111 DTCINI          000355' EXT\r
10112 \r
10113 \r
10114 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 8-3\r
10115 IOINI1  MAC     24-APR-78 04:05         SYMBOL TABLE\r
10116 \r
10117 DTCINT          000340' EXT\r
10118 DTCOFF          001010  INT\r
10119 DTCON           002010  INT\r
10120 DTCRET          000174' INT\r
10121 DTCSAC          000142' INT\r
10122 DTCSAV          000134' INT\r
10123 DTREQ           000444' INT\r
10124 DTSIZ           000001  \r
10125 DTW             040000  INT\r
10126 DVAVAL          000040  INT\r
10127 DVCDR           100000  INT\r
10128 DVDIR           000004  INT\r
10129 DVDIRI          400000  INT\r
10130 DVIN            000002  INT\r
10131 DVLPT           040000  INT\r
10132 DVMTA           000020  INT\r
10133 DVOUT           000001  INT\r
10134 DVTTY           000010  INT\r
10135 ENTRB           020000  INT\r
10136 ERROR           000000  EXT\r
10137 I               000010  INT\r
10138 IB              000013  INT\r
10139 IBUFB           200000  INT\r
10140 INITB           400000  INT\r
10141 INPB            010000  INT\r
10142 IO              000020  INT\r
10143 IOACT           010000  INT\r
10144 IOBEG           000002  INT\r
10145 IOBKTL          040000  INT\r
10146 IOCOMP          000445' INT\r
10147 IOCON           000040  INT\r
10148 IODEND          020000  INT\r
10149 IODERR          200000  INT\r
10150 IODISC          400000  INT\r
10151 IODONE          400000  INT\r
10152 IODTER          100000  INT\r
10153 IOEND           000040  INT\r
10154 IOFST           000004  INT\r
10155 IOIMPM          400000  INT\r
10156 IOINI           000351' INT\r
10157 IONRCK          000100  INT\r
10158 IORDEL          000100  INT\r
10159 IORET           000020  INT\r
10160 IOS             000000  INT\r
10161 IOSTRT          000010  INT\r
10162 IOUSE           400000  INT\r
10163 IOW             000001  INT\r
10164 IOWC            000020  INT\r
10165 IOWS            400000  INT\r
10166 ITEM            000004  INT\r
10167 JBFADR          000000  INT\r
10168 JBFCTR          000002  INT\r
10169 \r
10170 \r
10171 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 8-4\r
10172 IOINI1  MAC     24-APR-78 04:05         SYMBOL TABLE\r
10173 \r
10174 JBFPTR          000001  INT\r
10175 JBTAD1          000402' INT\r
10176 JBTADR          000401' INT\r
10177 JBTSTS          000403' INT\r
10178 JBUF            000005  INT\r
10179 JDAT            000011  INT\r
10180 JERR            002000  INT\r
10181 JIOW            100000  INT\r
10182 JNA             004000  INT\r
10183 JOB             000376' INT\r
10184 JOBADR          000377' INT\r
10185 JOBDAT          000400' INT\r
10186 JOBN            000002  INT\r
10187 LOOKB           040000  INT\r
10188 LPTACT          004004  INT\r
10189 LPTBIT          000004  INT\r
10190 LPTCHL          000320' INT\r
10191 LPTCHN          000005  INT\r
10192 LPTINI          000362' EXT\r
10193 LPTINT          000345' EXT\r
10194 LPTOFF          001004  INT\r
10195 LPTON           002004  INT\r
10196 LPTRET          000314' INT\r
10197 LPTSAC          000262' INT\r
10198 LPTSAV          000254' INT\r
10199 MAXIMA          000000  INT\r
10200 MJOBN   777777  777776  INT\r
10201 MTAVAL          000437' INT\r
10202 MTCACT          004040  INT\r
10203 MTCBIT          000040  INT\r
10204 MTCCHL          000250' INT\r
10205 MTCCHN          000002  INT\r
10206 MTCINI          000361' EXT\r
10207 MTCINT          000344' EXT\r
10208 MTCOFF          001040  INT\r
10209 MTCON           002040  INT\r
10210 MTCRET          000244' INT\r
10211 MTCSAC          000212' INT\r
10212 MTCSAV          000204' INT\r
10213 MTREQ           000442' INT\r
10214 MTW             010000  INT\r
10215 NDEV            000017  \r
10216 NDEVM1          000016  INT\r
10217 OBUFB           100000  INT\r
10218 OUTPB           004000  INT\r
10219 PDP             000003  INT\r
10220 PICHN           000100  INT\r
10221 PIOMOD          000367' INT\r
10222 PJDCHN          000371' INT\r
10223 PJOBN           000370' INT\r
10224 \r
10225 \r
10226 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 8-5\r
10227 IOINI1  MAC     24-APR-78 04:05         SYMBOL TABLE\r
10228 \r
10229 PROG            000007  INT\r
10230 PTPACT          004004  INT\r
10231 PTPBIT          000004  INT\r
10232 PTPCHL          000320' INT\r
10233 PTPCHN          000005  INT\r
10234 PTPINI          000363' EXT\r
10235 PTPINT          000346' EXT\r
10236 PTPOFF          001004  INT\r
10237 PTPON           002004  INT\r
10238 PTPRET          000314' INT\r
10239 PTPSAC          000262' INT\r
10240 PTPSAV          000254' INT\r
10241 PTRACT          004004  INT\r
10242 PTRBIT          000004  INT\r
10243 PTRCHL          000320' INT\r
10244 PTRCHN          000005  INT\r
10245 PTRINI          000364' EXT\r
10246 PTRINT          000347' EXT\r
10247 PTROFF          001004  INT\r
10248 PTRON           002004  INT\r
10249 PTRRET          000314' INT\r
10250 PTRSAC          000262' INT\r
10251 PTRSAV          000254' INT\r
10252 PUNIT           000372' INT\r
10253 PUUOAC          000366' INT\r
10254 RUN             200000  INT\r
10255 RUNABL          204000  INT\r
10256 SCHEDF          000450' INT\r
10257 SCNACT          004020  INT\r
10258 SCNBIT          000020  INT\r
10259 SCNCHL          000130' INT\r
10260 SCNCHN          000003  INT\r
10261 SCNINI          000351' EXT\r
10262 SCNINT          000334' EXT\r
10263 SCNLIN          000001  \r
10264 SCNOFF          001020  INT\r
10265 SCNON           002020  INT\r
10266 SCNRET          000124' INT\r
10267 SCNSAC          000072' INT\r
10268 SCNSAV          000064' INT\r
10269 STOPU           000447' INT\r
10270 SYSBEG          000376' INT\r
10271 SYSBG1          000377' INT\r
10272 SYSDAT          000002' INT\r
10273 SYSEND          000475' INT\r
10274 SYSFIN          000476' EXT\r
10275 SYSMOD          000001  INT\r
10276 SYSNUM          000004' INT\r
10277 SYSSIZ          000476' INT\r
10278 SYSTAP          000005' INT\r
10279 SYSVER          000004  INT\r
10280 TAC             000001  INT\r
10281 \r
10282 \r
10283 \fIOINI1 - IO INITIALIZATION PART 1      MACRO 10 05:51 24-APR-78 PAGE 8-6\r
10284 IOINI1  MAC     24-APR-78 04:05         SYMBOL TABLE\r
10285 \r
10286 TAC1            000002  INT\r
10287 TEM             000010  INT\r
10288 TIME            000460' INT\r
10289 TTYATC          020000  INT\r
10290 TTYLEN          000002  INT\r
10291 TTYTAB          000461' INT\r
10292 TTYUSE          010000  INT\r
10293 USRDDT          000436' INT\r
10294 USRHI           000435' INT\r
10295 USRINF          000415' INT\r
10296 USRJDA          000416' INT\r
10297 USRLEV          000410' \r
10298 USRLO           000407' INT\r
10299 USRLO1          000410' INT\r
10300 USRMOD          010000  INT\r
10301 USRPDP          000405' INT\r
10302 USRPFI          000435' INT\r
10303 USRPFU          000436' INT\r
10304 USRPOV          000412' INT\r
10305 USRREL          000406' INT\r
10306 USRSAV          000411' INT\r
10307 USRUXT          000407' INT\r
10308 \f   IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII         444      444   \r
10309    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII         444      444   \r
10310    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII         444      444   \r
10311       III            OOO         OOO            III            NNN         NNN            III            444      444   \r
10312       III            OOO         OOO            III            NNN         NNN            III            444      444   \r
10313       III            OOO         OOO            III            NNN         NNN            III            444      444   \r
10314       III            OOO         OOO            III            NNNNNN      NNN            III            444      444   \r
10315       III            OOO         OOO            III            NNNNNN      NNN            III            444      444   \r
10316       III            OOO         OOO            III            NNNNNN      NNN            III            444      444   \r
10317       III            OOO         OOO            III            NNN   NNN   NNN            III            444444444444444\r
10318       III            OOO         OOO            III            NNN   NNN   NNN            III            444444444444444\r
10319       III            OOO         OOO            III            NNN   NNN   NNN            III            444444444444444\r
10320       III            OOO         OOO            III            NNN      NNNNNN            III                     444   \r
10321       III            OOO         OOO            III            NNN      NNNNNN            III                     444   \r
10322       III            OOO         OOO            III            NNN      NNNNNN            III                     444   \r
10323       III            OOO         OOO            III            NNN         NNN            III                     444   \r
10324       III            OOO         OOO            III            NNN         NNN            III                     444   \r
10325       III            OOO         OOO            III            NNN         NNN            III                     444   \r
10326    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII                  444   \r
10327    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII                  444   \r
10328    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII                  444   \r
10329 \r
10330 \r
10331 \r
10332 \r
10333 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
10334 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
10335 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
10336 LLL                  SSS                        TTT                                                                     \r
10337 LLL                  SSS                        TTT                                                                     \r
10338 LLL                  SSS                        TTT                                                                     \r
10339 LLL                  SSS                        TTT                                                                     \r
10340 LLL                  SSS                        TTT                                                                     \r
10341 LLL                  SSS                        TTT                                                                     \r
10342 LLL                     SSSSSSSSS               TTT                                                                     \r
10343 LLL                     SSSSSSSSS               TTT                                                                     \r
10344 LLL                     SSSSSSSSS               TTT                                                                     \r
10345 LLL                              SSS            TTT                                                                     \r
10346 LLL                              SSS            TTT                                                                     \r
10347 LLL                              SSS            TTT                                                                     \r
10348 LLL                              SSS            TTT                                                                     \r
10349 LLL                              SSS            TTT                                                                     \r
10350 LLL                              SSS            TTT                                                                     \r
10351 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
10352 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
10353 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
10354 \r
10355 \r
10356 \r
10357 \r
10358 Request created: 24-April-1978  05:53:58\r
10359 File: DSKB0 :IOINI4.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:35\r
10360 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1754 \r
10361 File will be deleted after printing\r
10362 \f\r
10363 IOINI2 - IO INITIALIZATION PART 2       MACRO 10 05:51 24-APR-78 PAGE 1\r
10364 S       MAC     24-APR-78 21:40         MAXIMAL CONFIGURATION\r
10365 \r
10366                                         XLIST\r
10367                                        LIST\r
10368                                 ;SOME MACROS FOR DEFINING CONFIGURATION\r
10369 \r
10370                                 DEFINE NAME (A)\r
10371                                 <DEFINE NAME1\r
10372                                 <CONFIG:  ASCIZ /A/\r
10373                                 INTERNAL CONFIG\r
10374                                 >\r
10375                                 XP A,0\r
10376                                 SUBTTL A CONFIGURATION\r
10377                                 >\r
10378 \r
10379                                 DEFINE DATE (A)\r
10380                                 <DEFINE DATE1\r
10381                                 <SYSDAT:  ASCIZ /A/\r
10382                                 INTERNAL SYSDAT\r
10383                                 >>\r
10384 \r
10385                                 DEFINE VERSION (A,B)\r
10386                                 <DEFINE VERS1\r
10387                                 <SYSNUM:  XWD ^D'A,^D'B\r
10388                                 XP SYSMOD,^D'A\r
10389                                 XP SYSVER,^D'B\r
10390                                 INTERNAL SYSNUM\r
10391                                 >>\r
10392 \r
10393                                 DEFINE CUSPTAPE (A)\r
10394                                 <DEFINE CUSP1\r
10395                                 <SYSTAP:  SIXBIT /A/\r
10396                                 INTERNAL SYSTAP\r
10397                                 >>\r
10398 \r
10399                                 DEFINE ACPDL (J,CHJN,CHJPDN)\r
10400                                 <         CH'J'N=CHJN\r
10401                                  CH'J'PDN=CHJPDN\r
10402                                 >\r
10403 \r
10404 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 2\r
10405 IOINI   MAC     24-APR-78 01:14         MAXIMAL CONFIGURATION\r
10406 \r
10407 \r
10408                                 NAME <MAXIMAL>^DEFINE NAME1\r
10409                                 <CONFIG:  ASCIZ /MAXIMAL/\r
10410                                 INTERNAL CONFIG\r
10411                                 >\r
10412 \r
10413 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 2\r
10414 IOMAX   MAC     24-APR-78 02:50         MAXIMAL CONFIGURATION\r
10415 \r
10416 \r
10417                                         DATE <8-16-65>^DEFINE DATE1\r
10418                                 <SYSDAT:  ASCIZ /8-16-65/\r
10419                                 INTERNAL SYSDAT\r
10420                                 >^\r
10421                                         VERSION 1,4^DEFINE VERS1\r
10422                                 <SYSNUM:  XWD ^D1,^D4\r
10423                                 XP SYSMOD,^D1\r
10424                                 XP SYSVER,^D4\r
10425                                 INTERNAL SYSNUM\r
10426                                 >^\r
10427                                         CUSPTAPE DTA0^DEFINE CUSP1\r
10428                                 <SYSTAP:  SIXBIT /DTA0/\r
10429                                 INTERNAL SYSTAP\r
10430                                 >^\r
10431 \r
10432                                 ;DEFINE THE IO PART OF THE SYSTEM\r
10433                                 ;THAT IS:\r
10434                                 ;         DEFINE INTERRUPT SERVICE ROTUINE TO BE USED\r
10435                                 ;       ASSIGN DEVICES TO PI CHANNELS\r
10436 \r
10437                                 DEFINE SYSTEM\r
10438                                  <\r
10439                                  ASSOC APR,6,<>\r
10440                                  ASSOC CTY,3,<>\r
10441                                  ASSOC SCN,3,<TTY0,TTY1>\r
10442                                  ASSOC DTC,4,<DTA0>\r
10443                                  ASSOC DTC,4,<DTA1>\r
10444                                  ASSOC DTC,4,<DTA2>\r
10445                                  ASSOC DTC,4,<DTA3>\r
10446                                  ASSOC MTC,2,<MTA0>\r
10447                                  ASSOC MTC,2,<MTA1>\r
10448                                  ASSOC MTC,2,<MTA2>\r
10449                                  ASSOC MTC,2,<MTA3>\r
10450                                  ASSOC LPT,5,<LPT>\r
10451                                  ASSOC PTP,5,<PTP>\r
10452                                  ASSOC PTR,5,<PTR>\r
10453                                  ASSOC CDR,5,<CDR>\r
10454                                 >\r
10455 \r
10456                         000001  DTSIZ=1   ;MULTIPLE DECTAPE DIRECTORIES\r
10457 \r
10458                         000001  SCNLIN=1\r
10459 \r
10460                                 ;DEFINE HIGHEST AC TO SAVE AND LENGTH OF PD LIST FOR EACH PI CHANNEL\r
10461 \r
10462                         000000  ACPDL (1,0,0)^    CH1N=0\r
10463                         000011  ACPDL (2,11,20)^          CH2N=11\r
10464                         000011  ACPDL (3,11,20)^          CH3N=11\r
10465                         000011  ACPDL (4,11,20)^          CH4N=11\r
10466                         000011  ACPDL (5,11,20)^          CH5N=11\r
10467                         000017  ACPDL (6,17,20^   CH6N=17\r
10468                         000000  ACPDL (7,0,0)^    CH7N=0\r
10469 \r
10470 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 2-1\r
10471 IOMAX   MAC     24-APR-78 02:50         MAXIMAL CONFIGURATION\r
10472 \r
10473                                         TITLE IOINI2 - IO INITIALIZATION PART 2\r
10474 \r
10475                                 ;DEFINITIONS OF DEVCHN AND DEVBIT\r
10476                                 ;THESE ALSO OCCUR IN IOINT1\r
10477 \r
10478                                 DEFINE ASSOC (A,N,D)\r
10479                                 <\r
10480                                   A'CHN=N\r
10481                                 >\r
10482 \r
10483                                           SYSTEM^\r
10484 \r
10485 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 2\r
10486 IOINI2  MAC     24-APR-78 03:06         MAXIMAL CONFIGURATION\r
10487 \r
10488 \r
10489 \r
10490                                 ;APR PIP BITS\r
10491 \r
10492                         000001  APRBIT=1\r
10493                         000002  REPEAT 7-APRCHN,<APRBIT=APRBIT*2>\r
10494                                 XP PION,200             ;CONO PI,PION TURNS PI SYSTEM ON\r
10495                                 XP PIOFF,400            ;TURN IT OFF\r
10496                                 XP PICLK,PION+1B24+APRBIT       ;TURN PI ON, AND FORCE CLOCK INT.\r
10497                                 XP CLKOFF,1000+APRCHN           ;CONO APR,CLKOFF TURNS CLOCK FLAG OFF\r
10498 \r
10499 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 3\r
10500 IOINI2  MAC     24-APR-78 03:06         MAXIMAL CONFIGURATION\r
10501 \r
10502 \r
10503 \r
10504                                 ;ASSEMBLE ALL DEVICE DATA BLOCKS AND LINK THEM TOGETHER\r
10505 \r
10506                                 DEFINE SCNDDB (A,B,C)\r
10507                                 <         INTERNAL C'DB\r
10508                                 C'DB:     ZZ=.\r
10509                                  SIXBIT /C/\r
10510                                  XWD A'CHN*PICHN,STTYBF+1       ;LONG ENOUGH FOR PRINTING\r
10511                                                 ;SEQUENCE CARD IMAGE.\r
10512                                                 ;USER BUFFERS ARE 2 WORDS\r
10513                                                 ;LONGER THEN THE MONITORY TTY BUFFERS.\r
10514                                  0\r
10515                                 EXTERNAL  TTYDSP\r
10516                                  XWD C,TTYDSP\r
10517                                  XWD DVTTY+DVIN+DVOUT,3\r
10518                                  0\r
10519                                  0\r
10520                                  XWD PROG,0\r
10521                                  XWD PROG,0\r
10522                                  XP TTYPTR,.-ZZ\r
10523                                  0\r
10524                                  XP TTYCTR,.-ZZ\r
10525                                  0\r
10526                                  XP TTYSAV,.-ZZ\r
10527                                  0\r
10528                                  XP TTYBUF,.-ZZ\r
10529                                  XP TTYBM1,TTYBUF-1\r
10530                                 XP STTYBF,20\r
10531                                 XP STTYB1,STTYBF+1      ;LENGTH+1\r
10532                                  BLOCK STTYBF\r
10533                                 XP TTYBFE,.-ZZ-1\r
10534                                 \r
10535                                 ;LINE NO. PARAMETERS\r
10536                                 XP TTYLEN,SCNLIN+1  ;LENGTH OF TTY TRANSLATOR TABLE(INCLUDE TTY)\r
10537                                 XP TSCNLN,SCNLIN-1  ;HIGHEST TTY LINE NO.(NOT COUNTING CTY)\r
10538                                 XP TCONLN,TSCNLN+1  ;CTY LINE NUMBER\r
10539                                 XP MTTYLN,-TTYLEN   ;NEGATIVEL LENGTH OF TRANSLATOR TABLE\r
10540                                 XP FSNCHN,SCNCHN*101 ;CHANNEL ASSIGNED, FOR FULL DUPLEX SCN.\r
10541                                  XP TTYLST,TTY0DB    ;FIRST TTY DEVICE DATA BLOCK\r
10542                                  >\r
10543 \r
10544                                 ;NEG. NO. OF TELTYPE DEVICE DATA BLOCKS\r
10545 \r
10546                         000000  MLTTYL=0\r
10547                                 DEFINE ASSOC (A,N,D)\r
10548                                 <IRP D,<IFIDN <A>,<SCN>,<MLTTYL=MLTTYL-1>>>\r
10549 \r
10550                                           SYSTEM^\r
10551                                 INTERNAL MLTTYL\r
10552 \r
10553 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 4\r
10554 IOINI2  MAC     24-APR-78 03:06         MAXIMAL CONFIGURATION\r
10555 \r
10556 \r
10557 \r
10558                                 ;MAG TAPE DEVICE DATA BLOCK\r
10559 \r
10560                         000000  MTCNUM=0\r
10561 \r
10562                                 DEFINE MTCDDB (A,B,C)\r
10563                                 <         INTERNAL C'DB\r
10564                                 C'DB:     SIXBIT /C/\r
10565                                 MTCNUM=MTCNUM+1\r
10566                                  XWD IORET+A'CHN*PICHN,<MTCNUM-1>*10000+201\r
10567                                 \r
10568                                  0\r
10569                                  XWD C,MTDISP\r
10570                                 EXTERNAL MTDISP\r
10571                                  XWD 4400+DVMTA+DVIN+DVOUT,154403\r
10572                                  0\r
10573                                  0\r
10574                                  XWD PROG,0\r
10575                                  XWD PROG,0\r
10576                                 >\r
10577 \r
10578 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 5\r
10579 IOINI2  MAC     24-APR-78 03:06         MAXIMAL CONFIGURATION\r
10580 \r
10581 \r
10582                                 ;DECTAPE DEVICE DATA BLOCK\r
10583 \r
10584                         000000  DTCNUM=0\r
10585 \r
10586                                 DEFINE DTCDDB (A,B,C)\r
10587                                 <         INTERNAL C'DB\r
10588                                 C'DB:     ZZ=.\r
10589                                  SIXBIT /C/\r
10590                                 DTCNUM=DTCNUM+1\r
10591                                  XWD IORET+A'CHN*PICHN,<DTCNUM-1>*10000+201\r
10592                                  0\r
10593                                  XWD C,UTDSP\r
10594                                 EXTERNAL UTDSP\r
10595                                  XWD 4400+DVDIR+DVIN+DVOUT,154403\r
10596                                  0\r
10597                                  0\r
10598                                  0\r
10599                                  0\r
10600                                 XP UFREE,.-ZZ   ;NEXT FREE BLOCK NO.\r
10601                                  0\r
10602                                  XP UDIR,.-ZZ   ;LINK TO DIRECTORY IN DATA BLOCK\r
10603                                  IFE DTSIZ,<    EXP DIRBUF\r
10604                                 >\r
10605                                 IFN DTSIZ,<     EXP DTDIR+200*<DTCNUM-1>\r
10606                                 >\r
10607                                 >\r
10608 \r
10609 \r
10610 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 6\r
10611 IOINI2  MAC     24-APR-78 03:06         MAXIMAL CONFIGURATION\r
10612 \r
10613 \r
10614 \r
10615                                 ;LINE PRINTER DEVICE DTA BLOCK\r
10616 \r
10617                                 DEFINE LPTDDB (A,B,C)\r
10618                                 <INTERNAL LPTDB,LPTDAT,LPTCHR,LPTIOS,LPTSER,LPTMOD\r
10619                                 INTERNAL LPTBUF,LPTPTR,LPTADR,LPTSV1\r
10620                                 EXTERNAL LPTDSP\r
10621                                 \r
10622                                 LPTDB:\r
10623                                 LPTDAT:   SIXBIT /LPT/\r
10624                                 LPTCHR:   XWD A'CHN*PICHN,32\r
10625                                 LPTIOS:   0\r
10626                                 LPTSER:   XWD C,LPTDSP\r
10627                                 LPTMOD:   XWD 0+DVOUT,3\r
10628                                  0\r
10629                                 LPTBUF:   0\r
10630                                 LPTPTR:   0\r
10631                                 LPTADR:   XWD PROG,0\r
10632                                 LPTSV1:   0\r
10633                                 \r
10634                                 XP LPTCLB,LPTCHN+200  ;PI CHANNEL AND BUSY FLAG\r
10635                                 XP LPTCHB,11*LPTCHN ;LINE PRINTER ERROR AND DATA CHANNELS\r
10636                                 >\r
10637 \r
10638 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 7\r
10639 IOINI2  MAC     24-APR-78 03:06         MAXIMAL CONFIGURATION\r
10640 \r
10641 \r
10642 \r
10643                                 ;CARD READER DEVICE DATA BLOCK\r
10644 \r
10645                                 DEFINE CDRDDB (A,B,C)\r
10646                                 <INTERNAL CDRDB,CDRDAT,CRDIS\r
10647                                 EXTERNAL CDRDSP\r
10648                                 \r
10649                                 CDRDB:\r
10650                                 CDRDAT:   SIXBIT /CDR/\r
10651                                  XWD A'CHN*PICHN,34 ;LONG ENOUGHT FOR BINARY CARDS\r
10652                                  0\r
10653                                  XWD C,CDRDSP\r
10654                                  XWD DVCDR+1400+DVIN,14403\r
10655                                  0\r
10656                                  0\r
10657                                  XWD PROG,0\r
10658                                  0\r
10659                                  0\r
10660                                 CRDIS:    JRST .\r
10661                                 >\r
10662 \r
10663 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 8\r
10664 IOINI2  MAC     24-APR-78 03:06         MAXIMAL CONFIGURATION\r
10665 \r
10666 \r
10667 \r
10668                                 ;PAPER TAPE READER DEVICE DATA BLOCK\r
10669 \r
10670                                 DEFINE PTRDDB (A,B,C)\r
10671                                 <INTERNAL PTRDB,PTRDAT,PTRCHR,PTRIOS,PTRSER\r
10672                                 INTERNAL PTRMOD,PTRBUF,PTRADR,PTRPTR,PTRCTR,PTRSVC,PTRSV1\r
10673                                 EXTERNAL PTRDSP\r
10674                                 \r
10675                                 PTRDB:\r
10676                                 PTRDAT:   SIXBIT /PTR/\r
10677                                 PTRCHR:   XWD A'CHN*PICHN,41\r
10678                                 PTRIOS:   0\r
10679                                 PTRSER:   XWD C,PTRDSP\r
10680                                 PTRMOD:   XWD 1000+DVIN,14403\r
10681                                  0\r
10682                                 PTRBUF:   0\r
10683                                 PTRADR:   XWD PROG,0\r
10684                                 PTRPTR:   0\r
10685                                 PTRCTR:   0\r
10686                                 PTRSVC:   0\r
10687                                 PTRSV1:   0\r
10688                                 >\r
10689 \r
10690 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 9\r
10691 IOINI2  MAC     24-APR-78 03:06         MAXIMAL CONFIGURATION\r
10692 \r
10693 \r
10694 \r
10695                                 ;PAPER TAPE PUNCH DEVICE DATA BLOCK\r
10696 \r
10697                                 DEFINE PTPDDB (A,B,C)\r
10698                                 <INTERNAL PTPDB,PTPDAT,PTPCHR,PTPIOS,PTPSER,PTPMOD,PTPBUF\r
10699                                 INTERNAL PTPPTR,PTPADR,PTPCTR,PTPCNT,PTPCHA,PTPSIO\r
10700                                 EXTERNAL PTPDSP\r
10701                                 \r
10702                                 PTPDB:\r
10703                                 PTPDAT:   SIXBIT /PTP/\r
10704                                 PTPCHR:   XWD A'CHN*PICHN,41\r
10705                                 PTPIOS:   0\r
10706                                 PTPSER:   XWD C,PTPDSP\r
10707                                 PTPMOD:   XWD 1000+DVOUT,14403\r
10708                                  0\r
10709                                 PTPBUF:   0\r
10710                                 PTPPTR:   0\r
10711                                 PTPADR:   XWD PROG,0\r
10712                                 PTPCTR:   0\r
10713                                 PTPCNT:   0\r
10714                                 PTPCHA:   0\r
10715                                 PTPSIO:   0\r
10716                                 >\r
10717 \r
10718 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 10\r
10719 IOINI2  MAC     24-APR-78 03:06         MAXIMAL CONFIGURATION\r
10720 \r
10721 \r
10722 \r
10723                                 ;GENERATE DEVICE DATA BLOCKS NEEDED FOR THIS CONFIGURATION\r
10724 \r
10725                                 DEFINE ASSOC (A,B,C)\r
10726                                 <\r
10727                                 IRP C,<\r
10728                                           ;DEFINE FORWARD LINL SYMBOL\r
10729                                  LINK\r
10730                                 ;\r
10731                                 ;\r
10732                                 ;\r
10733                                  A'DDB A,B,C\r
10734                                 \r
10735                                 C=0       ;SET LINK TO 0(IN CASE THIS IS LAST DDB)\r
10736                                 DEFINE LINK\r
10737                                 <C=.>\r
10738                                 >\r
10739                                 >\r
10740 \r
10741                                 INTERNAL DEVLST\r
10742 \r
10743         000000' 000001' 000000  DEVLST:   XWD FIRDB,0           ;BEGINNING OF DEVICE DATA BLOCK CHAIN\r
10744 \r
10745                                 DEFINE LINK\r
10746                                 <FIRDB=.>\r
10747 \r
10748                                           SYSTEM^       000001' 646471  200000   SIXBIT /TTY0/\r
10749         000002' 000300  000021   XWD SCNCHN*PICHN,STTYBF+1      ;LONG ENOUGH FOR PRINTING\r
10750         000003' 000000  000000   0\r
10751         000004' 000035' 000000*  XWD TTY0,TTYDSP\r
10752         000005' 000013  000003   XWD DVTTY+DVIN+DVOUT,3\r
10753         000006' 000000  000000   0\r
10754         000007' 000000  000000   0\r
10755         000010' 000007  000000   XWD PROG,0\r
10756         000011' 000007  000000   XWD PROG,0\r
10757         000012' 000000  000000   0\r
10758         000013' 000000  000000   0\r
10759         000014' 000000  000000   0\r
10760         000035' 646471  210000   SIXBIT /TTY1/\r
10761         000036' 000300  000021   XWD SCNCHN*PICHN,STTYBF+1      ;LONG ENOUGH FOR PRINTING\r
10762         000037' 000000  000000   0\r
10763         000040' 000071' 000004*  XWD TTY1,TTYDSP\r
10764         000041' 000013  000003   XWD DVTTY+DVIN+DVOUT,3\r
10765         000042' 000000  000000   0\r
10766         000043' 000000  000000   0\r
10767         000044' 000007  000000   XWD PROG,0\r
10768         000045' 000007  000000   XWD PROG,0\r
10769         000046' 000000  000000   0\r
10770         000047' 000000  000000   0\r
10771         000050' 000000  000000   0\r
10772         000071' 446441  200000   SIXBIT /DTA0/\r
10773         000072' 000420  000201   XWD IORET+DTCCHN*PICHN,<DTCNUM-1>*10000+201\r
10774 \r
10775 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 10-1\r
10776 IOINI2  MAC     24-APR-78 03:06         MAXIMAL CONFIGURATION\r
10777 \r
10778         000073' 000000  000000   0\r
10779         000074' 000104' 000000*  XWD DTA0,UTDSP\r
10780         000075' 004407  154403   XWD 4400+DVDIR+DVIN+DVOUT,154403\r
10781         000076' 000000  000000   0\r
10782         000077' 000000  000000   0\r
10783         000100' 000000  000000   0\r
10784         000101' 000000  000000   0\r
10785         000102' 000000  000000   0\r
10786         000103' 000000  000267' IFN DTSIZ,<     EXP DTDIR+200*<DTCNUM-1>\r
10787         000104' 446441  210000   SIXBIT /DTA1/\r
10788         000105' 000420  010201   XWD IORET+DTCCHN*PICHN,<DTCNUM-1>*10000+201\r
10789         000106' 000000  000000   0\r
10790         000107' 000117' 000074*  XWD DTA1,UTDSP\r
10791         000110' 004407  154403   XWD 4400+DVDIR+DVIN+DVOUT,154403\r
10792         000111' 000000  000000   0\r
10793         000112' 000000  000000   0\r
10794         000113' 000000  000000   0\r
10795         000114' 000000  000000   0\r
10796         000115' 000000  000000   0\r
10797         000116' 000000  000467' IFN DTSIZ,<     EXP DTDIR+200*<DTCNUM-1>\r
10798         000117' 446441  220000   SIXBIT /DTA2/\r
10799         000120' 000420  020201   XWD IORET+DTCCHN*PICHN,<DTCNUM-1>*10000+201\r
10800         000121' 000000  000000   0\r
10801         000122' 000132' 000107*  XWD DTA2,UTDSP\r
10802         000123' 004407  154403   XWD 4400+DVDIR+DVIN+DVOUT,154403\r
10803         000124' 000000  000000   0\r
10804         000125' 000000  000000   0\r
10805         000126' 000000  000000   0\r
10806         000127' 000000  000000   0\r
10807         000130' 000000  000000   0\r
10808         000131' 000000  000667' IFN DTSIZ,<     EXP DTDIR+200*<DTCNUM-1>\r
10809         000132' 446441  230000   SIXBIT /DTA3/\r
10810         000133' 000420  030201   XWD IORET+DTCCHN*PICHN,<DTCNUM-1>*10000+201\r
10811         000134' 000000  000000   0\r
10812         000135' 000145' 000122*  XWD DTA3,UTDSP\r
10813         000136' 004407  154403   XWD 4400+DVDIR+DVIN+DVOUT,154403\r
10814         000137' 000000  000000   0\r
10815         000140' 000000  000000   0\r
10816         000141' 000000  000000   0\r
10817         000142' 000000  000000   0\r
10818         000143' 000000  000000   0\r
10819         000144' 000000  001067' IFN DTSIZ,<     EXP DTDIR+200*<DTCNUM-1>\r
10820         000145' 556441  200000  MTA0DB:   SIXBIT /MTA0/\r
10821         000146' 000220  000201   XWD IORET+MTCCHN*PICHN,<MTCNUM-1>*10000+201\r
10822         000147' 000000  000000   0\r
10823         000150' 000156' 000000*  XWD MTA0,MTDISP\r
10824         000151' 004423  154403   XWD 4400+DVMTA+DVIN+DVOUT,154403\r
10825         000152' 000000  000000   0\r
10826         000153' 000000  000000   0\r
10827         000154' 000007  000000   XWD PROG,0\r
10828         000155' 000007  000000   XWD PROG,0\r
10829         000156' 556441  210000  MTA1DB:   SIXBIT /MTA1/\r
10830         000157' 000220  010201   XWD IORET+MTCCHN*PICHN,<MTCNUM-1>*10000+201\r
10831 \r
10832 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 10-2\r
10833 IOINI2  MAC     24-APR-78 03:06         MAXIMAL CONFIGURATION\r
10834 \r
10835         000160' 000000  000000   0\r
10836         000161' 000167' 000150*  XWD MTA1,MTDISP\r
10837         000162' 004423  154403   XWD 4400+DVMTA+DVIN+DVOUT,154403\r
10838         000163' 000000  000000   0\r
10839         000164' 000000  000000   0\r
10840         000165' 000007  000000   XWD PROG,0\r
10841         000166' 000007  000000   XWD PROG,0\r
10842         000167' 556441  220000  MTA2DB:   SIXBIT /MTA2/\r
10843         000170' 000220  020201   XWD IORET+MTCCHN*PICHN,<MTCNUM-1>*10000+201\r
10844         000171' 000000  000000   0\r
10845         000172' 000200' 000161*  XWD MTA2,MTDISP\r
10846         000173' 004423  154403   XWD 4400+DVMTA+DVIN+DVOUT,154403\r
10847         000174' 000000  000000   0\r
10848         000175' 000000  000000   0\r
10849         000176' 000007  000000   XWD PROG,0\r
10850         000177' 000007  000000   XWD PROG,0\r
10851         000200' 556441  230000  MTA3DB:   SIXBIT /MTA3/\r
10852         000201' 000220  030201   XWD IORET+MTCCHN*PICHN,<MTCNUM-1>*10000+201\r
10853         000202' 000000  000000   0\r
10854         000203' 000211' 000172*  XWD MTA3,MTDISP\r
10855         000204' 004423  154403   XWD 4400+DVMTA+DVIN+DVOUT,154403\r
10856         000205' 000000  000000   0\r
10857         000206' 000000  000000   0\r
10858         000207' 000007  000000   XWD PROG,0\r
10859         000210' 000007  000000   XWD PROG,0\r
10860         000211' 546064  000000  LPTDAT:   SIXBIT /LPT/\r
10861         000212' 000500  000032  LPTCHR:   XWD LPTCHN*PICHN,32\r
10862         000213' 000000  000000  LPTIOS:   0\r
10863         000214' 000223' 000000* LPTSER:   XWD LPT,LPTDSP\r
10864         000215' 000001  000003  LPTMOD:   XWD 0+DVOUT,3\r
10865         000216' 000000  000000   0\r
10866         000217' 000000  000000  LPTBUF:   0\r
10867         000220' 000000  000000  LPTPTR:   0\r
10868         000221' 000007  000000  LPTADR:   XWD PROG,0\r
10869         000222' 000000  000000  LPTSV1:   0\r
10870         000223' 606460  000000  PTPDAT:   SIXBIT /PTP/\r
10871         000224' 000500  000041  PTPCHR:   XWD PTPCHN*PICHN,41\r
10872         000225' 000000  000000  PTPIOS:   0\r
10873         000226' 000240' 000000* PTPSER:   XWD PTP,PTPDSP\r
10874         000227' 001001  014403  PTPMOD:   XWD 1000+DVOUT,14403\r
10875         000230' 000000  000000   0\r
10876         000231' 000000  000000  PTPBUF:   0\r
10877         000232' 000000  000000  PTPPTR:   0\r
10878         000233' 000007  000000  PTPADR:   XWD PROG,0\r
10879         000234' 000000  000000  PTPCTR:   0\r
10880         000235' 000000  000000  PTPCNT:   0\r
10881         000236' 000000  000000  PTPCHA:   0\r
10882         000237' 000000  000000  PTPSIO:   0\r
10883         000240' 606462  000000  PTRDAT:   SIXBIT /PTR/\r
10884         000241' 000500  000041  PTRCHR:   XWD PTRCHN*PICHN,41\r
10885         000242' 000000  000000  PTRIOS:   0\r
10886         000243' 000254' 000000* PTRSER:   XWD PTR,PTRDSP\r
10887         000244' 001002  014403  PTRMOD:   XWD 1000+DVIN,14403\r
10888 \r
10889 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 10-3\r
10890 IOINI2  MAC     24-APR-78 03:06         MAXIMAL CONFIGURATION\r
10891 \r
10892         000245' 000000  000000   0\r
10893         000246' 000000  000000  PTRBUF:   0\r
10894         000247' 000007  000000  PTRADR:   XWD PROG,0\r
10895         000250' 000000  000000  PTRPTR:   0\r
10896         000251' 000000  000000  PTRCTR:   0\r
10897         000252' 000000  000000  PTRSVC:   0\r
10898         000253' 000000  000000  PTRSV1:   0\r
10899         000254' 434462  000000  CDRDAT:   SIXBIT /CDR/\r
10900         000255' 000500  000034   XWD CDRCHN*PICHN,34 ;LONG ENOUGHT FOR BINARY CARDS\r
10901         000256' 000000  000000   0\r
10902         000257' 000000  000000*  XWD CDR,CDRDSP\r
10903         000260' 101402  014403   XWD DVCDR+1400+DVIN,14403\r
10904         000261' 000000  000000   0\r
10905         000262' 000000  000000   0\r
10906         000263' 000007  000000   XWD PROG,0\r
10907         000264' 000000  000000   0\r
10908         000265' 000000  000000   0\r
10909         000266' 254000  000266' CRDIS:    JRST .\r
10910 \r
10911 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 11\r
10912 IOINI2  MAC     24-APR-78 03:06         MAXIMAL CONFIGURATION\r
10913 \r
10914 \r
10915 \r
10916         000267'                           LIT\r
10917 \r
10918                                           IFE DTSIZ,<           DIRBUF: BLOCK 200\r
10919                                  INTERNAL DIRBUF\r
10920                                 >\r
10921 \r
10922         000267'                 IFN DTSIZ,<DTDIR:       BLOCK DTCNUM*200\r
10923                                 INTERNAL DTDIR\r
10924                                 >\r
10925 \r
10926                                           END,\r
10927 \r
10928 NO ERRORS DETECTED\r
10929 \r
10930 PROGRAM BREAK IS 001267\r
10931 \r
10932 10K CORE USED\r
10933 \r
10934 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 12\r
10935 IOINI2  MAC     24-APR-78 03:06         SYMBOL TABLE\r
10936 \r
10937 A               000000  INT\r
10938 AC1             000015  INT\r
10939 AC2             000016  INT\r
10940 AC3             000017  INT\r
10941 AL              000001  INT\r
10942 APRBIT          000002  \r
10943 APRCHN          000006  \r
10944 ASSCON          400000  INT\r
10945 ASSPRG          200000  INT\r
10946 B               000014  INT\r
10947 BUFPNT          000012  INT\r
10948 BUFWRD          000013  INT\r
10949 CDR             000000  \r
10950 CDRCHN          000005  \r
10951 CDRDAT          000254' INT\r
10952 CDRDB           000254' INT\r
10953 CDRDSP          000257' EXT\r
10954 CH1N            000000  \r
10955 CH1PDN          000000  \r
10956 CH2N            000011  \r
10957 CH2PDN          000020  \r
10958 CH3N            000011  \r
10959 CH3PDN          000020  \r
10960 CH4N            000011  \r
10961 CH4PDN          000020  \r
10962 CH5N            000011  \r
10963 CH5PDN          000020  \r
10964 CH6N            000017  \r
10965 CH6PDN          000020  \r
10966 CH7N            000000  \r
10967 CH7PDN          000000  \r
10968 CLKOFF          001006  INT\r
10969 CLOSB           002000  INT\r
10970 CLSIN           000002  INT\r
10971 CLSOUT          000001  INT\r
10972 CRDIS           000266' INT\r
10973 CTYCHN          000003  \r
10974 D               000017  INT\r
10975 DAT             000005  INT\r
10976 DCL             000001  INT\r
10977 DCW             020000  INT\r
10978 DDI             000007  INT\r
10979 DDO             000006  INT\r
10980 DDTMEM          000037  INT\r
10981 DDTSYM          000036  INT\r
10982 \r
10983 \r
10984 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 12-1\r
10985 IOINI2  MAC     24-APR-78 03:06         SYMBOL TABLE\r
10986 \r
10987 DEN             000004  INT\r
10988 DEVADR          000007  INT\r
10989 DEVBUF          000006  INT\r
10990 DEVCHR          000001  INT\r
10991 DEVCTR          000011  INT\r
10992 DEVDAT          000006  INT\r
10993 DEVIAD          000007  INT\r
10994 DEVIOS          000002  INT\r
10995 DEVLOG          000005  INT\r
10996 DEVLST          000000' INT\r
10997 DEVMOD          000004  INT\r
10998 DEVNAM          000000  INT\r
10999 DEVOAD          000010  INT\r
11000 DEVPTR          000010  INT\r
11001 DEVSER          000003  INT\r
11002 DGF             000012  INT\r
11003 DIN             000003  INT\r
11004 DLK             000005  INT\r
11005 DOU             000002  INT\r
11006 DR              000016  INT\r
11007 DRL             000000  INT\r
11008 DSI             000011  INT\r
11009 DSO             000010  INT\r
11010 DTA0            000104' \r
11011 DTA0DB          000071' INT\r
11012 DTA1            000117' \r
11013 DTA1DB          000104' INT\r
11014 DTA2            000132' \r
11015 DTA2DB          000117' INT\r
11016 DTA3            000145' \r
11017 DTA3DB          000132' INT\r
11018 DTCCHN          000004  \r
11019 DTCNUM          000004  \r
11020 DTDIR           000267' INT\r
11021 DTSIZ           000001  \r
11022 DTW             040000  INT\r
11023 DVAVAL          000040  INT\r
11024 DVCDR           100000  INT\r
11025 DVDIR           000004  INT\r
11026 DVDIRI          400000  INT\r
11027 DVIN            000002  INT\r
11028 DVLPT           040000  INT\r
11029 DVMTA           000020  INT\r
11030 DVOUT           000001  INT\r
11031 DVTTY           000010  INT\r
11032 ENTRB           020000  INT\r
11033 FIRDB           000001' \r
11034 FSNCHN          000303  INT\r
11035 I               000010  INT\r
11036 IB              000013  INT\r
11037 IBUFB           200000  INT\r
11038 INITB           400000  INT\r
11039 \r
11040 \r
11041 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 12-2\r
11042 IOINI2  MAC     24-APR-78 03:06         SYMBOL TABLE\r
11043 \r
11044 INPB            010000  INT\r
11045 IO              000020  INT\r
11046 IOACT           010000  INT\r
11047 IOBEG           000002  INT\r
11048 IOBKTL          040000  INT\r
11049 IOCON           000040  INT\r
11050 IODEND          020000  INT\r
11051 IODERR          200000  INT\r
11052 IODISC          400000  INT\r
11053 IODONE          400000  INT\r
11054 IODTER          100000  INT\r
11055 IOEND           000040  INT\r
11056 IOFST           000004  INT\r
11057 IOIMPM          400000  INT\r
11058 IONRCK          000100  INT\r
11059 IORDEL          000100  INT\r
11060 IORET           000020  INT\r
11061 IOS             000000  INT\r
11062 IOSTRT          000010  INT\r
11063 IOUSE           400000  INT\r
11064 IOW             000001  INT\r
11065 IOWC            000020  INT\r
11066 IOWS            400000  INT\r
11067 ITEM            000004  INT\r
11068 JBFADR          000000  INT\r
11069 JBFCTR          000002  INT\r
11070 JBFPTR          000001  INT\r
11071 JBUF            000005  INT\r
11072 JDAT            000011  INT\r
11073 JERR            002000  INT\r
11074 JIOW            100000  INT\r
11075 JNA             004000  INT\r
11076 LOOKB           040000  INT\r
11077 LPT             000223' \r
11078 LPTADR          000221' INT\r
11079 LPTBUF          000217' INT\r
11080 LPTCHB          000055  INT\r
11081 LPTCHN          000005  \r
11082 LPTCHR          000212' INT\r
11083 LPTCLB          000205  INT\r
11084 LPTDAT          000211' INT\r
11085 LPTDB           000211' INT\r
11086 LPTDSP          000214' EXT\r
11087 LPTIOS          000213' INT\r
11088 LPTMOD          000215' INT\r
11089 LPTPTR          000220' INT\r
11090 LPTSER          000214' INT\r
11091 LPTSV1          000222' INT\r
11092 MAXIMA          000000  INT\r
11093 MLTTYL  777777  777776  INT\r
11094 MTA0            000156' \r
11095 \r
11096 \r
11097 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 12-3\r
11098 IOINI2  MAC     24-APR-78 03:06         SYMBOL TABLE\r
11099 \r
11100 MTA0DB          000145' INT\r
11101 MTA1            000167' \r
11102 MTA1DB          000156' INT\r
11103 MTA2            000200' \r
11104 MTA2DB          000167' INT\r
11105 MTA3            000211' \r
11106 MTA3DB          000200' INT\r
11107 MTCCHN          000002  \r
11108 MTCNUM          000004  \r
11109 MTDISP          000203' EXT\r
11110 MTTYLN  777777  777776  INT\r
11111 MTW             010000  INT\r
11112 OBUFB           100000  INT\r
11113 OUTPB           004000  INT\r
11114 PDP             000003  INT\r
11115 PICHN           000100  INT\r
11116 PICLK           004202  INT\r
11117 PIOFF           000400  INT\r
11118 PION            000200  INT\r
11119 PROG            000007  INT\r
11120 PTP             000240' \r
11121 PTPADR          000233' INT\r
11122 PTPBUF          000231' INT\r
11123 PTPCHA          000236' INT\r
11124 PTPCHN          000005  \r
11125 PTPCHR          000224' INT\r
11126 PTPCNT          000235' INT\r
11127 PTPCTR          000234' INT\r
11128 PTPDAT          000223' INT\r
11129 PTPDB           000223' INT\r
11130 PTPDSP          000226' EXT\r
11131 PTPIOS          000225' INT\r
11132 PTPMOD          000227' INT\r
11133 PTPPTR          000232' INT\r
11134 PTPSER          000226' INT\r
11135 PTPSIO          000237' INT\r
11136 PTR             000254' \r
11137 PTRADR          000247' INT\r
11138 PTRBUF          000246' INT\r
11139 PTRCHN          000005  \r
11140 PTRCHR          000241' INT\r
11141 PTRCTR          000251' INT\r
11142 PTRDAT          000240' INT\r
11143 PTRDB           000240' INT\r
11144 PTRDSP          000243' EXT\r
11145 PTRIOS          000242' INT\r
11146 PTRMOD          000244' INT\r
11147 PTRPTR          000250' INT\r
11148 \r
11149 \r
11150 \fIOINI2 - IO INITIALIZATION PART 2      MACRO 10 05:51 24-APR-78 PAGE 12-4\r
11151 IOINI2  MAC     24-APR-78 03:06         SYMBOL TABLE\r
11152 \r
11153 PTRSER          000243' INT\r
11154 PTRSV1          000253' INT\r
11155 PTRSVC          000252' INT\r
11156 RUN             200000  INT\r
11157 RUNABL          204000  INT\r
11158 SCNCHN          000003  \r
11159 SCNLIN          000001  \r
11160 STTYB1          000021  INT\r
11161 STTYBF          000020  INT\r
11162 TAC             000001  INT\r
11163 TAC1            000002  INT\r
11164 TCONLN          000001  INT\r
11165 TEM             000010  INT\r
11166 TSCNLN          000000  INT\r
11167 TTY0            000035' \r
11168 TTY0DB          000001' INT\r
11169 TTY1            000071' \r
11170 TTY1DB          000035' INT\r
11171 TTYATC          020000  INT\r
11172 TTYBFE          000033  INT\r
11173 TTYBM1          000013  INT\r
11174 TTYBUF          000014  INT\r
11175 TTYCTR          000012  INT\r
11176 TTYDSP          000040' EXT\r
11177 TTYLEN          000002  INT\r
11178 TTYLST          000001' INT\r
11179 TTYPTR          000011  INT\r
11180 TTYSAV          000013  INT\r
11181 TTYUSE          010000  INT\r
11182 UDIR            000012  INT\r
11183 UFREE           000011  INT\r
11184 USRMOD          010000  INT\r
11185 UTDSP           000135' EXT\r
11186 UUO             000014  INT\r
11187 \f            JJJ         OOOOOOOOO         BBBBBBBBBBBB         DDDDDDDDDDDD            AAAAAAAAA         TTTTTTTTTTTTTTT\r
11188             JJJ         OOOOOOOOO         BBBBBBBBBBBB         DDDDDDDDDDDD            AAAAAAAAA         TTTTTTTTTTTTTTT\r
11189             JJJ         OOOOOOOOO         BBBBBBBBBBBB         DDDDDDDDDDDD            AAAAAAAAA         TTTTTTTTTTTTTTT\r
11190             JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
11191             JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
11192             JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
11193             JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
11194             JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
11195             JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
11196             JJJ      OOO         OOO      BBBBBBBBBBBB         DDD         DDD      AAA         AAA            TTT      \r
11197             JJJ      OOO         OOO      BBBBBBBBBBBB         DDD         DDD      AAA         AAA            TTT      \r
11198             JJJ      OOO         OOO      BBBBBBBBBBBB         DDD         DDD      AAA         AAA            TTT      \r
11199 JJJ         JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAAAAAAAAAAAAAA            TTT      \r
11200 JJJ         JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAAAAAAAAAAAAAA            TTT      \r
11201 JJJ         JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAAAAAAAAAAAAAA            TTT      \r
11202 JJJ         JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
11203 JJJ         JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
11204 JJJ         JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
11205    JJJJJJJJJ            OOOOOOOOO         BBBBBBBBBBBB         DDDDDDDDDDDD         AAA         AAA            TTT      \r
11206    JJJJJJJJJ            OOOOOOOOO         BBBBBBBBBBBB         DDDDDDDDDDDD         AAA         AAA            TTT      \r
11207    JJJJJJJJJ            OOOOOOOOO         BBBBBBBBBBBB         DDDDDDDDDDDD         AAA         AAA            TTT      \r
11208 \r
11209 \r
11210 \r
11211 \r
11212 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11213 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11214 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11215 LLL                  SSS                        TTT                                                                     \r
11216 LLL                  SSS                        TTT                                                                     \r
11217 LLL                  SSS                        TTT                                                                     \r
11218 LLL                  SSS                        TTT                                                                     \r
11219 LLL                  SSS                        TTT                                                                     \r
11220 LLL                  SSS                        TTT                                                                     \r
11221 LLL                     SSSSSSSSS               TTT                                                                     \r
11222 LLL                     SSSSSSSSS               TTT                                                                     \r
11223 LLL                     SSSSSSSSS               TTT                                                                     \r
11224 LLL                              SSS            TTT                                                                     \r
11225 LLL                              SSS            TTT                                                                     \r
11226 LLL                              SSS            TTT                                                                     \r
11227 LLL                              SSS            TTT                                                                     \r
11228 LLL                              SSS            TTT                                                                     \r
11229 LLL                              SSS            TTT                                                                     \r
11230 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11231 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11232 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11233 \r
11234 \r
11235 \r
11236 \r
11237 Request created: 24-April-1978  05:53:58\r
11238 File: DSKB0 :JOBDAT.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:35\r
11239 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1732 \r
11240 File will be deleted after printing\r
11241 \f\r
11242 JOBDAT - JOB DATA AREA ASSIGNMENTS      MACRO 10 05:51 24-APR-78 PAGE 1\r
11243 JOBDAT  MAC     24-APR-78 01:24 \r
11244 \r
11245                                 TITLE JOBDAT - JOB DATA AREA ASSIGNMENTS\r
11246 \r
11247                                           DEFINE BLK (A,B)\r
11248                                 <JOBPRO=B\r
11249                                 A=0\r
11250                                 ENTRY A\r
11251                                 DEFINE BLK (C,D)\r
11252                                 <C=JOBPRO\r
11253                                 JOBPRO=JOBPRO+D\r
11254                                 ENTRY C>>\r
11255 \r
11256                                           BLK JOBAC,20          ;SYSTEM USE AC STORAGE\r
11257                                           BLK JOBDAC,20         ;USER'S AC STORAGE WHILE JOB IS INACTIV\r
11258                         000157  JOBDHI=JOBDAT+17    ;HIGHEST AC SAVED WHILE INACTIVE\r
11259                                           BLK JOBUUO,1          ;UUO SAVE AND TRAP LOCATIONS\r
11260                                           BLK JOB41,1           ;UUO JSR LOCATION\r
11261                                           BLK JOBPC,1           ;BITS 0-5=APR FLAGS, C(RH)=PC\r
11262                                           BLK JOBPDP,1          ;PUSH DOWN POINTER FOR SYSTEM USE\r
11263                         000043  JOBPRT=JOBPDP                   ;FIRST LOC PROTECTED FROM ITNERRUPT SER\r
11264                         000044  JOBPR1=JOBPRT+1                 ;FIRST LOC+1\r
11265                                           BLK JOBREL,1          ;C(LH)=0, C(RH)=RELOCATION ADDRESS\r
11266                                           BLK JOBUXT,1          ;EXIT FROM UUO AT BREAK\r
11267                                           BLK JOBLEV,1          ;C(40) WHEN INACTIVE\r
11268                                           BLK JOBSAV,1          ;TEMPOARY STORAGE FOR UOO HANDLER\r
11269                                           BLK JOBPOV,1          ;PUSH DOWN OVERFLOW TRAP\r
11270                                           BLK JOBTEM,1          ;(UNUSED)TEMPORARY SYSTEM STORAGE\r
11271                                           BLK JOBTM1,1          ;"\r
11272                                           BLK JOBINF,1          ;UNUSED\r
11273                                           BLK JOBJDA,20         ;JOB IO DEVICE CHANNEL ASSIGNMENTS\r
11274                                           BLK JOBDDT,1          ;ADDRESS OF USER'S DDT\r
11275                         000073  JOBPFI=JOBDDT-1                 ;LAST LOC PROTECTED FROM IO SERVICE\r
11276                         000074  JOBPFU=JOBDDT                   ;LAST LOC PROTECTED FROM USER\r
11277                                           BLK JOBCDP,1          ;(UNUSED)POINTER TO COMMAND STRING\r
11278                                           BLK JOBTRP,20         ;(UNUSED)TRAP LOCATIONS\r
11279                                           BLK JOBSYM,1          ;SYMBOL TABLE POINTER\r
11280                                           BLK JOBUSY,1          ;(UNUSED)POINTER TO UNDEFINED SYMBOL TA\r
11281                                           BLK JOBSA,1           ;C(RH)=STARTING ADDRESS\r
11282                                                                 ;C(LH)=HIGHEST LOCATION USED\r
11283                                           BLK JOBFF,1           ;FIRST FREE LOCATION\r
11284                         000140  JOBDAT=140          ;LENGTH OF JOB DATA AREA\r
11285                         000137  JOBHGH=JOBDAT-1                 ;HIGHEST LOC IN JOB DATA AREA\r
11286                         000121  JOBPDL=JOBPRO-1                 ;FIRST LOC. -1 OF PD LIST\r
11287                         000122  JOBPD1=JOBPDL+1                 ;FIRST LOC. IN PD LIST\r
11288                 777777  777762  MJOBPD=JOBPDL-JOBHGH            ;- LENGTH OF PD LIST\r
11289                         000122  JOBS41=JOBPRO                   ;PLACE WHERE SAVE-GET SAVES USER LOC 4\r
11290                         000140  JOBDA=JOBDAT\r
11291                                 ENTRY JOBPFI,JOBPFU,JOBPDL,JOBPRO,MJOBPD,JOBHGH\r
11292                                 ENTRY JOBDHI,JOBPRT,JOBPR1,JOBDA,JOBS41,JOBPD1\r
11293 \r
11294                                           END,\r
11295 \r
11296 NO ERRORS DETECTED\r
11297 \r
11298 \r
11299 \fJOBDAT - JOB DATA AREA ASSIGNMENTS     MACRO 10 05:51 24-APR-78 PAGE 1-1\r
11300 JOBDAT  MAC     24-APR-78 01:24 \r
11301 \r
11302 PROGRAM BREAK IS 000000\r
11303 \r
11304 8K CORE USED\r
11305 \r
11306 \fJOBDAT - JOB DATA AREA ASSIGNMENTS     MACRO 10 05:51 24-APR-78 PAGE 2\r
11307 JOBDAT  MAC     24-APR-78 01:24         SYMBOL TABLE\r
11308 \r
11309 JOB41           000041  ENT\r
11310 JOBAC           000000  ENT\r
11311 JOBCDP          000075  ENT\r
11312 JOBDA           000140  ENT\r
11313 JOBDAC          000020  ENT\r
11314 JOBDAT          000140  \r
11315 JOBDDT          000074  ENT\r
11316 JOBDHI          000157  ENT\r
11317 JOBFF           000121  ENT\r
11318 JOBHGH          000137  ENT\r
11319 JOBINF          000053  ENT\r
11320 JOBJDA          000054  ENT\r
11321 JOBLEV          000046  ENT\r
11322 JOBPC           000042  ENT\r
11323 JOBPD1          000122  ENT\r
11324 JOBPDL          000121  ENT\r
11325 JOBPDP          000043  ENT\r
11326 JOBPFI          000073  ENT\r
11327 JOBPFU          000074  ENT\r
11328 JOBPOV          000050  ENT\r
11329 JOBPR1          000044  ENT\r
11330 JOBPRO          000122  ENT\r
11331 JOBPRT          000043  ENT\r
11332 JOBREL          000044  ENT\r
11333 JOBS41          000122  ENT\r
11334 JOBSA           000120  ENT\r
11335 JOBSAV          000047  ENT\r
11336 JOBSYM          000116  ENT\r
11337 JOBTEM          000051  ENT\r
11338 JOBTM1          000052  ENT\r
11339 JOBTRP          000076  ENT\r
11340 JOBUSY          000117  ENT\r
11341 JOBUUO          000040  ENT\r
11342 JOBUXT          000045  ENT\r
11343 MJOBPD  777777  777762  ENT\r
11344 \r
11345 \fLLL                  PPPPPPPPPPPP         TTTTTTTTTTTTTTT         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
11346 LLL                  PPPPPPPPPPPP         TTTTTTTTTTTTTTT         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
11347 LLL                  PPPPPPPPPPPP         TTTTTTTTTTTTTTT         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
11348 LLL                  PPP         PPP            TTT            SSS                  EEE                  RRR         RRR\r
11349 LLL                  PPP         PPP            TTT            SSS                  EEE                  RRR         RRR\r
11350 LLL                  PPP         PPP            TTT            SSS                  EEE                  RRR         RRR\r
11351 LLL                  PPP         PPP            TTT            SSS                  EEE                  RRR         RRR\r
11352 LLL                  PPP         PPP            TTT            SSS                  EEE                  RRR         RRR\r
11353 LLL                  PPP         PPP            TTT            SSS                  EEE                  RRR         RRR\r
11354 LLL                  PPPPPPPPPPPP               TTT               SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
11355 LLL                  PPPPPPPPPPPP               TTT               SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
11356 LLL                  PPPPPPPPPPPP               TTT               SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
11357 LLL                  PPP                        TTT                        SSS      EEE                  RRR   RRR      \r
11358 LLL                  PPP                        TTT                        SSS      EEE                  RRR   RRR      \r
11359 LLL                  PPP                        TTT                        SSS      EEE                  RRR   RRR      \r
11360 LLL                  PPP                        TTT                        SSS      EEE                  RRR      RRR   \r
11361 LLL                  PPP                        TTT                        SSS      EEE                  RRR      RRR   \r
11362 LLL                  PPP                        TTT                        SSS      EEE                  RRR      RRR   \r
11363 LLLLLLLLLLLLLLL      PPP                        TTT            SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
11364 LLLLLLLLLLLLLLL      PPP                        TTT            SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
11365 LLLLLLLLLLLLLLL      PPP                        TTT            SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
11366 \r
11367 \r
11368 \r
11369 \r
11370 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11371 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11372 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11373 LLL                  SSS                        TTT                                                                     \r
11374 LLL                  SSS                        TTT                                                                     \r
11375 LLL                  SSS                        TTT                                                                     \r
11376 LLL                  SSS                        TTT                                                                     \r
11377 LLL                  SSS                        TTT                                                                     \r
11378 LLL                  SSS                        TTT                                                                     \r
11379 LLL                     SSSSSSSSS               TTT                                                                     \r
11380 LLL                     SSSSSSSSS               TTT                                                                     \r
11381 LLL                     SSSSSSSSS               TTT                                                                     \r
11382 LLL                              SSS            TTT                                                                     \r
11383 LLL                              SSS            TTT                                                                     \r
11384 LLL                              SSS            TTT                                                                     \r
11385 LLL                              SSS            TTT                                                                     \r
11386 LLL                              SSS            TTT                                                                     \r
11387 LLL                              SSS            TTT                                                                     \r
11388 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11389 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11390 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11391 \r
11392 \r
11393 \r
11394 \r
11395 Request created: 24-April-1978  05:53:58\r
11396 File: DSKB0 :LPTSER.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:35\r
11397 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1729 \r
11398 File will be deleted after printing\r
11399 \f\r
11400 LPTSER - LINE PRINTER SERVICE ROUTINE   MACRO 10 05:51 24-APR-78 PAGE 1\r
11401 S       MAC     24-APR-78 21:40         8-4-65\r
11402 \r
11403                                         XLIST\r
11404                                        LIST\r
11405                                 TITLE LPTSER - LINE PRINTER SERVICE ROUTINE\r
11406                                 SUBTTL 8-4-65\r
11407                                 INTERNAL LPTINT,LPTINI\r
11408                                 EXTERNAL LPTCHN, LPTCHL, LPTRET,  OUT, WAIT1, LPTSAV, IOSET\r
11409                                 EXTERNAL ADVBFE,  SETIOD,ILLINP,LPTCHB,LPTCLB\r
11410 \r
11411                                 ;DEVICE DATA BLOCK LINKAGE\r
11412                                 EXTERNAL LPTDAT,LPTCHR,LPTIOS,LPTSER,LPTMOD,LPTBUF,LPTPTR\r
11413                                 EXTERNAL LPTADR,LPTSV1\r
11414                                 ENTRY LPTDSP\r
11415 \r
11416 \fLPTSER - LINE PRINTER SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 2\r
11417 LPTSER  MAC     24-APR-78 01:26         8-4-65\r
11418 \r
11419 \r
11420 \r
11421                                 ,LPT PARAMETER ASSIGNMENTS\r
11422 \r
11423                                 ,   LPT CONTROL REGISTER\r
11424                         002000            LPTCLR=2000           ;CLEAR BUFFER\r
11425                         000100            LPTDON=100            ;DONE FLAG\r
11426                         000400            LPTERR=400            ;ERROR FLAG\r
11427                         001000            LPTLOV=1000           ;LINE OVERFLOW\r
11428 \r
11429                                 ,   SPECIAL IO STATUS WORD ASSIGNMENTS\r
11430                         100000            LPTADV=100000\r
11431 \r
11432                                 REPEAT 0,<\r
11433                                 ,   LPT DATABLOCK\r
11434                                 \r
11435                                 LPTDAT:   SIXBIT .LPT.\r
11436                                 LPTCHR:   32\r
11437                                 LPTIOS:   0\r
11438                                 LPTSER:   EXP LPTDSP\r
11439                                 LPTMOD:   XWD 0,3\r
11440                                  0\r
11441                                 LPTBUF:   0\r
11442                                 LPTPTR:   0\r
11443                                 LPTADR:   XWD PROG,0\r
11444                                 LPTSV1:   0\r
11445                                 >\r
11446 \r
11447                                 ,  LPT SERVICE DISPATCH TABLE\r
11448 \r
11449         000000' 254000  000004' LPTDSP:   JRST LPTINI           ;RELEASE\r
11450         000001' 254000  000007'           JRST LPTCLS           ;CLOSE\r
11451         000002' 254000  000013'           JRST LPTOUT           ;OUTPUT\r
11452         000003' 254000  000000*           JRST ILLINP                           ;INPUT\r
11453 \r
11454         000004' 712600  002000  LPTINI:   CONO LPT,LPTCLR       ;LPT INITIALIZE\r
11455         000005' 513000  000034'           HLLZS LPTINT\r
11456         000006' 263140  000000            POPJ PDP,\r
11457 \r
11458 \fLPTSER - LINE PRINTER SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 3\r
11459 LPTSER  MAC     24-APR-78 01:26         8-4-65\r
11460 \r
11461 \r
11462 \r
11463 E       000007' 260140  000000* LPTCLS:   PUSHJ PDP,OUT         ;PRINT REMAINING BUFFERS\r
11464         000010' 260140  000000*           PUSHJ PDP, WAIT1      ;WAIT FOR IOACT=0\r
11465         000011' 712540  000126'           DATAO LPT,LPTTOP      ;PRINT CARRAGE RETURN, FORM FEED\r
11466         000012' 263140  000000            POPJ PDP,             ;CLOSE RETURN\r
11467 \r
11468         000013' 660000  010000  LPTOUT:   TRO IOS,IOACT         ;IOACT=1\r
11469         000014' 621000  400000            TLZ IOS,IODISC        ;IODISC:=0\r
11470         000015' 661000  000020            TLO IOS,IO            ;IO:=1\r
11471         000016' 603000  000002            TLNE IOS,IOBEG        ;VIRGIN DEVICE? IOBEG:=0\r
11472         000017' 254000  000024'           JRST LPTBEG           ;YES\r
11473         000020' 260140  000127'           PUSHJ PDP,LPTSET\r
11474         000021' 202000  000000*           MOVEM IOS,LPTIOS      ;C(LPTIOS):=C(IOS)\r
11475         000022' 201040  000100            MOVEI TAC,LPTDON\r
11476         000023' 254000  000030'           JRST LPTBG1\r
11477 \r
11478         000024' 661000  400000  LPTBEG:   TLO IOS,IODISC\r
11479         000025' 202000  000021*           MOVEM IOS,LPTIOS      ;C(LPTIOS):=C(IOS)\r
11480         000026' 260140  000127'           PUSHJ PDP,LPTSET\r
11481         000027' 201040  002000            MOVEI TAC,LPTCLR\r
11482         000030' 201100  001500  LPTBG1:   MOVEI TAC1,LPTLOV+LPTERR+LPTDON\r
11483         000031' 542100  000034'           HRRM TAC1,LPTINT\r
11484         000032' 712601  000000*           CONO LPT, LPTCHB(TAC)         ;CLEAR BUFFER AND ASSIGN PI C\r
11485         000033' 263140  000000            POPJ PDP,             ;RETURN\r
11486 \r
11487 \fLPTSER - LINE PRINTER SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 4\r
11488 LPTSER  MAC     24-APR-78 01:26         8-4-65\r
11489 \r
11490 \r
11491 \r
11492 \r
11493                                 , LINE PRINTER INTERRUPT SERVICE\r
11494 \r
11495         000034' 712740  001500  LPTINT:   CONSO LPT,LPTLOV+LPTERR+LPTDON;LINE OVERFLOW, ERROR OR DONE\r
11496         000035' 254000  000034'           JRST LPTINT           ;IF LPT IS IN FLAG LIST, GO TO ERROR, E\r
11497         000036' 712700  000070            CONSZ LPT,70\r
11498         000037' 712740  000100            CONSO LPT,LPTDON\r
11499         000040' 254000  000102'           JRST LPTERI                   ;YES\r
11500         000041' 335000  000025* LPTIN1:   SKIPGE LPTIOS         ;IODISC=1?\r
11501         000042' 254000  000053'           JRST LPTDSC                   ;YES\r
11502         000043' 712500  000000*           BLKO LPT,LPTPTR       ;PRINT\r
11503         000044' 334000  000000            SKIPA                 ;BUFFER EMPTY\r
11504         000045' 254520  000000*           JEN @LPTCHL                   ;DISMISS INTERRUPT AND RETURN\r
11505         000046' 202040  000000*           MOVEM TAC,LPTSV1      ;SAVE TAC\r
11506         000047' 515040  400000            HRLZI TAC,IODISC      ;IODISC:=1\r
11507         000050' 436040  000041*           IORM TAC,LPTIOS\r
11508         000051' 200040  000046* LPTERX:   MOVE TAC,LPTSV1       ;RESTORE TAC\r
11509         000052' 254520  000045*           JEN @LPTCHL                   ;DISMISS INTERRUPT AND RETURN\r
11510 \r
11511         000053' 264000  000000* LPTDSC:   JSR LPTSAV                    ;SAVE ACCUMULATORS AND ESTABL\r
11512         000054' 201300  000000*           MOVEI DEVDAT,LPTDAT  ;DEVDAT:=LPTDAT\r
11513         000055' 260140  000000*           PUSHJ PDP,IOSET       ;PROG:=C(JBTADR18-35),ITEM:=C(DEVPTR)\r
11514         000056' 200000  000050*           MOVE IOS,LPTIOS\r
11515         000057' 623000  000002            TLZE IOS,IOBEG\r
11516         000060' 254000  000077'           JRST LPTBG                    ;PUT OUT CR-LF\r
11517         000061' 260140  000000*           PUSHJ PDP,ADVBFE      ;ADVANCE BUFFER\r
11518         000062' 254000  000073'           JRST      LPTOFF      ;NEXT BUFFER EMPTY\r
11519         000063' 602000  000040            TRNE IOS,IOCON        ;CONTINUOUS? (IOCON=0?)\r
11520         000064' 254000  000073'           JRST LPTOFF           ;NO\r
11521         000065' 621000  400000            TLZ IOS,IODISC\r
11522         000066' 260140  000127'           PUSHJ PDP,LPTSET      ;SET LPTPTR\r
11523 \r
11524         000067' 623000  000001  LPTINX:   TLZE IOS,IOW          ;IN A WAIT? IOW:=0\r
11525         000070' 260140  000000*           PUSHJ PDP,SETIOD      ;YES.  IOWS:=1\r
11526         000071' 202000  000056* LPTXIT:   MOVEM IOS,LPTIOS      ;C(LPTIOS):=C(IOS)\r
11527         000072' 254000  000000*           JRST LPTRET                     ;RESTORE ACCUMULATORS AND DIS\r
11528 \r
11529         000073' 620000  010000  LPTOFF:   TRZ IOS,IOACT\r
11530         000074' 712600  000000            CONO LPT,0\r
11531         000075' 513000  000034'           HLLZS LPTINT          ;TURN LPT OFF\r
11532         000076' 254000  000067'           JRST LPTINX\r
11533 \r
11534         000077' 712540  000126' LPTBG:    DATAO LPT,LPTTOP      ;SEND OUT CR-FF\r
11535         000100' 621000  400000            TLZ IOS,IODISC        ;WHEN IODISC=1\r
11536         000101' 254000  000071'           JRST LPTXIT\r
11537 \r
11538 \fLPTSER - LINE PRINTER SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 5\r
11539 LPTSER  MAC     24-APR-78 01:26         8-4-65\r
11540 \r
11541 \r
11542 \r
11543                                 ;HERE ON EITHER OVERFLOW OR ERROR(OFFLINE) OR ERROR CHANNEL\r
11544                                 ;NOT ASSIGNED.\r
11545 \r
11546         000102' 202040  000051* LPTERI:   MOVEM TAC,LPTSV1      ;SAVE TAC\r
11547         000103' 712740  001000            CONSO LPT,LPTLOV      ;LINE OVERFLOW?\r
11548         000104' 254000  000111'           JRST LPTER1                   ;NO\r
11549         000105' 210040  000137'           MOVN TAC,[EXP 100001]         ;YES, DECREMENT POINTER\r
11550         000106' 272040  000043*           ADDM TAC,LPTPTR\r
11551         000107' 712540  000140'           DATAO LPT,[EXP 15B6+12B13]    ;PRINT CARRIAGE RETURN, LINE\r
11552         000110' 254000  000051'           JRST LPTERX\r
11553 \r
11554         000111' 712740  000070  LPTER1:   CONSO LPT,70          ;ERROR INTERRUPT ASSIGNED?\r
11555         000112' 254000  000117'           JRST LPTER2           ;NO\r
11556         000113' 712600  000000*           CONO LPT,LPTCLB       ;YES, DEASSIGN IT,SET BUSY,CLEAR REST\r
11557         000114' 201040  000100            MOVEI TAC,LPTDON      ;ENABLE FOR DONE FLAG ONLY\r
11558         000115' 542040  000034' LPTERA:   HRRM TAC,LPTINT\r
11559         000116' 254000  000051'           JRST LPTERX\r
11560 \r
11561         000117' 712640  000001  LPTER2:   CONI LPT,TAC\r
11562         000120' 405040  000300            ANDI TAC,300\r
11563         000121' 712601  000032*           CONO LPT,LPTCHB(TAC)\r
11564         000122' 201040  001500            MOVEI TAC,LPTDON+LPTERR+LPTLOV\r
11565         000123' 542040  000034'           HRRM TAC,LPTINT\r
11566         000124' 200040  000102*           MOVE TAC,LPTSV1\r
11567         000125' 254000  000041'           JRST LPTIN1\r
11568         000126' 064300  000000  LPTTOP:   EXP 15B6+14B13        ;CARRIAGE RETURN, FORM FEED\r
11569 \r
11570 \fLPTSER - LINE PRINTER SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 6\r
11571 LPTSER  MAC     24-APR-78 01:26         8-4-65\r
11572 \r
11573 \r
11574 \r
11575                                 ,SET UP PRINTER COUNTER AND POINTER\r
11576 \r
11577         000127' 201060  000000* LPTSET:   MOVEI TAC,@LPTADR     ;LPTPTR:=-(WORD COUNT+1), BUFFER ADDRES\r
11578         000130' 210101  000001            MOVN TAC1,1(TAC)\r
11579         000131' 504040  000002            HRL TAC,TAC1\r
11580         000132' 343040  000134'           AOJLE TAC,.+2         ;C(LPTPTR0-17)<0?\r
11581         000133' 561040  000135'           HRROI TAC,LPTNUL-1\r
11582         000134' 202040  000106*           MOVEM TAC,LPTPTR\r
11583         000135' 263140  000000            POPJ PDP,             ;RETURN\r
11584 \r
11585         000136' 000000  000000  LPTNUL:   0\r
11586 \r
11587                                           END,\r
11588 \r
11589 NO ERRORS DETECTED\r
11590 \r
11591 PROGRAM BREAK IS 000141\r
11592 \r
11593 9K CORE USED\r
11594 \r
11595 \fLPTSER - LINE PRINTER SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 7\r
11596 LPTSER  MAC     24-APR-78 01:26         SYMBOL TABLE\r
11597 \r
11598 A               000000  INT\r
11599 AC1             000015  INT\r
11600 AC2             000016  INT\r
11601 AC3             000017  INT\r
11602 ADVBFE          000061' EXT\r
11603 AL              000001  INT\r
11604 ASSCON          400000  INT\r
11605 ASSPRG          200000  INT\r
11606 B               000014  INT\r
11607 BUFPNT          000012  INT\r
11608 BUFWRD          000013  INT\r
11609 CLOSB           002000  INT\r
11610 CLSIN           000002  INT\r
11611 CLSOUT          000001  INT\r
11612 D               000017  INT\r
11613 DAT             000005  INT\r
11614 DCL             000001  INT\r
11615 DCW             020000  INT\r
11616 DDI             000007  INT\r
11617 DDO             000006  INT\r
11618 DDTMEM          000037  INT\r
11619 DDTSYM          000036  INT\r
11620 DEN             000004  INT\r
11621 DEVADR          000007  INT\r
11622 DEVBUF          000006  INT\r
11623 DEVCHR          000001  INT\r
11624 DEVCTR          000011  INT\r
11625 DEVDAT          000006  INT\r
11626 DEVIAD          000007  INT\r
11627 DEVIOS          000002  INT\r
11628 DEVLOG          000005  INT\r
11629 DEVMOD          000004  INT\r
11630 DEVNAM          000000  INT\r
11631 DEVOAD          000010  INT\r
11632 DEVPTR          000010  INT\r
11633 DEVSER          000003  INT\r
11634 DGF             000012  INT\r
11635 DIN             000003  INT\r
11636 DLK             000005  INT\r
11637 DOU             000002  INT\r
11638 DR              000016  INT\r
11639 DRL             000000  INT\r
11640 DSI             000011  INT\r
11641 DSO             000010  INT\r
11642 DTW             040000  INT\r
11643 DVAVAL          000040  INT\r
11644 DVCDR           100000  INT\r
11645 DVDIR           000004  INT\r
11646 DVDIRI          400000  INT\r
11647 DVIN            000002  INT\r
11648 DVLPT           040000  INT\r
11649 DVMTA           000020  INT\r
11650 \r
11651 \r
11652 \fLPTSER - LINE PRINTER SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 7-1\r
11653 LPTSER  MAC     24-APR-78 01:26         SYMBOL TABLE\r
11654 \r
11655 DVOUT           000001  INT\r
11656 DVTTY           000010  INT\r
11657 ENTRB           020000  INT\r
11658 I               000010  INT\r
11659 IB              000013  INT\r
11660 IBUFB           200000  INT\r
11661 ILLINP          000003' EXT\r
11662 INITB           400000  INT\r
11663 INPB            010000  INT\r
11664 IO              000020  INT\r
11665 IOACT           010000  INT\r
11666 IOBEG           000002  INT\r
11667 IOBKTL          040000  INT\r
11668 IOCON           000040  INT\r
11669 IODEND          020000  INT\r
11670 IODERR          200000  INT\r
11671 IODISC          400000  INT\r
11672 IODONE          400000  INT\r
11673 IODTER          100000  INT\r
11674 IOEND           000040  INT\r
11675 IOFST           000004  INT\r
11676 IOIMPM          400000  INT\r
11677 IONRCK          000100  INT\r
11678 IORDEL          000100  INT\r
11679 IORET           000020  INT\r
11680 IOS             000000  INT\r
11681 IOSET           000055' EXT\r
11682 IOSTRT          000010  INT\r
11683 IOUSE           400000  INT\r
11684 IOW             000001  INT\r
11685 IOWC            000020  INT\r
11686 IOWS            400000  INT\r
11687 ITEM            000004  INT\r
11688 JBFADR          000000  INT\r
11689 JBFCTR          000002  INT\r
11690 JBFPTR          000001  INT\r
11691 JBUF            000005  INT\r
11692 JDAT            000011  INT\r
11693 JERR            002000  INT\r
11694 JIOW            100000  INT\r
11695 JNA             004000  INT\r
11696 LOOKB           040000  INT\r
11697 LPT             000124  SPD\r
11698 LPTADR          000127' EXT\r
11699 LPTADV          100000  \r
11700 LPTBEG          000024' \r
11701 LPTBG           000077' \r
11702 LPTBG1          000030' \r
11703 LPTBUF          000000  EXT\r
11704 LPTCHB          000121' EXT\r
11705 LPTCHL          000052' EXT\r
11706 LPTCHN          000000  EXT\r
11707 LPTCHR          000000  EXT\r
11708 \r
11709 \fLPTSER - LINE PRINTER SERVICE ROUTINE  MACRO 10 05:51 24-APR-78 PAGE 7-2\r
11710 LPTSER  MAC     24-APR-78 01:26         SYMBOL TABLE\r
11711 \r
11712 LPTCLB          000113' EXT\r
11713 LPTCLR          002000  \r
11714 LPTCLS          000007' \r
11715 LPTDAT          000054' EXT\r
11716 LPTDON          000100  \r
11717 LPTDSC          000053' \r
11718 LPTDSP          000000' ENT\r
11719 LPTER1          000111' \r
11720 LPTER2          000117' \r
11721 LPTERA          000115' \r
11722 LPTERI          000102' \r
11723 LPTERR          000400  \r
11724 LPTERX          000051' \r
11725 LPTIN1          000041' \r
11726 LPTINI          000004' INT\r
11727 LPTINT          000034' INT\r
11728 LPTINX          000067' \r
11729 LPTIOS          000071' EXT\r
11730 LPTLOV          001000  \r
11731 LPTMOD          000000  EXT\r
11732 LPTNUL          000136' \r
11733 LPTOFF          000073' \r
11734 LPTOUT          000013' \r
11735 LPTPTR          000134' EXT\r
11736 LPTRET          000072' EXT\r
11737 LPTSAV          000053' EXT\r
11738 LPTSER          000000  EXT\r
11739 LPTSET          000127' \r
11740 LPTSV1          000124' EXT\r
11741 LPTTOP          000126' \r
11742 LPTXIT          000071' \r
11743 MTW             010000  INT\r
11744 OBUFB           100000  INT\r
11745 OUT             000007' EXT\r
11746 OUTPB           004000  INT\r
11747 PDP             000003  INT\r
11748 PICHN           000100  INT\r
11749 PROG            000007  INT\r
11750 RUN             200000  INT\r
11751 RUNABL          204000  INT\r
11752 SETIOD          000070' EXT\r
11753 TAC             000001  INT\r
11754 TAC1            000002  INT\r
11755 TEM             000010  INT\r
11756 TTYATC          020000  INT\r
11757 TTYUSE          010000  INT\r
11758 USRMOD          010000  INT\r
11759 UUO             000014  INT\r
11760 WAIT1           000010' EXT\r
11761 \fMMM         MMM      TTTTTTTTTTTTTTT      PPPPPPPPPPPP            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
11762 MMM         MMM      TTTTTTTTTTTTTTT      PPPPPPPPPPPP            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
11763 MMM         MMM      TTTTTTTTTTTTTTT      PPPPPPPPPPPP            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
11764 MMMMMM   MMMMMM            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
11765 MMMMMM   MMMMMM            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
11766 MMMMMM   MMMMMM            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
11767 MMM   MMM   MMM            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
11768 MMM   MMM   MMM            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
11769 MMM   MMM   MMM            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
11770 MMM         MMM            TTT            PPPPPPPPPPPP            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
11771 MMM         MMM            TTT            PPPPPPPPPPPP            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
11772 MMM         MMM            TTT            PPPPPPPPPPPP            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
11773 MMM         MMM            TTT            PPP                              SSS      EEE                  RRR   RRR      \r
11774 MMM         MMM            TTT            PPP                              SSS      EEE                  RRR   RRR      \r
11775 MMM         MMM            TTT            PPP                              SSS      EEE                  RRR   RRR      \r
11776 MMM         MMM            TTT            PPP                              SSS      EEE                  RRR      RRR   \r
11777 MMM         MMM            TTT            PPP                              SSS      EEE                  RRR      RRR   \r
11778 MMM         MMM            TTT            PPP                              SSS      EEE                  RRR      RRR   \r
11779 MMM         MMM            TTT            PPP                  SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
11780 MMM         MMM            TTT            PPP                  SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
11781 MMM         MMM            TTT            PPP                  SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
11782 \r
11783 \r
11784 \r
11785 \r
11786 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11787 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11788 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11789 LLL                  SSS                        TTT                                                                     \r
11790 LLL                  SSS                        TTT                                                                     \r
11791 LLL                  SSS                        TTT                                                                     \r
11792 LLL                  SSS                        TTT                                                                     \r
11793 LLL                  SSS                        TTT                                                                     \r
11794 LLL                  SSS                        TTT                                                                     \r
11795 LLL                     SSSSSSSSS               TTT                                                                     \r
11796 LLL                     SSSSSSSSS               TTT                                                                     \r
11797 LLL                     SSSSSSSSS               TTT                                                                     \r
11798 LLL                              SSS            TTT                                                                     \r
11799 LLL                              SSS            TTT                                                                     \r
11800 LLL                              SSS            TTT                                                                     \r
11801 LLL                              SSS            TTT                                                                     \r
11802 LLL                              SSS            TTT                                                                     \r
11803 LLL                              SSS            TTT                                                                     \r
11804 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11805 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11806 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11807 \r
11808 \r
11809 \r
11810 \r
11811 Request created: 24-April-1978  05:53:58\r
11812 File: DSKB0 :MTPSER.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:35\r
11813 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1720 \r
11814 File will be deleted after printing\r
11815 \f\r
11816 MTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES        MACRO 10 05:51 24-APR-78 PAGE 1\r
11817 S       MAC     24-APR-78 21:40         L. HANTMAN 8-9-65\r
11818 \r
11819                                         XLIST\r
11820                                        LIST\r
11821                                           TITLE MTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES\r
11822                                           SUBTTL L. HANTMAN 8-9-65\r
11823                         000004            T=ITEM\r
11824                                 ; MAG TAPE SERVICE SUBROUTINES\r
11825 \r
11826         000000' 260140  000000* MTAPE1:   PUSHJ PDP,WAIT1\r
11827         000001' 551000  776000            HRRZI IOS,776000\r
11828         000002' 413006  000002            ANDCAB IOS,DEVIOS(DEVDAT)\r
11829         000003' 201214  000000            MOVEI T,(UUO)\r
11830         000004' 260140  000007'           PUSHJ PDP,MTAPE+1\r
11831         000005' 254000  000000*           JRST UXIT\r
11832 \r
11833         000006' 260140  000000* MTAPE:    PUSHJ PDP,WAIT1\r
11834         000007' 621000  010000            TLZ IOS,IODT\r
11835         000010' 660000  010000            TRO IOS, IOACT                ;SET ACTIVE\r
11836         000011' 260140  000063'           PUSHJ PDP,MTCHK2              ;CHECK IF MAG TAPE CONTROL AV\r
11837         000012' 242200  000010            LSH T,^D8 ;MOVE TO FUNCTION\r
11838         000013' 405200  007400            ANDI T,7400           ;MODE BITS\r
11839         000014' 306200  004000            CAIN T,4000           ;LOGICAL EOT?\r
11840         000015' 254000  000435'           JRST MTLEOT\r
11841         000016' 302200  000400            CAIE T,400            ;RWD?\r
11842         000017' 254000  000022'           JRST .+3\r
11843         000020' 722700  004000            CONSZ 224,4000        ;AT LOAD POINT?\r
11844         000021' 254000  000517'           JRST MTDMP4\r
11845         000022' 201040  000001            MOVEI TAC, TCF                ;LOOK FOR TAPE CONTROL FREE 0\r
11846         000023' 542040  000044' MTGO1:    HRRM TAC, MTCONO\r
11847         000024' 542040  000211'           HRRM TAC, MTCINT\r
11848         000025' 135040  000000* MTGO1A:   LDB TAC,PUNIT         ;UNIT\r
11849         000026' 137040  000536'           DPB TAC,[POINT 3,T,31]        ;UNIT\r
11850         000027' 135040  000537'           LDB TAC, [POINT 3, IOS,28]    ;DENSITY PARITY\r
11851         000030' 431040  000005            XORI TAC, 5                   ;ODD, 556\r
11852         000031' 137040  000540'           DPB TAC,[POINT 3,T,23]\r
11853         000032' 201044  000000*           MOVEI TAC,MTCCHN(T) ;CHANNEL\r
11854 \r
11855         000033' 722600  000000  MTGO:     CONO 224, 0                   ;DISABLE ALL INTERRUPTS\r
11856         000034' 660040  000200            TRO TAC, 200                  ;INHIBIT RETURN TO POOL\r
11857         000035' 722201  000000            CONO 220,(TAC)                ;COMMAND\r
11858         000036' 402000  000533'           SETZM MTEOFF#                 ;CLEAR EOF FLAG\r
11859         000037' 542300  000532'           HRRM DEVDAT,MTDEV#    ;COMMAND, DVDB\r
11860         000040' 506040  000532'           HRLM TAC,MTDEV\r
11861         000041' 603000  010000            TLNE IOS,IODT\r
11862         000042' 700600  002100            CONO PI,2000+DCB\r
11863         000043' 201040  000225'           MOVEI TAC,MTPDUN\r
11864                                                         HRRM    TAC, MTIDSP\r
11865         000044' 722600  000005  MTCONO:   CONO 224,TCF+ERF              ;ENABLE FLAGS\r
11866         000045' 263140  000000            POPJ PDP,\r
11867 \r
11868                                 ;READ\r
11869         000046' 621000  000020  MTIN:     TLZ IOS, IO                   ;READING\r
11870         000047' 260140  000056'           PUSHJ PDP,MTCHEK              ;IS SYSTEM AVAILABLE?\r
11871         000050' 460066  000007            SETCM TAC,@DEVIAD(DEVDAT)     ;-SIZE-1\r
11872         000051' 541066  000007  MTIN1:    HRRI TAC,@DEVIAD(DEVDAT)      ;BUFFER ADDRESS, PROG INCLUDE\r
11873         000052' 270040  000541'           ADD TAC,[XWD 2,1]             ;-SIZE+1,BUFFER+1\r
11874         000053' 201200  002400            MOVEI T,2400          ;READ\r
11875         000054' 200100  000542' MTIN2:    MOVE TAC1,[BLKI DC,4000+DCN+MTDC*10]\r
11876         000055' 254000  000132'           JRST MTINDC\r
11877 \r
11878 MTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES        MACRO 10 05:51 24-APR-78 PAGE 2\r
11879 MTPSER  MAC     24-APR-78 01:34         L. HANTMAN 8-9-65\r
11880 \r
11881 \r
11882                                 ;IS SYSTEM AVAILABLE\r
11883         000056' 660000  010000  MTCHEK:   TRO IOS, IOACT                ;SET ACTIVE\r
11884         000057' 661000  010000            TLO IOS, IODT                 ;SET FOR DATA TRANSFER\r
11885         000060' 202006  000002            MOVEM IOS, DEVIOS(DEVDAT)\r
11886         000061' 352000  000000* MTCHK1:   AOSE DCREQ\r
11887         000062' 260140  000000*           PUSHJ PDP,DCWAIT\r
11888         000063' 621000  004002  MTCHK2:   TLZ IOS, IOSEOF+IOBEG                 ;CLEAR SPACE TO EOF\r
11889         000064' 202006  000002            MOVEM IOS, DEVIOS(DEVDAT)             ;STORE BITS\r
11890         000065' 352000  000000*           AOSE MTREQ\r
11891         000066' 260140  000000*           PUSHJ PDP,MTWAIT\r
11892         000067' 256000  000025'           XCT MTGO1A                    ;UNIT\r
11893         000070' 241040  000004            ROT TAC, 4                    ;PUT IN UNIT POSITION\r
11894         000071' 722201  000200            CONO 220, 200(TAC)    ;HAS UNIT ONLY\r
11895         000072' 722600  000002            CONO 224, SEL                 ;JAM UNIT INTO COMMAND BUFFER\r
11896         000073' 722700  000002            CONSZ 224, SEL                ;UNIT NOT READY?\r
11897         000074' 263140  000000            POPJ PDP, 0                   ;EXIT\r
11898         000075' 241040  777774            ROT TAC, -4                   ;UNIT IN TAC\r
11899         000076' 542301  000425'           HRRM DEVDAT, MTSTAK(TAC)      ;PUT IN STACK\r
11900         000077' 200100  000543'           MOVE TAC1, [XWD MTCLOK,^D32]  ;HALF SECOND\r
11901         000100' 137040  000544'           DPB TAC, [POINT 3,TAC1,23]    ;STORE UNIT NUMBER\r
11902         000101' 506101  000425'           HRLM TAC1, MTSTAK(TAC)        ;SAVE ACTUAL CLOCK REQUEST\r
11903         000102' 700600  000400            CONO PI, 400                  ;TURN OFF PI\r
11904         000103' 136100  000000*           IDPB TAC1, CLOCK              ;REQUEST CLOCK RETURN TO MTCL\r
11905         000104' 700600  000200            CONO PI, 200                  ;TURN PI ON\r
11906         000105' 371000  000065*           SOSL MTREQ            ;DECREMENT REQUEST COUNT, ANYONE LEFT W\r
11907         000106' 476000  000000*           SETOM MTAVAL                  ;YES,SET MAG TAPE AVAL\r
11908         000107' 607000  010000            TLNN IOS, IODT                ;NON-DATA TRANSFER?\r
11909         000110' 254000  000113'           JRST MTCHK3           ;YES\r
11910         000111' 371000  000061*           SOSL DCREQ            ;NO,DECREMENT REQUEST COUNT,ANYONE LEFT\r
11911         000112' 476000  000000*           SETOM DCAVAL                  ;YES,SET DATA CONTROL AVAILAB\r
11912         000113' 260140  000000* MTCHK3:   PUSHJ PDP, WSYNC              ;REQUEST WAIT\r
11913         000114' 200006  000002            MOVE IOS, DEVIOS(DEVDAT)      ;LOAD STATUS\r
11914         000115' 607000  010000            TLNN IOS, IODT                ;DATA TRANFER?\r
11915         000116' 254000  000065'           JRST MTCHK2+2                 ;CHECK FOR MT AVAILABLE ONLY\r
11916         000117' 254000  000061'           JRST MTCHK1                   ;CHECK FOR MT AND DC AVAIALABL\r
11917 \r
11918 \fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES       MACRO 10 05:51 24-APR-78 PAGE 3\r
11919 MTPSER  MAC     24-APR-78 01:34         L. HANTMAN 8-9-65\r
11920 \r
11921 \r
11922                                 ;WRITE\r
11923         000120' 661000  000020  MTOUT:    TLO IOS, IO                   ;WRITING\r
11924         000121' 260140  000056'           PUSHJ PDP,MTCHEK\r
11925         000122' 722700  000200            CONSZ 224,200         ;IS FILE PROTECT RING IN?\r
11926         000123' 254000  000145'           JRST MTOUTE           ;NO, ERROR CANT WRITE. CROCK!!\r
11927         000124' 201066  000010  MTOUT1:   MOVEI TAC,@DEVOAD(DEVDAT)     ;BUFFER ADDRESS, PROG INCLUDE\r
11928         000125' 210101  000001            MOVN TAC1,1(TAC)      ;-WD COUNT\r
11929         000126' 504040  000002            HRL TAC,TAC1          ;-WD CMT,BUFFER\r
11930         000127' 347040  000273'           AOJG TAC,MTNOTI       ;BUFFER+1, TEST FOR ZERO WORD COUNT\r
11931         000130' 200040  000545' MTOUT2:   MOVE TAC,[BLKO DC,3400+DCN+MTDC*10]\r
11932         000131' 201200  001000            MOVEI T,1000          ;WRITE\r
11933         000132' 202040  000531' MTINDC:   MOVEM TAC,MTDCCN#             ;BLKO POINTER\r
11934         000133' 202040  000526'           MOVEM TAC,DCWRD#\r
11935         000134' 552100  000527'           HRRZM TAC1, MDCSAV#           ;SAVE DC COMMAND\r
11936         000135' 541100  000526'           HRRI TAC1,DCWRD\r
11937         000136' 202100  000042            MOVEM TAC1,40+<2*DCN>         ;BLK COMMAND\r
11938         000137' 200100  000546'           MOVE TAC1,[JSR MTDCND]\r
11939         000140' 202100  000043            MOVEM TAC1,41+<2*DCN>\r
11940         000141' 700600  001100            CONO PI,1100\r
11941         000142' 720220  000527'           CONO DC, @MDCSAV              ;DATA CONTROL COMMAND\r
11942         000143' 201040  000004            MOVEI TAC, ERF\r
11943         000144' 254000  000023'           JRST MTGO1\r
11944 \r
11945         000145' 660000  200000  MTOUTE:   TRO IOS,IODERR        ;WRITE LOCK, DEVICE ERROR\r
11946         000146' 260140  000246'           PUSHJ PDP,MTEND1\r
11947         000147' 254000  000005*           JRST UXIT\r
11948 \r
11949         000150' 135040  000000* MTCLS:    LDB TAC,PIOMOD        ;MODE\r
11950         000151' 307040  000016            CAIG TAC, 16                  ;DUMP MODE\r
11951         000152' 254000  000157'           JRST MTCLS1                   ;CLOSE OUTPUT\r
11952         000153' 603000  000020            TLNE IOS,IO                   ;INPUT?\r
11953         000154' 254000  000160'           JRST MTCLS1+1                 ;WRITE EOFS\r
11954         000155' 201200  000016            MOVEI T,16            ;SPACE TO EOF\r
11955         000156' 254000  000006'           JRST MTAPE                    ;GOES BACK TO UUO LEVEL\r
11956         000157' 260140  000000* MTCLS1:   PUSHJ PDP,OUT\r
11957         000160' 201200  000003            MOVEI T,3  ;WRITE IOF\r
11958         000161' 260140  000006'           PUSHJ PDP, MTAPE\r
11959         000162' 201200  000003            MOVEI T,3  ;WRITE EOF\r
11960         000163' 260140  000006'           PUSHJ PDP, MTAPE\r
11961         000164' 201200  000007            MOVEI T,7  ;BSP\r
11962         000165' 254000  000006'           JRST MTAPE\r
11963         000166' 263140  000000  MTDISP:   POPJ PDP,                     ;RELEASE\r
11964         000167' 254000  000150'           JRST MTCLS                    ;CLOSE\r
11965         000170' 254000  000120'           JRST MTOUT                    ;WRITE\r
11966         000171' 254000  000046'           JRST MTIN                     ;READ\r
11967         000172' 254000  000000*           JRST CUXIT1           ;ENTER IN DIRECTORY\r
11968         000173' 254000  000172*           JRST CUXIT1           ;LOOKUP IN DIRECTORY\r
11969         000174' 254000  000454'           JRST MTDMPO                   ;DUMP OUT\r
11970         000175' 254000  000504'           JRST MTDMPI                   ;DUMP IN\r
11971         000176' 254000  000147*           JRST UXIT                     ;SETO\r
11972         000177' 254000  000176*           JRST UXIT                     ;SETI\r
11973         000200' 254000  000177*           JRST UXIT                     ;GETF\r
11974 \r
11975 \fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES       MACRO 10 05:51 24-APR-78 PAGE 3-1\r
11976 MTPSER  MAC     24-APR-78 01:34         L. HANTMAN 8-9-65\r
11977 \r
11978 \r
11979         000201' 210040  000453' MTCINI:   MOVN TAC, MTREDO              ;REPEAT COUNTER\r
11980         000202' 572040  000534'           HRREM TAC, MTERCN             ;RESET ERROR CNTR\r
11981         000203' 722600  000000            CONO 224,0                    ;CLEAR ENABLES\r
11982         000204' 513000  000211'           HLLZS MTCINT                  ;CLEAR CONSO\r
11983         000205' 263140  000000            POPJ PDP,\r
11984 \r
11985 \r
11986 \fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES       MACRO 10 05:51 24-APR-78 PAGE 4\r
11987 MTPSER  MAC     24-APR-78 01:34         L. HANTMAN 8-9-65\r
11988 \r
11989 \r
11990 \r
11991 \r
11992                                 ;BLK COUNTED OUT\r
11993 \r
11994         000206' 000000  000000  MTDCND:   0\r
11995         000207' 700600  001100            CONO PI,DCB+1000              ;SHUT OF DC CHANNEL\r
11996         000210' 254520  000206'           JEN @MTDCND\r
11997 \r
11998 \fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES       MACRO 10 05:51 24-APR-78 PAGE 5\r
11999 MTPSER  MAC     24-APR-78 01:34         L. HANTMAN 8-9-65\r
12000 \r
12001 \r
12002 \r
12003                                 ;FLAG FROM TAPE CONTROL.  SET UP BY INSERT MACRO\r
12004         000211' 722740  000005  MTCINT:   CONSO 224,TCF+ERF\r
12005         000212' 254000  000212'           JRST .\r
12006         000213' 264000  000000*           JSR MTCSAV                    ;SAVE ACS\r
12007         000214' 550300  000532'           HRRZ DEVDAT,MTDEV             ;DVBD\r
12008         000215' 135340  000000*           LDB PROG,PJOBN;               JOB NUMBER\r
12009         000216' 550347  000000*           HRRZ PROG, JBTADR(PROG)\r
12010         000217' 200006  000002            MOVE IOS, DEVIOS(DEVDAT)\r
12011         000220' 722740  000001            CONSO 224,TCF                 ;TAPE CONTROL FREE\r
12012         000221' 254000  000323'           JRST MTEOR\r
12013         000222' 254000  000225' MTIDSP:   JRST MTPDUN                   ;POINTS TO MTERR FOR ERROR\r
12014         000223' 254000  000355'           JRST MTBSP                    ;AFTER BACKSPACE\r
12015         000224' 254000  000335'           JRST MTERR                    ;IF ERROR FOUND\r
12016         000225' 607000  010000  MTPDUN:   TLNN IOS,IODT\r
12017         000226' 254000  000312'           JRST MTNIO2\r
12018         000227' 135040  000150*           LDB TAC,PIOMOD\r
12019         000230' 301040  000016            CAIL TAC,16\r
12020         000231' 254000  000246'           JRST MTEND1                   ;DUMP\r
12021         000232' 603000  000020            TLNE IOS,IO\r
12022         000233' 254000  000273'           JRST MTNOTI                   ;WRITING\r
12023         000234' 332000  000533'           SKIPE MTEOFF                  ;NOT EOF?\r
12024                                                         JRST    MTEOF\r
12025         000235' 201066  000007  MTINDN:   MOVEI TAC,@DEVIAD(DEVDAT)     ;BUFFER ADDRESS\r
12026         000236' 210100  000531'           MOVN TAC1,MTDCCN              ;WD CNT-1\r
12027         000237' 253100  000240'           AOBJN TAC1, .+1               ;WD CNT\r
12028         000240' 513000  000002            HLLZS TAC1                    ;CLR RT HALF\r
12029         000241' 270100  000526'           ADD TAC1,DCWRD                ;ADD CURRENT COUNT=NO. OF WDS\r
12030         000242' 546101  000001            HLRM TAC1,1(TAC)              ;STORE AT WORD COUNT\r
12031         000243' 260140  000000*           PUSHJ PDP,ADVBFF\r
12032         000244' 254000  000246'           JRST .+2  ;NEXT BUFFER FULL\r
12033         000245' 254000  000275'           JRST MTCON                            ;CONTINUE MODE\r
12034         000246' 720200  000000  MTEND1:   CONO DC, 0                    ;TURN OFF DATA CONTROL\r
12035         000247' 371000  000111*           SOSL DCREQ            ;DECREMENT REQUEST COUNT, ANYONE LEFT?\r
12036         000250' 476000  000112*           SETOM DCAVAL                  ;YES, SET FLAG FOR CLOCK\r
12037         000251' 371000  000105* MTNIO:    SOSL MTREQ\r
12038         000252' 476000  000106*           SETOM MTAVAL                  ;YES, SET FLAG FOR CLOCK\r
12039         000253' 722700  010000            CONSZ 224,10000               ;END OF TAPE?\r
12040         000254' 660000  002000            TRO IOS, IOTEND               ;SET END OF TAPE INDICATION\r
12041         000255' 620000  004000            TRZ IOS, IOBOT                ;CLR LOAD POINT INDICATION\r
12042         000256' 722700  004000            CONSZ 224, 4000               ;LOAD POINT?\r
12043         000257' 660000  004000            TRO IOS, IOBOT                ;SET LOAD POINT INDICATION\r
12044         000260' 722700  020000            CONSZ 224, 20000              ;TAPE REWINDING?\r
12045         000261' 660000  004000            TRO IOS, IOBOT                ;SET LOAD POINT INDICATION\r
12046         000262' 623000  000001            TLZE IOS, IOW                 ;CLEAR WAIT\r
12047         000263' 260140  000000*           PUSHJ PDP, SETIOD             ;REQUEST WAIT SATISFIED\r
12048         000264' 620000  010000            TRZ IOS, IOACT                ;CLEAR ACTIVE\r
12049         000265' 202006  000002            MOVEM IOS, DEVIOS(DEVDAT)     ;RESTORE BITS\r
12050         000266' 722600  000000            CONO 224,0                    ;CLEAR MAG TAPE ENABLES\r
12051         000267' 513000  000211'           HLLZS MTCINT                  ;CLEAR CONSO\r
12052         000270' 210040  000453'           MOVN TAC, MTREDO              ;REPEAT COUNTER\r
12053         000271' 572040  000534'           HRREM TAC, MTERCN#\r
12054         000272' 263140  000000            POPJ PDP,             ;DISMISS INTERRUPT OR RETURN TO CALLER\r
12055 \r
12056 \fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES       MACRO 10 05:51 24-APR-78 PAGE 6\r
12057 MTPSER  MAC     24-APR-78 01:34         L. HANTMAN 8-9-65\r
12058 \r
12059 \r
12060         000273' 260140  000000* MTNOTI:   PUSHJ PDP,ADVBFE              ;WRITING\r
12061         000274' 254000  000246'           JRST MTEND1\r
12062         000275' 602000  000040  MTCON:    TRNE IOS,IOCON                ;CONTINUOUS?\r
12063         000276' 254000  000246'           JRST MTEND1                   ;STOP TAPE\r
12064         000277' 722700  010000            CONSZ 224,10000               ;END OF TAPE?\r
12065         000300' 254000  000246'           JRST MTEND1                   ;STOP TAPE\r
12066         000301' 720200  000000            CONO DC,0             ;CLEAR DATA CONTROL\r
12067         000302' 623000  000001            TLZE IOS,IOW\r
12068         000303' 260140  000263*           PUSHJ PDP,SETIOD\r
12069         000304' 202006  000002            MOVEM IOS,DEVIOS(DEVDAT)\r
12070         000305' 210040  000453'           MOVN TAC,MTREDO\r
12071         000306' 572040  000534'           HRREM TAC,MTERCN\r
12072         000307' 607000  000020            TLNN IOS,IO           ;INPUT OR OUTPUT?\r
12073         000310' 254000  000051'           JRST MTIN1            ;CALL INPUT SUBROUTINE\r
12074         000311' 254000  000124'           JRST MTOUT1           ;CALL OUTPUT SUBROUTINE\r
12075         000312' 554040  000532' MTNIO2:   HLRZ TAC,MTDEV                ;COMMAND\r
12076         000313' 405040  007400            ANDI TAC,7400\r
12077         000314' 302040  003000            CAIE TAC, 3000                ;SPACE ONE RECORD\r
12078         000315' 254000  000251'           JRST MTNIO                    ;EXIT\r
12079         000316' 722700  000400            CONSZ 224, 400                ;EOF?\r
12080         000317' 661000  004000            TLO IOS, IOSEOF               ;SET EOF DETECTED\r
12081         000320' 254000  000251'           JRST MTNIO                    ;EXIT\r
12082         000321' 661000  000040  MTEOF:    TLO IOS, IOEND\r
12083         000322' 254000  000246'           JRST MTEND1\r
12084         000323' 722700  000030  MTEOR:    CONSZ 224,LPE+CPE             ;IF END OF RECORD CHECK PARIT\r
12085         000324' 370000  000222'           SOS MTIDSP                    ;IF ERROR CAUSE INTERRUPT TO\r
12086                                                                         ;ERROR ROUTIE VIA TCF\r
12087         000325' 722700  000400            CONSZ 224, 400                ;EOF?\r
12088         000326' 476000  000533'           SETOM MTEOFF                  ;SET EOF FLAG\r
12089         000327' 722600  000001  MTIGN:    CONO 224, TCF                 ;IF ERF, CAUSE INTERRUPT TO D\r
12090                                                                         ;PATCH TABLE, DISABLE ERF FLA\r
12091         000330' 202040  000206'           MOVEM TAC, MTDCND             ;SAVE TAC\r
12092         000331' 201040  000001            MOVEI TAC, TCF                ;LOOK FOR TCF ONLY\r
12093         000332' 542040  000211'           HRRM TAC, MTCINT              ;SET CONSO\r
12094         000333' 200040  000206'           MOVE TAC,MTDCND               ;RESTORE TAC\r
12095         000334' 254000  000000*           JRST MTCRET                   ;DISMISS AND RETURN VIA TCF\r
12096 \r
12097 \fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES       MACRO 10 05:51 24-APR-78 PAGE 7\r
12098 MTPSER  MAC     24-APR-78 01:34         L. HANTMAN 8-9-65\r
12099 \r
12100 \r
12101         000335' 554040  000532' MTERR:    HLRZ TAC,MTDEV                ;COMMAND\r
12102         000336' 405040  007400            ANDI TAC,7400\r
12103         000337' 306040  002400            CAIN TAC,2400                 ;READ?\r
12104         000340' 254000  000343'           JRST .+3\r
12105         000341' 306040  001000            CAIN TAC,1000                 ;WRITE\r
12106         000342' 254000  000401'           JRST MTIGN2                   ;IGNORE IF NOT RD OR WRITE\r
12107         000343' 606000  000100            TRNN IOS, IONRCK              ;RE-DO?\r
12108         000344' 351000  000534'           AOSL MTERCN                   ;THIRD ERROR?\r
12109         000345' 254000  000353'           JRST MTERR2                   ;TRIPLE ERROR\r
12110         000346' 554040  000532'           HLRZ TAC,MTDEV                ;COMMAND\r
12111         000347' 405040  770377            ANDI TAC,770377\r
12112         000350' 722201  003400            CONO 220,3400(TAC)    ;BSP\r
12113         000351' 370000  000222'           SOS MTIDSP\r
12114         000352' 254000  000327'           JRST MTIGN\r
12115 \r
12116         000353' 660000  200000  MTERR2:   TRO IOS, IODERR               ;DEVICE ERROR\r
12117         000354' 254000  000225'           JRST MTPDUN\r
12118 \r
12119         000355' 200040  000531' MTBSP:    MOVE TAC,MTDCCN               ;POINTER\r
12120         000356' 202040  000526'           MOVEM TAC,DCWRD               ;RESET POINTER WORD\r
12121         000357' 720240  000001            CONI DC,TAC                   ;SAVE IN/OUT, PACK MD. DEV NU\r
12122                                                                         ;PRIORITY\r
12123         000360' 405040  000777            ANDI TAC,777\r
12124         000361' 271040  003000            ADDI TAC,3000                 ;MAKE WRITE\r
12125         000362' 606040  000400            TRNN TAC,400                  ;WAS IT WRITING?\r
12126         000363' 271040  001000            ADDI TAC,1000                 ;MAKE READ\r
12127         000364' 720201  000000            CONO DC,(TAC)                 ;REISSUE CONO\r
12128         000365' 554040  000532'           HLRZ TAC,MTDEV                ;COMMAND\r
12129         000366' 722740  040000            CONSO 224,XNC                 ;WAIT FOR XNC\r
12130         000367' 254000  000366'           JRST .-1  ;SHOULD ADD A COUNT(RUNAWAY TAPE TURNED\r
12131         000370' 722201  000000            CONO 220,(TAC)                ;REISSUE RD OR WRITE\r
12132         000371' 402000  000533'           SETZM MTEOFF                  ;CLR EOF FLAG\r
12133         000372' 700600  002100            CONO PI,2000+DCB              ;TURN ON CHANNEL\r
12134         000373' 201040  000225'           MOVEI TAC,MTPDUN              ;RESET SWITCH\r
12135         000374' 542040  000222'           HRRM TAC,MTIDSP\r
12136         000375' 201040  000004            MOVEI TAC, ERF\r
12137         000376' 542040  000211'           HRRM TAC, MTCINT\r
12138         000377' 722600  000004            CONO 224, ERF\r
12139         000400' 254000  000334*           JRST MTCRET                   ;ENABLE PROPER FLAGS\r
12140         000401' 350000  000222' MTIGN2:   AOS MTIDSP                    ;RESET DISPATCH SWITCH\r
12141         000402' 254000  000327'           JRST MTIGN\r
12142 \r
12143                                 ;NEED TO TRY WRITING LONG RECORD GAP ON OUTPUT(ONLY) AND TRY\r
12144                                 ;ONCE MORE AT NEW SPOT ON TAPE IF TRIPLE ERROR\r
12145 \r
12146 \fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES       MACRO 10 05:51 24-APR-78 PAGE 8\r
12147 MTPSER  MAC     24-APR-78 01:34         L. HANTMAN 8-9-65\r
12148 \r
12149 \r
12150 \r
12151                         040000  XNC=40000               ;TRANSFER NEW COMMAND\r
12152                         000002  MTDC=2                  ;MAG TAPE DATA CONTROL DEVICE NO.\r
12153                         000001  TCF=1                   ;TAPE CONTROL FREE\r
12154                         000004  ERF=4                   ;END OF RECORD FLAG\r
12155                         000020  LPE=20                  ;LONG. PARITY ERROR\r
12156                         000010  CPE=10                  ;CHAR. PARITY ERROR\r
12157                         000100  DCB=100                 ;DATA CHANNEL NUMBER\r
12158                         000001  DCN=1                   ;DATA CHANNEL NUMBER\r
12159                         000002  SEL=2                   ;UNIT TO COMMAND BUFFER\r
12160                         004000  IOSEOF=4000             ;SPACING ONE RECORD FORWARD FOUND EOF\r
12161                         002000  IOTEND=2000             ;EOT INDICATION\r
12162                         000100  IONRCK=100              ;DO NOT RE-TRY ON ERRORS\r
12163                         004000  IOBOT=4000              ;TAPE AT LOAD POINT\r
12164                         010000  IODT=10000              ;A 1 FOR A DATA TRANFER TYPE COMMAND\r
12165                                 EXTERNAL UXIT, ADVBFF, ADVBFE, DCREQ, DCWAIT, MTCSAV\r
12166                                 EXTERNAL MTCRET, DCAVAL, MTAVAL, MTCCHN, MTCCHL, MTREQ\r
12167                                 EXTERNAL MTWAIT,OUT,SETIOD,CLOCK,CUXIT1\r
12168                                 EXTERNAL WSYNC,USRREL,WAIT1,ADRERR,PUNIT,PIOMOD,PJOBN\r
12169                                 EXTERNAL JBTADR\r
12170                                 ENTRY MTDISP\r
12171                                 INTERNAL MTCINT,MTAPE1,MTCINI\r
12172                                 ;CLOCK INTERRUPT, UNIT IN TAC\r
12173         000403' 550301  000425' MTCLOK:   HRRZ DEVDAT, MTSTAK(TAC)      ;DVDB\r
12174         000404' 241040  000004            ROT TAC, 4                    ;PUT UNIT IN SEL BITS\r
12175         000405' 722201  000200            CONO 220, 200(TAC)    ;UNIT ONLY\r
12176         000406' 722600  000002            CONO 224, SEL                 ;SEL UNIT\r
12177         000407' 722700  000002            CONSZ 224, SEL                ;UNIT NOT READY?\r
12178         000410' 254000  000420'           JRST MTCLK2                   ;UNIT READY\r
12179         000411' 241040  777774            ROT TAC, -4                   ;FOR INDEXING PURPOSES\r
12180         000412' 544101  000425'           HLR TAC1, MTSTAK(TAC)         ;CLOCK REQUEST\r
12181         000413' 505100  000403'           HRLI TAC1, MTCLOK             ;GET CLOCK REQUEST\r
12182         000414' 700600  000400            CONO PI, 400                  ;TURN OFF PI\r
12183         000415' 136100  000103*           IDPB TAC1, CLOCK              ;STORE CLOCK REQUESTED\r
12184         000416' 700600  000200            CONO PI, 200                  ;TURN ON PI\r
12185         000417' 263140  000000            POPJ PDP, 0                   ;EXIT\r
12186         000420' 200006  000002  MTCLK2:   MOVE IOS, DEVIOS(DEVDAT)\r
12187         000421' 623000  000001            TLZE IOS,IOW\r
12188         000422' 260140  000303*           PUSHJ PDP, SETIOD\r
12189         000423' 202006  000002            MOVEM IOS, DEVIOS(DEVDAT)\r
12190         000424' 263140  000000            POPJ PDP, 0\r
12191         000425'                 MTSTAK:   BLOCK ^D8\r
12192 \r
12193 \fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES       MACRO 10 05:51 24-APR-78 PAGE 9\r
12194 MTPSER  MAC     24-APR-78 01:34         L. HANTMAN 8-9-65\r
12195 \r
12196 \r
12197 \r
12198                                 ;LOGICAL END OF TAPE LOOP\r
12199         000435' 722700  004000  MTLEOT:   CONSZ 224, 4000               ;TAPE NOT AT LOAD POINT?\r
12200         000436' 254000  000441'           JRST MTEOT2                   ;AVOID BACKSPACE IFAT LOAD P\r
12201         000437' 201200  003400            MOVEI T,3400          ;BACKSPACE\r
12202         000440' 260140  000022'           PUSHJ PDP, MTGO1-1\r
12203         000441' 201200  000016  MTEOT2:   MOVEI T,16            ;SPACE ONE FILE\r
12204         000442' 260140  000006'           PUSHJ PDP, MTAPE\r
12205         000443' 201200  000006            MOVEI T,6 ;SPACE ONE RECORD\r
12206         000444' 260140  000006'           PUSHJ PDP, MTAPE\r
12207         000445' 260140  000006*           PUSHJ PDP, WAIT1              ;WAIT UNTIL SPACING IS COMPLE\r
12208         000446' 200006  000002            MOVE IOS, DEVIOS(DEVDAT)\r
12209         000447' 607000  004000            TLNN IOS, IOSEOF              ;WAS EOF DETECTED?\r
12210         000450' 254000  000441'           JRST MTEOT2                   ;RESUME SPACING\r
12211         000451' 201200  000007            MOVEI T,7 ;BACKSPACE, LOGICAL EOF FOUND\r
12212         000452' 254000  000006'           JRST MTAPE                    ;RETURN BACK TO MAIN PROGRAM\r
12213         000453' 000000  000012  MTREDO:   12        ;NUMBER OF TIMES TO RE-EXECUTE\r
12214 \r
12215 \fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES       MACRO 10 05:51 24-APR-78 PAGE 10\r
12216 MTPSER  MAC     24-APR-78 01:34         L. HANTMAN 8-9-65\r
12217 \r
12218 \r
12219 \r
12220                                 ;DEVICE DEPENDENT DUMP MODES. MODE 16.\r
12221                                 ;OUTPUT\r
12222         000454' 661000  000020  MTDMPO:   TLO IOS, IO                   ;WRITING\r
12223         000455' 550200  000014            HRRZ T,UUO\r
12224         000456' 260140  000056'           PUSHJ PDP, MTCHEK             ;IS SYSTEM AVAILABLE?\r
12225         000457' 200120  000130'           MOVE TAC1, @MTOUT2    ;BLK0 AND DATA CONTROL COMMAN\r
12226         000460' 200040  000004            MOVE TAC,T                    ;COMMAND LIST POINTER\r
12227         000461' 201200  001000            MOVEI T,1000          ;WRITING COMMAND\r
12228         000462' 505040  000007  MTDMP1:   HRLI TAC, PROG                ;ACTUAL ADDRESS OF COMMAND LI\r
12229         000463' 202040  000530'           MOVEM TAC, MTCMDP#    ;COMMAND POINTER\r
12230         000464' 336060  000001            SKIPN TAC,@TAC                ;COMMAND WORD\r
12231         000465' 254000  000515'           JRST MTDMP3                   ;NOTHING TO DO\r
12232         000466' 325040  000462'           JUMPGE TAC, MTDMP1    ;CHANGE COMMAND SEQUENCE\r
12233         000467' 576040  000535'           HLREM TAC, SVCNTR#    ;SAVE COUNTER\r
12234         000470' 553000  000001            HRRZS TAC                     ;GET ADDRESS ALONE\r
12235         000471' 274040  000535'           SUB TAC, SVCNTR               ;GET LAST ADDRESS\r
12236         000472' 313040  000000*           CAMLE TAC, USRREL             ;LESS THAN END?\r
12237         000473' 254000  000513'           JRST MTDMP2                   ;OUT OF BOUNDS\r
12238         000474' 200060  000530'           MOVE TAC, @MTCMDP             ;PICK UP POINTER AGAIN\r
12239         000475' 270040  000007            ADD TAC, PROG                 ;GET ACTUAL ADDRESS\r
12240         000476' 260140  000132'           PUSHJ PDP, MTINDC             ;MOVE TAPE\r
12241         000477' 260140  000445*           PUSHJ PDP,WAIT1\r
12242         000500' 350200  000530'           AOS T,MTCMDP          ;UPDATE COMMAND POINTER\r
12243         000501' 607000  000020            TLNN IOS, IO                  ;WRITING?\r
12244         000502' 254000  000506'           JRST MTDMPI+2                 ;READING\r
12245         000503' 254000  000456'           JRST MTDMPO+2                 ;WRITING\r
12246                                 ;INPUT\r
12247         000504' 621000  000020  MTDMPI:   TLZ IOS, IO                   ;READING\r
12248         000505' 550200  000014            HRRZ T,UUO\r
12249         000506' 260140  000056'           PUSHJ PDP, MTCHEK             ;IS SYSTEM AVAILABLE\r
12250         000507' 200120  000054'           MOVE TAC1,@MTIN2              ;BLKI AND DATA CONTROL COMMAN\r
12251         000510' 200040  000004            MOVE TAC,T                    ;COMMAND LIST POINTER\r
12252         000511' 201200  002400            MOVEI T,2400          ;READ COMMAND\r
12253         000512' 254000  000462'           JRST MTDMP1                   ;DUMP\r
12254                                 ;ADDRESS ERROR\r
12255 \r
12256         000513' 260140  000515' MTDMP2:   PUSHJ PDP,MTDMP3\r
12257         000514' 254000  000000*           JRST ADRERR\r
12258                                 ;CLEAR ALL USE BITS. NOTHING IN COMMAND LIST\r
12259 \r
12260         000515' 371000  000247* MTDMP3:   SOSL DCREQ\r
12261         000516' 476000  000250*           SETOM DCAVAL\r
12262         000517' 371000  000251* MTDMP4:   SOSL MTREQ\r
12263         000520' 476000  000252*           SETOM MTAVAL\r
12264         000521' 620000  010000            TRZ IOS,IOACT\r
12265         000522' 623000  000001            TLZE IOS,IOW\r
12266         000523' 260140  000422*           PUSHJ PDP,SETIOD\r
12267         000524' 202006  000002            MOVEM IOS,DEVIOS(DEVDAT)\r
12268         000525' 263140  000000            POPJ PDP,\r
12269 \r
12270                                           END,\r
12271 \r
12272 \fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES       MACRO 10 05:51 24-APR-78 PAGE 10-2\r
12273 MTPSER  MAC     24-APR-78 01:34         L. HANTMAN 8-9-65\r
12274 \r
12275 \r
12276 NO ERRORS DETECTED\r
12277 \r
12278 PROGRAM BREAK IS 000547\r
12279 \r
12280 9K CORE USED\r
12281 \r
12282 \fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES       MACRO 10 05:51 24-APR-78 PAGE 11\r
12283 MTPSER  MAC     24-APR-78 01:34         SYMBOL TABLE\r
12284 \r
12285 A               000000  INT\r
12286 AC1             000015  INT\r
12287 AC2             000016  INT\r
12288 AC3             000017  INT\r
12289 ADRERR          000514' EXT\r
12290 ADVBFE          000273' EXT\r
12291 ADVBFF          000243' EXT\r
12292 AL              000001  INT\r
12293 ASSCON          400000  INT\r
12294 ASSPRG          200000  INT\r
12295 B               000014  INT\r
12296 BUFPNT          000012  INT\r
12297 BUFWRD          000013  INT\r
12298 CLOCK           000415' EXT\r
12299 CLOSB           002000  INT\r
12300 CLSIN           000002  INT\r
12301 CLSOUT          000001  INT\r
12302 CPE             000010  \r
12303 CUXIT1          000173' EXT\r
12304 D               000017  INT\r
12305 DAT             000005  INT\r
12306 DC              000200  SPD\r
12307 DCAVAL          000516' EXT\r
12308 DCB             000100  \r
12309 DCL             000001  INT\r
12310 DCN             000001  \r
12311 DCREQ           000515' EXT\r
12312 DCW             020000  INT\r
12313 DCWAIT          000062' EXT\r
12314 DCWRD           000526' \r
12315 DDI             000007  INT\r
12316 DDO             000006  INT\r
12317 DDTMEM          000037  INT\r
12318 DDTSYM          000036  INT\r
12319 DEN             000004  INT\r
12320 DEVADR          000007  INT\r
12321 DEVBUF          000006  INT\r
12322 DEVCHR          000001  INT\r
12323 DEVCTR          000011  INT\r
12324 DEVDAT          000006  INT\r
12325 DEVIAD          000007  INT\r
12326 DEVIOS          000002  INT\r
12327 DEVLOG          000005  INT\r
12328 DEVMOD          000004  INT\r
12329 DEVNAM          000000  INT\r
12330 DEVOAD          000010  INT\r
12331 DEVPTR          000010  INT\r
12332 DEVSER          000003  INT\r
12333 DGF             000012  INT\r
12334 DIN             000003  INT\r
12335 DLK             000005  INT\r
12336 DOU             000002  INT\r
12337 \r
12338 \r
12339 \fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES       MACRO 10 05:51 24-APR-78 PAGE 11-1\r
12340 MTPSER  MAC     24-APR-78 01:34         SYMBOL TABLE\r
12341 \r
12342 DR              000016  INT\r
12343 DRL             000000  INT\r
12344 DSI             000011  INT\r
12345 DSO             000010  INT\r
12346 DTW             040000  INT\r
12347 DVAVAL          000040  INT\r
12348 DVCDR           100000  INT\r
12349 DVDIR           000004  INT\r
12350 DVDIRI          400000  INT\r
12351 DVIN            000002  INT\r
12352 DVLPT           040000  INT\r
12353 DVMTA           000020  INT\r
12354 DVOUT           000001  INT\r
12355 DVTTY           000010  INT\r
12356 ENTRB           020000  INT\r
12357 ERF             000004  \r
12358 I               000010  INT\r
12359 IB              000013  INT\r
12360 IBUFB           200000  INT\r
12361 INITB           400000  INT\r
12362 INPB            010000  INT\r
12363 IO              000020  INT\r
12364 IOACT           010000  INT\r
12365 IOBEG           000002  INT\r
12366 IOBKTL          040000  INT\r
12367 IOBOT           004000  \r
12368 IOCON           000040  INT\r
12369 IODEND          020000  INT\r
12370 IODERR          200000  INT\r
12371 IODISC          400000  INT\r
12372 IODONE          400000  INT\r
12373 IODT            010000  \r
12374 IODTER          100000  INT\r
12375 IOEND           000040  INT\r
12376 IOFST           000004  INT\r
12377 IOIMPM          400000  INT\r
12378 IONRCK          000100  INT\r
12379 IORDEL          000100  INT\r
12380 IORET           000020  INT\r
12381 IOS             000000  INT\r
12382 IOSEOF          004000  \r
12383 IOSTRT          000010  INT\r
12384 IOTEND          002000  \r
12385 IOUSE           400000  INT\r
12386 IOW             000001  INT\r
12387 IOWC            000020  INT\r
12388 IOWS            400000  INT\r
12389 ITEM            000004  INT\r
12390 JBFADR          000000  INT\r
12391 JBFCTR          000002  INT\r
12392 JBFPTR          000001  INT\r
12393 JBTADR          000216' EXT\r
12394 JBUF            000005  INT\r
12395 \r
12396 \fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES       MACRO 10 05:51 24-APR-78 PAGE 11-2\r
12397 MTPSER  MAC     24-APR-78 01:34         SYMBOL TABLE\r
12398 \r
12399 JDAT            000011  INT\r
12400 JERR            002000  INT\r
12401 JIOW            100000  INT\r
12402 JNA             004000  INT\r
12403 LOOKB           040000  INT\r
12404 LPE             000020  \r
12405 MDCSAV          000527' \r
12406 MTAPE           000006' \r
12407 MTAPE1          000000' INT\r
12408 MTAVAL          000520' EXT\r
12409 MTBSP           000355' \r
12410 MTCCHL          000000  EXT\r
12411 MTCCHN          000032' EXT\r
12412 MTCHEK          000056' \r
12413 MTCHK1          000061' \r
12414 MTCHK2          000063' \r
12415 MTCHK3          000113' \r
12416 MTCINI          000201' INT\r
12417 MTCINT          000211' INT\r
12418 MTCLK2          000420' \r
12419 MTCLOK          000403' \r
12420 MTCLS           000150' \r
12421 MTCLS1          000157' \r
12422 MTCMDP          000530' \r
12423 MTCON           000275' \r
12424 MTCONO          000044' \r
12425 MTCRET          000400' EXT\r
12426 MTCSAV          000213' EXT\r
12427 MTDC            000002  \r
12428 MTDCCN          000531' \r
12429 MTDCND          000206' \r
12430 MTDEV           000532' \r
12431 MTDISP          000166' ENT\r
12432 MTDMP1          000462' \r
12433 MTDMP2          000513' \r
12434 MTDMP3          000515' \r
12435 MTDMP4          000517' \r
12436 MTDMPI          000504' \r
12437 MTDMPO          000454' \r
12438 MTEND1          000246' \r
12439 MTEOF           000321' \r
12440 MTEOFF          000533' \r
12441 MTEOR           000323' \r
12442 MTEOT2          000441' \r
12443 MTERCN          000534' \r
12444 MTERR           000335' \r
12445 MTERR2          000353' \r
12446 MTGO            000033' \r
12447 MTGO1           000023' \r
12448 MTGO1A          000025' \r
12449 MTIDSP          000222' \r
12450 MTIGN           000327' \r
12451 MTIGN2          000401' \r
12452 \r
12453 \fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES       MACRO 10 05:51 24-APR-78 PAGE 11-3\r
12454 MTPSER  MAC     24-APR-78 01:34         SYMBOL TABLE\r
12455 \r
12456 MTIN            000046' \r
12457 MTIN1           000051' \r
12458 MTIN2           000054' \r
12459 MTINDC          000132' \r
12460 MTINDN          000235' \r
12461 MTLEOT          000435' \r
12462 MTNIO           000251' \r
12463 MTNIO2          000312' \r
12464 MTNOTI          000273' \r
12465 MTOUT           000120' \r
12466 MTOUT1          000124' \r
12467 MTOUT2          000130' \r
12468 MTOUTE          000145' \r
12469 MTPDUN          000225' \r
12470 MTREDO          000453' \r
12471 MTREQ           000517' EXT\r
12472 MTSTAK          000425' \r
12473 MTW             010000  INT\r
12474 MTWAIT          000066' EXT\r
12475 OBUFB           100000  INT\r
12476 OUT             000157' EXT\r
12477 OUTPB           004000  INT\r
12478 PDP             000003  INT\r
12479 PI              000004  SPD\r
12480 PICHN           000100  INT\r
12481 PIOMOD          000227' EXT\r
12482 PJOBN           000215' EXT\r
12483 PROG            000007  INT\r
12484 PUNIT           000025' EXT\r
12485 RUN             200000  INT\r
12486 RUNABL          204000  INT\r
12487 SEL             000002  \r
12488 SETIOD          000523' EXT\r
12489 SVCNTR          000535' \r
12490 T               000004  \r
12491 TAC             000001  INT\r
12492 TAC1            000002  INT\r
12493 TCF             000001  \r
12494 TEM             000010  INT\r
12495 TTYATC          020000  INT\r
12496 TTYUSE          010000  INT\r
12497 USRMOD          010000  INT\r
12498 USRREL          000472' EXT\r
12499 UUO             000014  INT\r
12500 UXIT            000200' EXT\r
12501 WAIT1           000477' EXT\r
12502 WSYNC           000113' EXT\r
12503 XNC             040000  \r
12504 \f   OOOOOOOOO         NNN         NNN         CCCCCCCCCCCC      EEEEEEEEEEEEEEE                                          \r
12505    OOOOOOOOO         NNN         NNN         CCCCCCCCCCCC      EEEEEEEEEEEEEEE                                          \r
12506    OOOOOOOOO         NNN         NNN         CCCCCCCCCCCC      EEEEEEEEEEEEEEE                                          \r
12507 OOO         OOO      NNN         NNN      CCC                  EEE                                                      \r
12508 OOO         OOO      NNN         NNN      CCC                  EEE                                                      \r
12509 OOO         OOO      NNN         NNN      CCC                  EEE                                                      \r
12510 OOO         OOO      NNNNNN      NNN      CCC                  EEE                                                      \r
12511 OOO         OOO      NNNNNN      NNN      CCC                  EEE                                                      \r
12512 OOO         OOO      NNNNNN      NNN      CCC                  EEE                                                      \r
12513 OOO         OOO      NNN   NNN   NNN      CCC                  EEEEEEEEEEEE                                             \r
12514 OOO         OOO      NNN   NNN   NNN      CCC                  EEEEEEEEEEEE                                             \r
12515 OOO         OOO      NNN   NNN   NNN      CCC                  EEEEEEEEEEEE                                             \r
12516 OOO         OOO      NNN      NNNNNN      CCC                  EEE                                                      \r
12517 OOO         OOO      NNN      NNNNNN      CCC                  EEE                                                      \r
12518 OOO         OOO      NNN      NNNNNN      CCC                  EEE                                                      \r
12519 OOO         OOO      NNN         NNN      CCC                  EEE                                                      \r
12520 OOO         OOO      NNN         NNN      CCC                  EEE                                                      \r
12521 OOO         OOO      NNN         NNN      CCC                  EEE                                                      \r
12522    OOOOOOOOO         NNN         NNN         CCCCCCCCCCCC      EEEEEEEEEEEEEEE                                          \r
12523    OOOOOOOOO         NNN         NNN         CCCCCCCCCCCC      EEEEEEEEEEEEEEE                                          \r
12524    OOOOOOOOO         NNN         NNN         CCCCCCCCCCCC      EEEEEEEEEEEEEEE                                          \r
12525 \r
12526 \r
12527 \r
12528 \r
12529 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
12530 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
12531 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
12532 LLL                  SSS                        TTT                                                                     \r
12533 LLL                  SSS                        TTT                                                                     \r
12534 LLL                  SSS                        TTT                                                                     \r
12535 LLL                  SSS                        TTT                                                                     \r
12536 LLL                  SSS                        TTT                                                                     \r
12537 LLL                  SSS                        TTT                                                                     \r
12538 LLL                     SSSSSSSSS               TTT                                                                     \r
12539 LLL                     SSSSSSSSS               TTT                                                                     \r
12540 LLL                     SSSSSSSSS               TTT                                                                     \r
12541 LLL                              SSS            TTT                                                                     \r
12542 LLL                              SSS            TTT                                                                     \r
12543 LLL                              SSS            TTT                                                                     \r
12544 LLL                              SSS            TTT                                                                     \r
12545 LLL                              SSS            TTT                                                                     \r
12546 LLL                              SSS            TTT                                                                     \r
12547 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
12548 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
12549 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
12550 \r
12551 \r
12552 \r
12553 \r
12554 Request created: 24-April-1978  05:53:58\r
12555 File: DSKB0 :ONCE  .LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:36\r
12556 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1704 \r
12557 File will be deleted after printing\r
12558 \f\r
12559 ONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE    MACRO 10 05:51 24-APR-78 PAGE 1\r
12560 S       MAC     24-APR-78 21:40         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12561 \r
12562                                         XLIST\r
12563                                        LIST\r
12564                                           TITLE ONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE\r
12565                                           SUBTTL THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12566                                 ;WHICH SHOULD BE THE LAST LOADED PROGRAM BEFORE SYSMAK AND DDT\r
12567                                 ;THUS IF IT OVERFLOWS INTO THE USER AREA NO HARM IS DONE\r
12568                                 ;INITIALIZE PRIORITY CHANNELS AND SETUP INTERRUPT SERVICE ROUTINE CHA\r
12569                                         XP SYSFIN,.-1\r
12570                         000000  XP SYSFIN,,^SYSFIN=\r
12571         000000' 777777  777777' ^.-1            ;LAST LOC. IN SYSTEM\r
12572                         010000  NXM=10000 ;NON EX-MEM\r
12573 \r
12574                                 INTERNAL PATCH\r
12575 \r
12576         000001'                 PATCH:    BLOCK 100 ;PATCH SPACE\r
12577                                                     ;C(SYSSIZE) SHOULD BE UPDATED AS PATCHES ARE MADE\r
12578 \r
12579                         000001  T=TAC     ;SOME ACS\r
12580                         000002  C=TAC1\r
12581                         000005  INT=DAT   ;INTERRUPT SERVICE ENTRY POINT(USUALLY A CONSO INSTR.)\r
12582                         000006  CHL=DEVDAT          ;THE PLACE WHERE PC IS STORED FOR THAT CHANNEL\r
12583 \r
12584                                 ;LINK TO SERVICE ROUTINES\r
12585 \r
12586                                 INTERNAL LINKSR\r
12587                                 EXTERNAL NDEVM1     ;=NDOV-1 (DEFINED IN IOINI1)\r
12588                                 EXTERNAL DEVINT,JOBSYM\r
12589 \r
12590         000101' 000000  000000  LINKSR:   0                     ;CALLED WITH JSR FROM SYSINI\r
12591                                                                 ;CHAIN INTERUPT SERVICE ROUTINES TOGETH\r
12592         000102' 515240  254000            HRLZI INT, 254000     ;FORM JRST INSTR.\r
12593         000103' 201100  000000*           MOVEI C, NDEVM1       ;NO. OV DEV. SERV. ROUTINES TO CHAIN\r
12594         000104' 554302  000000* DEV1:     HLRZ CHL, DEVINT(C)   ;LOC. WHERE PC IS STORED\r
12595         000105' 540242  000104*           HRR INT, DEVINT(C)    ;INTERRUPT SERVICE ROUTINE ENTRY POINT\r
12596         000106' 200046  000001            MOVE T, 1(CHL)        ;INSERT THIS ROUTINE AT FRONT OF CHAIN\r
12597         000107' 202045  000001            MOVEM T, 1(INT)\r
12598         000110' 202246  000001            MOVEM INT, 1(CHL)\r
12599         000111' 365100  000104'           SOJGE C, DEV1\r
12600 \r
12601 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 2\r
12602 ONCE    MAC     24-APR-78 00:18         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12603 \r
12604 \r
12605 \r
12606                                 ;MOVE SYMBOL TABLE UP IN MEMORY\r
12607                                 ;EXEC MUST BE LOADED IN 15K OR LESS IF GOING INTO 16K MACHINE\r
12608 \r
12609         000112' 402000  000005            SETZM DAT             ;FIND FIRST NON EX MEM\r
12610         000113' 700200  010000            CONO APR,NXM          ;CLEAR NON-EX MEM FLAG\r
12611         000114' 271240  002000            ADDI DAT,2000         ;TRY NEXT 1K BLOCK\r
12612         000115' 200105  000000            MOVE TAC1,(DAT)       ;REFERENCE THIS LOCATION\r
12613         000116' 700340  010000            CONSO APR,NXM         ;NON-EXISTENT?\r
12614         000117' 254000  000114'           JRST .-3              ;NO\r
12615         000120' 275240  000001            SUBI DAT,1            ;YES, HIGHEST LEGAL LOC\r
12616         000121' 202240  000037            MOVEM DAT,DDTMEM      ;FOR DDT\r
12617         000122' 275240  000177            SUBI DAT,200-1        ;MAKE ROOM FOR DECDUMP\r
12618         000123' 574100  000000*           HLRE TAC1,JOBSYM      ;-LENGTH OF S. T.\r
12619         000124' 322100  000143'           JUMPE TAC1,JRSTI1     ;0 IF NON S. T. TO MOVE UP\r
12620         000125' 213000  000002            MOVNS TAC1            ;+LENGTH\r
12621         000126' 550040  000123*           HRRZ TAC,JOBSYM       ;FIRST ADDRESS\r
12622                                                         ADDI    TAC,(TAC1)\r
12623         000127' 504040  000002            HRL TAC,TAC1          ;XWD LENGTH,LENGTH+FIRST ADDRESS\r
12624         000130' 275241  000001            SUBI DAT,1(TAC)       ;NEW LAST+1-OLD LAST+1\r
12625         000131' 542240  000140'           HRRM DAT,STO1         ;DIST. TO MOVE\r
12626         000132' 200100  000126*           MOVE TAC1,JOBSYM      ;-N,FIRST ADD.\r
12627         000133' 271045  000001            ADDI TAC,1(DAT)       ;FORM NEW S.T. POINTER\r
12628         000134' 202100  000132*           MOVEM TAC1,JOBSYM\r
12629         000135' 201100  000134*           MOVEI TAC1,JOBSYM\r
12630         000136' 202100  000036            MOVEM TAC1,DDTSYM\r
12631         000137' 200101  777777            MOVE TAC1,-1(TAC)\r
12632         000140' 202101  000140' STO1:     MOVEM TAC1,.(TAC)\r
12633         000141' 274040  000551'           SUB TAC,[XWD 1,1]\r
12634         000142' 325040  000137'           JUMPGE TAC,.-3\r
12635 \r
12636 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 3\r
12637 ONCE    MAC     24-APR-78 00:18         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12638 \r
12639 \r
12640 \r
12641                                 ;SETUP LOCATIONS 40 THRU 57\r
12642 \r
12643         000143' 200040  000552' JRSTI1:   MOVE TAC,[XWD LOC40,40]\r
12644         000144' 251040  000057            BLT TAC,57\r
12645         000145' 200040  000147'           MOVE TAC,JRSTI\r
12646         000146' 202040  000102'           MOVEM TAC,LINKSR+1    ;DO ONCE ONLY\r
12647         000147' 254020  000101' JRSTI:    JRST @LINKSR\r
12648 \r
12649                                 EXTERN UUO0,ERROR\r
12650                                 EXTERN CH1,CH2,CH3,CH4,CH5,CH6,CH7\r
12651 \r
12652         000150' 000000  000000  LOC40:    0             ;UUO PC\r
12653         000151' 264000  000000*           JSR UUO0      ;TO UUO HANDLER\r
12654         000152' 264000  000000*           JSR CH1\r
12655         000153' 265240  000000*           JSP DAT,ERROR\r
12656         000154' 264000  000000*           JSR CH2\r
12657         000155' 265240  000153*           JSP DAT,ERROR\r
12658         000156' 264000  000000*           JSR CH3\r
12659         000157' 265240  000155*           JSP DAT,ERROR\r
12660         000160' 264000  000000*           JSR CH4\r
12661         000161' 265240  000157*           JSP DAT,ERROR\r
12662         000162' 264000  000000*           JSR CH5\r
12663         000163' 265240  000161*           JSP DAT,ERROR\r
12664         000164' 264000  000000*           JSR CH6\r
12665         000165' 265240  000163*           JSP DAT,ERROR\r
12666         000166' 264000  000000*           JSR CH7\r
12667         000167' 265240  000165*           JSP DAT,ERROR\r
12668 \r
12669 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 4\r
12670 ONCE    MAC     24-APR-78 00:18         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12671 \r
12672 \r
12673 \r
12674 \r
12675                                 ;ONCE ONLY CODE - OPERATOR SETUP DIALOGUE\r
12676 \r
12677                                 INTERNAL ONCE\r
12678                                 EXTERNAL CONMES,RADX10,CRLF,DECIN,DECIN1\r
12679                                 EXTERNAL THSDAT,MAKEND,JOBFF\r
12680                                 EXTERNAL ERNAM,OCTPNT,SYSSIZ,CONFIG,SYSNUM,SYSDAT\r
12681 \r
12682         000170' 000000  000000  ONCE:     0\r
12683         000171' 201040  000000            MOVEI TAC,SYSFIN      ;SET SIZE OF MONITOR\r
12684         000172' 202040  000000*           MOVEM TAC,SYSSIZ\r
12685         000173' 200240  000443'           MOVE DAT,LINEP        ;SETUP LINE BYTE POINTER\r
12686         000174' 200140  000553'           MOVE PDP,[XWD ONCEPN,ONCEPD]\r
12687         000175' 260140  000000*           PUSHJ PDP,CRLF\r
12688         000176' 201040  000000*           MOVEI TAC,CONFIG\r
12689         000177' 260140  000000*           PUSHJ PDP,CONMES\r
12690         000200' 201040  000474'           MOVEI TAC,TSEXEC\r
12691         000201' 260140  000177*           PUSHJ PDP,CONMES\r
12692         000202' 554040  000000*           HLRZ TAC,SYSNUM\r
12693         000203' 260140  000000*           PUSHJ PDP,RADX10\r
12694         000204' 201040  000554'           MOVEI TAC,[ASCIZ /./]\r
12695         000205' 260140  000201*           PUSHJ PDP,CONMES\r
12696         000206' 550040  000202*           HRRZ TAC,SYSNUM\r
12697         000207' 260140  000203*           PUSHJ PDP,RADX10\r
12698         000210' 201040  000555'           MOVEI TAC,[ASCIZ / /]\r
12699         000211' 260140  000205*           PUSHJ PDP,CONMES\r
12700         000212' 201040  000000*           MOVEI TAC,SYSDAT\r
12701         000213' 260140  000211*           PUSHJ PDP,CONMES\r
12702         000214' 260140  000175*           PUSHJ PDP,CRLF\r
12703         000215' 260140  000421'           PUSHJ PDP,OPOUT\r
12704 \r
12705 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 5\r
12706 ONCE    MAC     24-APR-78 00:18         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12707 \r
12708 \r
12709 \r
12710                                 ;ASK FOR TODAYS DATE AND CONVERT\r
12711                                 ;DATE STORED AS ((Y-64)*12.+M-1)*31.+D-1\r
12712 \r
12713         000216' 402000  000000* DATLOP:   SETZM THSDAT\r
12714         000217' 200240  000443'           MOVE DAT,LINEP\r
12715         000220' 201040  000477'           MOVEI TAC,TODATE\r
12716         000221' 260140  000213*           PUSHJ PDP,CONMES\r
12717         000222' 260140  000421'           PUSHJ PDP,OPOUT\r
12718         000223' 260140  000376'           PUSHJ PDP,GETLIN\r
12719         000224' 254000  000216'           JRST DATLOP           ;JUST CR\r
12720         000225' 260140  000000*           PUSHJ PDP,DECIN1      ;MONTH\r
12721         000226' 254000  000216'           JRST DATLOP           ;ERROR\r
12722         000227' 332000  000002            SKIPE TAC1\r
12723         000230' 303100  000014            CAILE TAC1,^D12\r
12724         000231' 254000  000216'           JRST DATLOP\r
12725         000232' 275100  000001            SUBI TAC1,1\r
12726         000233' 221100  000037            IMULI TAC1,^D31\r
12727         000234' 272100  000216*           ADDM TAC1,THSDAT\r
12728         000235' 260140  000225*           PUSHJ PDP,DECIN1      ;DAY\r
12729         000236' 254000  000216'           JRST DATLOP\r
12730         000237' 332000  000002            SKIPE TAC1\r
12731         000240' 303040  000037            CAILE TAC,^D31\r
12732         000241' 254000  000216'           JRST DATLOP\r
12733         000242' 275100  000001            SUBI TAC1,1\r
12734         000243' 272100  000234*           ADDM TAC1,THSDAT\r
12735         000244' 260140  000235*           PUSHJ PDP,DECIN1      ;YEAR\r
12736         000245' 254000  000216'           JRST DATLOP\r
12737         000246' 301100  000101            CAIL TAC1,^D65\r
12738         000247' 303100  000143            CAILE TAC1,^D99\r
12739         000250' 254000  000216'           JRST DATLOP\r
12740         000251' 275100  000100            SUBI TAC1,^D64        ;YEAR ZERO\r
12741         000252' 221100  000564            IMULI TAC1,^D12*^D31\r
12742         000253' 272100  000243*           ADDM TAC1,THSDAT\r
12743 \r
12744 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 6\r
12745 ONCE    MAC     24-APR-78 00:18         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12746 \r
12747 \r
12748 \r
12749                                 ;GET TIME OF DAY\r
12750 \r
12751                                 EXTERN TIME\r
12752 \r
12753         000254' 402000  000000* TIMLOP:   SETZM TIME\r
12754         000255' 200240  000443'           MOVE DAT,LINEP\r
12755         000256' 201040  000506'           MOVEI TAC,TIMEM\r
12756         000257' 260140  000221*           PUSHJ PDP,CONMES\r
12757         000260' 260140  000421'           PUSHJ PDP,OPOUT\r
12758         000261' 260140  000376'           PUSHJ PDP,GETLIN\r
12759         000262' 254000  000254'           JRST TIMLOP           ;JUST A CR\r
12760         000263' 134100  000001            ILDB TAC1,TAC\r
12761         000264' 275100  000060            SUBI TAC1,60\r
12762         000265' 331000  000002            SKIPL TAC1            ;CHECK FIRST DIGIT OF HOUR\r
12763         000266' 303100  000002            CAILE TAC1,2\r
12764         000267' 254000  000254'           JRST TIMLOP\r
12765         000270' 220100  000556'           IMUL TAC1,[^D60*^D60*^D60*^D10]\r
12766         000271' 272100  000254*           ADDM TAC1,TIME\r
12767         000272' 134100  000001            ILDB TAC1,TAC\r
12768         000273' 275100  000060            SUBI TAC1,60          ;CONVERT TO BINARY\r
12769         000274' 331000  000002            SKIPL TAC1\r
12770         000275' 303100  000011            CAILE TAC1,^D9\r
12771         000276' 254000  000254'           JRST TIMLOP\r
12772         000277' 221100  645700            IMULI TAC1,^D60*^D60*^D60\r
12773         000300' 272100  000271*           ADDM TAC1,TIME\r
12774         000301' 260140  000244*           PUSHJ PDP,DECIN1\r
12775         000302' 254000  000254'           JRST TIMLOP\r
12776         000303' 303100  000073            CAILE TAC1,^D59\r
12777         000304' 254000  000254'           JRST TIMLOP\r
12778         000305' 221100  007020            IMULI TAC1,^D60*^D60\r
12779         000306' 272100  000300*           ADDM TAC1,TIME\r
12780 \r
12781 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 7\r
12782 ONCE    MAC     24-APR-78 00:18         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12783 \r
12784 \r
12785 \r
12786                                 ;PRINT IO CONFIGURATION\r
12787 \r
12788                                 EXTERN DEVLST\r
12789 \r
12790         000307' 200240  000443'            MOVE DAT,LINEP\r
12791         000310' 201040  000517'            MOVEI TAC,IOCONF\r
12792         000311' 260140  000257*            PUSHJ PDP,CONMES\r
12793         000312' 554300  000000*            HLRZ DEVDAT,DEVLST\r
12794         000313' 201040  000004             MOVEI TAC,ITEM\r
12795         000314' 261140  000001             PUSH PDP,TAC\r
12796         000315' 201040  000001  ONCE5:     MOVEI TAC,1\r
12797         000316' 510206  000000             HLLZ ITEM,DEVNAM(DEVDAT)\r
12798         000317' 554306  000003  ONCE4:     HLRZ DEVDAT,DEVSER(DEVDAT)\r
12799         000320' 322300  000324'            JUMPE DEVDAT,ONCE6\r
12800         000321' 510106  000000             HLLZ TAC1,DEVNAM(DEVDAT)\r
12801         000322' 316100  000004             CAMN TAC1,ITEM\r
12802         000323' 344040  000317'            AOJA TAC,ONCE4\r
12803         000324' 200340  000001  ONCE6:     MOVE PROG,TAC        ;SAVE NO.\r
12804         000325' 260140  000207*            PUSHJ PDP,RADX10\r
12805         000326' 201600  000040             MOVEI UUO," "\r
12806         000327' 136600  000005             IDPB UUO,DAT\r
12807         000330' 201600  000003             MOVEI UUO,3\r
12808         000331' 200440  000557'            MOVE JDAT,[POINT 6,ITEM]\r
12809         000332' 134100  000011  ONCE7:     ILDB TAC1,JDAT\r
12810         000333' 271100  000240             ADDI TAC1,240\r
12811         000334' 136100  000005             IDPB TAC1,DAT\r
12812         000335' 367600  000332'            SOJG UUO,ONCE7\r
12813         000336' 201040  000560'            MOVEI TAC,[ASCIZ /'S/]\r
12814         000337' 303340  000001             CAILE PROG,1\r
12815         000340' 260140  000311*            PUSHJ PDP,CONMES\r
12816         000341' 260140  000214*            PUSHJ PDP,CRLF\r
12817         000342' 326300  000315'            JUMPN DEVDAT,ONCE5\r
12818         000343' 262140  000002             POP PDP,TAC1\r
12819         000344' 260140  000421'            PUSHJ PDP,OPOUT\r
12820 \r
12821 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 8\r
12822 ONCE    MAC     24-APR-78 00:18         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12823 \r
12824 \r
12825 \r
12826                                 ;ASK IF SYSMAK IS WANTED\r
12827 \r
12828         000345' 200240  000443'           MOVE DAT,LINEP\r
12829         000346' 201040  000524'           MOVEI TAC,SYSM\r
12830         000347' 260140  000340*           PUSHJ PDP,CONMES\r
12831         000350' 260140  000421'           PUSHJ PDP,OPOUT\r
12832         000351' 260140  000376'           PUSHJ PDP,GETLIN\r
12833         000352' 254000  000355'           JRST ONCE2            ;NO SYSMAK\r
12834         000353' 201040  000000*           MOVEI TAC,MAKEND      ;YES\r
12835         000354' 202040  000172*           MOVEM TAC,SYSSIZ\r
12836 \r
12837                                 ;IS EXEC DDT WANTED?\r
12838 \r
12839         000355' 200240  000443' ONCE2:    MOVE DAT,LINEP\r
12840         000356' 201040  000536'           MOVEI TAC,SYSDM\r
12841         000357' 260140  000347*           PUSHJ PDP,CONMES\r
12842         000360' 260140  000421'           PUSHJ PDP,OPOUT\r
12843         000361' 260140  000376'           PUSHJ PDP,GETLIN\r
12844         000362' 254000  000365'           JRST ONCE3            ;NO \r
12845         000363' 201040  000000*           MOVEI TAC,JOBFF       ;FIRST FREE LOCATION\r
12846         000364' 552040  000354*           HRRZM TAC,SYSSIZ\r
12847 \r
12848 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 9\r
12849 ONCE    MAC     24-APR-78 00:18         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12850 \r
12851 \r
12852 \r
12853                                 ;PRINT OCTAL SIZE OF MONITOR\r
12854 \r
12855         000365' 200240  000443' ONCE3:    MOVE DAT,LINEP\r
12856         000366' 201040  000541'           MOVEI TAC,EXECIS\r
12857         000367' 260140  000357*           PUSHJ PDP,CONMES\r
12858         000370' 200040  000364*           MOVE TAC,SYSSIZ\r
12859         000371' 260140  000000*           PUSHJ PDP,OCTPNT\r
12860         000372' 201040  000544'           MOVEI TAC,LENGTH\r
12861         000373' 260140  000367*           PUSHJ PDP,CONMES\r
12862         000374' 260140  000421'           PUSHJ PDP,OPOUT\r
12863         000375' 254020  000170'           JRST @ONCE\r
12864 \r
12865 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 10\r
12866 ONCE    MAC     24-APR-78 00:18         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12867 \r
12868 \r
12869 \r
12870                                 ;ROUTINE TO READ A LINE FROM OPERATORS CONSOLE\r
12871                                 ;CALL:    PUSHJ PDP,GETLIN\r
12872                                 ;         JUST A CR TYPED IN\r
12873                                 ;         A LINE TYPED IN,TAC SET AS BYTE POINTER\r
12874 \r
12875                                 EXTERN CPOPJ, CPOPJ1\r
12876 \r
12877         000376' 200040  000443' GETLIN:   MOVE TAC,LINEP\r
12878         000377' 201200  000000            MOVEI ITEM,0\r
12879         000400' 712340  000040  GET1:     CONSO TTY,40\r
12880         000401' 254000  000400'           JRST .-1\r
12881         000402' 712040  000002            DATAI TTY,TAC1\r
12882         000403' 712140  000002            DATAO TTY,TAC1\r
12883         000404' 136100  000001            IDPB TAC1,TAC\r
12884         000405' 405100  000177            ANDI TAC1,177\r
12885         000406' 306100  000177            CAIN TAC1,177         ;RUBOUT\r
12886         000407' 254000  000000*           JRST CPOPJ\r
12887         000410' 302100  000015            CAIE TAC1,15\r
12888         000411' 344200  000400'           AOJA ITEM,GET1\r
12889         000412' 712340  000020            CONSO TTY,20\r
12890         000413' 254000  000412'           JRST .-1\r
12891         000414' 201100  000012            MOVEI TAC1,12\r
12892         000415' 712140  000002            DATAO TTY,TAC1\r
12893         000416' 200040  000443'           MOVE TAC,LINEP\r
12894         000417' 326200  000000*           JUMPN ITEM,CPOPJ1\r
12895         000420' 263140  000000            POPJ PDP,\r
12896 \r
12897 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 11\r
12898 ONCE    MAC     24-APR-78 00:18         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12899 \r
12900 \r
12901 \r
12902                                 ;ROUTINE TO TYPE A LINE ON OPERATORS CONSOLE\r
12903                                 ;ECHO CHECK STOPS LINE AND RETURNS\r
12904                                 ;CALL:    DAT SET TO END OF MESSAGE\r
12905 \r
12906         000421' 200040  000443' OPOUT:    MOVE TAC,LINEP\r
12907         000422' 712040  000002            DATAI TTY,TAC1\r
12908         000423' 316040  000005  OPOUT1:   CAMN TAC,DAT\r
12909         000424' 262140  000000            POP PDP,\r
12910         000425' 712300  000040            CONSZ TTY,40\r
12911         000426' 254000  000434'           JRST OPOUT2           ;ECHO CHECK\r
12912         000427' 712300  000020            CONSZ TTY,20\r
12913         000430' 254000  000427'           JRST .-1\r
12914         000431' 134100  000001            ILDB TAC1,TAC\r
12915         000432' 712140  000002            DATAO TTY,TAC1\r
12916         000433' 254000  000423'           JRST OPOUT1\r
12917         000434' 712300  000020  OPOUT2:   CONSZ TTY,20\r
12918         000435' 254000  000434'           JRST .-1\r
12919         000436' 712140  000561'           DATAO TTY,[15]\r
12920         000437' 712300  000020            CONSZ TTY,20\r
12921         000440' 254000  000437'           JRST .-1\r
12922         000441' 712140  000562'           DATAO TTY,[12]\r
12923         000442' 263140  000000            POPJ PDP,\r
12924 \r
12925         000443' 440700  000444' LINEP:    POINT 7,LINBUF\r
12926         000444'                 LINBUF:   BLOCK 20\r
12927                         000010  ONCEPN=10\r
12928         000464'                 ONCEPD:   BLOCK ONCEPN\r
12929 \r
12930 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 12\r
12931 ONCE    MAC     24-APR-78 00:18         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12932 \r
12933 \r
12934 \r
12935                                 ;MESSAGES\r
12936 \r
12937         000474' 202505  620246  TSEXEC:   ASCIZ / T. S. EXEC-/\r
12938         000475' 271010  554212\r
12939         000476' 415320  000000\r
12940         000477'                 TODATE:   ASCIZ /\r
12941         000477' 064252  454640  TYPE TODAY'S DATE AS ABOVE.\r
12942         000500' 425012  447610\r
12943         000501' 406624  751500\r
12944         000502' 422032  442500\r
12945         000503' 406464  040604\r
12946         000504' 476550  527032\r
12947         000505' 050000  000000  /\r
12948         000506'                 TIMEM:    ASCIZ /\r
12949         000506' 064252  454640  TYPE 4 DIGIT NAVY TIME(0953 IS 9:53 AM).\r
12950         000507' 425006  420210\r
12951         000510' 446171  152100\r
12952         000511' 472032  654500\r
12953         000512' 522231  542520\r
12954         000513' 301626  531500\r
12955         000514' 446464  034564\r
12956         000515' 325464  040632\r
12957         000516' 245341  505000  /\r
12958         000517'                 IOCONF:   ASCIZ /\r
12959         000517' 064251  147500  IO CONFIGURATION\r
12960         000520' 416371  643222\r
12961         000521' 436532  240650\r
12962         000522' 446371  606424  /\r
12963         000523' 000000  000000\r
12964 \r
12965         000524'                 SYSM:     ASCIZ /\r
12966         000524' 064250  447500  DO YOU WANT SYSMAK(TYPE Y IF YES,CR IF NO)?\r
12967         000525' 546372  520256\r
12968         000526' 406352  420246\r
12969         000527' 546471  540626\r
12970         000530' 242513  150212\r
12971         000531' 202624  044614\r
12972         000532' 202630  551530\r
12973         000533' 416444  044614\r
12974         000534' 202351  724576\r
12975         000535' 064240  000000  /\r
12976 \r
12977         000536'                 SYSDM:    ASCIZ /\r
12978         000536' 064250  554212  EXEC DDT?\r
12979         000537' 415010  442250\r
12980         000540' 374321  200000  /\r
12981         000541'                 EXECIS:   ASCIZ /\r
12982         000541' 064250  554212  EXEC IS /\r
12983         000542' 415011  151500\r
12984         000543' 000000  000000\r
12985         000544' 476072  440630  LENGTH:   ASCIZ /OCTAL LOCATIONS LONG.\r
12986 \r
12987 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 12-1\r
12988 ONCE    MAC     24-APR-78 00:18         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12989 \r
12990         000545' 202311  741602\r
12991         000546' 522231  747246\r
12992         000547' 202311  747216\r
12993         000550' 270321  200000  /\r
12994                                           END,\r
12995 \r
12996 NO ERRORS DETECTED\r
12997 \r
12998 PROGRAM BREAK IS 000563\r
12999 \r
13000 9K CORE USED\r
13001 \r
13002 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 13\r
13003 ONCE    MAC     24-APR-78 00:18         SYMBOL TABLE\r
13004 \r
13005 A               000000  INT\r
13006 AC1             000015  INT\r
13007 AC2             000016  INT\r
13008 AC3             000017  INT\r
13009 AL              000001  INT\r
13010 APR             000000  SPD\r
13011 ASSCON          400000  INT\r
13012 ASSPRG          200000  INT\r
13013 B               000014  INT\r
13014 BUFPNT          000012  INT\r
13015 BUFWRD          000013  INT\r
13016 C               000002  \r
13017 CH1             000152' EXT\r
13018 CH2             000154' EXT\r
13019 CH3             000156' EXT\r
13020 CH4             000160' EXT\r
13021 CH5             000162' EXT\r
13022 CH6             000164' EXT\r
13023 CH7             000166' EXT\r
13024 CHL             000006  \r
13025 CLOSB           002000  INT\r
13026 CLSIN           000002  INT\r
13027 CLSOUT          000001  INT\r
13028 CONFIG          000176' EXT\r
13029 CONMES          000373' EXT\r
13030 CPOPJ           000407' EXT\r
13031 CPOPJ1          000417' EXT\r
13032 CRLF            000341' EXT\r
13033 D               000017  INT\r
13034 DAT             000005  INT\r
13035 DATLOP          000216' \r
13036 DCL             000001  INT\r
13037 DCW             020000  INT\r
13038 DDI             000007  INT\r
13039 DDO             000006  INT\r
13040 DDTMEM          000037  INT\r
13041 DDTSYM          000036  INT\r
13042 DECIN           000000  EXT\r
13043 DECIN1          000301' EXT\r
13044 DEN             000004  INT\r
13045 DEV1            000104' \r
13046 DEVADR          000007  INT\r
13047 DEVBUF          000006  INT\r
13048 DEVCHR          000001  INT\r
13049 DEVCTR          000011  INT\r
13050 DEVDAT          000006  INT\r
13051 DEVIAD          000007  INT\r
13052 DEVINT          000105' EXT\r
13053 DEVIOS          000002  INT\r
13054 DEVLOG          000005  INT\r
13055 DEVLST          000312' EXT\r
13056 DEVMOD          000004  INT\r
13057 \r
13058 \r
13059 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 13-1\r
13060 ONCE    MAC     24-APR-78 00:18         SYMBOL TABLE\r
13061 \r
13062 DEVNAM          000000  INT\r
13063 DEVOAD          000010  INT\r
13064 DEVPTR          000010  INT\r
13065 DEVSER          000003  INT\r
13066 DGF             000012  INT\r
13067 DIN             000003  INT\r
13068 DLK             000005  INT\r
13069 DOU             000002  INT\r
13070 DR              000016  INT\r
13071 DRL             000000  INT\r
13072 DSI             000011  INT\r
13073 DSO             000010  INT\r
13074 DTW             040000  INT\r
13075 DVAVAL          000040  INT\r
13076 DVCDR           100000  INT\r
13077 DVDIR           000004  INT\r
13078 DVDIRI          400000  INT\r
13079 DVIN            000002  INT\r
13080 DVLPT           040000  INT\r
13081 DVMTA           000020  INT\r
13082 DVOUT           000001  INT\r
13083 DVTTY           000010  INT\r
13084 ENTRB           020000  INT\r
13085 ERNAM           000000  EXT\r
13086 ERROR           000167' EXT\r
13087 EXECIS          000541' \r
13088 GET1            000400' \r
13089 GETLIN          000376' \r
13090 I               000010  INT\r
13091 IB              000013  INT\r
13092 IBUFB           200000  INT\r
13093 INITB           400000  INT\r
13094 INPB            010000  INT\r
13095 INT             000005  \r
13096 IO              000020  INT\r
13097 IOACT           010000  INT\r
13098 IOBEG           000002  INT\r
13099 IOBKTL          040000  INT\r
13100 IOCON           000040  INT\r
13101 IOCONF          000517' \r
13102 IODEND          020000  INT\r
13103 IODERR          200000  INT\r
13104 IODISC          400000  INT\r
13105 IODONE          400000  INT\r
13106 IODTER          100000  INT\r
13107 IOEND           000040  INT\r
13108 IOFST           000004  INT\r
13109 IOIMPM          400000  INT\r
13110 IONRCK          000100  INT\r
13111 IORDEL          000100  INT\r
13112 IORET           000020  INT\r
13113 IOS             000000  INT\r
13114 IOSTRT          000010  INT\r
13115 \r
13116 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 13-2\r
13117 ONCE    MAC     24-APR-78 00:18         SYMBOL TABLE\r
13118 \r
13119 IOUSE           400000  INT\r
13120 IOW             000001  INT\r
13121 IOWC            000020  INT\r
13122 IOWS            400000  INT\r
13123 ITEM            000004  INT\r
13124 JBFADR          000000  INT\r
13125 JBFCTR          000002  INT\r
13126 JBFPTR          000001  INT\r
13127 JBUF            000005  INT\r
13128 JDAT            000011  INT\r
13129 JERR            002000  INT\r
13130 JIOW            100000  INT\r
13131 JNA             004000  INT\r
13132 JOBFF           000363' EXT\r
13133 JOBSYM          000135' EXT\r
13134 JRSTI           000147' \r
13135 JRSTI1          000143' \r
13136 LENGTH          000544' \r
13137 LINBUF          000444' \r
13138 LINEP           000443' \r
13139 LINKSR          000101' INT\r
13140 LOC40           000150' \r
13141 LOOKB           040000  INT\r
13142 MAKEND          000353' EXT\r
13143 MTW             010000  INT\r
13144 NDEVM1          000103' EXT\r
13145 NXM             010000  \r
13146 OBUFB           100000  INT\r
13147 OCTPNT          000371' EXT\r
13148 ONCE            000170' INT\r
13149 ONCE2           000355' \r
13150 ONCE3           000365' \r
13151 ONCE4           000317' \r
13152 ONCE5           000315' \r
13153 ONCE6           000324' \r
13154 ONCE7           000332' \r
13155 ONCEPD          000464' \r
13156 ONCEPN          000010  \r
13157 OPOUT           000421' \r
13158 OPOUT1          000423' \r
13159 OPOUT2          000434' \r
13160 OUTPB           004000  INT\r
13161 PATCH           000001' INT\r
13162 PDP             000003  INT\r
13163 PICHN           000100  INT\r
13164 PROG            000007  INT\r
13165 RADX10          000325' EXT\r
13166 RUN             200000  INT\r
13167 RUNABL          204000  INT\r
13168 STO1            000140' \r
13169 SYSDAT          000212' EXT\r
13170 SYSDM           000536' \r
13171 SYSFIN          000000  INT\r
13172 \r
13173 \fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE   MACRO 10 05:51 24-APR-78 PAGE 13-3\r
13174 ONCE    MAC     24-APR-78 00:18         SYMBOL TABLE\r
13175 \r
13176 SYSM            000524' \r
13177 SYSNUM          000206' EXT\r
13178 SYSSIZ          000370' EXT\r
13179 T               000001  \r
13180 TAC             000001  INT\r
13181 TAC1            000002  INT\r
13182 TEM             000010  INT\r
13183 THSDAT          000253' EXT\r
13184 TIME            000306' EXT\r
13185 TIMEM           000506' \r
13186 TIMLOP          000254' \r
13187 TODATE          000477' \r
13188 TSEXEC          000474' \r
13189 TTY             000120  SPD\r
13190 TTYATC          020000  INT\r
13191 TTYUSE          010000  INT\r
13192 USRMOD          010000  INT\r
13193 UUO             000014  INT\r
13194 UUO0            000151' EXT\r
13195 \fPPPPPPPPPPPP         TTTTTTTTTTTTTTT      RRRRRRRRRRRR            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
13196 PPPPPPPPPPPP         TTTTTTTTTTTTTTT      RRRRRRRRRRRR            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
13197 PPPPPPPPPPPP         TTTTTTTTTTTTTTT      RRRRRRRRRRRR            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
13198 PPP         PPP            TTT            RRR         RRR      SSS                  EEE                  RRR         RRR\r
13199 PPP         PPP            TTT            RRR         RRR      SSS                  EEE                  RRR         RRR\r
13200 PPP         PPP            TTT            RRR         RRR      SSS                  EEE                  RRR         RRR\r
13201 PPP         PPP            TTT            RRR         RRR      SSS                  EEE                  RRR         RRR\r
13202 PPP         PPP            TTT            RRR         RRR      SSS                  EEE                  RRR         RRR\r
13203 PPP         PPP            TTT            RRR         RRR      SSS                  EEE                  RRR         RRR\r
13204 PPPPPPPPPPPP               TTT            RRRRRRRRRRRR            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
13205 PPPPPPPPPPPP               TTT            RRRRRRRRRRRR            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
13206 PPPPPPPPPPPP               TTT            RRRRRRRRRRRR            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
13207 PPP                        TTT            RRR   RRR                        SSS      EEE                  RRR   RRR      \r
13208 PPP                        TTT            RRR   RRR                        SSS      EEE                  RRR   RRR      \r
13209 PPP                        TTT            RRR   RRR                        SSS      EEE                  RRR   RRR      \r
13210 PPP                        TTT            RRR      RRR                     SSS      EEE                  RRR      RRR   \r
13211 PPP                        TTT            RRR      RRR                     SSS      EEE                  RRR      RRR   \r
13212 PPP                        TTT            RRR      RRR                     SSS      EEE                  RRR      RRR   \r
13213 PPP                        TTT            RRR         RRR      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
13214 PPP                        TTT            RRR         RRR      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
13215 PPP                        TTT            RRR         RRR      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
13216 \r
13217 \r
13218 \r
13219 \r
13220 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
13221 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
13222 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
13223 LLL                  SSS                        TTT                                                                     \r
13224 LLL                  SSS                        TTT                                                                     \r
13225 LLL                  SSS                        TTT                                                                     \r
13226 LLL                  SSS                        TTT                                                                     \r
13227 LLL                  SSS                        TTT                                                                     \r
13228 LLL                  SSS                        TTT                                                                     \r
13229 LLL                     SSSSSSSSS               TTT                                                                     \r
13230 LLL                     SSSSSSSSS               TTT                                                                     \r
13231 LLL                     SSSSSSSSS               TTT                                                                     \r
13232 LLL                              SSS            TTT                                                                     \r
13233 LLL                              SSS            TTT                                                                     \r
13234 LLL                              SSS            TTT                                                                     \r
13235 LLL                              SSS            TTT                                                                     \r
13236 LLL                              SSS            TTT                                                                     \r
13237 LLL                              SSS            TTT                                                                     \r
13238 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
13239 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
13240 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
13241 \r
13242 \r
13243 \r
13244 \r
13245 Request created: 24-April-1978  05:53:58\r
13246 File: DSKB0 :PTRSER.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:36\r
13247 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1687 \r
13248 File will be deleted after printing\r
13249 \f\r
13250 PTRSER - PAPER TAPE READER SERVICE ROUTINE      MACRO 10 05:51 24-APR-78 PAGE 1\r
13251 S       MAC     24-APR-78 21:40         8-15-65\r
13252 \r
13253                                         XLIST\r
13254                                        LIST\r
13255                                 TITLE PTRSER - PAPER TAPE READER SERVICE ROUTINE\r
13256                                 SUBTTL 8-15-65\r
13257                                 EXTERNAL WSYNC, STOSQD, ILLOUT\r
13258                                 EXTERNAL STODAT, IOSET, SETBYT, CKS12, ADVBFF\r
13259                                 EXTERNAL SETIOD, PTRSAV, PTRCHN, PTRRET,PIOMOD\r
13260                                 INTERNAL PTRINT\r
13261 \r
13262                                 ;PTR DEVICE DATA BLOCK LINKAGE\r
13263 \r
13264                                 EXTERNAL PTRDB,PTRDAT,PTRCHR,PTRIOS,PTRSER,PTRMOD,PTRBUF\r
13265                                 EXTERNAL PTRADR,PTRPTR,PTRCTR,PTRSVC,PTRSV1\r
13266                                 ENTRY PTRDSP\r
13267 \r
13268 \fPTRSER - PAPER TAPE READER SERVICE ROUTINE     MACRO 10 05:51 24-APR-78 PAGE 2\r
13269 PTRSER  MAC     24-APR-78 01:35         8-15-65\r
13270 \r
13271 \r
13272 \r
13273                                 ,PARAMETER ASSIGNMENTS\r
13274                                 ,   PTR CONTROL REGISTER \r
13275                         000010            PTRDON=10;            DONE FLAG\r
13276                         000020            PTRBSY=20;            BUSY FLAG\r
13277                         000040            PTRBIN=40;            BINARY READ MODE\r
13278                         000400            POW=400;   POWER.  ON=1\r
13279 \r
13280                                 ,   SPECIAL IO STATUS WORD ASSIGMENTS\r
13281                         002000            PTRERR=2000\r
13282                         200000            PTRFCI=200000\r
13283                         100000            PTRPOW=100000\r
13284                                 ,   SPECIAL ASCII CHARACTERS\r
13285                         000200            NULL=200\r
13286                         000377            RUBOUT=377\r
13287                         000232            S2EOF=232;            END OF FILE\r
13288                                 ,   PI CONTROL REGISTER\r
13289                         000200            PION=200\r
13290                         000400            PIOFF=400\r
13291 \r
13292                                 REPEAT 0,<P\r
13293                                 ,PTR DATA BLOCK\r
13294                                 PTRDAT:   SIXBIT "PTR"\r
13295                                 PTRCHR:   41\r
13296                                 PTRIOS:   0\r
13297                                 PTRSER:   EXP PTRDSP\r
13298                                 PTRMOD:   XWD 1000+PROG,10403\r
13299                                  0\r
13300                                 PTRBUF:   0\r
13301                                 PTRADR:   XWD PROG,0\r
13302                                 PTRPTR:   0\r
13303                                 PTRCTR:   0\r
13304                                 PTRSVC:   0\r
13305                                 PTRSV1:   0\r
13306                                 >\r
13307 \r
13308                                 ,PTR SERVICE DISPATCH TABLE\r
13309 \r
13310         000000' 254000  000133' PTRDSP:   JRST PTRREL           ;RELEASE\r
13311         000001' 263140  000000            POPJ PDP,;            CLOSE\r
13312         000002' 254000  000000*           JRST ILLOUT           ;OUTPUT\r
13313         000003' 254000  000004'           JRST PTRINP;          INPUT\r
13314 \r
13315 \fPTRSER - PAPER TAPE READER SERVICE ROUTINE     MACRO 10 05:51 24-APR-78 PAGE 3\r
13316 PTRSER  MAC     24-APR-78 01:35         8-15-65\r
13317 \r
13318 \r
13319 \r
13320         000004' 607000  000002  PTRINP:   TLNN IOS,IOBEG;       VIRGIN DEVICE? (IOBEG=1?)\r
13321         000005' 254000  000013'           JRST PTRIN1;          NO\r
13322         000006' 661000  000004            TLO IOS,IOFST;    IOFST:=1. NEXT ITEM WILL BE FIRST ITEM\r
13323         000007' 260140  000000*           PUSHJ PDP,SETBYT; TAC0-5:=TAC12-13:=0,TAC6-11:=BYTE SIZE\r
13324                                 ,                               TAC14-17:=PROG\r
13325         000010' 202040  000000*           MOVEM TAC,PTRPTR;     PTRPTR:=C(TAC)\r
13326         000011' 710700  000400            CONSZ PTR,POW;        IS POWER ON?\r
13327         000012' 661000  100000            TLO IOS,PTRPOW;       YES. PTRPOW:=1\r
13328         000013' 660000  010000  PTRIN1:   TRO IOS,IOACT;        IOACT:=1\r
13329         000014' 135040  000000*           LDB TAC,PIOMOD\r
13330         000015' 201100  000000*           MOVEI TAC1, PTRCHN;   TAC1:=PTR PI CHANNEL ASSIGNME\r
13331         000016' 306040  000014            CAIN TAC,B;           MODE=BINARY?\r
13332         000017' 271100  000040            ADDI TAC1,PTRBIN;     YES.  ALPHA/BINARY:=BINARY\r
13333         000020' 201040  000010            MOVEI TAC,PTRDON  ;SET CONSO INTERRUPT FLAG\r
13334         000021' 542040  000032'           HRRM TAC,PTRINT\r
13335         000022' 627000  000002            TLZN IOS,IOBEG;       VIRGIN DEVICE? (IOBEG=1?)\r
13336         000023' 254000  000027'           JRST PTRIN4;          NO\r
13337         000024' 202000  000000*           MOVEM IOS,PTRIOS;     PTRIOS:=C(IOS)\r
13338         000025' 710602  000020            CONO PTR,PTRBSY(TAC1);        PTR BUSY FLAG:=1,ASSIGN INTER\r
13339         000026' 263140  000000            POPJ PDP,;            INPUT RETURN-VIRGIN DEVICE\r
13340 \r
13341         000027' 202000  000024* PTRIN4:   MOVEM IOS,PTRIOS;     PTRIOS:=C(IOS)\r
13342         000030' 710602  000010            CONO PTR,PTRDON(TAC1);        PTR DONE FLAG:=1,ASSIGN INTER\r
13343         000031' 263140  000000            POPJ PDP,\r
13344 \r
13345 \fPTRSER - PAPER TAPE READER SERVICE ROUTINE     MACRO 10 05:51 24-APR-78 PAGE 4\r
13346 PTRSER  MAC     24-APR-78 01:35         8-15-65\r
13347 \r
13348 \r
13349 \r
13350         000032' 710740  000010  PTRINT:   CONSO PTR,PTRDON      ;INTERRUPT.  IS DONE FLAG = 1?\r
13351         000033' 254000  000032'           JRST PTRINT           ;NO. IF PTR IS IN FLAG LIST, THIS LOC\r
13352         000034' 331000  000027*           SKIPL PTRIOS          ;DISCONNECT REQUEST? (IODISC=1?)\r
13353         000035' 710440  000000*           DATAI PTR,PTRSV1      ;SAVE ACCUMULATORS AND ESTABLISH PDP\r
13354                                                         jsr ptrsav\r
13355         000036' 201300  000000*           MOVEI DEVDAT,PTRDAT   ;DEVDAT: = PTR SIXBIT\r
13356         000037' 260140  000000*           PUSHJ PDP,IOSET       ;PROG:=C(JBTADR18-35),ITEM:=C(DEVCTR)\r
13357         000040' 200000  000034*           MOVE IOS,PTRIOS       ;IOS:=C(PTRIOS)\r
13358         000041' 200240  000035*           MOVE DAT,PTRSV1       ;DAT:=C(PTRSV1)\r
13359         000042' 710740  000400            CONSO PTR,POW         ;PTR POWER ON?\r
13360         000043' 254000  000074'           JRST PTREND           ;NO\r
13361         000044' 667000  100000            TLON IOS,PTRPOW       ;PTRPOW=1? PTRPOW:=1\r
13362         000045' 254000  000130'           JRST PTREX1           ;NO\r
13363         000046' 623000  400000            TLZE IOS,IODISC\r
13364         000047' 254000  000120'           JRST PTREX\r
13365         000050' 623000  200000            TLZE IOS,PTRFCI       ;IS PTRFCI=1?\r
13366         000051' 200240  000000*           MOVE DAT,PTRSVC       ;YES.  DAT:=C(PTRSVC)\r
13367         000052' 602000  000014  PTRIN0:   TRNE IOS,B            ;MODE=BINARY?\r
13368         000053' 254000  000060'           JRST PTRI0            ;YES\r
13369         000054' 302240  000200            CAIE DAT,NULL         ;LAST CHARACTER NULL OR RUBOUT\r
13370         000055' 306240  000377            CAIN DAT,RUBOUT\r
13371         000056' 254000  000130'           JRST PTREX1           ;YES\r
13372         000057' 322240  000130'           JUMPE DAT,PTREX1      ;DAT=0?\r
13373 \r
13374         000060' 260140  000000* PTRI0:    PUSHJ PDP,STODAT      ;NO STORE DATA WORD.\r
13375 \r
13376         000061' 255000  000000            JFCL      ;CHECKSUM ERROR\r
13377         000062' 254000  000064'           JRST PTRI1            ;BLOCK FULL OR BLOCK COMPLETE\r
13378         000063' 254000  000130'           JRST PTREX1           ;DATA STORED CORRECTLY.\r
13379 \r
13380         000064' 260140  000000* PTRI1:    PUSHJ PDP,ADVBFF      ;ADVANCE BUFFER\r
13381         000065' 661000  400000            TLO IOS,IODISC;       NEXT BUFFER IS FULL. IODISC:=1\r
13382         000066' 602000  000040            TRNE IOS,IOCON;       NEXT BUFFER IS EMPTY.  CONTINUOUS? (IOC\r
13383         000067' 661000  400000            TLO IOS,IODISC;       NON-CONT. OPERATION. IODISC:=1\r
13384         000070' 661000  000004  PTRI2:    TLO IOS,IOFST;        IOFST:=1.  NEXT ITEM IS FIRST ITEM OF A\r
13385         000071' 623000  000001            TLZE IOS,IOW;         IN A WAIT?  IOW:=0\r
13386         000072' 260140  000000*           PUSHJ PDP,SETIOD;     IOWS:=1\r
13387         000073' 254000  000130'           JRST PTREX1\r
13388 \r
13389 \fPTRSER - PAPER TAPE READER SERVICE ROUTINE     MACRO 10 05:51 24-APR-78 PAGE 5\r
13390 PTRSER  MAC     24-APR-78 01:35         8-15-65\r
13391 \r
13392 \r
13393 \r
13394                                 ,COME HERE WHEN THE READER IS SHUT OFF\r
13395 \r
13396         000074' 630000  000136' PTREND:   TDZ IOS,[XWD PTRPOW,IOACT]    ;PTRPOW:=0,IOACT:=0\r
13397         000075' 260140  000133'           PUSHJ PDP,PTRREL      ;CLEAR PTR AND CONSO FLAG\r
13398         000076' 135040  000014*           LDB TAC,PIOMOD\r
13399         000077' 661000  000040            TLO IOS,IOEND         ;IOEND:=1\r
13400         000100' 602040  000014            TRNE TAC,B            ;MODE=A,AL\r
13401         000101' 254000  000113'           JRST PTREIB           ;NO\r
13402         000102' 201240  000232            MOVEI DAT,S2EOF;      EOF CHAR\r
13403         000103' 260140  000060*           PUSHJ PDP,STODAT      ;STORE DATA WORD\r
13404         000104' 254000  000061'           JRST PTRI0+1          ;CHECKSUM ERROR\r
13405         000105' 254000  000110'           JRST .+3      ;BLOCK FULL OF BLOCK COMPLETE\r
13406         000106' 260140  000000* PTREI:    PUSHJ PDP,STOSQD;     FINISH THIS BUFFER, STORE WORD COUNT\r
13407         000107' 330000  000000            SKIP\r
13408         000110' 260140  000064*           PUSHJ PDP,ADVBFF      ;ADVANCE BUFFER\r
13409         000111' 330000  000000            SKIP\r
13410         000112' 254000  000070'           JRST PTRI2\r
13411 \r
13412         000113' 302040  000014  PTREIB:   CAIE TAC,B            ;MODE=BINARY?\r
13413         000114' 254000  000106'           JRST PTREI            ;NO\r
13414         000115' 607000  000004            TLNN IOS,IOFST        ;IOFST=1?\r
13415         000116' 660000  002000            TRO IOS,PTRERR        ;NO.  PTRERR:=1.  BINARY BLOCK INCOMPLE\r
13416         000117' 254000  000070'           JRST PTRI2\r
13417 \r
13418 \fPTRSER - PAPER TAPE READER SERVICE ROUTINE     MACRO 10 05:51 24-APR-78 PAGE 6\r
13419 PTRSER  MAC     24-APR-78 01:35         8-15-65\r
13420 \r
13421 \r
13422 \r
13423                                 ,DISCONNECT PTR\r
13424         000120' 337020  000000* PTREX:    SKIPG @PTRADR         ;IOUSE=1?\r
13425         000121' 254000  000124'           JRST PTREX0           ;YES.\r
13426         000122' 710440  000041*           DATAI PTR,PTRSV1\r
13427         000123' 254000  000052'           JRST PTRIN0\r
13428 \r
13429         000124' 710440  000051* PTREX0:   DATAI PTR,PTRSVC      ;SAVE LAST DATA WORD FROM PTR\r
13430         000125' 260140  000133'           PUSHJ PDP,PTRREL      ;CLEAR PTR AND CONSO FLAG\r
13431         000126' 661000  200000            TLO IOS,PTRFCI        ;PTRFCI:=1\r
13432         000127' 620000  010000            TRZ IOS,IOACT         ;IOACT:=0\r
13433 \r
13434         000130' 202200  000000* PTREX1:   MOVEM ITEM,PTRCTR     ;PTRCTR:=C(ITEM)\r
13435         000131' 202000  000040*           MOVEM IOS,PTRIOS      ;PTRIOS:=C(IOS)\r
13436         000132' 254000  000000*           JRST PTRRET           ;RESTORE ACCUMULATORS AND DISMISS INTER\r
13437 \r
13438                                           INTERNAL PTRINI\r
13439 \r
13440         000133'                 PTRINI:\r
13441         000133' 710600  000000  PTRREL:   CONO PTR,0            ;CLEAR PTR CONTROL\r
13442         000134' 513000  000032'           HLLZS PTRINT          ;CLEAR CONSO FLAG\r
13443         000135' 263140  000000            POPJ PDP,\r
13444 \r
13445                                           END,\r
13446 \r
13447 NO ERRORS DETECTED\r
13448 \r
13449 PROGRAM BREAK IS 000137\r
13450 \r
13451 9K CORE USED\r
13452 \r
13453 \fPTRSER - PAPER TAPE READER SERVICE ROUTINE     MACRO 10 05:51 24-APR-78 PAGE 7\r
13454 PTRSER  MAC     24-APR-78 01:35         SYMBOL TABLE\r
13455 \r
13456 A               000000  INT\r
13457 AC1             000015  INT\r
13458 AC2             000016  INT\r
13459 AC3             000017  INT\r
13460 ADVBFF          000110' EXT\r
13461 AL              000001  INT\r
13462 ASSCON          400000  INT\r
13463 ASSPRG          200000  INT\r
13464 B               000014  INT\r
13465 BUFPNT          000012  INT\r
13466 BUFWRD          000013  INT\r
13467 CKS12           000000  EXT\r
13468 CLOSB           002000  INT\r
13469 CLSIN           000002  INT\r
13470 CLSOUT          000001  INT\r
13471 D               000017  INT\r
13472 DAT             000005  INT\r
13473 DCL             000001  INT\r
13474 DCW             020000  INT\r
13475 DDI             000007  INT\r
13476 DDO             000006  INT\r
13477 DDTMEM          000037  INT\r
13478 DDTSYM          000036  INT\r
13479 DEN             000004  INT\r
13480 DEVADR          000007  INT\r
13481 DEVBUF          000006  INT\r
13482 DEVCHR          000001  INT\r
13483 DEVCTR          000011  INT\r
13484 DEVDAT          000006  INT\r
13485 DEVIAD          000007  INT\r
13486 DEVIOS          000002  INT\r
13487 DEVLOG          000005  INT\r
13488 DEVMOD          000004  INT\r
13489 DEVNAM          000000  INT\r
13490 DEVOAD          000010  INT\r
13491 DEVPTR          000010  INT\r
13492 DEVSER          000003  INT\r
13493 DGF             000012  INT\r
13494 DIN             000003  INT\r
13495 DLK             000005  INT\r
13496 DOU             000002  INT\r
13497 DR              000016  INT\r
13498 DRL             000000  INT\r
13499 DSI             000011  INT\r
13500 DSO             000010  INT\r
13501 DTW             040000  INT\r
13502 DVAVAL          000040  INT\r
13503 DVCDR           100000  INT\r
13504 DVDIR           000004  INT\r
13505 DVDIRI          400000  INT\r
13506 DVIN            000002  INT\r
13507 DVLPT           040000  INT\r
13508 \r
13509 \r
13510 \fPTRSER - PAPER TAPE READER SERVICE ROUTINE     MACRO 10 05:51 24-APR-78 PAGE 7-1\r
13511 PTRSER  MAC     24-APR-78 01:35         SYMBOL TABLE\r
13512 \r
13513 DVMTA           000020  INT\r
13514 DVOUT           000001  INT\r
13515 DVTTY           000010  INT\r
13516 ENTRB           020000  INT\r
13517 I               000010  INT\r
13518 IB              000013  INT\r
13519 IBUFB           200000  INT\r
13520 ILLOUT          000002' EXT\r
13521 INITB           400000  INT\r
13522 INPB            010000  INT\r
13523 IO              000020  INT\r
13524 IOACT           010000  INT\r
13525 IOBEG           000002  INT\r
13526 IOBKTL          040000  INT\r
13527 IOCON           000040  INT\r
13528 IODEND          020000  INT\r
13529 IODERR          200000  INT\r
13530 IODISC          400000  INT\r
13531 IODONE          400000  INT\r
13532 IODTER          100000  INT\r
13533 IOEND           000040  INT\r
13534 IOFST           000004  INT\r
13535 IOIMPM          400000  INT\r
13536 IONRCK          000100  INT\r
13537 IORDEL          000100  INT\r
13538 IORET           000020  INT\r
13539 IOS             000000  INT\r
13540 IOSET           000037' EXT\r
13541 IOSTRT          000010  INT\r
13542 IOUSE           400000  INT\r
13543 IOW             000001  INT\r
13544 IOWC            000020  INT\r
13545 IOWS            400000  INT\r
13546 ITEM            000004  INT\r
13547 JBFADR          000000  INT\r
13548 JBFCTR          000002  INT\r
13549 JBFPTR          000001  INT\r
13550 JBUF            000005  INT\r
13551 JDAT            000011  INT\r
13552 JERR            002000  INT\r
13553 JIOW            100000  INT\r
13554 JNA             004000  INT\r
13555 LOOKB           040000  INT\r
13556 MTW             010000  INT\r
13557 NULL            000200  \r
13558 OBUFB           100000  INT\r
13559 OUTPB           004000  INT\r
13560 PDP             000003  INT\r
13561 PICHN           000100  INT\r
13562 PIOFF           000400  \r
13563 PIOMOD          000076' EXT\r
13564 PION            000200  \r
13565 POW             000400  \r
13566 \r
13567 \fPTRSER - PAPER TAPE READER SERVICE ROUTINE     MACRO 10 05:51 24-APR-78 PAGE 7-2\r
13568 PTRSER  MAC     24-APR-78 01:35         SYMBOL TABLE\r
13569 \r
13570 PROG            000007  INT\r
13571 PTR             000104  SPD\r
13572 PTRADR          000120' EXT\r
13573 PTRBIN          000040  \r
13574 PTRBSY          000020  \r
13575 PTRBUF          000000  EXT\r
13576 PTRCHN          000015' EXT\r
13577 PTRCHR          000000  EXT\r
13578 PTRCTR          000130' EXT\r
13579 PTRDAT          000036' EXT\r
13580 PTRDB           000000  EXT\r
13581 PTRDON          000010  \r
13582 PTRDSP          000000' ENT\r
13583 PTREI           000106' \r
13584 PTREIB          000113' \r
13585 PTREND          000074' \r
13586 PTRERR          002000  \r
13587 PTREX           000120' \r
13588 PTREX0          000124' \r
13589 PTREX1          000130' \r
13590 PTRFCI          200000  \r
13591 PTRI0           000060' \r
13592 PTRI1           000064' \r
13593 PTRI2           000070' \r
13594 PTRIN0          000052' \r
13595 PTRIN1          000013' \r
13596 PTRIN4          000027' \r
13597 PTRINI          000133' INT\r
13598 PTRINP          000004' \r
13599 PTRINT          000032' INT\r
13600 PTRIOS          000131' EXT\r
13601 PTRMOD          000000  EXT\r
13602 PTRPOW          100000  \r
13603 PTRPTR          000010' EXT\r
13604 PTRREL          000133' \r
13605 PTRRET          000132' EXT\r
13606 PTRSAV          000000  EXT\r
13607 PTRSER          000000  EXT\r
13608 PTRSV1          000122' EXT\r
13609 PTRSVC          000124' EXT\r
13610 RUBOUT          000377  \r
13611 RUN             200000  INT\r
13612 RUNABL          204000  INT\r
13613 S2EOF           000232  \r
13614 SETBYT          000007' EXT\r
13615 SETIOD          000072' EXT\r
13616 STODAT          000103' EXT\r
13617 STOSQD          000106' EXT\r
13618 TAC             000001  INT\r
13619 TAC1            000002  INT\r
13620 TEM             000010  INT\r
13621 TTYATC          020000  INT\r
13622 TTYUSE          010000  INT\r
13623 \r
13624 \fPTRSER - PAPER TAPE READER SERVICE ROUTINE     MACRO 10 05:51 24-APR-78 PAGE 7-3\r
13625 PTRSER  MAC     24-APR-78 01:35         SYMBOL TABLE\r
13626 \r
13627 USRMOD          010000  INT\r
13628 UUO             000014  INT\r
13629 WSYNC           000000  EXT\r
13630 \fPPPPPPPPPPPP         TTTTTTTTTTTTTTT      PPPPPPPPPPPP            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
13631 PPPPPPPPPPPP         TTTTTTTTTTTTTTT      PPPPPPPPPPPP            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
13632 PPPPPPPPPPPP         TTTTTTTTTTTTTTT      PPPPPPPPPPPP            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
13633 PPP         PPP            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
13634 PPP         PPP            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
13635 PPP         PPP            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
13636 PPP         PPP            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
13637 PPP         PPP            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
13638 PPP         PPP            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
13639 PPPPPPPPPPPP               TTT            PPPPPPPPPPPP            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
13640 PPPPPPPPPPPP               TTT            PPPPPPPPPPPP            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
13641 PPPPPPPPPPPP               TTT            PPPPPPPPPPPP            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
13642 PPP                        TTT            PPP                              SSS      EEE                  RRR   RRR      \r
13643 PPP                        TTT            PPP                              SSS      EEE                  RRR   RRR      \r
13644 PPP                        TTT            PPP                              SSS      EEE                  RRR   RRR      \r
13645 PPP                        TTT            PPP                              SSS      EEE                  RRR      RRR   \r
13646 PPP                        TTT            PPP                              SSS      EEE                  RRR      RRR   \r
13647 PPP                        TTT            PPP                              SSS      EEE                  RRR      RRR   \r
13648 PPP                        TTT            PPP                  SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
13649 PPP                        TTT            PPP                  SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
13650 PPP                        TTT            PPP                  SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
13651 \r
13652 \r
13653 \r
13654 \r
13655 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
13656 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
13657 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
13658 LLL                  SSS                        TTT                                                                     \r
13659 LLL                  SSS                        TTT                                                                     \r
13660 LLL                  SSS                        TTT                                                                     \r
13661 LLL                  SSS                        TTT                                                                     \r
13662 LLL                  SSS                        TTT                                                                     \r
13663 LLL                  SSS                        TTT                                                                     \r
13664 LLL                     SSSSSSSSS               TTT                                                                     \r
13665 LLL                     SSSSSSSSS               TTT                                                                     \r
13666 LLL                     SSSSSSSSS               TTT                                                                     \r
13667 LLL                              SSS            TTT                                                                     \r
13668 LLL                              SSS            TTT                                                                     \r
13669 LLL                              SSS            TTT                                                                     \r
13670 LLL                              SSS            TTT                                                                     \r
13671 LLL                              SSS            TTT                                                                     \r
13672 LLL                              SSS            TTT                                                                     \r
13673 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
13674 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
13675 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
13676 \r
13677 \r
13678 \r
13679 \r
13680 Request created: 24-April-1978  05:53:58\r
13681 File: DSKB0 :PTPSER.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:36\r
13682 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1677 \r
13683 File will be deleted after printing\r
13684 \f\r
13685 PTPSER - PAPER TAPE PUNCH SERVICE ROUTINE       MACRO 10 05:51 24-APR-78 PAGE 1\r
13686 S       MAC     24-APR-78 21:40         8-15-65\r
13687 \r
13688                                         XLIST\r
13689                                        LIST\r
13690                                 TITLE PTPSER - PAPER TAPE PUNCH SERVICE ROUTINE\r
13691                                 SUBTTL 8-15-65\r
13692                                 EXTERNAL PTPCHN, PTPSAV, ADVBFE, ITMCT1, SETIOD, SETBYT, IOSET, CKS12\r
13693                                 EXTERNAL ILLINP,  OUT, WAIT1, PTPRET,PTPCHL,PIOMOD\r
13694                                 INTERNAL PTPINT\r
13695 \r
13696                                 ;PTP DEVICE DATA BLOCK LINKAGE\r
13697 \r
13698                                 EXTERNAL PTPDB,PTPDAT,PTPCHR,PTPIOS,PTPSER,PTPMOD,PTPBUF\r
13699                                 EXTERNAL PTPPTR,PTPADR,PTPCTR,PTPCNT,PTPCHA,PTPSIO\r
13700                                 ENTRY PTPDSP\r
13701 \r
13702 \fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE      MACRO 10 05:51 24-APR-78 PAGE 2\r
13703 PTPSER  MAC     24-APR-78 13:00         8-15-65\r
13704 \r
13705 \r
13706 \r
13707                                 , PARAMETER ASSIGNMENTS\r
13708 \r
13709 \r
13710                                 ,   PTP CONTROL REGISTER\r
13711                         000010            PTPDON=10\r
13712 \r
13713                                 ,   FORMAT CONTROL\r
13714                         000200            PTPFDN=200\r
13715 \r
13716                                 ,   SPECIAL IO STATUS WORD ASSIGNMENTS\r
13717                         200000            PTPFED=200000\r
13718                         040000            PTPSSQ=40000\r
13719                         020000            PTPEOL=20000\r
13720                         010000            PTPSEQ=10000\r
13721                         004000            PTPBIN=4000           ;CHECKSUM BINARY\r
13722                         002000            PTPIB=2000            ;IMAGE BINARY\r
13723 \r
13724                                 ,   SPECIAL ASCII CHARACTERS\r
13725                         000200            NULL=200\r
13726                         000377            RUBOUT=377\r
13727                         000211            HORTAB=211\r
13728                         000213            VERTAB=213\r
13729                         000214            FORMFD=214\r
13730 \r
13731                                 REPEAT 0,<\r
13732                                 ,PTP DATA BLOCK\r
13733                                 \r
13734                                 PTPDAT:   SIXBIT "PTP"\r
13735                                 PTPCHR:   41\r
13736                                 PTPIOS:   0\r
13737                                 PTPSER:   EXP PTPDSP\r
13738                                 PTPMOD:   XWD 1000+PROG.14403\r
13739                                  0\r
13740                                 PTPBUF:   0\r
13741                                 PTPPTR:   0\r
13742                                 PTPADR:   XWD PROG,0\r
13743                                 PTPCTR:   0\r
13744                                 PTPCNT:   0\r
13745                                 PTPCHA:   0\r
13746                                 PTPSIO:   0\r
13747                                 >\r
13748 \r
13749                                 ,PTP SERVICE DISPATCH TABLE\r
13750 \r
13751         000000' 254000  000004' PTPDSP:   JRST PTPREL           ;RELEASE\r
13752         000001' 254000  000007'           JRST PTPCLS           ;CLOSE\r
13753         000002' 254000  000024'           JRST PTPOUT           ;OUTPUT\r
13754         000003' 254000  000000*           JRST ILLINP           ;INPUT\r
13755 \r
13756 \fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE      MACRO 10 05:51 24-APR-78 PAGE 3\r
13757 PTPSER  MAC     24-APR-78 13:00         8-15-65\r
13758 \r
13759 \r
13760 \r
13761                                           INTERNAL PTPINI\r
13762         000004'                 PTPINI:\r
13763         000004' 710200  000000  PTPREL:   CONO PTP,0\r
13764         000005' 513000  000052'           HLLZS PTPINT          ;CLEAR CONSO FLAG BITS\r
13765         000006' 263140  000000            POPJ PDP,             ;RETURN\r
13766 \r
13767         000007' 260140  000000* PTPCLS:   PUSHJ PDP,OUT;        OUTPUT REMAINING BUFFERS\r
13768         000010' 260140  000000*           PUSHJ PDP,WAIT1;      WAIT FOR IOACT=0.\r
13769         000011' 200000  000000*           MOVE IOS,PTPIOS;      C(IOS):=C(PTPIOS)\r
13770         000012' 661000  600001            TLO IOS,IODISC+PTPFED+IOW;    IODISC:=IOW:=PTPFED:=1\r
13771         000013' 660000  010000            TRO IOS,IOACT;        IOACT:=1\r
13772         000014' 202000  000011*           MOVEM IOS,PTPIOS;     C(PTPIOS):=C(IOS)\r
13773         000015' 201040  000200            MOVEI TAC,200\r
13774         000016' 202040  000000*           MOVEM TAC,PTPCNT;     PTPCNT:=400\r
13775         000017' 201040  000010            MOVEI TAC,PTPDON      ;SET CONSO FLAG\r
13776         000020' 542040  000052'           HRRM TAC,PTPINT\r
13777         000021' 201040  000000*           MOVEI TAC,PTPCHN;     TAC:=PTPCHN,PI CHANNEL ASSIGNMENT\r
13778         000022' 710201  000010            CONO PTP,PTPDON(TAC);         DONE FLAG:=1, ASSIGN PI CHANN\r
13779         000023' 254000  000010*           JRST WAIT1            ;WAIT FOR IOACT=0, ALL BUFFERS FINISHED\r
13780 \r
13781 \fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE      MACRO 10 05:51 24-APR-78 PAGE 4\r
13782 PTPSER  MAC     24-APR-78 13:00         8-15-65\r
13783 \r
13784 \r
13785 \r
13786         000024' 623000  000002  PTPOUT:   TLZE IOS,IOBEG        ;VIRGIN DEVICE? (IOBEG:=0)\r
13787         000025' 254000  000036'           JRST PTPIN2           ;YES\r
13788 \r
13789         000026' 660000  010000  PTPIN1:   TRO IOS,IOACT         ;IOACT:=1\r
13790         000027' 621000  400000            TLZ IOS,IODISC        ;CLEAR DISCONNECT BIT\r
13791         000030' 202000  000014*           MOVEM IOS,PTPIOS      ;PTPIOS:=C(IOS)\r
13792         000031' 201040  000010            MOVEI TAC,PTPDON      ;SET CONSO FLAG BIT\r
13793         000032' 542040  000052'           HRRM TAC,PTPINT\r
13794         000033' 201040  000021*           MOVEI TAC, PTPCHN\r
13795         000034' 710201  000010            CONO PTP,PTPDON (TAC);        DONE FLAG:=1, ASSIGN PI CHAN\r
13796         000035' 263140  000000            POPJ PDP,             ;RETURN\r
13797 \r
13798         000036' 135040  000000* PTPIN2:   LDB TAC,PIOMOD\r
13799         000037' 661000  200024            TLO IOS, IOFST+PTPFED+IO      ;IOFST:=PTPFED:=IO:=1\r
13800         000040' 621000  006000            TLZ IOS,PTPBIN+PTPIB          ;CLEAR BINARY AND IMAGE BINAR\r
13801         000041' 306040  000013            CAIN TAC,IB           ;IMAGE BINARY?\r
13802         000042' 661000  002000            TLO IOS,PTPIB         ;YES\r
13803         000043' 306040  000014            CAIN TAC,B            ;MODE:=BINARY?\r
13804         000044' 661000  004000            TLO IOS,PTPBIN        ;YES, PTPBIN:=1\r
13805         000045' 201040  000200            MOVEI TAC,PTPFDN      ;PTPCNT:=PTPFDN\r
13806         000046' 202040  000016*           MOVEM TAC,PTPCNT\r
13807         000047' 260140  000000*           PUSHJ PDP,SETBYT      ;SETBYT\r
13808         000050' 502040  000000*           HLLM TAC,PTPPTR       ;PTPPTR0-5:=PTPPTR12-13:=0,PTPPTR6-11:=\r
13809                                                                 ;SIZE; PTPPTR14-17:=PROG\r
13810         000051' 254000  000026'           JRST PTPIN1\r
13811 \r
13812 \fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE      MACRO 10 05:51 24-APR-78 PAGE 5\r
13813 PTPSER  MAC     24-APR-78 13:00         8-15-65\r
13814 \r
13815 \r
13816 \r
13817                                 ,PUNCH INTERRUPT SERVICE\r
13818 \r
13819         000052' 710340  000010  PTPINT:   CONSO PTP,PTPDON;     DONE FLAG=1?\r
13820         000053' 254000  000052'           JRST PTPINT           ;NO. IF PTP IS IN FLAG LIST GO TO ERROR\r
13821         000054' 202000  000000*           MOVEM IOS,PTPSIO      ;PTPSIO:=C(IOS)  SAVE IOS\r
13822         000055' 200000  000030*           MOVE IOS,PTPIOS       ;IOS:=C(PTPIOS)\r
13823         000056' 603000  200000            TLNE IOS,PTPFED       ;FEED REQUEST? (PTPFED=1?)\r
13824         000057' 254000  000151'           JRST PTPS2            ;YES\r
13825         000060' 200000  000054*           MOVE IOS,PTPSIO       ;RESTORE IOS\r
13826         000061' 264000  000000*           JSR PTPSAV            ;SAVE ACS AND ESTABLISH PDP\r
13827         000062' 201300  000000*           MOVEI DEVDAT,PTPDAT\r
13828         000063' 260140  000000*           PUSHJ PDP,IOSET       ;PROG:=(JBTADR 18-35),ITEM:=C(DEVCTR)\r
13829         000064' 200000  000055*           MOVE IOS,PTPIOS\r
13830         000065' 623000  400000            TLZE IOS,IODISC       ;DISCONNECT?  (IODISC=1?)\r
13831         000066' 254000  000167'           JRST PTPADV           ;YES\r
13832         000067' 623000  000004            TLZE IOS,IOFST        ;IOFST=1?  IOFST:=0\r
13833         000070' 254000  000175'           JRST PTP9             ;YES\r
13834         000071' 607000  006000            TLNN IOS,PTPBIN+PTPIB         ;BINARY PUNCH MODE?\r
13835         000072' 254000  000121'           JRST PTP3             ;NO\r
13836 \r
13837         000073' 200040  000000* PTPB0:    MOVE TAC,PTPCHA;      BINARY OUTPUT BYTE SIZE=36\r
13838         000074' 241040  000006            ROT TAC,6\r
13839         000075' 202040  000073*           MOVEM TAC,PTPCHA\r
13840         000076' 405040  000077            ANDI TAC,77;          TAC:=XX, SIXBIT SUB-BYTE\r
13841         000077' 271040  000200            ADDI TAC,200\r
13842         000100' 710140  000001            DATAO PTP,TAC;        PUNCH 2XX\r
13843         000101' 371000  000046*           SOSL PTPCNT;          C(PTPCNT):=C(PTPCNT)-1.   WORD DONE?\r
13844         000102' 254000  000227'           JRST PTPXIT;          NO\r
13845         000103' 371000  000000*           SOSL PTPCTR;          C(PTPCTR):=C(PTPCTR)-1.   ITEM COUNT < 0\r
13846         000104' 254000  000113'           JRST PTPB1;           NO\r
13847         000105' 603000  002000            TLNE IOS,PTPIB        ;IMAGE BINARY?\r
13848         000106' 665000  400000            TLOA IOS,IODISC       ;YES, SUPPRESS TAPE FEED.\r
13849         000107' 661000  600000            TLO IOS,IODISC+PTPFED         ;IODIS:=PTPFED:=1\r
13850         000110' 201040  000010            MOVEI TAC,10\r
13851         000111' 202040  000101*           MOVEM TAC,PTPCNT;     PTPCNT:=10\r
13852         000112' 254000  000227'           JRST PTPXIT\r
13853 \r
13854         000113' 201040  000005  PTPB1:    MOVEI TAC,5           ;PTPCNT:=5\r
13855         000114' 202040  000111*           MOVEM TAC,PTPCNT\r
13856         000115' 200260  000050*           MOVE DAT,@PTPPTR;     PTPCHA:=OUTPUT DATA WORD\r
13857         000116' 350000  000115*           AOS PTPPTR;           PTPPTR:=C(PTPPTR)+1.  ADVANCE ITEM POIN\r
13858         000117' 202240  000075*           MOVEM DAT,PTPCHA\r
13859         000120' 254000  000227'           JRST PTPXIT\r
13860 \r
13861 \fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE      MACRO 10 05:51 24-APR-78 PAGE 6\r
13862 PTPSER  MAC     24-APR-78 13:00         8-15-65\r
13863 \r
13864 \r
13865 \r
13866         000121' 710140  000117* PTP3:     DATAO PTP,PTPCHA;     PUNCH CHARACTER\r
13867         000122' 602000  000014            TRNE IOS,14;          IS MODE AN ALPHA MODE\r
13868         000123' 254000  000136'           JRST PTP1;            NO\r
13869         000124' 200240  000121*           MOVE DAT,PTPCHA\r
13870         000125' 302240  000211            CAIE DAT,HORTAB;      HORIZONTAL OR VERTICAL TAB?\r
13871         000126' 306240  000213            CAIN DAT,VERTAB\r
13872         000127' 254000  000216'           JRST PTPP1;           YES\r
13873         000130' 302240  000214            CAIE DAT,FORMFD;      FORM FEED?\r
13874         000131' 254000  000136'           JRST PTP1;            NO\r
13875         000132' 661000  220000            TLO IOS,PTPFED+PTPEOL;        PTPFED:=PTPEOL:=1\r
13876         000133' 201240  000020            MOVEI DAT,20\r
13877         000134' 202240  000114*           MOVEM DAT,PTPCNT;     PTPCNT:=20\r
13878         000135' 254000  000227'           JRST PTPXIT\r
13879 \r
13880 \fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE      MACRO 10 05:51 24-APR-78 PAGE 7\r
13881 PTPSER  MAC     24-APR-78 13:00         8-15-65\r
13882 \r
13883 \r
13884 \r
13885         000136' 375000  000103* PTP1:     SOSGE     PTPCTR;     C(PTPCTR:=C(PTPCTR)-1.  IS C(PTPCTR)<0\r
13886         000137' 254000  000160'           JRST PTP5             ;YES\r
13887         000140' 134240  000116*           LDBI DAT,PTPPTR       ;DAT:=OUTPUT ITEM\r
13888         000141' 135040  000036*           LDB TAC,PIOMOD\r
13889         000142' 306040  000010            CAIN TAC,I;           MODE=IMAGE?\r
13890         000143' 254000  000147'           JRST PTP6             ;YES\r
13891         000144' 435240  000200            IORI DAT,200;         NO, INSERT EIGHTH HOLD\r
13892         000145' 306240  000200            CAIN DAT,NULL;        NULL?\r
13893         000146' 254000  000136'           JRST PTP1;            YES\r
13894 \r
13895         000147' 202240  000124* PTP6:     MOVEM DAT,PTPCHA;     PTPCHA:=OUTPUT ITEM\r
13896         000150' 254000  000227'           JRST PTPXIT\r
13897 \r
13898         000151' 402000  000147* PTPS2:    CLEARM    PTPCHA;     PUNCH FEED\r
13899         000152' 710140  000151*           DATAO PTP,PTPCHA\r
13900         000153' 377000  000134*           SOSG PTPCNT;          COUNT FEED LINES\r
13901         000154' 621000  200000            TLZ IOS,PTPFED;       PTPFED:=0\r
13902         000155' 202000  000064*           MOVEM IOS,PTPIOS;     PTPIOS:=C(IOS)\r
13903         000156' 200000  000060*           MOVE IOS,PTPSIO       ;RESTORE IOS\r
13904         000157' 254520  000000*           JEN @PTPCHL           ;DISMISS\r
13905 \r
13906         000160' 661000  400000  PTP5:     TLO IOS,IODISC;       IODISC:=1\r
13907         000161' 254000  000227'           JRST PTPXIT\r
13908 \r
13909         000162' 550100  000000* PTPBN:    HRRZ TAC1,PTPADR;     TAC1:=BUFFER ADDRESS\r
13910         000163' 260140  000000*           PUSHJ PDP,CKS12;      TAC:=CALCULATE CHECKSUM\r
13911         000164' 270100  000162*           ADD TAC1, PTPADR\r
13912         000165' 502060  000002            HLLM TAC,@TAC1;       STORE CHECKSUM IN LEFT HALF OF FIRST BU\r
13913         000166' 254000  000113'           JRST PTPB1\r
13914 \r
13915 \fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE      MACRO 10 05:51 24-APR-78 PAGE 8\r
13916 PTPSER  MAC     24-APR-78 13:00         8-15-65\r
13917 \r
13918 \r
13919 \r
13920         000167' 260140  000000* PTPADV:   PUSHJ PDP,ADVBFE;     ADVANCE BUFFER\r
13921         000170' 254000  000222'           JRST PTPDSC;          EXIT1.  NEXT BUFFER EMPTY\r
13922         000171' 602000  000040            TRNE IOS,IOCON;       CONTINUOUS? (IOCON=1?)\r
13923         000172' 254000  000222'           JRST PTPDSC;          YES\r
13924         000173' 623000  000001            TLZE IOS,IOW;         IN A WAIT?  IOW:=0\r
13925         000174' 260140  000000*           PUSHJ PDP,SETIOD;     YES.  IOWS:=1\r
13926         000175' 621000  000004  PTP9:     TLZ IOS,IOFST;        IOFST:=0\r
13927         000176' 200040  000164*           MOVE TAC,PTPADR\r
13928         000177' 350000  000001            AOS TAC\r
13929         000200' 542040  000140*           HRRM TAC,PTPPTR;      PTPPTR18-35:=C(PTPADR18-25)+1\r
13930         000201' 550220  000001            HRRZ ITEM,@TAC;       ITEM:=WORD COUNT\r
13931         000202' 135100  000215'           LDB TAC1,PTP91                ;PICK UP BYTE SIZE\r
13932         000203' 260140  000000*           PUSHJ PDP,ITMCT1;     ITEM:=WORD COUNT*[36/BYTE SIZE]\r
13933         000204' 202200  000136*           MOVEM ITEM,PTPCTR;    PTPCTR:=C(ITEM)\r
13934         000205' 322200  000167'           JUMPE ITEM,PTPADV     ;       IS ITEM COUNT=0?\r
13935         000206' 603000  004000            TLNE IOS,PTPBIN;      BINARY PUNCH MODE?\r
13936         000207' 254000  000162'           JRST PTPBN;           YES\r
13937         000210' 607000  002000            TLNN IOS,PTPIB        ;IMAGE BINARY?\r
13938         000211' 254000  000136'           JRST PTP1\r
13939         000212' 350000  000200*           AOS PTPPTR            ;YES\r
13940         000213' 370000  000204*           SOS PTPCTR\r
13941         000214' 254000  000113'           JRST PTPB1\r
13942 \r
13943         000215' 300600  000212* PTP91:    POINT 6,PTPPTR,11\r
13944 \r
13945         000216' 201240  000377  PTPP1:    MOVEI DAT,RUBOUT;     PTPCHA:=RUBOUT\r
13946         000217' 202240  000152*           MOVEM DAT,PTPCHA\r
13947         000220' 661000  020000            TLO IOS,PTPEOL;       PTPEOL:=1\r
13948         000221' 254000  000227'           JRST PTPXIT\r
13949 \r
13950         000222' 260140  000004' PTPDSC:   PUSHJ PDP,PTPREL      ;CLEAR PTP CONTROL REG AND CONSO BITS\r
13951         000223' 620000  010000            TRZ IOS,IOACT;        IOACT:=0\r
13952         000224' 661000  000004            TLO IOS,IOFST;        IOFST:=1\r
13953         000225' 623000  000001            TLZE IOS,IOW;         IN A WAIT?  IOW:=0\r
13954         000226' 260140  000174*           PUSHJ PDP,SETIOD;     YES.  IOSW:=1\r
13955 \r
13956         000227' 202000  000155* PTPXIT:   MOVEM IOS,PTPIOS;     PTPIOS:=C(IOS)\r
13957         000230' 254000  000000*           JRST PTPRET;          NO\r
13958 \r
13959                                 END,\r
13960 \r
13961 NO ERRORS DETECTED\r
13962 \r
13963 PROGRAM BREAK IS 000231\r
13964 \r
13965 9K CORE USED\r
13966 \r
13967 \fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE      MACRO 10 05:51 24-APR-78 PAGE 9\r
13968 PTPSER  MAC     24-APR-78 13:00         SYMBOL TABLE\r
13969 \r
13970 A               000000  INT\r
13971 AC1             000015  INT\r
13972 AC2             000016  INT\r
13973 AC3             000017  INT\r
13974 ADVBFE          000167' EXT\r
13975 AL              000001  INT\r
13976 ASSCON          400000  INT\r
13977 ASSPRG          200000  INT\r
13978 B               000014  INT\r
13979 BUFPNT          000012  INT\r
13980 BUFWRD          000013  INT\r
13981 CKS12           000163' EXT\r
13982 CLOSB           002000  INT\r
13983 CLSIN           000002  INT\r
13984 CLSOUT          000001  INT\r
13985 D               000017  INT\r
13986 DAT             000005  INT\r
13987 DCL             000001  INT\r
13988 DCW             020000  INT\r
13989 DDI             000007  INT\r
13990 DDO             000006  INT\r
13991 DDTMEM          000037  INT\r
13992 DDTSYM          000036  INT\r
13993 DEN             000004  INT\r
13994 DEVADR          000007  INT\r
13995 DEVBUF          000006  INT\r
13996 DEVCHR          000001  INT\r
13997 DEVCTR          000011  INT\r
13998 DEVDAT          000006  INT\r
13999 DEVIAD          000007  INT\r
14000 DEVIOS          000002  INT\r
14001 DEVLOG          000005  INT\r
14002 DEVMOD          000004  INT\r
14003 DEVNAM          000000  INT\r
14004 DEVOAD          000010  INT\r
14005 DEVPTR          000010  INT\r
14006 DEVSER          000003  INT\r
14007 DGF             000012  INT\r
14008 DIN             000003  INT\r
14009 DLK             000005  INT\r
14010 DOU             000002  INT\r
14011 DR              000016  INT\r
14012 DRL             000000  INT\r
14013 DSI             000011  INT\r
14014 DSO             000010  INT\r
14015 DTW             040000  INT\r
14016 DVAVAL          000040  INT\r
14017 DVCDR           100000  INT\r
14018 DVDIR           000004  INT\r
14019 DVDIRI          400000  INT\r
14020 DVIN            000002  INT\r
14021 DVLPT           040000  INT\r
14022 \r
14023 \r
14024 \fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE      MACRO 10 05:51 24-APR-78 PAGE 9-1\r
14025 PTPSER  MAC     24-APR-78 13:00         SYMBOL TABLE\r
14026 \r
14027 DVMTA           000020  INT\r
14028 DVOUT           000001  INT\r
14029 DVTTY           000010  INT\r
14030 ENTRB           020000  INT\r
14031 FORMFD          000214  \r
14032 HORTAB          000211  \r
14033 I               000010  INT\r
14034 IB              000013  INT\r
14035 IBUFB           200000  INT\r
14036 ILLINP          000003' EXT\r
14037 INITB           400000  INT\r
14038 INPB            010000  INT\r
14039 IO              000020  INT\r
14040 IOACT           010000  INT\r
14041 IOBEG           000002  INT\r
14042 IOBKTL          040000  INT\r
14043 IOCON           000040  INT\r
14044 IODEND          020000  INT\r
14045 IODERR          200000  INT\r
14046 IODISC          400000  INT\r
14047 IODONE          400000  INT\r
14048 IODTER          100000  INT\r
14049 IOEND           000040  INT\r
14050 IOFST           000004  INT\r
14051 IOIMPM          400000  INT\r
14052 IONRCK          000100  INT\r
14053 IORDEL          000100  INT\r
14054 IORET           000020  INT\r
14055 IOS             000000  INT\r
14056 IOSET           000063' EXT\r
14057 IOSTRT          000010  INT\r
14058 IOUSE           400000  INT\r
14059 IOW             000001  INT\r
14060 IOWC            000020  INT\r
14061 IOWS            400000  INT\r
14062 ITEM            000004  INT\r
14063 ITMCT1          000203' EXT\r
14064 JBFADR          000000  INT\r
14065 JBFCTR          000002  INT\r
14066 JBFPTR          000001  INT\r
14067 JBUF            000005  INT\r
14068 JDAT            000011  INT\r
14069 JERR            002000  INT\r
14070 JIOW            100000  INT\r
14071 JNA             004000  INT\r
14072 LOOKB           040000  INT\r
14073 MTW             010000  INT\r
14074 NULL            000200  \r
14075 OBUFB           100000  INT\r
14076 OUT             000007' EXT\r
14077 OUTPB           004000  INT\r
14078 PDP             000003  INT\r
14079 PICHN           000100  INT\r
14080 \r
14081 \fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE      MACRO 10 05:51 24-APR-78 PAGE 9-2\r
14082 PTPSER  MAC     24-APR-78 13:00         SYMBOL TABLE\r
14083 \r
14084 PIOMOD          000141' EXT\r
14085 PROG            000007  INT\r
14086 PTP             000100  SPD\r
14087 PTP1            000136' \r
14088 PTP3            000121' \r
14089 PTP5            000160' \r
14090 PTP6            000147' \r
14091 PTP9            000175' \r
14092 PTP91           000215' \r
14093 PTPADR          000176' EXT\r
14094 PTPADV          000167' \r
14095 PTPB0           000073' \r
14096 PTPB1           000113' \r
14097 PTPBIN          004000  \r
14098 PTPBN           000162' \r
14099 PTPBUF          000000  EXT\r
14100 PTPCHA          000217' EXT\r
14101 PTPCHL          000157' EXT\r
14102 PTPCHN          000033' EXT\r
14103 PTPCHR          000000  EXT\r
14104 PTPCLS          000007' \r
14105 PTPCNT          000153' EXT\r
14106 PTPCTR          000213' EXT\r
14107 PTPDAT          000062' EXT\r
14108 PTPDB           000000  EXT\r
14109 PTPDON          000010  \r
14110 PTPDSC          000222' \r
14111 PTPDSP          000000' ENT\r
14112 PTPEOL          020000  \r
14113 PTPFDN          000200  \r
14114 PTPFED          200000  \r
14115 PTPIB           002000  \r
14116 PTPIN1          000026' \r
14117 PTPIN2          000036' \r
14118 PTPINI          000004' INT\r
14119 PTPINT          000052' INT\r
14120 PTPIOS          000227' EXT\r
14121 PTPMOD          000000  EXT\r
14122 PTPOUT          000024' \r
14123 PTPP1           000216' \r
14124 PTPPTR          000215' EXT\r
14125 PTPREL          000004' \r
14126 PTPRET          000230' EXT\r
14127 PTPS2           000151' \r
14128 PTPSAV          000061' EXT\r
14129 PTPSEQ          010000  \r
14130 PTPSER          000000  EXT\r
14131 PTPSIO          000156' EXT\r
14132 PTPSSQ          040000  \r
14133 PTPXIT          000227' \r
14134 RUBOUT          000377  \r
14135 RUN             200000  INT\r
14136 RUNABL          204000  INT\r
14137 \r
14138 \fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE      MACRO 10 05:51 24-APR-78 PAGE 9-3\r
14139 PTPSER  MAC     24-APR-78 13:00         SYMBOL TABLE\r
14140 \r
14141 SETBYT          000047' EXT\r
14142 SETIOD          000226' EXT\r
14143 TAC             000001  INT\r
14144 TAC1            000002  INT\r
14145 TEM             000010  INT\r
14146 TTYATC          020000  INT\r
14147 TTYUSE          010000  INT\r
14148 USRMOD          010000  INT\r
14149 UUO             000014  INT\r
14150 VERTAB          000213  \r
14151 WAIT1           000023' EXT\r
14152 \fRRRRRRRRRRRR         UUU         UUU      NNN         NNN         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
14153 RRRRRRRRRRRR         UUU         UUU      NNN         NNN         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
14154 RRRRRRRRRRRR         UUU         UUU      NNN         NNN         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
14155 RRR         RRR      UUU         UUU      NNN         NNN      CCC                  SSS                  SSS            \r
14156 RRR         RRR      UUU         UUU      NNN         NNN      CCC                  SSS                  SSS            \r
14157 RRR         RRR      UUU         UUU      NNN         NNN      CCC                  SSS                  SSS            \r
14158 RRR         RRR      UUU         UUU      NNNNNN      NNN      CCC                  SSS                  SSS            \r
14159 RRR         RRR      UUU         UUU      NNNNNN      NNN      CCC                  SSS                  SSS            \r
14160 RRR         RRR      UUU         UUU      NNNNNN      NNN      CCC                  SSS                  SSS            \r
14161 RRRRRRRRRRRR         UUU         UUU      NNN   NNN   NNN      CCC                     SSSSSSSSS            SSSSSSSSS   \r
14162 RRRRRRRRRRRR         UUU         UUU      NNN   NNN   NNN      CCC                     SSSSSSSSS            SSSSSSSSS   \r
14163 RRRRRRRRRRRR         UUU         UUU      NNN   NNN   NNN      CCC                     SSSSSSSSS            SSSSSSSSS   \r
14164 RRR   RRR            UUU         UUU      NNN      NNNNNN      CCC                              SSS                  SSS\r
14165 RRR   RRR            UUU         UUU      NNN      NNNNNN      CCC                              SSS                  SSS\r
14166 RRR   RRR            UUU         UUU      NNN      NNNNNN      CCC                              SSS                  SSS\r
14167 RRR      RRR         UUU         UUU      NNN         NNN      CCC                              SSS                  SSS\r
14168 RRR      RRR         UUU         UUU      NNN         NNN      CCC                              SSS                  SSS\r
14169 RRR      RRR         UUU         UUU      NNN         NNN      CCC                              SSS                  SSS\r
14170 RRR         RRR      UUUUUUUUUUUUUUU      NNN         NNN         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
14171 RRR         RRR      UUUUUUUUUUUUUUU      NNN         NNN         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
14172 RRR         RRR      UUUUUUUUUUUUUUU      NNN         NNN         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
14173 \r
14174 \r
14175 \r
14176 \r
14177 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
14178 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
14179 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
14180 LLL                  SSS                        TTT                                                                     \r
14181 LLL                  SSS                        TTT                                                                     \r
14182 LLL                  SSS                        TTT                                                                     \r
14183 LLL                  SSS                        TTT                                                                     \r
14184 LLL                  SSS                        TTT                                                                     \r
14185 LLL                  SSS                        TTT                                                                     \r
14186 LLL                     SSSSSSSSS               TTT                                                                     \r
14187 LLL                     SSSSSSSSS               TTT                                                                     \r
14188 LLL                     SSSSSSSSS               TTT                                                                     \r
14189 LLL                              SSS            TTT                                                                     \r
14190 LLL                              SSS            TTT                                                                     \r
14191 LLL                              SSS            TTT                                                                     \r
14192 LLL                              SSS            TTT                                                                     \r
14193 LLL                              SSS            TTT                                                                     \r
14194 LLL                              SSS            TTT                                                                     \r
14195 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
14196 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
14197 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
14198 \r
14199 \r
14200 \r
14201 \r
14202 Request created: 24-April-1978  05:53:58\r
14203 File: DSKB0 :RUNCSS.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:36\r
14204 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1665 \r
14205 File will be deleted after printing\r
14206 \f\r
14207 RUNCSS - RUN CONTROL SUBROUTINES        MACRO 10 05:51 24-APR-78 PAGE 1\r
14208 S       MAC     24-APR-78 21:40         T. HASTINGS   8-16-65\r
14209 \r
14210                                         XLIST\r
14211                                        LIST\r
14212                                 TITLE RUNCSS - RUN CONTROL SUBROUTINES\r
14213                                 SUBTTL T. HASTINGS   8-16-65\r
14214                                 EXTERNAL APRCHN,APRCHL,CH6SAC,JBTADR,JOB,JOBAC,JOBDAT,JOBN\r
14215                                 EXTERNAL JOBPDP,USRDDT,USRPDP,JOBDDT\r
14216                                 EXTERNAL IORELS,JBTSTS,JOBADR,JOBCDP,JOBPC,JOBREL,JOBSA,JOBSYM\r
14217                                 EXTERNAL MESPNT,QUANT1,JOBDAC,TTYSTR,STOPU,SCHEDF\r
14218                                 EXTERNAL UXIT,IOCOMP,DCREQ,DCAVAL,DTREQ,DTAVAL,MTREQ,MTAVAL\r
14219                                 EXTERNAL CH1XIT,CH2XIT,CH3XIT,CH4XIT,CH5XIT,CH6XIT,CH7XIT\r
14220                                 EXTERNAL JOBFF,MJOBPD,JOBPDL,IOCOMP,PJOBN,USRLO,USRLO1,USRHI\r
14221                                 EXTERNAL TTYFNU,RSCHED\r
14222 \r
14223 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 2\r
14224 RUNCSS  MAC     24-APR-78 01:40         T. HASTINGS   8-16-65\r
14225 \r
14226 \r
14227                                 ;EXIT UUO ROUTINE\r
14228 \r
14229                                           INTERNAL EXIT\r
14230                                 EXTERNAL IORELS,TTYFNU,MESPNT,IOKILL\r
14231 \r
14232         000000' 260140  000000* EXIT:     PUSHJ PDP,IORELS      ;RELEASE ALL DEVICES\r
14233         000001' 260140  000000*           PUSHJ PDP,TTYFNU\r
14234         000002' 201100  000005'           MOVEI TAC1,EXMESS\r
14235         000003' 260140  000000*           PUSHJ PDP,MESPNT\r
14236         000004' 254000  000030'           JRST HOLD ;STOP THIS USER IMMEDIATELY\r
14237 \r
14238         000005'                 EXMESS:   ASCIZ /\r
14239         000005' 064250  554222  EXIT\r
14240         000006' 520321  200000  /\r
14241                                 ;RESET UUO ROUTINE\r
14242 \r
14243                                           INTERNAL RESET\r
14244 \r
14245         000007' 260140  000000* RESET:    PUSHJ PDP,IOKILL      ;RELEASE ALL DEVICES\r
14246         000010' 260140  000227'           PUSHJ PDP,SETUSR      ;CLEAR PART OF JOB DATA AREA\r
14247         000011' 254000  000000*           JRST UXIT             ;AND RETURN TO CALLER\r
14248 \r
14249 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 3\r
14250 RUNCSS  MAC     24-APR-78 01:40         T. HASTINGS   8-16-65\r
14251 \r
14252 \r
14253 \r
14254                                 ;COMMON ERROR HANDLING ROUTINES\r
14255                                 ;DEVDAT MUST BE SET UP TO TTY DDB ON WHICH TO PRINT ERROR MESSAGE\r
14256 \r
14257                                 ;HERE ON ERROR DETECTED AT INTERRUPT SERVICE LEVEL\r
14258                                 ;0(PDP) CONTAINS ADR. OF DEVICE DATA BLOCK CAUSING ERROR\r
14259 \r
14260                                 ;CALL     MOVE TAC, PI CHANNEL NO DETECTING ERROR\r
14261                                 ;         JRST HOLDI\r
14262 \r
14263                                 INTERNAL HOLDI,HOLD,HOLDI1\r
14264 \r
14265         000012' 200103  000000  HOLDI:    MOVE TAC1, 0(PDP)     ;DEVICE DATA BLOCK\r
14266         000013' 135200  000265'           LDB ITEM, [POINT 9, DEVCHR(TAC1), 8]          ;GET JOB NUMBER\r
14267         000014' 261140  000001  HOLDI1:   PUSH PDP, TAC         ;SAVE PI CHANNEL NO.\r
14268         000015' 260140  000032'           PUSHJ PDP, HOLDSB\r
14269         000016' 262140  000001            POP PDP, TAC\r
14270         000017' 254001  000020'           JRST CHNTAB(TAC)      ;GO RESTORE ACS AND DISMISS CHANNEL\r
14271 \r
14272         000020' 254000  000000* CHNTAB:   JRST RSCHED           ;INTERRUPT ON CLOCK CHANNEL,RESCHEDULE\r
14273         000021' 254000  000000*           JRST CH1XIT\r
14274         000022' 254000  000000*           JRST CH2XIT\r
14275         000023' 254000  000000*           JRST CH3XIT\r
14276         000024' 254000  000000*           JRST CH4XIT\r
14277         000025' 254000  000000*           JRST CH5XIT\r
14278         000026' 254000  000000*           JRST CH6XIT\r
14279         000027' 254000  000000*           JRST CH7XIT\r
14280 \r
14281                                 ;HERE ON ERROR FROM UUO LEVEL. ERROR MESSAGE ALREADY IN TTY BUFFER\r
14282 \r
14283                                 ;DAT=BYTE POINTER TO END OF MESSAGE; DEVDAT=TTY DEV. DATA BLOCK\r
14284         000030' 200200  000000* HOLD:     MOVE ITEM, JOB                ;NO. OF THIS JOB\r
14285         000031' 260140  000242'           PUSHJ PDP,WAIT1               ;WAIT UNTIL TTY FINISHED\r
14286 \r
14287         000032' 260140  000000* HOLDSB:   PUSHJ PDP,CRLF\r
14288         000033' 260140  000000*           PUSHJ PDP, TTYSTR     ;START UP TTY TO PRINT ERROR MESSAGE\r
14289                                 EXTERNAL CRLF\r
14290 \r
14291                                 ;ROUTINE TO STOP USER AND FLAG AS ERROR STOP\r
14292                                 ;CALL:    MOVE ITEM, JOB NUMBER\r
14293                                 ;         PUSHJ PDP,ESTOP\r
14294 \r
14295 \r
14296                                 INTERNAL ESTOP\r
14297 \r
14298         000034' 205040  002000  ESTOP:    MOVSI TAC,JERR                ;SET ERROR BIT IN JOB STATUS\r
14299         000035' 436044  000000*           IORM TAC, JBTSTS(ITEM)\r
14300         000036' 254000  000070'           JRST STOP1\r
14301 \r
14302 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 4\r
14303 RUNCSS  MAC     24-APR-78 01:40         T. HASTINGS   8-16-65\r
14304 \r
14305 \r
14306 \r
14307                                 ,BLOCK TRANSFER PROGRAM OVER LOADER\r
14308 \r
14309                                           INTERNAL LDRBLT\r
14310                                           EXTERNAL USRREL\r
14311 \r
14312                         000002            PGADR=2               ;AC CONTAINING BEGINNING OF PROGRAM(LOA\r
14313 \r
14314         000037' 260140  000000* LDRBLT:   PUSHJ PDP,IORELS\r
14315         000040' 550051  000002            HRRZ TAC, PGADR (JDAT)        ;ADD OFFSET TO SYMBOL TABLE P\r
14316         000041' 402011  000002            SETZM PGADR(JDAT)     ;THEN CLEAR SO SYSMAK WILL STILL WORK\r
14317         000042' 550240  000007            HRRZ DAT,PROG\r
14318         000043' 270240  000001            ADD DAT,TAC\r
14319         000044' 272045  000000*           ADDM TAC,JOBSYM(DAT)\r
14320         000045' 504240  000007            HRL DAT,PROG\r
14321         000046' 554045  000000*           HLRZ TAC,JOBSA(DAT)\r
14322         000047' 313040  000000*           CAMLE TAC,USRREL      ;IS HIGHEST DESTINATION STILL IN USER A\r
14323         000050' 200040  000047*           MOVE TAC,USRREL       ;NO. MAKE SURE IT IS.\r
14324         000051' 207000  000005            MOVSS DAT\r
14325         000052' 270040  000005            ADD TAC,DAT\r
14326         000053' 270240  000266'           ADD DAT,[XWD 30,30]   ;MOVE PROGRAM DOWN\r
14327         000054' 251241  000000            BLT DAT,(TAC)\r
14328         000055' 200051  000000*           MOVE TAC,JOBDDT(JDAT)\r
14329                                                                 moveM TAC,USRDDT\r
14330         000056' 260140  000227'           PUSHJ PDP,SETUSR\r
14331         000057' 260140  000001*           PUSHJ PDP,TTYFNU\r
14332         000060' 201100  000063'           MOVEI TAC1,LDRMES\r
14333         000061' 260140  000003*           PUSHJ PDP,MESPNT\r
14334         000062' 254000  000030'           JRST HOLD\r
14335 \r
14336         000063'                 LDRMES:   ASCIZ /\r
14337         000063' 064251  447602  LOADER FINISHED\r
14338         000064' 422132  220214\r
14339         000065' 446351  151620\r
14340         000066' 426101  505000  /\r
14341 \r
14342 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 5\r
14343 RUNCSS  MAC     24-APR-78 01:40         T. HASTINGS   8-16-65\r
14344 \r
14345 \r
14346 \r
14347                                 INTERNAL STOP1, STOP2, CONT1, START1\r
14348 \r
14349                         000200  PION=200\r
14350                         000400  PIOFF=400\r
14351 \r
14352                                 ;ROUTINE TO PUT CURRENT JOB IN IO WAIT\r
14353                                 ;ROUTINE TO STOP CURRENT JOB\r
14354                                 ;MAY BE CALLED FROM ANY LEVEL\r
14355                                 ;CALL;    PUSHJ PDP,STOP0\r
14356                                 ;         RETURN                ;RETURN HERE IMMEDIATELY, IF CALLED FRO\r
14357                                 ;PRIORITY CHANNEL THAN CLOCK. OTHERWISE RETURN WHEN JOB IS RUNABLE AG\r
14358 \r
14359                                 INTERNAL STOP0\r
14360 \r
14361         000067' 200200  000030* STOP0:    MOVE ITEM, JOB                ;CURRENT JOB NUMBER\r
14362 \r
14363                                 ;ROUTINE TO STOP ANY JOB FROM BEING SCHEDULED\r
14364                                 ;CALL:\r
14365                                 ;          MOVE ITEM, JOB NUMBER\r
14366                                 ;          PUSHJ PDP, STOP1\r
14367                                 ;          EXIT     ;RETURN HERE IMMEDIATELY, IF CALLED FROM HIGHER\r
14368                                 ;PRIORITY CHANNEL THAN CLOCK, OTHERWISE RETURN WHEN JOB IC RUNABLE\r
14369                                 ;CALLED WHEN CONTROL C TYPED OR ON ERROR MESSAGES\r
14370 \r
14371         000070' 205040  200000  STOP1:     MOVSI TAC, RUN\r
14372         000071' 700600  000400             CONO PI, PIOFF       ;DONE AT INTERUPT LEVEL HIGHER THAN DT\r
14373         000072' 616044  000035*            TDNN TAC, JBTSTS(ITEM)               ;IS RUN BIT ON IN JOB STATUS\r
14374         000073' 254000  000104'            JRST STOPA           ;NO\r
14375         000074' 413044  000072*            ANDCAB TAC, JBTSTS(ITEM)             ;YES, SO CLEAR IT\r
14376         000075' 700600  000200             CONO PI, PION\r
14377         000076' 603040  040000             TLNE TAC, DTW        ;WAITING TO USE DECTAPE\r
14378         000077' 370000  000000*            SOS DTREQ ;YES, REDUCE REQUEST COUNT\r
14379         000100' 603040  020000             TLNE TAC, DCW        ;DATA CONTROL\r
14380         000101' 370000  000000*            SOS DCREQ\r
14381         000102' 603040  010000             TLNE TAC,MTW         ;MAG TAPE\r
14382         000103' 370000  000000*            SOS MTREQ\r
14383         000104' 700600  000200  STOPA:     CONO PI, PION        ;MAKE SURE PI ON\r
14384         000105' 332000  000000*            SKIPE SCHEDF         ;IS CLOCK IN THE MIDDLE OF SCHEDULING\r
14385         000106' 254000  000111'            JRST STOP2           ;YES, MAKE SURE THIS JOB WONT RUN\r
14386         000107' 312200  000067*            CAME ITEM, JOB       ;NO, IS THIS JOB CURRENT USER\r
14387         000110' 263140  000000             POPJ PDP,            ;NO\r
14388                                                                 ;YES, MAKE CLOCK RESCHEDULE\r
14389 \r
14390                                 ;ROUTINE TO CAUSE CLOCK TO RESCHEDULE\r
14391                                 ;CALL :\r
14392                                 ;          PUSHJ PDP, STOP2\r
14393                                 ;          EXIT         ;RETURN WHEN JOB RUNABLE AGAIN\r
14394 \r
14395                                 EXTERNAL PICLK\r
14396 \r
14397         000111' 700600  000400  STOP2:     CONO PI, PIOFF       ;PREVENT CLOCK INTERRUPT\r
14398 \r
14399 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 5-1\r
14400 RUNCSS  MAC     24-APR-78 01:40         T. HASTINGS   8-16-65\r
14401 \r
14402         000112' 476000  000000*            SETOM STOPU          ;SET FLAG FOR CLOCK ROUTINE\r
14403         000113' 700600  000000*            CONO PI,PICLK        ;REQUEST CLOCK INTERRUPT AND TURN PI ON\r
14404                                                                 ;CLOCK WILL TRAP IMMEDIATELY IF AT UUO\r
14405         000114' 263140  000000             POPJ PDP,            ;RETURN HERE WHEN JOB RUNABLE AGAIN\r
14406 \r
14407 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 6\r
14408 RUNCSS  MAC     24-APR-78 01:40         T. HASTINGS   8-16-65\r
14409 \r
14410 \r
14411 \r
14412                                 ;SUBROUTINE TO SETUP A MONITOR JOB TO BE RUN\r
14413                                 ;JOB MUST HAVE CORE ASSIGNED\r
14414                                 ;CALL:    MOVE ITEM, JOB NUMBER\r
14415                                 ;         HRRI TAC1, ADDRESS OF MONITOR JOB(A SUBROUTINE)\r
14416                                 ;         HRLI TAC1, RETURN ADDRESS WHEN JOB FINISHED\r
14417                                 ;         PUSHJ PDP, MONJOB\r
14418                                 ;         RETURN IMMEDIATELY IF CALLED FROM CLOCK LEV OR HIGHER\r
14419 \r
14420                                 ;ALL ACS WILL BE SAVED FOR THE MONITOR JOB\r
14421 \r
14422                                 INTERNAL MONJOB\r
14423                                 EXTERNAL JOBDAC,JOBDHI,JOBPDP,MJOBPD,JOBPDL,JBTADR\r
14424 \r
14425         000115' 261140  000002  MONJOB:   PUSH PDP, TAC1        ;SAVE ARG.\r
14426         000116' 550444  000000*           HRRZ JDAT,JBTADR(ITEM)        ;ADDRESS OF JOBS DATA AREA\r
14427         000117' 201111  000000*           MOVEI TAC1, JOBDAC(JDAT)      ;SAVE 0-17 IN DUMP ACS\r
14428         000120' 251111  000000*           BLT TAC1, JOBDHI(JDAT)        ;IN JOB DATA AREA\r
14429         000121' 205100  000000*           MOVSI TAC1,MJOBPD     ;SET UP PD LIST IN JOB DATA AREA\r
14430         000122' 541111  000000*           HRRI TAC1, JOBPDL(JDAT)\r
14431         000123' 514043  000000            HlrZ TAC, (PDP)       ;WITH RETURN AS FIRST ITEM\r
14432         000124' 261100  000001            PUSH TAC1, TAC\r
14433         000125' 201051  000117*           MOVEI TAC, JOBDAC(JDAT)\r
14434         000126' 202101  000003            MOVEM TAC1,PDP(TAC)\r
14435         000127' 262140  000002            POP PDP, TAC1         ;SET TO RUN\r
14436         000130' 405100  777777            ANDI TAC1, 777777     ;FALL INTO STARTU\r
14437 \r
14438                                 ;ROUTINE TO START A JOB AND LEAVE CONSOLE IN COMMAND MODE\r
14439                                 ;CALL:    MOVE TAC1, START PC\r
14440                                 ;         MOVE ITEM, JOB NUMBER\r
14441                                 ;         PUSHJ PDP, STARTU\r
14442                                 ;         RETURN IMMEDIATELY\r
14443                                 INTERNAL STARTM\r
14444                                 EXTERNAL TTYURC\r
14445 \r
14446         000131' 260140  000137' STARTM:   PUSHJ PDP, START1\r
14447         000132' 254000  000000*           JRST TTYURC\r
14448 \r
14449                                 ;START WITH TTY IN USER MODE\r
14450 \r
14451                                 INTERNAL STARTU\r
14452                                 EXTERNAL TTYSET\r
14453 \r
14454         000133' 260140  000137' STARTU:   PUSHJ PDP,START1\r
14455         000134' 254000  000000*           JRST TTYSET           ;SET SCANNER TO CALL SETRUN WHEN\r
14456                                                                 ;CR-LF AND INITIALIZE TTY\r
14457 \r
14458                                 INTERNAL CONTM\r
14459                                 EXTERNAL TTYURC\r
14460 \r
14461         000135' 254000  000132* CONTM:    JRST TTYURC\r
14462 \r
14463 \r
14464 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 6-1\r
14465 RUNCSS  MAC     24-APR-78 01:40         T. HASTINGS   8-16-65\r
14466 \r
14467                                 ;ROUTINE TO CONTINUE A JOB FROM COMMAND MODE\r
14468                                 ;CALL:    MOVE ITEM, JOB NUMBER\r
14469                                 ;         PUSHJ PDP, CONTU\r
14470                                 ;         RETURN IMMEDIATELY\r
14471                                 INTERNAL CONTU\r
14472                                 EXTERNAL TTYURC\r
14473 \r
14474         000136' 254000  000135* CONTU:    JRST TTYURC           ;SET SCANNER TO CALL SETRUN WHEN CR-LF\r
14475 \r
14476 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 7\r
14477 RUNCSS  MAC     24-APR-78 01:40         T. HASTINGS   8-16-65\r
14478 \r
14479 \r
14480 \r
14481                                 ;ROUTINE TO SET JOB STATE TO BE SCHEDULED TO RUN\r
14482                                 ;WITH SPECIFIED STARTING ADDRESS INCLUDING PC FLAGS\r
14483                                 ;CALL:    MOVE TAC1,STARTING PC\r
14484                                 ;         MOVE ITEM, JOB NUMBER\r
14485                                 ;         MOVE JDAT, ADDRESS OF JOBS DATA AREA(THERE MUST BE ONE)\r
14486                                 ;         PUSHJ PDP, START1\r
14487                                           ;         EXIT        RETURN HERE IMMEDIATELY\r
14488 \r
14489         000137' 200051  000000* START1:   MOVE TAC,JOBPC(JDAT)          ;GET OLD PC\r
14490         000140' 202111  000137*           MOVEM TAC1,JOBPC(JDAT)        ;STORE NEW PC\r
14491         000141' 603100  010000            TLNE TAC1,USRMOD              ;IS NEW PC IN USER AREA?\r
14492         000142' 603040  010000            TLNE TAC,USRMOD               ;YES, WAS OLD PC IN USER AREA\r
14493         000143' 254000  000147'           JRST START2                   ;YES,DUMP ACS ARE HIS\r
14494         000144' 205111  000000            MOVSI TAC1,(JDAT)             ;NO, UUO ACS ARE HIS\r
14495         000145' 541111  000125*           HRRI TAC1,JOBDAC(JDAT)        ;MOVE THEM TO DUMP ACS\r
14496         000146' 251111  000120*           BLT TAC1,JOBDHI(JDAT)\r
14497         000147' 205100  172000  START2:   MOVSI TAC1,JERR+DCW+DTW+MTW+JIOW      ;CLEAR WAIT BITS\r
14498         000150' 412044  000074*           ANDCAM TAC, JBTSTS(ITEM)      ;IN JOB STATUS WORD\r
14499 \r
14500                                 ;ROUTINE TO CONTINUE ANY JOB AT CURRENT PC\r
14501                                 ;CALL:\r
14502                                 ;         MOVE ITEM, JOB NUMBER\r
14503                                 ;         PUSHJ PDP, CONT1\r
14504                                 ;         EXIT      RETURN IMMEDIATELY\r
14505 \r
14506         000151' 263140  000000  CONT1:    POPJ PDP,\r
14507 \r
14508 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 8\r
14509 RUNCSS  MAC     24-APR-78 01:40         T. HASTINGS   8-16-65\r
14510 \r
14511 \r
14512 \r
14513                                 ;ROUTINE TO SET JOB STATUS RUN BIT\r
14514                                 ;CALL:    MOVE ITEM,JOB NUMBER\r
14515                                 ;         PUSHJ PDP,SETRUN\r
14516 \r
14517                                           INTERNAL SETRUN\r
14518         000152' 205040  200000  SETRUN:   MOVSI TAC,RUN\r
14519         000153' 437044  000150*           IORB TAC,JBTSTS(ITEM)\r
14520         000154' 607040  020000            TLNN TAC,DCW          ;IS JOB WAITING FOR DATA CONTROL?\r
14521         000155' 254000  000160'           JRST CONT2            ;NO\r
14522         000156' 357000  000101*           AOSG DCREQ            ;YES, INCREMENT REQUEST COUNT\r
14523         000157' 476000  000000*           SETOM DCAVAL          ;AND SET DC AS AVAIL IF NOT IN USE\r
14524         000160' 607040  040000  CONT2:    TLNN TAC,DTW          ;DECTAPE?\r
14525         000161' 254000  000164'           JRST CONT3            ;NO\r
14526         000162' 357000  000077*           AOSG DTREQ\r
14527         000163' 476000  000000*           SETOM DTAVAL\r
14528         000164' 607040  010000  CONT3:    TLNN TAC,MTW          ;MAG TAPE?\r
14529         000165' 254000  000170'           JRST CONT4\r
14530         000166' 357000  000103*           AOSG MTREQ\r
14531         000167' 476000  000000*           SETOM MTAVAL\r
14532         000170' 603040  400000  CONT4:    TLNE TAC,IOWS         ;IO WAIT SATISFIED?\r
14533         000171' 350000  000000*           AOS IOCOMP            ;YES\r
14534         000172' 201040  000000*           MOVEI TAC,QUANT1      ;SET TIME TO RUN FOR STRAIGHT QUEUE COM\r
14535         000173' 542044  000153*           HRRM TAC,JBTSTS(ITEM)         ;RESPONSE IS FINISHED\r
14536         000174' 332000  000107*           SKIPE JOB ;IS NULL JOB RUNNING?\r
14537         000175' 263140  000000            POPJ PDP,             ;NO\r
14538         000176' 254000  000111'           JRST STOP2                    ;YES, RESCHEDULE\r
14539 \r
14540 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 9\r
14541 RUNCSS  MAC     24-APR-78 01:40         T. HASTINGS   8-16-65\r
14542 \r
14543 \r
14544 \r
14545                                 ,ROUTINE TO INIATE A WAIT FOR MAG TAPE. DECTAPE, AND DATA CONTROL AC\r
14546                                           INTERNAL MTWAIT\r
14547         000177' 261140  000002  MTWAIT:   PUSH PDP,TAC1\r
14548         000200' 515100  010000            HRLZI TAC1,MTW\r
14549         000201' 261140  000001  DVWAIT:   PUSH PDP, TAC\r
14550         000202' 200040  000174*           MOVE TAC,JOB\r
14551         000203' 436101  000173*           IORM TAC1,JBTSTS(TAC)\r
14552         000204' 260140  000111'           PUSHJ PDP,STOP2\r
14553         000205' 262140  000001            POP PDP,TAC\r
14554         000206' 262140  000002            POP PDP,TAC1\r
14555         000207' 263140  000000            POPJ PDP,\r
14556                                           INTERNAL DTWAIT\r
14557         000210' 261140  000002  DTWAIT:   PUSH PDP,TAC1\r
14558         000211' 515100  040000            HRLZI TAC1,DTW\r
14559         000212' 254000  000201'           JRST DVWAIT\r
14560                                           INTERNAL DCWAIT\r
14561         000213' 261140  000002  DCWAIT:   PUSH PDP,TAC1\r
14562         000214' 515100  020000            HRLZI TAC1,DCW\r
14563         000215' 254000  000201'           JRST DVWAIT\r
14564                                           INTERNAL DVWAIT\r
14565 \r
14566 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 10\r
14567 RUNCSS  MAC     24-APR-78 01:40         T. HASTINGS   8-16-65\r
14568 \r
14569 \r
14570 \r
14571 \r
14572                                 ,DEC 06 00 EX JOB L PT PRE 02 SETIOD\r
14573                                 ,H.R. MORSE    64-12-26\r
14574                                 ,CALLING SEQUENCE\r
14575                                 ,     PUSHJ PDP, SETIOD\r
14576                                 ,     EXIT              ALWAYS RETURNS HERE\r
14577                                 ,SETS THEBIT (IOWS:=1) IN THE JOB STATUS WORD (JBTSTS)\r
14578                                 ,INFORMING THE SYSTEM THAT AN I/O WAIT HAS BEEN COMPLETED\r
14579                                 ,AND THE JOB IS READY TO RUN AGAIN.\r
14580                                 ,MONITOR INTERFACE\r
14581                                 ,     STORAGE: 6\r
14582                                 ,     SYMBOLS SET/USED:\r
14583                                 ,          ACCUMULATORS:   DEVDAT U      TAC S/U\r
14584                                 ,                          PDP U         TAC1 S/U\r
14585                                 ,          DEVICE DATA BLOCK: DEVCHR U\r
14586                                 ,          SYSTEM DATA STORAGE: JBTSTS S/U\r
14587                                 ,          JOB STATUS WORD:    IOWS S\r
14588                                           INTERNAL SETIOD\r
14589 \r
14590         000216' 350000  000171* SETIOD:   AOS IOCOMP\r
14591         000217' 135040  000000*           LDB TAC,PJOBN\r
14592         000220' 205100  400000            MOVSI TAC1, IOWS      ;SET IO-WAIT SATISFIED BIT\r
14593         000221' 436101  000203*           IORM TAC1, JBTSTS(TAC)\r
14594         000222' 205100  100000            MOVSI TAC1, JIOW              ;CLEAR JOB IO-WAIT BIT\r
14595         000223' 412101  000221*           ANDCAM TAC1, JBTSTS(TAC)\r
14596         000224' 336000  000202*           SKIPN JOB             ;IS NULL JOB RUNNING\r
14597         000225' 254000  000111'           JRST STOP2                    ;YES, FORCE CLOCK TO RE-SCHED\r
14598         000226' 263140  000000            POPJ PDP,;                        RETURN\r
14599 \r
14600 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 11\r
14601 RUNCSS  MAC     24-APR-78 01:40         T. HASTINGS   8-16-65\r
14602 \r
14603 \r
14604 \r
14605 \r
14606                                 ;SET CURRENT JOB AREA IN SYSTEM AREA\r
14607 \r
14608                                           INTERNAL SETUSR\r
14609 \r
14610         000227' 541040  000000* SETUSR:   HRRI TAC,USRLO1\r
14611         000230' 505040  000000*           HRLI TAC,USRLO\r
14612         000231' 402000  000230*           SETZM USRLO\r
14613         000232' 251040  000000*           BLT TAC,USRHI\r
14614         000233' 205040  000121*           MOVSI TAC,MJOBPD\r
14615         000234' 541040  000122*           HRRI TAC,JOBPDL\r
14616         000235' 202040  000000*           MOVEM TAC,USRPDP\r
14617         000236' 200440  000000*           MOVE JDAT,JOBDAT\r
14618         000237' 544051  000046*           HLR TAC,JOBSA(JDAT)\r
14619         000240' 542051  000000*           HRRM TAC,JOBFF(JDAT)\r
14620         000241' 263140  000000            POPJ PDP,\r
14621 \r
14622 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 12\r
14623 RUNCSS  MAC     24-APR-78 01:40         T. HASTINGS   8-16-65\r
14624 \r
14625 \r
14626 \r
14627                                 ,DEC 06 00 EX COM L PT PRE 02 WAIT1,WSYNC\r
14628                                 ,H.R. MORSE   64-12-26\r
14629                                 ,CALLING SEQUENCE\r
14630                                 ,     PUSHJ PDP, WAIT1\r
14631                                 ,     EXIT              ALWAYS RETURNS HERE\r
14632 \r
14633                                 ,IF THE DEVICE IS INACTIVE (IOACT=0), RETURNS TO EXIT. OTHERWISE, SET\r
14634                                 ,IOW:=1 AND ENTERS WAIT UNLESS IOACT BECOMES ZERO BEFORE THE\r
14635                                 ,JUMP IS MADE, IN WHICH CHASEIT SETS IOW:=0 AND RETURNS TO EXIT.\r
14636                                 ,ON LEAVING THE WAIT STAT, RETURNS TO EXIT.\r
14637                                 ,THIS ROUTINE PREVENTS THE STATE IOACT=0 AND IOW=1 FROM OCCURING\r
14638                                 ,CALLING SEQUENCE\r
14639                                 ,     PUSHJ PDP, WSYNC\r
14640                                 ,     EXIT              ALWAYS RETURNS HERE\r
14641                                 ,SETS IOW:=1 AND ENTERS WAIT ROUTINE. RETURNS TO EXIT WHEN IOACT=0.\r
14642                                 ,MONITOR INTERFACE\r
14643                                 ,     STORAGE:          13\r
14644                                 ,     ROUTINES CALLED:  WAIT\r
14645                                 ,     SYMBOLS SET/USED: \r
14646                                 ,        ACCUMULATORS:     DEVDAT U     PDP U\r
14647                                 ,                          IOS S/U      TAC S/U\r
14648                                 ,     DEVICE DATA BLOCK:   DEVIOS S/U\r
14649                                 ,     IO STATUS WORD:      IOACT U\r
14650                                 ,                          IOW S/U\r
14651 \r
14652 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 13\r
14653 RUNCSS  MAC     24-APR-78 01:40         T. HASTINGS   8-16-65\r
14654 \r
14655 \r
14656 \r
14657                                           INTERN WAIT1, WSYNC\r
14658 \r
14659                                 ; WAIT1 WAITS UNTIL DEVICE IS COMPLETELY INACTIVE BEFORE RETURNING\r
14660         000242' 200006  000002  WAIT1:    MOVE IOS,DEVIOS(DEVDAT)\r
14661         000243' 606000  010000            TRNN IOS, IOACT               ;IS DEVICE ACTIVE? (IOACT=1?)\r
14662         000244' 263140  000000            POPJ PDP,;                    RETURN\r
14663         000245' 260140  000247'           PUSHJ PDP,WSYNC;              WAIT\r
14664         000246' 254000  000242'           JRST WAIT1\r
14665 \r
14666                                 ;WSYNC IS CALLED TO WAIT UNTIL SETIOD IS CALLED BY INTERRUPT SERVICE\r
14667                                 ;IE  UNTIL CURRENT BUFFER ACTIVITY IS COMPLETED\r
14668                                 ;DEVDAT MUST BE SET UP\r
14669 \r
14670                         000200  PION=200\r
14671                         000400  PIOFF=400\r
14672 \r
14673                                 WSYNC:    REPEAT 0,< PUSH PDP, TAC      ;MUST THESE BE SAVED?\r
14674                                  PUSH PDP, TAC1\r
14675                                  PUSH PDP, DAT>\r
14676         \r
14677         000247' 205000  000001            MOVSI IOS, IOW\r
14678         000250' 205640  100000            MOVSI AC1, JIOW\r
14679         000251' 200700  000224*           MOVE AC2, JOB\r
14680         000252' 201740  010000            MOVEI AC3, IOACT\r
14681         000253' 700600  000400            CONO PI, PIOFF                ;TURN PI OFF\r
14682         000254' 616746  000002            TDNN AC3, DEVIOS(DEVDAT)      ;IS THE DEVICE ACTIVE?\r
14683         000255' 254000  000262'           JRST WSYNC1                   ;NO\r
14684         000256' 436006  000002            IORM IOS, DEVIOS(DEVDAT)      ;YES, SET DEVICE IO-WAIT BIT\r
14685         000257' 436656  000223*           IORM AC1, JBTSTS(AC2)         ;AND JOB IO-WAIT BIT\r
14686         000260' 700600  000200            CONO PI, PION                 ;TURN PI ON\r
14687         000261' 260140  000111'           PUSHJ PDP, STOP2              ;STOP THIS USER BY FORCING CL\r
14688                                                                 ;RETURN WHEN IO-WAIT FINISHED\r
14689         000262' 700600  000200  WSYNC1:   CONO PI, PION\r
14690         000263' 413006  000002            ANDCAB IOS, DEVIOS(DEVDAT)    ;CLEAR DEVICE IO-WAIT BIT\r
14691                                 REPEAT 0,< POP PDP, DAT\r
14692                                  POP PDP, TAC1\r
14693                                  POP PDP, TAC>\r
14694 \r
14695         000264' 263140  000000            POPJ PDP,\r
14696 \r
14697                                           END,\r
14698 \r
14699 NO ERRORS DETECTED\r
14700 \r
14701 PROGRAM BREAK IS 000267\r
14702 \r
14703 9K CORE USED\r
14704 \r
14705 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 14\r
14706 RUNCSS  MAC     24-APR-78 01:40         SYMBOL TABLE\r
14707 \r
14708 A               000000  INT\r
14709 AC1             000015  INT\r
14710 AC2             000016  INT\r
14711 AC3             000017  INT\r
14712 AL              000001  INT\r
14713 APRCHL          000000  EXT\r
14714 APRCHN          000000  EXT\r
14715 ASSCON          400000  INT\r
14716 ASSPRG          200000  INT\r
14717 B               000014  INT\r
14718 BUFPNT          000012  INT\r
14719 BUFWRD          000013  INT\r
14720 CH1XIT          000021' EXT\r
14721 CH2XIT          000022' EXT\r
14722 CH3XIT          000023' EXT\r
14723 CH4XIT          000024' EXT\r
14724 CH5XIT          000025' EXT\r
14725 CH6SAC          000000  EXT\r
14726 CH6XIT          000026' EXT\r
14727 CH7XIT          000027' EXT\r
14728 CHNTAB          000020' \r
14729 CLOSB           002000  INT\r
14730 CLSIN           000002  INT\r
14731 CLSOUT          000001  INT\r
14732 CONT1           000151' INT\r
14733 CONT2           000160' \r
14734 CONT3           000164' \r
14735 CONT4           000170' \r
14736 CONTM           000135' INT\r
14737 CONTU           000136' INT\r
14738 CRLF            000032' EXT\r
14739 D               000017  INT\r
14740 DAT             000005  INT\r
14741 DCAVAL          000157' EXT\r
14742 DCL             000001  INT\r
14743 DCREQ           000156' EXT\r
14744 DCW             020000  INT\r
14745 DCWAIT          000213' INT\r
14746 DDI             000007  INT\r
14747 DDO             000006  INT\r
14748 DDTMEM          000037  INT\r
14749 DDTSYM          000036  INT\r
14750 DEN             000004  INT\r
14751 DEVADR          000007  INT\r
14752 DEVBUF          000006  INT\r
14753 DEVCHR          000001  INT\r
14754 DEVCTR          000011  INT\r
14755 DEVDAT          000006  INT\r
14756 DEVIAD          000007  INT\r
14757 DEVIOS          000002  INT\r
14758 DEVLOG          000005  INT\r
14759 DEVMOD          000004  INT\r
14760 \r
14761 \r
14762 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 14-1\r
14763 RUNCSS  MAC     24-APR-78 01:40         SYMBOL TABLE\r
14764 \r
14765 DEVNAM          000000  INT\r
14766 DEVOAD          000010  INT\r
14767 DEVPTR          000010  INT\r
14768 DEVSER          000003  INT\r
14769 DGF             000012  INT\r
14770 DIN             000003  INT\r
14771 DLK             000005  INT\r
14772 DOU             000002  INT\r
14773 DR              000016  INT\r
14774 DRL             000000  INT\r
14775 DSI             000011  INT\r
14776 DSO             000010  INT\r
14777 DTAVAL          000163' EXT\r
14778 DTREQ           000162' EXT\r
14779 DTW             040000  INT\r
14780 DTWAIT          000210' INT\r
14781 DVAVAL          000040  INT\r
14782 DVCDR           100000  INT\r
14783 DVDIR           000004  INT\r
14784 DVDIRI          400000  INT\r
14785 DVIN            000002  INT\r
14786 DVLPT           040000  INT\r
14787 DVMTA           000020  INT\r
14788 DVOUT           000001  INT\r
14789 DVTTY           000010  INT\r
14790 DVWAIT          000201' INT\r
14791 ENTRB           020000  INT\r
14792 ESTOP           000034' INT\r
14793 EXIT            000000' INT\r
14794 EXMESS          000005' \r
14795 HOLD            000030' INT\r
14796 HOLDI           000012' INT\r
14797 HOLDI1          000014' INT\r
14798 HOLDSB          000032' \r
14799 I               000010  INT\r
14800 IB              000013  INT\r
14801 IBUFB           200000  INT\r
14802 INITB           400000  INT\r
14803 INPB            010000  INT\r
14804 IO              000020  INT\r
14805 IOACT           010000  INT\r
14806 IOBEG           000002  INT\r
14807 IOBKTL          040000  INT\r
14808 IOCOMP          000216' EXT\r
14809 IOCON           000040  INT\r
14810 IODEND          020000  INT\r
14811 IODERR          200000  INT\r
14812 IODISC          400000  INT\r
14813 IODONE          400000  INT\r
14814 IODTER          100000  INT\r
14815 IOEND           000040  INT\r
14816 IOFST           000004  INT\r
14817 IOIMPM          400000  INT\r
14818 \r
14819 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 14-2\r
14820 RUNCSS  MAC     24-APR-78 01:40         SYMBOL TABLE\r
14821 \r
14822 IOKILL          000007' EXT\r
14823 IONRCK          000100  INT\r
14824 IORDEL          000100  INT\r
14825 IORELS          000037' EXT\r
14826 IORET           000020  INT\r
14827 IOS             000000  INT\r
14828 IOSTRT          000010  INT\r
14829 IOUSE           400000  INT\r
14830 IOW             000001  INT\r
14831 IOWC            000020  INT\r
14832 IOWS            400000  INT\r
14833 ITEM            000004  INT\r
14834 JBFADR          000000  INT\r
14835 JBFCTR          000002  INT\r
14836 JBFPTR          000001  INT\r
14837 JBTADR          000116' EXT\r
14838 JBTSTS          000257' EXT\r
14839 JBUF            000005  INT\r
14840 JDAT            000011  INT\r
14841 JERR            002000  INT\r
14842 JIOW            100000  INT\r
14843 JNA             004000  INT\r
14844 JOB             000251' EXT\r
14845 JOBAC           000000  EXT\r
14846 JOBADR          000000  EXT\r
14847 JOBCDP          000000  EXT\r
14848 JOBDAC          000145' EXT\r
14849 JOBDAT          000236' EXT\r
14850 JOBDDT          000055' EXT\r
14851 JOBDHI          000146' EXT\r
14852 JOBFF           000240' EXT\r
14853 JOBN            000000  EXT\r
14854 JOBPC           000140' EXT\r
14855 JOBPDL          000234' EXT\r
14856 JOBPDP          000000  EXT\r
14857 JOBREL          000000  EXT\r
14858 JOBSA           000237' EXT\r
14859 JOBSYM          000044' EXT\r
14860 LDRBLT          000037' INT\r
14861 LDRMES          000063' \r
14862 LOOKB           040000  INT\r
14863 MESPNT          000061' EXT\r
14864 MJOBPD          000233' EXT\r
14865 MONJOB          000115' INT\r
14866 MTAVAL          000167' EXT\r
14867 MTREQ           000166' EXT\r
14868 MTW             010000  INT\r
14869 MTWAIT          000177' INT\r
14870 OBUFB           100000  INT\r
14871 OUTPB           004000  INT\r
14872 PDP             000003  INT\r
14873 PGADR           000002  \r
14874 PI              000004  SPD\r
14875 \r
14876 \fRUNCSS - RUN CONTROL SUBROUTINES       MACRO 10 05:51 24-APR-78 PAGE 14-3\r
14877 RUNCSS  MAC     24-APR-78 01:40         SYMBOL TABLE\r
14878 \r
14879 PICHN           000100  INT\r
14880 PICLK           000113' EXT\r
14881 PIOFF           000400  \r
14882 PION            000200  \r
14883 PJOBN           000217' EXT\r
14884 PROG            000007  INT\r
14885 QUANT1          000172' EXT\r
14886 RESET           000007' INT\r
14887 RSCHED          000020' EXT\r
14888 RUN             200000  INT\r
14889 RUNABL          204000  INT\r
14890 SCHEDF          000105' EXT\r
14891 SETIOD          000216' INT\r
14892 SETRUN          000152' INT\r
14893 SETUSR          000227' INT\r
14894 START1          000137' INT\r
14895 START2          000147' \r
14896 STARTM          000131' INT\r
14897 STARTU          000133' INT\r
14898 STOP0           000067' INT\r
14899 STOP1           000070' INT\r
14900 STOP2           000111' INT\r
14901 STOPA           000104' \r
14902 STOPU           000112' EXT\r
14903 TAC             000001  INT\r
14904 TAC1            000002  INT\r
14905 TEM             000010  INT\r
14906 TTYATC          020000  INT\r
14907 TTYFNU          000057' EXT\r
14908 TTYSET          000134' EXT\r
14909 TTYSTR          000033' EXT\r
14910 TTYURC          000136' EXT\r
14911 TTYUSE          010000  INT\r
14912 USRDDT          000000  EXT\r
14913 USRHI           000232' EXT\r
14914 USRLO           000231' EXT\r
14915 USRLO1          000227' EXT\r
14916 USRMOD          010000  INT\r
14917 USRPDP          000235' EXT\r
14918 USRREL          000050' EXT\r
14919 UUO             000014  INT\r
14920 UXIT            000011' EXT\r
14921 WAIT1           000242' INT\r
14922 WSYNC           000247' INT\r
14923 WSYNC1          000262' \r
14924 \f   SSSSSSSSSSSS         AAAAAAAAA         VVV         VVV         GGGGGGGGGGGG      EEEEEEEEEEEEEEE      TTTTTTTTTTTTTTT\r
14925    SSSSSSSSSSSS         AAAAAAAAA         VVV         VVV         GGGGGGGGGGGG      EEEEEEEEEEEEEEE      TTTTTTTTTTTTTTT\r
14926    SSSSSSSSSSSS         AAAAAAAAA         VVV         VVV         GGGGGGGGGGGG      EEEEEEEEEEEEEEE      TTTTTTTTTTTTTTT\r
14927 SSS                  AAA         AAA      VVV         VVV      GGG                  EEE                        TTT      \r
14928 SSS                  AAA         AAA      VVV         VVV      GGG                  EEE                        TTT      \r
14929 SSS                  AAA         AAA      VVV         VVV      GGG                  EEE                        TTT      \r
14930 SSS                  AAA         AAA      VVV         VVV      GGG                  EEE                        TTT      \r
14931 SSS                  AAA         AAA      VVV         VVV      GGG                  EEE                        TTT      \r
14932 SSS                  AAA         AAA      VVV         VVV      GGG                  EEE                        TTT      \r
14933    SSSSSSSSS         AAA         AAA      VVV         VVV      GGG                  EEEEEEEEEEEE               TTT      \r
14934    SSSSSSSSS         AAA         AAA      VVV         VVV      GGG                  EEEEEEEEEEEE               TTT      \r
14935    SSSSSSSSS         AAA         AAA      VVV         VVV      GGG                  EEEEEEEEEEEE               TTT      \r
14936             SSS      AAAAAAAAAAAAAAA      VVV         VVV      GGG   GGGGGGGGG      EEE                        TTT      \r
14937             SSS      AAAAAAAAAAAAAAA      VVV         VVV      GGG   GGGGGGGGG      EEE                        TTT      \r
14938             SSS      AAAAAAAAAAAAAAA      VVV         VVV      GGG   GGGGGGGGG      EEE                        TTT      \r
14939             SSS      AAA         AAA         VVV   VVV         GGG         GGG      EEE                        TTT      \r
14940             SSS      AAA         AAA         VVV   VVV         GGG         GGG      EEE                        TTT      \r
14941             SSS      AAA         AAA         VVV   VVV         GGG         GGG      EEE                        TTT      \r
14942 SSSSSSSSSSSS         AAA         AAA            VVV               GGGGGGGGG         EEEEEEEEEEEEEEE            TTT      \r
14943 SSSSSSSSSSSS         AAA         AAA            VVV               GGGGGGGGG         EEEEEEEEEEEEEEE            TTT      \r
14944 SSSSSSSSSSSS         AAA         AAA            VVV               GGGGGGGGG         EEEEEEEEEEEEEEE            TTT      \r
14945 \r
14946 \r
14947 \r
14948 \r
14949 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
14950 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
14951 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
14952 LLL                  SSS                        TTT                                                                     \r
14953 LLL                  SSS                        TTT                                                                     \r
14954 LLL                  SSS                        TTT                                                                     \r
14955 LLL                  SSS                        TTT                                                                     \r
14956 LLL                  SSS                        TTT                                                                     \r
14957 LLL                  SSS                        TTT                                                                     \r
14958 LLL                     SSSSSSSSS               TTT                                                                     \r
14959 LLL                     SSSSSSSSS               TTT                                                                     \r
14960 LLL                     SSSSSSSSS               TTT                                                                     \r
14961 LLL                              SSS            TTT                                                                     \r
14962 LLL                              SSS            TTT                                                                     \r
14963 LLL                              SSS            TTT                                                                     \r
14964 LLL                              SSS            TTT                                                                     \r
14965 LLL                              SSS            TTT                                                                     \r
14966 LLL                              SSS            TTT                                                                     \r
14967 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
14968 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
14969 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
14970 \r
14971 \r
14972 \r
14973 \r
14974 Request created: 24-April-1978  05:53:58\r
14975 File: DSKB0 :SAVGET.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:37\r
14976 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1646 \r
14977 File will be deleted after printing\r
14978 \f\r
14979 SAVGET- SAVE AND GET COMMANDS   MACRO 10 05:51 24-APR-78 PAGE 1\r
14980 S       MAC     24-APR-78 21:40         T.HASTINGS 8-4-64\r
14981 \r
14982                                         XLIST\r
14983                                        LIST\r
14984 \r
14985                                 TITLE SAVGET- SAVE AND GET COMMANDS\r
14986                                 SUBTTL T.HASTINGS 8-4-64\r
14987                                 ;ROUTINE TO SET UP SAVE-GET DEVICE FILE-NAME TABLE\r
14988                                 ;CALLED BY COMMAND SETUP ROUTINES AND SAVE GET\r
14989 \r
14990                                 INTERNAL SGSET\r
14991                                 EXTERNAL CTEXT1,SETUSR,HOLD,MONJOB\r
14992                                 EXTERNAL CONMES,NOTENF,CPOPJ1\r
14993 \r
14994         000000' 261140  000002  SGSET:    PUSH PDP, TAC1        ;SAVE STARTTING ADDRESS(SAVJOB OR GETJOB)\r
14995         000001' 260140  000000*           PUSHJ PDP, CTEXT1     ;GET DEVICE NAME FROM COMMAND STRING\r
14996         000002' 322100  000012'           JUMPE TAC1,SGSET1\r
14997         000003' 202107  000017            MOVEM TAC1, 17(PROG)          ;SAVE IN UUO AC AREA\r
14998         000004' 260140  000001*           PUSHJ PDP, CTEXT1     ;GET FILE NAME FROM COMMAND STRING\r
14999         000005' 322100  000012'           JUMPE TAC1,SGSET1\r
15000         000006' 202107  000014            MOVEM TAC1, 14(PROG)\r
15001         000007' 262140  000002            POP PDP, TAC1         ;SCHEDULE MONITOR JOB\r
15002         000010' 260140  000000*           PUSHJ PDP, MONJOB\r
15003         000011' 254000  000000*           JRST CPOPJ1           ;SUPPRESS CR-LF PRINTED BY COMINI\r
15004 \r
15005         000012' 262140  000002  SGSET1:   POP PDP,TAC1\r
15006         000013' 254000  000000*           JRST NOTENF\r
15007 \r
15008 \fSAVGET- SAVE AND GET COMMANDS  MACRO 10 05:51 24-APR-78 PAGE 2\r
15009 SAVGET  MAC     24-APR-78 00:32         T.HASTINGS 8-4-64\r
15010 \r
15011 \r
15012 \r
15013                                 ;THIS JOB SAVES A JOB AREA ON RETRIEVABLE STORAGE\r
15014                                 ;THIS JOB RUNS IN EXEC. MODE AND CALLS IO ROUTINES DIRECTLY\r
15015                                 ;NO ATTTEMPT IS MADE TO SAVE STATUS OF IO DEVICES, JOBPDP, OR ACS\r
15016                                 ;IN FACT THE ONLY USEFUL THING WHICH MAY BE DONE WITH A JOB AREA\r
15017                                 ;AFTER IT HAS BEEN SAVED IS TO START EXECUTION OVER AT THE STARTING \r
15018                                 ;ADDRESS\r
15019 \r
15020                                 INTERNAL SAVJOB\r
15021                                 EXTERNAL USRPDP, OUT, USRREL,JOBPFI,JOB41,JOBS41,THSDAT\r
15022 \r
15023                         000012  T=BUFPNT   ;TEMPORARY ACS\r
15024                         000013  T1=BUFWRD\r
15025 \r
15026         000014' 265040  000076' SAVJOB:   JSP TAC,  SG1   ;SET UP ACS AND ASSIGN DEVICE\r
15027         000015' 200551  000000*           MOVE T1,JOB41(JDAT) ;SAVE USR UUOI HANDLING JSR\r
15028         000016' 202551  000000*           MOVEM T1,JOBS41(JDAT)\r
15029         000017' 200540  000000*           MOVE T1,THSDAT      ;SET DATE IN THIRD WORD\r
15030         000020' 202547  000016            MOVEM T1,16(PROG)\r
15031         000021' 260152  000004            PUSHJ PDP, DEN(T)   ;ENTER FILE NAME IN DIRECTORY\r
15032         000022' 254000  000031'           JRST SAV4           ;DIRECTORY FULL\r
15033         000023' 260140  000134'           PUSHJ PDP, SETLST   ;SET DUMP COMMAND LIST IN USER ARE\r
15034         000024' 260140  000000*           PUSHJ PDP, OUT      ;DO AN OUTPUT\r
15035         000025' 265040  000054'           JSP TAC,SG2\r
15036 \r
15037         000026' 452370  220246            ASCIZ /JOB SAVED\r
15038         000027' 406550  542032\r
15039         000030' 050000  000000  /\r
15040         000031' 265040  000054' SAV4:     JSP TAC,SG2\r
15041 \r
15042         000032' 422232  242606            ASCIZ /DIRECTORY FULL\r
15043         000033' 522372  254500\r
15044         000034' 432531  446032\r
15045         000035' 050000  000000  /\r
15046 \r
15047 \fSAVGET- SAVE AND GET COMMANDS  MACRO 10 05:51 24-APR-78 PAGE 3\r
15048 SAVGET  MAC     24-APR-78 00:32         T.HASTINGS 8-4-64\r
15049 \r
15050 \r
15051 \r
15052 \r
15053                                 ;THIS JOB GETS A JOB AREA FROM RETRIEVABLE DEVICE\r
15054                                 ;THIS JOB RUNS IN EXEC. MODE AND CALLS IO ROUTINES DIRECTLY\r
15055                                 ;NO ATTEMPT IS MADE TO RESTORE STATUS OF IO DEVICES, PC, OR ACS\r
15056                                 ;JOBPC IS SET TO STARTING ADDRESS OF JOB\r
15057                                 ;CORE MUST ALREADY HAVE BEEN ASSIGNED AND THE FOLLOWING LOC. SETUP IN \r
15058                                 ;JOB DATA AREA:\r
15059                                 ;JOBPDP, JOBREL\r
15060 \r
15061                                 INTERNAL GETJOB\r
15062                                 EXTERNAL USRREL, IN\r
15063 \r
15064         000036' 265040  000076' GETJOB:   JSP TAC, SG1  ;SETUP ACS AND ASSIGN DEVICE\r
15065         000037' 260152  000005            PUSHJ PDP, DLK(T)     ;LOOKUP FILE NAME IN DIRECTORY\r
15066         000040' 254000  000047'           JRST GET2             ;NOT FOUND\r
15067         000041' 260140  000134'           PUSHJ PDP, SETLST     ;SET DUMP COMMAND LIST IN USER ARE\r
15068         000042' 260140  000000*           PUSHJ PDP, IN         ;DO AN INPUT\r
15069         000043' 265040  000054'           JSP TAC,SG2\r
15070 \r
15071         000044' 452370  220246            ASCIZ /JOB SETUP\r
15072         000045' 426512  550032\r
15073         000046' 050000  000000  /\r
15074 \r
15075         000047' 265040  000054' GET2:     JSP TAC,SG2\r
15076 \r
15077         000050' 432231  442500            ASCIZ /FILE NOT FOUND\r
15078         000051' 472372  420214\r
15079         000052' 476531  642032\r
15080         000053' 050000  000000  /\r
15081 \r
15082 \fSAVGET- SAVE AND GET COMMANDS  MACRO 10 05:51 24-APR-78 PAGE 4\r
15083 SAVGET  MAC     24-APR-78 00:32         T.HASTINGS 8-4-64\r
15084 \r
15085 \r
15086 \r
15087                                 ;ROUTINE TERMINATES SAVJOB AND GETJOB\r
15088                                 ;CLOSE, RELEASE, CHECK FOR ERRORS AND PRINT MESSAGE AND STOP JOB\r
15089                                 ;ADDRESS OF MESSAGE IN AC TAC\r
15090 \r
15091                                 EXTERNAL RELEA2, SETUSR, TTYFNU, WAIT1,JOBS41,JOB41\r
15092 \r
15093                         740000  ERRORS=1B18+1B19+1B20+1B21      ;ERRORS CHECKED FOR IN IO TRANSMISSION\r
15094 \r
15095         000054' 260140  000000* SG2:      PUSHJ PDP, WAIT1\r
15096         000055' 602000  740000            TRNE IOS, ERRORS      ;ANY ERRORS?\r
15097         000056' 254000  000070'           JRST SG2A             ;AN ERROR\r
15098         000057' 261140  000001            PUSH PDP,TAC          ;SAVE PRINT ADDRESS\r
15099         000060' 260140  000000*           PUSHJ PDP,RELEA2      ;RELEASE DEVICE\r
15100         000061' 260140  000000*           PUSHJ PDP,SETUSR      ;SETUP COPY OF JOB AREA STORED IN SYSTE\r
15101         000062' 200051  000016*           MOVE TAC,JOBS41(JDAT)\r
15102                                           ;RESTORE USER LOCATION 41\r
15103         000063' 202051  000015*           MOVEM TAC,JOB41(JDAT)\r
15104         000064' 260140  000000* SG4:      PUSHJ PDP,TTYFNU      ;FIND TELETYPE\r
15105         000065' 262140  000001            POP PDP,TAC           ;RESTORE PRINT MESSAGE ADDRESS\r
15106         000066' 260140  000000* SG5:      PUSHJ PDP,CONMES\r
15107         000067' 254000  000000*           JRST HOLD\r
15108 \r
15109         000070' 265040  000064' SG2A:     JSP TAC,SG4\r
15110 \r
15111         000071' 522450  147246            ASCIZ /TRANSMISSION ERROR\r
15112         000072' 466232  351622\r
15113         000073' 476344  042644\r
15114         000074' 512372  206424  /\r
15115         000075' 000000  000000\r
15116 \r
15117 \fSAVGET- SAVE AND GET COMMANDS  MACRO 10 05:51 24-APR-78 PAGE 5\r
15118 SAVGET  MAC     24-APR-78 00:32         T.HASTINGS 8-4-64\r
15119 \r
15120 \r
15121 \r
15122                                 ;ROUTINE CALED BY SAVJOB AND GETJOBTO SETUP ACS\r
15123                                 ;AND ASSIGN DEVICE\r
15124                                 ;CALL     JSP TAC, SG1\r
15125 \r
15126                                 EXTERNAL JOBDAT, JOB, UINIT1, WAIT1, JOBADR, RESET\r
15127 \r
15128         000076' 505140  777763  SG1:      HRLI PDP, -15         ;SET UP PD LIST IN UUO ACS\r
15129         000077' 541147  777777            HRRI PDP, -1(PROG)\r
15130         000100' 261140  000001            PUSH PDP, TAC         ;SAVE RETURN ADDRESS\r
15131         000101' 260140  000000*           PUSHJ PDP, RESET      ;DO RESET UUO\r
15132         000102' 201600  000017            MOVEI UUO, D          ;DUMP MODE\r
15133         000103' 200047  000017            MOVE TAC, 17(PROG)    ;DEVICE NAME\r
15134         000104' 201340  000000            MOVEI PROG, 0         ;PRETEND RELOC. IS 0\r
15135         000105' 260140  000000*           PUSHJ PDP, UINIT1     ;ASSIGN DEVICE\r
15136         000106' 000000  000000            0                     ;IBF,OBF\r
15137         000107' 254000  000124'           JRST SGERRA           ;NOT AVAILABLE\r
15138         000110' 200006  000002            MOVE IOS, DEVIOS(DEVDAT)      ;SETUP IOS\r
15139         000111' 201600  000014            MOVEI UUO,14          ;REL.ADDRESS OF 4 WORD DIRECTORY ENTRY\r
15140         000112' 200340  000000*           MOVE PROG, JOBADR     ;RESTORE PROG\r
15141         000113' 205500  445560            MOVSI T,445560        ;SET FILE EXTENSION TO DMP\r
15142         000114' 202507  000015            MOVEM T, 15(PROG)\r
15143         000115' 402007  000016            SETZM 16(PROG)\r
15144         000116' 210540  000000*           MOVN T1,USRREL        ;SET NEG. WORD COUNT FROM JOBREL\r
15145         000117' 271540  000000*           ADDI T1,JOBPFI        ;DONT DUMP LOC. 0-JOBPFI\r
15146         000120' 505540  000117*           HRLI T1,JOBPFI\r
15147         000121' 206547  000017            MOVSM T1,17(PROG)     ;STORE IN 4TH WORD OF DICECTORY\r
15148         000122' 200506  000003            MOVE T, DEVSER(DEVDAT)        ;SETUP FOR DOING ENTRY OF LOO\r
15149         000123' 263140  000000            POPJ PDP,\r
15150 \r
15151         000124' 201040  000127' SGERRA:   MOVEI TAC,SGNAVL\r
15152         000125' 261140  000001            PUSH PDP,TAC\r
15153         000126' 254000  000066'           JRST SG5\r
15154 \r
15155         000127' 422132  644606  SGNAVL:   ASCIZ /DEVICE NOT AVAILABLE\r
15156         000130' 425011  647650\r
15157         000131' 202032  640622\r
15158         000132' 462030  246212\r
15159         000133' 064240  000000  /\r
15160 \r
15161 \fSAVGET- SAVE AND GET COMMANDS  MACRO 10 05:51 24-APR-78 PAGE 6\r
15162 SAVGET  MAC     24-APR-78 00:32         T.HASTINGS 8-4-64\r
15163 \r
15164 \r
15165 \r
15166 \r
15167                                 ;ROUTINE TO SET DUMP MODE COMMAND LIST IN USER AREA\r
15168 \r
15169                                 EXTERNAL ANYRDX,RELEA2,TTYFNU\r
15170 \r
15171         000134' 200507  000017  SETLST:   MOVE T, 17(PROG)      ;4TH WORD FROM DIRECTORY\r
15172         000135' 202507  000016            MOVEM T, 16(PROG)\r
15173         000136' 402007  000017            SETZM 17(PROG)\r
15174         000137' 574500  000012            HLRE T, T\r
15175         000140' 270500  000116*           ADD T, USRREL\r
15176         000141' 321500  000144'           JUMPL T, NOROOM\r
15177         000142' 201600  000016            MOVEI UUO,16          ;DUMP MODE\r
15178         000143' 263140  000000            POPJ PDP,\r
15179 \r
15180         000144' 260140  000060* NOROOM:   PUSHJ PDP,RELEA2\r
15181         000145' 260140  000064*           PUSHJ PDP,TTYFNU\r
15182         000146' 255000  000000            JFCL\r
15183         000147' 574047  000016            HLRE TAC, 16(PROG)  ;PRINT NO. OF BLOCKS NEEDED\r
15184         000150' 213000  000001            MOVNS TAC\r
15185         000151' 242040  777766            LSH TAC, -12\r
15186         000152' 271040  000001            ADDI TAC, 1\r
15187         000153' 201100  000012            MOVEI TAC1, 12\r
15188         000154' 260140  000000*           PUSHJ PDP, ANYRDX\r
15189         000155' 265040  000066'           JSP TAC,SG5\r
15190 \r
15191         000156' 201431  320204            ASCIZ / 1K BLOCKS OF CORE NEEDED\r
15192         000157' 462370  345646\r
15193         000160' 202370  620206\r
15194         000161' 476450  520234\r
15195         000162' 426130  442610\r
15196         000163' 064240  000000  /\r
15197                                           END,\r
15198 \r
15199 NO ERRORS DETECTED\r
15200 \r
15201 PROGRAM BREAK IS 000164\r
15202 \r
15203 9K CORE USED\r
15204 \r
15205 \fSAVGET- SAVE AND GET COMMANDS  MACRO 10 05:51 24-APR-78 PAGE 7\r
15206 SAVGET  MAC     24-APR-78 00:32         SYMBOL TABLE\r
15207 \r
15208 A               000000  INT\r
15209 AC1             000015  INT\r
15210 AC2             000016  INT\r
15211 AC3             000017  INT\r
15212 AL              000001  INT\r
15213 ANYRDX          000154' EXT\r
15214 ASSCON          400000  INT\r
15215 ASSPRG          200000  INT\r
15216 B               000014  INT\r
15217 BUFPNT          000012  INT\r
15218 BUFWRD          000013  INT\r
15219 CLOSB           002000  INT\r
15220 CLSIN           000002  INT\r
15221 CLSOUT          000001  INT\r
15222 CONMES          000066' EXT\r
15223 CPOPJ1          000011' EXT\r
15224 CTEXT1          000004' EXT\r
15225 D               000017  INT\r
15226 DAT             000005  INT\r
15227 DCL             000001  INT\r
15228 DCW             020000  INT\r
15229 DDI             000007  INT\r
15230 DDO             000006  INT\r
15231 DDTMEM          000037  INT\r
15232 DDTSYM          000036  INT\r
15233 DEN             000004  INT\r
15234 DEVADR          000007  INT\r
15235 DEVBUF          000006  INT\r
15236 DEVCHR          000001  INT\r
15237 DEVCTR          000011  INT\r
15238 DEVDAT          000006  INT\r
15239 DEVIAD          000007  INT\r
15240 DEVIOS          000002  INT\r
15241 DEVLOG          000005  INT\r
15242 DEVMOD          000004  INT\r
15243 DEVNAM          000000  INT\r
15244 DEVOAD          000010  INT\r
15245 DEVPTR          000010  INT\r
15246 DEVSER          000003  INT\r
15247 DGF             000012  INT\r
15248 DIN             000003  INT\r
15249 DLK             000005  INT\r
15250 DOU             000002  INT\r
15251 DR              000016  INT\r
15252 DRL             000000  INT\r
15253 DSI             000011  INT\r
15254 DSO             000010  INT\r
15255 DTW             040000  INT\r
15256 DVAVAL          000040  INT\r
15257 DVCDR           100000  INT\r
15258 DVDIR           000004  INT\r
15259 DVDIRI          400000  INT\r
15260 \r
15261 \r
15262 \fSAVGET- SAVE AND GET COMMANDS  MACRO 10 05:51 24-APR-78 PAGE 7-1\r
15263 SAVGET  MAC     24-APR-78 00:32         SYMBOL TABLE\r
15264 \r
15265 DVIN            000002  INT\r
15266 DVLPT           040000  INT\r
15267 DVMTA           000020  INT\r
15268 DVOUT           000001  INT\r
15269 DVTTY           000010  INT\r
15270 ENTRB           020000  INT\r
15271 ERRORS          740000  \r
15272 GET2            000047' \r
15273 GETJOB          000036' INT\r
15274 HOLD            000067' EXT\r
15275 I               000010  INT\r
15276 IB              000013  INT\r
15277 IBUFB           200000  INT\r
15278 IN              000042' EXT\r
15279 INITB           400000  INT\r
15280 INPB            010000  INT\r
15281 IO              000020  INT\r
15282 IOACT           010000  INT\r
15283 IOBEG           000002  INT\r
15284 IOBKTL          040000  INT\r
15285 IOCON           000040  INT\r
15286 IODEND          020000  INT\r
15287 IODERR          200000  INT\r
15288 IODISC          400000  INT\r
15289 IODONE          400000  INT\r
15290 IODTER          100000  INT\r
15291 IOEND           000040  INT\r
15292 IOFST           000004  INT\r
15293 IOIMPM          400000  INT\r
15294 IONRCK          000100  INT\r
15295 IORDEL          000100  INT\r
15296 IORET           000020  INT\r
15297 IOS             000000  INT\r
15298 IOSTRT          000010  INT\r
15299 IOUSE           400000  INT\r
15300 IOW             000001  INT\r
15301 IOWC            000020  INT\r
15302 IOWS            400000  INT\r
15303 ITEM            000004  INT\r
15304 JBFADR          000000  INT\r
15305 JBFCTR          000002  INT\r
15306 JBFPTR          000001  INT\r
15307 JBUF            000005  INT\r
15308 JDAT            000011  INT\r
15309 JERR            002000  INT\r
15310 JIOW            100000  INT\r
15311 JNA             004000  INT\r
15312 JOB             000000  EXT\r
15313 JOB41           000063' EXT\r
15314 JOBADR          000112' EXT\r
15315 JOBDAT          000000  EXT\r
15316 JOBPFI          000120' EXT\r
15317 JOBS41          000062' EXT\r
15318 \r
15319 \fSAVGET- SAVE AND GET COMMANDS  MACRO 10 05:51 24-APR-78 PAGE 7-2\r
15320 SAVGET  MAC     24-APR-78 00:32         SYMBOL TABLE\r
15321 \r
15322 LOOKB           040000  INT\r
15323 MONJOB          000010' EXT\r
15324 MTW             010000  INT\r
15325 NOROOM          000144' \r
15326 NOTENF          000013' EXT\r
15327 OBUFB           100000  INT\r
15328 OUT             000024' EXT\r
15329 OUTPB           004000  INT\r
15330 PDP             000003  INT\r
15331 PICHN           000100  INT\r
15332 PROG            000007  INT\r
15333 RELEA2          000144' EXT\r
15334 RESET           000101' EXT\r
15335 RUN             200000  INT\r
15336 RUNABL          204000  INT\r
15337 SAV4            000031' \r
15338 SAVJOB          000014' INT\r
15339 SETLST          000134' \r
15340 SETUSR          000061' EXT\r
15341 SG1             000076' \r
15342 SG2             000054' \r
15343 SG2A            000070' \r
15344 SG4             000064' \r
15345 SG5             000066' \r
15346 SGERRA          000124' \r
15347 SGNAVL          000127' \r
15348 SGSET           000000' INT\r
15349 SGSET1          000012' \r
15350 T               000012  \r
15351 T1              000013  \r
15352 TAC             000001  INT\r
15353 TAC1            000002  INT\r
15354 TEM             000010  INT\r
15355 THSDAT          000017' EXT\r
15356 TTYATC          020000  INT\r
15357 TTYFNU          000145' EXT\r
15358 TTYUSE          010000  INT\r
15359 UINIT1          000105' EXT\r
15360 USRMOD          010000  INT\r
15361 USRPDP          000000  EXT\r
15362 USRREL          000140' EXT\r
15363 UUO             000014  INT\r
15364 WAIT1           000054' EXT\r
15365 \f   SSSSSSSSSSSS         CCCCCCCCCCCC      NNN         NNN         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
15366    SSSSSSSSSSSS         CCCCCCCCCCCC      NNN         NNN         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
15367    SSSSSSSSSSSS         CCCCCCCCCCCC      NNN         NNN         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
15368 SSS                  CCC                  NNN         NNN      SSS                  EEE                  RRR         RRR\r
15369 SSS                  CCC                  NNN         NNN      SSS                  EEE                  RRR         RRR\r
15370 SSS                  CCC                  NNN         NNN      SSS                  EEE                  RRR         RRR\r
15371 SSS                  CCC                  NNNNNN      NNN      SSS                  EEE                  RRR         RRR\r
15372 SSS                  CCC                  NNNNNN      NNN      SSS                  EEE                  RRR         RRR\r
15373 SSS                  CCC                  NNNNNN      NNN      SSS                  EEE                  RRR         RRR\r
15374    SSSSSSSSS         CCC                  NNN   NNN   NNN         SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
15375    SSSSSSSSS         CCC                  NNN   NNN   NNN         SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
15376    SSSSSSSSS         CCC                  NNN   NNN   NNN         SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
15377             SSS      CCC                  NNN      NNNNNN                  SSS      EEE                  RRR   RRR      \r
15378             SSS      CCC                  NNN      NNNNNN                  SSS      EEE                  RRR   RRR      \r
15379             SSS      CCC                  NNN      NNNNNN                  SSS      EEE                  RRR   RRR      \r
15380             SSS      CCC                  NNN         NNN                  SSS      EEE                  RRR      RRR   \r
15381             SSS      CCC                  NNN         NNN                  SSS      EEE                  RRR      RRR   \r
15382             SSS      CCC                  NNN         NNN                  SSS      EEE                  RRR      RRR   \r
15383 SSSSSSSSSSSS            CCCCCCCCCCCC      NNN         NNN      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
15384 SSSSSSSSSSSS            CCCCCCCCCCCC      NNN         NNN      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
15385 SSSSSSSSSSSS            CCCCCCCCCCCC      NNN         NNN      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
15386 \r
15387 \r
15388 \r
15389 \r
15390 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
15391 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
15392 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
15393 LLL                  SSS                        TTT                                                                     \r
15394 LLL                  SSS                        TTT                                                                     \r
15395 LLL                  SSS                        TTT                                                                     \r
15396 LLL                  SSS                        TTT                                                                     \r
15397 LLL                  SSS                        TTT                                                                     \r
15398 LLL                  SSS                        TTT                                                                     \r
15399 LLL                     SSSSSSSSS               TTT                                                                     \r
15400 LLL                     SSSSSSSSS               TTT                                                                     \r
15401 LLL                     SSSSSSSSS               TTT                                                                     \r
15402 LLL                              SSS            TTT                                                                     \r
15403 LLL                              SSS            TTT                                                                     \r
15404 LLL                              SSS            TTT                                                                     \r
15405 LLL                              SSS            TTT                                                                     \r
15406 LLL                              SSS            TTT                                                                     \r
15407 LLL                              SSS            TTT                                                                     \r
15408 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
15409 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
15410 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
15411 \r
15412 \r
15413 \r
15414 \r
15415 Request created: 24-April-1978  05:53:58\r
15416 File: DSKB0 :SCNSER.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:37\r
15417 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1637 \r
15418 File will be deleted after printing\r
15419 \f\r
15420 SCNSER - SCANNER SERVICE        MACRO 10 05:51 24-APR-78 PAGE 1\r
15421 S       MAC     24-APR-78 21:40         TOM EGGERS     8-9-65\r
15422 \r
15423                                         XLIST\r
15424                                        LIST\r
15425                                 TITLE SCNSER - SCANNER SERVICE\r
15426                                 SUBTTL TOM EGGERS     8-9-65\r
15427                                 EXTERN SETIOD, ADVBFE, ADVBFF, JBTADR, CLRBYT,STTYB1\r
15428                                 EXTERN SCNCHN, COMCNT, SCNSAV, SCNRET,STOP1, DEVLST,TTYTAB\r
15429                                 INTERN SCNINI\r
15430 \r
15431                                 ;TTYPTR=DEVOAD+1\r
15432                                 ;TTYCTR=TTYPTR+1\r
15433                                 ;TTYBUF=TTYCTR+1\r
15434                         000200  PION=200   ;TURN PI ON BIT\r
15435                         000400  PIOFF=400               ;TURN PI OFF BIT\r
15436                                 ;SCNDDB                 ;NUMBER OF DEVICE DATA BLOCKS\r
15437                                 ;STTYBF7   ;SIZE OF TELETYPE BUFFER\r
15438                         000010  CHREC=TEM               ;AC FOR CHARACTER\r
15439                         000004  VPOS=ITEM               ;VERITICAL POSITION OF TELETYPE\r
15440                         000005  HPOS=VPOS+1             ;               HORIZONTAL POS.\r
15441                         000006  DDB=DEVDAT\r
15442                         000002  LINE=TAC1               ;AC THAT HOLDS SCANNER LINE NUMBER\r
15443                         040000  SYNC=40000              ;1 WHEN A BUFFER IS READY TO TRANSFER\r
15444                         010000  DETH=10000              ;1 IF TTY DETACHED AND OUTPUT WAITING\r
15445                         020000  NIO=20000               ;STOP ALL IO\r
15446                         000010  TOUT=IO                 ;OUTPUT IN PROGRESS\r
15447                         040000  NCERR=IOBKTL            ;CHARACTER LOST ON TYPE IN\r
15448                         000177  DCHAR=177               ;DELETE CHARACTER\r
15449                         100000  ECHOF=IODTER            ;ECHO FAILURE OCCURED\r
15450                         001000  TPMON=1000              ;IO IS FROM MONITOR\r
15451                         002000  SP=2000                 ;SPECIAL TELETYPE CHAR. IS BEING INTERPRETED\r
15452                         100000  DDTM=100000             ;DDT MODE\r
15453                         004000  T35=4000   ;TELETYPE HAS TAB,FF,VT,ETC. MECHANISM\r
15454                         000100  USRB=100   ;TURN OFF TPMON WHEN OUTPUT IS FINISHED      \r
15455                         020000  USRBC=20000             ;RT HALF MONITOR IOS WORD. REMAIN IN MONITOR MODE\r
15456                                 INTERNAL SCNINT,CTYINT,TTYUSR,TTYURC\r
15457                                 ENTRY TTYDSP\r
15458                                 EXTERN TSCNLN,TCONLN,MTTYLN,CPOPJ1\r
15459                                 EXTERN CPOPJ\r
15460                                 EXTERN FSNCHN,SCNCHL,OUT,PUUOAC,PJOBN,PUNIT,PIOMOD\r
15461                                 INTERNAL DDTGT,DDTRL,DDTIN,DDTOUT,TTYFND,TTYSTR,TTYFNU\r
15462                                 EXTERNAL WAIT1,WSYNC,CLRBYT,JOB,CLDS,CLEN,TTYBFE,TTYBM1\r
15463                                 EXTERNAL UXIT,ADRCK,TTYSAV,DEVPHY,DEVOPR\r
15464                                 EXTERNAL TTYCTR,TTYPTR,TTYBUF,TTYLST,MLTTYL,SETRUN,STTYBF,TTY0DB\r
15465 \r
15466         000000' 270706  000007  PHPOS:  POINT 7,DEVIAD(DEVDAT),12       ;POINTER HORIZONTAL POSITION\r
15467         000001' 270506  000010  PVPOS:  POINT 5,DEVOAD(DEVDAT),12       ;POINTER VERITICAL POSITION\r
15468         000002' 340706  000010  PLASTC: POINT 7,DEVOAD(DEVDAT),7        ;POINTER TO LAST CHARACTER OU\r
15469         000003' 360606  000007  PSCHAR: POINT 6,DEVIAD(DEVDAT),5        ;POINTER TO ^C OR ^O\r
15470 \r
15471         000004' 321102  000000* TPCJOBN:        POINT 9,TTYTAB(LINE),9  ;CONSOLE NUMBER FOR TTY\r
15472 \r
15473 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 2\r
15474 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
15475 \r
15476 \r
15477         000005' 201040  100000  SCNINI: MOVEI TAC,100000\r
15478         000006' 712200  000000          CONO TTY,0              ;SHUT DOWN CONSOLE TTY\r
15479         000007' 730200  004010          CONO DCSA,4010          ;RELEASE XMITTER,RECEIVER\r
15480         000010' 730300  001000          CONSZ DCSA, 1000\r
15481         000011' 730200  004000          CONO DCSA, 4000\r
15482         000012' 730300  000010          CONSZ DCSA, 10\r
15483         000013' 730440  000002          DATAI DCSB, TAC1\r
15484         000014' 367040  000010'         SOJG TAC,.-4\r
15485         000015' 201040  000000*         MOVEI TAC,SCNCHN\r
15486         000016' 712201  003600          CONO TTY,3600(TAC)      ;CLEAR TTY, ASSIGN CHANNEL\r
15487         000017' 730200  000000*         CONO DCSA,FSNCHN        ;ASSIGN INTERRUPT CHANNELS\r
15488         000020' 205040  000000*         MOVSI TAC,MLTTYL        ;NO. OF TTY DEV. DATA BLOCKS\r
15489         000021' 205240  010000          MOVSI DAT,TTYUSE        ;TTY DDB IN USE BIT\r
15490         000022' 205000  001004          MOVSI IOS,TPMON+IOFST           ;VIRGIN STATUS\r
15491         000023' 201300  000000*         MOVEI DDB,TTYLST        ;FIRST TTY DDB ADDRESS\r
15492         000024' 616246  000004  SCN1:   TDNN DAT,DEVMOD(DDB)            ;IS THIS TTY DDB IN USE?\r
15493         000025' 402006  000000          SETZM DEVNAM(DDB)       ;NO. SET NAME TO 0\r
15494         000026' 202006  000002          MOVEM IOS,DEVIOS(DDB)\r
15495         000027' 402006  000000*         SETZM TTYSAV(DDB)       ;CLEAR USER MODE TTY STATUS WORD\r
15496         000030' 412246  000004          ANDCAM DAT,DEVMOD(DDB)          ;CLEAR USE BIT\r
15497         000031' 554306  000003          HLRZ DDB,DEVSER(DDB)            ;GET NEXT TTY DDB\r
15498         000032' 253040  000024'         AOBJN TAC,SCN1\r
15499         000033' 205040  000000*         MOVSI TAC,MTTYLN        ;SET DDB USE BITS FROM TRANSLATOR TABLE\r
15500         000034' 205100  010000          MOVSI TAC1,TTYUSE\r
15501         000035' 332301  000004* SCN2:   SKIPE DDB,TTYTAB(TAC)\r
15502         000036' 436106  000004          IORM TAC1,DEVMOD(DDB)\r
15503         000037' 253040  000035'         AOBJN TAC,SCN2\r
15504         000040' 263140  000000          POPJ PDP,\r
15505 \r
15506 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 3\r
15507 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
15508 \r
15509 \r
15510                                 ;ROUTINE TO RETURN TTY TO VIRGIN STATE\r
15511                                 ;CALL:    MOVE DDB, ADDRESS OF DEVICE DATA BLOCK\r
15512                                 ;         PUSHJ PDP,TTYKIL\r
15513 \r
15514                                 INTERNAL TTYKIL\r
15515 \r
15516         000041' 200040  001142' TTYKIL: MOVE TAC,[XWD TTYUSE+TTYATC,ASSCON+ASSPRG]\r
15517         000042' 412046  000004          ANDCAM TAC,DEVMOD(DEVDAT)       ;CLEAR DDB USE BIT\r
15518         000043' 402006  000000          SETZM DEVNAM(DEVDAT)            ;CLEAR PHYSICAL NAME\r
15519         000044' 402006  000005          SETZM DEVLOG(DEVDAT)            ;CLEAR LOGICAL NAME\r
15520         000045' 254000  000052'         JRST TTYDT1\r
15521 \r
15522                                 ;ROUTINE TO DETACH TTY FROM JOB\r
15523                                 ;CALL:    MOVE DEVDAT,ADDRESS OF TTY DDB TO BE DETACHED\r
15524 \r
15525                                 INTERNAL TTYDET\r
15526 \r
15527         000046' 200046  000004  TTYDET: MOVE TAC,DEVMOD(DEVDAT)\r
15528         000047' 627040  020000          TLZN TAC,TTYATC      ;WAS TTY ATTACHED?\r
15529         000050' 254000  000041'         JRST TTYKIL          ;NO, SO RETURN DDB TO POOL\r
15530         000051' 202046  000004          MOVEM TAC,DEVMOD(DEVDAT)        ;YES, JUST CLEAR ATTACH BIT\r
15531         000052' 135100  000000* TTYDT1: LDB LINE,PUNIT\r
15532         000053' 414002  000035*         SETM TTYTAB(LINE)\r
15533         000054' 263140  000000          POPJ PDP,\r
15534 \r
15535 \r
15536         000055' 000000  000000  CCHAR:  0          ;HOLDS CHARACTER FOR CONSOLE TELETYPE\r
15537                                 ;CONTROL C - GO BACK TO MONITOR\r
15538                                 ;CONTROL 0 - SUPPRESS OUTPUT\r
15539 \r
15540         000056' 334040  001143' TTYURC: SKIPA TAC,[XWD USRB,USRBC]      ;START JOB BUT REMAIN IN MON1\r
15541         000057' 205040  000100  TTYUSR: MOVSI TAC,USRB          ;CAUSE TTY TO GO INTO\r
15542         000060' 436046  000002          IORM TAC,DEVIOS(DEVDAT)         ;USER MODE WHEN\r
15543         000061' 263140  000000          POPJ PDP, ;OUTPUT FINISHES\r
15544 \r
15545                                 INTERNAL TTYSET\r
15546 \r
15547         000062' 205040  000004  TTYSET: MOVSI TAC,IOFST         ;INITIALIZE USER TTY IOS WORD\r
15548         000063' 202046  000027*         MOVEM TAC,TTYSAV(DEVDAT)        ;FOR START COMMAND\r
15549         000064' 254000  000057'         JRST TTYUSR\r
15550 \r
15551 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 4\r
15552 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
15553 \r
15554 \r
15555 \r
15556                                 ;ROUTINE TO ATTACH TTY TO A JOB\r
15557                                 ;CALL:    MOVE DEVDAT,ADDRESS OF TTY DEVICE DATA BLOCK\r
15558                                 ;         MOVE ITEM,JOB NUMBER\r
15559                                 ;         PUSHJ PDP,TTYATT\r
15560                                 ;         ERROR     ;DEVDAT=DDB ADR OF OTHER TTY\r
15561                                                     ;IF ANOTHER ALREADY IS ATTACHED.\r
15562                                 ;         OK RETURN ;DEVDAT, DAT AND TRANSLATOR TABLE SET\r
15563 \r
15564                                 INTERNAL TTYATT\r
15565 \r
15566         000065' 135100  000052* TTYATT: LDB LINE,PUNIT  ;LINE NO. OF THIS TTY\r
15567         000066' 201300  000023*         MOVEI DEVDAT,TTYLST ;SEARCH FOR DDB THAT IS ATTACHED\r
15568         000067' 334000  000000          SKIPA\r
15569         000070' 554306  000003  TTYAT2: HLRZ DEVDAT,DEVSER(DEVDAT)\r
15570         000071' 322300  000115'         JUMPE DEVDAT,TTYAT4\r
15571         000072' 135040  000000*         LDB TAC,PJOBN       ;JOB NUMBER\r
15572         000073' 500046  000004          HLL TAC,DEVMOD(DEVDAT)          ;ATTACH AND USE BITS\r
15573         000074' 607040  000010          TLNN TAC,DVTTY       ;IS THIS STILL A TTY DDB?\r
15574         000075' 254000  000115'         JRST TTYAT4          ;NO, THIS MUST BE IJOB\r
15575         000076' 306201  000000          CAIN ITEM,(TAC)      ;JOB NUMBER THE ONE TO ATTACH?\r
15576         000077' 607040  010000          TLNN TAC,TTYUSE      ;YES, IS IT THE DETACHED ONE?\r
15577         000100' 254000  000070'         JRST TTYAT2          ;NO, KEEP LOOKING\r
15578         000101' 603040  020000          TLNE TAC,TTYATC         ;IS SOME TTY ALREADY ATTACHED?\r
15579         000102' 263140  000000          POPJ PDP,               ;YES, ERROR RETURN WITH DEVDAT SET\r
15580         000103' 261140  000006          PUSH PDP,DEVDAT         ;SAVE NEW DDB ADDRESS\r
15581         000104' 200302  000053*         MOVE DEVDAT,TTYTAB(LINE)\r
15582         000105' 200046  000004          MOVE TAC,DEVMOD(DEVDAT)\r
15583         000106' 260140  000046'         PUSHJ PDP,TTYDET        ;DETACH DDB FROM TTY\r
15584         000107' 262140  000006          POP PDP,DEVDAT\r
15585         000110' 137200  000004' TTYAT3: DPB ITEM,TPCJOBN        ;STORE ATTACHED JOB NO.\r
15586         000111' 137200  000072*         DPB ITEM,PJOBN          ;SET JOB NUMBER\r
15587         000112' 205040  020000          MOVSI TAC,TTYATC        ;SET ATTACHED BIT\r
15588         000113' 260140  000247'         PUSHJ PDP,TTYDAT        ;SETUP OUTPUT BYTE\r
15589         000114' 254000  000410'         JRST SCNIN              ;GO INITIALIZE DDB\r
15590 \r
15591         000115' 200302  000104* TTYAT4: MOVE DEVDAT,TTYTAB(LINE)        ;RESTORE OLD DDB ADDRESS\r
15592         000116' 254000  000110'         JRST TTYAT3\r
15593 \r
15594 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 5\r
15595 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
15596 \r
15597 \r
15598 \r
15599                                 ;ROUTINE TO SETUP AC DEVDAT TO ADDRESS OF TTY WHICH HAS TYPED A COMMA\r
15600                                 ;AC DAT TO BYTE POINTER TO OUTPUT BUFFER FOR COMMAND MESSAGE\r
15601                                 ;AC TAC TO BYTE POINTER TO COMMAND STRING\r
15602                                 ;AC ITEM TO JOB NUNMBER TTY IS ATTACHED TO\r
15603                                 ;CALL:     PUSHJ PDP,TTYCOM\r
15604                                 ;          NONE FOUND\r
15605                                 ;          ACS SETUP\r
15606 \r
15607                                 INTERNAL TTYCOM\r
15608 \r
15609         000117' 205100  000033* TTYCOM: MOVSI LINE,MTTYLN\r
15610         000120' 331002  000115*         SKIPL TTYTAB(LINE)\r
15611         000121' 253100  000120'         AOBJN LINE,.-1\r
15612         000122' 327100  000000*         JUMPG LINE,CPOPJ\r
15613         000123' 205300  400000          MOVSI DEVDAT,400000\r
15614         000124' 413302  000120*         ANDCAB DEVDAT,TTYTAB(LINE)\r
15615         000125' 205240  440700          MOVSI DAT,440700\r
15616         000126' 271246  000000*         ADDI DAT,TTYBUF(DEVDAT)\r
15617         000127' 200040  000005          MOVE TAC,DAT\r
15618 \r
15619                                 ;FALL INTO TTYJOB\r
15620 \r
15621                                 ;ROUTINE TO RETURN IN AC ITEM JOB NUMBER WHICH TTY IS ATTACHED TO\r
15622                                 ;CALL:    MOVE DEVDAT,ADDRESS OF TTY DEVICE DATA BLOCK\r
15623 \r
15624                                 INTERNAL TTYJOB\r
15625 \r
15626         000130' 135100  000065* TTYJOB: LDB LINE, PUNIT\r
15627         000131' 135200  000004'         LDB ITEM,TPCJOBN\r
15628         000132' 254000  000000*         JRST CPOPJ1\r
15629 \r
15630 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 6\r
15631 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
15632 \r
15633 \r
15634 \r
15635                                 ;TELETYPE SCANNER UUO ROUTINES\r
15636                                 ;FOR DDT\r
15637 \r
15638                                 ;DDTGT WAITS FOR OUTPUT TO COMPLETE THEN PUTS\r
15639                                 ;TELETYPE INTO DDT MODE\r
15640 \r
15641         000133' 260140  000230' DDTGT:  PUSHJ PDP,TTYSR1        ;FIND DEVICE DATA BLOCK\r
15642         000134' 200006  000002          MOVE IOS,DEVIOS(DEVDAT)\r
15643         000135' 607000  100000          TLNN IOS,DDTM\r
15644         000136' 607000  000020          TLNN IOS,IO             ;OUTPUT IN PROGRESS\r
15645         000137' 254000  000141'         JRST DDTGT2             ;NO\r
15646                                 ;       PUSHJ PDP,OUT           ;MAKE SURE OUTPUT STARTED\r
15647         000140' 260140  000000*         PUSHJ PDP,WAIT1         ;WAIT FOR OUTPUT TO FINISH\r
15648         000141' 661000  100000  DDTGT2: TLO IOS,DDTM            ;SET DDT MODE BIT\r
15649         000142' 202006  000002          MOVEM IOS,DEVIOS(DEVDAT)\r
15650         000143' 254000  000000*         JRST UXIT\r
15651 \r
15652                                 ;RELEASE TELETYPE FROM DDT MODE\r
15653                                 ;MAKE SURE OUPUT IS FINISHED FIRST\r
15654 \r
15655         000144' 260140  000230' DDTRL:  PUSHJ PDP,TTYSR1        ;FIND DEVICE DATA BLOCK\r
15656         000145' 200006  000002          MOVE IOS,DEVIOS(DEVDAT)\r
15657         000146' 603000  000020          TLNE IOS,IO             ;OUTPUT IN PROGRESS?\r
15658         000147' 260140  000140*         PUSHJ PDP,WAIT1         ;YES, WAIT\r
15659         000150' 205000  140000          MOVSI IOS,DDTM+SYNC\r
15660         000151' 412006  000002          ANDCAM IOS,DEVIOS(DEVDAT)       ;TURN OFF DDT BIT\r
15661         000152' 254000  000143*         JRST UXIT\r
15662 \r
15663 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 7\r
15664 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
15665 \r
15666 \r
15667 \r
15668                                 ;INPUT TO DDT\r
15669                                 ;CALL AC,[SIXBIT /DDTIN/]     AC CONTAINS POINTER TO BUFFER AREA\r
15670                                 ;BUFFER AREA MUST BE 21 WORDS LONG\r
15671 \r
15672         000153' 260140  000230' DDTIN:  PUSHJ PDP,TTYSR1                ;SET UP DEVDAT\r
15673         000154' 200006  000002          MOVE IOS,DEVIOS(DEVDAT)\r
15674         000155' 603000  000020          TLNE IOS,IO                     ;OUTPUT IN PROGRESS\r
15675         000156' 260140  000147*         PUSHJ PDP,WAIT1                 ;YES, WAIT\r
15676         000157' 200006  000002  DDTIN2: MOVE IOS,DEVIOS(DEVDAT)\r
15677         000160' 603000  000040          TLNE IOS,IOEND                  ;BUFFER ALREADY?\r
15678         000161' 254000  000166'         JRST DDTIN3                     ;YES\r
15679         000162' 201000  010000          MOVEI IOS,IOACT\r
15680         000163' 436006  000002          IORM IOS,DEVIOS(DDB)\r
15681         000164' 260140  000000*         PUSHJ PDP,WSYNC                 ;NO, WAIT\r
15682         000165' 254000  000157'         JRST DDTIN2\r
15683 \r
15684         000166' 205040  120004  DDTIN3: MOVSI TAC,NIO+IOFST+DDTM\r
15685         000167' 436046  000002          IORM TAC,DEVIOS(DEVDAT)         ;STOP ALL IO\r
15686         000170' 200046  000000*         MOVE TAC,TTYPTR(DEVDAT)\r
15687         000171' 260140  000000*         PUSHJ PDP,CLRBYT                ;CLEAR OUT REMAINING BYTES\r
15688         000172' 275046  000000*         SUBI TAC,TTYBM1(DEVDAT)         ;NUMBER OF WORDS\r
15689         000173' 135100  000000*         LDB TAC1,PUUOAC       ;PICK UP AC NUMBER\r
15690         000174' 271107  000000          ADDI TAC1,(PROG)                ;FIND REAL ADDRESS\r
15691         000175' 200102  000000          MOVE TAC1,(TAC1)                ;PICK UP POINTER\r
15692         000176' 271107  000000          ADDI TAC1,(PROG)                ;FIND REAL ADDRESS OF BUFFER\r
15693         000177' 505106  000126*         HRLI TAC1,TTYBUF(DEVDAT)\r
15694         000200' 271042  000000          ADDI TAC,(TAC1)\r
15695         000201' 251101  000000          BLT TAC1,(TAC)                  ;TRANSFER MONITOR BUFFER TO U\r
15696         000202' 402001  000001          CLEARM 1(TAC)                   ;MAKE SURE THERE ARE SOME NUL\r
15697         000203' 205040  020040          MOVSI TAC,NIO+IOEND\r
15698         000204' 412046  000002          ANDCAM TAC,DEVIOS(DEVDAT)\r
15699         000205' 254000  000152*         JRST UXIT\r
15700 \r
15701 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 8\r
15702 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
15703 \r
15704 \r
15705 \r
15706                                 ;OUTPUT FROM DDT\r
15707                                 ;CALL AC,[SIXBIT /DDTOUT/]      AC HAS POINTER TO DDT OUTPUT BUFFER\r
15708 \r
15709         000206' 260140  000230' DDTOUT: PUSHJ PDP,TTYSR1\r
15710         000207' 200006  000002          MOVE IOS,DEVIOS(DEVDAT)\r
15711         000210' 603000  000020          TLNE IOS,IO                     ;OUTPUT IN PROGRESS?\r
15712         000211' 260140  000156*         PUSHJ PDP,WAIT1                 ;YES, WAIT\r
15713         000212' 200000  001144'         MOVE IOS,[XWD NIO+TOUT+DDTM,IOACT]\r
15714         000213' 437006  000002          IORB IOS,DEVIOS(DEVDAT)\r
15715         000214' 135040  000173*         LDB TAC,PUUOAC          ;PICK UP AC NUMBER\r
15716         000215' 505040  000011          HRLI TAC,JDAT           ;CALC REAL ADDRESS OF AC\r
15717         000216' 540060  000001          HRR TAC,@TAC            ;PICK UP AC\r
15718         000217' 505060  000001          HRLI TAC,@TAC           ;CALC REAL ADDRESS OF DDT BUF\r
15719         000220' 541046  000177*         HRRI TAC,TTYBUF(DEVDAT)\r
15720         000221' 552046  000000*         HRRZM TAC,TTYCTR(DDB)           ;A SUITABLY LARGE NUMBER\r
15721         000222' 200100  000001          MOVE TAC1,TAC\r
15722         000223' 251042  000020          BLT TAC,20(TAC1)                ;MOVE DDT BUFFER TO MONITOR\r
15723                                                         hrli tac1,440700\r
15724 \r
15725         000224' 202106  000170*         MOVEM TAC1,TTYPTR(DEVDAT)\r
15726         000225' 621000  000004          TLZ IOS,IOS+IOFST\r
15727         000226' 260140  000302'         PUSHJ PDP,TTYOU0\r
15728         000227' 254000  000205*         JRST UXIT\r
15729 \r
15730 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 9\r
15731 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
15732 \r
15733 \r
15734 \r
15735 \r
15736         000230' 200200  000000* TTYSR1: MOVE ITEM,JOB\r
15737         000231' 205100  000117* TTYSRC: MOVSI LINE,MTTYLN\r
15738         000232' 550302  000124*                 HRRZ DEVDAT,TTYTAB(LINE)\r
15739         000233' 322300  000237'                 JUMPE DEVDAT,TTYF0\r
15740         000234' 135040  000004'                 LDB TAC,TPCJOBN\r
15741         000235' 306044  000000                  CAIN TAC,(ITEM)\r
15742         000236' 263140  000000                  POPJ PDP,               ;FOUND\r
15743         000237' 253100  000232'         TTYF0:  AOBJN LINE,TTYSRC+1\r
15744         000240' 205040  576062                  MOVSI TAC,576062        ;SIXBIT /OPR/\r
15745         000241' 254000  000000*                 JRST DEVPHY             ;SEARCH PHYSICAL DEVICE NAMES\r
15746                                                                         ;AND RETURN OPERATOR TTY.\r
15747 \r
15748                                         ;ROUTINE TO FIND A TTY FOR A JOB\r
15749                                         ;CALL:  MOVE ITEM,JOB NUMBER\r
15750                                         ;       PUSHJ PDP, TTYFND\r
15751                                         ;       ERROR RETURN\r
15752                                         ;       RETURN WITH DEVDAT SET TO ADR OF DDB\r
15753                                         ;       AND DAT SET TO BYTE POINTER TO MONITOR OUTPUT BUFFER\r
15754 \r
15755         000242' 200200  000230*         TTYFNU: MOVE ITEM,JOB\r
15756         000243' 260140  000231'         TTYFND: PUSHJ PDP,TTYSRC                ;CALLED BY PUSHJ PDP,TTYFND\r
15757         000244' 260140  000164* ;               PUSHJ PDP,WSYNC\r
15758         000245' 205040  020000                  MOVSI TAC,NIO                   ;JOB NUMBER IN TAC1\r
15759         000246' 436046  000002                  IORM TAC,DEVIOS(DEVDAT) \r
15760         000247' 201246  000220*         TTYDAT: MOVEI DAT,TTYBUF(DEVDAT)        ;SETUP OUTPUT BYTE POINTER\r
15761         000250' 505240  440700                  HRLI DAT,440700\r
15762         000251' 263140  000000                  POPJ PDP,\r
15763 \r
15764         000252' 200040  000005          TTYSTR: MOVE TAC,DAT\r
15765         000253' 260140  000171*                 PUSHJ PDP,CLRBYT\r
15766         000254' 275046  000172*                 SUBI TAC,TTYBM1(DEVDAT)\r
15767         000255' 405040  777777                  ANDI TAC,-1\r
15768         000256' 221040  000005                  IMULI TAC,5\r
15769         000257' 202046  000221*                 MOVEM TAC,TTYCTR(DEVDAT)\r
15770         000260' 201046  000247*                 MOVEI TAC,TTYBUF(DEVDAT)\r
15771         000261' 505040  440700                  HRLI TAC,440700\r
15772         000262' 202046  000224*                 MOVEM TAC,TTYPTR(DEVDAT)\r
15773         000263' 200006  000002                  MOVE IOS,DEVIOS(DEVDAT)\r
15774         000264' 434000  001145'                 IOR IOS,[XWD NIO+IOFST,IODTER+IOBKTL]\r
15775                                                 andcm ios,[xwd nio+iofst,iodter+iobktl]\r
15776         000265' 260140  000767'                 PUSHJ PDP,GCHAR\r
15777         000266' 263140  000000                  POPJ PDP, ;NOTHING TO TYPE\r
15778         000267' 254000  000310'                 JRST TTYOU2             ;START OUTPUT\r
15779 \r
15780                                         ;DISPATCH TABLE;\r
15781 \r
15782         000270' 263140  000000          TTYDSP: POPJ PDP, ;RELEASE\r
15783         000271' 254000  000000*                 JRST OUT        ;CLOSE\r
15784         000272' 254000  000300'                 JRST TTYOUT\r
15785         000273' 630000  001146'                 TDZ IOS,[XWD TPMON,ECHOF+NCERR]         ;INPUT\r
15786         000274' 660000  010000                  TRO IOS,IOACT\r
15787         000275' 623000  000002                  TLZE IOS, IOBEG\r
15788 \r
15789 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 9-1\r
15790 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
15791 \r
15792         000276' 661000  000004                  TLO IOS, IOFST\r
15793         000277' 254000  001131'                 JRST MIS1\r
15794 \r
15795         000300' 670000  001147'         TTYOUT: TDO IOS,[XWD TOUT+IOFST,IOACT]\r
15796         000301' 630000  001146'                 TDZ IOS,[XWD TPMON,ECHOF+NCERR]\r
15797         000302' 135240  000000'         TTYOU0: LDB HPOS,PHPOS\r
15798         000303' 135200  000001'                 LDB VPOS,PVPOS\r
15799         000304' 260140  000767'                 PUSHJ PDP, GCHAR\r
15800         000305' 263140  000000                  POPJ PDP,\r
15801         000306' 137240  000000'                 DPB HPOS,PHPOS\r
15802         000307' 137200  000001'                 DPB VPOS,PVPOS\r
15803         000310' 135100  000130*         TTYOU2: LDB LINE,PUNIT\r
15804         000311' 700200  000000*                 CONO CLDS               ;DISABLE CLOCK\r
15805         000312' 306100  000000*                 CAIN LINE,TCONLN\r
15806         000313' 254000  000324'                 JRST CTYOUT\r
15807         000314' 730200  000000                  CONO DCSA,0             ;DISABLE SCANNER\r
15808         000315' 730602  000000                  CONO DCSB, (LINE)\r
15809         000316' 730140  000010                  DATAO DCSA, CHREC\r
15810         000317' 730200  000017*                 CONO DCSA,FSNCHN\r
15811         000320' 137400  000002'                 DPB CHREC,PLASTC\r
15812         000321' 700200  000000*         TTYOU1: CONO CLEN               ;RE-ENABLE CLOCK\r
15813         000322' 202006  000002                  MOVEM IOS,DEVIOS(DEVDAT)\r
15814         000323' 263140  000000                  POPJ PDP,\r
15815 \r
15816         000324' 712200  000000          CTYOUT: CONO TTY,0              ;DISABLE TTY\r
15817         000325' 712140  000010                  DATAO TTY,CHREC\r
15818         000326' 202400  000055'                 MOVEM CHREC,CCHAR\r
15819         000327' 712200  000015*                 CONO TTY,SCNCHN         ;RE-ENABLE\r
15820         000330' 254000  000300'                 JRST TTYOUT1\r
15821 \r
15822         000331' 712340  000050          CTYINT: CONSO TTY,50\r
15823         000332' 254000  000332'                 JRST .\r
15824         000333' 712340  000040                  CONSO TTY,40\r
15825         000334' 254000  000346'                 JRST CTYOU1\r
15826         000335' 202040  000055'                 MOVEM TAC, CCHAR        ;DONT ECHO RUBOUT\r
15827         000336' 712040  000001                  DATAI TTY, TAC\r
15828         000337' 405040  000177                  ANDI TAC, 177\r
15829         000340' 306040  000177                  CAIN TAC, 177\r
15830         000341' 254000  000345'                 JRST CTYRUB             ;IS A RUBOUT\r
15831         000342' 712140  000001                  DATAO TTY, TAC          ;NOT, SO ECHO\r
15832         000343' 250040  000055'                 EXCH TAC, CCHAR\r
15833         000344' 254520  000000*                 JRST 12,@SCNCHL                 ;DISMISS INTERRUP\r
15834 \r
15835         000345' 250040  000055'         CTYRUB: EXCH TAC, CCHAR\r
15836         000346' 264000  000000*         CTYOU1: JSR SCNSAV\r
15837         000347' 201400  000327*                 MOVEI CHREC,SCNCHN\r
15838         000350' 712210  000200                  CONO TTY,200(CHREC)\r
15839         000351' 200400  000055'                 MOVE CHREC,CCHAR\r
15840         000352' 201100  000312*                 MOVEI LINE,TCONLN\r
15841         000353' 254000  000363'                 JRST TCOMM\r
15842 \r
15843         000354' 730340  001010          SCNINT: CONSO DCSA,1010\r
15844         000355' 254000  000355'                 JRST .\r
15845 \r
15846 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 9-2\r
15847 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
15848 \r
15849         000356' 264000  000346*                 JSR SCNSAV\r
15850         000357' 730340  000010                  CONSO DCSA,10           ;RECEIVER FLAG?\r
15851         000360' 254000  000437'                 JRST SCNIN1             ;NO,XMITTER FLAG\r
15852         000361' 730640  000002                  CONI DCSB, LINE\r
15853         000362' 730440  000010                  DATAI DCSB, CHREC\r
15854         000363' 405400  000177          TCOMM:  ANDI CHREC, 177\r
15855         000364' 303100  000352*                 CAILE LINE,TCONLN       ;CTY LINE OR LESS\r
15856         000365' 254000  000447'                 JRST TYPX               ;NO\r
15857         000366' 332302  000232*                 SKIPE DDB,TTYTAB(LINE)  ;DATA BLOCK ASSIGNED?\r
15858         000367' 254000  000461'                 JRST INUSE              ;YES\r
15859         000370' 260140  000377'                 PUSHJ PDP,DDBSRC        ;SEARCH FOR FREE TTY DEV. DATA BLOCK\r
15860         000371' 254000  000447'                 JRST TYPX               ;NONE FOUND, TYPE X\r
15861         000372' 403240  000004                  CLEARB HPOS,VPOS        ;ASSUME TTY IS AT BEGIN OF FORM\r
15862         000373' 730300  000700                  CONSZ DCSA,700          ;FULL DUPLEX?\r
15863         000374' 306100  000364*                 CAIN LINE,TCONLN        ;CTY?\r
15864         000375' 254000  000574'                 JRST INJEST             ;NO, SWALLOW CHAR\r
15865         000376' 254000  000510'                 JRST TYP1\r
15866 \r
15867 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 10\r
15868 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
15869 \r
15870 \r
15871 \r
15872                                 ;ROUTINE TO SEARCH FOR FREE TTY DEV DATA BLOCK\r
15873                                 ;CALL:    MOVE LINE,TTY LINE NO\r
15874                                 ;         PUSHJ PDP,DDBSRC\r
15875                                 ;         NONE FOUND\r
15876                                 ;         RETURN DEVDAT, LINE SET\r
15877 \r
15878         000377' 205000  000020* DDBSRC:   MOVSI IOS,MLTTYL      ;NO. OF TTY DDB\r
15879         000400' 201300  000066*           MOVEI DEVDAT,TTYLST   ;ADDRESS OF FIRST DDB\r
15880         000401' 334040  001142'           SKIPA TAC,[XWD TTYUSE+TTYATC,ASSPRG+ASSCON]\r
15881         000402' 554306  000003            HLRZ DEVDAT,DEVSER(DEVDAT)\r
15882         000403' 612046  000004            TDNE TAC,DEVMOD(DEVDAT)       ;USE.ATTACH, AND BOTH ASSIGN\r
15883         000404' 253000  000402'           AOBJN IOS,.-2\r
15884         000405' 325000  000122*           JUMPGE IOS,CPOPJ      ;DDB FOUND?\r
15885         000406' 200000  001150'           MOVE IOS,[XWD TPMON+IOFST,IOACT]\r
15886         000407' 200040  001151'           MOVE TAC,[XWD TTYUSE,ASSCON]\r
15887 \r
15888                                 ;INITIALIZE TTY DEVICE DATA BLOCK(CALLED FROM TTYATT TOO)\r
15889 \r
15890         000410' 436046  000004  SCNIN:    IORM TAC,DEVMOD(DEVDAT)\r
15891         000411' 137100  000310*           DPB LINE,PUNIT        ;SET LINE NO. IN DDB\r
15892         000412' 205040  064647            MOVSI TAC,646471      ;SIXBIT /TTY/\r
15893         000413' 202046  000000            MOVEM TAC,DEVNAM(DEVDAT)\r
15894         000414' 200040  001152'           MOVE TAC,[POINT 6,DEVNAM(DEVDAT),17]\r
15895         000415' 261140  000002            PUSH PDP,LINE         ;SAVE LINE NO.\r
15896         000416' 606100  000070            TRNN LINE,70          ;IS THERE A HIGH ORDER OCTAL DIGIT?\r
15897         000417' 254000  000424'           JRST SCNIN0           ;NO\r
15898         000420' 241100  777775            ROT LINE,-3           ;YES,CONVERT TO SIXBIT\r
15899         000421' 271100  000020            ADDI LINE,20\r
15900         000422' 136100  000001            IDPB LINE,TAC         ;STORE HIGH ORDER SIXBIT DIGIT\r
15901         000423' 242100  000020            LSH LINE,20           ;IN PHYSICAL NAME\r
15902         000424' 271100  000020  SCNIN0:   ADDI LINE,20\r
15903         000425' 136100  000001            IDPB LINE,TAC         ;STORE LOW ORDER DIGIT\r
15904         000426' 262140  000002            POP PDP,LINE\r
15905 \r
15906         000427' 542302  000366*           HRRM DEVDAT,TTYTAB(LINE)      ;SET LINE NO. IN TRANSLATOR T\r
15907         000430' 205040  436471            MOVSI TAC,436471      ;SIXBIT /CTY/\r
15908         000431' 306100  000374*           CAIN LINE,TCONLN      ;IS THIS CONSOLE TTY?\r
15909         000432' 202046  000000            MOVEM TAC,DEVNAM(DEVDAT)      ;YES, SET NAME TO CTY\r
15910         000433' 200046  000000            MOVE TAC,DEVNAM(DEVDAT)\r
15911         000434' 336000  000000*           SKIPN DEVOPR          ;IS THIS FIRST CHAR. TYPED BY ANYONE?\r
15912         000435' 202040  000434*           MOVEM TAC,DEVOPR      ;YES,SET THIS TTY AS OPERATOR TTY\r
15913         000436' 254000  000132*           JRST CPOPJ1           ;SUCCESSFUL RETURN\r
15914 \r
15915         000437' 730040  000002  SCNIN1:   DATAI DCSA,LINE       ;GET LINE NO. FROM FULL DUPLEX\r
15916         000440' 201040  000317*           MOVEI TAC,FSNCHN\r
15917         000441' 730201  004000            CONO DCSA,4000(TAC)   ;RELEASE XMITTER SCANNER\r
15918         000442' 332302  000427*           SKIPE DDB,TTYTAB(LINE)        ;DATA BLOCK ASSIGNED?\r
15919         000443' 301100  000431*           CAIL LINE,TCONLN      ;LINE NO. TOO LARGE?\r
15920         000444' 254000  000000*           JRST SCNRET                   ;GO AWAY\r
15921         000445' 135400  000002'           LDB CHREC,PLASTC\r
15922         000446' 254000  000470'           JRST INUS1\r
15923 \r
15924 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 11\r
15925 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
15926 \r
15927 \r
15928 \r
15929         000447' 306400  000130  TYPX:     CAIN CHREC,"X"                ;CHARACTER RECEIVED AN X?\r
15930         000450' 254000  000444*           JRST SCNRET                 ;YES, GO AWAY\r
15931         000451' 201400  000130            MOVEI CHREC,"X"\r
15932         000452' 302100  000443*           CAIE LINE,TCONLN\r
15933         000453' 254000  000456'           JRST TYPX1\r
15934         000454' 712140  000010            DATAO TTY,CHREC\r
15935         000455' 254000  000450*           JRST SCNRET\r
15936         000456' 730742  000000  TYPX1:    CONSO DCSB,(LINE)\r
15937         000457' 730140  000010            DATAO DCSA,CHREC              ;TYPE AN X\r
15938         000460' 254000  000455*           JRST SCNRET\r
15939 \r
15940         000461' 730300  000700  INUSE:    CONSZ DCSA,700        ;FULL DUPLEX?\r
15941         000462' 306100  000452*           CAIN LINE,TCONLN\r
15942         000463' 254000  000470'           JRST INUS1\r
15943         000464' 730602  000000            CONO DCSB,(LINE)\r
15944         000465' 730140  000010            DATAO DCSA,CHREC\r
15945         000466' 137400  000002'           DPB CHREC,PLASTC\r
15946         000467' 254000  000460*           JRST SCNRET\r
15947 \r
15948         000470' 200006  000002  INUS1:    MOVE IOS,DEVIOS(DDB)\r
15949         000471' 135340  000111*           LDB PROG,PJOBN\r
15950         000472' 550347  000000*           HRRZ PROG,JBTADR(PROG)\r
15951         000473' 135240  000000'           LDB HPOS,PHPOS\r
15952         000474' 135200  000001'           LDB VPOS,PVPOS\r
15953         000475' 135046  000262*           LDB TAC, TTYPTR(DDB)\r
15954         000476' 603000  002000            TLNE IOS, SP\r
15955         000477' 254000  000532'           JRST SIM35\r
15956         000500' 607000  000010  INUS2:    TLNN IOS,TOUT\r
15957         000501' 254000  000574'           JRST INJEST\r
15958         000502' 312040  000010            CAME TAC, CHREC\r
15959         000503' 254000  000526'           JRST ECHO\r
15960         000504' 260140  000767' INUS3:    PUSHJ PDP, GCHAR\r
15961         000505' 254000  000517'           JRST LEAV0\r
15962         000506' 306100  000462* TYPE:     CAIN LINE,TCONLN\r
15963         000507' 254000  000523'           JRST CTSER3\r
15964         000510' 730602  000000  TYP1:     CONO DCSB,(LINE)\r
15965         000511' 730140  000010            DATAO DCSA, CHREC\r
15966         000512' 137400  000002'           DPB CHREC,PLASTC      ;SAVE CHARACTER FOR FULL DUPLEX\r
15967         000513' 202006  000002  LEAVE:    MOVEM IOS, DEVIOS(DDB)\r
15968         000514' 137240  000000' LEAV1:    DPB HPOS,PHPOS\r
15969         000515' 137200  000001'           DPB VPOS,PVPOS\r
15970         000516' 254000  000467*           JRST SCNRET\r
15971         000517' 202046  000004  LEAV0:    MOVEM TAC,DEVMOD(DEVDAT)      ;IS TTY ATTCHED?\r
15972         000520' 607040  020000            TLNN TAC,TTYATC\r
15973         000521' 260140  000041'           PUSHJ PDP,TTYKIL              ;NO,RETURN TO POOL\r
15974         000522' 254000  000514'           JRST LEAV1\r
15975 \r
15976         000523' 712140  000010  CTSER3:   DATAO TTY,CHREC\r
15977         000524' 202400  000055'           MOVEM CHREC,CCHAR\r
15978         000525' 254000  000513'           JRST LEAVE\r
15979 \r
15980 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 12\r
15981 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
15982 \r
15983 \r
15984 \r
15985         000526' 670000  001153' ECHO:     TDO IOS,[XWD SP,ECHOF]\r
15986         000527' 621000  000010            TLZ IOS,TOUT\r
15987         000530' 201400  000177            MOVEI CHREC,177               ;SEND A RUBOUT AFTER ECHO CHE\r
15988         000531' 254000  000506'           JRST TYPE\r
15989 \r
15990         000532' 205040  777766  SIM35:    MOVSI TAC,-SCTABL\r
15991         000533' 200241  000544'           MOVE HPOS, SCTAB(TAC)\r
15992         000534' 302405  000000            CAIE CHREC,(HPOS)\r
15993         000535' 253040  000533'           AOBJN TAC, .-2\r
15994         000536' 135240  000000'           LDB HPOS,PHPOS\r
15995         000537' 325040  000526'           JUMPGE TAC, ECHO\r
15996         000540' 204041  000544'           MOVS TAC, SCTAB(TAC)\r
15997         000541' 603040  000140            TLNE TAC, 140         ;SPACING CHARACTER\r
15998         000542' 344241  000000            AOJA HPOS,(TAC)       ;YES\r
15999         000543' 254001  000000            JRST (TAC)            ;NO\r
16000 \r
16001         000544' 000556' 000040  SCTAB:    XWD SPACE," "\r
16002         000545' 000564' 000012            XWD SIMLF,12\r
16003         000546' 000571' 000177            XWD SIMRO,177         ;RUBOUT\r
16004         000547' 000571' 000134            XWD SIMRO,134         ;BACK SLASH\r
16005         000550' 000733' 000015            XWD ASC3,15           ;CR\r
16006         000551' 000561' 000136            XWD SIMVA,"^"\r
16007         000552' 000764' 000103            XWD DELET1,"C"\r
16008         000553' 000764' 000117            XWD DELET1,"O"\r
16009         000554' 000565' 000132            XWD SIM4,"Z"\r
16010         000555' 000764' 000125            XWD DELET1,"U"\r
16011                         000012  SCTABL=.-SCTAB\r
16012 \r
16013         000556' 606240  000007  SPACE:    TRNN HPOS,7           ;FINISHED SIMULATING TABS(8)\r
16014         000557' 254000  000565'           JRST SIM4             ;YES\r
16015         000560' 254000  000506'           JRST TYPE             ;NO, SEND ANOTHER SPACE\r
16016 \r
16017         000561' 135400  000003' SIMVA:    LDB CHREC,PSCHAR\r
16018         000562' 660400  000100            TRO CHREC, 100\r
16019         000563' 254000  000506'           JRST TYPE\r
16020 \r
16021         000564' 367200  000506' SIMLF:    SOJG VPOS,TYPE        ;SEND ANOTHER LINE-FEED\r
16022         000565' 621000  002000  SIM4:     TLZ IOS,SP\r
16023         000566' 607000  000010            TLNN IOS,TOUT\r
16024         000567' 254000  000626'           JRST INJ4\r
16025         000570' 254000  000504'           JRST INUS3\r
16026 \r
16027         000571' 625000  002000  SIMRO:    TLZA IOS, SP\r
16028         000572' 640000  004000  MOD35:    TRC IOS,T35\r
16029         000573' 254000  000513'           JRST LEAVE\r
16030 \r
16031 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 13\r
16032 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
16033 \r
16034 \r
16035 \r
16036         000574' 306400  000003  INJEST:   CAIN CHREC,3          ;CONTROL C?\r
16037         000575' 254000  000642'           JRST INJ5\r
16038         000576' 623000  000004            TLZE IOS,IOFST        ;IF FIRST CHARACTER IN, INITIALIZE\r
16039         000577' 260140  000630'           PUSHJ PDP,SETMB1\r
16040         000600' 603000  100000            TLNE IOS,DDTM         ;1 DDT CHAR RESTARTS PROGRAM\r
16041         000601' 661000  040040            TLO IOS,SYNC+IOEND    ;YES, TERMINATE BUFFER\r
16042         000602' 306400  000017            CAIN CHREC,17                 ;COTNROL O?\r
16043         000603' 254000  000655'           JRST INJ6                     ;YES, FLUSH OUTPUT\r
16044         000604' 622000  100000            TRZE IOS,ECHOF                ;ECHO HAS OCCURRED?\r
16045         000605' 254000  000675'           JRST INJ7                     ;YES, NOW RESUME OUTPUT\r
16046         000606' 602000  040000            TRNE IOS,NCERR\r
16047         000607' 254000  000513'           JRST LEAVE\r
16048         000610' 302400  000033            CAIE CHREC,033        ;NEW NEW ALT-MODE?\r
16049         000611' 306400  000176            CAIN CHREC,176        ;NEW ALT-MODE?\r
16050         000612' 201400  000175            MOVEI CHREC,175       ;CHANGE TO OLD\r
16051         000613' 306400  000020            CAIN CHREC,20         ;CONTROL P TAB SIMULATION FLIP FLOP SWI\r
16052         000614' 254000  000572'           JRST MOD35\r
16053         000615' 603000  100000            TLNE IOS,DDTM\r
16054         000616' 254000  000620'           JRST INJ25            ;SENT RUBOUTS ON TO DDT\r
16055         000617' 306400  000177            CAIN CHREC,177        ;RUBOUT\r
16056                                                         jrst    delet\r
16057         000620' 136406  000475* INJ25:    DPBI CHREC, TTYPTR(DDB)\r
16058         000621' 370046  000257*           SOS TAC, TTYCTR(DDB)\r
16059         000622' 301400  000040            CAIL CHREC, 40\r
16060         000623' 303400  000137            CAILE CHREC, 137\r
16061         000624' 254000  000677'           JRST SPCIN\r
16062         000625' 271240  000001            ADDI HPOS,1\r
16063         000626' 260140  001062' INJ4:     PUSHJ PDP, MOVBUF\r
16064         000627' 254000  000513'           JRST LEAVE\r
16065 \r
16066         000630' 541046  000260* SETMB1:   HRRI TAC, TTYBUF(DDB)\r
16067         000631' 505040  440700            HRLI TAC, 440700\r
16068         000632' 202046  000620*           MOVEM TAC, TTYPTR(DDB)\r
16069         000633' 507000  000001            HRLS TAC\r
16070         000634' 350000  000001            AOS TAC\r
16071         000635' 402006  000630*           SETZM TTYBUF(DDB)\r
16072         000636' 251046  000000*           BLT TAC,TTYBFE(DDB) ;CLEAR OUT MONITOR BUFFER\r
16073         000637' 201040  000111            MOVEI TAC, 111\r
16074         000640' 202046  000621*           MOVEM TAC, TTYCTR(DDB)\r
16075         000641' 263140  000000            POPJ PDP,\r
16076 \r
16077 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 14\r
16078 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
16079 \r
16080 \r
16081 \r
16082         000642' 260140  000630' INJ5:     PUSHJ PDP,SETMB1\r
16083         000643' 261140  000004            PUSH PDP,ITEM         ;^C\r
16084         000644' 135200  000004'           LDB ITEM,TPCJOBN      ;YES, GET USER CONSOLE NUMBER\r
16085         000645' 332000  000004            SKIPE ITEM\r
16086         000646' 260140  000000*           PUSHJ PDP,STOP1                 ;SHUT OFF JOB\r
16087         000647' 262140  000004            POP PDP,ITEM\r
16088         000650' 607000  001000            TLNN IOS,TPMON        ;SAVE STATUS OF TTY\r
16089         000651' 202006  000063*           MOVEM IOS,TTYSAV(DDB)         ;WHEN IT WAS IN USER MODE\r
16090         000652' 200000  001150'           MOVE IOS,[XWD TPMON+IOFST,IOACT]\r
16091         000653' 201040  000103            MOVEI TAC,"C"\r
16092         000654' 254000  000672'           JRST INJ61\r
16093 \r
16094         000655' 261140  000002  INJ6:     PUSH PDP,TAC1         ;^O\r
16095         000656' 623000  000001            TLZE IOS,IOW\r
16096         000657' 260140  000000*           PUSHJ PDP,SETIOD\r
16097         000660' 262140  000002            POP PDP,TAC1\r
16098         000661' 603000  101000            TLNE IOS,TPMON+DDTM\r
16099         000662' 254000  000665'           JRST INJ6A\r
16100         000663' 603000  000010            TLNE IOS,TOUT\r
16101         000664' 260140  000000*           PUSHJ PDP,ADVBFE\r
16102         000665' 665000  000004  INJ6A:    TLOA IOS,IOFST\r
16103         000666' 254000  000664'           JRST .-2\r
16104         000667' 620000  100000            TRZ IOS,ECHOF\r
16105         000670' 660000  020000            TRO IOS,IODEND\r
16106         000671' 201040  000060            MOVEI TAC,"0"\r
16107         000672' 137040  000003' INJ61:    DPB TAC,PSCHAR\r
16108         000673' 201400  000136            MOVEI CHREC,"^"\r
16109         000674' 254000  000743'           JRST SPC21\r
16110 \r
16111         000675' 661000  000010  INJ7:     TLO IOS,TOUT\r
16112         000676' 254000  000504'           JRST INUS3\r
16113 \r
16114 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 15\r
16115 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
16116 \r
16117 \r
16118 \r
16119         000677' 205040  777770  SPCIN:    MOVSI TAC,-SCITL      ;SEARCH FOR SPECIAL INPUT CHAR\r
16120         000700' 200101  000707'           MOVE TAC1,SCITAB(TAC)\r
16121         000701' 302402  000000            CAIE CHREC,(TAC1)     ;FOUND?\r
16122         000702' 253040  000700'           AOBJN TAC,.-2         ;NO\r
16123         000703' 544040  000002            HLR TAC,TAC1          ;SAVE DISPATCH ADDRESS\r
16124         000704' 135100  000411*           LDB LINE,PUNIT        ;RESTORE TAC1\r
16125         000705' 321041  000000            JUMPL TAC,(TAC)       \r
16126         000706' 254000  000626'           JRST INJ4             ;CHARACTER NOT FOUND\r
16127 \r
16128         000707' 000717' 000015  SCITAB:   XWD SPCCR,15          ;CR\r
16129         000710' 000725' 000012            XWD ASC1,12           ;LF\r
16130         000711' 000740' 000011            XWD SPC2,11           ;HORIZ TAB\r
16131         000712' 000722' 000013            XWD SPVT,13           ;VT\r
16132         000713' 000721' 000014            XWD SPFF,14           ;FF\r
16133         000714' 000735' 000025            XWD SPC4A,25          ;^U\r
16134         000715' 000745' 000032            XWD SPC7,32           ;^Z\r
16135         000716' 000725' 000175            XWD ASC1, 175         ;ALT MODE\r
16136                         000010  SCITL=.-SCITAB\r
16137 \r
16138         000717' 201240  000000  SPCCR:    MOVEI HPOS,0\r
16139         000720' 254000  000733'           JRST ASC3\r
16140 \r
16141         000721' 334200  001154' SPFF:     SKIPA VPOS,[10]\r
16142         000722' 201200  000004  SPVT:     MOVEI VPOS,4\r
16143         000723' 607000  004000            TLNN IOS,T35          ;DONT SIMULATE FOR A MOD 35\r
16144         000724' 661000  002000            TLO IOS,SP\r
16145         000725' 135040  000000* ASC1:     LDB TAC,PIOMOD\r
16146         000726' 607000  001000            TLNN IOS,TPMON\r
16147         000727' 306040  000001            CAIN TAC,AL\r
16148         000730' 661000  040000            TLO IOS,SYNC\r
16149         000731' 607000  002000  ASC2:     TLNN IOS,SP\r
16150         000732' 254000  000626'           JRST INJ4\r
16151         000733' 201400  000012  ASC3:     MOVEI CHREC,12        ;LINE FEED\r
16152         000734' 254000  000506'           JRST TYPE\r
16153 \r
16154         000735' 260140  000630' SPC4A:    PUSHJ PDP,SETMB1\r
16155         000736' 201040  000125            MOVEI TAC,"U"\r
16156         000737' 254000  000672'           JRST INJ61\r
16157 \r
16158         000740' 602000  004000  SPC2:     TRNE IOS,T35\r
16159         000741' 254000  000513'           JRST LEAVE\r
16160         000742' 201400  000040            MOVEI CHREC," "\r
16161         000743' 661000  002000  SPC21:    TLO IOS,SP\r
16162         000744' 254000  000506'           JRST TYPE\r
16163 \r
16164         000745' 661000  042040  SPC7:     TLO IOS,SYNC+IOEND+SP         ;^Z\r
16165         000746' 201040  000132            MOVEI TAC,"Z"\r
16166         000747' 254000  000672'           JRST INJ61            ;ECHO ^Z\r
16167 \r
16168 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 16\r
16169 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
16170 \r
16171 \r
16172 \r
16173         000750' 200046  000640* DELET:    MOVE TAC,TTYCTR(DDB)\r
16174         000751' 301040  000111            CAIL TAC,111\r
16175         000752' 254000  000764'           JRST DELET1\r
16176 \r
16177         000753' 205040  070000            MOVSI TAC,070000\r
16178         000754' 270046  000632*           ADD TAC,TTYPTR(DDB)\r
16179         000755' 603040  400000            TLNE TAC,400000\r
16180         000756' 270040  001155'           ADD TAC,[XWD 347777,-1]\r
16181         000757' 202046  000754*           MOVEM TAC,TTYPTR(DDB)\r
16182         000760' 350006  000750*           AOS TTYCTR(DDB)\r
16183 \r
16184         000761' 201400  000334            MOVEI CHREC,334               ;BACK SLASH\r
16185         000762' 661000  002000  DELET2:   TLO IOS,SP\r
16186         000763' 254000  000506'           JRST TYPE\r
16187 \r
16188         000764' 201200  000001  DELET1:   MOVEI VPOS,1\r
16189         000765' 201400  000015            MOVEI CHREC,15\r
16190         000766' 254000  000762'           JRST DELET2\r
16191 \r
16192 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 17\r
16193 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
16194 \r
16195 \r
16196 \r
16197                                 ;ROUTINE TO GET NEXT CHARACTER FROM OUTPUT BUFFER\r
16198                                 ;CALL:    PUSHJ PDP,GCHAR\r
16199                                 ;         NO MORE LEFT\r
16200                                 ;         RETURN WITH CHAR. IN CHREC\r
16201 \r
16202         000767' 627000  000004  GCHAR:    TLZN IOS, IOFST\r
16203         000770' 254000  000777'           JRST GCHAR3\r
16204         000771' 550046  000010  GCHAR1:   HRRZ TAC,DEVOAD(DDB)\r
16205         000772' 270040  001156'           ADD TAC, [XWD 000700+PROG,1]\r
16206         000773' 202046  000757*           MOVEM TAC, TTYPTR(DDB)\r
16207         000774' 550060  000001            HRRZ TAC, @TAC\r
16208         000775' 221040  000005            IMULI TAC, 5\r
16209         000776' 202046  000760*           MOVEM TAC,TTYCTR(DDB)\r
16210         000777' 375006  000776* GCHAR3:   SOSGE TTYCTR(DDB)\r
16211         001000' 254000  001023'           JRST GCHAR5\r
16212         001001' 134406  000773*           LDBI CHREC, TTYPTR(DDB)\r
16213         001002' 322400  001021'           JUMPE CHREC, GCHAR7\r
16214         001003' 306400  000011            CAIN CHREC, 11\r
16215         001004' 254000  001050'           JRST HT\r
16216         001005' 306400  000012            CAIN CHREC, 12\r
16217         001006' 344200  001015'           AOJA VPOS,GCH3\r
16218         001007' 302400  000013            CAIE CHREC, 13\r
16219         001010' 306400  000014            CAIN CHREC, 14\r
16220         001011' 254000  001055'           JRST VTFF\r
16221         001012' 271240  000001            ADDI HPOS,1\r
16222         001013' 306400  000015            CAIN CHREC,15\r
16223         001014' 201240  000000            MOVEI HPOS,0\r
16224         001015' 354003  000000  GCH3:     AOSA (PDP)\r
16225         001016' 200006  000651* GCH3A:    MOVE IOS,TTYSAV(DDB)          ;RESTORE STATUS TO USER\r
16226         001017' 202006  000002  GCHAR4:   MOVEM IOS,DEVIOS(DDB)\r
16227         001020' 263140  000000            POPJ PDP,\r
16228 \r
16229         001021' 607000  100000  GCHAR7:   TLNN IOS,DDTM         ;DDT BUFFER TERMINATED WITH NULL\r
16230         001022' 254000  000777'           JRST GCHAR3\r
16231         001023' 261140  000002  GCHAR5:   PUSH PDP,TAC1\r
16232         001024' 623000  000001            TLZE IOS, IOW\r
16233         001025' 260140  000657*           PUSHJ PDP, SETIOD\r
16234         001026' 262140  000002            POP PDP,TAC1\r
16235         001027' 607000  101000            TLNN IOS,TPMON+DDTM\r
16236         001030' 260140  000664*           PUSHJ PDP, ADVBFE\r
16237         001031' 665000  000004            TLOA IOS,IOFST\r
16238         001032' 254000  000771'           JRST GCHAR1\r
16239         001033' 630000  001157'           TDZ IOS,[XWD IO,IOACT]\r
16240         001034' 627000  000100            TLZN IOS,USRB\r
16241         001035' 254000  001017'           JRST GCHAR4\r
16242         001036' 621000  001000            TLZ IOS,TPMON\r
16243         001037' 135100  000704*           LDB LINE,PUNIT        ;GET LINE NO.\r
16244         001040' 261140  000004            PUSH PDP,ITEM\r
16245         001041' 135200  000004'           LDB ITEM,TPCJOB\r
16246         001042' 260140  000000*           PUSHJ PDP,SETRUN\r
16247         001043' 262140  000004            POP PDP,ITEM\r
16248 \r
16249 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 17-1\r
16250 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
16251 \r
16252         001044' 626000  020000            TRZN IOS,USRBC\r
16253         001045' 254000  001016'           JRST GCH3A\r
16254         001046' 205000  001004            MOVSI IOS,TPMON+IOFST\r
16255         001047' 254000  001017'           JRST GCHAR4\r
16256         001050' 602000  004000  HT:       TRNE IOS,T35\r
16257         001051' 344240  001015'           AOJA HPOS,GCH3\r
16258         001052' 661000  002000            TLO IOS,SP\r
16259         001053' 201400  000240  SPOUT:    MOVEI CHREC,240\r
16260         001054' 254000  001015'           JRST GCH3\r
16261 \r
16262         001055' 602000  004000  VTFF:     TRNE IOS,T35\r
16263         001056' 344200  001015'           AOJA VPOS,GCH3\r
16264         001057' 201400  000012            MOVEI CHREC,12\r
16265         001060' 661000  002000            TLO IOS,SP\r
16266         001061' 254000  001015'           JRST GCH3\r
16267 \r
16268 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 18\r
16269 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
16270 \r
16271 \r
16272         001062' 603000  100000  MOVBUF:   TLNE IOS,DDTM\r
16273         001063' 254000  001123'           JRST MOV3 ;DONT ADVANCE BUFFERS FOR DDT MODE\r
16274         001064' 627000  040000            TLZN IOS,SYNC\r
16275         001065' 337006  000777*           SKIPG TTYCTR(DDB)\r
16276         001066' 254000  001070'           JRST .+2\r
16277         001067' 254000  001131'           JRST MIS1\r
16278         001070' 603000  001000            TLNE IOS, TPMON\r
16279         001071' 254000  001133'           JRST MOVMON\r
16280         001072' 200046  000007            MOVE TAC,DEVIAD(DDB)          ;IS TTY EXPECTING INPUT?\r
16281         001073' 602040  777777            TRNE TAC,-1   \r
16282         001074' 335020  000001            SKIPGE @TAC                   ;OR IS NEXT BUFFER READY?\r
16283         001075' 254000  001130'           JRST MIS  ;NO\r
16284         001076' 261140  000002            PUSH PDP,TAC1\r
16285         001077' 200046  001001*           MOVE TAC,TTYPTR(DDB)\r
16286         001100' 260140  000253*           PUSHJ PDP,CLRBYT\r
16287         001101' 200046  000007            MOVE TAC,DEVIAD(DDB)\r
16288         001102' 260140  000000*           PUSHJ PDP,ADRCK    ;MAKE SURE BUFFER WILL FIT\r
16289         001103' 551041  000000*           HRRZI TAC,STTYB1(TAC)         ;LENGTH+1\r
16290 \r
16291         001104' 201066  000007            MOVEI TAC,@DEVIAD(DDB)\r
16292         001105' 271040  000002            ADDI TAC,2\r
16293         001106' 540400  000001            HRR CHREC,TAC\r
16294         001107' 271040  000000*           ADDI TAC,STTYBF\r
16295         001110' 505406  000635*           HRLI CHREC,TTYBUF(DDB)\r
16296         001111' 251401  777777            BLT CHREC,-1 (TAC)\r
16297         \r
16298         001112' 201040  000111            MOVEI TAC,111\r
16299         001113' 274046  001065*           SUB TAC, TTYCTR(DDB)\r
16300         001114' 271040  000004            ADDI TAC,4\r
16301         001115' 231040  000005            IDIVI TAC,5\r
16302         001116' 201426  000007            MOVEI CHREC,@DEVIAD(DDB)\r
16303         001117' 202050  000001            MOVEM TAC,1(CHREC)\r
16304         001120' 260140  000000*           PUSHJ PDP, ADVBFF\r
16305         001121' 254000  001122'           JRST .+1\r
16306         001122' 665000  000004            TLOA IOS,IOFST\r
16307         001123' 261140  000002  MOV3:     PUSH PDP,TAC1\r
16308         001124' 623000  000001            TLZE IOS, IOW\r
16309         001125' 260140  001025*           PUSHJ PDP, SETIOD\r
16310         001126' 262140  000002            POP PDP,TAC1\r
16311         001127' 624000  050000            TRZA IOS,NCERR+IOACT\r
16312         001130' 660000  040000  MIS:      TRO IOS, NCERR\r
16313         001131' 202006  000002  MIS1:     MOVEM IOS, DEVIOS(DDB)\r
16314         001132' 263140  000000            POPJ PDP,\r
16315         001133' 205040  400000  MOVMON:   MOVSI TAC,400000\r
16316         001134' 436042  000442*           IORM TAC,TTYTAB(LINE)         ;SET BIT FOR MONITOR\r
16317         001135' 661000  000004            TLO IOS,IOFST\r
16318         001136' 201040  000015            MOVEI TAC,15\r
16319         001137' 137046  001077*           DPB TAC,TTYPTR(DDB) ;FORCE A CARRIAGE RET INTO MONITOR COMM\r
16320         001140' 350000  000000*           AOS COMCNT\r
16321         001141' 263140  000000            POPJ PDP,\r
16322 \r
16323                                           END,\r
16324 \r
16325 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 18-2\r
16326 SCNSER  MAC     24-APR-78 03:04         TOM EGGERS     8-9-65\r
16327 \r
16328 \r
16329 NO ERRORS DETECTED\r
16330 \r
16331 PROGRAM BREAK IS 001160\r
16332 \r
16333 9K CORE USED\r
16334 \r
16335 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 19\r
16336 SCNSER  MAC     24-APR-78 03:04         SYMBOL TABLE\r
16337 \r
16338 A               000000  INT\r
16339 AC1             000015  INT\r
16340 AC2             000016  INT\r
16341 AC3             000017  INT\r
16342 ADRCK           001102' EXT\r
16343 ADVBFE          001030' EXT\r
16344 ADVBFF          001120' EXT\r
16345 AL              000001  INT\r
16346 ASC1            000725' \r
16347 ASC2            000731' \r
16348 ASC3            000733' \r
16349 ASSCON          400000  INT\r
16350 ASSPRG          200000  INT\r
16351 B               000014  INT\r
16352 BUFPNT          000012  INT\r
16353 BUFWRD          000013  INT\r
16354 CCHAR           000055' \r
16355 CHREC           000010  \r
16356 CLDS            000311' EXT\r
16357 CLEN            000321' EXT\r
16358 CLOSB           002000  INT\r
16359 CLRBYT          001100' EXT\r
16360 CLSIN           000002  INT\r
16361 CLSOUT          000001  INT\r
16362 COMCNT          001140' EXT\r
16363 CPOPJ           000405' EXT\r
16364 CPOPJ1          000436' EXT\r
16365 CTSER3          000523' \r
16366 CTYINT          000331' INT\r
16367 CTYOU1          000346' \r
16368 CTYOUT          000324' \r
16369 CTYRUB          000345' \r
16370 D               000017  INT\r
16371 DAT             000005  INT\r
16372 DCHAR           000177  \r
16373 DCL             000001  INT\r
16374 DCSA            000300  SPD\r
16375 DCSB            000304  SPD\r
16376 DCW             020000  INT\r
16377 DDB             000006  \r
16378 DDBSRC          000377' \r
16379 DDI             000007  INT\r
16380 DDO             000006  INT\r
16381 DDTGT           000133' INT\r
16382 DDTGT2          000141' \r
16383 DDTIN           000153' INT\r
16384 DDTIN2          000157' \r
16385 DDTIN3          000166' \r
16386 DDTM            100000  \r
16387 DDTMEM          000037  INT\r
16388 DDTOUT          000206' INT\r
16389 DDTRL           000144' INT\r
16390 \r
16391 \r
16392 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 19-1\r
16393 SCNSER  MAC     24-APR-78 03:04         SYMBOL TABLE\r
16394 \r
16395 DDTSYM          000036  INT\r
16396 DELET           000750' \r
16397 DELET1          000764' \r
16398 DELET2          000762' \r
16399 DEN             000004  INT\r
16400 DETH            010000  \r
16401 DEVADR          000007  INT\r
16402 DEVBUF          000006  INT\r
16403 DEVCHR          000001  INT\r
16404 DEVCTR          000011  INT\r
16405 DEVDAT          000006  INT\r
16406 DEVIAD          000007  INT\r
16407 DEVIOS          000002  INT\r
16408 DEVLOG          000005  INT\r
16409 DEVLST          000000  EXT\r
16410 DEVMOD          000004  INT\r
16411 DEVNAM          000000  INT\r
16412 DEVOAD          000010  INT\r
16413 DEVOPR          000435' EXT\r
16414 DEVPHY          000241' EXT\r
16415 DEVPTR          000010  INT\r
16416 DEVSER          000003  INT\r
16417 DGF             000012  INT\r
16418 DIN             000003  INT\r
16419 DLK             000005  INT\r
16420 DOU             000002  INT\r
16421 DR              000016  INT\r
16422 DRL             000000  INT\r
16423 DSI             000011  INT\r
16424 DSO             000010  INT\r
16425 DTW             040000  INT\r
16426 DVAVAL          000040  INT\r
16427 DVCDR           100000  INT\r
16428 DVDIR           000004  INT\r
16429 DVDIRI          400000  INT\r
16430 DVIN            000002  INT\r
16431 DVLPT           040000  INT\r
16432 DVMTA           000020  INT\r
16433 DVOUT           000001  INT\r
16434 DVTTY           000010  INT\r
16435 ECHO            000526' \r
16436 ECHOF           100000  \r
16437 ENTRB           020000  INT\r
16438 FSNCHN          000440' EXT\r
16439 GCH3            001015' \r
16440 GCH3A           001016' \r
16441 GCHAR           000767' \r
16442 GCHAR1          000771' \r
16443 GCHAR3          000777' \r
16444 GCHAR4          001017' \r
16445 GCHAR5          001023' \r
16446 GCHAR7          001021' \r
16447 HPOS            000005  \r
16448 \r
16449 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 19-2\r
16450 SCNSER  MAC     24-APR-78 03:04         SYMBOL TABLE\r
16451 \r
16452 HT              001050' \r
16453 I               000010  INT\r
16454 IB              000013  INT\r
16455 IBUFB           200000  INT\r
16456 INITB           400000  INT\r
16457 INJ25           000620' \r
16458 INJ4            000626' \r
16459 INJ5            000642' \r
16460 INJ6            000655' \r
16461 INJ61           000672' \r
16462 INJ6A           000665' \r
16463 INJ7            000675' \r
16464 INJEST          000574' \r
16465 INPB            010000  INT\r
16466 INUS1           000470' \r
16467 INUS2           000500' \r
16468 INUS3           000504' \r
16469 INUSE           000461' \r
16470 IO              000020  INT\r
16471 IOACT           010000  INT\r
16472 IOBEG           000002  INT\r
16473 IOBKTL          040000  INT\r
16474 IOCON           000040  INT\r
16475 IODEND          020000  INT\r
16476 IODERR          200000  INT\r
16477 IODISC          400000  INT\r
16478 IODONE          400000  INT\r
16479 IODTER          100000  INT\r
16480 IOEND           000040  INT\r
16481 IOFST           000004  INT\r
16482 IOIMPM          400000  INT\r
16483 IONRCK          000100  INT\r
16484 IORDEL          000100  INT\r
16485 IORET           000020  INT\r
16486 IOS             000000  INT\r
16487 IOSTRT          000010  INT\r
16488 IOUSE           400000  INT\r
16489 IOW             000001  INT\r
16490 IOWC            000020  INT\r
16491 IOWS            400000  INT\r
16492 ITEM            000004  INT\r
16493 JBFADR          000000  INT\r
16494 JBFCTR          000002  INT\r
16495 JBFPTR          000001  INT\r
16496 JBTADR          000472' EXT\r
16497 JBUF            000005  INT\r
16498 JDAT            000011  INT\r
16499 JERR            002000  INT\r
16500 JIOW            100000  INT\r
16501 JNA             004000  INT\r
16502 JOB             000242' EXT\r
16503 LEAV0           000517' \r
16504 LEAV1           000514' \r
16505 \r
16506 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 19-3\r
16507 SCNSER  MAC     24-APR-78 03:04         SYMBOL TABLE\r
16508 \r
16509 LEAVE           000513' \r
16510 LINE            000002  \r
16511 LOOKB           040000  INT\r
16512 MIS             001130' \r
16513 MIS1            001131' \r
16514 MLTTYL          000377' EXT\r
16515 MOD35           000572' \r
16516 MOV3            001123' \r
16517 MOVBUF          001062' \r
16518 MOVMON          001133' \r
16519 MTTYLN          000231' EXT\r
16520 MTW             010000  INT\r
16521 NCERR           040000  \r
16522 NIO             020000  \r
16523 OBUFB           100000  INT\r
16524 OUT             000271' EXT\r
16525 OUTPB           004000  INT\r
16526 PDP             000003  INT\r
16527 PHPOS           000000' \r
16528 PICHN           000100  INT\r
16529 PIOFF           000400  \r
16530 PIOMOD          000725' EXT\r
16531 PION            000200  \r
16532 PJOBN           000471' EXT\r
16533 PLASTC          000002' \r
16534 PROG            000007  INT\r
16535 PSCHAR          000003' \r
16536 PUNIT           001037' EXT\r
16537 PUUOAC          000214' EXT\r
16538 PVPOS           000001' \r
16539 RUN             200000  INT\r
16540 RUNABL          204000  INT\r
16541 SCITAB          000707' \r
16542 SCITL           000010  \r
16543 SCN1            000024' \r
16544 SCN2            000035' \r
16545 SCNCHL          000344' EXT\r
16546 SCNCHN          000347' EXT\r
16547 SCNIN           000410' \r
16548 SCNIN0          000424' \r
16549 SCNIN1          000437' \r
16550 SCNINI          000005' INT\r
16551 SCNINT          000354' INT\r
16552 SCNRET          000516' EXT\r
16553 SCNSAV          000356' EXT\r
16554 SCTAB           000544' \r
16555 SCTABL          000012  \r
16556 SETIOD          001125' EXT\r
16557 SETMB1          000630' \r
16558 SETRUN          001042' EXT\r
16559 SIM35           000532' \r
16560 SIM4            000565' \r
16561 SIMLF           000564' \r
16562 \r
16563 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 19-4\r
16564 SCNSER  MAC     24-APR-78 03:04         SYMBOL TABLE\r
16565 \r
16566 SIMRO           000571' \r
16567 SIMVA           000561' \r
16568 SP              002000  \r
16569 SPACE           000556' \r
16570 SPC2            000740' \r
16571 SPC21           000743' \r
16572 SPC4A           000735' \r
16573 SPC7            000745' \r
16574 SPCCR           000717' \r
16575 SPCIN           000677' \r
16576 SPFF            000721' \r
16577 SPOUT           001053' \r
16578 SPVT            000722' \r
16579 STOP1           000646' EXT\r
16580 STTYB1          001103' EXT\r
16581 STTYBF          001107' EXT\r
16582 SYNC            040000  \r
16583 T35             004000  \r
16584 TAC             000001  INT\r
16585 TAC1            000002  INT\r
16586 TCOMM           000363' \r
16587 TCONLN          000506' EXT\r
16588 TEM             000010  INT\r
16589 TOUT            000010  \r
16590 TPCJOB          000004' \r
16591 TPMON           001000  \r
16592 TSCNLN          000000  EXT\r
16593 TTY             000120  SPD\r
16594 TTY0DB          000000  EXT\r
16595 TTYAT2          000070' \r
16596 TTYAT3          000110' \r
16597 TTYAT4          000115' \r
16598 TTYATC          020000  INT\r
16599 TTYATT          000065' INT\r
16600 TTYBFE          000636' EXT\r
16601 TTYBM1          000254' EXT\r
16602 TTYBUF          001110' EXT\r
16603 TTYCOM          000117' INT\r
16604 TTYCTR          001113' EXT\r
16605 TTYDAT          000247' \r
16606 TTYDET          000046' INT\r
16607 TTYDSP          000270' ENT\r
16608 TTYDT1          000052' \r
16609 TTYF0           000237' \r
16610 TTYFND          000243' INT\r
16611 TTYFNU          000242' INT\r
16612 TTYJOB          000130' INT\r
16613 TTYKIL          000041' INT\r
16614 TTYLST          000400' EXT\r
16615 TTYOU0          000302' \r
16616 TTYOU1          000321' \r
16617 TTYOU2          000310' \r
16618 TTYOUT          000300' \r
16619 \r
16620 \fSCNSER - SCANNER SERVICE       MACRO 10 05:51 24-APR-78 PAGE 19-5\r
16621 SCNSER  MAC     24-APR-78 03:04         SYMBOL TABLE\r
16622 \r
16623 TTYPTR          001137' EXT\r
16624 TTYSAV          001016' EXT\r
16625 TTYSET          000062' INT\r
16626 TTYSR1          000230' \r
16627 TTYSRC          000231' \r
16628 TTYSTR          000252' INT\r
16629 TTYTAB          001134' EXT\r
16630 TTYURC          000056' INT\r
16631 TTYUSE          010000  INT\r
16632 TTYUSR          000057' INT\r
16633 TYP1            000510' \r
16634 TYPE            000506' \r
16635 TYPX            000447' \r
16636 TYPX1           000456' \r
16637 USRB            000100  \r
16638 USRBC           020000  \r
16639 USRMOD          010000  INT\r
16640 UUO             000014  INT\r
16641 UXIT            000227' EXT\r
16642 VPOS            000004  \r
16643 VTFF            001055' \r
16644 \f   SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
16645    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
16646    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
16647 SSS                  YYY         YYY      SSS                  CCC                  OOO         OOO      NNN         NNN\r
16648 SSS                  YYY         YYY      SSS                  CCC                  OOO         OOO      NNN         NNN\r
16649 SSS                  YYY         YYY      SSS                  CCC                  OOO         OOO      NNN         NNN\r
16650 SSS                     YYY   YYY         SSS                  CCC                  OOO         OOO      NNNNNN      NNN\r
16651 SSS                     YYY   YYY         SSS                  CCC                  OOO         OOO      NNNNNN      NNN\r
16652 SSS                     YYY   YYY         SSS                  CCC                  OOO         OOO      NNNNNN      NNN\r
16653    SSSSSSSSS               YYY               SSSSSSSSS         CCC                  OOO         OOO      NNN   NNN   NNN\r
16654    SSSSSSSSS               YYY               SSSSSSSSS         CCC                  OOO         OOO      NNN   NNN   NNN\r
16655    SSSSSSSSS               YYY               SSSSSSSSS         CCC                  OOO         OOO      NNN   NNN   NNN\r
16656             SSS            YYY                        SSS      CCC                  OOO         OOO      NNN      NNNNNN\r
16657             SSS            YYY                        SSS      CCC                  OOO         OOO      NNN      NNNNNN\r
16658             SSS            YYY                        SSS      CCC                  OOO         OOO      NNN      NNNNNN\r
16659             SSS            YYY                        SSS      CCC                  OOO         OOO      NNN         NNN\r
16660             SSS            YYY                        SSS      CCC                  OOO         OOO      NNN         NNN\r
16661             SSS            YYY                        SSS      CCC                  OOO         OOO      NNN         NNN\r
16662 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
16663 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
16664 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
16665 \r
16666 \r
16667 \r
16668 \r
16669 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
16670 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
16671 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
16672 LLL                  SSS                        TTT                                                                     \r
16673 LLL                  SSS                        TTT                                                                     \r
16674 LLL                  SSS                        TTT                                                                     \r
16675 LLL                  SSS                        TTT                                                                     \r
16676 LLL                  SSS                        TTT                                                                     \r
16677 LLL                  SSS                        TTT                                                                     \r
16678 LLL                     SSSSSSSSS               TTT                                                                     \r
16679 LLL                     SSSSSSSSS               TTT                                                                     \r
16680 LLL                     SSSSSSSSS               TTT                                                                     \r
16681 LLL                              SSS            TTT                                                                     \r
16682 LLL                              SSS            TTT                                                                     \r
16683 LLL                              SSS            TTT                                                                     \r
16684 LLL                              SSS            TTT                                                                     \r
16685 LLL                              SSS            TTT                                                                     \r
16686 LLL                              SSS            TTT                                                                     \r
16687 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
16688 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
16689 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
16690 \r
16691 \r
16692 \r
16693 \r
16694 Request created: 24-April-1978  05:53:58\r
16695 File: DSKB0 :SYSCON.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:37\r
16696 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1609 \r
16697 File will be deleted after printing\r
16698 \f\r
16699 SYSCON - UUO HANDLER    MACRO 10 05:51 24-APR-78 PAGE 1\r
16700 S       MAC     24-APR-78 21:40         8-9-65\r
16701 \r
16702                                         XLIST\r
16703                                        LIST\r
16704                                 TITLE SYSCON - UUO HANDLER\r
16705                                 SUBTTL 8-9-65\r
16706                                 EXTERNAL CLOSE1,ILLINS,IN,JOBAC,JOBADR,JOBDAT\r
16707                                 EXTERNAL MTAPE1,OUT,RELEA1,UINBF,UINIT,UOUTBF\r
16708                                 EXTERNAL USRJDA,USRSAV,USTATO,USTATS,USTATZ\r
16709                                 EXTERNAL ERROR,UUOERR,CLDS,CLEN\r
16710                                 EXTERNAL IOIERR,MJOBPD,JOBPDL,WAIT1,USRREL,PUUOAC\r
16711                                 EXTERNAL JOBPDL,MJOBPD,USETST\r
16712 \r
16713 \fSYSCON - UUO HANDLER   MACRO 10 05:51 24-APR-78 PAGE 2\r
16714 SYSCON  MAC     24-APR-78 03:48         8-9-65\r
16715 \r
16716 \r
16717 \r
16718 \r
16719                                 , DEC 06 00 EX UUO L PT PRE 06 UUO HANDLER\r
16720                                 , 3/10/65\r
16721                                 ,   ALL UUOS DROP THEMSELVE IN REAL LOCATION 40, AND TRAP\r
16722                                 , TO 41. THE UUO HANDLER SHUFFLES THE UUO OFF TO THE USERS\r
16723                                 , 40,41, IF IT IS NOT A SYSTEM UUO.\r
16724                                 , SYSTEM UUOS FALL INTO THREE CLASSES, HANDLED DIFFERENTLY\r
16725                                 , (1) SYSTEM FUNCTIONS: LOAD ACS PDP, PROG, AND DISPATCH TO THE\r
16726                                 , FUNCTION.\r
16727                                 , (2) DEVICE INDEPENDENT I/O UUO: ALSO LOAD ACS DEVDAT AND IOS\r
16728                                 , AND GO THE THE SYSTEM FUNCTION.\r
16729                                 , (3) DEVICE DEPENDENT I/O UUOS: DO (1) AND (2), THEN DISPATCH\r
16730                                 , THROUGH THE TABLE WHOSE ADDRESS IS IN THE RIGHT HALF OF DEVSER(DEVD\r
16731                                 , CONTROL MAY ALWAYS BE RETURNED BY EXECUTING A\r
16732                                 ,    JRST UXIT\r
16733                                 , WHICH WILL RESTORE THE ACS, ARP BITS, AND RETURN.\r
16734                                 , THE UUO HANDLER IS PURE IF THE FOLLOWING RESTRICTIONS ARE OBSERVED.\r
16735                                 , RESTRICTIONS: UUOS CANNOT BE CALLED BY INTERRUPT SERVICE ROUTINES.\r
16736                                 , MONITOR INTERFACE\r
16737                                 ,         STORAGE: 89\r
16738                                 ,         ROUTINES CALLED: ILLINS, ADRCK, EXCLK, UUOH, SETIOS,UUOUSR\r
16739                                 ,            UUOS CALLED: CALL, INIT, RELEAS, CLOSE, OUTBUF, INBUF\r
16740                                 ,                         STATS, STATO, STATZ, OUTPUT, INPUT\r
16741                                 ,            DEVICE DEPENDENT:          DEN, DLK, DSO, DSI, DGF\r
16742                                 ,         SYMBOLS SET/USED:     \r
16743                                 ,                   ACCUMULATORS:       POP  S/U  TAC  S/U\r
16744                                 ,                                       PROG S/U  TAC1 S/U\r
16745                                 ,                                       SUB  S\r
16746                                 ,                   SYSTEM PARAMETERS:  UIO   U\r
16747                                 ,                                       USYS  U\r
16748                                 ,                                       USYSN U\r
16749                                 ,                   JOB AREA:           JOBAC  U  JOBDAT U\r
16750                                 ,                                       JOBPDP U\r
16751                                 ,                   SYSTEM ADDRESSES:   CLK    S/U\r
16752                                 ,                                       JOBADR U\r
16753                                 ,                                       USRLEV S/U\r
16754                                 ,                   DEVICE DATA BLOCK:  DEVSER U\r
16755                                 ,                   INTERNAL ADDRESSES: 40     S/U\r
16756                                 ,                                       UUO0   S/U\r
16757                                 ,                                       UUSAV  S/U\r
16758 \r
16759 \fSYSCON - UUO HANDLER   MACRO 10 05:51 24-APR-78 PAGE 3\r
16760 SYSCON  MAC     24-APR-78 03:48         8-9-65\r
16761 \r
16762 \r
16763 \r
16764 \r
16765                                 INTERNAL UUO0\r
16766 \r
16767         000000' 000000  000000  UUO0:     0\r
16768         000001' 250040  000040            EXCH TAC,40           ;SAVE TAC; PICK UP UUO\r
16769         000002' 202740  000000*           MOVEM 17,USRSAV       ;SAVE 17\r
16770         000003' 603040  077000            TLNE TAC,77000        ;0 UUO IS ILLEGAL\r
16771         000004' 603040  740000            TLNE TAC,740000       ;UUO FOR SYSTEM?\r
16772         000005' 254000  000030'           JRST UUOSYS           ;YES\r
16773         000006' 200740  000000*           MOVE 17,JOBADR        ;GET JOB AREA ADDRESS\r
16774         000007' 202057  000040            MOVEM TAC,40(17)      ;STORE UUO IN USERS 40\r
16775         000010' 550057  000041            HRRZ TAC,41(17)       ;PICK UP ADR OF USERS JSR\r
16776         000011' 322040  000030'           JUMPE TAC,UUOSYS      ;IF ADDRESS=0,ILLEGAL USER UU\r
16777         000012' 500040  000000'           HLL TAC,UUO0          ;PICK UP PROCESSOR FLAGS FOR\r
16778         000013' 607040  010000            TLNN TAC,USRMOD       ;WAS UUO FROM USER?\r
16779         000014' 254000  000030'           JRST UUOSYS           ;NO, ILLEGAL NUUO FROM SYSTEM\r
16780         000015' 201741  000000            MOVEI 17,(TAC)        ;17 NOW HAS REL. ADR. OF USER\r
16781         000016' 317740  000000*           CAMG 17,USRREL        ;DONT INCREMENT RETURN IF PC\r
16782         000017' 541041  000001            HRRI TAC,1(TAC)       ;INCREMENT PC\r
16783         000020' 250040  000000'           EXCH TAC,UUO0         ;SET UP RETURN  TO USER, PICK\r
16784                                                                 ;UP USERS FLAGS,PC\r
16785         000021' 313740  000016*           CAMLE 17,USRREL       ;LEGAL MEMORY?\r
16786         000022' 254000  000025'           JRST .+3  ;NO. DONT STORE PC\r
16787         000023' 270740  000006*           ADD 17,JOBADR         ;MAKE REL. ADR. INTO ABS. ADR\r
16788         000024' 202057  000000            MOVEM TAC,(17)        ;STORE FLAGS AND PC LIKE JSR\r
16789         000025' 200040  000040            MOVE TAC,40           ;RESTORE TAC\r
16790         000026' 200740  000002*           MOVE 17,USRSAV        ;RESTORE 17\r
16791         000027' 254120  000000'           JRST 2,@UUO0          ;RETURN TO USER\r
16792 \r
16793 \fSYSCON - UUO HANDLER   MACRO 10 05:51 24-APR-78 PAGE 4\r
16794 SYSCON  MAC     24-APR-78 03:48         8-9-65\r
16795 \r
16796 \r
16797 \r
16798 \r
16799         000030' 250040  000040  UUOSYS:   EXCH TAC,40                   ;RESTORE TA. RESTORE THE UUO\r
16800         000031' 200740  000000'           MOVE 17,UUO0                  ;PICK UP PROCESSOR FLAG\r
16801         000032' 607740  010000            TLNN 17,USRMOD                ;SYSTEM UUO FROM SYSTEM?\r
16802         000033' 254000  000046'           JRST UUOSY1                   ;YES\r
16803         000034' 200740  000023*           MOVE 17,JOBADR                ;NO. PICK UP ADR. OF USER PRO\r
16804         000035' 202717  000016            MOVEM 16,16(17)               ;STORE AC16 IN USER 16\r
16805         000036' 550700  000017            HRRZ 16,17                    ;SET UP BLP POINTER\r
16806         000037' 251717  000015            BLT 16,15(17)                 ;MOVE REAL ACS TO USER AREA\r
16807         000040' 200000  000026*           MOVE 0,USRSAV                 ;MOVE USER 17 TO USERS AREA\r
16808         000041' 202017  000017            MOVEM 0,17(17)\r
16809         \r
16810         000042' 200440  000000*           MOVE JDAT,JOBDAT              ;LOAD UP JOB DAT AREA ADDRES\r
16811         000043' 205140  000000*           MOVSI PDP,MJOBPD              ;LOAD UP PUSH DOWN AC AND\r
16812         000044' 541151  000000*           HRRI PDP,JOBPDL(JDAT)                   ;MAKE ABSOLUTE PATH\r
16813         000045' 334340  000017            SKIPA PROG,17       ;PROGRAM BASE ADDRESS\r
16814         000046' 200740  000040* UUOSY1:   MOVE 17,USRSAV                ;RESTORE AC17 IF UUO FROM SYS\r
16815         000047' 261140  000000'           PUSH PDP,UUO0                 ;SAVE RETURN ON PUSH DOWN LIS\r
16816         000050' 200600  000040            MOVE UUO,40                   ;GET THE UUO INTO AC(UUO)\r
16817         000051' 135100  000250'           LDB TAC1,[POINT 9,UUO,8]                ;PICK UP UUO OP COD\r
16818         000052' 301100  000100            CAIL TAC1,100                 ;ILLEGAL INSTRUCTION?\r
16819         000053' 254000  000000*           JRST ILLINS                   ;YES\r
16820         000054' 305100  000040            CAIGE TAC1,40                 ;SYSTEM UUO?\r
16821         000055' 254000  000000*           JRST UUOERR                   ;NO. ILLEGAL\r
16822         000056' 135040  000000*           LDB TAC,PUUOAC\r
16823         000057' 200301  000000*           MOVE DEVDAT,USRJDA(TAC)       ;GET DDB\r
16824         000060' 305100  000060            CAIGE TAC1,100-UUOT2L                   ;AN IO UUO?\r
16825         000061' 254000  000070'           JRST UUODSP                   ;NO\r
16826         000062' 302100  000070            CAIE TAC1,70          ;CLOSE AND RELEASE ARE ALWAYS LEGAL\r
16827         000063' 306100  000071            CAIN TAC1,71\r
16828         000064' 322300  000236'           JUMPE DEVDAT,UXIT\r
16829         000065' 322300  000000*           JUMPE DEVDAT,IOIERR ;CHANNEL MUST BE ASSIGNED\r
16830         000066' 200006  000002            MOVE IOS,DEVIOS(DEVDAT)                 ;GET DATA BLOCK STA\r
16831         000067' 254002  000015'           JRST UUOT2-77+UUOT2L-1(TAC1)  ;DISPATCH\r
16832 \r
16833         000070' 305100  000042  UUODSP:   CAIGE TAC1,40+UUOT1L          ;LEGAL SYSTEM UUO?\r
16834         000071' 254002  000033'           JRST UUOT1-40(TAC1)           ;YES. DISPATCH\r
16835         000072' 254000  000055*           JRST UUOERR\r
16836 \r
16837 \fSYSCON - UUO HANDLER   MACRO 10 05:51 24-APR-78 PAGE 5\r
16838 SYSCON  MAC     24-APR-78 03:48         8-9-65\r
16839 \r
16840 \r
16841 \r
16842         000073' 254000  000162' UUOT1:    JRST UCALL            ;40\r
16843         000074' 254000  000000*           JRST UINIT\r
16844                                 ;ADD NON IO UUOS HERE\r
16845 \r
16846                         000002  UUOT1L=.-UUOT1\r
16847 \r
16848         000075'                 UUOT2:\r
16849                                 ;ADD IO UUOS HERE\r
16850         000075' 254000  000000*           JRST USETST\r
16851         000076' 254000  000000*           JRST USTATO\r
16852         000077' 254000  000000*           JRST USTATS\r
16853         000100' 254000  000000*           JRST USTATZ\r
16854         000101' 254000  000000*           JRST UINBF\r
16855         000102' 254000  000000*           JRST UOUTBF\r
16856         000103' 254000  000000*           JRST IN\r
16857         000104' 254000  000000*           JRST OUT\r
16858         000105' 254000  000000*           JRST CLOSE1\r
16859         000106' 254000  000000*           JRST RELEA1\r
16860         000107' 254000  000000*           JRST MTAPE1\r
16861         000110' 254000  000160'           JRST UDGF\r
16862         000111' 254000  000156'           JRST UDSI\r
16863         000112' 254000  000154'           JRST UDSO\r
16864         000113' 254000  000143'           JRST UDLK\r
16865         000114' 254000  000131'           JRST UDEN             ;77\r
16866                         000020  UUOT2L=.-UUOT2\r
16867 \r
16868 \fSYSCON - UUO HANDLER   MACRO 10 05:51 24-APR-78 PAGE 6\r
16869 SYSCON  MAC     24-APR-78 03:48         8-9-65\r
16870 \r
16871 \r
16872 \r
16873                                 ,DISPATCH TO SPECIAL ROUTINE\r
16874                                 DEFINE DSPT(A)\r
16875                                 <U'A:     PUSHJ PDP,UDSP\r
16876                                 JRST A(TAC)\r
16877                                 >\r
16878         000115' 200046  000003  UDSP:     MOVE TAC,DEVSER(DEVDAT)\r
16879         000116' 200106  000001            MOVE TAC1,DEVCHR(DEVDAT)\r
16880         000117' 607100  000020            TLNN TAC1,IORET\r
16881         000120' 201040  000116'           MOVEI TAC,NRTOSP-4    ;IGNORE THESE CALLS FOR NON-\r
16882         000121' 263140  000000            POPJ PDP,\r
16883         000122' 254000  000235' NRTOSP:   JRST CUXIT1           ;SKIP RETURN\r
16884         000123' 254000  000235'           JRST CUXIT1           ;SKIP RETURN\r
16885         000124' 265240  000000*           JSP DAT,ERROR         ;DUMP0\r
16886         000125' 265240  000124*           JSP DAT,ERROR         ;DUMP1\r
16887         000126' 254000  000072*           JRST UUOERR                   ;USETO\r
16888         000127' 254000  000126*           JRST UUOERR                   ;USETI\r
16889         000130' 254000  000127*           JRST UUOERR                   ;GETF\r
16890         000131' 260140  000000* UDEN:     PUSHJ PDP,WAIT1\r
16891         000132' 661000  000002            TLO IOS,IOBEG\r
16892         000133' 620000  776000            TRZ IOS,776000\r
16893         000134' 202006  000002            MOVEM IOS,DEVIOS(DEVDAT)\r
16894         000135' 135040  000056*           LDB TAC,PUUOAC\r
16895         000136' 661300  020000            TLO DEVDAT,ENTRB\r
16896         000137' 621300  002000            TLZ DEVDAT,CLOSB\r
16897         000140' 502301  000057*           HLLM DEVDAT,USRJDA(TAC)\r
16898         000141' 260140  000115'           PUSHJ PDP,UDSP\r
16899         000142' 254001  000004            JRST DEN(TAC)\r
16900 \r
16901         000143' 260140  000131* UDLK:     PUSHJ PDP,WAIT1\r
16902         000144' 630000  000251'           TDZ IOS,[XWD IOEND,776000]\r
16903         000145' 202006  000002            MOVEM IOS,DEVIOS(DEVDAT)\r
16904         000146' 135040  000135*           LDB TAC,PUUOAC\r
16905         000147' 661300  040000            TLO DEVDAT,LOOKB\r
16906         000150' 621300  002000            TLZ DEVDAT,CLOSB\r
16907         000151' 502301  000140*           HLLM DEVDAT,USRJDA(TAC)\r
16908         000152' 260140  000115'           PUSHJ PDP,UDSP\r
16909         000153' 254001  000005            JRST DLK(TAC)\r
16910 \r
16911         000154' 260140  000115'           DSPT(DSO)^UDSO:         PUSHJ PDP,UDSP\r
16912         000155' 254001  000010  JRST DSO(TAC)\r
16913 \r
16914         000156' 260140  000115'           DSPT(DSI)^UDSI:         PUSHJ PDP,UDSP\r
16915         000157' 254001  000011  JRST DSI(TAC)\r
16916 \r
16917         000160' 260140  000115'           DSPT(DGF)^UDGF:         PUSHJ PDP,UDSP\r
16918         000161' 254001  000012  JRST DGF(TAC)\r
16919 \r
16920 \r
16921 \fSYSCON - UUO HANDLER   MACRO 10 05:51 24-APR-78 PAGE 7\r
16922 SYSCON  MAC     24-APR-78 03:48         8-9-65\r
16923 \r
16924 \r
16925 \r
16926                                 , 6-CSS-DEC-CALL-PL-PRE2\r
16927                                 , H. R. MORSE       64-11-17\r
16928                                 , CALLING SEQUENCE\r
16929                                 ,         CALL 0,[SIXBIT/NAME/]\r
16930                                 , WHERE NAME IS THE NAME OF A SYSTEM ROUTINE.\r
16931                                 , IF NO SYSTEM ROUTINE WITH THE SPECIFIED NAME IF FOUND, THIS ROUTINE\r
16932                                 , EXISTS TO ERROR.\r
16933                                 , MONITOR INTERFACE\r
16934                                 ,         ROUTINES CALLED: ERROR, HASH, SYSTEM ROUTINES DEFINED BY\r
16935                                 ,                             USE OF UCALIN.\r
16936                                 ,         SYMBOLS SET/USED:\r
16937                                 ,                   ACCUMULATORS:       DAT S/U         PROG U\r
16938                                 ,                                       PDP U           UUO  S/U\r
16939                                 ;CONTENTS OF USER AC PLACED IN AC TAC\r
16940 \r
16941         000162' 661600  000011  UCALL:    TLO UUO,JDAT          ;RELATIVIZE UUO ADDRESS\r
16942         000163' 200260  000014            MOVE DAT,@UUO;                  DAT:=NAME OF SYSTEM ROUTINE C\r
16943         000164' 205100  777760            MOVSI TAC1,-UCLLEN\r
16944         000165' 312242  000174'           CAME DAT,UCLTAB(TAC1);          SEARCH SYSTEM TOUTINE NAME TA\r
16945         000166' 253100  000165'           AOBJN TAC1,.-1\r
16946         000167' 135240  000146*           LDB DAT,PUUOAC        ;USER UUO AC FIELD\r
16947         000170' 505240  000011            HRLI DAT,JDAT\r
16948         000171' 200060  000005            MOVE TAC,@DAT         ;PICK UP CONTENTS OF USER AC\r
16949         000172' 321122  000214'           JUMPL TAC1,@UCLJMP(TAC1)\r
16950         000173' 254000  000130*           JRST UUOERR\r
16951 \r
16952                                 DEFINE NAMES\r
16953                                 <         X DDTIN,DDTIN\r
16954                                  X DDTOUT,DDTOUT\r
16955                                  X DDTGT,DDTGT\r
16956                                  X DDTRL,DDTRL\r
16957                                  X SETDDT,SETDDT\r
16958                                  X DEVCHR,DVCHR\r
16959                                 X GETCHR,DVCHR\r
16960                                 X WAIT,WAIT\r
16961                                  X RESET,RESET\r
16962                                  X EXIT,EXIT\r
16963                                  X LDRBLT,LDRBLT\r
16964                                  X UTPCLR,UTPCLR\r
16965                                  X DATE,DATE\r
16966                                  X SETPOV,SETPOV\r
16967                                  X SWITCH,SWITCH\r
16968                                  X TIMER,TIMER\r
16969                                 >\r
16970                                 DEFINE X (A,B)\r
16971                                 <         SIXBIT /A/\r
16972                                 >\r
16973         000174' 444464  515600  UCLTAB:   NAMES^          X DDTIN,DDTIN^          SIXBIT /DDTIN/\r
16974         000175' 444464  576564   X DDTOUT,DDTOUT^         SIXBIT /DDTOUT/\r
16975         000176' 444464  476400   X DDTGT,DDTGT^   SIXBIT /DDTGT/\r
16976         000177' 444464  625400   X DDTRL,DDTRL^   SIXBIT /DDTRL/\r
16977 \r
16978 \fSYSCON - UUO HANDLER   MACRO 10 05:51 24-APR-78 PAGE 7-1\r
16979 SYSCON  MAC     24-APR-78 03:48         8-9-65\r
16980 \r
16981         000200' 634564  444464   X SETDDT,SETDDT^         SIXBIT /SETDDT/\r
16982         000201' 444566  435062   X DEVCHR,DVCHR^          SIXBIT /DEVCHR/\r
16983         000202' 474564  435062  X GETCHR,DVCHR^   SIXBIT /GETCHR/\r
16984         000203' 674151  640000  X WAIT,WAIT^      SIXBIT /WAIT/\r
16985         000204' 624563  456400   X RESET,RESET^   SIXBIT /RESET/\r
16986         000205' 457051  640000   X EXIT,EXIT^     SIXBIT /EXIT/\r
16987         000206' 544462  425464   X LDRBLT,LDRBLT^         SIXBIT /LDRBLT/\r
16988         000207' 656460  435462   X UTPCLR,UTPCLR^         SIXBIT /UTPCLR/\r
16989         000210' 444164  450000   X DATE,DATE^     SIXBIT /DATE/\r
16990         000211' 634564  605766   X SETPOV,SETPOV^         SIXBIT /SETPOV/\r
16991         000212' 636751  644350   X SWITCH,SWITCH^         SIXBIT /SWITCH/\r
16992         000213' 645155  456200   X TIMER,TIMER^   SIXBIT /TIMER/\r
16993                         000020  UCLLEN=.-UCLTAB\r
16994 \r
16995                                 DEFINE X(A,B)\r
16996                                 <         JRST B\r
16997                                 EXTERNAL B\r
16998                                 >\r
16999         000214' 254000  000000* UCLJMP:   NAMES^          X DDTIN,DDTIN^          JRST DDTIN\r
17000         000215' 254000  000000*  X DDTOUT,DDTOUT^         JRST DDTOUT\r
17001         000216' 254000  000000*  X DDTGT,DDTGT^   JRST DDTGT\r
17002         000217' 254000  000000*  X DDTRL,DDTRL^   JRST DDTRL\r
17003         000220' 254000  000000*  X SETDDT,SETDDT^         JRST SETDDT\r
17004         000221' 254000  000000*  X DEVCHR,DVCHR^          JRST DVCHR\r
17005         000222' 254000  000221* X GETCHR,DVCHR^   JRST DVCHR\r
17006         000223' 254000  000000* X WAIT,WAIT^      JRST WAIT\r
17007         000224' 254000  000000*  X RESET,RESET^   JRST RESET\r
17008         000225' 254000  000000*  X EXIT,EXIT^     JRST EXIT\r
17009         000226' 254000  000000*  X LDRBLT,LDRBLT^         JRST LDRBLT\r
17010         000227' 254000  000000*  X UTPCLR,UTPCLR^         JRST UTPCLR\r
17011         000230' 254000  000000*  X DATE,DATE^     JRST DATE\r
17012         000231' 254000  000000*  X SETPOV,SETPOV^         JRST SETPOV\r
17013         000232' 254000  000000*  X SWITCH,SWITCH^         JRST SWITCH\r
17014         000233' 254000  000000*  X TIMER,TIMER^   JRST TIMER\r
17015 \r
17016 \fSYSCON - UUO HANDLER   MACRO 10 05:51 24-APR-78 PAGE 8\r
17017 SYSCON  MAC     24-APR-78 03:48         8-9-65\r
17018 \r
17019 \r
17020 \r
17021                                 , DEV 06 00 EX COM L PT PRE 02 UXIT\r
17022                                 , H. R. MORSE       64-12-26\r
17023                                 , CALLING SEQUENCE\r
17024                                 ,         ANY TRANSFER OF CONTROL TO UXIT\r
17025                                 , EXITS THIS UUO CALL.\r
17026                                 , MONITOR INTERFACE\r
17027                                 ,         SYMBOLS SET/USED:\r
17028                                 ,                   ACCUMULATORS:       MAY RESTORE ALL ACCUMULATORS\r
17029                                 ,                                       JDAT U\r
17030                                 ,                                       PDP U\r
17031                                 ,                                       17  S/U\r
17032                                 ,                   JOB AREA:           JOBAC U\r
17033                                 ,                   SYSTEM ADDRESSES:   USRUXT U\r
17034                                 ,                                       USRLEV S/U\r
17035 \r
17036 \fSYSCON - UUO HANDLER   MACRO 10 05:51 24-APR-78 PAGE 9\r
17037 SYSCON  MAC     24-APR-78 03:48         8-9-65\r
17038 \r
17039 \r
17040 \r
17041 \r
17042                                           INTERN UXIT,CUXIT1,CUXIT2\r
17043 \r
17044         000234' 350003  000000  CUXIT2:   AOS (PDP)\r
17045         000235' 350003  000000  CUXIT1:   AOS (PDP)\r
17046         000236' 262140  000046* UXIT:     POP PDP,USRSAV                ;RESTORE UUO EXIT ADDRESS FRO\r
17047         000237' 250040  000236*           EXCH TAC,USRSAV\r
17048         000240' 607040  010000            TLNN TAC,USRMOD               ;WAS ENTRY FROM USER MODE?\r
17049         000241' 254000  000246'           JRST UXIT2\r
17050         000242' 202040  000237*           MOVEM TAC,USRSAV              ;SET UP RETURN\r
17051         000243' 205751  000000*           MOVSI 17, JOBAC(JDAT)                   ;RESTORE ACCUMULATO\r
17052         000244' 251740  000017            BLT 17,17\r
17053         000245' 254120  000242* UXIT1:    JRST 2,@USRSAV                ;RETURN TO USERS PROGRAM\r
17054 \r
17055         000246' 250040  000245* UXIT2:    EXCH TAC,USRSAV\r
17056         000247' 254120  000246*           JRST 2,@USRSAV\r
17057 \r
17058                                           END,\r
17059 \r
17060 NO ERRORS DETECTED\r
17061 \r
17062 PROGRAM BREAK IS 000252\r
17063 \r
17064 9K CORE USED\r
17065 \r
17066 \fSYSCON - UUO HANDLER   MACRO 10 05:51 24-APR-78 PAGE 10\r
17067 SYSCON  MAC     24-APR-78 03:48         SYMBOL TABLE\r
17068 \r
17069 A               000000  INT\r
17070 AC1             000015  INT\r
17071 AC2             000016  INT\r
17072 AC3             000017  INT\r
17073 AL              000001  INT\r
17074 ASSCON          400000  INT\r
17075 ASSPRG          200000  INT\r
17076 B               000014  INT\r
17077 BUFPNT          000012  INT\r
17078 BUFWRD          000013  INT\r
17079 CLDS            000000  EXT\r
17080 CLEN            000000  EXT\r
17081 CLOSB           002000  INT\r
17082 CLOSE1          000105' EXT\r
17083 CLSIN           000002  INT\r
17084 CLSOUT          000001  INT\r
17085 CUXIT1          000235' INT\r
17086 CUXIT2          000234' INT\r
17087 D               000017  INT\r
17088 DAT             000005  INT\r
17089 DATE            000230' EXT\r
17090 DCL             000001  INT\r
17091 DCW             020000  INT\r
17092 DDI             000007  INT\r
17093 DDO             000006  INT\r
17094 DDTGT           000216' EXT\r
17095 DDTIN           000214' EXT\r
17096 DDTMEM          000037  INT\r
17097 DDTOUT          000215' EXT\r
17098 DDTRL           000217' EXT\r
17099 DDTSYM          000036  INT\r
17100 DEN             000004  INT\r
17101 DEVADR          000007  INT\r
17102 DEVBUF          000006  INT\r
17103 DEVCHR          000001  INT\r
17104 DEVCTR          000011  INT\r
17105 DEVDAT          000006  INT\r
17106 DEVIAD          000007  INT\r
17107 DEVIOS          000002  INT\r
17108 DEVLOG          000005  INT\r
17109 DEVMOD          000004  INT\r
17110 DEVNAM          000000  INT\r
17111 DEVOAD          000010  INT\r
17112 DEVPTR          000010  INT\r
17113 DEVSER          000003  INT\r
17114 DGF             000012  INT\r
17115 DIN             000003  INT\r
17116 DLK             000005  INT\r
17117 DOU             000002  INT\r
17118 DR              000016  INT\r
17119 DRL             000000  INT\r
17120 DSI             000011  INT\r
17121 \r
17122 \r
17123 \fSYSCON - UUO HANDLER   MACRO 10 05:51 24-APR-78 PAGE 10-1\r
17124 SYSCON  MAC     24-APR-78 03:48         SYMBOL TABLE\r
17125 \r
17126 DSO             000010  INT\r
17127 DTW             040000  INT\r
17128 DVAVAL          000040  INT\r
17129 DVCDR           100000  INT\r
17130 DVCHR           000222' EXT\r
17131 DVDIR           000004  INT\r
17132 DVDIRI          400000  INT\r
17133 DVIN            000002  INT\r
17134 DVLPT           040000  INT\r
17135 DVMTA           000020  INT\r
17136 DVOUT           000001  INT\r
17137 DVTTY           000010  INT\r
17138 ENTRB           020000  INT\r
17139 ERROR           000125' EXT\r
17140 EXIT            000225' EXT\r
17141 I               000010  INT\r
17142 IB              000013  INT\r
17143 IBUFB           200000  INT\r
17144 ILLINS          000053' EXT\r
17145 IN              000103' EXT\r
17146 INITB           400000  INT\r
17147 INPB            010000  INT\r
17148 IO              000020  INT\r
17149 IOACT           010000  INT\r
17150 IOBEG           000002  INT\r
17151 IOBKTL          040000  INT\r
17152 IOCON           000040  INT\r
17153 IODEND          020000  INT\r
17154 IODERR          200000  INT\r
17155 IODISC          400000  INT\r
17156 IODONE          400000  INT\r
17157 IODTER          100000  INT\r
17158 IOEND           000040  INT\r
17159 IOFST           000004  INT\r
17160 IOIERR          000065' EXT\r
17161 IOIMPM          400000  INT\r
17162 IONRCK          000100  INT\r
17163 IORDEL          000100  INT\r
17164 IORET           000020  INT\r
17165 IOS             000000  INT\r
17166 IOSTRT          000010  INT\r
17167 IOUSE           400000  INT\r
17168 IOW             000001  INT\r
17169 IOWC            000020  INT\r
17170 IOWS            400000  INT\r
17171 ITEM            000004  INT\r
17172 JBFADR          000000  INT\r
17173 JBFCTR          000002  INT\r
17174 JBFPTR          000001  INT\r
17175 JBUF            000005  INT\r
17176 JDAT            000011  INT\r
17177 JERR            002000  INT\r
17178 \r
17179 \r
17180 \fSYSCON - UUO HANDLER   MACRO 10 05:51 24-APR-78 PAGE 10-2\r
17181 SYSCON  MAC     24-APR-78 03:48         SYMBOL TABLE\r
17182 \r
17183 JIOW            100000  INT\r
17184 JNA             004000  INT\r
17185 JOBAC           000243' EXT\r
17186 JOBADR          000034' EXT\r
17187 JOBDAT          000042' EXT\r
17188 JOBPDL          000044' EXT\r
17189 LDRBLT          000226' EXT\r
17190 LOOKB           040000  INT\r
17191 MJOBPD          000043' EXT\r
17192 MTAPE1          000107' EXT\r
17193 MTW             010000  INT\r
17194 NRTOSP          000122' \r
17195 OBUFB           100000  INT\r
17196 OUT             000104' EXT\r
17197 OUTPB           004000  INT\r
17198 PDP             000003  INT\r
17199 PICHN           000100  INT\r
17200 PROG            000007  INT\r
17201 PUUOAC          000167' EXT\r
17202 RELEA1          000106' EXT\r
17203 RESET           000224' EXT\r
17204 RUN             200000  INT\r
17205 RUNABL          204000  INT\r
17206 SETDDT          000220' EXT\r
17207 SETPOV          000231' EXT\r
17208 SWITCH          000232' EXT\r
17209 TAC             000001  INT\r
17210 TAC1            000002  INT\r
17211 TEM             000010  INT\r
17212 TIMER           000233' EXT\r
17213 TTYATC          020000  INT\r
17214 TTYUSE          010000  INT\r
17215 UCALL           000162' \r
17216 UCLJMP          000214' \r
17217 UCLLEN          000020  \r
17218 UCLTAB          000174' \r
17219 UDEN            000131' \r
17220 UDGF            000160' \r
17221 UDLK            000143' \r
17222 UDSI            000156' \r
17223 UDSO            000154' \r
17224 UDSP            000115' \r
17225 UINBF           000101' EXT\r
17226 UINIT           000074' EXT\r
17227 UOUTBF          000102' EXT\r
17228 USETST          000075' EXT\r
17229 USRJDA          000151' EXT\r
17230 USRMOD          010000  INT\r
17231 USRREL          000021' EXT\r
17232 USRSAV          000247' EXT\r
17233 USTATO          000076' EXT\r
17234 USTATS          000077' EXT\r
17235 \r
17236 \r
17237 \fSYSCON - UUO HANDLER   MACRO 10 05:51 24-APR-78 PAGE 10-3\r
17238 SYSCON  MAC     24-APR-78 03:48         SYMBOL TABLE\r
17239 \r
17240 USTATZ          000100' EXT\r
17241 UTPCLR          000227' EXT\r
17242 UUO             000014  INT\r
17243 UUO0            000000' INT\r
17244 UUODSP          000070' \r
17245 UUOERR          000173' EXT\r
17246 UUOSY1          000046' \r
17247 UUOSYS          000030' \r
17248 UUOT1           000073' \r
17249 UUOT1L          000002  \r
17250 UUOT2           000075' \r
17251 UUOT2L          000020  \r
17252 UXIT            000236' INT\r
17253 UXIT1           000245' \r
17254 UXIT2           000246' \r
17255 WAIT            000223' EXT\r
17256 WAIT1           000143' EXT\r
17257 \f   SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
17258    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
17259    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
17260 SSS                  YYY         YYY      SSS                  CCC                  SSS                  SSS            \r
17261 SSS                  YYY         YYY      SSS                  CCC                  SSS                  SSS            \r
17262 SSS                  YYY         YYY      SSS                  CCC                  SSS                  SSS            \r
17263 SSS                     YYY   YYY         SSS                  CCC                  SSS                  SSS            \r
17264 SSS                     YYY   YYY         SSS                  CCC                  SSS                  SSS            \r
17265 SSS                     YYY   YYY         SSS                  CCC                  SSS                  SSS            \r
17266    SSSSSSSSS               YYY               SSSSSSSSS         CCC                     SSSSSSSSS            SSSSSSSSS   \r
17267    SSSSSSSSS               YYY               SSSSSSSSS         CCC                     SSSSSSSSS            SSSSSSSSS   \r
17268    SSSSSSSSS               YYY               SSSSSSSSS         CCC                     SSSSSSSSS            SSSSSSSSS   \r
17269             SSS            YYY                        SSS      CCC                              SSS                  SSS\r
17270             SSS            YYY                        SSS      CCC                              SSS                  SSS\r
17271             SSS            YYY                        SSS      CCC                              SSS                  SSS\r
17272             SSS            YYY                        SSS      CCC                              SSS                  SSS\r
17273             SSS            YYY                        SSS      CCC                              SSS                  SSS\r
17274             SSS            YYY                        SSS      CCC                              SSS                  SSS\r
17275 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
17276 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
17277 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
17278 \r
17279 \r
17280 \r
17281 \r
17282 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17283 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17284 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17285 LLL                  SSS                        TTT                                                                     \r
17286 LLL                  SSS                        TTT                                                                     \r
17287 LLL                  SSS                        TTT                                                                     \r
17288 LLL                  SSS                        TTT                                                                     \r
17289 LLL                  SSS                        TTT                                                                     \r
17290 LLL                  SSS                        TTT                                                                     \r
17291 LLL                     SSSSSSSSS               TTT                                                                     \r
17292 LLL                     SSSSSSSSS               TTT                                                                     \r
17293 LLL                     SSSSSSSSS               TTT                                                                     \r
17294 LLL                              SSS            TTT                                                                     \r
17295 LLL                              SSS            TTT                                                                     \r
17296 LLL                              SSS            TTT                                                                     \r
17297 LLL                              SSS            TTT                                                                     \r
17298 LLL                              SSS            TTT                                                                     \r
17299 LLL                              SSS            TTT                                                                     \r
17300 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17301 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17302 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17303 \r
17304 \r
17305 \r
17306 \r
17307 Request created: 24-April-1978  05:53:58\r
17308 File: DSKB0 :SYSCSS.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:38\r
17309 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1595 \r
17310 File will be deleted after printing\r
17311 \f\r
17312 SYSCSS - COMMON SYSTEM SUBROUTINES      MACRO 10 05:51 24-APR-78 PAGE 1\r
17313 S       MAC     24-APR-78 21:40         8-9-65\r
17314 \r
17315                                         XLIST\r
17316                                        LIST\r
17317                                 TITLE SYSCSS - COMMON SYSTEM SUBROUTINES\r
17318                                 SUBTTL 8-9-65\r
17319                                 EXTERNAL UXIT,ERROR,USRDDT,USRPOV,PUUOAC,USRREL\r
17320 \r
17321                                 ;RETURN THE DATE TO THE USER\r
17322 \r
17323 \r
17324                                           INTERNAL DATE,THSDAT\r
17325 \r
17326         000000' 200240  000002' DATE:     MOVE DAT, THSDAT\r
17327         000001' 254000  000005'           JRST STOAC\r
17328 \r
17329         000002' 000000  000000  THSDAT:   0             ;CONTAINS THE DATE\r
17330 \r
17331                                 ;RETURN TIME SYSTEM HAS RUN IN 60THS OF A SECOND\r
17332 \r
17333                                 INTERNAL TIMER\r
17334                                 EXTERNAL TIME\r
17335 \r
17336         000003' 334240  000000* TIMER:    SKIPA DAT, TIME  ;FALL INTO STOAC\r
17337 \r
17338                                 ;RETURN DATA SWITCHES\r
17339 \r
17340                                 INTERNAL SWITCH\r
17341 \r
17342         000004' 700040  000005  SWITCH:   DATAI DAT\r
17343 \r
17344                                 ;STORE DAT IN USER AC\r
17345 \r
17346                                 INTERNAL STOAC\r
17347 \r
17348         000005' 135040  000000* STOAC:    LDB TAC, PUUOAC\r
17349         000006' 505040  000007            HRLI TAC, PROG\r
17350         000007' 202260  000001            MOVEM DAT,@TAC\r
17351         000010' 254000  000000*           JRST UXIT\r
17352 \r
17353                                 ;RETURN DEVICE CHARACTERISTICS\r
17354 \r
17355                                 INTERNAL DVCHR\r
17356                                 EXTERNAL JOB,DEVSRC,PJOBN\r
17357 \r
17358         000011' 200200  000000* DVCHR:    MOVE ITEM,JOB\r
17359         000012' 260140  000000*           PUSHJ PDP,DEVSRC      ;SEARCH FOR DEVICE\r
17360         000013' 334240  000034'           SKIPA DAT,[0]         ;NOT A DEVICE\r
17361         000014' 334246  000004            SKIPA DAT,DEVMOD(DEVDAT)\r
17362         000015' 254000  000005'           JRST STOAC\r
17363         000016' 135040  000000*           LDB TAC,PJOBN         ;GET JOB NUMBER\r
17364         000017' 312040  000011*           CAME TAC,JOB          ;DOES USER ALREADY HAVE THIS DEVICE?\r
17365         000020' 606240  600000            TRNN DAT,ASSCON+ASSPRG        ;NO\r
17366         000021' 661240  000040            TLO DAT,DVAVAL        ;NO, BUT HE CAN GET IT\r
17367         000022' 254000  000005'           JRST STOAC\r
17368 \r
17369 \fSYSCSS - COMMON SYSTEM SUBROUTINES     MACRO 10 05:51 24-APR-78 PAGE 2\r
17370 SYSCSS  MAC     24-APR-78 03:01         8-9-65\r
17371 \r
17372 \r
17373 \r
17374                                 , CALLING SEQUENCE\r
17375                                 ,         PUSHJ PDP,HASH\r
17376                                 ,         EXIT;L                ALWAYS RETURNS HERE\r
17377                                 , COMPUTES XOR HASH TYPE INDEX FROM NAME (SIXBIT CODE) IN AC DAT\r
17378                                 , AND LEAVES THE RESULT (00<OR= INDEX <OR=77) AS AN INTEGER IN TAC.\r
17379                                 , THE ALGORITHM IS AS FOLLOWS: (V = EXCLUSIVE OR)\r
17380                                 , BIT     35:=8V17V26V35\r
17381                                 ,         34:=7V16V25V34\r
17382                                 ,         33:=6V15V24V33\r
17383                                 ,         32:=5V11V23V29\r
17384                                 ,         31:=4V10V22V28\r
17385                                 ,         30:=3V9V21V27\r
17386                                 , MONITOR INTERFACE\r
17387                                 ,         SYMBOLS SET/USED:\r
17388                                 ,                   ACCUMULATORS:       DAT U           TAC S/U\r
17389                                 ,                                       PDP S/U         TAC1 S/U\r
17390                                 ;         INTERN HASH\r
17391 \r
17392                                 ;HASH:    HLR TAC,DAT\r
17393                                 ;         MOVE TAC1,DAT\r
17394                                 ;         XORB TAC1,TAC\r
17395                                 ;         ROT TAC1,-11\r
17396                                 ;         XOR TAC,TAC1\r
17397                                 ;         ANDI TAC,UTBNM1\r
17398                                 ;         POPJ PDP,             ;       RETURN\r
17399 \r
17400 \fSYSCSS - COMMON SYSTEM SUBROUTINES     MACRO 10 05:51 24-APR-78 PAGE 3\r
17401 SYSCSS  MAC     24-APR-78 03:01         8-9-65\r
17402 \r
17403 \r
17404                                           INTERNAL SETDDT\r
17405 \r
17406         000023' 545040  010000  SETDDT:   HLRI TAC,10000\r
17407         000024' 202040  000000*           MOVEM TAC,USRDDT\r
17408         000025' 254000  000010*           JRST UXIT\r
17409 \r
17410 \r
17411                                           INTERNAL SETPOV\r
17412 \r
17413         000026' 545040  010000  SETPOV:   HLRI TAC,10000\r
17414         000027' 202040  000000*           MOVEM TAC,USRPOV\r
17415         000030' 254000  000025*           JRST UXIT\r
17416 \r
17417                                 ;WAIT FOR IO TO BECOME INACTIVE ON CHANNEL AC\r
17418 \r
17419                                 INTERNAL WAIT\r
17420                                 EXTERNAL IOIERR,WAIT1\r
17421 \r
17422         000031' 322300  000000* WAIT:     JUMPE DEVDAT,IOIERR ;CHANNEL ASSIGNED?\r
17423         000032' 260140  000000*           PUSHJ PDP,WAIT1     ;WAIT TILL INACTIVE\r
17424         000033' 254000  000030*           JRST UXIT\r
17425                                           END,\r
17426 \r
17427 NO ERRORS DETECTED\r
17428 \r
17429 PROGRAM BREAK IS 000035\r
17430 \r
17431 9K CORE USED\r
17432 \r
17433 \fSYSCSS - COMMON SYSTEM SUBROUTINES     MACRO 10 05:51 24-APR-78 PAGE 4\r
17434 SYSCSS  MAC     24-APR-78 03:01         SYMBOL TABLE\r
17435 \r
17436 A               000000  INT\r
17437 AC1             000015  INT\r
17438 AC2             000016  INT\r
17439 AC3             000017  INT\r
17440 AL              000001  INT\r
17441 ASSCON          400000  INT\r
17442 ASSPRG          200000  INT\r
17443 B               000014  INT\r
17444 BUFPNT          000012  INT\r
17445 BUFWRD          000013  INT\r
17446 CLOSB           002000  INT\r
17447 CLSIN           000002  INT\r
17448 CLSOUT          000001  INT\r
17449 D               000017  INT\r
17450 DAT             000005  INT\r
17451 DATE            000000' INT\r
17452 DCL             000001  INT\r
17453 DCW             020000  INT\r
17454 DDI             000007  INT\r
17455 DDO             000006  INT\r
17456 DDTMEM          000037  INT\r
17457 DDTSYM          000036  INT\r
17458 DEN             000004  INT\r
17459 DEVADR          000007  INT\r
17460 DEVBUF          000006  INT\r
17461 DEVCHR          000001  INT\r
17462 DEVCTR          000011  INT\r
17463 DEVDAT          000006  INT\r
17464 DEVIAD          000007  INT\r
17465 DEVIOS          000002  INT\r
17466 DEVLOG          000005  INT\r
17467 DEVMOD          000004  INT\r
17468 DEVNAM          000000  INT\r
17469 DEVOAD          000010  INT\r
17470 DEVPTR          000010  INT\r
17471 DEVSER          000003  INT\r
17472 DEVSRC          000012' EXT\r
17473 DGF             000012  INT\r
17474 DIN             000003  INT\r
17475 DLK             000005  INT\r
17476 DOU             000002  INT\r
17477 DR              000016  INT\r
17478 DRL             000000  INT\r
17479 DSI             000011  INT\r
17480 DSO             000010  INT\r
17481 DTW             040000  INT\r
17482 DVAVAL          000040  INT\r
17483 DVCDR           100000  INT\r
17484 DVCHR           000011' INT\r
17485 DVDIR           000004  INT\r
17486 DVDIRI          400000  INT\r
17487 DVIN            000002  INT\r
17488 \r
17489 \r
17490 \fSYSCSS - COMMON SYSTEM SUBROUTINES     MACRO 10 05:51 24-APR-78 PAGE 4-1\r
17491 SYSCSS  MAC     24-APR-78 03:01         SYMBOL TABLE\r
17492 \r
17493 DVLPT           040000  INT\r
17494 DVMTA           000020  INT\r
17495 DVOUT           000001  INT\r
17496 DVTTY           000010  INT\r
17497 ENTRB           020000  INT\r
17498 ERROR           000000  EXT\r
17499 I               000010  INT\r
17500 IB              000013  INT\r
17501 IBUFB           200000  INT\r
17502 INITB           400000  INT\r
17503 INPB            010000  INT\r
17504 IO              000020  INT\r
17505 IOACT           010000  INT\r
17506 IOBEG           000002  INT\r
17507 IOBKTL          040000  INT\r
17508 IOCON           000040  INT\r
17509 IODEND          020000  INT\r
17510 IODERR          200000  INT\r
17511 IODISC          400000  INT\r
17512 IODONE          400000  INT\r
17513 IODTER          100000  INT\r
17514 IOEND           000040  INT\r
17515 IOFST           000004  INT\r
17516 IOIERR          000031' EXT\r
17517 IOIMPM          400000  INT\r
17518 IONRCK          000100  INT\r
17519 IORDEL          000100  INT\r
17520 IORET           000020  INT\r
17521 IOS             000000  INT\r
17522 IOSTRT          000010  INT\r
17523 IOUSE           400000  INT\r
17524 IOW             000001  INT\r
17525 IOWC            000020  INT\r
17526 IOWS            400000  INT\r
17527 ITEM            000004  INT\r
17528 JBFADR          000000  INT\r
17529 JBFCTR          000002  INT\r
17530 JBFPTR          000001  INT\r
17531 JBUF            000005  INT\r
17532 JDAT            000011  INT\r
17533 JERR            002000  INT\r
17534 JIOW            100000  INT\r
17535 JNA             004000  INT\r
17536 JOB             000017' EXT\r
17537 LOOKB           040000  INT\r
17538 MTW             010000  INT\r
17539 OBUFB           100000  INT\r
17540 OUTPB           004000  INT\r
17541 PDP             000003  INT\r
17542 PICHN           000100  INT\r
17543 PJOBN           000016' EXT\r
17544 PROG            000007  INT\r
17545 PUUOAC          000005' EXT\r
17546 \r
17547 \fSYSCSS - COMMON SYSTEM SUBROUTINES     MACRO 10 05:51 24-APR-78 PAGE 4-2\r
17548 SYSCSS  MAC     24-APR-78 03:01         SYMBOL TABLE\r
17549 \r
17550 RUN             200000  INT\r
17551 RUNABL          204000  INT\r
17552 SETDDT          000023' INT\r
17553 SETPOV          000026' INT\r
17554 STOAC           000005' INT\r
17555 SWITCH          000004' INT\r
17556 TAC             000001  INT\r
17557 TAC1            000002  INT\r
17558 TEM             000010  INT\r
17559 THSDAT          000002' INT\r
17560 TIME            000003' EXT\r
17561 TIMER           000003' INT\r
17562 TTYATC          020000  INT\r
17563 TTYUSE          010000  INT\r
17564 USRDDT          000024' EXT\r
17565 USRMOD          010000  INT\r
17566 USRPOV          000027' EXT\r
17567 USRREL          000000  EXT\r
17568 UUO             000014  INT\r
17569 UXIT            000033' EXT\r
17570 WAIT            000031' INT\r
17571 WAIT1           000032' EXT\r
17572 \f   SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
17573    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
17574    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
17575 SSS                  YYY         YYY      SSS                        III            NNN         NNN            III      \r
17576 SSS                  YYY         YYY      SSS                        III            NNN         NNN            III      \r
17577 SSS                  YYY         YYY      SSS                        III            NNN         NNN            III      \r
17578 SSS                     YYY   YYY         SSS                        III            NNNNNN      NNN            III      \r
17579 SSS                     YYY   YYY         SSS                        III            NNNNNN      NNN            III      \r
17580 SSS                     YYY   YYY         SSS                        III            NNNNNN      NNN            III      \r
17581    SSSSSSSSS               YYY               SSSSSSSSS               III            NNN   NNN   NNN            III      \r
17582    SSSSSSSSS               YYY               SSSSSSSSS               III            NNN   NNN   NNN            III      \r
17583    SSSSSSSSS               YYY               SSSSSSSSS               III            NNN   NNN   NNN            III      \r
17584             SSS            YYY                        SSS            III            NNN      NNNNNN            III      \r
17585             SSS            YYY                        SSS            III            NNN      NNNNNN            III      \r
17586             SSS            YYY                        SSS            III            NNN      NNNNNN            III      \r
17587             SSS            YYY                        SSS            III            NNN         NNN            III      \r
17588             SSS            YYY                        SSS            III            NNN         NNN            III      \r
17589             SSS            YYY                        SSS            III            NNN         NNN            III      \r
17590 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            IIIIIIIII         NNN         NNN         IIIIIIIII   \r
17591 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            IIIIIIIII         NNN         NNN         IIIIIIIII   \r
17592 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            IIIIIIIII         NNN         NNN         IIIIIIIII   \r
17593 \r
17594 \r
17595 \r
17596 \r
17597 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17598 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17599 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17600 LLL                  SSS                        TTT                                                                     \r
17601 LLL                  SSS                        TTT                                                                     \r
17602 LLL                  SSS                        TTT                                                                     \r
17603 LLL                  SSS                        TTT                                                                     \r
17604 LLL                  SSS                        TTT                                                                     \r
17605 LLL                  SSS                        TTT                                                                     \r
17606 LLL                     SSSSSSSSS               TTT                                                                     \r
17607 LLL                     SSSSSSSSS               TTT                                                                     \r
17608 LLL                     SSSSSSSSS               TTT                                                                     \r
17609 LLL                              SSS            TTT                                                                     \r
17610 LLL                              SSS            TTT                                                                     \r
17611 LLL                              SSS            TTT                                                                     \r
17612 LLL                              SSS            TTT                                                                     \r
17613 LLL                              SSS            TTT                                                                     \r
17614 LLL                              SSS            TTT                                                                     \r
17615 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17616 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17617 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17618 \r
17619 \r
17620 \r
17621 \r
17622 Request created: 24-April-1978  05:53:58\r
17623 File: DSKB0 :SYSINI.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:38\r
17624 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1589 \r
17625 File will be deleted after printing\r
17626 \f\r
17627 SYSINI - SYSTEM INITIALIZATION  MACRO 10 05:51 24-APR-78 PAGE 1\r
17628 S       MAC     24-APR-78 21:40         8-9-65\r
17629 \r
17630                                         XLIST\r
17631                                        LIST\r
17632                                 TITLE SYSINI - SYSTEM INITIALIZATION\r
17633                                 SUBTTL 8-9-65\r
17634                                 EXTERNAL APRCHN,ERROR,IOINI\r
17635                                 EXTERNAL DDT,NULJOB,SYSMAK,ONCE,SYSBEG,SYSBG1,SYSEND\r
17636                                 EXTERNAL CORTAB,CORLST,CORTAL,CORBLK,SYSSIZ,LINKSR\r
17637 \r
17638                                 ;SYSTEM INITIALIZATION DISPATCHTABLE, STARTING AT LOC. 140\r
17639                                 ;THIS SUBROUTINE MUST BE LOADED FIRST\r
17640                                 ;ROUTINE ONCE IS ONCE ONLY CODE. IT CONVERTS THE DATE\r
17641                                 ;AND SETS UP IO SERVICE CHAIN.\r
17642 \r
17643 \r
17644 \r
17645                                 INTERNAL SYSDSP\r
17646 \r
17647         000000' 254000  000010' SYSDSP:   JRST SYSINI           ;INITIALIZE SYSTEM VARIABLES ONCE ONLY\r
17648         000001' 254000  000000*           JRST DDT      ;EXEC DDT\r
17649         000002' 254000  000000*           JRST SYSMAK           ;MAKE NEW SYSTEM\r
17650         000003' 254000  000010'           JRST SYSINI           ;INITIALIZE SYSTEM VARIABLES ALWAYS\r
17651         000004' 254000  000000*           JEN NULJOB            ;ERROR RECOVERY\r
17652         000005' 254000  000007'           JRST SYSONE           ;DO ONCE ONLY CODE OVER AGAIN\r
17653         000006' 254000  000012'           JRST JSR2 ;BYPASS ONCE ONLY OPERATOR DIALOG\r
17654                                                     ;(IN CASE CONSOLE TTY DOWN)\r
17655 \r
17656 \fSYSINI - SYSTEM INITIALIZATION MACRO 10 05:51 24-APR-78 PAGE 2\r
17657 SYSINI  MAC     24-APR-78 00:39         8-9-65\r
17658 \r
17659 \r
17660 \r
17661                                 ;INITIALIZE SYSTEM DATA STORAGE\r
17662 \r
17663                                 INTERNAL SYSINI\r
17664                         010000  NXM=10000 ;NON EX MEM FLAG\r
17665 \r
17666         000007' 264000  000000* SYSONE:   JSR ONCE  ;ONCE ONLY CODE\r
17667         000010' 700200  200000  SYSINI:   CONO APR,200000       ;IO RESET\r
17668         000011' 264000  000007* JSR1:     JSR ONCE  ;DO ONCE ONLY CODE ONCE\r
17669         000012' 264000  000000* JSR2:     JSR LINKSR            ;LINK IO SERVICE ROUTINES\r
17670         000013' 204040  000014'           MOVS TAC,.+1\r
17671         000014' 403100  000000*           SETZB TAC1,SYSBEG\r
17672         000015' 206040  000011'           MOVSM TAC,JSR1\r
17673         000016' 206040  000012'           MOVSM TAC,JSR2\r
17674         000017' 541040  000000*           HRRI TAC,SYSBG1       ;CLEAR SYSTEM DATA STORAGE\r
17675         000020' 251040  000000*           BLT TAC,SYSEND\r
17676         000021' 205040  430000            MOVSI TAC, DVDIRIN+TTYATC+TTYUSE\r
17677         000022' 541040  600000            HRRI TAC,ASSCON+ASSPRG\r
17678         000023' 554300  000000*           HLRZ DEVDAT,DEVLST   ;SCAN ALL DEVICES\r
17679         000024' 412046  000004  SYS1:     ANDCAM TAC, DEVMOD(DEVDAT)    ;CLEAR DIRECTORY IN CORE BIT,\r
17680                                                 ;ASSIGNED BY CONSOLE & PROGRAM\r
17681         000025' 402006  000005            SETZM DEVLOG(DEVDAT)          ;CLEAR LOGICAL NAME\r
17682         000026' 554306  000003            HLRZ DEVDAT, DEVSER(DEVDAT)\r
17683         000027' 326300  000024'           JUMPN DEVDAT, SYS1\r
17684         000030' 200440  000105'           MOVE JDAT,COREP       ;SET UP CORE USE BIT TABLE\r
17685         000031' 202440  000000*           MOVEM JDAT,CORLST\r
17686         000032' 201040  000000*           MOVEI TAC,CORBLK      ;NO. OF 1K BLOCKS IN TABLE\r
17687         000033' 700200  010000  SYS2:     CONO APR,NXM          ;CLEAR NON EX MEM\r
17688         000034' 133000  000011            IBP JDAT      ;MOVE BYTE POINTER\r
17689         000035' 510242  000000            HLLZ DAT,(TAC1)       ;REFERENCE MEMORY, CLEAR RT. OF DAT\r
17690         000036' 313100  000000*           CAMLE TAC1,SYSSIZ     ;HIGHEST LOC IN EXEC.\r
17691         000037' 700300  010000            CONSZ APR,NXM         ;CAN MEMORY BE USED FOR USER PROG?\r
17692         000040' 344240  000043'           AOJA DAT,SYS3         ;NO, MARK AS INACCESIBLE (1 BIT)\r
17693         000041' 350000  000000*           AOS CORTAL\r
17694         000042' 202440  000031*           MOVEM JDAT,CORLST     ;AND SET LAST FREE BLOCK POINTER\r
17695         000043' 137240  000011  SYS3:     DPB DAT,JDAT          ;STORE 0 OR 1 IN TABLE\r
17696         000044' 271100  002000            ADDI TAC1,2000        ;INCREMENT MEMORY REF\r
17697         000045' 367040  000033'           SOJG TAC,SYS2\r
17698         000046' 133000  000042*           IBP CORLST            ;SET TO FIRST UNAVAILABLE BLOCK\r
17699         000047' 541040  000051'           HRRI 1,IOGO\r
17700         000050' 542040  000000'           HRRM 1,SYSDSP         ;FALINTO IOGO\r
17701 \r
17702 \fSYSINI - SYSTEM INITIALIZATION MACRO 10 05:51 24-APR-78 PAGE 3\r
17703 SYSINI  MAC     24-APR-78 00:39         8-9-65\r
17704 \r
17705 \r
17706 \r
17707                                 ;INITIALIZE ALL IODEVICES\r
17708 \r
17709                                           INTERNAL IOGO\r
17710                                           EXTERNAL DEVLST, MJOBN, JBTADR,JBTSTS,IOINI\r
17711                                 EXTERNAL DCREQ,MTREQ,DTREQ\r
17712 \r
17713         000051' 201040  000000* IOGO:     MOVEI TAC,APRCHN\r
17714         000052' 700201  633440            CONO APR,633440(TAC)\r
17715         000053' 554040  000023*           HLRZ TAC, DEVLST       ;CHAIN OF DEVICE DATA BLOKS\r
17716         000054' 201100  200000  IOG0:     MOVEI TAC1,ASSPRG      ;CLEAR ASSIGNED BY PROGRAM BIT\r
17717         000055' 413101  000004            ANDCAB TAC1,DEVMOD(TAC)\r
17718         000056' 525200  000720            HRLOI ITEM,IORET+7*PICHN      ;CLEAR JOB NO., USER CHANNEL\r
17719         000057' 602100  400000            TRNE TAC1,ASSCON\r
17720         000060' 661200  777000            TLO ITEM,777000\r
17721         000061' 406201  000001            ANDM ITEM,DEVCHR(TAC)         ;BUT NOT IORET BIT OR PII CHA\r
17722         000062' 402001  000002            SETZM DEVIOS(TAC)     ;CLEAR IO STATUS WORD\r
17723         000063' 402001  000006            SETZM DEVBUF(TAC)     ;CLEAR BUFFER ADDRESS\r
17724         000064' 554041  000003            HLRZ TAC, DEVSER(TAC)\r
17725         000065' 326040  000054'           JUMPN TAC, IOG0\r
17726         000066' 476000  000000*           SETOM DCREQ           ;CLEAR DEVICE REQUEST COUNTS\r
17727         000067' 476000  000000*           SETOM MTREQ   \r
17728         000070' 476000  000000*           SETOM DTREQ\r
17729         000071' 201140  000100'           MOVEI PDP,IOPDL-1\r
17730         000072' 260140  000000*           PUSHJ PDP,IOINI       ;INITIALIZE IO DEVICES\r
17731         000073' 205240  000000*           MOVSI DAT,MJOBN       ;JOB NUMBER ASSIGNED BIT\r
17732         000074' 200040  000106'           MOVE TAC,[XWD JERR,1]         ;SET ERROR BIT, CLEAR ALL 0TH\r
17733         000075' 202045  000000* IOG1:     MOVEM TAC,JBTSTS(DAT)\r
17734         000076' 253240  000075'           AOBJN DAT,IOG1\r
17735         000077' 700600  012377            CONO PI,12377\r
17736         000100' 254000  000004*           JRST NULJOB           ;START THE NULL JOB\r
17737         000101'                 IOPDL:    BLOCK 4\r
17738         000105' 440100  000000* COREP:    POINT 1,CORTAB        ;1 BIT BYTE POINTER TO CORE USE TABLE\r
17739 \r
17740                         000010'           END SYSINI\r
17741 \r
17742 NO ERRORS DETECTED\r
17743 \r
17744 PROGRAM BREAK IS 000107\r
17745 \r
17746 9K CORE USED\r
17747 \r
17748 \fSYSINI - SYSTEM INITIALIZATION MACRO 10 05:51 24-APR-78 PAGE 4\r
17749 SYSINI  MAC     24-APR-78 00:39         SYMBOL TABLE\r
17750 \r
17751 A               000000  INT\r
17752 AC1             000015  INT\r
17753 AC2             000016  INT\r
17754 AC3             000017  INT\r
17755 AL              000001  INT\r
17756 APR             000000  SPD\r
17757 APRCHN          000051' EXT\r
17758 ASSCON          400000  INT\r
17759 ASSPRG          200000  INT\r
17760 B               000014  INT\r
17761 BUFPNT          000012  INT\r
17762 BUFWRD          000013  INT\r
17763 CLOSB           002000  INT\r
17764 CLSIN           000002  INT\r
17765 CLSOUT          000001  INT\r
17766 CORBLK          000032' EXT\r
17767 COREP           000105' \r
17768 CORLST          000046' EXT\r
17769 CORTAB          000105' EXT\r
17770 CORTAL          000041' EXT\r
17771 D               000017  INT\r
17772 DAT             000005  INT\r
17773 DCL             000001  INT\r
17774 DCREQ           000066' EXT\r
17775 DCW             020000  INT\r
17776 DDI             000007  INT\r
17777 DDO             000006  INT\r
17778 DDT             000001' EXT\r
17779 DDTMEM          000037  INT\r
17780 DDTSYM          000036  INT\r
17781 DEN             000004  INT\r
17782 DEVADR          000007  INT\r
17783 DEVBUF          000006  INT\r
17784 DEVCHR          000001  INT\r
17785 DEVCTR          000011  INT\r
17786 DEVDAT          000006  INT\r
17787 DEVIAD          000007  INT\r
17788 DEVIOS          000002  INT\r
17789 DEVLOG          000005  INT\r
17790 DEVLST          000053' EXT\r
17791 DEVMOD          000004  INT\r
17792 DEVNAM          000000  INT\r
17793 DEVOAD          000010  INT\r
17794 DEVPTR          000010  INT\r
17795 DEVSER          000003  INT\r
17796 DGF             000012  INT\r
17797 DIN             000003  INT\r
17798 DLK             000005  INT\r
17799 DOU             000002  INT\r
17800 DR              000016  INT\r
17801 DRL             000000  INT\r
17802 DSI             000011  INT\r
17803 \r
17804 \r
17805 \fSYSINI - SYSTEM INITIALIZATION MACRO 10 05:51 24-APR-78 PAGE 4-1\r
17806 SYSINI  MAC     24-APR-78 00:39         SYMBOL TABLE\r
17807 \r
17808 DSO             000010  INT\r
17809 DTREQ           000070' EXT\r
17810 DTW             040000  INT\r
17811 DVAVAL          000040  INT\r
17812 DVCDR           100000  INT\r
17813 DVDIR           000004  INT\r
17814 DVDIRI          400000  INT\r
17815 DVIN            000002  INT\r
17816 DVLPT           040000  INT\r
17817 DVMTA           000020  INT\r
17818 DVOUT           000001  INT\r
17819 DVTTY           000010  INT\r
17820 ENTRB           020000  INT\r
17821 ERROR           000000  EXT\r
17822 I               000010  INT\r
17823 IB              000013  INT\r
17824 IBUFB           200000  INT\r
17825 INITB           400000  INT\r
17826 INPB            010000  INT\r
17827 IO              000020  INT\r
17828 IOACT           010000  INT\r
17829 IOBEG           000002  INT\r
17830 IOBKTL          040000  INT\r
17831 IOCON           000040  INT\r
17832 IODEND          020000  INT\r
17833 IODERR          200000  INT\r
17834 IODISC          400000  INT\r
17835 IODONE          400000  INT\r
17836 IODTER          100000  INT\r
17837 IOEND           000040  INT\r
17838 IOFST           000004  INT\r
17839 IOG0            000054' \r
17840 IOG1            000075' \r
17841 IOGO            000051' INT\r
17842 IOIMPM          400000  INT\r
17843 IOINI           000072' EXT\r
17844 IONRCK          000100  INT\r
17845 IOPDL           000101' \r
17846 IORDEL          000100  INT\r
17847 IORET           000020  INT\r
17848 IOS             000000  INT\r
17849 IOSTRT          000010  INT\r
17850 IOUSE           400000  INT\r
17851 IOW             000001  INT\r
17852 IOWC            000020  INT\r
17853 IOWS            400000  INT\r
17854 ITEM            000004  INT\r
17855 JBFADR          000000  INT\r
17856 JBFCTR          000002  INT\r
17857 JBFPTR          000001  INT\r
17858 JBTADR          000000  EXT\r
17859 JBTSTS          000075' EXT\r
17860 JBUF            000005  INT\r
17861 \r
17862 \fSYSINI - SYSTEM INITIALIZATION MACRO 10 05:51 24-APR-78 PAGE 4-2\r
17863 SYSINI  MAC     24-APR-78 00:39         SYMBOL TABLE\r
17864 \r
17865 JDAT            000011  INT\r
17866 JERR            002000  INT\r
17867 JIOW            100000  INT\r
17868 JNA             004000  INT\r
17869 JSR1            000011' \r
17870 JSR2            000012' \r
17871 LINKSR          000012' EXT\r
17872 LOOKB           040000  INT\r
17873 MJOBN           000073' EXT\r
17874 MTREQ           000067' EXT\r
17875 MTW             010000  INT\r
17876 NULJOB          000100' EXT\r
17877 NXM             010000  \r
17878 OBUFB           100000  INT\r
17879 ONCE            000011' EXT\r
17880 OUTPB           004000  INT\r
17881 PDP             000003  INT\r
17882 PI              000004  SPD\r
17883 PICHN           000100  INT\r
17884 PROG            000007  INT\r
17885 RUN             200000  INT\r
17886 RUNABL          204000  INT\r
17887 SYS1            000024' \r
17888 SYS2            000033' \r
17889 SYS3            000043' \r
17890 SYSBEG          000014' EXT\r
17891 SYSBG1          000017' EXT\r
17892 SYSDSP          000000' INT\r
17893 SYSEND          000020' EXT\r
17894 SYSINI          000010' INT\r
17895 SYSMAK          000002' EXT\r
17896 SYSONE          000007' \r
17897 SYSSIZ          000036' EXT\r
17898 TAC             000001  INT\r
17899 TAC1            000002  INT\r
17900 TEM             000010  INT\r
17901 TTYATC          020000  INT\r
17902 TTYUSE          010000  INT\r
17903 USRMOD          010000  INT\r
17904 UUO             000014  INT\r
17905 \f   SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS      MMM         MMM         AAAAAAAAA         KKK         KKK\r
17906    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS      MMM         MMM         AAAAAAAAA         KKK         KKK\r
17907    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS      MMM         MMM         AAAAAAAAA         KKK         KKK\r
17908 SSS                  YYY         YYY      SSS                  MMMMMM   MMMMMM      AAA         AAA      KKK         KKK\r
17909 SSS                  YYY         YYY      SSS                  MMMMMM   MMMMMM      AAA         AAA      KKK         KKK\r
17910 SSS                  YYY         YYY      SSS                  MMMMMM   MMMMMM      AAA         AAA      KKK         KKK\r
17911 SSS                     YYY   YYY         SSS                  MMM   MMM   MMM      AAA         AAA      KKK      KKK   \r
17912 SSS                     YYY   YYY         SSS                  MMM   MMM   MMM      AAA         AAA      KKK      KKK   \r
17913 SSS                     YYY   YYY         SSS                  MMM   MMM   MMM      AAA         AAA      KKK      KKK   \r
17914    SSSSSSSSS               YYY               SSSSSSSSS         MMM         MMM      AAA         AAA      KKKKKKKKK      \r
17915    SSSSSSSSS               YYY               SSSSSSSSS         MMM         MMM      AAA         AAA      KKKKKKKKK      \r
17916    SSSSSSSSS               YYY               SSSSSSSSS         MMM         MMM      AAA         AAA      KKKKKKKKK      \r
17917             SSS            YYY                        SSS      MMM         MMM      AAAAAAAAAAAAAAA      KKK      KKK   \r
17918             SSS            YYY                        SSS      MMM         MMM      AAAAAAAAAAAAAAA      KKK      KKK   \r
17919             SSS            YYY                        SSS      MMM         MMM      AAAAAAAAAAAAAAA      KKK      KKK   \r
17920             SSS            YYY                        SSS      MMM         MMM      AAA         AAA      KKK         KKK\r
17921             SSS            YYY                        SSS      MMM         MMM      AAA         AAA      KKK         KKK\r
17922             SSS            YYY                        SSS      MMM         MMM      AAA         AAA      KKK         KKK\r
17923 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS         MMM         MMM      AAA         AAA      KKK         KKK\r
17924 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS         MMM         MMM      AAA         AAA      KKK         KKK\r
17925 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS         MMM         MMM      AAA         AAA      KKK         KKK\r
17926 \r
17927 \r
17928 \r
17929 \r
17930 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17931 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17932 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17933 LLL                  SSS                        TTT                                                                     \r
17934 LLL                  SSS                        TTT                                                                     \r
17935 LLL                  SSS                        TTT                                                                     \r
17936 LLL                  SSS                        TTT                                                                     \r
17937 LLL                  SSS                        TTT                                                                     \r
17938 LLL                  SSS                        TTT                                                                     \r
17939 LLL                     SSSSSSSSS               TTT                                                                     \r
17940 LLL                     SSSSSSSSS               TTT                                                                     \r
17941 LLL                     SSSSSSSSS               TTT                                                                     \r
17942 LLL                              SSS            TTT                                                                     \r
17943 LLL                              SSS            TTT                                                                     \r
17944 LLL                              SSS            TTT                                                                     \r
17945 LLL                              SSS            TTT                                                                     \r
17946 LLL                              SSS            TTT                                                                     \r
17947 LLL                              SSS            TTT                                                                     \r
17948 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17949 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17950 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17951 \r
17952 \r
17953 \r
17954 \r
17955 Request created: 24-April-1978  05:53:58\r
17956 File: DSKB0 :SYSMAK.LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:38\r
17957 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1583 \r
17958 File will be deleted after printing\r
17959 \f\r
17960 SYSMAK - MAKE NEW SYSTEM WITH THE OLD   MACRO 10 05:51 24-APR-78 PAGE 1\r
17961 S       MAC     24-APR-78 21:40         7-21-65\r
17962 \r
17963                                         XLIST\r
17964                                        LIST\r
17965                                 TITLE SYSMAK - MAKE NEW SYSTEM WITH THE OLD\r
17966                                 SUBTTL 7-21-65\r
17967                                 ,SYSMAK ASSUMES AN EXISTING SYSTEM WITH A LOADER IN CORE FOR JOB 1\r
17968                                 ,AND HIGHEST EMORY ADDRESS IN REAL 37.  TO CREATE A NEW SYSTEM, SET\r
17969                                 ,37 AS DESIRED, LOAD NEW SYSTEM (WITHOUT GOING INTO EXECUTION), AND\r
17970                                 ,START AT REAL 62.  THE COMPUTE WILL HALT AFTER THE NEW SYSTEM\r
17971                                 ,HAS BEEN BLOCKED DOWN.  TO START, PRESS CONTINUE OR START AT REAL\r
17972                                 ,60.  EXEC DDT (IF LOADED WITH THE NEW SYSTEM) STARTS AT REAL 141.\r
17973                                 ;FROM REL. LOC. 30 ON UP IS BLOCKED DOWN\r
17974 \r
17975                                 ,WHEN LOADING A NEW SYSTEM, LOAD SYSINI FIRST.\r
17976                                 ;SYSINI CONTAINS A DISPATCH TABLE  DOCUMENTED TO BE AT LOC. 60\r
17977                                 ;ALSO LOAD IOINI LAST SINCE IT CONTAINS SOME ONCE ONLY CODE AT END\r
17978                                 ;THEN LOAD SYSMAK FOLLOWED BY DDT(EXEC)\r
17979                                 ;BE SURE THAT LOC SYSSIZ(SIZ OF SYSTEM) IS GREATER THAN\r
17980                                 ;LAST LOC IN SYSMAK BEFORE STARTING TO LOAD.\r
17981                                 ;LOC SYSSIZ IS IN LOWER CORE AND MAY HAVE TO BE PATCHED\r
17982                                 ;USING CONSOLE SWITCHES.\r
17983 \r
17984                                 INTERNAL SYSMAK,MAKEND\r
17985                                 EXTERNAL JBTADR,JBTAD1\r
17986 \r
17987         000000' 200040  000000* SYSMAK:   MOVE 1,JBTAD1         ;LOADER BLOCK ADDRESS FROM JOB ADDRESS\r
17988         000001' 200301  000002            MOVE 6,2(1)           ;LOADER OFFSET\r
17989         000002' 271301  000000            ADDI 6,(1)            ;BLOCK ADDRESS+OFFSET\r
17990         000003' 200101  000006            MOVE 2,6(1);          SYSMBOL TABLE POINTER:  -N,L = LOWEST AD\r
17991         000004' 271001  000002            ADDI 2(1)\r
17992         000005' 564140  000002            HLRO 3,2\r
17993         000006' 213000  000003            MOVNS 3       ;N = SYMBOL TABLE LENGTH\r
17994         000007' 200200  000037            MOVE 4,DDTMEM         ;MEMORY SIZE(LOC 37)\r
17995         000010' 202206  000037            MOVEM 4,DDTMEM(6)     ;STORE IN NEW DDTMEM\r
17996         000011' 275200  000200            SUBI 4,200            ;ROOM FOR DECDUMP\r
17997         000012' 202206  000036            MOVEM 4,DDTSYM(6)     ;ALSO STORE IN WHAT WILL BECOME DDTSYM\r
17998         000013' 200240  000002            MOVE 5,2  ;LEAVES ROOM FOR DECDMP\r
17999         000014' 270240  000003            ADD 5,3\r
18000         000015' 504240  000003            HRL 5,3   ;C(5):=N,L+N\r
18001         000016' 274200  000005            SUB 4,5\r
18002         000017' 553000  000004            HRRZS 4   ;C(4):=0,C(37)-200-(L+N)\r
18003         000020' 270100  000004            ADD 2,4   ;C(2):=-N,C(37)-200-N\r
18004         000021' 202105  000000            MOVEM 2,(5)\r
18005         000022' 542200  000023'           HRRM 4,.+1\r
18006         000023' 262245  000000            POP 5,(5) ;MOVE SYMOBOL TABLE TO TOP OF MEMORY\r
18007         000024' 325240  000023'           JUMPGE 5,.-1\r
18008         000025' 200400  000034'           MOVE 10,[BLT 3,(2)]\r
18009         000026' 200440  000035'           MOVE 11,[JRST 4,]\r
18010         000027' 541140  000030            HRRI 3,30\r
18011         000030' 505146  000030            HRLI 3,30(6)          ;C(3):=LOADER OFFSET+LOADER BLOCK ADDRE\r
18012         000031' 550101  000006            HRRZ 2,6(1)           ;C(2):=LOWEST LOCATION IN SYMBOL TABLE\r
18013         000032' 540441  000000            HRR 11,(1)            ;C(11):=JRST 4,START ADDRESS\r
18014         000033' 254000  000010            JRST 10       ;MOVE SYSTEM TO BOTTOM OF MEMORY AND HALT\r
18015 \r
18016         000034'                           LIT\r
18017         000034' 251142  000000\r
18018         000035' 254200  000000\r
18019 \r
18020 \r
18021 SYSMAK - MAKE NEW SYSTEM WITH THE OLD   MACRO 10 05:51 24-APR-78 PAGE 1\r
18022 SYSMAK  MAC     24-APR-78 03:47         7-21-65\r
18023 \r
18024         000036'                 MAKEND:   END,\r
18025 \r
18026 NO ERRORS DETECTED\r
18027 \r
18028 PROGRAM BREAK IS 000036\r
18029 \r
18030 9K CORE USED\r
18031 \r
18032 \fSYSMAK - MAKE NEW SYSTEM WITH THE OLD  MACRO 10 05:51 24-APR-78 PAGE 2\r
18033 SYSMAK  MAC     24-APR-78 03:47         SYMBOL TABLE\r
18034 \r
18035 A               000000  INT\r
18036 AC1             000015  INT\r
18037 AC2             000016  INT\r
18038 AC3             000017  INT\r
18039 AL              000001  INT\r
18040 ASSCON          400000  INT\r
18041 ASSPRG          200000  INT\r
18042 B               000014  INT\r
18043 BUFPNT          000012  INT\r
18044 BUFWRD          000013  INT\r
18045 CLOSB           002000  INT\r
18046 CLSIN           000002  INT\r
18047 CLSOUT          000001  INT\r
18048 D               000017  INT\r
18049 DAT             000005  INT\r
18050 DCL             000001  INT\r
18051 DCW             020000  INT\r
18052 DDI             000007  INT\r
18053 DDO             000006  INT\r
18054 DDTMEM          000037  INT\r
18055 DDTSYM          000036  INT\r
18056 DEN             000004  INT\r
18057 DEVADR          000007  INT\r
18058 DEVBUF          000006  INT\r
18059 DEVCHR          000001  INT\r
18060 DEVCTR          000011  INT\r
18061 DEVDAT          000006  INT\r
18062 DEVIAD          000007  INT\r
18063 DEVIOS          000002  INT\r
18064 DEVLOG          000005  INT\r
18065 DEVMOD          000004  INT\r
18066 DEVNAM          000000  INT\r
18067 DEVOAD          000010  INT\r
18068 DEVPTR          000010  INT\r
18069 DEVSER          000003  INT\r
18070 DGF             000012  INT\r
18071 DIN             000003  INT\r
18072 DLK             000005  INT\r
18073 DOU             000002  INT\r
18074 DR              000016  INT\r
18075 DRL             000000  INT\r
18076 DSI             000011  INT\r
18077 DSO             000010  INT\r
18078 DTW             040000  INT\r
18079 DVAVAL          000040  INT\r
18080 DVCDR           100000  INT\r
18081 DVDIR           000004  INT\r
18082 DVDIRI          400000  INT\r
18083 DVIN            000002  INT\r
18084 DVLPT           040000  INT\r
18085 DVMTA           000020  INT\r
18086 DVOUT           000001  INT\r
18087 \r
18088 \r
18089 \fSYSMAK - MAKE NEW SYSTEM WITH THE OLD  MACRO 10 05:51 24-APR-78 PAGE 2-1\r
18090 SYSMAK  MAC     24-APR-78 03:47         SYMBOL TABLE\r
18091 \r
18092 DVTTY           000010  INT\r
18093 ENTRB           020000  INT\r
18094 I               000010  INT\r
18095 IB              000013  INT\r
18096 IBUFB           200000  INT\r
18097 INITB           400000  INT\r
18098 INPB            010000  INT\r
18099 IO              000020  INT\r
18100 IOACT           010000  INT\r
18101 IOBEG           000002  INT\r
18102 IOBKTL          040000  INT\r
18103 IOCON           000040  INT\r
18104 IODEND          020000  INT\r
18105 IODERR          200000  INT\r
18106 IODISC          400000  INT\r
18107 IODONE          400000  INT\r
18108 IODTER          100000  INT\r
18109 IOEND           000040  INT\r
18110 IOFST           000004  INT\r
18111 IOIMPM          400000  INT\r
18112 IONRCK          000100  INT\r
18113 IORDEL          000100  INT\r
18114 IORET           000020  INT\r
18115 IOS             000000  INT\r
18116 IOSTRT          000010  INT\r
18117 IOUSE           400000  INT\r
18118 IOW             000001  INT\r
18119 IOWC            000020  INT\r
18120 IOWS            400000  INT\r
18121 ITEM            000004  INT\r
18122 JBFADR          000000  INT\r
18123 JBFCTR          000002  INT\r
18124 JBFPTR          000001  INT\r
18125 JBTAD1          000000' EXT\r
18126 JBTADR          000000  EXT\r
18127 JBUF            000005  INT\r
18128 JDAT            000011  INT\r
18129 JERR            002000  INT\r
18130 JIOW            100000  INT\r
18131 JNA             004000  INT\r
18132 LOOKB           040000  INT\r
18133 MAKEND          000036' INT\r
18134 MTW             010000  INT\r
18135 OBUFB           100000  INT\r
18136 OUTPB           004000  INT\r
18137 PDP             000003  INT\r
18138 PICHN           000100  INT\r
18139 PROG            000007  INT\r
18140 RUN             200000  INT\r
18141 RUNABL          204000  INT\r
18142 SYSMAK          000000' INT\r
18143 TAC             000001  INT\r
18144 TAC1            000002  INT\r
18145 \r
18146 \fSYSMAK - MAKE NEW SYSTEM WITH THE OLD  MACRO 10 05:51 24-APR-78 PAGE 2-2\r
18147 SYSMAK  MAC     24-APR-78 03:47         SYMBOL TABLE\r
18148 \r
18149 TEM             000010  INT\r
18150 TTYATC          020000  INT\r
18151 TTYUSE          010000  INT\r
18152 USRMOD          010000  INT\r
18153 UUO             000014  INT\r
18154 \fMMM         MMM         AAAAAAAAA            CCCCCCCCCCCC      RRRRRRRRRRRR            OOOOOOOOO                        \r
18155 MMM         MMM         AAAAAAAAA            CCCCCCCCCCCC      RRRRRRRRRRRR            OOOOOOOOO                        \r
18156 MMM         MMM         AAAAAAAAA            CCCCCCCCCCCC      RRRRRRRRRRRR            OOOOOOOOO                        \r
18157 MMMMMM   MMMMMM      AAA         AAA      CCC                  RRR         RRR      OOO         OOO                     \r
18158 MMMMMM   MMMMMM      AAA         AAA      CCC                  RRR         RRR      OOO         OOO                     \r
18159 MMMMMM   MMMMMM      AAA         AAA      CCC                  RRR         RRR      OOO         OOO                     \r
18160 MMM   MMM   MMM      AAA         AAA      CCC                  RRR         RRR      OOO         OOO                     \r
18161 MMM   MMM   MMM      AAA         AAA      CCC                  RRR         RRR      OOO         OOO                     \r
18162 MMM   MMM   MMM      AAA         AAA      CCC                  RRR         RRR      OOO         OOO                     \r
18163 MMM         MMM      AAA         AAA      CCC                  RRRRRRRRRRRR         OOO         OOO                     \r
18164 MMM         MMM      AAA         AAA      CCC                  RRRRRRRRRRRR         OOO         OOO                     \r
18165 MMM         MMM      AAA         AAA      CCC                  RRRRRRRRRRRR         OOO         OOO                     \r
18166 MMM         MMM      AAAAAAAAAAAAAAA      CCC                  RRR   RRR            OOO         OOO                     \r
18167 MMM         MMM      AAAAAAAAAAAAAAA      CCC                  RRR   RRR            OOO         OOO                     \r
18168 MMM         MMM      AAAAAAAAAAAAAAA      CCC                  RRR   RRR            OOO         OOO                     \r
18169 MMM         MMM      AAA         AAA      CCC                  RRR      RRR         OOO         OOO                     \r
18170 MMM         MMM      AAA         AAA      CCC                  RRR      RRR         OOO         OOO                     \r
18171 MMM         MMM      AAA         AAA      CCC                  RRR      RRR         OOO         OOO                     \r
18172 MMM         MMM      AAA         AAA         CCCCCCCCCCCC      RRR         RRR         OOOOOOOOO                        \r
18173 MMM         MMM      AAA         AAA         CCCCCCCCCCCC      RRR         RRR         OOOOOOOOO                        \r
18174 MMM         MMM      AAA         AAA         CCCCCCCCCCCC      RRR         RRR         OOOOOOOOO                        \r
18175 \r
18176 \r
18177 \r
18178 \r
18179 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
18180 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
18181 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
18182 LLL                  SSS                        TTT                                                                     \r
18183 LLL                  SSS                        TTT                                                                     \r
18184 LLL                  SSS                        TTT                                                                     \r
18185 LLL                  SSS                        TTT                                                                     \r
18186 LLL                  SSS                        TTT                                                                     \r
18187 LLL                  SSS                        TTT                                                                     \r
18188 LLL                     SSSSSSSSS               TTT                                                                     \r
18189 LLL                     SSSSSSSSS               TTT                                                                     \r
18190 LLL                     SSSSSSSSS               TTT                                                                     \r
18191 LLL                              SSS            TTT                                                                     \r
18192 LLL                              SSS            TTT                                                                     \r
18193 LLL                              SSS            TTT                                                                     \r
18194 LLL                              SSS            TTT                                                                     \r
18195 LLL                              SSS            TTT                                                                     \r
18196 LLL                              SSS            TTT                                                                     \r
18197 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
18198 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
18199 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
18200 \r
18201 \r
18202 \r
18203 \r
18204 Request created: 24-April-1978  05:53:58\r
18205 File: DSKB0 :MACRO .LST   [8,296] Created: 20-April-1967 05:51:00 Printed: 24-April-1978 05:53:38\r
18206 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1578 \r
18207 File will be deleted after printing\r
18208 \f\r
18209 MACRO V.46(52)          MACRO 10 05:51 24-APR-78 PAGE 1\r
18210 MACRO   10      24-APR-78 02:11         RPG/CMF/JF/PMH/DMN      7-SEPT-71\r
18211 \r
18212                                 ;STANFORD ASSEMBLY:\r
18213                         000170          LPTWID==^D120   ;120 CHARACTERS/LINE ON LPT AT STANFORD\r
18214                                 TITLE   MACRO V.46(52)  \r
18215                                 SUBTTL   RPG/CMF/JF/PMH/DMN     7-SEPT-71\r
18216                                 ;COPYRIGHT 1968,1969,1970,1971, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.\r
18217 \r
18218                         000010          VMACRO==10              ;VERSION NUMBER\r
18219                         000000          VUPDATE==0              ;DEC UPDATE LEVEL\r
18220                         000000          VEDIT==0                ;EDIT NUMBER\r
18221                         000000          VCUSTOM==0              ;NON-DEC UPDATE LEVEL\r
18222 \r
18223 \r
18224         000137                          LOC     <JOBVER==137>\r
18225         000137  001000  000000          <VCUSTOM>B2+<VMACRO>B11+<VUPDATE>B17+VEDIT\r
18226         000000'                         RELOC\r
18227                                         MLON\r
18228 \r
18229                                 COMMENT *       ASSEMBLY FEATURE SWITCHES (ACTION WHEN NON-ZERO)\r
18230 \r
18231                                         SWITCHES ON (NON-ZERO) IN DEC VERSION\r
18232                                 CCLSW           GIVES RAPID PROGRAM GENERATION FEATURE\r
18233                                 FTDISK          GIVES DISK FEATURES\r
18234                                 RENTSW          ASSEMBLE REENTRANT PROGRAMS\r
18235 \r
18236                                         SWITCHES OFF (ZERO) IN DEC VERSION\r
18237                                 LNSSW           GIVES LNS VERSION\r
18238                                 WFWSW           GIVES ARRAY, INTEGER AND LVAR FEATURES\r
18239                                 IIISW           GIVES III FEATURES\r
18240                                 OPHSH           GIVES HASH SEARCH OF OPCODES\r
18241                                 *\r
18242 \r
18243 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 2\r
18244 MACRO   10      24-APR-78 02:11         DEFAULT ASSEMBLY SWITCH SETTINGS\r
18245 \r
18246                                 SUBTTL  DEFAULT ASSEMBLY SWITCH SETTINGS\r
18247 \r
18248 \r
18249                                 IFNDEF RENTSW,<RENTSW==0>\r
18250 \r
18251                                 IFNDEF LNSSW,<LNSSW==0>\r
18252                                 IFN LNSSW,<FTDISK==0>\r
18253 \r
18254                                 IFNDEF CCLSW,<CCLSW==1>\r
18255                         000001  IFN CCLSW,<FTDISK==1>\r
18256 \r
18257                                 IFNDEF WFWSW,<WFWSW==0>\r
18258 \r
18259 \r
18260                                 IFNDEF FTDISK,<FTDISK==0>\r
18261 \r
18262                                 IFNDEF IIISW,<IIISW==0>\r
18263 \r
18264                                 IFNDEF OPHSH,<OPHSH==0>\r
18265 \r
18266 \r
18267 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 3\r
18268 MACRO   10      24-APR-78 02:11         OTHER PARAMETERS\r
18269 \r
18270                                 SUBTTL  OTHER PARAMETERS\r
18271 \r
18272                         000062  .PDP==  ^D50            ;BASIC PUSH-DOWN POINTER\r
18273                                 IFNDEF LPTWID,<LPTWID==^D132>   ;DEFAULT WIDTH OF PRINTER\r
18274                         000170  .LPTWD==8*<LPTWID/8>            ;USEFUL WIDTH IN MAIN LISTING\r
18275                         000130  .CPL==  .LPTWD-^D32             ;WIDTH AVAIABLE FOR TEXT WHEN\r
18276                                                                 ;BINARY IS IN HALFWORD FORMAT\r
18277                         000067  .LPP==^D55      ;LINES/PAGE\r
18278                         000050  .STP==  ^D40            ;STOW SIZE\r
18279                         000120  .TBUF== ^D80            ;TITLE BUFFER\r
18280                         000120  .SBUF== ^D80            ;SUB-TITLE BUFFER\r
18281                         000024  .IFBLK==^D20            ;IFIDN COMPARISON BLOCK SIZE\r
18282                         000022  .R1B==^D18\r
18283                         000012  .UNIV==^D10             ;NUMBER OF UNIVERSAL DEFINITIONS\r
18284                         000004  .LEAF==4                ;SIZE OF BLOCKS IN MACRO TREE\r
18285 \r
18286                         000001  NCOLS==1                ;NUMBER OF COLUMNS IN SYMBOL TABLE\r
18287                                 IFN CCLSW,<IFNDEF CTLSIZ,<CTLSIZ==^D200>>\r
18288                                 IFN OPHSH,<IFNDEF PRIME,<PRIME==^D701>>\r
18289                                 IFNDEF NUMBUF,<\r
18290                                 IFE LNSSW,<NUMBUF==2    ;NUMBER OF INPUT BUFFERS>\r
18291                                 IFN LNSSW,<NUMBUF==4    ;DOUBLE BUFFER FOR DOUBLE SIZE DEVICES>\r
18292                                 >\r
18293 \r
18294                                 EXTERN  JOBREL,JOBSYM,JOBDDT,JOBFF,JOBAPR,JOBSA\r
18295                                 IFN CCLSW,<     EXTERN  JOBERR>\r
18296 \r
18297                                         SALL            ;SUPPRESS ALL MACROS\r
18298 \r
18299                                 ;SOME ASCII CHARACTERS\r
18300 \r
18301                         000011  HT==11\r
18302                         000012  LF==12\r
18303                         000013  VT==13\r
18304                         000014  FF==14\r
18305                         000015  CR==15\r
18306                         000033  EOL==33\r
18307 \r
18308 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 4\r
18309 MACRO   10      24-APR-78 02:11         OTHER PARAMETERS\r
18310 \r
18311                                                         ;ACCUMULATORS\r
18312                         000000  AC0==   0\r
18313                         000001  AC1=    AC0+1\r
18314                         000002  AC2=    AC1+1\r
18315                         000003  SDEL=   3               ;SEARCH INCREMENT\r
18316                         000004  SX=     SDEL+1          ;SEARCH INDEX\r
18317                         000005  ARG=    5               ;ARGUMENT\r
18318                         000006  V=      6               ;VALUE\r
18319                         000007  C=      7               ;CURRENT CHARACTER\r
18320                         000010  CS=     C+1             ;CHARACTER STATUS BITS\r
18321                         000011  RC=     11              ;RELOCATION BITS\r
18322                         000012  MWP=    12              ;MACRO WRITE POINTER\r
18323                         000013  MRP=    13              ;MACRO READ POINTER\r
18324                         000014  IO=     14              ;IO REGISTER (LEFT)\r
18325                         000014  ER==    IO              ;ERROR REGISTER (RIGHT)\r
18326                         000015  FR=     15              ;FLAG REGISTER (LEFT)\r
18327                         000015  RX==    FR              ;CURRENT RADIX (RIGHT)\r
18328                         000016  MP=     16              ;MACRO PUSHDOWN POINTER\r
18329                         000017  PP=     17              ;BASIC PUSHDOWN POINTER\r
18330 \r
18331                         000003  %OP==   3\r
18332                         000005  %MAC==  5\r
18333                         000002  %DSYM== 2\r
18334                         000001  %SYM==  1\r
18335                         000006  %DMAC== %MAC+1\r
18336 \r
18337                                 OPDEF   RESET   [CALLI   0]\r
18338                                 OPDEF   SETDDT  [CALLI   2]\r
18339                                 OPDEF   DDTOUT  [CALLI   3]\r
18340                                 OPDEF   DEVCHR  [CALLI   4]\r
18341                                 OPDEF   WAIT    [MTAPE   0]\r
18342                                 OPDEF   CORE    [CALLI  11]\r
18343                                 OPDEF   EXIT    [CALLI  12]\r
18344                                 OPDEF   UTPCLR  [CALLI  13]\r
18345                                 OPDEF   DATE    [CALLI  14]\r
18346                                 OPDEF   APRENB  [CALLI  16]\r
18347                                 OPDEF   MSTIME  [CALLI  23]\r
18348                                 OPDEF   PJOB    [CALLI  30]\r
18349                                 OPDEF   RUN     [CALLI  35]\r
18350                                 OPDEF   TMPCOR  [CALLI  44]\r
18351 \r
18352 \r
18353 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 5\r
18354 MACRO   10      24-APR-78 02:11         OTHER PARAMETERS\r
18355 \r
18356                                                         ;FR  FLAG REGISTER (FR/RX)\r
18357                         000001  IOSCR== 000001          ;NO CR AFTER LINE\r
18358                         000004  MTAPSW==000004          ;MAG TAPE\r
18359                         000010  ERRQSW==000010          ;IGNORE Q ERRORS\r
18360                         000020  LOADSW==000020          ;END OF PASS1 & NO EOF YET\r
18361                         000040  DCFSW== 000040          ;DECIMAL FRACTION\r
18362                         000100  RIM1SW==000100          ;RIM10 MODE\r
18363                         000200  NEGSW== 000200          ;NEGATIVE ATOM\r
18364                         000400  RIMSW== 000400          ;RIM OUTPUT\r
18365                         001000  PNCHSW==001000          ;RIM/BIN OUTPUT WANTED\r
18366                         002000  CREFSW==002000\r
18367                         004000  R1BSW== 004000          ;RIM10 BINARY OUTPUT\r
18368                         010000  TMPSW== 010000          ;EVALUATE CURRENT ATOM\r
18369                         020000  INDSW== 020000          ;INDIRECT ADDRESSING WANTED\r
18370                         040000  RADXSW==040000          ;RADIX ERROR SWITCH\r
18371                         100000  FSNSW== 100000          ;NON BLANK FIELD SEEN\r
18372                         200000  MWLFLG==200000          ;ON FOR DON'T ALLOW MULTI-WORD LITERALS\r
18373                         400000  P1==    400000          ;PASS1\r
18374 \r
18375                                                         ;IO FLAG REGISTER (IO/ER)\r
18376                         400000  FLDSW== 400000          ;ADDRESS FIELD\r
18377                         200000  IOMSTR==200000\r
18378                         100000  ARPGSW==100000          ;ALLOW RAPID PROGRAM GENERATION\r
18379                         040000  IOPROG==040000          ;SUPRESS LISTING (LIST/XLIST PSEUDO OP)\r
18380                         020000  NUMSW== 020000\r
18381                         010000  IOMAC== 010000          ;MACRO EXPANSION IN PROGRESS\r
18382                         004000  IOPALL==004000          ;SUPRESS LISTING OF MACRO EXPANSIONS\r
18383                         002000  IONCRF==002000          ;SUPRESS OUTPUT OF CREF INFORMATION\r
18384                         001000  CRPGSW==001000          ;CURRENTLY IN PROGRESS ON RPG\r
18385                         000400  IOCREF==000400          ;WE ARE NOW OUTPUTTING CREF INFO\r
18386                         000200  IOENDL==000200          ;BEEN TO STOUT\r
18387                         000100  IOPAGE==000100\r
18388                         000040  DEFCRS==000040          ;THIS IS A DEFINING OCCURANCE (MACROS)\r
18389                         000020  IOIOPF==000020          ;IOP INSTRUCTION SEEN\r
18390                         000010  MFLSW== 000010          ;MULTI-FILE MODE,PRGEND SEEN\r
18391                         000004  IORPTC==000004          ;REPEAT CURRENT CHARACTER\r
18392                         000002  IOTLSN==000002          ;TITLE SEEN\r
18393                         000001  IOSALL==000001          ;SUPPRESS MACRO LISTING EVEN IF BINARY IS GENERATED\r
18394 \r
18395                                 OPDEF   JUMP1   [JUMPL  FR,  ]  ;JUMP IF PASS 1\r
18396                                 OPDEF   JUMP2   [JUMPGE FR,  ]  ;JUMP IF PASS 2\r
18397 \r
18398                                 OPDEF   JUMPOC  [JUMPGE IO,  ]  ;JUMP IF IN OP-CODE FIELD\r
18399                                 OPDEF   JUMPAD  [JUMPL  IO,  ]  ;JUMP IF IN ADDRESS FIELD\r
18400 \r
18401                                 OPDEF   JUMPCM  [JUMPL  CS,  ]  ;JUMP IF CURRENT CHAR IS COMMA\r
18402                                 OPDEF   JUMPNC  [JUMPGE CS,  ]  ;JUMP IF CURRENT CHAR IS NON-COMMA\r
18403 \r
18404 \r
18405 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 6\r
18406 MACRO   10      24-APR-78 02:11         OTHER PARAMETERS\r
18407 \r
18408                                                         ;ER ERROR REGISTERS (IO/ER)\r
18409                         000020  ERRM==  000020          ;MULTIPLY DEFINED SYMBOL\r
18410                         000040  ERRE==  000040          ;ILLEGAL USE OF EXTERNAL\r
18411                         000100  ERRP==  000100          ;PHASE DISCREPANCY\r
18412                         000200  ERRO==  000200          ;UNDEFINED OP CODE\r
18413                         000400  ERRN==  000400          ;NUMBER ERROR\r
18414                         001000  ERRV==  001000          ;VALUE PREVIOUSLY UNDEFINED\r
18415                         002000  ERRU==  002000          ;UNDEFINED SYMBOL\r
18416                         004000  ERRR==  004000          ;RELOCATION ERROR\r
18417                         010000  ERRL==  010000          ;LITERAL ERROR\r
18418                         020000  ERRD==  020000          ;REFERENCE TO MULTIPLY DEFINED SYMBOL\r
18419                         040000  ERRA==  040000          ;PECULIAR ARGUMENT\r
18420                         100000  ERRX==  100000          ;MACRO DEFINITION ERROR\r
18421                         200000  ERRQ==  200000          ;QUESTIONABLE, NON-FATAL ERROR\r
18422                         777760  ERRORS==777760\r
18423                         000002  LPTSW== 000002\r
18424                         000001  TTYSW== 000001\r
18425 \r
18426                                                         ;SYMBOL TABLE FLAGS\r
18427                         400000  SYMF==  400000          ;SYMBOL\r
18428                         200000  TAGF==  200000          ;TAG\r
18429                         100000  NOOUTF==100000          ;NO DDT OUTPUT WFW\r
18430                         040000  SYNF==  040000          ;SYNONYM\r
18431                         020000  MACF==  SYNF_-1         ;MACRO\r
18432                         010000  OPDF==  SYNF_-2         ;OPDEF\r
18433                         004000  PNTF==  004000          ;"VALUE" IN SYMBOL TBL IS PNTR TO 36BIT VALUE\r
18434                         002000  UNDF==  002000          ;UNDEFINED\r
18435                         001000  EXTF==  001000          ;EXTERNAL\r
18436                         000400  INTF==  000400          ;INTERNAL\r
18437                         000200  ENTF==  000200          ;ENTRY\r
18438                         000100  VARF==  000100          ;VARIABLE\r
18439                         000020  MDFF==  000020          ;MULTIPLY DEFINED\r
18440                         000010  SPTR==  000010          ;SPECIAL EXTERNAL POINTER\r
18441                         000004  SUPRBT==000004          ;SUPRESS OUTPUT TO DDT\r
18442                         000002  LELF==  000002          ;LEFT HAND RELOCATABLE\r
18443                         000001  RELF==  000001          ;RIGHT HAND RELOCATABLE\r
18444 \r
18445                         200000  LITF==  200000          ;FLAG FOR PSEUDO-OPS INVALID IN LIT'S\r
18446                         100000  ADDF==  100000          ;FLAG FOR PSEUDO-OPS INVALID IN ADDRESSES\r
18447 \r
18448                         200000  TNODE== 200000          ;TERMINAL NODE FOR EVALEX\r
18449 \r
18450 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 7\r
18451 MACRO   10      24-APR-78 02:11         RUN UUO\r
18452 \r
18453                                 SUBTTL  RUN UUO\r
18454 \r
18455                                 IFN CCLSW,<\r
18456                                 ;THIS CODE MUST BE IN FIRST 1K TO ALLOW MAXIMUM SPACE\r
18457                                 ; FOR OVERWRITING\r
18458                                 ; 74 APPEARS BECAUSE ONLY LOCS 74 AND BEYOND ARE SAVED BY "SAVE"\r
18459 \r
18460         000000' 000000  000016' IFN CCLSW,<NUNCOM:      IOWD    0,INHERE        ;WHERE TO DO IO\r
18461         000001' 000000  000000          0                       ;TERMINATE COMMAND LIST\r
18462         000002' 056040  000000' NUNGO2: IN      BIN,NUNCOM      ;READ FILE\r
18463         000003' 254000  000011'         JRST    NUNGO3          ;THERE ARE NO ERRORS\r
18464         000004' 047400  000003  NUNERR: DDTOUT  NUNPNT,         ;COMPLAIN\r
18465         000005' 047000  000012          EXIT                    ;GIVE UP\r
18466         000006' 376311  147226  NUNERM: ASCIZ   /?LINKAGE ERROR/\r
18467         000007' 406170  520212\r
18468         000010' 512451  751000\r
18469         000011' 332500  000056' NUNGO3: SKIPE   12,INHERE+133-74 ;LOOK AT JOBCOR\r
18470                                                                 ;DOES JOB WANT TO RUN IN MORE CORE?\r
18471         000012' 317500  000000*         CAMG    12,JOBREL       ;MORE CORE THAN CURRENTLY USED?\r
18472         000013' 254000  000000          JRST    NUNGO4          ;NO, GO BLT PROG\r
18473         000014' 047500  000011          CORE    12,             ;ASK FOR MORE CORE\r
18474         000015' 254000  000004'         JRST    NUNERR          ;NOT AVAILABLE\r
18475         000016' 254000  000000          JRST    NUNGO4          ;GO BLT PROGRAM\r
18476         000017'                 INHERE:\r
18477 \r
18478 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 8\r
18479 MACRO   10      24-APR-78 02:11         RUN UUO\r
18480 \r
18481                                 ;THIS CODE MUST BE IN FIRST 1K\r
18482         000017' 326040  000021' NUNSET: JUMPN   ACDEV,.+2               ;DEVICE SPECIFIED?\r
18483         000020' 205040  637163          MOVSI   ACDEV,(SIXBIT /SYS/)    ;NO, USE SYSTEM DEVICE\r
18484         000021' 326140  000023'         JUMPN   ACEXT,.+2               ;EXT SPECIFIED?\r
18485         000022' 205140  634166          MOVSI   ACEXT,(SIXBIT /SAV/)    ;NO, USE "SAV"\r
18486         000023' 202040  013226'         MOVEM   ACDEV,NUNDEV            ;DEVICE NAME TO USE\r
18487         000024' 050040  013225'         OPEN    BIN,NUNINI              ;INIT THE DEVICE\r
18488         000025' 254000  010162'         JRST    EINIT                   ;ERROR\r
18489         000026' 202100  013333'         MOVEM   ACFILE,NUNDIR           ;IS THE FILE AVAILABLE?\r
18490         000027' 512140  013334'         HLLZM   ACEXT,NUNDIR+1          ;STASH EXTENSION\r
18491         000030' 402000  013336'         SETZM   NUNDIR+3                ;CLEAR PPN\r
18492         000031' 076040  013333'         LOOKUP  BIN,NUNDIR              ;LOOK FOR FILE\r
18493                                         JRST    [HLRZ   ACEXT,NUNDIR+1          ;WAS EXTENSION "SAV"?\r
18494                                                 CAIE    ACEXT,(SIXBIT /SAV/)    ;...\r
18495                                                 JRST    ERRCF                   ;GO COMPLAIN\r
18496                                                 MOVSI   ACEXT,(SIXBIT /DMP/)    ;TRY "DMP" EXTENSION\r
18497         000032' 254000  014570'                 JRST    .-3     ]               ;TRA -3,4\r
18498         000033' 260740  000066'         PUSHJ PP,DELETE         ;COMMAND FILE\r
18499         000034' 200640  013333'         MOVE 15,NUNDIR          ;GET THE NAME\r
18500         000035' 047640  000043          CALLI 15,43     ;TELL SYSTEM "SETNAM"\r
18501         000036' 564640  013336'         HLRO    15,NUNDIR+3     ;GET WORD COUNT\r
18502         000037' 506640  000000'         HRLM    15,NUNCOM       ;STASH COUNT\r
18503         000040' 213000  000015          MOVNS   15              ;NEGATIVE COUNT\r
18504         000041' 201715  000073          MOVEI   16,73(15)       ;WHERE TO STOP BLT\r
18505         000042' 271640  000017'         ADDI    15,INHERE       ;HOW BIG TO MAKE CORE\r
18506         000043' 435640  001777          IORI    15,1777         ;AN EVEN MULTIPLE OF 1K\r
18507         000044' 047640  000011          CORE    15,             ;ASK TS EXEC FOR CORE\r
18508                                         JRST    [HRROI RC,[SIXBIT /NOT ENUF CORE FOR LINKAGE@/]\r
18509         000045' 254000  014602'                 JRST ERRFIN     ];GO COMPLAIN\r
18510         000046' 205440  000054'         MOVSI   NUNTOP,NUNAC\r
18511         000047' 251440  000011          BLT     NUNTOP,NUNTOP   ;SET ACS\r
18512         000050' 540200  000016          HRR     NUNBLT,16       ;...\r
18513         000051' 607600  001000          TLNN    IO,CRPGSW       ;WAS RPG IN PROGRESS?\r
18514         000052' 621300  577000          TLZ     NUNAOS,577000   ;NO, DON'T MAKE NEXT AN RPG\r
18515         000053' 254000  000002'         JRST    NUNGO2\r
18516 \r
18517         000000                  NUNAC:  PHASE   0\r
18518         000054' 200500  000017' NUNGO4: MOVE    NUNLAC,INHERE+74-74     ;SETUP FOR NEW DDT\r
18519         000055' 047500  000002          SETDDT  NUNLAC,         ;...\r
18520                                 INTERN JOBS41\r
18521                         000122  JOBS41=122              ;LOADER WILL GIVE MUL. DEF. GLOBAL IF CHANGED\r
18522 \r
18523                                 EXTERN JOB41\r
18524         000056' 200500  000045'         MOVE    NUNLAC,JOBS41+INHERE-74 ;RESTORE LOC 41\r
18525         000057' 202500  000000*         MOVEM   NUNLAC,JOB41    ;...\r
18526         000060' 251440  000000  NUNBLT: BLT     NUNTOP,.-.      ;MOVE PRGM TO WHERE IT BELONGS\r
18527         000061' 047000  000000          RESET                   ;RESET ALL I/O\r
18528         000062' 350040  000000* NUNAOS: AOS     1,JOBSA         ;GET STARTING ADDR FOR RPG\r
18529         000063' 254001  000000          JRST    0(1)            ;GET ON WITH THE GAME\r
18530         000064' 000000  000006' NUNPNT: NUNERM                  ;ERROR MESSAGE POINTER\r
18531         000065' 000020' 000075  NUNTOP: XWD     INHERE+1,75\r
18532                         000012  NUNLAC=.\r
18533         000066'                         DEPHASE\r
18534 \r
18535 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 8-1\r
18536 MACRO   10      24-APR-78 02:11         RUN UUO\r
18537 \r
18538                                 >   \r
18539                                         LIST\r
18540 \r
18541 \r
18542 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 9\r
18543 MACRO   10      24-APR-78 02:11         RUN UUO\r
18544 \r
18545         000066' 550000  014104' DELETE: HRRZ    EXTMP           ;IF THE EXTENSION\r
18546         000067' 302000  645560          CAIE    (SIXBIT/TMP/)   ;IS  .TMP\r
18547         000070' 263740  000000          POPJ    PP,             ;RETURN.\r
18548         000071' 070200  000000          CLOSE   CTL2,           ;DELETE\r
18549         000072' 403200  000005          SETZB   4,5             ;THE COMMAND FILE.\r
18550         000073' 403300  000007          SETZB   6,7\r
18551         000074' 055200  000004          RENAME  CTL2,4          ;\r
18552         000075' 255000  000000          JFCL\r
18553         000076' 263740  000000          POPJ    PP,\r
18554                                 >\r
18555 \r
18556 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 10\r
18557 MACRO   10      24-APR-78 02:11         START ASSEMBLING\r
18558 \r
18559                                 SUBTTL  START ASSEMBLING\r
18560 \r
18561         000077' 260740  003356' ASSEMB: PUSHJ   PP,INZ          ;INITIALIZE FOR PASS\r
18562         000100' 200000  014604'         MOVE    [ASCII /.MAIN/]\r
18563         000101' 202000  013701'         MOVEM   TBUF\r
18564         000102' 201000  013527'         MOVEI   SBUF\r
18565         000103' 542000  013550'         HRRM    SUBTTX\r
18566 \r
18567         000104' 260740  001415' ASSEM1: PUSHJ   PP,CHARAC       ;TEST FOR FORM FEED\r
18568         000105' 335000  013452'         SKIPGE  LIMBO           ;CRLF FLAG?\r
18569         000106' 254000  000104'         JRST    ASSEM1          ;YES ,IGNORE LF\r
18570         000107' 306340  000014          CAIN    C,14\r
18571         000110' 332000  013214'         SKIPE   SEQNO\r
18572         000111' 254000  000115'         JRST    ASSEM2\r
18573         000112' 260740  010674'         PUSHJ   PP,OUTFF1\r
18574         000113' 260740  001774'         PUSHJ   PP,OUTLI\r
18575         000114' 254000  000104'         JRST    ASSEM1\r
18576 \r
18577         000115' 350000  014051' ASSEM2: AOS     TAGINC\r
18578         000116' 306340  000134          CAIN    C,"\"           ;BACK-SLASH?\r
18579         000117' 625600  010000          TLZA    IO,IOMAC        ;YES, LIST IF IN MACRO\r
18580         000120' 661600  000004          TLO     IO,IORPTC\r
18581         000121' 260740  000125'         PUSHJ   PP,STMNT        ;OFF WE GO\r
18582         000122' 627600  000200          TLZN    IO,IOENDL       ;WAS STOUT PRE-EMPTED?\r
18583         000123' 260740  000237'         PUSHJ   PP,STOUT        ;NO, POLISH OFF LINE\r
18584         000124' 254000  000104'         JRST    ASSEM1\r
18585 \r
18586 \r
18587 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 11\r
18588 MACRO   10      24-APR-78 02:11         STATEMENT PROCESSOR\r
18589 \r
18590                                 SUBTTL  STATEMENT PROCESSOR\r
18591 \r
18592         000125' 621640  120000  STMNT:  TLZ     FR,INDSW!FSNSW\r
18593         000126' 625600  400000          TLZA    IO,FLDSW\r
18594         000127' 260740  000253' STMNT1: PUSHJ   PP,LABEL\r
18595         000130' 260740  000334' STMNT2: PUSHJ   PP,ATOM         ;GET THE FIRST ATOM\r
18596         000131' 306340  000035          CAIN    C,35            ;"="?\r
18597         000132' 254000  004112'         JRST    ASSIGN          ;YES\r
18598         000133' 306340  000032          CAIN    C,32            ;":"?\r
18599         000134' 254000  000127'         JRST    STMNT1          ;YES\r
18600         000135' 321600  000200'         JUMPAD  STMNT7          ;NUMERIC EXPRESSION\r
18601         000136' 326000  000146'         JUMPN   AC0,STMN2A      ;JUMP IF NON NULL FIELD\r
18602         000137' 336000  013773'         SKIPN   LITLVL          ;ALLOW COMMA IN LITERALS\r
18603         000140' 302340  000014          CAIE    C,14            ;NULL, COMMA?\r
18604         000141' 306340  000033          CAIN    C,EOL           ;OR END OF LINE?\r
18605         000142' 263740  000000          POPJ    PP,             ;YES,EXIT\r
18606         000143' 306340  000135          CAIN    C,"]"           ;CLOSING LITERAL?\r
18607         000144' 263740  000000          POPJ    PP,             ;YES\r
18608         000145' 254000  000201'         JRST    STMNT9          ;NO,AT LEAST SKIP ALL THIS NONSENSE\r
18609 \r
18610         000146' 322340  000150' STMN2A: JUMPE   C,.+2\r
18611         000147' 661600  000004          TLO     IO,IORPTC\r
18612         000150' 260740  012573'         PUSHJ   PP,MSRCH        ;SEARCH FOR MACRO/OPDEF/SYN\r
18613         000151' 254000  000157'         JRST    STMNT3          ;NOT FOUND, TRY OP CODE\r
18614         000152' 135140  014605'         LDB     SDEL,[POINT 3,ARG,5]\r
18615         000153' 322140  003400'         JUMPE   SDEL,ERRAX      ;ERROR IF NO FLAGS\r
18616         000154' 362140  004437'         SOJE    SDEL,OPD1       ;OPDEF IF 1\r
18617         000155' 362140  005705'         SOJE    SDEL,CALLM      ;MACRO IF 2\r
18618         000156' 254000  000161'         JRST    STMNT4          ;SYNONYM, PROCESS WITH OP-CODES\r
18619 \r
18620         000157' 260740  010754' STMNT3: PUSHJ   PP,OPTSCH       ;SEARCH OP CODE TABLE\r
18621         000160' 254000  000167'         JRST    STMNT5          ;NOT FOUND\r
18622         000161' 510000  000006  STMNT4: HLLZ    AC0,V           ;PUT CODE IN AC0\r
18623         000162' 620300  100000          TRZ     V,ADDF          ;CLEAR ADDRESS NON-VALID FLAG\r
18624         000163' 622300  200000          TRZE    V,LITF          ;VALID IN LITERAL?\r
18625         000164' 336000  013773'         SKIPN   LITLVL          ;NO, ARE WE IN A LITERAL?\r
18626         000165' 254006  000000          JRST    0(V)            ;NO, GO TO APPROPRIATE PROCESSOR\r
18627         000166' 263740  000000          POPJ    PP,             ;YES,EXIT\r
18628 \r
18629         000167' 260740  012610' STMNT5: PUSHJ   PP,SSRCH        ;TRY SYMBOLS\r
18630         000170' 254000  000207'         JRST    STMNT8          ;NOT FOUND\r
18631         000171' 603240  003000          TLNE    ARG,EXTF!UNDF   ;EXTERNAL OR UNDEFINED?\r
18632         000172' 254000  000200'         JRST    STMNT7          ;YES, PROCESS IN EVALEX\r
18633         000173' 607440  777776          TLNN RC,-2              ;CHECK FOR EXTERNAL\r
18634         000174' 602440  777776          TRNE RC,-2\r
18635         000175' 254000  000200'         JRST STMNT7\r
18636         000176' 200000  000006          MOVE    AC0,V           ;FOUND, PUT VALUE IN AC0\r
18637         000177' 661600  020000          TLO     IO,NUMSW        ;FLAG AS NUMERIC\r
18638         000200' 621600  000004  STMNT7: TLZ     IO,IORPTC\r
18639         000201' 260740  001065' STMNT9: PUSHJ   PP,EVALHA       ;EVALUATE EXPRESSION\r
18640         000202' 603640  100000          TLNE    FR,FSNSW        ;FIELD SEEN?\r
18641         000203' 254000  002751'         JRST    STOW            ;YES,STOW THE CODE AND EXIT\r
18642         000204' 302340  000075          CAIE    C,"]"-40        ;CLOSING LITERAL?\r
18643 \r
18644 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 11-1\r
18645 MACRO   10      24-APR-78 02:11         STATEMENT PROCESSOR\r
18646 \r
18647         000205' 660600  200000          TRO     ER,ERRQ         ;NO, GIVE "Q" ERROR\r
18648         000206' 263740  000000          POPJ    PP,             ;EXIT\r
18649 \r
18650 \r
18651 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 12\r
18652 MACRO   10      24-APR-78 02:11         STATEMENT PROCESSOR\r
18653 \r
18654         000207' 201300  000000  STMNT8: MOVEI   V,0             ;ALWAYS START SCAN WITH 0\r
18655         000210' 301300  000112          CAIL    V,CALNTH        ;END OF TABLE?\r
18656         000211' 254000  000221'         JRST    STMN8C          ;YES, TRY TTCALLS\r
18657         000212' 312006  012443'         CAME    AC0,CALTBL(V)   ;FOUND IT?\r
18658         000213' 344300  000210'         AOJA    V,.-3           ;NO,TRY AGAIN\r
18659         000214' 275300  000001          SUBI    V,NEGCAL        ;CALLI'S START AT -1\r
18660         000215' 505300  047000          HRLI    V,(CALLI)       ;PUT IN UUO\r
18661         000216' 205240  010000  STMN8D: MOVSI   ARG,OPDF        ;SET FLAG FOR OPDEF\r
18662         000217' 260740  013036' STMN8B: PUSHJ   PP,INSERT       ;PUT OPDEF IN TABLE\r
18663         000220' 254000  004441'         JRST    OPD             ;AND TREAT AS OPDEF\r
18664 \r
18665         000221' 400300  000000  STMN8C: SETZ    V,              ;START WITH ZERO\r
18666         000222' 301300  000016          CAIL    V,TTCLTH        ;END OF TABLE?\r
18667         000223' 254000  000231'         JRST    STMN8A          ;YES, ERROR\r
18668         000224' 312006  012555'         CAME    AC0,TTCTBL(V)   ;MATCH?\r
18669         000225' 344300  000222'         AOJA    V,.-3           ;NO, KEEP TRYING\r
18670         000226' 242300  000005          LSH     V,5             ;PUT IN AC FIELD (RIGHT HALF)\r
18671         000227' 515306  051000          HRLZI   V,<(TTCALL)>(V) ;PUT UUO IN LEFT HALF\r
18672         000230' 254000  000216'         JRST    STMN8D          ;SET OPDEF FLAG\r
18673 \r
18674         000231' 403300  000011  STMN8A: SETZB   V,RC            ;CLEAR VALUE AND RELOCATION\r
18675         000232' 660600  000200          TRO     ER,ERRO         ;FLAG AS UNDEFINED OP-CODE\r
18676         000233' 321640  004441'         JUMP1   OPD             ;TREAT AS STANDARD OP ON PASS1\r
18677         000234' 205240  013000          MOVSI   ARG,OPDF!UNDF!EXTF      ;SET A FEW FLAGS\r
18678         000235' 254000  000217'         JRST    STMN8B          ;TO FORCE OUT A MESSAGE\r
18679 \r
18680                                                 ;STATEMENT OUT PASSES REMAINDER OF LINE (CMNT)\r
18681                                                         ;UNTIL A LINE TERMINATOR IS SEEN.\r
18682         000236' 665600  000204  STOUTS: TLOA    IO,IOENDL!IORPTC\r
18683         000237' 661600  000004  STOUT:  TLO     IO,IORPTC\r
18684         000240' 260740  004543'         PUSHJ   PP,BYPAS1\r
18685         000241' 306340  000014          CAIN    C,14            ;COMMA?\r
18686         000242' 331000  013555'         SKIPL   STPX            ;YES, ERROR IF CODE STORED\r
18687         000243' 306340  000033          CAIN    C,EOL\r
18688         000244' 665600  000004          TLOA    IO,IORPTC\r
18689         000245' 660600  200000          TRO     ER,ERRQ\r
18690         000246' 260740  001415' STOUT1: PUSHJ   PP,CHARAC\r
18691         000247' 307340  000015          CAIG    C,CR\r
18692         000250' 307340  000011          CAIG    C,HT\r
18693         000251' 254000  000246'         JRST    STOUT1\r
18694         000252' 254000  001556'         JRST    OUTLIN          ;OUTPUT THE LINE (BIN AND LST)\r
18695 \r
18696 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 13\r
18697 MACRO   10      24-APR-78 02:11         LABEL PROCESSOR\r
18698 \r
18699                                         SUBTTL  LABEL PROCESSOR\r
18700         \r
18701         000253' 321600  000317' LABEL:  JUMPAD  LABEL4          ;COMPARE IF NON-SYMBOLIC\r
18702         000254' 322000  000321'         JUMPE   AC0,LABEL5      ;ERROR IF BLANK\r
18703         000255' 661600  000040          TLO IO,DEFCRS           ;THIS IS A DEFINITION\r
18704         000256' 260740  012610'         PUSHJ   PP,SSRCH        ;SEARCH FOR OPERAND\r
18705         000257' 205240  602000          MOVSI   ARG,SYMF!UNDF!TAGF      ;NOT FOUND\r
18706         000260' 607240  001000          TLNN    ARG,EXTF        ;OPERAND FOUND (SKIP EXIT)\r
18707         000261' 254000  000266'         JRST    LABEL0\r
18708         000262' 321640  000313'         JUMP1   LABEL3          ;ERROR ON PASS1\r
18709         000263' 607240  002000          TLNN    ARG,UNDF        ;UNDEFINED ON PASS1\r
18710         000264' 254000  000313'         JRST    LABEL3          ;NO, FLAG ERROR\r
18711         000265' 621240  005000          TLZ     ARG,EXTF!PNTF   ;TURN OFF EXT FLAG NOW\r
18712         000266' 627240  002100  LABEL0: TLZN    ARG,UNDF!VARF   ;WAS IT PREVIOUSLY DEFINED?\r
18713         000267' 254000  000310'         JRST    LABEL2          ;YES, CHECK EQUALITY\r
18714         000270' 200300  013777'         MOVE    V,LOCA  ;WFW\r
18715         000271' 200440  014004'         MOVE    RC,MODA\r
18716         000272' 661240  200000          TLO     ARG,TAGF\r
18717         000273' 260740  006531'         PUSHJ   PP,PEEK         ;GET NEXT CHAR.\r
18718         000274' 302340  000072          CAIE    C,":"           ;SPECIAL CHECK FOR  ::\r
18719         000275' 254000  000301'         JRST    LABEL1          ;NO MATCH\r
18720         000276' 661240  000400          TLO     ARG,INTF        ;MAKE IT INTERNAL\r
18721         000277' 260740  001363'         PUSHJ   PP,GETCHR       ;PROCESS NEXT CHAR.\r
18722         000300' 260740  006531'         PUSHJ   PP,PEEK         ;PREVIEW NEXT CHAR.\r
18723         000301' 302340  000041  LABEL1: CAIE    C,"!"           ;HALF-KILL SIGN\r
18724         000302' 254000  000305'         JRST    LABEL6          ;NO\r
18725         000303' 661240  100000          TLO     ARG,NOOUTF      ;YES, SUPPRESS IT\r
18726         000304' 260740  001363'         PUSHJ   PP,GETCHR       ;AND GET RID OF IT\r
18727         000305' 202000  013211' LABEL6: MOVEM   AC0,TAG         ;SAVE FOR PASS 1 ERRORS\r
18728         000306' 513000  014051'         HLLZS   TAGINC          ;ZERO INCREMENT\r
18729         000307' 254000  013036'         JRST    INSERT          ;INSERT/UPDATE AND EXIT\r
18730 \r
18731         000310' 526300  013776' LABEL2: HRLOM   V,LOCBLK        ;SAVE LIST LOCATION\r
18732         000311' 316300  013777'         CAMN    V,LOCA          ;DOES IT COMPARE WITH PREVIOUS? WFW\r
18733         000312' 312440  014004'         CAME    RC,MODA\r
18734         000313' 665240  000020  LABEL3: TLOA    ARG,MDFF        ;NO, FLAG MULTIPLY DEFINED AND SKIP\r
18735         000314' 254000  000323'         JRST    LABEL7          ;YES, GET RID OF EXTRA CHARS.\r
18736         000315' 660600  000020          TRO     ER,ERRM         ;FLAG MULTIPLY DEFINED ERROR \r
18737         000316' 254000  013137'         JRST    UPDATE          ;UPDATE AND EXIT\r
18738 \r
18739         000317' 316000  013777' LABEL4: CAMN    AC0,LOCA        ;DO THEY COMPARE?\r
18740         000320' 312440  014004'         CAME    RC,MODA\r
18741         000321' 660600  000100  LABEL5: TRO     ER,ERRP         ;NO, FLAG PHASE ERROR\r
18742         000322' 263740  000000          POPJ    PP,\r
18743 \r
18744         000323' 332000  013773' LABEL7: SKIPE   LITLVL          ;LABEL IN A LITERAL?\r
18745         000324' 202000  013774'         MOVEM   AC0,LITLBL      ;YES, SAVE LABEL NAME FOR LATER\r
18746         000325' 260740  006531'         PUSHJ   PP,PEEK         ;INSPECT A CHAR.\r
18747         000326' 306340  000072          CAIN    C,":"           ;COLON?\r
18748         000327' 260740  001363'         PUSHJ   PP,GETCHR       ;YES, DISPOSE OF IT\r
18749         000330' 260740  006531'         PUSHJ   PP,PEEK         ;EXAMINE ONE MORE CHAR.\r
18750         000331' 306340  000041          CAIN    C,"!"           ;EXCLAMATION?\r
18751         000332' 254000  001363'         JRST    GETCHR          ;YES, INDEED\r
18752 \r
18753 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 14\r
18754 MACRO   10      24-APR-78 02:11         LABEL PROCESSOR\r
18755 \r
18756         000333' 263740  000000          POPJ    PP,\r
18757 \r
18758 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 15\r
18759 MACRO   10      24-APR-78 02:11         ATOM PROCESSOR\r
18760 \r
18761                                 SUBTTL  ATOM PROCESSOR\r
18762         000334' 260740  000363' ATOM:   PUSHJ   PP,CELL         ;GET FIRST CELL\r
18763         000335' 603600  020000          TLNE    IO,NUMSW        ;IF NON-NUMERIC\r
18764         000336' 302340  000042  ATOM1:  CAIE    C,42            ;OR NOT A BINARY SHIFT,\r
18765         000337' 263740  000000          POPJ    PP,             ;EXIT\r
18766 \r
18767         000340' 261740  000000          PUSH    PP,AC0          ;STACK REGISTERS, ITS A BINARY SHIFT\r
18768         000341' 261740  000001          PUSH    PP,AC1\r
18769         000342' 261740  000011          PUSH    PP,RC\r
18770         000343' 261740  000015          PUSH    PP,RX\r
18771         000344' 541640  000012          HRRI    RX,^D10         ;COMPUTE SHIFT RADIX 10\r
18772         000345' 260740  000362'         PUSHJ   PP,CELLSF       ;GET SHIFT\r
18773         000346' 200240  000011          MOVE    ARG,RC          ;SAVE RELOCATION\r
18774         000347' 262740  000015          POP     PP,RX           ;RESTORE REGISTERS\r
18775         000350' 262740  000011          POP     PP,RC\r
18776         000351' 262740  000001          POP     PP,AC1\r
18777         000352' 210200  000000          MOVN    SX,AC0          ;USE NEGATIVE OF SHIFT\r
18778         000353' 262740  000000          POP     PP,AC0\r
18779         000354' 326240  000441'         JUMPN   ARG,NUMER2      ;IF NOT ABSOLUTE\r
18780         000355' 607600  020000          TLNN    IO,NUMSW        ;AND NUMERIC,\r
18781         000356' 254000  000441'         JRST    NUMER2          ;FLAG ERROR\r
18782         000357' 246004  000043          LSHC    AC0,^D35(SX)\r
18783         000360' 242444  000043          LSH     RC,^D35(SX)\r
18784         000361' 254000  000336'         JRST    ATOM1           ;TEST FOR ANOTHER\r
18785 \r
18786 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 16\r
18787 MACRO   10      24-APR-78 02:11         ATOM PROCESSOR\r
18788 \r
18789         000362' 661600  400000  CELLSF: TLO     IO,FLDSW\r
18790         000363' 403000  000011  CELL:   SETZB   AC0,RC          ;CLEAR RESULT AND RELOCATION\r
18791         000364' 403040  000002          SETZB   AC1,AC2         ;CLEAR WORK REGISTERS\r
18792         000365' 202740  014014'         MOVEM   PP,PPTEMP       ;SAVE PUSHDOWN POINTER\r
18793         000366' 621600  020000          TLZ     IO,NUMSW\r
18794         000367' 625640  040240          TLZA    FR,NEGSW!DCFSW!RADXSW\r
18795 \r
18796         000370' 661600  400000  CELL1:  TLO     IO,FLDSW\r
18797         000371' 260740  004543'         PUSHJ   PP,BYPASS\r
18798         000372' 135300  014606'         LDB     V,[POINT 4,CSTAT(C),14] ;GET CODE\r
18799         000373' 256006  000374'         XCT     .+1(V)          ;EXECUTE, INDEX VIA BITS 11,12,13,14 OF CSTAT TABLE\r
18800         000374' 254000  000370'         JRST    CELL1           ;0; BLANK, (TAB OR "+")\r
18801         000375' 254000  000407'         JRST    LETTER          ;1; LETTER  ] $ % ( ) , ; >\r
18802         000376' 641640  000200          TLC     FR,NEGSW        ;2; "-"\r
18803         000377' 661640  020000          TLO     FR,INDSW        ;3; "@"\r
18804         000400' 254000  000717'         JRST    NUM1            ;4; NUMERIC   0 - 9\r
18805         000401' 254000  000662'         JRST    ANGLB           ;5; "<"\r
18806         000402' 254000  000557'         JRST    SQBRK           ;6; "["\r
18807         000403' 254000  000456'         JRST    QUOTES          ;7; ""","'" \r
18808         000404' 254000  000523'         JRST    QUAL            ;10; "^"\r
18809         000405' 254000  000700'         JRST    PERIOD          ;11; "."\r
18810         000406' 664600  200000          TROA    ER,ERRQ         ;12; ERROR, FLAG AND TREAT AS DELIMITER\r
18811                                                                 ;12;    ! # & * / : = ? \ _\r
18812 \r
18813 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 17\r
18814 MACRO   10      24-APR-78 02:11         ATOM PROCESSOR\r
18815 \r
18816         000407' 665100  440600  LETTER: TLOA    AC2,(POINT 6,AC0,)      ;SET BYTE POINTER\r
18817         000410' 260740  001363' LETTE1: PUSHJ   PP,GETCHR       ;GET CHARACTER\r
18818         000411' 607400  000006          TLNN    CS,6            ;ALPHA-NUMERIC?\r
18819         000412' 254000  000416'         JRST    LETTE3          ;NO,TEST FOR VARIABLE\r
18820         000413' 603100  770000          TLNE    AC2,770000      ;STORE ONLY SIX BYTES\r
18821         000414' 136340  000002  LETTE2: IDPB    C,AC2           ;RETURN FROM PERIOD\r
18822         000415' 254000  000410'         JRST    LETTE1\r
18823 \r
18824         000416' 302340  000003  LETTE3: CAIE    C,03            ;"#"?\r
18825         000417' 263740  000000          POPJ    PP,\r
18826         000420' 322000  000455'         JUMPE   AC0,POPOUT      ;TEST FOR NULL\r
18827         000421' 260740  006531'         PUSHJ   PP,PEEK         ;PEEK AT NEXT CHAR.\r
18828         000422' 306340  000043          CAIN    C,"#"           ;IS IT 2ND #?\r
18829         000423' 254000  000435'         JRST    LETTE4          ;YES, THEN IT'S AN EXTERN\r
18830         000424' 661600  000040          TLO     IO,DEFCRS\r
18831         000425' 260740  012610'         PUSHJ   PP,SSRCH        ;YES, SEARCH FOR SYMBOL (OPERAND)\r
18832         000426' 205240  402000          MOVSI   ARG,SYMF!UNDF   ;NOT FOUND, FLAGAS UNDEFINED SYM.\r
18833         000427' 607240  002000          TLNN    ARG,UNDF        ;UNDEFINED?\r
18834         000430' 254000  001363'         JRST    GETCHR          ;NO, GET NEXT CHAR AND RETURN\r
18835         000431' 661240  000100          TLO     ARG,VARF        ;YES, FLAG AS A VARIABLE\r
18836         000432' 660600  002000          TRO     ER,ERRU         ;SET UNDEFINED ERROR FLAG\r
18837         000433' 260740  013035'         PUSHJ   PP,INSERZ       ;INSERT IT WITH A ZERO VALUE\r
18838         000434' 254000  000442'         JRST    GETDEL\r
18839 \r
18840         000435' 260740  001363' LETTE4: PUSHJ   PP,GETCHR       ;AND SCAN PAST IT\r
18841         000436' 260740  001363'         PUSHJ   PP,GETCHR       ;GET RID OF #\r
18842         000437' 254000  004006'         JRST    EXTER1          ;PUT IN SYMBOL TABLE\r
18843 \r
18844         000440' 403000  000011  NUMER1: SETZB   AC0,RC          ;RETURN ZERO\r
18845         000441' 660600  000400  NUMER2: TRO     ER,ERRN         ;FLAG ERROR\r
18846 \r
18847         000442' 260740  004543' GETDEL: PUSHJ   PP,BYPASS\r
18848         000443' 322340  000442' GETDE1: JUMPE   C,.-1\r
18849         000444' 201040  000000          MOVEI   AC1,0\r
18850         000445' 661600  420000  GETDE3: TLO     IO,NUMSW!FLDSW  ;FLAG NUMERIC\r
18851         000446' 607640  000200          TLNN    FR,NEGSW        ;IS ATOM NEGATIVE?\r
18852         000447' 263740  000000          POPJ    PP,             ;NO, EXIT\r
18853         000450' 322040  000453'         JUMPE   AC1,GETDE2\r
18854         000451' 213000  000001          MOVNS   AC1\r
18855         000452' 654000  014607'         TDCA    AC0,[-1]\r
18856         000453' 213000  000000  GETDE2: MOVNS   AC0             ;YES, NEGATE VALUE\r
18857         000454' 213000  000011          MOVNS   RC              ;AND RELOCATION\r
18858         000455' 263740  000000  POPOUT: POPJ    PP,             ;EXIT\r
18859 \r
18860 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 18\r
18861 MACRO   10      24-APR-78 02:11         ATOM PROCESSOR\r
18862 \r
18863         000456' 302340  000007  QUOTES: CAIE    C,"'"-40        ;IS IT  "'"\r
18864         000457' 254000  000465'         JRST    QUOTE           ;NO MUST BE """\r
18865         000460' 254000  000507'         JRST    SQUOTE          ;YES\r
18866 \r
18867         000461' 603000  376000  QUOTE0: TLNE    AC0,376000      ;5 CHARACTERS STORED ALREADY?\r
18868         000462' 660600  200000          TRO     ER,ERRQ         ;YES, GIVE WARNING\r
18869         000463' 240000  000007          ASH     AC0,7\r
18870         000464' 434000  000007          IOR     AC0,C\r
18871         000465' 260740  001415' QUOTE:  PUSHJ   PP,CHARAC       ;GET 7-BIT ASCII\r
18872         000466' 307340  000015          CAIG    C,15            ;TEST FOR LF, VT, FF OR CR\r
18873         000467' 305340  000012          CAIGE   C,12\r
18874         000470' 254000  000472'         JRST    .+2             ;NO, SO ALL IS WELL\r
18875         000471' 254000  000501'         JRST    QUOTE2          ;ESCAPE WITH Q ERROR\r
18876         000472' 302340  000042          CAIE    C,42\r
18877         000473' 254000  000461'         JRST    QUOTE0\r
18878         000474' 260740  006531'         PUSHJ   PP,PEEK         ;LOOK AT NEXT CHAR.\r
18879         000475' 302340  000042          CAIE    C,42\r
18880         000476' 254000  000502'         JRST    QUOTE1          ;RESTORE REPEAT LEVEL AND QUIT\r
18881         000477' 260740  001415'         PUSHJ   PP,CHARAC       ;GET NEXT CHAR.\r
18882         000500' 254000  000461'         JRST    QUOTE0          ;USE IT\r
18883 \r
18884         000501' 660600  200000  QUOTE2: TRO     ER,ERRQ         ;SET Q ERROR\r
18885         000502' 254000  000442' QUOTE1: JRST    GETDEL\r
18886 \r
18887         000503' 603000  770000  SQUOT0: TLNE    AC0,770000      ;SIX CHARS. STORED ALREADY ?\r
18888         000504' 660600  200000          TRO     ER,ERRQ         ;YES\r
18889         000505' 242000  000006          LSH     AC0,6\r
18890         000506' 435007  777740          IORI    AC0,-40(C)      ;OR IN SIXBIT CHAR.\r
18891 \r
18892         000507' 260740  001415' SQUOTE: PUSHJ   PP,CHARAC\r
18893         000510' 307340  000015          CAIG    C,CR\r
18894         000511' 305340  000012          CAIGE   C,LF\r
18895         000512' 254000  000514'         JRST    .+2\r
18896         000513' 254000  000502'         JRST    QUOTE1\r
18897         000514' 302340  000047          CAIE    C,"'"\r
18898         000515' 254000  000503'         JRST    SQUOT0\r
18899         000516' 260740  006531'         PUSHJ   PP,PEEK\r
18900         000517' 302340  000047          CAIE    C,"'"\r
18901         000520' 254000  000502'         JRST    QUOTE1\r
18902         000521' 260740  001415'         PUSHJ   PP,CHARAC\r
18903         000522' 254000  000503'         JRST    SQUOT0\r
18904 \r
18905 \r
18906 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 19\r
18907 MACRO   10      24-APR-78 02:11         ATOM PROCESSOR\r
18908 \r
18909         000523' 260740  004543' QUAL:   PUSHJ   PP,BYPAS1       ;SKIP BLANKS, GET NEXT CHARACTER\r
18910         000524' 306340  000042          CAIN    C,42            ;"B"?\r
18911         000525' 254000  000540'         JRST    QUAL2           ;YES, RADIX=D2\r
18912         000526' 306340  000057          CAIN    C,57            ;"O"?\r
18913         000527' 254000  000537'         JRST    QUAL8           ;YES, RADIX=D8\r
18914         000530' 306340  000046          CAIN    C,46            ;"F"?\r
18915         000531' 254000  000713'         JRST    NUMDF           ;YES, PROCESS DECIMAL FRACTION\r
18916         000532' 306340  000054          CAIN    C,54            ;"L"?\r
18917         000533' 254000  000550'         JRST    QUALL           ;YES\r
18918         000534' 302340  000044          CAIE    C,44            ;"D"?\r
18919         000535' 254000  000440'         JRST    NUMER1          ;NO, FLAG NUMERIC ERROR\r
18920         000536' 271100  000002          ADDI    AC2,2\r
18921         000537' 271100  000006  QUAL8:  ADDI    AC2,6\r
18922         000540' 271100  000002  QUAL2:  ADDI    AC2,2\r
18923         000541' 261740  000015          PUSH    PP,RX\r
18924         000542' 540640  000002          HRR     RX,AC2\r
18925         000543' 260740  000362'         PUSHJ   PP,CELLSF\r
18926         000544' 262740  000015  QUAL2A: POP     PP,RX\r
18927         000545' 607600  020000          TLNN    IO,NUMSW\r
18928         000546' 254000  000440'         JRST    NUMER1\r
18929         000547' 254000  000443'         JRST    GETDE1\r
18930 \r
18931         000550' 261740  000015  QUALL:  PUSH    PP,FR\r
18932         000551' 260740  000362'         PUSHJ   PP,CELLSF\r
18933         000552' 200100  000000          MOVE    AC2,AC0\r
18934         000553' 201000  000044          MOVEI   AC0,^D36\r
18935         000554' 322100  000544'         JUMPE   AC2,QUAL2A\r
18936         000555' 242100  777777          LSH     AC2,-1\r
18937         000556' 364000  000554'         SOJA    AC0,.-2\r
18938 \r
18939 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 20\r
18940 MACRO   10      24-APR-78 02:11         LITERAL PROCESSOR\r
18941 \r
18942                                 SUBTTL  LITERAL PROCESSOR\r
18943 \r
18944         000557' 261740  000015  SQBRK:  PUSH    PP,FR\r
18945         000560' 261740  013742'         PUSH    PP,EXTPNT       ;ALLOW EXTERN TO PRECEDE LIT IN XWD\r
18946         000561' 402000  013742'         SETZM   EXTPNT\r
18947         000562' 332000  013773'         SKIPE LITLVL    ;SAVE SEQNO AND PAGE IF NOT IN LIT ALREADY\r
18948         000563' 254000  000570'         JRST SQB5\r
18949         000564' 200340  014101'         MOVE C,SEQNO2\r
18950         000565' 202340  013756'         MOVEM C,LITSEQ\r
18951         000566' 200340  014100'         MOVE C,PAGENO\r
18952         000567' 202340  013755'         MOVEM C,LITPG\r
18953         000570' 265100  003007' SQB5:   JSP     AC2,SVSTOW\r
18954         000571' 260740  000125' SQB3:   PUSHJ   PP,STMNT\r
18955         000572' 306340  000075          CAIN C,75       ;CHECK FOR ]\r
18956         000573' 254000  000627'         JRST SQB1\r
18957         000574' 661600  000004          TLO IO,IORPTC\r
18958         000575' 603640  200000          TLNE    FR,MWLFLG       ;CALL IT ] IF NOT MULTI-WORD FLAG\r
18959         000576' 254000  000630'         JRST    SQB2            ;BUT REPEAT LAST CHARACTER\r
18960         000577' 260740  004543'         PUSHJ PP,BYPAS1\r
18961         000600' 306340  000033          CAIN C,EOL\r
18962         000601' 665600  000004          TLOA IO,IORPTC\r
18963         000602' 660600  200000          TRO ER,ERRQ\r
18964         000603' 260740  001415' SQB4:   PUSHJ PP,CHARAC\r
18965         000604' 306340  000073          CAIN    C,";"           ;COMMENT?\r
18966         000605' 254000  000622'         JRST    SQB6            ;YES, IGNORE SQUARE BRACKETS\r
18967         000606' 306340  000135          CAIN    C,"]"           ;LOOK FOR TERMINAL SQB\r
18968         000607' 606600  777760          TRNN    ER,ERRORS       ;IN CASE OF ERROR IN LITERAL\r
18969         000610' 254000  000612'         JRST    .+2             ;NO ALL IS WELL\r
18970         000611' 254000  000627'         JRST    SQB1            ;FINISH THE LITERAL NOW!!\r
18971         000612' 307340  000015          CAIG    C,CR            ;LOOK FOR END OF LINE\r
18972         000613' 306340  000011          CAIN    C,HT\r
18973         000614' 254000  000603'         JRST    SQB4\r
18974         000615' 260740  002020' SQB4A:  PUSHJ   PP,OUTIML       ;DUMP\r
18975         000616' 260740  001415'         PUSHJ   PP,CHARAC       ;GET ANOTHER CHAR.\r
18976         000617' 331000  013452'         SKIPL   LIMBO           ;CRLF FLAG\r
18977         000620' 661600  000004          TLO     IO,IORPTC       ;NO REPEAT\r
18978         000621' 254000  000571'         JRST    SQB3\r
18979 \r
18980         000622' 260740  001415' SQB6:   PUSHJ   PP,CHARAC       ;GET A CHARACTER\r
18981         000623' 307340  000015          CAIG    C,CR\r
18982         000624' 306340  000011          CAIN    C,HT            ;LOOK FOR END OF LINE CHAR.\r
18983         000625' 254000  000622'         JRST    SQB6            ;NOT YET\r
18984         000626' 254000  000615'         JRST    SQB4A           ;GOT IT\r
18985 \r
18986         000627' 621600  000004  SQB1:   TLZ     IO,IORPTC\r
18987         000630' 260740  001273' SQB2:   PUSHJ   PP,STOLIT\r
18988         000631' 265100  003015'         JSP     AC2,GTSTOW\r
18989         000632' 332000  013774'         SKIPE   LITLBL          ;NEED TO FIXUP A LABEL?\r
18990         000633' 260740  000641'         PUSHJ   PP,RELBLE       ;YES, USE LOC OF LITERAL\r
18991         000634' 262740  013742'         POP     PP,EXTPNT\r
18992         000635' 262740  000015          POP     PP,FR\r
18993         000636' 332000  013773'         SKIPE   LITLVL          ;WERE WE NESTED?\r
18994         000637' 321640  000441'         JUMP1   NUMER2          ;YES, FORCE ERROR IF PASS 1\r
18995 \r
18996 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 20-1\r
18997 MACRO   10      24-APR-78 02:11         LITERAL PROCESSOR\r
18998 \r
18999         000640' 254000  000442'         JRST    GETDEL\r
19000 \r
19001         000641' 261740  000000  RELBLE: PUSH    PP,AC0          ;SAVE LOCATION COUNTER\r
19002         000642' 261740  000011          PUSH    PP,RC           ;AND RELOCATION\r
19003         000643' 200000  013774'         MOVE    AC0,LITLBL      ;SYMBOL WE NEED\r
19004         000644' 402000  013774'         SETZM   LITLBL          ;ZERO INDICATOR\r
19005         000645' 260740  012610'         PUSHJ   PP,SSRCH        ;SEARCH FOR OPERAND\r
19006         000646' 254000  000657'         JRST    RELBL1          ;SHOULD NEVER HAPPEN\r
19007         000647' 607240  200000          TLNN    ARG,TAGF        ;IT BETTER BE A LABEL\r
19008         000650' 254000  000657'         JRST    RELBL1          ;IT WASN'T , GIVE UP BEFORE SOME HARM IS DONE\r
19009         000651' 621240  007000          TLZ     ARG,UNDF!EXTF!PNTF      ;CLEAR FLAGS NOW\r
19010         000652' 262740  000011          POP     PP,RC           ;GET LITERAL RELOCATION\r
19011         000653' 200317  000000          MOVE    V,(PP)          ;GET VALUE (LOC COUNTER)\r
19012         000654' 260740  013137'         PUSHJ   PP,UPDATE       ;UPDATE VALUE\r
19013         000655' 262740  000000          POP     PP,AC0          ;RESTORE LITERAL COUNT\r
19014         000656' 263740  000000          POPJ    PP,             ;RETURN\r
19015         \r
19016         000657' 262740  000011  RELBL1: POP     PP,RC           ;RESTORE RC\r
19017         000660' 262740  000000          POP     PP,AC0  ;AND AC0\r
19018         000661' 263740  000000          POPJ    PP,             ;JUST RETURN\r
19019 \r
19020 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 21\r
19021 MACRO   10      24-APR-78 02:11         LITERAL PROCESSOR\r
19022 \r
19023         000662' 261740  000015  ANGLB:  PUSH    PP,FR\r
19024         000663' 621640  020000          TLZ     FR,INDSW\r
19025         000664' 260740  000334'         PUSHJ   PP,ATOM\r
19026         000665' 607600  020000          TLNN    IO,NUMSW\r
19027         000666' 302340  000035          CAIE    C,35\r
19028         000667' 254000  000673'         JRST    ANGLB1\r
19029         000670' 260740  004126'         PUSHJ   PP,ASSIG1\r
19030         000671' 200000  000006          MOVE    AC0,V\r
19031         000672' 254000  000674'         JRST    ANGLB2\r
19032 \r
19033         000673' 260740  001065' ANGLB1: PUSHJ   PP,EVALHA\r
19034         000674' 262740  000015  ANGLB2: POP     PP,FR\r
19035         000675' 302340  000036          CAIE    C,36\r
19036         000676' 660600  000400          TRO     ER,ERRN\r
19037         000677' 254000  000442'         JRST    GETDEL\r
19038 \r
19039         000700' 260740  001363' PERIOD: PUSHJ   PP,GETCHR       ;LOOK AT NEXT CHARACTER\r
19040         000701' 607400  000002          TLNN    CS,2            ;ALPHABETIC?\r
19041         000702' 254000  000706'         JRST    PERNUM          ;NO, TEST NUMERIC\r
19042         000703' 205000  160000          MOVSI   AC0,(SIXBIT /./)        ;YES, PUT PERIOD IN AC0\r
19043         000704' 205100  360600          MOVSI   AC2,(POINT 6,AC0,5)     ;SET BYTE POINTER\r
19044         000705' 254000  000414'         JRST    LETTE2          ;AND TREAT AS SYMBOL\r
19045 \r
19046         000706' 603400  000004  PERNUM: TLNE    CS,4            ;IS IT A NUMBER\r
19047         000707' 254000  000745'         JRST    NUM32           ;YES\r
19048         000710' 200000  013777'         MOVE    AC0,LOCA        ;NO. CURRENT LOC SYMBOL (.)\r
19049         000711' 200440  014004'         MOVE    RC,MODA         ;SET TO CURRENT ASSEMBLY MODE\r
19050         000712' 254000  000443'         JRST    GETDE1          ;GET DELIMITER\r
19051         000713' 661640  000040  NUMDF:  TLO     FR,DCFSW        ;SET DECIMAL FRACTION FLAG\r
19052         000714' 260740  001363' NUM:    PUSHJ   PP,GETCHR       ;GET A CHARACTER\r
19053         000715' 607400  000004          TLNN    CS,4            ;NUMERIC?\r
19054         000716' 254000  000727'         JRST    NUM10           ;NO\r
19055         000717' 275340  000020  NUM1:   SUBI    C,20            ;CONVERT TO OCTAL\r
19056         000720' 261740  000007          PUSH    PP,C            ;STACK FOR FLOATING POINT\r
19057         000721' 200000  000001          MOVE    AC0,AC1\r
19058         000722' 225015  000000          MULI    AC0,0(RX)\r
19059         000723' 270040  000007          ADD     AC1,C           ;ADD IN LAST VALUE\r
19060         000724' 301355  000000          CAIL    C,0(RX)         ;IS NUMBER LESS THAN CURRENT RADIX?\r
19061         000725' 661640  040000          TLO     FR,RADXSW       ;NO, SET FLAG\r
19062         000726' 344100  000714'         AOJA    AC2,NUM         ;YES, AC2=NO. OF DECIMAL PLACES\r
19063 \r
19064 \r
19065 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 22\r
19066 MACRO   10      24-APR-78 02:11         LITERAL PROCESSOR\r
19067 \r
19068         000727' 302340  000016  NUM10:  CAIE    C,16            ;PERIOD?\r
19069         000730' 603640  000040          TLNE    FR,DCFSW        ;OR DECIMAL FRACTION?\r
19070         000731' 254000  000741'         JRST    NUM30           ;YES, PROCESS FLOATING POINT\r
19071         000732' 242040  000001          LSH     AC1,1           ;NO, CLEAR THE SIGN BIT\r
19072         000733' 246000  000043          LSHC    AC0,^D35        ;AND SHIFT INTO AC0\r
19073         000734' 200740  014014'         MOVE    PP,PPTEMP       ;RESTORE PP\r
19074         000735' 362100  000443'         SOJE    AC2,GETDE1      ;NO RADIX ERROR TEST IF ONE DIGIT\r
19075         000736' 603640  040000          TLNE    FR,RADXSW       ;WAS ILLEGAL NUMBER ENCOUNTERED?\r
19076         000737' 660600  000400          TRO     ER,ERRN         ;YES, FLAG N ERROR\r
19077         000740' 254000  000443'         JRST    GETDE1\r
19078 \r
19079         000741' 302340  000042  NUM30:  CAIE    C,"B"-40        ;IF "B" THEN MISSING  "."\r
19080         000742' 260740  001363' NUM31:  PUSHJ   PP,GETCHR\r
19081         000743' 607400  000004          TLNN    CS,4            ;NUMERIC?\r
19082         000744' 254000  000750'         JRST    NUM40           ;NO\r
19083         000745' 275340  000020  NUM32:  SUBI    C,20\r
19084         000746' 261740  000007          PUSH    PP,C\r
19085         000747' 254000  000742'         JRST    NUM31\r
19086 \r
19087         000750' 261740  000015  NUM40:  PUSH    PP,FR           ;STACK VALUES\r
19088         000751' 541640  000012          HRRI    RX,^D10\r
19089         000752' 261740  000002          PUSH    PP,AC2\r
19090         000753' 261740  014014'         PUSH    PP,PPTEMP\r
19091         000754' 306340  000045          CAIN    C,45            ;"E"?\r
19092                                         JRST    [PUSHJ PP,PEEK  ;GET NEXT CHAR\r
19093                                                 PUSH PP,C       ;SAVE NEXT CHAR\r
19094                                                 PUSHJ PP,CELL   ;YES, GET EXPONENT\r
19095                                                 POP PP,C        ;GET FIRST CHAR. AFTER E\r
19096                                                 CAIN V,4        ;MUST HAVE NUMERICAL STATUS\r
19097                                                 JRST    .+2     ;SKIP RETURN\r
19098                                                 CAIN C,"<"      ;ALLOW <EXP>\r
19099                                                 JRST    .+2     ;SKIP RETURN\r
19100                                                 SKIPN   AC0     ;ERROR IF NON-ZERO EXPRESSION\r
19101                                                 TROA ER,ERRQ    ;ALLOW E+,E-\r
19102                                                 SETOM   RC      ;FORCE NUMERICAL ERROR\r
19103         000755' 254000  014610'                 JRST    .+2]    ;SKIP RETURN\r
19104         000756' 201000  000000          MOVEI   AC0,0           ;NO, ZERO EXPONENT\r
19105         000757' 262740  014014'         POP     PP,PPTEMP\r
19106         000760' 262740  000004          POP     PP,SX\r
19107         000761' 262740  000015          POP     PP,FR\r
19108         000762' 550300  000017          HRRZ    V,PP\r
19109         000763' 200740  014014'         MOVE    PP,PPTEMP\r
19110         000764' 326440  000440'         JUMPN   RC,NUMER1       ;EXPONENT MUST BE ABSOLUTE\r
19111         000765' 270200  000000          ADD     SX,AC0\r
19112         000766' 550240  000017          HRRZ    ARG,PP\r
19113         000767' 270200  000005          ADD     SX,ARG\r
19114         000770' 403000  000002          SETZB   AC0,AC2\r
19115         000771' 603640  000040          TLNE    FR,DCFSW\r
19116         000772' 254000  001013'         JRST    NUM60\r
19117         000773' 255400  000774'         JOV     NUM50           ;CLEAR OVERFLOW FLAG\r
19118 \r
19119 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 23\r
19120 MACRO   10      24-APR-78 02:11         LITERAL PROCESSOR\r
19121 \r
19122 \r
19123         000774' 265140  001027' NUM50:  JSP     SDEL,NUMUP      ;FLOATING POINT\r
19124         000775' 254000  001002'         JRST    NUM52           ;END OF WHOLE NUMBERS\r
19125         000776' 164000  014624'         FMPR    AC0,[10.0]      ;MULTIPLY BY 10\r
19126         000777' 661040  233000          TLO     AC1,233000      ;CONVERT TO FLOATING POINT\r
19127         001000' 144000  000001          FADR    AC0,AC1         ;ADD IT IN\r
19128         001001' 254000  000774'         JRST    NUM50\r
19129 \r
19130         001002' 265140  001035' NUM52:  JSP     SDEL,NUMDN      ;PROCESS FRACTION\r
19131         001003' 144000  000002          FADR    AC0,AC2\r
19132         001004' 255400  000440'         JOV     NUMER1          ;TEST FOR OVERFLOW\r
19133         001005' 254000  000443'         JRST    GETDE1\r
19134 \r
19135         001006' 661040  233000          TLO     AC1,233000\r
19136         001007' 602040  777777          TRNE    AC1,-1\r
19137         001010' 144100  000001          FADR    AC2,AC1         ;ACCUMULATE FRACTION\r
19138         001011' 174100  014624'         FDVR    AC2,[10.0]\r
19139         001012' 254000  001002'         JRST    NUM52\r
19140 \r
19141         001013' 265140  001027' NUM60:  JSP     SDEL,NUMUP\r
19142         001014' 254000  001020'         JRST    NUM62\r
19143         001015' 221000  000012          IMULI   AC0,^D10\r
19144         001016' 270000  000001          ADD     AC0,AC1\r
19145         001017' 254000  001013'         JRST    NUM60\r
19146 \r
19147         001020' 246040  777734  NUM62:  LSHC    AC1,-^D36\r
19148         001021' 265140  001035'         JSP     SDEL,NUMDN\r
19149         001022' 246040  000045          LSHC    AC1,^D37\r
19150         001023' 260740  004544'         PUSHJ   PP,BYPAS2\r
19151         001024' 254000  000445'         JRST    GETDE3\r
19152 \r
19153         001025' 235040  000012          DIVI    AC1,^D10\r
19154         001026' 254000  001020'         JRST    NUM62\r
19155 \r
19156         001027' 201040  000000  NUMUP:  MOVEI   AC1,0\r
19157         001030' 311240  000004          CAML    ARG,SX\r
19158         001031' 254003  000000          JRST    0(SDEL)\r
19159         001032' 315240  000006          CAMGE   ARG,V\r
19160         001033' 200045  000001          MOVE    AC1,1(ARG)\r
19161         001034' 344243  000001          AOJA    ARG,1(SDEL)\r
19162 \r
19163         001035' 201040  000000  NUMDN:  MOVEI   AC1,0\r
19164         001036' 317300  000004          CAMG    V,SX\r
19165         001037' 254003  000000          JRST    0(SDEL)\r
19166         001040' 313300  000005          CAMLE   V,ARG\r
19167         001041' 200046  000000          MOVE    AC1,0(V)\r
19168         001042' 364303  000003          SOJA    V,3(SDEL)\r
19169 \r
19170 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 24\r
19171 MACRO   10      24-APR-78 02:11         GETSYM\r
19172 \r
19173                                 SUBTTL  GETSYM\r
19174         001043' 201000  000000  GETSYM: MOVEI   AC0,0           ;CLEAR AC0\r
19175         001044' 205040  440600          MOVSI   AC1,(POINT 6,AC0)       ;PUT POINTER IN AC1\r
19176         001045' 260740  004543'         PUSHJ   PP,BYPASS       ;SKIP LEADING BLANKS\r
19177         001046' 607400  000002          TLNN    CS,2            ;ALPHABETIC?\r
19178         001047' 254000  001055'         JRST    GETSY1          ;NO, ERROR\r
19179         001050' 302340  000016          CAIE    C,16            ;PERIOD?\r
19180         001051' 254000  001056'         JRST    GETSY2          ;NO, A VALID SYMBOL\r
19181         001052' 136340  000001          IDPB    C,AC1           ;STORE THE CHARACTER\r
19182         001053' 260740  001363'         PUSHJ   PP,GETCHR       ;YES, TEST NEXT CHARACTER\r
19183         001054' 607400  000002          TLNN    CS,2            ;ALPHABETIC?\r
19184         001055' 664600  040000  GETSY1: TROA    ER,ERRA\r
19185         001056' 350017  000000  GETSY2: AOS     0(PP)           ;YES, SET SKIP EXIT\r
19186         001057' 607400  000006  GETSY3: TLNN    CS,6            ;ALPHA-NUMERIC?\r
19187         001060' 254000  004544'         JRST    BYPAS2          ;NO, GET DELIMITER\r
19188         001061' 603040  770000          TLNE    AC1,770000      ;YES, HAVE WE STORED SIX?\r
19189         001062' 136340  000001          IDPB    C,AC1           ;NO, STORE IT\r
19190         001063' 260740  001363'         PUSHJ   PP,GETCHR\r
19191         001064' 254000  001057'         JRST    GETSY3\r
19192 \r
19193 \r
19194 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 25\r
19195 MACRO   10      24-APR-78 02:11         EXPRESSION EVALUATOR\r
19196 \r
19197                                 SUBTTL  EXPRESSION EVALUATOR\r
19198                         000000  CV==    AC0                     ;CURRENT VALUE\r
19199                         000001  PV==    AC1                     ;PREVIOUS VALUE\r
19200                         000011  RC==    RC                      ;CURRENT RELOCATABILITY\r
19201                         000002  PR==    AC2                     ;PREVIOUS RELOCATABILITY\r
19202                         000010  CS=     CS                      ;CURRENT STATUS\r
19203                         000003  PS==    SDEL                    ;PREVIOUS STATUS\r
19204 \r
19205         001065' 661640  010000  EVALHA: TLO     FR,TMPSW\r
19206         001066' 260740  001077' EVALCM: PUSHJ   PP,EVALEX       ;EVALUATE FIRST EXPRESSION\r
19207         001067' 261740  014625'         PUSH    PP,[0]          ;MARK PDL\r
19208         001070' 321400  001073'         JUMPCM  EVALC3          ;JUMP IF COMMA\r
19209         001071' 661600  000004          TLO     IO,IORPTC       ;IT'S NOT,SO REPEAT\r
19210         001072' 254000  004445'         JRST    OP              ;PROCESS IN OP\r
19211         001073'                 EVALC3:\r
19212         001073' 261740  014625'         PUSH    PP,[0]          ;STORE ZERO'S ON PDL\r
19213         001074' 261740  014625'         PUSH    PP,[0]          ;.......\r
19214         001075' 205100  270417          MOVSI   AC2,(POINT 4,(PP),12)\r
19215         001076' 254000  004454'         JRST    OP1B            ;PROCESS IN OP\r
19216 \r
19217         001077' 661600  400000  EVALEX: TLO     IO,FLDSW\r
19218         001100' 261740  014626'         PUSH    PP,[XWD TNODE,0]        ;MARK THE LIST 200000,,0\r
19219         001101' 627640  010000          TLZN    FR,TMPSW\r
19220         001102' 260740  000334' EVATOM: PUSHJ   PP,ATOM         ;GET THE NEXT ATOM\r
19221         001103' 322000  001177'         JUMPE   AC0,EVGETD      ;TEST FOR NULL/ZERO\r
19222         001104' 663600  020000          TLOE    IO,NUMSW        ;SET NUMERIC, WAS IT PREVIOUSLY?\r
19223         001105' 254000  001200'         JRST    EVGETD+1        ;YES, TREAT ACCORDINGLY\r
19224         001106' 260740  012713'         PUSHJ   PP,SEARCH       ;SEARCH FOR MACRO OR SYMBOL\r
19225         001107' 254000  001131'         JRST    EVOP            ;NOT FOUND, TRY FOR OP-CODE\r
19226         001110' 321240  001112'         JUMPL   ARG,.+2         ;SKIP IF OPERAND\r
19227         001111' 260740  012613'         PUSHJ   PP,SSRCH1       ;OPERATOR, TRY FOR SYMBOL (OPERAND)\r
19228         001112' 260740  012603'         PUSHJ   PP,QSRCH        ;PERFORM CROSS-REFERENCE\r
19229         001113' 327240  001116'         JUMPG   ARG,EVMAC       ;BRANCH IF OPERATOR\r
19230         001114' 200000  000006          MOVE    AC0,V           ;SYMBOL, SET VALUE\r
19231         001115' 254000  001161'         JRST    EVTSTS          ;TEST STATUS\r
19232 \r
19233         001116' 603640  000200  EVMAC:  TLNE    FR,NEGSW        ;UNARY MINUS?\r
19234         001117' 254000  001156'         JRST    EVERRZ          ;YES, INVALID BEFORE OPERATOR\r
19235         001120' 135140  014605'         LDB     SDEL,[POINT 3,ARG,5]    ;GET MACF/OPDF/SYNF\r
19236         001121' 361140  001156'         SOJL    SDEL,EVERRZ     ;ERROR IF NO FLAGS\r
19237 \r
19238         001122' 322340  001124'         JUMPE   C,.+2           ;NON-BLANK?\r
19239         001123' 661600  000004          TLO     IO,IORPTC       ;YES, REPEAT CHARACTER\r
19240         001124' 362140  005705'         SOJE    SDEL,CALLM      ;MACRO IF 2\r
19241         001125' 327140  001135'         JUMPG   SDEL,EVOPS      ;SYNONYM IF 4\r
19242 \r
19243         001126' 200000  000006          MOVE    AC0,V           ;OPDEF\r
19244         001127' 201300  004445'         MOVEI   V,OP            ;SET TRANSFER VECTOR\r
19245         001130' 254000  001141'         JRST    EVOPD\r
19246 \r
19247 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 26\r
19248 MACRO   10      24-APR-78 02:11         EXPRESSION EVALUATOR\r
19249 \r
19250         001131' 603640  000200  EVOP:   TLNE    FR,NEGSW        ;OPCODE, UNARY MINUS?\r
19251         001132' 254000  001156'         JRST    EVERRZ          ;YES, ERROR\r
19252 \r
19253         001133' 260740  010754'         PUSHJ   PP,OPTSCH       ;SEARCH SYMBOL TABLE\r
19254         001134' 254000  001154'         JRST    EVOPX           ;NOT FOUND\r
19255         001135' 620300  200000  EVOPS:  TRZ     V,LITF          ;CLEAR LIT INVALID FLAG\r
19256         001136' 622300  100000          TRZE    V,ADDF          ;SYNONYM\r
19257         001137' 254000  001154'         JRST    EVOPX           ;PSEUDO-OP THAT GENERATES NO DATA JUMPS\r
19258         001140' 510000  000006          HLLZ    AC0,V\r
19259         001141' 322340  001143' EVOPD:  JUMPE   C,.+2           ;OPDEF, NON-BLANK DELIMITER?\r
19260         001142' 661600  000004          TLO     IO,IORPTC       ;YES, REPEAT CHARACTER\r
19261         001143' 265100  003007'         JSP     AC2,SVSTOW\r
19262         001144' 260746  000000          PUSHJ   PP,0(V)\r
19263         001145' 260740  002776'         PUSHJ   PP,DSTOW\r
19264         001146' 265100  003015'         JSP     AC2,GTSTOW\r
19265         001147' 602440  777776          TRNE    RC,-2\r
19266         001150' 542440  013742'         HRRM    RC,EXTPNT\r
19267         001151' 603440  777776          TLNE RC,-2\r
19268         001152' 502440  013742'         HLLM RC,EXTPNT\r
19269         001153' 254000  001204'         JRST    EVNUM\r
19270 \r
19271         001154' 205240  402000  EVOPX:  MOVSI   ARG,SYMF!UNDF\r
19272         001155' 260740  013035'         PUSHJ   PP,INSERZ\r
19273         001156' 403000  000011  EVERRZ: SETZB   AC0,RC          ;CLEAR CODE AND RELOCATION\r
19274         001157' 660600  002000  EVERRU: TRO     ER,ERRU\r
19275         001160' 254000  001177'         JRST    EVGETD\r
19276 \r
19277 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 27\r
19278 MACRO   10      24-APR-78 02:11         EXPRESSION EVALUATOR\r
19279 \r
19280         001161' 603240  002000  EVTSTS: TLNE    ARG,UNDF\r
19281                                         JRST    [TRO    ER,ERRU ;SET UNDEF ERROR\r
19282                                                 JUMP1   EVGETD  ;TREAT AS UNDF ON PASS1\r
19283         001162' 254000  014627'                 JRST    .+1]    ;TREAT AS EXTERNAL ON PASS2\r
19284         001163' 607240  001000          TLNN    ARG,EXTF\r
19285         001164' 254000  001173'         JRST    EVTSTR\r
19286         001165' 550440  000005          HRRZ RC,ARG     ;GET ADRES WFW\r
19287         001166' 550240  013742'         HRRZ ARG,EXTPNT ;SAVE IT WFW\r
19288         001167' 542440  013742'         HRRM RC,EXTPNT  ;WFW\r
19289         001170' 602240  777777          TRNE ARG,-1     ;WFW\r
19290         001171' 660600  000040          TRO     ER,ERRE\r
19291         001172' 403000  000005          SETZB   AC0,ARG\r
19292 \r
19293         001173' 603240  000020  EVTSTR: TLNE    ARG,MDFF        ;MULTIPLY DEFINED?\r
19294         001174' 660600  020000          TRO     ER,ERRD         ;YES, FLAG IT\r
19295         001175' 603640  000200          TLNE    FR,NEGSW        ;NEGATIVE ATOM?\r
19296         001176' 260740  000453'         PUSHJ   PP,GETDE2       ;YES, NEGATE AC0 AND RC\r
19297 \r
19298         001177' 603600  020000  EVGETD: TLNE    IO,NUMSW        ;NON BLANK FIELD\r
19299         001200' 661640  100000          TLO     FR,FSNSW        ;YES,SET FLAG\r
19300         001201' 260740  004544'         PUSHJ   PP,BYPAS2\r
19301         001202' 603400  000006          TLNE    CS,6            ;ALPHA-NUMERIC?\r
19302         001203' 661600  000004          TLO     IO,IORPTC       ;YES, REPEAT IT\r
19303         001204' 262740  000003  EVNUM:  POP     PP,PS           ;POP THE PREVIOUS DELIMITER/TNODE\r
19304         001205' 661140  004000          TLO     PS,4000\r
19305         001206' 315140  000010          CAMGE   PS,CS           ;OPERATION REQUIRED?\r
19306         001207' 254000  001214'         JRST    EVPUSH          ;NO, PUT VALUES BACK ON STACK\r
19307         001210' 607140  200000          TLNN    PS,TNODE        ;YES, HAVE WE REACHED TERMINAL NODE?\r
19308         001211' 254000  001221'         JRST    EVXCT           ;NO, EXECUTION REQUIRED\r
19309         001212' 607400  170000          TLNN    CS,170000       ;YES, ARE WE POINTING AT DEL? (& ! * / + - _)\r
19310         001213' 263740  000000          POPJ    PP,             ;YES, EXIT\r
19311                                                                 ;NO,FALL INTO EVPUSH\r
19312 \r
19313 \r
19314 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 28\r
19315 MACRO   10      24-APR-78 02:11         EXPRESSION EVALUATOR\r
19316 \r
19317         001214' 261740  000003  EVPUSH: PUSH    PP,PS           ;STACK VALUES\r
19318         001215' 261740  000000          PUSH    PP,CV\r
19319         001216' 261740  000011          PUSH    PP,RC\r
19320         001217' 261740  000010          PUSH    PP,CS\r
19321         001220' 254000  001102'         JRST    EVATOM          ;GET NEXT ATOM\r
19322 \r
19323         001221' 262740  000002  EVXCT:  POP     PP,PR           ;POP PREVIOUS RELOCATABILITY\r
19324         001222' 262740  000001          POP     PP,PV           ;AND PREVIOUS VALUE\r
19325         001223' 135140  014632'         LDB     PS,[POINT 3,PS,29]      ;TYPE OF OPERATION TO PS\r
19326         001224' 254003  001225'         JRST    .+1(PS)         ;PERFORM PROPER OPERATION\r
19327         001225' 254000  000104'         JRST    ASSEM1          ;0; SHOULD NEVER GET HERE ;DMN\r
19328         001226' 254000  001253'         JRST    XMUL            ;1;\r
19329         001227' 254000  001247'         JRST    XDIV            ;2;\r
19330         001230' 254000  001244'         JRST    XADD            ;3;\r
19331         001231' 254000  001241'         JRST    XSUB            ;4;\r
19332         001232' 254000  001264'         JRST    XLRW            ;5; "_"\r
19333         001233' 674000  000001          TDOA    CV,PV           ;6; MERGE PV INTO CV\r
19334         001234' 404000  000001          AND     CV,PV           ;7; AND PV INTO CV\r
19335         001235' 326440  001237'         JUMPN   RC,.+2          ;COMMON RELOCATION TEST\r
19336         001236' 322100  001204' EVXCT1: JUMPE   PR,EVNUM\r
19337         001237' 660600  004000          TRO     ER,ERRR         ;BOTH MUST BE FIXED\r
19338         001240' 254000  001204'         JRST    EVNUM           ;GO TRY AGAIN\r
19339 \r
19340         001241' 276040  000000  XSUB:   SUBM    PV,CV\r
19341         001242' 276100  000011          SUBM    PR,RC\r
19342         001243' 254000  001204'         JRST    EVNUM\r
19343 \r
19344         001244' 272040  000000  XADD:   ADDM    PV,CV\r
19345         001245' 272100  000011          ADDM    PR,RC\r
19346         001246' 254000  001204'         JRST    EVNUM\r
19347 \r
19348         001247' 230100  000000  XDIV:   IDIV    PR,CV           ;CORRECT RELOCATABILITY\r
19349         001250' 232040  000000          IDIVM   PV,CV\r
19350         001251' 250100  000011  XDIV1:  EXCH    PR,RC           ;TAKE RELOCATION OF NUMERATOR\r
19351         001252' 254000  001236'         JRST    EVXCT1\r
19352 \r
19353         001253' 322100  001256' XMUL:   JUMPE   PR,XMUL1        ;AT LEAST ONE OPERAND\r
19354         001254' 322440  001256'         JUMPE   RC,XMUL1        ;MUST BE FIXED\r
19355         001255' 660600  004000          TRO     ER,ERRR\r
19356         001256' 436100  000011  XMUL1:  IORM    PR,RC           ;GET RELOCATION TO RC\r
19357         001257' 315040  000000          CAMGE   PV,CV           ;FIND THE GREATER\r
19358         001260' 250040  000000          EXCH    PV,CV           ;FIX IN CASE CV=0,OR 1\r
19359         001261' 222040  000011          IMULM   PV,RC\r
19360         001262' 222040  000000          IMULM   PV,CV\r
19361         001263' 254000  001204'         JRST    EVNUM\r
19362         001264' 250040  000000  XLRW:   EXCH    PV,CV\r
19363         001265' 242001  000000          LSH     CV,0(PV)\r
19364         001266' 242101  000000          LSH     PR,0(PV)\r
19365         001267' 254000  001251'         JRST    XDIV1\r
19366 \r
19367 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 29\r
19368 MACRO   10      24-APR-78 02:11         LITERAL STORAGE HANDLER\r
19369 \r
19370                                         SUBTTL  LITERAL STORAGE HANDLER\r
19371         \r
19372         001270'                 STOLER:\r
19373         001270' 403000  000011          SETZB   AC0,RC  ;ERROR, NO CODE STORED\r
19374         001271' 260740  002751'         PUSHJ   PP,STOW         ;STOW ZERO\r
19375         001272' 660600  010000          TRO     ER,ERRL         ;AND FLAG THE ERROR\r
19376 \r
19377         001273' 200140  013555' STOLIT: MOVE    SDEL,STPX\r
19378         001274' 274140  013556'         SUB     SDEL,STPY       ;COMPUTE NUMBER OF WORDS\r
19379         001275' 322140  001270'         JUMPE   SDEL,STOLER     ;ERROR IF NONE STORED\r
19380         001276' 606600  777760          TRNN    ER,ERRORS       ;ANY ERRORS?\r
19381         001277' 254000  001303'         JRST    STOL06          ;NO\r
19382         001300' 325640  001342'         JUMP2   STOL22          ;YES, NO SEARCH.  BRANCH IF PASS2\r
19383         001301' 272140  013506'         ADDM    SDEL,LITCNT     ;PASS ONE, UPDATE COUNT\r
19384         001302' 254000  003003'         JRST    STOWI           ;INITIALIZE STOW\r
19385 \r
19386         001303' 201200  013501' STOL06: MOVEI   SX,LITAB        ;PREPARE FOR SEARCH\r
19387         001304' 200240  013555'         MOVE    ARG,STPX        ;SAVE IN THE EVENT OF MULTIPLE-WORD\r
19388         001305' 504240  013556'         HRL     ARG,STPY\r
19389         001306' 200100  013507'         MOVE    AC2,LITNUM\r
19390         001307' 201140  000000          MOVEI   SDEL,0\r
19391         001310' 260740  002776' STOL08: PUSHJ   PP,DSTOW        ;GET VALUE WFW\r
19392 \r
19393         001311' 361100  001344' STOL10: SOJL    AC2,STOL24      ;TEST FOR END\r
19394         001312' 200204  000000          MOVE    SX,0(SX)        ;NO, GET NEXT STORAGE CELL\r
19395         001313' 200304  777777          MOVE    V,-1(SX)                ;GET RELOCATION BITS WFW\r
19396         001314' 316004  777776          CAMN    AC0,-2(SX)      ;DO CODES COMPARE? WFW\r
19397         001315' 312440  000006          CAME    RC,V            ;YES, HOW ABOUT RELOCATION?\r
19398         001316' 344140  001311'         AOJA    SDEL,STOL10     ;NO, TRY AGAIN\r
19399         001317' 335000  013555'         SKIPGE  STPX            ;YES, MULTI-WORD?\r
19400         001320' 254000  001355'         JRST    STOL26          ;NO, JUST RETURN LOCATION\r
19401         001321' 202100  013517'         MOVEM   AC2,SAVBLK+AC2  ;YES, SAVE STARTING INFO\r
19402         001322' 202200  013521'         MOVEM   SX,SAVBLK+SX\r
19403 \r
19404         001323' 361100  001343' STOL12: SOJL    AC2,STOL23      ;TEST FOR END\r
19405         001324' 260740  002776'         PUSHJ   PP,DSTOW        ;GET NEXT WORD WFW\r
19406         001325' 200204  000000          MOVE    SX,0(SX)        ;UPDATE POINTER\r
19407         001326' 200304  777777          MOVE    V,-1(SX)                ;GET RELOCATION WFW\r
19408         001327' 316004  777776          CAMN    AC0,-2(SX)      ;COMPARE VALUE WFW\r
19409         001330' 312440  000006          CAME    RC,V            ;AND RELOCATION\r
19410         001331' 254000  001335'         JRST    STOL14          ;NO MATCH, TRY AGAIN\r
19411         001332' 331000  013555'         SKIPL   STPX            ;MATCH, HAVE WE FINISHED SEARCH?\r
19412         001333' 254000  001323'         JRST    STOL12          ;NO, TRY NEXT WORD\r
19413         001334' 254000  001355'         JRST    STOL26          ;YES, RETURN LOCATION\r
19414 \r
19415         001335' 200100  013517' STOL14: MOVE    AC2,SAVBLK+AC2  ;RESTORE STOW POINTERS\r
19416         001336' 200200  013521'         MOVE    SX,SAVBLK+SX\r
19417         001337' 572240  013555'         HRREM   ARG,STPX\r
19418         001340' 576240  013556'         HLREM   ARG,STPY\r
19419         001341' 344140  001310'         AOJA    SDEL,STOL08     ;BETTER LUCK NEXT TIME\r
19420 \r
19421 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 30\r
19422 MACRO   10      24-APR-78 02:11         LITERAL STORAGE HANDLER\r
19423 \r
19424 \r
19425         001342' 200140  013507' STOL22: MOVE    SDEL,LITNUM\r
19426         001343' 260740  002776' STOL23: PUSHJ   PP,DSTOW        ;DSTOW AND CONVERT\r
19427         001344' 200200  013502' STOL24: MOVE    SX,LITABX       ;GET CURRENT STORAGE\r
19428         001345' 260740  003533'         PUSHJ   PP,GETTOP       ;GET NEXT CELL\r
19429         001346' 202004  777776          MOVEM   AC0,-2(SX)      ;STORE CODE WFW\r
19430         001347' 202444  777777          MOVEM   RC,-1(SX)       ;WFW\r
19431         001350' 202200  013502'         MOVEM   SX,LITABX       ;SET POINTER TO CURRENT CELL\r
19432         001351' 350000  013507'         AOS     LITNUM          ;INCREMENT NUMBER STORED\r
19433         001352' 350000  013506'         AOS     LITCNT          ;INCREMENT NUMBER RESERVED\r
19434         001353' 331000  013555'         SKIPL   STPX            ;ANY MORE CODE?\r
19435         001354' 254000  001343'         JRST    STOL23          ;YES\r
19436         001355' 321640  000455' STOL26: JUMP1   POPOUT          ;EXIT IF PASS ONE\r
19437         001356' 200200  013505'         MOVE    SX,LITHDX       ;GET HEADER BLOCK\r
19438         001357' 554444  777777          HLRZ    RC,-1(SX)       ;GET BLOCK RELOCATION\r
19439         001360' 550004  777777          HRRZ    AC0,-1(SX)\r
19440         001361' 271003  000000          ADDI    AC0,0(SDEL)     ;COMPUTE ACTUAL LOCATION\r
19441         001362' 263740  000000          POPJ    PP,             ;EXIT\r
19442 \r
19443 \r
19444 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 31\r
19445 MACRO   10      24-APR-78 02:11         INPUT ROUTINES\r
19446 \r
19447                                 SUBTTL  INPUT ROUTINES\r
19448         001363' 260740  001415' GETCHR: PUSHJ   PP,CHARAC       ;GET ASCII CHARACTER\r
19449         001364' 301340  000141          CAIL    C,"A"+40        ;CHECK FOR LOWER CASE\r
19450         001365' 303340  000172          CAILE   C,"Z"+40\r
19451         001366' 254000  001370'         JRST    .+2             ;NOT LOWER CASE\r
19452         001367' 624340  000100          TRZA    C,100           ;CONVERT LOWER CASE TO SIXBIT\r
19453         001370' 275340  000040          SUBI    C,40            ;CONVERT TO SIXBIT\r
19454         001371' 307340  000077          CAIG    C,77            ;CHAR GREATER THAN SIXBIT?\r
19455         001372' 325340  001404'         JUMPGE  C,GETCS         ;TEST FOR VALID SIXBIT\r
19456         001373' 271340  000040          ADDI    C,40            ;BACK TO ASCII\r
19457         001374' 306340  000011          CAIN    C,HT            ;CHECK FOR TAB\r
19458         001375' 254000  001403'         JRST    GETCS2          ;MAKE IT LOOK LIKE SPACE\r
19459         001376' 307340  000015          CAIG    C,CR            ;GREATER THAN CR\r
19460         001377' 307340  000011          CAIG    C,HT            ;GREATER THAN TAB\r
19461         001400' 254000  001406'         JRST    GETCS1          ;IS NOT FF,VT,LF OR CR\r
19462         001401' 201340  000033          MOVEI   C,EOL           ;LINE OR FORM FEED OR V TAB\r
19463         001402' 665600  000004          TLOA    IO,IORPTC       ;REPEAT CHARACTER\r
19464         001403' 201340  000000  GETCS2: MOVEI   C,0             ;BUT TREAT AS BLANK\r
19465         001404' 200407  001456' GETCS:  MOVE    CS,CSTAT(C)     ;GET STATUS BITS\r
19466         001405' 263740  000000          POPJ    PP,             ;EXIT\r
19467 \r
19468         001406' 322340  001404' GETCS1: JUMPE   C,GETCS         ;IGNORE NULS\r
19469         001407' 640340  000100          TRC     C,100           ;MAKE CHAR. VISIBLE\r
19470         001410' 201400  000136          MOVEI   CS,"^"\r
19471         001411' 137400  013453'         DPB     CS,LBUFP        ;PUT ^ IN OUTPUT\r
19472         001412' 260740  001423'         PUSHJ   PP,RSW2         ;ALSO MODIFIED CHAR.\r
19473         001413' 660600  200000          TRO     ER,ERRQ         ;FLAG Q ERROR\r
19474         001414' 254000  001363'         JRST    GETCHR          ;BUT IGNORE CHAR.\r
19475 \r
19476 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 32\r
19477 MACRO   10      24-APR-78 02:11         INPUT ROUTINES\r
19478 \r
19479 \r
19480         001415' 623600  000004  CHARAC: TLZE    IO,IORPTC       ;REPEAT REQUESTED?\r
19481         001416' 254000  001443'         JRST    CHARAX          ;YES\r
19482         001417' 326540  006474' RSW0:   JUMPN   MRP,MREAD       ;BRANCH IF TREE POINTER SET\r
19483         001420' 260740  010503'         PUSHJ   PP,READ\r
19484         001421' 332000  014022' RSW1:   SKIPE   RPOLVL          ;ARE WE IN "REPEAT ONCE"?\r
19485         001422' 254000  005375'         JRST    REPO1           ;YES\r
19486         001423' 200400  013452' RSW2:   MOVE    CS,LIMBO        ;GET LAST CHAR.\r
19487         001424' 202340  013452'         MOVEM   C,LIMBO ;STORE THIS CHAR. FOR RPTC\r
19488         001425' 306340  000012          CAIN    C,LF            ;LF?\r
19489         001426' 302400  000015          CAIE    CS,CR           ;YES,LAST CHAR. A CR?\r
19490         001427' 254000  001432'         JRST    RSW3            ;NO\r
19491         001430' 563000  013452'         HRROS   LIMBO           ;YES,FLAG\r
19492         001431' 263740  000000          POPJ    PP,             ;AND EXIT\r
19493 \r
19494         001432' 603600  000001  RSW3:   TLNE    IO,IOSALL       ;MACRO SUPPRESS ALL?\r
19495         001433' 326540  003447'         JUMPN   MRP,CPOPJ       ;YES,DON'T LIST IN MACRO\r
19496         001434' 377000  013737'         SOSG    CPL             ;ANY ROOM IN THE IMAGE BUFFER?\r
19497         001435' 260740  001657'         PUSHJ   PP,OUTPL        ;NO, OUTPUT THE PARTIAL LINE\r
19498         001436' 136340  013453'         IDPB    C,LBUFP         ;YES, STORE IN PRINT AREA\r
19499         001437' 302340  000011          CAIE    C,HT            ;TAB?\r
19500         001440' 263740  000000          POPJ    PP,             ;NO, EXIT\r
19501         001441' 201340  000007          MOVEI   C,7\r
19502         001442' 412340  013737'         ANDCAM  C,CPL           ;MASK\r
19503         001443' 550340  013452' CHARAX: HRRZ    C,LIMBO         ;GET LAST CHARACTER\r
19504         001444' 263740  000000          POPJ    PP,             ;EXIT\r
19505 \r
19506         001445' 260740  001415' CHARL:  PUSHJ   PP,CHARAC       ;GET AND TEST 7-BIT ASCII\r
19507         001446' 307340  000014          CAIG    C,FF            ;LINE OR FORM FEED OR VT?\r
19508         001447' 305340  000012          CAIGE   C,LF\r
19509         001450' 263740  000000          POPJ    PP,             ;NO,EXIT\r
19510         001451' 332000  013773'         SKIPE   LITLVL          ;IN LITERAL?\r
19511         001452' 254000  002020'         JRST    OUTIML          ;YES\r
19512         001453' 260740  007473' CHARL1: PUSHJ   PP,SAVEXS       ;SAVE REGISTERS\r
19513         001454' 260740  001556'         PUSHJ   PP,OUTLIN       ;DUMP THE LINE\r
19514         001455' 254000  007467'         JRST    RSTRXS          ;RESTORE REGISTERS AND EXIT\r
19515 \r
19516 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 33\r
19517 MACRO   10      24-APR-78 02:11         CHARACTER STATUS TABLE\r
19518 \r
19519                                 SUBTTL  CHARACTER STATUS TABLE\r
19520 \r
19521                                         DEFINE  GENCS   (OPLVL,ATOM,AN,SQUOZ,OPTYPE,SEQNO)\r
19522                                 <BYTE (6)OPLVL (9)ATOM (3)AN (6)SQUOZ,OPTYPE,SEQNO>\r
19523 \r
19524                                         ;OPLVL  PRIORITY OF BINARY OPERATORS\r
19525                                         ;ATOM   INDEX TO JUMP TABLE AT CELL1\r
19526                                         ;AN     TYPE OF CHARACTER\r
19527                                         ;       1=OTHER, 2=ALPHA, 4=NUMERIC\r
19528                                         ;SQUOZ  VALUE IN RADIX 50\r
19529                                         ;OPTYPE INDEX TO JUMP TABLE AT EVXCT\r
19530                                         ;SEQNO  VALUE IN SIXBIT\r
19531         001456'                 CSTAT:\r
19532         001456' 000001  000000          GENCS   00,00,1,00,00,00        ; ' '\r
19533         001457' 040121  000601          GENCS   04,12,1,00,06,01        ; '!'\r
19534         001460' 000071  000002          GENCS   00,07,1,00,00,02        ; '"'\r
19535         001461' 000121  000003          GENCS   00,12,1,00,00,03        ; '#'\r
19536         001462' 000012  460004          GENCS   00,01,2,46,00,04        ; '$'\r
19537         001463' 000012  470005          GENCS   00,01,2,47,00,05        ; '%'\r
19538         001464' 040121  000706          GENCS   04,12,1,00,07,06        ; '&'\r
19539         001465' 000071  000007          GENCS   00,07,1,00,00,07        ; '''\r
19540 \r
19541         001466' 000011  000010          GENCS   00,01,1,00,00,10        ; '('\r
19542         001467' 000011  000011          GENCS   00,01,1,00,00,11        ; ')'\r
19543         001470' 020121  000112          GENCS   02,12,1,00,01,12        ; '*'\r
19544         001471' 010001  000313          GENCS   01,00,1,00,03,13        ; '+'\r
19545         001472' 400011  000014          GENCS   40,01,1,00,00,14        ; ','\r
19546         001473' 010021  000415          GENCS   01,02,1,00,04,15        ; '-'\r
19547         001474' 000112  450016          GENCS   00,11,2,45,00,16        ; '.'\r
19548         001475' 020121  000217          GENCS   02,12,1,00,02,17        ; '/'\r
19549 \r
19550         001476' 000044  010020          GENCS   00,04,4,01,00,20        ; '0'\r
19551         001477' 000044  020021          GENCS   00,04,4,02,00,21        ; '1'\r
19552         001500' 000044  030022          GENCS   00,04,4,03,00,22        ; '2'\r
19553         001501' 000044  040023          GENCS   00,04,4,04,00,23        ; '3'\r
19554         001502' 000044  050024          GENCS   00,04,4,05,00,24        ; '4'\r
19555         001503' 000044  060025          GENCS   00,04,4,06,00,25        ; '5'\r
19556         001504' 000044  070026          GENCS   00,04,4,07,00,26        ; '6'\r
19557         001505' 000044  100027          GENCS   00,04,4,10,00,27        ; '7'\r
19558 \r
19559         001506' 000044  110030          GENCS   00,04,4,11,00,30        ; '8'\r
19560         001507' 000044  120031          GENCS   00,04,4,12,00,31        ; '9'\r
19561         001510' 000121  000032          GENCS   00,12,1,00,00,32        ; ':'\r
19562         001511' 000011  000033          GENCS   00,01,1,00,00,33        ; ';'\r
19563         001512' 000051  000034          GENCS   00,05,1,00,00,34        ; '<'\r
19564         001513' 000121  000035          GENCS   00,12,1,00,00,35        ; '='\r
19565         001514' 000011  000036          GENCS   00,01,1,00,00,36        ; '>'\r
19566         001515' 000121  000037          GENCS   00,12,1,00,00,37        ; '?'\r
19567 \r
19568 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 34\r
19569 MACRO   10      24-APR-78 02:11         CHARACTER STATUS TABLE\r
19570 \r
19571         001516' 000031  000040          GENCS   00,03,1,00,00,40        ; '@'\r
19572         001517' 000012  130041          GENCS   00,01,2,13,00,41        ; 'A'\r
19573         001520' 000012  140042          GENCS   00,01,2,14,00,42        ; 'B'\r
19574         001521' 000012  150043          GENCS   00,01,2,15,00,43        ; 'C'\r
19575         001522' 000012  160044          GENCS   00,01,2,16,00,44        ; 'D'\r
19576         001523' 000012  170045          GENCS   00,01,2,17,00,45        ; 'E'\r
19577         001524' 000012  200046          GENCS   00,01,2,20,00,46        ; 'F'\r
19578         001525' 000012  210047          GENCS   00,01,2,21,00,47        ; 'G'\r
19579 \r
19580         001526' 000012  220050          GENCS   00,01,2,22,00,50        ; 'H'\r
19581         001527' 000012  230051          GENCS   00,01,2,23,00,51        ; 'I'\r
19582         001530' 000012  240052          GENCS   00,01,2,24,00,52        ; 'J'\r
19583         001531' 000012  250053          GENCS   00,01,2,25,00,53        ; 'K'\r
19584         001532' 000012  260054          GENCS   00,01,2,26,00,54        ; 'L'\r
19585         001533' 000012  270055          GENCS   00,01,2,27,00,55        ; 'M'\r
19586         001534' 000012  300056          GENCS   00,01,2,30,00,56        ; 'N'\r
19587         001535' 000012  310057          GENCS   00,01,2,31,00,57        ; 'O'\r
19588 \r
19589         001536' 000012  320060          GENCS   00,01,2,32,00,60        ; 'P'\r
19590         001537' 000012  330061          GENCS   00,01,2,33,00,61        ; 'Q'\r
19591         001540' 000012  340062          GENCS   00,01,2,34,00,62        ; 'R'\r
19592         001541' 000012  350063          GENCS   00,01,2,35,00,63        ; 'S'\r
19593         001542' 000012  360064          GENCS   00,01,2,36,00,64        ; 'T'\r
19594         001543' 000012  370065          GENCS   00,01,2,37,00,65        ; 'U'\r
19595         001544' 000012  400066          GENCS   00,01,2,40,00,66        ; 'V'\r
19596         001545' 000012  410067          GENCS   00,01,2,41,00,67        ; 'W'\r
19597 \r
19598         001546' 000012  420070          GENCS   00,01,2,42,00,70        ; 'X'\r
19599         001547' 000012  430071          GENCS   00,01,2,43,00,71        ; 'Y'\r
19600         001550' 000012  440072          GENCS   00,01,2,44,00,72        ; 'Z'\r
19601         001551' 000061  000073          GENCS   00,06,1,00,00,73        ; '['\r
19602         001552' 000121  000074          GENCS   00,12,1,00,00,74        ; '\'\r
19603         001553' 000011  000075          GENCS   00,01,1,00,00,75        ; ']'\r
19604         001554' 000101  000076          GENCS   00,10,1,00,00,76        ; '^'\r
19605         001555' 100121  000577          GENCS   10,12,1,00,05,77        ; '_'\r
19606 \r
19607 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 35\r
19608 MACRO   10      24-APR-78 02:11         LISTING ROUTINES\r
19609 \r
19610                                 SUBTTL  LISTING ROUTINES\r
19611 \r
19612         001556' 606600  577760  OUTLIN: TRNN    ER,ERRORS-ERRQ  ;ANY ERRORS?\r
19613         001557' 603640  000010          TLNE    FR,ERRQSW       ;NO, IGNORE Q ERRORS?\r
19614         001560' 620600  200000          TRZ     ER,ERRQ         ;YES, YES, ZERO THE Q ERROR\r
19615         001561' 514000  000014          HRLZ    AC0,ER          ;PUT ERROR FLAGS IN AC0 LEFT\r
19616         001562' 630600  013727'         TDZ     ER,TYPERR\r
19617         001563' 321640  001674'         JUMP1   OUTL30          ;BRANCH IF PASS ONE\r
19618         001564' 326000  001576'         JUMPN   AC0,OUTL02      ;JUMP IF ANY ERRORS TO FORCE PRINTING\r
19619         001565' 331000  013555'         SKIPL   STPX            ;SKIP IF NO CODE, OTHERWISE\r
19620         001566' 254000  001574'         JRST    OUTL01          ;NO\r
19621         001567' 607600  000001          TLNN    IO,IOSALL       ;YES,SUPPRESS ALL?\r
19622         001570' 254000  001575'         JRST    OUTL03          ;NO\r
19623         001571' 326540  003447'         JUMPN   MRP,CPOPJ       ;YES,EXIT IF IN MACRO\r
19624         001572' 135340  014633'         LDB     C,[XWD 350700,LBUF]\r
19625         001573' 302340  000015          CAIE    C,15            ;FIRST CHAR CR?\r
19626         001574' 621600  010000  OUTL01: TLZ     IO,IOMAC        ;FORCE MACRO PRINTING\r
19627         001575' 607600  250000  OUTL03: TLNN    IO,IOMSTR!IOPROG!IOMAC\r
19628         001576' 434600  013512' OUTL02: IOR     ER,OUTSW        ;FORCE IT.\r
19629         001577' 136000  013453'         IDPB    AC0,LBUFP       ;STORE ZERO TERMINATOR AFTER ASCII SRC LINE\r
19630         001600' 607640  002000          TLNN    FR,CREFSW       ;CREF?\r
19631         001601' 260740  012674'         PUSHJ   PP,CLSCRF       ;YES, WRITE END OF CREF DATA (177,003)\r
19632         001602' 322000  001606'         JUMPE   AC0,OUTL20      ;BRANCH IF NO ERRORS\r
19633         001603' 623000  000020          TLZE    AC0,ERRM        ;M ERROR?\r
19634         001604' 661000  000100          TLO     AC0,ERRP        ;M ERROR SET - SET P ERROR.\r
19635         001605' 260740  001721'         PUSHJ   PP,OUTLER       ;PROCESS ERRORS\r
19636 \r
19637         001606' 336440  013775' OUTL20: SKIPN   RC,ASGBLK\r
19638         001607' 332400  013776'         SKIPE   CS,LOCBLK       ;\r
19639         001610' 331000  013555'         SKIPL   STPX            ;ANY BINARY?\r
19640         001611' 254000  001634'         JRST    OUTL23          ;YES, JUMP\r
19641         001612' 322440  001630'         JUMPE   RC,OUTL22       ;SEQUENCE BREAK AND NO BINARY JUMPS\r
19642         001613' 134340  013677'         ILDB    C,TABP          ;ASSIGNMENT FALLS THROUGH\r
19643         001614' 260740  010607'         PUSHJ   PP,OUTL         ;OUTPUT A TAB.\r
19644         001615' 134340  013677'         ILDB    C,TABP          ;OUTPUT 2ND TAB, LOCATION FIELD\r
19645         001616' 260740  010663'         PUSHJ   PP,OUTC         ;NEXT IS BINARY LISTING FIELD\r
19646         001617' 520400  013776'         HLLO    CS,LOCBLK       ;LEFT HALF OF A 36BIT VALUE\r
19647         001620' 321440  001622'         JUMPL   RC,.+2          ;SKIP IF LEFT HALF IS NOT RELOC\r
19648         001621' 624400  000001          TRZA    CS,1            ;IT IS, SET THE FLAG\r
19649         001622' 603400  777777          TLNE    CS,-1           ;SKIP IF ITS A 18BIT VALUE, OTHERWISE\r
19650         001623' 260740  003035'         PUSHJ PP,ONC1           ;PRINT LH OF A 36 BIT VALUE IN CS\r
19651         001624' 524400  013776'         HRLO    CS,LOCBLK       ;PICK UP THE RIGHT HALF (18BIT VALUE)\r
19652         001625' 620411  000000          TRZ     CS,0(RC)        ;\r
19653         001626' 260740  003033'         PUSHJ   PP,ONC          ;PRINT IT\r
19654         001627' 254000  001634'         JRST    OUTL23          ;SKIP SINGLE QUOTE TEST\r
19655 \r
19656 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 36\r
19657 MACRO   10      24-APR-78 02:11         LISTING ROUTINES\r
19658 \r
19659         001630' 260740  003033' OUTL22: PUSHJ   PP,ONC          ;TAB TO RH AND PRINT IT\r
19660         001631' 201340  000047          MOVEI   C,"'"\r
19661         001632' 332000  014004'         SKIPE   MODA\r
19662         001633' 260740  010663'         PUSHJ   PP,OUTC\r
19663         001634' 331000  013555' OUTL23: SKIPL   STPX            ;ANY BINARY?\r
19664         001635' 260740  002517'         PUSHJ   PP,BOUT         ;YES, DUMP IT\r
19665         001636' 200420  002003'         MOVE    CS,@OUTLI2      ;[POINT 7,LBUF]\r
19666         001637' 134340  000010  OUTL24: ILDB    C,CS\r
19667         001640' 322340  001645'         JUMPE   C,OUTL25\r
19668         001641' 307340  000040          CAIG    C," "\r
19669         001642' 254000  001637'         JRST    OUTL24\r
19670         001643' 200400  013677'         MOVE    CS,TABP\r
19671         001644' 260740  003061'         PUSHJ   PP,OUTASC       ;OUTPUT TABS\r
19672         001645' 201400  013454' OUTL25: MOVEI   CS,LBUF\r
19673         001646' 260740  003060'         PUSHJ   PP,OUTAS0       ;DUMP THE LINE\r
19674         001647' 603600  000001          TLNE    IO,IOSALL       ;SUPPRESSING ALL\r
19675         001650' 326540  001655'         JUMPN   MRP,OUTL27      ;YES,EXTRA CR IF IN MACRO\r
19676         001651' 335000  013555' OUTL26: SKIPGE  STPX            ;ANY BINARY?\r
19677         001652' 254000  001774'         JRST    OUTLI           ;NO, CLEAN UP AND EXIT\r
19678         001653' 260740  002003'         PUSHJ   PP,OUTLI2       ;YES, INITIALIZE FOR NEXT LINE\r
19679         001654' 260740  002517'         PUSHJ   PP,BOUT         ;YES, DUMP IT\r
19680         001655' 260740  010600' OUTL27: PUSHJ   PP,OUTCR        ;OUTPUT CARRIAGE RETURN\r
19681         001656' 254000  001651'         JRST    OUTL26          ;TEST FOR MORE BINARY\r
19682 \r
19683         001657' 336000  013773' OUTPL:  SKIPN   LITLVL          ;IF IN LITERAL\r
19684         001660' 331000  013555'         SKIPL   STPX            ;OR CODE GENERATED\r
19685         001661' 254000  001746'         JRST    OUTIM           ;JUST OUTPUT THE IMAGE\r
19686         001662' 336000  013775'         SKIPN   ASGBLK          ;SKIP IF AN ASSIGNMENT\r
19687         001663' 254000  001746'         JRST    OUTIM           ;OTHERWISE OUTPUT IMAGE\r
19688         001664' 261740  000007          PUSH    PP,C            ;SAVE CHAR.\r
19689         001665' 201340  000015          MOVEI   C,CR\r
19690         001666' 136340  013453'         IDPB    C,LBUFP\r
19691         001667' 201340  000012          MOVEI   C,LF\r
19692         001670' 136340  013453'         IDPB    C,LBUFP         ;FINISH WITH CRLF\r
19693         001671' 260740  001556'         PUSHJ   PP,OUTLIN       ;OUTPUT PARTIAL LINE\r
19694         001672' 262740  000007          POP     PP,C            ;RESTORE CHAR.\r
19695         001673' 254000  002003'         JRST    OUTLI2          ;INITIALISE REST OF LINE\r
19696 \r
19697 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 37\r
19698 MACRO   10      24-APR-78 02:11         LISTING ROUTINES\r
19699 \r
19700         001674' 350400  013555' OUTL30: AOS     CS,STPX         ;PASS ONE\r
19701         001675' 272400  014000'         ADDM    CS,LOCO         ;INCREMENT OUTPUT LOCATION\r
19702         001676' 260740  003003'         PUSHJ   PP,STOWI        ;INITIALIZE STOW\r
19703         001677' 621000  776640          TLZ     AC0,ERRORS-ERRM-ERRP-ERRV\r
19704         001700' 326000  001704'         JUMPN   AC0,OUTL32      ;JUMP IF ERRORS\r
19705         001701' 603600  000001          TLNE    IO,IOSALL       ;SUPPRESSING ALL/\r
19706         001702' 326540  003447'         JUMPN   MRP,CPOPJ       ;YES,EXIT\r
19707         001703' 254000  002002'         JRST    OUTLI1          ;NO,INIT LINE\r
19708 \r
19709         001704' 136000  013453' OUTL32: IDPB    AC0,LBUFP       ;ZERO TERNIMATOR\r
19710         001705' 434600  013512'         IOR     ER,OUTSW        ;LIST ERRORS\r
19711         001706' 201400  013211'         MOVEI   CS,TAG\r
19712         001707' 260740  003065'         PUSHJ   PP,OUTSIX       ;OUTPUT TAG\r
19713         001710' 550340  014051'         HRRZ    C,TAGINC\r
19714         001711' 260740  003051'         PUSHJ   PP,DNC          ;CONVERT INCREMENT TO DECIMAL\r
19715         001712' 260740  010571'         PUSHJ   PP,OUTTAB       ;OUTPUT TAB\r
19716         001713' 260740  001721'         PUSHJ   PP,OUTLER       ;OUTPUT ERROR FLAGS\r
19717         001714' 260740  010571'         PUSHJ   PP,OUTTAB\r
19718         001715' 201400  013214'         MOVEI   CS,SEQNO        ;ADDRESS OF SEQUENCE NO.\r
19719         001716' 332000  013214'         SKIPE   SEQNO           ;FILE NOT SEQUENCED\r
19720         001717' 260740  003060'         PUSHJ   PP,OUTAS0       ;OUTPUT IT\r
19721         001720' 254000  001645'         JRST    OUTL25          ;OUTPUT BASIC LINE\r
19722 \r
19723         001721' 261740  000014  OUTLER: PUSH PP,ER      ;SAVE LISTING SWITCHES FOR LATER\r
19724         001722' 602600  000001          TRNE ER,TTYSW   ;IF THIS IS ON, LISTING IS ON TTY\r
19725         001723' 620600  777760          TRZ ER,ERRORS   ;SO SUPPRESS ON TTY\r
19726         001724' 630600  013512'         TDZ ER,OUTSW    ;BUT THIS SHOULD ONLY GO TO THE TTY\r
19727         001725' 200400  013343'         MOVE CS,INDIR   ;GET FILE NAME\r
19728         001726' 312400  013207'         CAME CS,LSTFIL  ;AND SEE IF SAME\r
19729                                         JRST    [MOVEM CS,LSTFIL        ;SAVE AS LAST ONE\r
19730                                                 MOVEI CS,LSTFIL\r
19731                                                 PUSHJ PP,OUTSIX ;LIST NAME\r
19732                                                 MOVEI C," "\r
19733                                                 PUSHJ PP,OUTL\r
19734                                                 MOVE CS,PAGENO  ;PRINT PAGE NUMBER TOO\r
19735         001727' 254000  014634'                 JRST OUTLE8]\r
19736         001730' 200400  014100'         MOVE CS,PAGENO  ;NOW CHECK PAGE NUMBER\r
19737         001731' 312400  014102'         CAME CS,LSTPGN\r
19738                                 OUTLE8: JRST    [MOVEM CS,LSTPGN\r
19739                                                 MOVEI CS,[ASCIZ /PAGE /]\r
19740                                                 PUSHJ PP,OUTAS0\r
19741                                                 MOVE C,PAGENO\r
19742                                                 PUSHJ PP,DNC\r
19743                                                 PUSHJ PP,OUTCR  ;AND NOW FOR THE ERROR LINE\r
19744         001732' 254000  014645'                 JRST .+1]\r
19745         001733' 502617  000000          HLLM ER,(PP)    ;RESTORE ER BUT NOT IO (LEFT HALF OF AC)\r
19746         001734' 262740  000014          POP PP,ER\r
19747         001735' 200400  014657'         MOVE    CS,[POINT 7,[ASCII / QXADLRUVNOPEM/]]\r
19748         001736' 134340  000010  OUTLE2: ILDB    C,CS            ;GET ERROR MNEMONIC\r
19749         001737' 325000  001742'         JUMPGE  AC0,OUTLE4      ;BRANCH IF NOT FLAGGED\r
19750         001740' 260740  010607'         PUSHJ   PP,OUTL         ;OUTPUT THE CHARACTER\r
19751         001741' 350000  013376'         AOS     ERRCNT          ;INCREMENT ERROR COUNT\r
19752         001742' 242000  000001  OUTLE4: LSH     AC0,1           ;SHIFT NEXT FLAG INTO SIGN BIT\r
19753 \r
19754 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 38\r
19755 MACRO   10      24-APR-78 02:11         LISTING ROUTINES\r
19756 \r
19757         001743' 326000  001736'         JUMPN   AC0,OUTLE2      ;TEST FOR END\r
19758         001744' 263740  000000          POPJ    PP,             ;EXIT\r
19759 \r
19760 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 39\r
19761 MACRO   10      24-APR-78 02:11         LISTING ROUTINES\r
19762 \r
19763         001745' 665640  000001  OUTIM1: TLOA    FR,IOSCR        ;SUPPRESS CRLF AFTER LINE\r
19764         001746' 621640  000001  OUTIM:  TLZ     FR,IOSCR        ;DON'T FOR PARTIAL LINE\r
19765         001747' 603600  000001          TLNE    IO,IOSALL       ;SUPPRESSING ALL?\r
19766         001750' 326540  003447'         JUMPN   MRP,CPOPJ       ;YES ,EXIT IF IN MACRO\r
19767         001751' 321640  002002'         JUMP1   OUTLI1          ;BYPASS IF PASS ONE\r
19768         001752' 261740  000014          PUSH    PP,ER\r
19769         001753' 630600  013727'         TDZ     ER,TYPERR\r
19770         001754' 607600  250000          TLNN    IO,IOMSTR!IOPROG!IOMAC\r
19771         001755' 434600  013512'         IOR     ER,OUTSW\r
19772         001756' 261740  000007          PUSH    PP,C            ;OUTPUT IMAGE\r
19773         001757' 607640  002000          TLNN    FR,CREFSW\r
19774         001760' 260740  012674'         PUSHJ   PP,CLSCRF\r
19775         001761' 200400  013677' OUTIM2: MOVE    CS,TABP\r
19776         001762' 260740  003061'         PUSHJ   PP,OUTASC       ;OUTPUT TABS\r
19777         001763' 136340  013453'         IDPB    C,LBUFP         ;STORE ZERO TERMINATOR\r
19778         001764' 201400  013454'         MOVEI   CS,LBUF\r
19779         001765' 260740  003060'         PUSHJ   PP,OUTAS0       ;OUTPUT THE IMAGE\r
19780         001766' 627640  000001          TLZN    FR,IOSCR        ;CRLF SUPPRESS?\r
19781         001767' 260740  010600'         PUSHJ   PP,OUTCR        ;NO,OUTPUT\r
19782         001770' 262740  000007          POP     PP,C\r
19783         001771' 502617  000000          HLLM    ER,0(PP)\r
19784         001772' 262740  000014          POP     PP,ER\r
19785         001773' 254000  002003'         JRST    OUTLI2\r
19786 \r
19787         001774' 603600  000001  OUTLI:  TLNE    IO,IOSALL       ;SUPPRESSING ALL\r
19788         001775' 326540  002001'         JUMPN   MRP,OUTLI3      ;YES,SET FLAG IN REPEATS ALSO\r
19789         001776' 603600  004000          TLNE    IO,IOPALL       ;MACRO EXPANSION SUPRESS REQUESTED?\r
19790         001777' 336000  014072'         SKIPN   MACLVL          ;YES, ARE WE IN MACRO?\r
19791         002000' 625600  010000          TLZA    IO,IOMAC        ;NO, CLEAR MAC FLAG\r
19792         002001' 661600  010000  OUTLI3: TLO     IO,IOMAC        ;YES, SET FLAG\r
19793 \r
19794         002002' 620600  777763  OUTLI1: TRZ     ER,ERRORS!LPTSW!TTYSW\r
19795         002003' 200400  014660' OUTLI2: MOVE    CS,[POINT 7,LBUF]       ;INITIALIZE BUFFERS\r
19796         002004' 202400  013453'         MOVEM   CS,LBUFP\r
19797         002005' 200400  014661'         MOVE    CS,[POINT 7,TABI,6]\r
19798         002006' 202400  013677'         MOVEM   CS,TABP\r
19799         002007' 201400  000130          MOVEI   CS,.CPL\r
19800         002010' 202400  013737'         MOVEM   CS,CPL\r
19801         002011' 205400  044000          MOVSI   CS,(ASCII /     /)\r
19802         002012' 332000  013214'         SKIPE   SEQNO           ;HAVE WE SEQUENCE NUMBERS?\r
19803         002013' 202400  013214'         MOVEM   CS,SEQNO        ;YES, STORE TAB IN CASE OF MACRO\r
19804         002014' 202400  013215'         MOVEM   CS,SEQNO+1      ;STORE TAB AND TERMINATOR\r
19805         002015' 402000  013775'         SETZM   ASGBLK\r
19806         002016' 402000  013776'         SETZM   LOCBLK\r
19807         002017' 263740  000000          POPJ    PP,\r
19808 \r
19809 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 40\r
19810 MACRO   10      24-APR-78 02:11         LISTING ROUTINES\r
19811 \r
19812         002020' 603600  000001  OUTIML: TLNE    IO,IOSALL       ;SUPPRESSING ALL?\r
19813         002021' 326540  003447'         JUMPN   MRP,CPOPJ       ;YES,EXIT IF IN MACRO\r
19814         002022' 606600  577760          TRNN ER,ERRORS-ERRQ     ;FOR LITERALS (MULIT-LINE) OUTPUT ERRORS\r
19815         002023' 603640  000010          TLNE FR,ERRQSW\r
19816         002024' 620600  200000          TRZ ER,ERRQ\r
19817         002025' 514400  000014          HRLZ CS,ER\r
19818         002026' 321640  002045'         JUMP1 OUTML1    ;CHECK PASS1 ERRORS\r
19819         002027' 630600  013727'         TDZ ER,TYPERR\r
19820         002030' 322400  001745'         JUMPE CS,OUTIM1\r
19821         002031' 261740  014625'         PUSH PP,[0]     ;ERRORS SHOULD BE ZEROED\r
19822         002032' 261740  000007          PUSH PP,C\r
19823         002033' 261740  000000          PUSH    PP,AC0  ;SAVE AC0 IN CASE CALLED FROM ASCII\r
19824         002034' 200000  000010          MOVE    AC0,CS  ;ERROR ROUTINE WANTS FLAGS IN AC0\r
19825         002035' 434600  013512'         IOR ER,OUTSW\r
19826         002036' 607640  002000          TLNN FR,CREFSW\r
19827         002037' 260740  012674'         PUSHJ PP,CLSCRF ;FIX CREF\r
19828         002040' 623000  000020          TLZE AC0,ERRM\r
19829         002041' 661000  000100          TLO AC0,ERRP\r
19830         002042' 260740  001721'         PUSHJ PP,OUTLER ;OUTPUT THEM\r
19831         002043' 262740  000000          POP     PP,AC0\r
19832         002044' 254000  001761'         JRST OUTIM2     ;AND LINE\r
19833         \r
19834         002045' 621400  776640  OUTML1: TLZ CS,ERRORS-ERRM-ERRP-ERRV\r
19835         002046' 322400  002003'         JUMPE CS,OUTLI2 ;NONE\r
19836         002047' 620600  001120          TRZ ER,ERRM!ERRP!ERRV\r
19837         002050' 660600  010000          TRO ER,ERRL\r
19838         002051' 261740  000014          PUSH PP,ER      ;SAVE\r
19839         002052' 261740  000007          PUSH PP,C       ;SAVE THIS\r
19840         002053' 261740  000000          PUSH    PP,AC0  ;AS ABOVE\r
19841         002054' 200000  000010          MOVE    AC0,CS          ;...\r
19842         002055' 630600  013727'         TDZ ER,TYPERR\r
19843         002056' 434600  013512'         IOR ER,OUTSW\r
19844         002057' 201400  013211'         MOVEI CS,TAG\r
19845         002060' 260740  003065'         PUSHJ PP,OUTSIX\r
19846         002061' 550340  014051'         HRRZ C,TAGINC\r
19847         002062' 260740  003051'         PUSHJ PP,DNC\r
19848         002063' 260740  010571'         PUSHJ PP,OUTTAB\r
19849         002064' 260740  001721'         PUSHJ PP,OUTLER ;DO NOT FORGET ERRORS\r
19850         002065' 260740  010571'         PUSHJ PP,OUTTAB\r
19851         002066' 201400  013454'         MOVEI CS,LBUF   ;PRINT REST OF LINE\r
19852         002067' 260740  002503'         PUSHJ PP,SOUT20\r
19853         002070' 262740  000000          POP     PP,AC0\r
19854         002071' 262740  000007          POP PP,C\r
19855         002072' 262740  000014          POP PP,ER\r
19856         002073' 254000  002003'         JRST OUTLI2\r
19857 \r
19858 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 41\r
19859 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
19860 \r
19861                                 SUBTTL  OUTPUT ROUTINES\r
19862         002074' 260740  003111' UOUT:   PUSHJ   PP,LOOKUP       ;SET FOR TABLE SCAN\r
19863         002075' 606240  004000          TRNN ARG,PNTF   ;WFW\r
19864         002076' 606240  002000          TRNN    ARG,UNDF\r
19865         002077' 254000  002116'         JRST    UOUT13          ;TEST FOR UNDF!EXTF!PNTF ON PASS2\r
19866         002100' 325640  002122'         JUMP2   UOUT10\r
19867         002101' 607600  000020          TLNN    IO,IOIOPF       ;ANY IOP'S SEEN\r
19868         002102' 254000  002112'         JRST    UOUT12          ;NO,MAKE EXTERNAL\r
19869         002103' 205400  777700          MOVSI   CS,PRMTBL-PRMEND;YES LOOKUP IN TABLE\r
19870         002104' 312010  012206' UOUT1:  CAME    AC0,PRMTBL(CS)  ;HAVE WE A MATCH?\r
19871         002105' 253400  002111'         AOBJN   CS,UOUT2        ;NO,INCREMENT AND JUMP\r
19872         002106' 200250  012207'         MOVE    ARG,PRMTBL+1(CS);YES,GET VALUE\r
19873         002107' 202244  000000          MOVEM   ARG,(SX)        ;UPDATE SYMBOL TABLE\r
19874         002110' 263740  000000          POPJ    PP,             ;EXIT\r
19875         002111' 253400  002104' UOUT2:  AOBJN   CS,UOUT1        ;TEST FOR END\r
19876 \r
19877         002112' 260740  004015' UOUT12: PUSHJ   PP,EXTER2       ;MAKE IT EXTERNAL\r
19878         002113' 205240  002000          MOVSI   ARG,UNDF        ;BUT PUT UNDF BACK ON\r
19879         002114' 436244  000000          IORM    ARG,(SX)        ;SO MESSAGE WILL COME OUT\r
19880         002115' 263740  000000          POPJ    PP,             ;GET NEXT SYMBOL\r
19881 \r
19882         002116' 321640  003447' UOUT13: JUMP1   CPOPJ   ;RECYCLE ON PASS1\r
19883         002117' 640240  007000          TRC ARG,UNDF!EXTF!PNTF  ;CHECK FOR ALL THREE ON\r
19884         002120' 642240  007000          TRCE ARG,UNDF!EXTF!PNTF ;ARE THEY?\r
19885         002121' 263740  000000          POPJ    PP,             ;NO, RECYCLE\r
19886         002122' 260740  010600' UOUT10: PUSHJ PP,OUTCR\r
19887         002123' 260740  003074'         PUSHJ   PP,OUTSYM       ;OUTPUT THE SYMBOL\r
19888         002124' 201400  014662'         MOVEI   CS,[SIXBIT /UNASSIGNED, DEFINED AS IF EXTERNAL @/]\r
19889         002125' 254000  003065'         JRST    OUTSIX          ;POPJ FOR NEXT SYMBOL\r
19890 \r
19891         002126' 260740  003035' UOUT30: PUSHJ   PP,ONC1         ;OUTPUT THE LOCATION\r
19892         002127' 254000  004235'         JRST    HIGHQ           ;EXIT THROUGH HIGHQ\r
19893 \r
19894 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 42\r
19895 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
19896 \r
19897                                                                 ;OUTPUT THE ENTRIES\r
19898 \r
19899         002130' 201340  000000  EOUT:   MOVEI   C,0             ;INITIALIZE THE COUNT\r
19900         002131' 200200  013552'         MOVE    SX,SYMBOL\r
19901         002132' 200144  000000          MOVE    SDEL,0(SX)\r
19902         002133' 361140  002141' EOUT1:  SOJL    SDEL,EOUT2      ;TEST FOR END\r
19903         002134' 271200  000002          ADDI    SX,2\r
19904         002135' 554244  000000          HLRZ    ARG,0(SX)\r
19905         002136' 411240  400600          ANDCAI  ARG,SYMF!INTF!ENTF\r
19906         002137' 326240  002133'         JUMPN   ARG,EOUT1       ;IF INVALID, DON'T COUNT\r
19907         002140' 344340  002133'         AOJA    C,EOUT1         ;BUMP COUNT\r
19908 \r
19909         002141' 505340  000004  EOUT2:  HRLI    C,4             ;BLOCK TYPE 4\r
19910         002142' 260740  010404'         PUSHJ   PP,OUTBIN\r
19911         002143' 403340  000005          SETZB   C,ARG\r
19912         002144' 260740  010404'         PUSHJ   PP,OUTBIN\r
19913         002145' 200200  013552'         MOVE    SX,SYMBOL\r
19914         002146' 200144  000000          MOVE    SDEL,0(SX)\r
19915         002147' 201300  000022          MOVEI   V,^D18\r
19916 \r
19917         002150' 361140  000455' EOUT3:  SOJL    SDEL,POPOUT\r
19918         002151' 271200  000002          ADDI    SX,2\r
19919         002152' 554344  000000          HLRZ    C,0(SX)\r
19920         002153' 411340  400600          ANDCAI  C,SYMF!INTF!ENTF\r
19921         002154' 326340  002150'         JUMPN   C,EOUT3\r
19922         002155' 365300  002160'         SOJGE   V,EOUT4         ;TEST END OF BLOCK\r
19923         002156' 260740  010404'         PUSHJ   PP,OUTBIN\r
19924         002157' 201300  000021          MOVEI   V,^D17  ;WFW\r
19925         002160' 200004  777777  EOUT4:  MOVE    AC0,-1(SX)\r
19926         002161' 260740  004770'         PUSHJ   PP,SQOZE\r
19927         002162' 200340  000000          MOVE    C,AC0\r
19928         002163' 260740  010404'         PUSHJ   PP,OUTBIN\r
19929         002164' 254000  002150'         JRST    EOUT3\r
19930 \r
19931 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 43\r
19932 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
19933 \r
19934                                                                 ;OUTPUT THE SYMBOLS\r
19935 \r
19936         002165' 336000  013730' SOUT:   SKIPN   IONSYM          ;SKIP IF NOSYM SEEN\r
19937         002166' 606600  000003          TRNN    ER,LPTSW!TTYSW  ;A LISTING REQUIRED?\r
19938         002167' 254000  002377'         JRST    SOUT1           ;NO\r
19939         002170' 201000  014670'         MOVEI   [ASCIZ /SYMBOL TABLE/]\r
19940         002171' 542000  013550'         HRRM    SUBTTX          ;SET NEW SUB-TITLE\r
19941         002172' 260740  010703'         PUSHJ   PP,OUTFF        ;FORCE NEW PAGE\r
19942         002173' 201240  000001          MOVEI   ARG,NCOLS       ;SET UP FOR NCOLS ACROSS SYMBOL TABLE\r
19943         002174' 602600  000001          TRNE    ER,TTYSW        ;IS TTY LISTING DEVICE?\r
19944         002175' 201240  000002          MOVEI   ARG,2           ;YES,ONLY 2 COLLUMNS\r
19945         002176' 202240  013451'         MOVEM   ARG,NCOLLS      ;STORE ANSWER\r
19946         002177' 202240  013554'         MOVEM ARG,SYMCNT\r
19947         002200' 260740  002205'         PUSHJ PP,LOUT1          ;OUTPUT THEM\r
19948         002201' 200240  013554'         MOVE ARG,SYMCNT         ;SEE IF WE ENDED EVEN\r
19949         002202' 312240  013451'         CAME ARG,NCOLLS\r
19950         002203' 260740  010600'         PUSHJ   PP,OUTCR        ;NO, NEED CR\r
19951         002204' 254000  002377'         JRST    SOUT1           ;NOW FOR BLOCK TYPE 2\r
19952 \r
19953         002205' 260740  002306' LOUT1:  PUSHJ   PP,LLUKUP       ;SET FOR TABLE SCAN\r
19954         002206' 606240  400000          TRNN    ARG,SYMF\r
19955         002207' 606240  060000          TRNN    ARG,MACF!SYNF\r
19956         002210' 634540  000013          TDZA    MRP,MRP         ;SKIP AND CLEAR MRP\r
19957         002211' 263740  000000          POPJ    PP,             ;NO, TRY AGAIN\r
19958         002212' 602240  000400          TRNE    ARG,INTF\r
19959         002213' 201540  000001          MOVEI   MRP,1\r
19960         002214' 602240  001000          TRNE    ARG,EXTF\r
19961         002215' 211540  000001          MOVNI   MRP,1           ;MRP=-1 FOR EXTERNAL\r
19962         002216' 602240  040000          TRNE    ARG,SYNF        ;SYNONYM?\r
19963         002217' 321540  000455'         JUMPL   MRP,POPOUT      ;YES, DON'T OUTPUT IF EXTERNAL\r
19964         002220' 602240  000004          TRNE ARG,SUPRBT         ;IF SUPRESSED\r
19965                                 ;       JUMPGE MRP,POPOUT       ;DO NOT OUTPUT UNLESS EXTERNAL\r
19966         002221' 263740  000000          POPJ    PP,             ;DO NOT OUTPUT\r
19967         002222' 350017  000000          AOS     (PP)            ;SET FOR SKIP RETURN IF SYMBOL IS PRINTED\r
19968         002223' 325540  002230'         JUMPGE  MRP,LOUT10      ;BRANCH IF NOT EXTERNAL\r
19969         002224' 554440  000006          HLRZ    RC,V            ;PUT POINTER/FLAGS IN RC\r
19970         002225' 602440  777776          TRNE    RC,-2           ;POINTER?\r
19971         002226' 204451  000000          MOVS    RC,0(RC)        ;YES\r
19972         002227' 500300  000011          HLL     V,RC            ;STORE LEFT VALUE\r
19973 \r
19974         002230' 261740  000011  LOUT10: PUSH PP,RC      ;SAVE FOR LATER\r
19975         002231' 260740  003074'         PUSHJ   PP,OUTSYM       ;OUTPUT THE NAME\r
19976         002232' 200457  000000          MOVE RC,(PP)    ;GET COPY\r
19977         002233' 201040  000000          MOVEI   AC1,0\r
19978         002234' 323540  002241'         JUMPLE  MRP,LOUT15      ;SET DEFFERRED BITS IF EXTERNAL\r
19979         002235' 603440  777776          TLNE    RC,-2           ;CHECK FOR LEFT FIXUP\r
19980         002236' 435040  000040          IORI    AC1,40          ;AND SET BITS\r
19981         002237' 602440  777776          TRNE    RC,-2           ;CHECK FOR RIGHT FIXUP\r
19982         002240' 435040  000020          IORI    AC1,20          ;AND SET BITS\r
19983         002241' 603440  777776  LOUT15: TLNE RC,-2      ;FIX RELOC AS 0 IF EXTERNAL\r
19984         002242' 553000  000011          HRRZS RC\r
19985         002243' 602440  777776          TRNE RC,-2\r
19986         002244' 513000  000011          HLLZS RC\r
19987 \r
19988 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 43-1\r
19989 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
19990 \r
19991         002245' 623440  777777          TLZE RC,-1\r
19992         002246' 660440  000002          TRO RC,2\r
19993         002247' 504540  000011          HRL MRP,RC\r
19994         002250' 201440  000000          MOVEI RC,0\r
19995         002251' 602240  000200          TRNE    ARG,ENTF        ;ENTRY DMN\r
19996         002252' 541540  777773          HRRI    MRP,-5\r
19997         002253' 602240  100000          TRNE ARG,NOOUTF         ;SUPRESS OUTPUT? WFW\r
19998         002254' 271540  000003          ADDI MRP,3              ;YES WFW\r
19999         002255' 602240  002000          TRNE    ARG,UNDF        ;UNDEFINED IS EXTERNAL\r
20000         002256' 541540  000002          HRRI    MRP,2           ;SO FLAG AS UXT\r
20001         002257' 434053  002512'         IOR     AC1,SOUTC(MRP)\r
20002         002260' 200240  000001          MOVE ARG,AC1\r
20003         002261' 202000  013551'         MOVEM AC0,SVSYM         ;SAVE IT\r
20004         002262' 200000  000006          MOVE    AC0,V           ;GET THE VALUE\r
20005         002263' 554440  000013          HLRZ    RC,MRP          ;AND THE RELOCATION\r
20006         002264' 520400  000006          HLLO    CS,V\r
20007         002265' 602440  000002          TRNE    RC,2            ;LEFT HALF RELOCATABLE?\r
20008         002266' 624400  000001          TRZA    CS,1            ;NO, FLAG AND PRINT\r
20009         002267' 603400  777777          TLNE    CS,-1           ;IS THE LEFT HALF ZERO?\r
20010         002270' 260740  003035'         PUSHJ   PP,ONC1         ;NO, OUTPUT IT\r
20011         002271' 260740  010571' LOUT11: PUSHJ   PP,OUTTAB\r
20012         002272' 524400  000006  LOUT30: HRLO    CS,V\r
20013         002273' 630400  000011          TDZ     CS,RC           ;SET RELOCATION\r
20014         002274' 260740  003035'         PUSHJ   PP,ONC1\r
20015         002275' 260740  010571'         PUSHJ   PP,OUTTAB\r
20016         002276' 262740  000011          POP PP,RC               ;GET BACK RELOC AND CHECK EXTERNAL\r
20017         002277' 201413  002512' LOUT60: MOVEI   CS,SOUTC(MRP)\r
20018         002300' 260740  003060'         PUSHJ   PP,OUTAS0       ;EXT/INT\r
20019         002301' 373000  013554'         SOSLE SYMCNT    ;SEE IF WE HAVE RUN OUT\r
20020         002302' 254000  010571'         JRST    OUTTAB          ;NOT YET, PRINT ONE TAB\r
20021         002303' 200400  013451' LOUT64: MOVE CS,NCOLLS          ;YES, RESET\r
20022 \r
20023 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 44\r
20024 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20025 \r
20026         002304' 202400  013554'         MOVEM CS,SYMCNT\r
20027         002305' 254000  010600'         JRST    OUTCR           ;CARRIAGE RETURN AND TRY FOR ANOTHER\r
20028 \r
20029 \r
20030 \r
20031 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 45\r
20032 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20033 \r
20034                                         SYN IFBLK,SYMBLK        ;SOMEWHERE TO STORE THE POINTERS\r
20035 \r
20036         002306' 262740  013510' LLUKUP: POP     PP,LOOKX        ;INTERCEPT RETURN POP\r
20037         002307' 200200  013552'         MOVE    SX,SYMBOL\r
20038         002310' 200144  000000          MOVE    SDEL,(SX)\r
20039         002311' 271200  000002          ADDI    SX,2            ;SKIP COUNT OF SYMBOLS\r
20040         002312' 505200  777712  LLUKP2: HRLI    SX,-<.LPP-1>    ;LENGTH OF PAGE\r
20041         002313' 200300  000005          MOVE    V,ARG           ;COPY OF ARG\r
20042         002314' 202206  013400'         MOVEM   SX,SYMBLK(V)    ;STORE SYMBOL POINTER IN TABLE\r
20043         002315' 271200  000152          ADDI    SX,2*<.LPP-2>   ;SYMBOLS PER PAGE\r
20044         002316' 367300  002314'         SOJG    V,.-2           ;FOR ALL COLUMNS\r
20045         002317' 200300  013554'         MOVE    V,SYMCNT\r
20046         002320' 550206  013400'         HRRZ    SX,SYMBLK(V)\r
20047         002321' 315200  013553'         CAMGE   SX,SYMTOP\r
20048         002322' 367300  002320'         SOJG    V,.-2\r
20049         002323' 271300  000001          ADDI    V,1\r
20050         002324' 202300  013400'         MOVEM   V,SYMBLK\r
20051         002325' 254000  002334'         JRST    LLUKP7          ;ENTER LOOP\r
20052 \r
20053         002326' 202205  013400' LLUKP1: MOVEM   SX,SYMBLK(ARG)  ;SAVE IT \r
20054         002327' 200004  777777          MOVE    AC0,-1(SX)\r
20055         002330' 260740  012740'         PUSHJ   PP,SRCH7\r
20056         002331' 557000  000005          HLRZS   ARG\r
20057         002332' 260760  013510'         PUSHJ   PP,@LOOKX\r
20058                                         JRST    [MOVE   ARG,SYMCNT\r
20059                                                 MOVEM SX,SYMBLK(ARG)\r
20060         002333' 254000  014673'                 JRST    .+1]\r
20061         002334' 361140  000455' LLUKP7: SOJL    SDEL,POPOUT     ;TEST FOR END\r
20062         002335' 200240  013554' LLUKP3: MOVE    ARG,SYMCNT      ;GET PAGE POSITION\r
20063         002336' 200205  013400'         MOVE    SX,SYMBLK(ARG)  ;GET NEXT POINTER\r
20064         002337' 252200  002346'         AOBJP   SX,LLUKP4\r
20065         002340' 550300  000004          HRRZ    V,SX\r
20066         002341' 317300  013553'         CAMG    V,SYMTOP\r
20067         002342' 344200  002326'         AOJA    SX,LLUKP1\r
20068         002343' 260740  002303' LLUKP6: PUSHJ   PP,LOUT64       ;RESET SYMCNT\r
20069         002344' 322140  000455'         JUMPE   SDEL,POPOUT     ;EXIT IF ALL DONE\r
20070         002345' 254000  002335'         JRST    LLUKP3\r
20071 \r
20072         002346' 340200  000000  LLUKP4: AOJ     SX,\r
20073         002347' 202205  013400'         MOVEM   SX,SYMBLK(ARG)\r
20074         002350' 200300  013451'         MOVE    V,NCOLLS\r
20075         002351' 335006  013400'         SKIPGE  SYMBLK(V)       ;TEST IF ALL FINISHED\r
20076         002352' 254000  002370'         JRST    LLUKP5          ;NO\r
20077         002353' 367300  002351'         SOJG    V,.-2           ;KEEP GOING\r
20078         002354' 200200  013400'         MOVE    SX,SYMBLK\r
20079         002355' 200204  013400'         MOVE    SX,SYMBLK(SX)\r
20080         002356' 554300  000004          HLRZ    V,SX            ;GET NUMBER ADVANCED\r
20081         002357' 242300  000001          LSH     V,1             ;2 WORDS PER SYMBOL\r
20082         002360' 275206  000002          SUBI    SX,2(V)         ;BACK UP ONE SYMBOL\r
20083         002361' 335000  014003'         SKIPGE  LPP             ;IF PAGE FULL\r
20084         002362' 254000  002365'         JRST    .+3             ;DON'T FINISH WITH EXTRA CR-LF\r
20085         002363' 402000  014003'         SETZM   LPP             ;ENSURE END OF PAGE\r
20086         002364' 260740  002303'         PUSHJ   PP,LOUT64\r
20087 \r
20088 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 45-1\r
20089 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20090 \r
20091         002365' 200240  013451'         MOVE    ARG,NCOLLS\r
20092         002366' 202240  013554'         MOVEM   ARG,SYMCNT      ;JUST IN CASE\r
20093         002367' 254000  002312'         JRST    LLUKP2\r
20094 \r
20095         002370' 377000  013554' LLUKP5: SOSG    SYMCNT  ;ON LAST COL?\r
20096         002371' 254000  002343'         JRST    LLUKP6\r
20097         002372' 335000  014003'         SKIPGE  LPP             ;IF PAGE FULL\r
20098         002373' 254000  002335'         JRST    LLUKP3          ;NO MORE OUTPUT \r
20099                                 REPEAT 2,<PUSHJ PP,OUTAB2>      ;NO, TAB OUT TO NEXT COLUMN\r
20100         002374' 260740  010570'\r
20101         002375' 260740  010570'\r
20102         002376' 254000  002335'         JRST    LLUKP3\r
20103 \r
20104 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 46\r
20105 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20106 \r
20107         002377' 260740  003111' SOUT1:  PUSHJ   PP,LOOKUP       ;SET FOR TABLE SCAN\r
20108         002400' 606240  400000          TRNN    ARG,SYMF\r
20109         002401' 606240  060000          TRNN    ARG,MACF!SYNF\r
20110         002402' 634540  000013          TDZA    MRP,MRP         ;SKIP AND CLEAR MRP\r
20111         002403' 263740  000000          POPJ    PP,             ;NO, TRY AGAIN\r
20112         002404' 602240  000400          TRNE    ARG,INTF\r
20113         002405' 201540  000001          MOVEI   MRP,1\r
20114                                 IFN WFWSW,<TRNE ARG,VARF        ;IF THIS FLAG IS ON SHOULD GO IN LOW SEG\r
20115                                         JRST    SOUT1W  >\r
20116         002406' 602240  001000          TRNE    ARG,EXTF\r
20117         002407' 211540  000001          MOVNI   MRP,1           ;MRP=-1 FOR EXTERNAL\r
20118         002410' 602240  040000          TRNE    ARG,SYNF        ;SYNONYM?\r
20119         002411' 321540  000455'         JUMPL   MRP,POPOUT      ;YES, DON'T OUTPUT IF EXTERNAL\r
20120         002412' 602240  000004          TRNE ARG,SUPRBT         ;IF SUPRESSED\r
20121                                 ;       JUMPGE MRP,POPOUT       ;DO NOT OUTPUT UNLESS EXTERNAL\r
20122         002413' 263740  000000          POPJ    PP,             ;DO NOT OUTPUT\r
20123         002414' 325540  002421'         JUMPGE  MRP,SOUT10      ;BRANCH IF NOT EXTERNAL\r
20124         002415' 554440  000006          HLRZ    RC,V            ;PUT POINTER/FLAGS IN RC\r
20125         002416' 602440  777776          TRNE    RC,-2           ;POINTER?\r
20126         002417' 204451  000000          MOVS    RC,0(RC)        ;YES\r
20127         002420' 500300  000011          HLL     V,RC            ;STORE LEFT VALUE\r
20128 \r
20129         002421' 261740  000011  SOUT10: PUSH PP,RC      ;SAVE FOR LATER\r
20130         002422' 201040  000000          MOVEI   AC1,0\r
20131         002423' 323540  002430'         JUMPLE  MRP,SOUT15      ;SET DEFFERRED BITS IF EXTERNAL\r
20132         002424' 603440  777776          TLNE    RC,-2           ;CHECK FOR LEFT FIXUP\r
20133         002425' 435040  000040          IORI    AC1,40          ;AND SET BITS\r
20134         002426' 602440  777776          TRNE    RC,-2           ;CHECK FOR RIGHT FIXUP\r
20135         002427' 435040  000020          IORI    AC1,20          ;AND SET BITS\r
20136                                 IFN WFWSW,<TRNE ARG,VARF        ;IF SO THEN DEFERD\r
20137                                         IORI AC1,20>\r
20138         002430' 603440  777776  SOUT15: TLNE RC,-2      ;FIX RELOC AS 0 IF EXTERNAL\r
20139         002431' 553000  000011          HRRZS RC\r
20140         002432' 602440  777776          TRNE RC,-2\r
20141         002433' 513000  000011          HLLZS RC\r
20142         002434' 623440  777777          TLZE RC,-1\r
20143         002435' 660440  000002          TRO RC,2\r
20144         002436' 504540  000011          HRL MRP,RC\r
20145         002437' 201440  000000          MOVEI RC,0\r
20146         002440' 602240  000200          TRNE    ARG,ENTF        ;ENTRY DMN\r
20147         002441' 541540  777773          HRRI    MRP,-5\r
20148         002442' 602240  100000          TRNE ARG,NOOUTF         ;SUPRESS OUTPUT? WFW\r
20149         002443' 271540  000003          ADDI MRP,3              ;YES WFW\r
20150         002444' 434053  002512'         IOR     AC1,SOUTC(MRP)\r
20151         002445' 200240  000001          MOVE ARG,AC1\r
20152         002446' 260740  002710'         PUSHJ   PP,NOUT2        ;SQUOZE AND DUMP THE SYMBOL\r
20153         002447' 202000  013551'         MOVEM AC0,SVSYM         ;SAVE IT\r
20154         002450' 200000  000006          MOVE    AC0,V           ;GET THE VALUE\r
20155         002451' 554440  000013          HLRZ    RC,MRP          ;AND THE RELOCATION\r
20156         002452' 260740  002724'         PUSHJ   PP,COUT\r
20157         002453' 262740  000011          POP PP,RC               ;GET BACK RELOC AND CHECK EXTERNAL\r
20158         002454' 606440  777776          TRNN RC,-2              ;IS IT?\r
20159         002455' 254000  002467'         JRST SOUT50             ;NO\r
20160 \r
20161 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 46-1\r
20162 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20163 \r
20164         002456' 200011  000001          MOVE AC0,1(RC)          ;GET NAME\r
20165                                 IFN WFWSW,<JUMPE AC0,[MOVSI AC0,200000  ;RIGHT DEFERED\r
20166                                                 PUSHJ PP,INVRSF ;INSERT IN SYMBOL INFORMATION\r
20167                                                 JRST SOUT50]>\r
20168         002457' 201240  000060          MOVEI ARG,60            ;EXTERNAL REQ\r
20169         002460' 260740  004770'         PUSHJ PP,SQOZE\r
20170         002461' 513000  000011          HLLZS RC        ;NO RELOC\r
20171         002462' 260740  002724'         PUSHJ PP,COUT   ;OUTPUT IT\r
20172         002463' 200000  013551'         MOVE AC0,SVSYM  ;GET SYMBOL NAME\r
20173         002464' 661000  500000          TLO AC0,500000  ;SET AS ADDITIVE SYMBOL\r
20174         002465' 621000  200000          TLZ AC0,200000  ;BUT NOT LEFT HALF ETC\r
20175         002466' 260740  002724'         PUSHJ PP,COUT\r
20176         002467' 207000  000011  SOUT50: MOVSS RC        ;CHECK LEFT HALF\r
20177         002470' 606440  777776          TRNN RC,-2\r
20178         002471' 254000  002502'         JRST SOUT60\r
20179         002472' 200011  000001          MOVE AC0,1(RC)\r
20180                                 IFN WFWSW,<JUMPE AC0,[MOVSI AC0,600000  ;LEFT DEFERED\r
20181                                                 PUSHJ PP,INVRSF\r
20182                                                 JRST SOUT60]>\r
20183         002473' 201240  000060          MOVEI ARG,60\r
20184         002474' 260740  004770'         PUSHJ PP,SQOZE\r
20185         002475' 201440  000000          MOVEI RC,0\r
20186         002476' 260740  002724'         PUSHJ PP,COUT\r
20187         002477' 200000  013551'         MOVE AC0,SVSYM\r
20188         002500' 661000  700000          TLO AC0,700000\r
20189         002501' 260740  002724'         PUSHJ PP,COUT\r
20190         002502' 263740  000000  SOUT60: POPJ    PP,\r
20191 \r
20192         002503' 260740  003060' SOUT20: PUSHJ PP,OUTAS0\r
20193         002504' 254000  010600'         JRST OUTCR\r
20194 \r
20195         002505' 426352  400004          <ASCII /ENT/>!04        ;DMN\r
20196         002506' 000000  000000          Z\r
20197         002507' 000000  000000          Z\r
20198         002510' 516131  600044          <ASCII /SEN/>!44        ;SUPRESSED ENTRY\r
20199         002511' 426612  400060          <ASCII /EXT/>!60\r
20200         002512' 000000  000010  SOUTC:  EXP     10\r
20201         002513' 446352  400004          <ASCII /INT/>!04\r
20202         002514' 526612  400060          <ASCII /UXT/>!60        ;UNDEFINED EXTERNAL\r
20203         002515' 516410  400050          <ASCII /SPD/>!50\r
20204         002516' 516231  600044          <ASCII /SIN/>!44        ;DMN\r
20205 \r
20206 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 47\r
20207 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20208 \r
20209                                 IFN WFWSW,<\r
20210                                 INVRSF: MOVEI ARG,3     ;GET A BLOCK\r
20211                                         ADDB ARG,FREE\r
20212                                         CAML ARG,SYMBOL\r
20213                                         PUSHJ PP,XCEEDS\r
20214                                         MOVEM AC0,(ARG) ;SAVE WHICH HALF INFO\r
20215                                         MOVE AC0,SVSYM  ;GET SYMBOL NAME\r
20216                                         TLZ AC0,740000  ;GET RID OF CODE BITS\r
20217                                         MOVEM AC0,-1(ARG)       ;SAVE IT\r
20218                                         HLRZ AC0,(RC)           ;SYMBOL TABLE FIXUP POINTER\r
20219                                         MOVEM AC0,-2(ARG)       ;LINK IN THIS BLOCK\r
20220                                         SUBI ARG,2      ;POINT TO START OF BLOCK\r
20221                                         HRLM ARG,(RC)\r
20222                                         POPJ PP,\r
20223                                 \r
20224                                 SOUT1W: HLRZS V         ;GET THE SYMBOL TABLE POINTER\r
20225                                         MOVEI RC,3      ;SET UP A NEW BLOCK FOR THIS SYMBOL\r
20226                                         ADDB RC,FREE\r
20227                                         CAML RC,SYMBOL\r
20228                                         PUSHJ PP,XCEEDS ;CHECK ON OUT OF ROOM\r
20229                                         PUSH PP,ARG     ;SAVE ARG AND ACO\r
20230                                         PUSH PP,AC0\r
20231                                         MOVEI ARG,0     ;NO CODE BITS\r
20232                                         PUSHJ PP,SQOZE  ;CONVERT TO RAD50\r
20233                                         MOVEM AC0,-1(RC)        ;SYMBOL NAME\r
20234                                         POP PP,AC0\r
20235                                         POP PP,ARG      ;RESTORE\r
20236                                         HRRZM V,-2(RC)  ;LINK TO NEXT BLOCK\r
20237                                         MOVSI V,200000  ;FLAG AS SYMBOL TABLE FIXUP\r
20238                                         MOVEM V,(RC)\r
20239                                         HRRZ V,(SX)     ;GET POINTER TO HEADER BLOCK\r
20240                                         SUBI RC,2       ;POINT TO HEAD OF BLOCK\r
20241                                         HRLM RC,(V)     ;PUT IN LINK TO NEW BLOCK\r
20242                                         MOVE RC,FIXLNK  ;ADD SYMBOL TO CHAIN OF ONES TO DO\r
20243                                         MOVEM SX,FIXLNK ;CHAIN THROUGH SYMBOL ENTRY\r
20244                                         MOVEM RC,-1(SX) ;WHICH IS NO LONGER NEEDED\r
20245                                         SETZB RC,V      ;PUT OUT 0 FOR SYMBOL VALUE\r
20246                                         JRST SOUT10>\r
20247 \r
20248 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 48\r
20249 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20250 \r
20251                                                                 ;OUTPUT THE BINARY\r
20252 \r
20253         002517' 524400  014000' BOUT:   HRLO    CS,LOCO         ;PICKUP THE LOCATION\r
20254         002520' 260740  003033'         PUSHJ   PP,ONC          ;OUTPUT IT TO THE LISTING FILE\r
20255         002521' 201340  000047          MOVEI   C,"'"\r
20256         002522' 332000  014006'         SKIPE   MODO            ;IF MODE IS NOT ABSOLUTE\r
20257         002523' 260740  010663'         PUSHJ   PP,OUTC         ;PRINT A SINGLE QUOTE\r
20258         002524' 260740  002776'         PUSHJ   PP,DSTOW        ;GET THE CODE\r
20259         002525' 261740  000011          PUSH PP,RC      ;SAVE RELOC\r
20260         002526' 261740  000011          PUSH    PP,RC   ;AND AGAIN\r
20261         002527' 603440  777776  IFE WFWSW,<TLNE RC,-2   ;CHECK LEFT EXTERNAL\r
20262         002530' 553000  000011          HRRZS RC        ;MAKE LEFT NON-RELOC>\r
20263                                 IFN WFWSW,<TLNE FR,RIMSW!RIM1SW!R1BSW   ;CHECK FOR SPECIAL BIN OUT\r
20264                                         JRST  BOUT30    ;AND LET HIM DISCOVER THE HORROR\r
20265                                         TLNN RC,-2      ;LEFT HALF EXTERNAL??\r
20266                                         JRST BOUT11     ;NO\r
20267                                         HLRZ AC1,RC     ;GET POINTER\r
20268                                         SKIPE 1(AC1)    ;IS IT SPECIAL LVAR KIND (NAME IS 0)\r
20269                                         JRST    [HRRZS RC\r
20270                                                 JRST BOUT11]    ;IGNORE FOR NOW\r
20271                                         PUSH PP,AC0     ;SAVE WORD\r
20272                                         HLRZS AC0       ;GET OFFSET\r
20273                                         PUSHJ PP,INCSRC ;FIND A MATCH OR INSERT NEW BLOCK\r
20274                                         ADDI AC1,1      ;POINT ONE FURTHER IN BLOCK\r
20275                                         PUSHJ PP,LVLINK ;AND SET INFORMATION\r
20276                                         POP PP,AC0\r
20277                                         HRLM RC,AC0     ;THE LINK\r
20278                                         HLLM RC,-1(PP)  ;AND ITS RELOC\r
20279                                         MOVE RC,-1(PP)  ;GET RELOC BACK\r
20280                                 BOUT11:>\r
20281         002531' 606440  777776          TRNN RC,-2      ;RIGHT EXT?\r
20282         002532' 254000  002553'         JRST BOUT30     ;NO\r
20283                                 IFN WFWSW,<HRRZ AC1,RC  ;GET POINTER\r
20284                                         SKIPE 1(AC1)\r
20285                                         JRST    [HRRZ AC1,AC0   ;ORDINARY EXTERNAL, HANDLE\r
20286                                                 JUMPE AC1,BOUT20\r
20287                                                 HLLZS RC        ;ADD EXTERNAL\r
20288                                                 JRST BOUT30]\r
20289                                         PUSH PP,AC0     ;SAVE WORD\r
20290                                         HRRZS AC0       ;GET OFFSET\r
20291                                         PUSHJ PP,INCSRC\r
20292                                         PUSHJ PP,LVLINK\r
20293                                         POP PP,AC0\r
20294                                         HRRM RC,AC0\r
20295                                         HLRM RC,-1(PP)\r
20296                                         MOVE RC,-1(PP)>\r
20297         002533' 550040  000000  IFE WFWSW,<HRRZ AC1,AC0 ;YES\r
20298         002534' 322040  002537'         JUMPE AC1,BOUT20        ;PROCESS IF ZERO CODE THERE\r
20299         002535' 513000  000011          HLLZS RC        ;MAKE NON-RELOC>\r
20300         002536' 254000  002553'         JRST BOUT30     ;PROCESS\r
20301 \r
20302 \r
20303 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 49\r
20304 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20305 \r
20306         002537'                 BOUT20:\r
20307         002537' 542057  777777          HRRM AC1,-1(PP) ;FIX RC IN STACK SO NO CONFUSION WFW (AC1 HAS 0)\r
20308         002540' 540011  000000          HRR     AC0,0(RC)       ;NO, SET ADDRESS LINK\r
20309         002541' 200040  014000'         MOVE    AC1,LOCO        ;GET CURRENT LOCATION\r
20310         002542' 542051  000000          HRRM    AC1,0(RC)       ;SET NEW LINK\r
20311         002543' 554051  000000          HLRZ    AC1,0(RC)       ;GET FLAGS/POINTER\r
20312         002544' 606040  777776          TRNN    AC1,-2          ;POINTER?\r
20313         002545' 540040  000011          HRR     AC1,RC          ;NO, SET TO FLAGS\r
20314         002546' 544441  000000          HLR     RC,0(AC1)       ;PUT FLAGS IN RC\r
20315         002547' 504040  014006'         HRL     AC1,MODO        ;GET CURRENT MODE\r
20316         002550' 622440  777776          TRZE    RC,-2           ;LEFT HALF RELOCATABLE+\r
20317         002551' 661040  000002          TLO     AC1,2           ;YES, SET FLAG\r
20318         002552' 502041  000000          HLLM    AC1,0(AC1)      ;STORE NEW FLAGS\r
20319         002553' 520400  000000  BOUT30: HLLO    CS,AC0\r
20320         002554' 623440  000001          TLZE    RC,1            ;PACK RELOCATION BITS\r
20321         002555' 660440  000002          TRO     RC,2\r
20322         002556' 602440  000002          TRNE    RC,2            ;LEFT HALF RELOCATABLE?\r
20323         002557' 620400  000001          TRZ     CS,1            ;YES, RESET BIT\r
20324         002560' 261740  000000          PUSH    PP,AC0          ;NEED AN AC\r
20325         002561' 554017  777777          HLRZ    AC0,-1(PP)      ;AC0 = LEFT RELOCATION\r
20326         002562' 303000  000001          CAILE   AC0,1           ;EXTERNAL?\r
20327         002563' 431400  001001          XORI    CS,EXTF!1       ;YES, SET SWITCH\r
20328 \r
20329 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 50\r
20330 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20331 \r
20332         002564' 262740  000000          POP     PP,AC0          ;RESTORE\r
20333         002565' 260740  003033'         PUSHJ   PP,ONC\r
20334         002566' 524400  000000          HRLO    CS,AC0\r
20335         002567' 630400  000011          TDZ     CS,RC           ;SET RELOCATION\r
20336         002570' 550357  000000          HRRZ    C,(PP)          ;C = RIGHT RELOCATION\r
20337         002571' 303340  000001          CAILE   C,1             ;EXTERNAL\r
20338         002572' 431400  001001          XORI    CS,EXTF!1       ;YES, SET SWITCH\r
20339         002573' 260740  003033'         PUSHJ   PP,ONC\r
20340         002574' 262740  000010  BOUT3I: POP     PP,CS           ;GET RID OF ENTRY ON STACK\r
20341         002575' 550400  014000'         HRRZ    CS,LOCO\r
20342         002576' 603640  004500          TLNE    FR,RIMSW!RIM1SW!R1BSW   ;RIM OUTPUT?\r
20343         002577' 254000  010360'         JRST    ROUT            ;YES, GO PROCESS\r
20344 \r
20345         002600' 504400  014006'         HRL     CS,MODO\r
20346         002601' 312400  014005'         CAME    CS,MODLOC       ;SEQUENCE OR RELOCATION BREAK?\r
20347         002602' 260740  002731'         PUSHJ   PP,COUTD        ;YES, DUMP THE BUFFER\r
20348         002603' 331000  013350'         SKIPL   COUTX           ;NEW BUFFER?\r
20349         002604' 254000  002613'         JRST    BOUT40          ;NO, STORE CODE AND EXIT\r
20350         002605' 202400  014005'         MOVEM   CS,MODLOC       ;YES, STORE NEW VALUES\r
20351         002606' 250000  014000'         EXCH    AC0,LOCO\r
20352         002607' 250440  014006'         EXCH    RC,MODO\r
20353         002610' 260740  002724'         PUSHJ   PP,COUT         ;STORE BLOCK LOCATION AND MODE\r
20354         002611' 250440  014006'         EXCH    RC,MODO         ;RESTORE CURRENT VALUES\r
20355         002612' 250000  014000'         EXCH    AC0,LOCO\r
20356 \r
20357 \r
20358 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 51\r
20359 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20360 \r
20361         002613' 260740  002724' BOUT40: PUSHJ PP,COUT   ;EMIT CODE\r
20362         002614' 262740  000011          POP PP,RC       ;RETRIEVE EXTERNAL BITS\r
20363         002615' 606440  777776          TRNN RC,-2      ;RIGHT EXTERNAL?\r
20364         002616' 254000  002640'         JRST BOUT50     ;TRY FOR LEFT\r
20365         002617' 260740  002731'         PUSHJ PP,COUTD\r
20366         002620' 261740  013347'         PUSH PP,BLKTYP  ;TERMINATE TYPE AND SAVE\r
20367         002621' 201000  000002          MOVEI AC0,2     ;BLOCK TYPE 2\r
20368         002622' 202000  013347'         MOVEM AC0,BLKTYP\r
20369         002623' 200011  000001          MOVE AC0,1(RC)  ;GET SYMBOL\r
20370         002624' 201240  000060          MOVEI ARG,60    ;CODE BITS\r
20371         002625' 260740  004770'         PUSHJ PP,SQOZE  ;CONVERT TO RADIX 50\r
20372         002626' 513000  000011          HLLZS RC        ;SYMBOL HAS NO RELOCATION\r
20373         002627' 260740  002724'         PUSHJ PP,COUT   ;EMIT\r
20374         002630' 200000  014000'         MOVE AC0,LOCO   ;GET CURRENT LOC\r
20375         002631' 505000  400000          HRLI AC0,400000 ;ADDITIVE REQ\r
20376         002632' 540440  014006'         HRR RC,MODO     ;CURRENT MODE\r
20377         002633' 260740  002724'         PUSHJ PP,COUT   ;EMIT\r
20378         002634' 207000  000011          MOVSS RC        ;NOW FOR LEFT\r
20379         002635' 606440  777776          TRNN RC,-2\r
20380         002636' 254000  002660'         JRST BOUT60\r
20381         002637' 254000  002647'         JRST BOUT70\r
20382         002640' 207000  000011  BOUT50: MOVSS RC        ;CHECK OTHER HALF\r
20383         002641' 606440  777776          TRNN RC,-2              ;LEFT HALF EXTERNAL?\r
20384         002642' 254000  002662'         JRST BOUT80     ;NO, FALSE ALARM\r
20385         002643' 260740  002731'         PUSHJ PP,COUTD  ;CHANGE MODE\r
20386         002644' 261740  013347'         PUSH PP,BLKTYP\r
20387         002645' 201000  000002          MOVEI AC0,2\r
20388         002646' 202000  013347'         MOVEM AC0,BLKTYP\r
20389         002647' 200011  000001  BOUT70: MOVE AC0,1(RC)\r
20390         002650' 201240  000060          MOVEI ARG,60\r
20391         002651' 260740  004770'         PUSHJ PP,SQOZE\r
20392         002652' 513000  000011          HLLZS RC\r
20393         002653' 260740  002724'         PUSHJ PP,COUT\r
20394         002654' 200000  014000'         MOVE AC0,LOCO\r
20395         002655' 505000  600000          HRLI AC0,600000 ;LEFT HALF ADD\r
20396         002656' 540440  014006'         HRR RC,MODO\r
20397         002657' 260740  002724'         PUSHJ PP,COUT   ;EMIT\r
20398         002660' 260740  002731' BOUT60: PUSHJ PP,COUTD  ;CHANGE MODE\r
20399         002661' 262740  013347'         POP PP,BLKTYP   ;TO OLD ONE\r
20400         002662' 350000  014000' BOUT80: AOS LOCO\r
20401         002663' 350000  014005'         AOS MODLOC\r
20402         002664' 263740  000000          POPJ PP,\r
20403 \r
20404 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 52\r
20405 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20406 \r
20407                                 IFN WFWSW,<\r
20408                                 INCSC1: HLRZ RC,(AC1)   ;GET OFFSET OF NEXT BLOCK\r
20409                                         CAMN RC,AC0     ;IS IT THE SAME??\r
20410                                         POPJ PP,        ;YES, RETURN AC1 POINTS TO BLOCK\r
20411                                 INCSRC: MOVE RC,AC1     ;CURRENT POINTER\r
20412                                         HRRZ AC1,(AC1)  ;IN CASE THIS COMES UP 0\r
20413                                         JUMPN AC1,INCSC1        ;SINCE 0 IS END OF CHAIN. ANY MORE??\r
20414                                         MOVEI AC1,3     ;NO, GET A NEW BLOCK\r
20415                                         ADDB AC1,FREE\r
20416                                         CAML AC1,SYMBOL\r
20417                                         PUSHJ PP,XCEED\r
20418                                         SUBI AC1,2      ;WE MUST BE POINTING RIGHT WHEN WE GET OUT\r
20419                                         HRRM AC1,(RC)   ;INSERT WHERE END OF CHAIN WAS\r
20420                                         HRLZM AC0,(AC1) ;SET OFFSET AND END OF CHAIN\r
20421                                         SETZM 1(AC1)\r
20422                                         SETZM 2(AC1)    ;NO LEFT OR RIGHT HALF FIXUPS\r
20423                                         POPJ PP,        ;DONE\r
20424                                 \r
20425                                 LVLINK: MOVE RC,LOCO    ;GET CURRENT LOCATION\r
20426                                         HRL RC,MODO     ;AND MODE\r
20427                                         EXCH RC,1(AC1)  ;PUT IN AND GET PLACE TO LINK TO\r
20428                                         POPJ PP,>\r
20429 \r
20430 \r
20431 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 53\r
20432 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20433 \r
20434         002665' 200300  014676' NOUT:   MOVE    V,[POINT 7,TBUF]        ;POINTER TO ASCII LINE\r
20435         002666' 205400  440600          MOVSI   CS,(POINT 6,AC0)        ;POINTER TO SIXBIT AC0\r
20436         002667' 403240  000000          SETZB   ARG,AC0\r
20437         002670' 134340  000006  NOUT1:  ILDB    C,V             ;GET ASCII\r
20438         002671' 301340  000141          CAIL C,"A"+40\r
20439         002672' 303340  000172          CAILE C,"Z"+40\r
20440         002673' 254000  002675'         JRST    .+2\r
20441         002674' 624340  000100          TRZA    C,100           ;LOWER CASE TO SIXBIT\r
20442         002675' 275340  000040          SUBI    C,40            ;CONVERT TO SIXBIT\r
20443         002676' 323340  002704'         JUMPLE  C,NOUT3         ;TEST FORM NON-SIXBIT\r
20444         002677' 303340  000077          CAILE   C,77            ;AND NOT GREATER THAN SIXBIT\r
20445         002700' 254000  002704'         JRST    NOUT3           ;...\r
20446         002701' 136340  000010          IDPB    C,CS            ;DEPOSIT IN AC0\r
20447         002702' 603400  770000          TLNE    CS,770000       ;TEST FOR SIX CHARACTERS\r
20448         002703' 254000  002670'         JRST    NOUT1           ;NO, GET ANOTHER\r
20449         002704' 335000  013733' NOUT3:  SKIPGE  UNIVSN          ;IF A UNIVERSAL PROG\r
20450         002705' 263740  000000          POPJ    PP,             ;RETURN TO PUT IT IN THE TABLE\r
20451 \r
20452         002706' 607600  000002  IFN CCLSW,<     TLNN IO,IOTLSN  ;AND IF WE HAVE NOT SEEN A TITLE\r
20453         002707' 260740  004326'         PUSHJ PP,PRNAM  ;THEN PRINT THE NAME>\r
20454         002710' 260740  004770' NOUT2:  PUSHJ   PP,SQOZE        ;CONVERT TO SIXBIT\r
20455         002711' 254000  002724'         JRST    COUT            ;DUMP AND EXIT\r
20456 \r
20457         002712'                 HOUT:\r
20458         002712' 201440  000001          MOVEI   RC,1            ;RELOCATABLE\r
20459                                 IFN RENTSW,<\r
20460                                         MOVE    AC0,HHIGH       ;GET HIGH SEG IF TWO SEGMENTS\r
20461                                         JUMPE   AC0,.+2         ;NOT TWO SEGMENTS\r
20462                                         PUSHJ   PP,COUT         ;OUTPUT IT >\r
20463         002713' 200000  013735'         MOVE    AC0,HIGH\r
20464                                 IFN RENTSW,<\r
20465                                         SKIPE   HHIGH           ;ANY TWOSEG HIGH STUFF\r
20466                                         JRST    COUT            ;YES,SO NO ABS.>\r
20467         002714' 260740  002724'         PUSHJ   PP,COUT         ;OUTPUT THE HIGHEST LOCATION\r
20468         002715' 200000  013734'         MOVE AC0,ABSHI\r
20469                                                                 ;PUT OUT ABS PORTION OF PROGRAM BREAK\r
20470         002716' 364440  002724'         SOJA    RC,COUT         ;OUTPUT A WORD OF ZERO AND EXIT\r
20471 \r
20472 \r
20473 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 54\r
20474 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20475 \r
20476                                 IFN RENTSW,<\r
20477                                 HSOUT:  SETZM   HISNSW          ;CLEAR FOR PASS2\r
20478                                         MOVE    AC0,SVTYP3      ;GET HISEG ARG\r
20479                                         JUMPGE  AC0,.+4         ;JUMP IF ONLY HISEG\r
20480                                         HRL     AC0,HIGH1       ;GET BREAK FROM PASS 1\r
20481                                         JUMPL   AC0,.+2         ;OK IF GREATER THAN 400000\r
20482                                         HRLS    AC0             ;SIGNAL TWO SEGMENT TO LOADER\r
20483                                         MOVEI   RC,1            ;ASSUME RELOCATABLE\r
20484                                         JRST    COUT            ;OUTPUT THE WORD>\r
20485 \r
20486         002717' 336440  014052' VOUT:   SKIPN   RC,VECREL       ;IS VECTOR ABSOLUTE ZERO?\r
20487         002720' 332000  014053'         SKIPE   VECTOR          ;ALSO CHECK RELOCATION\r
20488         002721' 254000  002723'         JRST    .+2\r
20489         002722' 263740  000000          POPJ    PP,             ;YES, EXIT\r
20490         002723' 200000  014053'         MOVE    AC0,VECTOR      ;AC0 SHOULD BE FLAGS\r
20491 \r
20492         002724' 350340  013350' COUT:   AOS     C,COUTX         ;INCREMENT INDEX\r
20493         002725' 202007  013354'         MOVEM   AC0,COUTDB(C)   ;STORE CODE\r
20494         002726' 136440  013352'         IDPB    RC,COUTP        ;STORE RELOCATION BITS\r
20495         002727' 302340  000021          CAIE    C,^D17          ;IS THE BUFFER FULL?\r
20496         002730' 263740  000000          POPJ    PP,             ;NO, EXIT\r
20497 \r
20498         002731' 357340  013350' COUTD:  AOSG    C,COUTX         ;DUMP THE BUFFER\r
20499         002732' 254000  002743'         JRST    COUTI           ;BUFFER WAS EMPTY\r
20500         002733' 504340  013347'         HRL     C,BLKTYP        ;SET BLOCK TYPE\r
20501         002734' 260740  010404'         PUSHJ   PP,OUTBIN       ;OUTPUT COUNT AND TYPE\r
20502         002735' 477340  013351'         SETOB   C,COUTY         ;INITIALIZE INDEX\r
20503 \r
20504         002736' 200347  013354' COUTD2: MOVE    C,COUTDB(C)     ;GET RELOCATION BITS/CODE\r
20505         002737' 260740  010404'         PUSHJ   PP,OUTBIN       ;DUMP IT\r
20506         002740' 350340  013351'         AOS     C,COUTY         ;INCREMENT INDEX\r
20507         002741' 315340  013350'         CAMGE   C,COUTX         ;TEST FOR END\r
20508         002742' 254000  002736'         JRST    COUTD2          ;NO, GET NEXT WORD\r
20509 \r
20510         002743' 476000  013350' COUTI:  SETOM   COUTX           ;INITIALIZE BUFFER INDEX\r
20511         002744' 402000  013353'         SETZM   COUTRB          ;ZERO RELOCATION BITS\r
20512         002745' 200340  014677'         MOVE    C,[POINT 2,COUTRB]\r
20513         002746' 202340  013352'         MOVEM   C,COUTP         ;INITIALIZE BIT POINTER\r
20514         002747' 263740  000000          POPJ    PP,             ;EXIT\r
20515 \r
20516 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 55\r
20517 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20518 \r
20519         002750'                 STOWZ1:\r
20520         002750' 201440  000000  STOWZ:  MOVEI   RC,0\r
20521         002751'                 STOW:\r
20522         002751' 321640  002763'         JUMP1   STOW20          ;SKIP TEST IF PASS ONE\r
20523         002752' 602440  777776          TRNE    RC,-2           ;RIGHT HALF ZERO OR 1?\r
20524         002753' 260740  003021'         PUSHJ   PP,STOWT        ;NO, HANDLE EXTERNAL\r
20525         002754' 607440  777776          TLNN    RC,-2           ;LEFT HALF ZERO OR 1? WFW\r
20526         002755' 254000  002761'         JRST    STOW10          ;YES, SKIP TEST\r
20527         002756' 207000  000011          MOVSS   RC              ;SWAP HALVES\r
20528         002757' 260740  003026'         PUSHJ   PP,STOWT1       ;HANDLE EXTERNAL WFW\r
20529         002760' 207000  000011          MOVSS   RC              ;RESTORE VALUES\r
20530 \r
20531         002761' 332000  013742' STOW10: SKIPE   EXTPNT          ;ANY EXTERNALS REMAINING?\r
20532         002762' 660600  000040          TRO     ER,ERRE         ;YES, SET EXTERNAL ERROR FLAG\r
20533 \r
20534         002763' 350040  013555' STOW20: AOS     AC1,STPX        ;INCREMENT POINTER\r
20535         002764' 202001  013557'         MOVEM   AC0,STCODE(AC1) ;STOW CODE\r
20536         002765' 202441  013627'         MOVEM   RC,STOWRC(AC1)  ;STOW RELOCATION BITS\r
20537         002766' 336000  013773'         SKIPN   LITLVL          ;ARE WE IN LITERAL?\r
20538         002767' 350000  013777'         AOS     LOCA            ;NO, INCREMENT ASSEMBLY LOCATION\r
20539         002770' 305040  000047          CAIGE   AC1,.STP-1      ;OVERFLOW?\r
20540         002771' 263740  000000          POPJ    PP,             ;NO, EXIT\r
20541 \r
20542         002772' 332000  013773'         SKIPE   LITLVL          ;ARE WE IN A LITERAL?\r
20543         002773' 664600  010000          TROA    ER,ERRL         ;YES, FLAG ERROR BUT DON'T DUMP\r
20544         002774' 254000  001453'         JRST    CHARL1          ;NO, SAVE REGISTERS AND DUMP THE BUFFER\r
20545         002775' 254000  003003'         JRST    STOWI           ;INITIALIZE BUFFER\r
20546 \r
20547         002776' 350040  013556' DSTOW:  AOS     AC1,STPY        ;INCREMENT POINTER\r
20548         002777' 200001  013557'         MOVE    AC0,STCODE(AC1) ;FETCH CODE\r
20549         003000' 200441  013627'         MOVE    RC,STOWRC(AC1)  ;FETCH RELOCATION BITS\r
20550         003001' 315040  013555'         CAMGE   AC1,STPX        ;IS THIS THE END?\r
20551         003002' 263740  000000          POPJ    PP,             ;NO, EXIT\r
20552 \r
20553         003003' 476000  013555' STOWI:  SETOM   STPX            ;INITIALIZE FOR INPUT\r
20554         003004' 476000  013556'         SETOM   STPY            ;INITIALIZE FOR OUTPUT\r
20555         003005' 402000  013742'         SETZM   EXTPNT\r
20556         003006' 263740  000000          POPJ    PP,             ;EXIT\r
20557 \r
20558 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 56\r
20559 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20560 \r
20561         003007' 350000  013773' SVSTOW: AOS     LITLVL          ;NESTED LITERALS\r
20562         003010' 261740  013555'         PUSH    PP,STPX         ;MAKE ROOM FOR ANOTHER\r
20563         003011' 261740  013556'         PUSH    PP,STPY\r
20564         003012' 200040  013555'         MOVE    AC1,STPX\r
20565         003013' 202040  013556'         MOVEM   AC1,STPY\r
20566         003014' 254002  000000          JRST    0(AC2)\r
20567 \r
20568         003015' 262740  013556' GTSTOW: POP     PP,STPY         ;BACK UP A LEVEL\r
20569         003016' 262740  013555'         POP     PP,STPX\r
20570         003017' 370000  013773'         SOS     LITLVL\r
20571         003020' 254002  000000          JRST    0(AC2)\r
20572 \r
20573                                         ;EXTERNAL RIGHT\r
20574         003021' 550040  013742' STOWT:  HRRZ    AC1,EXTPNT      ;GET RIGHT POINTER\r
20575         003022' 302051  000000          CAIE    AC1,(RC)        ;DOES IT MATCH \r
20576         003023' 260740  004041'         PUSHJ   PP,QEXT         ;EXTERNAL OR RELOCATION ERROR\r
20577         003024' 513000  013742'         HLLZS   EXTPNT\r
20578         003025' 263740  000000          POPJ    PP,             ;EXIT\r
20579 \r
20580                                         ;EXTERNAL LEFT\r
20581         003026' 554040  013742' STOWT1: HLRZ    AC1,EXTPNT      ;GET LEFT HALF\r
20582         003027' 302051  000000          CAIE    AC1,(RC)        ;SEE ABOVE\r
20583         003030' 260740  004041'         PUSHJ   PP,QEXT\r
20584         003031' 553000  013742'         HRRZS   EXTPNT\r
20585         003032' 263740  000000          POPJ    PP,             ;EXIT\r
20586 \r
20587 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 57\r
20588 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20589 \r
20590         003033' 134340  013677' ONC:    ILDB    C,TABP          ;ENTRY TO ADVANCE TAB POINTER\r
20591         003034' 260740  010607'         PUSHJ   PP,OUTL         ;OUTPUT A TAB\r
20592                                                                 ;OUTPUT 6 OCT NUMBERS FROM CS LEFT\r
20593         003035' 201340  000006  ONC1:   MOVEI   C,6             ;CONVERT TO ASCII\r
20594         003036' 246340  000003          LSHC    C,3             ;SHIFT IN OCTAL\r
20595         003037' 260740  010607'         PUSHJ   PP,OUTL         ;OUTPUT ASCII FROM C\r
20596         003040' 602400  777777          TRNE    CS,-1           ;ARE WE THROUGH?\r
20597         003041' 254000  003035'         JRST    ONC1            ;NO, GET ANOTHER\r
20598         003042' 201340  000000          MOVEI   C,0             ;CLEAR C\r
20599         003043' 607400  000001          TLNN    CS,1            ;RELOCATABLE?\r
20600         003044' 201340  000047          MOVEI   C,"'"           ;YES\r
20601         003045' 607400  001000          TLNN    CS,EXTF         ;OR EXTERNAL\r
20602         003046' 201340  000052          MOVEI   C,"*"           ;YES\r
20603         003047' 326340  010663' ONC2:   JUMPN   C,OUTC          ;OUTPUT IF EXTERN OR RELOCATABLE\r
20604         003050' 263740  000000          POPJ    PP,             ;EXIT\r
20605 \r
20606         003051' 231340  000012  DNC:    IDIVI   C,^D10\r
20607         003052' 506417  000000          HRLM    CS,0(PP)\r
20608         003053' 322340  003055'         JUMPE   C,.+2\r
20609         003054' 260740  003051'         PUSHJ   PP,DNC          ;RECURSE IF NON-ZERO\r
20610         003055' 554357  000000          HLRZ    C,0(PP)\r
20611         003056' 271340  000060          ADDI    C,"0"           ;FORM ASCII\r
20612         003057' 254000  010572'         JRST    PRINT           ;DUMP AND TEST FOR END\r
20613 \r
20614         003060' 505400  440700  OUTAS0: HRLI    CS,(POINT 7,,)  ;ENTRY TO SET POINTER\r
20615         003061' 134340  000010  OUTASC: ILDB    C,CS            ;GET NEXT BYTE\r
20616         003062' 322340  000455'         JUMPE   C,POPOUT        ;EXIT ON ZERO DELIMITER\r
20617         003063' 260740  010572'         PUSHJ   PP,PRINT\r
20618         003064' 254000  003061'         JRST    OUTASC\r
20619 \r
20620         003065' 505400  440600  OUTSIX: HRLI    CS,(POINT 6,,)  ;OUTPUT SIXBIT\r
20621         003066' 134340  000010          ILDB    C,CS            ;GET SIXBIT\r
20622         003067' 306340  000040          CAIN    C,40            ;"@" DELIMITER?\r
20623         003070' 263740  000000          POPJ    PP,             ;YES, EXIT\r
20624         003071' 271340  000040          ADDI    C,40            ;NO, FORM ASCII\r
20625         003072' 260740  010607'         PUSHJ   PP,OUTL         ;OUTPUT ASCII CHAR FROM C\r
20626         003073' 254000  003066'         JRST    OUTSIX+1\r
20627 \r
20628         003074' 200400  000000  OUTSYM: MOVE    CS,AC0          ;PLACE NAME IN CS\r
20629         003075' 201340  000000  OUTSY1: MOVEI   C,0             ;CLEAR C\r
20630         003076' 246340  000006          LSHC    C,6             ;MOVE NEXT SIXBIT CHARACTER IN\r
20631         003077' 322340  010571'         JUMPE   C,OUTTAB        ;TEST FOR END\r
20632         003100' 271340  000040          ADDI    C,40            ;CONVERT TO ASCII\r
20633         003101' 260740  010607'         PUSHJ   PP,OUTL         ;OUTPUT\r
20634         003102' 254000  003075'         JRST    OUTSY1          ;LOOP\r
20635 \r
20636 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 58\r
20637 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20638 \r
20639         003103' 350217  000000  OUTSET: AOS     SX,0(PP)        ;GET RETURN LOCATION\r
20640         003104' 200204  777777          MOVE    SX,-1(SX)       ;GET XWD CODE\r
20641         003105' 546200  013347'         HLRM    SX,BLKTYP       ;SET BLOCK TYPE\r
20642         003106' 403240  000011          SETZB   ARG,RC\r
20643         003107' 260744  000000          PUSHJ   PP,0(SX)        ;GO TO PRESCRIBED ROUTINE\r
20644         003110' 254000  002731'         JRST    COUTD           ;TERMINATE BLOCK AND EXIT\r
20645 \r
20646                                         ;LOOKUP SCANS ALL THE SYMBOLS IN THE SYMBOL TABLE\r
20647 \r
20648         003111' 262740  013510' LOOKUP: POP     PP,LOOKX        ;INTERCEPT RETURN POP\r
20649         003112' 200200  013552'         MOVE    SX,SYMBOL\r
20650         003113' 200144  000000          MOVE    SDEL,0(SX)      ;SET FOR TABLE SCAN\r
20651         003114' 361140  000455' LOOKL:  SOJL    SDEL,POPOUT     ;TEST FOR END\r
20652         003115' 271200  000002          ADDI    SX,2\r
20653         003116' 200004  777777          MOVE    AC0,-1(SX)\r
20654         003117' 260740  012740'         PUSHJ   PP,SRCH7        ;LOAD REGISTERS\r
20655         003120' 557000  000005          HLRZS   ARG\r
20656         003121' 260760  013510'         PUSHJ   PP,@LOOKX       ;RETURN TO CALLING ROUTINE\r
20657         003122' 254000  003114'         JRST    LOOKL           ;TRY AGAIN\r
20658 \r
20659 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 59\r
20660 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20661 \r
20662         003123' 260740  001066' END0:   PUSHJ   PP,EVALCM       ;GET A WORD\r
20663         003124' 332000  013742'         SKIPE   EXTPNT          ;ANY EXTERNALS?\r
20664         003125' 660600  000040          TRO     ER,ERRE         ;YES, ERROR\r
20665         003126' 336300  000000          SKIPN   V,AC0           ;NON-ZERO?\r
20666         003127' 322440  003131'         JUMPE   RC,.+2          ;OR RELOC?\r
20667         003130' 260740  004116'         PUSHJ   PP,ASSIG7       ;YES, LIST THE VALUE\r
20668         003131' 202000  014053'         MOVEM   AC0,VECTOR\r
20669         003132' 202440  014052'         MOVEM   RC,VECREL\r
20670         003133' 260740  003551'         PUSHJ   PP,VARA         ;FILL OUT SELF-DEFINED VARIABLES\r
20671         003134' 260740  000236'         PUSHJ   PP,STOUTS       ;DUMP THE LINE\r
20672         003135' 261740  000014          PUSH    PP,IO           ;SAVE FLAGS\r
20673         003136' 661600  040000          TLO     IO,IOPROG       ;XLIST LITS\r
20674         003137' 260740  003456'         PUSHJ   PP,LIT1\r
20675         003140' 262740  000014          POP     PP,IO           ;GET FLAG BACK\r
20676         003141' 325640  003216'         JUMP2   ENDP2\r
20677 \r
20678         003142' 260740  002074'         PUSHJ   PP,UOUT\r
20679         003143' 607600  000010          TLNN    IO,MFLSW        ;SKIP IF ONLY PSEND\r
20680         003144' 260740  007437'         PUSHJ   PP,REC2\r
20681         003145' 200000  013343'         MOVE    INDIR           ;SET UP FIRST AS LAST\r
20682         003146' 202000  013207'         MOVEM   LSTFIL          ;PRINTED\r
20683         003147' 402000  014102'         SETZM   LSTPGN\r
20684         003150' 260740  003356'         PUSHJ   PP,INZ\r
20685         003151' 603600  000010          TLNE    IO,MFLSW        ;IF PSEND\r
20686         003152' 263740  000000          POPJ    PP,             ;BACK TO PSEND0\r
20687         003153' 332000  013731'         SKIPE   PRGPTR          ;HAVE ANY PRGEND'S BEEN SEEN\r
20688         003154' 254000  005027'         JRST    PSEND3          ;YES,GO SET UP AGAIN\r
20689 \r
20690         003155' 402000  013740' PASS20: SETZM   CTLSAV\r
20691         003156' 260740  002743'         PUSHJ   PP,COUTI\r
20692         003157' 260740  002130'         PUSHJ   PP,EOUT         ;OUTPUT THE ENTRIES\r
20693         003160' 260740  003103'         PUSHJ   PP,OUTSET\r
20694         003161' 000006  002665'         XWD     6,NOUT          ;OUTPUT THE NAME (BLKTYP-6)\r
20695                                 IFN RENTSW,<\r
20696                                         SKIPN   HISNSW          ;PUT OUT BLOCK TYPE 3?\r
20697                                         JRST    PASS21          ;NO\r
20698                                         PUSHJ   PP,OUTSET\r
20699                                         XWD     3,HSOUT         ;OUTPUT THE HISEG BLOCK\r
20700                                 PASS21: >\r
20701         003162' 201000  000001          MOVEI   1\r
20702         003163' 542000  013347'         HRRM    BLKTYP          ;SET FOR TYPE 1 BLOCK\r
20703         003164' 621640  400000          TLZ     FR,P1           ;SET FOR PASS 2 AND TURN OFF FLAG\r
20704         003165' 661600  004000          TLO     IO,IOPALL       ;PUT THESE BACK\r
20705         003166' 621600  040440          TLZ     IO,IOPROG!IOCREF!DEFCRS ;SO LISTINGS WILL BE THE WAY THEY SHOULD\r
20706         003167' 607640  004000          TLNN    FR,R1BSW\r
20707         003170' 254000  003003'         JRST    STOWI\r
20708         \r
20709         003171' 200400  014700'         MOVE CS,[XWD $ST-1-$CKSM,R1BLDR]\r
20710         003172' 200350  000000          MOVE C,0(CS)\r
20711         003173' 260740  010405'         PUSHJ PP,PTPBIN\r
20712         003174' 253400  003172'         AOBJN CS,.-2\r
20713         003175' 260740  010465'         PUSHJ   PP,R1BI\r
20714         003176' 254000  003003'         JRST    STOWI\r
20715 \r
20716 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 60\r
20717 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20718 \r
20719         \r
20720         003177'                 R1BLDR:\r
20721         000000                          PHASE 0\r
20722         003177' 777762  000000          IOWD $ADR,$ST\r
20723         003200' 710600  000060  $ST:    CONO PTR,60\r
20724         003201' 541400  000004          HRRI $A,$RD+1\r
20725         003202' 710740  000010  $RD:    CONSO PTR,10\r
20726         003203' 254000  000003          JRST .-1\r
20727         003204' 710470  000007          DATAI PTR,@$TBL1-$RD+1($A)\r
20728         003205' 256010  000007          XCT $TBL1-$RD+1($A)\r
20729         003206' 256010  000012          XCT $TBL2-$RD+1($A)\r
20730         003207' 364400  000000  $A:     SOJA $A,\r
20731         003210' 312740  000016  $TBL1:  CAME $CKSM,$ADR\r
20732         003211' 270756  000001          ADD $CKSM,1($ADR)\r
20733         003212' 331740  000016          SKIPL $CKSM,$ADR\r
20734         003213' 254200  000001  $TBL2:  JRST 4,$ST\r
20735         003214' 253700  000003          AOBJN $ADR,$RD\r
20736         003215' 254000  000002  $ADR:   JRST $ST+1\r
20737         000017                  $CKSM:  \r
20738         003216'                         DEPHASE\r
20739 \r
20740                                 IF2,<   PURGE $ST,$RD,$A,$TBL1,$TBL2,$ADR,$CKSM>\r
20741 \r
20742 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 61\r
20743 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20744 \r
20745         003216' 260740  002731' ENDP2:  PUSHJ   PP,COUTD        ;DUMP THE BUFFER\r
20746         003217' 200000  014000'         MOVE    AC0,LOCO        ;CHECK TO SEE IF LIT DIFFERED\r
20747         003220' 336000  014006'         SKIPN   MODO            ;AND USE SMALLER SINCE AT END\r
20748                                         JRST    [CAMN   AC0,ABSHI\r
20749                                                 HRRZM   AC2,ABSHI\r
20750         003221' 254000  014701'                 JRST    ENDP2W]\r
20751                                 IFN RENTSW,<SKIPE HHIGH         ;SKIP IF NOT TWO SEGMENTS\r
20752                                         JRST    [CAMN   AC0,HHIGH\r
20753                                                 HRRZM   AC2,HHIGH\r
20754                                                 JRST    ENDP2W]>\r
20755         003222' 316000  013735'         CAMN    AC0,HIGH\r
20756         003223' 552100  013735'         HRRZM   AC2,HIGH\r
20757         003224'                 ENDP2W:\r
20758         003224' 603600  000400  REPEAT 1,<TLNE  IO,IOCREF       ;CLOSE CREF IF NECESSARY>\r
20759                                 REPEAT 0,<TLNE FR,CREFSW        ;IF CREFFING\r
20760                                         JRST ENDP2Q\r
20761                                         MOVEI SDEL,0\r
20762                                         PUSH PP,DBUF+3  ;SO NO PAGE INFO\r
20763                                         DPB SDEL,[POINT 7,DBUF+3,13]\r
20764                                         IOR ER,OUTSW    ;MAKE SURE OF OUTPUT\r
20765                                         PUSHJ PP,CREF\r
20766                                         MOVEI C,20      ;CODE FOR TITLE\r
20767                                         PUSHJ PP,OUTLST\r
20768                                         PUSH PP,IO      ;SAVE THIS\r
20769                                         TLZ IO,IOPAGE   ;AND PREVENT PAGE DURING TITLE\r
20770                                         MOVEI CS,TBUF\r
20771                                         PUSHJ PP,OUTAS0\r
20772                                         MOVEI CS,VBUF\r
20773                                         PUSHJ PP,OUTAS0\r
20774                                         POP PP,IO       ;RESTORE THE IO WORD\r
20775                                         POP PP,DBUF+3   >       ;NEEDS FIX TO CREF\r
20776         003225' 260740  012676'         PUSHJ   PP,CLSCR2       ;CLOSE IT UP\r
20777         003226' 540600  013512' ENDP2Q: HRR     ER,OUTSW        ;SET OUTPUT SWITCH\r
20778         003227' 336000  013727'         SKIPN   TYPERR\r
20779         003230' 660600  000001          TRO     ER,TTYSW\r
20780         003231' 260740  002074'         PUSHJ   PP,UOUT         ;OUTPUT UNDEFINEDS\r
20781         003232' 660600  000001          TRO     ER,TTYSW\r
20782         003233' 051540  000007          SKPINC  C       ;SEE IF WE CAN INPUT A CHAR.\r
20783         003234' 255000  000000            JFCL          ;BUT ONLY TO DEFEAT ^O\r
20784         003235' 337340  013376'         SKIPG C,ERRCNT  ;GET ERROR COUNT AND CHECK FOR POSITIVE\r
20785         003236' 254000  003254'         JRST NOERW      ;PRINT NO ERROR MESSAGE\r
20786         003237' 272340  000000* IFN CCLSW,<ADDM C,JOBERR        ;REMEMBER ERROR COUNT FOR EXECUTION DELETION>\r
20787         003240' 260740  010600'         PUSHJ PP,OUTCR\r
20788         003241' 200340  013376'         MOVE C,ERRCNT\r
20789         003242' 306340  000001          CAIN C,1        ;1 IS A SPECIAL CASE\r
20790         003243' 254000  003251'         JRST ONERW      ;PRINT MESSAGE\r
20791         003244' 201340  000077          MOVEI   C,"?"           ;? FOR BATCH\r
20792         003245' 260740  010607'         PUSHJ   PP,OUTL         ;...\r
20793         003246' 200340  013376'         MOVE C,ERRCNT   ;PRINT NUMBER OF ERRORS\r
20794         003247' 260740  003051'         PUSHJ PP,DNC\r
20795         003250' 334400  014704'         SKIPA CS,[EXP ERRMS1]   ;LOAD TO PRINT\r
20796         003251' 201400  010153' ONERW:  MOVEI CS,ERRMS2 ;ONE ERROR DETECTED\r
20797         003252' 260740  003065' ONERW1: PUSHJ PP,OUTSIX ;PRINT\r
20798 \r
20799 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 61-1\r
20800 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20801 \r
20802         003253' 254000  003262'         JRST ENDP2A\r
20803         003254' 201400  010156' NOERW:  MOVEI CS,ERRMS3\r
20804         003255' 603600  001010  IFN CCLSW,<TLNE IO,CRPGSW!MFLSW ;IF RPG, DON'T PRINT MESSAGE>\r
20805                                 IFE CCLSW,<TLNE IO,MFLSW        ;NOR IF MULTI-FILE MODE>\r
20806         003256' 620600  000001          TRZ     ER,TTYSW                ;NO TTY OUTPUT\r
20807         003257' 434600  013512'         IOR     ER,OUTSW        ;UNLESS NEEDED FOR LISTING\r
20808         003260' 260740  010600'         PUSHJ PP,OUTCR\r
20809         003261' 254000  003252'         JRST ONERW1\r
20810 \r
20811 \r
20812 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 62\r
20813 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20814 \r
20815         003262' 260740  010600' ENDP2A: PUSHJ PP,OUTCR\r
20816         003263' 607600  000010          TLNN    IO,MFLSW        ;IN A MULTI-PROG FILE?\r
20817         003264' 254000  003270'         JRST    ENDP2D          ;NO\r
20818         003265' 332000  013376'         SKIPE   ERRCNT          ;ANY ERROR?\r
20819                                         PUSHJ   PP,[MOVEI CS,[ASCIZ /PROGRAM    /]\r
20820                                                 PUSHJ PP,OUTAS0 ;YES,SO PRINT MESSAGE\r
20821                                                 MOVEI   CS,TBUF ;AND TITLE\r
20822                                                 PUSHJ PP,OUTAS0 ;FOR IDENTIFICATION\r
20823         003266' 260740  014707'                 JRST    OUTCR]  ;AND A CR-LF\r
20824         003267' 624600  000001          TRZA    ER,TTYSW        ;NO MORE OUTPUT NOW\r
20825         003270'                 ENDP2D:\r
20826         003270' 603600  001000  IFN CCLSW,<TLNE IO,CRPGSW       ;IF RPG, DON'T PRINT PGM BREAK\r
20827         003271' 620600  000001          TRZ     ER,TTYSW        ;...>\r
20828                                 IFE CCLSW,<     SKIPA           ;SO PRGEND CODE CAN WORK>\r
20829         003272' 434600  013512'         IOR     ER,OUTSW        ;...\r
20830         003273' 260740  010600'         PUSHJ   PP,OUTCR\r
20831                                 IFN RENTSW,<\r
20832                                         MOVEI   CS,[SIXBIT /HI-SEG. BREAK IS @/]\r
20833                                         SKIPN   HHIGH           ;DON'T PRINT IF ZERO\r
20834                                         JRST    ENDP2C          ;IT WAS\r
20835                                         PUSHJ   PP,OUTSIX\r
20836                                         HRLO    CS,HHIGH        ;GET THE BREAK\r
20837                                         PUSHJ   PP,ONC1\r
20838                                         PUSHJ   PP,OUTCR\r
20839                                 ENDP2C:>\r
20840         003274' 201400  014714'         MOVEI   CS,[SIXBIT /PROGRAM BREAK IS @/]\r
20841         003275' 260740  003065'         PUSHJ   PP,OUTSIX       ;OUTPUT PROGRAM BREAK\r
20842         003276' 550400  013734'         HRRZ    CS,ABSHI        ;GET ABS. BREAK\r
20843         003277' 307400  000140          CAIG    CS,140          ;ANY ABS. CODE\r
20844                                         JRST    [HRLO CS,HIGH   ;NO\r
20845         003300' 254000  014717'                 JRST    ENDP2B] ;SO DON'T PRINT\r
20846         003301' 524400  013735'         HRLO    CS,HIGH         ;GET PROGRAM BREAK\r
20847         003302' 260740  003035'         PUSHJ   PP,ONC1\r
20848         003303' 260740  010600'         PUSHJ   PP,OUTCR\r
20849         003304' 201400  014721'         MOVEI   CS,[SIXBIT /ABSLUTE BREAK IS @/]\r
20850         003305' 260740  003065'         PUSHJ   PP,OUTSIX\r
20851         003306' 524400  013734'         HRLO    CS,ABSHI\r
20852         003307' 260740  003035' ENDP2B: PUSHJ   PP,ONC1\r
20853         003310' 260740  010600'         PUSHJ PP,OUTCR\r
20854         003311' 603640  004400          TLNE    FR,RIMSW!R1BSW  ;RIM MODE?\r
20855         003312' 260740  003345'         PUSHJ   PP,RIMFIN       ;YES, FINISH IT\r
20856         003313' 607600  001010  IFN CCLSW,<TLNN IO,CRPGSW!MFLSW ;IF NOT IN CCL MODE>\r
20857                                 IFE CCLSW,<TLNN IO,MFLSW        ;NOR IF IN MULTI-FILE MODE>\r
20858         003314' 660600  000001          TRO     ER,TTYSW        ;PRINT SIZE\r
20859         003315' 260740  010600'         PUSHJ   PP,OUTCR\r
20860         003316' 200340  000012*         MOVE    C,JOBREL\r
20861         003317' 242340  777766          LSH     C,-^D10\r
20862         003320' 271340  000001          ADDI    C,1\r
20863         003321' 260740  003051'         PUSHJ   PP,DNC\r
20864         003322' 201400  014724'         MOVEI   CS,[SIXBIT /K CORE USED@/]\r
20865         003323' 260740  003065'         PUSHJ   PP,OUTSIX\r
20866         003324' 260740  010600'         PUSHJ   PP,OUTCR        \r
20867         003325' 540600  013512'         HRR     ER,OUTSW\r
20868 \r
20869 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 62-1\r
20870 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20871 \r
20872         003326' 260740  003103'         PUSHJ   PP,OUTSET\r
20873         003327' 000002  002165'         XWD     2,SOUT          ;OUTPUT THE SYMBOLS (BLKTYP-2)\r
20874         003330' 260740  003103'         PUSHJ   PP,OUTSET\r
20875         003331' 000007  002717'         XWD     7,VOUT          ;OUTPUT TRANSFER VECTOR (..-7)\r
20876                                 IFN WFWSW,<PUSHJ PP,OUTSET      ;OUTPUT THE LVAR FIXUPS\r
20877                                         XWD 13,OUTB12>\r
20878         003332' 260740  003103'         PUSHJ   PP,OUTSET\r
20879         003333' 000005  002712'         XWD     5,HOUT          ;OUTPUT HIGHEST RELOCATABLE (..-5)\r
20880         003334' 260740  002731'         PUSHJ   PP,COUTD\r
20881         003335' 607600  000010          TLNN    IO,MFLSW        ;IS IT PRGEND?\r
20882         003336' 254000  007225'         JRST    FINIS           ;ALAS, FINISHED\r
20883         003337' 201400  013527'         MOVEI   CS,SBUF         ;RESET SBUF POINTER\r
20884         003340' 542400  013550'         HRRM    CS,SUBTTX       ;TO SUBTTL\r
20885         003341' 402000  013734'         SETZM   PASS2I          ;CLEAR PASS2 VARIABLES\r
20886         003342' 200000  014726'         MOVE    [XWD PASS2I,PASS2I+1]\r
20887         003343' 251000  014076'         BLT     PASS2Z-1        ;BUT NOT ALL OF VARIABLES\r
20888         003344' 254000  003356'         JRST    INZ             ;RE-INITIALIZE FOR NEXT PROG\r
20889 \r
20890 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 63\r
20891 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20892 \r
20893                                 IFN WFWSW,<\r
20894                                 OUTB12: SKIPN ARG,FIXLNK        ;WERE THERE ANY??\r
20895                                         POPJ PP,                ;JUST GO AWAY\r
20896                                 OUTB19: HRRZ SX,(ARG)   ;POINTER TO HEADER BLOCK NOW IN SX\r
20897                                         HRRZ AC1,(SX)   ;NOW AC1 HAS POINTER TO CODE FIXUPS\r
20898                                         JUMPE AC1,OUTB13        ;NONE THERE\r
20899                                 OUTB16: HLRZ AC0,(AC1)  ;GET LOCATION OFFSET\r
20900                                         ADD AC0,2(SX)   ;ADD BASE LOCATION\r
20901                                         SKIPN 1(AC1)    ;AND RIGHT HALF??\r
20902                                         JRST OUTB14     ;NO\r
20903                                         PUSH PP,AC0     ;SAVE FIXUP VALUE\r
20904                                         SETZB AC0,RC\r
20905                                         PUSHJ PP,OUTBWD ;OUTPUT A Z (SAYS RIGHT HALF CODE)\r
20906                                         POP PP,AC0      ;GET VALUE BACK\r
20907                                         HLRZ RC,1(AC1)  ;GET RELOC OF FIXUP CHAIN\r
20908                                         LSH RC,1        ;GOES IN LEFT HALF\r
20909                                         HRL AC0,1(AC1)  ;LOCATION OF CHAIN\r
20910                                         PUSHJ PP,OUTBWD ;LEFT HALF LOCATION, RIGHT HALF VALUE\r
20911                                 OUTB14: SKIPN 2(AC1)    ;ANY LEFT HALF??\r
20912                                         JRST OUTB15     ;NO, GO LOOK FOR NEXT BLOCK\r
20913                                         PUSH PP,AC0     ;SAVE VALUE\r
20914                                         MOVEI RC,0\r
20915                                         MOVSI AC0,400000        ;INDICATE LEFT HALF\r
20916                                         PUSHJ PP,OUTBWD\r
20917                                         POP PP,AC0\r
20918                                         HLRZ RC,2(AC1)  ;GET RELOC FOR LEFT HALF\r
20919                                         LSH RC,1\r
20920                                         HRL AC0,2(AC1)\r
20921                                         PUSHJ PP,OUTBWD\r
20922                                 OUTB15: HRRZ AC1,(AC1)  ;NEXT LINK IN CHAIN\r
20923                                         JUMPN AC1,OUTB16        ;IF NOT END, PROCESS\r
20924                                 OUTB13: HLRZ AC1,(SX)   ;POINTER TO SYMBOL TABLE FIXUP CHAIN\r
20925                                         JUMPE AC1,OUTB17        ;CHACK FOR SOME THERE\r
20926                                 OUTB18: MOVE AC0,2(AC1) ;FLAGS\r
20927                                         HRR AC0,2(SX)   ;VALUE IN RH\r
20928                                         MOVEI RC,0      ;NO RELCO ON IT\r
20929                                         PUSHJ PP,OUTBWD\r
20930                                         MOVE AC0,1(AC1) ;THE SYMBOL NAME\r
20931                                         PUSHJ PP,OUTBWD\r
20932                                         HRRZ AC1,(AC1)  ;FOOLOW CHAIN\r
20933                                         JUMPN AC1,OUTB18\r
20934                                 OUTB17: HRRZ ARG,-1(ARG)        ;DONE WITH THIS SYMBOL GET NEXT\r
20935                                         JUMPN ARG,OUTB19\r
20936                                         POPJ PP,        ;ALL DONE\r
20937                                 \r
20938 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 64\r
20939 MACRO   10      24-APR-78 02:11         OUTPUT ROUTINES\r
20940 \r
20941                                 \r
20942                                 OUTBWD: SKIPL COUTX     ;IF WE ARE AT THE START\r
20943                                         JRST COUT       ;NO PUT OUT\r
20944                                         PUSH PP,AC0     ;WE NEED TO PUT NEW RELOC AND VAR LENGTH\r
20945                                         PUSH PP,RC      ;AS FIRST TWO WORDS\r
20946                                         MOVE AC0,HIGH\r
20947                                         MOVEI RC,1      ;IT IS RELOC\r
20948                                         PUSHJ PP,COUT\r
20949                                         MOVE AC0,LVARLC ;THE LENGTH\r
20950                                         MOVEI RC,0\r
20951                                         PUSHJ PP,COUT\r
20952                                         POP PP,RC\r
20953                                         POP PP,AC0\r
20954                                         JRST COUT       ;NOW PUT OUT THE ONE WE WANTED TO\r
20955                                 >\r
20956 \r
20957         003345' 603640  004000  RIMFIN: TLNE FR,R1BSW\r
20958         003346' 260740  010447'         PUSHJ PP,R1BDMP\r
20959         003347' 336340  014053'         SKIPN   C,VECTOR\r
20960         003350' 205340  254200          MOVSI   C,(JRST 4,)\r
20961         003351' 607340  777000          TLNN    C,777000\r
20962         003352' 661340  254000          TLO     C,(JRST)\r
20963         003353' 260740  010405'         PUSHJ   PP,PTPBIN\r
20964         003354' 201340  000000          MOVEI   C,0\r
20965         003355' 254000  010405'         JRST    PTPBIN\r
20966 \r
20967 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 65\r
20968 MACRO   10      24-APR-78 02:11         PASS INITIALIZE\r
20969 \r
20970                                 SUBTTL  PASS INITIALIZE\r
20971         003356' 350000  014004' INZ:    AOS     MODA\r
20972         003357' 350000  014006'         AOS     MODO\r
20973         003360' 402000  013214'         SETZM   SEQNO\r
20974         003361' 402000  013211'         SETZM   TAG\r
20975         003362' 541640  000010          HRRI    RX,^D8\r
20976         003363' 201000  013477'         MOVEI   VARHD\r
20977         003364' 202000  013500'         MOVEM   VARHDX\r
20978         003365' 201000  013504'         MOVEI   LITHD\r
20979         003366' 202000  013505'         MOVEM   LITHDX\r
20980         003367' 260740  003526'         PUSHJ   PP,LITI\r
20981         003370' 260740  003003'         PUSHJ   PP,STOWI\r
20982         003371' 254000  001774'         JRST    OUTLI\r
20983 \r
20984         003372' 220100  000005  RCPNTR: POINT   1,ARG,^L<RELF>-18       ;POINT 1,ARG,22\r
20985 \r
20986 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 66\r
20987 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
20988 \r
20989                                 SUBTTL  PSEUDO-OP HANDLERS\r
20990 \r
20991         003373' 260740  000236' TAPE0:  PUSHJ   PP,STOUTS       ;FINISH THIS LINE\r
20992         003374' 254000  007447'         JRST    GOTEND          ;AND IGNORE THE REST OF THIS FILE\r
20993 \r
20994         003375' 260740  004034' RADIX0: PUSHJ   PP,EVAL10       ;EVALUATE RADIX D10\r
20995         003376' 307000  000012          CAIG    AC0,^D10        ;IF GREATER THAN 10\r
20996         003377' 307000  000001          CAIG    AC0,1           ;OR LESS THAN 2,\r
20997         003400' 664600  040000  ERRAX:  TROA    ER,ERRA         ;FLAG ERROR AND SKIP\r
20998         003401' 540640  000000          HRR     RX,AC0          ;SET NEW RADIX\r
20999         003402' 263740  000000          POPJ    PP,\r
21000 \r
21001 \r
21002         003403' 621600  000001  XALL0:  TLZ     IO,IOSALL       ;TURN OFF MACRO SUPPRESS ALL\r
21003         003404' 321640  000455' IOSET:  JUMP1   POPOUT          ;NOSYM (IONSYM), XALL (IOPALL), XLIST (IOPROG)\r
21004         003405' 554200  000000          HLRZ    SX,AC0          ;STORE FLAGS\r
21005         003406' 260740  000236'         PUSHJ   PP,STOUTS       ;POLISH OFF LINE\r
21006         003407' 661604  000000          TLO     IO,0(SX)        ;NOW SUPRESS PRINTING\r
21007         003410' 263740  000000          POPJ    PP,\r
21008 \r
21009         003411' 630600  000000  IORSET: TDZ     IO,AC0          ;RESET  FLAG IOPALL/IOPROG\r
21010         003412' 603000  002000          TLNE    AC0,IONCRF      ;RESTORING CREFFING?\r
21011         003413' 621600  000040          TLZ     IO,DEFCRS       ;YES, CLEAR ANY WAITING DEFINING OCCURENCES\r
21012         003414' 263740  000000          POPJ    PP,\r
21013 \r
21014         003415' 260740  004235' BLOCK0: PUSHJ   PP,HIGHQ\r
21015         003416' 260740  001077'         PUSHJ   PP,EVALEX       ;EVALUATE\r
21016         003417' 622440  777777          TRZE    RC,-1           ;EXTERNAL OR RELOCATABLE?\r
21017         003420' 260740  004041'         PUSHJ   PP,QEXT         ;YES, DETERMINE TYPE\r
21018         003421' 272000  014000'         ADDM    AC0,LOCO        ;UPDATE ASSEMBLY LOCATION\r
21019         003422' 250000  013777' BLOCK1: EXCH    AC0,LOCA        ;SAVE START OF BLOCK\r
21020         003423' 272000  013777'         ADDM    AC0,LOCA        ;UPDATE OUTPUT LOCATION\r
21021         003424' 526000  013776' BLOCK2: HRLOM   AC0,LOCBLK\r
21022         003425' 325640  000455'         JUMP2   POPOUT\r
21023         003426' 602600  002000          TRNE    ER,ERRU\r
21024         003427' 660600  001000          TRO     ER,ERRV\r
21025         003430' 263740  000000          POPJ    PP,\r
21026 \r
21027 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 67\r
21028 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21029 \r
21030 \r
21031         003431' 660600  000001  PRNTX0: TRO     ER,TTYSW        ;SET OUTPUT TO TTY\r
21032         003432' 325640  003434'         JUMP2   PRNTX2          ;PASS1?\r
21033         003433' 674600  013512'         TDOA    ER,OUTSW        ;YES,OUTPUT TO LSTDEV ALSO\r
21034         003434' 420600  013512' PRNTX2: ANDCM   ER,OUTSW        ;NO,DON'T OUTPUT TO TTY IF IT IS LSTDEV\r
21035         003435' 260740  004543'         PUSHJ   PP,BYPASS       ;GET FIRST CHAR.\r
21036         003436' 665600  000004          TLOA    IO,IORPTC       ;REPEAT IT AND SKIP\r
21037         003437' 260740  010572' PRNTX4: PUSHJ   PP,PRINT        ;PRINT THE CHAR.\r
21038         003440' 260740  001415'         PUSHJ   PP,CHARAC       ;GET ASCII CHAR.\r
21039         003441' 307340  000015          CAIG    C,CR            ;IF GREATER THAN CR\r
21040         003442' 307340  000011          CAIG    C,HT            ;OR LESS THAN LF\r
21041         003443' 254000  003437'         JRST    PRNTX4          ;THEN CONTINUE\r
21042         003444' 260740  010600'         PUSHJ   PP,OUTCR        ;OUTPUT A CRLF\r
21043         003445' 624600  000003          TRZA    ER,TTYSW!LPTSW  ;TURN OF OUTPUT\r
21044         003446' 350017  000000  CPOPJ1: AOS     (PP)            ;USEFUL TAG HAS TO GO SOMEWHERE\r
21045         003447' 263740  000000  CPOPJ:  POPJ    PP,             ;EXIT\r
21046 \r
21047         003450' 260740  001363' REMAR0: PUSHJ   PP,GETCHR       ;GET A CHARACTER\r
21048         003451' 302340  000033          CAIE    C,EOL\r
21049         003452' 254000  003450'         JRST    REMAR0\r
21050         003453' 263740  000000          POPJ    PP,             ;EXIT\r
21051 \r
21052 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 68\r
21053 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21054 \r
21055         003454' 260740  003422' LIT0:   PUSHJ   PP,BLOCK1\r
21056         003455' 260740  000236'         PUSHJ   PP,STOUTS\r
21057         003456' 325640  003466' LIT1:   JUMP2   LIT20\r
21058 \r
21059                                 ;ON PASS ONE, WE JUST STEP THE LOCATION COUNTER AND CLEAR\r
21060 \r
21061         003457' 200000  013506'         MOVE    AC0,LITCNT\r
21062         003460' 200200  013505'         MOVE    SX,LITHDX\r
21063         003461' 506004  000000          HRLM    AC0,0(SX)\r
21064         003462' 200300  013777'         MOVE    V,LOCA\r
21065         003463' 504300  014004'         HRL     V,MODA\r
21066         003464' 202304  777777          MOVEM   V,-1(SX)\r
21067         003465' 254000  003522'         JRST    LIT24\r
21068 \r
21069         003466' 261740  013777' LIT20:  PUSH    PP,LOCA\r
21070         003467' 261740  014000'         PUSH    PP,LOCO\r
21071         003470' 336000  013507'         SKIPN   LITNUM\r
21072         003471' 254000  003476'         JRST    LIT20A\r
21073         003472' 200200  013505'         MOVE    SX,LITHDX\r
21074         003473' 550004  777777          HRRZ    AC0,-1(SX)\r
21075         003474' 312000  013777'         CAME    AC0,LOCA\r
21076         003475' 660600  000100          TRO     ER,ERRP\r
21077         003476' 200200  013501' LIT20A: MOVE    SX,LITAB\r
21078         003477' 375000  013507' LIT21:  SOSGE   LITNUM\r
21079         003500' 254000  003511'         JRST    LIT22\r
21080         003501' 200004  777776          MOVE    AC0,-2(SX)      ;WFW\r
21081         003502' 200444  777777          MOVE    RC,-1(SX)       ;WFW\r
21082         003503' 200204  000000          MOVE SX,(SX)    ;WFW POINTER TO THE NEXT LIT\r
21083         003504' 260740  002763'         PUSHJ   PP,STOW20       ;STOW CODE\r
21084         003505' 201340  000012          MOVEI   C,12            ;SET LINE FEED\r
21085         003506' 136340  013453'         IDPB    C,LBUFP\r
21086         003507' 260740  001556'         PUSHJ   PP,OUTLIN       ;OUTPUT THE LINE\r
21087         003510' 254000  003477'         JRST    LIT21\r
21088 \r
21089 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 69\r
21090 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21091 \r
21092         003511' 550100  014000' LIT22:  HRRZ    AC2,LOCO\r
21093         003512' 262740  014000'         POP     PP,LOCO\r
21094         003513' 262740  013777'         POP     PP,LOCA\r
21095         003514' 200200  013505'         MOVE    SX,LITHDX\r
21096         003515' 554004  000000          HLRZ    AC0,0(SX)\r
21097         003516' 274100  014000'         SUB AC2,LOCO    ;COMPUTE LENGTH USED\r
21098         003517' 315000  000002          CAMGE AC0,AC2   ;USE LARGER\r
21099         003520' 200000  000002          MOVE AC0,AC2\r
21100         003521' 270100  014000'         ADD AC2,LOCO\r
21101         003522' 272000  013777' LIT24:  ADDM    AC0,LOCA\r
21102         003523' 272000  014000'         ADDM    AC0,LOCO\r
21103         003524' 260740  003533'         PUSHJ   PP,GETTOP\r
21104         003525' 542200  013505'         HRRM    SX,LITHDX\r
21105         003526' 402000  013506' LITI:   SETZM   LITCNT\r
21106         003527' 402000  013507'         SETZM   LITNUM\r
21107         003530' 201000  013501'         MOVEI   LITAB\r
21108         003531' 202000  013502'         MOVEM   LITABX\r
21109         003532' 254000  004235'         JRST    HIGHQ\r
21110 \r
21111         003533' 550040  000004  GETTOP: HRRZ    AC1,SX          ;VARHD\r
21112         003534' 550204  000000          HRRZ    SX,0(SX)\r
21113         003535' 326200  000455'         JUMPN   SX,POPOUT\r
21114         003536' 201200  000003          MOVEI   SX,3    ;WFW\r
21115         003537' 273200  013377'         ADDB    SX,FREE\r
21116         003540' 311200  013552'         CAML    SX,SYMBOL\r
21117         003541' 260740  010277'         PUSHJ   PP,XCEED\r
21118         003542' 275200  000001          SUBI    SX,1            ;MAKE SX POINT TO LINK\r
21119         003543' 402004  000000          SETZM   0(SX)           ;CLEAR FORWARD LINK\r
21120         003544' 542201  000000          HRRM    SX,0(AC1)       ;STORE ADDRESS IN LAST LINK\r
21121         003545' 263740  000000          POPJ    PP,\r
21122 \r
21123 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 70\r
21124 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21125 \r
21126         003546' 260740  003422' VAR0:   PUSHJ   PP,BLOCK1       ;PRINT LOCATION\r
21127         003547' 260740  003551'         PUSHJ PP,VARA\r
21128         003550' 254000  000236'         JRST STOUTS\r
21129 \r
21130         003551' 200200  013500' VARA:   MOVE    SX,VARHDX\r
21131         003552' 200000  013777'         MOVE AC0,LOCA   ;GET LOCATION FOR CHECK\r
21132         003553' 321640  003556'         JUMP1 VARB      ;DO NOT CHECK START ON PASS 1\r
21133         003554' 312004  777777          CAME AC0,-1(SX) ;CHECK START OF VAR AREA\r
21134         003555' 660600  000100          TRO ER,ERRP     ;AND GIVE ERROR\r
21135         003556' 202004  777777  VARB:   MOVEM AC0,-1(SX)        ;SAVE START FOR PASS 2\r
21136         003557' 554004  000000          HLRZ    AC0,0(SX)\r
21137         003560' 272000  013777'         ADDM    AC0,LOCA\r
21138         003561' 272000  014000'         ADDM    AC0,LOCO\r
21139         003562' 260740  003533'         PUSHJ   PP,GETTOP\r
21140         003563' 542200  013500'         HRRM    SX,VARHDX\r
21141         003564' 325640  000455'         JUMP2   POPOUT\r
21142 \r
21143         003565' 260740  003111'         PUSHJ   PP,LOOKUP       ;SET FOR TABLE SCAN\r
21144                                 IFN WFWSW,<TRNN ARG,EXTF        ;IN CASE LVAR HAS BEEN THROUGH>\r
21145         003566' 626240  000100          TRZN    ARG,VARF\r
21146         003567' 263740  000000          POPJ    PP,             ;NO, EXIT\r
21147         003570' 620240  002000          TRZ ARG,UNDF            ;TURN OFF FLAG NOW\r
21148                                 IFN WFWSW,<MOVSI AC0,1(V)       ;NUMBER TO ADD TO>\r
21149         003571' 205000  000001  IFE WFWSW,<MOVSI AC0,1          ;ADD 1>\r
21150         003572' 272001  000000          ADDM    AC0,0(AC1)      ;UPDATE COUNT\r
21151                                 IFN WFWSW,<\r
21152                                 VARA1:  ADDI V,1                ;GET LENGTH OF DESIRED BLOCK\r
21153                                         ADDM V,LOCO\r
21154                                         EXCH V,LOCA\r
21155                                         ADDM V,LOCA\r
21156                                         HRL ARG,V       ;GET STARTING LOCATION AND UPDAT PCS\r
21157                                 >\r
21158 \r
21159         003573' 434240  014004'         IOR     ARG,MODA        ;SET TO ASSEMBLY MODE\r
21160         003574' 504240  013777' IFE WFWSW,<HRL  ARG,LOCA>\r
21161         003575' 206244  000000          MOVSM   ARG,0(SX)       ;UPDATE 2ND WRD OF SYM TAB ENTRY\r
21162         003576' 350000  013777' IFE WFWSW,<AOS  LOCA\r
21163         003577' 350000  014000'         AOS     LOCO>\r
21164         003600' 254000  004235'         JRST    HIGHQ1\r
21165 \r
21166 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 71\r
21167 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21168 \r
21169         003601' 261740  000000  IF:     PUSH    PP,AC0          ;SAVE AC0\r
21170         003602' 261740  000014          PUSH    PP,IO\r
21171         003603' 260740  004046'         PUSHJ   PP,EVALXQ       ;EVALUATE AND TEST EXTERNAL\r
21172         003604' 262740  000001          POP     PP,AC1\r
21173         003605' 321040  003607'         JUMPL   AC1,IFPOP\r
21174         003606' 621600  400000          TLZ     IO,FLDSW\r
21175         003607' 262740  000001  IFPOP:  POP     PP,AC1          ;RETRIEVE SKIP INSTRUCTION\r
21176         003610' 661600  000004  IFSET:  TLO IO,IORPTC           ;REPEAT CHARACTER\r
21177         003611' 256000  000001  IFXCT:  XCT     AC1             ;EXECUTE INSTRUCTION\r
21178         003612' 634000  000000          TDZA    AC0,AC0         ;FALSE\r
21179         003613' 201000  000001          MOVEI   AC0,1           ;TRUE\r
21180         003614' 325600  005266' IFEXIT: JUMPOC REPEA1           ;BRANCH IF IN OP-CODE FIELD\r
21181         003615' 260740  001363' IFEX1:  PUSHJ PP,GETCHR         ;SEARCH FOR "<"\r
21182         003616' 306340  000033          CAIN C,EOL              ;ERROR IF END OF LINE\r
21183         003617' 254000  003400'         JRST ERRAX\r
21184         003620' 302340  000034          CAIE C,34\r
21185         003621' 254000  003615'         JRST IFEX1\r
21186         003622' 322000  003753'         JUMPE AC0,IFEX2         ;TEST FOR 0\r
21187         003623' 661600  000004          TLO IO,IORPTC           ;NO, PROCESS AS CELL\r
21188         003624' 260740  000363'         PUSHJ PP,CELL\r
21189         003625' 402000  013747'         SETZM   INCND           ;NOT ANY MORE\r
21190         003626' 254000  002751'         JRST STOW               ;STOW CODE AND EXIT\r
21191 \r
21192         003627' 541000  400000  IFPASS: HRRI    AC0,P1          ;MAKE IT TLNX IO,P1\r
21193         003630' 200040  000000          MOVE    AC1,AC0         ;PLACE IT IN AC1\r
21194         003631' 254000  003610'         JRST    IFSET           ;EXECUTE INSTRUCTION\r
21195 \r
21196         003632' 520040  000000  IFB0:   HLLO    AC1,AC0         ;FORM AND STORE TEST INSTRUCTION\r
21197         003633' 260740  001445' IFB1:   PUSHJ   PP,CHARL        ;GET FIRST NON-BLANK\r
21198         003634' 302340  000040          CAIE    C," "\r
21199         003635' 306340  000011          CAIN    C,"     "\r
21200         003636' 254000  003633'         JRST    IFB1            ;SKIP BLANKS AND TABS\r
21201         003637' 307340  000015          CAIG    C,CR            ;CHECK FOR CARRET AS DELIM.\r
21202         003640' 305340  000012          CAIGE   C,LF\r
21203         003641' 334200  014101'         SKIPA   SX,SEQNO2\r
21204         003642' 254000  003400'         JRST    ERRAX\r
21205         003643' 202200  013764'         MOVEM   SX,CNDSEQ\r
21206         003644' 200200  014100'         MOVE    SX,PAGENO\r
21207         003645' 202200  013763'         MOVEM   SX,CNDPG\r
21208         003646' 476000  013747'         SETOM   INCND           ;SAVE INFO. FOR PASS 1 ERRORS\r
21209         003647' 306340  000074          CAIN    C,"<"           ;LEFT BRACKET?\r
21210         003650' 403340  000011          SETZB   C,RC            ;YES, PREPARE FOR OLD FORMAT\r
21211         003651' 334200  000007          SKIPA   SX,C            ;SAVE FOR COMPARISON\r
21212         003652' 660000  000001  IFB3:   TRO     AC0,1           ;SET FLAG\r
21213         003653' 260740  001445' IFB2:   PUSHJ   PP,CHARL        ;GET ASCII CHARACTER AND LIST\r
21214         003654' 316340  000004          CAMN    C,SX            ;TEST FOR DELIMITER\r
21215         003655' 254000  003611'         JRST    IFXCT           ;FOUND\r
21216         003656' 302340  000040          CAIE    C," "           ;BLANK?\r
21217         003657' 306340  000011          CAIN    C,"     "       ;OR TAB?\r
21218         003660' 254000  003653'         JRST    IFB2            ;YES\r
21219         003661' 326200  003652'         JUMPN   SX,IFB3         ;JUMP IF NEW FORMAT\r
21220         003662' 306340  000074          CAIN    C,"<"           ;<?\r
21221         003663' 344440  003653'         AOJA    RC,IFB2         ;YES, INCREMENT COUNT\r
21222 \r
21223 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 71-1\r
21224 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21225 \r
21226         003664' 306340  000076          CAIN    C,">"           ;>?\r
21227         003665' 361440  003611'         SOJL    RC,IFXCT        ;YES, DECREMENT AND EXIT IF DONE\r
21228         003666' 254000  003652'         JRST    IFB3            ;GET NEXT CHARACTER\r
21229 \r
21230 \r
21231 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 72\r
21232 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21233 \r
21234         003667' 541000  002000  IFDEF0: HRRI    AC0,UNDF        ;MAKE IT TLNX ARG,UNDF\r
21235         003670' 261740  000000          PUSH    PP,AC0          ;STACK IT\r
21236         003671' 260740  001043'         PUSHJ   PP,GETSYM       ;TAKES SKIP RETURN IF SYM NAME IS LEGAL\r
21237         003672' 664600  040000          TROA    ER,ERRA         ;ILLEGAL!\r
21238         003673' 260740  012713'         PUSHJ   PP,SEARCH\r
21239                                         JRST    [PUSHJ  PP,OPTSCH\r
21240                                                 TLO     ARG,UNDF\r
21241         003674' 254000  014727'                 JRST    .+1]\r
21242         003675' 260740  012620'         PUSHJ PP,SSRCH3         ;EMIT TO CREF ANYWAY\r
21243         003676' 254000  003607'         JRST    IFPOP           ;POP AND EXECUTE INSTRUCTION\r
21244 \r
21245 \r
21246 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 73\r
21247 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21248 \r
21249         003677' 557000  000000  IFIDN0: HLRZS   AC0\r
21250         003700' 201300  000047          MOVEI   V,2*.IFBLK-1\r
21251         003701' 402006  013400'         SETZM   IFBLK(V)        ;CLEAR COMPARISON BLOCK\r
21252         003702' 365300  003701'         SOJGE   V,.-1\r
21253         003703' 402000  014054'         SETZM   .TEMP           ;CLEAR STORED DELIMETER\r
21254         003704' 201440  013400'         MOVEI   RC,IFBLK        ;SET FOR FIRST BLOCK\r
21255         003705' 260740  003717'         PUSHJ   PP,IFCL         ;GET FIRST STRING\r
21256         003706' 201440  013424'         MOVEI   RC,IFBLKA\r
21257         003707' 260740  003717'         PUSHJ   PP,IFCL         ;GET SECOND STRING\r
21258         003710' 201300  000023          MOVEI   V,.IFBLK-1\r
21259         003711' 200206  013400'         MOVE    SX,IFBLK(V)     ;GET WORD FROM FIRST STRING\r
21260         003712' 316206  013424'         CAMN    SX,IFBLKA(V)    ;COMPARE WITH SECOND STRING\r
21261         003713' 365300  003711'         SOJGE   V,.-2           ;EQUAL, TRY NEXT WORD\r
21262         003714' 321300  003614'         JUMPL   V,IFEXIT        ;DID WE FINISH STRING\r
21263         003715' 431000  000001          XORI    AC0,1           ;NO, TOGGLE REQUEST\r
21264         003716' 254000  003614'         JRST    IFEXIT  ;DO NOT TURN ON IORPTC WFW\r
21265 \r
21266         003717' 260740  001415' IFCL:   PUSHJ   PP,CHARAC       ;GET AND LIST CHARACTER\r
21267         003720' 302340  000040          CAIE    C," "           ;SKIP SPACES\r
21268         003721' 307340  000015          CAIG    C,CR            ;ALSO SKIP CR-LF\r
21269         003722' 305340  000011          CAIGE   C,HT            ;AND TAB\r
21270         003723' 254000  003725'         JRST    .+2             ;NOT ONE OF THEM\r
21271         003724' 254000  003717'         JRST    IFCL            ;SO LONG COMPARISONS WILL WORK\r
21272                                 ;*** A CROCK SO THAT IFIDN <X>,<X>,<INST.> WILL WORK    ***\r
21273         003725' 302340  000054          CAIE    C,","           ;IS IT A COMMA?\r
21274         003726' 254000  003731'         JRST    .+3             ;NO\r
21275         003727' 336000  014054'         SKIPN   .TEMP           ;YES, WAS PREVIOUS FIELD OLD METHOD?\r
21276         003730' 254000  003717'         JRST    IFCL            ;YES, IGNORE COMMA AND SPACES\r
21277                                 ;       ***\r
21278         003731' 306340  000074          CAIN    C,"<"           ;WAS IT LEFT BRACKET?\r
21279         003732' 474340  000000          SETO    C,              ;SIGNAL OLD METHOD, LOOK FOR RIGHT BRACKET\r
21280         003733' 202340  014054'         MOVEM   C,.TEMP         ;STORE TERMINATOR FOR COMPARISON\r
21281         003734' 201200  000143          MOVEI   SX,5*.IFBLK-1   ;LIMIT SEARCH\r
21282         003735' 505440  440700          HRLI    RC,(POINT 7,,)  ;SET UP BYTE IN RC\r
21283         003736' 260740  001415' IFCLR:  PUSHJ   PP,CHARAC\r
21284         003737' 333000  014054'         SKIPLE  .TEMP           ;NEW METHOD?\r
21285         003740' 254000  003745'         JRST    IFCLR1          ;YES, IGNORE ANGLE BRACKET COUNTING\r
21286         003741' 306340  000074          CAIN    C,"<"           ;ANOTHER LEFT ANGLE?\r
21287         003742' 370000  014054'         SOS     .TEMP           ;YES, KEEP COUNT\r
21288         003743' 306340  000076          CAIN    C,">"           ;CLOSING ANGLE\r
21289         003744' 355000  014054'         AOSGE   .TEMP           ;MATCHING COUNT?\r
21290         003745' 316340  014054' IFCLR1: CAMN    C,.TEMP         ;TEST FOR DELIMITER\r
21291         003746' 263740  000000          POPJ    PP,             ;EXIT ON RIGHT DELIMITER\r
21292         003747' 367200  003751'         SOJG    SX,.+2          ;ANY ROOM IN COMPARISON BLOCK?\r
21293         003750' 664600  040000          TROA    ER,ERRA         ;NO, FLAG ERROR BUT KEEP ON GOING\r
21294         003751' 136340  000011          IDPB    C,RC            ;DEPOSIT BYTE\r
21295         003752' 254000  003736'         JRST    IFCLR\r
21296 \r
21297 \r
21298 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 74\r
21299 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21300 \r
21301 \r
21302         003753' 260740  001363' IFEX2:  PUSHJ   PP,GETCHR\r
21303         003754' 306340  000033          CAIN    C,EOL           ;EXIT WITH ERROR IF END OF LINE\r
21304         003755' 254000  003400'         JRST    ERRAX\r
21305         003756' 306340  000034          CAIN    C,34            ;"<"?\r
21306         003757' 344000  003753'         AOJA    AC0,IFEX2       ;YES, INCREMENT COUNT\r
21307         003760' 302340  000036          CAIE    C,36            ;">"?\r
21308         003761' 254000  003753'         JRST    IFEX2           ;NO, TRY AGAIN\r
21309         003762' 365000  003753'         SOJGE   AC0,IFEX2       ;YES, TEST FOR MATCH\r
21310         003763' 260740  004543'         PUSHJ   PP,BYPASS       ;YES, MOVE TO NEXT DELIMITER\r
21311         003764' 402000  013747'         SETZM   INCND           ;OUT OF CONDITIONAL NOW\r
21312         003765' 344000  002750'         AOJA    AC0,STOWZ1      ;STOW ZERO\r
21313 \r
21314 \r
21315         003766' 512000  013743' INTER0: HLLZM   AC0,INTENT      ;AC0 CONTAINS INTF/ENTF FLAGS\r
21316 \r
21317         003767' 260740  001043' INTER1: PUSHJ   PP,GETSYM       ;GET A SYMBOL\r
21318         003770' 254000  003777'         JRST    INTER3          ;INVALID, SKIP\r
21319         003771' 260740  012610'         PUSHJ   PP,SSRCH        ;SEARCH THE TABLE\r
21320         003772' 205240  402400          MOVSI   ARG,SYMF!INTF!UNDF\r
21321         003773' 603240  002000          TLNE    ARG,UNDF        ;UNDEFINED?\r
21322         003774' 660600  040000          TRO     ER,ERRA         ;YES, FLAG ERROR\r
21323                                 IFN WFWSW,<TLNN ARG,VARF        ;LET HIM MAKE INTERNAL EVEN IF EXTF ON>\r
21324         003775' 607240  041000          TLNN    ARG,SYNF!EXTF\r
21325         003776' 674240  013743'         TDOA    ARG,INTENT                      ;SET APPROPRIATE FLAGS\r
21326         003777' 664600  040000  INTER3: TROA    ER,ERRA         ;FLAG ARG EROR AND SKIP\r
21327         004000' 260740  013034'         PUSHJ   PP,INSERQ       ;INSERT/UPDATE\r
21328         004001' 321400  003767'         JUMPCM  INTER1\r
21329         004002' 402000  013742'         SETZM EXTPNT    ;JUST IN CASE, SO AS NOT TO CONFUSE WORLD\r
21330         004003' 263740  000000          POPJ    PP,             ;NO, EXIT\r
21331 \r
21332 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 75\r
21333 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21334 \r
21335         004004' 260740  001043' EXTER0: PUSHJ   PP,GETSYM       ;GET A SYMBOL\r
21336         004005' 254000  004030'         JRST    EXTER4          ;INVALID, ERROR\r
21337         004006' 661600  000040  EXTER1: TLO     IO,DEFCRS       ;FLAG THIS AS A DEFINITION\r
21338         004007' 260740  012610'         PUSHJ   PP,SSRCH        ;OK, SEARCH SYMBOL TABLE\r
21339         004010' 254000  004015'         JRST    EXTER2          ;NOT THERE, INSERT IT\r
21340         004011' 607240  003100          TLNN    ARG,EXTF!VARF!UNDF\r
21341         004012' 664600  000040          TROA    ER,ERRE         ;FLAG ERROR AND BYPASS\r
21342         004013' 603240  001000          TLNE    ARG,EXTF        ;VALID, ALREADY DEFINED?\r
21343                                         JRST    [JUMP1  EXTER3  ;YES, BYPASS\r
21344                                                 TLZN ARG,UNDF   ;SKIP IF UNDEFINED ALSO\r
21345                                                 JRST    EXTER3  ;CONTINUE\r
21346                                                 ANDM ARG,(SX)   ;CLEAR UNDF ON PASS 2\r
21347         004014' 254000  014732'                 JRST    EXTER2] ;SET UP EXTERNAL NOW\r
21348         004015' 201300  000002  EXTER2: MOVEI V,2               ;NO, GET 2 CELLS FROM THE TREE\r
21349         004016' 273300  013377'         ADDB V,FREE\r
21350         004017' 311300  013552'         CAML    V,SYMBOL        ;HAVE WE RUN OUT OF CORE?\r
21351         004020' 260740  010276'         PUSHJ   PP,XCEEDS       ;YES, TRY TO BORROW SOME MORE\r
21352         004021' 275300  000002          SUBI    V,2             ;GET RIGHT CELL FOR POINTER\r
21353         004022' 403446  000000          SETZB   RC,0(V)         ;ALL SET, ZERO VALUES\r
21354         004023' 205240  401000          MOVSI   ARG,SYMF!EXTF\r
21355         004024' 260740  013036'         PUSHJ   PP,INSERT       ;INSERT/UPDATE IT\r
21356         004025' 205240  004000          MOVSI   ARG,PNTF\r
21357         004026' 436244  000000          IORM    ARG,0(SX)\r
21358         004027' 334244  777777          SKIPA ARG,-1(SX)                ;GET THE SIXBIT FOR THE NAME\r
21359         004030' 664600  040000  EXTER4: TROA ER,ERRA    ;FLAG AS ERROR\r
21360         004031' 202246  000001          MOVEM ARG,1(V)          ;AND STORE THAT IN CASE SYMBOL TABLE MOVES\r
21361         004032' 321400  004004' EXTER3: JUMPCM  EXTER0\r
21362         004033' 263740  000000          POPJ    PP,             ;NO, EXIT\r
21363 \r
21364 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 76\r
21365 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21366 \r
21367         004034' 261740  000015  EVAL10: PUSH    PP,RX\r
21368         004035' 541640  000012          HRRI    RX,^D10\r
21369         004036' 260740  001077'         PUSHJ   PP,EVALEX       ;EVALUATE\r
21370         004037' 262740  000015          POP     PP,RX           ;RESET RADIX\r
21371         004040' 322440  000455'         JUMPE   RC,POPOUT       ;EXIT IF ABSOLUTE\r
21372 \r
21373         004041' 332000  013742' QEXT:   SKIPE   EXTPNT          ;ANY POSSIBILITIES?\r
21374         004042' 664600  000040          TROA    ER,ERRE         ;YES, FLAG EXTERNAL ERROR\r
21375         004043' 660600  004000          TRO     ER,ERRR         ;NO, FLAG RELOCATION ERROR\r
21376         004044' 513000  000011          HLLZS   RC              ;CLEAR RELOCATION/EXTERNAL\r
21377         004045' 263740  000000          POPJ    PP,\r
21378 \r
21379         004046' 260740  001077' EVALXQ: PUSHJ   PP,EVALEX       ;EVALUATE EXPRESSION\r
21380         004047' 627440  777776          TLZN RC,-2              ;LEFT HALF EXTERNAL\r
21381         004050' 622440  777776          TRZE    RC,-2           ;WAS AN EXTERNAL FOUND?\r
21382         004051' 660600  000040          TRO     ER,ERRE         ;YES, FLAG ERROR\r
21383         004052' 263740  000000          POPJ    PP,             ;RETURN\r
21384 \r
21385 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 77\r
21386 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21387 \r
21388         004053' 260740  001043' OPDEF0: PUSHJ   PP,GETSYM       ;GET THE FIRST SYMBOL\r
21389         004054' 263740  000000          POPJ    PP,             ;ERROR IF INVALID SYMBOL\r
21390         004055' 302340  000073          CAIE    C,73            ;"["?\r
21391         004056' 254000  003400'         JRST    ERRAX           ;NO, ERROR\r
21392         004057' 261740  000000          PUSH    PP,AC0          ;STACK MNEMONIC\r
21393         004060' 350000  013773'         AOS     LITLVL          ;SHORT OUT LOCATION INCREMENT\r
21394         004061' 260740  000125'         PUSHJ   PP,STMNT        ;EVALUATE STATEMENT\r
21395         004062' 335000  013555'         SKIPGE  STPX            ;CODE STORED?\r
21396         004063' 664600  040000          TROA    ER,ERRA         ;NO,"A" ERROR\r
21397         004064' 260740  002776'         PUSHJ   PP,DSTOW        ;GET AND DECODE VALUE\r
21398         004065' 370000  013773'         SOS     LITLVL\r
21399         004066' 250017  000000          EXCH    AC0,0(PP)       ;EXCHANGE VALUE FOR MNEMONIC\r
21400         004067' 261740  000011          PUSH    PP,RC           ;STACK RELOCATION\r
21401         004070' 661600  000040          TLO     IO,DEFCRS       ;SAY WE ARE DEFINING IT\r
21402         004071' 260740  012573'         PUSHJ   PP,MSRCH        ;SEARCH SYMBOL TABLE\r
21403         004072' 205240  010000          MOVSI   ARG,OPDF        ;NOT FOUND\r
21404         004073' 262740  000011          POP     PP,RC           ;RESTORE VALUES\r
21405         004074' 262740  000006          POP     PP,V\r
21406         004075' 603240  060000          TLNE    ARG,SYNF!MACF\r
21407         004076' 660600  040000          TRO     ER,ERRA         ;YES "A" ERROR\r
21408         004077' 606600  040000          TRNN    ER,ERRA         ;ERROR?\r
21409         004100' 260740  013036'         PUSHJ   PP,INSERT       ;NO, INSERT/UPDATE\r
21410         004101' 621600  000040          TLZ IO,DEFCRS           ;JUST IN CASE\r
21411         004102' 260740  004543'         PUSHJ   PP,BYPASS\r
21412         004103' 254000  003003'         JRST    STOWI           ;BE SURE STOW IS RESET\r
21413 \r
21414 \r
21415         004104' 200000  014000' DEPHA0: MOVE    AC0,LOCO\r
21416         004105' 334440  014006'         SKIPA   RC,MODO         ;SET TO OUTPUT VALUES AND SKIP\r
21417         004106' 260740  004046' PHASE0: PUSHJ   PP,EVALXQ       ;EVALUATE AND CHECK FOR EXTERNAL\r
21418         004107' 202000  013777'         MOVEM   AC0,LOCA        ;SET ASSEMBLY LOCATION COUNTER\r
21419         004110' 202440  014004'         MOVEM   RC,MODA\r
21420         004111' 254000  003424'         JRST    BLOCK2\r
21421 \r
21422 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 78\r
21423 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21424 \r
21425         004112' 321600  003400' ASSIGN: JUMPAD  ERRAX           ;NO, ERROR\r
21426         004113' 260740  004126'         PUSHJ   PP,ASSIG1\r
21427         004114' 603600  000001          TLNE    IO,IOSALL       ;SUPPRESS ALL?\r
21428         004115' 326540  003447'         JUMPN   MRP,CPOPJ       ;IF IN MACRO\r
21429         004116' 202440  013775' ASSIG7: MOVEM   RC,ASGBLK\r
21430         004117' 602440  777776          TRNE    RC,-2           ;EXTERNAL\r
21431         004120' 513000  013775'         HLLZS   ASGBLK          ;YES,CLEAR RELOCATION\r
21432         004121' 603440  000001          TLNE    RC,1            ;LEFT HALF NOT RELOC?\r
21433         004122' 603440  777776          TLNE    RC,-2           ;...\r
21434         004123' 563000  013775'         HRROS   ASGBLK          ;YES, SET FLAG\r
21435         004124' 202300  013776'         MOVEM   V,LOCBLK\r
21436         004125' 263740  000000          POPJ    PP,\r
21437 \r
21438         004126' 261740  000000  ASSIG1: PUSH    PP,AC0          ;SAVE SYMBOL\r
21439         004127' 403000  013742'         SETZB AC0,EXTPNT        ;SPECIAL CHECK FOR == WFW\r
21440         004130' 260740  006531'         PUSHJ PP,PEEK           ;IS THE NEXT ON =\r
21441         004131' 302340  000075          CAIE    C,"="\r
21442         004132' 254000  004136'         JRST    ASSIG5\r
21443         004133' 661000  100000          TLO     AC0,NOOUTF      ;YES, NOT OUT TO DDT WFW\r
21444         004134' 260740  001363'         PUSHJ   PP,GETCHR       ;PROCESS THE CHAR.\r
21445         004135' 260740  006531'         PUSHJ   PP,PEEK         ;CHECK FOR ==: DMN\r
21446         004136' 302340  000072  ASSIG5: CAIE    C,":"           ;IS IT\r
21447         004137' 254000  004142'         JRST    ASSIG6          ;NO\r
21448         004140' 661000  000400          TLO     AC0,INTF        ;MAKE INTERNAL\r
21449         004141' 260740  001363'         PUSHJ   PP,GETCHR       ;REPEAT IT\r
21450         004142' 202000  014103' ASSIG6: MOVEM AC0,HDAS          ;STORE THESE BITS WFW\r
21451         004143' 260740  001066'         PUSHJ   PP,EVALCM       ;EVALUATE EXPRESSION\r
21452         004144' 250017  000000          EXCH    AC0,0(PP)       ;SWAP VALUE FOR SYMBOL\r
21453         004145' 261740  000011          PUSH    PP,RC\r
21454         004146' 606440  777776          TRNN RC,-2              ;CHECK EXTERNAL AGREEMENT\r
21455         004147' 254000  004154'         JRST ASSIG2\r
21456         004150' 553000  000011          HRRZS RC\r
21457         004151' 550240  013742'         HRRZ ARG,EXTPNT\r
21458         004152' 312440  000005          CAME RC,ARG\r
21459         004153' 260740  004041'         PUSHJ   PP,QEXT         ;EXTERNAL OR RELOCATION ERROR\r
21460         004154' 554457  000000  ASSIG2: HLRZ RC,(PP)\r
21461         004155' 606440  777776          TRNN RC,-2\r
21462         004156' 254000  004162'         JRST ASSIG3\r
21463         004157' 554240  013742'         HLRZ ARG,EXTPNT\r
21464         004160' 312440  000005          CAME RC,ARG\r
21465         004161' 260740  004041'         PUSHJ   PP,QEXT\r
21466         004162' 661600  000040  ASSIG3: TLO IO,DEFCRS\r
21467         004163' 260740  012610'         PUSHJ   PP,SSRCH\r
21468         004164' 205240  400000          MOVSI   ARG,SYMF\r
21469         004165' 434240  014103'         IOR ARG,HDAS    ;WFW\r
21470         004166' 603240  002000          TLNE    ARG,UNDF        ;WAS IT UNDEFINED\r
21471         004167' 621240  005000          TLZ     ARG,EXTF!PNTF   ;YES,CLEAR EXTF NOW\r
21472         004170' 621240  002100          TLZ     ARG,UNDF!VARF   ;CANCEL UNDEFINED AND VARIABLE FLAGS\r
21473         004171' 402000  013742'         SETZM EXTPNT            ;FOR REST OF WORLD\r
21474         004172' 262740  000011          POP     PP,RC\r
21475         004173' 602600  577760          TRNE    ER,ERRORS-ERRQ\r
21476         004174' 400440  000000          SETZ    RC,             ;CLEAR RELOCATION\r
21477         004175' 262740  000006          POP     PP,V\r
21478 \r
21479 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 78-1\r
21480 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21481 \r
21482         004176' 602600  002000          TRNE    ER,ERRU         ;WAS VALUE UNDEFINED?\r
21483         004177' 661240  002000          TLO     ARG,UNDF        ;YES,SO TURN UNDF ON\r
21484         004200' 603240  201000          TLNE    ARG,TAGF!EXTF\r
21485         004201' 254000  003400'         JRST    ERRAX\r
21486         004202' 254000  013036'         JRST    INSERT\r
21487 \r
21488 \r
21489 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 79\r
21490 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21491 \r
21492         004203' 260740  004235' LOC0:   PUSHJ   PP,HIGHQ        ;AC0=0,0\r
21493         004204' 261740  000000          PUSH    PP,AC0          ;SAVE MODE REQUESTED\r
21494         004205' 557000  000000          HLRZS   AC0             ;PUT MODE IN RIGHT HALF\r
21495         004206' 326000  004227'         JUMPN   AC0,RELOC0      ;RELOC PSEUDO-OP\r
21496         004207' 316000  014006'         CAMN    AC0,MODO        ;SAME AS PRESENT MODE?\r
21497                                         JRST    [HRRZ AC0,LOCO  ;YES\r
21498                                                 EXCH AC0,ABSLOC ;EXCH VALUES\r
21499         004210' 254000  014737'                 JRST    LOC01]\r
21500         004211' 550000  014000'         HRRZ    AC0,LOCO        ;NO, GET CURRENT VALUE\r
21501         004212' 202000  014001'         MOVEM   AC0,RELLOC      ;SAVE IT\r
21502         004213' 200000  014002'         MOVE    AC0,ABSLOC      ;GET LAST RELOC VALUE\r
21503         004214' 260740  004543' LOC01:  PUSHJ   PP,BYPASS       ;SKIP BLANKS\r
21504         004215' 661600  000004          TLO     IO,IORPTC\r
21505         004216' 302340  000033          CAIE    C,EOL           ;USE PREVIOUS VALUE IF NULL ARGUMENT\r
21506         004217' 260740  004046'         PUSHJ   PP,EVALXQ       ;GET EXPRESSION AND TEST EXTERNAL\r
21507         004220' 542017  000000          HRRM    AC0,(PP)        ;STORE NEW VALUE\r
21508         004221' 262740  000000          POP     PP,AC0          ;RETRIEVE STORED MODE AND VALUE\r
21509         004222' 552000  013777' LOC10:  HRRZM   AC0,LOCA        ;SET ASSEMBLY LOCATION\r
21510         004223' 552000  014000'         HRRZM   AC0,LOCO        ;AND OUTPUT LOCATION\r
21511         004224' 556000  014004'         HLRZM   AC0,MODA        ;SET MODE\r
21512         004225' 556000  014006'         HLRZM   AC0,MODO\r
21513         004226' 254000  003424'         JRST    BLOCK2\r
21514 \r
21515         004227' 316000  014006' RELOC0: CAMN    AC0,MODO\r
21516                                         JRST    [HRRZ   AC0,LOCO\r
21517                                                 EXCH    AC0,RELLOC\r
21518         004230' 254000  014742'                 JRST    LOC01]\r
21519         004231' 550000  014000'         HRRZ    AC0,LOCO\r
21520         004232' 202000  014002'         MOVEM   AC0,ABSLOC\r
21521         004233' 200000  014001'         MOVE    AC0,RELLOC\r
21522         004234' 254000  004214'         JRST    LOC01\r
21523 \r
21524 \r
21525 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 80\r
21526 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21527 \r
21528                                 IFN RENTSW,<\r
21529                                 HISEG1: PUSHJ   PP,HIGHQ        ;SET CURRENT PROGRAM BREAK\r
21530                                         PUSHJ   PP,COUTD        ;DUMP CURRENT TYPE OF BLOCK\r
21531                                         SKIPN   HISNSW          ;IF WE HAVE SEEN IT BEFORE\r
21532                                         SKIPE   HIGH            ;OR ANY RELOC CODE PUT OUT\r
21533                                         TRO     ER,ERRQ         ;FLAG AS AN ERROR\r
21534                                         PUSHJ   PP,BYPASS       ;GO GET EXPRESSION\r
21535                                         TLO     IO,IORPTC\r
21536                                         PUSHJ   PP,EVALXQ       ;CHECK FOR EXTERNAL\r
21537                                         ANDCMI  AC0,1777        ;ONLY ALLOWED TO START ON NEW K BOUND\r
21538                                         HRRZM   AC0,LOCA        ;SET LOC COUNTERS\r
21539                                         HRRZM   AC0,LOCO\r
21540                                         MOVEI   RC,1            ;ASSUME RELOCATABLE\r
21541                                         POPJ    PP,\r
21542                                 \r
21543                                 TWSEG0: PUSHJ   PP,HISEG1       ;COMMON CODE\r
21544                                         JUMPN   AC0,.+2         ;ARGUMENT SEEN\r
21545                                         MOVEI   AC0,400000      ;ASSUME 400000\r
21546                                         HRRZM   AC0,HMIN        ;SET OFSET OF HIGH SEG.\r
21547                                         HRRZM   AC0,HHIGH       ;INCASE NO HISEG CODE\r
21548                                         TLOA    AC0,(1B0)       ;SIGNAL TWO SEGMENTS AND SKIP\r
21549                                 \r
21550                                 HISEG0: PUSHJ   PP,HISEG1       ;COMMON CODE\r
21551                                 HISEG2: MOVEM   AC0,SVTYP3      ;SAVE THE HISEG ARG\r
21552                                         MOVEM   RC,MODA         ;SET MODES\r
21553                                         MOVEM   RC,MODO\r
21554                                         SETOM   HISNSW          ;WE HAVE ALREADY PUT ONE OUT\r
21555                                         JRST    BLOCK2          ;MAKE LISTING HAPPEN RIGHT>\r
21556 \r
21557                                 IFE RENTSW,<\r
21558                                         SYN     CPOPJ,HISEG0\r
21559                                         SYN     CPOPJ,TWSEG0>\r
21560 \r
21561                                         SYN     CPOPJ,ONFORM\r
21562                                         SYN     CPOPJ,OFFORM\r
21563 \r
21564 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 81\r
21565 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21566 \r
21567         004235'                 HIGHQ:\r
21568         004235' 200300  014000' HIGHQ1: MOVE    V,LOCO  ;GET ASSEMBLY LOCATION\r
21569         004236' 336000  014006'         SKIPN   MODO            ;IF ASSEMBLY MODE IS ABSOLUTE\r
21570                                         JRST    [CAMLE V,ABSHI  ;RECORED ABS HIGHEST ALSO\r
21571                                                 MOVEM V,ABSHI\r
21572         004237' 254000  014745'                 POPJ PP,]\r
21573                                 IFN RENTSW,<SKIPE       HMIN    ;IS IT A TWO SEGMENT PROGRAM?\r
21574                                         JRST    [CAMGE  V,HMIN  ;YES,IS THIS HIGH SEG.?\r
21575                                                 JRST    .+1     ;NO,STORE LOW SEGMENT\r
21576                                                 CAMLE   V,HHIGH ;YES,IS IT GREATER THAN "HHIGH"?\r
21577                                                 MOVEM   V,HHIGH ;YES,REPLACE WITH LARGER VALUE\r
21578                                                 POPJ    PP,]>\r
21579         004240' 313300  013735'         CAMLE   V,HIGH          ;IS IT GREATER THAN "HIGH"?\r
21580         004241' 202300  013735'         MOVEM   V,HIGH          ;YES, REPLACE WITH LARGER VALUE\r
21581         004242' 263740  000000          POPJ    PP,\r
21582         \r
21583         004243' 625640  200000  ONML:   TLZA FR,MWLFLG          ;MULTI-WORD LITERALS OK\r
21584         004244' 661640  200000  OFFML:  TLO FR,MWLFLG           ;NO\r
21585         004245' 263740  000000          POPJ PP,\r
21586 \r
21587         004246' 476000  013730' OFFSYM: SETOM   IONSYM  ;SUPRESS SYMBOL TABLE LISTING\r
21588         004247' 263740  000000          POPJ    PP,\r
21589 \r
21590         004250' 260740  001043' SUPRE0: PUSHJ PP,GETSYM ;GET A SYMBOL TO SUPRES\r
21591         004251' 254000  004255'         JRST SUPRE1     ;ERROR\r
21592         004252' 260740  012610'         PUSHJ PP,SSRCH  ;SYMBOL ONLY\r
21593         004253' 254000  004255'         JRST SUPRE1     ;GIVE ERROR MESSAGE\r
21594         004254' 665240  000004          TLOA ARG,SUPRBT ;SET THE SUPRESS BIT\r
21595         004255' 664600  040000  SUPRE1: TROA ER,ERRA\r
21596         004256' 436244  000000          IORM ARG,(SX)   ;PUT BACK\r
21597         004257' 321400  004250'         JUMPCM SUPRE0   ;ANY MORE?\r
21598         004260' 254000  004264'         JRST    SUPRS1\r
21599 \r
21600         004261' 260740  003111' SUPRSA: PUSHJ PP,LOOKUP ;SUPRESS ALL\r
21601         004262' 205240  000004          MOVSI ARG,SUPRBT\r
21602         004263' 436244  000000          IORM ARG,(SX)\r
21603         004264' 402000  013742' SUPRS1: SETZM EXTPNT    ;JUST IN CASE WE LOOKED ONE UP\r
21604         004265' 263740  000000          POPJ PP,\r
21605 \r
21606         004266' 321640  000455' XPUNG0: JUMP1   POPOUT\r
21607         004267' 260740  003111'         PUSHJ   PP,LOOKUP\r
21608         004270' 200244  000000          MOVE    ARG,(SX)        ;GET SYMBOL FLAGS\r
21609         004271' 607240  001610          TLNN    ARG,INTF!ENTF!EXTF!SPTR\r
21610         004272' 665240  000004          TLOA    ARG,SUPRBT      ;LOCAL SYMBOL,SO SUPPRESS IT\r
21611         004273' 402000  013742'         SETZM   EXTPNT\r
21612         004274' 202244  000000          MOVEM   ARG,(SX)        ;RESTORE FLAGS\r
21613         004275' 263740  000000          POPJ    PP,\r
21614 \r
21615 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 82\r
21616 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21617 \r
21618         004276' 325640  003450' TITLE0: JUMP2   REMAR0\r
21619         004277' 201200  000120          MOVEI   SX,.TBUF\r
21620         004300' 541000  013701'         HRRI    AC0,TBUF\r
21621         004301' 260740  004315'         PUSHJ PP,SUBTT1 ;GO READ IT\r
21622         004302' 202200  013700'         MOVEM   SX,TCNT         ;SAVE COUNT OF CHARS. WRITTEN\r
21623         004303' 332000  013733'         SKIPE   UNIVSN          ;WAS IT A UNIVERSAL?\r
21624         004304' 260740  005176'         PUSHJ   PP,ADDUNV       ;YES  ADD TO TABLE\r
21625         004305' 663600  000002          TLOE IO,IOTLSN  ;HAVE WE SEEN ONE\r
21626                                 IFE CCLSW,<TRO  ER,ERRM         ;YES, COMPLAIN>\r
21627         004306' 664600  000020  IFN CCLSW,<TROA ER,ERRM         ;YES, MESSAGE\r
21628         004307' 254000  004326'         JRST    PRNAM           ;PRINT NAME IF FIRST ONE>\r
21629         004310' 263740  000000          POPJ    PP,             ;EXIT OTHERWISE\r
21630 \r
21631         004311' 332000  013527' SUBTT0: SKIPE   SBUF            ;STORE FIRST SUBTTL ON PASS1\r
21632         004312' 321640  003450'         JUMP1   REMAR0          ;OTHERWISE EXIT IF PASS ONE\r
21633         004313' 201200  000120          MOVEI   SX,.SBUF\r
21634         004314' 541000  013527'         HRRI    AC0,SBUF\r
21635 \r
21636         004315' 260740  004543' SUBTT1: PUSHJ   PP,BYPASS       ;BYPASS LEADING BLANKS\r
21637         004316' 661600  000004          TLO     IO,IORPTC\r
21638         004317' 260740  001415' SUBTT3: PUSHJ   PP,CHARAC       ;GET ASCII CHARACTER\r
21639         004320' 136340  000000          IDPB    C,AC0           ;STORE IN BLOCK\r
21640         004321' 305340  000040          CAIGE   C,40            ;TEST FOR TERMINATOR\r
21641         004322' 306340  000011          CAIN    C,HT\r
21642         004323' 367200  004317'         SOJG    SX,SUBTT3       ;TEST FOR BUFFER FULL\r
21643         004324' 137440  000000          DPB     RC,AC0          ;END, STORE TERMINATOR\r
21644         004325' 364200  003447'         SOJA    SX,CPOPJ        ;COUNT NUL AND EXIT\r
21645 \r
21646                                 IFN CCLSW,<\r
21647         004326' 607600  001000  PRNAM:  TLNN IO,CRPGSW  ;NOT IF NOT RPG\r
21648         004327' 263740  000000          POPJ PP,\r
21649         004330' 261740  000000          PUSH    PP,AC0          ;SAVE AC0 DMN\r
21650         004331' 261740  000011          PUSH    PP,RC           ;AND RC\r
21651         004332' 200000  014676'         MOVE AC0,[POINT 7,TBUF]\r
21652         004333' 200200  014750'         MOVE SX,[POINT 7,OTBUF]\r
21653         004334' 201440  000006          MOVEI RC,6      ;MAX OF SIX CHRS\r
21654         004335' 134340  000000  PN1:    ILDB C,AC0\r
21655         004336' 303340  000040          CAILE C," "     ;CHECK FOR LEGAL\r
21656         004337' 303340  000172          CAILE C,"Z"+40  ;CHECK AGAINST LOWER CASE Z\r
21657         004340' 254000  004343'         JRST PN2\r
21658         004341' 136340  000004          IDPB C,SX       ;PUT IN OUTPUT BUFFER\r
21659         004342' 367440  004335'         SOJG RC,PN1     ;GET MORE\r
21660         004343' 201340  000000  PN2:    MOVEI C,0\r
21661         004344' 136340  000004          IDPB C,SX       ;TERMINATOR\r
21662         004345' 051140  014007'         TTCALL  3,OTBUF\r
21663                                         TTCALL  3,[ASCIZ /\r
21664         004346' 051140  014751' /]\r
21665         004347' 262740  000011          POP     PP,RC\r
21666         004350' 262740  000000          POP     PP,AC0          ;RESTORE AC0 DMN\r
21667         004351' 263740  000000          POPJ PP,\r
21668                                 >\r
21669 \r
21670 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 83\r
21671 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21672 \r
21673         004352' 260740  001043' SYN0:   PUSHJ   PP,GETSYM       ;GET THE FIRST SYMBOL\r
21674         004353' 254000  003400'         JRST    ERRAX           ;ERROR, EXIT\r
21675         004354' 260740  012573'         PUSHJ   PP,MSRCH        ;TRY FOR MACRO/OPDEF\r
21676         004355' 254000  004373'         JRST    SYN3            ;NO,0THRY FOR OPERAND\r
21677         004356' 201200  012573' SYN1:   MOVEI   SX,MSRCH        ;YES, SET FLAG\r
21678         004357' 260740  007473' SYN2:   PUSHJ   PP,SAVEXS       ;SAVE REGISTERS\r
21679         004360' 325400  003400'         JUMPNC  ERRAX           ;ERROR IF NO COMMA\r
21680         004361' 260740  001043'         PUSHJ   PP,GETSYM       ;GET THE SECOND SYMBOL\r
21681         004362' 263740  000000          POPJ    PP,\r
21682         004363' 260760  013521'         PUSHJ   PP,@SAVBLK+SX   ;SEARCH FOR SECOND SYMBOL\r
21683         004364' 255000  000000          JFCL\r
21684         004365' 200240  013522'         MOVE    ARG,SAVBLK+ARG  ;GET VALUES\r
21685         004366' 200440  013526'         MOVE    RC,SAVBLK+RC\r
21686         004367' 200300  013523'         MOVE    V,SAVBLK+V\r
21687         004370' 603240  020000          TLNE    ARG,MACF        ;MACRO?\r
21688         004371' 260740  006543'         PUSHJ   PP,REFINC       ;YES, INCREMENT REFERENCE\r
21689         004372' 254000  013036'         JRST    INSERT          ;INSERT AND EXIT\r
21690 \r
21691         004373' 260740  012610' SYN3:   PUSHJ   PP,SSRCH        ;SEARCH FOR OPERAND\r
21692         004374' 254000  004404'         JRST    SYN4            ;NOT FOUND, TRY OP CODE\r
21693         004375' 661240  040000          TLO     ARG,SYNF        ;FLAG AS SYNONYM\r
21694         004376' 603240  001000          TLNE    ARG,EXTF        ;EXTERNAL?\r
21695         004377' 550300  000005          HRRZ    V,ARG           ;YES, RELPACE WITH POINTER\r
21696         004400' 201200  012610'         MOVEI   SX,SSRCH        ;SET FLAG\r
21697         004401' 607240  000100          TLNN ARG,VARF   ;DO NOT LET HIM SYN A VARIABLE\r
21698         004402' 254000  004357'         JRST    SYN2\r
21699         004403' 254000  003400'         JRST ERRAX\r
21700 \r
21701         004404' 260740  010754' SYN4:   PUSHJ   PP,OPTSCH       ;SEARCH FOR OP-CODE\r
21702         004405' 254000  003400'         JRST    ERRAX           ;NOT FOUND, EXIT WITH ERROR\r
21703         004406' 205240  040000          MOVSI   ARG,SYNF        ;FLAG AS SYNONYM\r
21704         004407' 254000  004356'         JRST    SYN1\r
21705 \r
21706 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 84\r
21707 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21708 \r
21709         004410' 260740  001043' PURGE0: PUSHJ   PP,GETSYM       ;GET A MNEMONIC\r
21710                                         JRST    [TRZ ER,ERRA    ;CLEAR ERROR\r
21711         004411' 254000  014752'                 POPJ    PP,]    ;AND RETURN\r
21712         004412' 260740  012573'         PUSHJ   PP,MSRCH        ;SEARCH MACRO SYMBOL TABLE\r
21713         004413' 254000  004421'         JRST    PURGE2          ;NOT FOUND, TRY SYMBOLS\r
21714         004414' 261740  000010          PUSH    PP,CS           ;SAVE CS AS IT MAY GET GARBAGED\r
21715         004415' 603240  020000          TLNE    ARG,MACF        ;MACRO?\r
21716         004416' 260740  006546'         PUSHJ   PP,REFDEC       ;YES, DECREMENT THE REFERENCE\r
21717         004417' 262740  000010          POP     PP,CS\r
21718         004420' 254000  004434'         JRST    PURGE4          ;REMOVE SYMBOL FROM TABLE\r
21719 \r
21720         004421' 260740  012610' PURGE2: PUSHJ   PP,SSRCH        ;TRY OPERAND SYMBOL TABLE\r
21721         004422' 254000  004435'         JRST    PURGE5          ;NOT FOUND GET NEXT SYMBOL\r
21722         004423' 606440  777776          TRNN RC,-2              ;CHECK COMPLEX EXTERNAL\r
21723         004424' 603440  777776          TLNE RC,-2\r
21724         004425' 603240  040000          TLNE ARG,SYNF\r
21725         004426' 254000  004430'         JRST    .+2\r
21726         004427' 254000  004433'         JRST PURGE3\r
21727         004430' 603240  003000          TLNE    ARG,EXTF!UNDF   ;ERROR IF EXTERNAL OR UNDEFINED\r
21728         004431' 603240  040000          TLNE    ARG,SYNF        ;BUT NOT A SYNONYM\r
21729         004432' 254000  004434'         JRST    PURGE4\r
21730         004433' 664600  040000  PURGE3: TROA    ER,ERRA         ;NOT FOUND, ERROR\r
21731         004434' 260740  013115' PURGE4: PUSHJ   PP,REMOVE       ;REMOVE FROM THE SYMBOL TABLE\r
21732         004435' 321400  004410' PURGE5: JUMPCM  PURGE0\r
21733         004436' 263740  000000          POPJ    PP,             ;EXIT\r
21734 \r
21735 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 85\r
21736 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21737 \r
21738         004437' 603240  002000  OPD1:   TLNE    ARG,UNDF        ;IF OPDEF IS UNDEFINED\r
21739         004440' 660600  000200          TRO     ER,ERRO         ;GIVE "O" ERROR\r
21740         004441' 200000  000006  OPD:    MOVE    AC0,V           ;PUT VALUE IN AC0\r
21741         004442' 254000  004445'         JRST    OP\r
21742         004443' 205100  301117  IOP:    MOVSI   AC2,(POINT 9,0(PP),11)\r
21743         004444' 665600  000020          TLOA    IO,IOIOPF       ;SET "IOP SEEN" AND SKIP\r
21744         004445' 205100  270417  OP:     MOVSI   AC2,(POINT 4,0(PP),12)\r
21745         004446' 261740  000011          PUSH    PP,RC\r
21746         004447' 261740  000000          PUSH    PP,AC0          ;STACK CODE \r
21747         004450' 261740  000002          PUSH    PP,AC2\r
21748         004451' 260740  001077'         PUSHJ   PP,EVALEX       ;EVALUATE FIRST EXPRESSION\r
21749         004452' 262740  000002          POP     PP,AC2\r
21750         004453' 325400  004465'         JUMPNC  OP2\r
21751         004454' 260740  001363' OP1B:   PUSHJ   PP,GETCHR       ;GET A CHARACTER\r
21752         004455' 321400  004676'         JUMPCM XWD5             ;PROCESS COMMA COMMA IN XWD\r
21753         004456' 661600  000004          TLO     IO,IORPTC       ;NOT A COMMA,REPEAT IT\r
21754         004457' 135040  000002          LDB     AC1,AC2\r
21755         004460' 270040  000000          ADD     AC1,AC0\r
21756         004461' 137040  000002          DPB     AC1,AC2\r
21757         004462' 322440  004464'         JUMPE   RC,OP1A         ;EXTERNAL OR RELOCATABLE?\r
21758         004463' 260740  004041'         PUSHJ   PP,QEXT         ;YES, DETERMINE WHICH AND FLAG AN ERROR\r
21759 \r
21760         004464' 260740  001077' OP1A:   PUSHJ   PP,EVALEX       ;GET ADDRESS PART\r
21761         004465' 260740  004474' OP2:    PUSHJ   PP,EVADR        ;EVALUATE STANDARD ADDRESS\r
21762         004466' 262740  000000  OP3:    POP     PP,AC0          ;PUT IN AC0\r
21763         004467' 262740  000011          POP     PP,RC\r
21764         004470' 332017  000000          SKIPE   (PP)            ;CAME FROM EVALCM?\r
21765         004471' 254000  002751'         JRST    STOW            ;NO,STOW CODE AND EXIT\r
21766         004472' 262740  000001          POP     PP,AC1          ;YES,EXIT IMMEDIATELY\r
21767         004473' 263740  000000          POPJ    PP,\r
21768 \r
21769 \r
21770 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 86\r
21771 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21772 \r
21773         004474'                 EVADR:                          ;EVALUATE STANDARD ADDRESS\r
21774         004474' 607000  777777  IFE IIISW,<TLNN AC0,-1          ;OK IF ALL 0'S\r
21775         004475' 254000  004501'         JRST    .+4             ;IT WAS\r
21776         004476' 641000  777777          TLC     AC0,-1          ;CHANGE ALL ONES TO ZEROS\r
21777         004477' 643000  777777          TLCE    AC0,-1          ;OK IF ALL 1'S\r
21778         004500' 660600  200000          TRO     ER,ERRQ         ;NO,FLAG Q ERROR>\r
21779         004501' 270017  777777          ADD     AC0,-1(PP)      ;ADD ADDRESS PORTIONS\r
21780         004502' 500017  777777          HLL     AC0,-1(PP)      ;GET LEFT HALF\r
21781         004503' 623640  020000          TLZE    FR,INDSW        ;INDIRECT BIT?\r
21782         004504' 661000  000020          TLO     AC0,(Z @)       ;YES, PUT IT IN\r
21783         004505' 202017  777777          MOVEM   AC0,-1(PP)      ;RE-STACK CODE\r
21784         004506' 270457  777776          ADD     RC,-2(PP)       ;UPDATE RELOCATION\r
21785         004507' 542457  777776          HRRM    RC,-2(PP)       ;USE HALF WORD ADD\r
21786         004510' 302340  000010          CAIE    C,10            ;"("?\r
21787         004511' 263740  000000          POPJ    PP,             ;NO, EXIT\r
21788 \r
21789         004512' 207000  013742'         MOVSS   EXTPNT          ;WFW\r
21790         004513' 260740  001066'         PUSHJ   PP,EVALCM       ;EVALUATE\r
21791         004514' 207000  013742'         MOVSS   EXTPNT          ;WFW\r
21792         004515' 207300  000000          MOVSS   V,AC0           ;SWAP HALVES\r
21793         004516' 207200  000011  IFE IIISW,<MOVSS SX,RC\r
21794         004517' 434200  000006          IOR     SX,V            ;MERGE RELOCATION\r
21795         004520' 606200  777777          TRNN    SX,-1           ;RIGHT HALF ZERO?\r
21796         004521' 254000  004533'         JRST    OP2A            ;YES, DO SIMPLE ADD\r
21797         004522' 200240  000011          MOVE    ARG,RC          ;NO, SWAP RC INTO ARG>\r
21798                                 IFN IIISW,<MOVSS ARG,RC>\r
21799         004523' 270317  777777          ADD     V,-1(PP)        ;ADD RIGHT HALVES\r
21800         004524' 270257  777776          ADD     ARG,-2(PP)\r
21801         004525' 542317  777777          HRRM    V,-1(PP)        ;UPDATE WITHOUT CARRY\r
21802         004526' 542257  777776          HRRM    ARG,-2(PP)\r
21803         004527' 513000  000000          HLLZS   AC0             ;PREPARE LEFT HALVES\r
21804         004530' 513000  000011          HLLZS   RC\r
21805         004531' 603200  777777  IFE IIISW,<TLNE SX,-1           ;IS LEFT HALF ZERO?\r
21806         004532' 660600  200000          TRO     ER,ERRQ         ;NO FLAG FORMAT ERROR\r
21807         004533' 603440  777777  OP2A:   TLNE    RC,-1           ;RELOCATION FOR LEFT HALF?\r
21808         004534' 260740  004546'         PUSHJ   PP,OP2A1        ;YES,IS IT LEGAL?\r
21809         004535' 603000  777000          TLNE    AC0,777000      ;OP CODE FIELD USED?\r
21810                                         JRST    [EXCH AC0,-1(PP);YES, GET STORED CODE\r
21811                                                 TLNE AC0,777000 ;OP CODE FIELD BEEN SET?\r
21812                                                 TRO ER,ERRQ     ;YES, MOST LIKELY AN ERROR\r
21813                                                 EXCH AC0,-1(PP)\r
21814         004536' 254000  014754'                 JRST    .+1]    ;RETURN TO ADD >\r
21815         004537' 272017  777777          ADDM    AC0,-1(PP)      ;MERGE WITH PREVIOUS VALUE\r
21816         004540' 272457  777776          ADDM    RC,-2(PP)\r
21817         004541' 302340  000011          CAIE    C,11            ;")"?\r
21818         004542' 254000  003400'         JRST    ERRAX           ;NO, FLAG ERROR\r
21819                                                                 ;YES, BYPASS PARENTHESIS\r
21820         004543'                 BYPASS:\r
21821         004543' 260740  001363' BYPAS1: PUSHJ   PP,GETCHR\r
21822         004544' 322340  004543' BYPAS2: JUMPE   C,.-1           ;SKIP TRAILING BLANKS\r
21823         004545' 263740  000000          POPJ    PP,             ;EXIT\r
21824 \r
21825 \r
21826 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 87\r
21827 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21828 \r
21829                                 IFE IIISW,<\r
21830         004546' 250457  777776  OP2A1:  EXCH    RC,-2(PP)       ;GET STORED CODE\r
21831         004547' 607440  777777          TLNN    RC,-1           ;OK IF ALL ZERO\r
21832         004550' 254000  004554'         JRST    OP2A2           ;OK SO RETURN\r
21833         004551' 641440  777777          TLC     RC,-1           ;CHANGE ALL ONES TO ZEROS\r
21834         004552' 643440  777777          TLCE    RC,-1           ;OK IF ALL ONES\r
21835         004553' 660600  200000          TRO     ER,ERRQ         ;OTHERWISE A "Q" ERROR\r
21836         004554' 250457  777776  OP2A2:  EXCH    RC,-2(PP)       ;GET RC,BACK\r
21837         004555' 263740  000000          POPJ    PP,             ;AND RETURN>\r
21838 \r
21839 \r
21840         004556' 514000  000015  EXPRES: HRLZ    AC0,RX          ;FUDGE FOR OCT0\r
21841 \r
21842         004557' 261740  000015  OCT0:   PUSH    PP,RX\r
21843         004560' 544640  000000          HLR     RX,AC0\r
21844         004561' 260740  001077' OCT1:   PUSHJ   PP,EVALEX       ;EVALUATE\r
21845         004562' 260740  002751'         PUSHJ   PP,STOW         ;STOW CODE\r
21846         004563' 321400  004561'         JUMPCM  OCT1\r
21847         004564' 262740  000015          POP     PP,RX           ;YES, RESTORE RADIX\r
21848         004565' 263740  000000          POPJ    PP,             ;EXIT\r
21849 \r
21850 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 88\r
21851 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21852 \r
21853         004566' 205440  440600  SIXB10: MOVSI   RC,(POINT 6,AC0)        ;SET UP POINTER\r
21854         004567' 201000  000000          MOVEI   AC0,0           ;CLEAR WORD\r
21855 \r
21856         004570' 260740  001445' SIXB20: PUSHJ   PP,CHARL        ;GET NEXT CHARACTER\r
21857         004571' 316340  000004          CAMN    C,SX            ;IS THIS PRESET DELIMITER?\r
21858         004572' 254000  004644'         JRST    ASC60           ;YES\r
21859         004573' 301340  000141          CAIL C,"A"+40\r
21860         004574' 303340  000172          CAILE C,"Z"+40\r
21861         004575' 254000  004577'         JRST    .+2\r
21862         004576' 624340  000100          TRZA    C,100           ;CONVERT LOWER CASE TO SIXBIT\r
21863         004577' 275340  000040          SUBI    C,40            ;CONVERT TO SIXBIT\r
21864         004600' 321340  004641'         JUMPL   C,ASC55         ;TEST FOR INVALID CHARACTER\r
21865         004601' 136340  000011          IDPB    C,RC            ;NO, DEPOSIT THE BYTE\r
21866         004602' 603440  770000          TLNE    RC,770000       ;IS THE WORD FULL?\r
21867         004603' 254000  004570'         JRST    SIXB20          ;NO, GET NEXT CHARACTER\r
21868         004604' 260740  002750'         PUSHJ   PP,STOWZ        ;YES, STORE\r
21869         004605' 254000  004566'         JRST    SIXB10          ;GET NEXT WORD\r
21870 \r
21871 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 89\r
21872 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21873 \r
21874         004606' 510140  000000  ASCII0: HLLZ    SDEL,AC0        ;STORE ASCII/ASCIZ FLAG\r
21875         004607' 260740  001445' ASC10:  PUSHJ   PP,CHARL        ;GET FIRST NON-BLANK\r
21876         004610' 302340  000040          CAIE    C," "\r
21877         004611' 306340  000011          CAIN    C,HT\r
21878         004612' 254000  004607'         JRST    ASC10\r
21879         004613' 307340  000015          CAIG C,CR               ;CHECK FOR CRRET AS DELIM\r
21880         004614' 305340  000012          CAIGE C,LF\r
21881         004615' 334200  014101'         SKIPA   SX,SEQNO2\r
21882         004616' 254000  003400'         JRST ERRAX\r
21883         004617' 202200  013762'         MOVEM SX,TXTSEQ         ;SAVE SEQ AND PAGE\r
21884         004620' 200200  014100'         MOVE SX,PAGENO\r
21885         004621' 202200  013761'         MOVEM SX,TXTPG\r
21886         004622' 476000  013746'         SETOM INTXT\r
21887         004623' 200200  000007          MOVE    SX,C            ;SAVE FOR COMPARISON\r
21888         004624' 327140  004566'         JUMPG   SDEL,SIXB10     ;BRANCH IF SIXBIT\r
21889 \r
21890         004625' 205440  440700  ASC20:  MOVSI   RC,(POINT 7,AC0)        ;SET UP POINTER\r
21891         004626' 603140  200000          TLNE    SDEL,200000     ;THIS BIT (AND BIT0) IN FOR COMMENT\r
21892         004627' 205440  440000          MOVSI RC,440000         ;SO NOTHING WILL BE DEPOSITED\r
21893         004630' 201000  000000  IFE IIISW,<MOVEI AC0,0          ;CLEAR WORD>\r
21894                                 IFN IIISW,<TLNE SDEL,100000     ;ASCID?\r
21895                                         TLZA    SDEL,400000     ;YES, ZERO ASCIZ BIT\r
21896                                         TDZA    AC0,AC0         ;NO, ZERO WORD\r
21897                                         MOVE    AC0,[BYTE (7) 10,10,10,10,10 (1) 1]     ;YES, A WORD FULL OF BACKSPACES\r
21898                                 >\r
21899         004631' 260740  001445' ASC30:  PUSHJ   PP,CHARL        ;GET ASCII CHARACTER AND LIST\r
21900         004632' 316340  000004          CAMN    C,SX            ;TEST FOR DELIMITER\r
21901         004633' 254000  004642'         JRST    ASC50           ;FOUND\r
21902         004634' 136340  000011          IDPB    C,RC            ;DEPOSIT BYTE\r
21903         004635' 603440  760000          TLNE    RC,760000       ;HAVE WE FINISHED WORD?\r
21904         004636' 254000  004631'         JRST    ASC30           ;NO,GET NEXT CHARACTER\r
21905         004637' 260740  002750'         PUSHJ   PP,STOWZ        ;YES, STOW IT\r
21906         004640' 254000  004625'         JRST    ASC20           ;GET NEXT WORD\r
21907 \r
21908         004641' 634400  000010  ASC55:  TDZA    CS,CS           ;ZERO CS IN CASE NESTED\r
21909         004642' 634440  000003  ASC50:  TDZA    RC,SDEL         ;TEST FOR ASCIIZ\r
21910         004643' 664600  040000          TROA    ER,ERRA         ;SIXBIT ERROR EXIT\r
21911         004644' 260740  004543' ASC60:  PUSHJ   PP,BYPAS1       ;POLISH OFF TERMINATOR\r
21912         004645' 402000  013746'         SETZM INTXT     ;WE ARE OUT OF IT\r
21913                                 IFN IIISW,<TLNN SDEL,100000     ;NO EXTRA WORDS FOR ASCID>\r
21914         004646' 420440  013555'         ANDCM   RC,STPX         ;STORE AT LEAST ONE WORD\r
21915         004647' 607140  200000          TLNN SDEL,200000        ;GET OUT WITHOUT STORING\r
21916         004650' 325440  002750'         JUMPGE  RC,STOWZ        ;STOW\r
21917         004651' 263740  000000          POPJ    PP,             ;ASCII, NO BYTES STORED, SO EXIT\r
21918 \r
21919 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 90\r
21920 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21921 \r
21922         004652'                 POINT0:\r
21923         004652' 261740  000011          PUSH    PP,RC           ;STACK REGISTERS\r
21924         004653' 261740  000000          PUSH    PP,AC0\r
21925         004654' 260740  004034'         PUSHJ   PP,EVAL10       ;EVALUATE RADIX 10\r
21926         004655' 137000  014761'         DPB     AC0,[POINT 6,0(PP),11]  ;STORE BYTE SIZE\r
21927         004656' 325400  004665'         JUMPNC  POINT2\r
21928         004657' 260740  001077'         PUSHJ   PP,EVALEX       ;NO, GET ADDRESS\r
21929         004660' 260740  004474'         PUSHJ   PP,EVADR        ;EVALUATE STANDARD ADDRESS\r
21930         004661' 325400  004665'         JUMPNC  POINT2\r
21931         004662' 260740  004034'         PUSHJ   PP,EVAL10       ;EVALUATE RADIX 10\r
21932         004663' 603600  020000          TLNE    IO,NUMSW        ;IF NUMERIC\r
21933         004664' 654000  014607'         TDCA    AC0,[-1]        ;POSITION=D35-RHB\r
21934         004665' 201000  000000  POINT2: MOVEI   AC0,0           ;OTHERWISE SET TO D36\r
21935         004666' 271000  000044          ADDI    AC0,^D36\r
21936         004667' 242000  000036          LSH     AC0,^D30\r
21937         004670' 272017  000000          ADDM    AC0,0(PP)       ;UPDATE VALUE\r
21938         004671' 254000  004466'         JRST    OP3\r
21939 \r
21940 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 91\r
21941 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21942 \r
21943         004672'                 XWD0:\r
21944         004672' 261740  000011          PUSH    PP,RC\r
21945         004673' 261740  000000          PUSH    PP,AC0          ;STORE ZERO ON STACK\r
21946         004674' 260740  001077'         PUSHJ   PP,EVALEX       ;EVALUATE EXPRESSION\r
21947         004675' 325400  004465'         JUMPNC  OP2\r
21948         004676' 336017  000000  XWD5:   SKIPN   (PP)            ;ANY CODE YET?\r
21949         004677' 254000  004704'         JRST    XWD10           ;NO,USE VALUE IN AC0\r
21950         004700' 322000  004702'         JUMPE   AC0,.+2         ;ANYTHING IN AC0?\r
21951         004701' 660600  200000          TRO     ER,ERRQ         ;YES,FLAG "Q"ERROR\r
21952         004702' 200017  000000          MOVE    AC0,(PP)        ;USE PREVIOUS VALUE\r
21953         004703' 200457  777777          MOVE    RC,-1(PP)       ;AND RELOCATION\r
21954         004704' 516017  000000  XWD10:  HRLZM   AC0,0(PP)       ;SET LEFT HALF\r
21955         004705' 516457  777777          HRLZM   RC,-1(PP)\r
21956         004706' 207000  013742'         MOVSS EXTPNT    ;WFW\r
21957         004707' 254000  004464'         JRST    OP1A            ;EXIT THROUGH OP\r
21958 \r
21959         004710' 260740  004046' IOWD0:  PUSHJ   PP,EVALXQ       ;EVALUATE AND TEST FOR EXTERNAL\r
21960         004711' 302340  000014          CAIE    C,14            ;","?\r
21961                                         JRST    [SKIPN  AC0     ;IF NZERO AND NO "," SEEN\r
21962                                                 TRO ER,ERRQ     ;TREAT AS Q ERROR\r
21963         004712' 254000  014762'                 SOJA AC0,STOW]  ;NO, TREAT AS RIGHT HALF\r
21964         004713' 261740  000000          PUSH    PP,AC0          ;YES, STACK LEFT HALF\r
21965         004714' 260740  001077'         PUSHJ   PP,EVALEX       ;WFW\r
21966         004715' 275000  000001          SUBI    AC0,1\r
21967         004716' 262740  000001          POP     PP,AC1          ;RETRIEVE LEFT HALF\r
21968         004717' 213000  000001          MOVNS   AC1\r
21969         004720' 504000  000001          HRL     AC0,AC1\r
21970         004721' 254000  002751'         JRST    STOW            ;STOW CODE AND EXIT\r
21971 \r
21972 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 92\r
21973 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
21974 \r
21975         004722' 260740  004543' BYTE0:  PUSHJ   PP,BYPASS       ;GET FIRST NON-BLANK\r
21976         004723' 302340  000010          CAIE    C,10            ;"("?\r
21977         004724' 254000  003400'         JRST    ERRAX           ;NO, FLAG ERROR AND EXIT\r
21978         004725' 261740  000011          PUSH    PP,RC\r
21979         004726' 261740  000000          PUSH    PP,AC0          ;INITIALIZE STACK TO ZERO\r
21980         004727' 205240  447717          MOVSI   ARG,(POINT -1,(PP))\r
21981 \r
21982         004730' 261740  000005  BYTE1:  PUSH    PP,ARG\r
21983         004731' 260740  004034'         PUSHJ   PP,EVAL10       ;EVALUATE RADIX 10\r
21984         004732' 262740  000005          POP     PP,ARG\r
21985         004733' 307000  000044          CAIG    AC0,^D36        ;TEST SIZE\r
21986         004734' 325000  004736'         JUMPGE  AC0,.+2\r
21987         004735' 660600  040000          TRO     ER,ERRA\r
21988         004736' 137000  014765'         DPB     AC0,[POINT 6,ARG,11]    ;STORE BYTE SIZE\r
21989 \r
21990         004737' 133000  000005  BYTE2:  IBP     ARG             ;INCREMENT BYTE\r
21991         004740' 626240  777777          TRZN    ARG,-1          ;OVERFLOW?\r
21992         004741' 254000  004746'         JRST    BYTE3           ;NO\r
21993         004742' 403000  000011          SETZB   AC0,RC          ;YES\r
21994         004743' 250017  000000          EXCH    AC0,0(PP)       ;GET CURRENT VALUES\r
21995         004744' 250457  777777          EXCH    RC,-1(PP)       ;AND STACK ZEROS\r
21996         004745' 260740  002751'         PUSHJ   PP,STOW         ;STOW FULL WORD\r
21997 \r
21998         004746' 261740  000005  BYTE3:  PUSH    PP,ARG\r
21999         004747' 260740  001077'         PUSHJ   PP,EVALEX       ;COMPUTE NEXT BYTE\r
22000         004750' 262740  000005          POP     PP,ARG\r
22001         004751' 137000  000005          DPB     AC0,ARG         ;STORE BYTE\r
22002         004752' 520000  000005          HLLO    AC0,ARG\r
22003         004753' 137440  000000          DPB     RC,AC0          ;STORE RELOCATION\r
22004 \r
22005         004754' 321400  004737'         JUMPCM  BYTE2\r
22006         004755' 306340  000010          CAIN    C,10            ;"("?\r
22007         004756' 254000  004730'         JRST    BYTE1           ;YES, GET NEW BYTE SIZE\r
22008         004757' 254000  004466'         JRST    OP3             ;NO, EXIT\r
22009 \r
22010 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 93\r
22011 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
22012 \r
22013         004760' 260740  001077' RADX50: PUSHJ   PP,EVALEX       ;EVALUATE CODE\r
22014         004761' 326440  003400'         JUMPN   RC,ERRAX                ;ERROR IF NOT ABSOLUTE\r
22015         004762' 200240  000000          MOVE    ARG,AC0\r
22016         004763' 325400  003400'         JUMPNC  ERRAX\r
22017         004764' 260740  001043'         PUSHJ   PP,GETSYM       ;YES, GET SYMBOL\r
22018         004765' 620600  040000          TRZ     ER,ERRA         ;CLEAR ERROR\r
22019         004766' 260740  004770'         PUSHJ   PP,SQOZE        ;SQUOZE SIXBIT AND ADD CODE\r
22020         004767' 254000  002751'         JRST    STOW            ;STOW CODE AND EXIT\r
22021 \r
22022 \r
22023         004770' 200100  000000  SQOZE:  MOVE    AC1+1,AC0       ;PUT SIXBIT IN AC1+1\r
22024         004771' 201000  000000          MOVEI   AC0,0           ;CLEAR RESULT\r
22025         004772' 201040  000000  SQOZ1:  MOVEI   AC1,0\r
22026         004773' 246040  000006          LSHC    AC1,6           ;PUT 6-BIT CHARACTER IN AC1\r
22027         004774' 135040  014766'         LDB     AC1,[POINT 6,CSTAT(AC1),23]     ;CONVERT TO RADIX50\r
22028         004775' 221000  000050          IMULI   AC0,50          ;MULTIPLY PREVIOUS RESULT\r
22029         004776' 270000  000001          ADD     AC0,AC1         ;ADD NEW CHARACTER\r
22030         004777' 326100  004772'         JUMPN   AC1+1,SQOZ1     ;TEST FOR END\r
22031         005000' 242240  000036          LSH     ARG,^D30        ;LEFT-JUSTIFY CODE\r
22032         005001' 434000  000005          IOR     AC0,ARG         ;MERGE WITH RESULT\r
22033         005002' 263740  000000          POPJ    PP,\r
22034 \r
22035 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 94\r
22036 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
22037 \r
22038                                 REPEAT 0,<      EXPLANATION OF ARRAY AND LVAR FEATURES\r
22039                                 \r
22040                                 WHEN A VARIABLE IS SEEN EITHER BY #, INTEGER OR ARRAY\r
22041                                 THE VALUE PORTION OF THE SYMBOL TABLE ENTRY (RH OF 2ND WORD)\r
22042                                 IS USE TO HOLD THE DESIRED SIZE-1. THE CORRECT VALUE IS\r
22043                                 ASSIGNED BY THE VAR PSEUDO OP.\r
22044                                 \r
22045                                 WHEN LVAR IS SEEN, A SEARCH OF THE SYMBOL TABLE IS MADE\r
22046                                 FOR ALL VARIABLES. THE VARF (VARIABLE) FLAG IS\r
22047                                 LEFT ON AND EXTF AND PNTF ARE TURNED ON SO THAT THE\r
22048                                 VARIABLE LOOKS LIKE AN EXTERNAL. THE POINTER\r
22049                                 (RH OF 2ND WORD OF THE SYMBOL TABLE ENTRY) POINTS\r
22050                                 TO THE HEADER BLOCK. THE HEADER BLOCK IS FORMATTED AS FOLLOWS:\r
22051                                 WORD 1: LEFT HALF IS A POINTER TO SYMBOL TABLE FIXUP BLOCKS\r
22052                                         RIGHT HALF IS A POINTER TO CODE FIXUP BLOCKS\r
22053                                 WORD 2: 0 THIS IS USED TO DISTINGUISH IT FROM NORMAL EXTERNALS\r
22054                                                 WHICH HAVE THE SYMBOL NAME HERE\r
22055                                 WORD 3: THE LOCATION RELATIVE TO THE START OF THE LOW CORE\r
22056                                                 VARIABLES\r
22057                                 \r
22058                                 CORE FIXUP BLOCKS ARE SET UP BY BOUT\r
22059                                 \r
22060                                 WORD1:  RH LINK TO NEXT CORE FIXUP BLOCK 0 IF END OF CHAIN\r
22061                                         LH OFFSET. NUMBER TO BE ADDED TO SYMBOL VALUE BEFORE\r
22062                                         FIXUP IS DONE\r
22063                                 WORD 2: POINTER TO A FIXUP CHAIN FOR RIGHT HALVES\r
22064                                         LEFT HALF IS RELOCATION RH IS ADDRESS\r
22065                                 WORD 3: SAME AS WORD 2 BUT FOR LEFT HALF FIXUPS\r
22066                                 \r
22067                                 NOTE ALL THESE FIXUPS ARE CHAINED EVEN IF IN LEFT HALF.\r
22068                                 SIMILARY ALL REFERENCES TO SAY A+1 ARE CHAINED\r
22069                                 \r
22070                                 SYMBOL TABLE FIXUP BLOCKS. THESE ARE GENERATED BY SOUT\r
22071                                 AS THE SYMBOL TABLE IS PUT OUT. THESE FIXUPS ARE ADDITIVE\r
22072                                 NOT CHAINED.\r
22073                                 \r
22074                                 WORD 1: RH LINK TO NEXT BLOCK\r
22075                                         LH 0\r
22076                                 WORD 2: RADIX50 FOR THE SYMBOL\r
22077                                 WORD 3: 200000,,0 IF RH FIXUP\r
22078                                         600000,,0 IF LH FIXUP\r
22079                                 \r
22080                                 SOUT ALSO SETS UP FIXLNK. FIXLNK POINTS TO THE CHAIN OF\r
22081                                 ALL LVAR FIXUPS TO BE DONE. IT POINTS TO THE SECOND WORD\r
22082                                 \r
22083 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 95\r
22084 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
22085 \r
22086                                 OF A 2 WORD BLOCK\r
22087                                 \r
22088                                 WORD 1: LINK TO 2ND WORD OF NEXT BLOCK 0 IF END\r
22089                                 WORD 2: RH POINTER TO A HEADER BLOCK\r
22090                                         LH GARBAGE\r
22091                                 \r
22092                                 FIXUPS ARE BLOCK TYPE 13 AS FOLLOWS\r
22093                                 WORD 1: THE PROGRAM BREAK (AS BLOCK TYPE 5)\r
22094                                 WORD 2: THE NUMBER OF LOCATION USED FOR VARIABLES IN THE\r
22095                                         LOW SEGMENT+1\r
22096                                 \r
22097                                 REMAINING WORDS COME IN PAIRS AS FOLLOWS:\r
22098                                 1ST WORD        BIT 0=0 RH FIXUP\r
22099                                                 BIT 0=1 LH FIXUP\r
22100                                                 BIT 1=0 CORE FIXUP\r
22101                                                         WORD 2 LH POINTER TO CHAIN\r
22102                                                         WORD 2 RH VALUE\r
22103                                                 BIT 1=1 SYMBOL FIXUP\r
22104                                                         WORD 1 RH VALUE\r
22105                                                         WORD 2 SYMBOL\r
22106                                 >\r
22107 \r
22108                                 REPEAT 0,<      EXPLANATION OF ICC FEATURES\r
22109                                 \r
22110                                         IF FORMSW IS SET NON ZERO THE FORM OF THE OCTAL LISTING OUTPUT\r
22111                                         IS CHANGED FROM STANDARD HALF WORD FORM TO THE FOLLOWING:-\r
22112                                 \r
22113                                         IF INSTRUCTION          BYTE 9,4,1,4,18\r
22114                                         IF I/O INSTRUCTION      BYTE 3,7,3,1,4,18\r
22115                                         IF BYTE POINTER         BYTE 6,6,2,4,18\r
22116                                         IF ASCII                BYTE 7,7,7,7,7\r
22117                                         IF SIXBIT               BYTE 6,6,6,6,6,6\r
22118                                 \r
22119                                         ALL OTHERS ARE STANDARD HALF WORD\r
22120                                 \r
22121                                         THIS FEATURE CAN BE OVER RIDDEN BY USE OF /H SWITCH\r
22122                                         STANDARD HALF WORD FORM IS THEN USED.\r
22123                                         HOWEVER BECAUSE OF EXTRA SPACING THE OUTPUT IS PUSHED MORE\r
22124                                         TO THE RIGHT AND LONG COMMENTS OVERFLOW THE LINE\r
22125                                         >\r
22126 \r
22127 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 96\r
22128 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
22129 \r
22130                                 IFN WFWSW,<\r
22131                                 %INTEG: PUSHJ PP,GETSYM ;GET A SYMBOL\r
22132                                         JRST INTG2      ;BAD SYMBOL ERROR\r
22133                                         TLO IO,DEFCRS   ;THIS IS A DEFINTION\r
22134                                         PUSHJ PP,SSRCH  ;SEE IF THERE\r
22135                                         MOVSI ARG,SYMF!UNDF     ;SET SYMBOL AND UNDEFINED IF NOT\r
22136                                         TLNN ARG,UNDF   ;IF ALREADY DEFINED\r
22137                                         JRST INTG1      ;JUST IGNORE\r
22138                                         TLOA ARG,VARF   ;SET VARIABLE FLAG\r
22139                                 INTG2:  TROA ER,ERRA    ;SYMBOL ERROR\r
22140                                         PUSHJ PP,INSERZ ;PUT IN WITH ZERO VALUE (LENGTH OF 1)\r
22141                                 INTG1:  JUMPCM %INTEG\r
22142                                         POPJ PP,\r
22143                                 \r
22144                                 %ARAY:  MOVEM PP,ARAYP  ;SAVE PUSHDOW POINTER\r
22145                                 ARAY2:  PUSHJ PP,GETSYM\r
22146                                         JRST ARAY1      ;BAD SYMBOL GIVE ERROR AND ABORT\r
22147                                         PUSH PP,AC0     ;SAVE NAME\r
22148                                         JUMPCM ARAY2    ;AND GO ON IF A COMMA\r
22149                                         CAIE C,"["-40   ;MUST BE A [\r
22150                                         JRST ARAY1\r
22151                                         PUSHJ PP,BYPASS ;OH, WELL\r
22152                                         TLO IO,IORPTC\r
22153                                         PUSHJ PP,EVALXQ ;GET A SIZE\r
22154                                         CAIE C,"]"-40   ;MUST END RIGHT\r
22155                                         JRST ARAY1\r
22156                                         PUSHJ PP,BYPASS ;??\r
22157                                         HRRZ V,AC0      ;GET VALUE\r
22158                                         SUBI V,1\r
22159                                 NXTVAL: POP PP,AC0\r
22160                                         PUSH PP,V       ;SAVE OVER SEARCH\r
22161                                         TLO IO,DEFCRS\r
22162                                         PUSHJ PP,SSRCH  ;FIND IT\r
22163                                         MOVSI ARG,SYMF!UNDF\r
22164                                         POP PP,V        ;GET VALUE BACK\r
22165                                         TLNN ARG,UNDF\r
22166                                         JRST ARAY3\r
22167                                         TLO ARG,VARF\r
22168                                         MOVEI RC,0      ;NO RELOC\r
22169                                         PUSHJ PP,INSERT\r
22170                                 ARAY3:  CAME PP,ARAYP\r
22171                                         JRST NXTVAL     ;STILL NAMES STACKED\r
22172                                         JUMPCM ARAY2\r
22173                                         POPJ PP,\r
22174                                 \r
22175                                 ARAY1:  TRO ER,ERRA     ;ERROR EXIT\r
22176                                         MOVE PP,ARAYP\r
22177                                         POPJ PP,        ;RESET PDL AND GO\r
22178                                 >\r
22179 \r
22180 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 97\r
22181 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
22182 \r
22183                                 IFN WFWSW,<\r
22184                                 %LVAR:  JUMP2 POPOUT    ;IGNORE ON PASS2\r
22185                                         PUSHJ PP,LOOKUP ;SCAN SYMBOL TABLE\r
22186                                         TRNN ARG,EXTF   ;THESE ARE LVARS WE HAVE DONE ONCE\r
22187                                         TRNN ARG,VARF   ;FOR VARIABLES\r
22188                                         POPJ PP,        ;IGNORE ALL OTHERS\r
22189                                         TRZ ARG,UNDF    ;SET AS DEFINED\r
22190                                         MOVEI RC,3\r
22191                                         ADDB RC,FREE\r
22192                                         CAML RC,SYMBOL  ;GET BLOCK\r
22193                                         PUSHJ PP,XCEEDS\r
22194                                         SUBI RC,2       ;POINT TO START OF BLOCK\r
22195                                         ADDI V,1\r
22196                                         EXCH V,LVARLC   ;GET CORRECT VARIABLE LOCATION\r
22197                                         MOVEM V,2(RC)   ;SAVE IT\r
22198                                         ADDM V,LVARLC   ;AND UPDATE BASE\r
22199                                         SETZM (RC)\r
22200                                         SETZM 1(RC)     ;NO NAME TO IDENT AN LVAR AND NO FIXUPS\r
22201                                         HRL ARG,RC      ;POINTER\r
22202                                         TRO ARG,EXTF!PNTF       ;FLAG AS EXTERNAL AND POINTER\r
22203                                         MOVSM ARG,(SX)  ;PUT IT AWAY\r
22204                                         POPJ PP,\r
22205                                 >\r
22206 \r
22207 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 98\r
22208 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
22209 \r
22210                                 ; PSEUDO-END STATEMENT FOR MULTI-FILE CAPABILITY\r
22211 \r
22212                                 ; HERE IF PRGEND (PASS 1)\r
22213         005003' 661600  000010  PSEND0: TLO     IO,MFLSW        ;PSEND SEEN\r
22214         005004' 260740  003123'         PUSHJ   PP,END0         ;AS IF END STATEMENT\r
22215         005005' 513000  000014          HLLZS   IO              ;CLEAR ER(RH)\r
22216         005006' 402000  013376'         SETZM   ERRCNT          ;CLEAR ERROR COUNT FOR EACH PROG.\r
22217         005007' 325640  005023'         JUMP2   PSEND2          ;DIFFERENT ON PASS2\r
22218         005010' 332000  013733'         SKIPE   UNIVSN          ;SEEN A UNIVERSAL\r
22219         005011' 260740  005207'         PUSHJ   PP,UNISYM       ;YES, STORE SYMBOLS\r
22220         005012' 260740  005033'         PUSHJ   PP,PSEND4       ;SAVE SYMBOLS, POINTERS AND TITLE\r
22221         005013' 621600  000002          TLZ     IO,IOTLSN       ;CLEAR TITLE SEEN FLAG\r
22222         005014' 621600  000010  PSEND1: TLZ     IO,MFLSW         ;FOR NEXT FILE\r
22223         005015' 402000  014055'         SETZM   UNISCH          ;CLEAR UNIVERSAL SEARCH TABLE\r
22224         005016' 200000  014767'         MOVE    AC0,[UNISCH,,UNISCH+1]\r
22225         005017' 251000  014066'         BLT     AC0,UNISCH+.UNIV-1\r
22226         005020' 260740  010703'         PUSHJ   PP,OUTFF        ;RESET PAGE COUNT\r
22227         005021' 205000  000001          MOVSI   AC0,1           ;SET SO RELOC 0 WORKS\r
22228         005022' 254000  004222'         JRST    LOC10           ;FOR RELOC 0\r
22229 \r
22230                                 ; HERE IF PRGEND (PASS 2)\r
22231         005023' 402000  013527' PSEND2: SETZM   SBUF            ;SO SUBTTL IS NOT WRONG\r
22232         005024' 260740  005115'         PUSHJ   PP,PSEND5       ;PUT TITLE BACK\r
22233         005025' 260740  005014'         PUSHJ   PP,PSEND1       ;COMMON  CODE\r
22234         005026' 254000  003155'         JRST    PASS20          ;OUTPUT THE ENTRIES\r
22235 \r
22236                                 ; HERE IF END (PASS 1)\r
22237         005027' 260740  005033' PSEND3: PUSHJ   PP,PSEND4       ;SAVE LAST PROGRAM \r
22238         005030' 547000  013731'         HLRS    PRGPTR          ;REINITIALIZE POINTER\r
22239         005031' 260740  005115'         PUSHJ   PP,PSEND5       ;READ BACK FIRST PROGRAM\r
22240         005032' 254000  003155'         JRST    PASS20\r
22241 \r
22242 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 99\r
22243 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
22244 \r
22245                                 ;HERE TO SAVE AND RESTORE SYMBOL TABLE, TITLE AND OTHER USEFUL LOCATIONS\r
22246                         000004          XTRA==4                 ;NUMBER OF OTHER LOCATIONS TO SAVE\r
22247 \r
22248         005033' 200300  013377' PSEND4: MOVE    V,FREE          ;GET  NEXT FREE LOCATION\r
22249         005034' 271300  000030          ADDI    V,LENGTH+.TBUF/5+XTRA\r
22250         005035' 311300  013552'         CAML    V,SYMBOL        ;WILL WORST CASE FIT?\r
22251         005036' 260740  010277'         PUSHJ   PP,XCEED        ;NO, EXPAND\r
22252         005037' 204300  013377'         MOVS    V,FREE\r
22253         005040' 540300  013731'         HRR     V,PRGPTR        ;LAST PRGEND BLOCK\r
22254         005041' 546306  000000          HLRM    V,(V)           ;LINK THIS BLOCK\r
22255         005042' 336000  013731'         SKIPN   PRGPTR          ;IF FIRST TIME\r
22256         005043' 512300  013731'         HLLZM   V,PRGPTR        ;SET LINK TO START OF CHAIN\r
22257         005044' 546300  013731'         HLRM    V,PRGPTR        ;POINTER TO IT\r
22258         005045' 402020  013377'         SETZM   @FREE           ;CLEAR LINK WORD\r
22259         005046' 350000  013377'         AOS     FREE            ;THIS LOCATION USED NOW\r
22260         005047' 204000  013552'         MOVS    AC0,SYMBOL      ;BOTTOM OF SYMBOL TABLE\r
22261         005050' 540000  013377'         HRR     AC0,FREE        ;FREE SPACE\r
22262         005051' 200320  013552'         MOVE    V,@SYMBOL       ;GET NUMBER OF SYMBOLS\r
22263         005052' 240300  000001          ASH     V,1             ;TWO WORDS PER SYMBOL\r
22264         005053' 271300  000001          ADDI    V,1             ;ONE MORE FOR COUNT\r
22265         005054' 273300  013377'         ADDB    V,FREE          ;END OF TABLE WHEN MOVED\r
22266         005055' 251006  000000          BLT     AC0,(V)         ;MOVE TABLE\r
22267         005056' 550000  003316*         HRRZ    AC0,JOBREL      ;TOP OF CORE\r
22268         005057' 275000  000001          SUBI    AC0,1\r
22269         005060' 202000  013553'         MOVEM   AC0,SYMTOP      ;FOR NEXT SYMBOL TABLE\r
22270         005061' 275000  000004          SUBI    AC0,LENGTH      ;LENGTH OF INITIAL SYMBOLS\r
22271         005062' 202000  013552'         MOVEM   AC0,SYMBOL      ;SET POINTER TO COUNT OF SYMBOLS\r
22272         005063' 505000  012201'         HRLI    AC0,SYMNUM      ;BLT POINTER\r
22273         005064' 251020  013553'         BLT     AC0,@SYMTOP     ;SET UP INITIAL SYMBOL TABLE\r
22274         005065' 260740  013125'         PUSHJ   PP,SRCHI        ;SET UP SEARCH POINTER\r
22275         005066' 201000  000120          MOVEI   AC0,.TBUF       ;MAX NUMBER OF CHARS. IN TITLE\r
22276         005067' 274000  013700'         SUB     AC0,TCNT        ;ACTUAL NUMBER\r
22277         005070' 231000  000005          IDIVI   AC0,5           ;NUMBER OF WORDS\r
22278         005071' 332000  000001          SKIPE   AC1             ;REMAINDER?\r
22279         005072' 271000  000001          ADDI    AC0,1           ;YES\r
22280         005073' 202020  013377'         MOVEM   AC0,@FREE       ;STORE COUNT\r
22281         005074' 350000  013377'         AOS     FREE            ;THIS LOCATION USED NOW\r
22282         005075' 250000  013377'         EXCH    AC0,FREE        ;SET UP AC0 FOR BLT\r
22283         005076' 272000  013377'         ADDM    AC0,FREE        ;WILL BE AFTER TITLE MOVES\r
22284         005077' 505000  013701'         HRLI    AC0,TBUF        ;BLT POINTER\r
22285         005100' 251020  013377'         BLT     AC0,@FREE       ;MOVE TITLE\r
22286         005101' 200100  013505'         MOVE    AC2,LITHDX      ;POINTER TO LIT INFO.\r
22287         005102' 200002  777777          MOVE    AC0,-1(AC2)     ;SIZE OF PASS1 LOCO\r
22288         005103' 260740  005160'         PUSHJ   PP,STORIT       ;SAVE IT IN SYMBOL TABLE\r
22289         005104' 200100  013500'         MOVE    AC2,VARHDX      ;SAME FOR VARS\r
22290         005105' 200002  777777          MOVE    AC0,-1(AC2)\r
22291         005106' 260740  005160'         PUSHJ   PP,STORIT\r
22292                                 IFN RENTSW,<\r
22293                                         MOVE    AC0,HISNSW      ;GET TWOSEG/HISEG FLAG\r
22294                                         HRR     AC0,HIGH1       ;AND PASS1 BREAK\r
22295                                         PUSHJ   PP,STORIT\r
22296                                         JUMPGE  AC0,PSEND6      ;NOT TWOSEG\r
22297                                         MOVE    AC0,SVTYP3      ;HIGH SEGMENT OFFSET\r
22298 \r
22299 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 99-1\r
22300 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
22301 \r
22302                                         PUSHJ   PP,STORIT       ;SAVE IT ALSO>\r
22303         005107' 200000  013377' PSEND6: MOVE    AC0,FREE        ;GET NEXT FREE LOCATION\r
22304         005110' 275000  000001          SUBI    AC0,1           ;LAST ONE USED\r
22305         005111' 550300  013731'         HRRZ    V,PRGPTR        ;POINTER TO START OF DATA BLOCK\r
22306         005112' 506006  000000          HRLM    AC0,(V)         ;LINK TO END OF BLOCK\r
22307         005113' 263740  000000          POPJ    PP,             ;RETURN\r
22308 \r
22309 \r
22310 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 100\r
22311 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
22312 \r
22313         005114' 260740  010277' PSENDX: PUSHJ   PP,XCEED        ;NEED TO EXPAND CORE FIRST\r
22314         005115' 550000  005056* PSEND5: HRRZ    AC0,JOBREL      ;GET TOP OF CORE\r
22315         005116' 275000  000001          SUBI    AC0,1\r
22316         005117' 202000  013553'         MOVEM   AC0,SYMTOP      ;TOP OF NEW SYMBOL TABLE\r
22317         005120' 550300  013731'         HRRZ    V,PRGPTR        ;ADDRESS OF THIS BLOCK\r
22318         005121' 322300  005165'         JUMPE   V,PSNDER        ;ERROR LINK NOT SET UP\r
22319         005122' 200046  000000          MOVE    AC1,(V)         ;NEXT LINK\r
22320         005123' 200306  000001          MOVE    V,1(V)          ;GET ITS SYMBOL COUNT\r
22321         005124' 240300  000001          ASH     V,1             ;NUMBER OF WORDS\r
22322         005125' 271300  000001          ADDI    V,1             ;PLUS ONE FOR COUNT\r
22323         005126' 275006  000000          SUBI    AC0,(V)         ;START OF NEW SYMBOL TABLE\r
22324         005127' 317000  013377'         CAMG    AC0,FREE        ;WILL IT FIT\r
22325         005130' 254000  005114'         JRST    PSENDX          ;NO, NEED TO EXPAND AND RESET AC0\r
22326         005131' 270300  013731'         ADD     V,PRGPTR        ;POINT TO END OF SYMBOL TABLE\r
22327         005132' 201306  000001          MOVEI   V,1(V)          ;THEN TO BEG OF TITLE\r
22328         005133' 202000  013552'         MOVEM   AC0,SYMBOL      ;BOTTOM OF NEW TABLE\r
22329         005134' 504000  013731'         HRL     AC0,PRGPTR      ;ADDRESS OF FIRST WORD OF BLOCK\r
22330         005135' 270000  014770'         ADD     AC0,[1,,0]      ;MAKE BLT POINTER\r
22331         005136' 542040  013731'         HRRM    AC1,PRGPTR      ;POINT TO NEXT BLOCK\r
22332         005137' 251020  013553'         BLT     AC0,@SYMTOP     ;MOVE TABLE\r
22333         005140' 260740  013125'         PUSHJ   PP,SRCHI        ;SET UP POINTER\r
22334         005141' 200046  000000          MOVE    AC1,(V)         ;NUMBER OF WORDS OF TITLE\r
22335         005142' 201006  000001          MOVEI   AC0,1(V)        ;START OF STORED TITLE\r
22336         005143' 270300  000001          ADD     V,AC1           ;INCREMENT PAST TITLE\r
22337         005144' 271040  013700'         ADDI    AC1,TBUF-1      ;END OF TITLE\r
22338         005145' 505000  013701'         HRLI    AC0,TBUF        ;WHERE TO PUT IT\r
22339         005146' 207000  000000          MOVSS   AC0             ;BLT POINTER\r
22340         005147' 251001  000000          BLT     AC0,(AC1)       ;MOVE TITLE\r
22341         005150' 661600  000002          TLO     IO,IOTLSN       ;SET AS IF TITLE SEEN\r
22342         005151' 200100  013505'         MOVE    AC2,LITHDX      ;INVERSE OF ABOVE\r
22343         005152' 260740  005163'         PUSHJ   PP,GETIT\r
22344         005153' 202002  777777          MOVEM   AC0,-1(AC2)\r
22345         005154' 200100  013500'         MOVE    AC2,VARHDX      ;SAME FOR VARS\r
22346         005155' 260740  005163'         PUSHJ   PP,GETIT\r
22347         005156' 202002  777777          MOVEM   AC0,-1(AC2)\r
22348                                 IFN RENTSW,<\r
22349                                         PUSHJ   PP,GETIT        ;GET TWO HALF WORDS\r
22350                                         HRRZM   AC0,HIGH1       ;PASS1 BREAK\r
22351                                         HLLEM   AC0,HISNSW      ;TWOSEG/HISEG FLAG\r
22352                                         JUMPGE  AC0,CPOPJ       ;NOT TWOSEG\r
22353                                         PUSHJ   PP,GETIT\r
22354                                         MOVEM   AC0,SVTYP3      ;BLOCK 3 WORD>\r
22355         005157' 263740  000000          POPJ    PP,\r
22356 \r
22357         005160' 202020  013377' STORIT: MOVEM   AC0,@FREE       ;STORE IT IN DATA BLOCK\r
22358         005161' 350000  013377'         AOS     FREE            ;ADVANCE POINTER\r
22359         005162' 263740  000000          POPJ    PP,\r
22360 \r
22361         005163' 200006  000001  GETIT:  MOVE    AC0,1(V)        ;FILL AC0 OUT OF PRGEND BLOCK\r
22362         005164' 344300  003447'         AOJA    V,CPOPJ         ;INCREMENT AND RETURN\r
22363 \r
22364         005165' 561440  014771' PSNDER: HRROI   RC,[SIXBIT      /PRGEND ERROR @/]\r
22365         005166' 254000  010176'         JRST    ERRFIN\r
22366 \r
22367 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 101\r
22368 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
22369 \r
22370                                 ;MULTIPLE SYMBOL TABLE FEATURE PSEUDO-OPS\r
22371 \r
22372         005167' 325640  004276' UNIV0:  JUMP2   TITLE0          ;DO IT ALL ON PASS 1\r
22373         005170' 550200  014122'         HRRZ    SX,UNIVNO       ;GET NUMBER OF UNIVERSALS SEEN\r
22374         005171' 301200  000012          CAIL    SX,.UNIV        ;ALLOW ONE MORE?\r
22375         005172' 254000  005205'         JRST    UNVERR          ;NO, GIVE FATAL ERROR\r
22376         005173' 350000  014122'         AOS     UNIVNO          ;ONE MORE NOW\r
22377         005174' 476000  013733'         SETOM   UNIVSN          ;AND SET SEEN A UNIVERSAL\r
22378         005175' 254000  004276'         JRST    TITLE0          ;CONTINUE AS IF TITLE\r
22379 \r
22380 \r
22381         005176' 261740  000011  ADDUNV: PUSH    PP,RC           ;AN AC TO USE\r
22382         005177' 260740  002665'         PUSHJ   PP,NOUT         ;CONVERT TO SIXBIT\r
22383         005200' 550440  014122'         HRRZ    RC,UNIVNO       ;GET ENTRY INDEX\r
22384         005201' 202011  014123'         MOVEM   AC0,UNITBL(RC)  ;STORE SIXBIT NAME IN TABLE\r
22385         005202' 553000  013733'         HRRZS   UNIVSN          ;ONLY DO IT ONCE\r
22386         005203' 262740  000011          POP     PP,RC           ;RESTORE RC\r
22387         005204' 263740  000000          POPJ    PP,             ;AND RETURN\r
22388 \r
22389         005205' 561440  014774' UNVERR: HRROI   RC,[SIXBIT /TOO MANY UNIVERSALS@/]\r
22390         005206' 254000  010176'         JRST    ERRFIN\r
22391 \r
22392         005207' 550000  013377' UNISYM: HRRZ    AC0,FREE        ;GET HIGHEST FREE LOCATION\r
22393         005210' 202000  000000*         MOVEM   AC0,JOBFF       ;INTO JOBFF\r
22394         005211' 260740  004261'         PUSHJ   PP,SUPRSA       ;TURN ON SUPPRESS BIT\r
22395         005212' 261740  013552'         PUSH    PP,SYMBOL       ;NEED TO SAVE INCASE PRGEND\r
22396         005213' 200000  013553'         MOVE    AC0,SYMTOP      ;TOP OF TABLE\r
22397         005214' 274000  013552'         SUB     AC0,SYMBOL      ;GET LENGTH OF TABLE\r
22398         005215' 504240  013552'         HRL     ARG,SYMBOL      ;BOTTOM OF TABLE\r
22399         005216' 540240  005210*         HRR     ARG,JOBFF       ;WHERE TO GO\r
22400         005217' 550440  014122'         HRRZ    RC,UNIVNO       ;GET TABLE INDEX\r
22401         005220' 542240  013552'         HRRM    ARG,SYMBOL      ;WILL BE THERE SOON\r
22402         005221' 552251  014135'         HRRZM   ARG,UNIPTR(RC)  ;STORE IN CORRESPONDING PLACE\r
22403         005222' 273000  005216*         ADDB    AC0,JOBFF       ;WHERE TO END\r
22404         005223' 506011  014135'         HRLM    AC0,UNIPTR(RC)  ;SAVE NEW SYMTOP\r
22405         005224' 251260  005222*         BLT     ARG,@JOBFF      ;MOVE TABLE\r
22406         005225' 552000  014121'         HRRZM   AC0,UNITOP      ;SAVE TOP OF TABLES+1\r
22407         005226' 313000  014117'         CAMLE   AC0,MACSIZ      ;IN CASE OVER A K BOUND\r
22408         005227' 202000  014117'         MOVEM   AC0,MACSIZ      ;DON'T REDUCE SO FAR NOW\r
22409         005230' 202000  013377'         MOVEM   AC0,FREE        ;JUST IN CASE IN MACRO\r
22410         005231' 200000  013547'         MOVE    AC0,SRCHX       ;SAVE OLD SEARCH POINTER\r
22411         005232' 260740  013125'         PUSHJ   PP,SRCHI        ;GET SEARCH POINTER\r
22412         005233' 250000  013547'         EXCH    AC0,SRCHX\r
22413         005234' 202011  014147'         MOVEM   AC0,UNISHX(RC)  ;SAVE IT\r
22414         005235' 402000  013733'         SETZM   UNIVSN          ;CLEAR FLAG INCASE PRGEND\r
22415         005236' 262740  013552'         POP     PP,SYMBOL       ;RESTORE OLD VALUE\r
22416         005237' 263740  000000          POPJ    PP,             ;RETURN\r
22417 \r
22418 \r
22419 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 102\r
22420 MACRO   10      24-APR-78 02:11         PSEUDO-OP HANDLERS\r
22421 \r
22422         005240' 260740  001043' SERCH0: PUSHJ   PP,GETSYM       ;GET A SYMBOL\r
22423         005241' 254000  003400'         JRST    ERRAX           ;ERROR IF NOT VALID\r
22424         005242' 201440  000001          MOVEI   RC,1            ;START AT ENTRY ONE\r
22425         005243' 301440  000012          CAIL    RC,.UNIV        ;CHECK FOR CONSISTENCY ERROR\r
22426         005244' 254000  005260'         JRST    SCHERR          ;CANNOT FIND THIS ONE\r
22427         005245' 312011  014123'         CAME    AC0,UNITBL(RC)  ;LOOK FOR MATCH\r
22428         005246' 344440  005243'         AOJA    RC,.-3          ;NOT FOUND YET\r
22429         005247' 200000  000011          MOVE    AC0,RC          ;STORE TABLE ENTRY NUMBER\r
22430         005250' 201440  000001          MOVEI   RC,1            ;START AT ENTRY ONE\r
22431         005251' 301440  000012          CAIL    RC,.UNIV        ;CHECK FOR CONSISTENCY ERROR\r
22432         005252' 254000  005260'         JRST    SCHERR          ;SHOULD NEVER HAPPEN!!\r
22433         005253' 332011  014055'         SKIPE   UNISCH(RC)      ;LOOK FOR AN EMPTY SLOT\r
22434         005254' 344440  005251'         AOJA    RC,.-3          ;NOT FOUND YET\r
22435         005255' 202011  014055'         MOVEM   AC0,UNISCH(RC)  ;STORE INDEX IN TABLE\r
22436         005256' 321400  005240'         JUMPCM  SERCH0          ;LOOK FOR MORE NAMES\r
22437         005257' 263740  000000          POPJ    PP,             ;FINISHED\r
22438 \r
22439         005260' 205440  015000' SCHERR: MOVSI   RC,[SIXBIT /CANNOT FIND UNIVERSAL@/]\r
22440         005261' 254000  010176'         JRST    ERRFIN          ;NAME IN AC0\r
22441 \r
22442                                 ;MESSAGE FOR CASE WHERE FILES AFTER UNIVERSAL USED MORE BUFFER SPACE THAN FIRST UNIVERS\r
22443                                 AL\r
22444                                 UNIERR: HRROI   RC,[SIXBIT /UNIVERSAL PROGRAM(S) MUST HAVE SAME OUTPUT SPECIFICATION AS\r
22445         005262' 561440  015004'  OTHER FILES@/]\r
22446         005263' 254000  010176'         JRST    ERRFIN\r
22447 \r
22448 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 103\r
22449 MACRO   10      24-APR-78 02:11         MACRO/REPEAT HANDLERS\r
22450 \r
22451                                 SUBTTL  MACRO/REPEAT HANDLERS\r
22452 \r
22453         005264' 260740  004046' REPEA0: PUSHJ   PP,EVALXQ       ;EVALUATE REPEAT EXP, EXTERNS ARE ILL.\r
22454         005265' 325400  003400'         JUMPNC  ERRAX\r
22455 \r
22456         005266' 323000  005346' REPEA1: JUMPLE  AC0,REPZ        ;PASS THE EXP., DONT PROCESS\r
22457         005267' 362000  005365'         SOJE    AC0,REPO        ;REPEAT ONCE\r
22458         005270' 260740  006450' REPEA2: PUSHJ   PP,GCHARQ       ;GET STARTING "<"\r
22459         005271' 302340  000074          CAIE    C,"<"\r
22460         005272' 254000  005270'         JRST    REPEA2\r
22461         005273' 260740  006413'         PUSHJ   PP,SKELI1       ;INITIALIZE SKELETON\r
22462         005274' 261700  014020'         PUSH    MP,REPEXP\r
22463         005275' 202000  014020'         MOVEM   AC0,REPEXP\r
22464         005276' 261700  014021'         PUSH    MP,REPPNT       ;STACK PREVIOUS REPEAT POINTER\r
22465         005277' 202240  014021'         MOVEM   ARG,REPPNT      ;STORE NEW POINTER\r
22466         005300' 634140  000003          TDZA    SDEL,SDEL       ;YES, INITIALIZE BRACKET COUNT AND SKIP\r
22467 \r
22468         005301' 260740  006456' REPEA4: PUSHJ   PP,WCHARQ       ;WRITE A CHARACTER\r
22469         005302' 260740  006450'         PUSHJ   PP,GCHARQ       ;GET A CHARACTER\r
22470         005303' 306340  000074          CAIN    C,"<"           ;"<"?\r
22471         005304' 344140  005301'         AOJA    SDEL,REPEA4     ;YES, INCREMENT AND WRITE\r
22472         005305' 302340  000076          CAIE    C,">"           ;">"?\r
22473         005306' 254000  005301'         JRST    REPEA4          ;NO, WRITE THE CHARACTER\r
22474         005307' 365140  005301'         SOJGE   SDEL,REPEA4     ;YES, WRITE IF NON-NEGATIVE COUNT\r
22475         005310' 205400  774060          MOVSI   CS,(BYTE (7) 177,3)     ;SET "REPEAT" END\r
22476         005311' 260740  006466'         PUSHJ   PP,WWRXE        ;WRITE END\r
22477         005312' 336000  013773'         SKIPN   LITLVL          ;LITERAL MIGHT END ON LINE\r
22478         005313' 332000  014072'         SKIPE   MACLVL          ;IF IN MACRO DARE NOT PROCESS\r
22479         005314' 254000  005317'         JRST    .+3             ;REST OF LINE SINCE MACRO MIGHT END ON IT\r
22480         005315' 260740  004543'         PUSHJ   PP,BYPASS       ;BYPASS\r
22481         005316' 260740  000236'         PUSHJ   PP,STOUTS       ;POLISH OF LINE BEFORE PROCESSING REPEAT\r
22482         005317' 261700  000013          PUSH    MP,MRP          ;STACK PREVIOUS READ POINTER\r
22483         005320' 261700  014075'         PUSH    MP,RCOUNT       ;SAVE WORD COUNT\r
22484         005321' 550540  014021'         HRRZ    MRP,REPPNT      ;SET UP READ POINTER\r
22485         005322' 336000  014072'         SKIPN   MACLVL          ;IF IN MACRO GIVE CR-LF FIRST\r
22486         005323' 332000  013773'         SKIPE   LITLVL          ;SAME FOR LITERAL\r
22487         005324' 254000  005326'         JRST    REPEA7\r
22488         005325' 344540  000455'         AOJA    MRP,POPOUT      ;BYPASS ARG COUNT\r
22489 \r
22490         005326' 550540  014021' REPEA7: HRRZ    MRP,REPPNT      ;SET UP READ POINTER\r
22491         005327' 271540  000001          ADDI    MRP,1           ;BYPASS ARG COUNT\r
22492         005330' 201340  000015  REPEA8: MOVEI   C,CR\r
22493         005331' 254000  001421'         JRST    RSW1\r
22494 \r
22495         005332' 371000  014020' REPEND: SOSL    REPEXP\r
22496         005333' 254000  005326'         JRST    REPEA7\r
22497         005334' 550300  014021'         HRRZ    V,REPPNT        ;GET START OF TREE\r
22498         005335' 260740  006546'         PUSHJ   PP,REFDEC       ;DECREMENT REFERENCE\r
22499         005336' 262700  014075'         POP     MP,RCOUNT\r
22500         005337' 262700  000013          POP     MP,MRP\r
22501         005340' 262700  014021'         POP     MP,REPPNT\r
22502         005341' 262700  014020'         POP     MP,REPEXP\r
22503         005342' 336000  013773'         SKIPN   LITLVL          ;IF IN LITERAL OR\r
22504 \r
22505 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 103-1\r
22506 MACRO   10      24-APR-78 02:11         MACRO/REPEAT HANDLERS\r
22507 \r
22508         005343' 332000  014072'         SKIPE   MACLVL          ;IF IN MACRO\r
22509         005344' 254000  001417'         JRST    RSW0            ;FINISH OF LINE NOW\r
22510         005345' 254000  005330'         JRST    REPEA8\r
22511 \r
22512 \r
22513 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 104\r
22514 MACRO   10      24-APR-78 02:11         MACRO/REPEAT HANDLERS\r
22515 \r
22516         005346' 200140  014101' REPZ:   MOVE SDEL,SEQNO2        ;SAVE IN CASE OF END OF FILE\r
22517         005347' 202140  013760'         MOVEM SDEL,REPSEQ\r
22518         005350' 200140  014100'         MOVE SDEL,PAGENO\r
22519         005351' 202140  013757'         MOVEM SDEL,REPPG\r
22520         005352' 476000  013744'         SETOM INREP\r
22521         005353' 201140  000000          MOVEI SDEL,0    ;SET COUNT\r
22522         005354' 260740  006451' REPZ1:  PUSHJ   PP,GCHAR        ;GET NEXT CHARACTER\r
22523         005355' 306340  000074          CAIN    C,"<"           ;"<"?\r
22524         005356' 344140  005354'         AOJA    SDEL,REPZ1      ;YES, INCREMENT COUNT\r
22525         005357' 306340  000076          CAIN    C,">"           ;">"?\r
22526         005360' 363140  005362'         SOJLE   SDEL,REPZ2      ;YES, EXIT IF MATCHING\r
22527         005361' 254000  005354'         JRST    REPZ1           ;NO, RECYCLE\r
22528         005362' 402000  013744' REPZ2:  SETZM   INREP   ;FLAG OUT OF IT\r
22529         005363' 402000  013747'         SETZM   INCND   ;AND CONDITIONAL ALSO\r
22530         005364' 254000  000125'         JRST    STMNT   ;AND EXIT\r
22531 \r
22532         005365' 260740  006451' REPO:   PUSHJ   PP,GCHAR        ;GET "<"\r
22533         005366' 302340  000074          CAIE    C,"<"\r
22534         005367' 254000  005365'         JRST    REPO\r
22535         005370' 332000  014022'         SKIPE   RPOLVL          ;ARE WE NESTED?\r
22536         005371' 350000  014022'         AOS     RPOLVL          ;YES, DECREMENT CURRENT\r
22537         005372' 261700  014022'         PUSH    MP,RPOLVL\r
22538         005373' 476000  014022'         SETOM   RPOLVL\r
22539         005374' 254000  000125'         JRST    STMNT\r
22540 \r
22541         005375' 306340  000074  REPO1:  CAIN    C,"<"\r
22542         005376' 370000  014022'         SOS     RPOLVL\r
22543         005377' 306340  000076          CAIN    C,">"\r
22544         005400' 352000  014022'         AOSE    RPOLVL\r
22545         005401' 254000  001423'         JRST    RSW2\r
22546         005402' 262700  014022'         POP     MP,RPOLVL\r
22547         005403' 260740  001423'         PUSHJ   PP,RSW2\r
22548         005404' 254000  001417'         JRST    RSW0\r
22549 \r
22550 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 105\r
22551 MACRO   10      24-APR-78 02:11         MACRO/REPEAT HANDLERS\r
22552 \r
22553         005405' 260740  001043' DEFIN0: PUSHJ   PP,GETSYM       ;GET MACRO NAME\r
22554         005406' 254000  003400'         JRST    ERRAX           ;EXIT ON ERROR\r
22555         005407' 202740  014015'         MOVEM   PP,PPTMP1       ;SAVE POINTER\r
22556         005410' 202000  014016'         MOVEM   AC0,PPTMP2      ;SAVE NAME\r
22557         005411' 661600  000004          TLO     IO,IORPTC\r
22558         005412' 200200  014101'         MOVE SX,SEQNO2  ;SAVE IN CASE OF EOF\r
22559         005413' 202200  013754'         MOVEM SX,DEFSEQ\r
22560         005414' 200200  014100'         MOVE SX,PAGENO\r
22561         005415' 202200  013753'         MOVEM SX,DEFPG\r
22562         005416' 476000  013745'         SETOM INDEF     ;AND FLAG IN DEFINE\r
22563                                         SYN     .TEMP,COMSW     ;SAVE SPACE\r
22564         005417' 403200  014054'         SETZB   SX,COMSW        ;SET ARGUMENT AND REFERENCE COUNT AND COMMENT SWITCH\r
22565         005420' 260740  006451' DEF02:  PUSHJ   PP,GCHAR        ;SEARCH FOR "(" OR "<"\r
22566         005421' 307340  000014          CAIG    C,FF            ;SEARCH FOR END OF LINE\r
22567         005422' 305340  000012          CAIGE   C,LF            ;LF,VT, OR FF\r
22568         005423' 254000  005425'         JRST    .+2             ;WASN'T ANY OF THEM\r
22569         005424' 402000  014054'         SETZM   COMSW           ;RESET COMMENT SWITCH\r
22570         005425' 306340  000073          CAIN    C,";"           ;COMMENT?\r
22571         005426' 476000  014054'         SETOM   COMSW           ;YES, SET COMMENT SWITCH\r
22572         005427' 332000  014054'         SKIPE   COMSW           ;INSIDE A COMMENT?\r
22573         005430' 254000  005420'         JRST    DEF02           ;YES, IGNORE CHARACTER\r
22574         005431' 306340  000074          CAIN    C,"<"           ;"<"?\r
22575         005432' 254000  005450'         JRST    DEF20           ;YES\r
22576         005433' 302340  000050          CAIE    C,"("           ;"("?\r
22577         005434' 254000  005420'         JRST    DEF02           ;NO\r
22578         005435' 260740  001043' DEF10:  PUSHJ   PP,GETSYM       ;YES, GET DUMMY SYMBOL\r
22579         005436' 660600  040000          TRO     ER,ERRA         ;FLAG ERROR\r
22580         005437' 271200  000001          ADDI    SX,1            ;INCREMENT ARG COUNT\r
22581         005440' 261740  000000          PUSH    PP,AC0          ;STACK IT\r
22582         005441' 306340  000034          CAIN    C,'<'           ;A DEFAULT ARGUMENT COMING UP?\r
22583         005442' 254000  005663'         JRST    DEF80           ;YES, STORE IT AWAY\r
22584         005443' 302340  000011          CAIE    C,11            ;")"?\r
22585         005444' 254000  005435'         JRST    DEF10           ;NO, GET NEXT DUMMY SYMBOL\r
22586         005445' 260740  006451' DEF12:  PUSHJ   PP,GCHAR\r
22587         005446' 302340  000074          CAIE    C,"<"           ;"<"?\r
22588         005447' 254000  005445'         JRST    DEF12           ;NO\r
22589         005450' 261740  014625' DEF20:  PUSH    PP,[0]          ;YES, MARK THE LIST\r
22590         005451' 242200  000011          LSH     SX,9            ;SHIFT ARG COUNT\r
22591         005452' 350240  000004          AOS     ARG,SX\r
22592         005453' 260740  006414'         PUSHJ   PP,SKELI        ;INITIALIZE MACRO SKELETON\r
22593         005454' 200000  014016'         MOVE    AC0,PPTMP2      ;GET NAME\r
22594         005455' 661600  000040          TLO IO,DEFCRS\r
22595         005456' 260740  012573'         PUSHJ   PP,MSRCH        ;SEARCH THE TABLE\r
22596         005457' 254000  005463'         JRST    DEF24           ;NOT FOUND\r
22597         005460' 607240  020000          TLNN    ARG,MACF        ;FOUND, IS IT A MACRO?\r
22598         005461' 664600  100000          TROA    ER,ERRX         ;NO, FLAG ERROR AND SKIP\r
22599         005462' 260740  006546'         PUSHJ   PP,REFDEC       ;YES, DECREMENT THE REFERENCE\r
22600         005463' 550300  014074' DEF24:  HRRZ    V,WWRXX         ;GET START OF TREE\r
22601         005464' 336000  014054'         SKIPN   .TEMP           ;ANY DEFAULT ARGUMENTS TO TAKE CARE OF?\r
22602         005465' 254000  005513'         JRST    DEF25           ;NO\r
22603         005466' 550346  000001          HRRZ    C,1(V)          ;GET SHIFTED ARG COUNT\r
22604         005467' 242340  777767          LSH     C,-9            ;GET ARG COUNT BACK\r
22605         005470' 271340  000001          ADDI    C,1             ;ONE MORE FOR TERMINAL ZERO\r
22606 \r
22607 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 105-1\r
22608 MACRO   10      24-APR-78 02:11         MACRO/REPEAT HANDLERS\r
22609 \r
22610         005471' 270340  014054'         ADD     C,.TEMP         ;NUMBER OF ITEMS IN STACK\r
22611         005472' 507000  000007          HRLS    C               ;MAKE XWD\r
22612         005473' 274740  000007          SUB     PP,C            ;BACK UP STACK\r
22613         005474' 200140  014054'         MOVE    SDEL,.TEMP      ;NUMBER OF WORDS NEEDED\r
22614         005475' 273140  013377'         ADDB    SDEL,FREE       ;FROM FREE CORE\r
22615         005476' 311140  013552'         CAML    SDEL,SYMBOL     ;MORE CORE NEEDED\r
22616         005477' 260740  010276'         PUSHJ   PP,XCEEDS       ;YES, TRY TO GET IT\r
22617         005500' 274140  014054'         SUB     SDEL,.TEMP      ;FORM POINTER\r
22618         005501' 506146  000001          HRLM    SDEL,1(V)       ;STORE IT WITH ARG COUNT IN MACRO\r
22619         005502' 275140  000001          SUBI    SDEL,1          ;TO USE FOR PUSHING POINTER INTO STORAGE\r
22620         005503' 201357  000001          MOVEI   C,1(PP)         ;POINT TO START OF STACK\r
22621         005504' 200247  000000  DEF26:  MOVE    ARG,(C)         ;GET AN ITEM OFF STACK\r
22622         005505' 607240  777740          TLNN    ARG,-40         ;A POINTER?\r
22623                                         JUMPN   ARG,[PUSH SDEL,ARG      ;YES, STORE IT\r
22624                                 \r
22625 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 106\r
22626 MACRO   10      24-APR-78 02:11         MACRO/REPEAT HANDLERS\r
22627 \r
22628         005506' 326240  015020'                 AOJA    C,DEF26]        ;GET NEXT\r
22629         005507' 261740  000005          PUSH    PP,ARG          ;RESTACK ARGUMENT\r
22630         005510' 332000  000005          SKIPE   ARG             ;FINISHED IF ZERO\r
22631         005511' 344340  005504'         AOJA    C,DEF26 ;GET NEXT\r
22632         005512' 261140  000005          PUSH    SDEL,ARG        ;STORE ZERO IN DEFAULT LIST ALSO\r
22633 \r
22634 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 107\r
22635 MACRO   10      24-APR-78 02:11         MACRO/REPEAT HANDLERS\r
22636 \r
22637         005513' 205240  020000  DEF25:  MOVSI   ARG,MACF\r
22638         005514' 202740  014016'         MOVEM   PP,PPTMP2       ;STORE TEMP STORAGE POINTER\r
22639         005515' 260740  013036'         PUSHJ   PP,INSERT       ;INSERT/UPDATE\r
22640         005516' 621600  000040          TLZ IO,DEFCRS   ;JUST IN CASE\r
22641         005517' 402000  014070'         SETZM   ARGF            ;NO ARGUMENT SEEN\r
22642         005520' 402000  014067'         SETZM   SQFLG           ;AND NO ' SEEN\r
22643         005521' 634140  000003          TDZA    SDEL,SDEL       ;CLEAR BRACKET COUNT\r
22644         005522' 260740  006456' DEF30:  PUSHJ   PP,WCHAR        ;WRITE CHARACTER\r
22645         005523' 260740  006451' DEF31:  PUSHJ   PP,GCHAR        ;GET A CHARACTER\r
22646         005524' 200400  000007  DEF32:  MOVE    CS,C            ;GET A COPY\r
22647         005525' 306340  000073          CAIN    C,";"           ;IS IT A COMMENT\r
22648         005526' 254000  005565'         JRST    CPEEK           ;YES CHECK FOR ;;\r
22649         005527' 307400  000172  DEF33:  CAIG CS,"Z"+40          ;CONVERT LOWER CASE\r
22650         005530' 305400  000141          CAIGE CS,"A"+40\r
22651         005531' 254000  005533'         JRST    .+2\r
22652         005532' 275400  000040          SUBI CS,40\r
22653 \r
22654 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 108\r
22655 MACRO   10      24-APR-78 02:11         MACRO/REPEAT HANDLERS\r
22656 \r
22657         005533' 305400  000040          CAIGE CS,40             ;TEST FOR CONTROL CHAR.\r
22658                                         JRST    [SKIPN  SQFLG   ;HAS SINGLE QUOTE BEEN SEEN?\r
22659                                                 JRST    DEF30   ;NO, OUTPUT THIS CHAR.\r
22660                                                 PUSH    PP,C    ;YES, SAVE CURRENT CHAR\r
22661                                                 MOVEI   C,47    ;SET UP QUOTE\r
22662                                                 PUSHJ   PP,WCHAR;WRITE IT\r
22663                                                 POP     PP,C    ;GET BACK CURRENT CHAR.\r
22664                                                 SETZM   SQFLG   ;RESET FLAG\r
22665         005534' 254000  015022'                 JRST    DEF30]  ;AND CONTINUE \r
22666         005535' 303400  000137          CAILE CS,77+40\r
22667         005536' 254000  005522'         JRST    DEF30           ;TEST FOR SPECIAL\r
22668         005537' 200410  001416'         MOVE    CS,CSTAT-40(CS) ;GET STATUS BITS\r
22669 \r
22670 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 109\r
22671 MACRO   10      24-APR-78 02:11         MACRO/REPEAT HANDLERS\r
22672 \r
22673         005540' 603400  000006          TLNE    CS,6            ;ALPHA-NUMERIC?\r
22674         005541' 254000  005602'         JRST    DEF40           ;YES\r
22675         005542' 336000  014067'         SKIPN   SQFLG           ;WAS A ' SEEN?\r
22676         005543' 254000  005551'         JRST    DEF36           ;NO, PROCESH\r
22677         005544' 261740  000007          PUSH    PP,C            ;YES, SAVE CURRENT CHARACTER\r
22678         005545' 201340  000047          MOVEI   C,47            ;AND PUT IN A '\r
22679         005546' 260740  006456'         PUSHJ   PP,WCHAR        ;...\r
22680         005547' 262740  000007          POP     PP,C            ;RESTORE CURRENT CHARACTER\r
22681         005550' 402000  014067'         SETZM   SQFLG           ;AND RESET FLAG\r
22682         005551' 302340  000047  DEF36:  CAIE    C,47            ;IS THIS A '?\r
22683         005552' 254000  005557'         JRST    DEF35           ;NOPE\r
22684         005553' 336000  014070'         SKIPN   ARGF            ;YES, WAS LAST THING SEEN AN ARG?\r
22685         005554' 476000  014067'         SETOM   SQFLG           ;IF NOT, SET SNGL QUOT FLAG\r
22686         005555' 402000  014070'         SETZM   ARGF            ;BUT NOT ARGUMENT IN ANY CASE\r
22687         005556' 254000  005523'         JRST    DEF31           ;GO GET NEXT CHARACTER\r
22688 \r
22689 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 110\r
22690 MACRO   10      24-APR-78 02:11         MACRO/REPEAT HANDLERS\r
22691 \r
22692         005557' 402000  014070' DEF35:  SETZM   ARGF            ;THIS IS NOT AN ARGUMENT\r
22693         005560' 306340  000074          CAIN    C,"<"           ;"<"?\r
22694         005561' 344140  005522'         AOJA    SDEL,DEF30      ;YES, INCREMENT COUNT AND WRITE\r
22695         005562' 306340  000076          CAIN    C,">"           ;">"?\r
22696         005563' 361140  005656'         SOJL    SDEL,DEF70      ;YES, TEST FOR END\r
22697         005564' 254000  005522'         JRST    DEF30           ;NO, WRITE IT\r
22698 \r
22699         005565' 607600  004000  CPEEK:  TLNN    IO,IOPALL       ;IF LALL IS ON\r
22700         005566' 254000  005527'         JRST    DEF33           ;JUST RETURN\r
22701         005567' 260740  006531'         PUSHJ   PP,PEEK         ;LOOK AT NEXT CHAR.\r
22702         005570' 306340  000073          CAIN    C,";"           ;IS IT ;;?\r
22703         005571' 254000  005574'         JRST    CPEEK1          ;YES\r
22704         005572' 200340  000010          MOVE    C,CS            ;RESTORE C\r
22705         005573' 254000  005527'         JRST    DEF33           ;AND RETURN\r
22706 \r
22707         005574' 260740  006451' CPEEK1: PUSHJ   PP,GCHAR        ;GET THE CHAR.\r
22708         005575' 302340  000076          CAIE    C,">"           ;RETURN IF END OF MACRO\r
22709         005576' 307340  000015          CAIG    C,CR            ;IS CHAR ONE OF\r
22710         005577' 305340  000012          CAIGE   C,LF            ;LF,VT,FF,CR\r
22711         005600' 254000  005574'         JRST    CPEEK1          ;NO,SO GET NEXT CHAR.\r
22712         005601' 254000  005524'         JRST    DEF32           ;YES,RETURN AND STORE\r
22713 \r
22714 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 111\r
22715 MACRO   10      24-APR-78 02:11         MACRO/REPEAT HANDLERS\r
22716 \r
22717         005602' 201000  000000  DEF40:  MOVEI   AC0,0           ;CLEAR ATOM\r
22718         005603' 205040  440600          MOVSI   AC1,(POINT 6,AC0)       ;SET POINTER\r
22719         005604' 261740  000007  DEF42:  PUSH    PP,C            ;STACK CHARACTER\r
22720         005605' 603040  770000          TLNE    AC1,770000      ;HAVE WE STORED 6?\r
22721         005606' 136400  000001          IDPB    CS,AC1          ;NO, STORE IN ATOM\r
22722         005607' 260740  006451'         PUSHJ   PP,GCHAR        ;GET NEXT CHARACTER\r
22723         005610' 200400  000007          MOVE    CS,C\r
22724         005611' 307400  000172          CAIG CS,"Z"+40\r
22725         005612' 305400  000141          CAIGE CS,"A"+40\r
22726         005613' 254000  005615'         JRST    .+2\r
22727         005614' 275400  000040          SUBI CS,40              ;CONVERT LOWER TO UPPER\r
22728         005615' 301400  000040          CAIL CS,40\r
22729         005616' 303400  000137          CAILE CS,77+40\r
22730         005617' 254000  005623'         JRST    DEF44           ;TEST SPECIAL\r
22731         005620' 200410  001416'         MOVE    CS,CSTAT-40(CS) ;GET STATUS\r
22732         005621' 603400  000006          TLNE    CS,6            ;ALPHA-NUMERIC?\r
22733         005622' 254000  005604'         JRST    DEF42           ;YES, GET ANOTHER\r
22734         005623' 261740  014625' DEF44:  PUSH    PP,[0]          ;NO, MARK THE LIST\r
22735         005624' 200200  014015'         MOVE    SX,PPTMP1       ;GET POINTER TO TOP\r
22736 \r
22737         005625' 336004  000001  DEF46:  SKIPN   1(SX)           ;END OF LIST?\r
22738         005626' 254000  005645'         JRST    DEF50           ;YES\r
22739         005627' 312004  000001          CAME    AC0,1(SX)       ;NO, DO THEY COMPARE?\r
22740         005630' 344200  005625'         AOJA    SX,DEF46        ;NO, TRY AGAIN\r
22741         005631' 274200  014015'         SUB     SX,PPTMP1       ;YES, GET DUMMY SYMBOL NUMBER\r
22742         005632' 242200  000004          LSH SX,4\r
22743         005633' 205404  776020          MOVSI   CS,<(BYTE (7) 177,101)>(SX)     ;SET ESCAPE CODE MACEND\r
22744         005634' 242000  777742          LSH     AC0,-^D30\r
22745         005635' 306000  000005          CAIN    AC0,5           ;"%"?\r
22746         005636' 661400  001000          TLO     CS,1000         ;YES, SET CRESYM FLAG\r
22747         005637' 260740  006462'         PUSHJ   PP,WWORD        ;WRITE THE WORD\r
22748         005640' 476000  014070'         SETOM ARGF              ;SET ARGUMENT SEEN FLAG\r
22749         005641' 402000  014067'         SETZM SQFLG             ;AND IGNORE ANY ' WAITING TO GET INTO STRING\r
22750         005642' 200740  014016' DEF48:  MOVE    PP,PPTMP2       ;RESET PUSHDOWN POINTER\r
22751         005643' 661600  000004          TLO     IO,IORPTC       ;ECHO LAST CHARACTER\r
22752         005644' 254000  005523'         JRST    DEF31           ;RECYCLE\r
22753 \r
22754         005645'                 DEF50:\r
22755         005645' 336000  014067'         SKIPN   SQFLG           ;HAVE WE SEEN A '?\r
22756         005646' 254000  005652'         JRST    DEF51           ;NOPE\r
22757         005647' 201340  000047          MOVEI   C,47            ;YES, PUT IT IN\r
22758         005650' 260740  006456'         PUSHJ   PP,WCHAR        ;...\r
22759         005651' 402000  014067'         SETZM   SQFLG           ;AND CLEAR FLAG\r
22760         005652' 200344  000002  DEF51:  MOVE    C,2(SX)         ;GET CHARACTER\r
22761         005653' 322340  005642'         JUMPE   C,DEF48         ;CLEAN UP IF END\r
22762         005654' 260740  006456'         PUSHJ   PP,WCHAR        ;WRITE THE CHARACTER\r
22763         005655' 344200  005652'         AOJA    SX,DEF51        ;GET NEXT\r
22764 \r
22765         005656' 200740  014015' DEF70:  MOVE    PP,PPTMP1       ;RESTORE PUSHDOWN POINTER\r
22766         005657' 205400  774020          MOVSI   CS,(BYTE (7) 177,1)\r
22767         005660' 260740  006466'         PUSHJ   PP,WWRXE        ;WRITE END\r
22768         005661' 402000  013745'         SETZM INDEF     ;OUT OF IT\r
22769         005662' 254000  004543'         JRST    BYPASS\r
22770 \r
22771 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 112\r
22772 MACRO   10      24-APR-78 02:11         MACRO/REPEAT HANDLERS\r
22773 \r
22774                                 ; HERE TO STORE DEFAULT ARGUMENTS\r
22775 \r
22776         005663' 350000  014054' DEF80:  AOS     .TEMP           ;COUNT ONE MORE\r
22777         005664' 260740  006413'         PUSHJ   PP,SKELI1       ;INITIALIZE SKELETON\r
22778         005665' 504300  000004          HRL     V,SX            ;SYMBOL NUMBER\r
22779         005666' 261740  000006          PUSH    PP,V            ;STORE POINTER\r
22780         005667' 634140  000003          TDZA    SDEL,SDEL       ;ZERO BRACKET COUNT\r
22781         005670' 260740  006456' DEF81:  PUSHJ   PP,WCHARQ       ;WRITE A CHARACTER\r
22782         005671' 260740  006450'         PUSHJ   PP,GCHARQ       ;GET A CHARACTER\r
22783         005672' 306340  000074          CAIN    C,"<"           ;ANOTHER "<"?\r
22784         005673' 344140  005670'         AOJA    SDEL,DEF81      ;YES, INCREMENT AND WRITE\r
22785         005674' 302340  000076          CAIE    C,">"           ;CLOSING ANGLE?\r
22786         005675' 254000  005670'         JRST    DEF81           ;NO, JUST WRITE THE CHAR.\r
22787         005676' 365140  005670'         SOJGE   SDEL,DEF81      ;YES, WRITE IF NOT END\r
22788         005677' 205400  774040          MOVSI   CS,(BYTE (7) 177,2)\r
22789         005700' 260740  006466'         PUSHJ   PP,WWRXE        ;WRITE END OF DUMMY ARGUMENT\r
22790         005701' 260740  006451'         PUSHJ   PP,GCHAR        ;READ AT NEXT CHAR.\r
22791         005702' 302340  000051          CAIE    C,")"           ;END OF ARGUMENT LIST?\r
22792         005703' 254000  005435'         JRST    DEF10           ;NO, GET NEXT SYMBOL\r
22793         005704' 254000  005445'         JRST    DEF12           ;YES, LOOK FOR "<"\r
22794 \r
22795 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 113\r
22796 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
22797 \r
22798                                 SUBTTL  MACRO CALL PROCESSOR\r
22799         005705' 335000  014071' CALLM:  SKIPGE  MACENL          ;ARE WE TRYING TO RE-ENTER?\r
22800         005706' 254000  003400'         JRST    ERRAX           ;YES, BOMB OUT WITH ERROR\r
22801         005707' 563000  014071'         HRROS   MACENL          ;FLAG "CALLM IN PROGRESS"\r
22802         005710' 250700  013250'         EXCH    MP,RP\r
22803         005711' 261700  000006          PUSH    MP,V            ;STACK FOR REFDEC\r
22804         005712' 250700  013250'         EXCH    MP,RP\r
22805         005713' 202000  013750'         MOVEM   AC0,CALNAM      ;SAVE MACRO NAME INCASE OF ERROR\r
22806         005714' 200140  014101'         MOVE SDEL,SEQNO2        ;SAVE IN CASE OF EOF\r
22807         005715' 202140  013752'         MOVEM SDEL,CALSEQ\r
22808         005716' 200140  014100'         MOVE SDEL,PAGENO\r
22809         005717' 202140  013751'         MOVEM SDEL,CALPG\r
22810         005720' 271300  000001          ADDI    V,1             ;POINT TO DUMMY SYMBOL COUNT\r
22811         005721' 350146  000000          AOS     SDEL,0(V)       ;INCREMENT ARG COUNT\r
22812         005722' 512140  014054'         HLLZM   SDEL,.TEMP      ;DEFAULT ARG POINTER IF NON-ZERO\r
22813         005723' 246140  777723          LSHC    SDEL,-^D<9+36>  ;ZERO SDEL, GET ARG COUNT IN SX\r
22814         005724' 405200  000777          ANDI    SX,777          ;MASK\r
22815         005725' 332000  014054'         SKIPE   .TEMP           ;IF AT LEAST ONE DEFAULT ARG\r
22816         005726' 542200  014054'         HRRM    SX,.TEMP        ;STORE COUNT OF ARGS\r
22817         005727' 261740  000006          PUSH    PP,V            ;STACK FOR MRP\r
22818         005730' 261740  013250'         PUSH    PP,RP           ;STACK FOR MACPNT\r
22819         005731' 322200  005776'         JUMPE   SX,MAC20        ;TEST FOR NO ARGS\r
22820         005732' 260740  001415'         PUSHJ   PP,CHARAC\r
22821         005733' 302340  000050          CAIE    C,"("           ;"("\r
22822         005734' 664140  777777          TROA    SDEL,-1         ;NO, FUDGE PAREN COUNT AND SKIP\r
22823 \r
22824         005735' 260740  006451' MAC10:  PUSHJ   PP,GCHAR        ;GET A CHARACTER, LOOK FOR AN ARG\r
22825         005736' 307340  000015          CAIG C,CR\r
22826         005737' 305340  000012          CAIGE C,LF\r
22827         005740' 306340  000073          CAIN    C,";"           ;";"?\r
22828         005741' 254000  006000'         JRST    MAC21           ;YES, END OF ARGUMENT STRING\r
22829 \r
22830         005742' 260740  006413'         PUSHJ   PP,SKELI1       ;NO, INITIALIZE SKELETON\r
22831         005743' 306340  000074          CAIN    C,"<"           ;"<"?\r
22832         005744' 254000  006073'         JRST    MAC30           ;YES, PROCESS AS SPECIAL\r
22833         005745' 302340  000176          CAIE C,176\r
22834         005746' 306340  000134          CAIN    C,134           ;"\"\r
22835         005747' 254000  006103'         JRST    MAC40           ;YES, PROCESS SYMBOL\r
22836 \r
22837         005750' 306340  000054  MAC14:  CAIN    C,","           ;","?\r
22838         005751' 254000  005767'         JRST    MAC16           ;YES; NULL SYMBOL\r
22839         005752' 306340  000050          CAIN    C,"("           ;"("?\r
22840         005753' 271140  000001          ADDI    SDEL,1          ;YES, INCREMENT COUNT\r
22841         005754' 306340  000051          CAIN    C,")"           ;")"?\r
22842         005755' 361140  005767'         SOJL    SDEL,MAC16      ;YES, TEST FOR END\r
22843         005756' 260740  006456'         PUSHJ   PP,WCHAR        ;WRITE INTO SKELETON\r
22844         005757' 260740  001415' MAC14A: PUSHJ   PP,CHARAC       ;GET NEXT CHARACTER\r
22845         005760' 307340  000015          CAIG C,CR\r
22846         005761' 305340  000012          CAIGE C,LF\r
22847         005762' 254000  005764'         JRST    .+2\r
22848         005763' 254000  005766'         JRST    MAC15           ;TEST FOR END OF LINE\r
22849         005764' 302340  000073          CAIE    C,";"           ;";"?\r
22850         005765' 254000  005750'         JRST    MAC14           ;YES, END OF LINE\r
22851 \r
22852 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 113-1\r
22853 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
22854 \r
22855 \r
22856         005766' 661600  000004  MAC15:  TLO     IO,IORPTC\r
22857         005767' 205400  774040  MAC16:  MOVSI   CS,(BYTE (7) 177,2)\r
22858         005770' 260740  006466'         PUSHJ   PP,WWRXE        ;WRITE END\r
22859         005771' 250700  013250'         EXCH    MP,RP\r
22860         005772' 261700  014074'         PUSH    MP,WWRXX\r
22861         005773' 250700  013250'         EXCH    MP,RP\r
22862         005774' 363200  005776'         SOJLE   SX,MAC20        ;BRANCH IF NO MORE ARGS\r
22863         005775' 325140  005735'         JUMPGE  SDEL,MAC10      ;HAVEN'T SEEN TERMINAL ")" YET\r
22864 \r
22865 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 114\r
22866 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
22867 \r
22868         005776' 627600  000004  MAC20:  TLZN    IO,IORPTC\r
22869         005777' 260740  001415'         PUSHJ   PP,CHARAC\r
22870         006000' 250700  013250' MAC21:  EXCH    MP,RP\r
22871         006001' 322200  006023'         JUMPE   SX,MAC21B       ;NO MISSING ARGS\r
22872         006002' 261700  014607' MAC21A: PUSH    MP,[-1]         ;FILL IN MISSING ARGS\r
22873         006003' 336000  014054'         SKIPN   .TEMP           ;ANY DEFAULT ARGS?\r
22874         006004' 254000  006022'         JRST    MAC21C          ;NO\r
22875         006005' 550340  014054'         HRRZ    C,.TEMP         ;GET ARG COUNT\r
22876         006006' 275344  777777          SUBI    C,-1(SX)        ;ACCOUNT FOR THOSE GIVEN\r
22877         006007' 517000  000007          HRLZS   C               ;PUT IN LEFT HALF\r
22878         006010' 554140  014054'         HLRZ    SDEL,.TEMP      ;ADDRESS OF TABLE\r
22879         006011' 336003  000000  MAC21D: SKIPN   (SDEL)          ;END OF LIST\r
22880         006012' 254000  006022'         JRST    MAC21C          ;YES\r
22881         006013' 430343  000000          XOR     C,(SDEL)        ;TEST FOR CORRECT ARG\r
22882         006014' 607340  777777          TLNN    C,-1            ;WAS IT?\r
22883         006015' 254000  006020'         JRST    MAC21E          ;YES\r
22884         006016' 430343  000000          XOR     C,(SDEL)        ;BACK THE WAY IT WAS\r
22885         006017' 344140  006011'         AOJA    SDEL,MAC21D     ;AND TRY AGAIN\r
22886 \r
22887         006020' 202356  000000  MAC21E: MOVEM   C,(MP)          ;REPLACE -1 WITH TREE POINTER\r
22888         006021' 350007  000001          AOS     1(C)            ;INCREMENT REFERENCE\r
22889         006022' 367200  006002' MAC21C: SOJG    SX,MAC21A\r
22890         006023' 261700  014625' MAC21B: PUSH    MP,[0]          ;SET TERMINAL\r
22891         006024' 550340  013452'         HRRZ    C,LIMBO\r
22892         006025' 607600  000001          TLNN    IO,IOSALL       ;SUPPRESSING ALL?\r
22893         006026' 254000  006045'         JRST    MAC23           ;NO\r
22894         006027' 326540  006043'         JUMPN   MRP,MAC27       ;IN MACRO?\r
22895         006030' 302340  000073          CAIE    C,";"           ;NO,IN COMMENT?\r
22896         006031' 254000  006036'         JRST    MAC26           ;NO\r
22897         006032' 260740  001415' MAC22:  PUSHJ   PP,CHARAC       ;YES,GET IT INTO THE LBUF\r
22898         006033' 307340  000015          CAIG    C,CR            ;LESS THAN CR?\r
22899         006034' 305340  000012          CAIGE   C,LF            ;AND GREATER THAN LF?\r
22900         006035' 254000  006032'         JRST    MAC22           ;NO GET ANOTHER\r
22901         006036' 515200  070000  MAC26:  HRLZI   SX,70000        ;DECREMENT BYTE POINTER\r
22902         006037' 273200  013453'         ADDB    SX,LBUFP\r
22903         006040' 325200  006043'         JUMPGE  SX,MAC27\r
22904         006041' 525200  347777          HRLOI   SX,347777\r
22905         006042' 272200  013453'         ADDM    SX,LBUFP\r
22906         006043' 505340  777777  MAC27:  HRLI    C,-1            ;SET FLAG\r
22907         006044' 254000  006060'         JRST    MAC25\r
22908 \r
22909         006045' 201200  000136  MAC23:  MOVEI   SX,"^"\r
22910         006046' 321600  006057'         JUMPAD  MAC24           ;BRANCH IF ADDRESS FIELD\r
22911         006047' 306340  000073          CAIN    C,";"           ;IF SEMI-COLON\r
22912         006050' 332000  013773'         SKIPE   LITLVL          ;AND NOT IN A LITERAL\r
22913         006051' 254000  006057'         JRST    MAC24           ;NOT BOTH TRUE\r
22914         006052' 326540  006057'         JUMPN   MRP,MAC24       ;OR IN A MACRO\r
22915         006053' 260740  000237'         PUSHJ   PP,STOUT        ;LIST COMMENT OR CR-LF\r
22916         006054' 603600  004000          TLNE    IO,IOPALL       ;MACRO EXPANSION SUPPRESSION?\r
22917         006055' 661600  010000          TLO     IO,IOMAC        ;  NO, SET TEMP BIT\r
22918         006056' 674340  014607'         TDOA    C,[-1]          ;FLAG LAST CHARACTER\r
22919         006057' 137200  013453' MAC24:  DPB     SX,LBUFP        ;SET ^ INTO LINE BUFFER\r
22920         006060' 261700  014073' MAC25:  PUSH    MP,MACPNT\r
22921 \r
22922 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 114-1\r
22923 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
22924 \r
22925         006061' 262740  014073'         POP     PP,MACPNT\r
22926         006062' 261700  000007          PUSH    MP,C\r
22927         006063' 261700  014075'         PUSH    MP,RCOUNT       ;STACK WORD COUNT\r
22928         006064' 261700  000013          PUSH    MP,MRP          ;STACK MACRO POINTER\r
22929         006065' 262740  000013          POP     PP,MRP          ;SET NEW READ POINTER\r
22930         006066' 250700  013250'         EXCH    MP,RP\r
22931         006067' 350000  014072'         AOS     MACLVL\r
22932         006070' 553000  014071'         HRRZS   MACENL          ;RESET "CALLM IN PROGRESS"\r
22933         006071' 325600  000130'         JUMPOC  STMNT2          ;OP-CODE FIELD\r
22934         006072' 254000  001102'         JRST    EVATOM          ;ADDRESS FIELD\r
22935 \r
22936 \r
22937 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 115\r
22938 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
22939 \r
22940         006073' 201000  000000  MAC30:  MOVEI   AC0,0           ;INITIALIZE BRACKET COUNTER\r
22941         006074' 260740  006451' MAC31:  PUSHJ   PP,GCHAR        ;GET A CHARACTER\r
22942         006075' 306340  000074          CAIN    C,"<"           ;"<"?\r
22943         006076' 271000  000001          ADDI    AC0,1           ;YES, INCREMENT COUNT\r
22944         006077' 306340  000076          CAIN    C,">"           ;">"?\r
22945         006100' 361000  005757'         SOJL    AC0,MAC14A      ;YES, EXIT IF MATCHING\r
22946         006101' 260740  006456'         PUSHJ   PP,WCHAR        ;WRITE INTO SKELETON\r
22947         006102' 254000  006074'         JRST    MAC31           ;GO BACK FOR ANOTHER\r
22948 \r
22949         006103' 261740  000004  MAC40:  PUSH    PP,SX           ;STACK REGISTERS\r
22950         006104' 261740  000003          PUSH    PP,SDEL\r
22951         006105' 502600  014051'         HLLM    IO,TAGINC       ;SAVE IO FLAGS\r
22952         006106' 260740  000363'         PUSHJ   PP,CELL         ;GET AN ATOM\r
22953         006107' 200300  000000          MOVE    V,AC0           ;ASSUME NUMERIC\r
22954         006110' 603600  020000          TLNE    IO,NUMSW        ;GOOD GUESS?\r
22955         006111' 254000  006114'         JRST    MAC41           ;YES\r
22956         006112' 260740  012610'         PUSHJ   PP,SSRCH        ;SEARCH THE SYMBOL TABLE\r
22957         006113' 664600  100000          TROA    ER,ERRX         ;NOT FOUND, ERROR\r
22958         006114' 260740  006122' MAC41:  PUSHJ   PP,MAC42        ;FORM ASCII STRING\r
22959         006115' 500600  014051'         HLL     IO,TAGINC       ;RESTORE IO FLAGS\r
22960         006116' 262740  000003          POP     PP,SDEL\r
22961         006117' 262740  000004          POP     PP,SX\r
22962         006120' 661600  000004          TLO     IO,IORPTC       ;REPEAT LAST CHARACTER\r
22963         006121' 254000  005757'         JRST    MAC14A          ;RETURN TO MAIN SCAN\r
22964 \r
22965         006122' 200340  000006  MAC42:  MOVE    C,V\r
22966         006123' 246340  777735  MAC44:  LSHC    C,-^D35\r
22967         006124' 242400  777777          LSH     CS,-1\r
22968         006125' 235355  000000          DIVI    C,0(RX)         ;DIVIDE BY CURRENT RADIX\r
22969         006126' 506417  000000          HRLM    CS,0(PP)\r
22970         006127' 322340  006131'         JUMPE   C,.+2           ;TEST FOR END\r
22971         006130' 260740  006123'         PUSHJ   PP,MAC44\r
22972         006131' 554357  000000          HLRZ    C,0(PP)\r
22973         006132' 271340  000060          ADDI    C,"0"           ;FORM TEXT\r
22974         006133' 254000  006456'         JRST    WCHAR           ;WRITE INTO SKELETON\r
22975 \r
22976 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 116\r
22977 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
22978 \r
22979         006134' 370000  014071' MACEN0: SOS     MACENL\r
22980         006135' 335340  014071' MACEND: SKIPGE  C,MACENL        ;TEST "CALLM IN PROGRESS"\r
22981         006136' 350000  014071'         AOS     MACENL          ;INCREMENT END LEVEL AND EXIT\r
22982         006137' 321340  005330'         JUMPL   C,REPEA8\r
22983         006140' 250700  013250'         EXCH    MP,RP\r
22984         006141' 262700  000013          POP     MP,MRP          ;RETRIEVE READ POINTER\r
22985         006142' 262700  014075'         POP     MP,RCOUNT       ;AND WORD COUNT\r
22986         006143' 201340  000136          MOVEI   C,"^"\r
22987         006144' 331016  000000          SKIPL   0(MP)           ;TEST FLAG\r
22988         006145' 260740  001423'         PUSHJ   PP,RSW2         ;MARK END OF SUBSTITUTION\r
22989         006146' 262700  000007          POP     MP,C\r
22990         006147' 262700  000005          POP     MP,ARG\r
22991         006150' 334700  014073'         SKIPA   MP,MACPNT       ;RESET MP AND SKIP\r
22992         006151' 260740  006546' MACEN1: PUSHJ   PP,REFDEC       ;DECREMENT REFERENCE\r
22993         006152' 350300  014073' MACEN2: AOS     V,MACPNT        ;GET POINTER\r
22994         006153' 200306  000000          MOVE    V,0(V)\r
22995         006154' 327300  006151'         JUMPG   V,MACEN1        ;IF >0, DECREMENT REFERENCE\r
22996         006155' 321300  006152'         JUMPL   V,MACEN2        ;IF <0, BYPASS\r
22997         006156' 262700  000006          POP     MP,V            ;IF=0, RETRIEVE POINTER\r
22998         006157' 260740  006546'         PUSHJ   PP,REFDEC       ;DECREMENT REFERENCE\r
22999         006160' 202240  014073'         MOVEM   ARG,MACPNT\r
23000         006161' 250700  013250'         EXCH    MP,RP\r
23001         006162' 370000  014072'         SOS     MACLVL\r
23002         006163' 336000  014071'         SKIPN   MACENL          ;CHECK UNPROCESSED END LEVEL\r
23003         006164' 254000  006167'         JRST    MACEN3          ;NONE TO PROCESS\r
23004         006165' 606540  777777          TRNN    MRP,-1          ;MRP AT END OF TEXT\r
23005         006166' 254000  006134'         JRST    MACEN0          ;THEN POP THE MACRO STACK NOW\r
23006         006167' 606340  077400  MACEN3: TRNN    C,77400         ;SALL FLAG?\r
23007         006170' 505340  000000          HRLI    C,0             ;YES,TURN IT OFF\r
23008         006171' 321340  005330'         JUMPL   C,REPEA8        ;IF FLAG SET SUBSTITUTE\r
23009         006172' 254000  001421'         JRST    RSW1\r
23010 \r
23011 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 117\r
23012 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
23013 \r
23014         006173' 336000  014072' IRP0:   SKIPN   MACLVL          ;ARE WE IN A MACRO?\r
23015         006174' 254000  003400'         JRST    ERRAX           ;NO, BOMB OUT\r
23016         006175' 260740  006516' IRP10:  PUSHJ   PP,MREADS       ;YES, GET DATA SPEC\r
23017         006176' 302340  000040          CAIE C,40               ;SKIP LEADING BLANKS\r
23018         006177' 306340  000050          CAIN    C,"("           ;"("?\r
23019         006200' 254000  006175'         JRST    IRP10           ;YES, BYPASS\r
23020         006201' 306340  000011          CAIN C,11\r
23021         006202' 254000  006175'         JRST IRP10\r
23022         006203' 302340  000177          CAIE    C,177           ;NO, IS IT SPECIAL?\r
23023         006204' 254000  003400'         JRST    ERRAX           ;NO, ERROR\r
23024         006205' 260740  006516'         PUSHJ   PP,MREADS       ;YES\r
23025         006206' 626340  000100          TRZN C,100              ;CREATED?\r
23026         006207' 254000  003400'         JRST ERRAX\r
23027         006210' 301340  000040          CAIL C,40               ;TOO BIG?\r
23028         006211' 254000  003400'         JRST ERRAX\r
23029         006212' 270340  014073'         ADD     C,MACPNT        ;NO, FORM POINTER TO STACK\r
23030         006213' 261700  013770'         PUSH    MP,IRPCF        ;STACK PREVIOUS POINTERS\r
23031         006214' 261700  013772'         PUSH    MP,IRPSW\r
23032         006215' 261700  013767'         PUSH    MP,IRPARP\r
23033         006216' 261700  013766'         PUSH    MP,IRPARG\r
23034         006217' 261700  013765'         PUSH    MP,IRPCNT\r
23035         006220' 261707  000000          PUSH    MP,0(C)\r
23036         006221' 261700  013771'         PUSH    MP,IRPPOI\r
23037 \r
23038         006222' 552340  013767'         HRRZM   C,IRPARP\r
23039         006223' 202000  013770'         MOVEM   AC0,IRPCF       ;IRPC FLAG FOUND IN AC0\r
23040         006224' 476000  013772'         SETOM   IRPSW           ;RESET IRP SWITCH\r
23041         006225' 200407  000000          MOVE    CS,0(C)\r
23042         006226' 202400  013766'         MOVEM   CS,IRPARG\r
23043 \r
23044         006227' 260740  006516'         PUSHJ   PP,MREADS\r
23045         006230' 302340  000074          CAIE    C,"<"           ;"<"?\r
23046         006231' 254000  006227'         JRST    .-2             ;NO, SEARCH UNTIL FOUND\r
23047         006232' 260740  006413'         PUSHJ   PP,SKELI1       ;INITIALIZE NEW STRING\r
23048         006233' 202240  013771'         MOVEM   ARG,IRPPOI      ;SET NEW POINTER\r
23049 \r
23050         006234' 634140  000003          TDZA    SDEL,SDEL       ;ZERO BRACKET COUNT AND SKIP\r
23051         006235' 260740  006456' IRP20:  PUSHJ   PP,WCHAR1\r
23052         006236' 260740  006516'         PUSHJ   PP,MREADS\r
23053         006237' 306340  000074          CAIN    C,"<"           ;"<"?\r
23054         006240' 344140  006235'         AOJA    SDEL,IRP20      ;YES, INCREMENT COUNT AND WRITE\r
23055         006241' 302340  000076          CAIE    C,">"           ;">"?\r
23056         006242' 254000  006235'         JRST    IRP20           ;NO, JUST WRITE IT\r
23057         006243' 365140  006235'         SOJGE   SDEL,IRP20      ;YES, WRITE IF NOT MATCHING\r
23058         006244' 200400  015032'         MOVE    CS,[BYTE (7) 15,177,4]\r
23059         006245' 260740  006466'         PUSHJ   PP,WWRXE        ;WRITE END\r
23060         006246' 261700  000013          PUSH    MP,MRP          ;STACK PREVIOUS READ POINTER\r
23061         006247' 261700  014075'         PUSH    MP,RCOUNT       ;AND WORD COUNT\r
23062         006250' 337400  013766'         SKIPG   CS,IRPARG\r
23063         006251' 254000  006331'         JRST    IRPPOP          ;EXIT IF NOT VALID ARGUMENT\r
23064         006252' 201350  000001          MOVEI   C,1(CS)         ;INITIALIZE POINTER\r
23065         006253' 202340  013766'         MOVEM   C,IRPARG\r
23066 \r
23067 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 118\r
23068 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
23069 \r
23070         006254' 250540  013766' IRPSET: EXCH    MRP,IRPARG      ;SWAP READ POINTERS\r
23071         006255' 200200  014075'         MOVE    SX,RCOUNT       ;SWAP COUNT OF WORDS TO READ\r
23072         006256' 250200  013765'         EXCH    SX,IRPCNT\r
23073         006257' 202200  014075'         MOVEM   SX,RCOUNT\r
23074         006260' 260740  006413'         PUSHJ   PP,SKELI1       ;INITIALIZE SKELETON FOR DATA\r
23075         006261' 552260  013767'         HRRZM   ARG,@IRPARP     ;STORE NEW DS POINTER\r
23076         006262' 403200  000003          SETZB   SX,SDEL         ;ZERO FOUND FLAG AND BRACKET COUNT\r
23077         006263' 135340  000013          LDB     C,MRP           ;GET LAST CHAR\r
23078         006264' 306340  000054          CAIN    C,","\r
23079         006265' 332000  013770'         SKIPE   IRPCF           ;IN IRPC\r
23080         006266' 254000  006270'         JRST    IRPSE1          ;NO\r
23081         006267' 201200  000001          MOVEI   SX,1            ;FORCE ARGUMENT\r
23082         006270' 260740  006516' IRPSE1: PUSHJ   PP,MREADS\r
23083         006271' 302340  000177          CAIE    C,177           ;SPECIAL?\r
23084         006272' 344200  006277'         AOJA    SX,IRPSE2       ;NO, FLAG AS FOUND\r
23085         006273' 260740  006535'         PUSHJ   PP,PEEKM        ;LOOK AT NEXT CHARACTER\r
23086         006274' 402000  013772'         SETZM   IRPSW           ;SET IRP SWITCH\r
23087         006275' 327200  006312'         JUMPG   SX,IRPSE4       ;IF ARG FOUND, PROCESS IT\r
23088         006276' 254000  006331'         JRST    IRPPOP          ;NO, CLEAN UP AND EXIT\r
23089 \r
23090         006277' 332000  013770' IRPSE2: SKIPE   IRPCF           ;IRPC?\r
23091         006300' 254000  006307'         JRST    IRPSE3          ;YES, WRITE IT\r
23092         006301' 306340  000054          CAIN    C,","           ;NO, IS IT A COMMA?\r
23093         006302' 322140  006312'         JUMPE   SDEL,IRPSE4     ;YES, EXIT IF NOT NESTED\r
23094         006303' 306340  000074          CAIN    C,"<"           ;"<"?\r
23095         006304' 271140  000001          ADDI    SDEL,1          ;YES, INCREMENT COUNT\r
23096         006305' 306340  000076          CAIN    C,">"           ;">"?\r
23097         006306' 275140  000001          SUBI    SDEL,1          ;YES, DECREMENT COUNT\r
23098 \r
23099         006307' 260740  006456' IRPSE3: PUSHJ   PP,WCHAR\r
23100         006310' 336000  013770'         SKIPN   IRPCF           ;IRPC?\r
23101         006311' 254000  006270'         JRST    IRPSE1          ;NO, GET NEXT CHARACTER\r
23102 \r
23103         006312' 205400  774040  IRPSE4: MOVSI   CS,(BYTE (7) 177,2)\r
23104         006313' 260740  006466'         PUSHJ   PP,WWRXE        ;WRITE END\r
23105         006314' 202540  013766'         MOVEM   MRP,IRPARG      ;SAVE POINTER\r
23106         006315' 200540  014075'         MOVE    MRP,RCOUNT      ;SAVE COUNT\r
23107         006316' 202540  013765'         MOVEM   MRP,IRPCNT\r
23108         006317' 550540  013771'         HRRZ    MRP,IRPPOI      ;SET FOR NEW SCAN\r
23109         006320' 344540  005330'         AOJA    MRP,REPEA8      ;ON ARG COUNT\r
23110 \r
23111 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 119\r
23112 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
23113 \r
23114         006321' 336000  013767' STOPI0: SKIPN   IRPARP          ;IRP IN PROGRESS?\r
23115         006322' 254000  003400'         JRST    ERRAX           ;NO, ERROR\r
23116         006323' 402000  013772'         SETZM   IRPSW           ;YES, SET SWITCH\r
23117         006324' 263740  000000          POPJ    PP,\r
23118 \r
23119         006325' 200320  013767' IRPEND: MOVE    V,@IRPARP\r
23120         006326' 260740  006546'         PUSHJ   PP,REFDEC\r
23121         006327' 332000  013772'         SKIPE   IRPSW           ;MORE TO COME?\r
23122         006330' 254000  006254'         JRST    IRPSET          ;YES\r
23123 \r
23124         006331' 200300  013771' IRPPOP: MOVE    V,IRPPOI\r
23125         006332' 260740  006546'         PUSHJ   PP,REFDEC       ;DECREMENT REFERENCE\r
23126         006333' 262700  014075'         POP     MP,RCOUNT\r
23127         006334' 262700  000013          POP     MP,MRP          ;RESTORE CELLS\r
23128         006335' 262700  013771'         POP     MP,IRPPOI\r
23129         006336' 262720  013767'         POP     MP,@IRPARP\r
23130         006337' 262700  013765'         POP     MP,IRPCNT\r
23131         006340' 262700  013766'         POP     MP,IRPARG\r
23132         006341' 262700  013767'         POP     MP,IRPARP\r
23133         006342' 262700  013772'         POP     MP,IRPSW\r
23134         006343' 262700  013770'         POP     MP,IRPCF\r
23135         006344' 254000  005330'         JRST    REPEA8\r
23136 \r
23137 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 120\r
23138 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
23139 \r
23140         006345'                 GETDS:                          ;GET DUMMY SYMBOL NUMBER\r
23141         006345' 200400  000007          MOVE    CS,C            ;USE CS FOR WORK REGISTER\r
23142         006346' 405400  000037          ANDI    CS,37           ;MASK\r
23143         006347' 270400  014073'         ADD     CS,MACPNT       ;ADD BASE ADDRESS\r
23144         006350' 200310  000000          MOVE    V,0(CS)         ;GET POINTER FLAG\r
23145         006351' 327300  006377'         JUMPG   V,GETDS1        ;BRANCH IF POINTER\r
23146         006352' 606340  000040          TRNN    C,40            ;NOT POINTER, SHOULD WE CREATE?\r
23147         006353' 254000  001417'         JRST    RSW0            ;NO, FORGET THIS ARG\r
23148         006354' 261740  014074'         PUSH    PP,WWRXX\r
23149         006355' 261740  000012          PUSH    PP,MWP          ;STACK MACRO WRITE POINTER\r
23150         006356' 261740  014076'         PUSH    PP,WCOUNT       ;SAVE WORD  COUNT\r
23151         006357' 260740  006413'         PUSHJ   PP,SKELI1       ;INITIALIZE SKELETON\r
23152         006360' 202250  000000          MOVEM   ARG,0(CS)       ;STORE POINTER\r
23153         006361' 200400  015033'         MOVE    CS,[BYTE (7) 0,170,170,170,171] ;CREATE A SYMBOL\r
23154         006362' 270400  014077'         ADD     CS,LSTSYM               ;LSTSYM= # OF LAST CREATED\r
23155         006363' 630400  015034'         TDZ     CS,[BYTE (7) 0,170,170,170,170]\r
23156         006364' 202400  014077'         MOVEM   CS,LSTSYM\r
23157         006365' 434400  015035'         IOR     CS,[ASCII /.0000/]\r
23158         006366' 201340  000056          MOVEI C,"."\r
23159         006367' 260740  006456'         PUSHJ PP,WCHAR\r
23160         006370' 260740  006462'         PUSHJ   PP,WWORD        ;WRITE INTO SKELETON\r
23161         006371' 205400  774040          MOVSI   CS,(BYTE (7) 177,2)\r
23162         006372' 260740  006466'         PUSHJ   PP,WWRXE        ;WRITE END CODE\r
23163         006373' 262740  014076'         POP     PP,WCOUNT       ;RESTORE WORD COUNT\r
23164         006374' 262740  000012          POP     PP,MWP          ;RESTORE MACRO WRITE POINTER\r
23165         006375' 262740  014074'         POP     PP,WWRXX\r
23166         006376' 200300  000005          MOVE    V,ARG           ;SET UP FOR REFINC\r
23167 \r
23168         006377' 260740  006543' GETDS1: PUSHJ   PP,REFINC       ;INCREMENT REFERENCE\r
23169         006400' 504300  014075'         HRL     V,RCOUNT        ;SAVE WORD COUNT\r
23170         006401' 261700  000006          PUSH    MP,V            ;STACK V FOR DECREMENT\r
23171         006402' 261700  000013          PUSH    MP,MRP          ;STACK READ POINTER\r
23172         006403' 201546  000001          MOVEI   MRP,1(V)        ;FORM READ POINTER\r
23173         006404' 254000  001417'         JRST    RSW0            ;EXIT\r
23174 \r
23175         006405' 262700  000013  DSEND:  POP     MP,MRP\r
23176         006406' 262700  000006          POP     MP,V\r
23177         006407' 576300  014075'         HLREM   V,RCOUNT        ;RESTORE WORD COUNT\r
23178         006410' 553000  000006          HRRZS   V               ;CLEAR COUNT\r
23179         006411' 260740  006546'         PUSHJ   PP,REFDEC       ;DECREMENT REFERENCE\r
23180         006412' 254000  001417'         JRST    RSW0            ;EXIT\r
23181 \r
23182 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 121\r
23183 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
23184 \r
23185         006413' 201240  000001  SKELI1: MOVEI   ARG,1           ;ENTRY FOR SINGLE ARG\r
23186         006414' 400500  000000  SKELI:  SETZ    MWP,            ;SIGNAL FIRST TIME THROUGH\r
23187         006415' 260740  006427'         PUSHJ   PP,SKELWL       ;GET POINTER WORD\r
23188         006416' 552500  014074'         HRRZM   MWP,WWRXX       ;SAVE FIRST ADDRESS\r
23189         006417' 552500  013450'         HRRZM   MWP,LADR        ;SAVE START OF LINKED LIST\r
23190         006420' 552252  000001          HRRZM   ARG,1(MWP)      ;STORE COUNT\r
23191         006421' 370000  014076'         SOS     WCOUNT          ;ACCOUNT FOR WORD\r
23192         006422' 550240  014074'         HRRZ    ARG,WWRXX       ;SET FIRST ADDRESS\r
23193         006423' 271500  000002          ADDI    MWP,2           ;BUMP POINTER\r
23194         006424' 505500  440700          HRLI    MWP,(POINT 7)   ;SET FOR 5 ASCII BYTES\r
23195                                         ;SKELW RETURNS WITH ADR OF NEXT FREE LOC IN V (RIGHT)\r
23196 \r
23197         006425' 373000  014076' SKELW:  SOSLE   WCOUNT          ;STILL SOME SPACE IN LEAF?\r
23198         006426' 263740  000000          POPJ    PP,             ;YES, RETURN\r
23199         006427' 332300  013511' SKELWL: SKIPE   V,NEXT          ;GET FIRST FREE ADDRESS\r
23200         006430' 254000  006437'         JRST    SKELW1          ;IF NON-ZERO, UPDATE FREE\r
23201         006431' 200300  013377'         MOVE    V,FREE          ;GET FREE\r
23202         006432' 271300  000004          ADDI    V,.LEAF         ;INCREMENT BY LEAF SIZE\r
23203         006433' 311300  013552'         CAML    V,SYMBOL        ;OVERFLOW?\r
23204         006434' 260740  010277'         PUSHJ   PP,XCEED        ;YES, BOMB OUT\r
23205         006435' 250300  013377'         EXCH    V,FREE          ;UPDATE FREE\r
23206         006436' 402006  000000          SETZM   (V)             ;CLEAR LINK\r
23207 \r
23208         006437' 500306  000000  SKELW1: HLL     V,0(V)          ;GET ADDRESS\r
23209         006440' 546300  013511'         HLRM    V,NEXT          ;UPDATE NEXT\r
23210         006441' 332000  000012          SKIPE   MWP             ;IF FIRST TIME\r
23211         006442' 506312  777775          HRLM    V,1-.LEAF(MWP)  ;STORE LINK IN FIRST WORD OF LEAF\r
23212         006443' 201500  000004          MOVEI   MWP,.LEAF       ;SIZE OF LEAF\r
23213         006444' 202500  014076'         MOVEM   MWP,WCOUNT      ;STORE FOR COUNT DOWN\r
23214         006445' 201506  000000          MOVEI   MWP,(V)         ;SET UP WRITE POINTER\r
23215         006446' 661500  160700          TLO     MWP,(POINT 7,,21)       ;2 ASCII CHARS\r
23216         006447' 263740  000000          POPJ    PP,\r
23217 \r
23218                                         ;WWRXX  POINTS TO END OF TREE\r
23219                                         ;MWP    IDPB POINTER TO NEXT HOLE\r
23220                                         ;NEXT   FIRST OF A LINKED PORTION THAT IS NOT BEING USED (LEAVES)\r
23221                                         ;FREE   POINTS TO FREE CORE BETWEEN TREE AND SYM-TABLE\r
23222                                         ;LADR   POINTS TO BEG OF LINKED PORTION.\r
23223 \r
23224 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 122\r
23225 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
23226 \r
23227         006450' 326540  006516' GCHARQ: JUMPN   MRP,MREADS      ;IF GETTING CHAR. FROM TREE\r
23228         006451' 260740  001415' GCHAR:  PUSHJ   PP,CHARAC       ;GET ASCII CHARACTER\r
23229         006452' 307340  000014          CAIG    C,FF            ;TEST FOR LF, VT OR FF\r
23230         006453' 305340  000012          CAIGE   C,LF\r
23231         006454' 263740  000000          POPJ    PP,             ;NO\r
23232         006455' 254000  001745'         JRST    OUTIM1          ;YES, LIST IT\r
23233 \r
23234         006456'                 WCHARQ:\r
23235         006456'                 WCHAR:  \r
23236         006456' 607500  760000  WCHAR1: TLNN    MWP,760000      ;END OF WORD?\r
23237         006457' 260740  006425'         PUSHJ   PP,SKELW        ;YES, GET ANOTHER\r
23238         006460' 136340  000012          IDPB    C,MWP           ;STORE CHARACTER\r
23239         006461' 263740  000000          POPJ    PP,\r
23240 \r
23241         006462' 246340  000007  WWORD:  LSHC    C,7             ;MOVE ASCII INTO C\r
23242         006463' 260740  006456'         PUSHJ   PP,WCHAR1       ;STORE IT\r
23243         006464' 326400  006462'         JUMPN   CS,WWORD        ;TEST FOR END\r
23244         006465' 263740  000000          POPJ    PP,             ;YES, EXIT\r
23245 \r
23246         006466' 260740  006462' WWRXE:  PUSHJ   PP,WWORD        ;WRITE LAST WORD\r
23247         006467' 270500  014076'         ADD     MWP,WCOUNT      ;GET TO END OF LEAF\r
23248         006470' 275500  000004          SUBI    MWP,.LEAF       ;NOW POINT TO START OF IT\r
23249         006471' 553012  000000          HRRZS   (MWP)           ;ZERO LEFT HALF OF LAST LEAF\r
23250         006472' 542520  014074'         HRRM    MWP,@WWRXX      ;SET POINTER TO END\r
23251         006473' 263740  000000          POPJ    PP,\r
23252 \r
23253 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 123\r
23254 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
23255 \r
23256         006474' 260740  006516' MREAD:  PUSHJ   PP,MREADS       ;READ ONE CHARACTER\r
23257         006475' 302340  000177          CAIE    C,177           ;SPECIAL?\r
23258         006476' 254000  001421'         JRST    RSW1            ;NO, EXIT\r
23259         006477' 260740  006516'         PUSHJ   PP,MREADS       ;YES, GET CODE WORD\r
23260         006500' 622340  000100          TRZE C,100              ;SYMBOL?\r
23261         006501' 254000  006345'         JRST GETDS              ;YES\r
23262         006502' 303340  000004          CAILE C,4               ;POSSIBLY ILLEGAL\r
23263         006503' 254000  003400'         JRST ERRAX              ;YUP\r
23264         006504' 541540  000000          HRRI    MRP,0           ;NO, SIGNAL END OF TEXT\r
23265         006505' 254007  006506'         JRST    .+1(C)\r
23266         006506' 260740  010277'         PUSHJ   PP,XCEED\r
23267         006507' 254000  006135'         JRST    MACEND          ;1; END OF MACRO\r
23268         006510' 254000  006405'         JRST    DSEND           ;2; END OF DUMMY SYMBOL\r
23269         006511' 254000  005332'         JRST    REPEND          ;3; END OF REPEAT\r
23270         006512' 254000  006325'         JRST    IRPEND          ;4; END OF IRP\r
23271 \r
23272         006513' 505540  000700  MREADI: HRLI    MRP,700         ;SET UP BYTE POINTER\r
23273         006514' 201340  000003          MOVEI   C,.LEAF-1       ;NUMBER OF WORDS\r
23274         006515' 202340  014075'         MOVEM   C,RCOUNT\r
23275         006516' 607540  777777  MREADS: TLNN    MRP,-1          ;FIRST TIME HERE?\r
23276         006517' 254000  006513'         JRST    MREADI          ;YES, SET UP MRP AND RCOUNT\r
23277         006520' 607540  760000          TLNN    MRP,760000      ;HAVE WE FINISHED WORD?\r
23278         006521' 373000  014075'         SOSLE   RCOUNT          ;YES, STILL ROOM IN LEAF?\r
23279         006522' 254000  006527'         JRST    MREADC          ;STILL CHAR. IN LEAF\r
23280         006523' 554553  777775          HLRZ    MRP,1-.LEAF(MRP);YES, GET LINK\r
23281         006524' 505540  160700          HRLI    MRP,(POINT 7,,21)       ;SET POINTER\r
23282         006525' 201340  000004          MOVEI   C,.LEAF         ;RESET COUNT\r
23283         006526' 202340  014075'         MOVEM   C,RCOUNT\r
23284         006527' 134340  000013  MREADC: ILDB    C,MRP           ;GET CHARACTER\r
23285         006530' 263740  000000          POPJ    PP,\r
23286 \r
23287         006531' 326540  006535' PEEK:   JUMPN   MRP,PEEKM       ;THIS IS A MACRO READ\r
23288         006532' 260740  001415'         PUSHJ   PP,CHARAC       ;READ AN ASCII CHAR.\r
23289         006533' 661600  000004          TLO     IO,IORPTC       ;REPEAT  FOR NEXT\r
23290         006534' 263740  000000          POPJ    PP,             ;AND RETURN\r
23291 \r
23292         006535' 261740  000013  PEEKM:  PUSH    PP,MRP          ;SAVE MACRO READ POINTER\r
23293         006536' 261740  014075'         PUSH    PP,RCOUNT       ;SAVE WORD COUNT\r
23294         006537' 260740  006516'         PUSHJ   PP,MREADS       ;READ IN A CHAR.\r
23295         006540' 262740  014075'         POP     PP,RCOUNT       ;RESTORE WORD COUNT\r
23296         006541' 262740  000013          POP     PP,MRP          ;RESET READ POINTER\r
23297         006542' 263740  000000          POPJ    PP,             ;IORPTC IS NOT SET\r
23298 \r
23299 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 124\r
23300 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
23301 \r
23302         006543' 201406  000001  REFINC: MOVEI   CS,1(V)         ;GET POINTER TO TREE\r
23303         006544' 350010  000000          AOS     0(CS)           ;INCREMENT REFERENCE\r
23304         006545' 263740  000000          POPJ    PP,\r
23305 \r
23306         006546' 323300  006560' REFDEC: JUMPLE  V,DECERR        ;CATASTROPHIC ERROR SOMEWHERE\r
23307         006547' 201406  000001          MOVEI   CS,1(V)         ;GET POINTER TO TREE\r
23308         006550' 370410  000000          SOS     CS,0(CS)        ;DECREMENT REFERENCE\r
23309         006551' 602400  000777          TRNE    CS,000777       ;IS IT ZERO?\r
23310         006552' 263740  000000          POPJ    PP,             ;NO, EXIT\r
23311         006553' 550406  000000          HRRZ    CS,0(V)         ;YES, GET POINTER TO END\r
23312         006554' 504400  013511'         HRL     CS,NEXT         ;GET POINTER TO NEXT RE-USABLE\r
23313         006555' 502410  000000          HLLM    CS,0(CS)        ;SET LINK\r
23314         006556' 542300  013511'         HRRM    V,NEXT          ;RESET NEXT\r
23315         006557' 263740  000000          POPJ    PP,\r
23316 \r
23317         006560' 200000  013750' DECERR: MOVE    AC0,CALNAM      ;GET MACRO NAME\r
23318         006561' 205440  015036'         MOVSI   RC,[SIXBIT /ERROR WHILE EXPANDING@/]\r
23319         006562' 260740  010241'         PUSHJ   PP,TYPMSG\r
23320         006563' 254000  010140'         JRST    ERRNE2          ;COMMON MESSAGE\r
23321 \r
23322 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 125\r
23323 MACRO   10      24-APR-78 02:11         MACRO CALL PROCESSOR\r
23324 \r
23325                         000000  A==     0                       ;ASCII MODE\r
23326                         000001  AL==    1                       ;ASCII LINE MODE\r
23327                         000013  IB==    13                      ;IMAGE BINARY MODE\r
23328                         000014  B==     14                      ;BINARY MODE\r
23329                         000016  DMP==16         ;DUMP MODE\r
23330 \r
23331                         000000  CTL==   0                       ;CONTROL DEVICE NUMBER\r
23332                         000004  IFN CCLSW,<CTL2==4              ;INPUT DEV FOR CCL FILE>\r
23333                         000001  BIN==   1                       ;BINARY DEVICE NUMBER\r
23334                         000002  CHAR==  2                       ;INPUT DEVICE NUMBER\r
23335                         000003  LST==   3                       ;LISTING DEVICE NUMBER\r
23336 \r
23337                                 ;       COMMAND STRING ACCUMULATORS\r
23338 \r
23339                         000001  ACDEV== 1                       ;DEVICE\r
23340                         000002  ACFILE==2                       ;FILE\r
23341                         000003  ACEXT== 3                       ;EXTENSION\r
23342                         000004  ACPPN== 4                       ;PPN\r
23343                         000004  ACDEL== 4                       ;DELIMITER\r
23344                         000005  ACPNTR==5                       ;BYTE POINTER\r
23345 \r
23346                         000006  TIO==   6\r
23347 \r
23348                         001000  TIORW== 1000\r
23349                         002000  TIOLE== 2000\r
23350                         020000  TIOCLD==20000\r
23351 \r
23352                         000004  DIRBIT==4               ;DIRECTORY DEVICE\r
23353                         000010  TTYBIT==10              ;TTY\r
23354                         000020  MTABIT==20              ;MTA\r
23355                         000100  DTABIT==100             ;DTA\r
23356                         002000  DISBIT==2000            ;DISPLAY\r
23357                         020000  CONBIT==20000           ;CONTROLING TTY\r
23358                         040000  LPTBIT==40000           ;LPT\r
23359                         200000  DSKBIT==200000          ;DSK\r
23360 \r
23361                                 ;GETSTS ERROR BITS\r
23362 \r
23363                         400000  IOIMPM==400000          ;IMPROPER MODE (WRITE LOCK)\r
23364                         200000  IODERR==200000          ;DEVICE DATA ERROR\r
23365                         100000  IODTER==100000          ;CHECKSUM OR PARITY ERROR\r
23366                         040000  IOBKTL== 40000          ;BLOCK TOO LARGE\r
23367                         740000  ERRBIT==IOIMPM!IODERR!IODTER!IOBKTL\r
23368 \r
23369                                 SYN     .TEMP,PPN\r
23370 \r
23371 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 126\r
23372 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23373 \r
23374                                 SUBTTL  I/O ROUTINES\r
23375         006564'                 BEG:\r
23376         006564' 625600  100000  IFN CCLSW,<TLZA IO,ARPGSW       ;DON'T ALLOW RAPID PROGRAM GENERATION\r
23377         006565' 661600  100000          TLO     IO,ARPGSW       ;ALLOW RAPID PROGRAM GENERATION>\r
23378         006566' 550540  005115*         HRRZ    MRP,JOBREL      ;GET LOWSEG SIZE\r
23379         006567' 202540  014117'         MOVEM   MRP,MACSIZ      ;SAVE CORE SIZE\r
23380                                                                 ;DECODE VERSION NUMBER\r
23381         006570' 201740  014161'         MOVEI   PP,JOBFFI       ;TEMP PUSH DOWN STACK\r
23382         006571' 261740  014625'         PUSH    PP,[0]          ;MARK BOTTOM OF STACK\r
23383         006572' 135000  015042'         LDB     0,[POINT 3,JOBVER,2]    ;GET USER BITS\r
23384         006573' 322000  006600'         JUMPE   0,GETE          ;NOT SET IF ZERO\r
23385         006574' 271000  000060          ADDI    0,"0"           ;FORM NUMBER\r
23386         006575' 261740  000000          PUSH    PP,0            ;STACK IT\r
23387         006576' 201000  000055          MOVEI   0,"-"           ;SEPARATE BY HYPHEN\r
23388         006577' 261740  000000          PUSH    PP,0            ;STACK IT ALSO\r
23389         006600' 550000  000137  GETE:   HRRZ    0,JOBVER        ;GET EDIT NUMBER\r
23390         006601' 322000  006612'         JUMPE   0,GETU          ;SKIP ALL THIS IF ZERO\r
23391         006602' 201040  000051          MOVEI   1,")"           ;ENCLOSE IN PARENS.\r
23392         006603' 261740  000001          PUSH    PP,1\r
23393         006604' 231000  000010  GETED:  IDIVI   0,8             ;GET OCTAL DIGITS\r
23394         006605' 271040  000060          ADDI    1,"0"           ;MAKE ASCII\r
23395         006606' 261740  000001          PUSH    PP,1            ;STACK IT\r
23396         006607' 326000  006604'         JUMPN   0,GETED         ;LOOP TIL DONE\r
23397         006610' 201000  000050          MOVEI   0,"("           ;OTHER PAREN.\r
23398         006611' 261740  000000          PUSH    PP,0\r
23399         006612' 135000  015043' GETU:   LDB     0,[POINT 6,JOBVER,17]   ;UPDATE NUMBER\r
23400         006613' 322000  006620'         JUMPE   0,GETV          ;SKIP IF ZERO\r
23401         006614' 231000  000010          IDIVI   0,8             ;MIGHT BE TWO DIGITS\r
23402         006615' 271040  000100          ADDI    1,"@"           ;FORM ALPHA\r
23403         006616' 261740  000001          PUSH    PP,1\r
23404         006617' 326000  006613'         JUMPN   0,GETU+1        ;LOOP IF NOT DONE\r
23405         006620' 135000  015044' GETV:   LDB     0,[POINT 9,JOBVER,11]   ;GET VERSION NUMBER\r
23406         006621' 231000  000010          IDIVI   0,8             ;GET DIGIT\r
23407         006622' 271040  000060          ADDI    1,"0"           ;TO ASCII\r
23408         006623' 261740  000001          PUSH    PP,1            ;STACK\r
23409         006624' 326000  006621'         JUMPN   0,GETV+1        ;LOOP\r
23410         006625' 200040  015045'         MOVE    1,[POINT 7,VBUF+1,13]   ;POINTER TO DEPOSIT IN VBUF\r
23411         006626' 262740  000000          POP     PP,0            ;GET CHARACTER\r
23412         006627' 136000  000001          IDPB    0,1             ;DEPOSIT IT\r
23413         006630' 326000  006626'         JUMPN   0,.-2           ;KEEP GOING IF NOT ZERO\r
23414 \r
23415 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 127\r
23416 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23417 \r
23418                                 IFN CCLSW,<\r
23419         006631' 625600  001000          TLZA    IO,CRPGSW       ;SET TO INIT NEW COMMAND FILE\r
23420         006632' 607600  001000  M:      TLNN    IO,CRPGSW       ;CURRENTLY DOING RPG?>\r
23421                                 IFE CCLSW,<M:>\r
23422         006633' 047000  000000          RESET                   ;INITIALIZE PROGRAM\r
23423         006634' 402000  013220'         SETZM   BINDEV          ;CLEAR INCASE NOT USED NEXT TIME\r
23424         006635' 402000  013223'         SETZM   LSTDEV          ;SAME REASON\r
23425         006636' 402000  013234'         SETZM   INDEV           ;INCASE OF ERROR\r
23426         006637' 550540  014117'         HRRZ    MRP,MACSIZ      ;GET INITIAL SIZE\r
23427         006640' 047540  000011          CORE    MRP,            ;BACK TO ORIGINAL SIZ4\r
23428         006641' 255000  000000          JFCL                    ;SHOULD NEVER FAIL\r
23429         006642' 403540  013250'         SETZB   MRP,PASS1I\r
23430         006643' 200000  015046'         MOVE    [XWD PASS1I,PASS1I+1]\r
23431         006644' 251000  014101'         BLT     PASS2X-1        ;ZERO THE PASS1 AND PASS2 VARIABLES\r
23432         006645' 201740  014161'         MOVEI   PP,JOBFFI       ;SET TEMP PUSH-DOWN POINTER\r
23433         006646' 200400  015047'         MOVE    CS,[POINT 7,DBUF,6]     ;INITIALIZE FOR DATE\r
23434         006647' 047100  000023          MSTIME  2,              ;GET TIME FROM MONITOR\r
23435         006650' 260740  010707'         PUSHJ   PP,TIMOUT       ;TIME FORMAT OUTPUT\r
23436         006651' 047040  000014          DATE    1,              ;GET DATE\r
23437         006652' 133000  000010          IBP     CS              ;PASS OVER PRESET SPACE\r
23438         006653' 260740  010724'         PUSHJ   PP,DATOUT       ;DATE FORMAT OUTPUT\r
23439         006654' 205640  402000          MOVSI   FR,P1!CREFSW\r
23440         006655' 603600  001000  IFN CCLSW,<TLNE IO,CRPGSW       ;RPG IN PROGRESS?\r
23441         006656' 254000  006742'         JRST    GOSET           ;YES, GO READ NEXT COMMAND\r
23442         006657' 603600  100000          TLNE    IO,ARPGSW       ;NO, RPG ALLOWED?\r
23443         006660' 254000  006703'         JRST    RPGSET          ;YES, GO TRY\r
23444         006661' 071200  000000  CTLSET: RELEASE CTL2,           ;IN CASE OF LOOKUP FAILURE>\r
23445                                 IFE CCLSW,<CTLSET:>\r
23446         006662' 205600  004000          MOVSI   IO,IOPALL       ;ZERO FLAGS\r
23447         006663' 041000  000001          INIT    CTL,AL          ;INITIALIZE USER CONSOLE\r
23448         006664' 646471  000000          SIXBIT  /TTY/\r
23449         006665' 014114' 014111'         XWD     CTOBUF,CTIBUF\r
23450         006666' 047000  000012          EXIT                    ;NO TTY, NO ASSEMBLY\r
23451         006667' 205340  646471          MOVSI   C,(SIXBIT /TTY/)\r
23452         006670' 047340  000004          DEVCHR  C,              ;GET CHARACTERISTICS\r
23453         006671' 607340  000010          TLNN    C,10            ;IS IT REALLY A TTY\r
23454         006672' 047000  000012          EXIT                    ;NO\r
23455         006673' 064000  000001          INBUF   CTL,1           ;INITIALIZE SINGLE CONTROL\r
23456         006674' 065000  000001          OUTBUF  CTL,1           ;BUFFERS\r
23457         006675' 260740  010247'         PUSHJ   PP,CRLF         ;OUTPUT CARRIAGE RETURN - LINE FEED\r
23458         006676' 201340  000052          MOVEI   C,"*"\r
23459         006677' 136340  014115'         IDPB    C,CTOBUF+1\r
23460         006700' 067000  000000          OUTPUT  CTL,\r
23461         006701' 066000  000000          INPUT   CTL,\r
23462 \r
23463 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 128\r
23464 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23465 \r
23466         006702' 254000  007022' IFN CCLSW,<JRST BINSET          ;BEGIN WITH BINARY FILE\r
23467 \r
23468         006703'                 RPGSET:\r
23469         006703' 041200  000001          INIT    CTL2,AL         ;LOOK FOR DISK\r
23470         006704' 446353  000000          SIXBIT  /DSK/           ;...\r
23471         006705' 000000  014106'         XWD     0,CTLBLK        ;...\r
23472         006706' 254000  006661'         JRST    CTLSET          ;DSK NOT THERE\r
23473 \r
23474         006707' 515140  554143          HRLZI   3,(SIXBIT /MAC/)        ;###MAC\r
23475         006710' 201000  000003          MOVEI   3                       ;COUNT\r
23476         006711' 047040  000030          PJOB    AC1,                    ;RETURNS JOB NO. TO AC1\r
23477         006712' 231040  000012  RPGLUP: IDIVI   AC1,12                  ;CONVERT\r
23478         006713' 271100  000020          ADDI    AC2,"0"-40              ;SIXBITIZE IT\r
23479         006714' 246100  777772          LSHC    AC2,-6                  ;\r
23480         006715' 367000  006712'         SOJG    0,RPGLUP                ;3 TIMES\r
23481         006716' 202140  013251'         MOVEM   3,CTLBUF                ;###MAC\r
23482         006717' 515000  645560          HRLZI   (SIXBIT /TMP/)          ;\r
23483         006720' 202000  013252'         MOVEM   CTLBUF+1                ;TMP\r
23484         006721' 402000  013254'         SETZM   CTLBUF+3                ;PROG-PRO\r
23485         006722' 076200  013251'         LOOKUP  CTL2,CTLBUF             ;COMMAND FILE\r
23486         006723' 254000  006661'         JRST    CTLSET                  ;NOT THERE\r
23487         006724' 546000  014104'         HLRM    EXTMP                   ;SAVE THE EXTENSION\r
23488 \r
23489         006725' 064200  000001  RPGS2:  INBUF   CTL2,1          ;SINGLE BUFFERED\r
23490         006726' 041000  000001  RPGS2A: INIT    CTL,AL          ;TTY FOR CONSOLE MESSAGES\r
23491         006727' 646471  000000          SIXBIT  /TTY/           ;...\r
23492         006730' 014114' 000000          XWD     CTOBUF,0        ;...\r
23493         006731' 047000  000012          EXIT                    ;NO TTY, NO ASSEMBLY\r
23494         006732' 065000  000001          OUTBUF  CTL,1           ;SINGLE BUFFERED\r
23495         006733' 200000  005224*         MOVE    JOBFF           ;REMEMBER WHERE BINARY BUFFERS BEGIN\r
23496         006734' 202000  014105'         MOVEM   SAVFF           ;...\r
23497         006735' 550000  006566*         HRRZ    JOBREL          ;TOP OF CORE\r
23498         006736' 313000  014117'         CAMLE   MACSIZ          ;SEE IF IT HAS GROWN\r
23499         006737' 202000  014117'         MOVEM   MACSIZ          ;PREVENTS ADDRESS CHECK ON EXIT\r
23500         006740' 603600  001000          TLNE IO,CRPGSW  ;ARE WE ALREADY IN RPG MODE?\r
23501         006741' 254000  006632'         JRST M  ;MUST HAVE COME FROM @ COMMAND, RESET\r
23502 \r
23503 \r
23504 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 129\r
23505 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23506 \r
23507         006742' 205600  005000  GOSET:  MOVSI   IO,IOPALL!CRPGSW        ;SET INITIAL FLAGS\r
23508         006743' 201400  000310          MOVEI   CS,CTLSIZ       ;MAXIMUM CHARS IN A LINE\r
23509         006744' 200040  014110'         MOVE    AC1,CTLBLK+2    ;NUMBER OF CHARACTERS\r
23510         006745' 202040  014113'         MOVEM   AC1,CTIBUF+2    ;SAVE FOR PASS 2\r
23511         006746' 200040  015050'         MOVE    AC1,[POINT 7,CTLBUF]    ;WHERE TO STASH CHARS\r
23512         006747' 202040  014112'         MOVEM   AC1,CTIBUF+1    ;...\r
23513         006750' 377000  014110' GOSET1: SOSG    CTLBLK+2        ;ANY MORE CHARS?\r
23514                                         PUSHJ   PP,[IN CTL2,            ;READ ANOTHER BUFFERFUL\r
23515                                                    POPJ PP,             ;EVERYTHING OK, RETURN\r
23516                                                    STATO CTL2,20000     ;EOF?\r
23517                                                    JRST [HRROI RC,[SIXBIT /ERROR READING COMMAND FILE@/]\r
23518                                                         JRST ERRFIN]            ;GO COMPLAIN\r
23519                                                    PUSHJ PP,DELETE      ;CMD FILE\r
23520         006751' 260740  015060'                    EXIT]                ;EOF AND FINISHED\r
23521         006752' 134340  014107'         ILDB    C,CTLBLK+1      ;GET NEXT CHAR\r
23522         006753' 200460  014107'         MOVE    RC,@CTLBLK+1    ;CHECK FOR SEQUENCE NUMBERS\r
23523         006754' 602440  000001          TRNE    RC,1            ;...\r
23524                                         JRST    [AOS    CTLBLK+1        ;SKIP OVER ANOTHER 5 CHARS\r
23525                                                 MOVNI   RC,5            ;...\r
23526                                                 ADDM    RC,CTLBLK+2     ;...\r
23527         006755' 254000  015066'                 JRST    GOSET1  ]       ;GO READ ANOTHER CHAR\r
23528         006756' 322340  006750'         JUMPE   C,GOSET1        ;IGNORE NULLS\r
23529         006757' 136340  014112'         IDPB    C,CTIBUF+1      ;STASH AWAY\r
23530         006760' 350000  014113'         AOS     CTIBUF+2        ;INCREMENT CHAR. COUNT\r
23531         006761' 302340  000012          CAIE    C,12            ;LINE FEED OR\r
23532         006762' 306340  000175          CAIN    C,175           ;ALTMODE?\r
23533         006763' 254000  006772'         JRST    GOSET2          ;YES, FINISHED WITH COMMAND\r
23534         006764' 302340  000176          CAIE    C,176\r
23535         006765' 306340  000033          CAIN    C,33\r
23536         006766' 254000  006772'         JRST    GOSET2          ;ALTMODE.\r
23537         006767' 367400  006750'         SOJG    CS,GOSET1       ;GO READ ANOTHER\r
23538         006770' 561440  015072'         HRROI   RC,[SIXBIT /COMMAND LINE TOO LONG@/]\r
23539         006771' 254000  010176'         JRST    ERRFIN          ;GO COMPLAIN\r
23540         006772' 201340  000012  GOSET2: MOVEI   C,12            ;MAKE SURE THERE'S A LF\r
23541         006773' 136340  014112'         IDPB    C,CTIBUF+1      ;...\r
23542         006774' 202040  014112'         MOVEM   AC1,CTIBUF+1    ;SET POINTER TO BEGINNING\r
23543         006775' 350000  014113'         AOS     CTIBUF+2        ;ADD I TO COUNT\r
23544         006776' 200000  014105'         MOVE    SAVFF           ;RESET JOBFF FOR NEW BINARY\r
23545         006777' 202000  006733*         MOVEM   JOBFF           ;...\r
23546         007000' 254000  007022'         JRST BINSET\r
23547 \r
23548 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 130\r
23549 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23550 \r
23551 \r
23552         007001' 260740  000066' RPGS1:  PUSHJ   PP,DELETE       ;DELETE COMMAND FILE\r
23553         007002' 202040  013231'         MOVEM   ACDEV,RPGDEV    ;GET SET TO INIT\r
23554         007003' 050200  013230'         OPEN    CTL2,RPGINI     ;DO IT\r
23555         007004' 254000  010162'         JRST    EINIT           ;ERROR\r
23556         007005' 202100  013343'         MOVEM   ACFILE,INDIR    ;USE INPUT BLOCK\r
23557         007006' 202200  013346'         MOVEM   ACPPN,INDIR+3   ;SET PPN \r
23558         007007' 202140  013344'         MOVEM   ACEXT,INDIR+1\r
23559         007010' 076200  013343'         LOOKUP  CTL2,INDIR\r
23560                                         JRST    [JUMPN  ACEXT,RPGLOS    ;GIVE UP ,EXPLICIT EXTENSION\r
23561                                         MOVSI   ACEXT,(SIXBIT /CCL/)    ;IF BLANK TRY CCL\r
23562         007011' 254000  015076'                 JRST    .-2     ]\r
23563         007012' 546140  014104'         HLRM    ACEXT,EXTMP     ;SAVE THE EXTENSION\r
23564         007013' 554000  000062*         HLRZ    JOBSA           ;RESET JOBFF TO ORIGINAL\r
23565         007014' 202000  006777*         MOVEM   JOBFF\r
23566         007015' 661600  001000          TLO     IO,CRPGSW       ;TURN ON SWITCH SO WE RESET WORLD\r
23567         007016' 254000  006725'         JRST    RPGS2           ;AND GO\r
23568         007017' 071200  000000  RPGLOS: RELEAS  CTL2,0\r
23569         007020' 621600  001000          TLZ     IO,CRPGSW       ;STOPS IO TO UNASGD CHAN\r
23570         007021' 254000  010171'         JRST    ERRCF           ;NO FILE FOUND\r
23571                                 >\r
23572 \r
23573 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 131\r
23574 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23575 \r
23576         007022' 260740  007477' BINSET: PUSHJ   PP,NAME1        ;GET FIRST NAME\r
23577         007023' 306340  000041  IFN CCLSW,<CAIN C,"!"           ;WAS THIS AN IMPERATIVE?\r
23578         007024' 254000  000017'         JRST    NUNSET          ;GET THEE TO A NUNNERY\r
23579         007025' 306340  000100          CAIN C,"@"      ;CHEK FOR A NEW RPG FILE\r
23580         007026' 254000  007001'         JRST RPGS1>\r
23581         007027' 607640  002000          TLNN    FR,CREFSW       ;CROSS REF REQUESTED?\r
23582         007030' 254000  007070'         JRST    LSTSE1          ;YES, SKIP BINARY\r
23583         007031' 306340  000054          CAIN    C,","           ;COMMA?\r
23584         007032' 322040  007067'         JUMPE   ACDEV,LSTSET    ;YES, SKIP BINARY IF NO DEVICE SPECIFIED\r
23585         007033' 306340  000137          CAIN    C,"_"           ;LEFT ARROW?\r
23586         007034' 322040  007070'         JUMPE   ACDEV,LSTSE1    ;YES, SKIP BINARY IF NO DEVICE SPECIFIED\r
23587         007035' 322040  006632'         JUMPE   ACDEV,M         ;IGNORE IF JUST <CR-LF>\r
23588         007036' 661640  001000          TLO     FR,PNCHSW       ;OK, SET SWITCH\r
23589         007037' 202040  013220'         MOVEM   ACDEV,BINDEV    ;STORE DEVICE NAME\r
23590         007040' 202100  013337'         MOVEM   ACFILE,BINDIR   ;STORE FILE NAME IN DIRECTORY\r
23591         007041' 326140  007043'         JUMPN   ACEXT,.+2       ;EXTENSION SPECIFIED?\r
23592         007042' 205140  624554          MOVSI   ACEXT,(SIXBIT /REL/)    ;NO, ASSUME RELOCATABLE BINARY\r
23593         007043' 202140  013340'         MOVEM   ACEXT,BINDIR+1  ;STORE IN DIRECTORY\r
23594         007044' 202200  013342'         MOVEM   ACPPN,BINDIR+3  ;SET PPN\r
23595         007045' 050040  013217'         OPEN    BIN,BININI      ;INITIALIZE BINARY\r
23596         007046' 254000  010162'         JRST    EINIT           ;ERROR\r
23597         007047' 623300  002000          TLZE TIO,TIOLE          ;SKIP TO EOT\r
23598         007050' 072040  000010          MTAPE BIN,10\r
23599         007051' 623300  001000          TLZE    TIO,TIORW       ;REWIND REQUESTED?\r
23600         007052' 072040  000001          MTAPE   BIN,1           ;YES\r
23601         007053' 325400  007061'         JUMPGE  CS,BINSE2       ;BRANCH IF NO BACK-SPACE\r
23602         007054' 072040  000017          MTAPE   BIN,17          ;BACK-SPACE A FILE\r
23603         007055' 341400  007054'         AOJL    CS,.-1          ;TEST FOR END\r
23604         007056' 072040  000000          WAIT    BIN,\r
23605         007057' 061040  004000          STATO   BIN,1B24        ;LOAD POINT?\r
23606         007060' 072040  000016          MTAPE   BIN,16          ;NO, GO FORWARD ONE\r
23607         007061' 367400  007060' BINSE2: SOJG    CS,.-1          ;TEST FORWARD SPACING\r
23608 \r
23609         007062' 603300  020000          TLNE    TIO,TIOCLD      ;DIRECTORY CLEAR REQUESTED?\r
23610         007063' 047040  000013          UTPCLR  BIN,            ;YES, CLEAR IT\r
23611         007064' 065040  000002          OUTBUF  BIN,2           ;SET UP TWO RING BUFFER\r
23612         007065' 306340  000137          CAIN    C,"_"\r
23613         007066' 254000  007142'         JRST    GETSET          ;NO LISTING\r
23614 \r
23615 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 132\r
23616 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23617 \r
23618         007067' 260740  007477' LSTSET: PUSHJ   PP,NAME1        ;GET NEXT DEVICE\r
23619         007070' 302340  000137  LSTSE1: CAIE    C,"_"\r
23620         007071' 254000  007603'         JRST    ERRCM\r
23621         007072' 603640  002000          TLNE    FR,CREFSW       ;CROSS-REF REQUESTED?\r
23622         007073' 254000  007102'         JRST    LSTSE2          ;NO, BRANCH\r
23623         007074' 326040  007076'         JUMPN   ACDEV,.+2       ;YES, WAS DEVICE SPECIFIED?\r
23624         007075' 205040  446353          MOVSI   ACDEV,(SIXBIT /DSK/)    ;NO, ASSUME DSK\r
23625         007076' 326100  007100'         JUMPN   ACFILE,.+2\r
23626         007077' 200100  015101'         MOVE    ACFILE,[SIXBIT /CREF/]\r
23627         007100' 326140  007102'         JUMPN   ACEXT,.+2\r
23628         007101' 205140  436246  MOVSI   ACEXT,(SIXBIT /CRF/)   \r
23629         007102' 322040  007142' LSTSE2: JUMPE   ACDEV,GETSET    ;FORGET LISTING IF NO DEVICE SPECIFIED\r
23630         007103' 200000  000001          MOVE    AC0,ACDEV\r
23631         007104' 047000  000004          DEVCHR  AC0,            ;GET CHARACTERISTICS\r
23632         007105' 603000  042010          TLNE    AC0,LPTBIT!DISBIT!TTYBIT\r
23633         007106' 603640  002000          TLNE    FR,CREFSW       ; WAS CROSS-REF REQUESTED?\r
23634         007107' 354000  013512'         AOSA    OUTSW+0*TTYSW   ;NO, ASSUME TTY\r
23635         007110' 254000  007603'         JRST    ERRCM           ;YES, ERROR - CREF DEV MUST NOT BE LPT, DIS, OR TTY\r
23636         007111' 603000  020000          TLNE    AC0,CONBIT      ;CONTROLING TELETYPE LISTING?\r
23637         007112' 254000  007142'         JRST    GETSET          ;YES, BUFFER ALREADY SET\r
23638         007113' 202040  013223'         MOVEM   ACDEV,LSTDEV    ;STORE DEVICE NAME\r
23639         007114' 350000  013512'         AOS     OUTSW+0*LPTSW   ;SET FOR LPT\r
23640         007115' 202100  013333'         MOVEM   ACFILE,LSTDIR   ;STORE FILE NAME\r
23641         007116' 326140  007120'         JUMPN   ACEXT,.+2\r
23642         007117' 205140  546364          MOVSI   ACEXT,(SIXBIT /LST/)\r
23643         007120' 202140  013334'         MOVEM   ACEXT,LSTDIR+1\r
23644         007121' 202200  013336'         MOVEM   ACPPN,LSTDIR+3  ;SET PPN\r
23645         007122' 050140  013222'         OPEN    LST,LSTINI      ;INITIALIZE LISTING OUTPUT\r
23646         007123' 254000  010162'         JRST    EINIT           ;ERROR\r
23647         007124' 623300  002000          TLZE TIO,TIOLE\r
23648         007125' 072140  000010          MTAPE LST,10\r
23649         007126' 623300  001000          TLZE    TIO,TIORW       ;REWIND REQUESTED?\r
23650         007127' 072140  000001          MTAPE   LST,1           ;YES\r
23651         007130' 325400  007136'         JUMPGE  CS,LSTSE3\r
23652         007131' 072140  000017          MTAPE   LST,17\r
23653         007132' 341400  007131'         AOJL    CS,.-1\r
23654         007133' 072140  000000          WAIT    LST,\r
23655         007134' 061140  004000          STATO   LST,1B24\r
23656         007135' 072140  000016          MTAPE   LST,16\r
23657         007136' 367400  007135' LSTSE3: SOJG    CS,.-1\r
23658         007137' 603300  020000          TLNE    TIO,TIOCLD      ;DIRECTORY CLEAR REQUESTED?\r
23659         007140' 047140  000013          UTPCLR  LST,            ;YES, CLEAR IT\r
23660         007141' 065140  000002          OUTBUF  LST,2           ;SET UP A TWO RING BUFFER\r
23661 \r
23662 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 133\r
23663 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23664 \r
23665         007142' 201140  010321' GETSET: MOVEI   3,PDPERR\r
23666         007143' 542140  000000*         HRRM    3,JOBAPR        ;SET TRAP LOCATION\r
23667         007144' 201140  200000          MOVEI   3,1B19          ;SET FOR PUSH-DOWN OVERFLOW\r
23668         007145' 047140  000016          APRENB  3,\r
23669         007146' 370140  013513'         SOS     3,PDP           ;GET PDP REQUEST MINUS 1\r
23670         007147' 221140  000062          IMULI   3,.PDP          ;COMPUTE SIZE (50*<NUMBER OF /P'S +1>)\r
23671         007150' 514700  000003          HRLZ    MP,3\r
23672         007151' 540700  007014*         HRR     MP,JOBFF        ;SET BASIC POINTER\r
23673         007152' 200740  000016          MOVE    PP,MP\r
23674         007153' 274740  000003          SUB     PP,3\r
23675         007154' 202740  013250'         MOVEM   PP,RP           ;SET RP\r
23676         007155' 274740  000003          SUB     PP,3\r
23677         007156' 240140  000001          ASH     3,1             ;DOUBLE SIZE OF BASIC POINTER\r
23678         007157' 504740  000003          HRL     PP,3\r
23679         007160' 276740  000003          SUBM    PP,3            ;COMPUTE TOP LOCATION\r
23680         007161' 336000  014121'         SKIPN   UNITOP          ;IF ANY UNIVERSALS HAVE BEEN SEEN\r
23681         007162' 254000  007167'         JRST    GETSE0          ;NO\r
23682         007163' 553000  000003          HRRZS   3               ;GET TOP OF BUFFERS AND STACKS\r
23683         007164' 313140  014120'         CAMLE   3,UNISIZ        ;HOPE ITS NOT BIGGER THAN UNIVERSAL ONE\r
23684         007165' 254000  005262'         JRST    UNIERR          ;IT WAS, YOU LOSE\r
23685         007166' 334140  014121'         SKIPA   3,UNITOP        ;DON'T LOSE THEM\r
23686         007167' 552140  014120' GETSE0: HRRZM   3,UNISIZ        ;STORE UNTIL A UNIVERSAL IS SEEN\r
23687         007170' 552140  013450'         HRRZM   3,LADR          ;SET START OF MACRO TREE\r
23688         007171' 552140  013377'         HRRZM   3,FREE\r
23689 \r
23690         007172' 550000  006735* GETSE1: HRRZ    JOBREL\r
23691         007173' 275000  000001          SUBI    1\r
23692         007174' 202000  013553'         MOVEM   SYMTOP          ;SET TOP OF SYMBOL TABLE\r
23693         007175' 275000  000004          SUBI    LENGTH          ;SET POINTER FOR INITIAL SYMBOLS\r
23694         007176' 313000  013450'         CAMLE   LADR            ;HAVE WE ROOM?\r
23695         007177' 254000  007205'         JRST    GETSE2          ;YES\r
23696 \r
23697         007200' 550100  007172*         HRRZ    2,JOBREL        ;NO, TRY FOR MORE CORE\r
23698         007201' 271100  002000          ADDI    2,2000\r
23699         007202' 047100  000011          CORE    2,\r
23700         007203' 254000  010317'         JRST    XCEED2  ;NO MORE, INFORM USER\r
23701         007204' 254000  007172'         JRST    GETSE1          ;TRY AGAIN\r
23702 \r
23703         007205' 202000  013552' GETSE2: MOVEM   SYMBOL          ;SET START OF SYMBOL TABLE\r
23704         007206' 505000  012201'         HRLI    SYMNUM\r
23705         007207' 251020  013553'         BLT     @SYMTOP         ;STORE SYMBOLS\r
23706         007210' 260740  013125'         PUSHJ   PP,SRCHI        ;INITIALIZE TABLE\r
23707         007211' 200000  015102'         MOVE    [XWD CTIBUF+1,CTLSAV]   ;SAVE CONTROL INPUT BUFFER\r
23708         007212' 251000  013741'         BLT     CTLS1           ;FOR RESCAN ON PASS 2\r
23709         007213' 205000  446353  IFN FTDISK,<MOVSI (SIXBIT /DSK/)        ;SET INPUT TO TAKE DSK AS DEV\r
23710         007214' 202000  013736'         MOVEM ACDEVX>\r
23711         007215' 260740  002743'         PUSHJ PP,COUTI  ;INIT OUTPUT JUST IN CASE\r
23712         007216' 260740  007242'         PUSHJ   PP,INSET        ;GET FIRST INPUT FILE\r
23713 \r
23714         007217' 603600  001000  IFN CCLSW,<TLNE IO,CRPGSW       ;BUT ONLY IF DOING RPG\r
23715         007220' 051140  015103'         TTCALL  3,[ASCIZ /MACRO: /]     ;PUBLISH COMPILER NAME>\r
23716         007221' 200400  013343'         MOVE CS,INDIR   ;SET UP NAME OF FIRST FILE\r
23717         007222' 202400  013207'         MOVEM CS,LSTFIL ;AS LAST PRINTED\r
23718 \r
23719 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 133-1\r
23720 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23721 \r
23722         007223' 402000  014102'         SETZM   LSTPGN\r
23723         007224' 254000  000077'         JRST    ASSEMB          ;START ASSEMBLY\r
23724 \r
23725 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 134\r
23726 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23727 \r
23728         007225' 070040  000000  FINIS:  CLOSE   BIN,            ;DUMP BUFFER\r
23729         007226' 603640  001000          TLNE    FR,PNCHSW       ;PUNCH REQUESTED?\r
23730         007227' 260740  010415'         PUSHJ   PP,TSTBIN       ;YES, TEST FOR ERRORS\r
23731         007230' 071040  000000          RELEAS  BIN,\r
23732         007231' 070140  000000          CLOSE   LST,\r
23733         007232' 373000  013512'         SOSLE   OUTSW+0*LPTSW   ;LPT TYPE OUTPUT?\r
23734         007233' 260740  010424'         PUSHJ   PP,TSTLST       ;YES, TEST FOR ERRORS\r
23735         007234' 071140  000000          RELEAS  LST,\r
23736         007235' 071100  000000          RELEAS  CHAR,\r
23737         007236' 067000  000000          OUTPUT CTL,0    ;FLUSH TTY OUTPUT\r
23738         007237' 332000  013733'         SKIPE   UNIVSN          ;SKIP IF NOT ASSEMBLING UNIVERSAL\r
23739         007240' 260740  005207'         PUSHJ   PP,UNISYM       ;STORE SYMBOLS ETC. FIRST\r
23740         007241' 254000  006632'         JRST    M               ;RETURN FOR NEXT ASSEMBLY\r
23741 \r
23742 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 135\r
23743 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23744 \r
23745         007242' 201000  014161' INSET:  MOVEI   JOBFFI          ;POINTER TO INPUT BUFFER\r
23746         007243' 542000  007151*         HRRM    JOBFF           ;INFORM SYSTEM OF BUFFER AREA\r
23747         007244' 260740  007500'         PUSHJ   PP,NAME2        ;GET NEXT COMMAND NAME\r
23748         007245' 322040  010115'         JUMPE   ACDEV,ERRNE     ;ERROR  IF NONE LEFT\r
23749         007246' 202040  013234'         MOVEM   ACDEV,INDEV     ;STORE DEVICE\r
23750         007247' 202100  013343'         MOVEM   ACFILE,INDIR    ;STORE FILE IN DIRECTORY\r
23751         007250' 202200  013346'         MOVEM   ACPPN,INDIR+3   ;STORE PPN BEFORE WE LOSE IT\r
23752         007251' 050100  013233'         OPEN    CHAR,INDEVI\r
23753         007252' 254000  010162'         JRST    EINIT           ;ERROR\r
23754         007253' 047040  000004          DEVCHR  ACDEV,          ;TEST CHARACTERISTICS\r
23755         007254' 607040  000020          TLNN    ACDEV,MTABIT    ;MAG TAPE?\r
23756         007255' 254000  007300'         JRST    INSET3          ;NO\r
23757         007256' 627640  000004          TLZN    FR,MTAPSW       ;FIRST MAG TAPE IN PASS 2?\r
23758         007257' 254000  007262'         JRST    INSET1          ;NO\r
23759         007260' 607300  001000          TLNN    TIO,TIORW       ;YES, REWIND REQUESTED?\r
23760         007261' 274400  013514'         SUB     CS,RECCNT       ;NO, PREPARE TO BACK-SPACE TAPE\r
23761         007262' 350000  013514' INSET1: AOS     RECCNT          ;INCREMENT FILE COUNTER\r
23762         007263' 272400  013514'         ADDM    CS,RECCNT       ;UPDATE  COUNT\r
23763         007264' 623300  002000          TLZE TIO,TIOLE\r
23764         007265' 072100  000010          MTAPE CHAR,10\r
23765         007266' 623300  001000          TLZE    TIO,TIORW       ;REWIND?\r
23766         007267' 072100  000001          MTAPE   CHAR,1          ;YES\r
23767         007270' 325400  007277'         JUMPGE  CS,INSET2\r
23768         007271' 072100  000017          MTAPE   CHAR,17\r
23769         007272' 072100  000017          MTAPE   CHAR,17\r
23770         007273' 341400  007272'         AOJL    CS,.-1\r
23771         007274' 072100  000000          WAIT    CHAR,\r
23772         007275' 061100  004000          STATO   CHAR,1B24\r
23773         007276' 072100  000016          MTAPE   CHAR,16\r
23774         007277' 365400  007276' INSET2: SOJGE   CS,.-1\r
23775 \r
23776         007300' 064100  000001  INSET3: INBUF CHAR,1\r
23777         007301' 201240  014161'         MOVEI ACPNTR,JOBFFI\r
23778         007302' 250240  007243*         EXCH ACPNTR,JOBFF\r
23779         007303' 275240  014161'         SUBI ACPNTR,JOBFFI\r
23780         007304' 201200  000407          MOVEI ACDEL,NUMBUF*203+1\r
23781         007305' 230200  000005          IDIV ACDEL,ACPNTR\r
23782         007306' 064104  000000          INBUF CHAR,(ACDEL)\r
23783         007307' 326140  007312'         JUMPN   ACEXT,INSET4    ;TAKE USER'S EXTENSION IF NON-BLANK\r
23784         007310' 205140  554143          MOVSI   ACEXT,(SIXBIT /MAC/)    ;BLANK, TRY .MAC FIRST\r
23785         007311' 260740  007425'         PUSHJ   PP,INSETI\r
23786         007312' 260740  007425' INSET4: PUSHJ   PP,INSETI\r
23787         007313' 322140  010171'         JUMPE   ACEXT,ERRCF     ;ERROR IF ZERO\r
23788         007314' 603040  000010          TLNE    ACDEV,TTYBIT    ;TELETYPE?\r
23789         007315' 060100  000001          SETSTS  CHAR,AL         ;YES, CHANGE TO ASCII LINE\r
23790 \r
23791 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 136\r
23792 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23793 \r
23794                                                                 ;DO ALL ENTERS HERE FOR LEVEL D\r
23795         007316' 332000  013732'         SKIPE   ENTERS          ;HAVE ENTERS BEEN DONE ALREADY?\r
23796         007317' 254000  007351'         JRST    ENTRDN          ;YES, DON'T DO TWICE\r
23797         007320' 336140  013223'         SKIPN   ACEXT,LSTDEV    ;IS THERE A LIST DEVICE?\r
23798         007321' 254000  007342'         JRST    LSTSE5          ;NO SO DON'T DO ENTER\r
23799         007322' 336100  013333'         SKIPN   ACFILE,LSTDIR   ;GET FILE NAME INCASE OF ERROR\r
23800                                         JRST    [DEVCHR ACEXT,  \r
23801                                                 TLNE    ACEXT,DIRBIT    ;DOES IT HAVE A DIRECTORY?\r
23802                                                 JRST    LSTSE4          ;YES, GIVE UP BEFORE HARM IS DONE\r
23803                                                 SKIPE   ACFILE,INDIR    ;USE INPUT FILE NAME\r
23804                                                 MOVEM   ACFILE,LSTDIR   ;TOO BAD IF ZERO ALSO\r
23805         007323' 254000  015105'                 JRST    LSTSE4]\r
23806         007324' 510140  013334'         HLLZ    ACEXT,LSTDIR+1  ;EXT ALSO\r
23807         007325' 200200  013336'         MOVE    ACPPN,LSTDIR+3  ;SAVE PPN\r
23808         007326' 076140  013333'         LOOKUP  LST,LSTDIR      ;PREVIOUS ONE STILL THERE\r
23809         007327' 254000  007340'         JRST    LSTSE4          ;NO\r
23810         007330' 402000  013333'         SETZM   LSTDIR          ;YES,CLEAR NAME\r
23811         007331' 202200  013336'         MOVEM   ACPPN,LSTDIR+3  ;RESET PPN\r
23812         007332' 055140  013333'         RENAME  LST,LSTDIR\r
23813         007333' 070140  000000          CLOSE   LST,            ;IGNORE FAILURE\r
23814         007334' 202100  013333'         MOVEM   ACFILE,LSTDIR   ;RESTORE NAME\r
23815         007335' 513000  013334'         HLLZS   LSTDIR+1        ;BH 11/19/74 FOR DATE75.  CLEAR RH.\r
23816         007336' 402000  013335'         SETZM   LSTDIR+2        ;CLEAR PROTECTION AND DATE\r
23817         007337' 202200  013336'         MOVEM   ACPPN,LSTDIR+3  ;SET PPN AGAIN\r
23818         007340'                 LSTSE4: \r
23819         007340' 077140  013333'         ENTER   LST,LSTDIR      ;SET UP DIRECTORY\r
23820         007341' 254000  010164'         JRST    ERRCL           ;ERROR\r
23821         007342' 336140  013220' LSTSE5: SKIPN   ACEXT,BINDEV    ;A BINARY DEVICE THEN ?\r
23822         007343' 254000  007351'         JRST    ENTRDN          ;NO\r
23823         007344' 336100  013337'         SKIPN   ACFILE,BINDIR   ;INCASE OF ERROR\r
23824                                         JRST    [DEVCHR ACEXT,  \r
23825                                                 TLNE    ACEXT,DIRBIT    ;DOES IT HAVE A DIRECTORY?\r
23826                                                 JRST    .+1             ;YES, GIVE UP BEFORE HARM IS DONE\r
23827                                                 SKIPE   ACFILE,INDIR    ;USE INPUT FILE NAME\r
23828                                                 MOVEM   ACFILE,BINDIR   ;TOO BAD IF ZERO ALSO\r
23829         007345' 254000  015113'                 JRST    .+1]\r
23830         007346' 513140  013340'         HLLZS   ACEXT,BINDIR+1  ;BH 11/19/74 DATE75.  WAS HLLZ.\r
23831         007347' 077040  013337'         ENTER   BIN,BINDIR      ;ENTER FILE NAME\r
23832         007350' 254000  010166'         JRST    ERRCB           ;ERROR\r
23833 \r
23834         007351' 476000  013732' ENTRDN: SETOM   ENTERS          ;MAKE SURE ONLY DONE ONCE\r
23835         007352' 200400  015121'         MOVE    CS,[POINT 7,DEVBUF]\r
23836         007353' 261740  000001          PUSH    PP,1            ;SAVE THE ACCS\r
23837         007354' 261740  000002          PUSH    PP,2\r
23838         007355' 261740  000003          PUSH    PP,3\r
23839         007356' 336100  013343'         SKIPN   2,INDIR         ;GET INPUT NAME\r
23840         007357' 254000  007412'         JRST    FINDEV          ;FINISHED WITH DEVICE\r
23841         007360' 400040  000000          SETZ    1,              ;CLEAR FOR RECEIVING\r
23842         007361' 246040  000006          LSHC    1,6             ;SHIFT ONE CHAR. IN\r
23843         007362' 271040  000040          ADDI    1,40            ;FORM ASCII\r
23844         007363' 136040  000010          IDPB    1,CS            ;STORE CHAR.\r
23845         007364' 326100  007360'         JUMPN   2,.-4           ;MORE TO DO?\r
23846         007365' 201040  000011          MOVEI   1,"     "       ;SEPARATE BY TAB\r
23847 \r
23848 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 136-1\r
23849 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23850 \r
23851         007366' 136040  000010          IDPB    1,CS\r
23852         007367' 510100  013344'         HLLZ    2,INDIR+1       ;GET EXT\r
23853         007370' 322100  007376'         JUMPE   2,FINEXT        ;NO EXT\r
23854         007371' 400040  000000          SETZ    1,\r
23855         007372' 246040  000006          LSHC    1,6             ;SAME LOOP AS ABOVE\r
23856         007373' 271040  000040          ADDI    1,40\r
23857         007374' 136040  000010          IDPB    1,CS\r
23858         007375' 326100  007371'         JUMPN   2,.-4\r
23859         007376' 201040  000011  FINEXT: MOVEI   1,"     "\r
23860         007377' 136040  000010          IDPB    1,CS            ;SEPARATE BY TAB\r
23861         007400' 135040  015122'         LDB     1,[POINT 12,INDIR+2,35] ;GET DATE\r
23862         007401' 135100  015123'         LDB     2,[POINT 3,INDIR+1,20]  ;BH 11/19/74 DATE75.\r
23863         007402' 137100  015124'         DPB     2,[POINT 3,1,23]        ;BH 11/19/74 DATE75.\r
23864         007403' 322040  007412'         JUMPE   1,FINDEV        ;NO DATE?\r
23865         007404' 260740  010724'         PUSHJ   PP,DATOUT       ;STORE IT\r
23866         007405' 135100  015125'         LDB     2,[POINT 11,INDIR+2,23] ;GET CREATION TIME\r
23867         007406' 322100  007412'         JUMPE   2,FINDEV        ;NO TIME (DECTAPE)\r
23868         007407' 201040  000040          MOVEI   1," "           ;SEPARATE BY SPACE\r
23869         007410' 136040  000010          IDPB    1,CS\r
23870         007411' 260740  010710'         PUSHJ   PP,TIMOU1       ;STORE TIME\r
23871         007412' 400040  000000  FINDEV: SETZ    1,\r
23872         007413' 201100  000011          MOVEI   2,"     "       ;FINAL TAB\r
23873         007414' 136100  000010          IDPB    2,CS\r
23874         007415' 136040  000010          IDPB    1,CS            ;TERMINATE FOR NOW\r
23875         007416' 262740  000003          POP     PP,3            ;RESTORE ACCS\r
23876         007417' 262740  000002          POP     PP,2\r
23877         007420' 262740  000001          POP     PP,1\r
23878         007421' 336000  014100'         SKIPN   PAGENO          ;IF FIRST TIME THRU\r
23879         007422' 254000  010703'         JRST    OUTFF           ;START NEW PAGE\r
23880         007423' 402000  014100'         SETZM PAGENO            ;ON NEW FILE, RESET PAGES\r
23881         007424' 254000  010704'         JRST    OUTFF2          ;DON'T START NEW PAGE UNLESS FF\r
23882 \r
23883         007425' 512140  013344' INSETI: HLLZM   ACEXT,INDIR+1   ;STORE EXTENSION\r
23884         007426' 200200  013346'         MOVE    ACPPN,INDIR+3   ;SAVE PPN\r
23885         007427' 076100  013343'         LOOKUP  CHAR,INDIR\r
23886         007430' 334140  013344'         SKIPA   ACEXT,INDIR+1   ;GET ERROR CODE\r
23887         007431' 254000  003446'         JRST    CPOPJ1          ;SKIP-RETURN IF FOUND\r
23888         007432' 602140  777777          TRNE    ACEXT,-1        ;ERROR CODE OF 0 IS FILE NOT FOUND\r
23889         007433' 254000  010171'         JRST    ERRCF           ;FILE THERE BUT NOT READABLE\r
23890         007434' 400140  000000          SETZ    ACEXT,          ;CLEAR EXT AND TRY AGAIN\r
23891         007435' 202200  013346'         MOVEM   ACPPN,INDIR+3   ;RESTORE PPN\r
23892         007436' 263740  000000          POPJ    PP,\r
23893 \r
23894 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 137\r
23895 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23896 \r
23897         007437' 204000  015102' REC2:   MOVS    [XWD CTIBUF+1,CTLSAV]   ;RESCAN CONTROL (FROM PASS1 END STMNT)\r
23898         007440' 251000  014113'         BLT     CTIBUF+2        ;INPUT BUFFER\r
23899         007441' 201000  000137          MOVEI   "_"\r
23900         007442' 506000  013347'         HRLM    ACDELX          ;FUDGE PREVIOUS DELIMITER\r
23901                                 IFN RENTSW,<MOVE HHIGH  ;GET HI-SEG BREAK\r
23902                                         MOVEM   HIGH1   ;SAVE THE ONE WE GOT ON PASS1 (FOR HISEG)>\r
23903         007443' 402000  013734'         SETZM   PASS2I\r
23904         007444' 200000  014726'         MOVE    [XWD PASS2I,PASS2I+1]\r
23905         007445' 251000  014101'         BLT     PASS2X-1                ;ZERO PASS2 VARIABLES\r
23906         007446' 661640  000024          TLO     FR,MTAPSW!LOADSW        ;SET FLAGS \r
23907 \r
23908         007447' 200000  013234' GOTEND: MOVE    INDEV           ;GET LAST DEVICE\r
23909         007450' 047000  000004          DEVCHR                  ;GET ITS CHARACTERISTICS\r
23910         007451' 603000  000004          TLNE    4               ;TEST FOR DIRECTORY (DSK OR DTA)\r
23911         007452' 254000  007460'         JRST    EOT             ;YES, SO DON'T WASTE TIME\r
23912         007453' 254000  007456'         JRST    .+3             ;NO, INPUT BUFFER BY BUFFER\r
23913         007454' 056100  000000          IN      CHAR,\r
23914         007455' 254000  007454'         JRST    .-1             ;NO ERRORS\r
23915         007456' 061100  020000          STATO   CHAR,1B22       ;TEST FOR EOF\r
23916         007457' 254000  007454'         JRST    .-3             ;IGNORE ERRORS\r
23917 \r
23918         007460' 260740  007473' EOT:    PUSHJ   PP,SAVEXS       ;SAVE REGISTERS\r
23919         007461' 260740  007242'         PUSHJ   PP,INSET        ;GET THE NEXT INPUT DEVICE\r
23920         007462' 561440  015126'         HRROI   RC,[SIXBIT /END OF PASS 1@/]    ;ASSUME END OF PASS\r
23921         007463' 627640  000020          TLZN    FR,LOADSW       ;ZERO ONLY ON END OF PASS 1\r
23922         007464' 561440  015131'         HRROI   RC,[SIXBIT /LOAD THE NEXT FILE@/]       ;NOT END OF PASS\r
23923         007465' 607040  000024          TLNN    ACDEV,(1B13!1B15)       ;WAS ALL THAT WORK NECESSARY?\r
23924         007466' 260740  010241'         PUSHJ   PP,TYPMSG       ;YES\r
23925 \r
23926         007467' 205440  013515' RSTRXS: MOVSI   RC,SAVBLK       ;SET POINTER\r
23927         007470' 251440  000010          BLT     RC,RC-1         ;RESTORE REGISTERS\r
23928         007471' 200440  013526'         MOVE    RC,SAVERC       ;RESTORE RC\r
23929         007472' 263740  000000          POPJ    PP,             ;EXIT\r
23930 \r
23931         007473' 202440  013526' SAVEXS: MOVEM   RC,SAVERC       ;SAVE RC\r
23932         007474' 201440  013515'         MOVEI   RC,SAVBLK       ;SET POINTER\r
23933         007475' 251440  013525'         BLT     RC,SAVBLK+RC-1  ;BLT ALL REGISTERS BELOW RC\r
23934         007476' 263740  000000          POPJ    PP,             ;EXIT\r
23935 \r
23936 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 138\r
23937 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23938 \r
23939         007477' 402000  013736' NAME1:  SETZM   ACDEVX          ;ENTRY FOR DESTINATION\r
23940         007500' 403040  013345' NAME2:  SETZB   ACDEV,INDIR+2   ;ENTRY FOR SOURCE\r
23941         007501' 201100  000000          MOVEI   ACFILE,0        ;CLEAR FILE\r
23942         007502' 554200  013347'         HLRZ    ACDEL,ACDELX    ;GET PREVIOUS DELIMITER\r
23943         007503' 403300  000010          SETZB   TIO,CS\r
23944         007504' 403140  013346'         SETZB   ACEXT,INDIR+3   ;RESET EXTENSION AND PROGRAM-NUMBER PAIR\r
23945         007505' 402000  014054'         SETZM   PPN             ;CLEAR PPN\r
23946         007506' 205240  440600  NAME3:  MOVSI   ACPNTR,(POINT 6,AC0)    ;SET POINTER\r
23947         007507' 634000  000000          TDZA    AC0,AC0         ;CLEAR SYMBOL\r
23948 \r
23949         007510' 260740  007630' SLASH:  PUSHJ   PP,SW0\r
23950         007511' 260740  010076' GETIOC: PUSHJ   PP,TTYIN        ;GET INPUT CHARACTER\r
23951         007512' 306340  000057          CAIN    C,"/"\r
23952         007513' 254000  007510'         JRST    SLASH\r
23953         007514' 306340  000050          CAIN    C,"("\r
23954         007515' 254000  007624'         JRST    SWITCH\r
23955         007516' 306340  000072          CAIN    C,":"\r
23956         007517' 254000  007551'         JRST    DEVICE\r
23957         007520' 306340  000056          CAIN    C,"."\r
23958         007521' 254000  007554'         JRST    NAME\r
23959         007522' 302340  000041  IFN CCLSW,<CAIE C,"!"           ;IS CHAR AN IMPERATIVE?\r
23960         007523' 306340  000100          CAIN    C,"@"\r
23961         007524' 254000  007560'         JRST    TERM            ;YES, GO DO IT>\r
23962         007525' 302340  000033          CAIE    C,33            ;CHECK FOR THREE FLAVORS OF ALT-MODE\r
23963         007526' 306340  000176          CAIN    C,176           ;...\r
23964         007527' 254000  007560'         JRST    TERM            ;...\r
23965         007530' 307340  000015          CAIG    C,CR            ;LESS THAN CR?\r
23966         007531' 305340  000012          CAIGE   C,LF            ;AND GREATER THAN LF?\r
23967         007532' 306340  000175          CAIN    C,175           ;OR 3RD ALTMOD\r
23968         007533' 254000  007560'         JRST    TERM            ;YES\r
23969         007534' 306340  000133  IFN FTDISK,<CAIN C,"["\r
23970         007535' 254000  007605'         JRST    PROGNP          ;GET PROGRAMER NUMBER PAIR>\r
23971         007536' 306340  000075          CAIN    C,"="           ;EQUALS IS SAME AS LEFT ARROW\r
23972         007537' 644340  000142          TRCA    C,142           ;SO MAKE IT A "_" AND SKIP\r
23973         007540' 302340  000054          CAIE    C,","\r
23974         007541' 306340  000137          CAIN    C,"_"\r
23975         007542' 254000  007560'         JRST    TERM\r
23976         007543' 305340  000040          CAIGE   C,40            ;VALID AS SIXBIT?\r
23977                                         JRST    [CAIN C,"Z"-100 ;NO,IS IT ^Z\r
23978                                                 EXIT            ;YES,EXIT FOR BATCH\r
23979         007544' 254000  015135'                 JRST    GETIOC] ;JUST IGNORE\r
23980         007545' 275340  000040          SUBI    C,40            ;CONVERT TO 6-BIT\r
23981         007546' 603240  770000          TLNE    ACPNTR,770000   ;HAVE WE STORED SIX BYTES?\r
23982         007547' 136340  000005          IDPB    C,ACPNTR        ;NO, STORE IT\r
23983         007550' 254000  007511'         JRST    GETIOC          ;GET NEXT CHARACTER\r
23984 \r
23985         007551' 326040  007603' DEVICE: JUMPN   ACDEV,ERRCM     ;ERROR IF ALREADY SET\r
23986         007552' 200040  000000          MOVE    ACDEV,AC0       ;DEVICE NAME\r
23987         007553' 254000  007556'         JRST    DEVNAM          ;COMMON CODE\r
23988 \r
23989         007554' 326100  007603' NAME:   JUMPN   ACFILE,ERRCM    ;ERROR IF ALREADY SET\r
23990         007555' 200100  000000          MOVE    ACFILE,AC0      ;FILE NAME\r
23991         007556' 200200  000007  DEVNAM: MOVE    ACDEL,C         ;SET DELIMITER\r
23992 \r
23993 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 138-1\r
23994 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
23995 \r
23996         007557' 254000  007506'         JRST    NAME3           ;GET NEXT SYMBOL\r
23997 \r
23998         007560' 322200  007565' TERM:   JUMPE   ACDEL,TERM1     ;IF NO PREVIOUS TERMINATOR, THEN FILENAME\r
23999         007561' 306200  000137          CAIN    ACDEL,"_"       ;...\r
24000         007562' 254000  007565'         JRST    TERM1           ;...\r
24001         007563' 302200  000072          CAIE    ACDEL,":"       ;IF PREVIOUS DELIMITER\r
24002         007564' 306200  000054          CAIN    ACDEL,","       ;WAS COLON OR COMMA\r
24003         007565' 200100  000000  TERM1:  MOVE    ACFILE,AC0      ;SET FILE\r
24004         007566' 306200  000056          CAIN    ACDEL,"."       ;IF PERIOD,\r
24005         007567' 510140  000000          HLLZ    ACEXT,AC0       ;SET EXTENSION\r
24006         007570' 506340  013347'         HRLM    C,ACDELX        ;SAVE PREVIOUS DELIMITER\r
24007         007571' 326040  007573'         JUMPN   ACDEV,.+2       ;IF DEVICE SET USE IT\r
24008         007572' 334040  013736'         SKIPA   ACDEV,ACDEVX    ;OTHERWISE USE LAST DEVICE\r
24009         007573' 202040  013736'         MOVEM   ACDEV,ACDEVX    ;AND DEVICE\r
24010         007574' 200200  014054'         MOVE    ACPPN,PPN       ;PUT PPN IN RIGHT PLACE\r
24011         007575' 306340  000041  IFN FTDISK,<CAIN C,"!"          ;IMPERATIVE?\r
24012         007576' 263740  000000          POPJ    PP,             ;YES, DON'T ASSUME DEV\r
24013         007577' 322100  003447'         JUMPE   ACFILE,CPOPJ    ;IF THERE IS A FILE,\r
24014         007600' 326040  007602'         JUMPN   ACDEV,.+2       ;BUT NO DEVICE\r
24015         007601' 205040  446353          MOVSI   ACDEV,(SIXBIT /DSK/)    ;THEN ASSUME DISK>\r
24016         007602' 263740  000000          POPJ    PP,             ;EXIT\r
24017 \r
24018 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 139\r
24019 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24020 \r
24021         007603' 561440  015140' ERRCM:  HRROI   RC,[SIXBIT /COMMAND ERROR@/]\r
24022         007604' 254000  010176'         JRST    ERRFIN\r
24023 \r
24024         007605'                 IFN FTDISK,<PROGNP:\r
24025         007605' 516440  014054' PROGN1: HRLZM   RC,PPN          ;COMMA, STORE LEFT HALF\r
24026         007606' 201440  000000  PROGN2: MOVEI   RC,0            ;CLEAR AC\r
24027         007607' 260740  010076' PROGN3: PUSHJ   PP,TTYIN\r
24028         007610' 306340  000054          CAIN    C,","\r
24029         007611' 254000  007605'         JRST    PROGN1          ;STORE LEFT HALF\r
24030         007612' 542440  014054'         HRRM    RC,PPN          ;ASSUME TERMINAL\r
24031         007613' 306340  000135          CAIN    C,"]"\r
24032         007614' 254000  007511'         JRST    GETIOC          ;YES, RETURN TO MAIN SCAN\r
24033         007615' 301340  000060          CAIL    C,"0"           ;CHECK FOR VALID NUMBERS\r
24034         007616' 303340  000067          CAILE   C,"7"\r
24035         007617' 254000  007603'         JRST    ERRCM           ;NOT VALID\r
24036         007620' 242440  000003          LSH     RC,3            ;SHIFT PREVIOUS RESULT\r
24037         007621' 271447  777720          ADDI    RC,-"0"(C)      ;ADD IN NEW NUMBER\r
24038         007622' 254000  007607'         JRST    PROGN3          ;GET NEXT CHARACTER>\r
24039 \r
24040 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 140\r
24041 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24042 \r
24043         007623' 260740  007631' SWITC0: PUSHJ   PP,SW1          ;PROCESS CHARACTER\r
24044         007624' 260740  010076' SWITCH: PUSHJ   PP,TTYIN        ;GET NEXT CHARACTER\r
24045         007625' 302340  000051          CAIE    C,")"           ;END OF STRING?\r
24046         007626' 254000  007623'         JRST    SWITC0          ;NO\r
24047         007627' 254000  007511'         JRST    GETIOC          ;YES\r
24048 \r
24049         007630' 260740  010076' SW0:    PUSHJ   PP,TTYIN\r
24050         007631' 201347  777677  SW1:    MOVEI   C,-"A"(C)       ;CONVERT FROM ASCII TO NUMERIC\r
24051         007632' 303340  000031          CAILE   C,"Z"-"A"       ;WITHIN BOUNDS? (IS IT ALPHA?)\r
24052         007633' 254000  007603'         JRST    ERRCM           ;NO, ERROR\r
24053         007634' 200440  015143'         MOVE    RC,[POINT 4,BYTAB]\r
24054         007635' 133000  000011          IBP     RC\r
24055         007636' 365340  007635'         SOJGE   C,.-1           ;MOVE TO PROPER BYTE\r
24056         007637' 135340  000011          LDB     C,RC            ;PICK UP BYTE\r
24057         007640' 322340  007603'         JUMPE   C,ERRCM         ;TEST FOR VALID SWITCH\r
24058         007641' 307340  000003          CAIG    C,SWTABT-SWTAB  ;LEGAL ON SOURCE?\r
24059         007642' 321740  007603'         JUMPL   PP,ERRCM        ;NO, TEST FOR SOURCE\r
24060         007643' 135440  015144'         LDB     RC,[POINT 4,SWTAB-1(C),12]\r
24061         007644' 306440  000014          CAIN    RC,IO\r
24062         007645' 336000  013740'         SKIPN   CTLSAV          ;IF PASS2 OR IO SWITCH,\r
24063         007646' 256007  010052'         XCT     SWTAB-1(C)      ;EXECUTE INSTRUCTION\r
24064         007647' 263740  000000          POPJ    PP,             ;EXIT\r
24065         007650' 621600  000001          TLZ     IO,IOSALL       ;TAKE CARE OF /X\r
24066         007651' 263740  000000          POPJ    PP,\r
24067 \r
24068                                 DEFINE HELP (TEXT)<\r
24069                                         XLIST\r
24070                                         ASCIZ ?TEXT?\r
24071                                         LIST>\r
24072 \r
24073                                 HLPMES: HELP <\r
24074                                 Switches are :-\r
24075                                 */A advance one file\r
24076                                 */B backspace one file\r
24077                                 /C produce a cref listing\r
24078                                 */E list macro expansions (LALL)\r
24079                                 */F list in new format (.MFRMT)\r
24080                                 /G list in old format (.HWFRMT)\r
24081                                 /H type this text\r
24082                                 */L reinstate listing (LIST)\r
24083                                 /M suppress ascii in macro and repeat expansion (SALL)\r
24084                                 */N suppress error printout on tty\r
24085                                 /O set MLOFF pseudo-op\r
24086                                 /P increase size of the pushdown stack\r
24087                                 /Q suppress Q errors on the listing\r
24088                                 */S suppress listing (XLIST)\r
24089                                 */T rewind device\r
24090                                 */X suppress all macro expansions (XALL)\r
24091                                 */Z zero the directory\r
24092                                 Switches A,B,C,T,W,X, and Z must immediately follow\r
24093                                 the device or file to which they refer.\r
24094 \r
24095 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 141\r
24096 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24097 \r
24098                                         DEFINE  SETSW   (LETTER,INSTRUCTION) <  INSTRUCTION\r
24099                                 J=      <"LETTER"-"A">-^D9*<I=<"LETTER"-"A">/^D9>\r
24100                                         SETCOD  \I,J>\r
24101 \r
24102                                         DEFINE  SETCOD          (I,J)\r
24103                                         <BYTAB'I=BYTAB'I!<.-SWTAB>B<4*J+3>>\r
24104 \r
24105                         000000  BYTAB0= 0                       ;INITIALIZE TABLE\r
24106                         000000  BYTAB1= 0\r
24107                         000000  BYTAB2= 0\r
24108 \r
24109         010053'                 SWTAB:\r
24110         010053' 661300  020000          SETSW   Z,<TLO  TIO,TIOCLD      >\r
24111         010054' 621640  002000          SETSW   C,<TLZ  FR,CREFSW       >\r
24112         010055' 370000  013513'         SETSW   P,<SOS  PDP             >\r
24113         010056'                 SWTABT:                         ;THE ABOVE SW'S ARE LEGAL ON OUTPUT ONLY\r
24114         010056' 271400  000001          SETSW   A,<ADDI CS,1            >\r
24115         010057' 275400  000001          SETSW   B,<SUBI CS,1            >\r
24116         010060' 621600  004001          SETSW   E,<TLZ  IO,IOPALL!IOSALL        >\r
24117         010061' 051140  007652'         SETSW   H,<OUTSTR       HLPMES>\r
24118         010062' 621600  200000          SETSW   L,<TLZ  IO,IOMSTR       >\r
24119         010063' 661600  004001          SETSW   M,<TLO  IO,IOPALL!IOSALL        >\r
24120         010064' 523000  013727'         SETSW   N,<HLLOS   TYPERR       >\r
24121         010065' 256000  004244'         SETSW   O,<XCT  OFFML           >\r
24122         010066' 661640  000010          SETSW   Q,<TLO  FR,ERRQSW       >\r
24123         010067' 661600  200000          SETSW   S,<TLO  IO,IOMSTR       >\r
24124         010070' 661300  002000          SETSW   T,<TLO  TIO,TIOLE       >\r
24125         010071' 661300  001000          SETSW   W,<TLO  TIO,TIORW       >\r
24126         010072' 665600  004000          SETSW   X,<TLOA IO,IOPALL       >\r
24127 \r
24128         010073'                 BYTAB:                          ;BYTAB CONTAINS AN INDEX TO SWTAB\r
24129                                                                 ;IT CONSIST OF 9 4BIT BYTES/WORD\r
24130                                                                 ;OR ONE BYTE FOR EACH LETTER\r
24131 \r
24132         010073' 212201  400160          +BYTAB0                 ;A-I    BYTE = 1 THROUGH 17 = INDEX\r
24133         010074' 001046  531700          +BYTAB1                 ;J-R    BYTE = 0 = COMMAND ERROR\r
24134         010075' 674003  600020          +BYTAB2                 ;S-Z\r
24135 \r
24136                                 IF2,<PURGE I,J,BYTAB0,BYTAB1,BYTAB2>\r
24137 \r
24138 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 142\r
24139 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24140 \r
24141         010076' 375000  014113' TTYIN:  SOSGE   CTIBUF+2        ;ENUF CHAR.?\r
24142         010077' 254000  010113'         JRST    TTYERR          ;NO\r
24143         010100' 134340  014112'         ILDB    C,CTIBUF+1      ;GET CHARACTER\r
24144         010101' 302340  000040          CAIE    C," "           ;SKIP BLANKS\r
24145         010102' 306340  000011          CAIN    C,HT            ;AND TABS\r
24146         010103' 254000  010076'         JRST    TTYIN\r
24147         010104' 306340  000015          CAIN    C,15            ;CR?\r
24148         010105' 402000  014113'         SETZM   CTIBUF+2        ;YES,IGNORE REST OF LINE\r
24149         010106' 307340  000172          CAIG C,"Z"+40           ;CHECK FOR LOWER CASE\r
24150         010107' 305340  000141          CAIGE C,"A"+40\r
24151         010110' 263740  000000          POPJ    PP,             ;NO,EXIT\r
24152         010111' 275340  000040          SUBI C,40\r
24153         010112' 263740  000000          POPJ    PP,             ;YES, EXIT\r
24154 \r
24155         010113' 336000  013234' TTYERR: SKIPN   INDEV           ;INPUT DEVICE SEEN?\r
24156         010114' 254000  007603'         JRST    ERRCM           ;NO, SO MISSING "_"\r
24157         010115' 561440  015145' ERRNE:  HRROI   RC,[SIXBIT /?NO END STATEMENT ENCOUNTERED ON INPUT FILE@/]\r
24158         010116' 051540  000006  ERRNE0: SKPINC  V       ;SEE IF WE CAN INPUT A CHAR.\r
24159         010117' 255000  000000            JFCL          ;BUT ONLY TO DEFEAT ^O\r
24160         010120' 260740  010241'         PUSHJ PP,TYPMSG ;OUTPUT IT\r
24161         010121' 332000  013773'         SKIPE LITLVL    ;SEE IF IN LITERAL\r
24162         010122' 336000  013755'         SKIPN   LITPG   ;PAGE 0 MEANS NOT IN A LITERAL REALY\r
24163         010123' 254000  010126'         JRST ERRNE1     ;NO, TRY OTHERS\r
24164         010124' 200300  015157'         MOVE V,[XWD [SIXBIT /IN LITERAL@/],LITPG]\r
24165         010125' 260740  010323'         PUSHJ PP,PRNUM  ;GO PRINT INFORMATION\r
24166         010126' 201300  000000  ERRNE1: MOVEI V,0       ;CHECK FOR OTHER PLACES\r
24167         010127' 332000  013745'         SKIPE INDEF\r
24168         010130' 200300  015162'         MOVE V,[XWD [SIXBIT /IN DEFINE@/],DEFPG]\r
24169         010131' 332000  013746'         SKIPE INTXT\r
24170         010132' 200300  015165'         MOVE V,[XWD [SIXBIT /IN TEXT@/],TXTPG]\r
24171         010133' 332000  013744'         SKIPE INREP\r
24172         010134' 200300  015173'         MOVE V,[XWD [SIXBIT /IN CONDITIONAL OR REPEAT@/],REPPG]\r
24173         010135' 332000  013747'         SKIPE INCND\r
24174         010136' 200300  015177'         MOVE V,[XWD [SIXBIT /IN CONDITIONAL@/],CNDPG]\r
24175         010137' 335000  014071'         SKIPGE MACENL\r
24176         010140' 200300  015203' ERRNE2: MOVE V,[XWD [SIXBIT /IN MACRO CALL@/],CALPG]\r
24177         010141' 326300  010145'         JUMPN V,ERRNE3\r
24178         010142' 336000  013773'         SKIPN   LITLVL          ;HAD ONE PAGE NUMBER ALREADY\r
24179         010143' 334300  015204'         SKIPA   V,[XWD [SIXBIT /@/],PAGENO]     ;BETTER THAN NOTHING\r
24180         010144' 254000  010146'         JRST    .+2\r
24181         010145' 260740  010323' ERRNE3: PUSHJ PP,PRNUM\r
24182         010146' 561440  015134'         HRROI RC,[SIXBIT /@/]   ;WILL GET A RETURN\r
24183         010147' 254000  010176'         JRST ERRFIN\r
24184 \r
24185         010150' 004562  625762  ERRMS1: SIXBIT / ERRORS DETECTED@/\r
24186         010151' 630044  456445\r
24187         010152' 436445  444000\r
24188         010153' 372100  456262  ERRMS2: SIXBIT /?1 ERROR DETECTED@/\r
24189         010154' 576200  444564\r
24190         010155' 454364  454440\r
24191         010156' 565700  456262  ERRMS3: SIXBIT /NO ERRORS DETECTED@/\r
24192         010157' 576263  004445\r
24193         010160' 644543  644544\r
24194 \r
24195 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 142-1\r
24196 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24197 \r
24198         010161' 400000  000000\r
24199         010162' 200440  015210' EINIT:  MOVE    RC,[XWD ACDEV,[SIXBIT /NOT AVAILABLE@/]]\r
24200         010163' 254000  010176'         JRST    ERRFIN\r
24201 \r
24202 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 143\r
24203 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24204 \r
24205         010164' 550440  013334' ERRCL:  HRRZ    RC,LSTDIR+1     ;GET LST DEV ERROR CODE\r
24206         010165' 254000  010167'         JRST    .+2             ;GET ERROR MESSAGE\r
24207         010166' 550440  013340' ERRCB:  HRRZ    RC,BINDIR+1     ;GET BIN DEV ERROR CODE\r
24208         010167' 326440  010173'         JUMPN   RC,ERRTYP\r
24209         010170' 364440  010173'         SOJA    RC,ERRTYP       ;SPECIAL CASE IF ERROR CODE 0\r
24210 \r
24211         010171' 550440  013344' ERRCF:  HRRZ    RC,INDIR+1      ;GET INPUT DEV ERROR CODE\r
24212         010172' 510140  013344'         HLLZ    ACEXT,INDIR+1   ;SET UP EXT\r
24213 \r
24214         010173' 301440  000027  ERRTYP: CAIL    RC,TABLND-TABLE ;IS ERROR CODE LEGAL?\r
24215         010174' 334440  010240'         SKIPA   RC,TABLND       ;NO, GIVE CATCH ALL MESSAGE\r
24216         010175' 200451  010211'         MOVE    RC,TABLE(RC)    ;YES, PICK UP MESSAGE\r
24217 \r
24218         010176' 051540  000007  ERRFIN: SKPINC  C               ;SEE IN WE CAN INPUT A CHAR.\r
24219         010177' 255000  000000            JFCL                  ;BUT ONLY TO DEFEAT ^O\r
24220         010200' 260740  010247'         PUSHJ   PP,CRLF\r
24221         010201' 201340  000077          MOVEI   C,"?"\r
24222         010202' 260740  010252'         PUSHJ   PP,TYO\r
24223         010203' 260740  010242'         PUSHJ   PP,TYPMS1\r
24224         010204' 070140  000000          CLOSE   LST,            ;GIVE USER A PARTIAL LISTING\r
24225         010205' 070040  000040          CLOSE   BIN,40          ;BUT NEVER A BUM REL FILE\r
24226         010206' 350000  003237* IFN CCLSW,<AOS  JOBERR          ;RECORD ERROR SO EXECUTION DELETED>\r
24227         010207' 254000  006632'         JRST    M\r
24228 \r
24229         010210' 015211' 000002          [SIXBIT /(0) ILLEGAL FILE NAME@/],,ACFILE\r
24230         010211' 015215' 000002  TABLE:  [SIXBIT /(0) FILE WAS NOT FOUND@/],,ACFILE\r
24231         010212' 015221' 000002          [SIXBIT /(1) NO DIRECTORY FOR PROJECT-PROGRAMMER NUMBER@/],,ACFILE\r
24232         010213' 015231' 000002          [SIXBIT /(2) PROTECTION FAILURE@/],,ACFILE\r
24233         010214' 015235' 000002          [SIXBIT /(3) FILE WAS BEING MODIFIED@/],,ACFILE\r
24234         010215' 015242' 000002          [SIXBIT /(4) RENAME FILE NAME ALREADY EXISTS@/],,ACFILE\r
24235         010216' 015250' 000002          [SIXBIT /(5) ILLEGAL SEQUENCE OF UUOS@/],,ACFILE\r
24236         010217' 015255' 000002          [SIXBIT /(6) BAD UFD OR BAD RIB@/],,ACFILE\r
24237         010220' 015261' 000002          [SIXBIT /(7) NOT A SAV FILE@/],,ACFILE\r
24238         010221' 015265' 000002          [SIXBIT /(10) NOT ENOUGH CORE@/],,ACFILE\r
24239         010222' 015271' 000002          [SIXBIT /(11) DEVICE NOT AVAILABLE@/],,ACFILE\r
24240         010223' 015276' 000002          [SIXBIT /(12) NO SUCH DEVICE@/],,ACFILE\r
24241         010224' 015302' 000002          [SIXBIT /(13) NOT TWO RELOC REG. CAPABILITY@/],,ACFILE\r
24242         010225' 015310' 000002          [SIXBIT /(14) NO ROOM OR QUOTA EXCEEDED@/],,ACFILE\r
24243         010226' 015316' 000002          [SIXBIT /(15) WRITE LOCK ERROR@/],,ACFILE\r
24244         010227' 015322' 000002          [SIXBIT /(16) NOT ENOUGH MONITOR TABLE SPACE@/],,ACFILE\r
24245         010230' 015330' 000002          [SIXBIT /(17) PARTIAL ALLOCATION ONLY@/],,ACFILE\r
24246         010231' 015335' 000002          [SIXBIT /(20) BLOCK NOT FREE ON ALLOCATION@/],,ACFILE\r
24247         010232' 015343' 000002          [SIXBIT /(21) CAN'T SUPERSEDE (ENTER) AN EXISTING DIRECTORY@/],,ACFILE\r
24248         010233' 015354' 000002          [SIXBIT /(22) CAN'T DELETE (RENAME) A NON-EMPTY DIRECTORY@/],,ACFILE\r
24249         010234' 015365' 000002          [SIXBIT /(23) SFD NOT FOUND@/],,ACFILE\r
24250         010235' 015371' 000002          [SIXBIT /(24) SEARCH LIST EMPTY@/],,ACFILE\r
24251         010236' 015375' 000002          [SIXBIT /(25) SFD NESTED TOO DEEPLY@/],,ACFILE\r
24252         010237' 015402' 000002          [SIXBIT /(26) NO-CREATE ON FOR SPECIFIED PATH@/],,ACFILE\r
24253 \r
24254         010240' 015411' 000002  TABLND: [SIXBIT /(?) LOOKUP, ENTER, OR RENAME ERROR@/],,ACFILE\r
24255 \r
24256 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 144\r
24257 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24258 \r
24259         010241' 260740  010247' TYPMSG: PUSHJ   PP,CRLF         ;MOVE TO NEXT LINE\r
24260         010242' 554400  000011  TYPMS1: HLRZ    CS,RC           ;GET FIRST MESSAGE\r
24261         010243' 302400  777777          CAIE    CS,-1           ;SKIP IF MINUS ONE\r
24262         010244' 260740  010262'         PUSHJ   PP,TYPM2        ;TYPE MESSAGE\r
24263         010245' 550400  000011          HRRZ    CS,RC           ;GET SECOND HALF\r
24264         010246' 260740  010262'         PUSHJ   PP,TYPM2\r
24265 \r
24266         010247' 201340  000015  CRLF:   MOVEI   C,CR            ;OUTPUT CARRIAGE RETURN\r
24267         010250' 260740  010252'         PUSHJ   PP,TYO\r
24268         010251' 201340  000012          MOVEI   C,LF            ;AND LINE FEED\r
24269 \r
24270         010252' 377000  014116' TYO:    SOSG    CTOBUF+2        ;BUFFER FULL?\r
24271         010253' 067000  000000          OUTPUT  CTL,0           ;YES, DUMP IT\r
24272         010254' 136340  014115'         IDPB    C,CTOBUF+1      ;STORE BYTE\r
24273         010255' 307340  000014          CAIG    C,FF            ;FORM FEED?\r
24274         010256' 305340  000012          CAIGE   C,LF            ;V TAB OR LINE FEED?\r
24275         010257' 263740  000000          POPJ    PP,             ;NO\r
24276         010260' 067000  000000          OUTPUT  CTL,0           ;YES\r
24277         010261' 263740  000000          POPJ    PP,             ;AND EXIT\r
24278 \r
24279         010262' 205340  400000  TYPM2:  MOVSI   C,(1B0)         ;ANTICIPATE REGISTER WORD\r
24280         010263' 306400  000002          CAIN    CS,ACFILE       ;FILE NAME ?\r
24281                                         JRST    [JUMPE  ACEXT,.+1       ;YES, TEST FOR EXT\r
24282                                                 LSH     ACEXT,-6        ;MAKE SPACE FOR "."\r
24283                                                 IOR     ACEXT,[SIXBIT /.   @/]\r
24284         010264' 254000  015420'                 JRST    TYPM2A]\r
24285         010265' 307400  000017          CAIG    CS,17           ;IS IT?\r
24286         010266' 202350  000001          MOVEM   C,1(CS)\r
24287         010267' 505400  440600  TYPM2A: HRLI    CS,(POINT 6,,)  ;FORM BYTE POINTER\r
24288 \r
24289         010270' 134340  000010  TYPM3:  ILDB    C,CS            ;GET A SIXBIT BYTE\r
24290         010271' 306340  000040          CAIN    C,40            ;"@"?\r
24291         010272' 254000  010252'         JRST    TYO             ;YES, TYPE SPACE AND EXIT\r
24292         010273' 271340  000040          ADDI    C,40            ;NO, FORM 7-BIT ASCII\r
24293         010274' 260740  010252'         PUSHJ   PP,TYO          ;OUTPUT CHARACTER\r
24294         010275' 254000  010270'         JRST    TYPM3\r
24295 \r
24296 \r
24297 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 145\r
24298 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24299 \r
24300         010276' 271200  002000  XCEEDS: ADDI SX,2000            ;ADJUST SYMBOL POINTER\r
24301         010277' 260740  007473' XCEED:  PUSHJ   PP,SAVEXS       ;SAVE THE REGISTERS\r
24302         010300' 550040  007200*         HRRZ    1,JOBREL        ;GET CURRENT TOP\r
24303         010301' 201001  002000          MOVEI   0,2000(1)\r
24304         010302' 047000  000011          CORE    0,              ;REQUEST MORE CORE\r
24305         010303' 254000  010317'         JRST    XCEED2          ;ERROR, BOMB OUT\r
24306         010304' 550100  010300*         HRRZ    2,JOBREL        ;GET NEW TOP\r
24307 \r
24308         010305' 200001  000000  XCEED1: MOVE    0,0(1)          ;GET ORIGIONAL\r
24309         010306' 202002  000000          MOVEM   0,0(2)          ;STORE IN NEW LOCATION\r
24310         010307' 275100  000001          SUBI    2,1             ;DECREMENT UPPER\r
24311         010310' 313040  013552'         CAMLE   1,SYMBOL        ;HAVE WE ARRIVED?\r
24312         010311' 364040  010305'         SOJA    1,XCEED1        ;NO, GET ANOTHER\r
24313         010312' 201040  002000          MOVEI   1,2000\r
24314         010313' 272040  013552'         ADDM    1,SYMBOL\r
24315         010314' 272040  013553'         ADDM    1,SYMTOP\r
24316         010315' 260740  013125'         PUSHJ   PP,SRCHI        ;RE-INITIALIZE SYMBOL TABLE\r
24317         010316' 254000  007467'         JRST    RSTRXS          ;RESTORE REGISTERS AND EXIT\r
24318 \r
24319         010317' 561440  015424' XCEED2: HRROI   RC,[SIXBIT /INSUFFICIENT CORE@/]\r
24320         010320' 254000  010116'         JRST    ERRNE0\r
24321         010321' 561440  015427' PDPERR: HRROI   RC,[SIXBIT .PDP OVERFLOW, TRY /P@.]\r
24322         010322' 254000  010116'         JRST    ERRNE0\r
24323 \r
24324         010323' 554400  000006  PRNUM:  HLRZ CS,V       ;GET MESSAGE\r
24325         010324' 260740  010262'         PUSHJ PP,TYPM2\r
24326         010325' 201400  015433'         MOVEI   CS,[SIXBIT /ON PAGE@/]\r
24327         010326' 260740  010262'         PUSHJ   PP,TYPM2\r
24328         010327' 200006  000000          MOVE AC0,(V)    ;GET PAGE\r
24329         010330' 260740  010345'         PUSHJ PP,DP1    ;PRINT NUMBER\r
24330         010331' 201340  000040          MOVEI C,40\r
24331         010332' 260740  010252'         PUSHJ PP,TYO\r
24332         010333' 336046  000001          SKIPN AC1,1(V)  ;GET SEQ NUM IF THERE\r
24333         010334' 263740  000000          POPJ PP,        ;NO, RETURN\r
24334         010335' 202040  014011'         MOVEM AC1,OUTSQ\r
24335         010336' 201400  015435'         MOVEI   CS,[SIXBIT /LINE@/]\r
24336         010337' 260740  010262'         PUSHJ   PP,TYPM2\r
24337         010340' 201000  014011'         MOVEI AC0,OUTSQ ;PRINT IT\r
24338         010341' 067000  000000          OUTPUT CTL,0    ;TO MAKE THINGS PRINT IN RIGHT ORDER\r
24339         010342' 047000  000003          DDTOUT AC0,\r
24340         010343' 201340  000040          MOVEI C,40\r
24341         010344' 254000  010252'         JRST TYO        ;AND RETURN\r
24342 \r
24343         010345' 231000  000012  DP1:    IDIVI AC0,^D10\r
24344         010346' 506057  000000          HRLM AC1,(PP)\r
24345         010347' 322000  010351'         JUMPE   AC0,.+2\r
24346         010350' 260740  010345'         PUSHJ PP,DP1\r
24347         010351' 554357  000000          HLRZ C,(PP)\r
24348         010352' 271340  000060          ADDI C,"0"\r
24349         010353' 254000  010252'         JRST TYO\r
24350 \r
24351 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 146\r
24352 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24353 \r
24354         010354' 670640  000000  RIM0:   TDO     FR,AC0          ;SET RIM/RIM10 FLAG\r
24355         010355' 603640  001000          TLNE    FR,PNCHSW       ;FORGET IT IF PUNCH RESET\r
24356         010356' 060040  000013          SETSTS  BIN,IB          ;SET TO IMAGE BINARY MODE\r
24357         010357' 263740  000000          POPJ    PP,\r
24358 \r
24359         010360' 250400  014050' ROUT:   EXCH CS,RIMLOC\r
24360         010361' 274740  015436'         SUB PP,[XWD 1,1]        ;CLEAR OUT STACK WFW\r
24361         010362' 603640  004000          TLNE FR,R1BSW\r
24362         010363' 254000  010471'         JRST ROUT6\r
24363         010364' 607640  000100          TLNN    FR,RIM1SW\r
24364         010365' 254000  010375'         JRST    ROUT1\r
24365         010366' 322400  010375'         JUMPE   CS,ROUT1        ;RIM10 OUTPUT\r
24366         010367' 274400  014050'         SUB     CS,RIMLOC\r
24367         010370' 322400  010375'         JUMPE   CS,ROUT1\r
24368         010371' 327400  003400'         JUMPG   CS,ERRAX\r
24369         010372' 201340  000000          MOVEI   C,0\r
24370         010373' 260740  010405'         PUSHJ   PP,PTPBIN\r
24371         010374' 341400  010373'         AOJL    CS,.-1\r
24372         010375' 205340  710440  ROUT1:  MOVSI   C,(DATAI PTR,)  ;RIM OUTPUT\r
24373         010376' 540340  014000'         HRR C,LOCO              ;GET ADDRESS\r
24374         010377' 603640  000100          TLNE    FR,RIM1SW       ;NO DATAI IF RIM10\r
24375         010400' 354000  014050'         AOSA    RIMLOC\r
24376         010401' 260740  010405'         PUSHJ   PP,PTPBIN       ;OUTPUT\r
24377         010402' 200340  000000          MOVE    C,AC0           ;CODE\r
24378         010403' 354000  014000'         AOSA    LOCO            ;INCREMENT CURRENT LOCATION\r
24379 \r
24380         010404' 607640  004500  OUTBIN: TLNN    FR,RIMSW!RIM1SW!R1BSW   ;EXIT IF RIM MODE\r
24381         010405' 607640  001000  PTPBIN: TLNN    FR,PNCHSW       ;EXIT IF PUNCH NOT REQUESTED\r
24382         010406' 263740  000000          POPJ    PP,\r
24383         010407' 377000  013327'         SOSG    BINBUF+2        ;TEST FOR BUFFER FULL\r
24384         010410' 260740  010413'         PUSHJ   PP,DMPBIN       ;YES, DUMP IT\r
24385         010411' 136340  013326'         IDPB    C,BINBUF+1      ;DEPOSIT BYTE\r
24386         010412' 263740  000000          POPJ    PP,             ;EXIT\r
24387 \r
24388 \r
24389 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 147\r
24390 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24391 \r
24392         010413' 057040  000000  DMPBIN: OUT     BIN,0           ;DUMP THE BUFFER\r
24393         010414' 263740  000000          POPJ    PP,             ;NO ERRORS\r
24394         010415' 062040  000007  TSTBIN: GETSTS  BIN,C           ;GET STSTUS BITS\r
24395         010416' 606340  740000          TRNN    C,ERRBIT        ;ERROR?\r
24396         010417' 263740  000000          POPJ    PP,             ;NO, EXIT\r
24397         010420' 200000  013220'         MOVE    AC0,BINDEV      ;YES, GET TAG\r
24398         010421' 254000  010430'         JRST    ERRLST          ;TYPE MESSAGE AND ABORT\r
24399 \r
24400         010422' 057140  000000  DMPLST: OUT     LST,0           ;OUTPUT BUFFER\r
24401         010423' 263740  000000          POPJ    PP,             ;NO ERRORS\r
24402         010424' 062140  000007  TSTLST: GETSTS  LST,C           ;ANY ERRORS?\r
24403         010425' 606340  740000          TRNN    C,ERRBIT\r
24404         010426' 263740  000000          POPJ    PP,             ;NO, EXIT\r
24405         010427' 200000  013223'         MOVE    AC0,LSTDEV\r
24406         010430' 205440  015437' ERRLST: MOVSI   RC,[SIXBIT /OUTPUT WRITE-LOCK ERROR DEVICE@/]\r
24407         010431' 602340  400000          TRNE    C,IOIMPM        ;IMPROPER MODE?\r
24408         010432' 254000  010176'         JRST    ERRFIN          ;YES\r
24409         010433' 205440  015445'         MOVSI   RC,[SIXBIT /OUTPUT DATA ERROR DEVICE@/]\r
24410         010434' 602340  200000          TRNE    C,IODERR        ;DEVICE DATA ERROR?\r
24411         010435' 254000  010176'         JRST    ERRFIN          ;YES\r
24412         010436' 205440  015452'         MOVSI   RC,[SIXBIT /OUTPUT CHECKSUM OR PARITY ERROR DEVICE@/]\r
24413         010437' 602340  100000          TRNE    C,IODTER        ;IS IT\r
24414         010440' 254000  010176'         JRST    ERRFIN          ;YES\r
24415         010441' 200400  000000          MOVE    CS,AC0          ;GET DEVICE\r
24416         010442' 047400  000004          DEVCHR  CS,             ;FIND OUT WHAT IT IS\r
24417         010443' 205440  015461'         MOVSI   RC,[SIXBIT /OUTPUT QUOTA EXCEEDED ON DEVICE@/]\r
24418         010444' 607400  200000          TLNN    CS,DSKBIT       ;SKIP IF DSK OUTPUT\r
24419         010445' 205440  015467'         MOVSI   RC,[SIXBIT /OUTPUT BLOCK TOO LARGE DEVICE@/]\r
24420         010446' 254000  010176'         JRST    ERRFIN\r
24421 \r
24422 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 148\r
24423 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24424 \r
24425         \r
24426         010447' 460400  014023' R1BDMP: SETCM CS,R1BCNT\r
24427         010450' 322400  010465'         JUMPE CS,R1BI\r
24428         010451' 517340  000010          HRLZS C,CS\r
24429         010452' 540340  014047'         HRR C,R1BLOC\r
24430         010453' 541347  777777          HRRI C,-1(C)\r
24431         010454' 202340  014024'         MOVEM C,R1BCHK\r
24432         010455' 260740  010405'         PUSHJ PP,PTPBIN\r
24433         010456' 541400  014025'         HRRI CS,R1BBLK\r
24434         010457' 200350  000000  R1BDM1: MOVE C,0(CS)\r
24435         010460' 272340  014024'         ADDM C,R1BCHK\r
24436         010461' 260740  010405'         PUSHJ PP,PTPBIN\r
24437         010462' 253400  010457'         AOBJN CS,R1BDM1\r
24438         010463' 200340  014024'         MOVE C,R1BCHK\r
24439         010464' 260740  010405'         PUSHJ PP,PTPBIN\r
24440         010465' 476000  014023' R1BI:   SETOM R1BCNT\r
24441         010466' 261740  014000'         PUSH PP,LOCO\r
24442         010467' 262740  014047'         POP PP,R1BLOC\r
24443         010470' 263740  000000          POPJ PP,\r
24444 \r
24445         010471' 312400  014050' ROUT6:  CAME CS,RIMLOC\r
24446         010472' 260740  010447'         PUSHJ PP,R1BDMP\r
24447         010473' 350340  014023'         AOS C,R1BCNT\r
24448         010474' 202007  014025'         MOVEM AC0,R1BBLK(C)\r
24449         010475' 350000  014000'         AOS LOCO\r
24450         010476' 306340  000021          CAIN C,.R1B-1\r
24451         010477' 260740  010447'         PUSHJ PP,R1BDMP\r
24452         010500' 350000  014050'         AOS RIMLOC\r
24453         010501' 263740  000000          POPJ PP,\r
24454         \r
24455 \r
24456 \r
24457 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 149\r
24458 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24459 \r
24460         010502' 260740  007460' READ0:  PUSHJ   PP,EOT          ;END OF TAPE\r
24461 \r
24462         010503' 375000  013332' READ:   SOSGE   IBUF+2          ;BUFFER EMPTY?\r
24463         010504' 254000  010545'         JRST    READ3           ;YES\r
24464         010505' 134340  013331' READ1:  ILDB    C,IBUF+1        ;PLACE CHARACTER IN C\r
24465         010506' 200420  013331'         MOVE CS,@IBUF+1         ;CHECK FOR SEQUENCE NUMBER\r
24466         010507' 606400  000001          TRNN CS,1\r
24467         010510' 254000  010525'         JRST READ1A\r
24468         010511' 306400  000001          CAIN CS,1               ;CHECK FOR SPECIAL\r
24469         010512' 200400  015474'         MOVE CS,[<ASCII/     />+1]\r
24470         010513' 202400  013214'         MOVEM CS,SEQNO\r
24471         010514' 202400  014101'         MOVEM CS,SEQNO2\r
24472         010515' 211400  000004          MOVNI CS,4\r
24473         010516' 272400  013332'         ADDM CS,IBUF+2          ;ADJUST WORD COUNT\r
24474                                 REPEAT 4,<      IBP IBUF+1>     ;SKIP SEQ NO\r
24475         010517' 133000  013331'\r
24476         010520' 133000  013331'\r
24477         010521' 133000  013331'\r
24478         010522' 133000  013331'\r
24479         010523' 260740  010503'         PUSHJ PP,READ   ;AND THE TAB\r
24480         010524' 254000  010503'         JRST    READ            ;GET NEXT CHARACTER\r
24481 \r
24482         010525' 322340  010503' READ1A: JUMPE   C,READ          ;IGNORE NULL\r
24483         010526' 306340  000032          CAIN    C,32            ;IF IT'S A "^Z"\r
24484         010527' 201340  000012          MOVEI   C,LF            ;TREAT IT AS A "LF"\r
24485         010530' 302340  000037          CAIE    C,37            ;CONTROL _\r
24486         010531' 263740  000000          POPJ    PP,\r
24487         010532' 201340  000136          MOVEI   C,"^"           ;MAKE CONTROL-SHIFT _ VISIBLE\r
24488         010533' 260740  001423'         PUSHJ   PP,RSW2\r
24489         010534' 201340  000137          MOVEI   C,"_"\r
24490         010535' 260740  001423'         PUSHJ   PP,RSW2\r
24491         010536' 260740  010503' READ2:  PUSHJ   PP,READ         ;YES, TEST FOR LINE FEED\r
24492         010537' 260740  001423'         PUSHJ   PP,RSW2         ;LIST IN ANY EVENT\r
24493         010540' 307340  000014          CAIG    C,FF            ;IS IT ONE OF\r
24494         010541' 305340  000012          CAIGE   C,LF            ;LF, VT, OR FF?\r
24495         010542' 254000  010536'         JRST    READ2           ;NO\r
24496         010543' 260740  001745'         PUSHJ   PP,OUTIM1       ;YES, DUMP THE LINE\r
24497         010544' 254000  010503'         JRST    READ            ;RETURN NEXT CHARACTER\r
24498 \r
24499         010545' 056100  000000  READ3:  IN      CHAR,0          ;GET NEXT BUFFER\r
24500         010546' 254000  010503'         JRST    READ            ;NO ERRORS\r
24501         010547' 062100  000007          GETSTS  CHAR,C\r
24502         010550' 606340  742000          TRNN    C,ERRBIT!2000   ;ERRORS?\r
24503         010551' 254000  010502'         JRST    READ0           ;EOF\r
24504         010552' 200000  013234'         MOVE    AC0,INDEV\r
24505         010553' 205440  015475'         MOVSI   RC,[SIXBIT/ INPUT PHYSICAL END OF TAPE DEVICE@/]\r
24506         010554' 602340  002000          TRNE    C,2000\r
24507         010555' 254000  010176'         JRST    ERRFIN          ;E-O-T\r
24508         010556' 205440  015503'         MOVSI   RC,[SIXBIT /MONITOR DETECTED SOFTWARE INPUT ERROR DEVICE@/]\r
24509         010557' 602340  400000          TRNE    C,IOIMPM        ;IMPROPER MODE?\r
24510         010560' 254000  010176'         JRST    ERRFIN          ;YES\r
24511         010561' 205440  015513'         MOVSI   RC,[SIXBIT /INPUT DATA ERROR DEVICE@/]\r
24512         010562' 602340  200000          TRNE    C,IODERR        ;DEVICE DATA ERROR?\r
24513 \r
24514 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 149-1\r
24515 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24516 \r
24517         010563' 254000  010176'         JRST    ERRFIN          ;YES\r
24518         010564' 205440  015517'         MOVSI   RC,[SIXBIT /INPUT CHECKSUM OR PARITY ERROR DEVICE@/]\r
24519         010565' 606340  100000          TRNN    C,IODTER\r
24520         010566' 205440  015526'         MOVSI   RC,[SIXBIT /INPUT BLOCK TOO LARGE DEVICE@/]\r
24521         010567' 254000  010176'         JRST    ERRFIN\r
24522 \r
24523 \r
24524 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 150\r
24525 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24526 \r
24527         010570' 260740  010571' OUTAB2: PUSHJ   PP,OUTTAB       ;PRINT TWO TABS\r
24528         010571' 201340  000011  OUTTAB: MOVEI   C,HT\r
24529         010572' 302340  000015  PRINT:  CAIE    C,CR            ;IS THIS A CR?\r
24530         010573' 306340  000012          CAIN    C,LF            ;OR LF?\r
24531         010574' 254000  010600'         JRST    OUTCR           ;YES, GO PROCESS\r
24532         010575' 306340  000014          CAIN    C,FF            ;FORM FEED?\r
24533         010576' 254000  010703'         JRST    OUTFF           ;YES, FORCE NEW PAGE\r
24534         010577' 254000  010607'         JRST    OUTL\r
24535 \r
24536         010600' 606600  777763  OUTCR:  TRNN    ER,ERRORS!LPTSW!TTYSW\r
24537         010601' 263740  000000          POPJ    PP,\r
24538         010602' 201340  000015          MOVEI   C,CR            ;CARRIAGE RETURN, LINE FEED\r
24539         010603' 260740  010607'         PUSHJ   PP,OUTL\r
24540         010604' 375000  014003'         SOSGE   LPP             ;END OF PAGE?\r
24541         010605' 661600  000100          TLO     IO,IOPAGE       ;YES, SET FLAG\r
24542         010606' 644340  000007          TRCA    C,7             ;FORM LINE FEED AND SKIP\r
24543 \r
24544         010607' 627600  000100  OUTL:   TLZN    IO,IOPAGE       ;NEW PAGE REQUESTED?\r
24545         010610' 254000  010663'         JRST    OUTC            ;NO\r
24546         010611' 321640  010663'         JUMP1   OUTC            ;YES, BYPASS IF PASS ONE\r
24547         010612' 261740  000007          PUSH    PP,C            ;SAVE C AND CS\r
24548         010613' 261740  000010          PUSH    PP,CS\r
24549         010614' 261740  000014          PUSH    PP,ER\r
24550         010615' 607600  240000          TLNN    IO,IOMSTR!IOPROG\r
24551         010616' 540600  013512'         HRR     ER,OUTSW\r
24552         010617' 603600  000400          TLNE    IO,IOCREF       ;IF DOING CREF OUTPUT NOW\r
24553         010620' 603640  002000          TLNE    FR,CREFSW       ;AND CREFFING (JUST IN CASE)\r
24554         010621' 254000  010623'         JRST    .+2\r
24555         010622' 260740  012674'         PUSHJ   PP,CLSC3        ;CLOSE IT OUT\r
24556         010623' 502617  000000          HLLM    IO,(PP)         ;SAVE THIS NEW STATE OF IO\r
24557         010624' 201340  000067          MOVEI   C,.LPP\r
24558         010625' 202340  014003'         MOVEM   C,LPP           ;SET NEW COUNTER\r
24559         010626' 201340  000015          MOVEI   C,CR\r
24560         010627' 260740  010663'         PUSHJ   PP,OUTC\r
24561         010630' 201340  000014          MOVEI   C,FF\r
24562         010631' 260740  010663'         PUSHJ   PP,OUTC         ;OUTPUT FORM FEED\r
24563         010632' 201400  013701'         MOVEI   CS,TBUF\r
24564         010633' 260740  003060'         PUSHJ   PP,OUTAS0       ;OUTPUT TITLE\r
24565         010634' 201400  013243'         MOVEI   CS,VBUF\r
24566         010635' 260740  003060'         PUSHJ   PP,OUTAS0       ;OUTPUT VERSION\r
24567         010636' 201400  013236'         MOVEI   CS,DBUF\r
24568         010637' 260740  003060'         PUSHJ   PP,OUTAS0       ; AND DATE\r
24569         010640' 200340  014100'         MOVE    C,PAGENO\r
24570         010641' 260740  003051'         PUSHJ   PP,DNC          ;OUTPUT PAGE NUMBER\r
24571         010642' 357000  014013'         AOSG    PAGEN.          ;FIRST PAGE OF THIS NUMBER?\r
24572         010643' 254000  010650'         JRST    OUTL1           ;YES\r
24573         010644' 201340  000055          MOVEI   C,"-"           ;NO, PUT OUT MODIFIER\r
24574         010645' 260740  010663'         PUSHJ   PP,OUTC\r
24575         010646' 200340  014013'         MOVE    C,PAGEN.\r
24576         010647' 260740  003051'         PUSHJ   PP,DNC\r
24577         010650' 260740  010600' OUTL1:  PUSHJ   PP,OUTCR\r
24578         010651' 201400  013721'         MOVEI CS,DEVBUF\r
24579         010652' 260740  003060'         PUSHJ PP,OUTAS0\r
24580 \r
24581 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 150-1\r
24582 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24583 \r
24584         010653' 550400  013550'         HRRZ    CS,SUBTTX       ;SWITCH FOR SUB-TITLE\r
24585         010654' 332010  000000          SKIPE   0(CS)           ;IS THERE A SUB-TITLE?\r
24586         010655' 260740  010571'         PUSHJ   PP,OUTTAB       ;YES, OUTPUT A TAB\r
24587         010656' 260740  002503'         PUSHJ   PP,SOUT20       ;OUTPUT ASCII WITH CARRIAGE RETURN\r
24588         010657' 260740  010600'         PUSHJ   PP,OUTCR\r
24589         010660' 262740  000014          POP     PP,ER\r
24590         010661' 262740  000010          POP     PP,CS           ;RESTORE REGISTERS\r
24591         010662' 262740  000007          POP     PP,C\r
24592 \r
24593         010663' 602600  777761  OUTC:   TRNE    ER,ERRORS!TTYSW\r
24594         010664' 260740  010252'         PUSHJ   PP,TYO\r
24595         010665' 606600  000002          TRNN    ER,LPTSW\r
24596         010666' 263740  000000          POPJ    PP,\r
24597         010667' 377000  013324' OUTLST: SOSG    LSTBUF+2        ;BUFFER FULL?\r
24598         010670' 260740  010422'         PUSHJ   PP,DMPLST       ;YES, DUMP IT\r
24599                                 COMMENT $ REG DOESN'T LIKE THIS FEATURE ANY MORE 9-5-72\r
24600                                 $\r
24601         010671' 136340  013323'         IDPB    C,LSTBUF+1      ;STORE BYTE\r
24602         010672' 263740  000000          POPJ    PP,             ;EXIT\r
24603 \r
24604 \r
24605 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 151\r
24606 MACRO   10      24-APR-78 02:11         I/O ROUTINES\r
24607 \r
24608         010673' 260740  000236' PAGE0:  PUSHJ   PP,STOUTS       ;PAGE PSEUDO-OP\r
24609         010674' 603600  000400  OUTFF1: TLNE    IO,IOCREF       ;CURRENTLY DOING CREF?\r
24610         010675' 603600  040000          TLNE    IO,IOPROG       ;AND NOT XLISTED?\r
24611         010676' 254000  010703'         JRST    OUTFF           ;NO\r
24612         010677' 540600  013512'         HRR     ER,OUTSW\r
24613         010700' 260740  012674'         PUSHJ   PP,CLSCRF\r
24614         010701' 260740  010600'         PUSHJ   PP,OUTCR\r
24615         010702' 541600  000000          HRRI    ER,0\r
24616         010703' 661600  000100  OUTFF:  TLO     IO,IOPAGE\r
24617         010704' 476000  014013' OUTFF2: SETOM   PAGEN.\r
24618         010705' 350000  014100'         AOS     PAGENO\r
24619         010706' 263740  000000          POPJ    PP,\r
24620 \r
24621         010707' 231100  165140  TIMOUT: IDIVI   2,^D60*^D1000\r
24622         010710' 231100  000074  TIMOU1: IDIVI   2,^D60\r
24623         010711' 261740  000003          PUSH    PP,3            ;SAVE MINUTES\r
24624         010712' 260740  010716'         PUSHJ   PP,OTOD         ;STORE HOURS\r
24625         010713' 201140  000072          MOVEI   3,":"           ;SEPARATE BY COLON\r
24626         010714' 136140  000010          IDPB    3,CS\r
24627         010715' 262740  000002          POP     PP,2            ;STORE MINUTES\r
24628         010716' 231100  000012  OTOD:   IDIVI   2,^D10\r
24629         010717' 271100  000060          ADDI    2,60            ;FORM ASCII\r
24630         010720' 136100  000010          IDPB    2,CS\r
24631         010721' 271140  000060          ADDI    3,60\r
24632         010722' 136140  000010          IDPB    3,CS\r
24633         010723' 263740  000000          POPJ    PP,\r
24634 \r
24635         010724' 231040  000037  DATOUT: IDIVI   1,^D31          ;GET DAY\r
24636         010725' 271100  000001          ADDI    2,1\r
24637         010726' 307100  000011          CAIG    2,^D9           ;TWO DIGITS?\r
24638         010727' 271100  117540          ADDI    2,7760*^D10     ;NO, PUT IN SPACE\r
24639         010730' 260740  010716'         PUSHJ   PP,OTOD         ;STORE DAY\r
24640         010731' 231040  000014          IDIVI   1,^D12          ;GET MONTH\r
24641         010732' 200102  010740'         MOVE    2,DTAB(2)       ;GET MNEMONIC\r
24642         010733' 136100  000010          IDPB    2,CS            ;DEPOSIT RIGHT MOST 7 BITS\r
24643         010734' 242100  777771          LSH     2,-7            ;SHIFT NEXT IN\r
24644         010735' 326100  010733'         JUMPN   2,.-2           ;DEPOSIT IFIT EXISTS\r
24645         010736' 201101  000100          MOVEI   2,^D64(1)       ;GET YEAR\r
24646         010737' 254000  010716'         JRST    OTOD            ;STORE IT\r
24647 \r
24648         010740' 133164  062455  DTAB:   "-NAJ-"\r
24649         010741' 133024  261455          "-BEF-"\r
24650         010742' 133224  063255          "-RAM-"\r
24651         010743' 133225  020255          "-RPA-"\r
24652         010744' 133314  063255          "-YAM-"\r
24653         010745' 133165  262455          "-NUJ-"\r
24654         010746' 133145  262455          "-LUJ-"\r
24655         010747' 133075  260255          "-GUA-"\r
24656         010750' 133204  264655          "-PES-"\r
24657         010751' 133244  163655          "-TCO-"\r
24658         010752' 133264  763455          "-VON-"\r
24659         010753' 133034  261055          "-CED-"\r
24660 \r
24661 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 152\r
24662 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
24663 \r
24664                                 SUBTTL  MACHINE INSTRUCTION SEARCH ROUTINES\r
24665                                 IFE OPHSH,<\r
24666         010754' 201440  000000  OPTSCH: MOVEI   RC,0\r
24667         010755' 201240  000400          MOVEI   ARG,1B^L<OP1END-OP1TOP> ;SET UP INDEX\r
24668         010756' 201300  000200          MOVEI   V,1B^L<OP1END-OP1TOP>/2 ;SET UP INCREMENT\r
24669 \r
24670         010757' 316005  011012' OPT1A:  CAMN    AC0,OP1TOP(ARG) ;ARE WE POINTING AT SYMBOL?\r
24671         010760' 254000  010771'         JRST    OPT1D           ;YES, GET THE CODE\r
24672         010761' 322300  000455'         JUMPE   V,POPOUT        ;TEST FOR END\r
24673         010762' 311005  011012'         CAML    AC0,OP1TOP(ARG) ;NO, SHOULD WE MOVE DOWN?\r
24674         010763' 674240  000006          TDOA    ARG,V           ;NO, INCREMENT\r
24675         010764' 274240  000006  OPT1B:  SUB     ARG,V           ;YES, DECREMENT\r
24676         010765' 240300  777777          ASH     V,-1            ;HALVE INCREMENT\r
24677         010766' 307240  000770          CAIG    ARG,OP1END-OP1TOP       ;ARE WE OUT OF BOUNDS?\r
24678         010767' 254000  010757'         JRST    OPT1A           ;NO, TRY AGAIN\r
24679         010770' 254000  010764'         JRST    OPT1B           ;YES, BRING IT DOWN A PEG\r
24680                                 >\r
24681 \r
24682                                 IFN OPHSH,<\r
24683                                 OPTSCH: MOVE    ARG,AC0         ;GET SIXBIT NAME\r
24684                                         TLZ     ARG,400000      ;CLEAR SIGN BIT\r
24685                                         IDIVI   ARG,PRIME       ;REM. GOES IN V\r
24686                                         CAMN    AC0,OP1TOP(V)   ;ARE WE POINTING AT SYMBOL?\r
24687                                         JRST    OPT1D           ;YES\r
24688                                         SKIPN   OP1TOP(V)       ;TEST FOR END\r
24689                                         POPJ    PP,             ;SYMBOL NOT FOUND\r
24690                                         HLRZ    RC,ARG          ;SAVE LHS OF QUOTIENT\r
24691                                         SKIPA   ARG,RC          ;GET IT BACK\r
24692                                 OPT1A:  ADDI    ARG,(RC)        ;INCREMENT ARG\r
24693                                         ADDI    V,(ARG)         ;QUADRATIC INCREASE TO V\r
24694                                         CAIL    V,PRIME         ;V IS MODULO PRIME\r
24695                                         JRST    [SUBI   V,PRIME\r
24696                                                 JRST    .-1]\r
24697                                         CAMN    AC0,OP1TOP(V)   ;IS THIS IT?\r
24698                                         JRST    OPT1D           ;YES\r
24699                                         SKIPE   OP1TOP(V)       ;END?\r
24700                                         JRST    OPT1A           ;TRY AGAIN\r
24701                                         POPJ    PP,             ;FAILED\r
24702                                 >\r
24703         010771'                 OPT1D:\r
24704                                 IFN OPHSH,<     SETZ    RC,     ;CLEAR RELOCATION\r
24705                                         MOVE    ARG,V           ;GET INDEX IN RIGHT ACC.>\r
24706         010771' 231240  000004          IDIVI   ARG,4           ;ARG HAS INDEX USED IN OPTTAB\r
24707         010772' 135306  011007'         LDB     V,OPTTAB(V)     ;V HAS INDEX TO OPTTAB\r
24708         010773' 301300  000700          CAIL    V,700           ;PSEUDO-OP OR IO INSTRUCTION?\r
24709         010774' 254000  011002'         JRST    OPT1G           ;YES\r
24710         010775' 241300  777767          ROT     V,-^D9          ;LEFT JUSTIFY\r
24711         010776' 541300  004445'         HRRI    V,OP            ;POINT TO BASIC FORMAT\r
24712         010777' 350017  000000  OPT1F:  AOS     0(PP)           ;SET FOR SKIP EXIT\r
24713         011000' 201140  000003          MOVEI   SDEL,%OP        ;SET OP-CODE CROSS-REF FLAG\r
24714         011001' 254000  012621'         JRST    CREF            ;TEST AND OUTPUT, AC0=SYMBOL, V=VALUE\r
24715 \r
24716         011002' 327000  011005' OPT1G:  JUMPG   AC0,.+3         ;IF ".","$",OR "%" USE TABLE 1\r
24717 \r
24718 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 152-1\r
24719 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
24720 \r
24721         011003' 607000  200000          TLNN    AC0,200000      ;PSEUDO-OP OR IO INST., TEST FOR PROPER TABLE\r
24722         011004' 334306  011452'         SKIPA   V,OP2TAB-700(V) ;2ND TABLE, FIRST LETTER IS "A" TO "O"\r
24723         011005' 200306  011406'         MOVE    V,OP1TAB-700(V) ;1ST TABLE, ..."P" TO "Z"\r
24724         011006' 254000  010777'         JRST    OPT1F           ;EXIT\r
24725 \r
24726         011007'                 OPTTAB:\r
24727         011007' 001105  012002' IFE OPHSH,<     POINT   9,OP1COD-1(ARG),35>\r
24728         011010' 331105  012003'         POINT   9,OP1COD  (ARG), 8\r
24729         011011' 221105  012003'         POINT   9,OP1COD  (ARG),17\r
24730         011012' 111105  012003'         POINT   9,OP1COD  (ARG),26\r
24731                                 IFN OPHSH,<     POINT   9,OP1COD  (ARG),35>\r
24732 \r
24733 \r
24734 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 153\r
24735 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
24736 \r
24737                                 IFDEF .XCREF,<  .XCREF  ;DON'T CREF THIS MESS>\r
24738                                 IFE OPHSH,<\r
24739         011012'                         RELOC   .-1\r
24740         011012'                 OP1TOP:\r
24741         011013'                         RELOC\r
24742 \r
24743                                         IF1,<N1=0\r
24744                                         DEFINE  X  <N1=N1+1 ;>>\r
24745 \r
24746                                         IF2, <\r
24747                         000044          N2=^D36\r
24748                         000000          CC=0\r
24749         012003'                         RELOC   OP1COD\r
24750         011013'                         RELOC\r
24751                                 DEFINE  X (SYMBOL,CODE) \r
24752                                 <SIXBIT /SYMBOL/\r
24753                                 CC=CC+CODE_<N2=N2-9>\r
24754                                 IFE N2, <OUTLIT>>\r
24755 \r
24756                                 DEFINE  OUTLIT  <\r
24757                                         RELOC\r
24758                                         +CC\r
24759                                         RELOC\r
24760                                 N2=^D36+<CC=0>>>\r
24761                                         SYN X,XX                ;JUST THE SAME MACRO>\r
24762 \r
24763 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 154\r
24764 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
24765 \r
24766 \r
24767                                 IFN OPHSH,<\r
24768                                 DEFINE XX (SB,CD)<>             ;A NUL MACRO\r
24769                                 OP1TOP: IF1,<   BLOCK PRIME>\r
24770                                 IF1,<DEFINE X (SB,CD)<>>\r
24771                                 IF2,<\r
24772                                 DEFINE OPSTOR (RM)<.$'RM=.$'RM+<OPCODE_<9*<3-R&3>>>>\r
24773                                 \r
24774                                 DEFINE X (SB,CD)<\r
24775                                 SXB=<SIXBIT /SB/>\r
24776                                 Q=SXB&-1_-1/PRIME\r
24777                                 R=SXB&-1_-1-Q*PRIME\r
24778                                 H=Q_-22&777\r
24779                                 TRY=1\r
24780                                 OPCODE=CD\r
24781                                 ITEM Q,\R\r
24782                                 IFL PRIME-TRY,<PRINTX HASH FAILURE>>\r
24783                                 \r
24784                                 DEFINE ITEM (QT,RM)<\r
24785                                 IFN .%'RM,<R=R+H\r
24786                                 IFL PRIME-R,<R=R-R/PRIME*PRIME>\r
24787                                 H=H+Q_-22&777\r
24788                                 IFGE PRIME-<TRY=TRY+1>,<ITEM Q,\R>>\r
24789                                 IFE .%'RM,<.%'RM=SXB\r
24790                                 OPSTOR \<R/4>>>>\r
24791                                 IF1,<\r
24792                                 DEFINE GETSYM (N)<.%'N=0>\r
24793                                 \r
24794                                 N=0\r
24795                                         XLIST\r
24796                                 REPEAT PRIME,<GETSYM \N\r
24797                                 N=N+1>\r
24798                                 DEFINE GETSYM (N)<.$'N=0>\r
24799                                 N=0\r
24800                                 REPEAT <PRIME/4+1>,<GETSYM \N\r
24801                                 N=N+1>\r
24802                                 >\r
24803                                         LIST>\r
24804 \r
24805 \r
24806 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 155\r
24807 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
24808 \r
24809                                 IFN OPHSH,<             ;PUT THE MOST USED OP CODES FIRST\r
24810                                 X       JRST  , 254\r
24811                                 X       PUSHJ , 260\r
24812                                 X       POPJ  , 263\r
24813                                 X       PUSH  , 261\r
24814                                 X       POP   , 262\r
24815                                 X       AOS   , 350\r
24816                                 X       ASCIZ , 701\r
24817                                 X       CALLI , 047\r
24818                                 X       EXTERN, 724\r
24819                                 X       INTERN, 744\r
24820                                 X       JFCL  , 255\r
24821                                 X       JSP   , 265\r
24822                                 X       MOVE  , 200\r
24823                                 X       MOVEI , 201\r
24824                                 X       MOVEM , 202\r
24825                                 X       SETZM , 402\r
24826                                 X       SIXBIT, 717\r
24827                                 X       SOS   , 370\r
24828                                 X       TLNE  , 603\r
24829                                 X       TLNN  , 607\r
24830                                 X       TLO   , 661\r
24831                                 X       TLZ   , 621\r
24832                                 X       TLZA  , 625\r
24833                                 X       TLZE  , 623\r
24834                                 X       TLZN  , 627\r
24835                                 X       TRNE  , 602\r
24836                                 X       TRNN  , 606\r
24837                                 X       TRZ   , 620\r
24838                                 >\r
24839 \r
24840 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 156\r
24841 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
24842 \r
24843         011013' 414444  000000  X       ADD   , 270\r
24844         011014' 414444  420000  X       ADDB  , 273\r
24845         011015' 414444  510000  X       ADDI  , 271\r
24846         011016' 414444  550000  X       ADDM  , 272\r
24847         012003' 270273  271272\r
24848 \r
24849         011017' 415644  000000  X       AND   , 404\r
24850         011020' 415644  420000  X       ANDB  , 407\r
24851         011021' 415644  434100  X       ANDCA , 410\r
24852         011022' 415644  434142  X       ANDCAB, 413\r
24853         012004' 404407  410413\r
24854         011023' 415644  434151  X       ANDCAI, 411\r
24855         011024' 415644  434155  X       ANDCAM, 412\r
24856         011025' 415644  434200  X       ANDCB , 440\r
24857         011026' 415644  434242  X       ANDCBB, 443\r
24858         012005' 411412  440443\r
24859         011027' 415644  434251  X       ANDCBI, 441\r
24860         011030' 415644  434255  X       ANDCBM, 442\r
24861         011031' 415644  435500  X       ANDCM , 420\r
24862         011032' 415644  435542  X       ANDCMB, 423\r
24863         012006' 441442  420423\r
24864         011033' 415644  435551  X       ANDCMI, 421\r
24865         011034' 415644  435555  X       ANDCMM, 422\r
24866         011035' 415644  510000  X       ANDI  , 405\r
24867         011036' 415644  550000  X       ANDM  , 406\r
24868         012007' 421422  405406\r
24869 \r
24870         011037' 415742  525600  X       AOBJN , 253\r
24871         011040' 415742  526000  X       AOBJP , 252\r
24872 \r
24873         011041' 415752  000000  X       AOJ   , 340\r
24874         011042' 415752  410000  X       AOJA  , 344\r
24875         012010' 253252  340344\r
24876         011043' 415752  450000  X       AOJE  , 342\r
24877         011044' 415752  470000  X       AOJG  , 347\r
24878         011045' 415752  474500  X       AOJGE , 345\r
24879         011046' 415752  540000  X       AOJL  , 341\r
24880         012011' 342347  345341\r
24881         011047' 415752  544500  X       AOJLE , 343\r
24882         011050' 415752  560000  X       AOJN  , 346\r
24883 \r
24884         011051' 415763  000000  XX      AOS   , 350\r
24885         011052' 415763  410000  X       AOSA  , 354\r
24886         012012' 343346  350354\r
24887         011053' 415763  450000  X       AOSE  , 352\r
24888         011054' 415763  470000  X       AOSG  , 357\r
24889         011055' 415763  474500  X       AOSGE , 355\r
24890         011056' 415763  540000  X       AOSL  , 351\r
24891         012013' 352357  355351\r
24892         011057' 415763  544500  X       AOSLE , 353\r
24893         011060' 415763  560000  X       AOSN  , 356\r
24894         011061' 416247  000000  X       ARG   , 320\r
24895                                 IFN WFWSW,<X    ARRAY ,  772>\r
24896 \r
24897 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 156-1\r
24898 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
24899 \r
24900                                 IFN IIISW,<X    ASCID , 771>\r
24901         011062' 416343  515100  X       ASCII , 700\r
24902         012014' 353356  320700\r
24903         011063' 416343  517200  XX      ASCIZ , 701\r
24904 \r
24905         011064' 416350  000000  X       ASH   , 240\r
24906         011065' 416350  430000  X       ASHC  , 244\r
24907 \r
24908         011066' 416365  606062  X       ASUPPR, 705\r
24909         012015' 701240  244705\r
24910         011067' 425453  510000  X       BLKI  , 702\r
24911         011070' 425453  570000  X       BLKO  , 703\r
24912         011071' 425457  435300  X       BLOCK , 704\r
24913 \r
24914         011072' 425464  000000  X       BLT   , 251\r
24915         012016' 702703  704251\r
24916 \r
24917         011073' 427164  450000  X       BYTE  , 707\r
24918 \r
24919         011074' 434151  000000  XX      CAI   , 300\r
24920         011075' 434151  410000  X       CAIA  , 304\r
24921         011076' 434151  450000  X       CAIE  , 302\r
24922         012017' 707300  304302\r
24923         011077' 434151  470000  X       CAIG  , 307\r
24924         011100' 434151  474500  X       CAIGE , 305\r
24925         011101' 434151  540000  X       CAIL  , 301\r
24926         011102' 434151  544500  X       CAILE , 303\r
24927         012020' 307305  301303\r
24928         011103' 434151  560000  X       CAIN  , 306\r
24929 \r
24930         011104' 434154  540000  X       CALL  , 040\r
24931         011105' 434154  545100  XX      CALLI , 047\r
24932 \r
24933         011106' 434155  000000  XX      CAM   , 310\r
24934         012021' 306040  047310\r
24935         011107' 434155  410000  X       CAMA  , 314\r
24936         011110' 434155  450000  X       CAME  , 312\r
24937         011111' 434155  470000  X       CAMG  , 317\r
24938         011112' 434155  474500  X       CAMGE , 315\r
24939         012022' 314312  317315\r
24940         011113' 434155  540000  X       CAML  , 311\r
24941         011114' 434155  544500  X       CAMLE , 313\r
24942         011115' 434155  560000  X       CAMN  , 316\r
24943 \r
24944         011116' 435445  416200  XX      CLEAR , 400\r
24945         012023' 311313  316400\r
24946         011117' 435445  416242  XX      CLEARB, 403\r
24947         011120' 435445  416251  XX      CLEARI, 401\r
24948         011121' 435445  416255  XX      CLEARM, 402\r
24949 \r
24950         011122' 435457  634500  X       CLOSE , 070\r
24951         012024' 403401  402070\r
24952         011123' 435755  554556  X       COMMEN, 770\r
24953 \r
24954 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 156-2\r
24955 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
24956 \r
24957 \r
24958 \r
24959         011124' 435756  510000  X       CONI  , 710\r
24960         011125' 435756  570000  X       CONO  , 711\r
24961         011126' 435756  635700  X       CONSO , 712\r
24962         012025' 770710  711712\r
24963         011127' 435756  637200  X       CONSZ , 713\r
24964 \r
24965         011130' 444164  411600  XX      DATA. , 020\r
24966 \r
24967         011131' 444164  415100  X       DATAI , 714\r
24968         011132' 444164  415700  X       DATAO , 715\r
24969         012026' 713020  714715\r
24970         011133' 444543  000000  X       DEC   , 716\r
24971         011134' 444546  515645  X       DEFINE, 717\r
24972         011135' 444560  504163  X       DEPHAS, 720\r
24973 \r
24974         011136' 444656  000000  X       DFN   , 131\r
24975         012027' 716717  720131\r
24976 \r
24977         011137' 445166  000000  X       DIV   , 234\r
24978         011140' 445166  420000  X       DIVB  , 237\r
24979         011141' 445166  510000  X       DIVI  , 235\r
24980         011142' 445166  550000  X       DIVM  , 236\r
24981         012030' 234237  235236\r
24982 \r
24983 \r
24984         011143' 446042  000000  X       DPB   , 137\r
24985         011144' 446042  510000  X       DPBI  , 136\r
24986 \r
24987         011145' 455644  000000  X       END   , 721\r
24988 \r
24989         011146' 455664  456200  X       ENTER , 077\r
24990         012031' 137136  721077\r
24991 \r
24992         011147' 455664  627100  X       ENTRY , 722\r
24993 \r
24994         011150' 456166  000000  X       EQV   , 444\r
24995         011151' 456166  420000  X       EQVB  , 447\r
24996         011152' 456166  510000  X       EQVI  , 445\r
24997         012032' 722444  447445\r
24998         011153' 456166  550000  X       EQVM  , 446\r
24999 \r
25000         011154' 457043  500000  X       EXCH  , 250\r
25001 \r
25002         011155' 457060  000000  X       EXP   , 723\r
25003         011156' 457064  456256  XX      EXTERN, 724\r
25004         012033' 446250  723724\r
25005 \r
25006         011157' 464144  000000  X       FAD   , 140\r
25007         011160' 464144  420000  X       FADB  , 143\r
25008         011161' 464144  540000  X       FADL  , 141\r
25009         011162' 464144  550000  X       FADM  , 142\r
25010 \r
25011 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 156-3\r
25012 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25013 \r
25014         012034' 140143  141142\r
25015 \r
25016         011163' 464144  620000  X       FADR  , 144\r
25017         011164' 464144  624200  X       FADRB , 147\r
25018         011165' 464144  625100  X       FADRI , 145\r
25019         011166' 464144  625500  X       FADRM , 146\r
25020         012035' 144147  145146\r
25021 \r
25022         011167' 464466  000000  X       FDV   , 170\r
25023         011170' 464466  420000  X       FDVB  , 173\r
25024         011171' 464466  540000  X       FDVL  , 171\r
25025         011172' 464466  550000  X       FDVM  , 172\r
25026         012036' 170173  171172\r
25027 \r
25028         011173' 464466  620000  X       FDVR  , 174\r
25029         011174' 464466  624200  X       FDVRB , 177\r
25030         011175' 464466  625100  X       FDVRI , 175\r
25031         011176' 464466  625500  X       FDVRM , 176\r
25032         012037' 174177  175176\r
25033 \r
25034         011177' 465156  160000  XX      FIN.  , 021\r
25035 \r
25036 \r
25037         011200' 465560  000000  X       FMP   , 160\r
25038         011201' 465560  420000  X       FMPB  , 163\r
25039         011202' 465560  540000  X       FMPL  , 161\r
25040         012040' 021160  163161\r
25041         011203' 465560  550000  X       FMPM  , 162\r
25042 \r
25043 \r
25044 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 157\r
25045 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25046 \r
25047         011204' 465560  620000  X       FMPR  , 164\r
25048         011205' 465560  624200  X       FMPRB , 167\r
25049         011206' 465560  625100  X       FMPRI , 165\r
25050         012041' 162164  167165\r
25051         011207' 465560  625500  X       FMPRM , 166\r
25052 \r
25053         011210' 466342  000000  X       FSB   , 150\r
25054         011211' 466342  420000  X       FSBB  , 153\r
25055         011212' 466342  540000  X       FSBL  , 151\r
25056         012042' 166150  153151\r
25057         011213' 466342  550000  X       FSBM  , 152\r
25058 \r
25059         011214' 466342  620000  X       FSBR  , 154\r
25060         011215' 466342  624200  X       FSBRB , 157\r
25061         011216' 466342  625100  X       FSBRI , 155\r
25062         012043' 152154  157155\r
25063         011217' 466342  625500  X       FSBRM , 156\r
25064 \r
25065         011220' 466343  000000  X       FSC   , 132\r
25066 \r
25067         011221' 474564  636463  X       GETSTS, 062\r
25068 \r
25069 \r
25070 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 158\r
25071 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25072 \r
25073         011222' 504154  640000  X       HALT  , 725\r
25074         012044' 156132  062725\r
25075         011223' 505163  454700  X       HISEG , 706\r
25076 \r
25077         011224' 505454  000000  X       HLL   , 500\r
25078         011225' 505454  450000  X       HLLE  , 530\r
25079         011226' 505454  455100  X       HLLEI , 531\r
25080         012045' 706500  530531\r
25081         011227' 505454  455500  X       HLLEM , 532\r
25082         011230' 505454  456300  X       HLLES , 533\r
25083         011231' 505454  510000  X       HLLI  , 501\r
25084         011232' 505454  550000  X       HLLM  , 502\r
25085         012046' 532533  501502\r
25086         011233' 505454  570000  X       HLLO  , 520\r
25087         011234' 505454  575100  X       HLLOI , 521\r
25088         011235' 505454  575500  X       HLLOM , 522\r
25089         011236' 505454  576300  X       HLLOS , 523\r
25090         012047' 520521  522523\r
25091         011237' 505454  630000  X       HLLS  , 503\r
25092         011240' 505454  720000  X       HLLZ  , 510\r
25093         011241' 505454  725100  X       HLLZI , 511\r
25094         011242' 505454  725500  X       HLLZM , 512\r
25095         012050' 503510  511512\r
25096         011243' 505454  726300  X       HLLZS , 513\r
25097 \r
25098         011244' 505462  000000  X       HLR   , 544\r
25099         011245' 505462  450000  X       HLRE  , 574\r
25100         011246' 505462  455100  X       HLREI , 575\r
25101         012051' 513544  574575\r
25102         011247' 505462  455500  X       HLREM , 576\r
25103         011250' 505462  456300  X       HLRES , 577\r
25104         011251' 505462  510000  X       HLRI  , 545\r
25105         011252' 505462  550000  X       HLRM  , 546\r
25106         012052' 576577  545546\r
25107         011253' 505462  570000  X       HLRO  , 564\r
25108         011254' 505462  575100  X       HLROI , 565\r
25109         011255' 505462  575500  X       HLROM , 566\r
25110         011256' 505462  576300  X       HLROS , 567\r
25111         012053' 564565  566567\r
25112         011257' 505462  630000  X       HLRS  , 547\r
25113         011260' 505462  720000  X       HLRZ  , 554\r
25114         011261' 505462  725100  X       HLRZI , 555\r
25115         011262' 505462  725500  X       HLRZM , 556\r
25116         012054' 547554  555556\r
25117         011263' 505462  726300  X       HLRZS , 557\r
25118 \r
25119 \r
25120 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 159\r
25121 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25122 \r
25123         011264' 506254  000000  X       HRL   , 504\r
25124         011265' 506254  450000  X       HRLE  , 534\r
25125         011266' 506254  455100  X       HRLEI , 535\r
25126         012055' 557504  534535\r
25127         011267' 506254  455500  X       HRLEM , 536\r
25128         011270' 506254  456300  X       HRLES , 537\r
25129         011271' 506254  510000  X       HRLI  , 505\r
25130         011272' 506254  550000  X       HRLM  , 506\r
25131         012056' 536537  505506\r
25132         011273' 506254  570000  X       HRLO  , 524\r
25133         011274' 506254  575100  X       HRLOI , 525\r
25134         011275' 506254  575500  X       HRLOM , 526\r
25135         011276' 506254  576300  X       HRLOS , 527\r
25136         012057' 524525  526527\r
25137         011277' 506254  630000  X       HRLS  , 507\r
25138         011300' 506254  720000  X       HRLZ  , 514\r
25139         011301' 506254  725100  X       HRLZI , 515\r
25140         011302' 506254  725500  X       HRLZM , 516\r
25141         012060' 507514  515516\r
25142         011303' 506254  726300  X       HRLZS , 517\r
25143 \r
25144         011304' 506262  000000  X       HRR   , 540\r
25145         011305' 506262  450000  X       HRRE  , 570\r
25146         011306' 506262  455100  X       HRREI , 571\r
25147         012061' 517540  570571\r
25148         011307' 506262  455500  X       HRREM , 572\r
25149         011310' 506262  456300  X       HRRES , 573\r
25150         011311' 506262  510000  X       HRRI  , 541\r
25151         011312' 506262  550000  X       HRRM  , 542\r
25152         012062' 572573  541542\r
25153         011313' 506262  570000  X       HRRO  , 560\r
25154         011314' 506262  575100  X       HRROI , 561\r
25155         011315' 506262  575500  X       HRROM , 562\r
25156         011316' 506262  576300  X       HRROS , 563\r
25157         012063' 560561  562563\r
25158         011317' 506262  630000  X       HRRS  , 543\r
25159         011320' 506262  720000  X       HRRZ  , 550\r
25160         011321' 506262  725100  X       HRRZI , 551\r
25161         011322' 506262  725500  X       HRRZM , 552\r
25162         012064' 543550  551552\r
25163         011323' 506262  726300  X       HRRZS , 553\r
25164 \r
25165         011324' 514260  000000  X       IBP   , 133\r
25166 \r
25167         011325' 514451  660000  X       IDIV  , 230\r
25168         011326' 514451  664200  X       IDIVB , 233\r
25169         012065' 553133  230233\r
25170         011327' 514451  665100  X       IDIVI , 231\r
25171         011330' 514451  665500  X       IDIVM , 232\r
25172 \r
25173         011331' 514460  420000  X       IDPB  , 136\r
25174 \r
25175         011332' 514621  000000  X       IF1   , 726\r
25176 \r
25177 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 159-1\r
25178 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25179 \r
25180         012066' 231232  136726\r
25181         011333' 514622  000000  X       IF2   , 727\r
25182         011334' 514642  000000  X       IFB   , 730\r
25183         011335' 514644  454600  X       IFDEF , 731\r
25184         011336' 514644  514600  X       IFDIF , 732\r
25185         012067' 727730  731732\r
25186         011337' 514645  000000  X       IFE   , 733\r
25187         011340' 514647  000000  X       IFG   , 734\r
25188         011341' 514647  450000  X       IFGE  , 735\r
25189         011342' 514651  445600  X       IFIDN , 736\r
25190         012070' 733734  735736\r
25191         011343' 514654  000000  X       IFL   , 737\r
25192         011344' 514654  450000  X       IFLE  , 740\r
25193         011345' 514656  000000  X       IFN   , 741\r
25194         011346' 514656  420000  X       IFNB  , 742\r
25195         012071' 737740  741742\r
25196         011347' 514656  444546  X       IFNDEF, 743\r
25197 \r
25198         011350' 515444  420000  X       ILDB  , 134\r
25199 \r
25200         011351' 515565  540000  X       IMUL  , 220\r
25201         011352' 515565  544200  X       IMULB , 223\r
25202         012072' 743134  220223\r
25203         011353' 515565  545100  X       IMULI , 221\r
25204         011354' 515565  545500  X       IMULM , 222\r
25205 \r
25206         011355' 515600  000000  X       IN    , 056\r
25207         011356' 515616  000000  XX      IN.   , 016\r
25208         012073' 221222  056016\r
25209         011357' 515642  654600  X       INBUF , 064\r
25210         011360' 515646  160000  XX      INF.  , 026\r
25211         011361' 515651  640000  X       INIT  , 041\r
25212         011362' 515660  656400  X       INPUT , 066\r
25213         012074' 064026  041066\r
25214                                 IFN WFWSW,<X    INTEGE, 773>\r
25215 \r
25216         011363' 515664  456256  XX      INTERN, 744\r
25217 \r
25218         011364' 515762  000000  X       IOR   , 434\r
25219         011365' 515762  420000  X       IORB  , 437\r
25220         011366' 515762  510000  X       IORI  , 435\r
25221         012075' 744434  437435\r
25222         011367' 515762  550000  X       IORM  , 436\r
25223 \r
25224 \r
25225         011370' 515767  440000  X       IOWD  , 745\r
25226         011371' 516260  000000  X       IRP   , 746\r
25227         011372' 516260  430000  X       IRPC  , 747\r
25228         012076' 436745  746747\r
25229         011373' 524362  710000  X       JCRY  , 750\r
25230         011374' 524362  712000  X       JCRY0 , 751\r
25231         011375' 524362  712100  X       JCRY1 , 752\r
25232         011376' 524556  000000  X       JEN   , 753\r
25233 \r
25234 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 159-2\r
25235 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25236 \r
25237         012077' 750751  752753\r
25238 \r
25239         011377' 524643  540000  XX      JFCL  , 255\r
25240 \r
25241         011400' 524646  570000  X       JFFO  , 243\r
25242         011401' 524657  660000  X       JFOV  , 765\r
25243         011402' 525766  000000  X       JOV   , 754\r
25244         012100' 255243  765754\r
25245 \r
25246         011403' 526241  000000  X       JRA   , 267\r
25247         011404' 526263  640000  XX      JRST  , 254\r
25248 \r
25249         011405' 526263  644600  X       JRSTF , 755\r
25250 \r
25251         011406' 526341  000000  X       JSA   , 266\r
25252         012101' 267254  755266\r
25253         011407' 526360  000000  XX      JSP   , 265\r
25254         011410' 526362  000000  X       JSR   , 264\r
25255 \r
25256         011411' 526555  600000  XX      JUMP  , 320\r
25257         011412' 526555  604100  XX      JUMPA , 324\r
25258         012102' 265264  320324\r
25259         011413' 526555  604500  X       JUMPE , 322\r
25260         011414' 526555  604700  X       JUMPG , 327\r
25261         011415' 526555  604745  X       JUMPGE, 325\r
25262         011416' 526555  605400  X       JUMPL , 321\r
25263         012103' 322327  325321\r
25264         011417' 526555  605445  X       JUMPLE, 323\r
25265         011420' 526555  605600  X       JUMPN , 326\r
25266 \r
25267         011421' 544154  540000  X       LALL  , 756\r
25268 \r
25269         011422' 544442  000000  X       LDB   , 135\r
25270         012104' 323326  756135\r
25271         011423' 544442  510000  X       LDBI  , 134\r
25272 \r
25273 \r
25274         011424' 545163  640000  X       LIST  , 757\r
25275         011425' 545164  000000  X       LIT   , 760\r
25276         011426' 545743  000000  X       LOC   , 761\r
25277         012105' 134757  760761\r
25278 \r
25279         011427' 545757  536560  X       LOOKUP, 076\r
25280 \r
25281         011430' 546350  000000  X       LSH   , 242\r
25282         011431' 546350  430000  X       LSHC  , 246\r
25283                                 IFN WFWSW,<X    LVAR  , 774>\r
25284         011432' 555457  464600  X       MLOFF , 767\r
25285         012106' 076242  246767\r
25286         011433' 555457  560000  X       MLON  , 766\r
25287         011434' 555766  450000  XX      MOVE  , 200\r
25288         011435' 555766  455100  XX      MOVEI , 201\r
25289         011436' 555766  455500  XX      MOVEM , 202\r
25290 \r
25291 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 159-3\r
25292 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25293 \r
25294         012107' 766200  201202\r
25295         011437' 555766  456300  X       MOVES , 203\r
25296         011440' 555766  550000  X       MOVM  , 214\r
25297         011441' 555766  555100  X       MOVMI , 215\r
25298         011442' 555766  555500  X       MOVMM , 216\r
25299         012110' 203214  215216\r
25300         011443' 555766  556300  X       MOVMS , 217\r
25301         011444' 555766  560000  X       MOVN  , 210\r
25302         011445' 555766  565100  X       MOVNI , 211\r
25303         011446' 555766  565500  X       MOVNM , 212\r
25304         012111' 217210  211212\r
25305         011447' 555766  566300  X       MOVNS , 213\r
25306         011450' 555766  630000  X       MOVS  , 204\r
25307         011451' 555766  635100  X       MOVSI , 205\r
25308         011452' 555766  635500  X       MOVSM , 206\r
25309         012112' 213204  205206\r
25310         011453' 555766  636300  X       MOVSS , 207\r
25311 \r
25312 \r
25313         011454' 556441  604500  X       MTAPE , 072\r
25314         011455' 556457  601600  XX      MTOP. , 024\r
25315 \r
25316         011456' 556554  000000  X       MUL   , 224\r
25317         012113' 207072  024224\r
25318         011457' 556554  420000  X       MULB  , 227\r
25319         011460' 556554  510000  X       MULI  , 225\r
25320         011461' 556554  550000  X       MULM  , 226\r
25321         011462' 565451  160000  XX      NLI.  , 031\r
25322         012114' 227225  226031\r
25323         011463' 565457  160000  XX      NLO.  , 032\r
25324 \r
25325         011464' 565763  715500  X       NOSYM , 762\r
25326 \r
25327 \r
25328 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 160\r
25329 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25330 \r
25331         011465' 574364  000000  X       OCT   , 763\r
25332         011466' 576044  454600  X       OPDEF , 764\r
25333         012115' 032762  763764\r
25334 \r
25335         011467' 576045  560000  X       OPEN  , 050\r
25336 \r
25337         011470' 576200  000000  X       OR    , 434\r
25338         011471' 576242  000000  X       ORB   , 437\r
25339         011472' 576243  410000  X       ORCA  , 454\r
25340         012116' 050434  437454\r
25341         011473' 576243  414200  X       ORCAB , 457\r
25342         011474' 576243  415100  X       ORCAI , 455\r
25343         011475' 576243  415500  X       ORCAM , 456\r
25344         011476' 576243  420000  X       ORCB  , 470\r
25345         012117' 457455  456470\r
25346         011477' 576243  424200  X       ORCBB , 473\r
25347 \r
25348         011500' 576243  425100  X       ORCBI , 471\r
25349         011501' 576243  425500  X       ORCBM , 472\r
25350         011502' 576243  550000  X       ORCM  , 464\r
25351         012120' 473471  472464\r
25352         011503' 576243  554200  X       ORCMB , 467\r
25353         011504' 576243  555100  X       ORCMI , 465\r
25354         011505' 576243  555500  X       ORCMM , 466\r
25355         011506' 576251  000000  X       ORI   , 435\r
25356         012121' 467465  466435\r
25357         011507' 576255  000000  X       ORM   , 436\r
25358 \r
25359         011510' 576564  000000  X       OUT   , 057\r
25360         011511' 576564  160000  XX      OUT.  , 017\r
25361         011512' 576564  426546  X       OUTBUF, 065\r
25362         012122' 436057  017065\r
25363         011513' 576564  461600  XX      OUTF. , 027\r
25364         011514' 576564  606564  X       OUTPUT, 067\r
25365 \r
25366 \r
25367 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 161\r
25368 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25369 \r
25370         011515' 604147  450000  X       PAGE  , 700\r
25371         011516' 604163  632200  X       PASS2 , 701\r
25372         012123' 027067  700701\r
25373         011517' 605041  634500  X       PHASE , 702\r
25374         011520' 605751  566400  X       POINT , 703\r
25375 \r
25376         011521' 605760  000000  XX      POP   , 262\r
25377         011522' 605760  520000  XX      POPJ  , 263\r
25378         012124' 702703  262263\r
25379 \r
25380         011523' 606247  455644  X       PRGEND, 714\r
25381         011524' 606251  566470  X       PRINTX, 704\r
25382         011525' 606562  474500  X       PURGE , 705\r
25383 \r
25384         011526' 606563  500000  XX      PUSH  , 261\r
25385         012125' 714704  705261\r
25386         011527' 606563  505200  XX      PUSHJ , 260\r
25387 \r
25388         011530' 624144  517000  X       RADIX , 706\r
25389         011531' 624144  517025  X       RADIX5, 707\r
25390 \r
25391         011532' 624554  454163  X       RELEAS, 071\r
25392         012126' 260706  707071\r
25393 \r
25394         011533' 624554  574300  X       RELOC , 710\r
25395         011534' 624555  416253  X       REMARK, 711\r
25396 \r
25397         011535' 624556  415545  X       RENAME, 055\r
25398 \r
25399         011536' 624560  454164  X       REPEAT, 712\r
25400         012127' 710711  055712\r
25401 \r
25402         011537' 624563  456416  XX      RESET., 015\r
25403         011540' 625155  000000  X       RIM   , 715\r
25404         011541' 625155  212000  X       RIM10 , 735\r
25405         011542' 625155  212042  X       RIM10B, 736\r
25406         012130' 015715  735736\r
25407 \r
25408         011543' 625764  000000  X       ROT   , 241\r
25409         011544' 625764  430000  X       ROTC  , 245\r
25410 \r
25411         011545' 626367  000000  X       RSW   , 716\r
25412         011546' 626442  160000  XX      RTB.  , 022\r
25413         012131' 241245  716022\r
25414         011547' 634154  540000  X       SALL  , 720\r
25415         011550' 634541  624350  X       SEARCH, 721\r
25416 \r
25417         011551' 634564  410000  X       SETA  , 424\r
25418         011552' 634564  414200  X       SETAB , 427\r
25419         012132' 720721  424427\r
25420         011553' 634564  415100  X       SETAI , 425\r
25421         011554' 634564  415500  X       SETAM , 426\r
25422         011555' 634564  434100  X       SETCA , 450\r
25423 \r
25424 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 161-1\r
25425 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25426 \r
25427         011556' 634564  434142  X       SETCAB, 453\r
25428         012133' 425426  450453\r
25429         011557' 634564  434151  X       SETCAI, 451\r
25430         011560' 634564  434155  X       SETCAM, 452\r
25431         011561' 634564  435500  X       SETCM , 460\r
25432         011562' 634564  435542  X       SETCMB, 463\r
25433         012134' 451452  460463\r
25434         011563' 634564  435551  X       SETCMI, 461\r
25435         011564' 634564  435555  X       SETCMM, 462\r
25436         011565' 634564  550000  X       SETM  , 414\r
25437         011566' 634564  554200  X       SETMB , 417\r
25438         012135' 461462  414417\r
25439         011567' 634564  555100  X       SETMI , 415\r
25440         011570' 634564  555500  X       SETMM , 416\r
25441         011571' 634564  570000  X       SETO  , 474\r
25442         011572' 634564  574200  X       SETOB , 477\r
25443         012136' 415416  474477\r
25444         011573' 634564  575100  X       SETOI , 475\r
25445         011574' 634564  575500  X       SETOM , 476\r
25446         011575' 634564  636463  X       SETSTS, 060\r
25447         011576' 634564  720000  X       SETZ  , 400\r
25448         012137' 475476  060400\r
25449         011577' 634564  724200  X       SETZB , 403\r
25450         011600' 634564  725100  X       SETZI , 401\r
25451         011601' 634564  725500  XX      SETZM , 402\r
25452 \r
25453         011602' 635170  425164  XX      SIXBIT, 717\r
25454         012140' 403401  402717\r
25455 \r
25456         011603' 635351  600000  XX      SKIP  , 330\r
25457         011604' 635351  604100  X       SKIPA , 334\r
25458         011605' 635351  604500  X       SKIPE , 332\r
25459         011606' 635351  604700  X       SKIPG , 337\r
25460         012141' 330334  332337\r
25461         011607' 635351  604745  X       SKIPGE, 335\r
25462         011610' 635351  605400  X       SKIPL , 331\r
25463         011611' 635351  605445  X       SKIPLE, 333\r
25464         011612' 635351  605600  X       SKIPN , 336\r
25465         012142' 335331  333336\r
25466 \r
25467         011613' 635451  636416  XX      SLIST., 025\r
25468 \r
25469         011614' 635752  000000  X       SOJ   , 360\r
25470         011615' 635752  410000  X       SOJA  , 364\r
25471         011616' 635752  450000  X       SOJE  , 362\r
25472         012143' 025360  364362\r
25473         011617' 635752  470000  X       SOJG  , 367\r
25474         011620' 635752  474500  X       SOJGE , 365\r
25475         011621' 635752  540000  X       SOJL  , 361\r
25476         011622' 635752  544500  X       SOJLE , 363\r
25477         012144' 367365  361363\r
25478         011623' 635752  560000  X       SOJN  , 366\r
25479 \r
25480 \r
25481 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 161-2\r
25482 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25483 \r
25484         011624' 635763  000000  XX      SOS   , 370\r
25485         011625' 635763  410000  X       SOSA  , 374\r
25486         011626' 635763  450000  X       SOSE  , 372\r
25487         012145' 366370  374372\r
25488         011627' 635763  470000  X       SOSG  , 377\r
25489         011630' 635763  474500  X       SOSGE , 375\r
25490         011631' 635763  540000  X       SOSL  , 371\r
25491         011632' 635763  544500  X       SOSLE , 373\r
25492         012146' 377375  371373\r
25493         011633' 635763  560000  X       SOSN  , 376\r
25494 \r
25495         011634' 636165  577245  X       SQUOZE, 707\r
25496 \r
25497         011635' 636441  645700  X       STATO , 061\r
25498         011636' 636441  646563  X       STATUS, 062\r
25499         012147' 376707  061062\r
25500         011637' 636441  647200  X       STATZ , 063\r
25501 \r
25502         011640' 636457  605100  X       STOPI , 722\r
25503 \r
25504         011641' 636542  000000  X       SUB   , 274\r
25505         011642' 636542  420000  X       SUBB  , 277\r
25506         012150' 063722  274277\r
25507         011643' 636542  510000  X       SUBI  , 275\r
25508         011644' 636542  550000  X       SUBM  , 276\r
25509 \r
25510                                 IF2,<IFE OPHSH,<SUBTL:>>\r
25511         011645' 636542  646454  X       SUBTTL, 723\r
25512         011646' 636560  606245  X       SUPPRE, 713\r
25513         012151' 275276  723713\r
25514         011647' 637156  000000  X       SYN   , 724\r
25515         011650' 644160  450000  X       TAPE  , 725\r
25516 \r
25517 \r
25518 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 162\r
25519 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25520 \r
25521         011651' 644443  000000  X       TDC   , 650\r
25522         011652' 644443  410000  X       TDCA  , 654\r
25523         012152' 724725  650654\r
25524         011653' 644443  450000  X       TDCE  , 652\r
25525         011654' 644443  560000  X       TDCN  , 656\r
25526         011655' 644456  000000  X       TDN   , 610\r
25527         011656' 644456  410000  X       TDNA  , 614\r
25528         012153' 652656  610614\r
25529         011657' 644456  450000  X       TDNE  , 612\r
25530         011660' 644456  560000  X       TDNN  , 616\r
25531         011661' 644457  000000  X       TDO   , 670\r
25532         011662' 644457  410000  X       TDOA  , 674\r
25533         012154' 612616  670674\r
25534         011663' 644457  450000  X       TDOE  , 672\r
25535         011664' 644457  560000  X       TDON  , 676\r
25536         011665' 644472  000000  X       TDZ   , 630\r
25537         011666' 644472  410000  X       TDZA  , 634\r
25538         012155' 672676  630634\r
25539         011667' 644472  450000  X       TDZE  , 632\r
25540         011670' 644472  560000  X       TDZN  , 636\r
25541 \r
25542         011671' 645164  544500  X       TITLE , 726\r
25543 \r
25544         011672' 645443  000000  X       TLC   , 641\r
25545         012156' 632636  726641\r
25546         011673' 645443  410000  X       TLCA  , 645\r
25547         011674' 645443  450000  X       TLCE  , 643\r
25548         011675' 645443  560000  X       TLCN  , 647\r
25549         011676' 645456  000000  X       TLN   , 601\r
25550         012157' 645643  647601\r
25551         011677' 645456  410000  X       TLNA  , 605\r
25552         011700' 645456  450000  XX      TLNE  , 603\r
25553         011701' 645456  560000  XX      TLNN  , 607\r
25554         011702' 645457  000000  XX      TLO   , 661\r
25555         012160' 605603  607661\r
25556         011703' 645457  410000  X       TLOA  , 665\r
25557         011704' 645457  450000  X       TLOE  , 663\r
25558         011705' 645457  560000  X       TLON  , 667\r
25559         011706' 645472  000000  XX      TLZ   , 621\r
25560         012161' 665663  667621\r
25561         011707' 645472  410000  XX      TLZA  , 625\r
25562         011710' 645472  450000  XX      TLZE  , 623\r
25563         011711' 645472  560000  XX      TLZN  , 627\r
25564 \r
25565 \r
25566 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 163\r
25567 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25568 \r
25569         011712' 646243  000000  X       TRC   , 640\r
25570         012162' 625623  627640\r
25571         011713' 646243  410000  X       TRCA  , 644\r
25572         011714' 646243  450000  X       TRCE  , 642\r
25573         011715' 646243  560000  X       TRCN  , 646\r
25574         011716' 646256  000000  X       TRN   , 600\r
25575         012163' 644642  646600\r
25576         011717' 646256  410000  X       TRNA  , 604\r
25577         011720' 646256  450000  XX      TRNE  , 602\r
25578         011721' 646256  560000  XX      TRNN  , 606\r
25579         011722' 646257  000000  X       TRO   , 660\r
25580         012164' 604602  606660\r
25581         011723' 646257  410000  X       TROA  , 664\r
25582         011724' 646257  450000  X       TROE  , 662\r
25583         011725' 646257  560000  X       TRON  , 666\r
25584         011726' 646272  000000  XX      TRZ   , 620\r
25585         012165' 664662  666620\r
25586         011727' 646272  410000  X       TRZA  , 624\r
25587         011730' 646272  450000  X       TRZE  , 622\r
25588         011731' 646272  560000  X       TRZN  , 626\r
25589 \r
25590         011732' 646343  000000  X       TSC   , 651\r
25591         012166' 624622  626651\r
25592         011733' 646343  410000  X       TSCA  , 655\r
25593         011734' 646343  450000  X       TSCE  , 653\r
25594         011735' 646343  560000  X       TSCN  , 657\r
25595         011736' 646356  000000  X       TSN   , 611\r
25596         012167' 655653  657611\r
25597         011737' 646356  410000  X       TSNA  , 615\r
25598         011740' 646356  450000  X       TSNE  , 613\r
25599 \r
25600         011741' 646356  560000  X       TSNN  , 617\r
25601         011742' 646357  000000  X       TSO   , 671\r
25602         012170' 615613  617671\r
25603         011743' 646357  410000  X       TSOA  , 675\r
25604         011744' 646357  450000  X       TSOE  , 673\r
25605         011745' 646357  560000  X       TSON  , 677\r
25606         011746' 646372  000000  X       TSZ   , 631\r
25607         012171' 675673  677631\r
25608         011747' 646372  410000  X       TSZA  , 635\r
25609         011750' 646372  450000  X       TSZE  , 633\r
25610         011751' 646372  560000  X       TSZN  , 637\r
25611         011752' 646443  415454  X       TTCALL, 051\r
25612         012172' 635633  637051\r
25613         011753' 646757  634547  X       TWOSEG, 731\r
25614         011754' 654641  000000  X       UFA   , 130\r
25615         011755' 654745  644600  X       UGETF , 073\r
25616         011756' 655245  560000  X       UJEN  , 100\r
25617         012173' 731130  073100\r
25618         011757' 655651  664562  X       UNIVER, 737\r
25619         011760' 656345  645100  X       USETI , 074\r
25620         011761' 656345  645700  X       USETO , 075\r
25621 \r
25622 \r
25623 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 163-1\r
25624 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25625 \r
25626         011762' 664162  000000  X       VAR   , 727\r
25627         012174' 737074  075727\r
25628 \r
25629         011763' 676442  160000  XX      WTB.  , 023\r
25630 \r
25631         011764' 704154  540000  X       XALL  , 732\r
25632 \r
25633         011765' 704364  000000  X       XCT   , 256\r
25634 \r
25635         011766' 705451  636400  X       XLIST , 733\r
25636         012175' 023732  256733\r
25637 \r
25638         011767' 705762  000000  X       XOR   , 430\r
25639         011770' 705762  420000  X       XORB  , 433\r
25640         011771' 705762  510000  X       XORI  , 431\r
25641         011772' 705762  550000  X       XORM  , 432\r
25642         012176' 430433  431432\r
25643 \r
25644         011773' 706065  564745  X       XPUNGE, 730\r
25645         011774' 706744  000000  X       XWD   , 734\r
25646 \r
25647         011775' 720000  000000  X       Z     , 000\r
25648 \r
25649         011776' 164362  454600  X       .CREF , 740\r
25650         012177' 730734  000740\r
25651         011777' 165067  466255  X       .HWFRM, 742\r
25652         012000' 165546  625564  X       .MFRMT, 743\r
25653         012001' 167043  624546  X       .XCREF, 741\r
25654 \r
25655 \r
25656 \r
25657 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 164\r
25658 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25659 \r
25660                                 IFN OPHSH,<             ;NO-OPS, OLD MNEMONICS,F4 UUOS\r
25661                                 X       CAI   , 300\r
25662                                 X       CAM   , 310\r
25663                                 X       CLEAR , 400\r
25664                                 X       CLEARB, 403\r
25665                                 X       CLEARI, 401\r
25666                                 X       CLEARM, 402\r
25667                                 X       JUMP  , 320\r
25668                                 X       JUMPA , 324\r
25669                                 X       SKIP  , 330\r
25670                                 X       RESET., 015\r
25671                                 X       IN.   , 016\r
25672                                 X       OUT.  , 017\r
25673                                 X       DATA. , 020\r
25674                                 X       FIN.  , 021\r
25675                                 X       RTB.  , 022\r
25676                                 X       WTB.  , 023\r
25677                                 X       MTOP. , 024\r
25678                                 X       SLIST., 025\r
25679                                 X       INF.  , 026\r
25680                                 X       OUTF. , 027\r
25681                                 X       NLI.  , 031\r
25682                                 X       NLO.  , 032\r
25683                                 >\r
25684 \r
25685 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 165\r
25686 MACRO   10      24-APR-78 02:11         MACHINE INSTRUCTION SEARCH ROUTINES\r
25687 \r
25688                                 IFE OPHSH,<\r
25689                                 IF1, <  BLOCK   N1>\r
25690         012002' 377777  777777  OP1END: -1B36\r
25691         012003'                 OP1COD: BLOCK   N1/4\r
25692         012200' 742743  741000          CC>\r
25693                                 IFN OPHSH,<\r
25694                                 IF2,<\r
25695                                 DEFINE SETVAL (N)<EXP   .%'N\r
25696                                 PURGE .%'N>\r
25697                                 N=0\r
25698                                 XLIST\r
25699                                 REPEAT PRIME,<SETVAL \N\r
25700                                 N=N+1>\r
25701                                 LIST\r
25702                                 >\r
25703                                 OP1COD: IF1,<   BLOCK <PRIME/4+1>>\r
25704                                 IF2,<\r
25705                                 DEFINE SETVAL (N)<EXP   .$'N\r
25706                                 PURGE .$'N>\r
25707                                 N=0\r
25708                                 XLIST\r
25709                                 REPEAT <PRIME/4+1>,<SETVAL      \N\r
25710                                 N=N+1>\r
25711                                 >\r
25712                                 LIST>\r
25713 \r
25714                                 IFDEF .CREF,<   .CREF   ;START CREFFING AGAIN>\r
25715 \r
25716 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 166\r
25717 MACRO   10      24-APR-78 02:11         PERMANENT SYMBOLS\r
25718 \r
25719                                 SUBTTL  PERMANENT SYMBOLS\r
25720         012201' 000000  000002  SYMNUM: EXP     LENGTH/2        ;NUMBER OF PERMANENT SYMBOLS\r
25721                                 DEFINE  P       (A,B)<\r
25722                                         SIXBIT  /A/\r
25723                                         XWD     SYMF!NOOUTF,B>\r
25724 \r
25725         012202' 400000  000000  P       @,      0(SUPRBT)\r
25726         012203' 500004  000000\r
25727         012204' 373737  373737  P       ??????, 0(SUPRBT)\r
25728         012205' 500004  000000\r
25729 \r
25730                         000004  LENGTH= .-SYMNUM-1                      ;LENGTH OF INITIAL SYMBOLS\r
25731 \r
25732         012206'                 PRMTBL:                 ;PERMANENT SYMBOLS\r
25733         012206' 414443  000000  P       ADC,    24\r
25734         012207' 500000  000024\r
25735         012210' 416062  000000  P       APR,    0\r
25736         012211' 500000  000000\r
25737         012212' 434351  000000  P       CCI,    14\r
25738         012213' 500000  000014\r
25739         012214' 434460  000000  P       CDP,    110\r
25740         012215' 500000  000110\r
25741         012216' 434462  000000  P       CDR,    114\r
25742         012217' 500000  000114\r
25743         012220' 436041  000000  P       CPA,    0\r
25744         012221' 500000  000000\r
25745         012222' 436200  000000  P       CR,     150\r
25746         012223' 500000  000150\r
25747         012224' 444300  000000  P       DC,     200\r
25748         012225' 500000  000200\r
25749         012226' 444363  410000  P       DCSA,   300\r
25750         012227' 500000  000300\r
25751         012230' 444363  420000  P       DCSB,   304\r
25752         012231' 500000  000304\r
25753         012232' 444600  000000  P       DF,     270\r
25754         012233' 500000  000270\r
25755         012234' 445163  000000  P       DIS,    130\r
25756         012235' 500000  000130\r
25757         012236' 445463  000000  P       DLS,    240\r
25758         012237' 500000  000240\r
25759         012240' 446043  000000  P       DPC,    250\r
25760         012241' 500000  000250\r
25761         012242' 446353  000000  P       DSK,    170\r
25762         012243' 500000  000170\r
25763         012244' 446443  000000  P       DTC,    320\r
25764         012245' 500000  000320\r
25765         012246' 446463  000000  P       DTS,    324\r
25766         012247' 500000  000324\r
25767         012250' 546064  000000  P       LPT,    124\r
25768         012251' 500000  000124\r
25769         012252' 554446  000000  P       MDF,    260\r
25770         012253' 500000  000260\r
25771         012254' 556443  000000  P       MTC,    220\r
25772 \r
25773 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 166-1\r
25774 MACRO   10      24-APR-78 02:11         PERMANENT SYMBOLS\r
25775 \r
25776         012255' 500000  000220\r
25777         012256' 556455  000000  P       MTM,    230\r
25778         012257' 500000  000230\r
25779         012260' 556463  000000  P       MTS,    224\r
25780         012261' 500000  000224\r
25781         012262' 604147  000000  P       PAG,    10\r
25782         012263' 500000  000010\r
25783         012264' 605100  000000  P       PI,     4\r
25784         012265' 500000  000004\r
25785         012266' 605464  000000  P       PLT,    140\r
25786         012267' 500000  000140\r
25787         012270' 606460  000000  P       PTP,    100\r
25788         012271' 500000  000100\r
25789         012272' 606462  000000  P       PTR,    104\r
25790         012273' 500000  000104\r
25791 \r
25792         012274' 645543  000000  P       TMC,    340\r
25793         012275' 500000  000340\r
25794         012276' 645563  000000  P       TMS,    344\r
25795         012277' 500000  000344\r
25796         012300' 646471  000000  P       TTY,    120\r
25797         012301' 500000  000120\r
25798         012302' 656443  000000  P       UTC,    210\r
25799         012303' 500000  000210\r
25800         012304' 656463  000000  P       UTS,    214\r
25801         012305' 500000  000214\r
25802                                 IFE LNSSW,<     XLIST   >\r
25803                                         LIST\r
25804         012306'                 PRMEND:                         ;END OF PERMANENT SYMBOLS\r
25805 \r
25806 \r
25807 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 167\r
25808 MACRO   10      24-APR-78 02:11         PERMANENT SYMBOLS\r
25809 \r
25810                                         OPDEF   ZL      [Z      LITF]   ;INVALID IN LITERALS\r
25811                                         OPDEF   ZA      [Z      ADDF]   ;INVALID IN ADDRESSES\r
25812                                         OPDEF   ZAL     [Z      ADDF!LITF]\r
25813 \r
25814         012306'                 OP1TAB:\r
25815 \r
25816         012306' 000000  110673'         ZA      PAGE0                   ;PAGE\r
25817         012307' 000000  303155'         ZAL     PASS20                  ;PASS2\r
25818         012310' 000000  304106'         ZAL     PHASE0                  ;PHASE\r
25819         012311' 000000  004652'         Z       POINT0                  ;POINT\r
25820         012312' 000000  103431'         ZA      PRNTX0                  ;PRINTX\r
25821         012313' 000000  104410'         ZA      PURGE0                  ;PURGE\r
25822         012314' 000000  103375'         ZA      RADIX0                  ;RADIX\r
25823         012315' 000000  004760'         Z       RADX50                  ;RADIX50,SQUOZE\r
25824         012316' 000001  304203'         ZAL     LOC0    (1)             ;RELOC\r
25825         012317' 000000  303450'         ZAL     REMAR0                  ;REMARK\r
25826         012320' 000000  105264'         ZA      REPEA0                  ;REPEAT\r
25827         012321' 000000  104250'         ZA      SUPRE0                  ;SUPRESS\r
25828         012322' 000000  305003'         ZAL     PSEND0                  ;PRGEND\r
25829         012323' 000400  310354'         ZAL     RIM0    (RIMSW)         ;RIM\r
25830         012324' 700040  004443'         DATAI   0,IOP                   ;RSW\r
25831         012325' 000001  004606'         Z       ASCII0  (1)             ;SIXBIT\r
25832         012326' 004001  303404'         ZAL     IOSET   (IOPALL!IOSALL) ;SALL\r
25833         012327' 000000  305240'         ZAL     SERCH0                  ;SEARCH\r
25834         012330' 000000  106321'         ZA      STOPI0                  ;STOPI\r
25835         012331' 440700  104311'         ZA      SUBTT0  (Z (POINT 7,,)) ;SUBTTL\r
25836         012332' 000000  104352'         ZA      SYN0                    ;SYN\r
25837         012333' 000000  303373'         ZAL     TAPE0                   ;TAPE\r
25838         012334' 440700  104276'         ZA      TITLE0  (Z (POINT 7,,)) ;TITLE\r
25839         012335' 000000  303546'         ZAL     VAR0                    ;VAR\r
25840 \r
25841         012336' 000000  004266'         Z       XPUNG0                  ;XPUNGE\r
25842         012337' 000000  303447'         ZAL     TWSEG0                  ;TWOSEGMENTS\r
25843         012340' 004000  303403'         ZAL     XALL0   (IOPALL)        ;XALL\r
25844         012341' 040000  303404'         ZAL     IOSET   (IOPROG)        ;XLIST\r
25845         012342' 000000  004672'         Z       XWD0                    ;XWD\r
25846         012343' 000100  310354'         ZAL     RIM0    (RIM1SW)        ;RIM10\r
25847         012344' 004000  310354'         ZAL     RIM0    (R1BSW)         ;RIM10B\r
25848         012345' 440700  105167'         ZA      UNIV0   (Z (POINT 7,,)) ;UNIVERSAL\r
25849         012346' 002000  303411'         ZAL     IORSET  (IONCRF)        ;.CREF\r
25850         012347' 002000  303404'         ZAL     IOSET   (IONCRF)        ;.XCREF\r
25851         012350' 000000  103447'         ZA      OFFORM                  ;.HWFRMT\r
25852         012351' 000000  103447'         ZA      ONFORM                  ;.MFRMT\r
25853 \r
25854 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 168\r
25855 MACRO   10      24-APR-78 02:11         PERMANENT SYMBOLS\r
25856 \r
25857         012352'                 OP2TAB:\r
25858 \r
25859         012352' 000000  004606'         Z       ASCII0  (0)             ;ASCII\r
25860         012353' 400000  004606'         Z       ASCII0  (1B18)          ;ASCIZ\r
25861         012354' 700000  004443'         BLKI    IOP                     ;BLKI\r
25862         012355' 700100  004443'         BLKO    IOP                     ;BLKO\r
25863         012356' 000000  303415'         ZAL     BLOCK0                  ;BLOCK\r
25864         012357' 000000  104261'         ZA      SUPRSA                  ;ASUPPRESS\r
25865         012360' 000000  303447'         ZAL     HISEG0                  ;HISEG\r
25866         012361' 000000  004722'         Z       BYTE0                   ;BYTE\r
25867         012362' 700240  004443'         CONI    IOP                     ;CONI\r
25868         012363' 700200  004443'         CONO    IOP                     ;CONO\r
25869         012364' 700340  004443'         CONSO   IOP                     ;CONSO\r
25870         012365' 700300  004443'         CONSZ   IOP                     ;CONSZ\r
25871         012366' 700040  004443'         DATAI   IOP                     ;DATAI\r
25872         012367' 700140  004443'         DATAO   IOP                     ;DATAO\r
25873         012370' 000012  004557'         Z       OCT0    (^D10)          ;DEC\r
25874         012371' 000000  105405'         ZA      DEFIN0                  ;DEFINE\r
25875 \r
25876         012372' 000000  304104'         ZAL     DEPHA0                  ;DEPHASE\r
25877         012373' 000000  303123'         ZAL     END0                    ;END\r
25878         012374' 000600  103766'         ZA      INTER0  (INTF!ENTF)     ;ENTRY\r
25879         012375' 000000  004556'         Z       EXPRES                  ;EXP\r
25880         012376' 000000  104004'         ZA      EXTER0                  ;EXTERN\r
25881         012377' 254200  004445'         JRST    4,OP                    ;HALT\r
25882         012400' 607640  003627'         TLNN    FR,IFPASS               ;IF1\r
25883         012401' 603640  003627'         TLNE    FR,IFPASS               ;IF2\r
25884 \r
25885         012402' 602000  003632'         TRNE    AC0,IFB0                ;IFB\r
25886         012403' 603240  003667'         TLNE    ARG,IFDEF0              ;IFDEF\r
25887         012404' 000000  003677'         Z       IFIDN0  (0)             ;IFDIF\r
25888         012405' 332000  003601'         SKIPE   IF                      ;IFE\r
25889         012406' 337000  003601'         SKIPG   IF                      ;IFG\r
25890         012407' 335000  003601'         SKIPGE  IF                      ;IFGE\r
25891         012410' 000001  003677'         Z       IFIDN0  (1)             ;IFIDN\r
25892         012411' 331000  003601'         SKIPL   IF                      ;IFL\r
25893 \r
25894         012412' 333000  003601'         SKIPLE  IF                      ;IFLE\r
25895         012413' 336000  003601'         SKIPN   IF                      ;IFN\r
25896         012414' 606000  003632'         TRNN    AC0,IFB0                ;IFNB\r
25897         012415' 607240  003667'         TLNN    ARG,IFDEF0              ;IFNDEF\r
25898         012416' 000400  103766'         ZA      INTER0  (INTF)          ;INTERN\r
25899         012417' 000000  004710'         Z       IOWD0                   ;IOWD\r
25900         012420' 000000  006173'         Z       IRP0    (0)             ;IRP\r
25901         012421' 400000  006173'         Z       IRP0    (400000)        ;IRPC\r
25902 \r
25903         012422' 255300  004445'         JFCL    6,OP                    ;JCRY\r
25904         012423' 255200  004445'         JFCL    4,OP                    ;JCRY0\r
25905         012424' 255100  004445'         JFCL    2,OP                    ;JCRY1\r
25906         012425' 254500  004445'         JRST    12,OP                   ;JEN\r
25907         012426' 255400  004445'         JFCL    10,OP                   ;JOV\r
25908         012427' 254100  004445'         JRST    2,OP                    ;JRSTF\r
25909         012430' 004001  303411'         ZAL     IORSET  (IOPALL!IOSALL) ;LALL\r
25910 \r
25911 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 168-1\r
25912 MACRO   10      24-APR-78 02:11         PERMANENT SYMBOLS\r
25913 \r
25914         012431' 040000  303411'         ZAL     IORSET  (IOPROG)        ;LIST\r
25915         012432' 000000  303454'         ZAL     LIT0                    ;LIT\r
25916         012433' 000000  304203'         ZAL     LOC0    (0)             ;LOC\r
25917         012434' 000000  104246'         ZA      OFFSYM                  ;NOSYM\r
25918         012435' 000010  004557'         Z       OCT0    (^D8)           ;OCT\r
25919         012436' 000000  104053'         ZA      OPDEF0                  ;OPDEF\r
25920         012437' 255040  004445'         JFCL    1,OP                    ;JFOV\r
25921         012440' 000000  104243'         ZA      ONML                    ;MLON\r
25922         012441' 000000  104244'         ZA      OFFML                   ;MLOFF\r
25923         012442' 600000  004606'         Z       ASCII0  (3B19)          ;COMMENT\r
25924                                 IFN IIISW!WFWSW,<\r
25925                                         Z       ASCII0  (5B20)          ;ASCID\r
25926                                 IFN WFWSW,<\r
25927                                         ZAL     %ARAY                   ;ARRAY\r
25928                                         ZAL     %INTEG                  ;INTEGER\r
25929                                         ZAL     %LVAR                   ;LVAR>>\r
25930 \r
25931 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 169\r
25932 MACRO   10      24-APR-78 02:11         PERMANENT SYMBOLS\r
25933 \r
25934 \r
25935         012443'                 CALTBL:\r
25936                                                                 ;USER DEFINED CALLI'S GO HERE\r
25937         012443' 545147  506463          SIXBIT  /LIGHTS/        ;-1\r
25938         012444' 624563  456400  CALLI0: SIXBIT  /RESET/         ; 0\r
25939         012445' 444464  515600          SIXBIT  /DDTIN/         ; 1\r
25940         012446' 634564  444464          SIXBIT  /SETDDT/        ; 2\r
25941         012447' 444464  576564          SIXBIT  /DDTOUT/        ; 3\r
25942         012450' 444566  435062          SIXBIT  /DEVCHR/        ; 4\r
25943         012451' 444464  476400          SIXBIT  /DDTGT/         ; 5\r
25944         012452' 474564  435062          SIXBIT  /GETCHR/        ; 6\r
25945         012453' 444464  625400          SIXBIT  /DDTRL/         ; 7\r
25946         012454' 674151  640000          SIXBIT  /WAIT/          ;10\r
25947         012455' 435762  450000          SIXBIT  /CORE/          ;11\r
25948         012456' 457051  640000          SIXBIT  /EXIT/          ;12\r
25949         012457' 656460  435462          SIXBIT  /UTPCLR/        ;13\r
25950         012460' 444164  450000          SIXBIT  /DATE/          ;14\r
25951         012461' 545747  515600          SIXBIT  /LOGIN/         ;15\r
25952         012462' 416062  455642          SIXBIT  /APRENB/        ;16\r
25953         012463' 545747  576564          SIXBIT  /LOGOUT/        ;17\r
25954         012464' 636751  644350          SIXBIT  /SWITCH/        ;20\r
25955         012465' 624541  636351          SIXBIT  /REASSI/        ;21\r
25956         012466' 645155  456200          SIXBIT  /TIMER/         ;22\r
25957         012467' 556364  515545          SIXBIT  /MSTIME/        ;23\r
25958         012470' 474564  606056          SIXBIT  /GETPPN/        ;24\r
25959         012471' 646260  634564          SIXBIT  /TRPSET/        ;25\r
25960         012472' 646260  524556          SIXBIT  /TRPJEN/        ;26\r
25961         012473' 626556  645155          SIXBIT  /RUNTIM/        ;27\r
25962         012474' 605257  420000          SIXBIT  /PJOB/          ;30\r
25963         012475' 635445  456000          SIXBIT  /SLEEP/         ;31\r
25964         012476' 634564  605766          SIXBIT  /SETPOV/        ;32\r
25965         012477' 604545  530000          SIXBIT  /PEEK/          ;33\r
25966         012500' 474564  545156          SIXBIT  /GETLIN/        ;34\r
25967         012501' 626556  000000          SIXBIT  /RUN/           ;35\r
25968         012502' 634564  656760          SIXBIT  /SETUWP/        ;36\r
25969         012503' 624555  416000          SIXBIT  /REMAP/         ;37\r
25970         012504' 474564  634547          SIXBIT  /GETSEG/        ;40\r
25971         012505' 474564  644142          SIXBIT  /GETTAB/        ;41\r
25972         012506' 636071  000000          SIXBIT  /SPY/           ;42\r
25973         012507' 634564  564155          SIXBIT  /SETNAM/        ;43\r
25974         012510' 645560  435762          SIXBIT  /TMPCOR/        ;44\r
25975         012511' 446353  435062          SIXBIT  /DSKCHR/        ;45\r
25976         012512' 637163  636462          SIXBIT  /SYSSTR/        ;46\r
25977         012513' 525742  636462          SIXBIT  /JOBSTR/        ;47\r
25978         012514' 636462  656557          SIXBIT  /STRUUO/        ;50\r
25979         012515' 637163  605071          SIXBIT  /SYSPHY/        ;51\r
25980         012516' 466245  435056          SIXBIT  /FRECHN/        ;52\r
25981         012517' 444566  647160          SIXBIT  /DEVTYP/        ;53\r
25982         012520' 444566  636463          SIXBIT  /DEVSTS/        ;54\r
25983         012521' 444566  606056          SIXBIT  /DEVPPN/        ;55\r
25984         012522' 634545  530000          SIXBIT  /SEEK/          ;56\r
25985         012523' 626464  626000          SIXBIT  /RTTRP/         ;57\r
25986         012524' 545743  530000          SIXBIT  /LOCK/          ;60\r
25987 \r
25988 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 169-1\r
25989 MACRO   10      24-APR-78 02:11         PERMANENT SYMBOLS\r
25990 \r
25991         012525' 525742  636463          SIXBIT  /JOBSTS/        ;61\r
25992         012526' 545743  416445          SIXBIT  /LOCATE/        ;62\r
25993         012527' 675045  624500          SIXBIT  /WHERE/         ;63\r
25994         012530' 444566  564155          SIXBIT  /DEVNAM/        ;64\r
25995         012531' 436454  525742          SIXBIT  /CTLJOB/        ;65\r
25996         012532' 475742  636462          SIXBIT  /GOBSTR/        ;66\r
25997         012533' 000000  000000          0                       ;67\r
25998         012534' 000000  000000          0                       ;70\r
25999         012535' 506061  000000          SIXBIT  /HPQ/           ;71\r
26000         012536' 505142  456200          SIXBIT  /HIBER/         ;72\r
26001         012537' 674153  450000          SIXBIT  /WAKE/          ;73\r
26002         012540' 435047  606056          SIXBIT  /CHGPPN/        ;74\r
26003         012541' 634564  656557          SIXBIT  /SETUUO/        ;75\r
26004         012542' 444566  474556          SIXBIT  /DEVGEN/        ;76\r
26005         012543' 576450  656362          SIXBIT  /OTHUSR/        ;77\r
26006         012544' 435053  414343          SIXBIT  /CHKACC/        ;100\r
26007         012545' 444566  635172          SIXBIT  /DEVSIZ/        ;101\r
26008         012546' 444145  555756          SIXBIT  /DAEMON/        ;102\r
26009         012547' 525742  604553          SIXBIT  /JOBPEK/        ;103\r
26010         012550' 416464  414350          SIXBIT  /ATTACH/        ;104\r
26011         012551' 444145  465156          SIXBIT  /DAEFIN/        ;105\r
26012         012552' 466243  656557          SIXBIT  /FRCUUO/        ;106\r
26013         012553' 444566  545655          SIXBIT  /DEVLNM/        ;107\r
26014         012554' 604164  501600          SIXBIT  /PATH./         ;110\r
26015 \r
26016                         000112  CALNTH==.-CALTBL\r
26017                         000001  NEGCAL==CALLI0-CALTBL           ;NUMBER OF NEGATIVE CALLI'S\r
26018 \r
26019         012555' 515643  506267  TTCTBL: SIXBIT  /INCHRW/        ; 0     INPUT A CHAR. AND WAIT\r
26020         012556' 576564  435062          SIXBIT  /OUTCHR/        ; 1     OUTPUT A CHAR.\r
26021         012557' 515643  506263          SIXBIT  /INCHRS/        ; 2     INPUT A CHAR. AND SKIP\r
26022         012560' 576564  636462          SIXBIT  /OUTSTR/        ; 3     OUTPUT A STRING\r
26023         012561' 515643  506754          SIXBIT  /INCHWL/        ; 4     INPUT CHAR., WAIT, LINE MODE\r
26024         012562' 515643  506354          SIXBIT  /INCHSL/        ; 5     INPUT CHAR., SKIP, LINE MODE\r
26025         012563' 474564  544350          SIXBIT  /GETLCH/        ; 6     GET LINE CHARACTERISTICS\r
26026         012564' 634564  544350          SIXBIT  /SETLCH/        ; 7     SET LINE CHARACTERISTICS\r
26027         012565' 624563  434156          SIXBIT  /RESCAN/        ;10     RESET INPUT STREAM TO COMMAND\r
26028         012566' 435462  424651          SIXBIT  /CLRBFI/        ;11     CLEAR TYPEIN BUFFER\r
26029         012567' 435462  424657          SIXBIT  /CLRBFO/        ;12     CLEAR TYPEOUT BUFFER\r
26030         012570' 635360  515643          SIXBIT  /SKPINC/        ;13     SKIPS IF A CHAR. CAN BE INPUT\r
26031         012571' 635360  515654          SIXBIT  /SKPINL/        ;14     SKIPS IF A LINE CAN BE INPUT\r
26032         012572' 515756  455765          SIXBIT  /IONEOU/        ;15     OUTPUT AS AN IMAGE CHAR.\r
26033 \r
26034                         000016  TTCLTH==.-TTCTBL\r
26035                                         SUBTTL  USER-DEFINED SYMBOL SEARCH ROUTINES\r
26036         012573' 260740  012713' MSRCH:  PUSHJ   PP,SEARCH       ;PERFORM GENERAL SEARCH\r
26037         012574' 263740  000000          POPJ    PP,             ;NOT FOUND, EXIT\r
26038         012575' 327240  012602'         JUMPG   ARG,MSRCH2      ;SKIP-EXIT AND CROSS-REF IF FOUND\r
26039         012576' 312004  000001          CAME    AC0,1(SX)       ;WE ARE LOOKING AT SYMBOL, TRY ONE ABOVE\r
26040         012577' 263740  000000          POPJ    PP,             ;NO, EXIT\r
26041         012600' 271200  000002          ADDI    SX,2            ;YES, POINT TO IT\r
26042         012601' 260740  012736'         PUSHJ   PP,SRCH5        ;LOAD REGISTERS\r
26043         012602' 354017  000000  MSRCH2: AOSA    0(PP)           ;SET SKIP-EXIT\r
26044 \r
26045 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 169-2\r
26046 MACRO   10      24-APR-78 02:11         USER-DEFINED SYMBOL SEARCH ROUTINES\r
26047 \r
26048         012603' 321240  012620' QSRCH:  JUMPL   ARG,SSRCH3      ;BRANCH IF OPERAND\r
26049         012604' 201140  000005          MOVEI   SDEL,%MAC       ;SET OPERATOR FLAG\r
26050         012605' 623600  000040          TLZE IO,DEFCRS  ;IS IT A DEFINITION?\r
26051         012606' 201140  000006          MOVEI SDEL,%DMAC        ;YES\r
26052         012607' 254000  012621'         JRST    CREF            ;CROSS-REF AND EXIT\r
26053 \r
26054         012610' 260740  012713' SSRCH:  PUSHJ   PP,SEARCH       ;PERFORM GENERAL SEARCH\r
26055         012611' 263740  000000          POPJ    PP,             ;NOT FOUND, EXIT\r
26056         012612' 321240  012617'         JUMPL   ARG,SSRCH2      ;SKIP-EXIT AND CROSS-REF IF FOUND\r
26057         012613' 312004  777775  SSRCH1: CAME    AC0,-3(SX)      ;WE ARE LOOKING AT MACRO, LOOK ONE SLOT BELOW\r
26058         012614' 263740  000000          POPJ    PP,             ;NO DICE, EXIT\r
26059         012615' 275200  000002          SUBI    SX,2            ;YES, POINT TO IT\r
26060         012616' 260740  012736'         PUSHJ   PP,SRCH5        ;LOAD REGISTERS\r
26061         012617' 350017  000000  SSRCH2: AOS     0(PP)           ;SET FOR SKIP-EXIT\r
26062         012620' 201140  000001  SSRCH3: MOVEI   SDEL,%SYM       ;SET OPERAND FLAG\r
26063 \r
26064         012621' 607600  002000  CREF:   TLNN    IO,IONCRF       ;NO CREFFING FOR THIS SYMBOL?\r
26065         012622' 603640  402000          TLNE    FR,P1!CREFSW    ;PASS ONE OR CROSS-REF SUPPRESSION?\r
26066         012623' 263740  000000          POPJ    PP,             ;YES, EXIT\r
26067         012624' 250140  000007          EXCH    SDEL,C          ;PUT FLAG IN C, SACE C\r
26068         012625' 261740  000010          PUSH    PP,CS\r
26069         012626' 603600  000400          TLNE IO,IOCREF          ;HAVE WE PUT OUT THE 177,102\r
26070         012627' 254000  012641'         JRST CREF3              ;YES\r
26071         012630' 261740  000007          PUSH PP,C               ;START OF CREF DATA\r
26072 \r
26073 \r
26074 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 170\r
26075 MACRO   10      24-APR-78 02:11         USER-DEFINED SYMBOL SEARCH ROUTINES\r
26076 \r
26077                                 REPEAT 0,<      ;NEEDS CHANGE TO CREF\r
26078                                         MOVEI C,177\r
26079                                         PUSHJ PP,OUTLST\r
26080                                         MOVEI C,102\r
26081                                         PUSHJ PP,OUTLST\r
26082                                         TLO IO,IOCREF   ;WE NOW ARE IN THAT STATE\r
26083                                         POP PP,C        ;WE HAVE NOW\r
26084                                 CREF3:  JUMPE C,NOFLG           ;JUST CLOSE IT\r
26085                                         PUSHJ   PP,OUTLST       ;TYPE OF SYMBOL (%MAC,%DMAC,%SYM)\r
26086                                         MOVSI CS,770000         ;COUNT CHRS\r
26087                                         TDZA C,C        ;STARTING AT 0\r
26088                                         LSH CS,-6       ;TRY NEXT\r
26089                                         TDNE AC0,CS     ;IS THAT ONE THERE?\r
26090                                         AOJA C,.-2      ;YES\r
26091                                         PUSHJ PP,OUTLST         ;PRINT NUMBER OF SYMBOL CONSTITUENTS\r
26092                                         MOVE    CS,AC0\r
26093                                 \r
26094                                 CREF2:  MOVEI   C,0\r
26095                                         LSHC    C,6\r
26096                                         ADDI    C,40\r
26097                                         PUSHJ   PP,OUTLST       ;THE ASCII SYMBOL\r
26098                                         JUMPN   CS,CREF2\r
26099                                         MOVEI   C,%DSYM\r
26100                                         TLZE    IO,DEFCRS\r
26101                                         PUSHJ   PP,OUTLST       ;MARK IT AS A DEFINING OCCURENCE\r
26102                                 NOFLG:  MOVE    C,SDEL\r
26103                                         POP     PP,CS\r
26104                                         POPJ    PP,\r
26105                                 \r
26106                                 CLSCRF: TRNN ER,LPTSW\r
26107                                         POPJ PP,        ;LEAVE IF WE SHOULD NOT BE PRINTING\r
26108                                 CLSCR2: MOVEI C,177\r
26109                                         PUSHJ PP,PRINT\r
26110                                         TLZE IO,IOCREF  ;WAS IT OPEN?\r
26111                                         JRST CLSCR1     ;YES, JUST CLOSE IT\r
26112                                         MOVEI C,102     ;NO, OPEN IT FIRST\r
26113                                         PUSHJ PP,OUTLST         ;MARK BEGINNING OF CREF DATA\r
26114                                         MOVEI C,177\r
26115                                         PUSHJ PP,OUTLST\r
26116                                 CLSCR1: MOVEI C,103\r
26117                                         JRST OUTLST             ;MARK END OF CREF DATA\r
26118                                 \r
26119                                 CLSC3:  TLZ IO,IOCREF\r
26120                                         MOVEI C,177\r
26121                                         PUSHJ PP,OUTLST\r
26122                                         MOVEI C,104\r
26123                                         JRST OUTLST     ;177,104 CLOSES IT FOR NOW\r
26124                                 >       ;END OF REPEAT 0\r
26125 \r
26126 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 171\r
26127 MACRO   10      24-APR-78 02:11         USER-DEFINED SYMBOL SEARCH ROUTINES\r
26128 \r
26129                                 REPEAT 1,<                      ;WORKS WITH EXISTING CREF\r
26130         012631' 603600  000100          TLNE IO,IOPAGE\r
26131         012632' 260740  012664'         PUSHJ PP,CRFHDR         ;GET CORRECT SUBTTL\r
26132         012633' 201340  000177          MOVEI C,177\r
26133         012634' 260740  010667'         PUSHJ PP,OUTLST\r
26134         012635' 201340  000102          MOVEI C,102\r
26135         012636' 260740  010667'         PUSHJ PP,OUTLST\r
26136         012637' 661600  000400          TLO IO,IOCREF   ;WE NOW ARE IN THAT STATE\r
26137         012640' 262740  000007          POP PP,C        ;WE HAVE NOW\r
26138         012641' 260740  010667' CREF3:  PUSHJ   PP,OUTLST       ;TYPE OF SYMBOL (%MAC,%DMAC,%SYM)\r
26139         012642' 205400  770000          MOVSI CS,770000         ;COUNT CHRS\r
26140         012643' 634340  000007          TDZA C,C        ;STARTING AT 0\r
26141         012644' 242400  777772          LSH CS,-6       ;TRY NEXT\r
26142         012645' 612000  000010          TDNE AC0,CS     ;IS THAT ONE THERE?\r
26143         012646' 344340  012644'         AOJA C,.-2      ;YES\r
26144         012647' 260740  010667'         PUSHJ PP,OUTLST         ;PRINT NUMBER OF SYMBOL CONSTITUENTS\r
26145         012650' 200400  000000          MOVE    CS,AC0\r
26146 \r
26147         012651' 201340  000000  CREF2:  MOVEI   C,0\r
26148         012652' 246340  000006          LSHC    C,6\r
26149         012653' 271340  000040          ADDI    C,40\r
26150         012654' 260740  010667'         PUSHJ   PP,OUTLST       ;THE ASCII SYMBOL\r
26151         012655' 326400  012651'         JUMPN   CS,CREF2\r
26152         012656' 201340  000002          MOVEI   C,%DSYM\r
26153         012657' 623600  000040          TLZE    IO,DEFCRS\r
26154         012660' 260740  010667'         PUSHJ   PP,OUTLST       ;MARK IT AS A DEFINING OCCURENCE\r
26155         012661' 200340  000003          MOVE    C,SDEL\r
26156         012662' 262740  000010          POP     PP,CS\r
26157         012663' 263740  000000          POPJ    PP,\r
26158 \r
26159                                 IFN OPHSH,<\r
26160                                 SUBTL:  SIXBIT  /SUBTTL/>\r
26161         012664' 312000  011645' CRFHDR: CAME    AC0,SUBTL       ;IS FIRST SYMBOL "SUBTTL"\r
26162         012665' 254000  012672'         JRST    CRFHD1          ;NO\r
26163         012666' 510000  000006          HLLZ    AC0,V\r
26164         012667' 260740  004311'         PUSHJ   PP,SUBTT0       ;UPDATE SUBTTL\r
26165         012670' 200000  011645'         MOVE    AC0,SUBTL       ;RESTORE ARG.\r
26166         012671' 201300  003447'         MOVEI   V,CPOPJ\r
26167         012672' 201340  000000  CRFHD1: MOVEI   C,0\r
26168         012673' 254000  010607'         JRST    OUTL\r
26169 \r
26170         012674'                 CLSC3:\r
26171         012674' 606600  000002  CLSCRF: TRNN ER,LPTSW\r
26172         012675' 263740  000000          POPJ PP,        ;LEAVE IF WE SHOULD NOT BE PRINTING\r
26173         012676' 623600  000400  CLSCR2: TLZE IO,IOCREF  ;FINISH UP LINE\r
26174         012677' 254000  012707'         JRST CLSCR1\r
26175         012700' 201340  000000          MOVEI   C,0\r
26176         012701' 603600  000100          TLNE    IO,IOPAGE       ;NEW PAGE?\r
26177         012702' 260740  010607'         PUSHJ   PP,OUTL         ;YES,GIVE IT A ROUSING SENDOFF!\r
26178         012703' 201340  000177          MOVEI C,177\r
26179         012704' 260740  010667'         PUSHJ PP,OUTLST\r
26180         012705' 201340  000102          MOVEI C,102\r
26181         012706' 260740  010667'         PUSHJ PP,OUTLST         ;MARK BEGINNING OF CREF DATA\r
26182 \r
26183 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 171-1\r
26184 MACRO   10      24-APR-78 02:11         USER-DEFINED SYMBOL SEARCH ROUTINES\r
26185 \r
26186         012707' 201340  000177  CLSCR1: MOVEI C,177\r
26187         012710' 260740  010667'         PUSHJ PP,OUTLST\r
26188         012711' 201340  000103          MOVEI C,103\r
26189         012712' 254000  010667'         JRST OUTLST             ;MARK END OF CREF DATA\r
26190                                 >       ;END OF REPEAT 1\r
26191 \r
26192 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 172\r
26193 MACRO   10      24-APR-78 02:11         USER-DEFINED SYMBOL SEARCH ROUTINES\r
26194 \r
26195         012713' 554200  013547' SEARCH: HLRZ    SX,SRCHX\r
26196         012714' 550140  013547'         HRRZ    SDEL,SRCHX\r
26197 \r
26198         012715' 311004  777777  SRCH1:  CAML    AC0,-1(SX)\r
26199         012716' 254000  012725'         JRST    SRCH3\r
26200         012717' 274200  000003  SRCH2:  SUB     SX,SDEL\r
26201         012720' 242140  777777          LSH     SDEL,-1\r
26202         012721' 317200  013553'         CAMG    SX,SYMTOP\r
26203         012722' 326140  012715'         JUMPN   SDEL,SRCH1\r
26204         012723' 326140  012717'         JUMPN   SDEL,SRCH2\r
26205         012724' 364200  012761'         SOJA    SX,SRCHNO       ;NOT FOUND\r
26206 \r
26207         012725' 316004  777777  SRCH3:  CAMN    AC0,-1(SX)\r
26208         012726' 254000  012735'         JRST    SRCH4           ;NORMAL / FOUND EXIT\r
26209         012727' 270200  000003          ADD     SX,SDEL\r
26210         012730' 242140  777777          LSH     SDEL,-1\r
26211         012731' 317200  013553'         CAMG    SX,SYMTOP\r
26212         012732' 326140  012715'         JUMPN   SDEL,SRCH1\r
26213         012733' 326140  012717'         JUMPN   SDEL,SRCH2\r
26214         012734' 364200  012761'         SOJA    SX,SRCHNO       ;NOT FOUND\r
26215 \r
26216         012735' 350017  000000  SRCH4:  AOS     0(PP)           ;SET FOR SKIP EXIT\r
26217         012736' 205240  000004  SRCH5:  MOVSI ARG,SUPRBT        ;HE IS USING IT, TURN OFF BIT\r
26218         012737' 412244  000000          ANDCAM ARG,(SX) ; IN THE TABLE\r
26219         012740' 200244  000000  SRCH7:  MOVE ARG,0(SX)          ;FLAG AND VALUE TO ARG\r
26220         012741' 135440  003372'         LDB     RC,RCPNTR       ;POINT 1,ARG,17\r
26221         012742' 603240  000002          TLNE ARG,LELF   ;CHECK LEFT RELOCATE\r
26222         012743' 661440  000001          TLO RC,1\r
26223         012744' 550300  000005          HRRZ    V,ARG\r
26224         012745' 603240  000010          TLNE ARG,SPTR   ;CHECK SPECIAL EXTESN POINTER\r
26225         012746' 254000  012752'         JRST SRCH6\r
26226         012747' 603240  004000          TLNE    ARG,PNTF\r
26227         012750' 200305  000000          MOVE    V,0(ARG)                ;36BIT VALUE TO V\r
26228         012751' 254000  013005'         JRST    SRCHOK\r
26229         \r
26230         012752' 200305  000000  SRCH6:  MOVE V,0(ARG)   ;VALUE\r
26231         012753' 200445  000001          MOVE RC,1(ARG)  ;AND RELOC\r
26232         012754' 603440  777776          TLNE RC,-2      ;CHECK AND SET EXTPNT\r
26233         012755' 502440  013742'         HLLM RC,EXTPNT\r
26234         012756' 602440  777776          TRNE RC,-2      \r
26235         012757' 542440  013742'         HRRM RC,EXTPNT\r
26236         012760' 254000  013005'         JRST    SRCHOK\r
26237         012761' 336000  014056' SRCHNO: SKIPN   UNISCH+1        ;ALLOWED TO SEARCH OTHER TABLES\r
26238         012762' 263740  000000          POPJ    PP,             ;NO, JUST RETURN\r
26239         012763' 350300  014055'         AOS     V,UNISCH        ;GET NEXT INDEX TO TABLE\r
26240         012764' 302300  000001          CAIE    V,1             ;FIRST TIME IN\r
26241         012765' 254000  012774'         JRST    SRCHN1          ;YES, SAVE SYMBOL INFO\r
26242         012766' 506200  014055'         HRLM    SX,UNISCH       ;SAVE SX AND SET FLAG\r
26243         012767' 200240  013547'         MOVE    ARG,SRCHX       ;SEARCH POINTER\r
26244         012770' 202240  014147'         MOVEM   ARG,UNISHX      ;TO A SAFE PLACE\r
26245         012771' 540240  013552'         HRR     ARG,SYMBOL\r
26246         012772' 504240  013553'         HRL     ARG,SYMTOP\r
26247         012773' 202240  014135'         MOVEM   ARG,UNIPTR      ;STORE ALSO\r
26248 \r
26249 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 172-1\r
26250 MACRO   10      24-APR-78 02:11         USER-DEFINED SYMBOL SEARCH ROUTINES\r
26251 \r
26252         012774' 200306  014055' SRCHN1: MOVE    V,UNISCH(V)     ;GET TRUE INDEX\r
26253         012775' 322300  013004'         JUMPE   V,SRCHKO        ;IF ZERO ALL TABLE SCANNED\r
26254         012776' 200246  014147'         MOVE    ARG,UNISHX(V)   ;NEW SRCHX\r
26255         012777' 202240  013547'         MOVEM   ARG,SRCHX       ;SET IT UP\r
26256         013000' 200246  014135'         MOVE    ARG,UNIPTR(V)   ;SYMTOP,,SYMBOL\r
26257         013001' 552240  013552'         HRRZM   ARG,SYMBOL\r
26258         013002' 556240  013553'         HLRZM   ARG,SYMTOP\r
26259         013003' 254000  012713'         JRST    SEARCH          ;TRY AGAIN\r
26260 \r
26261         013004' 400240  000000  SRCHKO: SETZ    ARG,            ;CLEAR ARG SO ZERO STORED\r
26262         013005' 336000  014055' SRCHOK: SKIPN   UNISCH          ;HAVE WE SEARCH OTHER TABLES\r
26263         013006' 263740  000000          POPJ    PP,             ;NO, JUST RETURN\r
26264         013007' 554200  014055' SYMBCK: HLRZ    SX,UNISCH       ;RESTORE SX\r
26265         013010' 402000  014055'         SETZM   UNISCH          ;CLEAR SYMBCK FLAG\r
26266         013011' 261740  000006          PUSH    PP,V            ;SAVE AN AC\r
26267         013012' 200300  014147'         MOVE    V,UNISHX        ;SRCHX\r
26268         013013' 202300  013547'         MOVEM   V,SRCHX         ;RESTORE ORIGINAL\r
26269         013014' 200300  014135'         MOVE    V,UNIPTR        ;SYMTOP,,SYMBOL\r
26270         013015' 552300  013552'         HRRZM   V,SYMBOL\r
26271         013016' 556300  013553'         HLRZM   V,SYMTOP\r
26272         013017' 322240  013032'         JUMPE   ARG,SRCHK2      ;TOTALLY UNDEFINED\r
26273         013020' 261740  000011          PUSH    PP,RC           ;SAVE SOME ACCS\r
26274         013021' 261740  000005          PUSH    PP,ARG\r
26275         013022' 261740  013742'         PUSH    PP,EXTPNT\r
26276         013023' 403240  013742'         SETZB   ARG,EXTPNT      ;CLEAR ALL SYMBOL DATA\r
26277         013024' 403440  000006          SETZB   RC,V\r
26278         013025' 260740  013036'         PUSHJ   PP,INSERT       ;INSERT SYMBOL IN TABLE\r
26279         013026' 262740  013742'         POP     PP,EXTPNT       ;RESTORE ACCS ETC.\r
26280         013027' 262740  000005          POP     PP,ARG\r
26281         013030' 262740  000011          POP     PP,RC\r
26282         013031' 202244  000000          MOVEM   ARG,(SX)        ;SET FLAGS AND VALUE AS IT SHOULD BE\r
26283         013032' 262740  000006  SRCHK2: POP     PP,V\r
26284         013033' 263740  000000          POPJ    PP,             ;RETURN\r
26285 \r
26286 \r
26287 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 173\r
26288 MACRO   10      24-APR-78 02:11         USER-DEFINED SYMBOL SEARCH ROUTINES\r
26289 \r
26290         013034' 603240  002100  INSERQ: TLNE    ARG,UNDF!VARF\r
26291         013035' 403440  000006  INSERZ: SETZB   RC,V\r
26292         013036' 312004  777777  INSERT: CAME    AC0,-1(SX)      ;ARE WE LOOKING AT MATCHING MNEMONIC?\r
26293         013037' 254000  013047'         JRST    INSRT2          ;NO, JUST INSERT\r
26294         013040' 321240  013044'         JUMPL   ARG,INSRT1      ;YES, BRANCH IF OPERAND\r
26295         013041' 331004  000000          SKIPL   0(SX)           ;OPERATOR, ARE WE LOOKING AT ONE?\r
26296         013042' 254000  013137'         JRST    UPDATE          ;YES, UPDATE\r
26297         013043' 254000  013047'         JRST    INSRT2          ;NO, INSERT\r
26298 \r
26299         013044' 337004  000000  INSRT1: SKIPG   0(SX)           ;OPERAND, ARE WE LOOKING AT ONE?\r
26300         013045' 254000  013137'         JRST    UPDATE          ;YES, UPDATE\r
26301         013046' 275200  000002          SUBI    SX,2            ;NO, MOVE UNDER OPERATOR AND INSERT\r
26302         013047' 200140  013552' INSRT2: MOVE    SDEL,SYMBOL\r
26303         013050' 275140  000002          SUBI    SDEL,2\r
26304         013051' 313140  013377'         CAMLE   SDEL,FREE\r
26305         013052' 254000  013055'         JRST    INSRT3\r
26306         013053' 260740  010276'         PUSHJ   PP,XCEEDS\r
26307         013054' 271140  002000          ADDI    SDEL,2000\r
26308         013055' 202140  013552' INSRT3: MOVEM   SDEL,SYMBOL     ;MAKE ROOM FOR A TWO WORD ENTRY\r
26309         013056' 505143  000002          HRLI    SDEL,2(SDEL)\r
26310         013057' 251144  777776          BLT     SDEL,-2(SX)     ;PUSH EVERYONE DOWN TWO LOACTIONS\r
26311         013060' 350020  013552'         AOS     @SYMBOL         ;INCREMENT THE SYMBOL COUNT\r
26312         013061' 607440  777776          TLNN RC,-2      ;NEED SPECIAL?\r
26313         013062' 602440  777776          TRNE RC,-2      ;LEFT OR RIGHT EXTERNAL?\r
26314         013063' 254000  013104'         JRST INSRT5     ;YES, JUMP\r
26315         013064' 607300  777777          TLNN    V,-1            ;SKIP IF V IS A 36BIT VALUE\r
26316         013065' 254000  013074'         JRST    INSRT4          ;JUMP, ITS A 18BIT VALUE\r
26317         013066' 350140  013377'         AOS     SDEL,FREE       ;36BIT, SO GET A CELL FROM FREE CORE\r
26318         013067' 311140  013552'         CAML    SDEL,SYMBOL     ;MORE CORE NEEDED?\r
26319         013070' 260740  010276'         PUSHJ   PP,XCEEDS       ;YES\r
26320         013071' 541243  777777          HRRI    ARG,-1(SDEL)    ;POINTER TO ARG\r
26321         013072' 202305  000000          MOVEM   V,0(ARG)        ;36BIT VALUE TO FREE CORE\r
26322         013073' 665240  004000          TLOA    ARG,PNTF        ;NOTE THAT ARG IS APOINTER, NOT A 18BIT VALUE\r
26323 \r
26324         013074' 540240  000006  INSRT4: HRR     ARG,V           ;18BIT VALUE TO ARG\r
26325         013075' 137440  003372'         DPB     RC,RCPNTR       ;FIX RIGHT RELOCATION\r
26326         013076' 603440  000001          TLNE RC,1\r
26327         013077' 661240  000002          TLO ARG,LELF    ;FIX LEFT RELOCATION\r
26328         013100' 202244  000000  INSRT6: MOVEM   ARG,0(SX)       ;INSERT FLAGS AND VALUE.\r
26329         013101' 202004  777777          MOVEM   AC0,-1(SX)      ;INSERT SYMBOL NAME.\r
26330         013102' 260740  013125'         PUSHJ   PP,SRCHI        ;INITILIAZE SRCHX\r
26331         013103' 254000  012603'         JRST    QSRCH           ;EXIT THROUGH CREF\r
26332         \r
26333         013104' 201140  000002  INSRT5: MOVEI SDEL,2    ;GET TWO CELLS FROM FREE CORE\r
26334         013105' 273140  013377'         ADDB SDEL,FREE\r
26335         013106' 311140  013552'         CAML SDEL,SYMBOL;MORE CORE NEEDED?\r
26336         013107' 260740  010276'         PUSHJ PP,XCEEDS ;YES\r
26337         013110' 202443  777777          MOVEM RC,-1(SDEL)\r
26338         013111' 541243  777776          HRRI ARG,-2(SDEL)       ;POINTER TO ARG\r
26339         013112' 202305  000000          MOVEM V,0(ARG)\r
26340         013113' 661240  000010          TLO ARG,SPTR    ;SET SPECIAL POINTER, POINTS TO TWO CELLS\r
26341         013114' 254000  013100'         JRST INSRT6\r
26342 \r
26343 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 174\r
26344 MACRO   10      24-APR-78 02:11         USER-DEFINED SYMBOL SEARCH ROUTINES\r
26345 \r
26346         013115' 275200  000002  REMOVE: SUBI    SX,2            ;MOVE EVERYONE UP TWO LOCATIONS\r
26347         013116' 200004  000000  REMOV1: MOVE    0(SX)\r
26348         013117' 202004  000002          MOVEM   2(SX)           ;OVERWRITE THE DELETED SYMBOL\r
26349         013120' 312200  013552'         CAME    SX,SYMBOL       ;SKIP WHEN DONE\r
26350         013121' 364200  013116'         SOJA    SX,REMOV1\r
26351         013122' 271200  000002          ADDI    SX,2\r
26352         013123' 202200  013552'         MOVEM   SX,SYMBOL\r
26353         013124' 370004  000000          SOS     0(SX)           ;DECREMENT THE SYMBOL COUNT\r
26354 \r
26355         013125' 201100  000000  SRCHI:  MOVEI   AC2,0           ;THIS CODE SETS UP SRCHX\r
26356         013126' 140120  013552'         FAD     AC2,@SYMBOL\r
26357         013127' 242100  777745          LSH     AC2,-^D27\r
26358         013130' 201040  001000          MOVEI   AC1,1000\r
26359         013131' 242042  777421          LSH     AC1,-357(AC2)\r
26360         013132' 542040  013547'         HRRM    AC1,SRCHX\r
26361         013133' 242040  000001          LSH     AC1,1\r
26362         013134' 270040  013552'         ADD     AC1,SYMBOL\r
26363         013135' 506040  013547'         HRLM    AC1,SRCHX\r
26364         013136' 263740  000000          POPJ    PP,             ;SRCHX=XWD <SYMTBL+LENGTH/2>,LENGTH/4\r
26365 \r
26366 \r
26367 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 175\r
26368 MACRO   10      24-APR-78 02:11         USER-DEFINED SYMBOL SEARCH ROUTINES\r
26369 \r
26370         013137' 137440  003372' UPDATE: DPB     RC,RCPNTR       ;FIX RIGHT RELOCATION\r
26371         013140' 603240  000010          TLNE ARG,SPTR   ;SKIP IF THERE IS NO SPECIAL POINTER\r
26372         013141' 254000  013171'         JRST UPDAT4     ;YES, USE THE TWO CELLS\r
26373         013142' 607440  777776          TLNN RC,-2      ;NEED TO CHANGE\r
26374         013143' 602440  777776          TRNE RC,-2      ;ANY CURRENT EXTERNS?\r
26375         013144' 254000  013175'         JRST UPDAT5     ;YES ,JUMP\r
26376         013145' 621240  000002          TLZ ARG,LELF    ;CLEAR LELF\r
26377         013146' 603440  000001          TLNE RC,1       ;LEFT RELOCATABLE?\r
26378         013147' 661240  000002          TLO ARG,LELF    ;YES, SET THE FLAG\r
26379         013150' 603240  004000          TLNE    ARG,PNTF        ;WAS THERE A 36BIT VALUE?\r
26380         013151' 254000  013164'         JRST    UPDAT2          ;YES, USE IT.\r
26381         013152' 603300  777777          TLNE    V,-1            ;NO,IS THERE A 36BIT VALUE?\r
26382         013153' 254000  013157'         JRST    UPDAT1          ;YES, GET A CELL\r
26383         013154' 540240  000006          HRR     ARG,V           ;NO, USE RH OF ARG\r
26384         013155' 202244  000000  UPDAT3: MOVEM   ARG,0(SX)       ;OVERWRITE THE ONE IN THE TABLE\r
26385         013156' 263740  000000          POPJ    PP,             ;AND EXIT\r
26386 \r
26387         013157' 350140  013377' UPDAT1: AOS     SDEL,FREE       ;GET ONE CELL\r
26388         013160' 311140  013552'         CAML    SDEL,SYMBOL     ;NEED MORE CORE?\r
26389         013161' 260740  010276'         PUSHJ   PP,XCEEDS       ;YES\r
26390         013162' 541243  777777          HRRI    ARG,-1(SDEL)    ;POINTER TO ARG\r
26391         013163' 661240  004000          TLO     ARG,PNTF        ;AND NOTE IT.\r
26392         013164' 603240  001000  UPDAT2: TLNE ARG,EXTF   ;IS THERE A EXTERNAL?\r
26393         013165' 254000  013155'         JRST UPDAT3             ;YES, - JUST SAVE A LOCATION\r
26394         013166' 202244  000000          MOVEM   ARG,0(SX)       ;NO, OVERWRITE THE POINTER IN THE TABLE\r
26395         013167' 202305  000000          MOVEM   V,0(ARG)        ;STORE VALUE AS A 36BIT VALUE\r
26396         013170' 263740  000000          POPJ    PP,             ;AND EXIT\r
26397         \r
26398         013171' 202244  000000  UPDAT4: MOVEM ARG,0(SX) ;WE HAVE TWO CELLS, WE USE THEM\r
26399         013172' 202305  000000          MOVEM V,0(ARG)  ;SAVE AS 36BIT VALUE\r
26400         013173' 202445  000001          MOVEM RC,1(ARG) ;SAVE RELOCATION BITS\r
26401         013174' 263740  000000          POPJ PP,                ;AND EXIT\r
26402 \r
26403         013175' 201140  000002  UPDAT5: MOVEI SDEL,2            ;THERE IS A EXTERNAL\r
26404         013176' 273140  013377'         ADDB SDEL,FREE          ;SO WE NEED TWO LOACTIONS\r
26405         013177' 311140  013552'         CAML SDEL,SYMBOL        ;NEED MORE CORE?\r
26406         013200' 260740  010276'         PUSHJ PP,XCEEDS         ;YES\r
26407         013201' 202443  777777          MOVEM RC,-1(SDEL)       ;SAVE RELOCATION BITS\r
26408         013202' 541243  777776          HRRI ARG,-2(SDEL)       ;SAVE THE POINTER IN ARG\r
26409         013203' 202305  000000          MOVEM V,0(ARG)          ;SAVE A 36BIT VALUE\r
26410         013204' 661240  000010          TLO ARG,SPTR            ;SET SPECIAL PNTR FLAG\r
26411         013205' 621240  004000          TLZ ARG,PNTF            ;CLEAR POINTER FLAG\r
26412         013206' 254000  013155'         JRST UPDAT3             ;SAVE THE POINTER AND EXIT\r
26413 \r
26414 \r
26415 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 176\r
26416 MACRO   10      24-APR-78 02:11         CONSTANTS\r
26417 \r
26418                                         SUBTTL  CONSTANTS\r
26419 \r
26420 \r
26421 \r
26422 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 177\r
26423 MACRO   10      24-APR-78 02:11         PHASED CODE\r
26424 \r
26425                                         SUBTTL PHASED CODE\r
26426                                       SUBTTL PHASED CODE\r
26427         013207'                 LSTFIL: BLOCK 1\r
26428         013210' 400000  000000          SIXBIT /@/      ;SYMBOL TO STOP PRINTING\r
26429         013211'                 TAG:    BLOCK   1\r
26430         013212' 001300  400000          SIXBIT  / + @/\r
26431         013213'                 TABI:\r
26432         013213' 000221  104422          BYTE    (7) 0, 11, 11, 11, 11\r
26433         013214'                 SEQNO:  BLOCK   1\r
26434         013215' 201004  020100          ASCIZ   /       /\r
26435         013216' 201000  000000\r
26436         013217' 000000  000014  BININI: EXP     B\r
26437         013220'                 BINDEV: BLOCK   1\r
26438         013221' 013325' 000000          XWD     BINBUF,0\r
26439         013222' 000000  000001  LSTINI: EXP     AL\r
26440         013223'                 LSTDEV: BLOCK   1\r
26441         013224' 013322' 000000          XWD     LSTBUF,0\r
26442                                 IFN CCLSW,<\r
26443         013225' 000000  000016  NUNINI: EXP     DMP\r
26444         013226'                 NUNDEV: BLOCK   1\r
26445         013227' 000000  000000          XWD     0,0\r
26446         013230' 000000  000001  RPGINI: EXP     AL\r
26447         013231'                 RPGDEV: BLOCK 1\r
26448         013232' 000000  014106'         XWD 0,CTLBLK\r
26449                                 >\r
26450         013233' 000000  000000  INDEVI: EXP     A\r
26451         013234'                 INDEV:  BLOCK   1\r
26452         013235' 000000  013330'         XWD     0,IBUF\r
26453         013236' 202511  135232  DBUF:   ASCIZ   / TI:ME DY-MON-YR PAGE /\r
26454         013237' 425010  454532\r
26455         013240' 466371  626662\r
26456         013241' 511012  040616\r
26457         013242' 425000  000000\r
26458         013243' 046330  141644  VBUF:   ASCIZ   /       MACRO / ;MUST BE LAST LOCATIONS IN BLOCK\r
26459         013244' 475000  000000\r
26460         013245'                         BLOCK   3       ;ALLOW FOR LONG TITLE\r
26461 \r
26462 \r
26463 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 178\r
26464 MACRO   10      24-APR-78 02:11         STORAGE CELLS\r
26465 \r
26466                                 SUBTTL  STORAGE CELLS\r
26467 \r
26468         013250'                 PASS1I:\r
26469 \r
26470         013250'                 RP:     BLOCK   1\r
26471 \r
26472                                 IFE CCLSW,<CTIBUF:      BLOCK   3\r
26473                                 CTOBUF: BLOCK   3\r
26474                                 >\r
26475         013251'                 IFN CCLSW,<CTLBUF:      BLOCK   <CTLSIZ+5>/5\r
26476                                 >\r
26477         013322'                 LSTBUF: BLOCK   3\r
26478         013325'                 BINBUF: BLOCK   3\r
26479         013330'                 IBUF:   BLOCK   3\r
26480         013333'                 IFN CCLSW,<NUNDIR:>\r
26481         013333'                 LSTDIR: BLOCK   4\r
26482         013337'                 BINDIR: BLOCK   4\r
26483         013343'                 INDIR:  BLOCK   4\r
26484 \r
26485         013347'                 ACDELX:                         ;LEFT HALF\r
26486         013347'                 BLKTYP: BLOCK   1               ;RIGHT HALF\r
26487 \r
26488         013350'                 COUTX:  BLOCK   1\r
26489         013351'                 COUTY:  BLOCK   1\r
26490         013352'                 COUTP:  BLOCK   1\r
26491         013353'                 COUTRB: BLOCK   1\r
26492         013354'                 COUTDB: BLOCK   ^D18\r
26493 \r
26494         013376'                 ERRCNT: BLOCK   1\r
26495         013377'                 FREE:   BLOCK   1\r
26496                                 IFN RENTSW,<HIGH1:      BLOCK 1\r
26497                                 HISNSW: BLOCK   1\r
26498                                 SVTYP3: BLOCK   1\r
26499                                 HMIN:   BLOCK   1       ;START OF HIGH SEG. IN TWO SEG. PROG.>\r
26500         013400'                 IFBLK:  BLOCK   .IFBLK\r
26501         013424'                 IFBLKA: BLOCK   .IFBLK\r
26502         013450'                 LADR:   BLOCK   1\r
26503         013451'                 NCOLLS: BLOCK   1\r
26504         013452'                 LIMBO:  BLOCK   1\r
26505         013453'                 LBUFP:  BLOCK   1\r
26506         013454'                 LBUF:   BLOCK   <.CPL+5>/5\r
26507         013476'                         BLOCK 1\r
26508         013477'                 VARHD:  BLOCK   1\r
26509         013500'                 VARHDX: BLOCK   1\r
26510                                 IFN WFWSW,<LVARLC:      BLOCK 1>\r
26511 \r
26512         013501'                 LITAB:  BLOCK   1\r
26513         013502'                 LITABX: BLOCK   1\r
26514         013503'                         BLOCK   1\r
26515         013504'                 LITHD:  BLOCK   1\r
26516         013505'                 LITHDX: BLOCK   1\r
26517         013506'                 LITCNT: BLOCK   1\r
26518         013507'                 LITNUM: BLOCK   1\r
26519 \r
26520 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 178-1\r
26521 MACRO   10      24-APR-78 02:11         STORAGE CELLS\r
26522 \r
26523 \r
26524         013510'                 LOOKX:  BLOCK   1\r
26525         013511'                 NEXT:   BLOCK   1\r
26526         013512'                 OUTSW:  BLOCK   1\r
26527         013513'                 PDP:    BLOCK   1\r
26528         013514'                 RECCNT: BLOCK   1\r
26529         013515'                 SAVBLK: BLOCK   RC\r
26530         013526'                 SAVERC: BLOCK   1\r
26531         013527'                 SBUF:   BLOCK   .SBUF/5\r
26532         013547'                 SRCHX:  BLOCK   1\r
26533         013550'                 SUBTTX: BLOCK   1\r
26534         013551'                 SVSYM:  BLOCK   1\r
26535         013552'                 SYMBOL: BLOCK   1\r
26536         013553'                 SYMTOP: BLOCK   1\r
26537         013554'                 SYMCNT: BLOCK 1\r
26538 \r
26539         013555'                 STPX:   BLOCK   1\r
26540         013556'                 STPY:   BLOCK   1\r
26541         013557'                 STCODE: BLOCK   .STP\r
26542         013627'                 STOWRC: BLOCK   .STP\r
26543 \r
26544         013677'                 TABP:   BLOCK   1\r
26545         013700'                 TCNT:   BLOCK   1               ;COUNT OF CHARS. LEFT IN TBUF\r
26546         013701'                 TBUF:   BLOCK   .TBUF/5\r
26547         013721'                 DEVBUF: BLOCK   6               ;STORE NAME.EXT CREATION DATE AND TIME\r
26548         013727'                 TYPERR: BLOCK   1\r
26549         013730'                 IONSYM: BLOCK   1       ;-1 SUPRESS LISTING OF SYMBOLS\r
26550         013731'                 PRGPTR: BLOCK   1       ;POINTER TO CHAIN OF PRGEND BLOCKS\r
26551         013732'                 ENTERS: BLOCK   1       ;-1 WHEN ENTERS HAVE BEEN DONE\r
26552         013733'                 UNIVSN: BLOCK   1       ;-1 WHEN A UNIVERSAL SEEN\r
26553 \r
26554 \r
26555 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 179\r
26556 MACRO   10      24-APR-78 02:11         STORAGE CELLS\r
26557 \r
26558         013734'                 PASS2I:\r
26559 \r
26560         013734'                 ABSHI:  BLOCK 1\r
26561         013735'                 HIGH:   BLOCK   1\r
26562                                 IFN RENTSW,<HHIGH: BLOCK 1      ;SAVE BREAK OF HIGH SEG. IN TWO SEG PROG.>\r
26563         013736'                 ACDEVX: BLOCK   1\r
26564         013737'                 CPL:    BLOCK   1\r
26565         013740'                 CTLSAV: BLOCK   1\r
26566         013741'                 CTLS1:  BLOCK   1\r
26567         013742'                 EXTPNT: BLOCK   1\r
26568         013743'                 INTENT: BLOCK   1\r
26569         013744'                 INREP:  BLOCK 1\r
26570         013745'                 INDEF:  BLOCK 1\r
26571         013746'                 INTXT:  BLOCK 1\r
26572         013747'                 INCND:  BLOCK   1\r
26573         013750'                 CALNAM: BLOCK   1\r
26574         013751'                 CALPG:  BLOCK 1\r
26575         013752'                 CALSEQ: BLOCK 1\r
26576         013753'                 DEFPG:  BLOCK 1\r
26577         013754'                 DEFSEQ: BLOCK 1\r
26578         013755'                 LITPG:  BLOCK 1\r
26579         013756'                 LITSEQ: BLOCK 1\r
26580         013757'                 REPPG:  BLOCK 1\r
26581         013760'                 REPSEQ: BLOCK 1\r
26582         013761'                 TXTPG:  BLOCK 1\r
26583         013762'                 TXTSEQ: BLOCK 1\r
26584         013763'                 CNDPG:  BLOCK   1\r
26585         013764'                 CNDSEQ: BLOCK   1\r
26586         013765'                 IRPCNT: BLOCK   1\r
26587         013766'                 IRPARG: BLOCK   1\r
26588         013767'                 IRPARP: BLOCK   1\r
26589         013770'                 IRPCF:  BLOCK   1\r
26590         013771'                 IRPPOI: BLOCK   1\r
26591         013772'                 IRPSW:  BLOCK   1\r
26592                                 IFN WFWSW,<FIXLNK:      BLOCK 1>\r
26593         013773'                 LITLVL: BLOCK   1\r
26594         013774'                 LITLBL: BLOCK   1               ;NAME OF LABEL DEFINED INSIDE A LITERAL\r
26595 \r
26596         013775'                 ASGBLK: BLOCK   1\r
26597         013776'                 LOCBLK: BLOCK   1\r
26598 \r
26599         013777'                 LOCA:   BLOCK   1\r
26600         014000'                 LOCO:   BLOCK   1\r
26601         014001'                 RELLOC: BLOCK   1\r
26602         014002'                 ABSLOC: BLOCK   1\r
26603         014003'                 LPP:    BLOCK   1\r
26604         014004'                 MODA:   BLOCK   1\r
26605         014005'                 MODLOC: BLOCK   1\r
26606         014006'                 MODO:   BLOCK   1\r
26607         014007'                 IFN CCLSW,<OTBUF:       BLOCK 2>\r
26608         014011'                 OUTSQ:  BLOCK 2\r
26609         014013'                 PAGEN.: BLOCK   1\r
26610         014014'                 PPTEMP: BLOCK   1\r
26611 \r
26612 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 179-1\r
26613 MACRO   10      24-APR-78 02:11         STORAGE CELLS\r
26614 \r
26615         014015'                 PPTMP1: BLOCK   1\r
26616         014016'                 PPTMP2: BLOCK   1\r
26617 \r
26618         014017'                 REPCNT: BLOCK   1\r
26619         014020'                 REPEXP: BLOCK   1\r
26620         014021'                 REPPNT: BLOCK   1\r
26621         014022'                 RPOLVL: BLOCK   1\r
26622         014023'                 R1BCNT: BLOCK 1\r
26623         014024'                 R1BCHK: BLOCK 1\r
26624         014025'                 R1BBLK: BLOCK .R1B\r
26625         014047'                 R1BLOC: BLOCK 1\r
26626         014050'                 RIMLOC: BLOCK   1\r
26627         014051'                 TAGINC: BLOCK   1\r
26628         014052'                 VECREL: BLOCK   1\r
26629         014053'                 VECTOR: BLOCK   1\r
26630         014054'                 .TEMP:  BLOCK   1               ;TEMPORARY STORAGE\r
26631         014055'                 UNISCH: BLOCK   .UNIV           ;SEARCH TABLE FOR UNIVERSALS\r
26632         014067'                 SQFLG:  BLOCK 1\r
26633         014070'                 ARGF:   BLOCK   1\r
26634         014071'                 MACENL: BLOCK   1\r
26635         014072'                 MACLVL: BLOCK   1\r
26636         014073'                 MACPNT: BLOCK   1\r
26637         014074'                 WWRXX:  BLOCK   1\r
26638         014075'                 RCOUNT: BLOCK   1               ;COUNT OF WORDS STILL TO READ IN LEAF\r
26639         014076'                 WCOUNT: BLOCK   1               ;COUNT OF WORDS STILL FREE IN LEAF\r
26640         014077'                 PASS2Z:                         ;ONLY CLEAR TO HERE ON PRGEND\r
26641         014077'                 LSTSYM: BLOCK   1\r
26642         014100'                 PAGENO: BLOCK   1\r
26643         014101'                 SEQNO2: BLOCK 1\r
26644         014102'                 PASS2X:\r
26645 \r
26646 \r
26647 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 180\r
26648 MACRO   10      24-APR-78 02:11         MULTI-ASSEMBLY STORAGE CELLS\r
26649 \r
26650                                 SUBTTL  MULTI-ASSEMBLY STORAGE CELLS\r
26651 \r
26652         014102'                 LSTPGN: BLOCK 1\r
26653                                 IFN WFWSW,<ARAYP:       BLOCK 1>\r
26654         014103'                 HDAS:   BLOCK 1\r
26655         014104'                 IFN CCLSW,<EXTMP:       BLOCK 1 ;HOLDS EXT OF COMMAND FILE (RH)\r
26656         014105'                 SAVFF:  BLOCK   1\r
26657         014106'                 CTLBLK: BLOCK   3\r
26658         014111'                 CTIBUF: BLOCK   3\r
26659         014114'                 CTOBUF: BLOCK   3>\r
26660         014117'                 MACSIZ: BLOCK   1               ;INITIAL SIZE OF LOW SEG\r
26661         014120'                 UNISIZ: BLOCK   1               ;TOP OF BUFFERS AND STACKS\r
26662         014121'                 UNITOP: BLOCK   1               ;TOP OF UNIVERSAL SYMBOL TABLE\r
26663         014122'                 UNIVNO: BLOCK   1               ;NUMBER OF UNIVERSALS SEEN\r
26664         014123'                 UNITBL: BLOCK   .UNIV           ;TABLE OF UNIVERSAL NAMES\r
26665         014135'                 UNIPTR: BLOCK   .UNIV           ;TABLE OF SYMBOL POINTERS\r
26666         014147'                 UNISHX: BLOCK   .UNIV           ;TABLE OF SRCHX POINTERS\r
26667         014161'                         VAR                     ;CLEAR VARIABLES\r
26668 \r
26669         014161'                 JOBFFI: BLOCK   203*NUMBUF+1            ;INPUT BUFFER PLUS ONE\r
26670 \r
26671                         006564'         END     BEG\r
26672 \r
26673 NO ERRORS DETECTED\r
26674 \r
26675 PROGRAM BREAK IS 015533\r
26676 \r
26677 12K CORE USED\r
26678 \r
26679 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181\r
26680 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
26681 \r
26682 A               000000  SPD\r
26683 ABSHI           013734' \r
26684 ABSLOC          014002' \r
26685 AC0             000000  SPD\r
26686 AC1             000001  \r
26687 AC2             000002  \r
26688 ACDEL           000004  SPD\r
26689 ACDELX          013347' \r
26690 ACDEV           000001  SPD\r
26691 ACDEVX          013736' \r
26692 ACEXT           000003  SPD\r
26693 ACFILE          000002  SPD\r
26694 ACPNTR          000005  SPD\r
26695 ACPPN           000004  SPD\r
26696 ADDF            100000  SPD\r
26697 ADDUNV          005176' \r
26698 AL              000001  SPD\r
26699 ANGLB           000662' \r
26700 ANGLB1          000673' \r
26701 ANGLB2          000674' \r
26702 APRENB  047000  000016  \r
26703 ARG             000005  \r
26704 ARGF            014070' \r
26705 ARPGSW          100000  SPD\r
26706 ASC10           004607' \r
26707 ASC20           004625' \r
26708 ASC30           004631' \r
26709 ASC50           004642' \r
26710 ASC55           004641' \r
26711 ASC60           004644' \r
26712 ASCII0          004606' \r
26713 ASGBLK          013775' \r
26714 ASSEM1          000104' \r
26715 ASSEM2          000115' \r
26716 ASSEMB          000077' \r
26717 ASSIG1          004126' \r
26718 ASSIG2          004154' \r
26719 ASSIG3          004162' \r
26720 ASSIG5          004136' \r
26721 ASSIG6          004142' \r
26722 ASSIG7          004116' \r
26723 ASSIGN          004112' \r
26724 ATOM            000334' \r
26725 ATOM1           000336' \r
26726 B               000014  SPD\r
26727 BEG             006564' \r
26728 BIN             000001  SPD\r
26729 BINBUF          013325' \r
26730 BINDEV          013220' \r
26731 BINDIR          013337' \r
26732 BININI          013217' \r
26733 BINSE2          007061' \r
26734 BINSET          007022' \r
26735 \r
26736 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-1\r
26737 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
26738 \r
26739 BLKTYP          013347' \r
26740 BLOCK0          003415' \r
26741 BLOCK1          003422' \r
26742 BLOCK2          003424' \r
26743 BOUT            002517' \r
26744 BOUT20          002537' \r
26745 BOUT30          002553' \r
26746 BOUT3I          002574' \r
26747 BOUT40          002613' \r
26748 BOUT50          002640' \r
26749 BOUT60          002660' \r
26750 BOUT70          002647' \r
26751 BOUT80          002662' \r
26752 BYPAS1          004543' \r
26753 BYPAS2          004544' \r
26754 BYPASS          004543' \r
26755 BYTAB           010073' \r
26756 BYTE0           004722' \r
26757 BYTE1           004730' \r
26758 BYTE2           004737' \r
26759 BYTE3           004746' \r
26760 C               000007  \r
26761 CALLI0          012444' \r
26762 CALLM           005705' \r
26763 CALNAM          013750' \r
26764 CALNTH          000112  SPD\r
26765 CALPG           013751' \r
26766 CALSEQ          013752' \r
26767 CALTBL          012443' \r
26768 CC      742743  741000  \r
26769 CCLSW           000001  SPD\r
26770 CELL            000363' \r
26771 CELL1           000370' \r
26772 CELLSF          000362' \r
26773 CHAR            000002  SPD\r
26774 CHARAC          001415' \r
26775 CHARAX          001443' \r
26776 CHARL           001445' \r
26777 CHARL1          001453' \r
26778 CLSC3           012674' \r
26779 CLSCR1          012707' \r
26780 CLSCR2          012676' \r
26781 CLSCRF          012674' \r
26782 CNDPG           013763' \r
26783 CNDSEQ          013764' \r
26784 COMSW           014054' \r
26785 CONBIT          020000  SPD\r
26786 CORE    047000  000011  \r
26787 COUT            002724' \r
26788 COUTD           002731' \r
26789 COUTD2          002736' \r
26790 COUTDB          013354' \r
26791 COUTI           002743' \r
26792 \r
26793 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-2\r
26794 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
26795 \r
26796 COUTP           013352' \r
26797 COUTRB          013353' \r
26798 COUTX           013350' \r
26799 COUTY           013351' \r
26800 CPEEK           005565' \r
26801 CPEEK1          005574' \r
26802 CPL             013737' \r
26803 CPOPJ           003447' \r
26804 CPOPJ1          003446' \r
26805 CR              000015  SPD\r
26806 CREF            012621' \r
26807 CREF2           012651' \r
26808 CREF3           012641' \r
26809 CREFSW          002000  SPD\r
26810 CRFHD1          012672' \r
26811 CRFHDR          012664' \r
26812 CRLF            010247' \r
26813 CRPGSW          001000  SPD\r
26814 CS              000010  \r
26815 CSTAT           001456' \r
26816 CTIBUF          014111' \r
26817 CTL             000000  SPD\r
26818 CTL2            000004  SPD\r
26819 CTLBLK          014106' \r
26820 CTLBUF          013251' \r
26821 CTLS1           013741' \r
26822 CTLSAV          013740' \r
26823 CTLSET          006661' \r
26824 CTLSIZ          000310  SPD\r
26825 CTOBUF          014114' \r
26826 CV              000000  SPD\r
26827 DATE    047000  000014  \r
26828 DATOUT          010724' \r
26829 DBUF            013236' \r
26830 DCFSW           000040  SPD\r
26831 DDTOUT  047000  000003  \r
26832 DECERR          006560' \r
26833 DEF02           005420' \r
26834 DEF10           005435' \r
26835 DEF12           005445' \r
26836 DEF20           005450' \r
26837 DEF24           005463' \r
26838 DEF25           005513' \r
26839 DEF26           005504' \r
26840 DEF30           005522' \r
26841 DEF31           005523' \r
26842 DEF32           005524' \r
26843 DEF33           005527' \r
26844 DEF35           005557' \r
26845 DEF36           005551' \r
26846 DEF40           005602' \r
26847 DEF42           005604' \r
26848 DEF44           005623' \r
26849 \r
26850 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-3\r
26851 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
26852 \r
26853 DEF46           005625' \r
26854 DEF48           005642' \r
26855 DEF50           005645' \r
26856 DEF51           005652' \r
26857 DEF70           005656' \r
26858 DEF80           005663' \r
26859 DEF81           005670' \r
26860 DEFCRS          000040  SPD\r
26861 DEFIN0          005405' \r
26862 DEFPG           013753' \r
26863 DEFSEQ          013754' \r
26864 DELETE          000066' \r
26865 DEPHA0          004104' \r
26866 DEVBUF          013721' \r
26867 DEVCHR  047000  000004  \r
26868 DEVICE          007551' \r
26869 DEVNAM          007556' \r
26870 DIRBIT          000004  SPD\r
26871 DISBIT          002000  SPD\r
26872 DMP             000016  SPD\r
26873 DMPBIN          010413' \r
26874 DMPLST          010422' \r
26875 DNC             003051' \r
26876 DP1             010345' \r
26877 DSEND           006405' \r
26878 DSKBIT          200000  SPD\r
26879 DSTOW           002776' \r
26880 DTAB            010740' \r
26881 DTABIT          000100  SPD\r
26882 EINIT           010162' \r
26883 END0            003123' \r
26884 ENDP2           003216' \r
26885 ENDP2A          003262' \r
26886 ENDP2B          003307' \r
26887 ENDP2D          003270' \r
26888 ENDP2Q          003226' \r
26889 ENDP2W          003224' \r
26890 ENTERS          013732' \r
26891 ENTF            000200  SPD\r
26892 ENTRDN          007351' \r
26893 EOL             000033  SPD\r
26894 EOT             007460' \r
26895 EOUT            002130' \r
26896 EOUT1           002133' \r
26897 EOUT2           002141' \r
26898 EOUT3           002150' \r
26899 EOUT4           002160' \r
26900 ER              000014  SPD\r
26901 ERRA            040000  SPD\r
26902 ERRAX           003400' \r
26903 ERRBIT          740000  SPD\r
26904 ERRCB           010166' \r
26905 ERRCF           010171' \r
26906 \r
26907 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-4\r
26908 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
26909 \r
26910 ERRCL           010164' \r
26911 ERRCM           007603' \r
26912 ERRCNT          013376' \r
26913 ERRD            020000  SPD\r
26914 ERRE            000040  SPD\r
26915 ERRFIN          010176' \r
26916 ERRL            010000  SPD\r
26917 ERRLST          010430' \r
26918 ERRM            000020  SPD\r
26919 ERRMS1          010150' \r
26920 ERRMS2          010153' \r
26921 ERRMS3          010156' \r
26922 ERRN            000400  SPD\r
26923 ERRNE           010115' \r
26924 ERRNE0          010116' \r
26925 ERRNE1          010126' \r
26926 ERRNE2          010140' \r
26927 ERRNE3          010145' \r
26928 ERRO            000200  SPD\r
26929 ERRORS          777760  SPD\r
26930 ERRP            000100  SPD\r
26931 ERRQ            200000  SPD\r
26932 ERRQSW          000010  SPD\r
26933 ERRR            004000  SPD\r
26934 ERRTYP          010173' \r
26935 ERRU            002000  SPD\r
26936 ERRV            001000  SPD\r
26937 ERRX            100000  SPD\r
26938 EVADR           004474' \r
26939 EVAL10          004034' \r
26940 EVALC3          001073' \r
26941 EVALCM          001066' \r
26942 EVALEX          001077' \r
26943 EVALHA          001065' \r
26944 EVALXQ          004046' \r
26945 EVATOM          001102' \r
26946 EVERRU          001157' \r
26947 EVERRZ          001156' \r
26948 EVGETD          001177' \r
26949 EVMAC           001116' \r
26950 EVNUM           001204' \r
26951 EVOP            001131' \r
26952 EVOPD           001141' \r
26953 EVOPS           001135' \r
26954 EVOPX           001154' \r
26955 EVPUSH          001214' \r
26956 EVTSTR          001173' \r
26957 EVTSTS          001161' \r
26958 EVXCT           001221' \r
26959 EVXCT1          001236' \r
26960 EXIT    047000  000012  \r
26961 EXPRES          004556' \r
26962 EXTER0          004004' \r
26963 \r
26964 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-5\r
26965 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
26966 \r
26967 EXTER1          004006' \r
26968 EXTER2          004015' \r
26969 EXTER3          004032' \r
26970 EXTER4          004030' \r
26971 EXTF            001000  SPD\r
26972 EXTMP           014104' \r
26973 EXTPNT          013742' \r
26974 FF              000014  SPD\r
26975 FINDEV          007412' \r
26976 FINEXT          007376' \r
26977 FINIS           007225' \r
26978 FLDSW           400000  SPD\r
26979 FR              000015  \r
26980 FREE            013377' \r
26981 FSNSW           100000  SPD\r
26982 FTDISK          000001  SPD\r
26983 GCHAR           006451' \r
26984 GCHARQ          006450' \r
26985 GETCHR          001363' \r
26986 GETCS           001404' \r
26987 GETCS1          001406' \r
26988 GETCS2          001403' \r
26989 GETDE1          000443' \r
26990 GETDE2          000453' \r
26991 GETDE3          000445' \r
26992 GETDEL          000442' \r
26993 GETDS           006345' \r
26994 GETDS1          006377' \r
26995 GETE            006600' \r
26996 GETED           006604' \r
26997 GETIOC          007511' \r
26998 GETIT           005163' \r
26999 GETSE0          007167' \r
27000 GETSE1          007172' \r
27001 GETSE2          007205' \r
27002 GETSET          007142' \r
27003 GETSY1          001055' \r
27004 GETSY2          001056' \r
27005 GETSY3          001057' \r
27006 GETSYM          001043' \r
27007 GETTOP          003533' \r
27008 GETU            006612' \r
27009 GETV            006620' \r
27010 GOSET           006742' \r
27011 GOSET1          006750' \r
27012 GOSET2          006772' \r
27013 GOTEND          007447' \r
27014 GTSTOW          003015' \r
27015 HDAS            014103' \r
27016 HIGH            013735' \r
27017 HIGHQ           004235' \r
27018 \r
27019 \r
27020 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-6\r
27021 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27022 \r
27023 HIGHQ1          004235' \r
27024 HISEG0          003447' \r
27025 HLPMES          007652' \r
27026 HOUT            002712' \r
27027 HT              000011  SPD\r
27028 IB              000013  SPD\r
27029 IBUF            013330' \r
27030 IF              003601' \r
27031 IFB0            003632' \r
27032 IFB1            003633' \r
27033 IFB2            003653' \r
27034 IFB3            003652' \r
27035 IFBLK           013400' \r
27036 IFBLKA          013424' \r
27037 IFCL            003717' \r
27038 IFCLR           003736' \r
27039 IFCLR1          003745' \r
27040 IFDEF0          003667' \r
27041 IFEX1           003615' \r
27042 IFEX2           003753' \r
27043 IFEXIT          003614' \r
27044 IFIDN0          003677' \r
27045 IFPASS          003627' \r
27046 IFPOP           003607' \r
27047 IFSET           003610' \r
27048 IFXCT           003611' \r
27049 IIISW           000000  SPD\r
27050 INCND           013747' \r
27051 INDEF           013745' \r
27052 INDEV           013234' \r
27053 INDEVI          013233' \r
27054 INDIR           013343' \r
27055 INDSW           020000  SPD\r
27056 INHERE          000017' \r
27057 INREP           013744' \r
27058 INSERQ          013034' \r
27059 INSERT          013036' \r
27060 INSERZ          013035' \r
27061 INSET           007242' \r
27062 INSET1          007262' \r
27063 INSET2          007277' \r
27064 INSET3          007300' \r
27065 INSET4          007312' \r
27066 INSETI          007425' \r
27067 INSRT1          013044' \r
27068 INSRT2          013047' \r
27069 INSRT3          013055' \r
27070 INSRT4          013074' \r
27071 INSRT5          013104' \r
27072 INSRT6          013100' \r
27073 INTENT          013743' \r
27074 INTER0          003766' \r
27075 INTER1          003767' \r
27076 \r
27077 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-7\r
27078 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27079 \r
27080 INTER3          003777' \r
27081 INTF            000400  SPD\r
27082 INTXT           013746' \r
27083 INZ             003356' \r
27084 IO              000014  \r
27085 IOBKTL          040000  SPD\r
27086 IOCREF          000400  SPD\r
27087 IODERR          200000  SPD\r
27088 IODTER          100000  SPD\r
27089 IOENDL          000200  SPD\r
27090 IOIMPM          400000  SPD\r
27091 IOIOPF          000020  SPD\r
27092 IOMAC           010000  SPD\r
27093 IOMSTR          200000  SPD\r
27094 IONCRF          002000  SPD\r
27095 IONSYM          013730' \r
27096 IOP             004443' \r
27097 IOPAGE          000100  SPD\r
27098 IOPALL          004000  SPD\r
27099 IOPROG          040000  SPD\r
27100 IORPTC          000004  SPD\r
27101 IORSET          003411' \r
27102 IOSALL          000001  SPD\r
27103 IOSCR           000001  SPD\r
27104 IOSET           003404' \r
27105 IOTLSN          000002  SPD\r
27106 IOWD0           004710' \r
27107 IRP0            006173' \r
27108 IRP10           006175' \r
27109 IRP20           006235' \r
27110 IRPARG          013766' \r
27111 IRPARP          013767' \r
27112 IRPCF           013770' \r
27113 IRPCNT          013765' \r
27114 IRPEND          006325' \r
27115 IRPPOI          013771' \r
27116 IRPPOP          006331' \r
27117 IRPSE1          006270' \r
27118 IRPSE2          006277' \r
27119 IRPSE3          006307' \r
27120 IRPSE4          006312' \r
27121 IRPSET          006254' \r
27122 IRPSW           013772' \r
27123 JOB41           000057' EXT\r
27124 JOBAPR          007143' EXT\r
27125 JOBDDT          000000  EXT\r
27126 JOBERR          010206' EXT\r
27127 JOBFF           007302' EXT\r
27128 JOBFFI          014161' \r
27129 JOBREL          010304' EXT\r
27130 JOBS41          000122  INT\r
27131 JOBSA           007013' EXT\r
27132 JOBSYM          000000  EXT\r
27133 \r
27134 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-8\r
27135 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27136 \r
27137 JOBVER          000137  SPD\r
27138 JUMP1   321640  000000  \r
27139 JUMP2   325640  000000  \r
27140 JUMPAD  321600  000000  \r
27141 JUMPCM  321400  000000  \r
27142 JUMPNC  325400  000000  \r
27143 JUMPOC  325600  000000  \r
27144 LABEL           000253' \r
27145 LABEL0          000266' \r
27146 LABEL1          000301' \r
27147 LABEL2          000310' \r
27148 LABEL3          000313' \r
27149 LABEL4          000317' \r
27150 LABEL5          000321' \r
27151 LABEL6          000305' \r
27152 LABEL7          000323' \r
27153 LADR            013450' \r
27154 LBUF            013454' \r
27155 LBUFP           013453' \r
27156 LELF            000002  SPD\r
27157 LENGTH          000004  \r
27158 LETTE1          000410' \r
27159 LETTE2          000414' \r
27160 LETTE3          000416' \r
27161 LETTE4          000435' \r
27162 LETTER          000407' \r
27163 LF              000012  SPD\r
27164 LIMBO           013452' \r
27165 LIT0            003454' \r
27166 LIT1            003456' \r
27167 LIT20           003466' \r
27168 LIT20A          003476' \r
27169 LIT21           003477' \r
27170 LIT22           003511' \r
27171 LIT24           003522' \r
27172 LITAB           013501' \r
27173 LITABX          013502' \r
27174 LITCNT          013506' \r
27175 LITF            200000  SPD\r
27176 LITHD           013504' \r
27177 LITHDX          013505' \r
27178 LITI            003526' \r
27179 LITLBL          013774' \r
27180 LITLVL          013773' \r
27181 LITNUM          013507' \r
27182 LITPG           013755' \r
27183 LITSEQ          013756' \r
27184 LLUKP1          002326' \r
27185 LLUKP2          002312' \r
27186 LLUKP3          002335' \r
27187 LLUKP4          002346' \r
27188 LLUKP5          002370' \r
27189 LLUKP6          002343' \r
27190 \r
27191 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-9\r
27192 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27193 \r
27194 LLUKP7          002334' \r
27195 LLUKUP          002306' \r
27196 LNSSW           000000  SPD\r
27197 LOADSW          000020  SPD\r
27198 LOC0            004203' \r
27199 LOC01           004214' \r
27200 LOC10           004222' \r
27201 LOCA            013777' \r
27202 LOCBLK          013776' \r
27203 LOCO            014000' \r
27204 LOOKL           003114' \r
27205 LOOKUP          003111' \r
27206 LOOKX           013510' \r
27207 LOUT1           002205' \r
27208 LOUT10          002230' \r
27209 LOUT11          002271' \r
27210 LOUT15          002241' \r
27211 LOUT30          002272' \r
27212 LOUT60          002277' \r
27213 LOUT64          002303' \r
27214 LPP             014003' \r
27215 LPTBIT          040000  SPD\r
27216 LPTSW           000002  SPD\r
27217 LPTWID          000170  SPD\r
27218 LST             000003  SPD\r
27219 LSTBUF          013322' \r
27220 LSTDEV          013223' \r
27221 LSTDIR          013333' \r
27222 LSTFIL          013207' \r
27223 LSTINI          013222' \r
27224 LSTPGN          014102' \r
27225 LSTSE1          007070' \r
27226 LSTSE2          007102' \r
27227 LSTSE3          007136' \r
27228 LSTSE4          007340' \r
27229 LSTSE5          007342' \r
27230 LSTSET          007067' \r
27231 LSTSYM          014077' \r
27232 M               006632' \r
27233 MAC10           005735' \r
27234 MAC14           005750' \r
27235 MAC14A          005757' \r
27236 MAC15           005766' \r
27237 MAC16           005767' \r
27238 MAC20           005776' \r
27239 MAC21           006000' \r
27240 MAC21A          006002' \r
27241 MAC21B          006023' \r
27242 MAC21C          006022' \r
27243 MAC21D          006011' \r
27244 MAC21E          006020' \r
27245 MAC22           006032' \r
27246 MAC23           006045' \r
27247 \r
27248 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-10\r
27249 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27250 \r
27251 MAC24           006057' \r
27252 MAC25           006060' \r
27253 MAC26           006036' \r
27254 MAC27           006043' \r
27255 MAC30           006073' \r
27256 MAC31           006074' \r
27257 MAC40           006103' \r
27258 MAC41           006114' \r
27259 MAC42           006122' \r
27260 MAC44           006123' \r
27261 MACEN0          006134' \r
27262 MACEN1          006151' \r
27263 MACEN2          006152' \r
27264 MACEN3          006167' \r
27265 MACEND          006135' \r
27266 MACENL          014071' \r
27267 MACF            020000  SPD\r
27268 MACLVL          014072' \r
27269 MACPNT          014073' \r
27270 MACSIZ          014117' \r
27271 MDFF            000020  SPD\r
27272 MFLSW           000010  SPD\r
27273 MODA            014004' \r
27274 MODLOC          014005' \r
27275 MODO            014006' \r
27276 MP              000016  \r
27277 MREAD           006474' \r
27278 MREADC          006527' \r
27279 MREADI          006513' \r
27280 MREADS          006516' \r
27281 MRP             000013  \r
27282 MSRCH           012573' \r
27283 MSRCH2          012602' \r
27284 MSTIME  047000  000023  \r
27285 MTABIT          000020  SPD\r
27286 MTAPSW          000004  SPD\r
27287 MWLFLG          200000  SPD\r
27288 MWP             000012  \r
27289 N1              000767  \r
27290 N2              000011  \r
27291 NAME            007554' \r
27292 NAME1           007477' \r
27293 NAME2           007500' \r
27294 NAME3           007506' \r
27295 NCOLLS          013451' \r
27296 NCOLS           000001  SPD\r
27297 NEGCAL          000001  SPD\r
27298 NEGSW           000200  SPD\r
27299 NEXT            013511' \r
27300 NOERW           003254' \r
27301 NOOUTF          100000  SPD\r
27302 NOUT            002665' \r
27303 NOUT1           002670' \r
27304 \r
27305 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-11\r
27306 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27307 \r
27308 NOUT2           002710' \r
27309 NOUT3           002704' \r
27310 NUM             000714' \r
27311 NUM1            000717' \r
27312 NUM10           000727' \r
27313 NUM30           000741' \r
27314 NUM31           000742' \r
27315 NUM32           000745' \r
27316 NUM40           000750' \r
27317 NUM50           000774' \r
27318 NUM52           001002' \r
27319 NUM60           001013' \r
27320 NUM62           001020' \r
27321 NUMBUF          000002  SPD\r
27322 NUMDF           000713' \r
27323 NUMDN           001035' \r
27324 NUMER1          000440' \r
27325 NUMER2          000441' \r
27326 NUMSW           020000  SPD\r
27327 NUMUP           001027' \r
27328 NUNAC           000054' \r
27329 NUNAOS          000006  \r
27330 NUNBLT          000004  \r
27331 NUNCOM          000000' \r
27332 NUNDEV          013226' \r
27333 NUNDIR          013333' \r
27334 NUNERM          000006' \r
27335 NUNERR          000004' \r
27336 NUNGO2          000002' \r
27337 NUNGO3          000011' \r
27338 NUNGO4          000000  \r
27339 NUNINI          013225' \r
27340 NUNLAC          000012  \r
27341 NUNPNT          000010  \r
27342 NUNSET          000017' \r
27343 NUNTOP          000011  \r
27344 OCT0            004557' \r
27345 OCT1            004561' \r
27346 OFFML           004244' \r
27347 OFFORM          003447' \r
27348 OFFSYM          004246' \r
27349 ONC             003033' \r
27350 ONC1            003035' \r
27351 ONC2            003047' \r
27352 ONERW           003251' \r
27353 ONERW1          003252' \r
27354 ONFORM          003447' \r
27355 ONML            004243' \r
27356 OP              004445' \r
27357 OP1A            004464' \r
27358 OP1B            004454' \r
27359 OP1COD          012003' \r
27360 OP1END          012002' \r
27361 \r
27362 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-12\r
27363 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27364 \r
27365 OP1TAB          012306' \r
27366 OP1TOP          011012' \r
27367 OP2             004465' \r
27368 OP2A            004533' \r
27369 OP2A1           004546' \r
27370 OP2A2           004554' \r
27371 OP2TAB          012352' \r
27372 OP3             004466' \r
27373 OPD             004441' \r
27374 OPD1            004437' \r
27375 OPDEF0          004053' \r
27376 OPDF            010000  SPD\r
27377 OPHSH           000000  SPD\r
27378 OPT1A           010757' \r
27379 OPT1B           010764' \r
27380 OPT1D           010771' \r
27381 OPT1F           010777' \r
27382 OPT1G           011002' \r
27383 OPTSCH          010754' \r
27384 OPTTAB          011007' \r
27385 OTBUF           014007' \r
27386 OTOD            010716' \r
27387 OUTAB2          010570' \r
27388 OUTAS0          003060' \r
27389 OUTASC          003061' \r
27390 OUTBIN          010404' \r
27391 OUTC            010663' \r
27392 OUTCR           010600' \r
27393 OUTFF           010703' \r
27394 OUTFF1          010674' \r
27395 OUTFF2          010704' \r
27396 OUTIM           001746' \r
27397 OUTIM1          001745' \r
27398 OUTIM2          001761' \r
27399 OUTIML          002020' \r
27400 OUTL            010607' \r
27401 OUTL01          001574' \r
27402 OUTL02          001576' \r
27403 OUTL03          001575' \r
27404 OUTL1           010650' \r
27405 OUTL20          001606' \r
27406 OUTL22          001630' \r
27407 OUTL23          001634' \r
27408 OUTL24          001637' \r
27409 OUTL25          001645' \r
27410 OUTL26          001651' \r
27411 OUTL27          001655' \r
27412 OUTL30          001674' \r
27413 OUTL32          001704' \r
27414 OUTLE2          001736' \r
27415 OUTLE4          001742' \r
27416 OUTLE8          001732' \r
27417 OUTLER          001721' \r
27418 \r
27419 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-13\r
27420 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27421 \r
27422 OUTLI           001774' \r
27423 OUTLI1          002002' \r
27424 OUTLI2          002003' \r
27425 OUTLI3          002001' \r
27426 OUTLIN          001556' \r
27427 OUTLST          010667' \r
27428 OUTML1          002045' \r
27429 OUTPL           001657' \r
27430 OUTSET          003103' \r
27431 OUTSIX          003065' \r
27432 OUTSQ           014011' \r
27433 OUTSTR  051140  000000  \r
27434 OUTSW           013512' \r
27435 OUTSY1          003075' \r
27436 OUTSYM          003074' \r
27437 OUTTAB          010571' \r
27438 P1              400000  SPD\r
27439 PAGE0           010673' \r
27440 PAGEN.          014013' \r
27441 PAGENO          014100' \r
27442 PASS1I          013250' \r
27443 PASS20          003155' \r
27444 PASS2I          013734' \r
27445 PASS2X          014102' \r
27446 PASS2Z          014077' \r
27447 PDP             013513' \r
27448 PDPERR          010321' \r
27449 PEEK            006531' \r
27450 PEEKM           006535' \r
27451 PERIOD          000700' \r
27452 PERNUM          000706' \r
27453 PHASE0          004106' \r
27454 PJOB    047000  000030  \r
27455 PN1             004335' \r
27456 PN2             004343' \r
27457 PNCHSW          001000  SPD\r
27458 PNTF            004000  SPD\r
27459 POINT0          004652' \r
27460 POINT2          004665' \r
27461 POPOUT          000455' \r
27462 PP              000017  \r
27463 PPN             014054' \r
27464 PPTEMP          014014' \r
27465 PPTMP1          014015' \r
27466 PPTMP2          014016' \r
27467 PR              000002  SPD\r
27468 PRGPTR          013731' \r
27469 PRINT           010572' \r
27470 PRMEND          012306' \r
27471 PRMTBL          012206' \r
27472 PRNAM           004326' \r
27473 \r
27474 \r
27475 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-14\r
27476 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27477 \r
27478 PRNTX0          003431' \r
27479 PRNTX2          003434' \r
27480 PRNTX4          003437' \r
27481 PRNUM           010323' \r
27482 PROGN1          007605' \r
27483 PROGN2          007606' \r
27484 PROGN3          007607' \r
27485 PROGNP          007605' \r
27486 PS              000003  SPD\r
27487 PSEND0          005003' \r
27488 PSEND1          005014' \r
27489 PSEND2          005023' \r
27490 PSEND3          005027' \r
27491 PSEND4          005033' \r
27492 PSEND5          005115' \r
27493 PSEND6          005107' \r
27494 PSENDX          005114' \r
27495 PSNDER          005165' \r
27496 PTPBIN          010405' \r
27497 PTR             000104  SPD\r
27498 PURGE0          004410' \r
27499 PURGE2          004421' \r
27500 PURGE3          004433' \r
27501 PURGE4          004434' \r
27502 PURGE5          004435' \r
27503 PV              000001  SPD\r
27504 QEXT            004041' \r
27505 QSRCH           012603' \r
27506 QUAL            000523' \r
27507 QUAL2           000540' \r
27508 QUAL2A          000544' \r
27509 QUAL8           000537' \r
27510 QUALL           000550' \r
27511 QUOTE           000465' \r
27512 QUOTE0          000461' \r
27513 QUOTE1          000502' \r
27514 QUOTE2          000501' \r
27515 QUOTES          000456' \r
27516 R1BBLK          014025' \r
27517 R1BCHK          014024' \r
27518 R1BCNT          014023' \r
27519 R1BDM1          010457' \r
27520 R1BDMP          010447' \r
27521 R1BI            010465' \r
27522 R1BLDR          003177' \r
27523 R1BLOC          014047' \r
27524 R1BSW           004000  SPD\r
27525 RADIX0          003375' \r
27526 RADX50          004760' \r
27527 RADXSW          040000  SPD\r
27528 RC              000011  SPD\r
27529 RCOUNT          014075' \r
27530 RCPNTR          003372' \r
27531 \r
27532 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-15\r
27533 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27534 \r
27535 READ            010503' \r
27536 READ0           010502' \r
27537 READ1           010505' \r
27538 READ1A          010525' \r
27539 READ2           010536' \r
27540 READ3           010545' \r
27541 REC2            007437' \r
27542 RECCNT          013514' \r
27543 REFDEC          006546' \r
27544 REFINC          006543' \r
27545 RELBL1          000657' \r
27546 RELBLE          000641' \r
27547 RELF            000001  SPD\r
27548 RELLOC          014001' \r
27549 RELOC0          004227' \r
27550 REMAR0          003450' \r
27551 REMOV1          013116' \r
27552 REMOVE          013115' \r
27553 RENTSW          000000  SPD\r
27554 REPCNT          014017' \r
27555 REPEA0          005264' \r
27556 REPEA1          005266' \r
27557 REPEA2          005270' \r
27558 REPEA4          005301' \r
27559 REPEA7          005326' \r
27560 REPEA8          005330' \r
27561 REPEND          005332' \r
27562 REPEXP          014020' \r
27563 REPO            005365' \r
27564 REPO1           005375' \r
27565 REPPG           013757' \r
27566 REPPNT          014021' \r
27567 REPSEQ          013760' \r
27568 REPZ            005346' \r
27569 REPZ1           005354' \r
27570 REPZ2           005362' \r
27571 RESET   047000  000000  \r
27572 RIM0            010354' \r
27573 RIM1SW          000100  SPD\r
27574 RIMFIN          003345' \r
27575 RIMLOC          014050' \r
27576 RIMSW           000400  SPD\r
27577 ROUT            010360' \r
27578 ROUT1           010375' \r
27579 ROUT6           010471' \r
27580 RP              013250' \r
27581 RPGDEV          013231' \r
27582 RPGINI          013230' \r
27583 RPGLOS          007017' \r
27584 RPGLUP          006712' \r
27585 RPGS1           007001' \r
27586 RPGS2           006725' \r
27587 RPGS2A          006726' \r
27588 \r
27589 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-16\r
27590 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27591 \r
27592 RPGSET          006703' \r
27593 RPOLVL          014022' \r
27594 RSTRXS          007467' \r
27595 RSW0            001417' \r
27596 RSW1            001421' \r
27597 RSW2            001423' \r
27598 RSW3            001432' \r
27599 RUN     047000  000035  \r
27600 RX              000015  SPD\r
27601 SAVBLK          013515' \r
27602 SAVERC          013526' \r
27603 SAVEXS          007473' \r
27604 SAVFF           014105' \r
27605 SBUF            013527' \r
27606 SCHERR          005260' \r
27607 SDEL            000003  \r
27608 SEARCH          012713' \r
27609 SEQNO           013214' \r
27610 SEQNO2          014101' \r
27611 SERCH0          005240' \r
27612 SETDDT  047000  000002  \r
27613 SIXB10          004566' \r
27614 SIXB20          004570' \r
27615 SKELI           006414' \r
27616 SKELI1          006413' \r
27617 SKELW           006425' \r
27618 SKELW1          006437' \r
27619 SKELWL          006427' \r
27620 SKPINC  051540  000000  \r
27621 SLASH           007510' \r
27622 SOUT            002165' \r
27623 SOUT1           002377' \r
27624 SOUT10          002421' \r
27625 SOUT15          002430' \r
27626 SOUT20          002503' \r
27627 SOUT50          002467' \r
27628 SOUT60          002502' \r
27629 SOUTC           002512' \r
27630 SPTR            000010  SPD\r
27631 SQB1            000627' \r
27632 SQB2            000630' \r
27633 SQB3            000571' \r
27634 SQB4            000603' \r
27635 SQB4A           000615' \r
27636 SQB5            000570' \r
27637 SQB6            000622' \r
27638 SQBRK           000557' \r
27639 SQFLG           014067' \r
27640 SQOZ1           004772' \r
27641 SQOZE           004770' \r
27642 SQUOT0          000503' \r
27643 \r
27644 \r
27645 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-17\r
27646 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27647 \r
27648 SQUOTE          000507' \r
27649 SRCH1           012715' \r
27650 SRCH2           012717' \r
27651 SRCH3           012725' \r
27652 SRCH4           012735' \r
27653 SRCH5           012736' \r
27654 SRCH6           012752' \r
27655 SRCH7           012740' \r
27656 SRCHI           013125' \r
27657 SRCHK2          013032' \r
27658 SRCHKO          013004' \r
27659 SRCHN1          012774' \r
27660 SRCHNO          012761' \r
27661 SRCHOK          013005' \r
27662 SRCHX           013547' \r
27663 SSRCH           012610' \r
27664 SSRCH1          012613' \r
27665 SSRCH2          012617' \r
27666 SSRCH3          012620' \r
27667 STCODE          013557' \r
27668 STMN2A          000146' \r
27669 STMN8A          000231' \r
27670 STMN8B          000217' \r
27671 STMN8C          000221' \r
27672 STMN8D          000216' \r
27673 STMNT           000125' \r
27674 STMNT1          000127' \r
27675 STMNT2          000130' \r
27676 STMNT3          000157' \r
27677 STMNT4          000161' \r
27678 STMNT5          000167' \r
27679 STMNT7          000200' \r
27680 STMNT8          000207' \r
27681 STMNT9          000201' \r
27682 STOL06          001303' \r
27683 STOL08          001310' \r
27684 STOL10          001311' \r
27685 STOL12          001323' \r
27686 STOL14          001335' \r
27687 STOL22          001342' \r
27688 STOL23          001343' \r
27689 STOL24          001344' \r
27690 STOL26          001355' \r
27691 STOLER          001270' \r
27692 STOLIT          001273' \r
27693 STOPI0          006321' \r
27694 STORIT          005160' \r
27695 STOUT           000237' \r
27696 STOUT1          000246' \r
27697 STOUTS          000236' \r
27698 STOW            002751' \r
27699 STOW10          002761' \r
27700 STOW20          002763' \r
27701 \r
27702 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-18\r
27703 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27704 \r
27705 STOWI           003003' \r
27706 STOWRC          013627' \r
27707 STOWT           003021' \r
27708 STOWT1          003026' \r
27709 STOWZ           002750' \r
27710 STOWZ1          002750' \r
27711 STPX            013555' \r
27712 STPY            013556' \r
27713 SUBTL           011645' \r
27714 SUBTT0          004311' \r
27715 SUBTT1          004315' \r
27716 SUBTT3          004317' \r
27717 SUBTTX          013550' \r
27718 SUPRBT          000004  SPD\r
27719 SUPRE0          004250' \r
27720 SUPRE1          004255' \r
27721 SUPRS1          004264' \r
27722 SUPRSA          004261' \r
27723 SVSTOW          003007' \r
27724 SVSYM           013551' \r
27725 SW0             007630' \r
27726 SW1             007631' \r
27727 SWITC0          007623' \r
27728 SWITCH          007624' \r
27729 SWTAB           010053' \r
27730 SWTABT          010056' \r
27731 SX              000004  \r
27732 SYMBCK          013007' \r
27733 SYMBLK          013400' \r
27734 SYMBOL          013552' \r
27735 SYMCNT          013554' \r
27736 SYMF            400000  SPD\r
27737 SYMNUM          012201' \r
27738 SYMTOP          013553' \r
27739 SYN0            004352' \r
27740 SYN1            004356' \r
27741 SYN2            004357' \r
27742 SYN3            004373' \r
27743 SYN4            004404' \r
27744 SYNF            040000  SPD\r
27745 TABI            013213' \r
27746 TABLE           010211' \r
27747 TABLND          010240' \r
27748 TABP            013677' \r
27749 TAG             013211' \r
27750 TAGF            200000  SPD\r
27751 TAGINC          014051' \r
27752 TAPE0           003373' \r
27753 TBUF            013701' \r
27754 TCNT            013700' \r
27755 TERM            007560' \r
27756 TERM1           007565' \r
27757 TIMOU1          010710' \r
27758 \r
27759 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-19\r
27760 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27761 \r
27762 TIMOUT          010707' \r
27763 TIO             000006  SPD\r
27764 TIOCLD          020000  SPD\r
27765 TIOLE           002000  SPD\r
27766 TIORW           001000  SPD\r
27767 TITLE0          004276' \r
27768 TMPCOR  047000  000044  \r
27769 TMPSW           010000  SPD\r
27770 TNODE           200000  SPD\r
27771 TSTBIN          010415' \r
27772 TSTLST          010424' \r
27773 TTCLTH          000016  SPD\r
27774 TTCTBL          012555' \r
27775 TTYBIT          000010  SPD\r
27776 TTYERR          010113' \r
27777 TTYIN           010076' \r
27778 TTYSW           000001  SPD\r
27779 TWSEG0          003447' \r
27780 TXTPG           013761' \r
27781 TXTSEQ          013762' \r
27782 TYO             010252' \r
27783 TYPERR          013727' \r
27784 TYPM2           010262' \r
27785 TYPM2A          010267' \r
27786 TYPM3           010270' \r
27787 TYPMS1          010242' \r
27788 TYPMSG          010241' \r
27789 UNDF            002000  SPD\r
27790 UNIERR          005262' \r
27791 UNIPTR          014135' \r
27792 UNISCH          014055' \r
27793 UNISHX          014147' \r
27794 UNISIZ          014120' \r
27795 UNISYM          005207' \r
27796 UNITBL          014123' \r
27797 UNITOP          014121' \r
27798 UNIV0           005167' \r
27799 UNIVNO          014122' \r
27800 UNIVSN          013733' \r
27801 UNVERR          005205' \r
27802 UOUT            002074' \r
27803 UOUT1           002104' \r
27804 UOUT10          002122' \r
27805 UOUT12          002112' \r
27806 UOUT13          002116' \r
27807 UOUT2           002111' \r
27808 UOUT30          002126' \r
27809 UPDAT1          013157' \r
27810 UPDAT2          013164' \r
27811 UPDAT3          013155' \r
27812 UPDAT4          013171' \r
27813 UPDAT5          013175' \r
27814 UPDATE          013137' \r
27815 \r
27816 \fMACRO V.46(52)         MACRO 10 05:51 24-APR-78 PAGE 181-20\r
27817 MACRO   10      24-APR-78 02:11         SYMBOL TABLE\r
27818 \r
27819 UTPCLR  047000  000013  \r
27820 V               000006  \r
27821 VAR0            003546' \r
27822 VARA            003551' \r
27823 VARB            003556' \r
27824 VARF            000100  SPD\r
27825 VARHD           013477' \r
27826 VARHDX          013500' \r
27827 VBUF            013243' \r
27828 VCUSTO          000000  SPD\r
27829 VECREL          014052' \r
27830 VECTOR          014053' \r
27831 VEDIT           000000  SPD\r
27832 VMACRO          000010  SPD\r
27833 VOUT            002717' \r
27834 VT              000013  SPD\r
27835 VUPDAT          000000  SPD\r
27836 WAIT    072000  000000  \r
27837 WCHAR           006456' \r
27838 WCHAR1          006456' \r
27839 WCHARQ          006456' \r
27840 WCOUNT          014076' \r
27841 WFWSW           000000  SPD\r
27842 WWORD           006462' \r
27843 WWRXE           006466' \r
27844 WWRXX           014074' \r
27845 XADD            001244' \r
27846 XALL0           003403' \r
27847 XCEED           010277' \r
27848 XCEED1          010305' \r
27849 XCEED2          010317' \r
27850 XCEEDS          010276' \r
27851 XDIV            001247' \r
27852 XDIV1           001251' \r
27853 XLRW            001264' \r
27854 XMUL            001253' \r
27855 XMUL1           001256' \r
27856 XPUNG0          004266' \r
27857 XSUB            001241' \r
27858 XTRA            000004  SPD\r
27859 XWD0            004672' \r
27860 XWD10           004704' \r
27861 XWD5            004676' \r
27862 ZA              100000  \r
27863 ZAL             300000  \r
27864 \fEEEEEEEEEEEEEEE      DDDDDDDDDDDD            IIIIIIIII         TTTTTTTTTTTTTTT         OOOOOOOOO         RRRRRRRRRRRR   \r
27865 EEEEEEEEEEEEEEE      DDDDDDDDDDDD            IIIIIIIII         TTTTTTTTTTTTTTT         OOOOOOOOO         RRRRRRRRRRRR   \r
27866 EEEEEEEEEEEEEEE      DDDDDDDDDDDD            IIIIIIIII         TTTTTTTTTTTTTTT         OOOOOOOOO         RRRRRRRRRRRR   \r
27867 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR         RRR\r
27868 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR         RRR\r
27869 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR         RRR\r
27870 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR         RRR\r
27871 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR         RRR\r
27872 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR         RRR\r
27873 EEEEEEEEEEEE         DDD         DDD            III                  TTT            OOO         OOO      RRRRRRRRRRRR   \r
27874 EEEEEEEEEEEE         DDD         DDD            III                  TTT            OOO         OOO      RRRRRRRRRRRR   \r
27875 EEEEEEEEEEEE         DDD         DDD            III                  TTT            OOO         OOO      RRRRRRRRRRRR   \r
27876 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR   RRR      \r
27877 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR   RRR      \r
27878 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR   RRR      \r
27879 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR      RRR   \r
27880 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR      RRR   \r
27881 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR      RRR   \r
27882 EEEEEEEEEEEEEEE      DDDDDDDDDDDD            IIIIIIIII               TTT               OOOOOOOOO         RRR         RRR\r
27883 EEEEEEEEEEEEEEE      DDDDDDDDDDDD            IIIIIIIII               TTT               OOOOOOOOO         RRR         RRR\r
27884 EEEEEEEEEEEEEEE      DDDDDDDDDDDD            IIIIIIIII               TTT               OOOOOOOOO         RRR         RRR\r
27885 \r
27886 \r
27887 \r
27888 \r
27889 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
27890 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
27891 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
27892 LLL                  SSS                        TTT                                                                     \r
27893 LLL                  SSS                        TTT                                                                     \r
27894 LLL                  SSS                        TTT                                                                     \r
27895 LLL                  SSS                        TTT                                                                     \r
27896 LLL                  SSS                        TTT                                                                     \r
27897 LLL                  SSS                        TTT                                                                     \r
27898 LLL                     SSSSSSSSS               TTT                                                                     \r
27899 LLL                     SSSSSSSSS               TTT                                                                     \r
27900 LLL                     SSSSSSSSS               TTT                                                                     \r
27901 LLL                              SSS            TTT                                                                     \r
27902 LLL                              SSS            TTT                                                                     \r
27903 LLL                              SSS            TTT                                                                     \r
27904 LLL                              SSS            TTT                                                                     \r
27905 LLL                              SSS            TTT                                                                     \r
27906 LLL                              SSS            TTT                                                                     \r
27907 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
27908 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
27909 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
27910 \r
27911 \r
27912 \r
27913 \r
27914 Request created: 24-April-1978  05:53:58\r
27915 File: DSKB0 :EDITOR.LST   [8,296] Created: 20-April-1967 05:52:00 Printed: 24-April-1978 05:53:40\r
27916 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1338 \r
27917 File will be deleted after printing\r
27918 \f\r
27919 EDITOR   V.003  1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 3\r
27920 EDITOR  MAC     24-APR-78 03:01         DECEDIT PARAMETERS\r
27921 \r
27922                                 TITLE EDITOR   V.003    1 APRIL 1968\r
27923                                 SUBTTL DECEDIT PARAMETERS\r
27924 \r
27925                                 DEFINE ERR (A) <        JSR A,ERRORX>\r
27926                                 DEFINE TSTRIN (A) <     EXP "A"+"A"+1>\r
27927 \r
27928                         000001  S0=1\r
27929                         000002  S1=2\r
27930                         000004  S2=4\r
27931                         000010  S3=10\r
27932                         000040  S4=40\r
27933                         000020  S5=20\r
27934                         000100  S6=100\r
27935                         000200  S7=200\r
27936                         000400  S8=400\r
27937                         000003  PDP=3\r
27938                         000004  FL=4\r
27939                         000011  INDEX=11\r
27940                         000012  WC=12\r
27941                         000013  C=13\r
27942                         000014  COTP=14\r
27943                         000005  IPT=5\r
27944                         000006  TPT=6\r
27945                         000010  P=10\r
27946                         000015  SINDEX=15\r
27947                         000016  CINDEX=16\r
27948                         000017  LAST=17\r
27949                         000002  TYP=2\r
27950                         000003  DT=3\r
27951                                 OPDEF EXIT [POPJ PDP,]\r
27952                                 OPDEF CAL [PUSHJ PDP,]\r
27953                                 OPDEF SAVE [PUSH PDP,]\r
27954                                 OPDEF UNSAVE [POP PDP,]\r
27955                                 EXTERNAL JOBFF\r
27956 \r
27957 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 4\r
27958 EDITOR  MAC     24-APR-78 03:01         DECTAPE IO - AUGUST 25, 1965\r
27959 \r
27960                                 SUBTTL DECTAPE IO - AUGUST 25, 1965\r
27961 \r
27962                         001000  FOPEN=1000\r
27963                         000001  AC1=1\r
27964                         000002  AC2=2\r
27965                         000005  AC3=5\r
27966                         000006  AC4=6\r
27967 \r
27968         000000' 607200  000001  FILLB:  TLNN FL,1;      IS BUFFER LOADED\r
27969         000001' 254000  000041'         JRST FILLB1;    NO, SO LOAD IT\r
27970         000002' 200540  001060'         MOVE C,WBC;     GET BUFFER COUNT\r
27971         000003' 307540  000177          CAIG C,177;     IS IT GETTIN FULL\r
27972         000004' 263140  000000  ATSALL: EXIT;   NO\r
27973         000005' 620200  000400          TRZ FL,S8;      SET FIRST BLOCK FLAG TO FALSE\r
27974         000006' 660200  000010          TRO FL,S3;      AND MODIFIED FLAG TO TRUE\r
27975         000007' 201100  001064'         MOVEI AC2,WB;   GET WORKING BUFFER ADDRESS\r
27976         000010' 201240  000001          MOVEI AC3,1;    SEQUENCE NUMBER TEST\r
27977         000011' 271100  000125          ADDI AC2,125;   DUMP ABOUT 2/3 OF BUFFER\r
27978         000012' 616242  000000          TDNN AC3,0(AC2);        BUT NOT A FRACTIONAL LINE\r
27979         000013' 364100  000012'         SOJA AC2,.-1;   HUNT FOR BEGIN OF LINE\r
27980         000014' 550400  000135'         HRRZ P,THSBLK;  UPDATE PREVIOUS BLOCK NUMBER\r
27981         000015' 073140  000136'         UGETF DT,IAMTEM;        NEXT FREE BLOCK\r
27982         000016' 075150  000000          USETO DT,0(P);  PREPARE TO DUMP THIS BLOCK\r
27983         000017' 200400  000136'         MOVE P,IAMTEM;  AND PREPARE NEXT BLOCK\r
27984         000020' 200240  001050'         MOVE AC3,DTOBUF;        SET UP BLT\r
27985         000021' 516405  000001          HRLZM P,1(AC3); LINK TO NEXT DECTAPE BLOCK\r
27986         000022' 505240  001064'         HRLI AC3,WB;    SOURCE\r
27987         000023' 271240  000002          ADDI AC3,2;     +2\r
27988         000024' 200040  000002          MOVE AC1,AC2;   LAST\r
27989         000025' 275040  001064'         SUBI AC1,WB;    AND MAKE A COUNT OF IT\r
27990         000026' 274540  000001          SUB C,AC1;      TOTAL REMAINING WORDS\r
27991         000027' 202540  001060'         MOVEM C,WBC;    SET NEW COUNT\r
27992         000030' 271045  777777          ADDI AC1,-1(AC3);       SETUP FOR BLT\r
27993         000031' 260140  000122'         CAL DUMX;       TRANSFER AND DUMP BLOCK\r
27994         000032' 201240  001064'         MOVEI AC3,WB;   GET DEST FOR MOVE UP\r
27995         000033' 504240  000002          HRL AC3,AC2;    AND SOURCE\r
27996         000034' 200040  000005          MOVE AC1,AC3;   GENERATE LAST ADDRESS\r
27997         000035' 271053  000000          ADDI AC1,(C);   FROM COUNT\r
27998         000036' 251241  000000          BLT AC3,(AC1);  ON TOAST\r
27999         000037' 250400  000135'         EXCH P,THSBLK;  SET NEW BLOCK\r
28000         000040' 254000  000000'         JRST FILLB;     GO AGAIN\r
28001 \r
28002         000041' 607200  001000  FILLB1: TLNN FL,FOPEN;  IS A FILE OPEN\r
28003                                         ERR 7;          NO, SO *NFO*\r
28004         000042' 264340  000162'         JSR 7,ERRORX\r
28005         000043' 661200  000001          TLO FL,1;       SET TO FILLED BUFFER\r
28006         000044' 254000  000075'         JRST GETF;      AND GET THE FIRST BLOCK\r
28007 \r
28008 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 5\r
28009 EDITOR  MAC     24-APR-78 03:01         DECTAPE IO - AUGUST 25, 1965\r
28010 \r
28011         000045' 602200  000001  GET:    TRNE FL,S0;     FORWARD OR REVERSE\r
28012         000046' 254000  000073'         JRST GETL;      REVERSE\r
28013 \r
28014         000047' 602200  000020  GETN:   TRNE FL,S5;     IS THERE ANY MORE\r
28015         000050' 263140  000000          EXIT;           NO\r
28016         000051' 554000  001063'         HLRZ WBF;       GET LINK\r
28017         000052' 260140  000106'         CAL DUMPB;      OUTPUT BLOCK\r
28018         000053' 200400  000135'         MOVE P,THSBLK;  SAVE PREVIOUS FLOCK NUMBER\r
28019         000054' 620200  000400          TRZ FL,S8;      SET FIRST BLOCK FLAG TO FALSE\r
28020         000055' 552000  000135' GET0:   HRRZM THSBLK;   SAVE CURRENT BLOCK NUMBER\r
28021         000056' 075160  000135'         USETO DT,@THSBLK;       SER OUTPUT FOR PRESENT BLOCK\r
28022 \r
28023         000057' 066140  000000  SLURP:  INPUT DT,0;     INPUT A NEW BLOCK\r
28024         000060' 554000  001063'         HLRZ WBF;       GET LINK\r
28025         000061' 336000  000000          SKIPN;          WE DONT LIKE ZERO LINKS\r
28026         000062' 660200  000020          TRO FL,S5;      SO WE SET A FLAG TO REMIND US\r
28027         000063' 550000  001063'         HRRZ WBF;       GET COUNT\r
28028         000064' 202000  001060'         MOVEM WBC;      AND SAVE IT\r
28029         000065' 606200  000020          TRNN FL,S5;     WAS IT END OF FILE\r
28030         000066' 332000  000000          SKIPE;          EMPTY BLOCK\r
28031         000067' 263140  000000          EXIT;           END OF FILE OR NON-EMPTY BLOCK\r
28032         000070' 554000  001063'         HLRZ WBF;       EMPTY BLOCK - GET LINK\r
28033         000071' 606200  000001          TRNN FL,S0;     DIRECTION CHECK\r
28034         000072' 254000  000055'         JRST GET0;      FORWARD\r
28035 \r
28036         000073' 260140  000106' GETL:   CAL DUMPB;      REVERSE - GET LAST BLOCK-SAVE THIS ONE\r
28037         000074' 326400  000100'         JUMPN P,GETL1;  IS LAST BLOCK AVAILABLE\r
28038         000075' 550400  001013' GETF:   HRRZ P,FBNUM;   NO, SO GET FIRST ONE\r
28039         000076' 620200  000021          TRZ FL,S0+S5;   SET FORWARD AND END\r
28040         000077' 664200  000400          TROA FL,S8;     SET FIRST BLOCK AND SKIP\r
28041         000100' 620200  000420  GETL1:  TRZ FL,S5+S8;   SET NON-END AND NON-FIRST\r
28042         000101' 074150  000000          USETI DT,(P);   ESTABLISH INPUT BLOCK NUMBER\r
28043         000102' 075150  000000          USETO DT,(P);   AND OUTPUT BLOCK NUMBER\r
28044         000103' 202400  000135'         MOVEM P,THSBLK; UPDATE CURRENT BLOCK NUMBER\r
28045         000104' 402000  000010          SETZM P;        AND ZERO PREVIOUS BLOCK NUMBER\r
28046         000105' 254000  000057'         JRST SLURP;     AND INPUT THE BLOCK\r
28047 \r
28048 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 6\r
28049 EDITOR  MAC     24-APR-78 03:01         DECTAPE IO - AUGUST 25, 1965\r
28050 \r
28051         000106' 260140  000000' DUMPB:  CAL FILLB;      SPLIT BLOCKS IF THE OVER-RUN\r
28052         000107' 626200  000010          TRZN FL,S3;     ANY MODS MADE\r
28053         000110' 263140  000000          EXIT;           NO\r
28054         000111' 200100  001050'         MOVE AC2,DTOBUF;        POINTER TO BUFFERS\r
28055         000112' 201242  000002          MOVEI AC3,2(AC2);       FIRST WORD ADDRESS\r
28056         000113' 505240  001064'         HRLI AC3,WB;    FIRST DATA WORD\r
28057         000114' 554040  001063'         HLRZ AC1,WBF;   BLOCK NUMBER\r
28058         000115' 336000  000001          SKIPN AC1;      LAST BLOCK\r
28059         000116' 370000  000001          SOS AC1;        YES, SO EXTEND\r
28060         000117' 506042  000001          HRLM AC1,1(AC2);        INTO LINK\r
28061         000120' 201042  000001          MOVEI AC1,1(AC2);       PREPARE BLT\r
28062         000121' 270040  001060'         ADD AC1,WBC;    SIZE OF BLT\r
28063         000122' 251241  000000  DUMX:   BLT AC3,(AC1);  BLOCK UP SUBROUTINE\r
28064         000123' 542040  001051'         HRRM AC1,DTOBF1;        LAST ADDRESS\r
28065         000124' 067140  000000          OUTPUT DT,0;    DUMP IT\r
28066         000125' 061140  740000          STATO DT,740000;        CHECK FOR DEVICE ERROR\r
28067         000126' 263140  000000          EXIT;           ALL IS GOOD\r
28068         000127' 476000  000004          SETOM FL     ; DDE ERROR\r
28069                                         ERR 12;         *DDE*\r
28070         000130' 264500  000162'         JSR 12,ERRORX\r
28071 \r
28072         000131' 603200  001000  FINISH: TLNE FL,FOPEN;  IF A FILE IS OPEN\r
28073         000132' 260140  000106'         CAL DUMPB;      DUMP IT\r
28074         000133' 071140  000000  FINIS2: RELEAS DT,0;    RELEASE THE TAPE\r
28075         000134' 254000  001030'         JRST INITIX;    AND GO BACK TO SETUP\r
28076 \r
28077         000135' 000000  000000  THSBLK: 0;              PRESENT BLOCK NUMBER\r
28078         000136' 000000  000000  IAMTEM: 0;              TEMPORARY\r
28079 \r
28080 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 9\r
28081 EDITOR  MAC     24-APR-78 03:01         CONTROL - AUGUST 25, 1965\r
28082 \r
28083                                 SUBTTL CONTROL - AUGUST 25, 1965\r
28084                                                         ;MAIN LISTEN AND DISPATCH FOR EDITOR CONTROL MODE\r
28085         000137' 260140  000612' OUTTER: CAL GETCHR;     GET ONE CHARACTER\r
28086         000140' 306540  000015          CAIN C,15;      INITIAL CARRIAGE RETURNS\r
28087         000141' 254000  000137'         JRST OUTTER;    ARE IGNORED\r
28088         000142' 306540  000111          CAIN C,"I"\r
28089         000143' 254000  000205'         JRST INSE\r
28090         000144' 306540  000104          CAIN C,"D"\r
28091         000145' 254000  000425'         JRST DELETE\r
28092         000146' 306540  000120          CAIN C,"P"\r
28093         000147' 254000  000471'         JRST PRINT\r
28094         000150' 306540  000105          CAIN C,"E"\r
28095         000151' 254000  000131'         JRST FINISH\r
28096         000152' 302540  000033          CAIE C,33;      ALTERNATE ALTMOD\r
28097         000153' 306540  000175          CAIN C,175;     THE REGULAR ALTMOD\r
28098         000154' 254000  000522'         JRST PNEXT\r
28099         000155' 306540  000123          CAIN C,"S"\r
28100         000156' 254000  000657'         JRST DECINI\r
28101                                         ERR 1;          ILLEGAL COMMAND\r
28102         000157' 264040  000162'         JSR 1,ERRORX\r
28103                                 ;OUTPUT A CARRIAGE RETURN\r
28104         000160' 201440  000171' CRT:    MOVEI INDEX,CRM;        PICK UP THE POINTER\r
28105         000161' 254000  000601'         JRST OTLINE;    OUTPUT CRT-LF-*\r
28106 \r
28107                                 ;ERROR PRINT\r
28108         000162' 000000  000000  ERRORX: 0;              CALLED BY JSR X,ERRORX\r
28109         000163' 550440  000162'         HRRZ INDEX,ERRORX;      WHERE X IS THE ERROR NUMBER\r
28110         000164' 135440  000204'         LDB INDEX,EPT;  EXTRACT THE X\r
28111         000165' 201451  000171'         MOVEI INDEX,ERT-1(INDEX)\r
28112         000166' 201140  001304' ERROX1: MOVEI PDP,PDSTAK;       INITIALIZE PUSHDOWN\r
28113         000167' 260140  000601' ERROX2: CAL OTLINE;     OUTPUT ERROR MESSAGE\r
28114 \r
28115 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 10\r
28116 EDITOR  MAC     24-APR-78 03:01         CONTROL - AUGUST 25, 1965\r
28117 \r
28118         000170' 254000  001035'         JRST COMLEV;    AND A CARRIAGE RETURN - EXIT\r
28119                                 ;ERROR MESSAGES ET.AL.  THESE MUST NOT BE MOVED ABOUT\r
28120                                 ;SINCE THE PRINT ROUTINE DEPENDS ON THE BIT 35 OF THE\r
28121                                 ;NEXT MESSAGE TO TERMINATE THE PRESENT ONE\r
28122 \r
28123         000171' 064245  200000  CRM:    OCT 64245200000;        THE CARRIAGE RETURN-LINE FEED-*\r
28124         000172'                 ERT:    TSTRIN <*ILC*>; ILLEGAL COMMAND\r
28125         000172' 252231  441525          EXP "*ILC*"+"*ILC*"+1\r
28126                                         TSTRIN <*NLN*>; NON-EXISTENT LINE\r
28127         000173' 252351  447125          EXP "*NLN*"+"*NLN*"+1\r
28128                                         TSTRIN <*ILS*>; ILLEGAL SEQUENCE\r
28129         000174' 252231  451525          EXP "*ILS*"+"*ILS*"+1\r
28130                                         TSTRIN <*ILR*>; ILLEGAL REFERENCE\r
28131         000175' 252231  451125          EXP "*ILR*"+"*ILR*"+1\r
28132                                         TSTRIN <*UNA*>; UNIT NOT AVAILABLE\r
28133         000176' 252531  640525          EXP "*UNA*"+"*UNA*"+1\r
28134                                         TSTRIN <*DCE*>; DIRECTORY CAPACITY EXCEEDED\r
28135         000177' 252110  342525          EXP "*DCE*"+"*DCE*"+1\r
28136                                         TSTRIN <*NFO*>; NO FILE OPEN\r
28137         000200' 252350  647525          EXP "*NFO*"+"*NFO*"+1\r
28138                                         TSTRIN <*FAU*>; FILE NAME ALREADY IN USE\r
28139         000201' 252150  152525          EXP "*FAU*"+"*FAU*"+1\r
28140                                         TSTRIN <*NCF*>; NOT A CURRENT FILE\r
28141         000202' 252350  343125          EXP "*NCF*"+"*NCF*"+1\r
28142                                         TSTRIN <*DDE*>; DEVICE DATA ERROR\r
28143         000203' 252110  442525          EXP "*DDE*"+"*DDE*"+1\r
28144         000204' 270411  777777  EPT:    POINT 4,-1(INDEX),12;   THE ERROR PRINT DEPENDS\r
28145                                                         ;ON THE 1 IN BIT 35 HERE\r
28146                                 ;COMMUNICATIONS\r
28147 \r
28148 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 12\r
28149 EDITOR  MAC     24-APR-78 03:01         EDITOR - AUGUST 25, 1965\r
28150 \r
28151                                 SUBTTL EDITOR - AUGUST 25, 1965\r
28152 \r
28153                                 ;INSERT LINE(S)\r
28154         000205' 260140  000616' INSE:   CAL GETSEQ;     GET THE SEQUENCE NUMBER AND STEP\r
28155         000206' 202000  000016          MOVEM CINDEX;   THIS INSTR SKIPED IF ONLY ONE ARG\r
28156         000207' 254000  000216'         JRST INSE3;     PROCESS IT\r
28157         000210' 260140  000333' INSE2:  CAL FIND;       TOP OF THE LOOP - SEARCH FOR THE LINE\r
28158         000211' 316651  000000          CAMN SINDEX,(INDEX);    EXACT MATCH?\r
28159                                         ERR 4;          YES, *ILR*\r
28160         000212' 264200  000162'         JSR 4,ERRORX\r
28161         000213' 260140  000252'         CAL BACK1;      BACKUP TO LAST LINE\r
28162         000214' 312000  000017          CAME LAST;      IS IT INDEED THE LAST ONE WE PUT IN\r
28163                                         ERR 3;          NO, *ILS*\r
28164         000215' 264140  000162'         JSR 3,ERRORX\r
28165         000216' 260140  000333' INSE3:  CAL FIND;       GET THE LINE\r
28166         000217' 260140  000541'         CAL OTSEQ;      OUTPUT THE SEQUENCE NUMBER\r
28167         000220' 260140  000547'         CAL GETLIN;     GET THE INPUT LINE\r
28168         000221' 254000  000137'         JRST OUTTER;    ALT MODE\r
28169         000222' 260140  000227'         CAL INSED;      INSERT AND DELETE\r
28170         000223' 202640  000017          MOVEM SINDEX,LAST;      SAVE AWAY THIS LINE NUMBER\r
28171         000224' 202640  001056'         MOVEM SINDEX,FIRST\r
28172         000225' 260140  000305'         CAL ASCIA;      STEP SEQUENCE\r
28173         000226' 254000  000210'         JRST INSE2;     LOOP BACK FOR NEXT LINE\r
28174 \r
28175         000227' 550000  000014  INSED:  HRRZ COTP;      GET THE SIZE OF THE LINE\r
28176         000230' 201040  000000          MOVEI 1,0;      SETUP DIRECTION FLAG\r
28177         000231' 311000  000012          CAML WC;        IF LINE SIZE IS GREATER-EQUAL THAN NEW\r
28178         000232' 201040  000001          MOVEI 1,1;      SET FLAG TO 1\r
28179         000233' 312000  000012          CAME WC;        IF OLD LINE IS NON-NULL\r
28180         000234' 254000  000264'         JRST INSEG;     DELETE IT\r
28181         000235' 322500  000245' INSE1:  JUMPE WC,INSE16;        NULL SIZE TO INPUT\r
28182         000236' 554440  000014          HLRZ INDEX,COTP;        GET LINE ADDRESS\r
28183         000237' 270440  000012          ADD INDEX,WC;   AND SIZE\r
28184         000240' 547000  000014          HLRS COTP;      AND COUNT\r
28185         000241' 505600  001313'         HRLI COTP,TTB;  SET SOURCE\r
28186         000242' 200040  000014          MOVE 1,COTP;    READY FOR BLT\r
28187         000243' 251611  777777          BLT COTP,-1(INDEX);     MOVE IN THE NEW LINE\r
28188         000244' 200600  000001          MOVE COTP,1;    RESTORE COTP\r
28189         000245' 660200  000110  INSE16: TRO FL,S3+S6;   SET MOD FLAGS - GENERAL EXIT\r
28190         000246' 201040  001064' CLEARE: MOVEI 1,WB;     CLEAR LAST BUFFER WORD\r
28191         000247' 270040  001060'         ADD 1,WBC;      END OF BUFFER\r
28192         000250' 402001  000000          SETZM (1);      SET TO ZERO\r
28193         000251' 263140  000000          EXIT;           GO AWAY\r
28194 \r
28195                                 ;BACK UP LINE POINTER\r
28196         000252' 302440  001064' BACK1:  CAIE INDEX,WB;  IS THIS THE FIRST LINE IN THE BUFFER\r
28197         000253' 254000  000262'         JRST BACK;      NO, SO NORMAL PROCESS\r
28198         000254' 660200  000001          TRO FL,S0;      WE MUST GET THE PREVIOUS BLOCK\r
28199         000255' 260140  000045'         CAL GET;        INPUT IT - THIS WILL ALWAYS WORK\r
28200         000256' 270440  001060'         ADD INDEX,WBC;  LAST LINE\r
28201         000257' 254000  000262'         JRST BACK;      NOW WE BACK IT UP\r
28202         000260' 200011  000000          MOVE (INDEX);   TOP OF LOOP - PICK UP DATA WORD\r
28203         000261' 606000  000001          TRNN 1;         BIT ONE MAKES IT A SEQUENCE N\r
28204 \r
28205 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 12-1\r
28206 EDITOR  MAC     24-APR-78 03:01         EDITOR - AUGUST 25, 1965\r
28207 \r
28208         000262' 364440  000260' BACK:   SOJA INDEX,.-2; COUNT IT BACK\r
28209         000263' 263140  000000          EXIT\r
28210 \r
28211 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 13\r
28212 EDITOR  MAC     24-APR-78 03:01         EDITOR - AUGUST 25, 1965\r
28213 \r
28214         000264' 260140  000414' INSEG:  CAL CSIZE;      COMPUTE SIZE OF XFER\r
28215         000265' 322000  000276'         JUMPE INSEX;    ZERO SIZE XFER\r
28216         000266' 326040  000272'         JUMPN 1,INSER;  FORWARD BLT\r
28217         000267' 507000  000000          HRLS 0;         REVERSE XFER\r
28218         000270' 270440  000000          ADD INDEX,0;    SET UP POINTER WORD\r
28219         000271' 553000  000000          HRRZS 0;        READY TO GO\r
28220         000272' 202440  000013  INSER:  MOVEM INDEX,C;  PROTECT XFER WORD\r
28221         000273' 251551  000000          BLT C,(INDEX);  XFER ONE WORD\r
28222         000274' 256001  000303'         XCT ITAB(1);    STEP UP OR DOWN\r
28223         000275' 365000  000272'         SOJGE INSER;    IF NOT DONE, LOOP BACK\r
28224         000276' 550000  000014  INSEX:  HRRZ COTP;      SETUP SIZE\r
28225         000277' 274000  000012          SUB WC;         OF NEW BLOCK\r
28226         000300' 250000  001060'         EXCH WBC;\r
28227         000301' 276000  001060'         SUBM WBC;       NOW NEW BLOCK SIZE IS IN WBC\r
28228         000302' 254000  000235'         JRST INSE1;     ALL DONE - GO BACK\r
28229 \r
28230         000303' 274440  000332' ITAB:   SUB INDEX,K5;   SHRINK\r
28231         000304' 270440  000332'         ADD INDEX,K5;   GROW\r
28232 \r
28233                                 ;THE ASCII ADDER\r
28234 \r
28235         000305' 261140  000016  ASCIA:  SAVE CINDEX;    PROTECT THE STEP\r
28236         000306' 200340  000015          MOVE 7,SINDEX\r
28237         000307' 404700  000327'         AND CINDEX,K2;  MASK OUT 60S\r
28238         000310' 242700  000001          LSH CINDEX,1;\r
28239         000311' 434640  000331'         IOR SINDEX,K4;\r
28240         000312' 270640  000326'         ADD SINDEX,K1;\r
28241         000313' 270700  000015          ADD CINDEX,SINDEX;      EXCESS 166 ADDITION\r
28242         000314' 404700  000330'         AND CINDEX,K3;  MASK OUT CARRY BITS\r
28243         000315' 200640  000331'         MOVE SINDEX,K4;\r
28244         000316' 404640  000016          AND SINDEX,CINDEX;\r
28245         000317' 240640  777775          ASH SINDEX,-3;  GIVES 000 WHERE CARRY HAPPENED, 006\r
28246         000320' 276700  000015          SUBM CINDEX,SINDEX;     CONVERT TO EXCESS 0 OR 60\r
28247         000321' 434640  000331'         IOR SINDEX,K4;  CONVERT TO EXCESS 60\r
28248         000322' 262140  000016          UNSAVE CINDEX;  RESTORE THE STEP\r
28249         000323' 311340  000015          CAML 7,SINDEX;  IF 99999, DON'T GO TO 00009\r
28250         000324' 264140  000162'         ERR 3^  JSR 3,ERRORX^\r
28251         000325' 263140  000000          EXIT;           LEAVE\r
28252 \r
28253         000326' 432150  643214  K1:     OCT 432150643214;       106\r
28254         000327' 036170  743617  K2:     OCT 036170743617;       017\r
28255         000330' 375767  737576  K3:     OCT 375767737576;       077\r
28256         000331' 301406  030141  K4:     TSTRIN <00000>^ EXP "00000"+"00000"+1^\r
28257         000332' 000001  000001  K5:     XWD 1,1;        +,- ONE TO BOTH HALVES\r
28258 \r
28259 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 14\r
28260 EDITOR  MAC     24-APR-78 03:01         EDITOR - AUGUST 25, 1965\r
28261 \r
28262         000333' 260140  000000' FIND:   CAL FILLB;      FILL THE BUFFER\r
28263         000334' 620200  000041  FIND1:  TRZ FL,S0+S4;   FORWARD SEARCH AND INITIAL SEARCH\r
28264         000335' 550000  001060' FIND2:  HRRZ WBC;       GET THE BUFFER SIZE\r
28265         000336' 322000  000360'         JUMPE FINDA;    EMPTY BLOCK\r
28266         000337' 201440  001064'         MOVEI INDEX,WB; GET THE DATA ADDRESS\r
28267         000340' 200000  001064'         MOVE WB;        GET THE FIRST DATA WORD\r
28268         000341' 313000  000015          CAMLE SINDEX;   ARE WE PAST THE LINE\r
28269         000342' 254000  000360'         JRST FINDA;     YES, REVERSE\r
28270         000343' 316000  000015          CAMN SINDEX;    EXACT MATCH\r
28271         000344' 254000  000402'         JRST FINDEQ;    YES, BE HAPPY\r
28272         000345' 270440  001060'         ADD INDEX,WBC;  FORM ADDRESS OF LAST DATA WORD\r
28273         000346' 260140  000262'         CAL BACK;       FIND ITS SEQUENCE NUMBER\r
28274         000347' 313000  000015          CAMLE SINDEX;   IT THE LINE IN THIS BLOCK\r
28275         000350' 254000  000372'         JRST FIND3A;    YES, INVESTIGATE FURTHER\r
28276         000351' 316000  000015          CAMN SINDEX;    EXACT MATCH\r
28277         000352' 254000  000402'         JRST FINDEQ;    YES\r
28278         000353' 602200  000020  FINDX:  TRNE FL,S5;     IS THIS LAST BLOCK\r
28279         000354' 254000  000367'         JRST FINDC;     YES, SO EXIT WITH THIS ADDRESS\r
28280         000355' 660200  000040          TRO FL,S4;      SCANNING HAS STARTED\r
28281         000356' 620200  000001          TRZ FL,S0;      AND GO FORWARD\r
28282         000357' 254000  000365'         JRST FIND4;     AWAY WE GO\r
28283 \r
28284         000360' 201440  000000  FINDA:  MOVEI INDEX,0;  SETUP FOR REVERSE\r
28285         000361' 606200  000040          TRNN FL,S4;     HAVE WE BEEN HERE BEFORE\r
28286         000362' 602200  000400          TRNE FL,S8;     OR IS IT THE FIRST BLOCK\r
28287         000363' 254000  000370'         JRST FINDR;     YES, SO USE THIS ADDRESS\r
28288         000364' 660200  000001          TRO FL,S0;      OTHERWISE, GO BACK ONE BLOCK\r
28289         000365' 260140  000045' FIND4:  CAL GET;        GET THE BLOCK\r
28290         000366' 254000  000335'         JRST FIND2;     SEARCH FOR IT\r
28291 \r
28292         000367' 550440  001060' FINDC:  HRRZ INDEX,WBC; TAIL OF BLOCK IF ENTERED HERE\r
28293         000370' 271440  001064' FINDR:  ADDI INDEX,WB;  HEAD OF BLOCK IF ENTERED HERE\r
28294         000371' 254000  000400'         JRST FIND3;     AND RETURN\r
28295 \r
28296         000372' 201440  001060' FIND3A: MOVEI INDEX,WBC;        WE WISH TO SCAN THIS BLOCK FOR\r
28297         000373' 260140  000406'         CAL FINDES;     THIS LINE - COMPUTE LINE SIZE\r
28298         000374' 316000  000015          CAMN SINDEX;    EXACT MATCH\r
28299         000375' 254000  000402'         JRST FINDEQ;    YES, WELL, GOOD\r
28300         000376' 317000  000015          CAMG SINDEX;    HAVE WE PASSED IT\r
28301         000377' 344440  000373'         AOJA INDEX,FIND3A+1;    NO, SO CONTINUE\r
28302         000400' 514600  000011  FIND3:  HRLZ COTP,INDEX;        RETURN THE ADDRESS OF THE LINE\r
28303         000401' 254000  000246'         JRST CLEARE;    EXIT\r
28304 \r
28305         000402' 514600  000011  FINDEQ: HRLZ COTP,INDEX;        FOUND THE DESIRED LINE\r
28306         000403' 260140  000406'         CAL FINDES;     COMPUTE ITS SIZE\r
28307         000404' 554440  000014          HLRZ INDEX,COTP;        SET UP INDEX\r
28308         000405' 254000  000246'         JRST CLEARE;    AND EXIT\r
28309 \r
28310 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 15\r
28311 EDITOR  MAC     24-APR-78 03:01         EDITOR - AUGUST 25, 1965\r
28312 \r
28313         000406' 350000  000014  FINDES: AOS COTP;       FIND SIZE OF LINE\r
28314         000407' 200011  000001          MOVE 1(INDEX);  FIND NEXT SEQUENCE NUMBER\r
28315         000410' 350000  000011          AOS INDEX;\r
28316         000411' 606000  000001          TRNN 1;         SEQUENCE NUMBER?\r
28317         000412' 326000  000406'         JUMPN FINDES;   NO, BUT ZERO ALSO DENOTES END\r
28318         000413' 263140  000000          EXIT;           DONE\r
28319 \r
28320         000414' 550000  000014  CSIZE:  HRRZ COTP;      COMPUTE SIZE OF TRANSFER\r
28321         000415' 554440  000014          HLRZ INDEX,COTP;        SIZE OF THIS LINE\r
28322         000416' 270000  000011          ADD INDEX;      AND THIS LOCATION\r
28323         000417' 270440  000012          ADD INDEX,WC;   PLUS THE NEW LINE SIZE\r
28324         000420' 504440  000000          HRL INDEX,0;    IN LEFT HALF IS OLD SIZE\r
28325         000421' 275000  001064'         SUBI WB;        AND TURN IT INTO A COUNT\r
28326         000422' 550540  001060'         HRRZ C,WBC;     FOR A SUBTRACT\r
28327         000423' 276540  000000          SUBM C,0;       AND NOW ZERO HAS THE XFER SIZE\r
28328         000424' 263140  000000          EXIT;\r
28329 \r
28330 \r
28331         000425' 260140  000502' DELETE: CAL GE2SEQ;     GET THE RANGE TO BE EXCISED\r
28332         000426' 550440  001060' DELOOP: HRRZ INDEX,WBC; GET THE WORD COUNT\r
28333         000427' 271440  001064'         ADDI INDEX,WB;  FORM THE END ADDRESS\r
28334         000430' 260140  000262'         CAL BACK;       GET THE LAST SEQUENCE IN THE BLOCK\r
28335         000431' 316000  000017          CAMN LAST;      IS THE LAST LINE THE END OF THE RANGE\r
28336         000432' 254000  000447'         JRST DEQ;       YES\r
28337         000433' 311000  000017          CAML LAST;      DO WE WANT TO DELETE THIS ONE TOO\r
28338         000434' 254000  000451'         JRST DINB;      NO,DELETE TERMINATES IN THE BUFFER\r
28339         000435' 260140  000465'         CAL DREST;      ERASE THE REST OF THE BUFFER\r
28340         000436' 602200  000020  EMPT:   TRNE FL,S5;     LAST BLOCK\r
28341         000437' 254000  001035'         JRST COMLEV;    YES, DONE\r
28342         000440' 620200  000001          TRZ FL,S0;      FORWARD\r
28343         000441' 260140  000045'         CAL GET;        INPUT NEXT BLOCK\r
28344         000442' 200640  001064'         MOVE SINDEX,WB; GET FIRST LINE\r
28345         000443' 606640  000001          TRNN SINDEX,1;  IF NOT A ONE, BLOCK IS EMPTY\r
28346         000444' 254000  000436'         JRST EMPT;      SO GET THE NEXT ONE\r
28347         000445' 260140  000333'         CAL FIND;       NEW SINDEX IS THE FIRST LINE - THIS CAL\r
28348         000446' 254000  000426'         JRST DELOOP;    SETS UP THE COUNTS, ETC.\r
28349 \r
28350         000447' 260140  000465' DEQ:    CAL DREST;      DELETE THE REST OF THE BUFFER\r
28351         000450' 254000  001035' DEX:    JRST COMLEV;    EXIT\r
28352 \r
28353 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 16\r
28354 EDITOR  MAC     24-APR-78 03:01         EDITOR - AUGUST 25, 1965\r
28355 \r
28356         000451' 201440  001063' DINB:   MOVEI INDEX,WBF;        GET INITIAL ADDRESS\r
28357         000452' 260140  000406'         CAL FINDES;     SCAN THE LINE\r
28358         000453' 322000  000456'         JUMPE .+3;      END OF BUFFER\r
28359         000454' 317000  000017          CAMG LAST;      LAST LINE DONE\r
28360         000455' 344440  000452'         AOJA INDEX,DINB+1;      NO, GO AGAIN\r
28361         000456' 557000  000014          HLRZS COTP;     COMPUTE TOTAL SIZE\r
28362         000457' 274440  000014          SUB INDEX,COTP; THIS MUCH SMALLER\r
28363         000460' 517000  000014          HRLZS COTP;     RESET LEFT HALF\r
28364         000461' 542440  000014          HRRM INDEX,COTP;        AND RIGHT HALF GET DELTA SIZE\r
28365         000462' 402000  000012          CLEARM WC;      SET FOR ZERO LENGTH INSERT\r
28366         000463' 260140  000227'         CAL INSED;      INSERT THE NULL LINE\r
28367         000464' 254000  001035'         JRST COMLEV;    AND EXIT\r
28368 \r
28369         000465' 554440  000014  DREST:  HLRZ INDEX,COTP;        DELETE THE REMAINING BUFFER\r
28370         000466' 275440  001064'         SUBI INDEX,WB;  JUST DECREMENT SIZE\r
28371         000467' 542440  001060'         HRRM INDEX,WBC; OF THE NEW BUFFER\r
28372         000470' 254000  000245'         JRST INSE16;    DONE\r
28373 \r
28374 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 17\r
28375 EDITOR  MAC     24-APR-78 03:01         EDITOR - AUGUST 25, 1965\r
28376 \r
28377         000471' 260140  000502' PRINT:  CAL GE2SEQ;     GET THE RANGE\r
28378         000472' 200011  000000  PRLOOP: MOVE (INDEX);   GET A LINE\r
28379         000473' 322000  000533'         JUMPE GETNEX;   ZERO IMPLIES END OF BUFFER - GET NEXT\r
28380         000474' 313000  000017          CAMLE LAST;     ARE WE STILL IN THE BALLPARK\r
28381         000475' 254000  001035'         JRST COMLEV;    NO, ALL DONE\r
28382         000476' 260140  000516'         CAL STEP;       PREPARE FOR NEXT HUNT\r
28383         000477' 260140  000601'         CAL OTLINE;     PRINT THIS LINE\r
28384         000500' 260140  000333'         CAL FIND;       FIND THE NEXT LINE\r
28385         000501' 254000  000472'         JRST PRLOOP;    LOOK AT IT\r
28386 \r
28387         000502' 260140  000616' GE2SEQ: CAL GETSEQ;     GET A 2 NUMBER RANGE\r
28388         000503' 334000  000000          SKIPA;          THERE WERE TWO\r
28389         000504' 254000  000507'         JRST GEX;       ONLY ONE\r
28390         000505' 242000  000001          LSH 1;          JUSTIFY IT\r
28391         000506' 664000  000001          TROA 1;         AND FLAG IT AS A SEQUENCE NUMBER\r
28392         000507' 200000  000015  GEX:    MOVE SINDEX;    DUPLICATE THE INPUT NUMBER IF JUST ONE\r
28393         000510' 202000  000017          MOVEM LAST;     STORE THE END OF THE RANGE\r
28394         000511' 260140  000333'         CAL FIND;       SEARCH FOR THE FIRST LINE\r
28395         000512' 316740  001056'         CAMN LAST,FIRST;        BOTH THE SAME\r
28396         000513' 316651  000000          CAMN SINDEX,(INDEX);    BUT NO MATCH FOUNT\r
28397         000514' 263140  000000          EXIT;           WILL SKIP THIS ONE\r
28398                                         ERR 2;          AND *NLN*\r
28399         000515' 264100  000162'         JSR 2,ERRORX\r
28400 \r
28401         000516' 261140  000016  STEP:   SAVE CINDEX     ;PROTECT THE STEP\r
28402         000517' 201700  000001          MOVEI CINDEX,1; PREPARE TO ADD ONE TO SINDEX\r
28403         000520' 202000  000015          MOVEM SINDEX;   WHICH WE LOAD FROM ZERO\r
28404 \r
28405 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 24\r
28406 EDITOR  MAC     24-APR-78 03:01         EDITOR - AUGUST 25, 1965\r
28407 \r
28408         000521' 254000  000306'         JRST ASCIA+1;   AWAY\r
28409 \r
28410         000522' 200640  001056' PNEXT:  MOVE SINDEX,FIRST;      PRINT NEXT LINE\r
28411         000523' 200000  000015          MOVE SINDEX;    UPDATE THE LINE POINTER\r
28412         000524' 260140  000516'         CAL STEP;       NEXT LINE\r
28413         000525' 260140  000333'         CAL FIND;       WHERE IS IT\r
28414         000526' 336651  000000          SKIPN SINDEX,(INDEX);   ZERO IS END, ALSO LOAD SINDEX\r
28415                                         ERR 2;          *NLN*\r
28416         000527' 264100  000162'         JSR 2,ERRORX\r
28417         000530' 202640  001056'         MOVEM SINDEX,FIRST;     STEP FIRST POINTER\r
28418         000531' 260140  000601'         CAL OTLINE;     PRINT THE LINE\r
28419         000532' 254000  000137'         JRST OUTTER;    BACK TO CONTROL\r
28420 \r
28421         000533' 602200  000020  GETNEX: TRNE FL,S5;     END OF FILE\r
28422         000534' 254000  001035'         JRST COMLEV;    YES, EXIT\r
28423         000535' 620200  000001          TRZ FL,S0;      FORWARD\r
28424         000536' 260140  000045'         CAL GET;        INPUT IT\r
28425         000537' 201440  001064'         MOVEI INDEX,WB; FIRST ADDRESS\r
28426         000540' 254000  000472'         JRST PRLOOP;    RETURN TO PRINT SCAN\r
28427 \r
28428 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 26\r
28429 EDITOR  MAC     24-APR-78 03:01         TELETYPE IO - AUGUST 25, 1965\r
28430 \r
28431                                 SUBTTL TELETYPE IO - AUGUST 25, 1965\r
28432 \r
28433                                 ;OUTPUT SEQUENCE NUMBER\r
28434         000541' 350000  001043' OTSEQ:  AOS TYOBF1;     STEP THE WORD POINTER\r
28435 \r
28436 \r
28437         000542' 202660  001043'         MOVEM SINDEX,@TYOBF1;   PUT THE SEQUENCE NO.\r
28438         000543' 201040  000211          MOVEI 1,211;    AND A TAB\r
28439         000544' 136040  001043'         IDPB 1,TYOBF1;  INTO THE OUTPUT BUFFER\r
28440         000545' 067100  000000  OTSEQ4: OUTPUT TYP,0;   OUTPUT THE TELETYPE BUFFER\r
28441         000546' 263140  000000          EXIT\r
28442 \r
28443                                 ;INPUT ONE LINE FROM TELETYPE AND CONVERT TO SEQUENCED\r
28444 \r
28445         000547' 066100  000000  GETLIN: INPUT TYP,0;    READ THE LINE\r
28446         000550' 201040  001314'         MOVEI 1,TTB1;   PREEPARE TO BLOCK IT UP\r
28447         000551' 505040  001313'         HRLI 1,TTB;     DESTINATION\r
28448         000552' 402000  001313'         CLEARM TTB\r
28449         000553' 251040  001336'         BLT 1,TTB16;    BLOCK IT UP\r
28450         000554' 200300  000600'         MOVE TPT,KKK1;  PREPARE THE CONVERSION POINTER\r
28451         000555' 200240  001046'         MOVE IPT,TYIBF1;        AND READ POINTER\r
28452         000556' 200100  001047'         MOVE 2,TYIBF2;  AND THE COUNT\r
28453         000557' 202646  000000          MOVEM SINDEX,(TPT);     PUT IN THE SEQUENCE\r
28454         000560' 201040  000211          MOVEI 1,211;    TAB\r
28455         000561' 344300  000564'         AOJA TPT,EOMLOP+2;      START CONVERSION\r
28456 \r
28457         000562' 361100  000571' EOMLOP: SOJL 2,EOMOUT;  IF ALL OUT OF CHARACTERS\r
28458         000563' 134040  000005          ILDB 1,IPT;     READ ONE\r
28459         000564' 136040  000006          IDPB 1,TPT;     WRITE ONE\r
28460         000565' 302040  000033          CAIE 1,33;      ALTERNATE ALTMOD\r
28461         000566' 306040  000175          CAIN 1,175;     REGULAR ALTMOD\r
28462         000567' 254000  000160'         JRST CRT;               MAKE EXIT\r
28463         000570' 254000  000562'         JRST EOMLOP;    GET MORE\r
28464 \r
28465         000571' 200500  000006  EOMOUT: MOVE WC,TPT;    FORM WORD COUNT\r
28466         000572' 274500  000600'         SUB WC,KKK1;    INITIAL VALUE\r
28467         000573' 553000  000012          HRRZS WC;               CLEAR LEFT\r
28468         000574' 306040  000012          CAIN 1,12;      LINE FEED\r
28469         000575' 271500  000001          ADDI WC,1;      MEANS STEP COUNT\r
28470         000576' 350003  000000  STEPEX: AOS (PDP);      SKIP EXIT\r
28471         000577' 263140  000000          EXIT\r
28472         000600' 440700  001313' KKK1:   POINT 7,TTB;    INITIAL POINTER\r
28473 \r
28474                                 ;OUTPUT ONE LINE OF TEXT\r
28475 \r
28476         000601' 200011  000000  OTLINE: MOVE (INDEX);   FIRST WORD\r
28477         000602' 254000  000607'         JRST OTL1\r
28478         000603' 200011  000000          MOVE (INDEX);   SUBSEQUENT WORDS\r
28479         000604' 322000  000545'         JUMPE OTSEQ4;   ZERO IMPLIES THE END OF THE WORLD\r
28480         000605' 602000  000001          TRNE 1;         ONE IMPLIES THE END OF THE LINE\r
28481         000606' 254000  000545'         JRST OTSEQ4\r
28482         000607' 350000  001043' OTL1:   AOS TYOBF1;     PUT IT IN THE OUTPUT BUFFER\r
28483         000610' 202020  001043'         MOVEM @TYOBF1\r
28484 \r
28485 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 26-1\r
28486 EDITOR  MAC     24-APR-78 03:01         TELETYPE IO - AUGUST 25, 1965\r
28487 \r
28488         000611' 344440  000603'         AOJA INDEX,OTLINE+2;    GO FOR MORE\r
28489 \r
28490 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 27\r
28491 EDITOR  MAC     24-APR-78 03:01         TELETYPE IO - AUGUST 25, 1965\r
28492 \r
28493                                 ;GET ONE CHARACTER\r
28494 \r
28495         000612' 066100  000000  GETCHR: INPUT TYP,0;    GET A LINE\r
28496         000613' 200240  001046'         MOVE IPT,TYIBF1;        PREPARE INPUT POINTER\r
28497         000614' 134540  000005          ILDB C,IPT;     LOAD THE FIRST CHARACTER\r
28498         000615' 263140  000000          EXIT\r
28499 \r
28500                                 ;GET A SEQUENCE PAIR\r
28501 \r
28502         000616' 403000  000015  GETSEQ: CLEARB 0,SINDEX;        MAKE BOTH ZERO\r
28503         000617' 134540  000005          ILDB C,IPT;     GET A CHARACTER\r
28504         000620' 301540  000060          CAIL C,60;      IT MUST BE A NUMBER\r
28505         000621' 303540  000071          CAILE C,71\r
28506         000622' 254000  000626'         JRST ETEST;     OR A DELIMITER\r
28507         000623' 242640  000007          LSH SINDEX,7;   NUMBER\r
28508         000624' 270640  000013          ADD SINDEX,C;   NEW ONE\r
28509         000625' 254000  000617'         JRST GETSEQ+1\r
28510 \r
28511         000626' 306540  000056  ETEST:  CAIN C,56;      POINT?\r
28512         000627' 254000  000652'         JRST PER\r
28513         000630' 306540  000054          CAIN C,54;      COMMA?\r
28514         000631' 254000  000645'         JRST CMMA\r
28515         000632' 332000  000015          SKIPE SINDEX;   IF NOTHING INPUT YET\r
28516         000633' 302540  000015          CAIE C,15;      OR NOT A CARRET\r
28517         000634'                 COMERR: ERR 1;          ILLEGAL COMMAND\r
28518         000634' 264040  000162'         JSR 1,ERRORX\r
28519         000635' 434640  000656'         IOR SINDEX,KK4; MAKE IT AN ASCII THING\r
28520         000636' 332000  000000          SKIPE 0;                IF TWO ARGS\r
28521         000637' 250640  000000          EXCH SINDEX,0;  SWAP EM BACK\r
28522         000640' 242640  000001          LSH SINDEX,1;   LEFT JUSTIFY\r
28523         000641' 660640  000001          TRO SINDEX,1;   AND FLAG IT\r
28524         000642' 202640  001056'         MOVEM SINDEX,FIRST;     SAVE IT FOR .\r
28525         000643' 322000  000576'         JUMPE STEPEX;   ONLY ONE ARG\r
28526         000644' 263140  000000          EXIT;           TWO ARGS\r
28527 \r
28528         000645' 322640  000634' CMMA:   JUMPE SINDEX,COMERR;    THREE ARGS?\r
28529         000646' 326000  000634'         JUMPN COMERR;   ONE ARG\r
28530         000647' 434640  000656'         IOR SINDEX,KK4; ASCII-IZE IT\r
28531         000650' 250640  000000          EXCH SINDEX,0;  SWAP EM\r
28532         000651' 254000  000617'         JRST GETSEQ+1\r
28533 \r
28534         000652' 326640  000634' PER:    JUMPN SINDEX,COMERR;    CANT BE THIRD ARG\r
28535         000653' 200640  001056'         MOVE SINDEX,FIRST;      RETREIVE POINT\r
28536         000654' 242640  777777          LSH SINDEX,-1;  RIGHT JUSTIFY\r
28537         000655' 254000  000617'         JRST GETSEQ+1\r
28538 \r
28539         000656' 140603  014060  KK4:    OCT 140603014060;       00000\r
28540 \r
28541 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 28\r
28542 EDITOR  MAC     24-APR-78 03:01         DECSET - AUGUST 25, 1965\r
28543 \r
28544                                 SUBTTL DECSET - AUGUST 25, 1965\r
28545 \r
28546                         001000  FOPEN=1000\r
28547 \r
28548                                 ;SET FILE OPEN (*SN,NAME)\r
28549 \r
28550         000657' 603200  001000  DECINI: TLNE FL,FOPEN;  IF A FILE IS NOT ALREADY OPEN\r
28551                                                         ;       THEN GOTO NORMAL PROCESS\r
28552                                         ERR 1 ; IF FILE OPEN ,MUST CLOSE W. E\r
28553         000660' 264040  000162'         JSR 1 ,ERRORX\r
28554         000661' 403200  001060' DECIN1: SETZB FL,WBC;   ZERO FLAGS AND WORD COUNT\r
28555         000662' 402000  001012'         CLEARM DTNAME;  FILE NAME\r
28556         000663' 402000  001013'         CLEARM DTNAME+1;        AND EXTENSION\r
28557         000664' 402000  001014'         CLEARM DTNAME+2;        AND DATE\r
28558         000665' 260140  000710'         CAL GTCHAR;     GET UNIT NUMBER\r
28559         000666' 301000  000060          CAIL 60;                IT MUST BE A NUMBER\r
28560         000667' 303000  000070          CAILE 70;\r
28561         000670' 254000  000665'         JRST .-3;               IGNORE ANYTHING ELSE\r
28562         000671' 137000  001337'         DPB [POINT 5,PLUNK,23]; DUMP INTO INIT COMMAND\r
28563         000672' 260140  000710'         CAL GTCHAR;     NEXT CHARACTER\r
28564         000673' 302000  000054          CAIE 54;                COMMA?\r
28565         000674' 254000  000672'         JRST .-2;               IGNORE ALL ELSE\r
28566         000675' 200040  001340' LOOP0:  MOVE 1,[POINT 6,DTNAME];        INITIALIZE NAME POINTER\r
28567         000676' 201540  000006          MOVEI C,6;      MAX NAME LENGTH\r
28568         000677' 260140  000710' LOOP:   CAL GTCHAR;     GET A CHARACTER\r
28569         000700' 301000  000060          CAIL "0";               NUMBERS AND LETTERS ONLY COME HERE\r
28570         000701' 303000  000071          CAILE "9";      SO HERE FILTER NUMBERS\r
28571         000702' 254000  001000'         JRST LOOP1;     IT IS A LETTER\r
28572         000703' 640000  000040  LOOP2:  TRC 40; NUMBER - MAKE IT SIXBIT\r
28573         000704' 136000  000001          IDPB 1;         STORE INTO NAME (OR EXTENSION)\r
28574         000705' 367540  000677'         SOJG C,LOOP;    COUNT DOWN FOR SIZE\r
28575         000706' 260140  000710'         CAL GTCHAR;     NEXT CHARACTER\r
28576         000707' 254000  000706'         JRST .-1;\r
28577 \r
28578 \r
28579 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 29\r
28580 EDITOR  MAC     24-APR-78 03:01         DECSET - AUGUST 25, 1965\r
28581 \r
28582         000710' 134000  000005  GTCHAR: ILDB IPT;               LOAD ONE CHARACTER\r
28583         000711' 306000  000015          CAIN 15;                CRT\r
28584         000712' 254000  000727'         JRST GET1;      SNEAK EXIT\r
28585         000713' 306000  000056          CAIN ".";       AN EXTENSION IS COMMING\r
28586         000714' 254000  001004'         JRST GET2;      FIX IT UP\r
28587         000715' 302000  000033          CAIE 33;                THE FUNNY ALTMODE\r
28588         000716' 306000  000175          CAIN 175;               AND THE REAL ONE\r
28589         000717' 254000  000726'         JRST    GET11   ;CAUSE EXIT TO OCCUR\r
28590         000720' 306000  000012          CAIN    0,12    ;LF CHAR?\r
28591         000721' 254000  000727'         JRST GET1       ; YES TREAT AS CR\r
28592         000722' 302000  000001          CAIE 1;         CONTROL A\r
28593         000723' 263140  000000          EXIT;           NOTA SO EXIT HAPPY\r
28594         000724' 661200  000100          TLO FL,100;     SET CONTROL A FLAG\r
28595         000725' 254000  000710'         JRST GTCHAR;    GET ANOTHER CHARACTER\r
28596         000726' 661200  000002  GET11:  TLO     FL,2    ;NEW FILE FLAG\r
28597 \r
28598         000727' 262140  000000  GET1:   UNSAVE; POP OFF EXIT\r
28599         000730' 201000  001050' GO:     MOVEI DTOBUF;   THESE TWO INSTRUCTIONS REQUIRED\r
28600         000731' 506000  000736'         HRLM PLUNK+1;   REQUIRED TO LINK LEFT HALF\r
28601         000732' 200000  001057'         MOVE SJOBFF;    RESET JOB AREA\r
28602         000733' 202000  000000*         MOVEM JOBFF;    TO PREVENT STORAGE EAT-UP\r
28603         000734' 041140  000000          INIT DT,0;      INITIALIZE DECTAPE\r
28604         000735' 446441  000000  PLUNK:  SIXBIT /DTA/;   RIGHT HALF SET ABOVE\r
28605         000736' 000000  001053'         XWD 0,DTIBUF;   LEFT HALF SET ABOVE\r
28606                                         ERR 5;          UNIT NOT AVAILABLE\r
28607         000737' 264240  000162'         JSR 5,ERRORX\r
28608         000740' 205000  400000          MOVSI 400000;   USE BIT\r
28609         000741' 412000  001062'         ANDCAM DTB;     CLEAR IT\r
28610         000742' 541000  001062'         HRRI DTB;               HEAD OF BUFFER\r
28611         000743' 202000  001053'         MOVEM DTIBUF;   SETUP IN HEADER\r
28612         000744' 065140  000001          OUTBUF DT,1;    SET UP SINGLE BUFFER\r
28613         000745' 623200  000100          TLZE FL,100;    NEW DIRECTORY?\r
28614         000746' 047140  000013          CALLI DT,13;    YES, ZONK IT (UTPCLR)\r
28615         000747' 336000  001012'         SKIPN DTNAME;   NO NAME MEANS JUST CLEAR, PROB\r
28616         000750' 254000  000133'         JRST FINIS2;    SO EXIT AND CLOSE FILE\r
28617         000751' 076140  001012'         LOOKUP DT,DTNAME;       IS THE NAME ALRRADY THERE\r
28618         000752' 254000  000772'         JRST NEWFIL;    NO, SO WE ENTER IT\r
28619         000753' 603200  000002          TLNE FL,2;      ARE WE ASKING FOR A NEW FILE\r
28620                                         ERR 10;         YES, FAU\r
28621         000754' 264400  000162'         JSR 10,ERRORX\r
28622 \r
28623         000755' 200100  001013' DOIT:   MOVE 2,DTNAME+1;        GET LINK\r
28624         000756' 074142  000000          USETI DT,(2);   SET IT UP\r
28625         000757' 067140  000000          OUTPUT DT,;     MAKE SYSTEM HAPPY\r
28626         000760' 075142  000000          USETO DT,(2);   SET UP OUTPUT ALSO\r
28627         000761' 627200  000010          TLZN FL,10;     NEW FILE?\r
28628         000762' 254000  000767'         JRST DOIT1;     NO, ALMOST DONE\r
28629         000763' 402000  001063'         SETZM WBF;      WE MUST FORCE AN EMPTY BLOCK\r
28630         000764' 661200  000001          TLO FL,1;               SET BUFFER FULL FLAG\r
28631         000765' 402000  001060'         SETZM WBC;      ZERO LENGTH\r
28632         000766' 660200  000530          TRO FL,S3+S5+S6+S8;     INITIAL STATE, FIRST BLOCK MODIFIED\r
28633         000767' 202100  000135' DOIT1:  MOVEM 2,THSBLK; SETUP CURRENT BLOCK NUMBER\r
28634         000770' 661200  001000          TLO FL,FOPEN;   SET FILE STATUS TO OPEN\r
28635 \r
28636 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 29-1\r
28637 EDITOR  MAC     24-APR-78 03:01         DECSET - AUGUST 25, 1965\r
28638 \r
28639         000771' 254000  001035'         JRST COMLEV;    ALL DONE\r
28640 \r
28641 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 30\r
28642 EDITOR  MAC     24-APR-78 03:01         DECSET - AUGUST 25, 1965\r
28643 \r
28644         000772' 607200  000002  NEWFIL: TLNN FL,2;      WAS ALTMOD STRUCK\r
28645                                         ERR 11;         NO, NCF\r
28646         000773' 264440  000162'         JSR 11,ERRORX\r
28647         000774' 077140  001012'         ENTER DT,DTNAME;        PUT IN DI\r
28648                                         ERR 6;          DCE\r
28649         000775' 264300  000162'         JSR 6,ERRORX\r
28650         000776' 661200  000010          TLO FL,10;      SET NEW FILE FLAG\r
28651         000777' 254000  000755'         JRST DOIT;\r
28652 \r
28653         001000' 301000  000101  LOOP1:  CAIL "A";       LETTER CHECK\r
28654         001001' 303000  000132          CAILE "Z";      IT MUST VERILY BE A LETTER\r
28655         001002' 254000  000677'         JRST LOOP;      WE IGNORE IT\r
28656         001003' 254000  000703'         JRST LOOP2;     WE PROCESS IT\r
28657 \r
28658         001004' 332000  001013' GET2:   SKIPE DTEXTN;   EXTENSION?\r
28659                                         ERR 1;          ALREADY GOT ONE, CANT HAVE TWO\r
28660         001005' 264040  000162'         JSR 1,ERRORX\r
28661         001006' 621040  770000          TLZ 1,770000;   MAGIC TO BYTE POINTER TO POINT TO NEXT\r
28662         001007' 201540  000003          MOVEI C,3;      ONLY 3 LETTERS IN EXTENSION\r
28663         001010' 262140  000000          UNSAVE;         POP OF SOME GARBAGE\r
28664         001011' 254000  000677'         JRST LOOP;      RETURN TO LISTEN\r
28665 \r
28666         001012' 000000  000000  DTNAME: 0;      FILE NAME\r
28667         001013' 000000  000000  DTEXTN: 0;      FILE EXTENSION\r
28668         001014' 000000  000000  DTDATE: 0;      DATE\r
28669         001015' 000000  000000          0;              DUMMY\r
28670 \r
28671                         001013' FBNUM=DTEXTN\r
28672 \r
28673 \r
28674 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 31\r
28675 EDITOR  MAC     24-APR-78 03:01         INITIA - AUGUST 25, 1965\r
28676 \r
28677                                 SUBTTL INITIA - AUGUST 25, 1965\r
28678                         000001  AL=1\r
28679         001016' 047000  000000  INITIA: CALLI 0,0;      RESET SYSTEM\r
28680         001017' 041100  000001          INIT TYP,AL;    RESET CONCOLE\r
28681         001020' 646471  000000          SIXBIT /TTY/\r
28682         001021' 001042' 001045'         XWD TYOBUF,TYIBUF\r
28683         001022' 254200  000000          HALT\r
28684         001023' 064100  000001          INBUF TYP,1;    SET UP ONE INPUT BUFFER\r
28685         001024' 065100  000002          OUTBUF TYP,2;   AND TWO OUTPUT BUFFERS\r
28686         001025' 200000  000733*         MOVE JOBFF;     SAVE FIRST FREE\r
28687         001026' 202000  001057'         MOVEM SJOBFF;   FOR LATER RESTART\r
28688         001027' 067100  000000          OUTPUT TYP,0;   MAKE SYSTEM HAPPY\r
28689         001030' 200700  001041' INITIX: MOVE CINDEX,KK1;        INITIALIZE STEP TO 10\r
28690         001031' 201140  001303'         MOVEI PDP,PDSTAK-1;     INITIALIZE PUSHDOWN POINTER\r
28691         001032' 403640  000004          CLEARB SINDEX,FL;       FLAGS AND SEQUENCE INDEX\r
28692         001033' 211400  000001          MOVNI P,1;      AND FIRST BLOCK POINTER\r
28693         001034' 402000  001060'         CLEARM WBC;     WORD COUNT\r
28694         001035' 260140  000160' COMLEV: CAL CRT;        A COMMON RETURN\r
28695         001036' 301200  000000          CAIL FL,0 ; DDE ERROR\r
28696         001037' 254000  000137'         JRST OUTTER    ; NO, SO OFF TO LISTEN CONTROL\r
28697         001040' 254000  001016'         JRST INITIA   ; YES GO RESET WORLD\r
28698 \r
28699                                 ;BUFFERS, ET. AL.\r
28700         001041' 140603  014260  KK1:    OCT 140603014260;       00010\r
28701         001042'                 TYOBUF: BLOCK 3\r
28702         001045'                 TYIBUF: BLOCK 3\r
28703 \r
28704         001050'                 DTOBUF: BLOCK 3\r
28705         001053' 000000  000000  DTIBUF: 0\r
28706         001054' 000700  000000          XWD 700,0;      SELF ASSIGNED BUFFERS, ETC.\r
28707         001055' 000000  000000          0\r
28708 \r
28709         001056' 000000  000000  FIRST:  0\r
28710         001057' 000000  000000  SJOBFF: 0\r
28711 \r
28712         001060' 000000  000000  WBC:    0;              WORKING BUFFER COUNT\r
28713         001061' 000000  000000          0\r
28714         001062' 000200  001062' DTB:    XWD 200,DTB;    DECTAPE HEADER\r
28715         001063' 000000  000000  WBF:    0\r
28716         001064'                 WB:     BLOCK 217;      THE WORKING BUFFER\r
28717         001303' 624563  456400  RESTT:  SIXBIT .RESET.\r
28718 \r
28719         001304'                 PDSTAK: BLOCK 7;        PUSHDOWN STAK\r
28720         001313'                 TTB:    BLOCK 23;       TELETYPE BUFFER-BUFFER\r
28721         001336' 000000  000000  TTB16:  0\r
28722 \r
28723                         001314' TTB1=TTB+1\r
28724                         001046' TYIBF1=TYIBUF+1\r
28725                         001047' TYIBF2=TYIBUF+2\r
28726                         001043' TYOBF1=TYOBUF+1\r
28727                         001051' DTOBF1=DTOBUF+1\r
28728 \r
28729                                 EXTERNAL JOBFF\r
28730 \r
28731 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 31-1\r
28732 EDITOR  MAC     24-APR-78 03:01         INITIA - AUGUST 25, 1965\r
28733 \r
28734         001337'                 EDEND:\r
28735 \r
28736                         001016' END INITIA\r
28737 \r
28738 NO ERRORS DETECTED\r
28739 \r
28740 PROGRAM BREAK IS 001341\r
28741 \r
28742 9K CORE USED\r
28743 \r
28744 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 32\r
28745 EDITOR  MAC     24-APR-78 03:01         SYMBOL TABLE\r
28746 \r
28747 AC1             000001  \r
28748 AC2             000002  \r
28749 AC3             000005  \r
28750 AC4             000006  \r
28751 AL              000001  \r
28752 ASCIA           000305' \r
28753 ATSALL          000004' \r
28754 BACK            000262' \r
28755 BACK1           000252' \r
28756 C               000013  \r
28757 CAL     260140  000000  \r
28758 CINDEX          000016  \r
28759 CLEARE          000246' \r
28760 CMMA            000645' \r
28761 COMERR          000634' \r
28762 COMLEV          001035' \r
28763 COTP            000014  \r
28764 CRM             000171' \r
28765 CRT             000160' \r
28766 CSIZE           000414' \r
28767 DECIN1          000661' \r
28768 DECINI          000657' \r
28769 DELETE          000425' \r
28770 DELOOP          000426' \r
28771 DEQ             000447' \r
28772 DEX             000450' \r
28773 DINB            000451' \r
28774 DOIT            000755' \r
28775 DOIT1           000767' \r
28776 DREST           000465' \r
28777 DT              000003  \r
28778 DTB             001062' \r
28779 DTDATE          001014' \r
28780 DTEXTN          001013' \r
28781 DTIBUF          001053' \r
28782 DTNAME          001012' \r
28783 DTOBF1          001051' \r
28784 DTOBUF          001050' \r
28785 DUMPB           000106' \r
28786 DUMX            000122' \r
28787 EDEND           001337' \r
28788 EMPT            000436' \r
28789 EOMLOP          000562' \r
28790 EOMOUT          000571' \r
28791 EPT             000204' \r
28792 ERRORX          000162' \r
28793 ERROX1          000166' \r
28794 ERROX2          000167' \r
28795 ERT             000172' \r
28796 ETEST           000626' \r
28797 EXIT    263140  000000  \r
28798 FBNUM           001013' \r
28799 \r
28800 \r
28801 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 32-1\r
28802 EDITOR  MAC     24-APR-78 03:01         SYMBOL TABLE\r
28803 \r
28804 FILLB           000000' \r
28805 FILLB1          000041' \r
28806 FIND            000333' \r
28807 FIND1           000334' \r
28808 FIND2           000335' \r
28809 FIND3           000400' \r
28810 FIND3A          000372' \r
28811 FIND4           000365' \r
28812 FINDA           000360' \r
28813 FINDC           000367' \r
28814 FINDEQ          000402' \r
28815 FINDES          000406' \r
28816 FINDR           000370' \r
28817 FINDX           000353' \r
28818 FINIS2          000133' \r
28819 FINISH          000131' \r
28820 FIRST           001056' \r
28821 FL              000004  \r
28822 FOPEN           001000  \r
28823 GE2SEQ          000502' \r
28824 GET             000045' \r
28825 GET0            000055' \r
28826 GET1            000727' \r
28827 GET11           000726' \r
28828 GET2            001004' \r
28829 GETCHR          000612' \r
28830 GETF            000075' \r
28831 GETL            000073' \r
28832 GETL1           000100' \r
28833 GETLIN          000547' \r
28834 GETN            000047' \r
28835 GETNEX          000533' \r
28836 GETSEQ          000616' \r
28837 GEX             000507' \r
28838 GO              000730' \r
28839 GTCHAR          000710' \r
28840 IAMTEM          000136' \r
28841 INDEX           000011  \r
28842 INITIA          001016' \r
28843 INITIX          001030' \r
28844 INSE            000205' \r
28845 INSE1           000235' \r
28846 INSE16          000245' \r
28847 INSE2           000210' \r
28848 INSE3           000216' \r
28849 INSED           000227' \r
28850 INSEG           000264' \r
28851 INSER           000272' \r
28852 INSEX           000276' \r
28853 IPT             000005  \r
28854 ITAB            000303' \r
28855 JOBFF           001025' EXT\r
28856 K1              000326' \r
28857 \r
28858 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 32-2\r
28859 EDITOR  MAC     24-APR-78 03:01         SYMBOL TABLE\r
28860 \r
28861 K2              000327' \r
28862 K3              000330' \r
28863 K4              000331' \r
28864 K5              000332' \r
28865 KK1             001041' \r
28866 KK4             000656' \r
28867 KKK1            000600' \r
28868 LAST            000017  \r
28869 LOOP            000677' \r
28870 LOOP0           000675' \r
28871 LOOP1           001000' \r
28872 LOOP2           000703' \r
28873 NEWFIL          000772' \r
28874 OTL1            000607' \r
28875 OTLINE          000601' \r
28876 OTSEQ           000541' \r
28877 OTSEQ4          000545' \r
28878 OUTTER          000137' \r
28879 P               000010  \r
28880 PDP             000003  \r
28881 PDSTAK          001304' \r
28882 PER             000652' \r
28883 PLUNK           000735' \r
28884 PNEXT           000522' \r
28885 PRINT           000471' \r
28886 PRLOOP          000472' \r
28887 RESTT           001303' \r
28888 S0              000001  \r
28889 S1              000002  \r
28890 S2              000004  \r
28891 S3              000010  \r
28892 S4              000040  \r
28893 S5              000020  \r
28894 S6              000100  \r
28895 S7              000200  \r
28896 S8              000400  \r
28897 SAVE    261140  000000  \r
28898 SINDEX          000015  \r
28899 SJOBFF          001057' \r
28900 SLURP           000057' \r
28901 STEP            000516' \r
28902 STEPEX          000576' \r
28903 THSBLK          000135' \r
28904 TPT             000006  \r
28905 TTB             001313' \r
28906 TTB1            001314' \r
28907 TTB16           001336' \r
28908 TYIBF1          001046' \r
28909 TYIBF2          001047' \r
28910 TYIBUF          001045' \r
28911 TYOBF1          001043' \r
28912 TYOBUF          001042' \r
28913 \r
28914 \r
28915 \fEDITOR   V.003 1 APRIL 1968    MACRO 10 05:51 24-APR-78 PAGE 32-3\r
28916 EDITOR  MAC     24-APR-78 03:01         SYMBOL TABLE\r
28917 \r
28918 TYP             000002  \r
28919 UNSAVE  262140  000000  \r
28920 WB              001064' \r
28921 WBC             001060' \r
28922 WBF             001063' \r
28923 \fFFFFFFFFFFFFFFF      UUU         UUU      DDDDDDDDDDDD            GGGGGGGGGGGG      EEEEEEEEEEEEEEE         222222222   \r
28924 FFFFFFFFFFFFFFF      UUU         UUU      DDDDDDDDDDDD            GGGGGGGGGGGG      EEEEEEEEEEEEEEE         222222222   \r
28925 FFFFFFFFFFFFFFF      UUU         UUU      DDDDDDDDDDDD            GGGGGGGGGGGG      EEEEEEEEEEEEEEE         222222222   \r
28926 FFF                  UUU         UUU      DDD         DDD      GGG                  EEE                  222         222\r
28927 FFF                  UUU         UUU      DDD         DDD      GGG                  EEE                  222         222\r
28928 FFF                  UUU         UUU      DDD         DDD      GGG                  EEE                  222         222\r
28929 FFF                  UUU         UUU      DDD         DDD      GGG                  EEE                              222\r
28930 FFF                  UUU         UUU      DDD         DDD      GGG                  EEE                              222\r
28931 FFF                  UUU         UUU      DDD         DDD      GGG                  EEE                              222\r
28932 FFFFFFFFFFFF         UUU         UUU      DDD         DDD      GGG                  EEEEEEEEEEEE                  222   \r
28933 FFFFFFFFFFFF         UUU         UUU      DDD         DDD      GGG                  EEEEEEEEEEEE                  222   \r
28934 FFFFFFFFFFFF         UUU         UUU      DDD         DDD      GGG                  EEEEEEEEEEEE                  222   \r
28935 FFF                  UUU         UUU      DDD         DDD      GGG   GGGGGGGGG      EEE                        222      \r
28936 FFF                  UUU         UUU      DDD         DDD      GGG   GGGGGGGGG      EEE                        222      \r
28937 FFF                  UUU         UUU      DDD         DDD      GGG   GGGGGGGGG      EEE                        222      \r
28938 FFF                  UUU         UUU      DDD         DDD      GGG         GGG      EEE                     222         \r
28939 FFF                  UUU         UUU      DDD         DDD      GGG         GGG      EEE                     222         \r
28940 FFF                  UUU         UUU      DDD         DDD      GGG         GGG      EEE                     222         \r
28941 FFF                  UUUUUUUUUUUUUUU      DDDDDDDDDDDD            GGGGGGGGG         EEEEEEEEEEEEEEE      222222222222222\r
28942 FFF                  UUUUUUUUUUUUUUU      DDDDDDDDDDDD            GGGGGGGGG         EEEEEEEEEEEEEEE      222222222222222\r
28943 FFF                  UUUUUUUUUUUUUUU      DDDDDDDDDDDD            GGGGGGGGG         EEEEEEEEEEEEEEE      222222222222222\r
28944 \r
28945 \r
28946 \r
28947 \r
28948 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
28949 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
28950 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
28951 LLL                  SSS                        TTT                                                                     \r
28952 LLL                  SSS                        TTT                                                                     \r
28953 LLL                  SSS                        TTT                                                                     \r
28954 LLL                  SSS                        TTT                                                                     \r
28955 LLL                  SSS                        TTT                                                                     \r
28956 LLL                  SSS                        TTT                                                                     \r
28957 LLL                     SSSSSSSSS               TTT                                                                     \r
28958 LLL                     SSSSSSSSS               TTT                                                                     \r
28959 LLL                     SSSSSSSSS               TTT                                                                     \r
28960 LLL                              SSS            TTT                                                                     \r
28961 LLL                              SSS            TTT                                                                     \r
28962 LLL                              SSS            TTT                                                                     \r
28963 LLL                              SSS            TTT                                                                     \r
28964 LLL                              SSS            TTT                                                                     \r
28965 LLL                              SSS            TTT                                                                     \r
28966 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
28967 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
28968 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
28969 \r
28970 \r
28971 \r
28972 \r
28973 Request created: 24-April-1978  05:53:58\r
28974 File: DSKB0 :FUDGE2.LST   [8,296] Created: 20-April-1967 05:52:00 Printed: 24-April-1978 05:53:41\r
28975 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1311 \r
28976 File will be deleted after printing\r
28977 \f\r
28978 FUDGE2  V.011   MACRO 10 05:52 24-APR-78 PAGE 1\r
28979 FUDGE2  MAC     24-APR-78 03:09         2-OCT-70        ED YOURDON/VJC/DMN\r
28980 \r
28981                                 TITLE   FUDGE2  V.011\r
28982                                 SUBTTL  2-OCT-70        ED YOURDON/VJC/DMN\r
28983                                 ;FILE UPDATE GENERATOR\r
28984                                 ;"COPYRIGHT 1968,1969,DIGITAL EQUIPMENT CORP. MAYNARD,MASS. U.S.A."\r
28985 \r
28986                         000011          VFUDGE==11              ;VERSION NUMBER\r
28987                         000000          VPATCH==0               ;DEC PATCH LEVEL\r
28988                         000000          VCUSTOM==0              ;NON-DEC PATCH LEVEL\r
28989 \r
28990                         000137          JOBVER==137\r
28991         000137                          LOC     JOBVER\r
28992         000137  000000  000011          XWD VCUSTOM,VFUDGE+VPATCH*1000\r
28993         000000'                         RELOC\r
28994                                         MLON\r
28995 \r
28996                                 ;FUDGE ACCUMULATOR DEFINITIONS\r
28997 \r
28998                         000001          A=      1               ;GENERAL COMMUNICATION AC\r
28999                         000002          B=      2               ;SCRATCH ACCUMULATOR\r
29000                         000003          T=      3               ;USED IN /C AND /X ONLY\r
29001                         000004          C=      4               ;SCRATCH ACCUMULATOR\r
29002                         000005          D=      5               ;IO DEVICE NUMBER ACCUMULATOR\r
29003                         000006          E=      6               ;SCRATCH ACCUMULATOR\r
29004                         000007          F=      7               ;FLAG ACCUMULATOR\r
29005                         000010          G=      10              ;DEVICE CHARACTERISTICS AC\r
29006                         000011          H=      11              ;USED IN GETCHR AND GETCMN\r
29007                         000012          P=      12              ;PUSHDOWN POINTER AC\r
29008                         000013          R=      13              ;PROGRAM NAME-USED IN READ,WRITE\r
29009                         000014          S=      14              ;SIXBIT SYMBOL ACCUMULATOR\r
29010                         000015          DIS=    15              ;DISPATCH ACCUMULATOR\r
29011                         000016          EXT=    16              ;FILE NAME EXTENSION ACCUMULATOR\r
29012                         000017          SW=     17              ;SWITCH UUO AC\r
29013 \r
29014 \r
29015 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 2\r
29016 FUDGE2  MAC     24-APR-78 03:09         2-OCT-70        ED YOURDON/VJC/DMN\r
29017 \r
29018                                 ;FUDGE FLAG DEFINITIONS (RIGHT HALF OF ACCUMULATOR F)\r
29019 \r
29020                         000001          DESTB== 1               ;1-DESTINATION DEVICE SEEN\r
29021                         000002          SAVEB== 2               ;1-SWITCH SEEN,BUT NOT EXECUTED\r
29022                         000004          SWTB==  4               ;1-SWITCH MODE ENTERED IN GETCHR\r
29023                         000010          SLSHB== 10              ;1-SWITCH MODE ENTERED WITH </>\r
29024                         000020          TTYOB== 20              ;1-NON-TTY OUTPUT;USED BY IO\r
29025                         000040          TTYCB== 40              ;1-NON-TTY OUTPUT;USED BY COMMAND\r
29026                         000100          PROGB== 100             ;1-PROGRAM NAME SEEN IN SPECIFICATION\r
29027                         000200          NOLOCB==200             ;1-DELETE LOCAL SYMBOLS ***VJC\r
29028                         000400          DEVB==  400             ;1-DEVICE NAME SEEN IN SPEC.\r
29029                         001000          EXTB==  1000            ;1-EXPLICIT FILE NAME EXTENSION\r
29030                         002000          ERRB==  2000            ;1-ERROR IN ENTRY BLOCK CHECK\r
29031                         004000          INFOB== 4000            ;1-VALID INFORMATION IN COMMAND\r
29032                         010000          CONB==  10000           ;1-CONTEXT OF <.> IS PROGRAM NAME\r
29033                                                                 ;0-CONTEXT OF <.> IS FILE NAME\r
29034                         020000          F4IB==  20000           ;1-IGNORE F4 OUTPUT\r
29035                         040000          CRLFTY==40000           ;1-CR,LF TYPED (FOR ERROR MSG)\r
29036                         100000          POPBAK==100000          ;1-XCT POPJ P,  ;TO RETURN TO CALLING SEQ.\r
29037                         200000          XFLG==  200000          ;1-INDEX THIS FILE\r
29038                         400000          DTAFLG==400000          ;1-OUTPUT DEVICE IS DTA (SPECIAL INDEX)\r
29039 \r
29040 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 3\r
29041 FUDGE2  MAC     24-APR-78 03:09         2-OCT-70        ED YOURDON/VJC/DMN\r
29042 \r
29043 \r
29044 \r
29045 \r
29046                                 ;HANDY BITS FOR CALLS TO DEVCHR FOR DEVICE CHARACTERISTICS\r
29047                         000001          OUTBIT==1               ;1-DEVICE CAN DO OUTPUT\r
29048                         000002          INBIT== 2               ;1-DEVICE CAN DO INPUT\r
29049                         000004          DRCTRB==4               ;1-DEVICE HAS A DIRECTORY\r
29050                         000010          TTYBIT==10              ;1-DEVICE IS A TTY\r
29051                         000100          DTABIT==100             ;1-DEVICE IS A DTA\r
29052                         040000          LPTBIT==40000           ;1-DEVICE IS LPT\r
29053                         200000          DSKBIT==200000          ;1-DEVICE IS DSK\r
29054 \r
29055                                 ;OTHER USEFUL PARAMETER ASSIGNMENTS\r
29056                         000200          N==     200             ;SIZE OF MASTER AND TRAN BUFFERS\r
29057                         000020          XP==    20              ;SIZE OF PUSHDOWN LIST\r
29058                         000500          SIZE==  500             ;SIZE OF PURE ENTRY BLOCK\r
29059                         000505          X==     SIZE+5          ;SIZE OF ENTRY AND SAVE BLOCKS\r
29060                         020000          IOEOF== 20000           ;1-END-OF-FILE HAS BEEN SEEN\r
29061                         040000          IOBKTL==40000           ;1-BLOCK-TOO-LARGE ERROR\r
29062                         100000          IODATA==100000          ;1-DATA ERROR\r
29063                         200000          IODEV== 200000          ;1-DEVICE ERROR\r
29064                         004000          IOBOT== 4000            ;1-MAG TAPE IS AT BEGINNING OF TAPE\r
29065 \r
29066                         000011          RIBALC==11              ;NUMBER OF BLOCKS ALLOCATED\r
29067 \r
29068                                 ;EXTERNAL SYMBOLS\r
29069                                         EXTERN  JOBFF, JOBREL, JOBSYM, JOBSA\r
29070 \r
29071                                 OPDEF   JSR     [PUSHJ  P,]     ;PURE FOR RE-ENTRANT FUDGE\r
29072 \r
29073 \r
29074 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 4\r
29075 FUDGE2  MAC     24-APR-78 03:09         INITIALIZE AND SETUP OF FUDGE2\r
29076 \r
29077                                 SUBTTL INITIALIZE AND SETUP OF FUDGE2\r
29078                                 ;THIS SECTION OF CODING DOES THE FOLLOWING THINGS\r
29079                                 ;       1.RESETS ALL IO DEVICES BY CALLING [SIXBIT /RESET/]\r
29080                                 ;       2.INITIALIZES THE TELETYPE IN ASCII-LINE MODE\r
29081                                 ;       3.TYPES A * TO SIGNIFY READINESS FOR INPUT FROM USER\r
29082                                 ;       4.SETS UP A PUSHDOWN LIST\r
29083                                 ;       5.INITIALIZES VARIOUS ACCUMULATORS, CLEARS THE FLAGS,\r
29084                                 ;         AND INITIALIZES THE MSTBUF AND TRNBUF COUNTERS\r
29085 \r
29086         000000' 255000  000000  FUDGE2: JFCL                    ;INCASE OF CCL ENTRY\r
29087         000001' 047000  000000          RESET                   ;RESET I/O DEVICES   \r
29088         000002' 200000  005126'         MOVE    [XWD LOW,LOW+1]\r
29089         000003' 402000  002515'         SETZM   LOW             ;CLEAR DATA AREA\r
29090         000004' 251000  005116'         BLT     LOWTOP-1\r
29091         000005' 200000  005127'         MOVE    [XWD 17,11]     ;TEST FOR LEVEL D\r
29092         000006' 400000  000000          SETZ                    ;FAILED, NOT LEVEL D\r
29093         000007' 607000  003400          TLNN    (7B9)           ;IS IT LEVEL D OR LATER?\r
29094         000010' 634000  000000          TDZA                    ;NO\r
29095         000011' 561000  777776          HRROI   -2              ;THIS IS LEVEL D\r
29096         000012' 202000  005111'         MOVEM   LEVEL           ;STORE STATE\r
29097         000013' 400000  000000          SETZ                    ;CLEAR ACC'S\r
29098         000014' 201740  000001          MOVEI   17,1            ;WITH A BLT OF ZERO\r
29099         000015' 251740  000017          BLT     17,17           ;FROM 0-17\r
29100         000016' 041000  000001          INIT    0,1             ;INITIALIZE TTY, CHANNEL 0\r
29101         000017' 646471  000000          SIXBIT  /TTY/           ;TTY\r
29102         000020' 004602' 004610'         XWD     OBUF, IBUF      ;ADDRESSES FOR BUFFER HEADERS\r
29103         000021' 254200  000021'         HALT    .               ;ILLEGAL INSTRUCTION IF NO TTY\r
29104         000022' 067000  000000          OUTPUT  0,              ;DUMMY OUTPUT ON TTY\r
29105         000023' 201040  000052          MOVEI   A, "*"          ;PICK UP A <*>\r
29106         000024' 136040  004603'         IDPB    A, OBUF+1       ;TYPE IT OUT\r
29107         000025' 067000  000000          OUTPUT  0,              ;EMPTY THE BUFFER\r
29108         000026' 200500  005125'         MOVE    P, XPDLST       ;SET UP A PUSHDOWN POINTER\r
29109         000027' 561240  000001          HRROI   D,1             ;INITIALIZE DEVICE BUFFER\r
29110         000030' 202240  003324'         MOVEM   D, DEVBUF       ;...\r
29111         000031' 205040  777600          MOVSI   A, -N           ;GET COUNT OF MSTBUF AND TRNBUF\r
29112         000032' 541040  002525'         HRRI    A, FILBUF+1     ;INITIALIZE POINTER IN FILBUF\r
29113         000033' 202040  002524'         MOVEM   A, FILBUF       ;SET UP COUNT IN FILE BUFFER\r
29114         000034' 541040  002725'         HRRI    A, PRGBUF+1     ;INITIALIZE POINTER IN PRGBUF\r
29115         000035' 202040  002724'         MOVEM   A, PRGBUF       ;...\r
29116         000036' 541040  003124'         HRRI    A,PPNBUF        ;INITIAL POINTER IN PPNBUF\r
29117         000037' 202040  003124'         MOVEM   A,PPNBUF\r
29118 \r
29119 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 5\r
29120 FUDGE2  MAC     24-APR-78 03:09         FUDGE2 COMMAND STRING DISPATCHING\r
29121 \r
29122                                 SUBTTL FUDGE2 COMMAND STRING DISPATCHING\r
29123                                 ;THIS ROUTINE PICKS UP CHARACTERS FROM THE TELETYPE BUFFER AND\r
29124                                 ;DISPATCHES TO THE PROPER ROUTINE DEPENDING ON THE TYPE OF\r
29125                                 ;CHARACTER.A TABLE OF BYTES AND BYTE POINTERS ALLOWS EACH\r
29126                                 ;CHARACTER IN THE ASCII SET TO BE TREATED INDIVIDUALLY. THE\r
29127                                 ;ROUTINE MAY BE ENTERED AT GETCHR IF IT IS DESIRED TO ACCUMULATE\r
29128                                 ;A 6-LETTER SIXBIT SYMBOL IN AC S. SYMBOLS OF DIFFERENT LENGTHS\r
29129                                 ;MAY BE ACCUMULATED IN DIFFERENT REGISTERS BY SETTING THE CONTENTS\r
29130                                 ;OF AC B TO THE DESIRED LENGTH, AND PUTTING A BYTE POINTER IN E\r
29131                                 ;AND ENTERING THE ROUTINE AT GETCHR+4.\r
29132 \r
29133         000040' 622340  100000  GETCHR: TRZE    F,POPBAK        ;IMMEDIATE RETURN?\r
29134         000041' 263500  000000          POPJ    P,              ;YES\r
29135         000042' 201100  000006          MOVEI   B, 6            ;SET COUNT OF SYMBOL TO 6\r
29136         000043' 200300  005117'         MOVE    E, SYMPTR       ;SET UP A BYTE POINTER FOR AC S\r
29137         000044' 201600  000000          MOVEI   S, 0            ;INITIALIZE SYMBOL ACCUMULATOR\r
29138         000045' 377000  004612' GETCMN: SOSG    IBUF+2          ;IS TTY BUFFER EMPTY?\r
29139         000046' 066000  000000          INPUT   0,              ;YES, FILL IT UP\r
29140         000047' 134040  004611'         ILDB    A, IBUF+1       ;GET A CHARACTER\r
29141         000050' 200400  000001          MOVE    G, A            ;GET A COPY OF IT IN AC G\r
29142         000051' 200000  005100'         MOVE    0, CURCHR       ;SAVE PREVIOUS CHAR\r
29143         000052' 202000  005101'         MOVEM   0, LSTCHR       ;AS LAST CHAR\r
29144         000053' 202040  005100'         MOVEM   A, CURCHR       ;SAVE CURRENT CHAR\r
29145         000054' 231400  000011          IDIVI   G, 11           ;TRANSLATE TO 4-BIT CODE\r
29146         000055' 135411  000077'         LDB     G, TABLE(H)     ;USE PROPER BYTE POINTER\r
29147         000056' 305400  000004          CAIGE   G, 4            ;MODIFY CODE IF .GE. 4\r
29148         000057' 606340  000004          TRNN    F, SWTB         ;MODIFY CODE IF IN SWITCH MODE\r
29149         000060' 271400  000004          ADDI    G, 4            ;CHANGE DISPATCH BY ADDING 4\r
29150         000061' 550450  000065'         HRRZ    H, DSPTCH(G)    ;GET PROPER DISPATCH ADDRESS\r
29151         000062' 301400  000010          CAIL    G, 10           ;BUT CHANGE IF NOT CORRECT\r
29152         000063' 554450  000055'         HLRZ    H, DSPTCH-10(G) ;TO A LEFT HALF DISPATCH\r
29153         000064' 254011  000000          JRST    (H)             ;EXIT TO APPROPRIATE ROUTINE\r
29154 \r
29155 \r
29156 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 6\r
29157 FUDGE2  MAC     24-APR-78 03:09         COMMAND DISPATCH TABLE AND BYTE POINTERS\r
29158 \r
29159                                 SUBTTL COMMAND DISPATCH TABLE AND BYTE POINTERS\r
29160         000065' 000045' 002136' DSPTCH: XWD     GETCMN,ERR16    ;IGNORED CHAR, BAD CHAR(SWITCH)\r
29161         000066' 000145' 000135'         XWD     SWTCH, SWTCHA   ;<(>, LETTER(SWITCH MODE)\r
29162         000067' 000317' 002136'         XWD     COLON, ERR16    ;<:>, NUMBER(SWITCH MODE)\r
29163         000070' 000257' 000146'         XWD     PERIOD,SWTCHE   ;<.>, <)>ESCAPE SWITCH MODE\r
29164         000071' 000156' 002147'         XWD     LFTARW,ERR17    ;<?>OR<=>, BAD CHAR (NORMAL MODE)\r
29165         000072' 000310' 000127'         XWD     COMMA, STORE    ;<,>, ALPHABETIC CHARACTER(NORMAL)\r
29166         000073' 000521' 000127'         XWD     ALTMOD,STORE    ;<$>,NUMERIC CHARACTER(NORMAL)\r
29167         000074' 000144' 002147'         XWD     SLASH, ERR17    ;</>, <)> ILLEGAL ESCAPE\r
29168         000075' 000265' 000000          XWD     LBRACK, 0       ;LEFT ANGLE BRACKET, OR "["\r
29169         000076' 000303' 000000          XWD     RBRACK, 0       ;RIGHT ANGLE BRACKET\r
29170 \r
29171         000077' 400410  000110' TABLE:  POINT   4, BITE(G), 3\r
29172         000100' 340410  000110'         POINT   4, BITE(G), 7\r
29173         000101' 300410  000110'         POINT   4, BITE(G), 11\r
29174         000102' 240410  000110'         POINT   4, BITE(G), 15\r
29175         000103' 200410  000110'         POINT   4, BITE(G), 19\r
29176         000104' 140410  000110'         POINT   4, BITE(G), 23\r
29177         000105' 100410  000110'         POINT   4, BITE(G), 27\r
29178         000106' 040410  000110'         POINT   4, BITE(G), 31\r
29179         000107' 000410  000110'         POINT   4, BITE(G), 35\r
29180 \r
29181 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 7\r
29182 FUDGE2  MAC     24-APR-78 03:09         BYTE TABLE FOR DISPATCHING\r
29183 \r
29184                                  SUBTTL BYTE TABLE FOR DISPATCHING\r
29185                                 ;CLASSIFICATION BYTE CODES\r
29186                                 ;       BYTE    DISP    CLASSIFICATION\r
29187 \r
29188                                 ;       00      00      ILLEGAL CHARACTER, SWITCH MODE\r
29189                                 ;       01      01      ALPHABETIC CHARACTER, SWITCH MODE\r
29190                                 ;       02      02      NUMERIC CHARACTER, SWITCH MODE\r
29191                                 ;       03      03      SWITCH MODE ESCAPE, SWITCH MODE\r
29192 \r
29193                                 ;       00      04      ILLEGAL CHARACTER, NORMAL MODE\r
29194                                 ;       01      05      ALPHABETIC CHARACTER, NORMAL MODE\r
29195                                 ;       02      06      NUMERIC CHARACTER, NORMAL MODE\r
29196                                 ;       03      07      SWITCH MODE ESCAPE, SWITCH MODE\r
29197 \r
29198                                 ;       04      10      IGNORED CHARACTER\r
29199                                 ;       05      11      ENTER SWITCH MODE WITH A <(>\r
29200                                 ;       06      12      DEVICE DELIMITER, <:>\r
29201                                 ;       07      13      FILE EXTENSION DELIMITER, <.>\r
29202                                 ;                       (CAN ALSO BE PART OF A PROGRAM NAME)\r
29203                                 ;       10      14      OUTPUT SPECIFICATION, <LFT ARW> OR <=>\r
29204                                 ;       11      15      FILE DELIMITER, <,>\r
29205                                 ;       12      16      COMMAND TERMINATOR, <ALT MODE>=33,175,176\r
29206                                 ;       13      17      ENTER SWITCH MODE WITH A </>\r
29207                                 ;       14      20      CHANGE CONTEXT OF PERIOD TO PROG NAME, <<> ,OR "["\r
29208                                 ;       15      21      CHANGE CONTEXT OF PERIOD TO FILE NAME, <>>\r
29209 \r
29210                                 ;BYTE TABLE CORRESPONDING TO 128 ASCII CHARS\r
29211 \r
29212         000110' 200000  000000  BITE:   BYTE    (4)     4,0,0,0,0,0,0,0,0       ;NUL\r
29213         000111' 210421  000000          BYTE    (4)     4,4,4,4,4,0,0,0,0\r
29214         000112' 000000  000012          BYTE    (4)     0,0,0,0,0,0,0,0,12      ;?Z=$\r
29215         000113' 500000  110100          BYTE    (4)     12,0,0,0,0,11,0,4,0     ;$\r
29216         000114' 000001  230411          BYTE    (4)     0,0,0,0,5,3,1,0,11      ;***DMN\r
29217         000115' 017310  421042          BYTE    (4)     0,7,13,2,2,2,2,2,2      ;-,.,/,0,1,2,3,4,5\r
29218         000116' 104211  406215          BYTE    (4)     2,2,2,2,6,0,14,10,15    ;6,7,8,9,:,;,<,=,>\r
29219         000117' 000104  210421          BYTE    (4)     0,0,1,1,1,1,1,1,1       ; , , ,B,C,D,E,F,G\r
29220         000120' 042104  210421          BYTE    (4)     1,1,1,1,1,1,1,1,1       ;H,I,J,K,L,M,N,O,P\r
29221         000121' 042104  210421          BYTE    (4)     1,1,1,1,1,1,1,1,1       ;Q,R,S,T,U,V,W,X,Y\r
29222         000122' 070000  100021          BYTE    (4)     1,14,0,0,0,10,0,1,1     ;Z,[, ,], ,?, ,A,B\r
29223         000123' 042104  210421          BYTE    (4)     1,1,1,1,1,1,1,1,1       ;C,D,E,F,G,H,I,J,K\r
29224         000124' 042104  210421          BYTE    (4)     1,1,1,1,1,1,1,1,1       ;L,M,N,O,P,Q,R,S,T\r
29225         000125' 042104  210012          BYTE    (4)     1,1,1,1,1,1,0,0,12      ;U,V,W,X,Y,Z, , ,$\r
29226         000126' 510000  000000          BYTE    (4)     12,4                    ;$,DEL\r
29227 \r
29228 \r
29229 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 8\r
29230 FUDGE2  MAC     24-APR-78 03:09         ROUTINES TO HANDLE 0-9,A-Z,. CHARACTERS\r
29231 \r
29232                                 SUBTTL ROUTINES TO HANDLE 0-9,A-Z,. CHARACTERS\r
29233                                 ;IN THE COMMAND STRING. IN NORMAL MODE, THE CHARACTER IS\r
29234                                 ;DEPOSITED TO FORM A SIXBIT SYMBOL. NOTE THAT "." IS LEGAL IN A PROGRAM NAME.\r
29235                                 ;E.G. <EXP.1,ALLIO.>, IF ENCLOSED IN< >. IN SWITCH MODE, THE PROPER\r
29236                                 ;INSTRUCTION IS EXECUTED WITH THE AID OF A DISPATCH TABLE.\r
29237                                 ;THEN, IF SWITCH MODE WAS ENTERED WITH A SLASH, FUDGE2 EXITS\r
29238                                 ;FROM SWITCH MODE.\r
29239 \r
29240         000127' 660340  004000  STORE:  TRO     F,INFOB         ; INDICATE VALID INFO SEEN\r
29241         000130' 361100  000045'         SOJL    B, GETCMN       ; JUMP IF NO ROOM FOR CHARACTER\r
29242         000131' 305040  000141          CAIGE   A,141           ;WORRY ABOUT LOWER CASE LETTERS\r
29243         000132' 275040  000040          SUBI    A, 40           ;CONVERT FROM ASCII TO SIXBIT\r
29244         000133' 136040  000006          IDPB    A, E            ;STORE CHARACTER ACCORDING TO BYTE\r
29245         000134' 254000  000045'         JRST    GETCMN          ;RETURN FOR NEXT CHARACTER\r
29246 \r
29247         000135' 205740  072000  SWTCHA: MOVSI   SW, 072000      ;GET AN MTAPE OPCODE\r
29248         000136' 301040  000141          CAIL    A,141           ;ACCEPT LOWER CASE SWITCHES\r
29249         000137' 275040  000040          SUBI    A,40\r
29250         000140' 256001  000115'         XCT     SLIST-101(A)    ;EXECUTE PROPER SWITCH INSTRUCTION\r
29251         000141' 622340  000010          TRZE    F, SLSHB        ;SWITCH MODE ENTERED WITH A </>?\r
29252         000142' 620340  000004          TRZ     F, SWTB         ;YES, EXIT FROM SWITCH MODE\r
29253         000143' 254000  000045'         JRST    GETCMN          ;RETURN FOR MORE CHARACTERS\r
29254 \r
29255 \r
29256                                 ;THE FOLLOWING THREE ROUTINES HANDLE THE CONTROL CHARACTERS IN\r
29257                                 ;THE COMMAND STRING WHICH CAUSE FUDGE2 TO ENTER INTO AND EXIT\r
29258                                 ;FROM SWITCH MODE. THERE ARE TWO TYPES OF SWITCH MODE, DEPENDING\r
29259                                 ;ON WHETHER THE IT IS ENTERED WITH A </> OR A <(>.\r
29260 \r
29261         000144' 660340  000010  SLASH:  TRO     F, SLSHB        ;ENTER SWITCH MODE WITH A </>\r
29262         000145' 664340  000004  SWTCH:  TROA    F, SWTB         ;ENTER SWITCH MODE WITH A <(>\r
29263         000146' 620340  000004  SWTCHE: TRZ     F, SWTB         ;EXIT FROM SWITCH MODE WITH A <)>\r
29264         000147' 254000  000045'         JRST    GETCMN          ;RETURN FOR MORE CHARACTERS\r
29265 \r
29266 \r
29267 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 9\r
29268 FUDGE2  MAC     24-APR-78 03:09         LEFT ARROW PROCESSOR\r
29269 \r
29270                                 SUBTTL LEFT ARROW PROCESSOR\r
29271                                 ;THE LEFT ARROW PROCESSOR IS ENTERED BY A DISPATCH FROM THE\r
29272                                 ;COMMAND STRING. IT SIGNALS THE END OF THE DESTINGATION DEVICE\r
29273                                 ;SPECIFICATION. IF THE SIXBIT SYMBOL ACCUMULATOR S IS NON-\r
29274                                 ;ZERO, IT ASSUMES THAT THE USER HAS OMITTED THE FILE NAME DE-\r
29275                                 ;LIMITER, AND CALLS THE FILE NAME ROUTINE. A PROGRAM NAME \r
29276                                 ;SPECIFICATION IN THE OUTPUT DEVICE IS ILLEGAL.\r
29277                                 ;FLAG SETTINGS: THE DESTINATION FLAG (DESTB) IS SET TO ONE,\r
29278                                 ;THE DEVICE FLAG IS SET TO ZERO, AND THE PROGR?M NAME FLAG (PROGB)\r
29279                                 ;IS SET TO ONE SO THAT THE FIRST DEVICE AFTER THE LEFT ARROW\r
29280                                 ;WILL NOT RESULT IN A CALL TO PUTDEV.\r
29281                                 ;IF NO OUTPUT DEVICE IS SEEN DSK IS ASSUMED.\r
29282                                 ;POPBAK IS SET SO CONTROL RETURNS FRON COLON VIA GETCHR\r
29283 \r
29284         000150' 261500  000014  NODEV:  PUSH    P,S             ;SAVE FILE NAME\r
29285         000151' 205600  446353          MOVSI   S,(SIXBIT /DSK/);DSK IS DEFAULT DEVICE\r
29286         000152' 660340  100000          TRO     F,POPBAK        ;RETURN FROM GETCHR\r
29287         000153' 260500  000317'         PUSHJ   P,COLON         ;FAKE A DEVICE SEEN\r
29288         000154' 262500  000014          POP     P,S             ;RESTORE FILE NAME\r
29289         000155' 263500  000000          POPJ    P,              ;RETURN\r
29290 \r
29291 \r
29292         000156' 260500  000407' LFTARW: PUSHJ   P, SEMICP       ;DO A LOOKUP IF NECESSARY\r
29293         000157' 620340  000400          TRZ     F, DEVB         ;SET THE DEVICE FLAG TO ZERO\r
29294         000160' 660340  000101          TRO     F, PROGB+DESTB  ;SET PROGRAM AND DESTINATION FLAGS\r
29295         000161' 254000  000040'         JRST    GETCHR          ;RETURN FOR NEXT SYMBOL\r
29296 \r
29297 \r
29298 \r
29299 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 10\r
29300 FUDGE2  MAC     24-APR-78 03:09         THIS CODE PROCESSES PROJECT-PROGRAMMER NUMBERS\r
29301 \r
29302                                 SUBTTL  THIS CODE PROCESSES PROJECT-PROGRAMMER NUMBERS\r
29303 \r
29304         000162' 400140  000000  LSQB:   SETZ    T,              ;START WITH ZERO\r
29305         000163' 261500  000003          PUSH    P,T             ;AND STORE IT\r
29306         000164' 260500  000210' LSQB1:  PUSHJ   P,TTYIN         ;GET NEXT CHAR.\r
29307         000165' 306040  000135          CAIN    A,"]"           ;MATCHING SQB.?\r
29308         000166' 254000  000202'         JRST    RSQB            ;YES\r
29309         000167' 306040  000054          CAIN    A,","           ;COMMA?\r
29310         000170' 254000  000177'         JRST    SQBCMA          ;YES,SORT OUT XWD\r
29311         000171' 301040  000060          CAIL    A,"0"           ;IS IT AN OCTAL NUMBER?\r
29312         000172' 303040  000071          CAILE   A,"9"           ;...\r
29313         000173' 254000  000214'         JRST    ERRISQ          ;NO,ERROR\r
29314         000174' 242140  000003          LSH     T,3             ;MAKE SPACE FOR NEXT CHAR.\r
29315         000175' 271141  777720          ADDI    T,-60(A)        ;ADDI IN NEW DIGIT\r
29316 \r
29317 \r
29318         000176' 254000  000164'         JRST    LSQB1           ;BACK FOR MORE\r
29319 \r
29320         000177' 516152  000000  SQBCMA: HRLZM   T,(P)           ;STORE LEFT HALF ON STACK\r
29321         000200' 400140  000000          SETZ    T,              ;START AFRESH\r
29322         000201' 254000  000164'         JRST    LSQB1           ;AND GET RIGHT HALF\r
29323 \r
29324         000202' 542152  000000  RSQB:   HRRM    T,(P)           ;PUT RIGHT HALF ON STACK\r
29325         000203' 262500  000003          POP     P,T             ;AND POP XWD OFF\r
29326         000204' 202140  005113'         MOVEM   T,PRJPRG        ;SAVE DEFAULT PROJ-PROG\r
29327         000205' 326600  000045'         JUMPN   S,GETCMN        ;AFTER A FILE NAME IS ONLY TEMP.\r
29328         000206' 202140  005112'         MOVEM   T,DEFPPN        ;PERMANENT DEFAULT PPN\r
29329         000207' 254000  000045'         JRST    GETCMN          ;GET NEXT CHAR.\r
29330 \r
29331         000210' 377000  004612' TTYIN:  SOSG    IBUF+2          ;BUFFER EMPTY\r
29332         000211' 066000  000000          INPUT   0,              ;YES, FILL IT UP\r
29333         000212' 134040  004611'         ILDB    A,IBUF+1        ;GET A CHARACTER\r
29334         000213' 263500  000000          POPJ    P,              ;AND RETURN\r
29335 \r
29336         000214' 201100  005130' ERRISQ: MOVEI   B,[ASCIZ /?Illegal project-programmer number/]\r
29337         000215' 254000  002247'         JRST    ERROR\r
29338 \r
29339 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 11\r
29340 FUDGE2  MAC     24-APR-78 03:09         DISPATCH TABLE FOR SWITCHES\r
29341 \r
29342                                 SUBTTL DISPATCH TABLE FOR SWITCHES\r
29343 \r
29344         000216' 201640  000711' SLIST:  MOVEI   DIS, APPEND     ;A - APPEND INSTRUCTION\r
29345         000217' 260500  000250'         PUSHJ   P, BSWTCH       ;B - BACKSPACE ONE FILE\r
29346         000220' 201640  000730'         MOVEI   DIS, DELCPY     ;C - COPY AND DELETE LOCAL SYMBOLS ***VJC\r
29347         000221' 201640  000701'         MOVEI   DIS, DELETE     ;D - DELETE INSTRUCTION\r
29348         000222' 201640  000660'         MOVEI   DIS, EXTRCT     ;E - EXTRACT INSTRUCTION\r
29349         000223' 254000  002136'         JRST    ERR16           ;F - ERROR\r
29350         000224' 254000  002136'         JRST    ERR16           ;G - ERROR\r
29351         000225' 254000  002136'         JRST    ERR16           ;H - ERROR\r
29352         000226' 201640  000632'         MOVEI   DIS, INSERT     ;I - INSERT INSTRUCTION\r
29353         000227' 254000  002136'         JRST    ERR16           ;J - ERROR\r
29354         000230' 260500  000251'         PUSHJ   P, KSWTCH       ;K - SKIPFILE\r
29355         000231' 201640  000600'         MOVEI   DIS, LIST       ;L - LIST COMMAND\r
29356         000232' 254000  002136'         JRST    ERR16           ;M - ERROR\r
29357         000233' 254000  002136'         JRST    ERR16           ;N - ERROR\r
29358         000234' 254000  002136'         JRST    ERR16           ;O - ERROR\r
29359         000235' 254000  002136'         JRST    ERR16           ;P - ERROR\r
29360         000236' 254000  002136'         JRST    ERR16           ;Q - ERROR\r
29361         000237' 201640  000621'         MOVEI   DIS, REPLCE     ;R - REPLACE INSTRUCTION\r
29362         000240' 254000  002136'         JRST    ERR16           ;S - ERROR\r
29363         000241' 260500  000252'         PUSHJ   P, TSWTCH       ;T - SKIP TO LOGICAL END OF TAPE\r
29364         000242' 254000  002136'         JRST    ERR16           ;U - ERROR\r
29365         000243' 254000  002136'         JRST    ERR16           ;V - ERROR\r
29366         000244' 260500  000253'         PUSHJ   P, WSWTCH       ;W - REWIND MAG TAPE\r
29367         000245' 201640  000722'         MOVEI   DIS,INDEX       ;X - INDEX THIS LIBRARY\r
29368         000246' 254000  002136'         JRST    ERR16           ;Y - ERROR\r
29369         000247' 260500  000254'         PUSHJ   P, ZSWTCH       ;Z - CLEAR DIRECTORY ON DECTAPE\r
29370 \r
29371 \r
29372                                 ;MAGTAPE AND DECTAPE DEVICE SWITCH HANDLERS\r
29373                                 ;THE FOLLOWING ROUTINES HANDLE THE B,K,T,W, AND Z SWITCHES\r
29374                                 ;BY ASSEMBLING THE PROPER CALL OR UUO INSTRUCTION. IF A \r
29375                                 ;DEVICE HAS ALREADY BEEN SEEN, THE CHANNEL NUMBER IS LOADED\r
29376                                 ;INTO THE COMMAND, AND THE INSTRUCTION IS EXECUTED. OTHER-\r
29377                                 ;WISE, EXECUTION IS DEFERRED BY SETTING A FLAG AND STORING\r
29378                                 ;THE PARTIALLY ASSEMBLED INSTRUCTION. THE INSTRUCTION IS\r
29379                                 ;EXECUTED LATER, AFTER THE DEVICE HAS BEEN SEEN.\r
29380 \r
29381         000250' 271740  000001  BSWTCH: ADDI    SW, 1           ;CODE FOR BACKSPACE IS 17\r
29382         000251' 271740  000006  KSWTCH: ADDI    SW, 6           ;CODE FOR SKIPFILE IS 16\r
29383         000252' 271740  000007  TSWTCH: ADDI    SW, 7           ;CODE FOR SKIP TO L.E.O.T. IS 10\r
29384         000253' 344740  000255' WSWTCH: AOJA    SW,.+2          ;CODE FOR REWIND IS 1\r
29385         000254' 200740  005123' ZSWTCH: MOVE    SW, DTCLR       ;DIFFERENT UUO FOR /Z\r
29386         000255' 660340  000002          TRO     F, SAVEB        ;TURN ON THE SWITCH BIT\r
29387         000256' 263500  000000          POPJ    P,              ;EXIT\r
29388 \r
29389 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 12\r
29390 FUDGE2  MAC     24-APR-78 03:09         PERIOD PROCESSOR\r
29391 \r
29392                                 SUBTTL PERIOD PROCESSOR\r
29393                                 ;THE PERIOD PROCESSOR IS CALLED BY A DISPATCH FROM GETCHR. IT \r
29394                                 ;PRECEDES A FILE NAME EXTENSION, UNLESS THE CONTEXT BIT CONB IS\r
29395                                 ;A ONE (CONB=1), IN WHICH CASE, THE PERIOD WAS FOUND INSIDE AN\r
29396                                 ;ANGLE BRACKET, INDICATING THAT IT IS PART OF A PROGRAM NAME.\r
29397                                 ;THE EXTENSION NAME IS GOTTEN BY ENTERING THE GETCHR ROUTINE\r
29398                                 ;WITH THE LENGTH SET TO THREE CHARACTERS, AND A BYTE POINTER\r
29399                                 ;SET TO STORE THE SYMOL IN ACCUMULATOR EXT. THE EXTENSION\r
29400                                 ;FLAG IS SET BY THIS ROUTINE.\r
29401 \r
29402         000257' 602340  010000  PERIOD: TRNE    F, CONB         ;IS PERIOD PART OF A PROGRAM NAME?\r
29403         000260' 254000  000127'         JRST    STORE           ;YES, STORE IT IN SYMBOL\r
29404         000261' 660340  001000          TRO     F, EXTB         ;NO, SET EXTENSION FLAG\r
29405         000262' 200300  005120'         MOVE    E, EXTPTR       ;GET ANOTHER BYTE POINTER\r
29406         000263' 201100  000003          MOVEI   B, 3            ;ASSEMBLE A 3-CHARACTER WORD\r
29407         000264' 254000  000045'         JRST    GETCMN          ;BUT DONT DESTROY S\r
29408 \r
29409 \r
29410 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 13\r
29411 FUDGE2  MAC     24-APR-78 03:09         ROUTINES TO PROCESS ANGLE BRACKETS\r
29412 \r
29413                                 SUBTTL ROUTINES TO PROCESS ANGLE BRACKETS\r
29414                                 ;THE FOLLOWING ROUTINES PROCESS THE LEFT ANGLE BRACKET "<"\r
29415                                 ;AND RIGHT ANGLE BRACKET ">" CHARACTERS. THEY ARE ENTERED BY\r
29416                                 ;A DISPATCH FROM THE GETCHR ROUTINE. THE ANGLE BRACKETS\r
29417                                 ;CAN ACT AS FILE NAME OR PROGRAM NAME DELIMITERS, SO A CHECK\r
29418                                 ;IS MADE TO SEE IF THE SYMBOL ACCUMULATOR IS NON-ZERO. THE\r
29419                                 ;MAIN FUNCTION OF THE ROUTINES IS TO SET OR CLEAR THE CONTEXT\r
29420                                 ;BIT CONB, WHOSE INTERPRETATION IS AS FOLLOWS:\r
29421                                 ;SETTING OF BIT MEANING\r
29422                                 ;       0               COMMAS DELIMIT FILE NAMES, AND PERIODS\r
29423                                 ;                       DELIMIT FILE NAME EXTENSIONS\r
29424                                 ;       1               COMMAS DELIMIT PROGRAM NAMES, AND PERIODS\r
29425                                 ;                       ARE PART OF A PROGRAM NAME\r
29426 \r
29427         000265' 606340  000001  LBRACK: TRNN    F, DESTB        ;IS THIS THE OUTPUT DEVICE?\r
29428         000266' 254000  002007'         JRST    ERROR1          ;YES, SYNTAX ERROR\r
29429         000267' 306040  000133          CAIN    A,"["           ;PROJECT-PROGRAMMER PAIR?\r
29430         000270' 254000  000162'         JRST    LSQB            ;YES, HANDLE IT\r
29431         000271' 200000  005102'         MOVE    0,SDEVCHR       ;GET SAVED DEV CHRSTCS\r
29432         000272' 607000  200100          TLNN    0,DTABIT+DSKBIT ;LAST DEVICE DSK OR DTA?\r
29433         000273' 254000  000277'         JRST    LBRACA          ;NO\r
29434         000274' 200000  005101'         MOVE    0,LSTCHR        ;GET LAST CHAR\r
29435         000275' 306000  000072          CAIN    0,72            ;WAS IT COLON?\r
29436         000276' 254000  002007'         JRST    ERROR1          ;YES,:< ILLEGAL\r
29437         000277'                 LBRACA:                         ;NO CONTINUE\r
29438         000277' 260500  000407'         PUSHJ   P, SEMICP       ;PROCESS THE FILE NAME\r
29439         000300' 660340  010000          TRO     F, CONB         ;SET CONTEXT TO PROGRAM NAMES\r
29440         000301' 350000  005077'         AOS     MATCH           ;ADD ONE FOR EACH LEFT < ***VJC\r
29441         000302' 254000  000040'         JRST    GETCHR          ;RETURN FOR MORE CHARACTERS\r
29442 \r
29443         000303' 322600  000305' RBRACK: JUMPE   S,.+2           ;IS THERE A SYMBOL TO HANDLE?\r
29444         000304' 260500  000470'         PUSHJ   P,COMMAP        ;YES,PROCESS THE FILE NAME\r
29445         000305' 620340  010000          TRZ     F,CONB          ;SET CONTEXT TO FILE NAMES\r
29446         000306' 370000  005077'         SOS     MATCH           ;SUBTRACT ONE FOR EACH RIGHT > ***VJC\r
29447         000307' 254000  000040'         JRST    GETCHR          ;RETURN FOR MORE CHARACTERS\r
29448 \r
29449 \r
29450 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 14\r
29451 FUDGE2  MAC     24-APR-78 03:09         COMMA PROCESSOR\r
29452 \r
29453                                 SUBTTL COMMA PROCESSOR\r
29454                                 ;THE COMMA ROUTINE IS ENTERED BY A DISPATCH FROM GETCHR.\r
29455                                 ;IT DETERMINES WHETHER THE COMMA DELIMITS A FILE NAME OR A\r
29456                                 ;PROGRAM NAME, AND TRANSFERS CONTROL EITHER TO SEMICP OR TO\r
29457                                 ;COMMAP.\r
29458 \r
29459         000310' 606340  010000  COMMA:  TRNN    F, CONB         ;FILE NAME OR PRGRAM NAME?\r
29460         000311' 254000  000314'         JRST    COMMAX          ;FILE NAME\r
29461         000312' 260500  000470'         PUSHJ   P, COMMAP       ;PROGRAM NAME\r
29462         000313' 254000  000040'         JRST    GETCHR          ;RETURN FOR MORE CHARACTERS\r
29463 \r
29464         000314' 260500  000407' COMMAX: PUSHJ   P, SEMICP       ;FILE NAME, DO A LOOKUP\r
29465         000315' 402000  005113'         SETZM   PRJPRG          ;CLEAR TEMP. PPN\r
29466         000316' 254000  000040'         JRST    GETCHR          ;RETURN FOR MORE CHARACTERS\r
29467 \r
29468 \r
29469 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 15\r
29470 FUDGE2  MAC     24-APR-78 03:09         COLON PROCESSOR\r
29471 \r
29472                                 SUBTTL COLON PROCESSOR\r
29473                                 ;THIS ROUTINE IS ENTERED BY A DISPATCH FROM THE GETCHR\r
29474                                 ;ITS PURPOSE IS TO INITIALIZE DEVICES USED BY FUDGE2 AND\r
29475                                 ;ASSIGN THEM A CHANNEL NUMBER. IF THE DEVICE IS THE TTY, THE\r
29476                                 ;ROUTINE EXITS IMMEDIATELY, SINCE THE TTY HAS ALREADY BEEN\r
29477                                 ;INITIALIZED. IF A PROGRAM WAS NOT SEEN IN THE PREVIOUS DEVICE\r
29478                                 ;SPECIFICATION, THEN THE PRECEDING FILE HAD NO PROGRAMS\r
29479                                 ;FOLLOWING IT, AND A ZERO IS PLACED IN THE LIST STRUCTURE IN\r
29480                                 ;THE 3-WORD FILE BLOCK, SO THAT THE GETDEV ROUTINE WILL\r
29481                                 ;KNOW THAT THE ENTIRE FILE IS DESIRED. IF THE COLON ROUTINE\r
29482                                 ;IS CALLED WITH 0 IN ACCUMULATOR S, THE ROUTINE ASSUMES\r
29483                                 ;THAT SOMETHING LIKE "DTA3:FOO?DTA4:BAR<X,Y,Z>,MTA0:::/R"\r
29484                                 ;WAS TYPED, AND IT PUTS A PHONY FILE NAME IN FILBUF TO KEEP\r
29485                                 ;THE BOOK-KEEPING STRAIGHT.\r
29486 \r
29487         000317' 660340  000400  COLON:  TRO     F, DEVB         ;DEVICE WAS SEEN IN THIS SPEC.\r
29488         000320' 602340  100000          TRNE    F,POPBAK        ;DEFAULT "DSK" BEING SET\r
29489         000321' 254000  000324'         JRST    .+3             ;SO DON'T CLEAR PROJ-PROG\r
29490         000322' 402000  005112'         SETZM   DEFPPN          ;CLEAR PERMANENT PPN\r
29491         000323' 402000  005113'         SETZM   PRJPRG          ;AND TEMP. ALSO\r
29492         000324' 322600  000373'         JUMPE   S, COLONC       ;NULL S IMPLIES FILES ON MTA,PTR\r
29493         000325' 202600  002522'         MOVEM   S, COLON2       ;SAVE DEVICE FOR INIT\r
29494         000326' 200400  000014          MOVE    G, S            ;GET A COPY OF THE DEVICE NAME\r
29495         000327' 047400  000004          DEVCHR  G,              ;GET ITS CHARACTERISTICS\r
29496         000330' 202400  005102'         MOVEM   G,SDEVCHR       ;SAVE DEV CHRSTCS ***VJC\r
29497         000331' 603400  040010          TLNE    G,TTYBIT!LPTBIT ;IF EITHER TTY OR LPT\r
29498         000332' 402000  005111'         SETZM   LEVEL           ;DON'T DO EXTENDED LOOKUPS EVER\r
29499         000333' 603400  000010          TLNE    G, TTYBIT       ;IS THE DEVICE A TTY?\r
29500         000334' 254000  000040'         JRST    GETCHR          ;YES, RETURN IMMEDIATELY\r
29501         000335' 606340  000001          TRNN    F, DESTB        ;IS THIS THE OUTPUT DEVICE?\r
29502         000336' 254000  000375'         JRST    COLON4          ;YES, GO CHECK SEPARATE THINGS\r
29503         000337' 200240  003324'         MOVE    D, DEVBUF       ;GET POINTER TO DEVICE NAME TABLE\r
29504         000340' 252240  000344' COLON6: AOBJP   D, COLON7       ;MORE DEVICES TO CHECK?\r
29505         000341' 316605  003324'         CAMN    S, DEVBUF(D)    ;HAS DEVICE ALREADY BEEN INITTED?\r
29506         000342' 254000  000040'         JRST    GETCHR          ;YES, DON'T RE-INIT IT\r
29507         000343' 254000  000340'         JRST    COLON6          ;CHECK SOME MORE\r
29508 \r
29509 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 16\r
29510 FUDGE2  MAC     24-APR-78 03:09         COLON PROCESSOR\r
29511 \r
29512 \r
29513         000344' 202605  003324' COLON7: MOVEM   S, DEVBUF(D)    ;STORE THE NEW DEVICE NAME\r
29514         000345' 205040  777777          MOVSI   A, -1           ;FIX UP THE COUNT IN THE BUFFER\r
29515         000346' 272040  003324'         ADDM    A, DEVBUF       ;...\r
29516         000347' 607400  000002          TLNN    G, INBIT        ;CAN DEVICE DO INPUT?\r
29517         000350' 254000  002015'         JRST    ERROR4          ;NO, ERROR\r
29518         000351' 201600  000000          MOVEI   S, 0            ;CLEAR OUT THE SYMBOL WORD\r
29519         000352' 666340  000100          TRON    F, PROGB        ;WAS A PROGRAM NAME SEEN?\r
29520         000353' 260500  000444'         PUSHJ   P, STNULL       ;NO, STORE A NULL IN FILE BLOCK\r
29521         000354' 200040  000005          MOVE    A, D            ;CALCULATE BUFFER HEADER POSITION\r
29522         000355' 221040  000003          IMULI   A, 3            ;3 WORDS PER BUFFER HEADER\r
29523         000356' 271040  004610'         ADDI    A, IBUF         ;ALL BUFFER HEADERS IN IBUF BLOCK\r
29524         000357' 350000  005103' COLON8: AOS     NUMDEV          ;ONE MORE DEVICE SEEN\r
29525         000360' 202040  002523'         MOVEM   A, COLON3       ;SAVE WORD FOR INIT\r
29526         000361' 201040  000014          MOVEI   A, 14           ;SET MODE TO BINARY\r
29527         000362' 603400  040000          TLNE    G,LPTBIT        ;IS DEVICE THE LPT?\r
29528         000363' 201040  000000          MOVEI   A, 0            ;YES, RESTORE MODE TO ASCII\r
29529         000364' 542040  002521'         HRRM    A, COLON0       ;SAVE MODE FOR INIT\r
29530         000365' 137240  005137'         DPB     D, [POINT 4,COLON1,12]\r
29531         000366' 256000  002462'         XCT     COLON1          ;DO OPEN ON DEVICE\r
29532         000367' 254000  002061'         JRST    ERROR9          ;DEVICE NOT AVAILABLE\r
29533         000370' 606340  000001          TRNN    F, DESTB        ;IS THIS THE OUTPUT DEVICE?\r
29534         000371' 254000  000040'         JRST    GETCHR          ;YES, NO MORE CHECKING - EXIT\r
29535         000372' 607400  000004          TLNN    G, DRCTRB       ;DOES DEVICE HAVE A DIRECTORY?\r
29536         000373' 260500  000406' COLONC: PUSHJ   P, COLONB       ;NO, GIVE IT A PHONY FILE NAME\r
29537         000374' 254000  000040'         JRST    GETCHR          ;RETURN FOR MORE CHARACTERS\r
29538 \r
29539                                 ;OUTPUT DEVICE ONLY\r
29540 \r
29541         000375' 202600  003325' COLON4: MOVEM   S, DEVBUF+1     ;SAVE THE DEVICE NAME\r
29542         000376' 201240  000001          MOVEI   D, 1            ;SET DEVICE NUMBER TO 1\r
29543         000377' 607400  000001          TLNN    G, OUTBIT       ;CAN DEVICE DO OUTPUT?\r
29544         000400' 254000  002015'         JRST    ERROR4          ;NO, ERROR\r
29545         000401' 603400  000100          TLNE    G,DTABIT        ;IS DEVICE DTA?\r
29546         000402' 660340  400000          TRO     F,DTAFLG        ;YES, SET IN CASE INDEXING\r
29547         000403' 205040  004605'         MOVSI   A, OBUF+3       ;CALCULATE BUFFER HEADER ADDRESS\r
29548         000404' 660340  000040          TRO     F, TTYCB        ;INDICATE NON-TTY IO\r
29549         000405' 254000  000357'         JRST    COLON8          ;ENTER MAIN PROCESSING LOOP\r
29550 \r
29551         000406' 201600  465757  COLONB: MOVEI   S, 465757       ;FILE NAME OF "FOO"\r
29552                                                                 ;FALLS THROUGH TO SEMICP ROUTINE\r
29553 \r
29554 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 17\r
29555 FUDGE2  MAC     24-APR-78 03:09         FILE NAME PROCESSOR\r
29556 \r
29557                                 SUBTTL FILE NAME PROCESSOR\r
29558                                 ;THIS ROUTINE IS CALLED BY THE COMMA ROUTINE WHEN IT HAS\r
29559                                 ;BEEN DETERMINED THAT THE CONTEXT OF THE COMMA IS THAT OF A\r
29560                                 ;FILE NAME. NULL FILES ARE IGNORED BY THE ROUTINE, AND CAUSE\r
29561                                 ;AN IMMEDIATE RETURN TO GETCHR. FOR OUTPUT DEVICES, AN ENTER\r
29562                                 ;IS PERFORMED, WHILE FOR INPUT DEVICES, THE FLOW OF CONTROL IS\r
29563                                 ;AS FOLLOWS:\r
29564                                 ;       1. IF THE PREVIOUS FILE HAD NO PROGRAMS, A ZERO IS\r
29565                                 ;          STORED IN THE 3RD WORD OF THE FILE BLOCK OF THAT\r
29566                                 ;          FILE - THE WORD THAT ORDINARILY POINTS TO THE \r
29567                                 ;          PROGRAM SUBLIST.\r
29568                                 ;       2. THE PROGRAM LIST FOR THE PREVIOUS FILE IS TERMINATED\r
29569                                 ;          BY PUTTING A ZERO IN THE PROGRAM BUFFER, AND PUTTING\r
29570                                 ;          A POINTER TO THE ZERO IN THE 3RD WORD OF THIS FILE\r
29571                                 ;          BLOCK (NOT THE PREVIOUS BLOCK)\r
29572                                 ;       3. THE FILE NAME AND FILE NAME EXTENSION AND THE DEVICE\r
29573                                 ;          CHANNEL NUMBER OF THE CURRENT FILE ARE STORED.\r
29574 \r
29575         000407' 606340  000400  SEMICP: TRNN    F,DEVB          ;HAS A DEVICE BEEN SEEN?\r
29576         000410' 260500  000150'         PUSHJ   P,NODEV         ;NO, SO ASSUME "DSK"\r
29577         000411' 312740  005123'         CAME    SW,DTCLR        ;Z SWITCH? YES, OPERATE ON OUTPUT ONLY\r
29578         000412' 137240  005140'         DPB     D, [POINT 4,SW,12]\r
29579         000413' 622340  000002          TRZE    F, SAVEB        ;IS THERE A SWITCH TO PROCESS?\r
29580         000414' 256000  000017          XCT     SW              ;YES, EXECUTE IT\r
29581         000415' 322600  000462'         JUMPE   S, SEMIC3       ;IGNORE NULL FILES\r
29582 \r
29583         000416' 626340  001000  SEMICA: TRZN    F, EXTB         ;EXPLICIT EXTENSION SEEN?\r
29584         000417' 505700  624554          HRLI    EXT, 624554     ;NO, REPLACE WITH REL"\r
29585         000420' 606340  000001          TRNN    F, DESTB        ;OUTPUT DEVICE?\r
29586         000421' 254000  000447'         JRST    SEMIC2          ;YES, PROCESS SEPARATELY\r
29587         000422' 261500  000014          PUSH    P, S            ;SAVE FILE NAME\r
29588         000423' 201600  000000          MOVEI   S, 0            ;PUT IN A ZERO\r
29589         000424' 626340  000100          TRZN    F, PROGB        ;WAS A PROGRAM SEEN IN PREVIOUS?\r
29590         000425' 260500  000444'         PUSHJ   P, STNULL       ;NO, CLOSE OUT PREVIOUS FILE\r
29591         000426' 260500  001144'         PUSHJ   P, PUTPRG       ;YES, CLOSE OUT PREVIOUS PRGLST\r
29592         000427' 262500  000014  SEMIC4: POP     P, S            ;RESTORE FILE NAME\r
29593         000430' 316600  005141'         CAMN    S,[12B5]        ;IS IT * ?***DMN\r
29594         000431' 254000  001675'         JRST    ASTRSK          ;YES ***DMN\r
29595         000432' 260500  001137'         PUSHJ   P, PUTFIL       ;NO, STORE FILENAME\r
29596         000433' 200600  005112'         MOVE    S,DEFPPN        ;GET GLOBAL PPN\r
29597         000434' 260500  001151'         PUSHJ   P,PUTPPN        ;SAVE IT\r
29598         000435' 200600  000016          MOVE    S, EXT          ;GET FILE NAME EXTENSION\r
29599         000436' 260500  001137'         PUSHJ   P, PUTFIL       ;STORE IT\r
29600         000437' 542241  000000          HRRM    D, (A)          ;STORE CHANNEL NUMBER, ALSO\r
29601         000440' 200600  005113'         MOVE    S,PRJPRG        ;GET TEMP. PPN\r
29602         000441' 260500  001151'         PUSHJ   P,PUTPPN        ;SAVE IT ALSO\r
29603         000442' 550600  002724'         HRRZ    S, PRGBUF       ;GET A POINTER TO PROGRAM LIST\r
29604         000443' 254000  001137'         JRST    PUTFIL          ;STORE IT AND EXIT\r
29605 \r
29606         000444' 550040  002524' STNULL: HRRZ    A, FILBUF       ;GET ADDRESS OF CURRENT BLOCK\r
29607         000445' 402001  000000          SETZM   (A)             ;CLOSE OUT THE FILE\r
29608         000446' 263500  000000          POPJ    P,              ;EXIT\r
29609 \r
29610 \r
29611 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 18\r
29612 FUDGE2  MAC     24-APR-78 03:09         ENTER ON OUTPUT DEVICE DIRECTORY\r
29613 \r
29614                                 SUBTTL ENTER ON OUTPUT DEVICE DIRECTORY\r
29615 \r
29616         000447' 202600  004572' SEMIC2: MOVEM   S, EBLOCK       ;SAVE FILE NAME FOR ENTER\r
29617         000450' 202700  004573'         MOVEM   EXT, EBLOCK+1   ;SAVE FILE NAME EXTENSION\r
29618         000451' 137240  005142'         DPB     D, [POINT 4,SEMIC1,12]\r
29619         000452' 402000  004574'         SETZM   EBLOCK+2        ;CLEAR DATA AND PROTECTION\r
29620         000453' 200140  005102'         MOVE    T,SDEVCHR       ;GET CHARACTERISTICS\r
29621         000454' 607140  200000          TLNN    T,DSKBIT        ;IF NOT A DSK\r
29622         000455' 402000  005111'         SETZM   LEVEL           ;CLEAR LEVEL D FLAG\r
29623         000456' 332140  005111'         SKIPE   T,LEVEL         ;EITHER -2 OR 0\r
29624         000457' 254000  000463'         JRST    DEFENT          ;SAVE ENTRY BLOCK\r
29625         000460' 256000  002463'         XCT     SEMIC1          ;DO AN ENTER ON THE OUTPUT DEVICE\r
29626         000461' 254000  002076'         JRST    ERR14           ;DIRECTORY FULL\r
29627         000462' 263500  000000  SEMIC3: POPJ    P,              ;EXIT\r
29628 \r
29629         000463' 200140  005143' DEFENT: MOVE    T,[XWD EBLOCK,SVENTR]\r
29630         000464' 251140  005115'         BLT     T,SVENTR+1      ;SAVE EBLOCK\r
29631         000465' 201140  000011          MOVEI   T,RIBALC        ;SET FOR 11 WORD LOOKUP\r
29632         000466' 202140  004570'         MOVEM   T,EBLOCK-2      ;IN EXTENDED LOOKUP\r
29633         000467' 254000  000462'         JRST    SEMIC3          ;DEFER ENTRY TIL AFTER LOOKUP\r
29634 \r
29635 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 19\r
29636 FUDGE2  MAC     24-APR-78 03:09         THE PROGRAM NAME PROCESSOR\r
29637 \r
29638                                 SUBTTL THE PROGRAM NAME PROCESSOR\r
29639                                 ;THE COMMAP ROUTINE IS ENTERED BY A CALL FROM THE COMMA\r
29640                                 ;ROUTINE WHEN THE CONTEXT OF A COMMA IS THAT OF A PROGRAM NAME\r
29641                                 ;DELIMITER. ITS PURPOSE IS TO SAVE UP THE PROGRAM NAMES IT SEES\r
29642                                 ;IN THE PROGRAM BUFFER PRGBUF. THE PROGRAM NAMES ARE CONVERTED\r
29643                                 ;TO RADIX 50 REPRESENTATION, AND A CALL TO PUTPRG STORES THE\r
29644                                 ;PROGRAM NAME FOR LATER REFERENCE BY THE VARIOUS FUDGE SUBROUTINES\r
29645                                 ;------------------------------------------------------------------\r
29646                                 ;RADIX50 - SIXBIT CODE CONVERSION TABLE\r
29647 \r
29648                                 ;CHARACTER      SIXBIT          RADIX50\r
29649 \r
29650                                 ;0-9            20-31           01-12\r
29651                                 ;A-Z            41-72           13-44\r
29652                                 ;BLANK          00              00\r
29653                                 ;PERIOD         16              45\r
29654                                 ;$              04              46\r
29655                                 ;-------------------------------------------------------------------\r
29656                                 ;THE SYMBOL IS ASSUMED TO LEFT-JUSTIFIED UPON ENTERING, AND\r
29657                                 ;IS RIGHT-JUSTIFIED BEFORE CONVERSION TO RADIX 50.\r
29658 \r
29659                                 ;FLAG SETTINGS: THE PROGRAM BIT PROGB IS SET TO 1, AND THE FILE\r
29660                                 ;BIT FILEB IS SET TO 0.\r
29661         000470' 660340  000100  COMMAP: TRO     F, PROGB        ;SET PROGRAM BIT\r
29662         000471' 606340  000001          TRNN    F, DESTB        ;IS THIS THE OUTPUT DEVICE?\r
29663         000472' 254000  002007'         JRST    ERROR1          ;YES, SYNTAX ERROR\r
29664         000473' 200300  005117'         MOVE    E, SYMPTR       ;SET UP A BYTE POINTER TO S\r
29665         000474' 201100  000006          MOVEI   B, 6            ;SET COUNTER TO SIX\r
29666         000475' 201200  000000          MOVEI   C, 0\r
29667         000476' 322600  000503'         JUMPE   S, COMMA1       ;NULL SYMBOL?\r
29668         000477' 602600  000077  COMMA3: TRNE    S, 77           ;IS SYMBOL RIGHT-JUSTIFIED YET?\r
29669         000500' 254000  000503'         JRST    COMMA1          ;YES, GO CONVERT TO RADIX 50\r
29670         000501' 241600  777772          ROT     S, -6           ;NO, SHIFT IT ONE PLACE RIGHT\r
29671         000502' 254000  000477'         JRST    COMMA3          ;CHECK AGAIN\r
29672         000503' 221200  000050  COMMA1: IMULI   C, 50           ;CONVERT TO RADIX50\r
29673         000504' 134040  000006          ILDB    A, E            ;PICK UP NEXT CHARACTER IN S\r
29674         000505' 322040  000516'         JUMPE   A, COMMA4       ;A BLANK IS A BLANK IS A BLANK!\r
29675         000506' 306040  000004          CAIN    A, 4            ;IS IT A <$>?\r
29676         000507' 271040  000070          ADDI    A, 70           ;YES, COMPENSATE FOR SUBTRACTION\r
29677         000510' 306040  000016          CAIN    A, 16           ;IS IT A <.>?\r
29678         000511' 271040  000055          ADDI    A, 55           ;YES, COMPENSATE FOR SUBTRACTION\r
29679         000512' 303040  000031          CAILE   A, 31           ;TRANSLATE TO RADIX 50 CODE\r
29680         000513' 275040  000007          SUBI    A, 7            ;LETTER - SUBTRACT 26\r
29681         000514' 275040  000017          SUBI    A, 17           ;NUMBER - SUBTRACT 17\r
29682         000515' 270200  000001          ADD     C, A            ;COMBINE WITH PARTIAL WORD\r
29683         000516' 367100  000503' COMMA4: SOJG    B, COMMA1       ;LOOP FOR SIX CHARACTERS\r
29684         000517' 200600  000004          MOVE    S, C            ;PUT SYMBOL BACK IN S\r
29685         000520' 254000  001144'         JRST    PUTPRG          ;STORE IT AND EXIT\r
29686 \r
29687 \r
29688 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 20\r
29689 FUDGE2  MAC     24-APR-78 03:09         THE ALTMODE PROCESSOR\r
29690 \r
29691                                 SUBTTL THE ALTMODE PROCESSOR\r
29692                                 ;THE ALTMODE SUBROUTINE IS CALLED BY A DISPATCH FROM THE\r
29693                                 ;GETCHR ROUTINE WHEN A $ IS SEEN IN THE COMMAND STRING. IT SIGNALS\r
29694                                 ;THE END OF THE COMMAND STRING. A CHECK IS MADE ON THE SYNTAX\r
29695                                 ;OF THE COMMAND STRING, TO SEE IF AN OUTPUT DEVICE WAS SPEC-\r
29696                                 ;IFIED, AND TO SEE IF A COMMAND WAS GIVEN. THE LIST\r
29697                                 ;STRUCTURE FOR THE FILE NAMES AND PROGRAM NAMES IS TERMINATED\r
29698                                 ;BY TWO CALLS TO SEMICP, THE LAST OF WHICH HAS A FILE NAME OF 0.\r
29699                                 ;THE POINTERS AT THE TOP OF THE FILBUF,PRGBUF AND DEVBUF BUFFERS\r
29700                                 ;ARE RESET FOR LATER USER BY THE VARIOUS SUBROUTINES.\r
29701 \r
29702         000521' 606340  004000  ALTMOD: TRNN    F,INFOB         ; IS THERE A COMMAND?\r
29703         000522' 254000  000000'         JRST    FUDGE2          ; NO, RESTART\r
29704         000523' 260500  002243'         PUSHJ   P,CRLF          ; ACKNOWLEDGE WITH A CR LF\r
29705         000524' 660340  040000          TRO     F,CRLFTY        ;INDICATE CR,LF TYPED\r
29706         000525' 260500  000407'         PUSHJ   P, SEMICP       ;STORE THIS FILE NAME\r
29707         000526' 201600  000000          MOVEI   S, 0            ;MAKE A NULL FILE NAME\r
29708         000527' 260500  000416'         PUSHJ   P, SEMICA       ;TERMINATE THE LIST STRUCTURE\r
29709         000530' 200040  005124'         MOVE    A, FILXWD       ;SET UP A BLT POINTER TO FIX\r
29710         000531' 251040  002527'         BLT     A, FILBUF+3     ;THE MASTER FILE PART,1ST WORD OF\r
29711         000532' 402000  002530'         SETZM   FILBUF+4        ;FILBUF WAS JUNK,NOW 4TH WORD=0\r
29712         000533' 201040  002531'         MOVEI   A, FILBUF+5     ;RESET POINTER TO TRANS. FILES\r
29713         000534' 202040  002524'         MOVEM   A, FILBUF       ;...\r
29714         000535' 201040  003125'         MOVEI   A,PPNBUF+1      ;RESET PPNBUF\r
29715         000536' 202040  003124'         MOVEM   A,PPNBUF        ;AS IT WAS AT START\r
29716         000537' 322640  002007'         JUMPE   DIS, ERROR1     ;NO COMMAND SEEN?\r
29717         000540' 606340  000001          TRNN    F, DESTB        ;NO OUTPUT FILE MENTIONED?\r
29718         000541' 254000  002007'         JRST    ERROR1          ;SYNTAX ERROR\r
29719         000542' 332000  005077'         SKIPE   MATCH           ;LEFT < EQU RIGHT > ?***VJC\r
29720         000543' 254000  002007'         JRST    ERROR1          ;SYNTAX ERROR ***VJC\r
29721         000544' 602340  000040          TRNE    F, TTYCB        ;CHANGE OUTPUT IF ON TTY\r
29722         000545' 660340  000020          TRO     F, TTYOB        ;...\r
29723                                                                 ;AND FALL INTO INBUF0\r
29724 \r
29725 \r
29726 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 21\r
29727 FUDGE2  MAC     24-APR-78 03:09         THE ALTMODE PROCESSOR\r
29728 \r
29729 \r
29730                                 ;SEE HOW MANY 204(8) WORD BLOCKS FIT IN JOBREL-JOBFF.\r
29731                                 ;DIVIDE THIS NUMBER BY THE NUMBER OF DEVICES\r
29732                                 ;IN DEVBUF TABLE. THIS GIVES THE NO. OF BLOCKS\r
29733                                 ;THAT CAN BE ASSIGNED TO EACH DEVICE, IF ZERO,\r
29734                                 ;NEED MORE CORE. THE REMAINDER OF THE DIVISION\r
29735                                 ;INDICATES EXTRA BLOCKS THAT MAY BE\r
29736                                 ;ALLOCATED TO OUTPUT OR INPUT DEVICES\r
29737 \r
29738         000546' 550040  000000* INBUF0: HRRZ    A, JOBREL       ;GET TOP OF JOB AREA\r
29739         000547' 274040  000000*         SUB     A,JOBFF         ;BUFFER AREA AVAILABLE\r
29740         000550' 231040  000204          IDIVI   A, 204          ;NUMBER OF DECTAPE BLOCKS\r
29741         000551' 230040  005103'         IDIV    A,NUMDEV        ;DIVIDED BY NUMBER OF DEVICES\r
29742         000552' 322040  000573'         JUMPE   A,INBUFG        ;NOT ENOUGH CORE\r
29743         000553' 201300  000002          MOVEI   E,2             ;START INBUFS ON DEVICE #2\r
29744         000554' 602340  000040          TRNE    F, TTYCB        ;IS OUTPUT ON TTY?\r
29745         000555' 254000  000566'         JRST    INBUF1          ;NO, DO AN OUTBUF\r
29746         000556' 200200  000001  INBUF2: MOVE    C, A            ;PICK UP NUMBER OF BLOCKS\r
29747         000557' 361100  000561'         SOJL    A+1,.+2         ;ANY EXTRA BLOCKS? (REMAINDER)\r
29748         000560' 340200  000000          AOJ     C,              ;YES, USE THEM\r
29749         000561' 137300  005144'         DPB     E, [POINT 4, INBUF3,12]\r
29750         000562' 256000  002464'         XCT     INBUF3          ;PERFORM THE INBUF\r
29751         000563' 315300  000005          CAMGE   E, D            ;MORE DEVICES TO TAKE CARE OF?\r
29752         000564' 344300  000556'         AOJA    E, INBUF2       ;YES, PROCESS THEM\r
29753         000565' 254015  000000          JRST    (DIS)           ;NO, GO TO APPROPRIATE SUBROUTINE\r
29754 \r
29755 \r
29756         000566' 200200  000001  INBUF1: MOVE    C, A            ;PICK UP NUMBER OF BLOCKS\r
29757         000567' 361100  000571'         SOJL    A+1,.+2         ;ANY EXTRA BLOCKS?\r
29758         000570' 340200  000000          AOJ     C,              ;YES, GIVE ONE TO OUTPUT\r
29759         000571' 065044  000000  INBUF4: OUTBUF  1,(C)           ;OUTBUF ON DEVICE #1\r
29760         000572' 254000  000556'         JRST    INBUF2          ;GO DO SOME INBUFS\r
29761                                 ;ASK FOR MORE CORE\r
29762 \r
29763         000573' 550040  000546* INBUFG: HRRZ    A,JOBREL        ;GET ANOTHER K OF CORE\r
29764         000574' 271040  002000          ADDI    A,2000\r
29765         000575' 047040  000011          CORE    A,\r
29766         000576' 254000  002170'         JRST    ERR22           ;NOT AVAILABLE\r
29767         000577' 254000  000546'         JRST    INBUF0          ;TRY TO SET UP BUFFERS\r
29768 \r
29769 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 22\r
29770 FUDGE2  MAC     24-APR-78 03:09         FUDGE2 COMMAND PROCESSORS\r
29771 \r
29772                                 SUBTTL  FUDGE2 COMMAND PROCESSORS\r
29773 \r
29774                                 ;LIST PROCESSOR\r
29775                                 ;THIS ROUTINE PROCESSES THE L COMMAND IN FUDGE2. BINARY\r
29776                                 ;PROGRAMS ARE READ, AND THEIR NAMES OUTPUT, UNTIL AN END\r
29777                                 ;OF FILE IS REACHED.\r
29778 \r
29779         000600' 606340  000020  LIST:   TRNN    F,TTYOB         ;OUTPUT TO TTY?\r
29780         000601' 254000  000610'         JRST    LIST1           ;MODE MUST BE ASCII\r
29781         000602' 062040  000003          GETSTS  1,T             ;GET STATUS\r
29782         000603' 626140  000014          TRZN    T,14            ;BINARY MODE SET?\r
29783         000604' 254000  000610'         JRST    LIST1           ;NO, MUST BE ASCII\r
29784         000605' 060043  000000          SETSTS  1,(T)           ;CHANGE MODE TO ASCII\r
29785         000606' 205140  000700          MOVSI   T,700           ;SET UP NEW BYTE POINTER\r
29786         000607' 202140  004606'         MOVEM   T,OBUF+4        ;SO WORD COUNT WILL BE CORRECT\r
29787         000610' 260500  000772' LIST1:  PUSHJ   P, MSTGET       ;GET THE MASTER DEVICE\r
29788         000611' 254000  002024'         JRST    ERROR6          ;NOT ENOUGH ARGUMENTS\r
29789         000612' 476000  005116'         SETOM   NOWARN          ;DON'T GIVE WARNING MESSAGE IF INDEX SEEN\r
29790         000613' 260500  001156' LIST2:  PUSHJ   P, READ         ;READ A PROGRAM NAME\r
29791         000614' 254000  002257'         JRST    EXIT            ;ALL DONE\r
29792         000615' 200100  000001          MOVE    B, A            ;GET THE PROGRAM NAME IN B\r
29793         000616' 260500  002220'         PUSHJ   P, PTYPO        ;TYPE IT OUT\r
29794         000617' 260500  002243'         PUSHJ   P, CRLF         ;TYPE A CRLF\r
29795         000620' 254000  000613'         JRST    LIST2           ;RETURN FOR MORE PROGRAM NAMES\r
29796 \r
29797 \r
29798                                 ;REPLACE PROCESSOR\r
29799                                 ;THIS ROUTINE PROCESSES THE R COMMAND IN FUDGE2. THE TOTAL\r
29800                                 ;COMMAND STRING IS BROKEN INTO A LIST OF PROGRAMS FOR THE MASTER\r
29801                                 ;DEVICE, AND A LIST OF PROGRAMS FOR THE TRANSACTION DEVICES.\r
29802                                 ;THE ROUTINE READS THE MASTER FILE UNTIL ONE OF THE DESIRED\r
29803                                 ;REPLACEMENT PROGRAMS IS REACHED, THEN SWITCHES TO THE \r
29804                                 ;TRANSACTION DEVICE TO FIND THE PROGRAM WHICH IS TO REPLACE THE\r
29805                                 ;PROGRAM IN THE MASTER FILE. AFTER THE REPLACEMENT HAS BEEN\r
29806                                 ;EFFECTED, RESET IS CALLED TO RESTORE THE MASTER DEVICE TO ITS\r
29807                                 ;OLD POSITION.\r
29808 \r
29809         000621' 260500  000772' REPLCE: PUSHJ   P, MSTGET       ;GET A PROGRAM FROM MASTER DEVICE\r
29810         000622' 254000  000656'         JRST    IPROC7          ;NO MORE, COPY REST OF MASTER\r
29811         000623' 260500  000743'         PUSHJ   P, COPYTO       ;COPY UP TO THE PROGRAM NAME\r
29812         000624' 260500  000777'         PUSHJ   P, TRNGET       ;GET A PROGRAM FROM TRANSACTION\r
29813         000625' 254000  002022'         JRST    ERROR5          ;USER DID NOT SUPPLY ENOUGH\r
29814         000626' 260500  000751'         PUSHJ   P, FINDCP       ;FIND THE PROGRAM AND COPY IT\r
29815         000627' 306240  000002          CAIN    D, 2            ;HAS THE MASTER DEVICE BEEN MOVED?\r
29816         000630' 260500  001002'         PUSHJ   P, RESET        ;YES, RESET IT\r
29817         000631' 254000  000621'         JRST    REPLCE          ;LOOK FOR MORE REPLACEMENTS\r
29818 \r
29819 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 23\r
29820 FUDGE2  MAC     24-APR-78 03:09         INSERT PROCESSOR\r
29821 \r
29822                                 SUBTTL INSERT PROCESSOR\r
29823                                 ;THIS SUBROUTINE PROCESSES THE I COMMAND IN FUDGE. IT READS AND\r
29824                                 ;WRITES PROGRAMS FROM THE MASTER FILE UNTIL IT FINDS THE\r
29825                                 ;PROGRAM NAME CURRENTLY POINTED TO, AT WHICH TIME IT STARTS READING\r
29826                                 ;FROM THE TRANSACTION DEVICE, MAKING AN INSERTION AT THE\r
29827                                 ;PROPER PLACE.\r
29828 \r
29829         000632' 260500  000772' INSERT: PUSHJ   P, MSTGET       ;GET A PROGRAM FROM MASTER FILE\r
29830         000633' 254000  000656'         JRST    IPROC7          ;NO MORE, COPY REST OF MASTER\r
29831         000634' 260500  000743'         PUSHJ   P, COPYTO       ;COPY UP TO A PROGRAM NAME\r
29832         000635' 202200  002517'         MOVEM   C, SAVEAC       ;SAVE SPECIAL ACCUMULATOR\r
29833         000636' 200240  005145'         MOVE    D, [XWD ENTBLK,SVEBLK]\r
29834         000637' 251244  000506          BLT     D, X+1(C)       ;MOVE ENTRY BLOCK INTO SAFE PLACE\r
29835         000640' 260500  000777'         PUSHJ   P, TRNGET       ;GET NEXT TRANSACTION FILE\r
29836         000641' 254000  002022'         JRST    ERROR5          ;NOT ENOUGH TRANSACTION FILES\r
29837         000642' 260500  000751'         PUSHJ   P, FINDCP       ;FIND TRANSACTION FILE AND COPY\r
29838         000643' 302240  000002          CAIE    D, 2            ;HAS MASTER FILE BEEN JIGGLED?\r
29839         000644' 254000  000647'         JRST    FIXUP           ;NO, RESTORE THE ENTRY BLOCK\r
29840         000645' 260500  001002'         PUSHJ   P, RESET        ;YES, RESET IT\r
29841         000646' 254000  000654'         JRST    INSER1          ;WRITE OUTGO BACK FOR MORE INSERTIONS\r
29842 \r
29843         000647' 200200  002517' FIXUP:  MOVE    C, SAVEAC       ;RESTORE SPECIAL AC\r
29844         000650' 204240  005145'         MOVS    D, [XWD ENTBLK,SVEBLK]\r
29845         000651' 251244  000000          BLT     D, (C)          ;RESTORE ENTRY BLOCK\r
29846         000652' 201240  000002          MOVEI   D, 2            ;SET UP CHANNEL AC\r
29847         000653' 201640  000006          MOVEI   DIS, 6          ;SET UP BUFFER HEADER INDEX\r
29848         000654' 260500  001305' INSER1: PUSHJ   P, WRITE        ;WRITE OUT THE CURRENT FILE\r
29849         000655' 254000  000632'         JRST    INSERT          ;GO BACK FOR MORE INSERTIONS\r
29850 \r
29851         000656' 260500  000737' IPROC7: PUSHJ   P, COPY         ;COPY REST OF MASTER FILE\r
29852         000657' 254000  002257'         JRST    EXIT            ;EXIT\r
29853 \r
29854 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 24\r
29855 FUDGE2  MAC     24-APR-78 03:09         EXTRACT PROCESSOR\r
29856 \r
29857                                  SUBTTL EXTRACT PROCESSOR\r
29858                                 ;THIS ROUTINE PROCESSES THE E COMMAND IN FUDGE. RATHER THAN\r
29859                                 ;ONE MASTER AND SEVERAL TRANSACTION FILES, ALL FILES ARE\r
29860                                 ;TREATED THE SAME. AFTER A CALL TO EITHER MSTGET OR TRNGET\r
29861                                 ;PROGRAMS ARE SEARCHED FOR AND WRITTEN ON THE OUTPUT DEVICE.\r
29862 \r
29863         000660' 476000  005116' EXTRCT: SETOM   NOWARN          ;NO WARNING MESSAGE\r
29864         000661' 260500  000772'         PUSHJ   P, MSTGET       ;GET A PROGRAM FROM MASTER DEVICE\r
29865         000662' 254000  000670'         JRST    EPROC1          ;ALL DONE WITH MASTER DEVICE\r
29866         000663' 326540  000666'         JUMPN   R,.+3           ;ANY PROGRAMS THIS FILE? **VJC\r
29867         000664' 260500  000737'         PUSHJ   P,COPY          ;NO, COPY ENTIRE FILE ***VJC\r
29868         000665' 254000  000670'         JRST    EPROC1          ; ***VJC\r
29869         000666' 260500  000751'         PUSHJ   P, FINDCP       ;FIND THE PROGRAM AND COPY IT\r
29870         000667' 254000  000660'         JRST    EXTRCT          ;RETURN FOR MORE MASTER PROGRAMS\r
29871         000670' 201040  002531' EPROC1: MOVEI   A, FILBUF+5     ;GET PROGRAM FROM TRANS BUFFER\r
29872         000671' 202040  002524'         MOVEM   A, FILBUF       ;INITIALIZE POINTER FIRST\r
29873         000672' 260500  001031' EPROC2: PUSHJ   P, GETDEV       ;...\r
29874         000673' 254000  002257'         JRST    EXIT            ;ALL DONE\r
29875         000674' 326540  000677'         JUMPN   R,.+3           ;ANY PROGRAMS THIS FILE?  ***VJC\r
29876         000675' 260500  000737'         PUSHJ   P,COPY          ;NO, COPY ENTIRE FILE ***VJC\r
29877         000676' 254000  000672'         JRST    EPROC2          ; ***VJC\r
29878         000677' 260500  000751'         PUSHJ   P, FINDCP       ;FIND THE PROGRAM AND COPY IT\r
29879         000700' 254000  000672'         JRST    EPROC2          ;RETURN FOR MORE TRANS FILES\r
29880 \r
29881 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 25\r
29882 FUDGE2  MAC     24-APR-78 03:09         DELETE PROCESSOR\r
29883 \r
29884                                 SUBTTL DELETE PROCESSOR\r
29885                                 ;THIS ROUTINE PROCESSES THE D COMMAND IN FUDGE2.  ONLY ONE\r
29886                                 ;INPUT FILE WILL BE READ, AND THE PROGRAM NAMES ASSOCIATED\r
29887                                 ;WITH ITS LIST WILL BE DELETED.\r
29888 \r
29889         000701' 260500  000772' DELETE: PUSHJ   P, MSTGET       ;GET A PROGRAM TO BE DELETED\r
29890         000702' 254000  000656'         JRST    IPROC7          ;FINISH OFF THE MASTER FILE\r
29891         000703' 260500  001156' DPROC1: PUSHJ   P, READ         ;READ A PROGRAM\r
29892         000704' 254000  002026'         JRST    ERROR7          ;EOF - CANT FIND IT\r
29893         000705' 316540  000001          CAMN    R, A            ;CORRECT PROGRAM?\r
29894         000706' 254000  000701'         JRST    DELETE          ;YES, GET THE NEXT ONE\r
29895         000707' 260500  001305'         PUSHJ   P, WRITE        ;NO, WRITE THIS ONE OUT\r
29896         000710' 254000  000703'         JRST    DPROC1          ;TRY AGAIN\r
29897 \r
29898                                 ;APPEND PROCESSOR\r
29899                                 ;THIS ROUTINE HANDLES THE A COMMAND IN FUDGE2. IT WILL COPY\r
29900                                 ;THE ENTIRE MASTER FILE, THEN START OBTAINING TRANSACTION\r
29901                                 ;DEVICES WITH CALLS TO TRNGET, APPENDING ONE OR MORE\r
29902                                 ;PROGRAMS FROM EACH FILE.\r
29903 \r
29904         000711' 260500  000772' APPEND: PUSHJ   P, MSTGET       ;GET A PROGRAM FROM MASTER FILE\r
29905         000712' 254000  002024'         JRST    ERROR6          ;NOT ENOUGH ARGUMENTS\r
29906         000713' 260500  000737'         PUSHJ   P, COPY         ;COPY ENTIRE FILE\r
29907         000714' 201040  002531'         MOVEI   A, FILBUF+5     ;INITIALIZE POINTER FOR TRANS\r
29908         000715' 202040  002524'         MOVEM   A, FILBUF       ;...\r
29909         000716' 260500  001031' APROC3: PUSHJ   P, GETDEV       ;GET A PROGRAM NAME\r
29910         000717' 254000  002257'         JRST    EXIT            ;ALL DONE\r
29911         000720' 260500  000751'         PUSHJ   P, FINDCP       ;FIND THE PROGRAM AND COPY IT\r
29912         000721' 254000  000716'         JRST    APROC3          ;GET NEXT APPENDATION\r
29913 \r
29914 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 26\r
29915 FUDGE2  MAC     24-APR-78 03:09         DELETE PROCESSOR\r
29916 \r
29917 \r
29918                                 ;THIS ROUTINE PROCESSES THE X COMMAND (INDEX LIBRARY)\r
29919                                 ;AND FALLS INTO DELETE LOCAL SYMBOLS CODE.\r
29920                                 ;IF NOT DESIRED SKIP TO DELCPY+1\r
29921 \r
29922         000722' 200040  003325' INDEX:  MOVE    A,DEVBUF+1      ;GET OUTPUT DEVICE\r
29923         000723' 047040  000004          DEVCHR  A,              ;GET ITS CHARACTERISTICS\r
29924         000724' 607040  200100          TLNN    A,DSKBIT!DTABIT ;ONLY ALLOW DSK AND DTA AS LIBRARY DEVICES\r
29925         000725' 254000  002172'         JRST    ERR23           ;GIVE ERROR MESSAGE\r
29926         000726' 476000  005116'         SETOM   NOWARN          ;NO WARNING MESSAGE IF /X\r
29927         000727' 660340  200000          TRO     F,XFLG          ;SET INDEX FLAG\r
29928                                 ;       TROA    F,XFLG          ;SET /X BUT NOT /C\r
29929 \r
29930                                 ;DELETE LOCAL SYMBOLS AND COPY PROCESSOR\r
29931                                 ;THIS ROUTINE PROCESSES THE C COMMAND\r
29932                                 ;ONLY THE MASTER FILE IS HANDLED\r
29933 \r
29934         000730' 660340  000200  DELCPY: TRO     F, NOLOCB       ;SET FLAG TO DELETE LOCAL SYMBOLS\r
29935         000731' 260500  000772'         PUSHJ   P, MSTGET       ;GET A PROGRAM FROM MASTER FILE\r
29936         000732' 254000  002024'         JRST    ERROR6          ;NOT ENOUGH ARGUMENTS\r
29937         000733' 260500  000737'         PUSHJ   P, COPY         ;COPY ENTIRE FILE\r
29938         000734' 606340  200000          TRNN    F,XFLG          ;INDEX FLAG ON?\r
29939         000735' 254000  002257'         JRST    EXIT            ;ALL DONE\r
29940         000736' 254000  001571'         JRST    INDEX3          ;YES DO PASS 2\r
29941 \r
29942 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 27\r
29943 FUDGE2  MAC     24-APR-78 03:09         FUDGE2 IO SUBROUTINES\r
29944 \r
29945                                 SUBTTL  FUDGE2 IO SUBROUTINES\r
29946 \r
29947                                 ;ROUTINES TO COPY FILES, COPY UP TO A GIVEN PROGRAM IN A FILE\r
29948                                 ;AND TO FIND A GIVEN PROGRAM IN A FILE AND COPY IT.\r
29949 \r
29950                                 ;THE COPY ROUTINE WILL COPY BINARY PROGRAMS FROM WHEREVER THE\r
29951                                 ;INPUT DEVICE HAPPENS TO BE WHEN IT IS CALLED, UP TO THE\r
29952                                 ;END OF FILE. SINCE COPY IS CALLED WITH A PUSHJ, THE END-OF-\r
29953                                 ;FILE EXIT IN INGET WILL EXIT TO THE PLACE THAT CALLED COPY.\r
29954 \r
29955         000737' 260500  001156' COPY:   PUSHJ   P, READ         ;READ A PROGRAM\r
29956         000740' 263500  000000          POPJ    P,              ;EXIT WHEN ALL THROUGH FILE\r
29957         000741' 260500  001305'         PUSHJ   P, WRITE        ;WRITE OUT THE PROGRAM\r
29958         000742' 254000  000737'         JRST    COPY            ;RETURN FOR MORE PROGRAMS\r
29959 \r
29960                                 ;THE COPYTO ROUTINE WILL READ AND WRITE PROGRAMS FROM THE\r
29961                                 ;INPUT DEVICE UNTIL THE PROGRAM WHOSE NAME IS IN ACCUMULATOR\r
29962                                 ;R IS FOUND, AT WHICH TIME IT EXITS\r
29963 \r
29964         000743' 260500  001156' COPYTO: PUSHJ   P, READ         ;READ A PROGRAM\r
29965         000744' 254000  002026'         JRST    ERROR7          ;EOF - CANT FIND IT\r
29966         000745' 316540  000001          CAMN    R, A            ;IS IT THE CORRECT PROGRAM?\r
29967         000746' 263500  000000          POPJ    P,              ;YES, EXIT\r
29968         000747' 260500  001305'         PUSHJ   P, WRITE        ;NO, WRITE IT OUT\r
29969         000750' 254000  000743'         JRST    COPYTO          ;READ SOME MORE PROGRAMS\r
29970 \r
29971 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 28\r
29972 FUDGE2  MAC     24-APR-78 03:09         FUDGE2 IO SUBROUTINES\r
29973 \r
29974 \r
29975                                 ;THE FINDCP ROUTINE WILL SEARCH THE INPUT FILE FOR A PROGRAM\r
29976                                 ;WHOSE NAME IS IN ACCUMULATOR R, AND HAVING FOUND IT, WILL\r
29977                                 ;WRITE IT OUT. IF THE CONTENTS OF AC R ARE ZERO, THE ENTIRE\r
29978                                 ;FILE IS COPIED.\r
29979 \r
29980         000751' 322540  000737' FINDCP: JUMPE   R, COPY         ;COPY ENTIRE FILE?\r
29981         000752' 260500  001156' FIND1:  PUSHJ   P, READ         ;READ A PROGRAM FROM INPUT FILE\r
29982         000753' 254000  000757'         JRST    FIND2           ;EOF, TRY REWINDING AND TRYING AGAIN\r
29983         000754' 312540  000001          CAME    R, A            ;IS THIS THE RIGHT ONE?\r
29984         000755' 254000  000752'         JRST    FIND1           ;NO, TRY AGAIN\r
29985         000756' 254000  001305'         JRST    WRITE           ;YES, WRITE IT OUT AND EXIT\r
29986 \r
29987         000757' 322040  002026' FIND2:  JUMPE   A,ERROR7        ;V3 IF EOF OUTPUT ERROR MESSAGE\r
29988         000760' 260500  001024'         PUSHJ   P, BACKSP       ;BACKSPACE THE MAG TAPE\r
29989         000761' 550040  002524'         HRRZ    A, FILBUF       ;PICK UP THE FILE POINTER\r
29990         000762' 502041  000003          HLLM    A, 3(A)         ;CLEAR THE LOOKUP FLAG FOR DECTAPE\r
29991         000763' 260500  001031'         PUSHJ   P, GETDEV       ;SET UP THE PROGRAM AGAIN\r
29992         000764' 254000  002013'         JRST    ERROR3          ;IMPOSSIBLE ERROR RETURN\r
29993         000765' 260500  001156' FIND3:  PUSHJ   P, READ         ;READ A PROGRAM FROM INPUT FILE\r
29994         000766' 254000  002026'         JRST    ERROR7          ;EOF - REALLY CANT FIND IT\r
29995         000767' 312540  000001          CAME    R, A            ;IS THIS THE RIGHT ONE?\r
29996         000770' 254000  000765'         JRST    FIND3           ;NO, TRY AGAIN\r
29997         000771' 254000  001305'         JRST    WRITE           ;YES, WRITE IT OUT AND EXIT\r
29998 \r
29999 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 29\r
30000 FUDGE2  MAC     24-APR-78 03:09         FUDGE2 IO SUBROUTINES\r
30001 \r
30002                                 ;ROUTINE MSTGET RETRIEVES A PROGRAM NAME FROM THE MASTER\r
30003                                 ;DEVICE SPECIFICATIONS. IT SAVES THE POINTER IN FILBUF, \r
30004                                 ;CHANGES IT TO POINT TO ITS OWN BLOCK, THEN CALLS GETDEV\r
30005 \r
30006         000772' 200040  002524' MSTGET: MOVE    A, FILBUF       ;GET THE POINTER TO CURRENT FILE\r
30007         000773' 202040  002515'         MOVEM   A, FILSAV       ;SAVE THE CURRENT POINTER\r
30008         000774' 201040  002525'         MOVEI   A, FILBUF+1     ;CHANGE IT TO POINT TO MASTER\r
30009         000775' 202040  002524'         MOVEM   A, FILBUF       ;...\r
30010         000776' 254000  001031'         JRST    GETDEV          ;CALL COMMON ROUTINE\r
30011 \r
30012 \r
30013                                 ;ROUTINE TRNGET RETRIEVES A PROGRAM NAME FROM THE TRANSACTION\r
30014                                 ;FILES. IT RESETS THE POINTER THAT MSTGET WIPED OUT, AND CALLS\r
30015                                 ;THE COMMON PROGRAM RETRIEVAL PROGRAM GETDEV.\r
30016 \r
30017         000777' 200040  002515' TRNGET: MOVE    A, FILSAV       ;GET SAVED POINTER\r
30018         001000' 202040  002524'         MOVEM   A, FILBUF       ;RESTORE IT TO ITS PLACE\r
30019         001001' 254000  001031'         JRST    GETDEV          ;CALL COMMON ROUTINE\r
30020 \r
30021                                 ;ROUTINE RESET RESTORES THE STATE OF THE MASTER DEVICE TO\r
30022                                 ;WHAT IT WAS JUST AFTER THE LAST TIME MSTGET WAS CALLED. IT\r
30023                                 ;SETS THE POINTER OF THE MASTER FILE BACK TO THE PREVIOUS\r
30024                                 ;PROGRAM, CALLS MSTGET, AND FINDS THE PROGRAM AGAIN\r
30025 \r
30026         001002' 201040  002531' RESET:  MOVEI   A,FILBUF+5      ;START OF TRANSACTION LIST  ***DMN\r
30027         001003' 502040  002527'         HLLM    A, FILBUF+3     ;NOW CLEAR LOOKUP FLAG ON MASTER\r
30028         001004' 370000  002527'         SOS     FILBUF+3        ;MOVE POINTER BACK ONE PROGRAM\r
30029         001005' 336001  000000  RESET2: SKIPN   (A)             ;ANY TRANSACTION FILES ?    ***DMN\r
30030         001006' 254000  001012'         JRST    RESET3          ;NO-ALL DONE                ***DMN\r
30031         001007' 502041  000002          HLLM    A,2(A)          ;CLEAR LOOKUP FLAG ON IT    ***DMN\r
30032         001010' 271040  000003          ADDI    A,3             ;NEXT FILE                  ***DMN\r
30033         001011' 254000  001005'         JRST    RESET2          ;GO BACK FOR MORE           ***DMN\r
30034         001012' 260500  000772' RESET3: PUSHJ   P, MSTGET       ;SET UP THE MASTER DEVICE\r
30035         001013' 254000  002013'         JRST    ERROR3          ;FUDGE ERROR-NO MASTER!\r
30036         001014' 260500  001024'         PUSHJ   P, BACKSP       ;BACKSPACE IN CASE ITS A MAG TAPE\r
30037         001015' 200040  002515'         MOVE    A, FILSAV       ;DIDDLE THE POINTERS, BECAUSE MSTGET\r
30038         001016' 202040  002524'         MOVEM   A, FILBUF       ;WILL BE CALLED AGAIN IMMEDIATELY\r
30039         001017' 260500  001156' RESET1: PUSHJ   P, READ         ;READ A PROGRAM FROM MASTER FILE\r
30040         001020' 254000  002013'         JRST    ERROR3          ;FUDGE ERROR-CANT FIND PROGRAM\r
30041         001021' 312540  000001          CAME    R, A            ;IS IT THE RIGHT PROGRAM NAME?\r
30042         001022' 254000  001017'         JRST    RESET1          ;NO, LOOK AGAIN\r
30043         001023' 263500  000000          POPJ    P,              ;YES, EXIT\r
30044         001024' 137240  005146' BACKSP: DPB     D, [POINT 4, BACK0,12]\r
30045         001025' 137240  005147'         DPB     D, [POINT 4, BACK1, 12]\r
30046         001026' 137240  005150'         DPB     D, [POINT 4, BACK2,12]\r
30047         001027' 137240  005151'         DPB     D, [POINT 4,BACK3,12]\r
30048         001030' 254000  002465'         JRST    BACK0           ;GO TO POSITION MAGTAPE\r
30049 \r
30050 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 30\r
30051 FUDGE2  MAC     24-APR-78 03:09         COMMON PROGRAM RETRIEVAL PROGRAM GETDEV.\r
30052 \r
30053                                 SUBTTL COMMON PROGRAM RETRIEVAL PROGRAM GETDEV.\r
30054                                 ;THIS PROGRAM USES VARIOUS POINTERS AND BITS OF INFORMATION\r
30055                                 ;IN FILBUF AND PRG BUF TO RETURN TO THE USER A RADIX 50\r
30056                                 ;PROGRAM NAME AS SEEN IN THE COMMAND STRING. THE STRUCTURE\r
30057                                 ;OF INFORMATION IN THESE TWO BUFFERS IS AS FOLLOWS:\r
30058 \r
30059                                 ;FILBUF IS A LIST OF 3-WORD BLOCKS OF DATA ABOUT EACH FILE.\r
30060                                 ;THE FIRST WORD IN FILBUF IS A POINTER WHICH POINTS TO THE\r
30061                                 ;FIRST WORD OF THE BLOCK CURRENTLY BEING WORKED ON BY\r
30062                                 ;THE VARIOUS SUBROUTINES OF FUDGE. WHEN THE COMMAND STRING\r
30063                                 ;IS BEING PROCESSED AND INFORMATION IS BEING STORED IN FILBUF,\r
30064                                 ;THIS POINTER IS IN THE FORM OF AN AOBJN WORD SO THAT A CHECK\r
30065                                 ;CAN BE MADE FOR BUFFER OVERFLOW. THE CONTENTS OF THE 3-WORD\r
30066                                 ;FILE BLOCK IS AS FOLLOWS:\r
30067                                 ;       1ST WORD - SIXBIT FILE NAME, OR ZERO IF THIS IS THE\r
30068                                 ;                  END OF THE LIST .\r
30069                                 ;       2ND WORD - LEFT HALF CONTAINS A SIXBIT FILE NAME EXTENSION\r
30070                                 ;                  RIGHT HALF CONTAINS THE CHANNEL NUMBER FOR\r
30071                                 ;                  THIS FILE.\r
30072                                 ;       3RD WORD - LEFT HALF IS ZERO IS A LOOKUP HAS NOT BEEN\r
30073                                 ;                  DONE ON THIS FILE NAME, AND -1 IF IT HAS. A\r
30074                                 ;                  LOOKUP CAN THUS BE FORECED BY ZEROING OUT THE\r
30075                                 ;                  LEFT HALF OF THE WORD.\r
30076                                 ;                  RIGHT HALF CONTAINS A POINTER TO THE LAST\r
30077                                 ;                  PROGRAM NAME IN PRGBUF THAT WAS REFERENCED. THE\r
30078                                 ;                  RIGHT HALF IS ZERO IF THERE ARE NO PROGRAM\r
30079                                 ;                  NAMES ASSOCIATED WITH THE FILE.\r
30080 \r
30081                                 ;PRGBUF IS A LIST OF PROGRAM NAMES USED BY THE FILES IN FILBUF.\r
30082                                 ;THE FIRST WORD OF PRGBUF IS A POINTER WORD WHOSE USE IS THE\r
30083                                 ;SAME AS THE FIRST WORD OF FILBUF.THE ENTRIES IN PRGBUF CONSIST\r
30084                                 ;OF A LIST OF RADIX50 SYMBOLS, ONE TO A WORD, TERMINATED BY\r
30085                                 ;A ZERO WORD.\r
30086 \r
30087                                 ;FUDGE2 WORKS WITH FILBUF AND PRGBUF IN TWO DISTINCTLY \r
30088                                 ;DIFFERENT WAYS: ONCE WHEN IT IS PROCESSING THE COMMAND STRING\r
30089                                 ;AND STORING THE VARIOUS FILE NAMES AND PROGRAM NAMES, AND\r
30090                                 ;ONCE WHEN IT IS USING THE INFORMATION IN THE FILES TO PROCESS\r
30091                                 ;A FUDGE COMMAND. WHEN A FILE NAME IS SEEN IN THE COMMAND STRING,\r
30092                                 ;THE STATUS OF THE PREVIOUS FILE IS CHECKED. IF THE PREVIOUS\r
30093                                 ;FILE HAD NO PROGRAM NAMES, THEN ITS POINTER WORD (3RD WORD) IS\r
30094                                 ;ZEROED OUT TO INDICATE THE ABSCENCE OF ANY PROGRAMS IN PRGBUF.\r
30095                                 ;OTHERWISE, PROCESSING BEGINS ON THE CURRENT FILE: THE FILE\r
30096                                 ;NAME, FILE NAME EXTENSION, AND CHANNEL NUMBER ARE STORED. THE\r
30097                                 ;CONTENTS OF THE POINTER WORD IN PRGBUF ARE STORED IN THE\r
30098                                 ;POINTER WORD OF THE FILE BLOCK\r
30099                                 ;ROOM IS LEFT IN FILBUF SO THAT WHEN THE CARRIAGE RETURN IS\r
30100                                 ;SEEN, FUDGE2 CAN SHUFFLE THE FIRST FILE BLOCK UP ONE WORD AND\r
30101                                 ;INSERT ANOTHER NULL. THE EFFECT OF THIS KLUDGE IS THAT WE NOW\r
30102                                 ;HAVE TWO SEPARATE LISTS IN FILBUF, A MASTER LIST, AND A \r
30103                                 ;TRANSACTION LIST.\r
30104 \r
30105 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 31\r
30106 FUDGE2  MAC     24-APR-78 03:09         COMMON PROGRAM RETRIEVAL PROGRAM GETDEV.\r
30107 \r
30108         001031' 200100  002524' GETDEV: MOVE    B, FILBUF       ;GET POINTER TO FILE BLOCK\r
30109         001032' 336002  000000          SKIPN   (B)             ;END OF LIST? (ZERO TERMINATES)\r
30110         001033' 263500  000000          POPJ    P,              ;YES, EXIT\r
30111         001034' 200040  003124'         MOVE    A,PPNBUF        ;GET POINTER TO PPN'S\r
30112         001035' 200241  000000          MOVE    D,(A)           ;GET GLOBAL PPN\r
30113         001036' 202240  005112'         MOVEM   D,DEFPPN        ;SAVE AS DEFAULT PPN\r
30114         001037' 200241  000001          MOVE    D,1(A)          ;GET TEMP. PPN\r
30115         001040' 202240  005113'         MOVEM   D,PRJPRG        ;SAVE AS TEMP. PPN\r
30116         001041' 271040  000002          ADDI    A,2             ;INCREMENT POINTER\r
30117         001042' 202040  003124'         MOVEM   A,PPNBUF        ;SAVE NEW POINTER\r
30118         001043' 550242  000001          HRRZ    D, 1(B)         ;GET DEVICE NUMBER FOR THIS DEVICE\r
30119         001044' 331002  000002          SKIPL   2(B)            ;HAS A LOOKUUP BEEN DONE?\r
30120         001045' 254000  001066'         JRST    GET3            ;NO, GO DO LOOKUP\r
30121         001046' 201640  000003  GET0:   MOVEI   DIS, 3          ;SET UP AC DIS\r
30122         001047' 220640  000005          IMUL    DIS, D          ;C(DIS) = 3*C(D)\r
30123         001050' 550042  000002          HRRZ    A, 2(B)         ;GET  POINTER TO  PROGRAM NAMES\r
30124         001051' 322040  001060'         JUMPE   A, GET1         ;NULL PROGRAM LIST (NO POINTER)?\r
30125         001052' 350042  000002          AOS     A, 2(B)         ;NO, INCREMENT POINTER BY ONE\r
30126         001053' 200541  000000          MOVE    R, (A)          ;GET A PROGRAM NAME\r
30127         001054' 326540  001063'         JUMPN   R, CPOPJ1       ;END OF PROGRAM LIST?\r
30128         001055' 271100  000003          ADDI    B, 3            ;YES, INCREMENT FILBUF POINTER\r
30129         001056' 202100  002524'         MOVEM   B, FILBUF       ;SAVE NEW POINTER\r
30130         001057' 254000  001031'         JRST    GETDEV          ;TRY NEXT FILE BLOCK\r
30131 \r
30132         001060' 201540  000000  GET1:   MOVEI   R, 0            ;NO PROGRAMS, RETURN ZERO\r
30133         001061' 271100  000003          ADDI    B, 3            ;MOVE FILBUF POINTER TO NEXT BLOCK\r
30134         001062' 202100  002524'         MOVEM   B, FILBUF       ;SAVE THE POINTER\r
30135         001063' 354012  000000  CPOPJ1: AOSA    (P)             ;GOOD RETURN\r
30136         001064' 262512  000000  POPOUT: POP     P,(P)           ;POP UP ONE LEVEL\r
30137         001065' 263500  000000  CPOPJ:  POPJ    P,              ;EXIT\r
30138 \r
30139 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 32\r
30140 FUDGE2  MAC     24-APR-78 03:09         COMMON PROGRAM RETRIEVAL PROGRAM GETDEV.\r
30141 \r
30142 \r
30143         001066' 137240  005152' GET3:   DPB     D, [POINT 4,GET3A,12]\r
30144         001067' 256000  002472'         XCT     GET3A           ;CLOSE CURRENT FILE BEFORE DOING...\r
30145         001070' 200042  000000          MOVE    A, (B)          ;GET FILE NAME OF NEXT FILE\r
30146         001071' 202040  004572'         MOVEM   A, EBLOCK       ;SET UP FOR LOOKUP\r
30147         001072' 510042  000001          HLLZ    A, 1(B)         ;GET FILE NAME EXTENSION\r
30148         001073' 202040  004573'         MOVEM   A, EBLOCK+1     ;SAVE IT FOR LOOKUP\r
30149         001074' 563042  000002          HRROS   A, 2(B)         ;SET FLAG IN LEFT HALF OF 3RD WORD\r
30150         001075' 137240  005153'         DPB     D, [POINT 4,GET4A,12]\r
30151         001076' 336040  005113'         SKIPN   A,PRJPRG        ;GET TEMP. PPN\r
30152         001077' 200040  005112'         MOVE    A,DEFPPN        ;USE PERMANENT IF NO TEMP.\r
30153         001100' 202040  004575'         MOVEM   A,EBLOCK+3      ;SAVE IT\r
30154         001101' 202040  004571'         MOVEM   A,EBLOCK-1      ;FOR LEVEL D ALSO\r
30155         001102' 200045  003324'         MOVE    A,DEVBUF(D)     ;GET DEVICE\r
30156         001103' 047040  000004          DEVCHR  A,              ;GET ITS CHARACTERISTICS\r
30157         001104' 607040  200000          TLNN    A,DSKBIT        ;IF NOT A DSK\r
30158         001105' 634140  000003          TDZA    T,T             ;NO EXTENDED LOOKUP\r
30159         001106' 200140  005111'         MOVE    T,LEVEL         ;GET LEVEL\r
30160         001107' 256000  002473' GET4:   XCT     GET4A           ;DO A LOOKUP ON NEW FILE\r
30161         001110' 254000  001113'         JRST    .+3             ;NOT FOUND, TRY WITH BLANKS EXT.\r
30162         001111' 402000  004575'         SETZM   EBLOCK+3        ;CLEAR PROJ-PROG\r
30163         001112' 254000  001121'         JRST    DOENTR          ;SUCCESSFUL RETURN FROM LOOKUP\r
30164         001113' 554042  000001          HLRZ    A, 1(B)         ;GET THE FILE NAME EXTENSION\r
30165         001114' 302040  624554          CAIE    A, 624554       ;IS IT "REL" ?\r
30166         001115' 254000  002043'         JRST    ERROR8          ;NO,  DON'T GIVE HIM ANOTHER CHANCE\r
30167         001116' 502042  000001          HLLM    A, 1(B)         ;YES, TRY LOOKUP WITH 0 EXTENSION\r
30168         001117' 402000  004573'         SETZM   EBLOCK+1        ;CLEAR EXTENSION IN LOOKUP BLOCK\r
30169         001120' 254000  001107'         JRST    GET4            ;TRY AGAIN\r
30170 \r
30171         001121' 336000  005111' DOENTR: SKIPN   LEVEL           ;IF NOT LEVEL D\r
30172         001122' 254000  001134'         JRST    DOXSWT          ;ENTER DONE ALREADY\r
30173         001123' 204140  005143'         MOVS    T,[XWD EBLOCK,SVENTR]\r
30174         001124' 251140  004573'         BLT     T,EBLOCK+1      ;RESTORE EBLOCK\r
30175         001125' 205140  777000          MOVSI   T,777000        ;MASK FOR PROTECTION\r
30176         001126' 406140  004574'         ANDM    T,EBLOCK+2      ;CLEAR DATE AND TIME\r
30177         001127' 402000  004571'         SETZM   EBLOCK-1        ;CLEAR PPN\r
30178         001130' 200140  005111'         MOVE    T,LEVEL\r
30179         001131' 256000  002463'         XCT     SEMIC1          ;DO ENTER\r
30180                                         JRST    [HRRZ T,EBLOCK+1 ;GET ERROR CODE\r
30181                                                 CAIN    T,17    ;PARTIAL ALLOCATION ONLY?\r
30182                                                 JRST    .+1     ;YES, JUST CONTINUE\r
30183         001132' 254000  005154'                 JRST    ERR14]  ;ERROR\r
30184         001133' 402000  005111'         SETZM   LEVEL           ;NEVER AGAIN\r
30185         001134' 602340  200000  DOXSWT: TRNE    F,XFLG          ;INDEX FLAG ON?\r
30186         001135' 260500  001467'         PUSHJ   P,INDEX0        ;YES, SET UP POINTERS AND CORE\r
30187         001136' 254000  001046'         JRST    GET0            ;AND CONTINUE\r
30188 \r
30189 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 33\r
30190 FUDGE2  MAC     24-APR-78 03:09         COMMON PROGRAM RETRIEVAL PROGRAM GETDEV.\r
30191 \r
30192 \r
30193                                 ;SHORT ROUTINES TO STORE WORDS IN THE FILE BUFFER AND PROGRAM\r
30194                                 ;BUFFER\r
30195                                 ;ROUTINE PUTFIL STORES THE CONTENTS OF ACCUMULATOR S IN THE\r
30196                                 ;NEXT FREE LOCATION IN FILBUF. IT CHECKS FOR OVERFLOW.\r
30197 \r
30198         001137' 200040  002524' PUTFIL: MOVE    A, FILBUF       ;GET POINTER WORD FOR FILBUF\r
30199         001140' 252040  002011'         AOBJP   A, ERROR2       ;INCREMENT, CHECK FOR OVERFLOW\r
30200         001141' 202040  002524'         MOVEM   A, FILBUF       ;SAVE NEW POINTER\r
30201         001142' 202601  000000          MOVEM   S, (A)          ;SAVE FILE NAME ENTRY\r
30202         001143' 263500  000000          POPJ    P,              ;EXIT\r
30203 \r
30204 \r
30205                                 ;ROUTINE PUTPRG STORES THE CONENTS OF ACCUMULATOR S IN THE\r
30206                                 ;NEXT FREE LOCATION IN PRGBUF. IT CHECKS FOR OVERFLOW.\r
30207 \r
30208         001144' 200040  002724' PUTPRG: MOVE    A, PRGBUF       ;GET POINTER WORD FOR BUFFER\r
30209         001145' 252040  002011'         AOBJP   A, ERROR2       ;INCREMENT, CHECK FOR OVERFLOW\r
30210         001146' 202040  002724'         MOVEM   A, PRGBUF       ;SAVE NEW POINTER WORD\r
30211         001147' 202601  000000          MOVEM   S, (A)          ;SAVE PROGRAM NAME\r
30212         001150' 263500  000000          POPJ    P,              ;EXIT\r
30213 \r
30214                                 ;ROUTINE PUTPPN STORE THE TWO PPPN NUMBER IN PPNBUF\r
30215 \r
30216         001151' 200040  003124' PUTPPN: MOVE    A,PPNBUF        ;GET POINTER WORD FOR BUFFER\r
30217         001152' 252040  002011'         AOBJP   A,ERROR2\r
30218         001153' 202040  003124'         MOVEM   A,PPNBUF        ;SAVE NEW POINTER WORD\r
30219         001154' 202601  000000          MOVEM   S,(A)           ;SAVE PPN\r
30220         001155' 263500  000000          POPJ    P,              ;EXIT\r
30221 \r
30222 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 34\r
30223 FUDGE2  MAC     24-APR-78 03:09         ROUTINE TO INPUT ONE PROGRAM AT A TIME\r
30224 \r
30225                                 SUBTTL ROUTINE TO INPUT ONE PROGRAM AT A TIME\r
30226                                 ;THE FIRST WORD THAT THE PROGRAM READS WILL BE A BLOCK HEADER.\r
30227                                 ;BLOCKS ARE READ UNTIL AN ENTRY BLOCK IS FOUND, AND THE ENTIRE\r
30228                                 ;ENTRY BLOCK IS STORED IN AN INTERNAL BUFFER,SIZE PERMITTING.\r
30229                                 ;FOLLOWING THAT, THE NAME BLOCK IS READ, AND THE NAME OF THE \r
30230                                 ;PROGRAM IS RETURNED IN ACCUMULATOR A. PROVISION IS MADE FOR\r
30231                                 ;BLOCKS OF WORD COUNT ZERO. THE SECTION OF CODING AROUND READ2\r
30232                                 ;DELIBERATELY OMITS THIS CHECK IN ORDER TO READ IN THE NEXT\r
30233                                 ;BLOCK HEADER WITH A MINIMUM OF INSTRUCTIONS. ORDINARILY, EACH\r
30234                                 ;PROGRAM WILL BEGIN WITH AN ENTRY BLOCK, BUT THE ROUTINE WILL\r
30235                                 ;ALSO ALLOW THE PROGRAM TO BEGIN WITH A NAME BLOCK IF NO\r
30236                                 ;ENTRY BLOCK IS SEEN.\r
30237 \r
30238         001156' 201200  003334' READ:   MOVEI   C, ENTBLK       ;SET UP POINTER TO BUFFER\r
30239         001157' 260500  001647' READ6:  JSR     GETIN           ;GET A BLOCK HEADER\r
30240         001160' 554100  000001          HLRZ    B, A            ;GET THE BLOCK CODE\r
30241         001161' 306100  000014          CAIN    B,14            ;IS IT AN INDEX BLOCK?\r
30242         001162' 254000  001276'         JRST    READX           ;YES, GET RID OF IT\r
30243         001163' 306100  000004          CAIN    B, 4            ;IS IT AN ENTRY BLOCK?\r
30244         001164' 254000  001206'         JRST    READ1           ;YES, PROCESS IT\r
30245         001165' 306100  000006          CAIN    B, 6            ;IS IT A NAME BLOCK?\r
30246         001166' 254000  001266'         JRST    READ7           ;YES, PROCESS IT\r
30247         001167' 306100  000400          CAIN    B,400           ;F4 SIGNAL WORD?\r
30248         001170' 254000  001270'         JRST    F4I             ;YES, PROCESS F4 BLOCKS\r
30249         001171' 260500  001337'         PUSHJ   P, COUNT        ;CALCULATE SIZE OF BLOCK\r
30250         001172' 322100  001157'         JUMPE   B, READ6        ;WORD COUNT OF ZERO?\r
30251         001173' 311115  004612' READ6A: CAML    B, IBUF+2(DIS)  ;DOES BLOCK OVERLAP IO BUFFERS?\r
30252         001174' 254000  001202'         JRST    READ6B          ;ADJUST B AND GET ANOTHER BUFFER\r
30253         001175' 200055  004612'         MOVE    A, IBUF+2(DIS)  ;NO, DIDDLE BUFFER HEADER COUNT\r
30254         001176' 274040  000002          SUB     A, B            ;ELIMINATE BLOCK OF LENGTH C(B)\r
30255         001177' 202055  004612'         MOVEM   A, IBUF+2(DIS)  ;PUT NEW WORD COUNT BACK\r
30256         001200' 272115  004611'         ADDM    B, IBUF+1(DIS)  ;MOVE BYTE POINTER PAST BLOCK\r
30257         001201' 254000  001157'         JRST    READ6           ;GET NEXT BLOCK\r
30258         001202' 274115  004612' READ6B: SUB     B, IBUF+2(DIS)  ;ACCOUNT FOR REST OF THIS BUFFER\r
30259         001203' 402015  004612'         SETZM   IBUF+2(DIS)     ;FORCE ANOTHER INBUF\r
30260         001204' 260500  001647'         JSR     GETIN           ;GET ANOTHER BUFFER OF INPUT\r
30261         001205' 254000  001173'         JRST    READ6A          ;CHECK AGAIN\r
30262 \r
30263 \r
30264                                 ; THIS CODE MODIFIED 3-21-71 BY DCS (STANFORD) TO HANDLE\r
30265                                 ;  MORE THAN ONE ENTRY BLOCK (FAIL AND SAIL BOTH ISSUE\r
30266                                 ;  MULTIPLE ENTRY BLOCKS).\r
30267 \r
30268                         000452  SIZZ==SIZE-<<SIZE+21>/22>-4     ;ACCOUNT FOR HDR BLKS, RELOC WRDS, PROGNAME\r
30269         001206' 402000  003334' READ1:  SETZM   ENTBLK          ;SAME AS (C) AT PRESENT\r
30270         001207' 505200  777777          HRLI    C,-1            ;AOBJN WILL OVERFLOW FIRST TIME\r
30271 \r
30272                                 ; BACK HERE FOR EACH NEW ENTRY BLOCK\r
30273 \r
30274         001210' 211101  400000  READ2:  MOVNI   B,400000(A)     ;-1 IN LH, 377777-CT IN RH\r
30275         001211' 553000  000001          HRRZS   A\r
30276         001212' 270040  003334'         ADD     A,ENTBLK        ;NEW COUNT IF IT FITS\r
30277         001213' 303040  000452          CAILE   A,SIZZ          ;TOO MUCH NOW?\r
30278 \r
30279 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 34-1\r
30280 FUDGE2  MAC     24-APR-78 03:09         ROUTINE TO INPUT ONE PROGRAM AT A TIME\r
30281 \r
30282         001214' 664340  002000           TROA    F,ERRB         ; YES, MARK ENTRY BLOCK TOO BIG\r
30283         001215' 202040  003334'         MOVEM   A,ENTBLK        ;NO, UPDATE USED COUNT\r
30284                                 ; HERE FOR EACH NEW WORD\r
30285         001216' 606100  377777  READ23: TRNN    B,377777        ;END THIS LOADER BLOCK?\r
30286         001217' 254000  001233'          JRST    READ55         ; YES, CHECK NEXT\r
30287         001220' 253100  001223'         AOBJN   B,NXTWRD        ;TIME FOR SOME RELOC BITS?\r
30288         001221' 260500  001647'         JSR     GETIN           ;YES, GET THEM AND TOSS THEM\r
30289         001222' 505100  777756          HRLI    B,-22           ;AND RESET COUNT\r
30290         001223' 260500  001647' NXTWRD: JSR     GETIN           ;GET A DATA WORD\r
30291                                 ; (ROUTINE COURTESY OF DEC LOADER)\r
30292 \r
30293         001224' 253200  001230'         AOBJN   C,READ22        ;NEED TO INSERT RELOC WORD?\r
30294         001225' 606340  002000          TRNN    F,ERRB          ;YES, UNLESS NOT INSERTING\r
30295         001226' 402004  000000           SETZM   (C)            ; ALL ENTRY RELOCS ARE 0\r
30296         001227' 270200  005160'         ADD     C,[XWD -22,1]   ;LH 0 BEFORE ADD, SET UP NEXT\r
30297         001230' 606340  002000  READ22: TRNN    F,ERRB          ;ARE WE INSERTING?\r
30298         001231' 202044  000000           MOVEM   A,(C)          ; YES, PUT IT AWAY\r
30299         001232' 254000  001216'         JRST    READ23          ;LOOP\r
30300 \r
30301 \r
30302         001233' 260500  001647' READ55: JSR     GETIN           ;GET NEXT HEADER WORD\r
30303         001234' 554100  000001          HLRZ    B,A             ;TYPE\r
30304         001235' 306100  000004          CAIN    B,4             ;ANOTHER ENTRY?\r
30305         001236' 254000  001210'          JRST    READ2          ; YES, STORE IT\r
30306 \r
30307                                 ; PROGRAM NAME -- FINISH ENTRY BLOCK OUT\r
30308         001237' 201100  000004          MOVEI   B,4             ;ENTRY BLOCK TYPE\r
30309         001240' 506100  003334'         HRLM    B,ENTBLK        ;NOW CORRECT TYPE,,COUNT\r
30310         001241' 505200  000000          HRLI    C,0             ;CLEAR LH COUNT\r
30311         001242' 344200  001266'         AOJA    C,READ7         ;STORE NAME BLOCK HEADER AND CONTINUE\r
30312                                 ; END OF DCS PATCH 3-21-71\r
30313 \r
30314 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 35\r
30315 FUDGE2  MAC     24-APR-78 03:09         ROUTINE TO INPUT ONE PROGRAM AT A TIME\r
30316 \r
30317         001243' 260500  001337' READ5:  PUSHJ   P, COUNT        ;CALCULATE SIZE OF BLOCK\r
30318         001244' 322100  001261'         JUMPE   B, READ9        ;WORD COUNT OF ZERO?\r
30319         001245' 260500  001647' READ3:  JSR     GETIN           ;GET A WORD\r
30320         001246' 202044  000000          MOVEM   A, (C)          ;STORE IT\r
30321         001247' 340200  000000          AOJ     C,              ;INCREMENT BUFFER POINTER\r
30322         001250' 367100  001245'         SOJG    B, READ3        ;DONE READING YET?\r
30323         001251' 306440  000002          CAIN    G+1, 2          ;IS THERE A COMMON WORD?\r
30324         001252' 200044  777776          MOVE    A, -2(C)        ;GET PROGRAM NAME IN A\r
30325         001253' 322040  001261'         JUMPE   A, READ9        ;IGNORE WORD OF ZERO\r
30326         001254' 200100  000001          MOVE    B, A            ;GET RID OF EXTRA BLANKS\r
30327         001255' 231100  000050  READ8:  IDIVI   B, 50           ;TRY DIVIDING IT BY 50\r
30328         001256' 326140  001261'         JUMPN   B+1, READ9      ;FILTERED OUT ALL THE BLANKS?\r
30329         001257' 200040  000002          MOVE    A, B            ;NO, STORE SYMBOL AGAIN\r
30330         001260' 254000  001255'         JRST    READ8           ;TRY ANOTHER DIVISION\r
30331 \r
30332         001261' 602340  002000  READ9:  TRNE    F, ERRB         ;ERROR CONDITION?\r
30333         001262' 254000  002064'         JRST    ERR10           ;YES\r
30334         001263' 606340  200000          TRNN    F,XFLG          ;INDEX FLAG ON?\r
30335         001264' 254000  001063'         JRST    CPOPJ1          ;NO, SKIP EXIT\r
30336         001265' 254000  001514'         JRST    INDEX1          ;YES SAVE ENTRIES\r
30337 \r
30338         001266' 202044  000000  READ7:  MOVEM   A, (C)          ;STORE NAME BLOCK HEADER\r
30339         001267' 344200  001243'         AOJA    C, READ5        ;GO READ NAME BLOCK\r
30340 \r
30341         001270' 660340  020000  F4I:    TRO     F,F4IB          ;DONT OUTPUT DURING F4 SEARCH\r
30342         001271' 261500  000004          PUSH    P,C             ;SAVE ENTRY BLOCK\r
30343         001272' 260500  001346'         PUSHJ   P,F4            ;PASS F4 BLOCKS\r
30344         001273' 262500  000004          POP     P,C             ;RESTORE ENTRY BLOCK\r
30345         001274' 620340  020000          TRZ     F,F4IB          ;TURN OFF IGNORE BIT\r
30346         001275' 254000  001157'         JRST    READ6           ;GO PROCESS NEXT PROGRAM\r
30347 \r
30348         001276' 336000  005116' READX:  SKIPN   NOWARN          ;DO WE WANT A MESSAGE?\r
30349                                         TTCALL  3,[ASCIZ /WARNING NO INDEX ON OUTPUT FILE - CONTINUING\r
30350         001277' 051140  005161' /]\r
30351         001300' 476000  005116'         SETOM   NOWARN          ;ONCE IS ENOUGH\r
30352         001301' 402015  004612'         SETZM   IBUF+2(DIS)     ;FORCE ANOTHER INBUF\r
30353         001302' 260500  001647'         JSR     GETIN           ;INPUT THE NEXT BLOCK\r
30354         001303' 370015  004612'         SOS     IBUF+2(DIS)     ;WORD COUNT OUT BY ONE\r
30355         001304' 254000  001160'         JRST    READ6+1         ;AND RETURN TO CODE\r
30356 \r
30357 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 36\r
30358 FUDGE2  MAC     24-APR-78 03:09         ROUTINE TO OUTPUT ONE PROGRAM AT A TIME\r
30359 \r
30360                                 SUBTTL ROUTINE TO OUTPUT ONE PROGRAM AT A TIME\r
30361                                 ;THE WRITE SUBROUTINE WILL OUTPUT AN ENTIRE BINARY RE-\r
30362                                 ;LOCATABLE PROGRAM AS WRITTEN BY MACRO6. IT ASSUMES THAT THE\r
30363                                 ;ENTRY BLOCK AND NAME BLOCK FOR THE PROGRAM ARE IN THE\r
30364                                 ;INTERNAL BUFFER ENTBLK, AND OUTPUTS THESE BEFORE PICKING UP\r
30365                                 ;MORE BLOCKS FROM THE CURRENT INPUT DEVICE. BLOCKS ARE READ\r
30366                                 ;AND WRITTEN UNTIL THE END BLOCK HAS BEEN PROCESSED. PROVISION I\r
30367                                 ;IS MADE FOR BLOCKS WITH A WORD COUNT OF ZERO.\r
30368 \r
30369         001305' 275200  003334' WRITE:  SUBI    C, ENTBLK       ;GET COUNT OF ENTRY BLOCK\r
30370         001306' 322200  001314'         JUMPE   C, WRITE3       ;NOTHING TO OUTPUT?\r
30371         001307' 201100  003334'         MOVEI   B, ENTBLK       ;GET A POINTER IN B\r
30372         001310' 200042  000000  WRITE2: MOVE    A, (B)          ;GET A BINARY WORD\r
30373         001311' 260500  001656'         PUSHJ   P, OUT          ;OUTPUT IT\r
30374         001312' 340100  000000          AOJ     B,              ;INCREMENT POINTER\r
30375         001313' 367200  001310'         SOJG    C, WRITE2       ;KEEP GOING UNTIL BUFFER EMPTY\r
30376         001314' 260500  001647' WRITE3: JSR     GETIN           ;GET A BLOCK HEADER\r
30377         001315' 554100  000001          HLRZ    B,A             ;GET THE BLOCK TYPE CODE ***VJC\r
30378         001316' 606340  000200          TRNN    F,NOLOCB        ;DELETE LOCAL SYMBOLS? ***VJC\r
30379         001317' 254000  001322'         JRST    .+3             ;NO\r
30380         001320' 306100  000002          CAIN    B,2             ;IS IT A SYMBOL BLOCK? ***VJC\r
30381         001321' 254000  001410'         JRST    DELLOC          ;GO DELETE LOCAL SYMBOL ***VJC\r
30382                                                                 ;COME BACK TO WRITE3 ***VJC\r
30383                                                                 ;UNLESS EXIT ON END-OF-FILE ***VJC\r
30384 \r
30385         001322' 260500  001656'         PUSHJ   P, OUT          ;OUTPUT IT\r
30386         001323' 306100  000400          CAIN    B, 400          ;IS THIS A FORTRAN IV SIGNAL WORD?\r
30387         001324' 254000  001346'         JRST    F4              ;YES, PROCESS F4 OUTPUT\r
30388         001325' 202100  002520'         MOVEM   B, SAVEBT       ;SAVE THE BLOCK TYPE\r
30389         001326' 260500  001337'         PUSHJ   P, COUNT        ;NO, GET SIZE OF BLOCK\r
30390         001327' 322100  001314'         JUMPE   B, WRITE3       ;WORD COUNT OF ZERO?\r
30391         001330' 260500  001647' WRITE4: JSR     GETIN           ;OUTPUT THE BLOCK\r
30392         001331' 260500  001656'         PUSHJ   P, OUT          ;...\r
30393         001332' 367100  001330'         SOJG    B, WRITE4       ;LOOP BACK UNTIL DONE\r
30394         001333' 200040  002520'         MOVE    A, SAVEBT       ;RETRIEVE THE BLOCK TYPE\r
30395         001334' 302040  000005          CAIE    A, 5            ;WAS IT AN END BLOCK?\r
30396         001335' 254000  001314'         JRST    WRITE3          ;NO, RETURN FOR MORE BLOCKS\r
30397         001336' 263500  000000          POPJ    P,              ;YES, EXIT\r
30398 \r
30399 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 37\r
30400 FUDGE2  MAC     24-APR-78 03:09         ROUTINE TO OUTPUT ONE PROGRAM AT A TIME\r
30401 \r
30402 \r
30403                                 ;THE COUNT SUBROUTINE CALCULATES THE LENGTH OF THE VARIOUS \r
30404                                 ;BLOCKS READ BY THE WRITE AND READ SUBROUTINES. THE POSITIVE\r
30405                                 ;WORD COUNT IS FOUND IN THE RIGHT HALF OF THE ENTRY BLOCK \r
30406                                 ;HEADER, WHICH IS ASSUMED TO BE IN AC A UPON ENTERING. THE\r
30407                                 ;LENGTH WILL BE RETURNED IN AC B, AND INCLUDES THE DATA WORDS\r
30408                                 ;(SYMBOLS, ENTRY WORDS, ETC.) AND THE SUBHEADERS, OF WHICH\r
30409                                 ;THERE IS ONE FOR EVERY 18 (DECIMIAL) DATA WORDS. THE BLOCK\r
30410                                 ;HEADER IS DESTROYED, AND IS NOT INCLUDED IN THE LENGTH.\r
30411 \r
30412         001337' 550400  000001  COUNT:  HRRZ    G, A            ;GET NUMBER OF WORDS\r
30413         001340' 231400  000022          IDIVI   G, 22           ;1SUBHEADER/18 DATA WORDS\r
30414         001341' 271401  000000          ADDI    G,(A)           ;ADD INTO WORD COUNT\r
30415         001342' 322440  001344'         JUMPE   G+1,.+2         ;1 EXTRA SUBHEADER FOR\r
30416         001343' 340400  000000          AOJ     G,              ;STRAY ONES\r
30417         001344' 200100  000010          MOVE    B, G            ;RESULTS IN AC B\r
30418         001345' 263500  000000          POPJ    P,              ;EXIT\r
30419 \r
30420 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 38\r
30421 FUDGE2  MAC     24-APR-78 03:09         ROUTINE TO HANDLE FORTRAN OUTPUT\r
30422 \r
30423                                 SUBTTL ROUTINE TO HANDLE FORTRAN OUTPUT\r
30424 \r
30425                                 ;SUBSECTION OF THE WRITE ROUTINE TO HANDLE OUTPUT FROM THE\r
30426                                 ;FORTRAN IV COMPILER. THE MAIN OBJECT OF THE ROUTINE IS TO\r
30427                                 ;LOOK FOR THE END BLOCK. OTHER BLOCKS ARE MERELY COPIED OUT.\r
30428                                 ;THE BLOCK TYPES ARE GIVEN BY THE FOLLOWING TABLE\r
30429                                 ;----------------------------------------------------------------\r
30430                                         ;BITS 0-17      BITS18-23       BITS 24-35              TYPE\r
30431 \r
30432                                 ;777777         70              N                  DATA STATEMENT\r
30433                                 ;777777         50              N           ABSOLUTE MACHINE CODE\r
30434                                 ;777777         0               -           PROGRAMMER LABELS\r
30435                                 ;777777         31              -           MADE LABELS\r
30436                                 ;777777         60              -           ENTRY LABELS\r
30437                                 ;777777                 777776              END BLOCK\r
30438                                 ;-----------------------------------------------------------------\r
30439         001346' 260500  001647' F4:     JSR     GETIN           ;GET A FORTRAN IV BLOCK HEADER\r
30440         001347' 260500  001405'         PUSHJ   P, OUT4         ;OUTPUT IT\r
30441         001350' 641040  777777          TLC     A, -1           ;TURN ONES TO ZEROES IN LEFT HALF\r
30442         001351' 603040  777777          TLNE    A, -1           ;NO, WAS LEFT HALF ALL ONES?\r
30443         001352' 254000  001346'         JRST    F4              ;NO, IT WAS CALCULATED MACHINE CODE\r
30444         001353' 306040  777776          CAIN    A, -2           ;YES, IS RIGHT HALF = 777776?\r
30445         001354' 254000  001372'         JRST    ENDST           ;YES, PROCESS F4 END BLOCK\r
30446         001355' 135100  005173'         LDB     B, [POINT 6,A,23];GET CODE BITS FROM BITS 18-23\r
30447         001356' 620040  770000          TRZ     A, 770000       ;THEN WIPE THEM OUT\r
30448         001357' 302100  000070          CAIE    B, 70           ;IS IT A DATA STATEMENT?\r
30449         001360' 306100  000050          CAIN    B, 50           ;IS IT ABSOLUTE MACHINE CODE?\r
30450         001361' 254000  001365'         JRST    MACHCD          ;YES, TREAT IT LIKE DATA STATEMENTS\r
30451         001362' 260500  001647'         JSR     GETIN           ;NO, ITS A LABEL OF SOME SORT\r
30452         001363' 260500  001405'         PUSHJ   P, OUT4         ;WHICH CONSISTS OF ONE WORD\r
30453         001364' 254000  001346'         JRST    F4              ;LOOK FOR NEXT BLOCK HEADER\r
30454 \r
30455         001365' 550100  000001  MACHCD: HRRZ    B, A            ;GET THE WORD COUNT IN AC B\r
30456         001366' 260500  001647'         JSR     GETIN           ;INPUT A WORD\r
30457         001367' 260500  001405'         PUSHJ   P, OUT4         ;OUTPUT IT\r
30458         001370' 367100  001365'         SOJG    B, MACHCD       ;LOOP BACK FOR REST OF THE BLOCK\r
30459         001371' 254000  001346'         JRST    F4              ;GO LOOK FOR NEXT BLOCK\r
30460 \r
30461         001372' 201100  000001  ENDST:  MOVEI   B,1             ;TWO WORDS, FIVE TABLES, ONE WORD, ONE TABLE\r
30462         001373' 201200  000006          MOVEI   C,6             ;TO GO\r
30463         001374' 260500  001647' F4LUP1: JSR     GETIN           ;GET TABLE MEMBER\r
30464         001375' 260500  001405' F4LUP3: PUSHJ   P,OUT4          ;OUTPUT WORD\r
30465         001376' 365100  001374'         SOJGE   B,F4LUP1        ;LOOP WITHIN A TABLE\r
30466         001377' 321200  001065'         JUMPL   C,CPOPJ         ;LAST TABLE - RETURN\r
30467         001400' 367200  001402'         SOJG    C,F4LUP2        ;FIRST TWO WORDS AND FIVE TABLES\r
30468         001401' 322200  001374'         JUMPE   C,F4LUP1        ;COMMON LENGTH WORD\r
30469         001402' 260500  001647' F4LUP2: JSR     GETIN           ;READ HEADER WORD\r
30470         001403' 200100  000001          MOVE    B,A             ;COUNT TO COUNTER\r
30471         001404' 254000  001375'         JRST    F4LUP3          ;STASH\r
30472 \r
30473         001405' 606340  020000  OUT4:   TRNN    F,F4IB          ;DONT DO OUTPUT?\r
30474         001406' 260500  001656'         PUSHJ   P,OUT           ;YES, DO OUTPUT\r
30475         001407' 263500  000000          POPJ    P,              ;RETURN\r
30476 \r
30477 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 39\r
30478 FUDGE2  MAC     24-APR-78 03:09         ROUTINE TO DELETE LOCAL SYMBOLS FROM SYMBOL BLOCK\r
30479 \r
30480                                 SUBTTL ROUTINE TO DELETE LOCAL SYMBOLS FROM SYMBOL BLOCK\r
30481 \r
30482                                 ;ALL LOCAL AND SUPPRESSED LOCAL SYMBOLS ARE DELETED\r
30483                                 ;EXTERNALS,INTERNAL AND SUPPRESSED INTERNALS ARE NOT DELETED.\r
30484 \r
30485         001410' 552040  005047' DELLOC: HRRZM   A,BSZ           ;SIZE OF SYMBOL BBLE\r
30486         001411' 260500  001461'         PUSHJ   P,DELINI        ;CLEAR NEW HEADER & RELOC WORDS\r
30487                                                                 ;SET PB = SYMBLK+2\r
30488         001412' 260500  001647' DELGTR: JSR     GETIN           ;GET RELOCATION WORD\r
30489         001413' 202040  005052'         MOVEM   A,RELOCS        ;SAVE IT\r
30490         001414' 200040  005122'         MOVE    A,PTGR          ;INIT POINTER TO GET\r
30491         001415' 202040  005050'         MOVEM   A,PTGRS         ;RELOCATION WORD\r
30492 \r
30493         001416' 260500  001647' DELGT1: JSR     GETIN           ;GET FIRST WORD OF PAIR\r
30494         001417' 134000  005050'         ILDB    0,PTGRS         ;GET RELOCATION BITS & HOLD\r
30495         001420' 603040  100000          TLNE    A,(1B2)         ;IS SYMBOL  LOCAL?\r
30496         001421' 254000  001435'         JRST    DELDEC          ;YES, DON'T COPY\r
30497         001422' 202043  000000          MOVEM   A,0(T)          ;STORE FIRST WORD\r
30498         001423' 260500  001647'         JSR     GETIN           ;GET SECOND WORD INTO A\r
30499         001424' 202043  000001          MOVEM   A,1(T)          ;STORE SECOND WORD\r
30500         001425' 136000  005051'         IDPB    0,PTSRS         ;STORE RELOCATION BITS\r
30501         001426' 201040  000002          MOVEI   A,2             ;COUNT WORDS STORED\r
30502         001427' 272040  005053'         ADDM    A,SYMBLK        ;I.E. UPDATE WORD COUNT\r
30503         001430' 271140  000002          ADDI    T,2             ;UPDATE NEXT LOCATION TO STORE\r
30504         001431' 200040  005051'         MOVE    A,PTSRS         ;HAVE WE STORED 9\r
30505         001432' 607040  770000          TLNN    A,770000        ;SYMBOL PAIRS?\r
30506         001433' 260500  001447'         PUSHJ   P,DELWRT        ;YES, WRITE IT OUT\r
30507         001434' 254000  001436'         JRST    DELDEC+1        ;ALREADY HAVE 2ND WORD\r
30508 \r
30509         001435' 260500  001647' DELDEC: JSR     GETIN           ;GET SECOND WORD INTO A\r
30510         001436' 370000  005047'         SOS     BSZ             ;HAVE WE EXHAUSTED\r
30511         001437' 377000  005047'         SOSG    BSZ             ;ALL WORDS IN BLOCK?\r
30512         001440' 254000  001445'         JRST    DELFIN          ;YES, NONE LEFT\r
30513         001441' 200040  005050'         MOVE    A,PTGRS         ;HAVE WE GOT 9\r
30514         001442' 603040  770000          TLNE    A,770000        ;SYMBOL PAIRS YET?\r
30515         001443' 254000  001416'         JRST    DELGT1          ;NO, GET NEXT PAIR\r
30516         001444' 254000  001412'         JRST    DELGTR          ;YES, GET RELOCATION\r
30517 \r
30518         001445' 260500  001447' DELFIN: PUSHJ   P,DELWRT        ;ORIGINAL BLOCK EMPTY NOW\r
30519         001446' 254000  001314'         JRST    WRITE3          ;GET NEXT BLOCK\r
30520 \r
30521 \r
30522 \r
30523 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 40\r
30524 FUDGE2  MAC     24-APR-78 03:09         ROUTINE TO WRITE OUT NEW SYMBOL BBLE\r
30525 \r
30526                                 SUBTTL ROUTINE TO WRITE OUT NEW SYMBOL BBLE\r
30527 \r
30528         001447' 336040  005053' DELWRT: SKIPN   A,SYMBLK        ;ANYTHING TO WRITE\r
30529         001450' 254000  001461'         JRST    DELINI          ;NO, CAN LEAVE\r
30530         001451' 550000  000001          HRRZ    0,A             ;GET WORD COUNT\r
30531         001452' 505040  000002          HRLI    A,2             ;PUT IN BLOCK TYPE\r
30532         001453' 260500  001656'         PUSHJ   P,OUT           ;WRITE BLOCK HEADER\r
30533         001454' 201100  005053'         MOVEI   B,SYMBLK        ;LOC OF FIRST WORD\r
30534         001455' 271100  000001  DELWRU: ADDI    B,1             ;LOC OF RELOC WORD\r
30535         001456' 200042  000000          MOVE    A,0(B)          ;GET WORD\r
30536         001457' 260500  001656'         PUSHJ   P,OUT           ;OUTPUT\r
30537         001460' 365000  001455'         SOJGE   0,DELWRU        ;ALL THROUGH?\r
30538 \r
30539                                 ;ROUTINE TO INITIALIZE NEW SYMBOL BBLE\r
30540         001461' 402000  005053' DELINI: SETZM   SYMBLK          ;YES, CLEAR COUNT\r
30541         001462' 402000  005054'         SETZM   SYMBLK+1        ;CLEAR RELOCATION\r
30542         001463' 200040  005121'         MOVE    A,PTSR          ;INIT POINTER\r
30543         001464' 202040  005051'         MOVEM   A,PTSRS         ;FOR STORING NEW RELOC\r
30544         001465' 201140  005055'         MOVEI   T,SYMBLK+2      ;SET TO STORE FIRST GLOBAL\r
30545         001466' 263500  000000          POPJ    P,\r
30546 \r
30547 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 41\r
30548 FUDGE2  MAC     24-APR-78 03:09         ROUTINES TO INDEX THE LIBRARY\r
30549 \r
30550                                 SUBTTL ROUTINES TO INDEX THE LIBRARY\r
30551 \r
30552                                 COMMENT *       THE INDEXING OF LIBRARY FILES IS DONE IN TWO PASSES.\r
30553                                         ON PASS 1 THE LIBRARY FILE IS COPIED AND ALL ENTRIES STORED\r
30554                                         IN CORE ALLONG WITH A POINTER TO THE BEGINING OF THE BLOCK.\r
30555                                         A DUMMY INDEX BLOCK (TYPE 14) IS OUTPUT AT THE BEGINING OF THE\r
30556                                         NEW LIBRARY AND ONE IS OUTPUT WHENEVER THE CURRENT INDEX BLOCK\r
30557                                         FILLS A BUFFER.\r
30558                                         ON PASS 2 THE DUMMY INDEX BLOCKS ARE REPLACED BY REAL ONES.\r
30559                                         FUDGE2 USED USETO'S AND DUMP MODE.\r
30560                                         IF THE OUTPUT DEVICE IS DTA FUDGE2 USES UGETF UUO'S TO FIND\r
30561                                         THE NEXT BLOCK AND NON-STANDARD DUMP MODE TO WRITE THE INDICES.\r
30562                                         DESIGN AND CODING BY D.M.NIXON JULY 1970\r
30563                                 *\r
30564 \r
30565         001467' 200040  001646' INDEX0: MOVE    A,INDEXH        ;BLOCK HEADER\r
30566         001470' 350000  002516'         AOS     BLKCNT          ;START ON BLOCK #1\r
30567         001471' 260500  001660'         PUSHJ   P,OUT1          ;OUTPUT IT\r
30568         001472' 067040  000000          OUTPUT  1,              ;FORCE OUTPUT\r
30569         001473' 200140  004607'         MOVE    T,OBUF+5        ;BUFFER SIZE\r
30570         001474' 202140  005104'         MOVEM   T,XCOUNT\r
30571         001475' 202140  005106'         MOVEM   T,BUFSIZ        ;SAVE IT AWAY\r
30572         001476' 350140  000573*         AOS     T,JOBREL        ;TO GET 1K MORE\r
30573         001477' 202140  005105'         MOVEM   T,XPNTR\r
30574         001500' 202140  005107'         MOVEM   T,XBEG          ;START OF INDEX BUFFERS\r
30575         001501' 047140  000011          CORE    T,\r
30576         001502' 254000  002170'         JRST    ERR22           ;NOT ENUF CORE\r
30577         001503' 201040  000001          MOVEI   A,1             ;START ON BLOCK #1 (IF DSK)\r
30578         001504' 202060  005105'         MOVEM   A,@XPNTR        ;STORE FIRST BLOCK #\r
30579         001505' 350000  005105'         AOS     XPNTR\r
30580         001506' 200040  001646'         MOVE    A,INDEXH\r
30581         001507' 202060  005105'         MOVEM   A,@XPNTR\r
30582         001510' 350000  005105'         AOS     XPNTR\r
30583         001511' 370000  005104'         SOS     XCOUNT\r
30584         001512' 370000  005104'         SOS     XCOUNT          ;RESERVE SPACE FOR NEXT LINK WORD\r
30585         001513' 263500  000000          POPJ    P,              ;RETURN\r
30586 \r
30587 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 42\r
30588 FUDGE2  MAC     24-APR-78 03:09         ROUTINES TO INDEX THE LIBRARY\r
30589 \r
30590                                 ;HERE ON PASS 1 TO STORE ENTRIES AND POINTERS.\r
30591 \r
30592         001514' 350012  000000  INDEX1: AOS     (P)             ;SET SKIP RETURN\r
30593         001515' 550140  003334'         HRRZ    T,ENTBLK        ;GET SIZE OF BLOCK\r
30594         001516' 210040  000003          MOVN    A,T\r
30595         001517' 271140  000001          ADDI    T,1             ;WORD OF INFO\r
30596         001520' 311140  005104'         CAML    T,XCOUNT        ;ENUF ROOM IN BLOCK?\r
30597         001521' 254000  001546'         JRST    NOROOM          ;NO\r
30598         001522' 200140  003334'         MOVE    T,ENTBLK        ;GET HEADER WORD\r
30599         001523' 202160  005105'         MOVEM   T,@XPNTR\r
30600         001524' 350000  005105'         AOS     XPNTR\r
30601         001525' 370000  005104'         SOS     XCOUNT\r
30602         001526' 507000  000001          HRLS    A\r
30603         001527' 541040  003335'         HRRI    A,ENTBLK+1\r
30604         001530' 336141  000000  INDEXA: SKIPN   T,(A)\r
30605         001531' 344040  001530'         AOJA    A,.-1\r
30606         001532' 202160  005105'         MOVEM   T,@XPNTR\r
30607         001533' 370000  005104'         SOS     XCOUNT\r
30608         001534' 350000  005105'         AOS     XPNTR\r
30609         001535' 253040  001530'         AOBJN   A,INDEXA\r
30610         001536' 200140  005106' INDEX2: MOVE    T,BUFSIZ\r
30611         001537' 274140  004607'         SUB     T,OBUF+5\r
30612         001540' 207000  000003          MOVSS   T\r
30613         001541' 540140  002516'         HRR     T,BLKCNT\r
30614         001542' 202160  005105'         MOVEM   T,@XPNTR\r
30615         001543' 370000  005104'         SOS     XCOUNT\r
30616         001544' 350000  005105'         AOS     XPNTR\r
30617         001545' 263500  000000          POPJ    P,\r
30618 \r
30619                                 ;HERE WHEN CURRENT INDEX BLOCK IS FULL.\r
30620 \r
30621         001546' 200040  001646' NOROOM: MOVE    A,INDEXH        ;HEADER BLOCK OF INDEX FOR LOADER\r
30622         001547' 260500  001664'         PUSHJ   P,OUTGO\r
30623         001550' 067040  000000          OUTPUT  1,\r
30624         001551' 200140  002516'         MOVE    T,BLKCNT        ;GET INDEX BLOCK #\r
30625         001552' 562160  005105'         HRROM   T,@XPNTR        ;STORE IT WITH -1 IN LEFT HALF\r
30626         001553' 200040  005104'         MOVE    A,XCOUNT\r
30627         001554' 272040  005105'         ADDM    A,XPNTR\r
30628         001555' 200040  005106'         MOVE    A,BUFSIZ\r
30629         001556' 202040  005104'         MOVEM   A,XCOUNT\r
30630                                                                 ;MARK IT AS AN INDEX INCASE BLOCK FULL\r
30631         001557' 562160  005105'         HRROM   T,@XPNTR        ;SAVE BLOCK # FOR PASS 2\r
30632         001560' 350000  005105'         AOS     XPNTR\r
30633         001561' 606340  400000          TRNN    F,DTAFLG        ;NOT IF DTA\r
30634         001562' 350000  002516'         AOS     BLKCNT          ;ONE FOR OUTPUT\r
30635         001563' 200040  001646'         MOVE    A,INDEXH\r
30636         001564' 202060  005105'         MOVEM   A,@XPNTR\r
30637         001565' 350000  005105'         AOS     XPNTR\r
30638         001566' 370000  005104'         SOS     XCOUNT\r
30639         001567' 370000  005104'         SOS     XCOUNT          ;SPACE FOR LINK WORD TO NEXT INDEX\r
30640         001570' 254000  001515'         JRST    INDEX1+1\r
30641 \r
30642 \r
30643 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 43\r
30644 FUDGE2  MAC     24-APR-78 03:09         ROUTINES TO INDEX THE LIBRARY\r
30645 \r
30646                                 ;HERE FOR PASS 2. WRITE OUT THE INDEX BLOCKS\r
30647 \r
30648         001571' 476020  005105' INDEX3: SETOM   @XPNTR          ;TERMINATE WITH END OF INDEX MARKER\r
30649         001572' 067040  000000          OUTPUT  1,              ;SO LAST BLOCK IS WRITTEN\r
30650         001573' 602340  400000          TRNE    F,DTAFLG        ;IS IT DTA?\r
30651         001574' 254000  001614'         JRST    INDEX5          ;YES, TREAT DIFFERENTLY\r
30652         001575' 060040  000016          SETSTS  1,16\r
30653         001576' 211040  000200          MOVNI   A,200\r
30654         001577' 506040  005107'         HRLM    A,XBEG\r
30655         001600' 402000  005110' INDEX4: SETZM   XBEG+1\r
30656         001601' 200060  005107'         MOVE    A,@XBEG\r
30657         001602' 075041  000000          USETO   1,(A)\r
30658         001603' 067040  005107'         OUTPUT  1,XBEG\r
30659         001604' 063040  760000          STATZ   1,760000\r
30660         001605' 254000  002132'         JRST    ERR15\r
30661         001606' 201040  000200          MOVEI   A,200\r
30662         001607' 273040  005107'         ADDB    A,XBEG\r
30663         001610' 553000  000001          HRRZS   A\r
30664         001611' 317040  005105'         CAMG    A,XPNTR\r
30665         001612' 254000  001600'         JRST    INDEX4\r
30666         001613' 254000  002257'         JRST    EXIT\r
30667 \r
30668         001614' 070040  000000  INDEX5: CLOSE   1,              ;AND A SEPARATE EOF BLOCK\r
30669         001615' 060040  000116          SETSTS  1,116           ;NONE STANDARD MODE\r
30670         001616' 211040  000200          MOVNI   A,200           ;IOWD COUNT\r
30671         001617' 506040  005107'         HRLM    A,XBEG          ;SET IT UP FOR OUTPUT\r
30672         001620' 074060  002516'         USETI   1,@BLKCNT       ;SET ON LAST BLOCK\r
30673         001621' 066040  002513'         INPUT   1,DIRIOW        ;READ IT IN\r
30674         001622' 135040  005174'         LDB     A,[POINT 10,DIRBLK,27]  ;GET FIRST BLOCK #\r
30675         001623' 542060  005107'         HRRM    A,@XBEG         ;STORE IT FOR COMMON LOOP\r
30676         001624' 402000  005110'         SETZM   XBEG+1          ;MAKE SURE IT'S ZERO\r
30677         001625' 200060  005107' INDEX6: MOVE    A,@XBEG         ;GET BLOCK NUMBER\r
30678         001626' 074041  000000          USETI   1,(A)           ;SET FOR INPUT\r
30679         001627' 066040  002513'         INPUT   1,DIRIOW        ;INPUT BLOCK\r
30680         001630' 200140  004647'         MOVE    T,DIRBLK        ;TO FIND LINK WORD\r
30681         001631' 250160  005107'         EXCH    T,@XBEG         ;PUT IT IN OUTPUT BLOCK\r
30682         001632' 370000  005107'         SOS     XBEG            ;BACK UP POINTER\r
30683         001633' 075041  000000          USETO   1,(A)           ;NOW FOR OUTPUT\r
30684         001634' 067040  005107'         OUTPUT  1,XBEG          ;OUT IT GOES\r
30685         001635' 063040  760000          STATZ   1,760000        ;UNLESS IN ERROR\r
30686         001636' 254000  002132'         JRST    ERR15           ;DEVICE ERROR\r
30687         001637' 201040  000200          MOVEI   A,200           ;GET TO NEXT DUMP BLOCK\r
30688         001640' 273040  005107'         ADDB    A,XBEG          ;ADVANCE POINTER\r
30689         001641' 553000  000001          HRRZS   A               ;JUST WORD LOCATION\r
30690         001642' 317040  005105'         CAMG    A,XPNTR         ;ALL DONE?\r
30691         001643' 254000  001625'         JRST    INDEX6          ;NO, LOOP\r
30692         001644' 060040  000016          SETSTS  1,16            ;BACK TO STANDARD MODE TO UPDATE DIR.\r
30693         001645' 254000  002257'         JRST    EXIT            ;YES, FINISH UP\r
30694 \r
30695         001646' 000014  000177  INDEXH: XWD     14,177          ;USED TO SIGNAL INDEX BLOCK TO LOADER\r
30696 \r
30697 \r
30698 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 44\r
30699 FUDGE2  MAC     24-APR-78 03:09         INPUT SERVICE ROUTINE\r
30700 \r
30701                                 SUBTTL INPUT SERVICE ROUTINE\r
30702                                 ;THE INPUT ROUTINE GETS CHARACTERS FROM THE DEVICE WHOSE\r
30703                                 ;CHANNEL NUMBER IS IN ACCUMULATOR D. IT CALCULATES THE POSITION\r
30704                                 ;OF THE BUFFER HEADER OF THE DEVICE, THEN EITHER LOADS AC A\r
30705                                 ;FROM THE BYTE POINTER, OR DOES AN INPUT. IF AN END OF FILE\r
30706                                 ;IS FOUND, THE ROUTINE EXITS WITH A POPJ, SINCE THE READ ROUTINE\r
30707                                 ;IS CALLED WITH A PUSHJ, FOLLOWED BY AN EOF RETURN. THE NORMAL\r
30708                                 ;EXIT FROM GETIN IS BY A JRST @GETIN.\r
30709 \r
30710         001647' 377015  004612' GETIN:  SOSG    IBUF+2(DIS)     ;IS APPROPRIATE BUFFER EMPTY?\r
30711         001650' 254000  001653'         JRST    INGET           ;YES, GET ANOTHER BUFFER\r
30712         001651' 134055  004611' GETIN1: ILDB    A, IBUF+1(DIS)  ;LOAD AC A WITH A CHARACTER\r
30713         001652' 263500  000000          POPJ    P,\r
30714 \r
30715         001653' 137240  005175' INGET:  DPB     D,[POINT 4,INGET2,12]\r
30716         001654' 137240  005176'         DPB     D,[POINT 4,INGET3,12]\r
30717         001655' 254000  002474'         JRST    INGET2          ;INPUT A BUFFER OF DATA\r
30718 \r
30719 \r
30720                                 ;OUTPUT SERVICE ROUTINE\r
30721                                 ;THE OUT ROUTINE CHECKS THE TTYOB FLAG TO SEE IF THE OUTPUT\r
30722                                 ;SHOULD BE ON THE TTY. IF SO, IT TRANSFERS CONTROL IMMEDIATELY.\r
30723                                 ;OTHERWISE, IT ASSUMES OUTPUT IS ON DEVICE #1.\r
30724 \r
30725         001656' 606340  000020  OUT:    TRNN    F, TTYOB        ;SHOULD OUTPUT BE ON TTY?\r
30726         001657' 254000  002237'         JRST    TYPO            ;YES\r
30727         001660' 377000  004607' OUT1:   SOSG    OBUF+5          ;IS OUTPUT BUFFER EMPTY?\r
30728         001661' 254000  001664'         JRST    OUTGO           ;YES, OUTPUT A BUFFER\r
30729         001662' 136040  004606' OUT2:   IDPB    A, OBUF+4       ;DEPOSIT CHARACTER\r
30730         001663' 263500  000000          POPJ    P,              ;EXIT\r
30731 \r
30732         001664' 606340  200000  OUTGO:  TRNN    F,XFLG          ;IF NOT INDEXING\r
30733         001665' 254000  001671'         JRST    OUTG            ;DON'T WASTE TIME\r
30734         001666' 606340  400000          TRNN    F,DTAFLG        ;IF DTA SKIP\r
30735         001667' 354000  002516'         AOSA    BLKCNT          ;INCR. COUNT IF DSK\r
30736         001670' 073040  002516'         UGETF   1,BLKCNT        ;GET NEXT BLOCK IF DTA\r
30737         001671' 057040  000000  OUTG:   OUT     1,              ;OUTPUT A BUFFER\r
30738         001672' 254000  001662'         JRST    OUT2            ;NO ERRORS\r
30739         001673' 201240  000001          MOVEI   D, 1            ;YES, SET CHANNEL TO OUTPUT\r
30740         001674' 254000  002132'         JRST    ERR15           ;GO TO ERROR ROUTINE\r
30741 \r
30742 \r
30743 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 45\r
30744 FUDGE2  MAC     24-APR-78 03:09         ROUTINE TO HANDLE ASTERISK FILE NAME *.EXT\r
30745 \r
30746                                 SUBTTL ROUTINE TO HANDLE ASTERISK FILE NAME *.EXT\r
30747                                 ;THE DIRECTORY IS SEARCHED FOR FILE NAMES WITH GIVEN EXTENSION OR\r
30748                                 ;EXTENSION REL IF NONE SPECIFIED. THESE ARE STORED IN FILBUF\r
30749                                 ;ENTERED BY JRST FROM SEMICP\r
30750                                 ;EXIT BY POPJ\r
30751                                 ;DMN 23 MAY 1969\r
30752 \r
30753 \r
30754         001675' 200100  002522' ASTRSK: MOVE    B,COLON2        ;GET DEVICE LAST SEEN\r
30755         001676' 202100  002511'         MOVEM   B,DSKINI+1      ;SAVE IT IN CASE DSK\r
30756         001677' 047100  000004          DEVCHR  B,              ;GET ITS CHARACTERISTICS\r
30757         001700' 603100  000100          TLNE    B,DTABIT        ;IS IT A DTA\r
30758         001701' 254000  001760'         JRST    DTAAST          ;YES\r
30759         001702' 607100  200000          TLNN    B,DSKBIT        ;IS IT THE DSK?\r
30760         001703' 254000  002160'         JRST    ERR18           ;MUST BE ONE OR THE OTHER\r
30761                                                                 ;FALL INTO DSKAST IF OK\r
30762 \r
30763         001704' 261500  000547* DSKAST: PUSH    P,JOBFF         ;SAVE OLD JOBFF\r
30764         001705' 201100  004645'         MOVEI   B,DSKHDR        ;WHERE BUFFER WILL GO\r
30765         001706' 202100  001704*         MOVEM   B,JOBFF         ;SET IT UP\r
30766 \r
30767         001707' 050440  002510'         OPEN    11,DSKINI       ;11 IS SAFE CH.NO.\r
30768         001710' 254000  002162'         JRST    ERR19           ;CONNOT INIT DSK\r
30769         001711' 064440  000001          INBUF   11,1            ;FORCE SINGLE BUFFERING\r
30770         001712' 200100  002522'         MOVE    B,COLON2        ;GET DEVICE\r
30771         001713' 047100  000055          DEVPPN  B,              ;GET PROJ-PROG INCASE SYS: ETC.\r
30772         001714' 047100  000024          GETPPN  B,              ;FAILED, GET USER PROJ,PROG PAIR\r
30773         001715' 202100  004572'         MOVEM   B,EBLOCK        ;SAVE IT FOR LOOKUP OF UFD\r
30774         001716' 205100  654644          MOVSI   B,(SIXBIT/UFD/) ;EXTENSION\r
30775         001717' 202100  004573'         MOVEM   B,EBLOCK+1\r
30776         001720' 200100  005177'         MOVE    B,[XWD 1,1]     ;TO GET UFD ***VJC\r
30777         001721' 202100  004575'         MOVEM   B,EBLOCK+3      ;ENTRY BLOCK SET UP\r
30778         001722' 076440  004572'         LOOKUP  11,EBLOCK       ;DO LOOKUP\r
30779         001723' 254000  002164'         JRST    ERR20           ;CANNOT DO IT\r
30780 \r
30781         001724' 260500  001745' DSKLUP: PUSHJ   P,DSKINP        ;INPUT A WORD\r
30782         001725' 202600  004640'         MOVEM   S,SAVNAM        ;SAVE NAME FOR LATER\r
30783         001726' 260500  001745'         PUSHJ   P,DSKINP        ;GET EXT AS WELL\r
30784         001727' 512600  004641'         HLLZM   S,SAVEXT        ;SAVE EXT, CLEAR RH ***VJC\r
30785         001730' 336000  004640'         SKIPN   SAVNAM          ;IS THERE A NAME\r
30786         001731' 254000  001724'         JRST    DSKLUP          ;NO GET NEXT PAIR\r
30787         001732' 312700  004641'         CAME    EXT,SAVEXT      ;EXTENSIONS MATCH\r
30788         001733' 254000  001724'         JRST    DSKLUP          ;NO GET NEXT PAIR\r
30789         001734' 260500  000444'         PUSHJ   P,STNULL        ;CLOSE OUT OLD FILE\r
30790         001735' 200600  004640'         MOVE    S,SAVNAM        ;RECALL NAME\r
30791         001736' 260500  001137'         PUSHJ   P,PUTFIL        ;STORE IT IN FILBUF\r
30792         001737' 200600  004641'         MOVE    S,SAVEXT        ;RECALL EXTENSION\r
30793         001740' 260500  001137'         PUSHJ   P,PUTFIL\r
30794         001741' 542241  000000          HRRM    D,(A)           ;GET CHANNEL\r
30795         001742' 550600  002724'         HRRZ    S,PRGBUF        ;POINTER TO PRGBUF\r
30796         001743' 260500  001137'         PUSHJ   P,PUTFIL        ;SAVE IT AS 3RD WORD\r
30797         001744' 254000  001724'         JRST    DSKLUP          ;GO LOOP ROUND ALL\r
30798 \r
30799 \r
30800 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 46\r
30801 FUDGE2  MAC     24-APR-78 03:09         ROUTINE TO HANDLE ASTERISK FILE NAME *.EXT\r
30802 \r
30803                                 ;ROUTINE TO GET NEXT WORD FROM UFD\r
30804 \r
30805         001745' 375000  004644' DSKINP: SOSGE   DIRBUF+2        ;USUAL INPUT ROUTINE\r
30806         001746' 254000  001751'         JRST    DSKIN1          ;GET ANOTHER BUFFER\r
30807         001747' 134600  004643'         ILDB    S,DIRBUF+1      ;GET A WORD \r
30808         001750' 263500  000000          POPJ    P,              ;RETURN\r
30809 \r
30810         001751' 056440  000000  DSKIN1: IN      11,0            ;DO INPUT\r
30811         001752' 254000  001745'         JRST    DSKINP          ;NO ERRORS\r
30812         001753' 061440  020000          STATO   11,20000        ;END OF FILE?\r
30813         001754' 254000  002166'         JRST    ERR21           ;NO, READ ERROR\r
30814 \r
30815         001755' 262500  001706* FIN:    POP     P,JOBFF         ;POP UP ONE LEVEL\r
30816         001756' 262500  001755*         POP     P,JOBFF         ;RESTORE JOBFF\r
30817         001757' 263500  000000          POPJ    P,              ;RETURN TO COMMAND SCAN\r
30818 \r
30819 \r
30820         001760' 135100  005137' DTAAST: LDB     B,[POINT 4,COLON1,12]   ;GET CHANNEL\r
30821         001761' 137100  005200'         DPB     B,[POINT 4,DP+0,12]     ;DEPOSIT IT\r
30822         001762' 137100  005201'         DPB     B,[POINT 4,DP+1,12]\r
30823         001763' 137100  005202'         DPB     B,[POINT 4,DP+2,12]\r
30824         001764' 137100  005203'         DPB     B,[POINT 4,DP+3,12]\r
30825         001765' 137100  005204'         DPB     B,[POINT 4,DP+5,12]\r
30826         001766' 400100  000000          SETZ    B,              ;INITIAL CONDITION\r
30827         001767' 254000  002501'         JRST    DP              ;INPUT DIRECTORY\r
30828 \r
30829         001770' 301100  000026  DTALUP: CAIL    B,26            ;END OF DIRECTORY\r
30830         001771' 263500  000000          POPJ    P,              ;YES- FINISHED\r
30831         001772' 510602  005020'         HLLZ    S,DIREXT(B)     ;GET EXTENSION\r
30832         001773' 332002  004772'         SKIPE   DIRNAM(B)       ;IF NAME ZERO DON'T BOTHER\r
30833         001774' 312600  000016          CAME    S,EXT           ;IS EXTENSION SAME\r
30834         001775' 344100  001770'         AOJA    B,DTALUP        ;NO GET NEXT ENTRY\r
30835         001776' 260500  000444'         PUSHJ   P,STNULL        ;TERMINATE LAST ENTRY\r
30836         001777' 200602  004772'         MOVE    S,DIRNAM(B)     ;GET NAME\r
30837         002000' 260500  001137'         PUSHJ   P,PUTFIL        ;STORE IT IN FILBUF\r
30838         002001' 510602  005020'         HLLZ    S,DIREXT(B)     ;AND EXTENSION\r
30839         002002' 260500  001137'         PUSHJ   P,PUTFIL        ;STORE IT\r
30840         002003' 542241  000000          HRRM    D,(A)           ;SAVECH.\r
30841         002004' 550600  002724'         HRRZ    S,PRGBUF        ;SAVE PRGBUF POINTER\r
30842         002005' 260500  001137'         PUSHJ   P,PUTFIL        ;STORE IT\r
30843         002006' 344100  001770'         AOJA    B,DTALUP        ;GET NEXT ENTRY\r
30844 \r
30845 \r
30846 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 47\r
30847 FUDGE2  MAC     24-APR-78 03:09         ERROR ROUTINES\r
30848 \r
30849                                 SUBTTL ERROR ROUTINES\r
30850 \r
30851         002007' 201100  002261' ERROR1: MOVEI   B, EMES1        ;FUDGE COMMAND ERROR\r
30852         002010' 254000  002247'         JRST    ERROR           ;TYPE IT AND EXIT\r
30853 \r
30854         002011' 201100  002266' ERROR2: MOVEI   B, EMES2        ;TOO MANY PROGRAM NAMES\r
30855         002012' 254000  002247'         JRST    ERROR           ;TYPE IT AND EXIT\r
30856 \r
30857         002013' 201100  002276' ERROR3: MOVEI   B, EMES3        ;FUDGE SYSTEM ERROR\r
30858         002014' 254000  002247'         JRST    ERROR           ;TYPE A MESSAGE AND EXIT\r
30859 \r
30860         002015' 260500  002201' ERROR4: PUSHJ   P, DTYPOQ       ;TYPE DEVICE NAME\r
30861         002016' 201100  002307'         MOVEI   B, EMES4        ;"CANNOT DO IO AS REQUESTED"\r
30862         002017' 326400  002247'         JUMPN   G,ERROR         ;TYPE IT\r
30863         002020' 201100  002456'         MOVEI   B,EMES24        ;NO SUCH DEVICE IF G=0\r
30864         002021' 254000  002247'         JRST    ERROR           ;TYPE IT AND EXIT\r
30865 \r
30866         002022' 201100  002315' ERROR5: MOVEI   B, EMES5        ;UNEQUAL NUMBER OF MASTER AND TR.\r
30867         002023' 254000  002247'         JRST    ERROR           ;TYPE IT AND EXIT\r
30868 \r
30869         002024' 201100  002330' ERROR6: MOVEI   B, EMES6        ;NOT ENOUGH ARGUMENTS\r
30870         002025' 254000  002247'         JRST    ERROR           ;TYPE IT AND EXIT\r
30871 \r
30872         002026' 260500  002201' ERROR7: PUSHJ   P, DTYPOQ       ;TYPE OUT THE DEVICE NAME\r
30873         002027' 201040  000072          MOVEI   A, 72           ;ASCII COLON\r
30874         002030' 260500  002237'         PUSHJ   P, TYPO         ;TYPE IT OUT\r
30875         002031' 260500  002216'         PUSHJ   P, FTYPO        ;TYPE  OUT THE FILE NAME\r
30876         002032' 201040  000074          MOVEI   A, 74           ;ASCII LEFT ANGLE BRACKET\r
30877         002033' 260500  002237'         PUSHJ   P, TYPO         ;TYPE IT  OUT\r
30878         002034' 200100  000013          MOVE    B, R            ;GET PROGRAM NAME\r
30879         002035' 620340  000020          TRZ     F, TTYOB        ;SET IO BACK TO TTY\r
30880         002036' 260500  002220'         PUSHJ   P, PTYPO        ;TYPE  OUT THE PROGRAM NAME\r
30881         002037' 201040  000076          MOVEI   A, 76           ;ASCII RIGHT ANGLE BRACKET\r
30882         002040' 260500  002237'         PUSHJ   P, TYPO         ;TYPE IT OUT\r
30883         002041' 201100  002335'         MOVEI   B, EMES7        ;GET AN ERROR MESSAGE\r
30884         002042' 254000  002247'         JRST    ERROR           ;TYPE IT OUT AND EXIT\r
30885 \r
30886         002043' 260500  002201' ERROR8: PUSHJ   P, DTYPOQ       ;TYPE OUT THE DEVICE NAME\r
30887         002044' 201040  000072          MOVEI   A, 72           ;ASCII COLON\r
30888         002045' 260500  002237'         PUSHJ   P, TYPO         ;TYPE IT OUT\r
30889         002046' 260500  002216'         PUSHJ   P, FTYPO        ;TYPE  OUT FILE NAME\r
30890         002047' 201040  000056          MOVEI   A, 56           ;ASCII PERIOD\r
30891         002050' 260500  002237'         PUSHJ   P, TYPO         ;TYPE IT OUT\r
30892         002051' 550040  002524'         HRRZ    A, FILBUF       ;GET THE POINTER TO CURRENT FILE\r
30893         002052' 554601  000001          HLRZ    S, 1(A)         ;GET FILE NAME EXTENSION\r
30894         002053' 260500  002206'         PUSHJ   P, DTYPO1       ;TYPE IT OUT\r
30895         002054' 200140  005102'         MOVE    T,SDEVCHR       ;GET CHARACTERISTICS\r
30896         002055' 603140  200000          TLNE    T,DSKBIT        ;IS IT A DSK?\r
30897         002056' 254000  002103'         JRST    ERR8A           ;YES\r
30898         002057' 201100  002335'         MOVEI   B, EMES7        ;GET ERROR MESSAGE "NOT FOUND"\r
30899         002060' 254000  002247'         JRST    ERROR           ;TYPE IT OUT AND EXIT\r
30900 \r
30901 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 48\r
30902 FUDGE2  MAC     24-APR-78 03:09         ERROR ROUTINES\r
30903 \r
30904         002061' 260500  002201' ERROR9: PUSHJ   P, DTYPOQ       ;TYPE DEVICE NAME\r
30905         002062' 201100  002340'         MOVEI   B, EMES9B       ;GET REMAINDER OF MESSAGE\r
30906         002063' 254000  002247'         JRST    ERROR           ;TYPE IT AND EXIT\r
30907 \r
30908         002064' 200200  000001  ERR10:  MOVE    C, A            ;SAVE PROGRAM NAME IN C\r
30909         002065' 201100  002343'         MOVEI   B, EMES10       ;"ENTRY BLOCK TOO LARGE, PROGRAM"\r
30910         002066' 260500  002174'         PUSHJ   P, ETYPO        ;TYPE BEGINNING OF MESSAGE\r
30911         002067' 200100  000004          MOVE    B, C            ;GET PROGRAM NAME IN B\r
30912         002070' 260500  002220'         PUSHJ   P, PTYPO        ;TYPE IT OUT\r
30913         002071' 254000  002253'         JRST    EXIT1           ;EXIT\r
30914 \r
30915         002072' 201100  002352' ERR11:  MOVEI   B, EMES11       ;TRANSMISSION ERROR ON INPUT\r
30916         002073' 260500  002174'         PUSHJ   P, ETYPO        ;TYPE THE MESSAGE\r
30917         002074' 260500  002205'         PUSHJ   P, DTYPO        ;TYPE NAME OF OFFENDIN DEVICE\r
30918         002075' 254000  002253'         JRST    EXIT1           ;EXIT\r
30919 \r
30920         002076' 200140  005102' ERR14:  MOVE    T,SDEVCHR       ;GET DEVICE CHARACTERISTICS\r
30921         002077' 603140  200000          TLNE    T,DSKBIT        ;IS IT A DSK\r
30922         002100' 254000  002043'         JRST    ERROR8          ;YES\r
30923         002101' 201100  002362'         MOVEI   B, EMES14       ;DIRECTORY FULL ON OUTPUT\r
30924         002102' 254000  002247'         JRST    ERROR           ;TYPE IT AND EXIT\r
30925 \r
30926         002103' 550140  004573' ERR8A:  HRRZ    T,EBLOCK+1      ;GET ERROR CODE\r
30927         002104' 301140  000021          CAIL    T,TABLND-ETABLE ;LEGAL ERROR?\r
30928         002105' 334100  002131'         SKIPA   B,TABLND        ;NO, USE CATCH ALL MESSAGE\r
30929         002106' 200103  002110'         MOVE    B,ETABLE(T)     ;PICK UP MESSAGE\r
30930         002107' 254000  002247'         JRST    ERROR\r
30931 \r
30932 \r
30933 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 49\r
30934 FUDGE2  MAC     24-APR-78 03:09         ERROR ROUTINES\r
30935 \r
30936         002110' 000000  005205' ETABLE: [ASCIZ /(0) file was not found/]\r
30937         002111' 000000  005212'         [ASCIZ /(1) no such project-programmer number/]\r
30938         002112' 000000  005222'         [ASCIZ /(2) protection failure/]\r
30939         002113' 000000  005227'         [ASCIZ /(3) file was being modified/]\r
30940         002114' 000000  005235'         [ASCIZ /(4) rename file name already exists/]\r
30941         002115' 000000  005245'         [ASCIZ /(5) illegal sequence of UUOs/]\r
30942         002116' 000000  005253'         [ASCIZ /(6) bad UFD or bad RIB/]\r
30943         002117' 000000  005260'         [ASCIZ /(7) not a SAV file/]\r
30944         002120' 000000  005264'         [ASCIZ /(10) not enough core/]\r
30945         002121' 000000  005271'         [ASCIZ /(11) device not available/]\r
30946         002122' 000000  005277'         [ASCIZ /(12) no such device/]\r
30947         002123' 000000  005303'         [ASCIZ /(13) not two reloc reg. capability/]\r
30948         002124' 000000  005312'         [ASCIZ /(14) no room or quota exceeded/]\r
30949         002125' 000000  005321'         [ASCIZ /(15) write lock error/]\r
30950         002126' 000000  005326'         [ASCIZ /(16) not enough monitor table space/]\r
30951         002127' 000000  005336'         [ASCIZ /(17) partial allocation only/]\r
30952         002130' 000000  005344'         [ASCIZ /(20) block not free on allocation/]\r
30953 \r
30954         002131' 000000  005353' TABLND: [ASCIZ /(?) lookup,enter,or rename error/]\r
30955 \r
30956 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 50\r
30957 FUDGE2  MAC     24-APR-78 03:09         ERROR ROUTINES\r
30958 \r
30959         002132' 201100  002371' ERR15:  MOVEI   B, EMES15       ;DEVICE ERROR ON OUTPUT\r
30960         002133' 260500  002174'         PUSHJ   P, ETYPO        ;TYPE THE MESSAGE\r
30961         002134' 260500  002205'         PUSHJ   P, DTYPO        ;TYPE NAME OF OFFENDING DEVICE\r
30962         002135' 254000  002253'         JRST    EXIT1           ;GO AWAY\r
30963 \r
30964         002136' 200100  000001  ERR16:  MOVE    B,A             ;SAVE OFFENDING LETTER\r
30965         002137' 260500  002243'         PUSHJ   P,CRLF\r
30966         002140' 201040  000077          MOVEI   A,77            ;TYPE OUT "?"\r
30967         002141' 260500  001656'         PUSHJ   P, OUT\r
30968         002142' 200040  000002          MOVE    A, B            ;GET BACK OFFENDING LETTER\r
30969         002143' 260500  001656'         PUSHJ   P, OUT          ;TYPE OFFENDING LETTER\r
30970         002144' 201100  002400'         MOVEI   B, EMES16       ;"X" IS AN ILLEGAL SWITCH\r
30971         002145' 660340  040000          TRO     F,CRLFTY\r
30972         002146' 254000  002247'         JRST    ERROR           ;TYPE IT AND EXIT\r
30973 \r
30974         002147' 200100  000001  ERR17:  MOVE    B, A\r
30975         002150' 260500  002243'         PUSHJ   P,CRLF\r
30976         002151' 201040  000077          MOVEI   A, 77\r
30977         002152' 260500  001656'         PUSHJ   P, OUT\r
30978         002153' 200040  000002          MOVE    A, B\r
30979         002154' 260500  001656'         PUSHJ   P, OUT          ;TYPE OFFENDING LETTER\r
30980         002155' 201100  002405'         MOVEI   B, EMES17       ;"X" IS AN ILLEGAL CHARACTER\r
30981         002156' 660340  040000          TRO     F,CRLFTY\r
30982         002157' 254000  002247'         JRST    ERROR           ;TYPE IT AND EXIT\r
30983 \r
30984         002160' 201100  002412' ERR18:  MOVEI   B,EMES18\r
30985         002161' 254000  002247'         JRST    ERROR\r
30986 \r
30987         002162' 201100  002423' ERR19:  MOVEI   B,EMES19\r
30988         002163' 254000  002247'         JRST    ERROR\r
30989 \r
30990         002164' 201100  002427' ERR20:  MOVEI   B,EMES20\r
30991         002165' 254000  002247'         JRST    ERROR\r
30992 \r
30993         002166' 201100  002434' ERR21:  MOVEI   B,EMES21\r
30994         002167' 254000  002247'         JRST    ERROR\r
30995 \r
30996         002170' 201100  002441' ERR22:  MOVEI   B,EMES22\r
30997         002171' 254000  002247'         JRST    ERROR\r
30998 \r
30999         002172' 201100  002447' ERR23:  MOVEI   B,EMES23\r
31000         002173' 254000  002247'         JRST    ERROR\r
31001 \r
31002 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 51\r
31003 FUDGE2  MAC     24-APR-78 03:09         VARIOUS ERROR ROUTINES AND SMALL TYPE-OUT ROUTINES\r
31004 \r
31005                                 SUBTTL VARIOUS ERROR ROUTINES AND SMALL TYPE-OUT ROUTINES\r
31006 \r
31007         002174' 505100  440700  ETYPO:  HRLI    B, 440700       ;MAKE A BYTE POINTER\r
31008         002175' 134040  000002  ETYPO2: ILDB    A, B            ;GET A CHARACTER\r
31009         002176' 322040  001065'         JUMPE   A,CPOPJ         ;EXIT IF NULL\r
31010         002177' 260500  002237'         PUSHJ   P, TYPO         ;NO, TYPE IT\r
31011         002200' 254000  002175'         JRST    ETYPO2          ;RETURN FOR MORE CHARACTERS\r
31012 \r
31013         002201' 666340  040000  DTYPOQ: TRON    F,CRLFTY        ;IS CR,LF TYPED OUT?\r
31014         002202' 260500  002243'         PUSHJ   P,CRLF          ;YES\r
31015         002203' 201040  000077          MOVEI   A,77            ;TYPE OUT ? FOR BATCH\r
31016         002204' 260500  002237'         PUSHJ   P,TYPO\r
31017 \r
31018 \r
31019         002205' 200605  003324' DTYPO:  MOVE    S, DEVBUF(D)    ;GET DEVICE NAME FROM BUFFER\r
31020         002206' 200200  005117' DTYPO1: MOVE    C, SYMPTR       ;BYTE POINTER TO SYMBOL NAME\r
31021         002207' 201100  000006          MOVEI   B, 6            ;LOOP COUNTER FOR 6 CHARACTERS\r
31022         002210' 134040  000004  DTYPO2: ILDB    A, C            ;GET A CHARACTER\r
31023         002211' 322040  002214'         JUMPE   A, DTYPO3       ;IGNORE BLANKS\r
31024         002212' 271040  000040          ADDI    A, 40           ;CONVERT TO 7-BIT ASCII\r
31025         002213' 260500  002237'         PUSHJ   P, TYPO         ;TYPE IT\r
31026         002214' 367100  002210' DTYPO3: SOJG    B, DTYPO2       ;ALL DONE?\r
31027         002215' 263500  000000          POPJ    P,              ;EXIT\r
31028 \r
31029         002216' 200620  002524' FTYPO:  MOVE    S, @FILBUF      ;PICK UP THE FILE NAME\r
31030         002217' 254000  002206'         JRST    DTYPO1          ;JUMP INTO DTYPO ROUTINE\r
31031 \r
31032         002220' 201040  000006  PTYPO:  MOVEI   A, 6            ;SIX CHARACTERS TO GET\r
31033         002221' 231100  000050  PTYPO2: IDIVI   B, 50           ;CONVERT TO SIXBIT CODE\r
31034         002222' 506152  000000          HRLM    B+1, (P)        ;STORE CHARACTER ON PD LIST\r
31035         002223' 363040  002225'         SOJLE   A,.+2           ;ALL DONE?\r
31036         002224' 260500  002221'         PUSHJ   P, PTYPO2       ;NO, DIVIDE SOME MORE\r
31037         002225' 554052  000000          HLRZ    A, (P)          ;POP CHARACTERS OFF STACK\r
31038         002226' 322040  001065'         JUMPE   A, CPOPJ        ;IGNORE BLANKS\r
31039         002227' 303040  000012          CAILE   A, 12           ;LETTER OR NUMBER?\r
31040         002230' 271040  000007          ADDI    A, 7            ;LETTER - ADD 66\r
31041         002231' 271040  000057          ADDI    A, 57           ;NUMBER - ADD 57\r
31042         002232' 306040  000134          CAIN    A, 134          ;DOLLAR SIGN?\r
31043         002233' 275040  000070          SUBI    A, 70           ;YES, SPECIAL CASE\r
31044         002234' 306040  000133          CAIN    A, 133          ;PERIOD?\r
31045         002235' 275040  000055          SUBI    A, 55           ;YES, SPECIAL CASE\r
31046         002236' 254000  001656'         JRST    OUT             ;RECURSIVE EXIT FOR MORE CHARS\r
31047 \r
31048         002237' 136040  004603' TYPO:   IDPB    A, OBUF+1       ;STORE CHARACTER IN BUFFER\r
31049         002240' 306040  000012          CAIN    A, 12           ;LINE FEED?\r
31050         002241' 067000  000000          OUTPUT  0,              ;YES, EMPTY BUFFER\r
31051         002242' 263500  000000          POPJ    P,              ;EXIT\r
31052 \r
31053 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 52\r
31054 FUDGE2  MAC     24-APR-78 03:09         VARIOUS ERROR ROUTINES AND SMALL TYPE-OUT ROUTINES\r
31055 \r
31056         002243' 201040  000015  CRLF:   MOVEI   A, 15           ;CARRIAGE RETURN\r
31057         002244' 260500  001656'         PUSHJ   P, OUT          ;OUTPUT IT\r
31058         002245' 201040  000012          MOVEI   A, 12           ;LINE FEED\r
31059         002246' 254000  001656'         JRST    OUT             ;OUTPUT IT AND EXIT\r
31060 \r
31061         002247' 620340  000020  ERROR:  TRZ     F,TTYOB         ;JUST IN CASE , SET OUTPUT TO TTY\r
31062         002250' 666340  040000          TRON    F,CRLFTY\r
31063         002251' 260500  002243'         PUSHJ   P,CRLF\r
31064         002252' 260500  002174'         PUSHJ   P, ETYPO        ;TYPE LAST MESSAGE OF ERROR\r
31065         002253' 620340  000020  EXIT1:  TRZ     F,TTYOB         ;ENSURE TTY OUTPUT OF CR-LF\r
31066         002254' 260500  002243'         PUSHJ   P,CRLF          ;FINISH WITH CR-LF\r
31067         002255' 070000  000000          CLOSE   0,              ;FORCE OUTPUT OF LAST LINE\r
31068         002256' 254000  000000'         JRST    FUDGE2          ;START AGAIN\r
31069 \r
31070         002257' 070040  000000  EXIT:   CLOSE   1,              ;CLOSE OUT THE OUTPUT CHANNEL\r
31071         002260' 254000  000000'         JRST    FUDGE2          ;RESTART\r
31072 \r
31073 \r
31074 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 53\r
31075 FUDGE2  MAC     24-APR-78 03:09         ERROR MESSAGES\r
31076 \r
31077                                 SUBTTL ERROR MESSAGES\r
31078         002261' 376152  542216  EMES1:  ASCIZ   "?FUDGE2 SYNTAX ERROR"\r
31079         002262' 425444  051662\r
31080         002263' 472510  154100\r
31081         002264' 426452  247644\r
31082         002265' 000000  000000\r
31083         002266' 376511  747500  EMES2:  ASCIZ   "?TOO MANY FILE NAMES OR PROGRAM NAMES"\r
31084         002267' 466031  654500\r
31085         002270' 432231  442500\r
31086         002271' 472031  542646\r
31087         002272' 202372  220240\r
31088         002273' 512370  751202\r
31089         002274' 465011  640632\r
31090         002275' 426460  000000\r
31091         002276' 376412  247616  EMES3:  ASCIZ   "?PROGRAM ERROR WHILE RESETTING MASTER DEVICE"\r
31092         002277' 512031  520212\r
31093         002300' 512451  751100\r
31094         002301' 536211  146212\r
31095         002302' 202450  551612\r
31096         002303' 522511  147216\r
31097         002304' 202330  151650\r
31098         002305' 426444  042212\r
31099         002306' 532230  342400\r
31100         002307' 202070  147234  EMES4:  ASCIZ   " CANNOT DO IO AS REQUESTED"\r
31101         002310' 476504  042236\r
31102         002311' 202231  720202\r
31103         002312' 515012  242642\r
31104         002313' 526132  352212\r
31105         002314' 420000  000000\r
31106         002315' 376531  642642  EMES5:  ASCIZ   "?UNEQUAL NUMBER OF MASTER AND TRANSACTION PROGRAMS"\r
31107         002316' 526031  420234\r
31108         002317' 526330  242644\r
31109         002320' 202370  620232\r
31110         002321' 406472  442644\r
31111         002322' 202031  642100\r
31112         002323' 522450  147246\r
31113         002324' 406072  444636\r
31114         002325' 471012  051236\r
31115         002326' 436450  146646\r
31116         002327' 000000  000000\r
31117         002330' 376351  752100  EMES6:  ASCIZ   "?NOT ENOUGH ARGUMENTS"\r
31118         002331' 426351  752616\r
31119         002332' 441010  151216\r
31120         002333' 526330  547250\r
31121         002334' 514000  000000\r
31122         002335' 202351  752100  EMES7:  ASCIZ   " NOT FOUND"\r
31123         002336' 432372  547210\r
31124         002337' 000000  000000\r
31125         002340' 202351  752100  EMES9B: ASCIZ   " NOT AVAILABLE"\r
31126         002341' 406550  144630\r
31127         002342' 406051  442400\r
31128         002343' 376131  652244  EMES10: ASCIZ   "?ENTRY BLOCK TOO LARGE, PROGRAM "\r
31129         002344' 545010  246236\r
31130 \r
31131 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 53-1\r
31132 FUDGE2  MAC     24-APR-78 03:09         ERROR MESSAGES\r
31133 \r
31134         002345' 416264  052236\r
31135         002346' 475011  440644\r
31136         002347' 436125  420240\r
31137         002350' 512370  751202\r
31138         002351' 465000  000000\r
31139         002352' 376512  240634  EMES11: ASCIZ   "?TRANSMISSION ERROR ON INPUT DEVICE "\r
31140         002353' 516331  151646\r
31141         002354' 446371  620212\r
31142         002355' 512451  751100\r
31143         002356' 476344  044634\r
31144         002357' 502532  420210\r
31145         002360' 426551  141612\r
31146         002361' 200000  000000\r
31147         002362' 376111  151212  EMES14: ASCIZ   "?DIRECTORY FULL ON OUTPUT DEVICE "\r
31148         002363' 416511  751262\r
31149         002364' 202152  546230\r
31150         002365' 202371  620236\r
31151         002366' 526512  052650\r
31152         002367' 202110  553222\r
31153         002370' 416124  000000\r
31154         002371' 376110  553222  EMES15: ASCIZ   "?DEVICE ERROR ON OUTPUT DEVICE "\r
31155         002372' 416124  042644\r
31156         002373' 512372  220236\r
31157         002374' 471011  752650\r
31158         002375' 502532  420210\r
31159         002376' 426551  141612\r
31160         002377' 200000  000000\r
31161         002400' 202232  320202  EMES16: ASCIZ   " IS AN ILLEGAL SWITCH"\r
31162         002401' 471011  146230\r
31163         002402' 426170  146100\r
31164         002403' 516571  152206\r
31165         002404' 440000  000000\r
31166         002405' 202232  320202  EMES17: ASCIZ   " IS AN ILLEGAL CHARACTER"\r
31167         002406' 471011  146230\r
31168         002407' 426170  146100\r
31169         002410' 416210  151202\r
31170         002411' 416510  551000\r
31171         002412' 376110  553222  EMES18: ASCIZ "?DEVICE FOR * COMMAND MUST BE DSK OR DTA"\r
31172         002413' 416124  043236\r
31173         002414' 511005  220206\r
31174         002415' 476331  540634\r
31175         002416' 421011  552646\r
31176         002417' 521010  242500\r
31177         002420' 422471  320236\r
31178         002421' 511010  452202\r
31179         002422' 000000  000000\r
31180         002423' 376070  147234  EMES19: ASCIZ "?CANNOT INIT DSK"\r
31181         002424' 476504  044634\r
31182         002425' 446504  042246\r
31183         002426' 454000  000000\r
31184         002427' 376311  747626  EMES20: ASCIZ "?LOOKUP FAILURE ON DSK"\r
31185         002430' 526404  043202\r
31186         002431' 446312  551212\r
31187 \r
31188 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 53-2\r
31189 FUDGE2  MAC     24-APR-78 03:09         ERROR MESSAGES\r
31190 \r
31191         002432' 202371  620210\r
31192         002433' 516260  000000\r
31193         002434' 376132  251236  EMES21: ASCIZ "?ERROR WHILE READING UFD"\r
31194         002435' 511012  744222\r
31195         002436' 462124  051212\r
31196         002437' 406111  147216\r
31197         002440' 202530  642000\r
31198         002441' 376351  752100  EMES22: ASCIZ "?NOT ENOUGH CORE AVAILABLE "\r
31199         002442' 426351  752616\r
31200         002443' 441010  347644\r
31201         002444' 425010  153202\r
31202         002445' 446310  141230\r
31203         002446' 425000  000000\r
31204         002447' 376372  552240  EMES23: ASCIZ   "?OUTPUT DEVICE MUST BE DSK OR DTA"\r
31205         002450' 526504  042212\r
31206         002451' 532230  342500\r
31207         002452' 466532  352100\r
31208         002453' 412124  042246\r
31209         002454' 455011  751100\r
31210         002455' 422510  100000\r
31211         002456' 202111  742646  EMES24: ASCIZ   " DOES NOT EXIST"\r
31212         002457' 202351  752100\r
31213         002460' 426611  151650\r
31214         002461' 000000  000000\r
31215 \r
31216 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 54\r
31217 FUDGE2  MAC     24-APR-78 03:09         IMPURE CODE\r
31218 \r
31219                                 SUBTTL IMPURE CODE\r
31220 \r
31221 \r
31222         002462' 050000  002521' COLON1: OPEN    ,COLON0         ;INITIALIZATION SEQUENCE\r
31223         002463' 077003  004572' SEMIC1: ENTER   , EBLOCK(T)\r
31224         002464' 064004  000000  INBUF3: INBUF   ,(C)\r
31225 \r
31226         002465' 072000  000017  BACK0:  MTAPE   , 17            ;BACKSPACE MAG TAPE ONE FILE\r
31227         002466' 072000  000000  BACK3:  MTAPE   ,0              ;WAIT FOR BACKSPACE TO FIN.\r
31228         002467' 061000  004000  BACK1:  STATO   , IOBOT         ;ARE WE AT BEGINNING OF TAPE\r
31229         002470' 072000  000016  BACK2:  MTAPE   , 16            ;NO, SKIP FILE\r
31230         002471' 263500  000000          POPJ    P,              ;EXIT\r
31231 \r
31232         002472' 070000  000000  GET3A:  CLOSE   ,\r
31233         002473' 076003  004572' GET4A:  LOOKUP  , EBLOCK(T)\r
31234 \r
31235         002474' 056000  000000  INGET2: IN      0,              ;INPUT A BUFFER OF DATA\r
31236         002475' 254000  001651'         JRST    GETIN1          ;NO ERRORS\r
31237         002476' 063000  020000  INGET3: STATZ   , IOEOF         ;END OF FILE?\r
31238         002477' 254000  001064'         JRST    POPOUT          ;YES, HIGH LEVEL EXIT\r
31239         002500' 254000  002072'         JRST    ERR11           ;ERROR\r
31240 \r
31241         002501' 060000  000117  DP:     SETSTS  ,117            ;DUMP MODE NON-STANDARD\r
31242         002502' 074000  000144          USETI   ,144            ;DIRECTORY BLOCK\r
31243         002503' 066000  002513'         INPUT   ,DIRIOW         ;ONE BLOCK ONLY\r
31244         002504' 063000  760000          STATZ   ,760000         ;CHECK ERRORS\r
31245         002505' 254000  002501'         JRST    DP              ;TRY AGAIN\r
31246         002506' 060000  000014          SETSTS  ,14             ;BACK TO BINARY\r
31247         002507' 254000  001770'         JRST    DTALUP\r
31248 \r
31249         002510' 000000  000014  DSKINI: EXP     14\r
31250         002511' 446353  000000          SIXBIT  /DSK/           ;MAY GET MODIFIED\r
31251         002512' 000000  004642'         EXP     DIRBUF\r
31252 \r
31253         002513' 777600  004646' DIRIOW: IOWD    200,DIRBLK      ;IOWD FOR DIRECTORY INPUT\r
31254         002514' 000000  000000          0                       ;MUST BE IN LOW SEGMENT\r
31255 \r
31256 \r
31257 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 55\r
31258 FUDGE2  MAC     24-APR-78 03:09         STORAGE AND BUFFERS\r
31259 \r
31260                                 SUBTTL STORAGE AND BUFFERS\r
31261 \r
31262         002515'                 LOW:\r
31263 \r
31264         002515'                 FILSAV: BLOCK   1\r
31265         002516'                 BLKCNT: BLOCK   1               ;NUMBER OF BUFFERS OUTPUT\r
31266         002517'                 SAVEAC: BLOCK   1\r
31267         002520'                 SAVEBT: BLOCK   1\r
31268         002521'                 COLON0: BLOCK   1               ;MODE\r
31269         002522'                 COLON2: BLOCK   1               ;DEVICE NAME\r
31270         002523'                 COLON3: BLOCK   1               ;BUFFER HEADER\r
31271         002524'                 FILBUF: BLOCK   N\r
31272         002724'                 PRGBUF: BLOCK   N\r
31273         003124'                 PPNBUF: BLOCK   N\r
31274         003324'                 DEVBUF: BLOCK   10\r
31275         003334'                 ENTBLK: BLOCK   X+1\r
31276         004042'                 SVEBLK: BLOCK   X+1\r
31277         004550'                 PDLIST: BLOCK   XP\r
31278         004570'                         BLOCK   2               ;FOR EXTENDED LOOKUP AND ENTERS\r
31279         004572'                 EBLOCK: BLOCK   4\r
31280         004576'                         BLOCK   <RIBALC-6+1>    ;MORE EXTENDED STUFF\r
31281         004602'                 OBUF:   BLOCK   6               ;TTY:, OUTPUT DEV:\r
31282         004610'                 IBUF:   BLOCK   30              ;INPUT DEVICES (10)\r
31283 \r
31284         004640'                 SAVNAM: BLOCK   1       ;SAVED FILE NAME FROM UFD\r
31285         004641'                 SAVEXT: BLOCK   1       ;SAVED EXT NAME FROM UFD\r
31286         004642'                 DIRBUF: BLOCK 3         ;DIRECTORY BUFFER HEADER\r
31287         004645'                 DSKHDR: BLOCK N+2       ;TWO WORDS OF OVERHEAD [P,P]+EXT\r
31288                         004647' DIRBLK=DSKHDR+2\r
31289                         004772' DIRNAM=DIRBLK+123       ;FILENAMES IN DTA DIRECTORY START HERE\r
31290                         005020' DIREXT=DIRNAM+26        ;EXTENSIONS IN DTA DIRECTORY START HERE\r
31291 \r
31292         005047'                 BSZ:    BLOCK   1               ;SIZE OF OLD SYMBOL BLOCK\r
31293         005050'                 PTGRS:  BLOCK   1               ;PTGR SAVED\r
31294         005051'                 PTSRS:  BLOCK   1               ;PTSR SAVED\r
31295         005052'                 RELOCS: BLOCK   1               ;ORIGINAL RELOC\r
31296         005053'                 SYMBLK: BLOCK   ^D20            ;NEW SYMBOL BLOCK\r
31297 \r
31298         005077'                 MATCH:  BLOCK   1               ;COUNT OF <'S - >'S ***VJC\r
31299 \r
31300         005100'                 CURCHR: BLOCK   1               ;SAVED CURRENT CHAR OF CS\r
31301         005101'                 LSTCHR: BLOCK   1               ;SAVED LAST CHAR OF CS\r
31302         005102'                 SDEVCH: BLOCK   1       ;SAVED DEVICE CHARACTERS\r
31303         005103'                 NUMDEV: BLOCK   1       ;NUMBER OF DEVICES\r
31304         005104'                 XCOUNT: BLOCK   1\r
31305         005105'                 XPNTR:  BLOCK   1\r
31306         005106'                 BUFSIZ: BLOCK   1\r
31307         005107'                 XBEG:   BLOCK   2\r
31308         005111'                 LEVEL:  BLOCK   1       ;-2 IF LEVEL D\r
31309         005112'                 DEFPPN: BLOCK   1       ;DEFAULT PROJ-PROG\r
31310         005113'                 PRJPRG: BLOCK   1       ;TEMP. PROJ-PROG\r
31311         005114'                 SVENTR: BLOCK   2       ;PLACE TO SAVE EBLOCK,+1\r
31312         005116'                 NOWARN: BLOCK   1       ;SIGNAL TO PRINT MESSAGE ABOUT INDEX\r
31313 \r
31314 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 55-1\r
31315 FUDGE2  MAC     24-APR-78 03:09         STORAGE AND BUFFERS\r
31316 \r
31317         005117'                         VAR             ;JUST IN CASE\r
31318 \r
31319         005117'                 LOWTOP:\r
31320 \r
31321 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 56\r
31322 FUDGE2  MAC     24-APR-78 03:09         CONSTANTS,POINTERS AND LITERALS\r
31323 \r
31324                                 SUBTTL CONSTANTS,POINTERS AND LITERALS\r
31325 \r
31326         005117' 440600  000014  SYMPTR: POINT   6, S\r
31327         005120' 440600  000016  EXTPTR: POINT   6, EXT\r
31328         005121' 440400  005054' PTSR:   POINT   4,SYMBLK+1      ;TO STORE RELOCATION\r
31329         005122' 440400  005052' PTGR:   POINT   4,RELOCS        ;TO GET RELOCATION\r
31330         005123' 047040  000013  DTCLR:  UTPCLR  1,\r
31331         005124' 002526' 002525' FILXWD: XWD     FILBUF+2, FILBUF+1\r
31332         005125' 777760  004547' XPDLST: XWD     -XP,PDLIST-1\r
31333 \r
31334                         000000'         END     FUDGE2\r
31335 \r
31336 NO ERRORS DETECTED\r
31337 \r
31338 PROGRAM BREAK IS 005362\r
31339 \r
31340 9K CORE USED\r
31341 \r
31342 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 57\r
31343 FUDGE2  MAC     24-APR-78 03:09         SYMBOL TABLE\r
31344 \r
31345 A               000001  \r
31346 ALTMOD          000521' \r
31347 APPEND          000711' \r
31348 APROC3          000716' \r
31349 ASTRSK          001675' \r
31350 B               000002  \r
31351 BACK0           002465' \r
31352 BACK1           002467' \r
31353 BACK2           002470' \r
31354 BACK3           002466' \r
31355 BACKSP          001024' \r
31356 BITE            000110' \r
31357 BLKCNT          002516' \r
31358 BSWTCH          000250' \r
31359 BSZ             005047' \r
31360 BUFSIZ          005106' \r
31361 C               000004  \r
31362 COLON           000317' \r
31363 COLON0          002521' \r
31364 COLON1          002462' \r
31365 COLON2          002522' \r
31366 COLON3          002523' \r
31367 COLON4          000375' \r
31368 COLON6          000340' \r
31369 COLON7          000344' \r
31370 COLON8          000357' \r
31371 COLONB          000406' \r
31372 COLONC          000373' \r
31373 COMMA           000310' \r
31374 COMMA1          000503' \r
31375 COMMA3          000477' \r
31376 COMMA4          000516' \r
31377 COMMAP          000470' \r
31378 COMMAX          000314' \r
31379 CONB            010000  SPD\r
31380 COPY            000737' \r
31381 COPYTO          000743' \r
31382 CORE    047000  000011  \r
31383 COUNT           001337' \r
31384 CPOPJ           001065' \r
31385 CPOPJ1          001063' \r
31386 CRLF            002243' \r
31387 CRLFTY          040000  SPD\r
31388 CURCHR          005100' \r
31389 D               000005  \r
31390 DEFENT          000463' \r
31391 DEFPPN          005112' \r
31392 DELCPY          000730' \r
31393 DELDEC          001435' \r
31394 DELETE          000701' \r
31395 DELFIN          001445' \r
31396 DELGT1          001416' \r
31397 DELGTR          001412' \r
31398 \r
31399 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 57-1\r
31400 FUDGE2  MAC     24-APR-78 03:09         SYMBOL TABLE\r
31401 \r
31402 DELINI          001461' \r
31403 DELLOC          001410' \r
31404 DELWRT          001447' \r
31405 DELWRU          001455' \r
31406 DESTB           000001  SPD\r
31407 DEVB            000400  SPD\r
31408 DEVBUF          003324' \r
31409 DEVCHR  047000  000004  \r
31410 DEVPPN  047000  000055  \r
31411 DIRBLK          004647' \r
31412 DIRBUF          004642' \r
31413 DIREXT          005020' \r
31414 DIRIOW          002513' \r
31415 DIRNAM          004772' \r
31416 DIS             000015  \r
31417 DOENTR          001121' \r
31418 DOXSWT          001134' \r
31419 DP              002501' \r
31420 DPROC1          000703' \r
31421 DRCTRB          000004  SPD\r
31422 DSKAST          001704' \r
31423 DSKBIT          200000  SPD\r
31424 DSKHDR          004645' \r
31425 DSKIN1          001751' \r
31426 DSKINI          002510' \r
31427 DSKINP          001745' \r
31428 DSKLUP          001724' \r
31429 DSPTCH          000065' \r
31430 DTAAST          001760' \r
31431 DTABIT          000100  SPD\r
31432 DTAFLG          400000  SPD\r
31433 DTALUP          001770' \r
31434 DTCLR           005123' \r
31435 DTYPO           002205' \r
31436 DTYPO1          002206' \r
31437 DTYPO2          002210' \r
31438 DTYPO3          002214' \r
31439 DTYPOQ          002201' \r
31440 E               000006  \r
31441 EBLOCK          004572' \r
31442 EMES1           002261' \r
31443 EMES10          002343' \r
31444 EMES11          002352' \r
31445 EMES14          002362' \r
31446 EMES15          002371' \r
31447 EMES16          002400' \r
31448 EMES17          002405' \r
31449 EMES18          002412' \r
31450 EMES19          002423' \r
31451 EMES2           002266' \r
31452 EMES20          002427' \r
31453 EMES21          002434' \r
31454 EMES22          002441' \r
31455 \r
31456 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 57-2\r
31457 FUDGE2  MAC     24-APR-78 03:09         SYMBOL TABLE\r
31458 \r
31459 EMES23          002447' \r
31460 EMES24          002456' \r
31461 EMES3           002276' \r
31462 EMES4           002307' \r
31463 EMES5           002315' \r
31464 EMES6           002330' \r
31465 EMES7           002335' \r
31466 EMES9B          002340' \r
31467 ENDST           001372' \r
31468 ENTBLK          003334' \r
31469 EPROC1          000670' \r
31470 EPROC2          000672' \r
31471 ERR10           002064' \r
31472 ERR11           002072' \r
31473 ERR14           002076' \r
31474 ERR15           002132' \r
31475 ERR16           002136' \r
31476 ERR17           002147' \r
31477 ERR18           002160' \r
31478 ERR19           002162' \r
31479 ERR20           002164' \r
31480 ERR21           002166' \r
31481 ERR22           002170' \r
31482 ERR23           002172' \r
31483 ERR8A           002103' \r
31484 ERRB            002000  SPD\r
31485 ERRISQ          000214' \r
31486 ERROR           002247' \r
31487 ERROR1          002007' \r
31488 ERROR2          002011' \r
31489 ERROR3          002013' \r
31490 ERROR4          002015' \r
31491 ERROR5          002022' \r
31492 ERROR6          002024' \r
31493 ERROR7          002026' \r
31494 ERROR8          002043' \r
31495 ERROR9          002061' \r
31496 ETABLE          002110' \r
31497 ETYPO           002174' \r
31498 ETYPO2          002175' \r
31499 EXIT            002257' \r
31500 EXIT1           002253' \r
31501 EXT             000016  \r
31502 EXTB            001000  SPD\r
31503 EXTPTR          005120' \r
31504 EXTRCT          000660' \r
31505 F               000007  \r
31506 F4              001346' \r
31507 F4I             001270' \r
31508 F4IB            020000  SPD\r
31509 F4LUP1          001374' \r
31510 F4LUP2          001402' \r
31511 F4LUP3          001375' \r
31512 \r
31513 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 57-3\r
31514 FUDGE2  MAC     24-APR-78 03:09         SYMBOL TABLE\r
31515 \r
31516 FILBUF          002524' \r
31517 FILSAV          002515' \r
31518 FILXWD          005124' \r
31519 FIN             001755' \r
31520 FIND1           000752' \r
31521 FIND2           000757' \r
31522 FIND3           000765' \r
31523 FINDCP          000751' \r
31524 FIXUP           000647' \r
31525 FTYPO           002216' \r
31526 FUDGE2          000000' \r
31527 G               000010  \r
31528 GET0            001046' \r
31529 GET1            001060' \r
31530 GET3            001066' \r
31531 GET3A           002472' \r
31532 GET4            001107' \r
31533 GET4A           002473' \r
31534 GETCHR          000040' \r
31535 GETCMN          000045' \r
31536 GETDEV          001031' \r
31537 GETIN           001647' \r
31538 GETIN1          001651' \r
31539 GETPPN  047000  000024  \r
31540 H               000011  \r
31541 IBUF            004610' \r
31542 INBIT           000002  SPD\r
31543 INBUF0          000546' \r
31544 INBUF1          000566' \r
31545 INBUF2          000556' \r
31546 INBUF3          002464' \r
31547 INBUF4          000571' \r
31548 INBUFG          000573' \r
31549 INDEX           000722' \r
31550 INDEX0          001467' \r
31551 INDEX1          001514' \r
31552 INDEX2          001536' \r
31553 INDEX3          001571' \r
31554 INDEX4          001600' \r
31555 INDEX5          001614' \r
31556 INDEX6          001625' \r
31557 INDEXA          001530' \r
31558 INDEXH          001646' \r
31559 INFOB           004000  SPD\r
31560 INGET           001653' \r
31561 INGET2          002474' \r
31562 INGET3          002476' \r
31563 INSER1          000654' \r
31564 INSERT          000632' \r
31565 IOBKTL          040000  SPD\r
31566 IOBOT           004000  SPD\r
31567 IODATA          100000  SPD\r
31568 IODEV           200000  SPD\r
31569 \r
31570 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 57-4\r
31571 FUDGE2  MAC     24-APR-78 03:09         SYMBOL TABLE\r
31572 \r
31573 IOEOF           020000  SPD\r
31574 IPROC7          000656' \r
31575 JOBFF           001756' EXT\r
31576 JOBREL          001476' EXT\r
31577 JOBSA           000000  EXT\r
31578 JOBSYM          000000  EXT\r
31579 JOBVER          000137  SPD\r
31580 JSR     260500  000000  \r
31581 KSWTCH          000251' \r
31582 LBRACA          000277' \r
31583 LBRACK          000265' \r
31584 LEVEL           005111' \r
31585 LFTARW          000156' \r
31586 LIST            000600' \r
31587 LIST1           000610' \r
31588 LIST2           000613' \r
31589 LOW             002515' \r
31590 LOWTOP          005117' \r
31591 LPTBIT          040000  SPD\r
31592 LSQB            000162' \r
31593 LSQB1           000164' \r
31594 LSTCHR          005101' \r
31595 MACHCD          001365' \r
31596 MATCH           005077' \r
31597 MSTGET          000772' \r
31598 N               000200  SPD\r
31599 NODEV           000150' \r
31600 NOLOCB          000200  SPD\r
31601 NOROOM          001546' \r
31602 NOWARN          005116' \r
31603 NUMDEV          005103' \r
31604 NXTWRD          001223' \r
31605 OBUF            004602' \r
31606 OUT             001656' \r
31607 OUT1            001660' \r
31608 OUT2            001662' \r
31609 OUT4            001405' \r
31610 OUTBIT          000001  SPD\r
31611 OUTG            001671' \r
31612 OUTGO           001664' \r
31613 P               000012  \r
31614 PDLIST          004550' \r
31615 PERIOD          000257' \r
31616 POPBAK          100000  SPD\r
31617 POPOUT          001064' \r
31618 PPNBUF          003124' \r
31619 PRGBUF          002724' \r
31620 PRJPRG          005113' \r
31621 PROGB           000100  SPD\r
31622 PTGR            005122' \r
31623 PTGRS           005050' \r
31624 PTSR            005121' \r
31625 PTSRS           005051' \r
31626 \r
31627 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 57-5\r
31628 FUDGE2  MAC     24-APR-78 03:09         SYMBOL TABLE\r
31629 \r
31630 PTYPO           002220' \r
31631 PTYPO2          002221' \r
31632 PUTFIL          001137' \r
31633 PUTPPN          001151' \r
31634 PUTPRG          001144' \r
31635 R               000013  \r
31636 RBRACK          000303' \r
31637 READ            001156' \r
31638 READ1           001206' \r
31639 READ2           001210' \r
31640 READ22          001230' \r
31641 READ23          001216' \r
31642 READ3           001245' \r
31643 READ5           001243' \r
31644 READ55          001233' \r
31645 READ6           001157' \r
31646 READ6A          001173' \r
31647 READ6B          001202' \r
31648 READ7           001266' \r
31649 READ8           001255' \r
31650 READ9           001261' \r
31651 READX           001276' \r
31652 RELOCS          005052' \r
31653 REPLCE          000621' \r
31654 RESET           001002' \r
31655 RESET   047000  000000  \r
31656 RESET1          001017' \r
31657 RESET2          001005' \r
31658 RESET3          001012' \r
31659 RIBALC          000011  SPD\r
31660 RSQB            000202' \r
31661 S               000014  \r
31662 SAVEAC          002517' \r
31663 SAVEB           000002  SPD\r
31664 SAVEBT          002520' \r
31665 SAVEXT          004641' \r
31666 SAVNAM          004640' \r
31667 SDEVCH          005102' \r
31668 SEMIC1          002463' \r
31669 SEMIC2          000447' \r
31670 SEMIC3          000462' \r
31671 SEMIC4          000427' \r
31672 SEMICA          000416' \r
31673 SEMICP          000407' \r
31674 SIZE            000500  SPD\r
31675 SIZZ            000452  SPD\r
31676 SLASH           000144' \r
31677 SLIST           000216' \r
31678 SLSHB           000010  SPD\r
31679 SQBCMA          000177' \r
31680 STNULL          000444' \r
31681 STORE           000127' \r
31682 SVEBLK          004042' \r
31683 \r
31684 \fFUDGE2  V.011  MACRO 10 05:52 24-APR-78 PAGE 57-6\r
31685 FUDGE2  MAC     24-APR-78 03:09         SYMBOL TABLE\r
31686 \r
31687 SVENTR          005114' \r
31688 SW              000017  \r
31689 SWTB            000004  SPD\r
31690 SWTCH           000145' \r
31691 SWTCHA          000135' \r
31692 SWTCHE          000146' \r
31693 SYMBLK          005053' \r
31694 SYMPTR          005117' \r
31695 T               000003  \r
31696 TABLE           000077' \r
31697 TABLND          002131' \r
31698 TRNGET          000777' \r
31699 TSWTCH          000252' \r
31700 TTYBIT          000010  SPD\r
31701 TTYCB           000040  SPD\r
31702 TTYIN           000210' \r
31703 TTYOB           000020  SPD\r
31704 TYPO            002237' \r
31705 UTPCLR  047000  000013  \r
31706 VCUSTO          000000  SPD\r
31707 VFUDGE          000011  SPD\r
31708 VPATCH          000000  SPD\r
31709 WRITE           001305' \r
31710 WRITE2          001310' \r
31711 WRITE3          001314' \r
31712 WRITE4          001330' \r
31713 WSWTCH          000253' \r
31714 X               000505  SPD\r
31715 XBEG            005107' \r
31716 XCOUNT          005104' \r
31717 XFLG            200000  SPD\r
31718 \fLLL                     OOOOOOOOO            AAAAAAAAA         DDDDDDDDDDDD         EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
31719 LLL                     OOOOOOOOO            AAAAAAAAA         DDDDDDDDDDDD         EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
31720 LLL                     OOOOOOOOO            AAAAAAAAA         DDDDDDDDDDDD         EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
31721 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR         RRR\r
31722 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR         RRR\r
31723 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR         RRR\r
31724 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR         RRR\r
31725 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR         RRR\r
31726 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR         RRR\r
31727 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEEEEEEEEEEE         RRRRRRRRRRRR   \r
31728 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEEEEEEEEEEE         RRRRRRRRRRRR   \r
31729 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEEEEEEEEEEE         RRRRRRRRRRRR   \r
31730 LLL                  OOO         OOO      AAAAAAAAAAAAAAA      DDD         DDD      EEE                  RRR   RRR      \r
31731 LLL                  OOO         OOO      AAAAAAAAAAAAAAA      DDD         DDD      EEE                  RRR   RRR      \r
31732 LLL                  OOO         OOO      AAAAAAAAAAAAAAA      DDD         DDD      EEE                  RRR   RRR      \r
31733 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR      RRR   \r
31734 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR      RRR   \r
31735 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR      RRR   \r
31736 LLLLLLLLLLLLLLL         OOOOOOOOO         AAA         AAA      DDDDDDDDDDDD         EEEEEEEEEEEEEEE      RRR         RRR\r
31737 LLLLLLLLLLLLLLL         OOOOOOOOO         AAA         AAA      DDDDDDDDDDDD         EEEEEEEEEEEEEEE      RRR         RRR\r
31738 LLLLLLLLLLLLLLL         OOOOOOOOO         AAA         AAA      DDDDDDDDDDDD         EEEEEEEEEEEEEEE      RRR         RRR\r
31739 \r
31740 \r
31741 \r
31742 \r
31743 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
31744 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
31745 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
31746 LLL                  SSS                        TTT                                                                     \r
31747 LLL                  SSS                        TTT                                                                     \r
31748 LLL                  SSS                        TTT                                                                     \r
31749 LLL                  SSS                        TTT                                                                     \r
31750 LLL                  SSS                        TTT                                                                     \r
31751 LLL                  SSS                        TTT                                                                     \r
31752 LLL                     SSSSSSSSS               TTT                                                                     \r
31753 LLL                     SSSSSSSSS               TTT                                                                     \r
31754 LLL                     SSSSSSSSS               TTT                                                                     \r
31755 LLL                              SSS            TTT                                                                     \r
31756 LLL                              SSS            TTT                                                                     \r
31757 LLL                              SSS            TTT                                                                     \r
31758 LLL                              SSS            TTT                                                                     \r
31759 LLL                              SSS            TTT                                                                     \r
31760 LLL                              SSS            TTT                                                                     \r
31761 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
31762 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
31763 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
31764 \r
31765 \r
31766 \r
31767 \r
31768 Request created: 24-April-1978  05:53:58\r
31769 File: DSKB1 :LOADER.LST   [8,296] Created: 20-April-1967 05:52:00 Printed: 24-April-1978 05:53:41\r
31770 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1244 \r
31771 File will be deleted after printing\r
31772 \fPPPPPPPPPPPP            IIIIIIIII         PPPPPPPPPPPP                                                                  \r
31773 PPPPPPPPPPPP            IIIIIIIII         PPPPPPPPPPPP                                                                  \r
31774 PPPPPPPPPPPP            IIIIIIIII         PPPPPPPPPPPP                                                                  \r
31775 PPP         PPP            III            PPP         PPP                                                               \r
31776 PPP         PPP            III            PPP         PPP                                                               \r
31777 PPP         PPP            III            PPP         PPP                                                               \r
31778 PPP         PPP            III            PPP         PPP                                                               \r
31779 PPP         PPP            III            PPP         PPP                                                               \r
31780 PPP         PPP            III            PPP         PPP                                                               \r
31781 PPPPPPPPPPPP               III            PPPPPPPPPPPP                                                                  \r
31782 PPPPPPPPPPPP               III            PPPPPPPPPPPP                                                                  \r
31783 PPPPPPPPPPPP               III            PPPPPPPPPPPP                                                                  \r
31784 PPP                        III            PPP                                                                           \r
31785 PPP                        III            PPP                                                                           \r
31786 PPP                        III            PPP                                                                           \r
31787 PPP                        III            PPP                                                                           \r
31788 PPP                        III            PPP                                                                           \r
31789 PPP                        III            PPP                                                                           \r
31790 PPP                     IIIIIIIII         PPP                                                                           \r
31791 PPP                     IIIIIIIII         PPP                                                                           \r
31792 PPP                     IIIIIIIII         PPP                                                                           \r
31793 \r
31794 \r
31795 \r
31796 \r
31797 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
31798 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
31799 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
31800 LLL                  SSS                        TTT                                                                     \r
31801 LLL                  SSS                        TTT                                                                     \r
31802 LLL                  SSS                        TTT                                                                     \r
31803 LLL                  SSS                        TTT                                                                     \r
31804 LLL                  SSS                        TTT                                                                     \r
31805 LLL                  SSS                        TTT                                                                     \r
31806 LLL                     SSSSSSSSS               TTT                                                                     \r
31807 LLL                     SSSSSSSSS               TTT                                                                     \r
31808 LLL                     SSSSSSSSS               TTT                                                                     \r
31809 LLL                              SSS            TTT                                                                     \r
31810 LLL                              SSS            TTT                                                                     \r
31811 LLL                              SSS            TTT                                                                     \r
31812 LLL                              SSS            TTT                                                                     \r
31813 LLL                              SSS            TTT                                                                     \r
31814 LLL                              SSS            TTT                                                                     \r
31815 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
31816 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
31817 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
31818 \r
31819 \r
31820 \r
31821 \r
31822 Request created: 24-April-1978  05:53:58\r
31823 File: DSKB1 :PIP   .LST   [8,296] Created: 20-April-1967 05:53:00 Printed: 24-April-1978 05:53:41\r
31824 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1244 \r
31825 File will be deleted after printing\r
31826 \f\r
31827 PIP V.030 MOD SANDERS/DBP 19-AUG-71     MACRO 10 05:52 24-APR-78 PAGE 1\r
31828 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
31829 \r
31830                                 TITLE PIP V.030 MOD SANDERS/DBP 19-AUG-71\r
31831                                 SUBTTL  VJC/PMH/AK-DAG/DMN      8-JUL-70\r
31832 \r
31833                                 ;PERIPHERAL INTERCHANGE PROGRAM\r
31834                                 ;"COPYRIGHT 1968, 1969, DIGITAL EQUIPMENT CORP.,MAYNARD,MASS.,U.S.A.\r
31835 \r
31836                         000030  VPIP==30                ;VERSION NUMBER\r
31837                         000005  SVER==5         ; SANDERS VERSION\r
31838 \r
31839 \r
31840                                 ;WCH==0  PIP IS ASSEMBLED FOR PDP-10 AND ASSUMES NEW FORMAT DECTAPES.\r
31841                                 ;WCH==1  PIP IS ASSEMBLED FOR PDP-6 AND ASSUMES OLD FORMAT DECTAPES.\r
31842 \r
31843                                 ;DISK30==0 PIP IS ASSEMBLED TO RUN WITH 10/40, 10/50 MONITOR SYSTEMS.\r
31844                                 ;DISK30==1 PIP IS ASSEMBLED TO RUN WITH 10/30 DISK SYSTEM.\r
31845 \r
31846                                 ;BLOC0==0 PIP ALLOWS COPYING OF BLOCK0 (DECTAPE).\r
31847                                 ;BLOC0==1 PIP WILL NOT ALLOW BLOCK0 TO BE COPIED.\r
31848 \r
31849                                 ;RIMSW==0 /Y SWITCH OPTION UNAVAILABLE. (ALSO UNAVAILABLE FOR OLD FORMAT DECTAPES)\r
31850                                 ;RIMSW==1 /Y SWITCH OPTION AVAILABLE.\r
31851 \r
31852                                 ;FTDSK==0       NON DSK SYSTEM.NO CCL.SAVES CORE ON 10/40\r
31853                                 ;FTDSK==1       10/50 DSK SYSTEM,ALSO 10/30 DSK SYSTEM\r
31854 \r
31855 \r
31856 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 2\r
31857 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
31858 \r
31859 \r
31860                                 ;CONDITIONAL ASSEMBLY SWITCH SETUP (NORMAL CONFIGURATION)\r
31861                                 ;---------------------------------\r
31862 \r
31863                                 IFNDEF WCH,     <WCH==0>\r
31864                                 IFNDEF DISK30,  <DISK30==0>\r
31865                                 IFNDEF BLOC0,   <BLOC0==0>\r
31866                                 IFNDEF FTDSK,   <FTDSK==0>\r
31867                                 IFN WCH,        <RIMSW==0>\r
31868                                 IFNDEF RIMSW,   <RIMSW==0>\r
31869                                 IFNDEF K,       <K==0>\r
31870 \r
31871 \r
31872 \r
31873 \r
31874         000124                          LOC 124\r
31875         000124  000000  000000'         PIP1            ;SET REENTER ADDRESS\r
31876         000000'                         RELOC\r
31877         000137                          LOC 137\r
31878         000137  000005  000030          XWD SVER,VPIP\r
31879         000000'                         RELOC\r
31880 \r
31881 \r
31882                                         MLON\r
31883                                 IFDEF SALL,     <SALL>\r
31884 \r
31885 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 3\r
31886 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
31887 \r
31888 \r
31889                                 EXTERN JOBFF,JOBSA,JOBREL\r
31890 \r
31891                                 ;FLAG ASSIGNMENTS (RIGHT HALF)\r
31892 \r
31893                         000001  LINE==1         ;ASCII LINE MODE PROCESSING\r
31894                         000002  BMOD==2         ;BINARY PROCESSING\r
31895                         000004  TBMOD==4        ;SUPPRESS TRAILING SP, CHANGE MULTIPLE SP TO TABS\r
31896                         000010  DFLG==10        ;DELETE FILES MODE\r
31897                         000020  LFLG==20        ;LIST DIRECTORY\r
31898                         000040  NSMOD==40       ;IGNORE INPUT SEQUENCE NUMBERS\r
31899                         000100  RFLG==100       ;RENAME FILE MODE\r
31900                         000200  SQMOD==200      ;GENERATE SEQUENCE NUMBERS\r
31901                         000400  STS==400        ;END OF LINE SEEN, OUTPUT SEQUENCE NUMBER NEXT\r
31902                         001000  SPMOD==1000     ;SUPPRESS TRAILING SPACES\r
31903                         002000  XFLG==2000      ;COPY DECTAPE MODE\r
31904                         004000  ZFLG==4000      ;CLEAR DECTAPE DIRECTORY\r
31905                         010000  SUS==10000      ;SEQUENCE NUMBER GENERATION IN PROGRESS\r
31906                         020000  SPOK==20000     ;SPACE WAS LAST CHARACTER\r
31907                         040000  ESQ==40000      ;STOP OUTPUTTING SEQ NUM, RESUME OUTPUTTING DATA\r
31908                         100000  SNI==100000     ;DO NOT INCREMENT SEQUENCE NUMBER\r
31909                         200000  MTFLG==200000   ;MTA REQUEST RECEIVED\r
31910                         400000  OSFLG==400000   ;GENERATE SEQ. NOS. INCR. BY ONE\r
31911 \r
31912                                 ;FLAG ASSIGNMENTS (LEFT HALF)\r
31913 \r
31914                         000001  OFLG==1         ;BLOCK 0 COPY\r
31915                         000002  RIMFLG==2       ;RIM FORMAT INPUT /OUT TO DTA. ILLEG IF RIMSW==0,OR WCH==1\r
31916                         000004  PFLG==4         ;FORTRAN PROGRAM OUTPUT FORMAT CONVERSION\r
31917                         000010  PCONV==10       ;COLUMN 1 CONVERSION IN PROGRESS\r
31918                         000020  NEWFIL==20      ;NEW FILE JUST INITIATED\r
31919                         000040  CHKFLG==40      ;PARENTHESES CHECK MODE\r
31920                         000100  IFLG==100       ;SELECT IMAGE MODE\r
31921                         000200  GFLG==200       ;KEEP GOING IF THERE ARE I/O ERRORS\r
31922                         000400  IBFLG==400      ;SELECT IMAGE BINARY MODE\r
31923                         001000  JFLG==1000      ;NON-STANDARD MODE\r
31924 \r
31925 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 4\r
31926 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
31927 \r
31928                                 ;AUXFLG ASSIGNMENTS (LEFT HALF)\r
31929 \r
31930                         000001  QFLG==1         ;PLEASE PRINT SWITCH SET\r
31931                         000002  NSPROT==2       ;NON-STANDARD DISK OUTPUT PROTECTION\r
31932                         000004  SBIN==4         ;36-BIT PR. ON REL. ETC. FILES\r
31933                         000020  NOMORE==20      ;IGNORE ANY SWITCHES BUT MTA FROM NOW ON\r
31934                         000040  CDRFLG==40      ;CONVERT COLS 73-80 TO SPACES + /C\r
31935                         000100  INFOFL==100     ;FLAG USED BY ERR3A:\r
31936                         000200  RSDCFL==200     ;USED FOR MERGING FILES, ==1 IF FILE HAS EXTENSION\r
31937                                                 ;REL,SAV,DMP,CHN OR OTHERWISE == 0\r
31938                         000400  FRSTIN==400     ;THIS IS THE FIRST INPUT FILE (USED IN FILE\r
31939                                                 ;MERGE COMMAND) == 0 FOR FIRST INPUT\r
31940 \r
31941                                 ;MTAREQ ASSIGNMENTS (RIGHT HALF)\r
31942 \r
31943                         000001  MTAFLG==1       ;MTA ADVANCE ONE FILE\r
31944                         000002  MTBFLG==2       ;MTA BACKSPACE ONE FILE\r
31945                         000004  MTTFLG==4       ;MTA SKIP TP LOGICAL EOT\r
31946                         000010  MTWFLG==10      ;MTA REWIND\r
31947                         000020  MTFFLG==20      ;MTA MARK EOF\r
31948                         000040  MTUFLG==40      ;MTA REWIND AND UNLOAD\r
31949                         000100  MTDFLG==100     ;MTA ADVANCE ONE RECORD\r
31950                         000200  MTPFLG==200     ;MTA BACKSPACE ONE RECORD\r
31951                         000400  MT8FLG==400     ;MTA SET 800 B.P.I.\r
31952                         001000  MT5FLG==1000    ;MTA SET 556 B.P.I.\r
31953                         002000  MT2FLG==2000    ;MTA SET 200 B.P.I.\r
31954                         004000  MTEFLG==4000    ;MTA SELECT EVEN PARITY\r
31955 \r
31956                                 ;AUXFLG ASSIGNMENTS (RIGHT HALF)\r
31957 \r
31958                         000001  REDFLG==1       ;==1 IF ANY FILES ARE INPUT (OTHER THAN DIRECTORIES)\r
31959                         000002  SYSFLG==2       ;DEVICE IS SYS\r
31960                         000004  SYSLST==4       ;LAST DEVICE WAS SYS\r
31961                         000010  LPTOUT==10      ;LPT OUTPUT\r
31962                         000020  FFLG==20        ;LIST SHORT DISK DIRECTORY\r
31963                         000040  ONEOUT==40      ;ONE OUTPUT FILE INITIALIZED\r
31964                         000100  CDRIN==100      ;CARDS IN\r
31965                         000200  MTAOUT==200     ;OUTPUT TO MTA\r
31966                         000400  MTAIN==400      ;INPUT FROM MTA\r
31967                         001000  TTYIN==1000     ;INPUT FROM TTY\r
31968                         002000  READ1==2000     ;LOOK FOUND NEW INPUT FILE, NO READ YET.\r
31969                         004000  DTAOUT==4000    ;OUTPUT TO DTA\r
31970                         010000  DSKOUT==10000   ;OUTPUT TO DSK\r
31971                         020000  DTAIN==20000    ;INPUT FROM DTA\r
31972                         040000  DSKIN==40000    ;INPUT FROM DSK\r
31973                         100000  TTYOUT==100000  ;OUTPUT TO TTY\r
31974                         200000  PPTIN==200000   ;INPUT FROM PTR\r
31975                         400000  PPTOUT==400000  ;OUTPUT TO PTP\r
31976 \r
31977 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 5\r
31978 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
31979 \r
31980                                 ;CALFLG ASSIGNMENTS (RIGHT HALF) FOR DESCRIBING A BLOCK OF INFORMATION\r
31981                                 ;FOUND BY THE COMMAND SCANNER.\r
31982 \r
31983                         000001  FNEX==1         ;==1 WHEN FN.EX==*.*, *.EXT, FN.* (WHEN MORE\r
31984                                                 ;THAN ONE FN.EX IS IMPLIED).\r
31985                         000002  MATEX==2        ;FILE EXTENSIONS MUST MATCH\r
31986                         000004  MATFN==4        ;FILE NAMES MUST MATCH\r
31987                         000010  NEWDEV==10      ;A NEW INPUT DEVICE WAS GIVEN\r
31988                         000020  NEWPP==20       ;A NEW #P-P WAS GIVEN\r
31989                         000040  ASTFLG==40      ;FLAG SET WHEN FILE NAMED IN CS FOUND\r
31990                                                 ;BY LOOK ROUTINE EVEN IF FN OR EXT =*\r
31991                         000100  DEV==100        ;DEVICE NAME INDICATOR\r
31992                         000200  DVSWTH==200     ;OUTPUT DEVICE SEEN\r
31993                         000400  NSWTCH==400     ;INDICATES NULL NAME\r
31994                         001000  SSWTCH==1000    ;LEFT ARROW SEEN\r
31995                         002000  LISTTY==2000    ;LIST TO TTY\r
31996                         004000  TMPI==4000      ;INPUT DEVICE TMPCOR SEEN\r
31997                         010000  TMPO==10000     ;OUTPUT DEVICE TMPCOR\r
31998                         020000  RXFLG==20000    ;(RX) SEEN\r
31999 \r
32000                         000037  ALLCLF==FNEX!MATEX!MATFN!NEWDEV!NEWPP\r
32001 \r
32002                                 ;DEVICE CHANNEL ASSIGNMENTS\r
32003 \r
32004                         000001  CON==1          ;COMMAND INPUT CHANNEL\r
32005                         000002  OUT==2          ;OUTPUT DEVICE\r
32006                         000003  IN==3           ;INPUT DEVICE\r
32007                         000004  TAPE==4         ;MTA POSITIONING\r
32008                         000005  DIR==5          ;DISK DIR. READ\r
32009                         000006  BLKIN==6        ;INPUT FOR 10/30 DISK FILES\r
32010                         000007  DTDIR==7        ; DECTAPE DIR. READ(FOR PPN)\r
32011 \r
32012                                 ;ACCUMULATOR ASSIGNMENTS\r
32013 \r
32014                         000001  T1=1            ;GENERAL PURPOSE\r
32015                         000002  T2=2            ;G.P.\r
32016                         000003  T3=3            ;G.P.\r
32017                         000004  CHR=4           ;INPUT CHARACTER\r
32018                         000005  P=5             ;PUSHDOWN POINTER\r
32019                         000006  FLAG=6          ;FLAG REGISTER\r
32020                         000007  T4=7            ;G.P.\r
32021                         000010  IOS=10          ;IO STATUS BITS\r
32022                         000011  T5=11           ;G.P.\r
32023                         000012  T6=12           ; G.P.\r
32024                         000013  AUXFLG=13       ;AUXILIARY FLAG REGISTER\r
32025                         000014  T7=14           ;G.P.\r
32026                         000015  DOUT=15         ;DIVIDED NO. FOR OUTPUT\r
32027                         000016  DOUT1=16        ;REMAINDER, DOUT+1\r
32028                         000017  CALFLG=17       ;MORE FLAGS\r
32029 \r
32030 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 6\r
32031 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32032 \r
32033 \r
32034                                 ;MISCELLANEOUS PARAMETERS\r
32035 \r
32036                         400000  WRTLOK==400000  ;WRITE LOCK (DECTAPE) /IMPROPER I/O\r
32037                         040000  BIGBLK==40000   ;BLOCK TOO LARGE\r
32038                         000002  INBIT==2        ;DEVCHR BIT FOR DEV CAN DO INPUT\r
32039                         000001  OUTBIT==1       ;DEVCHR BIT FOR DEV CAN DO OUTPUT\r
32040                         020000  EOFBIT==20000   ;END OF FILE\r
32041                         002000  EOTBIT==2000    ;END OF TAPE\r
32042                         000004  DTABIT==4       ;DEVCHR BIT FOR DECTAPE IDENTIFICATION\r
32043                         000001  INHIB==1        ;OUTPUT RELEASE INHIBIT BIT\r
32044                         000010  TABSP==10       ;SPACES PER TAB\r
32045                         000200  PTRBIT==200     ;DEVCHR BIT FOR PTR\r
32046                         000400  PTPBIT==400     ;DEVCHR BIT FOR PTP\r
32047                         200000  DSKBIT==200000  ;DEVCHR BIT FOR DSK\r
32048                         000020  MTABIT==20      ;DEVCHR BIT FOR MTA\r
32049                         040000  LPTBIT==40000   ;DEVCHR BIT FOR LPT\r
32050                         000010  TTYBIT==10      ;DEVCHR BIT FOR TTY\r
32051                         100000  CDRBIT==100000  ;DEVCHR FOR CDR\r
32052                         000200  DENS2==200      ;MTA 200 BPI\r
32053                         000400  DENS5==400      ;MTA 556 BPI\r
32054                         000600  DENS8==600      ;MTA 800 BPI\r
32055                         001000  PARE==1000      ;MTA EVEN PARITY\r
32056                         004000  LDP==4000       ;MTA LOAD POINT STATUS\r
32057                         000020  HPAGE==20\r
32058 \r
32059                                 ;MACRO DEFINITIONS\r
32060 \r
32061                                 DEFINE SKIP (J)<JRST    .+1+'J>\r
32062 \r
32063                                 DEFINE  LSTLIN (Z),<\r
32064                                         SKIPA   T1,[POINT 7,Z]\r
32065                                         PUSHJ   P,PUT\r
32066                                         ILDB    CHR,T1\r
32067                                 IFN WCH,<PUSHJ  P,CCASE>\r
32068                                         JUMPN   CHR,.-2>\r
32069 \r
32070                                 DEFINE  ERRPNT  (X),<\r
32071                                         JSP     T1,PTEXT\r
32072                                         ASCIZ   X>\r
32073 \r
32074                                 DEFINE  ERRPN2  (X),<\r
32075                                         JSP     T1,PTEXT2\r
32076                                         ASCIZ   X>\r
32077 \r
32078                                 DEFINE  ERRPNX  (X),<\r
32079                                         JSP     T1,PRETXT\r
32080                                         ASCIZ   X>\r
32081 \r
32082 \r
32083         000000'                 LOW:\r
32084 \r
32085 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 7\r
32086 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32087 \r
32088 \r
32089                                 ;ASCII CHARACTERS\r
32090 \r
32091                         000015  CR==15          ;CARRIAGE RETURN\r
32092                         000012  LF==12          ;LINE FEED\r
32093                         000014  FF==14          ;FORM-FEED\r
32094                         000033  ALTMOD==33      ;NEWEST ALTMODE\r
32095                         000175  ALT175==175     ;OLDEST ALTMODE\r
32096                         000176  ALT176==176     ;OLDER ALTMODE\r
32097                         000137  LA==137         ;LEFT ARROW\r
32098                         000032  CZ==32          ;CONTROL Z\r
32099                         000021  XON==21         ;^Q,START TTY PTR\r
32100                         000023  XOFF==23        ;^S,STOP TTY PTR MODE\r
32101                         000054  COMMA==54\r
32102                         000056  PERIOD==56      ;PERIOD\r
32103                         000072  COLON==72\r
32104                         000040  SPACE==40\r
32105                         000177  DEL==177        ;DELETE,RUBOUT,REPEAT MOD.35\r
32106                         000011  TAB==11         ;TAB\r
32107 \r
32108 \r
32109                                 ;CALLI DEFINITIONS\r
32110 \r
32111                                 OPDEF   RESET   [CALLI   0]\r
32112                                 OPDEF   DEVCHR  [CALLI   4]\r
32113                                 OPDEF   CORE    [CALLI  11]\r
32114                                 OPDEF   EXIT    [CALLI  12]\r
32115                                 OPDEF   UTPCLR  [CALLI  13]\r
32116                                 OPDEF   DATE    [CALLI  14]\r
32117                                 OPDEF   MSTIME  [CALLI  23]\r
32118                                 OPDEF   GETPPN  [CALLI  24]\r
32119                                 OPDEF   PJOB    [CALLI  30]\r
32120                                 OPDEF   RUN     [CALLI  35]\r
32121                                 OPDEF   GETTAB  [CALLI  41]\r
32122                                 OPDEF   TMPCOR  [CALLI  44]\r
32123                                 OPDEF   DSKCHR  [CALLI  45]\r
32124                                 OPDEF   JOBSTR  [CALLI  47]\r
32125                                 OPDEF   DEVPPN  [CALLI  55]\r
32126                                 OPDEF   WAIT    [MTAPE   0]\r
32127 \r
32128                                 ;EXTENDED LOOKUP PARAMETERS\r
32129 \r
32130                         000005  RBSIZ==5                ;WRITTEN FILE LENGTH\r
32131                         000017  RIBSTS==17              ;STATUS BITS\r
32132 \r
32133 \r
32134 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 8\r
32135 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32136 \r
32137 \r
32138 \r
32139         000000' 200000  004665' PIP1:   MOVE    0,[LOW,,LOW+1]\r
32140         000001' 402000  000000'         SETZM   LOW\r
32141         000002' 251000  004665'         BLT     0,LOWTOP\r
32142         000003' 205000  637163          MOVSI   (SIXBIT /SYS/)\r
32143         000004' 047000  000055          DEVPPN                  ;FIND PP OF DEVICE SYS\r
32144         000005' 200000  003733'         MOVE    PP13            ;ASSUME 1,,3 IF NOT LEVELD\r
32145         000006' 202000  004037'         MOVEM   SYSPP           ;SAVE AS SYS PP\r
32146                                 IFN FTDSK,<\r
32147                                         MOVE    [XWD 17,11]     ;STATES WORD\r
32148                                         GETTAB                  ;GET IT\r
32149                                         SETZ                    ;ERROR RETURN\r
32150                                         TLNN    (7B9)           ;TEST FOR LEVEL D\r
32151                                         TDZA                    ;NOT LEVEL D\r
32152                                         HRROI   -2              ;THIS IS LEVEL D\r
32153                                         MOVEM   LEVEL           ;SAVE  >\r
32154         000007' 554040  000000* IFE FTDSK,<HLRZ T1,JOBSA        ;NO DSK SO USE JOBFF>\r
32155                                 IFN FTDSK,<MOVEI T1,DSKDR       ;ASSUME NO DISK FOR TEST, LOC OF DSK RTNS\r
32156                                         MOVSI   0,(SIXBIT /DSK/)\r
32157                                         DEVCHR                  ;DEVCHR REQUEST: IS THERE A DSK \r
32158                                         JUMPE   0,P1            ;0 IF NO DISK: USE DSKDR\r
32159                                         MOVE    T1,JOBFF        ;DISK: PREPARE TO SAVE C(JOBFF)\r
32160                                         HRRZ    T2,JOBREL       ;HIGHEST REL LOC AVAILABLE TO USER\r
32161                                         CAIL    T2,6000         ;CURRENT SIZE 4K\r
32162                                         JRST    P1              ;YES\r
32163                                         MOVEI   T2,7777         ;NO. EXPAND TO 4K\r
32164                                         HRRZM   T1,SVJBFF       ;SAVE JOBFF SO BUFFERS CAN BE CREATED\r
32165                                         CORE    T2,             ;CORE UUO\r
32166                                         JRST    DERR7           ;CORE UNAVAILABLE>\r
32167         000010' 552040  004016' P1:     HRRZM   T1,SVJBFF       ;SAVE JOBFF SO BUFFERS CAN BE CREATED\r
32168         000011' 254000  000012'         JRST    PIP\r
32169 \r
32170                                 IFN FTDSK,<\r
32171                                 DERR7:  ERRPNT  </?4K needed/>\r
32172                                         EXIT                    ;EXIT TO MONITOR>\r
32173 \r
32174 \r
32175 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 9\r
32176 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32177 \r
32178         000012' 047000  000000  PIP:    RESET           ;REINITIALIZE WHEN RESTARTED MANUALLY\r
32179                                                         ;NEW COMMAND STRING SCAN STARTS HERE\r
32180         000013'                 PIP2:   \r
32181         000013' 265440  000541' PIP2A:  JSP T5,INICN1   ;INITIALIZE THE TTY AND PDL\r
32182         000014' 201000  000015          MOVEI 0,CR      ;TYPE CR\r
32183         000015' 136000  003757'         IDPB 0,TFO+1\r
32184         000016' 201000  000012          MOVEI 0,LF      ;AND LF\r
32185         000017' 136000  003757'         IDPB    0,TFO+1\r
32186         000020' 201000  000052          MOVEI   0,"*"   ;TYPE ASTERISK******\r
32187         000021' 136000  003757'         IDPB 0,TFO+1    ;READY TO ACCEPT\r
32188         000022' 067040  000000          OUTPUT CON,     ;COMMAND FROM TTY\r
32189         000023' 402000  004026' PIP2B:  SETZM TOTBRK    ;CLEAR PAREN COUNTER\r
32190         000024' 201000  000010          MOVEI 0,TABSP   ;SPACES PER TAB\r
32191         000025' 202000  004027'         MOVEM 0,TABCT   ;INITIALIZE TAB COUNT\r
32192         000026' 200000  003721'         MOVE 0,ZRO      ;ASCII /00000/\r
32193         000027' 202000  004014'         MOVEM 0,SQNUM   ;INITIALIZE SEQUENCE NUMBERS\r
32194         000030' 071040  000000          RELEAS CON,     ;RELEASE TTY FOR USE AS IN-OUT DEVICE\r
32195 \r
32196         000031' 403300  004040' MAINA1: SETZB FLAG,FILNAM   ;INITIALIZE FOR FIRST/NEXT COMMAND STRING\r
32197         000032' 403540  004637'         SETZB AUXFLG,DEVICE\r
32198                                 IFN FTDSK,<HRRZI 0,(SIXBIT /SYS/) ;SYSTEM DIRECT DEV, DSK/DTA\r
32199                                         HRLZM 0,ADSK            ;PUT IN SYSTEM DEVICE>\r
32200         000033' 200000  004666'         MOVE 0,[XWD FILNAM,FILNAM+1]    ;SET PROJECT, PROG NO.\r
32201         000034' 251000  004136'         BLT 0,AB        ;ZERO OUT FILNAM - AB\r
32202         000035' 400740  000000          SETZ    CALFLG,         ;CLEAR OTHER FLOGS\r
32203         000036' 200140  000055'         MOVE T3,COMPTR  ;BYTE POINTER FOR STORING CS IN BUFFER\r
32204 \r
32205                                 ;ACCUMULATE CS CHARS IN COMBUF ALLOW LONG CS ONLY FOR TTY COMMAND\r
32206 \r
32207         000037' 260240  001352' COMSTO: PUSHJ   P,GETTA         ;GET CS CHAR\r
32208         000040' 350340  004131'         AOS     T4,COMCNT       ;COUNT CHARS\r
32209         000041' 303340  000310          CAILE   T4,^D200        ;ALLOW UP TO 200 CHARS\r
32210         000042' 254000  002045'         JRST    ERR6B           ;MORE THAN 200 CHARS\r
32211         000043' 306000  000032          CAIN    0,CZ            ;CHECK FOR ^Z\r
32212         000044' 260240  001415' COMASK: PUSHJ   P,GETEN2        ;SET  ^Z IN 0\r
32213         000045' 136000  000003          IDPB    0,T3            ;STORE IN COMBUF\r
32214         000046' 332000  004057'         SKIPE   COMEOF          ;END-OF-FILE SET?\r
32215         000047' 254000  000056'         JRST    COMPRO          ;YES, PROCESS CS IN COMBUF\r
32216         000050' 307000  000015          CAIG    0,CR            ;NOT EOF\r
32217         000051' 305000  000012          CAIGE   0,LF            ;LF,VT,FF,CR?\r
32218         000052' 306000  000033          CAIN    0,ALTMODE       ;NO, $?\r
32219         000053' 254000  000044'         JRST    COMASK          ;YES\r
32220         000054' 254000  000037'         JRST    COMSTO          ;NO, KEEP STORING\r
32221 \r
32222         000055' 440700  004060' COMPTR: POINT   7,COMBUF\r
32223 \r
32224 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 10\r
32225 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32226 \r
32227 \r
32228                                 ;********************************************************************\r
32229                                 ;BEGIN SCAN OF DESTINATION PORTION OF COMMAND STRING\r
32230         000056'                 COMPRO:\r
32231                                 IFN FTDSK,<\r
32232                                         MOVSI   0,(SIXBIT/DSK/)\r
32233                                         DEVCHR                          ;IS THERE A DSK?\r
32234                                         JUMPE   0,COMPRP\r
32235                                         MOVSI   0,(SIXBIT /DSK/)        ;MAKE DEFAULT DEVICE\r
32236                                         MOVEM   0,DEVICE                ;TENTATIVELY DSK>\r
32237 \r
32238         000056' 071040  000000  COMPRP: RELEASE CON,            ;RELEASE TTY\r
32239         000057' 200000  000055'         MOVE    0,COMPTR        ;INITIALIZE POINTER\r
32240         000060' 202000  004132'         MOVEM 0,COMPTS          ;TO PICK UP CS FROM COMBUF\r
32241         000061' 260240  000557'         PUSHJ P,NAME    ;GO SCAN DESTINATION PORTION OF COMMAND STRING\r
32242         000062' 332000  004135'         SKIPE XNAME     ;NO SCAN OVERSHOOT ALLOWED\r
32243         000063' 254000  002040'         JRST ERR6A\r
32244         000064' 331000  004134'         SKIPL   ESWTCH  ;11/25/69  END OF CS ?\r
32245         000065' 254000  000073'         JRST    MAINC   ;NO\r
32246         000066' 606740  000400          TRNN    CALFLG,NSWTCH   ;NON-NULL DESTINATION\r
32247         000067' 602740  001000          TRNE    CALFLG,SSWTCH   ;_ NOT SEEN?\r
32248         000070' 332000  004040'         SKIPE   FILNAM          ;OR ANYTHING IN FILENAME\r
32249         000071' 254000  002040'         JRST    ERR6A           ;YES, ERROR\r
32250         000072' 254000  000013'         JRST    PIP2            ;NO, ALL OK\r
32251 \r
32252         000073' 200000  004637' MAINC:  MOVE 0,DEVICE   ;GET OUTPUT DEVICE NAME\r
32253         000074' 202000  004634'         MOVEM 0,ODEV    ;SAVE DEVICE NAME FOR LATER USAGE\r
32254         000075' 260240  000506'         PUSHJ P,DEVTST  ;SAVE DEVICE TYPE, SET XXXOUT.E.G. DTAOUT\r
32255         000076' 260240  000466'         PUSHJ P,ABCHK   ;CHECK MTA BACKSPACE/ADV VALUES\r
32256         000077' 260240  000476'         PUSHJ P,PROTK   ;CHECK PROTECTION\r
32257         000100' 200000  004136'         MOVE 0,AB       ;MTA VALUE SWITCHES\r
32258         000101' 202000  004031'         MOVEM 0,ABOUT   ;GET MTA CONTROL NUMBERS FO R OUT\r
32259         000102' 200000  004133'         MOVE 0,AUX\r
32260         000103' 202000  004032'         MOVEM 0,AUXOUT\r
32261         000104' 200000  004667'         MOVE 0,[XWD FILNAM,DTON]\r
32262         000105' 251000  004047'         BLT 0,DTON+3    ;SAVE DESTINATION FILE NAME\r
32263                                 IFN FTDSK,<TRNN AUXFLG,DSKOUT   ;DISK OUTPUT?>\r
32264         000106' 402000  004047'         SETZM DTON+3    ;ZERO 4TH WD OF DIRECTORY ENTRY\r
32265 \r
32266 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 11\r
32267 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32268 \r
32269         000107' 620740  001000  M3:     TRZ     CALFLG,SSWTCH   ;TERMINATE DESTINATION FILE SCAN\r
32270         000110' 402000  004637'         SETZM DEVICE    ;DONT CARRY OVER INPUT DEVICE\r
32271                                 IFN FTDSK,<MOVSI 0,(SIXBIT/DSK/)\r
32272                                         DEVCHR          ;IS THERE A DISK\r
32273                                         JUMPE 0,M3A\r
32274                                         MOVSI 0,(SIXBIT /DSK/)  ;DEFAULT CASE DSK\r
32275                                         MOVEM 0,DEVICE  ;MUST NOT LET O/DEV. CARRY OVER AS I/DEV.>\r
32276         000111' 260240  000451' M3A:    PUSHJ P,DESCRP  ;GET A UNIT DESCRIPTOR (INPUT).\r
32277         000112' 607540  000001          TLNN AUXFLG,QFLG;Q?     ;SCAN INPUT PORTION OF COMMAND STRING\r
32278         000113' 254000  000132'         JRST M2         ;NO\r
32279         000114' 551000  637163          HRRZI 0,(SIXBIT /SYS/)  ;YES MAKE INPUT DEVICE SYS\r
32280         000115' 516000  004637'         HRLZM 0,DEVICE\r
32281         000116' 516000  004050'         HRLZM DEVA              ;SAVE COPY OF INPUT DEVICE\r
32282         000117' 200000  003727'         MOVE 0,QPIP             ;MAKE INPUT FILENAME QPIP\r
32283         000120' 202000  004040'         MOVEM 0,FILNAM\r
32284         000121' 205000  120000          MOVSI 0,(SIXBIT /*/)    ;DONT RESTRICT QPIP\r
32285         000122' 202000  004041'         MOVEM 0,FILEX   ;EXT TO BEING NULL\r
32286         000123' 620740  000002          TRZ     CALFLG,MATEX    ;DON'T MATCH EXTENSIONS\r
32287         000124' 660540  000002          TRO     AUXFLG,SYSFLG   ;DEVICE IS SYS\r
32288         000125' 200000  004037'         MOVE    0,SYSPP ;GET SYS PP\r
32289         000126' 202000  004043'         MOVEM   0,PP    ;AND SET IT\r
32290         000127' 370000  004134'         SOS ESWTCH      ;NO MORE COMMAND STRING\r
32291         000130' 620540  261500          TRZ AUXFLG,DTAIN+DSKIN+CDRIN+PPTIN+TTYIN+MTAIN\r
32292         000131' 260240  002132'         PUSHJ P,CHECK1  ;CHECK INPUT DEVICE\r
32293 \r
32294         000132' 661540  000020  M2:     TLO AUXFLG,NOMORE       ;NO MORE SWITCHES BUT MTA ALLOWED\r
32295         000133' 603300  000001          TLNE FLAG,OFLG  ;BLOCK 0 COPY?\r
32296         000134' 254000  003451'         JRST BLOCK0     ;YES\r
32297         000135' 640300  002100          TRC FLAG,XFLG+RFLG;(RX)\r
32298         000136' 646300  002100          TRCN FLAG,XFLG+RFLG\r
32299         000137' 260240  000173'         PUSHJ   P,M5    ;YES,(RX)\r
32300                                 IFN RIMSW,<\r
32301                                         TLNN FLAG,RIMFLG        ;RIM OUTPUT?\r
32302                                         JRST M1         ;NO\r
32303                                 IFE WCH,<       \r
32304                                         TRNE AUXFLG,PPTOUT      ;RIM IS ONLY DTA TO PTP\r
32305                                         TRNN AUXFLG,DTAIN!DSKIN!MTAIN\r
32306                                         JRST ERR5B>\r
32307                                 IFN WCH,<JRST RIMTB  >>\r
32308 \r
32309         000140' 201340  000001  M1:     MOVEI T4,1      ;ASCII LINE MODE ASSUMED\r
32310         000141' 260240  000200'         PUSHJ P,OUTLOOK ;SEE IF OUTPUT DEV MTA\r
32311         000142' 260240  000154'         PUSHJ P,M4      ;NOT MTA\r
32312         000143' 603300  001000          TLNE    FLAG,JFLG       ;NON STARDARD MODE ?\r
32313         000144' 660340  000100          TRO     T4,100          ;TO PUNCH 029 ON CDP\r
32314         000145' 552340  004633'         HRRZM T4,OMOD   ;SET MODE OF OUTPUT DEV\r
32315         000146' 201340  000001          MOVEI T4,1\r
32316         000147' 260240  000204'         PUSHJ P,INLOOK  ;SEE IF INPUT DEV MTA\r
32317         000150' 260240  000154'         PUSHJ P,M4      ;NOT MTA\r
32318         000151' 552340  004636'         HRRZM T4,ININI1 ;SET MODE OF INPUT DEV\r
32319         000152' 260240  002746'         PUSHJ P,FNSET   ;NOW DEVICE, DEVA CORRECT FOR START\r
32320         000153' 254000  000251'         JRST OMOD1      ;INIT OUTPUT DEVICE\r
32321 \r
32322 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 12\r
32323 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32324 \r
32325 \r
32326                                 ;SET MODE IF /I,/B,/H,\r
32327 \r
32328         000154' 607300  000100  M4:     TLNN FLAG,IFLG  ;IMAGE BINARY MODE?\r
32329         000155' 254000  000160'         JRST .+3        ;NO\r
32330         000156' 660340  000010          TRO T4,10       ;IM. MODE\r
32331         000157' 620340  000001          TRZ T4,1        ;CLEAR ASCII LINE MODE\r
32332 \r
32333         000160' 606300  000002          TRNN FLAG,BMOD  ;BINARY MODE?\r
32334         000161' 254000  000164'         JRST .+3        ;NO\r
32335         000162' 660340  000014          TRO T4,14       ;BIN. MODE\r
32336         000163' 620340  000001          TRZ T4,1        ;CLEAR ASCII LINE MODE\r
32337 \r
32338         000164' 603300  000400          TLNE FLAG,IBFLG ;ASCII TO START.  IB MODE?\r
32339         000165' 660340  000013          TRO T4,13       ;YES\r
32340         000166' 602300  002000          TRNE FLAG,XFLG  ;COPY MODE?\r
32341         000167' 263240  000000          POPJ P,         ;YES, DON'T ALTER DATA MODE\r
32342 \r
32343         000170' 602300  000110          TRNE FLAG,DFLG+RFLG     ;DELETE OR RENAME?\r
32344         000171' 660340  000020          TRO T4,20       ;DIRECTORY WILL BE WRITTEN, DON'T\r
32345         000172' 263240  000000          POPJ P,         ;COMPUTE WORD COUNT MODE NEEDED.\r
32346                                                         ;FORCE MONITOR TO USE WORD COUNT\r
32347                                                         ;IN FIRST DATA WORD OF BUFFER\r
32348 \r
32349         000173' 620300  000100  M5:     TRZ     FLAG,RFLG       ;CLEAR /R FLAG\r
32350         000174' 660740  020000          TRO     CALFLG,RXFLG    ;SET (RX) FLAG\r
32351         000175' 200000  004670'         MOVE    0,[XWD DTON,MATCH]\r
32352         000176' 251000  004650'         BLT     0,MATCH+1       ;SAVE NAME AND EXT\r
32353         000177' 263240  000000          POPJ    P,              ;RETURN\r
32354 \r
32355 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 13\r
32356 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32357 \r
32358                                 ;IF OUTPUT DEVICE IS MTA PERFORM ALL PRE-TRANSFER REQUESTS\r
32359                                 ;SUCH AS REWIND.  IF OUTPUT DEVICE IS MTA, AND THERE IS NO \r
32360                                 ;INPUT DEVICE, EXIT.  FOR OTHER MTA OUTPUT, PREPARE INIT\r
32361                                 ;DENSITY AND PARITY.\r
32362 \r
32363         000200'                 OUTLOOK:\r
32364         000200' 200140  004031'         MOVE T3,ABOUT   ;AB FOR OUTPUT DEV\r
32365         000201' 200040  004032'         MOVE T1,AUXOUT  ;AUX FOR OUTPUT DEV\r
32366         000202' 201500  003666'         MOVEI T6,INOMTA ;SET TO INIT\r
32367         000203' 254000  003531'         JRST MT1        ;MTA FOR OUTPUT\r
32368 \r
32369 \r
32370 \r
32371 \r
32372                                 ;SAME FOR INPUT DEVICE.\r
32373 \r
32374         000204' 332140  004040' INLOOK: SKIPE   T3,FILNAM       ;IF NO FILENAME\r
32375         000205' 606300  002000          TRNN    FLAG,XFLG       ;OR NOT /X\r
32376         000206' 254000  000217'         JRST    INLUK1          ;CONTINUE\r
32377         000207' 332000  004044'         SKIPE   DTON            ;IF OUTPUT NAME SET UP\r
32378         000210' 254000  000217'         JRST    INLUK1          ;CONTINUE\r
32379         000211' 554040  004041'         HLRZ    T1,FILEX        ;GET EXT\r
32380         000212' 302040  120000          CAIE    T1,(SIXBIT /*/) ;IF EITHER IS *\r
32381         000213' 316140  003730'         CAMN    T3,STAR         ;DON'T SET OUTNAME\r
32382         000214' 254000  000217'         JRST    INLUK1          ;BUT JUST CONTINUE\r
32383         000215' 202140  004044'         MOVEM   T3,DTON         ;SET OUT NAME\r
32384         000216' 516040  004045'         HRLZM   T1,DTON+1       ;AND EXTENSION\r
32385         000217' 200140  004136' INLUK1: MOVE T3,AB      ;ADV OR BKSPACE\r
32386         000220' 200040  004133'         MOVE T1,AUX     ;AUX FOR INPUT DEV\r
32387         000221' 201500  003667'         MOVEI T6,INIMTA ;SET TO INIT\r
32388         000222' 254000  003531'         JRST MT1        ;MTA FOR INPUT\r
32389 \r
32390 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 14\r
32391 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32392 \r
32393                                 ;ROUTINE TO INITIALIZE OUTPUT DEVICE\r
32394 \r
32395         000223' 200040  004671' OMODE:  MOVE T1,[XWD OBF,IBF]\r
32396         000224' 202040  004635'         MOVEM T1,ODEV+1\r
32397         000225' 200040  004015'         MOVE T1,DTJBFF  ;JOBFF AFTER 2 TTY BUFS\r
32398         000226' 202040  000000*         MOVEM T1,JOBFF  ;SET UP\r
32399 \r
32400         000227' 050100  004633'         OPEN OUT,OMOD   ;INITIALIZE OUTPUT DEVICE\r
32401         000230' 254000  001767'         JRST ERR1       ;UNAVAILABLE ERROR\r
32402         000231' 065100  000001          OUTBUF OUT,1    ;TRY ONE OUTBUFFER FOR SIZE\r
32403         000232' 250040  000226*         EXCH T1,JOBFF   ;JOBFF_DTJBFF+BUFSZ\r
32404                                                         ;NOTE JOBFF RESET TO DTJBFF\r
32405         000233' 274040  004015'         SUB T1,DTJBFF   ;T1=BUFSZ\r
32406         000234' 550000  000000*         HRRZ 0,JOBREL   ;HIGHEST CORE AVAILABLE\r
32407         000235' 274000  004015'         SUB 0,DTJBFF    ;0=TOTAL CORE AVAILABLE\r
32408         000236' 240000  777777          ASH 0,-1        ;COMPUTE HOW MANY OUTPUT BUFFERS\r
32409         000237' 232000  000001          IDIVM 0,T1      ;FIT IN HALF THE AVAILABLE SPACE\r
32410         000240' 201340  000223'         MOVEI T4,OMODE  ;SET RETURN FROM MORCOR\r
32411         000241' 305040  000001          CAIGE T1,1      ;1 OR MORE THAN 1 FIT?\r
32412         000242' 254000  000262'         JRST MORCOR     ;NO, NEED MORE CORE\r
32413         000243' 065101  000000          OUTBUF OUT,(T1) ;SET UP OUTPUT BUFFERS\r
32414         000244' 200000  003746'         MOVE 0,OBF+1\r
32415         000245' 202000  003741'         MOVEM 0,SVOBF   ;SAVE ORIGINAL MODE SETTING\r
32416         000246' 200000  000232*         MOVE 0,JOBFF\r
32417         000247' 552000  004017'         HRRZM 0,SVJBF1  ;PREPARE TO RECLAIM INBUFFER SPACE\r
32418         000250' 263240  000000          POPJ P,\r
32419 \r
32420         000251' 260240  000223' OMOD1:  PUSHJ P,OMODE   ;GO INITIALIZE OUTPUT DEVICE\r
32421         000252' 626300  004000          TRZN FLAG,ZFLG  ;Z COMMAND TYPED?\r
32422         000253' 254000  000275'         JRST MAINA2     ;NO,\r
32423         000254' 260240  002212'         PUSHJ P,DTCLR   ;YES, GO CLEAR DIRECTORY\r
32424         000255' 071100  000000          RELEASE OUT,\r
32425         000256' 071240  000000          RELEASE DIR,\r
32426         000257' 606740  000400          TRNN    CALFLG,NSWTCH   ;SEE IF DEVICE WAS TYPED\r
32427         000260' 254000  000251'         JRST OMOD1      ;YES\r
32428         000261' 254000  000013'         JRST PIP2       ;GET NEXT COMMAND\r
32429 \r
32430         000262' 550000  000234* MORCOR: HRRZ 0,JOBREL   ;TRY TO GET\r
32431         000263' 271000  002000          ADDI 0,2000     ;1K MORE OF CORE\r
32432         000264' 047000  000011          CORE            ;ASK MONITOR FOR 1K CORE\r
32433         000265' 254000  000267'         JRST OMODER             ;NOT AVAILABLE\r
32434         000266' 254007  000000          JRST (T4)       ;GOT IT\r
32435 \r
32436         000267' 265040  002155' OMODER: ERRPNT</?Not enough core/>\r
32437         000270' 376355  772100\r
32438         000271' 627355  772716\r
32439         000272' 641014  367744\r
32440         000273' 624000  000000\r
32441         000274' 047000  000012          EXIT\r
32442 \r
32443 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 15\r
32444 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32445 \r
32446                                 ;MAIN LOOP TO PROCESS INPUT SIDE OF CS\r
32447 \r
32448 \r
32449         000275' 602300  000110  MAINA2: TRNE   FLAG,RFLG+DFLG   ;RENAME OR DELETE FILE MODE?\r
32450         000276' 254000  002432'         JRST   DTDELE           ;YES./D,/X,OR(DX)\r
32451                                 IFN RIMSW,<\r
32452                                         TLNE   FLAG,RIMFLG      ;RIM?\r
32453                                         JRST   RIMTB            ;YES./Y\r
32454                                         >\r
32455         000277' 602300  002000          TRNE   FLAG,XFLG        ;TRANSFER EVERYTHING MODE?\r
32456         000300' 254000  002220'         JRST   PRECOP           ;YES./X\r
32457                                 ;LOOP TO COPY ALL FILES BEGINS HERE FROM MAIN2\r
32458         000301' 606540  000020  MAINA3: TRNN   AUXFLG,FFLG      ;LIST DSK DIR SHORT?\r
32459         000302' 602300  000020          TRNE   FLAG,LFLG        ;LIST DIRECTORY?\r
32460         000303' 254000  003017'         JRST   DTPDIR           ;YES./F OR /L\r
32461         000304' 260240  000426'         PUSHJ  P,ININIT         ;INITIALIZE INPUT FILE\r
32462         000305' 602540  020000          TRNE   AUXFLG,DTAIN     ;DEC TAPE INPUT?\r
32463         000306' 260240  002701'         PUSHJ  P,DTADIR         ;INIT DTA DIR\r
32464 \r
32465                                 IFN FTDSK,<TRNE   AUXFLG,DSKIN  ;NO, DISK INPUT?\r
32466                                         PUSHJ  P,DSKDIR         ;OR DSK>\r
32467         000307' 260240  002566' MAINA4: PUSHJ  P,LOOK           ;GET A FILE TO COPY\r
32468         000310' 254000  000323'         JRST   MAINA5           ;NO MORE\r
32469         000311' 076140  004052'         LOOKUP IN,ZRF\r
32470         000312' 254000  002003'         JRST   ERR3             ;LOOKUP FAILURE\r
32471                                 IFN WCH,<\r
32472                                 MAINA6: TRNN  AUXFLG,DTAIN+DTAOUT\r
32473                                         JRST  .+5\r
32474                                         HLRZ  0,ZRF+1\r
32475                                         CAIE  0,(SIXBIT /DMP/)\r
32476                                         IFN DISK30,<CAIN 0,(SIXBIT/SVE/)>\r
32477                                         IFE DISK30,<CAIN 0,(SIXBIT/SAV/)>\r
32478                                         JRST  MAINA4            ;DONT COPY DMP OR SAV FILES ON DTA>\r
32479         000313' 661300  000020          TLO   FLAG,NEWFIL\r
32480         000314' 260240  003353'         PUSHJ P,FILTYP\r
32481         000315' 602540  000040          TRNE  AUXFLG,ONEOUT\r
32482         000316' 254000  000333'         JRST  PSCANA            ;OUT HAS BEEN INITIALIZED\r
32483                                 IFE WCH,<\r
32484         000317' 260240  002412'         PUSHJ P,OKBLKS>\r
32485         000320' 077100  004044'         ENTER OUT,DTON          ;CREATE OUTPUT FILE\r
32486         000321' 254000  002024'         JRST  ERR4              ;DIR. FULL OR 0 FILE NAME\r
32487         000322' 254000  000333'         JRST  PSCANA\r
32488 \r
32489         000323' 626540  000001  MAINA5: TRZN  AUXFLG,REDFLG\r
32490         000324' 254000  001107'         JRST  IOERRN            ;NEVER READ A FILE\r
32491         000325' 254000  000411'         JRST  MAIN1\r
32492 \r
32493 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 16\r
32494 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32495 \r
32496         000326' 602540  201500  PSCANB: TRNE AUXFLG,MTAIN!CDRIN!TTYIN!PPTIN     ;ON NON-DIR DEVICE?\r
32497         000327' 620740  000037          TRZ     CALFLG,ALLCLF   ;END OF THE ONE OR MANY FILES SPECIFIED\r
32498         000330' 666540  000040          TRON AUXFLG,ONEOUT      ;HAS OUT JUST BEEN INIT?\r
32499         000331' 067100  000000          OUTPUT OUT,     ;YES, AND FIRST FILE IS EOF ONLY, INIT OUT IN\r
32500                                                         ;CASE NO MORE SOURCE FILES\r
32501         000332' 254000  000407'         JRST PSCAN5     ;EMPTY FILE, CLOSE INPUT, RETURN FOR MORE\r
32502 \r
32503         000333' 660540  000001  PSCANA: TRO   AUXFLG,REDFLG     ;SET FLAG FOR INPUT FILE READ\r
32504         000334' 260240  001616'         PUSHJ P,INP             ;GO READ INPUT FILE\r
32505         000335' 620540  002000          TRZ   AUXFLG,READ1\r
32506         000336' 260240  002376'         PUSHJ P,TTYZ            ;CHECK IF INPUT IS TTY\r
32507         000337' 602400  020000          TRNE IOS,EOFBIT         ;EOF FIRST DATA?\r
32508         000340' 254000  000326'         JRST PSCANB\r
32509         000341' 336000  003744'         SKIPN IBF+2\r
32510         000342' 254000  000333'         JRST PSCANA\r
32511 \r
32512         000343' 660540  000040  PSCAN:  TRO AUXFLG,ONEOUT       ;INDICATE ONE OUTPUT FILE INITED\r
32513         000344' 200000  003723'         MOVE 0,OPTRA    ;PRESCAN A LINE, INITIALIZE LINE BUFFER PTR\r
32514         000345' 202000  004020'         MOVEM 0,OPTR\r
32515         000346' 402000  004035'         SETZM CDRCNT\r
32516         000347' 260240  000553'         PUSHJ P,CLRBUF  ;CLEAR LINE BUFFER\r
32517         000350' 664300  000400          TROA FLAG,STS   ;START A FRESH LINE\r
32518         000351' 260240  000756' PSCAN3: PUSHJ P,PUT     ;HERE FOR BINARY DATA\r
32519 \r
32520         000352' 260240  001462' PSCAN2: PUSHJ P,GET     ;GET CHARACTER\r
32521         000353' 254000  000376'         JRST PSCAN1     ;END OF FILE RETURN\r
32522         000354' 616300  004672'         TDNN FLAG,[XWD IFLG+IBFLG,BMOD] ;BIN. OR NO CHAR. PROCESSING\r
32523         000355' 603540  000004          TLNE AUXFLG,SBIN\r
32524         000356' 254000  000351'         JRST PSCAN3     ;YES\r
32525         000357' 200040  004020'         MOVE T1,OPTR\r
32526         000360' 306200  000177          CAIN CHR,DEL    ;VJC 4/16/69\r
32527         000361' 254000  000352'         JRST PSCAN2     ; STR# 10-2615\r
32528         000362' 316040  003722'         CAMN T1,OPTMAX  ;CHECK LENGTH OF LINE\r
32529         000363' 254000  001751'         JRST ERR10      ;LINE TOO LONG\r
32530         000364' 136200  004020'         IDPB CHR,OPTR   ;DEPOSIT CHAR. IN LINE BUFFER\r
32531         000365' 307200  000024          CAIG CHR,24\r
32532         000366' 305200  000020          CAIGE   CHR,20  ;LINE PRINTERR CONTROL CHAR\r
32533         000367' 254000  000371'         SKIP    1       ;NO\r
32534         000370' 254000  000374'         JRST PSCAN4     ;YES, TREAT AS END OF LINE\r
32535         000371' 307200  000014          CAIG CHR,14\r
32536         000372' 305200  000012          CAIGE CHR,12    ;END OF LINE CHARACTER?\r
32537         000373' 254000  000352'         JRST PSCAN2     ;NO, SO CONTINUE\r
32538         000374' 260240  000707' PSCAN4: PUSHJ P,OUTLBF  ;YES, SO DUMP THE LINE BUFFER\r
32539         000375' 254000  000343'         JRST PSCAN      ;SCAN THE NEXT LINE\r
32540 \r
32541         000376' 135200  004020' PSCAN1: LDB     CHR,OPTR        ;PICK UP LAST CHAR.\r
32542         000377' 306200  000032          CAIN    CHR,CZ          ;IS IT ^Z\r
32543         000400' 606540  001000          TRNN    AUXFLG,TTYIN    ;FROM TTY?\r
32544         000401' 254000  000404'         JRST    PSCAN6          ;NO\r
32545         000402' 400200  000000          SETZ    CHR,            ;YES,CLEAR CHAR.\r
32546         000403' 137200  004020'         DPB     CHR,OPTR        ;AND REMOVE FROM BUFFER\r
32547         000404' 260240  000707' PSCAN6: PUSHJ P,OUTLBF  ;DUMP THE REMAINING BUFFER\r
32548         000405' 602300  002000          TRNE FLAG,XFLG  ;COPY MODE?\r
32549 \r
32550 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 16-1\r
32551 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32552 \r
32553         000406' 254000  002311'         JRST COPY2A     ;YES, GO COPY THE NEXT FILE\r
32554         000407' 070140  000000  PSCAN5: CLOSE IN,\r
32555         000410' 254000  000307'         JRST MAINA4\r
32556 \r
32557 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 17\r
32558 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32559 \r
32560                                 ;COME HERE AFTER /L,/D,/R ON DISK OR THROUGH COPYING\r
32561 \r
32562         000411' 071240  000000  MAIN1:  RELEAS DIR,     ;RELEASE THE DIRECTORY DEVICE\r
32563         000412' 071140  000001          RELEAS IN,INHIB ;RELEASE THE INPUT DEVICE\r
32564         000413' 331340  004134'         SKIPL T4,ESWTCH ;MORE COMMAND STRING TO PROCESS?\r
32565         000414' 254000  000421'         JRST MAIN2      ;YES\r
32566 \r
32567                                 ;COME HERE AFTER /D,/R ON DTA. ALSO FROM ABOVE\r
32568 \r
32569         000415' 070100  000000  MAINB:  CLOSE OUT,      ;CLOSE THE OUTPUT FILE\r
32570         000416' 260240  000764'         PUSHJ P,OUTP1   ;CHECK THE FINAL ERROR BITS\r
32571                                 IFN FTDSK,<TLNE AUXFLG,NSPROT   ;NON-ST. PROT?\r
32572                                         TRNN AUXFLG,DSKOUT+DTAOUT       ;DISK OUT/ OR DTA\r
32573                                         JRST MAINB1     ;NO\r
32574                                         LDB 0,PRPTL\r
32575                                         DPB 0,PRPTD\r
32576                                         RENAME OUT,DTON ;SET UP RENAME REQUEST\r
32577                                         JRST DERR6      ;DISK ERROR\r
32578                                 MAINB1:>\r
32579         000417' 071100  000000          RELEAS OUT,     ;RELEASE THE OUTPUT DEVICE\r
32580         000420' 254000  000013'         JRST PIP2       ;PROCESS THE NEXT COMMAND\r
32581 \r
32582         000421' 260240  000451' MAIN2:  PUSHJ P,DESCRP  ;GET THE NEXT INPUT FILE TO PROCESS\r
32583         000422' 260240  000204'         PUSHJ P,INLOOK\r
32584         000423' 260240  000154'         PUSHJ P,M4\r
32585         000424' 552340  004636'         HRRZM T4,ININI1\r
32586         000425' 254000  000301'         JRST MAINA3\r
32587                                 ;END OF LOOP BEGINNING AT MAINA3\r
32588 \r
32589 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 18\r
32590 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32591 \r
32592                                 ;SUBROUTINE TO INITIALIZE THE INPUT FILE\r
32593 \r
32594         000426' 200040  004017' ININIT: MOVE T1,SVJBF1  ;SVJBF1=END OF OUTPUT BUFFERS\r
32595 \r
32596         000427' 202040  000246*         MOVEM T1,JOBFF  ;COMPARE OMODE CODE\r
32597         000430' 201000  003742'         MOVEI 0,IBF\r
32598         000431' 202000  004640'         MOVEM 0,DEVICE+1\r
32599         000432' 050140  004636'         OPEN IN,ININI1\r
32600         000433' 254000  001770'         JRST ERR1A      ;NOT AVAILABLE ERROR\r
32601         000434' 064140  000001          INBUF IN,1      ;TRY ONE INPUT BUFFER FOR SIZE\r
32602         000435' 250040  000427*         EXCH T1,JOBFF   ;HOW MANY INBUFFERS WILL FIT?\r
32603         000436' 274040  004017'         SUB T1,SVJBF1\r
32604         000437' 550000  000262*         HRRZ 0,JOBREL\r
32605         000440' 274000  000435*         SUB 0,JOBFF     ;JOBREL-SVJBF1=TOTAL SPACE LEFT\r
32606         000441' 232000  000001          IDIVM 0,T1\r
32607         000442' 201340  000426'         MOVEI T4,ININIT ;RETURN FROM MORCOR IS ININIT\r
32608         000443' 305040  000001          CAIGE T1,1      ;1 OR MORE THAN 1 FITS?\r
32609         000444' 254000  000262'         JRST MORCOR     ;NO, GET MORE CORE\r
32610         000445' 064141  000000          INBUF IN,(T1)   ;SET UP AS MANY BUFFS AS FIT\r
32611         000446' 200000  003743'         MOVE 0,IBF+1    ;SAVE ORIGINAL MODE\r
32612         000447' 202000  003740'         MOVEM 0,SVIBF\r
32613         000450' 263240  000000          POPJ P,\r
32614 \r
32615 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 19\r
32616 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32617 \r
32618                                 ;THIS ROUTINE GETS AN INPUT UNIT DESCRIPTOR AND, FOR\r
32619                                 ;ADVANCE FILE AND BSPF ON MTA, ENSURES THE VALUE 1 IF NO\r
32620                                 ;NUMBER WAS GIVEN.\r
32621 \r
32622         000451' 402000  004133' DESCRP: SETZM AUX       ;WILL GET ANY MTA REQ. GOING TO AUXFLG.\r
32623         000452' 622540  000002          TRZE    AUXFLG,SYSFLG   ;IS THIS DEVICE SYS.?\r
32624         000453' 660540  000004          TRO     AUXFLG,SYSLST   ;YES,SET SYS AS LAST DEVICE\r
32625         000454' 402000  004136'         SETZM AB        ;MTA VALUE SWITCHES\r
32626         000455' 402000  004042'         SETZM PR        ;PROTECTION\r
32627         000456' 402000  004043'         SETZM PP        ;PROJ-PROG NUMBER\r
32628                                 ;********************************************************************\r
32629         000457' 260240  000557'         PUSHJ P,NAME    ;GO SCAN INPUT SIDE OF COMMAND STRING\r
32630         000460' 200040  004042'         MOVE T1,PR      ;PROTECTION\r
32631         000461' 512040  004042'         HLLZM T1,PR     ;IGNORE PR FLAG IN RHS FOR INPUT\r
32632         000462' 620540  261500          TRZ AUXFLG,DTAIN+DSKIN+PPTIN+MTAIN+CDRIN+TTYIN\r
32633         000463' 260240  002132'         PUSHJ P,CHECK1  ;CHECK UNIT, AND FOR _\r
32634 \r
32635                                 IFN FTDSK,<TRNN AUXFLG,DSKIN    ;DSK INPUT?\r
32636                                         JRST DESCR1     ;NO\r
32637                                         TRNE    AUXFLG,SYSFLG   ;IS THIS DEVICE SYS?\r
32638                                         JRST DESCR1     ;YES\r
32639                                         TRNN    AUXFLG,SYSLST   ;WAS LAST DEVICE?\r
32640                                         JRST DESCR1     ;NO\r
32641                                         MOVE T2,FNPPNS  ;YES, SAVE LAST [P,P]\r
32642                                         SKIPE PP        ;[P,P] ZERO?\r
32643                                         JRST DESCR1\r
32644                                         MOVEM T2,PP     ;YES, MAKE OLD [P,P] CURRENT [P,P]\r
32645                                         MOVEM T2,FNPPN  ;RESERVE [P,P]>\r
32646         000464' 332000  004135' DESCR1: SKIPE XNAME     ;NO OVERSHOOT ALLOWED\r
32647         000465' 254000  002040'         JRST ERR6A\r
32648 \r
32649         000466' 554100  004136' ABCHK:  HLRZ T2,AB      ;NO RECS/FILES TO BACKSPACE\r
32650         000467' 326100  000471'         JUMPN T2,.+2    ;IF 0\r
32651         000470' 201100  000001          MOVEI T2,1      ;GUARANTEE ONE\r
32652         000471' 506100  004136'         HRLM T2,AB      ;SET AB LH\r
32653 \r
32654         000472' 550100  004136'         HRRZ T2,AB      ;NO RECS/FILES TO ADV\r
32655         000473' 326100  002746'         JUMPN T2,FNSET  ;IF 0\r
32656         000474' 350000  004136'         AOS AB          ;GUARANTEE 1\r
32657         000475' 254000  002746'         JRST    FNSET   ;FIND OUT DETAILS OF FILENAME\r
32658 \r
32659 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 20\r
32660 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32661 \r
32662 \r
32663                                 ;IF A NON-STANDARD OUTPUT PROTECTION IS REQUESTED, SAVE FOR RENAME.\r
32664 \r
32665         000476' 200040  004042' PROTK:  MOVE T1,PR\r
32666         000477' 606040  000001          TRNN T1,1\r
32667         000500' 254000  000504'         JRST PROTK1\r
32668         000501' 512040  004033'         HLLZM T1,PROTS\r
32669         000502' 512040  004042'         HLLZM T1,PR\r
32670         000503' 665540  000002          TLOA AUXFLG,NSPROT\r
32671         000504' 403040  004042' PROTK1: SETZB   T1,PR\r
32672         000505' 263240  000000          POPJ P,\r
32673 \r
32674                                 ;TEST "DEVICE" TO SEE IF DESTINATION DEVICE IS DTA, DSK, PTP, LPT, TTY, MTA\r
32675                                 ;IF ANY IS TRUE, SET RELEVANT BIT IN AUXFLG.  "0" CONTAINS\r
32676                                 ;"DEVICE" ON ENTRY.\r
32677 \r
32678         000506' 047000  000004  DEVTST: DEVCHR          ;GET DEVICE CHARACTERISTICS\r
32679                                 IFN FTDSK,<TLNN 0,DSKBIT        ;IS OUTPUT DEV DSK?\r
32680                                         JRST DEVTSU     ;NO\r
32681                                         TRO AUXFLG,DSKOUT       ;YES, SET BIT\r
32682                                         PUSH    P,DEVICE        ;SAVE DEVICE NAME\r
32683                                         POP     P,ADSK          ;PUT NAME IN DSK INIT\r
32684                                         POPJ P,\r
32685                                 DEVTSU:>\r
32686         000507' 322000  000525'         JUMPE   0,DEVER2        ;NON-EXISTENT DEVICE\r
32687         000510' 607000  000001          TLNN 0,OUTBIT   ;CAN DEV DO OUTPUT?\r
32688         000511' 254000  002040'         JRST ERR6A      ;NO\r
32689 \r
32690         000512' 603000  000004          TLNE 0,DTABIT   ;DECTAPE?\r
32691         000513' 660540  004000          TRO AUXFLG,DTAOUT       ;YES\r
32692 \r
32693         000514' 603000  000400          TLNE 0,PTPBIT   ;PAPER TAPE PUNCH?\r
32694         000515' 660540  400000          TRO AUXFLG,PPTOUT\r
32695 \r
32696         000516' 603000  040000          TLNE 0,LPTBIT   ;LINE PRINTER?\r
32697         000517' 660540  000010          TRO AUXFLG,LPTOUT\r
32698 \r
32699         000520' 603000  000010          TLNE 0,TTYBIT   ;TELETYPE?\r
32700         000521' 660540  100000          TRO AUXFLG,TTYOUT\r
32701 \r
32702         000522' 603000  000020          TLNE 0,MTABIT   ;MAGTAPE?\r
32703         000523' 660540  000200          TRO AUXFLG,MTAOUT\r
32704 \r
32705         000524' 263240  000000          POPJ P,\r
32706 \r
32707 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 21\r
32708 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32709 \r
32710 \r
32711                                 ;ROUTINE TO CHECK IF DEVICE SYS AND SET [P,P], IF NONE GIVEN\r
32712 \r
32713                                 IFN FTDSK,<\r
32714                                 PSYSP:  CAME    0,[SIXBIT /SYS/];IS DEVICE SYS?\r
32715                                         POPJ    P,              ;NO\r
32716                                         MOVE    T1,SYSPP        ;GET SYS PP\r
32717                                         MOVEM   T1,PP           ;AND SET IT\r
32718                                         TRO     AUXFLG,SYSFLG   ;SET FLAG TO INDICATE\r
32719                                         POPJ    P,              ;CURRENT INPUT DEVICE IS SYS>\r
32720 \r
32721         000525'                 DEVER1: \r
32722         000525' 200040  004637' DEVER2: MOVE    T1,DEVICE\r
32723         000526' 202040  004641' DEVER:  MOVEM   T1,DEVERR\r
32724         000527' 265040  002155'         ERRPNT  </?Device />\r
32725         000530' 376114  573322\r
32726         000531' 617124  000000\r
32727         000532' 260240  002201'         PUSHJ   P,P6BIT\r
32728         000533' 000000  004641'                 DEVERR\r
32729         000534' 265040  002166'         ERRPN2  </does not exist!/>\r
32730         000535' 623374  571500\r
32731         000536' 673376  420312\r
32732         000537' 743236  372102\r
32733         000540' 000000  000000\r
32734                                 ;ROUTINE TO INIT PDL POINTER AND TTY\r
32735 \r
32736         000541' 201240  004153' INICN1: MOVEI   P,PDL-1         ;INITIALIZE PUSHDOWN POINTER\r
32737         000542' 200000  004016' INICN2: MOVE    0,SVJBFF        ;IS INITIALIZED AT PIP1\r
32738         000543' 202000  000440*         MOVEM   0,JOBFF         ;SET JOBFF TO BEGINNING OF BUFFER AREA\r
32739         000544' 260240  001410'         PUSHJ   P,INICON        ;INITIALIZE THE TTY\r
32740         000545' 064040  000001          INBUF   CON,1           ;ONE INBUFFER\r
32741         000546' 065040  000001          OUTBUF  CON,1           ;ONE OUTBUFFER\r
32742         000547' 200000  000543*         MOVE    0,JOBFF\r
32743         000550' 552000  004015'         HRRZM   0,DTJBFF        ;JOBFF AFTER 2 TTY BUFFERS SET\r
32744         000551' 067040  000000          OUTPUT   CON,           ;INITIALIZE BUFFER POINTERS\r
32745         000552' 254011  000000          JRST    (T5)\r
32746 \r
32747                                 ;ROUTINE TO CLEAR LINE BUFFER\r
32748 \r
32749         000553' 402000  004174' CLRBUF: SETZM   LBUF            ;SUBR. TO CLEAR LINE BUFFER\r
32750         000554' 200000  004673'         MOVE    0,[XWD LBUF,LBUF+1]\r
32751         000555' 251000  004377'         BLT     0,LBUFE\r
32752         000556' 263240  000000          POPJ    P,\r
32753 \r
32754 \r
32755 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 22\r
32756 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32757 \r
32758                                 ;COMMAND SCANNER ROUTINE\r
32759 \r
32760         000557' 606740  001000  NAME:   TRNN    CALFLG,SSWTCH   ;RETURN NULL IF _ OR END-OF-LINE SEEN\r
32761         000560' 335000  004134'         SKIPGE  ESWTCH\r
32762         000561' 254000  000666'         JRST    NM13            ;\r
32763         000562' 620740  000400          TRZ     CALFLG,NSWTCH\r
32764         000563' 332040  004135'         SKIPE   T1,XNAME        ;IF COMMAND SCAN OVERSHOOT PICKED UP\r
32765                                                                 ;DEVICE NAME, USE IT NOW\r
32766         000564' 254000  000640'         JRST    NM7\r
32767         000565' 620740  000100          TRZ     CALFLG,DEV\r
32768                                 ;LOOK FOR FILE NAME, EXT\r
32769         000566' 402000  004041' NM1:    SETZM   FILEX\r
32770         000567' 402000  004040' NM2:    SETZM   FILNAM\r
32771         000570' 200040  000672'         MOVE    T1,NM15\r
32772                                 ;LOOP TO PICK OFF FILENAME, EXT\r
32773         000571' 260240  001175' NM3:    PUSHJ   P,GETCOM        ;GO GET 7 BIT ASCII CHAR. FROM COMMAND STRING\r
32774         000572' 302000  000052          CAIE    0,"*"           ;TO ALLOW FN.EX = *.*\r
32775         000573' 301000  000101          CAIL    0,"A"           ;ALPHABETIC CHARACTER?\r
32776         000574' 303000  000132          CAILE   0,"Z"\r
32777         000575' 254000  000602'         JRST    NM4A            ;NO\r
32778         000576' 275000  000040  NM4:    SUBI    0,40            ;CONVERT TO SIXBIT\r
32779         000577' 603040  770000          TLNE    T1,770000       ;6 CHARS. YET?\r
32780         000600' 136000  000001          IDPB    0,T1            ;NO\r
32781         000601' 254000  000571'         JRST    NM3             ;GET NEXT CHAR.\r
32782         000602' 301000  000060  NM4A:   CAIL    0,"0"           ;NUMERIC?\r
32783         000603' 303000  000071          CAILE   0,"9"\r
32784         000604' 254000  000606'         JRST    NM5             ;NO\r
32785         000605' 254000  000576'         JRST    NM4\r
32786 \r
32787 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 23\r
32788 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32789 \r
32790                                 ;CHARACTER NOT *,0-9,A-Z\r
32791         000606' 307000  000015  NM5:    CAIG    0,CR            ;CARRIAGE RETURN\r
32792         000607' 305000  000012          CAIGE   0,LF            ;LINE FEED\r
32793         000610' 306000  000033          CAIN    0,ALTMOD        ;ALTMODE\r
32794         000611' 254000  000613'         JRST    NM5A            ;YES\r
32795         000612' 306000  000032          CAIN    0,CZ            ;END-OF-FILE(CCL)?\r
32796         000613' 374000  004134' NM5A:   SOSA    ESWTCH          ;YES, OR EOF\r
32797         000614' 306000  000054          CAIN    0,COMMA         ;COMMA\r
32798         000615' 254000  000633'         JRST    NM6             ;YES\r
32799         000616' 306000  000056          CAIN    0,PERIOD        ;PERIOD\r
32800         000617' 254000  000654'         JRST    NM10            ;YES\r
32801         000620' 306000  000072          CAIN    0,COLON         ;COLON\r
32802         000621' 254000  000646'         JRST    NM9             ;YES\r
32803         000622' 306000  000073          CAIN    0,";"           ;IS THE REST A COMMENT?\r
32804         000623' 254000  000700'         JRST    NM16            ;YES\r
32805         000624' 306000  000003          CAIN    0,"C"-100       ;^C\r
32806         000625' 047000  000012          EXIT                    ;IN CASE JACCT ON ???\r
32807         000626' 302000  000137          CAIE    0,LA            ;LEFT ARROW\r
32808         000627' 254000  000673'         JRST    NM5B            ;NO\r
32809         000630' 660740  001000          TRO     CALFLG,SSWTCH   ;SET LEFT ARROW SWITCH\r
32810         000631' 602740  000100          TRNE    CALFLG,DEV      ;HAS A DEVICE BEEN SEEN?\r
32811         000632' 660740  000200          TRO     CALFLG,DVSWTH   ;YES-NEEDED FOR /Z/,/D\r
32812 \r
32813         000633' 336040  004041' NM6:    SKIPN   T1,FILEX        ;COMMA ROUTINE - FIGURE OUT WHAT WE HAVE\r
32814         000634' 254000  000661'         JRST    NM11            ;NO FILE NAME TEMPORARILY IN FILEX\r
32815         000635' 250040  004040'         EXCH    T1,FILNAM       ;PUT THE FILE NAME WHERE IT BELONGS\r
32816         000636' 512040  004041'         HLLZM   T1,FILEX        ;PUT THE EXTENSION WHERE IT BELONGS\r
32817         000637' 263240  000000          POPJ    P,\r
32818 \r
32819         000640' 402000  004135' NM7:    SETZM   XNAME           ;USE XNAME ONLY ONCE\r
32820         000641' 306040  000001          CAIN    T1,1            ;1 FLAGS A NULL OVERSHOOT\r
32821         000642' 254000  000666'         JRST    NM13            ;RETURN NULL NAME\r
32822         000643' 202040  004637' NM8:    MOVEM   T1,DEVICE       ;NEW DEVICE\r
32823         000644' 660740  000100          TRO     CALFLG,DEV\r
32824         000645' 254000  000566'         JRST    NM1             ;LOOK FOR A FILE NAME AND EXTENSION\r
32825 \r
32826         000646' 606740  000100  NM9:    TRNN    CALFLG,DEV      ;COLON ROUTINE - IS DEVICE NAME IN YET?\r
32827         000647' 254000  000664'         JRST    NM12            ;NO\r
32828         000650' 336040  004040'         SKIPN   T1,FILNAM       ;SCAN OVERSHOOT - NULL OVERSHOOT?\r
32829         000651' 201040  000001          MOVEI   T1,1            ;YES - FLAG NULL OVERSHOOT WITH A 1\r
32830         000652' 202040  004135'         MOVEM   T1,XNAME        ;XNAME = OVERSHOOT NAME\r
32831         000653' 254000  000670'         JRST    NM14\r
32832         000654' 332000  004041' NM10:   SKIPE   FILEX\r
32833         000655' 254000  002040'         JRST    ERR6\r
32834         000656' 200000  004040'         MOVE    0,FILNAM        ;PERIOD ROUTINE - SAVE FILE NAME\r
32835         000657' 202000  004041'         MOVEM   0,FILEX         ;TEMPORARILY IN FILEX\r
32836         000660' 254000  000567'         JRST    NM2             ;LOOK FOR EXTENSION\r
32837         000661' 336000  004040' NM11:   SKIPN   FILNAM          ;WAS A FILE NAME SPECIFIED?\r
32838         000662' 602740  000100          TRNE    CALFLG,DEV      ;WAS ANYTHING SPECIFIED?\r
32839         000663' 263240  000000          POPJ    P,              ;YES\r
32840         000664' 332040  004040' NM12:   SKIPE   T1,FILNAM       ;NULL NAME SPECIFIED?\r
32841         000665' 254000  000643'         JRST    NM8             ;NO - SO REMEMBER AND LOOK FOR FILE NAME\r
32842 \r
32843 \r
32844 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 23-1\r
32845 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32846 \r
32847         000666' 660740  000400  NM13:   TRO     CALFLG,NSWTCH   ;RETURN A NULL NAME\r
32848         000667' 402000  004041'         SETZM   FILEX\r
32849         000670' 402000  004040' NM14:   SETZM   FILNAM\r
32850         000671' 263240  000000          POPJ    P,\r
32851 \r
32852         000672' 440600  004040' NM15:   POINT   6,FILNAM\r
32853         000673' 307000  000137  NM5B:   CAIG    0,LA            ;ALLOW ANY SIXBIT CHAR NOT CS DELIMITER\r
32854         000674' 307000  000040          CAIG    0,SPACE         ;SPACES IGNORED\r
32855         000675' 254000  000571'         JRST    NM3             ;IGNORE NOT LEGAL SIXBIT\r
32856         000676' 254000  000576'         JRST    NM4             ;ACCEPT\r
32857 \r
32858         000677' 260240  001404'         PUSHJ   P,GETBUF        ;GET NEXT ASCII CHAR.\r
32859         000700' 303000  000012  NM16:   CAILE   0,LF\r
32860         000701' 307000  000015          CAIG    0,CR            ;IF LF,FF,VT,OR CR\r
32861         000702' 254000  000613'         JRST    NM5A            ;RETURN\r
32862         000703' 302000  000033          CAIE    0,ALTMOD        ;SAME IF ALTMOD\r
32863         000704' 306000  000032          CAIN    0,CZ            ;OR ^Z\r
32864         000705' 254000  000613'         JRST    NM5A\r
32865         000706' 254000  000677'         JRST    NM16-1          ;GET NEXT CHARACTER\r
32866 \r
32867 \r
32868 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 24\r
32869 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32870 \r
32871                                 ;ROUTINE TO OUTPUT ONE LINE FROM LBUF\r
32872 \r
32873         000707' 602300  000001  OUTLBF: TRNE FLAG,LINE\r
32874         000710' 254000  000717'         JRST OUTLBA     ;OUTPUT LINE-BY-LINE\r
32875         000711' 200100  003723' OUTCH1: MOVE T2,OPTRA   ;OUTPUT CHARACTER-BY-CHARACTER\r
32876         000712' 316100  004020' OUTLB1: CAMN T2,OPTR    ;ARE ALL CHARACTERS OUT?\r
32877         000713' 263240  000000          POPJ P,         ;YES\r
32878         000714' 134200  000002          ILDB CHR,T2     ;NO\r
32879         000715' 260240  000756'         PUSHJ P,PUT     ;GO OUTPUT CHARACTER\r
32880         000716' 254000  000712'         JRST OUTLB1\r
32881         000717' 603300  000040  OUTLBA: TLNE FLAG,CHKFLG;PAREN COUNTING?\r
32882         000720' 254000  003305'         JRST OUTCHK     ;YES, SO DO IT\r
32883         000721' 602540  100010          TRNE AUXFLG,TTYOUT+LPTOUT\r
32884         000722' 254000  000711'         JRST OUTCH1     ;IF OUTPUT TO TTY OR LPT DO CHR BY CHR  \r
32885         000723' 201040  000004          MOVEI T1,4      ;CLEAR UNUSED PORTION OF LAST WORD USED IN LBUF\r
32886         000724' 201100  000000          MOVEI T2,0\r
32887         000725' 200140  004020'         MOVE T3,OPTR\r
32888         000726' 136100  000003          IDPB T2,T3\r
32889         000727' 367040  000726'         SOJG T1,.-1\r
32890         000730' 201100  000005          MOVEI T2,5\r
32891         000731' 550040  004020'         HRRZ T1,OPTR    ;COMPUTE NUMBER OF WORDS FILLED\r
32892         000732' 275040  004173'         SUBI T1,LBUF-1\r
32893         000733' 322040  000754'         JUMPE T1,OUTLB3 ;DO NOTHING IF BUFFER EMPTY\r
32894         000734' 222040  000002          IMULM T1,T2     ;COMPUTE CHARACTER COUNT=5 TIMES WORD CT\r
32895                                 ;THIS IS WHERE OLD FORTRAN MODE WAS TESTED.\r
32896         000735' 317100  003747'         CAMG T2,OBF+2   ;WILL LINE FIT IN THE OUTBUFFER?\r
32897         000736' 254000  000745'         JRST OUTLB2     ;YES\r
32898         000737' 260240  000762'         PUSHJ P,OUTP    ;NO, SO DUMP BUFFER AND CHECK ERROR BITS\r
32899         000740' 201500  000001          MOVEI T6 ,1\r
32900         000741' 612500  004174'         TDNE T6,LBUF    ;SEQUENCED?   \r
32901         000742' 606540  004000          TRNN AUXFLG,DTAOUT      ;YES, ON DTA?\r
32902         000743' 254000  000745'         SKIP    1       ;NO\r
32903         000744' 271100  000240          ADDI T2,40*5    ;LEAVE EDITING ROOM\r
32904         000745' 213000  000002  OUTLB2: MOVNS T2\r
32905         000746' 272100  003747'         ADDM T2,OBF+2   ;UPDATE OUTBUFFER CHARACTER COUNT\r
32906         000747' 505100  004174'         HRLI T2,LBUF\r
32907         000750' 540100  003746'         HRR T2,OBF+1\r
32908         000751' 340100  000000          AOJ T2,\r
32909         000752' 273040  003746'         ADDB T1,OBF+1   ;UPDATE OUTBUFFER BYTE POINTER\r
32910         000753' 251101  000000          BLT T2,(T1)     ;MOVE DATA TO OUTBUFFER\r
32911         000754' 263240  000000  OUTLB3: POPJ P,\r
32912 \r
32913 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 25\r
32914 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32915 \r
32916                                 ;ROUTINE TO PUT ONE CHAR INTO OUT BUFFER\r
32917 \r
32918         000755' 201200  000011  TABOUT: MOVEI   CHR,TAB ;OUTPUT A TAB\r
32919         000756' 377000  003747' PUT:    SOSG OBF+2      ;SUBR. TO OUTPUT ONE CHARACTER IN AC CHR\r
32920         000757' 260240  000762'         PUSHJ P,OUTP    ;IF BUFFER FULL, DUMP AND CHECK ERR BITS\r
32921         000760' 136200  003746'         IDPB CHR,OBF+1  ;PUT CHARACTER IN BUFFER\r
32922         000761' 263240  000000          POPJ P,\r
32923 \r
32924                                 ;ROUTINE TO DUMP OUT BUFFER WHEN FULL\r
32925 \r
32926         000762' 057100  000000  OUTP:   OUT OUT,        ;SUBR. TO DUMP OUTBUFFER AND CHECK ERR BITS\r
32927         000763' 254000  001710'         JRST    CPOPJZ  ;NO ERRERS,BUT CLEAR IOS JUST IN CASE\r
32928         000764' 062100  000010  OUTP1:  GETSTS OUT,IOS  ;HERE FOR BIT CHECKING ONLY\r
32929         000765' 260240  000770'         PUSHJ P,OUTP4\r
32930         000766' 060110  000000          SETSTS OUT,(IOS);ERRORS WERE DETECTED\r
32931         000767' 263240  000000          POPJ P,         ;NO ERRORS\r
32932 \r
32933         000770' 606540  000200  OUTP4:  TRNN AUXFLG,MTAOUT\r
32934         000771' 254000  000774'         JRST .+3\r
32935         000772' 602400  002000  OUTP3:  TRNE IOS,EOTBIT ;EOT?\r
32936         000773' 254000  000776'         JRST .+3        ;YES\r
32937         000774' 606400  740000          TRNN IOS,740000 ;ANY ERROR BITS ON?\r
32938         000775' 254000  001707'         JRST CPOPJ1     ;NO\r
32939         000776' 260240  001135'         PUSHJ P,COMERR  ;YES\r
32940 \r
32941         000777' 265440  000542'         JSP T5,INICN2   ;INIT TTY\r
32942         001000' 260240  001652'         PUSHJ P,QUEST\r
32943         001001' 265040  002166'         ERRPN2  </Output device />\r
32944         001002' 477536  470352\r
32945         001003' 721014  462754\r
32946         001004' 647074  520000\r
32947         001005' 260240  002201'         PUSHJ   P,P6BIT\r
32948         001006' 000000  004634'                 ODEV\r
32949         001007' 336000  004044'         SKIPN   DTON            ;ONLY IF THERE IS A FILE NAME\r
32950         001010' 254000  001014'         JRST    .+4             ;DON'T PRINT IF NOT\r
32951         001011' 265040  002166'         ERRPN2  </: file />\r
32952         001012' 351014  664730\r
32953         001013' 625000  000000\r
32954         001014' 201140  004044'         MOVEI T3,DTON   ;OUTPUT FILE NAME LOC\r
32955         001015' 260240  001146'         PUSHJ P,FN.EX   ;PRINT FILE NAME EXT\r
32956         001016' 200100  000013          MOVE T2,AUXFLG\r
32957         001017' 405100  014200          ANDI T2,MTAOUT+DSKOUT+DTAOUT\r
32958 \r
32959 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 26\r
32960 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32961 \r
32962 \r
32963         001020' 201040  001074' IOERR:  MOVEI T1,TXTC   ;PHYSICAL END OF TAPE\r
32964         001021' 602400  002000          TRNE IOS,EOTBIT\r
32965         001022' 254000  002166'         JRST PTEXT2     ;YES\r
32966 \r
32967         001023' 201040  001055'         MOVEI T1,TXTD2  ;7-9 PUNCH MISSING\r
32968         001024' 606100  000100          TRNN T2,CDRIN\r
32969 \r
32970                                 IFN FTDSK,<\r
32971                                         MOVEI   T1,TXTD3\r
32972                                         TRNN    T2,DSKIN!DSKOUT>\r
32973 \r
32974         001025' 201040  001042'         MOVEI T1,TXTD   ;WRITE LOCK ERROR\r
32975         001026' 606100  074600          TRNN T2,DSKIN+DSKOUT+DTAIN+DTAOUT+MTAIN+MTAOUT\r
32976 \r
32977         001027' 201040  001047'         MOVEI T1,TXTD1\r
32978         001030' 602400  400000          TRNE IOS,WRTLOK\r
32979         001031' 254000  002166'         JRST PTEXT2\r
32980 \r
32981         001032' 201040  001062'         MOVEI T1,TXTA   ;DEVICE ERROR\r
32982         001033' 602400  200000          TRNE IOS,200000\r
32983         001034' 254000  002166'         JRST PTEXT2\r
32984 \r
32985         001035' 201040  001066'         MOVEI T1,TXTB   ;CHECKSUM/PARITY ERROR\r
32986         001036' 602400  100000          TRNE IOS,100000\r
32987         001037' 254000  002166'         JRST PTEXT2\r
32988 \r
32989                                 IFN FTDSK,<\r
32990                                         HRRZ    T1,TABLE+14\r
32991                                         TRNN    T2,DSKOUT       ;QUOTA EXCEDED>\r
32992 \r
32993         001040' 201040  001100'         MOVEI T1,TXTC1  ;BLOCK TOO LARGE\r
32994         001041' 254000  002166'         JRST PTEXT2\r
32995 \r
32996 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 27\r
32997 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
32998 \r
32999                                 ;DEVICE ERROR COMMENTS\r
33000 \r
33001         001042' 737455  172312  TXTD:   ASCIZ /write (lock) error/\r
33002         001043' 201215  467706\r
33003         001044' 655224  062744\r
33004         001045' 713376  200000\r
33005         001046' 254000  001107'         JRST IOERRN     ;NO RECOVERY\r
33006 \r
33007         001047' 613235  660744  TXTD1:  ASCIZ /binary data incomplete/\r
33008         001050' 745014  460750\r
33009         001051' 605015  167306\r
33010         001052' 677336  066312\r
33011         001053' 723120  000000\r
33012         001054' 254000  001114'         JRST IOERRG\r
33013 \r
33014         001055' 335327  120340  TXTD2:  ASCIZ /7-9 punch missing/\r
33015         001056' 727354  364100\r
33016         001057' 667236  371722\r
33017         001060' 673160  000000\r
33018         001061' 254000  001114'         JRST IOERRG\r
33019 \r
33020         001062' 623136  664706  TXTA:   ASCIZ /device error/\r
33021         001063' 625014  571344\r
33022         001064' 677440  000000\r
33023         001065' 254000  001114'         JRST IOERRG\r
33024 \r
33025         001066' 617214  561726  TXTB:   ASCIZ /checksum or parity error/\r
33026         001067' 717535  520336\r
33027         001070' 711016  060744\r
33028         001071' 647517  120312\r
33029         001072' 713455  771000\r
33030         001073' 254000  001114'         JRST IOERRG\r
33031 \r
33032         001074' 703217  171722  TXTC:   ASCIZ /physical eot/\r
33033         001075' 617035  420312\r
33034         001076' 677500  000000\r
33035         001077' 254000  001114'         JRST IOERRG\r
33036 \r
33037         001100' 613315  761726  TXTC1:  ASCIZ /block or block number too large/\r
33038         001101' 203376  220304\r
33039         001102' 663374  365500\r
33040         001103' 673535  561312\r
33041         001104' 711016  467736\r
33042         001105' 203314  171316\r
33043         001106' 624000  000000\r
33044                                         ;FALLS THROUGH TO IOERRN\r
33045 \r
33046 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 28\r
33047 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33048 \r
33049 \r
33050         001107' 071200  000000  IOERRN: RELEAS TAPE,    ;NO RECOVERY ERRORS EXIT HERE\r
33051         001110' 071240  000000          RELEAS DIR,\r
33052         001111' 071100  000000          RELEAS OUT,\r
33053         001112' 071140  000000          RELEAS IN,\r
33054                                 IFN DISK30,<\r
33055                                         RELEAS BLKIN,>\r
33056         001113' 254000  000013'         JRST PIP2       ;GET NEXT COMMAND\r
33057 \r
33058                                 IFN FTDSK,<\r
33059                                 TXTD3:  ASCIZ   /monitor detected software error/>\r
33060 \r
33061                                 ;TEST IF /G FLAG(IGNORE ERRORS) SET\r
33062 \r
33063         001114' 607300  000200  IOERRG: TLNN FLAG,GFLG          ;PRINTED CURRENT MESSAGE\r
33064         001115' 254000  001107'         JRST IOERRN             ;NO RECOVERY\r
33065 \r
33066                                         ERRPN2</\r
33067         001116' 265040  002166' />                              ;PRINT CR, LF DON'T MOVE>\r
33068         001117' 064240  000000\r
33069 \r
33070         001120' 071040  000000          RELEAS CON,\r
33071         001121' 602540  100000          TRNE AUXFLG,TTYOUT      ;TTY OUTPUT DEVICE?\r
33072         001122' 260240  000223'         PUSHJ P,OMODE           ;YES, INIT OUTPUT DEVICE\r
33073         001123' 602540  001000          TRNE AUXFLG,TTYIN       ;REINIT TTYIN,TTYOUT\r
33074         001124' 260240  000426'         PUSHJ P,ININIT\r
33075         001125' 620400  740000          TRZ IOS,740000          ;CLEAR FILE STATUS, I/O ERRORS\r
33076         001126' 602100  000600          TRNE T2,MTAIN+MTAOUT\r
33077         001127' 620400  002000          TRZ IOS,EOTBIT          ;CLEAR PHYSICAL EOT I/O ERROR\r
33078         001130' 204000  004674'         MOVS 0,[XWD 1,SAVAC]\r
33079         001131' 251000  000003          BLT 0,3\r
33080         001132' 200440  003764'         MOVE T5,SAVAC+3\r
33081         001133' 200500  003765'         MOVE T6,SAVAC+4\r
33082         001134' 263240  000000          POPJ P,\r
33083 \r
33084 \r
33085 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 29\r
33086 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33087 \r
33088         001135' 200000  004674' COMERR: MOVE 0,[XWD 1,SAVAC]    ;SAVE ACS T1,T2,T3,T5,T6\r
33089         001136' 251000  003763'         BLT 0,SAVAC+2\r
33090         001137' 202440  003764'         MOVEM T5,SAVAC+3\r
33091         001140' 202500  003765'         MOVEM T6,SAVAC+4\r
33092         001141' 602540  100000          TRNE AUXFLG,TTYOUT      ;RELEASE ANY TTYIO\r
33093         001142' 071100  000000          RELEAS OUT,\r
33094         001143' 602540  001000          TRNE AUXFLG,TTYIN\r
33095         001144' 071140  000000          RELEAS IN,\r
33096         001145' 263240  000000          POPJ P,\r
33097                                 ;PRINT FILE NAME AND EXTENSION FROM (T3), 1(T3).\r
33098 \r
33099         001146' 200043  000000  FN.EX:  MOVE T1,(T3)    ;T1=FILENAME\r
33100         001147' 554503  000001          HLRZ T6,1(T3)   ;T6=FILE EXT\r
33101         001150' 306500  654644          CAIN T6,(SIXBIT /UFD/)\r
33102         001151' 400040  000000          SETZ T1,        ;UFD FILES ONLY ARE ASSUMED TO HAVE FILENAME\r
33103         001152' 202040  004642'         MOVEM T1,DERR2  ;OF NUMERIC FORM (#,# P-P NUMBER).\r
33104         001153' 322500  001166'         JUMPE T6,DERR2A ;FILE EXT=0?\r
33105         001154' 302500  654644          CAIE T6,(SIXBIT /UFD/)\r
33106         001155' 254000  001165'         JRST DERR2B     ;NO\r
33107 \r
33108         001156' 554643  000000          HLRZ DOUT,(T3)  ;YES, GET PROJ. NO.\r
33109         001157' 201100  002175'         MOVEI T2,PUTCON ;PRINT PROJ-PROG. NO.\r
33110         001160' 260240  003235'         PUSHJ P,OUTDC1  ;CONVERT TO ASCII\r
33111 \r
33112         001161' 201200  000054          MOVEI CHR,COMMA\r
33113         001162' 260240  002175'         PUSHJ P,PUTCON\r
33114 \r
33115         001163' 550643  000000          HRRZ DOUT,(T3)  ;GET PROG. NO.\r
33116         001164' 260240  003235'         PUSHJ P,OUTDC1  ;CONVERT TO ASCII\r
33117 \r
33118         001165' 661500  000016  DERR2B: TLO     T6,"."-40       ;PUT SIXBIT PERIOD\r
33119         001166' 202500  004643' DERR2A: MOVEM   T6,DERR2+1      ;INTO EXTENSION\r
33120         001167' 260240  002201'         PUSHJ   P,P6BIT\r
33121         001170' 000000  004642'                 DERR2\r
33122         001171' 260240  002201'         PUSHJ   P,P6BIT\r
33123         001172' 000000  004643'                 DERR2+1\r
33124         001173' 201200  000040          MOVEI   CHR," "\r
33125         001174' 254000  002175'         JRST    PUTCON\r
33126 \r
33127 \r
33128 \r
33129 \r
33130 \r
33131 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 30\r
33132 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33133 \r
33134                                 ;THIS ROUTINE GETS A 7 BIT ASCII CHARACTER FROM THE COMMAND STRING\r
33135                                 ;AND RETURNS IT TO THE COMMAND SCANNER ROUTINE (NAME) IN AC0\r
33136 \r
33137         001175' 260240  001404' GETCOM: PUSHJ P,GETBUF\r
33138         001176' 306000  000057          CAIN 0,"/"      ;SINGLE CHARACTER SWITCH\r
33139         001177' 254000  001300'         JRST GETT6\r
33140         001200' 306000  000050          CAIN 0,"("      ;LOOK FOR (MULTI-CHAR.) SWITCH\r
33141         001201' 254000  001252'         JRST GETT3\r
33142         001202' 306000  000074          CAIN 0,"<"      ;GO LOOK FOR PROTECTION\r
33143         001203' 254000  001223'         JRST GETT9\r
33144         001204' 302000  000133          CAIE 0,"["\r
33145         001205' 263240  000000          POPJ P,\r
33146 \r
33147         001206' 260240  001236' GETT10: PUSHJ P,GETDEC  ;LOOK FOR PROJECT-PROGRAMMER NUMBER\r
33148         001207' 303600  777777          CAILE T7,-1     ;GREATER THAN HALF WORD?\r
33149         001210' 254000  002107'         JRST ERR2A      ;YES, ERROR\r
33150         001211' 302000  000054          CAIE 0,","      ;SEPARATOR?\r
33151         001212' 254000  001232'         JRST GETUPJ     ;OR TERMINATOR (NON-NUMERIC)\r
33152         001213' 516600  004043'         HRLZM T7,PP\r
33153         001214' 260240  001236'         PUSHJ   P,GETDEC\r
33154         001215' 303600  777777          CAILE   T7,-1\r
33155         001216' 254000  002107'         JRST    ERR2A\r
33156 \r
33157         001217' 542600  004043' GETT11: HRRM T7,PP\r
33158         001220' 306000  000135          CAIN 0,"]"      ;FORCE CORRECT TERMINATOR\r
33159         001221' 254000  001175'         JRST GETCOM\r
33160         001222' 254000  002076'         JRST ERR2\r
33161 \r
33162         001223' 260240  001235' GETT9:  PUSHJ P,GETOCT\r
33163         001224' 306000  000076          CAIN 0,">"      ;TERMINATE ON RIGHT BRKT ONLY\r
33164         001225' 303600  000777          CAILE T7,777    ;PR. IN RANGE?\r
33165         001226' 254000  002107'         JRST ERR2A\r
33166         001227' 241600  777767          ROT T7,-11\r
33167         001230' 522600  004042'         HLLOM T7,PR     ;RHS=1'S MEANS <> SEEN (PR MAY BE 0)\r
33168         001231' 254000  001175'         JRST GETCOM\r
33169 \r
33170         001232' 200440  003734' GETUPJ: MOVE    T5,UPROJ\r
33171         001233' 516440  004043'         HRLZM   T5,PP\r
33172         001234' 254000  001217'         JRST    GETT11\r
33173         001235' 334440  004675' GETOCT: SKIPA   T5,[EXP 10]\r
33174         001236' 201440  000012  GETDEC: MOVEI   T5,12\r
33175         001237' 201600  000000  GETNUM: MOVEI T7,0      ;TO PICK UP P-P NUMBER\r
33176         001240' 260240  001404' GETN1:  PUSHJ P,GETBUF  ;AND PROTECTION\r
33177         001241' 306000  000040          CAIN 0," "      ;IGNORE SPACES\r
33178         001242' 254000  001240'         JRST GETN1\r
33179         001243' 301000  000060          CAIL 0,"0"\r
33180         001244' 301011  000060          CAIL 0,"0"(T5)\r
33181         001245' 263240  000000          POPJ P,         ;GOT A NON-NUMERIC\r
33182         001246' 220600  000011          IMUL    T7,T5   ; MULTIPLY BY RADIX\r
33183         001247' 275000  000060          SUBI    0,"0"\r
33184         001250' 270600  000000          ADD     T7,0    ; ADD DIGIT\r
33185         001251' 254000  001240'         JRST GETN1\r
33186 \r
33187 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 31\r
33188 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33189 \r
33190         001252' 260240  001320' GETT3:  PUSHJ P,GETT5   ;PROCESS SWITCH CHARACTER\r
33191         001253' 306000  000051          CAIN 0,")"      ;CLOSING PAREN?\r
33192         001254' 254000  001175'         JRST GETCOM     ;YES\r
33193         001255' 306000  000115          CAIN 0,"M"      ;MTA FLAG?\r
33194         001256' 660300  200000          TRO FLAG, MTFLG ;SET MTA, LOOK FOR MULTI CHAR. SWITCH\r
33195         001257' 302000  000043          CAIE 0,"#"      ;MTA#\r
33196         001260' 254000  001252'         JRST GETT3      ;NO\r
33197         001261' 606300  200000          TRNN FLAG,MTFLG ;ONLY LOOK AFTER # IF MTFLG IS ON.\r
33198         001262' 254000  002040'         JRST ERR6A      ;I.E. IF MT SWITCH IS IN PROGRESS.\r
33199         001263' 260240  001305'         PUSHJ P,GETNUD  ;GET A NUMBER\r
33200         001264' 302000  000104          CAIE 0,"D"      ;TERMINATED BY D?\r
33201         001265' 306000  000101          CAIN 0,"A"      ;TERMINATED BY A?\r
33202         001266' 254000  001276'         JRST GETT3A     ;YES, MARK AB UPPER\r
33203         001267' 302000  000120          CAIE 0,"P"      ;ONLY A,D,P AND B CAN BE\r
33204         001270' 306000  000102          CAIN 0,"B"      ;PRECEDED BY #.\r
33205         001271' 254000  001273'         SKIP    1\r
33206         001272' 254000  002040'         JRST ERR6A\r
33207         001273' 542600  004136'         HRRM T7,AB      ;NO. FILES/RECS TO ADVANCE\r
33208                                                         ;GOES IN AB (RH)\r
33209         001274' 260240  001321' GETT3B: PUSHJ P,GETT5A\r
33210         001275' 254000  001252'         JRST GETT3\r
33211 \r
33212         001276' 506600  004136' GETT3A: HRLM T7,AB      ;NO. FILES/RECS TO BACK SPACE\r
33213         001277' 254000  001274'         JRST GETT3B     ;GOES IN AB (LH)\r
33214 \r
33215         001300' 260240  001320' GETT6:  PUSHJ P,GETT5   ;PROCESS ONE SWITCH CHAR\r
33216         001301' 302000  000115          CAIE 0,"M"\r
33217         001302' 306000  000051          CAIN 0,")"      ;THESE ARE ILLEGAL 1-SWITCH CHARS.\r
33218         001303' 254000  002040'         JRST ERR6A\r
33219         001304' 254000  001175'         JRST GETCOM\r
33220 \r
33221         001305' 201600  000000  GETNUD: MOVEI T7,0      ;GET A DECIMAL NUMBER\r
33222         001306' 260240  001404' GETN2:  PUSHJ P,GETBUF  ;GET CHAR FROM COMMAND STRING\r
33223         001307' 306000  000040          CAIN 0,SPACE    ;SPACE?\r
33224         001310' 254000  001306'         JRST GETN2      ;YES, IGNORE\r
33225         001311' 301000  000060          CAIL 0,"0"      ;NUMBER?\r
33226         001312' 303000  000071          CAILE 0,"9"\r
33227         001313' 263240  000000          POPJ P,         ;NO\r
33228         001314' 221600  000012          IMULI T7,^D10   ;T7*10\r
33229         001315' 405000  000017          ANDI 0,17       ;ADD ON LAST DIGIT\r
33230         001316' 270600  000000          ADD T7,0        ;+ LOW 4 BITS\r
33231         001317' 254000  001306'         JRST GETN2\r
33232 \r
33233 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 32\r
33234 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33235 \r
33236 \r
33237                                 ;GET NEXT COMMAND STRING CHAR(SWITCH),CHECK WITH TABLE,SET FLAGS\r
33238 \r
33239         001320' 260240  001404' GETT5:  PUSHJ P,GETBUF  ;GET CHAR FROM COMMAND STRING\r
33240         001321' 200100  004676' GETT5A: MOVE T2,[XWD 350700,DISPTB]     ;SET DISPTB NEXT SEARCH\r
33241         001322' 201500  004056'         MOVEI T6,MTAREQ ;SET MTAREQ NEXT SEARCH\r
33242 \r
33243         001323' 606300  200000          TRNN FLAG,MTFLG ;SET UP TABLE TO SEARCH AND FLAG TO SET.\r
33244         001324' 541100  001436'         HRRI T2,DISPTA  ;PUT IN BYTE POINTER, NOT MTA REQUEST\r
33245 \r
33246                                 ;SET TO LOOK AT NON-MTA LETTERS FIRST\r
33247 \r
33248         001325' 606300  200000          TRNN FLAG,MTFLG ;IF MTFLG SET, START AT DISPTB AND STORE RESULT IN\r
33249         001326' 201500  000013          MOVEI T6,AUXFLG ;MTAREQ, ELSE START AT DISPTA AND STORE RESULT IN\r
33250                                                         ;AUXFLG OR FLAG\r
33251                                 ;GET FIRST CHAR DISPTA OR DISPTB, LOOK FOR MATCH, SET SWITCH FLAGS.\r
33252 \r
33253         001327' 135140  000002  GETT7:  LDB T3,T2       ;COMPARE WITH LEFT 7 BITS OF\r
33254         001330' 326140  001335'         JUMPN T3,GETT8  ;TABLE ENTRIES\r
33255         001331' 620300  200000          TRZ FLAG, MTFLG ;SEARCHED TABLE 1 (DISPTB) DROP MTA FLAG\r
33256         001332' 201500  000013          MOVEI T6,AUXFLG ;SET AUXFLG NEXT TABLE SEARCH\r
33257         001333' 603540  000020          TLNE AUXFLG,NOMORE      ;AFTER FIRST INPUT DEVICE ONLY ACCEPT MTA FLAGS\r
33258         001334' 263240  000000          POPJ P,\r
33259 \r
33260         001335' 306140  000001  GETT8:  CAIN T3,1       ;END OF DISPTA 1ST HALF?\r
33261         001336' 201500  000006          MOVEI T6,FLAG   ;YES, SEARCH DISPTA 2ND HALF FROM NOW ON\r
33262         001337' 306140  000002          CAIN T3,2       ;END OF DISPTA 2ND HALF?\r
33263         001340' 254000  002040'         JRST ERR6A      ;SEARCHED TABLE 3, ERROR EXIT\r
33264         001341' 312140  000000          CAME T3,0       ;MATCHING CHARACTER?\r
33265         001342' 344100  001327'         AOJA T2,GETT7   ;NO, GET NEXT SWITCH IN TABLE.\r
33266 \r
33267         001343' 200442  000000          MOVE T5,(T2)    ;YES, SET FLAG OR AUXFLG OR MTAREQ\r
33268         001344' 436452  000000          ORM T5,(T6)     ;FLAG OR AUXFLG\r
33269         001345' 602300  200000          TRNE FLAG,MTFLG\r
33270         001346' 436440  004133'         ORM T5,AUX      ;MTA REQUESTS SAVED IN AUX\r
33271                                 IFE RIMSW,<\r
33272         001347' 603300  000002          TLNE FLAG,RIMFLG\r
33273         001350' 254000  004652'         JRST RIMTB      ;NO RIM IF RIMSW=0\r
33274                                         >               ;PRINT ERROR MESSAGE\r
33275         001351' 263240  000000          POPJ P,         ;EXIT ON MATCHING CHAR\r
33276 \r
33277 \r
33278 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 33\r
33279 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33280 \r
33281 \r
33282                                 ;ROUTINE TO GET ONE TTY OR CCL COMMAND STRING CHAR INTO AC 0\r
33283 \r
33284         001352'                 GETTA:\r
33285 \r
33286         001352' 373000  003755'         SOSLE TFI+2     ;SUBR TO GET ONE TTY CHAR IN AC 0\r
33287         001353' 254000  001371'         JRST GETT2      ;BUFFER NOT EMPTY\r
33288         001354' 200000  003753'         MOVE 0,TFI      ;BUFFER EMPTY, SAVE\r
33289         001355' 200440  003756'         MOVE T5,TFO     ;CURRENT BUFFER LOCS\r
33290         001356' 260240  001410'         PUSHJ P,INICON  ;BUFFER EMPTY SO RE-ATTACH TTY\r
33291         001357' 562000  003753'         HRROM 0,TFI     ;RESTORE OLD BUFFER LOCS\r
33292         001360' 562440  003756'         HRROM T5,TFO    ;USE PREVIOUSLY ASSIGNED I/O BUF. FOR TTY\r
33293         001361' 200440  004131'         MOVE T5,COMCNT  ;DONT TYPE CR,LF\r
33294         001362' 307440  000105          CAIG T5,^D69    ;FOR SHORT LINE\r
33295         001363' 254000  001365'         JRST GETTIN\r
33296         001364' 260240  002735'         PUSHJ   P,INFO2 ;TYPE CR,LF\r
33297         001365' 066040  000000  GETTIN: INPUT CON,      ;GET THE NEXT LINE\r
33298         001366' 200440  003755'         MOVE T5,TFI+2   ;SAVE CHAR COUNT\r
33299         001367' 071040  000000          RELEAS CON,     ;LET GO OF TTY FOR USE AS IN-OUT DEVICE\r
33300         001370' 202440  003755'         MOVEM T5,TFI+2  ;RESTORE CHAR COUNT LOST DURING RELEASE\r
33301         001371' 134000  003754' GETT2:  ILDB 0,TFI+1    ;FETCH CHAR\r
33302         001372' 302000  000175  GETT4:  CAIE 0,ALT175   ;OLD ALTMODE?\r
33303         001373' 306000  000176          CAIN 0,ALT176\r
33304         001374' 201000  000033          MOVEI 0,ALTMOD  ;YES,MAKE NEW ALTMOD\r
33305         001375' 322000  001352'         JUMPE   0,GETTA ;IGNORE NULL CHARS\r
33306         001376' 301000  000140          CAIL 0,140      ;LOWER CASE?\r
33307         001377' 620000  000040          TRZ     0,40    ;YES MAKE UPPER CASE?\r
33308         001400' 302000  000021          CAIE    0,XON   ;IGNORE XON,XOFF ONLY FOR\r
33309         001401' 306000  000023          CAIN    0,XOFF  ;TTY SERVICE TO SIGNAL TTY\r
33310         001402' 254000  001352'         JRST    GETTA   ;PTR READ IN MODE\r
33311         001403' 263240  000000          POPJ P,\r
33312 \r
33313                                 ;ROUTINE TO GET ONE TTY CHAR FROM COMBUF INTO AC0\r
33314 \r
33315         001404' 375000  004131' GETBUF: SOSGE COMCNT    ;ANY CHARS LEFT?\r
33316         001405' 254000  002045'         JRST ERR6B      ;NO, COMMAND ERROR\r
33317         001406' 134000  004132'         ILDB 0,COMPTS   ;PICK UP CHAR FROM COMBUF\r
33318         001407' 263240  000000          POPJ P,\r
33319 \r
33320                                 ;ROUTINE TO INITIALIZE THE TTY, ASCII LINE MODE\r
33321 \r
33322         001410' 041040  000001  INICON: INIT CON,1      ;SUBR TO INITIALIZE THE TTY\r
33323         001411' 646471  000000          SIXBIT /TTY/\r
33324         001412' 003756' 003753'         XWD TFO,TFI     ;TTY OUT/IN BUFFER HEADERS\r
33325         001413' 047000  000012          EXIT            ;IF TTY NOT AVAILABLE,FATAL.JOB DET?\r
33326         001414' 263240  000000          POPJ P,\r
33327 \r
33328 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 34\r
33329 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33330 \r
33331                                 ;GET 7 BIT ASCII CHARACTER - INPUT FROM CCL COMMAND FILE\r
33332 \r
33333         001415' 476000  004057' GETEN2: SETOM   COMEOF          ;INDICATE END OF FILE\r
33334         001416' 201000  000032          MOVEI   0,CZ            ;NEEDED TO TERM CCL CS SCAN\r
33335         001417' 263240  000000          POPJ    P,\r
33336 \r
33337 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 35\r
33338 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33339 \r
33340                                 ;TABLE OF RECOGNIZED COMMAND LETTERS AND CORRESPONDING FLAG BITS\r
33341 \r
33342                                 DEFINE DISP (A,B)\r
33343                                 <       XWD <"A">*4000,B>\r
33344                                 ;MAGTAPE SWITCHES AND FLAG BITS. TABLE 1 (MTAREQ)\r
33345         001420' 404000  000001  DISPTB: DISP A,MTAFLG\r
33346         001421' 410000  000002          DISP B,MTBFLG\r
33347         001422' 520000  000004          DISP T,MTTFLG\r
33348         001423' 534000  000010          DISP W,MTWFLG\r
33349         001424' 340000  000400          DISP 8,MT8FLG\r
33350         001425' 324000  001000          DISP 5,MT5FLG\r
33351         001426' 310000  002000          DISP 2,MT2FLG\r
33352         001427' 424000  004000          DISP E,MTEFLG\r
33353         001430' 524000  000040          DISP U,MTUFLG\r
33354         001431' 430000  000020          DISP F,MTFFLG\r
33355         001432' 420000  000100          DISP D,MTDFLG\r
33356         001433' 500000  000200          DISP P,MTPFLG\r
33357         001434' 214000  000000          DISP #,0\r
33358         001435' 000000  000000          OCT 000000000000\r
33359                                 ;1ST BYTE 0=END OF DISPTB\r
33360                                 ;------------------------\r
33361                                 ;COMMAND STRING LETTERS AND FLAG BITS. TABLE 2 (AUXFLG)\r
33362         001436' 504001  000000  DISPTA:                 XWD <"Q">*4000+QFLG,0\r
33363         001437' 424040  000000                          XWD <"E">*4000+CDRFLG,0\r
33364         001440' 430000  000020          DISP F,FFLG\r
33365         001441' 004000  000000          OCT 004000000000\r
33366                                 ;1ST BYTE 1=END OF DISPTA 1ST HALF\r
33367                                 ;------------------------\r
33368                                 ;COMMAND STRING LETTERS AND FLAG BITS. TABLE 3 (FLAG)\r
33369         001442' 404000  000001          DISP A,LINE\r
33370         001443' 410000  000002          DISP B,BMOD\r
33371                                 IFN,K,< DISP C,TBMOD\r
33372                                         DISP D,DFLG\r
33373                                         DISP L,LFLG>\r
33374         001444' 464000  000000          DISP M,0\r
33375         001445' 244000  000000          DISP ),0\r
33376         001446' 470000  000040          DISP N,NSMOD\r
33377         001447' 474000  400640          DISP O,SQMOD+NSMOD+STS+OSFLG\r
33378         001450' 500014  000000                          XWD <"P">*4000+PFLG+PCONV,0\r
33379                                 IFN,K<  DISP R,RFLG>\r
33380         001451' 514000  000640          DISP S,SQMOD+NSMOD+STS\r
33381                                 IFN,K<  DISP T,SPMOD\r
33382                                                         XWD <"V">*4000+CHKFLG,LINE\r
33383                                         DISP X,XFLG>\r
33384         001452' 550000  004000          DISP Z,ZFLG\r
33385         001453' 524001  000000                          XWD <"U">*4000+OFLG,0\r
33386         001454' 544402  000000                          XWD <"Y">*4000+IBFLG+RIMFLG,0\r
33387         001455' 451000  000000                          XWD <"J">*4000+JFLG,0\r
33388         001456' 444100  000000                          XWD <"I">*4000+IFLG,0\r
33389         001457' 440400  000000                          XWD <"H">*4000+IBFLG,0\r
33390         001460' 434200  000000                          XWD <"G">*4000+GFLG,0\r
33391         001461' 010000  000000          OCT 010000000000\r
33392                                 ;FIRST BYTE 2=END OF DISPTA 2ND HALF\r
33393 \r
33394 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 36\r
33395 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33396 \r
33397                                 ;SUBR TO GET NEXT CHAR INTO AC CHR\r
33398                                 ;NO SKIP RETURN IS END OF FILE, SINGLE SKIP IS NORMAL RETURN\r
33399 \r
33400         001462' 607300  000020  GET:    TLNN FLAG,NEWFIL        ;NEW FILE?\r
33401         001463' 627300  000030          TLZN FLAG,PCONV+NEWFIL  ;NO,CONVERT THIS CHAR?\r
33402         001464' 254000  001506'         JRST GETPC1     ;YES\r
33403         001465' 135200  003743'         LDB CHR,IBF+1   ;GET CHAR\r
33404         001466' 306200  000040          CAIN CHR," "    ;SPACE?\r
33405         001467' 254000  001544'         JRST GETPC2     ;YES, CONVERT TO LINE FEED\r
33406         001470' 307200  000063          CAIG CHR,"3"    ;IS THE CHAR A PROPER FORMAT CONTROL CHAR?\r
33407         001471' 305200  000052          CAIGE CHR,"*"\r
33408         001472' 254000  001542'         JRST GETPC3     ;NO, SO OUTPUT LINE FEED FOLLOWED BY BAD CHAR\r
33409         001473' 307200  000056          CAIG CHR,"."    ;USE LEFT HALF OF TABLE?\r
33410         001474' 334204  001474'         SKIPA CHR,PCHTAB-<"*">(CHR)\r
33411         001475' 204204  001467'         MOVS CHR,PCHTAB-<"/">(CHR)\r
33412         001476' 137200  003743' GETPC4: DPB CHR,IBF+1   ;CLOBBER OLD CHAR, USUALLY BECOMES NULL\r
33413         001477' 242200  777771          LSH CHR,-7      ;BUT OTHERWISE BECOMES ANOTHER FORMAT CHAR\r
33414         001500' 405200  000377          ANDI CHR,377    ;EXTRACT THE CHAR TO BE OUTPUT\r
33415         001501' 622200  000200          TRZE CHR,200    ;=1 FOR GENERATING MULTIPLE LINE FEEDS\r
33416         001502' 661300  000010          TLO FLAG,PCONV  ;CONTINUE TO CONVERT\r
33417         001503' 326200  001707'         JUMPN CHR,CPOPJ1;OUTPUT THE GENERATED CHAR UNLESS NULL\r
33418         001504' 262245  000000          POP     P,(P)   ;IGNORE NULL CHARS\r
33419         001505' 254000  000374'         JRST    PSCAN4  ;DUMP THE LINE BUFFER\r
33420         001506' 606300  010000  GETPC1: TRNN FLAG,SUS   ;SUPPLYING SEQ. NUM. NOW?\r
33421         001507' 254000  001532'         JRST GET2       ;NO\r
33422         001510' 134200  004036'         ILDB CHR,PTRPT  ;YES, SO GET CHAR OF SEQ NUM\r
33423         001511' 326200  001707'         JUMPN CHR,CPOPJ1;0 MARKS LAST CHAR\r
33424         001512' 135040  003743'         LDB T1,IBF+1    ;GET FIRST CHAR OF THIS LINE\r
33425         001513' 201200  000015          MOVEI CHR,15\r
33426         001514' 307040  000015          CAIG T1,15      ;PREPARE TO OUTPUT A CR,LF\r
33427         001515' 305040  000012          CAIGE T1,12     ;IS FIRST CHAR OF LINE AN END OF LINE CHAR?\r
33428         001516' 201200  000011          MOVEI   CHR,TAB ;NO, SO OUTPUT A TAB\r
33429         001517' 620300  010000          TRZ FLAG,SUS    ;TURN OFF SUS SUPPLY\r
33430         001520' 254000  001724'         JRST    GETA5\r
33431         001521' 350000  003743' GET5:   AOS IBF+1       ;HERE IF A SEQ NUM FOUND IN INBUFFER\r
33432         001522' 275040  000005          SUBI T1,5       ;IGNORE SEQ NUM, TAB AND DECREMENT CHAR COUNT\r
33433         001523' 202040  003744'         MOVEM T1,IBF+2\r
33434         001524' 602300  000040          TRNE FLAG,NSMOD ;REMOVE SEQ NUMS MODE?\r
33435         001525' 254000  001532'         JRST GET2       ;YES, SO GET NEXT CHAR\r
33436         001526' 202100  004014'         MOVEM T2,SQNUM  ;SEQ NUM FROM BUFFER BECOMES NEW SEQ NUM\r
33437         001527' 260240  000707'         PUSHJ P,OUTLBF  ;DUMP THE LINE BUFFER (IF REQUIRED)\r
33438         001530' 666300  100400          TRON FLAG,STS+SNI       ;TURN ON START OF LINE\r
33439                                                         ;AND NO-INCREMENT SEQ NUM FLAG\r
33440         001531' 260240  000553'         PUSHJ P,CLRBUF  ;CLEAR LBUF IF IN THE MIDDLE OF A LINE\r
33441 \r
33442         001532' 622300  040000  GET2:   TRZE FLAG,ESQ   ;REPROCESS LAST CHAR?\r
33443         001533' 254000  001557'         JRST GET1       ;YES\r
33444         001534' 371040  003744'         SOSL T1,IBF+2   ;CHARS REMAINING IN INBUFFER?\r
33445         001535' 254000  001553'         JRST GET4       ;YES\r
33446         001536' 260240  001616'         PUSHJ P,INP     ;NO, SO REFILL AND CHECK ERR BITS\r
33447         001537' 602400  020000          TRNE IOS,EOFBIT ;END OF FILE? IOS HAS STATUS BITS\r
33448         001540' 263240  000000          POPJ P,         ;YES\r
33449         001541' 254000  001532'         JRST GET2       ;NO, SO PROCESS INBUFFER\r
33450 \r
33451 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 36-1\r
33452 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33453 \r
33454 \r
33455         001542' 660300  040000  GETPC3: TRO FLAG,ESQ    ;REPROCESS BAD CHAR\r
33456         001543' 664200  002400          TROA CHR,12*200 ;PRECEED BAD CHAR WITH LINE FEED\r
33457         001544' 201200  002400  GETPC2: MOVEI CHR,12*200;CHANGE SPACE TO LINE FEED\r
33458         001545' 254000  001476'         JRST GETPC4\r
33459 \r
33460         001546' 005000  004656  PCHTAB: XWD 24*200,23*200+"."   ;/ *\r
33461         001547' 042440  037600          XWD 212*200+" ",177*200 ;0 +   VJC 4/16/49\r
33462         001550' 003000  004200          XWD 14*200,21*200       ;1 ,\r
33463         001551' 004000  042460          XWD 20*200,212*200+"0"  ;2 -\r
33464         001552' 002600  004400          XWD 13*200,22*200       ;3 .\r
33465 \r
33466         001553' 134200  003743' GET4:   ILDB CHR,IBF+1  ;FETCH CHAR FROM INBUFFER\r
33467         001554' 616300  004672'         TDNN FLAG,[XWD IFLG+IBFLG,BMOD] ;BIN, IB, I OR SBIN MODE?\r
33468         001555' 603540  000004          TLNE AUXFLG,SBIN\r
33469         001556' 254000  001707'         JRST CPOPJ1     ;YES, SO NO PROCESSING REQUIRED\r
33470         001557' 135200  003743' GET1:   LDB CHR,IBF+1   ;AFTER SEQ NUM, HERE FOR 1ST CHAR\r
33471         001560' 322200  001532'         JUMPE CHR,GET2  ;IGNORE NULL CHARS\r
33472         001561' 306200  000012          CAIN CHR,LF     ;IGNORE LINE FEED IN FORTRAN OUTPUT\r
33473         001562' 607300  000004          TLNN FLAG,PFLG  ;/P SWITCH IN EFFECT?\r
33474         001563' 254000  001566'         JRST GET1A      ;NO\r
33475         001564' 661300  000010          TLO FLAG,PCONV  ;CONVERT THE NEXT LIVE CHAR\r
33476         001565' 254000  001532'         JRST GET2       ;GET NEXT CHAR\r
33477         001566' 200120  003743' GET1A:  MOVE T2,@IBF+1  ;BIT 35 OF BUFFER SET?\r
33478         001567' 622100  000001          TRZE T2,1\r
33479         001570' 254000  001521'         JRST GET5       ;YES, THIS IS A SEQ NUM\r
33480         001571' 622300  000400          TRZE FLAG,STS   ;START SEQ (NEW LINE) FLAG ON?\r
33481         001572' 606300  100200          TRNN FLAG,SQMOD+SNI     ;YES, SEQ MODE OR SEQ COPY?\r
33482         001573' 254000  001666'         JRST GET7       ;NO, SO PROCESS CHAR\r
33483         001574' 200100  004014'         MOVE T2,SQNUM   ;NO, SO ADD 10. TO SEQ NUM\r
33484         001575' 200040  003724'         MOVE T1,K1\r
33485         001576' 602300  400000          TRNE FLAG,OSFLG ;TEST FOR INCR. BY ONE\r
33486         001577' 200040  003726'         MOVE T1,K4\r
33487         001600' 270100  000001          ADD T2,T1       ;ASCII INCREMENT\r
33488         001601' 404100  003725'         AND T2,K3       ;MASK SIGNIFICANT DIGITS\r
33489         001602' 200040  000002          MOVE T1,T2\r
33490         001603' 404040  003721'         AND T1,ZRO      ;MASK CARRY BITS\r
33491         001604' 240040  777775          ASH T1,-3\r
33492         001605' 274100  000001          SUB T2,T1       ;ADJUST CARRIES\r
33493         001606' 434100  003721'         IOR T2,ZRO\r
33494         001607' 626300  100000          TRZN FLAG,SNI   ;NON-INCREMENT SEQ NUM FLAG ON?\r
33495         001610' 202100  004014'         MOVEM T2,SQNUM  ;NO, SO SAVE THE RESULT\r
33496         001611' 660300  050001          TRO FLAG,LINE+SUS+ESQ   ;TURN ON SUPPLY SEQ, REPROCESS\r
33497                                                                 ;LAST CHAR, AND LINE-BY-LINE FLAGS\r
33498         001612' 350000  004174'         AOS LBUF                ;SET BIT 35 IN LBUF TO MARK SEQ NUM\r
33499         001613' 200040  004677'         MOVE T1,[POINT 7,SQNUM]\r
33500         001614' 202040  004036'         MOVEM T1,PTRPT  ;INITIALIZE SEQ NUM PICK-UP POINTER\r
33501         001615' 254000  001462'         JRST GET        ;GO OUTPUT FIRST CHAR OF SEQ NUM\r
33502 \r
33503 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 37\r
33504 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33505 \r
33506                                 ;ROUTINE TO INPUT INPUT FILE\r
33507 \r
33508         001616' 056140  000000  INP:    IN      IN,     ;INPUT DATA\r
33509         001617' 254000  001710'         JRST    CPOPJZ  ;NO ERRORS ,BUT CLEAR IOS JUST IN CASE\r
33510         001620' 062140  000010  INERR:  GETSTS IN,IOS   ;SUBR TO CHECK INPUT ERR BITS\r
33511         001621' 606540  000400          TRNN AUXFLG,MTAIN       ;MTA INPUT?\r
33512         001622' 602400  740000          TRNE IOS,740000 ;ANY ERROR BITS SET?\r
33513         001623' 606400  742000          TRNN IOS,740000+EOTBIT  ;EOT FOR MTA?\r
33514         001624' 263240  000000          POPJ P,         ;NO\r
33515 \r
33516         001625' 260240  001135'         PUSHJ P,COMERR  ;SAVE AC'S RELEASE TTY\r
33517         001626' 265440  000542'         JSP T5,INICN2   ;YES SO PRINT OUT COMPLETE FILE DESCRIPTOR\r
33518         001627' 260240  001652'         PUSHJ P,QUEST\r
33519         001630' 265040  002166'         ERRPN2  </Input device />\r
33520         001631' 447356  072750\r
33521         001632' 203114  573322\r
33522         001633' 617124  000000\r
33523         001634' 260240  002201'         PUSHJ   P,P6BIT\r
33524         001635' 000000  004637'                 DEVICE\r
33525         001636' 336000  004052'         SKIPN   ZRF             ;IS THERE A FILE NAME\r
33526         001637' 254000  001643'         JRST    .+4             ;NO,SO DON'T PRINT\r
33527         001640' 265040  002166'         ERRPN2  </: file />\r
33528         001641' 351014  664730\r
33529         001642' 625000  000000\r
33530         001643' 201140  004052'         MOVEI T3,ZRF    ;LOC OF INPUT FILE NAME TO T3\r
33531         001644' 260240  001146'         PUSHJ P,FN.EX   ;DEPOSIT FILE NAME, EXT INTO TTY OUT BUFFER\r
33532         001645' 200100  000013          MOVE T2,AUXFLG\r
33533         001646' 405100  060500          ANDI T2,CDRIN+DTAIN+DSKIN+MTAIN\r
33534         001647' 260240  001020'         PUSHJ P,IOERR   ;GO PRINT ERROR DESCRIPTOR\r
33535         001650' 060150  000000          SETSTS IN,(IOS)\r
33536         001651' 263240  000000          POPJ P,\r
33537 \r
33538                                 ;ROUTINE TO TEST IF BLOCK TOO LARGE, OR WRITE LOCKED\r
33539 \r
33540         001652' 201200  000077  QUEST:  MOVEI CHR,"?"   ;DEPOSIT "?" IN ERROR MSG\r
33541         001653' 607300  000200          TLNN FLAG,GFLG  ;ONLY IF /G NOT ON\r
33542         001654' 254000  002175'         JRST PUTCON     ;/G NOT ON, PRINT ?(FATAL) BEFORE ERR MSG\r
33543 \r
33544         001655' 606400  040000          TRNN IOS,BIGBLK ;BLOCK NO. TOO LARGE?\r
33545         001656' 254000  001662'         JRST QUEST2     ;NO\r
33546         001657' 606540  024000          TRNN AUXFLG,DTAIN+DTAOUT        ;YES\r
33547         001660' 263240  000000          POPJ P,         ;BLOCK TOO LARGE\r
33548 \r
33549         001661' 254000  002175'         JRST PUTCON     ;DEPOSIT "?" FATAL EVEN IF /G ON\r
33550 \r
33551         001662' 602400  400000  QUEST2: TRNE IOS,WRTLOK ;WRITE LOCKED?\r
33552         001663' 606540  034600          TRNN AUXFLG,DTAIN+DTAOUT+MTAIN+MTAOUT+DSKOUT\r
33553         001664' 263240  000000          POPJ P,         ;NO\r
33554         001665' 254000  002175'         JRST PUTCON     ;DEPOSIT "?" FATAL EVEN IF /G ON\r
33555 \r
33556 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 38\r
33557 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33558 \r
33559 \r
33560         001666' 603300  000010  GET7:   TLNE FLAG,PCONV ;CONVERTING FORTRAN CARRAIGE CONTROL CHAR?\r
33561         001667' 254000  001463'         JRST GET+1      ;YES, GO DO IT\r
33562         001670' 350040  004035'         AOS T1,CDRCNT\r
33563         001671' 603540  000040          TLNE AUXFLG,CDRFLG\r
33564         001672' 254000  001712'         JRST GET7B      ;CARD READER INPUT\r
33565 \r
33566         001673' 306200  000040  GET7C:  CAIN CHR,SPACE  ;SPACE?\r
33567         001674' 254000  001727'         JRST GETA2      ;YES\r
33568         001675' 306200  000015          CAIN CHR,CR     ;CAR. RET.?\r
33569         001676' 254000  001717'         JRST GETA3      ;YES\r
33570         001677' 620300  020000          TRZ FLAG,SPOK   ;CHAR NOT A SPACE STOP COUNTING CONSEC. SPACES\r
33571         001700' 306200  000011          CAIN CHR,TAB    ;TAB?\r
33572         001701' 254000  001724'         JRST GETA5      ;KEEP TRACK OF TAB STOPS\r
33573         001702' 307200  000137          CAIG CHR,137\r
33574         001703' 305200  000040          CAIGE CHR,SPACE ;NON-SPACING CHARACTER?\r
33575         001704' 254000  001707'         JRST CPOPJ1     ;YES, SO RETURN IMMEDIATELY\r
33576         001705' 377000  004027'         SOSG TABCT      ;COUNT DOWN THE TAB STOP COUNTER\r
33577         001706' 254000  001724'         JRST GETA5      ;RESET THE COUNTER IF TAB STOP IS PASSED\r
33578         001707' 354005  000000  CPOPJ1: AOSA    (P)     ;SKIP RETURN\r
33579         001710' 400400  000000  CPOPJZ: SETZ    IOS,    ;CLEAR IOS JUST IN CASE\r
33580         001711' 263240  000000  CPOPJ:  POPJ    P,\r
33581 \r
33582 \r
33583         001712' 301040  000111  GET7B:  CAIL T1,^D73    ;LT COL 73?\r
33584         001713' 303040  000120          CAILE T1,^D80   ;NO, LE COL 80?\r
33585         001714' 254000  001673'         JRST    GET7C   ;CANT BE A CARD SEQUENCE NUMBER\r
33586         001715' 201200  000040          MOVEI CHR,SPACE ;REPLACE CARD SEQUENCE NOS. BY SPACE\r
33587         001716' 254000  001673'         JRST GET7C\r
33588 \r
33589         001717' 622300  020000  GETA3:  TRZE FLAG,SPOK  ;CAR. RET. SEEN, ANY TRAILING SPACES?\r
33590         001720' 606300  001004          TRNN FLAG,SPMOD+TBMOD   ;YES, ARE WE FLUSHING TRAILING SPACES\r
33591         001721' 254000  001724'         JRST GETA5      ;NO, RESET TAB COUNTER ONLY\r
33592         001722' 200000  004023'         MOVE 0,SVPTR1\r
33593         001723' 202000  004020'         MOVEM 0,OPTR    ;CLOBBER THE OUTPUT POINTER TO LBUF\r
33594         001724' 201000  000010  GETA5:  MOVEI 0,TABSP\r
33595         001725' 202000  004027'         MOVEM 0,TABCT   ;RESET THE TAB COUNTER\r
33596         001726' 254000  001707'         JRST    CPOPJ1\r
33597 \r
33598 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 39\r
33599 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33600 \r
33601         001727' 662300  020000  GETA2:  TROE FLAG,SPOK  ;SPACE WAS SEEN, IS THIS ONE OF A SEQUENCE?\r
33602         001730' 254000  001735'         JRST GETA7      ;YES\r
33603         001731' 200000  004020'         MOVE 0,OPTR     ;THIS IS THE FIRST SPACE SEEN, SAVE LBUF\r
33604                                                         ;POINTER IN CASE THIS SPACE MUST BE FLUSHED\r
33605         001732' 202000  004023'         MOVEM 0,SVPTR1  ;THIS POINTER FOR FLUSHING FINAL SPACES\r
33606         001733' 202000  004024'         MOVEM 0,SVPTR2  ;THIS POINTER FOR CHANGING MULT. SPACES TO TABS\r
33607         001734' 402000  004030'         SETZM SPCT      ;INITIALIZE THE SPACE COUNTER\r
33608         001735' 350040  004030' GETA7:  AOS T1,SPCT\r
33609         001736' 373000  004027'         SOSLE TABCT     ;ARE WE AT THE NEXT TAB STOP?\r
33610         001737' 254000  001707'         JRST CPOPJ1     ;NO\r
33611         001740' 301040  000002          CAIL T1,2       ;DONT BOTHER CHANGING ONE SPACE TO A TAB\r
33612         001741' 606300  000004          TRNN FLAG,TBMOD ;TAB GENERATING MODE?\r
33613         001742' 254000  001747'         JRST GETA5A     ;NO, GO RESET TAB COUNTER\r
33614         001743' 200000  004024'         MOVE 0,SVPTR2\r
33615         001744' 202000  004020'         MOVEM 0,OPTR    ;BACK UP THE OUTPUT POINTER OVER THE LAST\r
33616                                                         ;GROUP OF SPACES\r
33617         001745' 201200  000011          MOVEI CHR,TAB   ;OUTPUT A TAB\r
33618         001746' 402000  004030'         SETZM SPCT      ;RESET THE SPACE COUNTER\r
33619         001747' 133000  004024' GETA5A: IBP SVPTR2      ;UPDATE THE CHANGE-SPACES-TO-TABS POINTER\r
33620         001750' 254000  001724'         JRST GETA5      ;RESET THE TAB COUNTER\r
33621 \r
33622 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 40\r
33623 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33624 \r
33625                                 ;ERROR ROUTINES\r
33626 \r
33627                                 IFE WCH,<IFN RIMSW,<\r
33628                                 ERR8A:  MOVEI   T4,ERR382\r
33629                                         JRST    E10B\r
33630                                 ERR3B:  MOVEI   T4,ERR381\r
33631                                         JRST    E10B>>\r
33632 \r
33633         001751' 201340  002053' ERR10:  MOVEI   T4,E10A\r
33634         001752' 336000  004052' E10B:   SKIPN   ZRF\r
33635         001753' 254000  001757'         SKIP    3\r
33636         001754' 265040  002155'         ERRPNT  </?File />\r
33637         001755' 376155  166312\r
33638         001756' 200000  000000\r
33639         001757' 201140  004052'         MOVEI T3,ZRF\r
33640         001760' 260240  001146'         PUSHJ P,FN.EX\r
33641         001761' 254007  000000          JRST    (T4)\r
33642 \r
33643                                 IFE WCH,<IFN RIMSW,<\r
33644                                 ERR381: ERRPN2  </illegal extension!/>\r
33645                                 \r
33646                                 ERR382: ERRPN2  </illegal format!/>\r
33647                                 \r
33648                                 ERR5B:  ERRPN2  </? DTA to PTP only!/>>>\r
33649 \r
33650         001762' 265040  002155' ERR9:   ERRPNT  </?/>\r
33651         001763' 374000  000000\r
33652         001764' 201140  004044'         MOVEI T3,DTON\r
33653         001765' 260240  001146'         PUSHJ P,FN.EX\r
33654         001766' 254000  002033'         JRST    ERR4B\r
33655 \r
33656 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 41\r
33657 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33658 \r
33659         001767' 334100  004634' ERR1:   SKIPA T2,ODEV   ;OUTPUT UNAVAILABLE\r
33660         001770' 200100  004637' ERR1A:  MOVE T2,DEVICE  ;INPUT UNAVAILABLE\r
33661         001771' 265040  002155' ERR1B:  ERRPNT  </?Device />\r
33662         001772' 376114  573322\r
33663         001773' 617124  000000\r
33664         001774' 260240  002201'         PUSHJ   P,P6BIT\r
33665         001775' 000000  000002                  T2\r
33666         001776' 265040  002166'         ERRPN2  </ not available!/>\r
33667         001777' 203355  772100\r
33668         002000' 607554  164730\r
33669         002001' 607055  462502\r
33670         002002' 000000  000000\r
33671         002003'                 ERR3:\r
33672                                 IFN FTDSK,<TRNE AUXFLG,DSKIN\r
33673                                         JRST DERR5      ;ERR ON DSK>\r
33674         002003' 260240  002005'         PUSHJ P,ERR3A\r
33675         002004' 254000  001107'         JRST IOERRN     ;EXIT\r
33676         002005' 661540  000100  ERR3A:  TLO AUXFLG,INFOFL       ;SIGNAL RETURN TO ERR3AA\r
33677         002006' 254000  002711'         JRST INFO\r
33678         002007' 265040  002166' ERR3AA: ERRPN2  </? No file named />\r
33679         002010' 375011  667500\r
33680         002011' 633235  462500\r
33681         002012' 673035  562710\r
33682         002013' 200000  000000\r
33683         002014' 201140  004040'         MOVEI   T3,FILNAM\r
33684         002015' 260240  001146'         PUSHJ   P,FN.EX ;PRINT NAME OF FILE THAT CANNOT BE FOUND\r
33685         002016' 260240  002735'         PUSHJ   P,INFO2         ;OUTPUT MESS. WITH CR-LF\r
33686         002017' 606540  101000          TRNN    AUXFLG,TTYIN!TTYOUT     ;WAS TTY IN USE?\r
33687         002020' 263240  000000          POPJ    P,              ;NO\r
33688         002021' 602540  001000          TRNE    AUXFLG,TTYIN    ;INPUT DEVICE?\r
33689         002022' 254000  000426'         JRST    ININIT          ;YES ,RE-INIT\r
33690         002023' 254000  000223'         JRST    OMODE           ;MUST BE OUTPUT\r
33691 \r
33692         002024' 336000  004044' ERR4:   SKIPN DTON\r
33693         002025' 254000  002033'         JRST ERR4A\r
33694                                 IFN FTDSK,<TRNE AUXFLG,DSKOUT   ;ERR ON DSK\r
33695                                         JRST DERR6>\r
33696         002026' 265040  002155'         ERRPNT  </? Directory full!/>\r
33697         002027' 375010  464744\r
33698         002030' 627076  467744\r
33699         002031' 745014  672730\r
33700         002032' 661020  000000\r
33701         002033'                 ERR4A:\r
33702                                 IFN FTDSK,<TRNE AUXFLG,DSKOUT\r
33703                                         JRST ERR4C>\r
33704         002033' 265040  002155' ERR4B:  ERRPNT  </?Illegal file name!/>\r
33705         002034' 376235  466312\r
33706         002035' 637035  420314\r
33707         002036' 647314  520334\r
33708         002037' 607334  520400\r
33709                                 IFN FTDSK,<\r
33710                                 ERR4C:  ERRPNT  </?(0) Illegal file name!/>>\r
33711 \r
33712 \r
33713 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 41-1\r
33714 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33715 \r
33716         002040'                 ERR6:\r
33717         002040' 265040  002155' ERR6A:  ERRPNT  </?PIP command error!/>\r
33718         002041' 376411  150100\r
33719         002042' 617375  566702\r
33720         002043' 673104  062744\r
33721         002044' 713376  220400\r
33722 \r
33723         002045' 265040  002155' ERR6B:  ERRPNT  </?PIP command too long!/>\r
33724         002046' 376411  150100\r
33725         002047' 617375  566702\r
33726         002050' 673104  072336\r
33727         002051' 675015  467734\r
33728         002052' 635020  000000\r
33729 \r
33730         002053' 265040  002166' E10A:   ERRPN2  </ line too long!/>\r
33731         002054' 203315  167312\r
33732         002055' 203515  767500\r
33733         002056' 663375  663502\r
33734         002057' 000000  000000\r
33735         002060' 265040  002155' ERR5A:  ERRPNT  </?Too many input devices!/>\r
33736         002061' 376515  767500\r
33737         002062' 667035  674500\r
33738         002063' 647356  072750\r
33739         002064' 203114  573322\r
33740         002065' 617136  320400\r
33741                                 ;FILE MANIPULATION COMMANDS TO NON-DIRECTORY DEVICES COME HERE\r
33742 \r
33743         002066' 265040  002155' ERR5:   ERRPNT  </?Disk or DECtape input required!/>\r
33744         002067' 376115  171726\r
33745         002070' 203376  220210\r
33746         002071' 426076  460740\r
33747         002072' 625015  167340\r
33748         002073' 727504  071312\r
33749         002074' 707535  171312\r
33750         002075' 621020  000000\r
33751         002076' 265040  002155' ERR2:   ERRPNT </?Incorrect Project-Programmer number!/>\r
33752         002077' 376235  661736\r
33753         002100' 713454  561750\r
33754         002101' 202416  267724\r
33755         002102' 627076  426640\r
33756         002103' 713374  771302\r
33757         002104' 667334  571100\r
33758         002105' 673535  561312\r
33759         002106' 711020  000000\r
33760         002107' 265040  002155' ERR2A:  ERRPNX  </?Illegal protection!/>\r
33761         002110' 376235  466312\r
33762         002111' 637035  420340\r
33763         002112' 713376  462706\r
33764         002113' 723235  767102\r
33765         002114' 000000  000000\r
33766                                 IFE BLOC0,<\r
33767         002115' 265040  002155' ERR7A:  ERRPNT  <Z?DECtape I/O only!Z>>\r
33768         002116' 376110  541750\r
33769 \r
33770 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 41-2\r
33771 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33772 \r
33773         002117' 607414  520222\r
33774         002120' 276364  067734\r
33775         002121' 663624  100000\r
33776 \r
33777         002122' 265040  002155' ERR8:   ERRPNT  </?Explicit output device required!/>\r
33778         002123' 376137  070330\r
33779         002124' 647075  172100\r
33780         002125' 677536  470352\r
33781         002126' 721014  462754\r
33782         002127' 647074  520344\r
33783         002130' 627436  564744\r
33784         002131' 627104  100000\r
33785 \r
33786 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 42\r
33787 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33788 \r
33789 \r
33790                                 ;ROUTINE TO CHECK INPUT DEV, SET XXXIN.E.G.DTAIN\r
33791 \r
33792         002132' 200000  004637' CHECK1: MOVE 0,DEVICE   ;INPUT DEVICE NAME TO AC 0\r
33793         002133' 322000  002152'         JUMPE 0,CHECK   ;IGNORE IF NO INPUT DEVICE\r
33794                                 IFN FTDSK,<PUSHJ        P,PSYSP ; STR# 10-3178>\r
33795         002134' 047000  000004          DEVCHR          ;GET INPUT DEVCHR\r
33796                                 IFN FTDSK,<TLNN 0,DSKBIT ;INPUT DEVICE DISK?\r
33797                                         JRST CHECK2     ;NO\r
33798                                         TRO AUXFLG,DSKIN;INPUT DEVICE IS DSK, SET BIT\r
33799                                         MOVE    T1,DEVICE\r
33800                                         CAMN    T1,[SIXBIT/SYS/]        ; INIT SYS AS DSK\r
33801                                         MOVSI   T1,(SIXBIT/DSK/)\r
33802                                         MOVEM   T1,ADSK\r
33803                                         JRST    CHECK>\r
33804 \r
33805         002135' 322000  000525' CHECK2: JUMPE 0,DEVER1  ;NON-EX. DEVICE\r
33806 \r
33807         002136' 607000  000002          TLNN 0,INBIT    ;CAN DEVICE DO INPUT?\r
33808         002137' 254000  002040'         JRST ERR6A      ;NO, COMMD ERROR\r
33809 \r
33810         002140' 603000  000200          TLNE 0,PTRBIT   ;PAPER TAPE READER?\r
33811         002141' 660540  200000          TRO AUXFLG,PPTIN;YES\r
33812 \r
33813         002142' 603000  000004          TLNE 0,DTABIT   ;DECTAPE?\r
33814         002143' 660540  020000          TRO AUXFLG,DTAIN\r
33815 \r
33816         002144' 603000  000020          TLNE 0,MTABIT   ;MAGTAPE?\r
33817         002145' 660540  000400          TRO AUXFLG, MTAIN\r
33818 \r
33819         002146' 603000  100000          TLNE CDRBIT     ;CARD READER?\r
33820         002147' 660540  000100          TRO AUXFLG,CDRIN\r
33821 \r
33822         002150' 603000  000010          TLNE 0,TTYBIT   ;TELETYPE?\r
33823         002151' 660540  001000          TRO AUXFLG,TTYIN\r
33824 \r
33825         002152' 602740  001000  CHECK:  TRNE    CALFLG,SSWTCH   ;_FLAG STILL ON?\r
33826         002153' 254000  002040'         JRST ERR6A      ; YES ,COMMAND ERROR\r
33827         002154' 263240  000000          POPJ P,         ; NO, RETURN \r
33828 \r
33829 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 43\r
33830 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33831 \r
33832                                 ;SUBR TO PRINT ERROR MESSAGES\r
33833                                 ;! MARKS THE END OF MESSAGE & SIGNALS GO TO PIP2\r
33834                                 ;NULL IS A FLAG TO RETURN TO THE NEXT LOCATION\r
33835 \r
33836         002155'                 PRETXT: \r
33837         002155' 071240  000000  PTEXT:  RELEAS DIR,     ;RELEASE DIRECTORY DEVICE\r
33838 \r
33839         002156' 071200  000000          RELEAS TAPE,    ;RELEASE MAGTAPE\r
33840         002157' 071100  000000          RELEAS OUT,     ;LET GO OF BOTH OUTPUT AND\r
33841         002160' 071140  000000          RELEAS IN,      ;INPUT DEVICES\r
33842         002161' 265440  000541'         JSP T5,INICN1   ;INITIALIZE THE TTY\r
33843         002162' 201000  000015          MOVEI   0,CR\r
33844         002163' 136000  003757'         IDPB    0,TFO+1 ;OUTPUT A CR-LF\r
33845         002164' 201000  000012          MOVEI   0,LF\r
33846         002165' 136000  003757'         IDPB    0,TFO+1 ;FOR BATCH\r
33847         002166' 505040  440700  PTEXT2: HRLI T1,440700  ;GET SET TO SCAN 7-BIT DATA\r
33848         002167' 134000  000001  PTEXT1: ILDB 0,T1       ;GET CHAR OF ERR MESSAGE\r
33849         002170' 322001  000001          JUMPE 0,1(T1)   ;RETURN ON ZERO\r
33850         002171' 306000  000041          CAIN 0,"!"      ;!?\r
33851         002172' 254000  000013'         JRST PIP2       ;YES, END OF MESSAGE, APPEND CAR.RET., LF\r
33852         002173' 136000  003757'         IDPB 0,TFO+1    ;DEPOSIT CHAR IN OUTBUFFER\r
33853         002174' 254000  002167'         JRST PTEXT1     ;GET NEXT CHAR\r
33854 \r
33855                                 ;ROUTINE TO DEPOSIT CHARACTER IN TTY OUT BUFFER\r
33856 \r
33857         002175' 377000  003760' PUTCON: SOSG TFO+2      ;STORED MORE THAN BUFFER HOLDS?\r
33858         002176' 067040  000000          OUTPUT CON,     ;YES\r
33859         002177' 136200  003757'         IDPB CHR,TFO+1\r
33860         002200' 263240  000000          POPJ P,\r
33861 \r
33862                                 ;ROUTINE TO CONVERT ONE WORD OF SIXBIT\r
33863                                 ;FROM ADDRESS IN LOCATION AFTER CALL AND DEPOSIT INTO TTY OUT BUFFER\r
33864 \r
33865         002201' 200065  000000  P6BIT:  MOVE T1,@(P)    ;PICK UP WORD OF 6-BIT\r
33866         002202' 505040  440600          HRLI T1,440600  ;SET UP POINTER\r
33867         002203' 134200  000001  P6BIT1: ILDB CHR,T1\r
33868         002204' 322200  002207'         JUMPE CHR,P6BIT2\r
33869         002205' 271200  000040          ADDI CHR,40\r
33870         002206' 260240  002175'         PUSHJ P,PUTCON  ;DEPOSIT IN TTY\r
33871         002207' 603040  770000  P6BIT2: TLNE T1,770000  ;DONE SIX?\r
33872         002210' 254000  002203'         JRST P6BIT1     ;NO\r
33873         002211' 254000  001707'         JRST CPOPJ1     ;SKIP RETURN\r
33874 \r
33875 \r
33876 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 44\r
33877 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33878 \r
33879                                 ;ROUTINE TO CLEAR DSK OR DTA DIRECTORY (/Z SWITCH)\r
33880 \r
33881         002212' 606740  000200  DTCLR:  TRNN    CALFLG,DVSWTH   ;HAS A DEVICE BEEN SEEN?\r
33882         002213' 254000  002122'         JRST    ERR8            ;NO,SO DON'T SCREW USER\r
33883                                 IFN FTDSK,<TRNE AUXFLG,DSKOUT   ;CLEAR DSK OR DTA DIR.\r
33884                                         JRST DSKZRO>\r
33885         002214' 606540  004000          TRNN AUXFLG,DTAOUT      ;MUST BE DTA\r
33886         002215' 254000  002066'         JRST ERR5\r
33887         002216' 047100  000013          UTPCLR  OUT,            ;CLEAR DIRECTORY\r
33888         002217' 263240  000000          POPJ P,\r
33889 \r
33890 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 45\r
33891 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33892 \r
33893                                 ;ROUTINE TO SET UP TO COPY EVERYTHING\r
33894 \r
33895         002220' 260240  000426' PRECOP: PUSHJ   P,ININIT        ;INIT INPUT FILE\r
33896         002221' 606540  020000          TRNN    AUXFLG,DTAIN    ;DECTAPE INPUT\r
33897         002222' 254000  002225'         SKIP    2               ;NO\r
33898         002223' 260240  003272'         PUSHJ   P,DTCH2         ;YES, GET DIRECT, SET POINTERS TO DIRECT\r
33899 \r
33900         002224' 260240  002702' DTCOPY: PUSHJ   P,DTADI1        ;START (T5)\r
33901                                 IFN FTDSK,<TRNE AUXFLG,DSKIN    ;DSK INPUT. ENTER HERE FROM DTD2\r
33902                                         PUSHJ   P,DSKDIR        ;YES, PREPARE TO LOOKUP FILES>\r
33903         002225' 402000  004034' COPY1A: SETZM   ZCNT            ;CLEAR COUNT FOR DSK ZERO REQUESTS\r
33904         002226' 201100  000006          MOVEI   T2,6            ;FILL 0 CHARS. IN DEST-FILE\r
33905         002227' 200040  004700'         MOVE    T1,[POINT 6,DTON]       ;NAME WITH X'S. THIS IS\r
33906         002230' 134000  000001  XSS:    ILDB    0,T1            ;THEN THE BASE FOR GENERATED\r
33907         002231' 326000  002233'         JUMPN   0,.+2           ;DESTINATION FILES FROM\r
33908         002232' 201000  000070          MOVEI   0,"X"-40        ;NON-DIR. DEVICES IN /X\r
33909         002233' 137000  000001          DPB     0,T1\r
33910         002234' 367100  002230'         SOJG    T2,XSS          ;DON'T YET KNOW IF ONE\r
33911                                                                 ;OF THE INPUT DEV. WILL\r
33912         002235' 200000  004044'         MOVE    0,DTON          ;BE NON-DIR\r
33913         002236' 202000  004021'         MOVEM   0,DTONSV\r
33914         002237' 200000  004045'         MOVE    0,DTON+1\r
33915         002240' 202000  004022'         MOVEM   0,DTONSV+1\r
33916 \r
33917         002241' 260240  002371' COPY1:  PUSHJ   P,SR2           ;SET INIT. COPYING MODE\r
33918         002242' 260240  002566'         PUSHJ   P,LOOK          ;GET A FILE TO COPY\r
33919         002243' 254000  002317'         JRST    CAL6            ;NO MORE\r
33920                                 IFN FTDSK<PUSHJ P,XDDSK         ;GOT ONE, CHECK (XD) FROM DSK, NAMTAB\r
33921                                         JRST    COPY1           ;IN LIST, DON'T COPY>\r
33922         002244' 606540  201500          TRNN    AUXFLG,MTAIN+PPTIN+CDRIN+TTYIN  ;OK, COPY FILE\r
33923         002245' 254000  002250'         JRST    COPY6A          ;MUST BE DIRECTORY DEVICE\r
33924         002246' 260240  002337'         PUSHJ   P,MTPTCR        ;SET UP A DEST. FN.\r
33925         002247' 254000  002252'         JRST    COPY6\r
33926 \r
33927 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 46\r
33928 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33929 \r
33930         002250' 076140  004052' COPY6A: LOOKUP  IN,ZRF          ;LOOKUP INPUT FILE NAME\r
33931         002251' 254000  002315'         JRST    CAL5            ;INPUT FILE FILE PROTECTED\r
33932         002252' 260240  003353' COPY6:  PUSHJ   P,FILTYP        ;CHECK FOR DMP,SAV,REL,CHN\r
33933                                 IFN WCH,<\r
33934                                         TRNN    AUXFLG,DTAIN+DTAOUT\r
33935                                         JRST    .+5\r
33936                                         HLRZ    0,ZRF+1\r
33937                                         CAIE    0,(SIXBIT /DMP/)\r
33938                                 IFN DISK30,<CAIN 0,(SIXBIT/SVE/)>\r
33939                                 IFE DISK30,<CAIN 0,(SIXBIT/SAV/)>\r
33940                                         JRST    COPY1>\r
33941         002253' 260240  002323'         PUSHJ   P,COPY3\r
33942         002254' 200000  004052' COPY6B: MOVE    0,ZRF           ;INPUT FILE NAME\r
33943         002255' 202000  004044'         MOVEM   0,DTON          ;IS OUTPUT FILE NAME\r
33944         002256' 510000  004053'         HLLZ    0,ZRF+1         ;LIKEWISE EXT\r
33945         002257' 512000  004045'         HLLZM   0,DTON+1\r
33946 \r
33947                                 ;THIS CODE OPERATES AS FOLLOWS - FOR E+2, SET = 0\r
33948                                 ;TO START (ASSUMING /X)\r
33949                                 ;DSK TO DSK IF EDIT SWITCHES PUT E+2 = 0 IF NO EDITS TRANSFER\r
33950                                 ;       DATE, TIME, BITS 13-35\r
33951                                 ;DSK TO DTA FOR EDITS E+2 = 0, NO EDITS TRANSFER 24-35 FOR\r
33952                                 ;DATE, FOR"SAV" FILES TRANSLATE NO.  1K BLOCKS\r
33953                                 ;DTA TO DSK FOR NO EDITS XFER BITS 24-35, ELSE E+2 = 0\r
33954                                 ;DTA TO DTA ALWAYS XFER 18-23, (1K BLOCK) NO EDITS XFER 24-35(DATE)\r
33955 \r
33956         002260' 402000  004046'         SETZM   DTON+2          ;CLEAR DATE. OUTPUT FILE, DSK/DTA\r
33957         002261' 135000  003717'         LDB     0,DATE          ;GET DSK/DTA DATE CREATED\r
33958         002262' 616300  004701'         TDNN    FLAG,[XWD PFLG,LINE+TBMOD+NSMOD+SQMOD+SPMOD]\r
33959         002263' 603540  000040          TLNE    AUXFLG,CDRFLG\r
33960         002264' 254000  002266'         JRST    COPY6C\r
33961         002265' 137000  003720'         DPB     0,DATED         ;DEPOSIT IF NO EDITS\r
33962                                 IFN FTDSK,<LDB  0,TIME\r
33963                                         TRC     AUXFLG,DSKIN+DSKOUT\r
33964                                         TRCN    AUXFLG,DSKIN+DSKOUT\r
33965                                         DPB     0,TIMED         ;DSK TO DSK TIME>\r
33966         002266'                 COPY6C: IFE WCH,<\r
33967         002266' 260240  002412'         PUSHJ   P,OKBLKS        ;SETUP 1K BLOCKS>\r
33968         002267' 077100  004044'         ENTER   OUT,DTON        ;GOT DATA, CREATE NEW FILE\r
33969         002270' 254000  002024'         JRST    ERR4            ;DIRECTORY FULL\r
33970         002271' 200000  003721'         MOVE    0,ZRO           ;GET ASCII/00000/AND\r
33971         002272' 202000  004014'         MOVEM   0,SQNUM         ;RESET SEQUENCE NO.\r
33972         002273' 661300  000020          TLO     FLAG,NEWFIL     ;SET NEW FILE FLAG\r
33973         002274' 402000  004026'         SETZM   TOTBRK          ;CLEAR PAREN COUNTER\r
33974         002275' 607540  000044          TLNN    AUXFLG,CDRFLG+SBIN      ;SPECIAL PROCESSING?\r
33975         002276' 612300  004702'         TDNE    FLAG,[XWD PFLG+IFLG+IBFLG,LINE+BMOD+TBMOD+NSMOD+SQMOD+SPMOD]    \r
33976         002277' 254000  000343'         JRST    PSCAN           ;YES, DO IT\r
33977         002300' 375000  003744' COPY5:  SOSGE   IBF+2           ;INPUT BUFFER EMPTY?\r
33978         002301' 254000  002305'         JRST    COPY4           ;YES\r
33979         002302' 134200  003743'         ILDB    CHR,IBF+1       ;GET NEXT WORD AND\r
33980         002303' 260240  000756'         PUSHJ   P,PUT           ;OUTPUT IT\r
33981         002304' 254000  002300'         JRST    COPY5\r
33982         002305' 260240  002323' COPY4:  PUSHJ   P,COPY3         ;GET NEXT FULL SOURCE BLOCK\r
33983 \r
33984 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 46-1\r
33985 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
33986 \r
33987         002306' 260240  000762'         PUSHJ   P,OUTP          ;OUTPUT PREV. BLOCK-DONT ALTER DATA\r
33988         002307' 350000  003747'         AOS     OBF+2           ;MAKE PUT HAPPY BECAUSE OF\r
33989         002310' 254000  002300'         JRST    COPY5           ;OUTPUT HERE.\r
33990         002311' 070140  000000  COPY2A: CLOSE   IN,\r
33991         002312' 070100  000000          CLOSE   OUT,\r
33992                                 IFN FTDSK,<TLNE  AUXFLG,NSPROT  ;NON-STANDARD PROTECTION?\r
33993                                         TRNN    AUXFLG,DSKOUT   ;RENAME ALL OUTPUT FILES IF\r
33994                                         JRST    COPY2B          ;NON-STANDARD PROTECTION\r
33995                                         MOVE    0,PROTS         ;GET NEW PROTECTION\r
33996                                         MOVEM   0,DTON+2\r
33997                                 \r
33998                                         RENAME  OUT,DTON        ;RENAME OUTPUT FILE\r
33999                                         JRST    DERR6>\r
34000         002313' 260240  000764' COPY2B: PUSHJ   P,OUTP1\r
34001         002314' 254000  002241'         JRST    COPY1           ;GO GET NEXT FILE\r
34002 \r
34003         002315' 350000  004034' CAL5:   AOS     ZCNT            ;INPUT FILE READ PROT.\r
34004         002316' 254000  002241'         JRST    COPY1           ;COUNT READ FAILURES\r
34005 \r
34006                                 ;NO MORE FILES TO COPY\r
34007 \r
34008         002317' 621540  000002  CAL6:   TLZ     AUXFLG,NSPROT\r
34009                                 IFN FTDSK,<     SKIPN   ZCNT    ;FILES READ PROTECTED ?>\r
34010         002320' 254000  000411'         JRST    MAIN1           ;NO\r
34011                                 IFN FTDSK,<MOVSI T4,(SIXBIT /X/)        ;YES,PRINT FAILURE DURING\r
34012                                         JRST    DSKZ5           ;/X REQUEST>\r
34013 \r
34014         002321' 332000  003744' COPY3B: SKIPE   IBF+2           ;EMPTY BLOCK?\r
34015         002322' 263240  000000          POPJ    P,              ;NO, RETURN\r
34016 \r
34017         002323' 260240  001616' COPY3:  PUSHJ   P,INP           ;READ NEXT BLOCK\r
34018         002324' 622540  002000          TRZE    AUXFLG,READ1\r
34019         002325' 260240  002376'         PUSHJ   P,TTYZ          ;END OF FILE FROM TTY?\r
34020         002326' 606400  020000          TRNN    IOS,EOFBIT      ;END OF FILE? IOS HAS STATUS BITS\r
34021         002327' 254000  002321'         JRST    COPY3B          ;NO.\r
34022         002330' 262240  000000          POP     P,0             ;FIND WHERE CALLED FROM\r
34023         002331' 553000  000000          HRRZS   0\r
34024         002332' 602540  201500          TRNE    AUXFLG,MTAIN+CDRIN+TTYIN+PPTIN\r
34025         002333' 302000  002254'         CAIE    0,COPY6B        ;DID WE COME FROM COPY6B-1\r
34026         002334' 254000  002311'         JRST    COPY2A          ;NO, EOF NOT FIRST DATA IN FILE \r
34027         002335' 620740  000037          TRZ   CALFLG,ALLCLF     ;END OF INFO ON NON-DIR. DEVICE\r
34028         002336' 254000  002241'         JRST    COPY1\r
34029 \r
34030 \r
34031 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 47\r
34032 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34033 \r
34034                                 ;CREATE DESTINATION FILE NAME. RANGE IS ...001 TO ...999\r
34035 \r
34036         002337' 350040  004051' MTPTCR: AOS T1,NO.\r
34037         002340' 303040  001747          CAILE T1,^D999\r
34038         002341' 254000  002350'         JRST MPC2\r
34039         002342' 260240  002362'         PUSHJ P,MTPTC1\r
34040         002343' 200000  004021'         MOVE 0,DTONSV   ;FILNAM=DTON IS ONLY WAY TO IDENTIFY\r
34041         002344' 202000  004052'         MOVEM 0,ZRF     ;INPUT FILE\r
34042         002345' 200000  004022'         MOVE 0,DTONSV+1\r
34043         002346' 202000  004053'         MOVEM 0,ZRF+1\r
34044         002347' 263240  000000          POPJ P,\r
34045         002350' 265040  002155' MPC2:   ERRPNT <Z?Terminate /X, max. of 999 files processed!Z>\r
34046         002351' 376514  571332\r
34047         002352' 647354  172312\r
34048         002353' 201373  026100\r
34049         002354' 667037  027100\r
34050         002355' 677144  034562\r
34051         002356' 345014  664730\r
34052         002357' 627464  070344\r
34053         002360' 677074  571746\r
34054         002361' 627104  100000\r
34055 \r
34056         002362' 201641  001750  MTPTC1: MOVEI DOUT,^D1000(T1)\r
34057         002363' 200040  004703'         MOVE T1,[POINT 6,DTONSV,17]\r
34058         002364' 265100  003235'         JSP T2,OUTDC1\r
34059         002365' 344100  001711'         AOJA T2,CPOPJ\r
34060         002366' 275200  000040          SUBI CHR,40\r
34061         002367' 136200  000001          IDPB CHR,T1\r
34062         002370' 263240  000000          POPJ P,\r
34063 \r
34064                                 ;ROUTINE TO RESTORE BYTE POINTERS TO INITED MODE\r
34065                                 ;FOR INPUT AND OUTPUT DEVICES\r
34066 \r
34067         002371' 200000  003740' SR2:    MOVE 0,SVIBF\r
34068         002372' 502000  003743'         HLLM 0,IBF+1\r
34069         002373' 200000  003741'         MOVE 0,SVOBF\r
34070         002374' 502000  003746'         HLLM 0,OBF+1\r
34071         002375' 263240  000000          POPJ P,\r
34072 \r
34073                                 ;ROUTINE TO SEE IF ^Z FIRST CHAR ON TTY\r
34074 \r
34075         002376' 606540  001000  TTYZ:   TRNN AUXFLG,TTYIN       ;SEE IF FIRST CHAR. IS ^Z\r
34076         002377' 263240  000000          POPJ P,                 ;NOT TTY INPUT\r
34077         002400' 550040  003743'         HRRZ T1,IBF+1           ;ON TTY\r
34078         002401' 554001  000001          HLRZ 0,1(T1)            ;GET FIRST CHARACTER\r
34079         002402' 620000  003777          TRZ     0,3777          ;CLEAR ANY OTHER CHAR.\r
34080         002403' 306000  150000          CAIN    0,(<CZ>B6)      ;IS IT ^Z?\r
34081         002404' 664400  020000          TROA    IOS,EOFBIT      ;YES,SET END OF FILE\r
34082         002405' 302000  104000          CAIE    0,(<XON>B6)     ;IS IT XON "^Q"\r
34083         002406' 263240  000000          POPJ    P,              ;NO\r
34084         002407' 205000  774000          MOVSI   0,(<DEL>B6)     ;A RUBOUT\r
34085         002410' 436001  000001          IORM    1(T1)           ;CLEAR "^Q" FROM BUFFER\r
34086         002411' 263240  000000          POPJ    P,              ;AND RETURN\r
34087 \r
34088 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 48\r
34089 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34090 \r
34091                                 IFE     WCH,<\r
34092                                 ;DTA TO DTA MAINTAIN BITS 18-23 OF E+2 IF SET\r
34093                                 ;DSK TO DSK NO TRANSLATION (E+2)\r
34094                                 ;DSK TO DTA TRANSLATE E+3 (LHS) INTO E+2 (18-23)\r
34095                                 ;DTA TO DSK NO TRANSLATION (E+2)\r
34096                                 ;THIS ROUTINE ENSURES "SAVE" FILES MAINTAIN\r
34097                                 ;CORRECT DATA FOR LOADING.  FOR DSK INPUT\r
34098                                 ;A "SAVE" FILE IS ONE WITH THE EXTENSION\r
34099                                 ;"SAV". E+3 = (-[(200XN)+NO. WDS IN LAST BLOCK]\r
34100                                 ;IN LHS TRANSLATE TO NO. 1K BLOCKS NEEDED\r
34101                                 ;TO LOAD FILE - BEFORE IT IS EXPANDED IN CORE.\r
34102 \r
34103         002412' 606740  020000  OKBLKS: TRNN    CALFLG,RXFLG    ;(RX)?\r
34104         002413' 254000  002422'         JRST    OKBLK0          ;NO\r
34105         002414' 200000  004647'         MOVE    0,MATCH         ;GET FILE NAME\r
34106         002415' 554040  004650'         HLRZ    T1,MATCH+1      ;AND EXT.\r
34107         002416' 312000  003730'         CAME    0,STAR          ;SKIP IF NAME IS "*"\r
34108         002417' 202000  004044'         MOVEM   0,DTON          ;OTHERWISE REPLACE NAME\r
34109         002420' 302040  120000          CAIE    T1,(SIXBIT /*/) ;SAME FOR EXT\r
34110         002421' 506040  004045'         HRLM    T1,DTON+1\r
34111         002422' 200000  004044' OKBLK0: MOVE    0,DTON          ;GET OUTPUT FILE NAME\r
34112         002423' 554040  004045'         HLRZ    T1,DTON+1       ;AND EXT\r
34113         002424' 302040  120000          CAIE    T1,(SIXBIT /*/) ;IS IT "*"\r
34114         002425' 316000  003730'         CAMN    0,STAR          ;IS IT "*"\r
34115         002426' 254000  002033'         JRST    ERR4B           ;YES, ERROR\r
34116 \r
34117                                 REPEAT 0,<                      ;NEEDS FIX TO TENDMP OR MONITOR\r
34118                                         TRNE    AUXFLG,DTAOUT   ;OUTPUT TO DTA?\r
34119                                         CAIE    T1,(SIXBIT /SAV/) ;AND A SAV FILE?\r
34120                                         SKIP    1               ;NO\r
34121                                         UGETF   OUT,0           ;SET TO FIRST FREE BLOCK\r
34122                                 >\r
34123 \r
34124                                 IFN FTDSK,<TRC  AUXFLG,DSKIN+DSKOUT     ;DSK I/O\r
34125                                         TRCN    AUXFLG,DSKIN+DSKOUT\r
34126                                         POPJ    P,                      ;YES, EXIT\r
34127                                         TRC     AUXFLG,DTAIN+DTAOUT     ;NO\r
34128                                         TRCE    AUXFLG,DTAIN+DTAOUT     ;DTA I/O\r
34129                                         JRST    OKBLK1                  ;NO>\r
34130         002427' 135000  003716'         LDB     0,OKB                   ;DTA I/O - 1K BLKS\r
34131         002430' 137000  003715'         DPB     0,OKBD                  ;DEPOSIT IN DTON\r
34132         002431' 263240  000000          POPJ    P,\r
34133 \r
34134                                 IFN FTDSK,<\r
34135                                 OKBLK1: TRC     AUXFLG,DTAIN+DSKOUT     ;DTA-TO-DSK\r
34136                                         TRCN    AUXFLG,DTAIN+DSKOUT\r
34137                                         POPJ    P,                      ;YES\r
34138                                         TRC     AUXFLG,DSKIN+DTAOUT     ;NO,DSK-TO-DTA?\r
34139                                         TRCE    AUXFLG,DSKIN+DTAOUT     ;NO\r
34140                                         POPJ    P,\r
34141                                         HLRZ    0,ZRF+1                 ;YES DSK-TO-DTA\r
34142                                 IFE DISK30,<\r
34143                                         CAIE    0,(SIXBIT /SAV/)        ;GET LOOKED UP EXT,(INPUT).\r
34144 \r
34145 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 48-1\r
34146 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34147 \r
34148                                         >\r
34149                                 IFN DISK30,<CAIE 0,SIXBIT /SVE/>\r
34150                                         POPJ    P,\r
34151                                         HLRO    T1,ZRF+3                ;EXTENSION=SAV\r
34152                                         MOVNS   T1                      ;WORD COUNT\r
34153                                         IDIVI   T1,2000                 ;DIVIDE BY 1K CORE(OCTAL LOCS.)\r
34154                                         JUMPN   T2,.+2\r
34155                                         SOJ     T1,                     ;N-1\r
34156                                         DPB     T1,OKBD\r
34157                                         POPJ    P,>>\r
34158 \r
34159 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 49\r
34160 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34161 \r
34162 \r
34163                                 IFN FTDSK,<\r
34164                                 ;ARE WE DOING (XD) FROM DSK? IF NOT, EXIT.\r
34165                                 ;SEE IF CURRENT FILE SELECTED IN ZRF IS IN THE\r
34166                                 ;LIST OF FILES NOT TO BE COPIED. (POPJ IF IT IS)\r
34167                                 \r
34168                                 XDDSK:  TRC     FLAG,XFLG+DFLG          ;COMPLEMENT\r
34169                                         TRCN    FLAG,XFLG+DFLG          ;RESET AND TEST\r
34170                                         TRNN    AUXFLG,DSKIN            ;/X AND /D WERE SET\r
34171                                         JRST    CPOPJ1                  ;NOT DSKIN SO COPY FILE\r
34172                                         HRROI   T1,-12                  ;SET TO LOOP NAMTAB\r
34173                                 XDDSK2: MOVE    T2,ZRF                  ;GET FILE NAME\r
34174                                         SKIPN   T3,NAMTAB+12(T1)        ;END OF TABLE ENTRIES?\r
34175                                         JRST    CPOPJ1                  ;YES, EXIT\r
34176                                         CAME    T2,T3                   ;FN IS * OR MATCH?\r
34177                                         CAMN    T3,STAR\r
34178                                         SKIP    1                       ;YES, * OR MATCH?\r
34179                                         JRST    XDDSK1                  ;NO MATCH\r
34180                                         HLLZ    T2,ZRF+1                ;GET EXT\r
34181                                         SKIPN   T3,NAMTAB+24(T1)        ;NO EXT MATCH WANTED\r
34182                                         POPJ    P,                      ;EXIT THEN\r
34183                                         CAME    T2,T3                   ;EXT IS * OR MATCH?\r
34184                                         CAMN    T3,STAR\r
34185                                         POPJ    P,                      ;FN EX MATCH, NO COPY\r
34186                                 XDDSK1: AOJL    T1,XDDSK2               ;TRY ANOTHER FOR MATCH\r
34187                                         JRST    CPOPJ1                  ;SEARCHED TABLE, NO MATCH>\r
34188 \r
34189 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 50\r
34190 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34191 \r
34192                                 ;ROUTINE TO DELETE OR RENAME FILES ON DTA OR DSK OR SET UP NAMTAB\r
34193                                 ;FOR (DX) (DISK ONLY)\r
34194 \r
34195         002432' 602300  002000  DTDELE: TRNE    FLAG,XFLG       ;/X\r
34196         002433' 254000  002443'         JRST    DELE1           ;YES\r
34197         002434' 606300  000010          TRNN    FLAG,DFLG       ;/D NEED EXPLICIT DEVICE\r
34198         002435' 254000  002440'         SKIP    2\r
34199         002436' 606740  000200          TRNN    CALFLG,DVSWTH   ;-1 IF DEVICE SEEN\r
34200         002437' 254000  002122'         JRST    ERR8            ;NO, ERROR\r
34201         002440' 200000  004634'         MOVE    0,ODEV          ;OUTPUT DEVICE\r
34202         002441' 202000  004637'         MOVEM   0,DEVICE        ;NO,SET DEVICE FOR INPUT\r
34203         002442' 202000  004050'         MOVEM   0,DEVA\r
34204         002443' 620540  261500  DELE1:  TRZ     AUXFLG,DTAIN+CDRIN+TTYIN+PPTIN+MTAIN+DSKIN\r
34205         002444' 260240  002132'         PUSHJ   P,CHECK1        ;RESET INPUT DEVICE DESCRP\r
34206         002445' 201000  003766'         MOVEI   0,NAMTAB        ;FOR /R GET NEW NAME\r
34207         002446' 505000  004044'         HRLI    0,DTON          ;SET TO BLT OUTPUT DIRECT ENTRY\r
34208         002447' 251000  003771'         BLT     0,NAMTAB+3      ;TO NAMTAB\r
34209 \r
34210         002450' 606540  060000          TRNN    AUXFLG,DTAIN+DSKIN\r
34211         002451' 254000  002066'         JRST    ERR5            ;NOT DTA OR DSK\r
34212         002452' 260240  002746'         PUSHJ   P,FNSET         ;SET UP CALFLG CORRECTLY\r
34213         002453' 602300  002000          TRNE    FLAG,XFLG       ;/X?\r
34214         002454' 254000  002456'         JRST    DTD1            ;YES, (DX). RX ILLEGAL\r
34215                                 IFN FTDSK,<TRNE AUXFLG,DSKOUT   ;NO, HAS TO BE /D OR /R\r
34216                                         JRST    DSKDR0          ;ON DSK>\r
34217         002455' 254000  002460'         JRST    DTADR           ;OR DTA\r
34218 \r
34219         002456'                 DTD1:\r
34220                                 IFN FTDSK,<TRNE AUXFLG,DSKIN    ;DSK INPUT?\r
34221                                         JRST    DTD1A           ;YES>\r
34222         002456' 260240  003271'         PUSHJ   P,DTCHECK       ;NO, HAS TO BE DTA, GET DIR\r
34223         002457' 254000  002466'         JRST    DELE3           ;DELETE, FILES FROM DIR\r
34224                                 IFN FTDSK,<\r
34225                                 DTD1A:  SETZM   NAMTAB          ;COLLECT NAMES FOR DX, DSK SOURCE\r
34226                                         MOVE    T1,[XWD NAMTAB,NAMTAB+1]\r
34227                                         BLT     T1,NAMTAB+23    ;FIRST CLEAR TABLE\r
34228                                         MOVEI   T1,NAMTAB       ;LOCATION OF NAMTAB\r
34229                                         MOVEM   T1,LOCNAM\r
34230                                 DTD4:   MOVE    0,FILNAM\r
34231                                         JUMPE   0,DTD4A         ;FN=0 ILLEGAL\r
34232                                         MOVE    T1,LOCNAM\r
34233                                         MOVEM   0,(T1)          ;STORE FILENAME FROM CS\r
34234                                         MOVE    0,FILEX         ;STORE FILE EXT\r
34235                                         MOVEM   0,12(T1)        ;TABLE FULL?\r
34236                                         MOVEI   T2,NAMTAB+11\r
34237                                         CAMN    T2,T1\r
34238                                         SOS     ESWTCH          ;YES\r
34239                                         SKIPE   ESWTCH          ;NO, END OF CS SCAN?\r
34240                                         JRST    DTD2            ;END OF NAME PROCESSING\r
34241                                         AOS     T1,LOCNAM       ;SET TO STORE IN NEXT SLOT NAMTAB\r
34242                                 DTD4B:  PUSHJ   P,DESCRP        ;NO, GET NEXT FILENAME FROM CS\r
34243                                         TRNE    CALFLG,NEWPP!NEWDEV\r
34244                                         JRST    ERR5A           ;ERROR, NEW DEV OR# PP\r
34245 \r
34246 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 50-1\r
34247 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34248 \r
34249                                         JRST    DTD4\r
34250                                 DTD4A:  PUSHJ   P,ERR3A\r
34251                                         JRST    DTD4B\r
34252                                 \r
34253                                 ;END OF CS OR NAMTAB FULL\r
34254                                 DTD2:   PUSHJ   P,ININIT        ;INIT INPUT FILE\r
34255                                         MOVEI   T1,1            ;SET TO RETURN DTCOPY+1\r
34256                                         JRST    DTD5>\r
34257 \r
34258 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 51\r
34259 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34260 \r
34261                                 ;ROUTINE TO DELETE OR RENAME FILES ON DTA\r
34262 \r
34263         002460' 260240  003271' DTADR:  PUSHJ   P,DTCHECK       ;GO GET DTA DIRECTORY\r
34264         002461' 200040  003742'         MOVE T1,IBF             ;CURRENT INPUT BUFFER\r
34265                                 IFN WCH,<\r
34266                                         USETO OUT,1             ;TRY TO WRITE OUTPUT TAPE\r
34267                                         >                       ;DETERMINE IF WRITE LOCKED\r
34268                                 IFE WCH,<\r
34269         002462' 075100  000144          USETO OUT,144>          ;THIS SHOULD GIVE ERROR MSG\r
34270         002463' 067101  000000          OUTPUT OUT,(T1)         ;IF DTA WRITE LOCKED\r
34271         002464' 260240  003271'         PUSHJ P,DTCHECK         ;GO GET DTA DIRECTORY\r
34272 \r
34273         002465' 260240  002711'         PUSHJ   P,INFO          ;WRITE "FILES DELETED/RENAME\r
34274 \r
34275                                 ;*********************************************************************\r
34276 \r
34277 \r
34278                                 ;LOOP TO DELETE/RENAME. FOR (DX) DELETE FILES FROM DTA DIR\r
34279                                 ;THEN USE REVISED DIRECTORY TO COPY ALL REMAINING FILES\r
34280 \r
34281 \r
34282         002466' 260240  002566' DELE3:  PUSHJ   P,LOOK          ;GET FILE TO DELETE OR RENAME FROM CS\r
34283         002467' 254000  002513'         JRST    DELE5           ;NO MORE FILES\r
34284         002470' 606300  002000          TRNN    FLAG,XFLG       ;/X?\r
34285         002471' 260240  002743'         PUSHJ   P,INFO3         ;PRINT FILENAME-EXT\r
34286         002472' 200040  004012'         MOVE    T1,DIRST        ;GOT A MATCH - PROCESS IT\r
34287         002473' 602300  000100          TRNE    FLAG,RFLG       ;AND IT IS AT (T5) IN (DTA) DIR\r
34288         002474' 254000  002522'         JRST    DTRNAM          ;RENAME\r
34289                                 IFN WCH,<\r
34290                                         SKIPA   T2,T1\r
34291                                         ADDI    T2,4\r
34292                                         SKIPE   4(T2)\r
34293                                         JRST    .-2\r
34294                                         HRLS    T1\r
34295                                         ADDI    T1,4            ;GET TO END OF NAMES\r
34296                                         MOVSS   T1              ;BLOCK UP DIR\r
34297                                         BLT     T1,-1(T2)       ;ZERO OUT LAST 4 WORDS\r
34298                                         SETZM   (T2)\r
34299                                         SETZM   1(T2)\r
34300                                         SETZM   2(T2)\r
34301                                         SETZM   3(T2)\r
34302                                         MOVE    T1,DIRST1\r
34303                                         MOVEM   T1,DIRST\r
34304                                         JRST    DELE3>\r
34305                                 IFE WCH,<\r
34306         002475' 402001  000000          SETZM   (T1)            ;DELETE FILENAME IN CORE DIRECT\r
34307         002476' 402001  000026          SETZM   26(T1)          ;DELETE EXT\r
34308         002477' 274040  004013'         SUB     T1,DIRST1       ;GET FILE "NUMBER" (POS IN DIRECT)\r
34309         002500' 201140  001102          MOVEI   T3,1102         ;TO LOOK AT ALL BLOCKS\r
34310         002501' 205100  440500          MOVSI   T2,(POINT 5,0)\r
34311         002502' 540100  004013'         HRR     T2,DIRST1       ;TO CALCULATE ADDRESS OF FIRST WORD\r
34312         002503' 275100  000122          SUBI    T2,122          ;OF BLOCK TABLE IN DIRECTORY\r
34313         002504' 363140  002466' DELE2:  SOJLE   T3,DELE3        ;LOOK AT 1101 BLOCKS\r
34314 \r
34315 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 51-1\r
34316 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34317 \r
34318         002505' 134000  000002          ILDB    0,T2            ;GET BLOCK NUMBER\r
34319         002506' 312000  000001          CAME    0,T1            ;IS IT SAME AS FILE "NUMBER"\r
34320         002507' 254000  002504'         JRST    DELE2           ;NO IGNORE\r
34321         002510' 400000  000000          SETZ    0,              ;FREE THE BLOCKS OF THIS FILE\r
34322         002511' 137000  000002          DPB     0,T2            ;CLEAR OUT BLOCK NUMBER\r
34323         002512' 254000  002504'         JRST    DELE2>          ;LOOP ON 1102 BLOCKS\r
34324         002513' 200040  003742' DELE5:  MOVE    T1,IBF          ;LOC OF INPUT BUFFER\r
34325         002514' 602300  002000          TRNE    FLAG,XFLG       ;DX SWITCH?\r
34326         002515' 254000  002543'         JRST    DTD6            ;YES, NOW MUST COPY REMAINING FILES\r
34327                                 IFN WCH,<\r
34328                                         USETO   OUT,1>\r
34329                                 IFE WCH,<\r
34330         002516' 075100  000144          USETO   OUT,144>\r
34331         002517' 067101  000000          OUTPUT  OUT,(T1)        ;OUTPUT DTA DIRECTORY\r
34332         002520' 071040  000000          RELEAS  CON,            ;OUTPUT DELETE OR RENAME INFO TO TTY\r
34333         002521' 254000  000415'         JRST    MAINB\r
34334 \r
34335 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 52\r
34336 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34337 \r
34338                                 ;ROUTINE TO RENAME FILE ON DECTAPE\r
34339 \r
34340         002522' 260240  002553' DTRNAM: PUSHJ   P,RENAME\r
34341         002523' 402000  004046'         SETZM   DTON+2          ;MAKE MONITOR SUPPLY\r
34342         002524' 402000  004047'         SETZM   DTON+3          ;DATE TIME\r
34343         002525' 076100  004044'         LOOKUP  OUT,DTON        ;LOOK UP FILENAME-EXT ON OUTPUT DEV\r
34344         002526' 254000  002530'         SKIP    1               ;NO FILE ALREADY OF DESTINATION NAME\r
34345         002527' 254000  002536'         JRST    DTRNM1\r
34346         002530' 200000  004044'         MOVE    0,DTON          ;RENAME, FILENAME\r
34347         002531' 322000  002466'         JUMPE   0,DELE3         ;BUT NOT IF ZERO\r
34348         002532' 202001  000000          MOVEM   0,(T1)          ;PUT IN DIRECTORY\r
34349         002533' 200000  004045'         MOVE    0,DTON+1        ;GET EXT\r
34350                                 IFE WCH,<\r
34351         002534' 502001  000026          HLLM    0,26(T1)>       ;RENAME, EXT\r
34352                                 IFN WCH,<\r
34353                                         HLLM    0,1(T1)>\r
34354         002535' 254000  002466'         JRST    DELE3\r
34355         002536' 550100  003742' DTRNM1: HRRZ    T2,IBF  ; GET PROTECTION DIR SLOT\r
34356         002537' 135000  004704'         LDB     0,[POINT 5,17(T2),14]\r
34357         002540' 302000  000036          CAIE    0,36            ; FILE PROTECTION ?\r
34358         002541' 254000  001762'         JRST    ERR9            ; NO,ILLEGAL FILE NAME\r
34359         002542' 254000  002466'         JRST    DELE3           ; RENAME DONE AT MAINB\r
34360 \r
34361                                 ;END OF LOOP\r
34362                                 ;*********************************************************************\r
34363                                 ;DX SWITCH ON, COPY ALL BUT SPECIFIED FILES. I.E. THOSE NOT DELETED\r
34364 \r
34365         002543' 201040  000000  DTD6:   MOVEI   T1,0            ;SET TO RETURN TO DTCOPY\r
34366         002544' 205000  120000  DTD5:   MOVSI   0,(SIXBIT /*/)\r
34367         002545' 202000  004040'         MOVEM   0,FILNAM        ;FORCE COPY-ALL\r
34368         002546' 202000  004041'         MOVEM   0,FILEX         ;BY MAKING FILE-EXT=*.*\r
34369         002547' 260240  002746'         PUSHJ   P,FNSET         ;FIND DETAILS OF FILE-EXT\r
34370         002550' 602540  020000          TRNE    AUXFLG,DTAIN    ;DTA INPUT\r
34371         002551' 260240  003277'         PUSHJ   P,DTCH1         ;INIT DIRST,DIRST1\r
34372                                 IFN RIMSW,      <\r
34373                                         TLNE    FLAG,RIMFLG     ;NO\r
34374                                         JRST    RIMTB\r
34375                                         >\r
34376         002552' 254001  002224'         JRST    DTCOPY(T1)\r
34377 \r
34378 \r
34379                                 ;SET UP OUTPUT DIRECTORY ENTRY FOR RENAME\r
34380                                 ;ONLY ONE FILE NAME ALLOWED, BUT MAY BE *.EXT OR FN.*\r
34381 \r
34382         002553' 331000  004134' RENAME: SKIPL   ESWTCH          ;SKIP IF CR,LF SEEN IN C.S.\r
34383         002554' 254000  002040'         JRST    ERR6A           ;ONLY 1 SOURCE FILE DESCRIPTOR ALLOWED\r
34384         002555' 554000  003767'         HLRZ    0,NAMTAB+1      ;GET EXT\r
34385         002556' 306000  120000          CAIN    0,(SIXBIT /*/)  ;USE SPEC. EXTENSION, BUT IF\r
34386         002557' 554000  004053'         HLRZ    0,ZRF+1         ;EXT.=*, USE SOURCE EXTENSION\r
34387         002560' 506000  004045'         HRLM    0,DTON+1        ;USE SPECIFIED EXT\r
34388         002561' 200100  003766'         MOVE    T2,NAMTAB       ;USE SPEC. FN, BUT IF\r
34389         002562' 316100  003730'         CAMN    T2,STAR         ;FN=* OR 0, USE SOURCE FILENAME\r
34390         002563' 200100  004052'         MOVE    T2,ZRF          ;SOURCE FILE NAME=DEST\r
34391 \r
34392 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 52-1\r
34393 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34394 \r
34395         002564' 202100  004044'         MOVEM   T2,DTON         ;USE SPECIFIED FILENAME\r
34396         002565' 263240  000000          POPJ    P,\r
34397 \r
34398 \r
34399 \r
34400 \r
34401 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 53\r
34402 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34403 \r
34404                                 ;THIS ROUTINE GETS NEXT FILENAME.EXT FROM CS\r
34405                                 ;THEN SEES IF ONE IN DIRECTORY MATCHES\r
34406                                 ;IF IT DOES - EXIT IS CPOPJ1\r
34407                                 ;NO-MORE-FN.EX-TO-HANDLE-EXIT IS POPJ\r
34408                                 ;PREPARE ZRF FOR A "LOOKUP" ON THE NEXT REQUESTED FILE.\r
34409 \r
34410         002566' 602740  000001  LOOK:   TRNE    CALFLG,FNEX     ;DOES FILNAM, FILEX CONTAIN\r
34411         002567' 254000  002572'         JRST    LOOK6           ;A FILE TO THINK ABOUT? YES\r
34412         002570' 260240  002767' LOOK01: PUSHJ   P,LOOKA         ;GET ONE (NOTE: DEVICE MAY ALTER)\r
34413         002571' 263240  000000          POPJ    P,              ;NONE, END OF CS\r
34414                                                                 ;RETURN SKIP FROM LOOKA\r
34415         002572' 200100  004041' LOOK6:  MOVE    T2,FILEX        ;GET FILE EXT INTO T2\r
34416         002573' 336040  004040'         SKIPN   T1,FILNAM       ;FILNAME AND EXT=0?\r
34417         002574' 332100  004041'         SKIPE   T2,FILEX\r
34418         002575' 254000  002577'         SKIP    1               ;EITHER FN OR EX N.E.0\r
34419         002576' 254000  002650'         JRST    LOOK7C          ;FN.EX=0, ONE FILE COPY\r
34420         002577' 312040  003730'         CAME    T1,STAR         ;FILNAME OR EXT=*?\r
34421         002600' 316100  003730'         CAMN    T2,STAR\r
34422         002601' 254000  002640'         JRST    LOOK7A          ;FN OR EX=*, MANY FILES \r
34423 \r
34424         002602' 602540  060000          TRNE    AUXFLG,DTAIN+DSKIN      ;DONT REQUIRE FILENAME\r
34425         002603' 322040  002616'         JUMPE   T1,LOOK6C       ;HERE FOR 0.EX,FN.EX OR FN.0,0.EX ILLEGAL\r
34426         002604' 620740  000001  LOOK7B: TRZ     CALFLG,FNEX     ;IF HERE, ONLY ONE FILE WAS ENTAILED IN REQUEST.\r
34427         002605' 606540  060000          TRNN    AUXFLG,DTAIN+DSKIN\r
34428         002606' 254000  002635'         JRST    LOOK4           ;GOT A FILE TO HANDLE\r
34429 \r
34430         002607' 260240  002662' LOOK8:  PUSHJ   P,PICUP         ;GET A FILE (ANY) FROM DIRECTORY\r
34431         002610' 254000  002623'         JRST    LOOK2           ;WE GOT A FILE, DOES IT MATCH?\r
34432         002611' 622740  000001          TRZE    CALFLG,FNEX     ;SEE IF A PARTIC. FILE WAS REQUESTED?\r
34433         002612' 254000  002620'         JRST    LOOK6D          ;NO\r
34434         002613' 254000  002616'         JRST    LOOK6C          ;YES\r
34435 \r
34436         002614' 260240  002005' LOOK6A: PUSHJ   P,ERR3A\r
34437         002615' 254000  001107'         JRST    IOERRN          ;NO RECOVERY\r
34438         002616' 260240  002005' LOOK6C: PUSHJ   P,ERR3A\r
34439         002617' 254000  002570'         JRST    LOOK01          ;GET NEXT FILE FROM CS\r
34440 \r
34441         002620' 626740  000040  LOOK6D: TRZN    CALFLG,ASTFLG   ;DID WE FIND AT LEAST ONE\r
34442         002621' 260240  002005'         PUSHJ   P,ERR3A         ;NO, PRINT MSG.\r
34443         002622' 254000  002566'         JRST    LOOK            ;GET NEXT FILE FROM CS\r
34444                                 ;CHECK IF FILE.EXT IN DIRECTORY MATCHES FILE TO /D,/R\r
34445                                 ;NOTE WE MAY HAVE *.EXT,FIL.*, OR *.*\r
34446 \r
34447 \r
34448         002623' 606740  000004  LOOK2:  TRNN    CALFLG,MATFN    ;SHOULD FILENAMES MATCH\r
34449         002624' 254000  002630'         JRST    LOOK3           ;NO\r
34450         002625' 200040  004040'         MOVE    T1,FILNAM       ;YES\r
34451         002626' 312040  004052'         CAME    T1,ZRF\r
34452         002627' 254000  002607'         JRST    LOOK8           ;NO MATCH\r
34453 \r
34454         002630' 606740  000002  LOOK3:  TRNN    CALFLG,MATEX    ;SHOULD EXTENSIONS MATCH\r
34455         002631' 254000  002635'         JRST    LOOK5           ;NO\r
34456         002632' 200040  004041'         MOVE    T1,FILEX        ;YES\r
34457 \r
34458 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 53-1\r
34459 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34460 \r
34461         002633' 312040  004053'         CAME    T1,ZRF+1\r
34462         002634' 254000  002607'         JRST    LOOK8           ;NO MATCH\r
34463                                 LOOK5:  IFN DISK30,<\r
34464                                         TRNN    AUXFLG,DSKIN    ;DSK INPUT?\r
34465                                         JRST    LOOK4           ;NO\r
34466                                         LDB     T1,UFDIN+1      ;PICKUP P-P# IN DIRECTORY\r
34467                                         HRRZM   T1,T2\r
34468                                         CAME    T2,MASK         ;COMPARE WITH OWN P-P#\r
34469                                         JRST    LOOK8           ;NO MATCH>\r
34470         002635' 660540  002000  LOOK4:  TRO     AUXFLG,READ1    ;READY FOR FIRST READ\r
34471         002636' 660740  000040          TRO     CALFLG,ASTFLG   ;FOUND A FILE *.EXT, F.*,*.*\r
34472         002637' 254000  001707'         JRST    CPOPJ1          ;MATCH OR NO CARES\r
34473 \r
34474                                 ;FILENAME OR EXT=*\r
34475         002640' 322100  002642' LOOK7A: JUMPE   T2,.+2          ;EXT=0?\r
34476         002641' 316100  003730'         CAMN    T2,STAR         ;NO,\r
34477         002642' 312040  003730'         CAME    T1,STAR\r
34478         002643' 254000  002645'         SKIP    1\r
34479         002644' 254000  002655'         JRST    LOOK1           ;*.* ALWAYS O.K. AND *\r
34480         002645' 606540  060000          TRNN    AUXFLG,DSKIN+DTAIN\r
34481         002646' 254000  002614'         JRST LOOK6A     ;*.A OR * ON NON-DIRECT DEV\r
34482         002647' 254000  002607'         JRST    LOOK8\r
34483 \r
34484         002650' 602540  060000  LOOK7C: TRNE    AUXFLG,DSKIN+DTAIN\r
34485         002651' 254000  002616'         JRST    LOOK6C          ;0.0 ON DIR DEVICE\r
34486         002652' 402000  004052'         SETZM   ZRF\r
34487         002653' 402000  004053'         SETZM   ZRF+1\r
34488         002654' 254000  002604'         JRST    LOOK7B          ;0.0 ON NON-DIR. DEV.\r
34489 \r
34490         002655' 602540  060000  LOOK1:  TRNE    AUXFLG,DTAIN+DSKIN\r
34491         002656' 254000  002607'         JRST    LOOK8\r
34492         002657' 402000  004052'         SETZM   ZRF\r
34493         002660' 402000  004053'         SETZM   ZRF+1\r
34494         002661' 254000  002635'         JRST    LOOK4\r
34495 \r
34496 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 54\r
34497 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34498 \r
34499                                 ;ROUTINE TO GET NEXT FILE NAME FROM DIRECTORY\r
34500                                 ;FILNAM, FILEX CONTAIN THE FILE NAME. EXT TO BE\r
34501                                 ;MATCHED WITH DIR. NAMES. PUT SUGGESTED FILE\r
34502                                 ;NAME EXT IN ZRF, ZRF+1 AND #P-P IN ZRF+3\r
34503                                 ;NOTE THAT WE HAVE TO HANDLE *.EXT,FILE.*\r
34504 \r
34505         002662'                 PICUP:\r
34506                                 IFN FTDSK,<TRNN AUXFLG,DSKIN    ;DSK INPUT?\r
34507                                         JRST    PICUP2          ;N0, DTA\r
34508                                         SOSLE   UFDIN+2         ;YES\r
34509                                         JRST    .+3\r
34510                                 PICUP1: PUSHJ   P,UIN           ;INPUT USER'S FILE DIRECTORY\r
34511                                         JRST    CPOPJ1          ;EOF ON DSK\r
34512                                         ILDB    0,UFDIN+1       ;PICK UP FILENAME\r
34513                                         JUMPE   0,PICUP1        ;IGNORE NULL\r
34514                                         MOVEM   0,ZRF           ;SET FILE NAME\r
34515                                         MOVE    0,FNPPN\r
34516                                         MOVEM   0,ZRF+3         ;SET DSK #P-P\r
34517                                         SOS     UFDIN+2         ;COUNT DOWN FOR NEXT TIME\r
34518                                         ILDB    0,UFDIN+1       ;SET FILE EX\r
34519                                         HLLZM   0,ZRF+1\r
34520                                 IFN DISK30,<\r
34521                                         IBP     UFDIN+1         ;INCREMENT POINTER TO GET PROJ,PROG #\r
34522                                         IBP     UFDIN+1>\r
34523                                         POPJ    P,>\r
34524 \r
34525         002662'                 PICUP2:\r
34526                                 IFN WCH,<\r
34527                                         MOVE    T5,DIRST        ;DIRST=LOC 4 FIRST TIME THRU\r
34528                                         ADDI    T5,4            ;CALCULATE FIRST/NEXT FILENAME\r
34529                                         MOVEM   T5,DIRST\r
34530                                         MOVE    0,(T5)\r
34531                                         JUMPE   0,CPOPJ1                ;NO MORE FILENAMES IN DIRECTORY\r
34532                                         MOVEM   0,ZRF\r
34533                                         MOVE    0,1(T5)>\r
34534                                 IFE WCH,<\r
34535         002662' 200140  004013'         MOVE    T3,DIRST1       ;SETUP TO CHECK ALL FILENAME SLOTS\r
34536         002663' 271140  000026          ADDI    T3,26           ;IN DIRECTORY (22 FILE NAMES)\r
34537         002664' 200440  004012'         MOVE    T5,DIRST        ;LOC OF FIRST/NEXT FILE\r
34538         002665' 271440  000001  PICUP4: ADDI    T5,1            ;\r
34539         002666' 313440  000003          CAMLE   T5,T3           ;END OF FILE SLOTS?\r
34540         002667' 254000  001707'         JRST    CPOPJ1          ;END OF FILE NAMES\r
34541         002670' 202440  004012'         MOVEM   T5,DIRST        ;NEXT SLOT TO LOOK AT\r
34542         002671' 200011  000000          MOVE    0,(T5)          ;GOT FILE NAME FROM DIRECT\r
34543         002672' 322000  002665'         JUMPE   0,PICUP4        ;IGNORE IF 0\r
34544         002673' 202000  004052'         MOVEM   0,ZRF\r
34545         002674' 200011  000026          MOVE    0,26(T5)>       ;GET EXT ETC\r
34546         002675' 512000  004053'         HLLZM   0,ZRF+1\r
34547         002676' 200000  004043'         MOVE    0,PP\r
34548         002677' 202000  004055'         MOVEM   0,ZRF+3\r
34549         002700' 263240  000000          POPJ    P,\r
34550 \r
34551 \r
34552 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 55\r
34553 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34554 \r
34555                                 ;READ DTA DIR. AND PREPARE T5 TO PICK UP FIRST ENTRY.\r
34556 \r
34557         002701' 260240  003272' DTADIR: PUSHJ   P,DTCH2         ;READ DTA DIR INTO INPUT BUF\r
34558         002702' 201140  004400' DTADI1: MOVEI   T3,DBUF         ;SET BLT FROM INBUF TO DBUF\r
34559         002703' 504140  000011          HRL     T3,T5           ;FIRST DATA WORD OF DIRECTORY IN T5\r
34560                                 IFN WCH,<\r
34561                                         MOVNS   T2\r
34562                                         BLT     T3,DBUF+176(T2)\r
34563                                         SETZM   DBUF+177(T2)\r
34564                                         MOVEI   T5,DBUF-4>\r
34565                                 IFE WCH,<\r
34566         002704' 251140  004576'         BLT     T3,DBUF+176     ;MOVE FROM INBUF TO DBUF\r
34567         002705' 201440  004522'         MOVEI   T5,DBUF+123-1>  ;LOC OF FIRST FILE NAME\r
34568         002706' 202440  004012'         MOVEM   T5,DIRST        ;T5 POINTS TO FILNAME JUST HANDLED\r
34569         002707' 202440  004013'         MOVEM   T5,DIRST1       ;TO RESTORE DIRST\r
34570         002710' 263240  000000          POPJ    P,              ;(IE NONE BUT NEXT WILL BE FIRST)\r
34571 \r
34572 \r
34573 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 56\r
34574 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34575 \r
34576 \r
34577                                 ;ROUTINE TO OUTPUT FILENAMES THAT WERE DELETED OR RENAMED\r
34578                                 ;PRINT "FILES DELETED:" OR "FILES RENAMED:"\r
34579                                 ;ALSO USED TO PRINT "NO FILE NAMED XXX.XXX"\r
34580 \r
34581 \r
34582         002711' 200040  003756' INFO:   MOVE    T1,TFO          ;SETUP TTY FOR OUTPUT\r
34583         002712' 200100  003753'         MOVE    T2,TFI          ;SAVE BUFFER LOCS\r
34584         002713' 260240  001410'         PUSHJ P,INICON          ;INIT TTY\r
34585         002714' 562100  003753'         HRROM   T2,TFI          ;SET BUFFER LOCS\r
34586         002715' 562040  003756'         HRROM   T1,TFO\r
34587         002716' 067040  000000          OUTPUT CON,\r
34588         002717' 623540  000100          TLZE    AUXFLG,INFOFL   ;ERROR PRINT ONLY?\r
34589         002720' 254000  002007'         JRST    ERR3AA          ;YES\r
34590         002721' 606300  000010          TRNN    FLAG,DFLG       ;DELETE?\r
34591         002722' 254000  002730'         JRST    INFO1           ;NO, MUST BE RENAME\r
34592         002723' 265040  002166'         ERRPN2  </Files deleted:/>\r
34593         002724' 433235  462746\r
34594         002725' 203114  566312\r
34595         002726' 723134  435000\r
34596         002727' 254000  002735'         JRST    INFO2\r
34597         002730' 476000  004651' INFO1:  SETOM   RENSN           ;DON'T PRINT IT TWICE\r
34598         002731' 265040  002166'         ERRPN2  </Files renamed:/>      ;RENAME (/R)\r
34599         002732' 433235  462746\r
34600         002733' 203454  567302\r
34601         002734' 667134  435000\r
34602         002735' 201200  000015  INFO2:  MOVEI   CHR,CR          ;OUTPUT CR/LF\r
34603         002736' 260240  002175'         PUSHJ   P,PUTCON        ;ON TTY\r
34604         002737' 201200  000012          MOVEI   CHR,LF\r
34605         002740' 260240  002175'         PUSHJ   P,PUTCON\r
34606         002741' 067040  000000          OUTPUT CON,\r
34607         002742' 263240  000000          POPJ    P,\r
34608 \r
34609                                 ;**********************************************************************\r
34610                                 ;PRINT FILENAME.EXT OR [P,P].UFD OF FILE DELETED\r
34611 \r
34612         002743' 201140  004052' INFO3:  MOVEI   T3,ZRF          ;LOCATION OF FILENAME\r
34613         002744' 260240  001146'         PUSHJ   P,FN.EX\r
34614         002745' 254000  002735'         JRST    INFO2\r
34615 \r
34616 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 57\r
34617 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34618 \r
34619                                 ;/X OR /D. FIND OUT DETAILS OF FILE NAME AND\r
34620                                 ;EXTENSION (0 FN.EX=*.*) AND ANY CHANGE IN\r
34621                                 ;SOURCE DEV. SET BITS IN CALFLG.\r
34622 \r
34623         002746' 620740  000037  FNSET:  TRZ     CALFLG,ALLCLF   ;CLEAR FLAGS ON ENTRY\r
34624         002747' 660740  000001          TRO     CALFLG,FNEX\r
34625         002750' 205000  120000          MOVSI   0,(SIXBIT /*/)  ;* TO AC0\r
34626         002751' 312000  004040'         CAME    0,FILNAM        ;FILNAM=* OR 0?\r
34627         002752' 336000  004040'         SKIPN   FILNAM\r
34628         002753' 254000  002755'         SKIP    1               ;FILENAME = * OR 0\r
34629         002754' 660740  000004          TRO     CALFLG,MATFN    ;FILENAME MUST BE MATCHED\r
34630         002755' 336000  004041'         SKIPN   FILEX           ;EXT=0?\r
34631         002756' 606540  201500          TRNN    AUXFLG, MTAIN+CDRIN+PPTIN+TTYIN ;YES\r
34632         002757' 316000  004041'         CAMN    0,FILEX         ;NO, EXT = *?\r
34633         002760' 254000  002762'         SKIP    1               ;YES\r
34634         002761' 660740  000002          TRO     CALFLG,MATEX    ;FILE EXTENSION MUST BE MATCHED\r
34635                                 IFN FTDSK,<TRNN    AUXFLG,DSKIN\r
34636                                         JRST    FNSET1\r
34637                                         SKIPN   T2,PP\r
34638                                         JRST    FNSET2          ;IF #P-P=0 IT IS COUNTED AS UNCHANGED\r
34639                                         CAME    T2,FNPPN\r
34640                                         TRO     CALFLG,NEWPP    ;CHANGE IN # P-P\r
34641                                         JRST    FNSET1\r
34642                                 FNSET2: MOVE    T2,FNPPN        ;IF P-P#=0, SET TO PREVIOUS VALUE\r
34643                                         MOVEM   T2,PP>\r
34644         002762' 200100  004637' FNSET1: MOVE    T2,DEVICE\r
34645         002763' 312100  004050'         CAME    T2,DEVA\r
34646         002764' 660740  000010          TRO     CALFLG,NEWDEV   ;CHANGE IN SOURCE DEV.\r
34647         002765' 202100  004050'         MOVEM   T2,DEVA         ;SET DEVA=DEVICE\r
34648         002766' 263240  000000          POPJ    P,\r
34649 \r
34650 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 58\r
34651 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34652 \r
34653                                 ;POPJ EXIT IF END OF COMMAND STRING, OTHERWISE RESET\r
34654                                 ;POINTER TO START OF DIRECTORY, READING IN NEW DIR.\r
34655                                 ;IF DEV OR #P-P CHANGED (EXIT CPOPJ1)\r
34656                                 ;IF DIR. IS ON DSK RESET BY REINIT.\r
34657 \r
34658         002767' 332340  004134' LOOKA:  SKIPE   T4,ESWTCH               ;MORE C.S.?\r
34659         002770' 263240  000000          POPJ    P,                      ;NO\r
34660         002771' 260240  000451'         PUSHJ   P,DESCRP                ;YES, GET NEXT FN.EX FROM CS\r
34661         002772' 260240  000204'         PUSHJ   P,INLOOK                ;CHECK FOR MTA REQUESTS, MODE\r
34662         002773' 260240  000154'         PUSHJ   P,M4                    ;CHECK FOR /I,/B,/H\r
34663         002774' 552340  004636'         HRRZM    T4,ININI1              ;SET MODE\r
34664         002775' 071240  000000          RELEAS  DIR,\r
34665         002776' 606540  201500          TRNN    AUXFLG,MTAIN+CDRIN+PPTIN+TTYIN  ;NON-DIR DEVICE?\r
34666         002777' 254000  003002'         JRST    LOOKF\r
34667 \r
34668         003000' 602740  000006          TRNE    CALFLG,MATEX!MATFN      ;YES, NO FN EX BUT *.* OR * ALLOWED\r
34669         003001' 254000  002040'         JRST    ERR6A\r
34670 \r
34671         003002' 606300  000010  LOOKF:  TRNN    FLAG,DFLG               ;FOR DELETE, ONE SOURCE FILE\r
34672         003003' 254000  003006'         JRST    LOOKB                   ;...\r
34673 \r
34674         003004' 602740  000030          TRNE    CALFLG,NEWDEV!NEWPP     ;ONLY IS PERMITTED\r
34675         003005' 254000  002060'         JRST    ERR5A\r
34676 \r
34677         003006' 606740  000030  LOOKB:  TRNN    CALFLG,NEWDEV!NEWPP     ;PREPARE TO LOOK FOR NEW FILE\r
34678         003007' 254000  003014'         JRST    LOOKC                   ;NAME AT HEAD OF DIRECTORY\r
34679 \r
34680         003010' 260240  000426'         PUSHJ   P,ININIT                ;INIT INPUT FILE\r
34681         003011' 606540  060000          TRNN    AUXFLG,DTAIN+DSKIN\r
34682         003012' 254000  001707'         JRST    CPOPJ1\r
34683                                 IFN FTDSK,<TRNN AUXFLG,DTAIN            ;DTA INPUT?\r
34684                                         JRST    LOOKD                   ;NO, MUST BE DSK>\r
34685         003013' 260240  002701'         PUSHJ   P,DTADIR                ;YES, READ IN DTA DIRECT\r
34686 \r
34687         003014'                 LOOKC:\r
34688                                 IFN FTDSK,<TRNE    AUXFLG,DSKIN         ;DSK INPUT?\r
34689                                         JRST    LOOKD                   ;YES>\r
34690         003014' 200440  004013'         MOVE    T5,DIRST1               ;NO, RESET DIRECTORY START\r
34691         003015' 202440  004012'         MOVEM   T5,DIRST\r
34692         003016' 254000  001707'         JRST    CPOPJ1\r
34693 \r
34694                                 IFN FTDSK,<\r
34695                                 LOOKD:  PUSHJ   P,DSKDIR                ;GET USER'S FILE DIRECTORY\r
34696                                         SETZM   UFDIN+2                 ;DSK DIR BUF EMPTY\r
34697                                         JRST    CPOPJ1>\r
34698 \r
34699 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 59\r
34700 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34701 \r
34702                                 ;ROUTINE TO LIST DTA OR DSK DIRECTORIES\r
34703 \r
34704 \r
34705         003017' 077100  004044' DTPDIR: ENTER   OUT,DTON        ;OUTPUT DEV,NROCT ENTRY\r
34706         003020' 254000  002024'         JRST    ERR4            ;DIRECTORY FULL\r
34707                                 IFN FTDSK,<TRNE    AUXFLG,FFLG  ;/F? SHORT FORM?\r
34708                                         SKIPE   DEVICE          ;INPUT DEVICE SPECIFIED?\r
34709                                         JRST    PDIR1A          ;YES\r
34710                                         MOVSI   0,(SIXBIT/DSK/)\r
34711                                         DEVCHR\r
34712                                         JUMPE   0,PDIR1A        ;NO DISK\r
34713                                         HRRZI   0,(SIXBIT /DSK/);ASSUME DSK IF NO DEVICE GIVEN\r
34714                                         HRLZM   0,DEVICE\r
34715                                         TROA   AUXFLG,DSKIN     ;SET DSK INPUT\r
34716                                 PDIR1A: TRNE    AUXFLG,DSKIN    ;DSK INPUT?\r
34717                                         JRST    DSKLST          ;YES, GO AND TRY TO LIST DSK>\r
34718         003021' 606540  020000          TRNN    AUXFLG,DTAIN    ;DECTAPE INPUT?\r
34719         003022' 254000  002066'         JRST    ERR5            ;NOT DSK OR DTA. ERROR\r
34720 \r
34721                                 ;ROUTINE TO LIST DTA DIRECTORY. /L OR /F SWITCH\r
34722 \r
34723         003023' 260240  003271' DTALST: PUSHJ   P,DTCHECK       ;CHECK FOR DTA INPUT-MUST BE DECTAPE AND\r
34724                                                                 ;GET DIRECTORY\r
34725         003024' 260240  003205'         PUSHJ   P,CRLF          ;PRINT NO. OF FREE BLOCKS LEFT\r
34726         003025' 135040  004705'         LDB     T1,[POINT 5,16(T5),14]\r
34727         003026' 302040  000036          CAIE    T1,36           ; SKIP DIR HEADER IF\r
34728         003027' 254000  003070'         JRST    PDIR1B          ; DECTAPE HAS NO PROTECTION\r
34729 U       003030' 334040  004706'         LSTLIN  HEDL1           ; PRINT HEADER\r
34730         003031' 260240  000756'\r
34731         003032' 134200  000001\r
34732         003033' 326200  003031'\r
34733         003034' 200100  003736'         MOVE    T2,DTAID\r
34734         003035' 322100  003055'         JUMPE   T2,DTALS4\r
34735         003036' 201100  000005          MOVEI   T2,5            ; CHARACTER COUNT\r
34736         003037' 200000  004707'         MOVE    0,[POINT 6,DTAID]\r
34737         003040' 134200  000000          ILDB    CHR,0           ; GET CLASSIFICATION\r
34738         003041' 302200  000023          CAIE    CHR,23          ; STD (I.E.=3) ?\r
34739         003042' 344100  003052'         AOJA    T2,DTALS3\r
34740         003043' 134200  000000  DTALS1: ILDB    CHR,0           ; GET NEXT DIGIT\r
34741         003044' 271200  000040          ADDI    CHR,40          ; CONVERT TO ASCII\r
34742         003045' 306200  000060          CAIN    CHR,"0"         ; SUPPRESS LEADING ZEROS\r
34743         003046' 367100  003043'         SOJG    T2,DTALS1\r
34744         003047' 260240  000756'         PUSHJ   P,PUT\r
34745         003050' 363100  003055' DTALS2: SOJLE   T2,DTALS4\r
34746         003051' 134200  000000          ILDB    CHR,0\r
34747         003052' 271200  000040  DTALS3: ADDI    CHR,40\r
34748         003053' 260240  000756'         PUSHJ   P,PUT\r
34749         003054' 254000  003050'         JRST    DTALS2\r
34750         003055' 201200  000133  DTALS4: MOVEI   CHR,"["\r
34751         003056' 260240  000756'         PUSHJ   P,PUT\r
34752         003057' 554640  003737'         HLRZ    DOUT,DIRPPN\r
34753         003060' 260240  003260'         PUSHJ   P,OUTDEC\r
34754 \r
34755 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 59-1\r
34756 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34757 \r
34758         003061' 201200  000054          MOVEI   CHR,","\r
34759         003062' 260240  000756'         PUSHJ   P,PUT\r
34760         003063' 550640  003737'         HRRZ    DOUT,DIRPPN\r
34761         003064' 260240  003260'         PUSHJ   P,OUTDEC\r
34762         003065' 201200  000135          MOVEI   CHR,"]"\r
34763         003066' 260240  000756'         PUSHJ   P,PUT\r
34764         003067' 260240  003205'         PUSHJ   P,CRLF\r
34765         003070'                 PDIR1B:\r
34766 \r
34767                                 IFN WCH,<\r
34768                                         MOVE    T1,IBF\r
34769                                         HLRZ    DOUT,1(T1)      ;GET FREE BLOCK POINTER\r
34770                                         MOVNS   DOUT\r
34771                                         ADDI    DOUT,1101       ;GET NO. OF FREE BLOCKS LESS FREE BLOCK NO.\r
34772                                         PUSHJ   P,OUTDEC        ;PRINT RESULT>\r
34773                                 IFE WCH,<\r
34774         003070' 400640  000000          SETZ   DOUT,            ;CLEAR NO. FREE BLOCKS\r
34775         003071' 201340  001102          MOVEI   T4,1102         ;OCTAL NO. OF BLOCKS ON DECTAPE\r
34776         003072' 205040  440500          MOVSI   T1,(POINT 5,0)  ;5 BIT BYTES\r
34777         003073' 550440  003742'         HRRZ    T5,IBF          ;CURRENT INPUT BUFFER\r
34778         003074' 271051  000001          ADDI    T1,1(T5)        ;POINTER TO 1ST DATA WORD IN DIRECT\r
34779 \r
34780 \r
34781         003075' 363340  003101' PDIR8:  SOJLE   T4,PDIR1        ;ALL THROUGH?\r
34782         003076' 134140  000001          ILDB    T3,T1           ;CALCULATE NO. OF FREE BLOCKS\r
34783         003077' 326140  003075'         JUMPN   T3,PDIR8\r
34784 \r
34785                                                                 ;THIS BLOCK FULL\r
34786         003100' 344640  003075'         AOJA    DOUT,PDIR8      ;COUNT NO. WITH ZERO IN\r
34787         003101' 260240  003260' PDIR1:  PUSHJ   P,OUTDEC        ;PRINT RESULT>\r
34788         003102' 200000  004710'         MOVE    0,[POINT 6,PDIR7]\r
34789         003103' 201100  000022          MOVEI   T2,^D18         ;SET LOOP TO DEPOSIT 18 CHARS\r
34790         003104' 260240  003211'         PUSHJ   P,PDIR2         ;PRINT "FREE BLOCKS LEFT" MESSAGE\r
34791         003105' 260240  003205'         PUSHJ   P,CRLF          ;CARRIAGE RET, LINEFEED\r
34792         003106' 260240  003277'         PUSHJ   P,DTCH1         ;FIX T5, TO POINT AT BEGIN OF DIR\r
34793 \r
34794 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 60\r
34795 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34796 \r
34797                                 ;LOOP TO EXAMINE FILE NAMES DTA DIRECTORY\r
34798         003107'                 PDIR4:\r
34799                                 IFE WCH,<\r
34800         003107' 336011  000123          SKIPN   123(T5)         ;NULL (=0) FILE NAME?\r
34801         003110' 254000  003200'         JRST    PDIR6           ;YES SO LOOK FOR ANOTHER>\r
34802                                 IFN WCH,<\r
34803                                         SKIPN   (T5)            ;NULL (=0) FILE NAME?\r
34804                                         JRST    MAIN1           ;YES, SO END OF DIR.>\r
34805         003111' 201100  000006          MOVEI   T2,6            ;TRANSMIT UP TO 6 CHARACTERS\r
34806         003112' 205000  440611          MOVSI   0,440600+T5     ;SET UP SOURCE BYTE POINTER\r
34807                                 IFE WCH,<\r
34808         003113' 541000  000123          HRRI    0,123>          ;SET TO PICK UP FILE NAME\r
34809         003114' 400340  000000          SETZ   T4,\r
34810                                 ;FOLLOWING CODE TO OUTPUT PROJ, PROG FILENAME\r
34811                                 ;*****************************************************************\r
34812                                 IFE WCH,<\r
34813         003115' 554211  000151          HLRZ    CHR,151(T5)     ;GET EXT\r
34814         003116' 302200  654644          CAIE    CHR,(SIXBIT/UFD/)       ;UFD?\r
34815         003117' 254000  003130'         JRST    PDIR4A          ;NO\r
34816 \r
34817         003120' 554651  000123          HLRZ    DOUT,123(T5)    ;PROJ NO.\r
34818         003121' 201100  000756'         MOVEI   T2,PUT\r
34819         003122' 260240  003235'         PUSHJ   P,OUTDC1\r
34820 \r
34821         003123' 201200  000054          MOVEI   CHR,COMMA       ;COMMA\r
34822         003124' 260240  000756'         PUSHJ   P,PUT\r
34823 \r
34824         003125' 550651  000123          HRRZ    DOUT,123(T5)    ;PROG NO.\r
34825         003126' 260240  003235'         PUSHJ   P,OUTDC1\r
34826         003127' 254000  003131'         JRST    PDIR4B\r
34827                                         >\r
34828                                 ;*********************************************************************\r
34829         003130' 260240  003211' PDIR4A: PUSHJ   P,PDIR2         ;OUTPUT 6-BIT DATA AND INCR DIRECTORY PTR\r
34830                                 IFE WCH,<\r
34831         003131' 510211  000151  PDIR4B: HLLZ    CHR,151(T5)>    ;PICK UP EXTENSION\r
34832                                 IFN WCH,<\r
34833                                         HLLZ    CHR,(T5)>\r
34834         003132' 205000  440611          MOVSI   0,440600+T5     ;SET BYTE POINTER\r
34835                                 IFE WCH,<\r
34836         003133' 541000  000151          HRRI    0,151>          ;PICK UP EXTENSION\r
34837         003134' 201100  000004          MOVEI   T2,4            ;PRINT UP TO 4 CHRS. (PERIOD+3*EXT)\r
34838         003135' 326200  003140'         JUMPN   CHR,.+3         ;EXTENSION NULL?\r
34839         003136' 260240  003214'         PUSHJ   P,PDIR2A+1      ;YES\r
34840         003137' 254000  003142'         SKIP    2               ;NO\r
34841         003140' 201200  000016          MOVEI   CHR,PERIOD-40   ;NO, SO PRINT A PERIOD\r
34842         003141' 260240  003213' PDIR3:  PUSHJ   P,PDIR2A        ;OUTPT 6 BIT OR INCR T5\r
34843                                 IFE WCH,<\r
34844         003142' 201200  000040          MOVEI   CHR,SPACE       ;OUTPUT 2 SPACES\r
34845         003143' 260240  000756'         PUSHJ   P,PUT\r
34846         003144' 260240  000756'         PUSHJ   P,PUT\r
34847         003145' 602540  000020          TRNE AUXFLG,FFLG        ;SHORT FORM DIRECT ?\r
34848         003146' 254000  003177'         JRST PDIR3A             ;YES VJC 4/16/69\r
34849 \r
34850 \r
34851 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 60-1\r
34852 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34853 \r
34854         003147' 400640  000000          SETZ    DOUT,           ;CALCULATE NBR OF BLOCKS PER FILE\r
34855         003150' 201340  001101          MOVEI   T4,1101\r
34856         003151' 205000  440500          MOVSI   0,(POINT 5,0)\r
34857         003152' 550100  003742'         HRRZ    T2,IBF\r
34858         003153' 271002  000001          ADDI    0,1(T2)\r
34859         003154' 550600  000011          HRRZ    T7,T5\r
34860         003155' 275602  000000          SUBI    T7,(T2)\r
34861         003156' 134500  000000          ILDB    T6,0            ;LOAD CONTENTS OF S.A.T. BLOCK\r
34862         003157' 316500  000014          CAMN    T6,T7           ;COMPARE WITH FILE SLOT NBR\r
34863         003160' 271640  000001          ADDI    DOUT,1          ;ADD 1 TO COUNT IF EQUAL\r
34864         003161' 367340  003156'         SOJG    T4,.-3\r
34865         003162' 260240  003260'         PUSHJ   P,OUTDEC        ;OUTPUT NBR OF BLOCKS PER FILE\r
34866         003163' 201200  000011          MOVEI   CHR,TAB\r
34867                                         >\r
34868                                 IFN WCH,<\r
34869                                         AOJ     T5,             ;STEP DIR. POINTER\r
34870                                         MOVEI   CHR,11\r
34871                                         PUSHJ   P,PUT           ;OUTPUT A TAB\r
34872                                         CAIG    T4,7>\r
34873         003164' 260240  000756'         PUSHJ   P,PUT\r
34874         003165' 135040  004711'         LDB     T1,[POINT 5,DBUF+16,14]\r
34875         003166' 302040  000036          CAIE    T1,36\r
34876         003167' 254000  003174'         JRST    PDIR3B\r
34877         003170' 550040  003742'         HRRZ    T1,IBF\r
34878         003171' 276440  000001          SUBM    T5,T1\r
34879         003172' 135000  004712'         LDB     0,[POINT 9,DBUF+200(T1),8]\r
34880 U       003173' 260240  000000*         PUSHJ   P,PROTO         ; OUTPUT PROTECTION\r
34881         003174'                 PDIR3B:\r
34882                                 IFE WCH,<\r
34883         003174' 200011  000151          MOVE    0,151(T5)       ;GET ENTRY DATE>\r
34884                                 IFN WCH,<\r
34885                                         MOVE    0,-1(T5)        ;GET ENTRY DATE>\r
34886         003175' 405000  007777          ANDI    0,7777          ;LEFT BITS ARE IRRELEVENT\r
34887         003176' 260240  003224'         PUSHJ   P,DATOUT        ;OUTPUT THE DATE\r
34888         003177' 260240  003205' PDIR3A: PUSHJ   P,CRLF          ;GIVE CR,LF 4/16/69\r
34889                                 IFN WCH,<\r
34890                                         AOJA    T5,PDIR4        ;PROCESS NEXT ENTRY>\r
34891                                 IFE WCH,<\r
34892         003200' 550040  003742' PDIR6:  HRRZ    T1,IBF          ;PROCESS NEXT ENTRY\r
34893         003201' 276440  000001          SUBM    T5,T1\r
34894         003202' 301040  000026          CAIL    T1,26           ;FILE "NUMBER" OK?\r
34895         003203' 254000  000411'         JRST    MAIN1           ;NO, END OF ENTRIES\r
34896         003204' 344440  003107'         AOJA    T5,PDIR4        ;END OF LOOP, GET NEXT FILENAME>\r
34897 \r
34898 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 61\r
34899 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34900 \r
34901 \r
34902                                 IFN FTDSK,<\r
34903                                 CLRF:   SOS     LIN>\r
34904         003205' 201200  000015  CRLF:   MOVEI   CHR,CR          ;OUTPUT CAR. RET.\r
34905         003206' 260240  000756'         PUSHJ   P,PUT\r
34906         003207' 201200  000012          MOVEI   CHR,LF          ;LINE FEED\r
34907         003210' 254000  000756'         JRST    PUT\r
34908 \r
34909         003211' 134200  000000  PDIR2:  ILDB    CHR,0           ;ROUTINE TO OUTPUT 6-BIT DATA\r
34910         003212' 606000  777777          TRNN    0,-1            ;PRINT SPACES WHEN PRINTING THE FREE BLOCKS\r
34911         003213' 322200  003220' PDIR2A: JUMPE   CHR,PDIR21      ;TERMINATE ON SPACE\r
34912         003214' 271200  000040          ADDI    CHR,40          ;CONVERT TO 7 BIT\r
34913         003215' 260240  000756'         PUSHJ   P,PUT           ;OUTPUT CHARACTER\r
34914         003216' 271340  000001          ADDI    T4,1\r
34915         003217' 367100  003211'         SOJG    T2,PDIR2        ;COUNT DOWN MAX-CHARS COUNTER\r
34916                                 IFN WCH,<\r
34917                                 PDIR21: AOJA    T5,CPOPJ        ;STEP AND CONTINUE>\r
34918                                 IFE WCH,<\r
34919         003220' 263240  000000  PDIR21: POPJ    P,              ;CONTINUE>\r
34920 \r
34921 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 62\r
34922 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34923 \r
34924         003221' 160046  624545  PDIR7:  SIXBIT /. FREE BLOCKS LEFT/\r
34925         003222' 004254  574353\r
34926         003223' 630054  454664\r
34927                                 ;OUTPUT THE DATE FOUND IN AC 0.\r
34928 \r
34929         003224' 201100  000756' DATOUT: MOVEI T2,PUT            ;PUT CHAR IN OUT\r
34930         003225' 231000  000037          IDIVI 0,^D31\r
34931         003226' 201141  000001          MOVEI T3,1(1)\r
34932         003227' 231000  000014          IDIVI 0,^D12\r
34933         003230' 200640  000003          MOVE DOUT,T3            ;DOUT=DAY\r
34934         003231' 260240  003235'         PUSHJ P,OUTDC1          ;PRINT DAY\r
34935         003232' 260240  003262'         PUSHJ P,DATO2           ;PRINT -MONTH-\r
34936         003233' 200640  000000          MOVE DOUT,0\r
34937         003234' 271640  000100          ADDI DOUT,^D64          ;DOUT=YEAR\r
34938         003235' 334700  003731' OUTDC1: SKIPA DOUT+1,TWL        ;RADIX 10\r
34939                                 ;*******************************************************************\r
34940                                 ;ROUTINE TO CONVERT OCTAL TO ASCII\r
34941                                 ;DOUT CONTAINS OCTAL VALUE ON ENTRY\r
34942 \r
34943         003236' 201700  000010  OUTOCT: MOVEI DOUT+1,10         ;RADIX 8\r
34944         003237' 552700  000007  PRNUMA: HRRZM DOUT+1,T4\r
34945         003240' 201200  000060          MOVEI CHR,"0"\r
34946         003241' 315640  000016          CAMGE DOUT,DOUT+1       ;PRINT AT LEAST 2 DIGITS\r
34947         003242' 260242  000000          PUSHJ P,(T2)            ;PUT OR PUTCON\r
34948         003243' 231647  000000  PRN:    IDIVI DOUT,(T4)         ;DIVIDE BY RADIX\r
34949         003244' 506705  000000          HRLM DOUT+1,(P)         ;SAVE NO. FOR PRINT\r
34950         003245' 322640  003247'         JUMPE DOUT,.+2          ;ENUF DIGITS?\r
34951         003246' 260240  003243'         PUSHJ P,PRN             ;NO, GET MORE\r
34952         003247' 554205  000000          HLRZ CHR,(P)            ;YES, GET LEFTMOST\r
34953         003250' 271200  000060          ADDI CHR,60             ;CONVERT TO ASCII\r
34954         003251' 254002  000000          JRST (T2)               ;PUT OR PUTCON\r
34955 \r
34956         003252' 201200  000040  OUTDE4: MOVEI   CHR," "         ;SET UP FOR SPACES\r
34957         003253' 301640  001750          CAIL    DOUT,^D1000     ;PRINT 4 CHAR.\r
34958         003254' 254000  003260'         JRST    OUTDEC          ;AT LEAST 4 SEEN\r
34959         003255' 260240  000756'         PUSHJ   P,PUT           ;OUTPUT ONE SPACE\r
34960         003256' 305640  000144          CAIGE   DOUT,^D100      ;3 CHAR.?\r
34961         003257' 260240  000756'         PUSHJ   P,PUT           ;NO,SO ANOTHER SPACE\r
34962         003260' 201100  000756' OUTDEC: MOVEI T2,PUT            ;PUT CHAR IN OUT BUF\r
34963         003261' 254000  003235'         JRST OUTDC1\r
34964 \r
34965         003262' 201340  000005  DATO2:  MOVEI T4,5\r
34966         003263' 200500  004153'         MOVE T6,MNPT\r
34967         003264' 272040  000012          ADDM 1,T6\r
34968         003265' 134200  000012          ILDB CHR,T6\r
34969         003266' 260242  000000          PUSHJ P,(T2)            ;PUT OR PUTCON\r
34970         003267' 367340  003265'         SOJG T4,.-2\r
34971         003270' 263240  000000          POPJ P,\r
34972 \r
34973 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 63\r
34974 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
34975 \r
34976                                 ;READ DTA DIRECTORY AND INITIALIZE DIRST AND DIRST1\r
34977 \r
34978         003271' 260240  000426' DTCHECK:PUSHJ P,ININIT  ;INITIALIZE INPUT DEVICE\r
34979         003272'                 DTCH2:\r
34980                                 IFN WCH,<\r
34981                                         USETI IN,1      ;GET DTA DIR>\r
34982                                 IFE WCH,<\r
34983         003272' 074140  000144          USETI IN,144    ;GET DTA DIR>\r
34984         003273' 260240  001616'         PUSHJ P,INP     ;INPUT DIRECTORY\r
34985         003274' 070140  000000          CLOSE   IN,\r
34986         003275' 260240  003333'         PUSHJ   P,GETPPN        ; GET PPN OF DECTAPE\r
34987         003276' 260240  000426'         PUSHJ   P,ININIT        ; REINITIALIZE INPUT DEVICE\r
34988                                 IFN WCH,<\r
34989                                 DTCH1:  MOVE T5,IBF\r
34990                                         HRRZ T2,1(T5)\r
34991                                         ADDI T5,1(T2)   ;GET ADD. OF FIRST ENTRY\r
34992                                         MOVE 0,T5\r
34993                                         SUBI 0,4>\r
34994                                 IFE WCH,<\r
34995         003277' 550440  003742' DTCH1:  HRRZ T5,IBF     ;LOC. OF CURRENT BUF, 2ND WORD\r
34996         003300' 201011  000123          MOVEI 0,123(T5) ;83 WORDS,7, FIVE-BIT BYTES\r
34997         003301' 271440  000001          ADDI T5,1       ;COMPUTE ADD. OF DIR. START>\r
34998         003302' 202000  004012'         MOVEM 0,DIRST   ;FIRST FILE NAME LOC\r
34999         003303' 202000  004013'         MOVEM 0,DIRST1  ;TO RESTORE DIRST\r
35000         003304' 263240  000000          POPJ P,\r
35001 \r
35002                                 ;ROUTINE TO CHECK BRACKET COUNT/MATCHING\r
35003 \r
35004         003305' 403140  004025' OUTCHK: SETZB T3,TLBRKT ;COUNT <> ON THIS LINE, CLEAR THINGS\r
35005         003306' 200040  003723'         MOVE T1,OPTRA   ;BYTE POINTER FOR READING OUT THE LINE\r
35006         003307' 316040  004020' OUTCH2: CAMN T1,OPTR    ;LINE DONE?\r
35007         003310' 254000  003320'         JRST OUTCH3     ;YES, SO DECIDE WHETHER TO PRINT\r
35008         003311' 134100  000001          ILDB T2,T1      ;GET CHAR\r
35009         003312' 306100  000074          CAIN T2,"<"     ;LEFT BRACKET?\r
35010         003313' 350000  004025'         AOS TLBRKT      ;YES, SO INCREMENT BRACKET COUNT\r
35011         003314' 306100  000076          CAIN T2,">"     ;RIGHT BRACKET?\r
35012         003315' 371000  004025'         SOSL TLBRKT     ;YES, SUBTRACT BRACKET COUNT, GONE NEG?\r
35013         003316' 254000  003307'         JRST OUTCH2     ;NO, SO DO NEXT CHAR\r
35014         003317' 344140  003307'         AOJA T3,OUTCH2  ;YES, SO FLAG COUNT GONE NEG.\r
35015 \r
35016         003320' 336100  004025' OUTCH3: SKIPN T2,TLBRKT ;BRACKET COUNT OFF THIS LINE?\r
35017         003321' 322140  001711'         JUMPE T3,CPOPJ  ;NO, WENT NEG.?\r
35018         003322' 272100  004026'         ADDM T2,TOTBRK  ;YES, SO ADD INTO CUMULATIVE COUNT\r
35019         003323' 201200  000055          MOVEI CHR,"-"   ;PRINT MINUS FOR NEG TOTAL\r
35020         003324' 335000  004026'         SKIPGE TOTBRK\r
35021         003325' 260240  000756'         PUSHJ P,PUT\r
35022         003326' 214640  004026'         MOVM DOUT,TOTBRK;PRINT MAGNITUDE OF TOTAL\r
35023         003327' 260240  003260'         PUSHJ P,OUTDEC\r
35024         003330' 201200  000011          MOVEI CHR,TAB   ;FOLLOW WITH TAB\r
35025         003331' 260240  000756'         PUSHJ P,PUT\r
35026         003332' 254000  000711'         JRST OUTCH1     ;AND PRINT THE LINE\r
35027 \r
35028         003333' 201440  000117  GETPPN: MOVEI   T5,117  ; NON STD DUMP MODE\r
35029 \r
35030 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 63-1\r
35031 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
35032 \r
35033 U       003334' 202440  000000*         MOVEM   T5,DTBLK\r
35034         003335' 200440  004637'         MOVE    T5,DEVICE       ; GET INPUT DEVICE\r
35035 U       003336' 202440  000000*         MOVEM   T5,DTDEV\r
35036 U       003337' 050340  003334*         OPEN    DTDIR,DTBLK\r
35037         003340' 263240  000000          POPJ    P,\r
35038         003341' 074340  000144          USETI   DTDIR,144       ; READ BLOCK 100 AND\r
35039         003342' 200440  004713'         MOVE    T5,[IOWD 227,DBUF]\r
35040         003343' 201500  000000          MOVEI   T6,0\r
35041         003344' 066340  000011          INPUT   DTDIR,T5        ; WORD 1 OF BLOCK 101.\r
35042         003345' 200440  004577'         MOVE    T5,177+DBUF\r
35043         003346' 202440  003736'         MOVEM   T5,DTAID\r
35044         003347' 200440  004600'         MOVE    T5,200+DBUF\r
35045         003350' 202440  003737'         MOVEM   T5,DIRPPN       ; SAVE PPN FOR LISTING\r
35046         003351' 071340  000000          RELEASE DTDIR,\r
35047         003352' 263240  000000          POPJ    P,\r
35048 \r
35049 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 64\r
35050 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
35051 \r
35052         003353' 612300  004672' FILTYP: TDNE FLAG,[XWD IFLG+IBFLG,BMOD]\r
35053         003354' 263240  000000          POPJ P,                 ;BIN MODE DON'T CARE IF DMP, ETC\r
35054         003355' 606540  060400          TRNN    AUXFLG,DSKIN!DTAIN!MTAIN        ;BINARY INPUT POSSIBLE?\r
35055         003356' 254000  003365'         JRST    FIL11           ;NO\r
35056         003357' 606540  014200          TRNN    AUXFLG,DSKOUT!DTAOUT!MTAOUT     ;BINARY OUTPUT?\r
35057         003360' 254000  003365'         JRST    FIL11           ;NO\r
35058         003361' 616300  004701'         TDNN    FLAG,[XWD PFLG,LINE!TBMOD!NSMOD!SQMOD!SPMOD]\r
35059         003362' 603540  000040          TLNE    AUXFLG,CDRFLG   ;/E FROM DSK IS NOT BINARY\r
35060         003363' 254000  003365'         JRST    FIL11           ;SO TURN OFF SBIN\r
35061         003364' 254000  003414'         JRST    FIL3            ;FORCE BINARY MODE\r
35062         003365' 621540  000004  FIL11:  TLZ AUXFLG,SBIN         ;IS\r
35063         003366' 554000  004053'         HLRZ 0,ZRF+1            ; INPUT EXTENSION\r
35064         003367' 302000  445560          CAIE 0,(SIXBIT /DMP/)   ;DMP?\r
35065         003370' 306000  634166  IFE DISK30,<CAIN 0,(SIXBIT /SAV/)       ;SAV?>\r
35066                                 IFN DISK30,<CAIN 0,(SIXBIT/SVE/)>\r
35067         003371' 254000  003414'         JRST FIL3               ;YES\r
35068         003372' 302000  435056          CAIE 0,(SIXBIT /CHN/)   ;CHN?\r
35069         003373' 306000  624554          CAIN 0,(SIXBIT /REL/)   ;REL?\r
35070         003374' 254000  003414'         JRST FIL3               ;YES\r
35071         003375' 302000  635062          CAIE    0,(SIXBIT /SHR/)\r
35072         003376' 306000  504750          CAIN    0,(SIXBIT /HGH/)\r
35073         003377' 254000  003414'         JRST    FIL3\r
35074         003400' 302000  425156          CAIE    0,'BIN' ; GENERAL BINARY EXTENSION?\r
35075         003401' 306000  545767          CAIN    0,(SIXBIT /LOW/)\r
35076         003402' 254000  003414'         JRST    FIL3\r
35077         003403' 606300  002000          TRNN FLAG,XFLG          ;DO NORMAL PROCESSING ON ALL\r
35078         003404' 254000  003430'         JRST FIL2               ;BUT DMP ETC FILES IF NOT /X\r
35079         003405' 607540  000040          TLNN AUXFLG,CDRFLG\r
35080         003406' 612300  004701'         TDNE FLAG,[XWD PFLG,LINE+TBMOD+NSMOD+SQMOD+SPMOD]\r
35081         003407' 263240  000000          POPJ P,                 ;NO SIGNIFICANT SWITCHES\r
35082         003410' 515000  004400  FIL1:   HRLZI 0,004400          ;FORCE 36-BIT.\r
35083         003411' 502000  003743'         HLLM 0,IBF+1            ;INPUT BYTE POINTER\r
35084         003412' 502000  003746'         HLLM 0,OBF+1            ;OUTPUT BYTE POINTER\r
35085         003413' 263240  000000          POPJ P,                 ;CHANGE TO FORCED BINARY\r
35086         003414' 661540  000004  FIL3:   TLO AUXFLG,SBIN         ;INPUT EXT = DMP,SAV,CHN,REL\r
35087         003415' 602300  002000          TRNE FLAG,XFLG\r
35088         003416' 254000  003410'         JRST FIL1\r
35089         003417' 667540  000400          TLON AUXFLG,FRSTIN      ;NOT /X TEST FURTHER\r
35090         003420' 254000  003443'         JRST FIL4               ;IS THIS FIRST SOURCE, YES\r
35091         003421' 663540  000200          TLOE AUXFLG,RSDCFL      ;NOT FIRST, WAS PREVIOS FILE RSCD?\r
35092         003422' 254000  003445'         JRST    FIL5            ;YES, NO CHANGE UNLESS DEVICE HAS CHANGED\r
35093         003423' 067100  000000          OUTPUT OUT,             ;NO CHANGE TO 36-BIT\r
35094         003424' 200000  003747'         MOVE 0,OBF+2            ;CURRENTLY 7-BIT I/O, MUST CHANGE TO 36-BIT\r
35095                                                                 ;OUTPUT CURRENT BUFFER\r
35096         003425' 231000  000005          IDIVI 0,5               ;DIVIDE OBF+2 BY 5 (CHAR. COUNT)\r
35097         003426' 202000  003747'         MOVEM 0,OBF+2\r
35098         003427' 254000  003410'         JRST FIL1\r
35099         003430' 663540  000400  FIL2:   TLOE AUXFLG,FRSTIN      ;NOT A RSCD FILE\r
35100         003431' 627540  000200          TLZN AUXFLG,RSDCFL      ;NO, WAS PREV. FILE RSCD?\r
35101         003432' 263240  000000          POPJ P,                 ;NO, NO CHANGE\r
35102         003433' 067100  000000          OUTPUT OUT,             ;YES, CHANGE 36-BIT TO 7-BIT\r
35103         003434' 201000  000005          MOVEI 0,5\r
35104         003435' 222000  003747'         IMULM 0,OBF+2\r
35105 \r
35106 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 64-1\r
35107 PIP     MAC     24-APR-78 03:15         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
35108 \r
35109         003436' 200000  003740'         MOVE 0,SVIBF            ;RESTORE 7-BIT\r
35110         003437' 502000  003743'         HLLM 0,IBF+1\r
35111         003440' 200000  003741'         MOVE 0,SVOBF\r
35112         003441' 502000  003746'         HLLM 0,OBF+1\r
35113         003442' 263240  000000          POPJ P,\r
35114         003443' 661540  000200  FIL4:   TLO AUXFLG,RSDCFL       ;SET REL,SAV,DMP,CHN FLAG\r
35115         003444' 254000  003410'         JRST FIL1\r
35116         003445' 515000  004400  FIL5:   HRLZI 0,004400          ;NEW DEVICE, SET 36-BIT INPUT\r
35117         003446' 602740  000010          TRNE CALFLG,NEWDEV      ;SOURCE DEVICE CHANGED\r
35118         003447' 502000  003743'         HLLM 0,IBF+1\r
35119         003450' 263240  000000          POPJ P,                 ;OUTPUT ALREADY SET\r
35120 \r
35121 \r
35122 \r
35123 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 65\r
35124 PIP     MAC     24-APR-78 03:15         BLOCK 0 CODE\r
35125 \r
35126                                 SUBTTL BLOCK 0 CODE\r
35127 \r
35128                                 IFE BLOC0,<\r
35129                                 IFE WCH,<;THIS CODE COPIES BLOCK 0,1,2 ONLY. I/O MUST BE DECTAPE.>\r
35130                                 IFN WCH,<;THIS CODE COPIES BLOCK 0 ONLY. I/O MUST BE DECTAPE.>\r
35131                                 ;MODE SELECTED MUST BE BIT 100, 20 AND NOT DUMP MODE (134).\r
35132 \r
35133         003451' 640540  024000  BLOCK0: TRC AUXFLG,DTAIN+DTAOUT\r
35134         003452' 642540  024000          TRCE AUXFLG,DTAIN+DTAOUT;FORCE DTA I/O\r
35135         003453' 254000  002115'         JRST ERR7A\r
35136         003454' 201000  000134          MOVEI 0,134\r
35137         003455' 202000  004633'         MOVEM 0,OMOD\r
35138         003456' 202000  004636'         MOVEM 0,ININI1\r
35139         003457' 205000  003745'         MOVSI 0,OBF\r
35140         003460' 202000  004635'         MOVEM 0,ODEV+1\r
35141         003461' 201000  003742'         MOVEI 0,IBF\r
35142         003462' 202000  004640'         MOVEM 0,DEVICE+1\r
35143         003463' 050100  004633'         OPEN OUT,OMOD\r
35144         003464' 254000  001767'         JRST ERR1               ;UNAVAILABLE\r
35145         003465' 065100  000001          OUTBUF  OUT,1\r
35146         003466' 067100  000000          OUTPUT  OUT,\r
35147         003467' 050140  004636'         OPEN IN,ININI1\r
35148         003470' 254000  001770'         JRST ERR1A\r
35149         003471' 064140  000001          INBUF IN,1\r
35150         003472' 403040  003735'         SETZB T1,BL0CNT\r
35151         003473' 074141  000000  BL4:    USETI IN,(T1)\r
35152         003474' 066140  000000          INPUT IN,               ;READ\r
35153         003475' 062140  000010          GETSTS IN,IOS\r
35154         003476' 606400  740000          TRNN IOS,740000         ;ANY ERRORS\r
35155         003477' 254000  003515'         JRST BL1                ;NO\r
35156         003500' 265440  000542'         JSP T5,INICN2\r
35157         003501' 260240  001652'         PUSHJ P,QUEST\r
35158         003502' 265040  002166'         ERRPN2 </Input device />\r
35159         003503' 447356  072750\r
35160         003504' 203114  573322\r
35161         003505' 617124  000000\r
35162         003506' 260240  002201'         PUSHJ P,P6BIT\r
35163         003507' 000000  004637'               DEVICE\r
35164         003510' 265040  002166'         ERRPN2 </: />\r
35165         003511' 351000  000000\r
35166         003512' 200100  000013          MOVE T2,AUXFLG          ;DECTAPE FOR ERROR MESSAGE\r
35167         003513' 405100  020000          ANDI T2,DTAIN\r
35168         003514' 260240  001020'         PUSHJ P,IOERR           ;PRINT ERROR TYPE\r
35169         003515' 514440  003743' BL1:    HRLZ T5,IBF+1\r
35170         003516' 540440  003746'         HRR T5,OBF+1\r
35171         003517' 201351  000177          MOVEI T4,177(T5)\r
35172         003520' 251447  000000          BLT T5,(T4)             ;SHIFT DATA TO OUTPUT BUFFER\r
35173         003521' 075120  003735'         USETO   OUT,@BL0CNT\r
35174         003522' 067100  000000          OUTPUT OUT,             ;WRITE BLOCK\r
35175         003523' 260240  000764'         PUSHJ P, OUTP1          ;CHECK ERRORS\r
35176                                 IFE WCH,<\r
35177         003524' 350040  003735'         AOS T1,BL0CNT\r
35178         003525' 305040  000003          CAIGE T1,3\r
35179 \r
35180 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 65-1\r
35181 PIP     MAC     24-APR-78 03:15         BLOCK 0 CODE\r
35182 \r
35183         003526' 254000  003473'         JRST BL4>\r
35184         003527' 071100  000000  BL3:    RELEASE OUT,            ;IF ANY, PDL IS RESET\r
35185         003530' 254000  000013'         JRST PIP2>\r
35186 \r
35187                                 IFN BLOC0,<\r
35188                                 BLOCK0: ERRPNT  </?No block 0 copy!/>\r
35189                                                 >\r
35190 \r
35191 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 66\r
35192 PIP     MAC     24-APR-78 03:15         MAGTAPE ROUTINES\r
35193 \r
35194                                 SUBTTL  MAGTAPE ROUTINES\r
35195 \r
35196                                 ;TEST TO SEE IF MORE THAN ONE OF THE LOWEST EIGHT MTA FLAGS\r
35197                                 ;HAVE BEEN SELECTED. IF SO ERROR. OTHERWISE, IMPLEMENT\r
35198                                 ;REQUEST.  T1, T3, T6 SET AT ENTRY BY INLOOK OR OUTLOOK\r
35199                                 ;TO EQUAL AUX/AUXOUT, AB/ABOUT,INIMTA/INOMTA\r
35200 \r
35201         003531' 550100  000001  MT1:    HRRZ T2,T1              ;T1 CONTAINS REQUEST\r
35202         003532' 405102  777777          ANDI T2,-1(T2)          ;KNOCK OFF RIGHT MOST 1\r
35203         003533' 602100  000377          TRNE T2,377\r
35204         003534' 254000  003701'         JRST MTR1               ;PRINT ERROR MESSAGE\r
35205 \r
35206         003535' 606040  000377          TRNN T1,MTAFLG+MTBFLG+MTWFLG+MTTFLG+MTFFLG+MTUFLG+MTDFLG+MTPFLG\r
35207         003536' 254000  003562'         JRST MTC1\r
35208         003537' 260252  000000          PUSHJ P,(T6)            ;THERE IS A  REQUEST\r
35209                                                                 ;GO TO INIMTA/INOMTA\r
35210 \r
35211                                 ;PERFORM POSITIONING REQUESTS\r
35212         003540' 602040  000040          TRNE T1,MTUFLG\r
35213         003541' 254000  003600'         JRST UNLOAD\r
35214 \r
35215         003542' 602040  000010          TRNE T1,MTWFLG\r
35216         003543' 254000  003602'         JRST REWIND\r
35217 \r
35218         003544' 602040  000020          TRNE T1,MTFFLG\r
35219         003545' 254000  003605'         JRST MARKEF\r
35220 \r
35221         003546' 602040  000004          TRNE T1,MTTFLG\r
35222         003547' 254000  003615'         JRST SLEOT\r
35223 \r
35224         003550' 602040  000202          TRNE T1,MTBFLG+MTPFLG   ;MULTIPLE REQUESTS ALLOWED\r
35225         003551' 254000  003617'         JRST BSPF\r
35226 \r
35227         003552' 602040  000101          TRNE T1,MTAFLG+MTDFLG   ;MULTIPLE REQUESTS ALLOWED\r
35228         003553' 254000  003653'         JRST ADVF\r
35229 \r
35230 \r
35231 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 67\r
35232 PIP     MAC     24-APR-78 03:15         MAGTAPE ROUTINES\r
35233 \r
35234                                 ;T1=AUX,AUXOUT. T3=AB,ABOUT.  T6=INIMTA,INOMTA.\r
35235 \r
35236         003554' 071200  000000  MTCONT: RELEAS TAPE,\r
35237         003555' 606040  000040          TRNN T1,MTUFLG          ;UNLOAD?\r
35238         003556' 602740  000400          TRNE CALFLG,NSWTCH      ;IS THERE AN INPUT DEVICE?\r
35239         003557' 302500  003666'         CAIE T6,INOMTA          ;OUTPUT TAPE?\r
35240         003560' 263240  000000          POPJ P,                 ;NO\r
35241         003561' 254000  000013'         JRST PIP2               ;YES, END OF COMMAND\r
35242 \r
35243                                 ;ROUTINE TO CHECK AND SET DENSITY FOR NEW DEVICE\r
35244 \r
35245         003562' 200340  000001  MTC1:   MOVE T4,T1              ;GET AUX/AUXOUT\r
35246         003563' 405340  003400          ANDI T4,MT2FLG+MT5FLG+MT8FLG\r
35247         003564' 405347  777777          ANDI T4,-1(T4)          ;REMOVE RIGHT MOST 1\r
35248         003565' 326340  003701'         JUMPN T4,MTR1           ;MORE THAN 1 REQ, ERROR\r
35249 \r
35250         003566' 201340  000001          MOVEI T4,1              ;ASCII LINE STANDARD MODE\r
35251 \r
35252         003567' 602040  002000          TRNE T1,MT2FLG\r
35253         003570' 660340  000200          TRO T4,DENS2            ;SET 200 BPI\r
35254 \r
35255         003571' 602040  001000          TRNE T1,MT5FLG\r
35256         003572' 660340  000400          TRO T4,DENS5            ;SET 556 BPI\r
35257 \r
35258         003573' 602040  000400          TRNE T1,MT8FLG\r
35259         003574' 660340  000600          TRO T4,DENS8            ;SET 800 BPI\r
35260 \r
35261         003575' 602040  004000          TRNE T1,MTEFLG\r
35262         003576' 660340  001000          TRO T4,PARE             ;EVEN PARITY\r
35263 \r
35264         003577' 263240  000000          POPJ P,\r
35265 \r
35266 \r
35267 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 68\r
35268 PIP     MAC     24-APR-78 03:15         MAGTAPE ROUTINES\r
35269 \r
35270                                 ;REWIND AND UNLOAD\r
35271 \r
35272         003600' 072200  000011  UNLOAD: MTAPE TAPE,11\r
35273         003601' 254000  003554'         JRST MTCONT\r
35274 \r
35275                                 ;REWIND ONLY\r
35276 \r
35277         003602' 072200  000001  REWIND: MTAPE TAPE,1\r
35278         003603' 072200  000000  MTWAIT: WAIT TAPE,\r
35279         003604' 254000  003554'         JRST MTCONT\r
35280 \r
35281 \r
35282 \r
35283 \r
35284                                 ;MARK END OF FILE\r
35285 \r
35286         003605' 200440  004645' MARKEF: MOVE T5,MTANAM\r
35287         003606' 250440  004634'         EXCH T5,ODEV\r
35288         003607' 072200  000003          MTAPE TAPE,3\r
35289         003610' 062200  000010          GETSTS TAPE,IOS\r
35290         003611' 260240  000772'         PUSHJ P,OUTP3\r
35291         003612' 060210  000000          SETSTS TAPE,(IOS)\r
35292         003613' 202440  004634'         MOVEM T5,ODEV\r
35293         003614' 254000  003554'         JRST MTCONT\r
35294 \r
35295 \r
35296 \r
35297 \r
35298                                 ;SKIP TO LOGICAL END OF TAPE.\r
35299 \r
35300         003615' 072200  000010  SLEOT:  MTAPE TAPE,10\r
35301         003616' 254000  003603'         JRST MTWAIT\r
35302 \r
35303 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 69\r
35304 PIP     MAC     24-APR-78 03:15         MAGTAPE ROUTINES\r
35305 \r
35306                                 ;BACKSPACE MTA 1 FILE, T3=AB OR ABOUT\r
35307                                 ;AB/ABOUT = INPUT/OUTPUT DEVICE\r
35308 \r
35309         003617' 550140  000003  BSPF:   HRRZ T3,T3      ;T3=NO. OF FILES/RECORDS TO BACK\r
35310         003620' 072200  000000  BSPF2:  WAIT TAPE,      ;WAIT\r
35311         003621' 062200  000010          GETSTS TAPE,IOS\r
35312         003622' 606400  004000          TRNN IOS,LDP    ;AT LOAD POINT?\r
35313         003623' 254000  003637'         JRST BSPF3      ;NO LDP\r
35314         003624' 265040  002155'         ERRPNT </?Load point before end of (MB) or (MP) request!/>\r
35315         003625' 376315  760710\r
35316         003626' 203415  764734\r
35317         003627' 721014  262714\r
35318         003630' 677454  520312\r
35319         003631' 673104  067714\r
35320         003632' 201211  541122\r
35321         003633' 203376  220120\r
35322         003634' 466405  120344\r
35323         003635' 627436  562746\r
35324         003636' 721020  000000\r
35325         003637' 201440  000007  BSPF3:  MOVEI T5,7      ;BSPR\r
35326         003640' 606040  000200          TRNN T1,MTPFLG  ;BSPR?\r
35327         003641' 201440  000017          MOVEI T5,17     ;BSPF\r
35328         003642' 072211  000000          MTAPE TAPE,(T5) ;BACKSPACE FILE/RECORD\r
35329         003643' 365140  003620'         SOJGE T3,BSPF2  ;MORE FILES/RECORDS TO BSP?\r
35330                                                         ;NO, END OF LOOP\r
35331         003644' 072200  000000          WAIT TAPE,\r
35332         003645' 062200  000010          GETSTS TAPE,IOS\r
35333         003646' 606040  000002          TRNN T1,MTBFLG  ;BACKSPACE FILE?\r
35334         003647' 254000  003554'         JRST MTCONT     ;NO\r
35335         003650' 606400  004000          TRNN IOS,LDP    ;IF AT LOAD POINT\r
35336         003651' 072200  000016          MTAPE TAPE,16   ;(MOVE FWD. OVER EOF)\r
35337         003652' 254000  003554'         JRST MTCONT     ;DON'T SKIP A RECORD\r
35338 \r
35339 \r
35340 \r
35341                                 ;ADVANCE MTA 1 FILE, T3=AB OR ABOUT\r
35342                                 ;AB/ABOUT = INPUT/OUTPUT DEVICE\r
35343 \r
35344         003653' 554140  000003  ADVF:   HLRZ T3,T3      ;T3=NO. FILES (OR REC) TO ADVANCE\r
35345         003654' 201440  000006  ADVF2:  MOVEI T5,6      ;ADVR\r
35346         003655' 606040  000100          TRNN T1,MTDFLG  ;ADVR ?\r
35347         003656' 201440  000016          MOVEI T5,16     ;ADVF\r
35348         003657' 072211  000000          MTAPE TAPE,(T5) ;ADVANCE FILE/RECORD\r
35349         003660' 367140  003654'         SOJG T3,ADVF2   ;MORE FILES/RECORDS TO ADV?\r
35350                                                         ;NO, END OF LOOP\r
35351         003661' 072200  000000          WAIT TAPE,      ;WAIT...\r
35352         003662' 062200  000010          GETSTS TAPE,IOS\r
35353         003663' 622400  020000          TRZE IOS,EOFBIT\r
35354         003664' 060210  000000          SETSTS TAPE,(IOS)       ;END OF FILE\r
35355         003665' 254000  003554'         JRST MTCONT\r
35356 \r
35357 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 70\r
35358 PIP     MAC     24-APR-78 03:15         MAGTAPE ROUTINES\r
35359 \r
35360                                 ;ROUTINE TO INITIALIZE MAGTAPE FOR INPUT OR OUTPUT\r
35361 \r
35362         003666' 334100  004634' INOMTA: SKIPA T2,ODEV   ;INIT OUTPUT DEVICE\r
35363         003667' 200100  004637' INIMTA: MOVE T2,DEVICE  ;INIT INPUT DEVICE\r
35364         003670' 402000  004646'         SETZM MTANAM+1\r
35365         003671' 202100  004645'         MOVEM T2,MTANAM\r
35366         003672' 606740  000010          TRNN CALFLG,NEWDEV\r
35367         003673' 254000  003676'         JRST INMTA      ;SAME DEVICE\r
35368         003674' 260240  003562'         PUSHJ P,MTC1    ;NEW DEVICE\r
35369         003675' 552340  004644'         HRRZM   T4,INMTA1       ;SET MODE,DENSITY,PARITY\r
35370 \r
35371         003676' 050200  004644' INMTA:  OPEN TAPE,INMTA1\r
35372         003677' 254000  001771'         JRST ERR1B\r
35373         003700' 263240  000000          POPJ P,\r
35374 \r
35375                                 ;ROUTINE TO PRINT ERROR MSG IF MORE THAN 1/8 FLAGS SET\r
35376 \r
35377         003701' 200340  004637' MTR1:   MOVE T4,DEVICE  ;TENTATIVELY SET I/DEV\r
35378 \r
35379         003702' 302500  003667'         CAIE T6,INIMTA  ;INPUT DEVICE?\r
35380         003703' 200340  004634'         MOVE T4,ODEV    ;NO, SET O/DEV\r
35381         003704' 265040  002155'         ERRPNT </?Too many requests for />\r
35382         003705' 376515  767500\r
35383         003706' 667035  674500\r
35384         003707' 713136  172712\r
35385         003710' 717516  320314\r
35386         003711' 677444  000000\r
35387         003712' 260240  002201'         PUSHJ P,P6BIT\r
35388         003713' 000000  000007                  T4\r
35389         003714' 254000  000013'         JRST    PIP2\r
35390 \r
35391 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 71\r
35392 PIP     MAC     24-APR-78 03:15         CONSTANTS/STORAGE/VARIABLES\r
35393 \r
35394                                         SUBTTL  CONSTANTS/STORAGE/VARIABLES\r
35395 \r
35396                                 ;CONSTANTS\r
35397 \r
35398                                 IFE WCH,<\r
35399         003715' 140600  004046' OKBD:   POINT 6,DTON+2,23       ;FOR NO. 1K BLOCKS\r
35400         003716' 140600  004054' OKB:    POINT 6,ZRF+2,23>\r
35401         003717' 001400  004054' DATE:   POINT 12,ZRF+2,35\r
35402         003720' 001400  004046' DATED:  POINT 12,DTON+2,35      ;CREATION DATE /X\r
35403         003721' 301406  030140  ZRO:    ASCII /00000/\r
35404         003722' 010700  004376' OPTMAX: POINT 7,LBUFE-1,34\r
35405         003723' 000700  004173' OPTRA:  XWD 700,LBUF-1          ;INITIAL POINTER TO LINE BUFFER\r
35406         003724' 432150  643240  K1:     432150643240            ;MAGIC ASCII INCREMENT BY 10\r
35407         003725' 375767  737576  K3:     375767737576            ;CHARACTER MASK 077\r
35408         003726' 432150  643216  K4:     432150643216            ;MAGIC ASCII INCREMENT BY 1\r
35409         003727' 616051  600000  QPIP:   SIXBIT /QPIP/           ;DATA FOR Q SWITCH\r
35410         003730' 120000  000000  STAR:   SIXBIT /*/              ;LOOK FOR *.* FILNAM.EXT\r
35411         003731' 000000  000012  TWL:    OCT 12\r
35412         003732' 000001  000001  PP11:   XWD 1,1\r
35413         003733' 000001  000003  PP13:   XWD 1,3                 ; SANDERS SYS\r
35414         003734' 000000  000145  UPROJ:  EXP     ^D101   ; SANDERS UNIVERSAL PROJECT\r
35415                                 IFN FTDSK,<\r
35416                                 PRPTL:  POINT 9,PROTS,8         ;PROTECTION FOR RENAME\r
35417                                 PRPTD:  POINT 9,DTON+2,8\r
35418                                 PRNM:   POINT 9,ZRF+2,8         ;PROT FOR /R\r
35419                                 TIME:   POINT 11,ZRF+2,23       ;CREATE TIME /X\r
35420                                 TIMED:  POINT 11,DTON+2,23      ;DEPOSIT CREATE TIME>\r
35421 \r
35422 \r
35423 \r
35424 \r
35425 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 72\r
35426 PIP     MAC     24-APR-78 03:15         CONSTANTS/STORAGE/VARIABLES\r
35427 \r
35428                                 ;PROGRAM STORAGE AREA\r
35429 \r
35430                                 IFE BLOC0,<\r
35431         003735'                 BL0CNT: BLOCK   1               ;COUNT>\r
35432         003736'                 DTAID:  BLOCK 1 ; STORE DTA SERIAL NUMBER\r
35433         003737'                 DIRPPN: BLOCK 1         ; STORE OWNERSHIP\r
35434         003740'                 SVIBF:  BLOCK   1       ;SAVE INIT MODE (INPUT)\r
35435         003741'                 SVOBF:  BLOCK   1       ;SAVE INIT MODE (OUTPUT)\r
35436         003742'                 IBF:    BLOCK   3       ;INPUT BUFFER HEADER\r
35437         003745'                 OBF:    BLOCK   3       ;OUTPUT BUFFER HEADER\r
35438         003750'                 OBI:    BLOCK   3       ;OUTPUT BUFFER INPUT HEADER FOR DSK /Z\r
35439         003753'                 TFI:    BLOCK   3       ;CONSOLE INPUT HEADER\r
35440         003756'                 TFO:    BLOCK   3       ;CONSOLE OUTPUT HEADER\r
35441         003761'                 SAVAC:  BLOCK   5       ;SAVE SOME ACS\r
35442         003766'                 NAMTAB: BLOCK   24      ;FOR (XD) ON DSK OR RENAME\r
35443                                 IFN FTDSK,<\r
35444                                 LOCNAM: BLOCK   1       ;POINTER FOR NAMTAB>\r
35445         004012'                 DIRST:  BLOCK   1       ;LOC. OF LAST DIR. FILE NAME REFERENCED\r
35446         004013'                 DIRST1: BLOCK   1       ;SAVE INITIAL DIRST\r
35447         004014'                 SQNUM:  BLOCK   1       ;CURRENT SEQUENCE NUMBER\r
35448         004015'                 DTJBFF: BLOCK   1       ;VALUE OF JOBFF AFTER CONSOLE I/O BUFFERS\r
35449         004016'                 SVJBFF: BLOCK   1       ;INITIAL VALUE OF JOBFF\r
35450         004017'                 SVJBF1: BLOCK   1       ;VALUE OF JOBFF AFTER OUTBUF UUO\r
35451         004020'                 OPTR:   BLOCK   1       ;CURRENT POINTER FOR LINE PRESCAN\r
35452         004021'                 DTONSV: BLOCK   2       ;OUTPUT DIRECTORY ENTRY COPY\r
35453         004023'                 SVPTR1: BLOCK   1       ;POINTER TO LAST PRINTING CHARACTER\r
35454         004024'                 SVPTR2: BLOCK   1       ;POINTER TO LAST GENERATED TAB\r
35455         004025'                 TLBRKT: BLOCK   1       ;TOTAL PARENS ON THIS LINE\r
35456         004026'                 TOTBRK: BLOCK   1       ;TOTAL CUMULATIVE PARENS\r
35457         004027'                 TABCT:  BLOCK   1       ;SPACES TO NEXT TAB STOP\r
35458         004030'                 SPCT:   BLOCK   1       ;CONSECUTIVE SPACES COUNTER\r
35459         004031'                 ABOUT:  BLOCK   1       ;AB FOR OUTPUT UNIT\r
35460         004032'                 AUXOUT: BLOCK   1       ;AUX FOR OUTPUT UNIT\r
35461         004033'                 PROTS:  BLOCK   1       ;SAVE PROTECTION\r
35462         004034'                 ZCNT:   BLOCK   1       ;COUNT FOR DSK ZRO REQ.\r
35463         004035'                 CDRCNT: BLOCK   1       ;COUNT CARD COLS.\r
35464         004036'                 PTRPT:  BLOCK   1       ;STORE SEQ. NO. POINTER\r
35465         004037'                 SYSPP:  BLOCK   1       ;PP OF DEVICE SYS\r
35466 \r
35467 \r
35468 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 73\r
35469 PIP     MAC     24-APR-78 03:15         CONSTANTS/STORAGE/VARIABLES\r
35470 \r
35471                                 ;THIS IS A BLOCK OF VARIABLE LOCATIONS, ZEROED AT THE START OF EACH\r
35472                                 ;PIP RUN, I.E EACH TIME PIP TYPES *.\r
35473 \r
35474                                 ;*****  DO NOT SPLIT THIS BLOCK *****\r
35475                                 IFN FTDSK,<\r
35476                                 RIBFIR: BLOCK   1       ;NUMBER OF WORDS IN LOOKUP\r
35477                                 PPP:    BLOCK   1       ;PROJ-PROG FOR EXTENDED LOOKUP>\r
35478         004040'                 FILNAM: BLOCK   1       ;FILE NAME FROM COMMAND SCANNER\r
35479         004041'                 FILEX:  BLOCK   1       ;EXTENSION\r
35480         004042'                 PR:     BLOCK   1       ;PROTECTION\r
35481         004043'                 PP:     BLOCK   1       ;P-P NUMBER TYPED BY USER\r
35482                                 IFN FTDSK,<BLOCK 20+RIBFIR-.>   ;TOTAL LENGTH OF LOOKUP BLOCK\r
35483                                 ;*****  END OF BLOCK    *****\r
35484         004044'                 DTON:   BLOCK   4       ;OUTPUT DIR. ENTRY\r
35485         004050'                 DEVA:   BLOCK   1       ;SAVE INPUT DEV. NAME\r
35486         004051'                 NO.:    BLOCK   1       ;GENERATE FILE NAMES\r
35487         004052'                 ZRF:    BLOCK   4       ;LOOKUP FILE NAMES\r
35488         004056'                 MTAREQ: BLOCK   1       ;STORE MTA REQUESTS\r
35489 \r
35490         004057'                 COMEOF: BLOCK   1       ;EOF INDICATOR\r
35491         004060'                 COMBUF: BLOCK   ^D41    ;COMMAND BUFFER. ALLOWS 205 CHARS.\r
35492         004131'                 COMCNT: BLOCK   1       ;COMBUF CHARS COUNT\r
35493         004132'                 COMPTS: BLOCK   1       ;POINTER FOR STORING/EXTRACTING CS\r
35494 \r
35495 \r
35496         004133'                 AUX:    BLOCK   1       ;COPT AUXFLG (MTA)\r
35497                                 IFN FTDSK,<\r
35498                                 FNPPN:  BLOCK   1       ;RESERVE #P-P\r
35499                                 FNPPNS: BLOCK   1       ;COPY FNPPN FOR LATEST NON-SYS #P-P>\r
35500         004134'                 ESWTCH: BLOCK   1       ;-1 INDICATES END OF LINE\r
35501         004135'                 XNAME:  BLOCK   1       ;-1 INDICATES SCAN OVERSHOOT WITH A NULL NAME\r
35502                                                         ;0  INDICATES NO SCAN OVERSHOOT\r
35503                                                         ;CONTAINS OVERSHOOT NAME IF NOT NULL\r
35504         004136'                 AB:     BLOCK   1       ;MTA VALUE SWITCHES\r
35505                                                         ;THIS IS THE END OF THE INIT. ZEROED BLOCK.\r
35506 \r
35507 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 74\r
35508 PIP     MAC     24-APR-78 03:15         CONSTANTS/STORAGE/VARIABLES\r
35509 \r
35510         004137' 266254  167132  MONTH:  ASCII /-Jan-/\r
35511         004140' 266154  561132          ASCII /-Feb-/\r
35512         004141' 266334  171132          ASCII /-Mar-/\r
35513         004142' 266036  071132          ASCII /-Apr-/\r
35514         004143' 266334  174532          ASCII /-May-/\r
35515         004144' 266256  567132          ASCII /-Jun-/\r
35516         004145' 266256  566132          ASCII /-Jul-/\r
35517         004146' 266036  563532          ASCII /-Aug-/\r
35518         004147' 266474  570132          ASCII /-Sep-/\r
35519         004150' 266374  372132          ASCII /-Oct-/\r
35520         004151' 266355  773132          ASCII /-Nov-/\r
35521         004152' 266114  561532          ASCII /-Dec-/\r
35522 \r
35523         004153' 440700  004137' MNPT:   POINT 7,MONTH\r
35524 \r
35525         004154'                 PDL:   BLOCK 20         ;PUSHDOWN LIST\r
35526 \r
35527         004174'                 LBUF:  BLOCK 204        ;LINE BUFFER. ALLOW FOR FORTRAN DATA\r
35528                         004377' LBUFE==.-1\r
35529 \r
35530         004400'                 DBUF:  BLOCK 204        ;DIRECTORY BUFFER\r
35531         004604'                         BLOCK   27      ; ALLOW ENOUGH FOR DTA PROT.\r
35532 \r
35533         004633'                 OMOD:   BLOCK 1         ;OUTPUT DEVICE MODE, STATUS\r
35534         004634'                 ODEV:   BLOCK 2         ;OUTPUT DEVICE NAME\r
35535                                                         ;BUFFER HEADER(S) LOC\r
35536 \r
35537         004636'                 ININI1: BLOCK 1         ;INPUT DEVICE\r
35538         004637'                 DEVICE: BLOCK 2\r
35539 \r
35540 \r
35541         004641'                 DEVERR: BLOCK 1\r
35542         004642'                 DERR2:  BLOCK 2\r
35543 \r
35544         004644'                 INMTA1: BLOCK 1\r
35545         004645'                 MTANAM: BLOCK 2\r
35546         004647'                 MATCH:  BLOCK   2       ;NAME AND EXT FOR /L OR (RX)\r
35547         004651'                 RENSN:  BLOCK   1       ;-1 IF RENAME MESSAGE SEEN\r
35548 \r
35549 \r
35550 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 75\r
35551 PIP     MAC     24-APR-78 03:15         RIM LOADER\r
35552 \r
35553                                 SUBTTL  RIM LOADER\r
35554                                 IFE RIMSW,<\r
35555         004652' 265040  002155' RIMTB:  ERRPNT  <Z? /Y switch option not available this assembly!Z>\r
35556         004653' 375005  754500\r
35557         004654' 717575  172306\r
35558         004655' 641015  770350\r
35559         004656' 647375  620334\r
35560         004657' 677504  060754\r
35561         004660' 607235  460704\r
35562         004661' 663124  072320\r
35563         004662' 647464  060746\r
35564         004663' 717135  561330\r
35565         004664' 745020  000000\r
35566                                 XLIST>\r
35567                                 LIST\r
35568 \r
35569                                 IFE FTDSK,<     \r
35570         004665'                         VAR\r
35571         004665'                 LOWTOP:\r
35572                         000000'         END     PIP1>\r
35573 \r
35574 DTBLK   UNASSIGNED, DEFINED AS IF EXTERNAL \r
35575 DTDEV   UNASSIGNED, DEFINED AS IF EXTERNAL \r
35576 HEDL1   UNASSIGNED, DEFINED AS IF EXTERNAL \r
35577 PROTO   UNASSIGNED, DEFINED AS IF EXTERNAL \r
35578 ?5 ERRORS DETECTED\r
35579 \r
35580 PROGRAM BREAK IS 004714\r
35581 \r
35582 10K CORE USED\r
35583 \r
35584 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 81\r
35585 PIP     MAC     24-APR-78 03:15         SYMBOL TABLE\r
35586 \r
35587 AB              004136' \r
35588 ABCHK           000466' \r
35589 ABOUT           004031' \r
35590 ADVF            003653' \r
35591 ADVF2           003654' \r
35592 ALLCLF          000037  SPD\r
35593 ALT175          000175  SPD\r
35594 ALT176          000176  SPD\r
35595 ALTMOD          000033  SPD\r
35596 ASTFLG          000040  SPD\r
35597 AUX             004133' \r
35598 AUXFLG          000013  \r
35599 AUXOUT          004032' \r
35600 BIGBLK          040000  SPD\r
35601 BL0CNT          003735' \r
35602 BL1             003515' \r
35603 BL3             003527' \r
35604 BL4             003473' \r
35605 BLKIN           000006  SPD\r
35606 BLOC0           000000  SPD\r
35607 BLOCK0          003451' \r
35608 BMOD            000002  SPD\r
35609 BSPF            003617' \r
35610 BSPF2           003620' \r
35611 BSPF3           003637' \r
35612 CAL5            002315' \r
35613 CAL6            002317' \r
35614 CALFLG          000017  \r
35615 CDRBIT          100000  SPD\r
35616 CDRCNT          004035' \r
35617 CDRFLG          000040  SPD\r
35618 CDRIN           000100  SPD\r
35619 CHECK           002152' \r
35620 CHECK1          002132' \r
35621 CHECK2          002135' \r
35622 CHKFLG          000040  SPD\r
35623 CHR             000004  \r
35624 CLRBUF          000553' \r
35625 COLON           000072  SPD\r
35626 COMASK          000044' \r
35627 COMBUF          004060' \r
35628 COMCNT          004131' \r
35629 COMEOF          004057' \r
35630 COMERR          001135' \r
35631 COMMA           000054  SPD\r
35632 COMPRO          000056' \r
35633 COMPRP          000056' \r
35634 COMPTR          000055' \r
35635 COMPTS          004132' \r
35636 COMSTO          000037' \r
35637 CON             000001  SPD\r
35638 COPY1           002241' \r
35639 COPY1A          002225' \r
35640 \r
35641 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 81-1\r
35642 PIP     MAC     24-APR-78 03:15         SYMBOL TABLE\r
35643 \r
35644 COPY2A          002311' \r
35645 COPY2B          002313' \r
35646 COPY3           002323' \r
35647 COPY3B          002321' \r
35648 COPY4           002305' \r
35649 COPY5           002300' \r
35650 COPY6           002252' \r
35651 COPY6A          002250' \r
35652 COPY6B          002254' \r
35653 COPY6C          002266' \r
35654 CORE    047000  000011  \r
35655 CPOPJ           001711' \r
35656 CPOPJ1          001707' \r
35657 CPOPJZ          001710' \r
35658 CR              000015  SPD\r
35659 CRLF            003205' \r
35660 CZ              000032  SPD\r
35661 DATE            003717' \r
35662 DATE    047000  000014  \r
35663 DATED           003720' \r
35664 DATO2           003262' \r
35665 DATOUT          003224' \r
35666 DBUF            004400' \r
35667 DEL             000177  SPD\r
35668 DELE1           002443' \r
35669 DELE2           002504' \r
35670 DELE3           002466' \r
35671 DELE5           002513' \r
35672 DENS2           000200  SPD\r
35673 DENS5           000400  SPD\r
35674 DENS8           000600  SPD\r
35675 DERR2           004642' \r
35676 DERR2A          001166' \r
35677 DERR2B          001165' \r
35678 DESCR1          000464' \r
35679 DESCRP          000451' \r
35680 DEV             000100  SPD\r
35681 DEVA            004050' \r
35682 DEVCHR  047000  000004  \r
35683 DEVER           000526' \r
35684 DEVER1          000525' \r
35685 DEVER2          000525' \r
35686 DEVERR          004641' \r
35687 DEVICE          004637' \r
35688 DEVPPN  047000  000055  \r
35689 DEVTST          000506' \r
35690 DFLG            000010  SPD\r
35691 DIR             000005  SPD\r
35692 DIRPPN          003737' \r
35693 DIRST           004012' \r
35694 DIRST1          004013' \r
35695 DISK30          000000  SPD\r
35696 \r
35697 \r
35698 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 81-2\r
35699 PIP     MAC     24-APR-78 03:15         SYMBOL TABLE\r
35700 \r
35701 DISPTA          001436' \r
35702 DISPTB          001420' \r
35703 DOUT            000015  \r
35704 DOUT1           000016  \r
35705 DSKBIT          200000  SPD\r
35706 DSKCHR  047000  000045  \r
35707 DSKIN           040000  SPD\r
35708 DSKOUT          010000  SPD\r
35709 DTABIT          000004  SPD\r
35710 DTADI1          002702' \r
35711 DTADIR          002701' \r
35712 DTADR           002460' \r
35713 DTAID           003736' \r
35714 DTAIN           020000  SPD\r
35715 DTALS1          003043' \r
35716 DTALS2          003050' \r
35717 DTALS3          003052' \r
35718 DTALS4          003055' \r
35719 DTALST          003023' \r
35720 DTAOUT          004000  SPD\r
35721 DTBLK           003337' UXT\r
35722 DTCH1           003277' \r
35723 DTCH2           003272' \r
35724 DTCHEC          003271' \r
35725 DTCLR           002212' \r
35726 DTCOPY          002224' \r
35727 DTD1            002456' \r
35728 DTD5            002544' \r
35729 DTD6            002543' \r
35730 DTDELE          002432' \r
35731 DTDEV           003336' UXT\r
35732 DTDIR           000007  SPD\r
35733 DTJBFF          004015' \r
35734 DTON            004044' \r
35735 DTONSV          004021' \r
35736 DTPDIR          003017' \r
35737 DTRNAM          002522' \r
35738 DTRNM1          002536' \r
35739 DVSWTH          000200  SPD\r
35740 E10A            002053' \r
35741 E10B            001752' \r
35742 EOFBIT          020000  SPD\r
35743 EOTBIT          002000  SPD\r
35744 ERR1            001767' \r
35745 ERR10           001751' \r
35746 ERR1A           001770' \r
35747 ERR1B           001771' \r
35748 ERR2            002076' \r
35749 ERR2A           002107' \r
35750 ERR3            002003' \r
35751 ERR3A           002005' \r
35752 ERR3AA          002007' \r
35753 ERR4            002024' \r
35754 \r
35755 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 81-3\r
35756 PIP     MAC     24-APR-78 03:15         SYMBOL TABLE\r
35757 \r
35758 ERR4A           002033' \r
35759 ERR4B           002033' \r
35760 ERR5            002066' \r
35761 ERR5A           002060' \r
35762 ERR6            002040' \r
35763 ERR6A           002040' \r
35764 ERR6B           002045' \r
35765 ERR7A           002115' \r
35766 ERR8            002122' \r
35767 ERR9            001762' \r
35768 ESQ             040000  SPD\r
35769 ESWTCH          004134' \r
35770 EXIT    047000  000012  \r
35771 FF              000014  SPD\r
35772 FFLG            000020  SPD\r
35773 FIL1            003410' \r
35774 FIL11           003365' \r
35775 FIL2            003430' \r
35776 FIL3            003414' \r
35777 FIL4            003443' \r
35778 FIL5            003445' \r
35779 FILEX           004041' \r
35780 FILNAM          004040' \r
35781 FILTYP          003353' \r
35782 FLAG            000006  \r
35783 FN.EX           001146' \r
35784 FNEX            000001  SPD\r
35785 FNSET           002746' \r
35786 FNSET1          002762' \r
35787 FRSTIN          000400  SPD\r
35788 FTDSK           000000  SPD\r
35789 GET             001462' \r
35790 GET1            001557' \r
35791 GET1A           001566' \r
35792 GET2            001532' \r
35793 GET4            001553' \r
35794 GET5            001521' \r
35795 GET7            001666' \r
35796 GET7B           001712' \r
35797 GET7C           001673' \r
35798 GETA2           001727' \r
35799 GETA3           001717' \r
35800 GETA5           001724' \r
35801 GETA5A          001747' \r
35802 GETA7           001735' \r
35803 GETBUF          001404' \r
35804 GETCOM          001175' \r
35805 GETDEC          001236' \r
35806 GETEN2          001415' \r
35807 GETN1           001240' \r
35808 \r
35809 \r
35810 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 81-4\r
35811 PIP     MAC     24-APR-78 03:15         SYMBOL TABLE\r
35812 \r
35813 GETN2           001306' \r
35814 GETNUD          001305' \r
35815 GETNUM          001237' \r
35816 GETOCT          001235' \r
35817 GETPC1          001506' \r
35818 GETPC2          001544' \r
35819 GETPC3          001542' \r
35820 GETPC4          001476' \r
35821 GETPPN          003333' \r
35822 GETPPN  047000  000024  \r
35823 GETT10          001206' \r
35824 GETT11          001217' \r
35825 GETT2           001371' \r
35826 GETT3           001252' \r
35827 GETT3A          001276' \r
35828 GETT3B          001274' \r
35829 GETT4           001372' \r
35830 GETT5           001320' \r
35831 GETT5A          001321' \r
35832 GETT6           001300' \r
35833 GETT7           001327' \r
35834 GETT8           001335' \r
35835 GETT9           001223' \r
35836 GETTA           001352' \r
35837 GETTAB  047000  000041  \r
35838 GETTIN          001365' \r
35839 GETUPJ          001232' \r
35840 GFLG            000200  SPD\r
35841 HEDL1           004706' UXT\r
35842 HPAGE           000020  SPD\r
35843 IBF             003742' \r
35844 IBFLG           000400  SPD\r
35845 IFLG            000100  SPD\r
35846 IN              000003  SPD\r
35847 INBIT           000002  SPD\r
35848 INERR           001620' \r
35849 INFO            002711' \r
35850 INFO1           002730' \r
35851 INFO2           002735' \r
35852 INFO3           002743' \r
35853 INFOFL          000100  SPD\r
35854 INHIB           000001  SPD\r
35855 INICN1          000541' \r
35856 INICN2          000542' \r
35857 INICON          001410' \r
35858 INIMTA          003667' \r
35859 ININI1          004636' \r
35860 ININIT          000426' \r
35861 INLOOK          000204' \r
35862 INLUK1          000217' \r
35863 INMTA           003676' \r
35864 INMTA1          004644' \r
35865 INOMTA          003666' \r
35866 \r
35867 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 81-5\r
35868 PIP     MAC     24-APR-78 03:15         SYMBOL TABLE\r
35869 \r
35870 INP             001616' \r
35871 IOERR           001020' \r
35872 IOERRG          001114' \r
35873 IOERRN          001107' \r
35874 IOS             000010  \r
35875 JFLG            001000  SPD\r
35876 JOBFF           000547' EXT\r
35877 JOBREL          000437' EXT\r
35878 JOBSA           000007' EXT\r
35879 JOBSTR  047000  000047  \r
35880 K               000000  SPD\r
35881 K1              003724' \r
35882 K3              003725' \r
35883 K4              003726' \r
35884 LA              000137  SPD\r
35885 LBUF            004174' \r
35886 LBUFE           004377' SPD\r
35887 LDP             004000  SPD\r
35888 LF              000012  SPD\r
35889 LFLG            000020  SPD\r
35890 LINE            000001  SPD\r
35891 LISTTY          002000  SPD\r
35892 LOOK            002566' \r
35893 LOOK01          002570' \r
35894 LOOK1           002655' \r
35895 LOOK2           002623' \r
35896 LOOK3           002630' \r
35897 LOOK4           002635' \r
35898 LOOK5           002635' \r
35899 LOOK6           002572' \r
35900 LOOK6A          002614' \r
35901 LOOK6C          002616' \r
35902 LOOK6D          002620' \r
35903 LOOK7A          002640' \r
35904 LOOK7B          002604' \r
35905 LOOK7C          002650' \r
35906 LOOK8           002607' \r
35907 LOOKA           002767' \r
35908 LOOKB           003006' \r
35909 LOOKC           003014' \r
35910 LOOKF           003002' \r
35911 LOW             000000' \r
35912 LOWTOP          004665' \r
35913 LPTBIT          040000  SPD\r
35914 LPTOUT          000010  SPD\r
35915 M1              000140' \r
35916 M2              000132' \r
35917 M3              000107' \r
35918 M3A             000111' \r
35919 M4              000154' \r
35920 M5              000173' \r
35921 MAIN1           000411' \r
35922 \r
35923 \r
35924 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 81-6\r
35925 PIP     MAC     24-APR-78 03:15         SYMBOL TABLE\r
35926 \r
35927 MAIN2           000421' \r
35928 MAINA1          000031' \r
35929 MAINA2          000275' \r
35930 MAINA3          000301' \r
35931 MAINA4          000307' \r
35932 MAINA5          000323' \r
35933 MAINB           000415' \r
35934 MAINC           000073' \r
35935 MARKEF          003605' \r
35936 MATCH           004647' \r
35937 MATEX           000002  SPD\r
35938 MATFN           000004  SPD\r
35939 MNPT            004153' \r
35940 MONTH           004137' \r
35941 MORCOR          000262' \r
35942 MPC2            002350' \r
35943 MSTIME  047000  000023  \r
35944 MT1             003531' \r
35945 MT2FLG          002000  SPD\r
35946 MT5FLG          001000  SPD\r
35947 MT8FLG          000400  SPD\r
35948 MTABIT          000020  SPD\r
35949 MTAFLG          000001  SPD\r
35950 MTAIN           000400  SPD\r
35951 MTANAM          004645' \r
35952 MTAOUT          000200  SPD\r
35953 MTAREQ          004056' \r
35954 MTBFLG          000002  SPD\r
35955 MTC1            003562' \r
35956 MTCONT          003554' \r
35957 MTDFLG          000100  SPD\r
35958 MTEFLG          004000  SPD\r
35959 MTFFLG          000020  SPD\r
35960 MTFLG           200000  SPD\r
35961 MTPFLG          000200  SPD\r
35962 MTPTC1          002362' \r
35963 MTPTCR          002337' \r
35964 MTR1            003701' \r
35965 MTTFLG          000004  SPD\r
35966 MTUFLG          000040  SPD\r
35967 MTWAIT          003603' \r
35968 MTWFLG          000010  SPD\r
35969 NAME            000557' \r
35970 NAMTAB          003766' \r
35971 NEWDEV          000010  SPD\r
35972 NEWFIL          000020  SPD\r
35973 NEWPP           000020  SPD\r
35974 NM1             000566' \r
35975 NM10            000654' \r
35976 NM11            000661' \r
35977 NM12            000664' \r
35978 NM13            000666' \r
35979 NM14            000670' \r
35980 \r
35981 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 81-7\r
35982 PIP     MAC     24-APR-78 03:15         SYMBOL TABLE\r
35983 \r
35984 NM15            000672' \r
35985 NM16            000700' \r
35986 NM2             000567' \r
35987 NM3             000571' \r
35988 NM4             000576' \r
35989 NM4A            000602' \r
35990 NM5             000606' \r
35991 NM5A            000613' \r
35992 NM5B            000673' \r
35993 NM6             000633' \r
35994 NM7             000640' \r
35995 NM8             000643' \r
35996 NM9             000646' \r
35997 NO.             004051' \r
35998 NOMORE          000020  SPD\r
35999 NSMOD           000040  SPD\r
36000 NSPROT          000002  SPD\r
36001 NSWTCH          000400  SPD\r
36002 OBF             003745' \r
36003 OBI             003750' \r
36004 ODEV            004634' \r
36005 OFLG            000001  SPD\r
36006 OKB             003716' \r
36007 OKBD            003715' \r
36008 OKBLK0          002422' \r
36009 OKBLKS          002412' \r
36010 OMOD            004633' \r
36011 OMOD1           000251' \r
36012 OMODE           000223' \r
36013 OMODER          000267' \r
36014 ONEOUT          000040  SPD\r
36015 OPTMAX          003722' \r
36016 OPTR            004020' \r
36017 OPTRA           003723' \r
36018 OSFLG           400000  SPD\r
36019 OUT             000002  SPD\r
36020 OUTBIT          000001  SPD\r
36021 OUTCH1          000711' \r
36022 OUTCH2          003307' \r
36023 OUTCH3          003320' \r
36024 OUTCHK          003305' \r
36025 OUTDC1          003235' \r
36026 OUTDE4          003252' \r
36027 OUTDEC          003260' \r
36028 OUTLB1          000712' \r
36029 OUTLB2          000745' \r
36030 OUTLB3          000754' \r
36031 OUTLBA          000717' \r
36032 OUTLBF          000707' \r
36033 OUTLOO          000200' \r
36034 OUTOCT          003236' \r
36035 OUTP            000762' \r
36036 OUTP1           000764' \r
36037 \r
36038 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 81-8\r
36039 PIP     MAC     24-APR-78 03:15         SYMBOL TABLE\r
36040 \r
36041 OUTP3           000772' \r
36042 OUTP4           000770' \r
36043 P               000005  \r
36044 P1              000010' \r
36045 P6BIT           002201' \r
36046 P6BIT1          002203' \r
36047 P6BIT2          002207' \r
36048 PARE            001000  SPD\r
36049 PCHTAB          001546' \r
36050 PCONV           000010  SPD\r
36051 PDIR1           003101' \r
36052 PDIR1B          003070' \r
36053 PDIR2           003211' \r
36054 PDIR21          003220' \r
36055 PDIR2A          003213' \r
36056 PDIR3           003141' \r
36057 PDIR3A          003177' \r
36058 PDIR3B          003174' \r
36059 PDIR4           003107' \r
36060 PDIR4A          003130' \r
36061 PDIR4B          003131' \r
36062 PDIR6           003200' \r
36063 PDIR7           003221' \r
36064 PDIR8           003075' \r
36065 PDL             004154' \r
36066 PERIOD          000056  SPD\r
36067 PFLG            000004  SPD\r
36068 PICUP           002662' \r
36069 PICUP2          002662' \r
36070 PICUP4          002665' \r
36071 PIP             000012' \r
36072 PIP1            000000' \r
36073 PIP2            000013' \r
36074 PIP2A           000013' \r
36075 PIP2B           000023' \r
36076 PJOB    047000  000030  \r
36077 PP              004043' \r
36078 PP11            003732' \r
36079 PP13            003733' \r
36080 PPTIN           200000  SPD\r
36081 PPTOUT          400000  SPD\r
36082 PR              004042' \r
36083 PRECOP          002220' \r
36084 PRETXT          002155' \r
36085 PRN             003243' \r
36086 PRNUMA          003237' \r
36087 PROTK           000476' \r
36088 PROTK1          000504' \r
36089 PROTO           003173' UXT\r
36090 PROTS           004033' \r
36091 PSCAN           000343' \r
36092 PSCAN1          000376' \r
36093 PSCAN2          000352' \r
36094 \r
36095 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 81-9\r
36096 PIP     MAC     24-APR-78 03:15         SYMBOL TABLE\r
36097 \r
36098 PSCAN3          000351' \r
36099 PSCAN4          000374' \r
36100 PSCAN5          000407' \r
36101 PSCAN6          000404' \r
36102 PSCANA          000333' \r
36103 PSCANB          000326' \r
36104 PTEXT           002155' \r
36105 PTEXT1          002167' \r
36106 PTEXT2          002166' \r
36107 PTPBIT          000400  SPD\r
36108 PTRBIT          000200  SPD\r
36109 PTRPT           004036' \r
36110 PUT             000756' \r
36111 PUTCON          002175' \r
36112 QFLG            000001  SPD\r
36113 QPIP            003727' \r
36114 QUEST           001652' \r
36115 QUEST2          001662' \r
36116 RBSIZ           000005  SPD\r
36117 READ1           002000  SPD\r
36118 REDFLG          000001  SPD\r
36119 RENAME          002553' \r
36120 RENSN           004651' \r
36121 RESET   047000  000000  \r
36122 REWIND          003602' \r
36123 RFLG            000100  SPD\r
36124 RIBSTS          000017  SPD\r
36125 RIMFLG          000002  SPD\r
36126 RIMSW           000000  SPD\r
36127 RIMTB           004652' \r
36128 RSDCFL          000200  SPD\r
36129 RUN     047000  000035  \r
36130 RXFLG           020000  SPD\r
36131 SAVAC           003761' \r
36132 SBIN            000004  SPD\r
36133 SLEOT           003615' \r
36134 SNI             100000  SPD\r
36135 SPACE           000040  SPD\r
36136 SPCT            004030' \r
36137 SPMOD           001000  SPD\r
36138 SPOK            020000  SPD\r
36139 SQMOD           000200  SPD\r
36140 SQNUM           004014' \r
36141 SR2             002371' \r
36142 SSWTCH          001000  SPD\r
36143 STAR            003730' \r
36144 STS             000400  SPD\r
36145 SUS             010000  SPD\r
36146 SVER            000005  SPD\r
36147 SVIBF           003740' \r
36148 SVJBF1          004017' \r
36149 SVJBFF          004016' \r
36150 \r
36151 \r
36152 \fPIP V.030 MOD SANDERS/DBP 19-AUG-71    MACRO 10 05:52 24-APR-78 PAGE 81-10\r
36153 PIP     MAC     24-APR-78 03:15         SYMBOL TABLE\r
36154 \r
36155 SVOBF           003741' \r
36156 SVPTR1          004023' \r
36157 SVPTR2          004024' \r
36158 SYSFLG          000002  SPD\r
36159 SYSLST          000004  SPD\r
36160 SYSPP           004037' \r
36161 T1              000001  \r
36162 T2              000002  \r
36163 T3              000003  \r
36164 T4              000007  \r
36165 T5              000011  \r
36166 T6              000012  \r
36167 T7              000014  \r
36168 TAB             000011  SPD\r
36169 TABCT           004027' \r
36170 TABOUT          000755' \r
36171 TABSP           000010  SPD\r
36172 TAPE            000004  SPD\r
36173 TBMOD           000004  SPD\r
36174 TFI             003753' \r
36175 TFO             003756' \r
36176 TLBRKT          004025' \r
36177 TMPCOR  047000  000044  \r
36178 TMPI            004000  SPD\r
36179 TMPO            010000  SPD\r
36180 TOTBRK          004026' \r
36181 TTYBIT          000010  SPD\r
36182 TTYIN           001000  SPD\r
36183 TTYOUT          100000  SPD\r
36184 TTYZ            002376' \r
36185 TWL             003731' \r
36186 TXTA            001062' \r
36187 TXTB            001066' \r
36188 TXTC            001074' \r
36189 TXTC1           001100' \r
36190 TXTD            001042' \r
36191 TXTD1           001047' \r
36192 TXTD2           001055' \r
36193 UNLOAD          003600' \r
36194 UPROJ           003734' \r
36195 UTPCLR  047000  000013  \r
36196 VPIP            000030  SPD\r
36197 WAIT    072000  000000  \r
36198 WCH             000000  SPD\r
36199 WRTLOK          400000  SPD\r
36200 XFLG            002000  SPD\r
36201 \fTTTTTTTTTTTTTTT      EEEEEEEEEEEEEEE      NNN         NNN      DDDDDDDDDDDD         MMM         MMM      PPPPPPPPPPPP   \r
36202 TTTTTTTTTTTTTTT      EEEEEEEEEEEEEEE      NNN         NNN      DDDDDDDDDDDD         MMM         MMM      PPPPPPPPPPPP   \r
36203 TTTTTTTTTTTTTTT      EEEEEEEEEEEEEEE      NNN         NNN      DDDDDDDDDDDD         MMM         MMM      PPPPPPPPPPPP   \r
36204       TTT            EEE                  NNN         NNN      DDD         DDD      MMMMMM   MMMMMM      PPP         PPP\r
36205       TTT            EEE                  NNN         NNN      DDD         DDD      MMMMMM   MMMMMM      PPP         PPP\r
36206       TTT            EEE                  NNN         NNN      DDD         DDD      MMMMMM   MMMMMM      PPP         PPP\r
36207       TTT            EEE                  NNNNNN      NNN      DDD         DDD      MMM   MMM   MMM      PPP         PPP\r
36208       TTT            EEE                  NNNNNN      NNN      DDD         DDD      MMM   MMM   MMM      PPP         PPP\r
36209       TTT            EEE                  NNNNNN      NNN      DDD         DDD      MMM   MMM   MMM      PPP         PPP\r
36210       TTT            EEEEEEEEEEEE         NNN   NNN   NNN      DDD         DDD      MMM         MMM      PPPPPPPPPPPP   \r
36211       TTT            EEEEEEEEEEEE         NNN   NNN   NNN      DDD         DDD      MMM         MMM      PPPPPPPPPPPP   \r
36212       TTT            EEEEEEEEEEEE         NNN   NNN   NNN      DDD         DDD      MMM         MMM      PPPPPPPPPPPP   \r
36213       TTT            EEE                  NNN      NNNNNN      DDD         DDD      MMM         MMM      PPP            \r
36214       TTT            EEE                  NNN      NNNNNN      DDD         DDD      MMM         MMM      PPP            \r
36215       TTT            EEE                  NNN      NNNNNN      DDD         DDD      MMM         MMM      PPP            \r
36216       TTT            EEE                  NNN         NNN      DDD         DDD      MMM         MMM      PPP            \r
36217       TTT            EEE                  NNN         NNN      DDD         DDD      MMM         MMM      PPP            \r
36218       TTT            EEE                  NNN         NNN      DDD         DDD      MMM         MMM      PPP            \r
36219       TTT            EEEEEEEEEEEEEEE      NNN         NNN      DDDDDDDDDDDD         MMM         MMM      PPP            \r
36220       TTT            EEEEEEEEEEEEEEE      NNN         NNN      DDDDDDDDDDDD         MMM         MMM      PPP            \r
36221       TTT            EEEEEEEEEEEEEEE      NNN         NNN      DDDDDDDDDDDD         MMM         MMM      PPP            \r
36222 \r
36223 \r
36224 \r
36225 \r
36226 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
36227 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
36228 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
36229 LLL                  SSS                        TTT                                                                     \r
36230 LLL                  SSS                        TTT                                                                     \r
36231 LLL                  SSS                        TTT                                                                     \r
36232 LLL                  SSS                        TTT                                                                     \r
36233 LLL                  SSS                        TTT                                                                     \r
36234 LLL                  SSS                        TTT                                                                     \r
36235 LLL                     SSSSSSSSS               TTT                                                                     \r
36236 LLL                     SSSSSSSSS               TTT                                                                     \r
36237 LLL                     SSSSSSSSS               TTT                                                                     \r
36238 LLL                              SSS            TTT                                                                     \r
36239 LLL                              SSS            TTT                                                                     \r
36240 LLL                              SSS            TTT                                                                     \r
36241 LLL                              SSS            TTT                                                                     \r
36242 LLL                              SSS            TTT                                                                     \r
36243 LLL                              SSS            TTT                                                                     \r
36244 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
36245 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
36246 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
36247 \r
36248 \r
36249 \r
36250 \r
36251 Request created: 24-April-1978  05:53:58\r
36252 File: DSKB1 :TENDMP.LST   [8,296] Created: 20-April-1967 05:53:00 Printed: 24-April-1978 05:53:42\r
36253 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1142 \r
36254 File will be deleted after printing\r
36255 \f\r
36256 TENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032     MACRO 10 05:53 24-APR-78 PAGE 1\r
36257 TENDMP  MAC     24-APR-78 14:35         TD10 VERSION\r
36258 \r
36259                                 TITLE TENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032\r
36260                                         IFNDEF REL,<REL=0>      ;0 PAPER TAPE, 1 RELOCATABLE BINARY\r
36261                                         IFNDEF MAGT,<MAGT=0>    ;0 DTAPE, 1 MTAPE\r
36262                                         IFN MAGT,<\r
36263                                 ; MAGTAPE UTILITY ROUTINE - COURTSEY DATALINE SYSTEMS J HANCOCK\r
36264                                         >\r
36265                                         IFNDEF MODE,<MODE=0>    ;0 IS TD10, 1 IS 551/136\r
36266                                         IFNDEF CORE,<CORE=4>    ;NUMBER OF 8K MEMORY BLOCKS\r
36267 \r
36268                                         IFE MODE,<SUBTTL TD10 VERSION>\r
36269                                         IFN MODE,<SUBTTL 551/136 VERSION>\r
36270 \r
36271                                 IFE REL,<\r
36272                                 IFE MAGT,<RIM10B>\r
36273                                 IFN MAGT,<RIM10>>\r
36274                         000210          UTC=210\r
36275                         000214          UTS=214\r
36276                         000200          DC=200\r
36277                         000320          DTC=320\r
36278                         000324          DTS=324\r
36279 \r
36280                         000000  F=0     ;MUST BE 0. USED BY JRA'S\r
36281                         000002  A=2     ;MISC TEMP. HOLDS 136 CONO INDEX IN UWAIT\r
36282                         000001  B=1     ;TEMP. HOLDS BLOCK # COMPUTATION IN SEARCH\r
36283                         000003  C=3     ;HOLDS BITS FOR DECTAPE CONO DURING I/O\r
36284                         000004  D=4     ;HOLDS POINTERS FOR AOBJN'S THROUGH CORE\r
36285                         000005  E=5     ;HOLDS COUNT OF WORDS IN CURRENT DT BLOCK\r
36286                         000006  P=6     ;PC FOR JSP'S\r
36287                         000007  CKS=7   ;HAD BEEN CHECKSUM IN MACDMP\r
36288                         000010  FILN=10 ;NUMBER OF FILE IN DIRECTORY, 1 TO 26 OCTAL\r
36289                         000011  BLKNO=11        ;BLOCK NUMBER SEARCHED FOR ON TAPE\r
36290                         000012  WRITE=12        ;MULTI-STATE FLAG FOR DEFINING I/O OPERATION\r
36291                                                 ;1=D 0=K -1=ELSE\r
36292                         000013  PNTR=13 ;POINTER TO BYTE TABLE IN DIRECTORY\r
36293                         000014  CH=14   ;HOLDS 6BIT CHARACTER OF COMMAND, OR -1\r
36294                         000015  Q=15    ;ANOTHER JSP AC\r
36295                         000016  G=16    ;RARELY USED VERY TEMP\r
36296                         000017  CT=17   ;COUNT OF WORDS TO DUMP\r
36297 \r
36298                         077777  COMPTR=BEGR+377 ;COMMAND POINTER, IF SUPPLIED\r
36299                         077175          LOZAD=BEGR-203  ;WHEN CORE IS CLEARED, IT\r
36300                                                         ;IS FROM 40 THRU LOZAD\r
36301                         000020          LOW=20  ;FIRST LOCATION CONSIDERED FOR DUMPING\r
36302                         077175          HIGH=BEGR-203   ;LAST LOCATION CONSIDERED FOR DUMPING\r
36303                                                         ;ZEROED AT BEG THESE DAYS\r
36304                         077176          FOOF=BEGR-202   ;NEEDED FOR ZERO CORE SEARCH, ZEROED AT BEG1\r
36305                         077177  TAB=BEGR-201            ;FILE DIRECTORY\r
36306                         077377  LINK=BEGR-1             ;0-17=LINK, 18-27=FBN, 29-35=WC\r
36307         077400                  IFE REL,<IFE MAGT,<LOC 17400+<<CORE-1>*20000>>\r
36308                                          IFN MAGT,<LOC 17377+<<CORE-1>*20000>\r
36309                                         IOWD    LAST-BEGR+1,BEGR>>\r
36310 \r
36311 \fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032    MACRO 10 05:53 24-APR-78 PAGE 2\r
36312 TENDMP  MAC     24-APR-78 14:35         TD10 VERSION\r
36313 \r
36314                                 ;INITIAL ENTRY IS AT BEGR, UNLESS A COMMAND POINTER IS\r
36315                                 ;SUPPLIED IN COMPTR. IN THAT CASE, ENTRY IS AT BEGR+1\r
36316 \r
36317         077400  402000  077777  BEGR:   SETZM COMPTR    ;CLEAR ANY JUNK IN COMMAND POINTER\r
36318         077401  700200  635550          CONO 635550     ;I/O RESET, ETC.\r
36319         077402  265300  077467  BEG:    JSP P,CRR       ;TYPE A CR-LF\r
36320         077403  201200  077750          MOVEI D,SPNT-2  ;PREPARE TO REMOVE AOBJN POINTERS\r
36321         077404  403100  077176  BEG1:   SETZB A,FOOF    ;CLEAR A TO PUT IN CORE, CLEAR\r
36322                                                         ;FOOF FOR  THE NEXT ZERO CORE SEARCH\r
36323         077405  250104  000002          EXCH A,2(D)     ;REMOVE HEADER LIST\r
36324         077406  253100  077406          AOBJN A,.       ;COUNT THROUGH TO NEXT HEADER\r
36325         077407  201202  777777          MOVEI D,-1(A)   ;ACCOUNT FOR OVERSHOOT IN AOBJN\r
36326         077410  326200  077404          JUMPN D,BEG1    ;IF WE DIDNT AOBJN A 0, GO FOR NEXT HDR\r
36327         077411  200540  077753          MOVE PNTR,[XWD 500,TAB-1]       ;5 BIT BYTES IN DIRECTORY\r
36328         077412  403600  000000          SETZB CH,F\r
36329         077413  475500  000215  CRCH:   SETOI WRITE,215 ;USED FOR CARRET TYPEOUT\r
36330         077414  403140  077175  TYI:    SETZB C,HIGH    ;HOPEFULLY HIGH IS TEMPORARY\r
36331         077415  403040  000005          SETZB B,E       ;NAME INITIALIZING\r
36332         077416  665040  400000          TLOA B,400000   ;NULL NAME IS "@. "\r
36333         077417  201240  000002  SPACE:  MOVEI E,C-1     ;EXTENSION INTO C\r
36334         077420  505240  020600          HRLI E,20600    ;FAKE OUT END TEST OF BYTE PTR\r
36335                                 ;STOP TAPE DRIVE\r
36336                                 IFN MODE,<CONO UTC,0>\r
36337         077421  732200  400000  IFE MODE,<CONO DTC,400000>\r
36338         077422  134120  077400  NEXT:   ILDB A,@BEGR    ;GIVES A 0 UNLESS COMMAND POINTER SUPPLIED\r
36339                                                         ;RH OF NEXT IS USED AS A CONSTANT\r
36340         077423  475400  000207  BELL:   SETOI FILN,207  ;INITIALIZATION FOR SEARCH\r
36341         077424  403440  000017          SETZB BLKNO,CT  ; "\r
36342         077425  402000  077377          SETZM LINK\r
36343         077426  326100  077433          JUMPN A,RCH     ;JUMP IF COMMAND READ FROM CORE\r
36344         077427  712340  000040          CONSO TTY,40    ;TYPEIN FLAG?\r
36345         077430  254000  077427          JRST .-1        ;NO,WAIT\r
36346         077431  712040  000002          DATAI TTY,A     ;GET TYPED IN CHARACTER\r
36347         077432  265300  077471          JSP P,TYO       ;ECHO IT (WITH PARITY)\r
36348         077433  405100  000177  RCH:    ANDI A,177      ;STRIP OFF PARITY\r
36349         077434  306100  000177          CAIN A,177      ;RUBOUT?\r
36350         077435  254000  077400          JRST BEGR       ;YES. RESTART TENDMP\r
36351         077436  302100  000033          CAIE A,33       ;NEW ALTMODE?\r
36352         077437  301100  000175          CAIL A,175      ;OR 175 OR 176 ALTMODES?\r
36353         077440  254000  077501          JRST ALTTST     ;YES, SOME ALTMODE.\r
36354         077441  301100  000140          CAIL A,140      ;LOWER CASE CHARACTER?\r
36355         077442  620100  000040          TRZ A,40        ;YES. CHANGE TO UPPER CASE\r
36356         077443  275100  000040          SUBI A,40       ;CONVERT TO SIXBIT\r
36357         077444  321100  077504          JUMPL A,CARRET  ;ANY CONTROL CHARACTER\r
36358         077445  322100  077417          JUMPE A,SPACE   ;CHAR WAS 40\r
36359         077446  603240  770000  NEXT1:  TLNE E,770000   ;NO MORE THAN SIX CHARS\r
36360         077447  136100  000005          IDPB A,E        ;GOES INTO AC1 = B\r
36361         077450  254000  077422          JRST NEXT       ;GET ANOTHER CHARACTER\r
36362 \r
36363 \r
36364 \fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032    MACRO 10 05:53 24-APR-78 PAGE 3\r
36365 TENDMP  MAC     24-APR-78 14:35         TD10 VERSION\r
36366 \r
36367 \r
36368                                 ;HERE ON JUMP BLOCK DURING LOADS, OR NUMBER>7 ALT\r
36369         077451                  JBLK:\r
36370                                 ;STOP TAPE DRIVE\r
36371                                 IFN MODE,<CONO UTC,0>\r
36372         077451  732200  400000  IFE MODE,<CONO DTC,400000>\r
36373         077452  542200  077454          HRRM D,SADR     ;SAVE STARTING ADDRESS\r
36374         077453  326600  077402          JUMPN CH,BEG    ;IF NOT LOADGO COMMAND\r
36375         077454  254000  077402  SADR:   JRST BEG        ;CURRENT S.A.\r
36376         077455                  LOADS:                  ;HERE TO LOAD TAPE TO CORE\r
36377         077455  201200  077176          MOVEI D,LOZAD+1 ;FIRST LOC NOT TO ZERO\r
36378         077456  402000  000040          SETZM 40        ;A "FEATURE"\r
36379         077457  200140  077754          MOVE C,[XWD 40,41]      ;PREPARE TO CLEAR CORE.\r
36380         077460  606600  000003          TRNN CH,3       ;SKIP ON M,N   NOT ON L,T,@\r
36381         077461  251144  777777          BLT C,-1(D)     ;ZERO CORE\r
36382         077462  265640  077557  LOAD:   JSP Q,LODUMP    ;START READING FILE. LODUMP PROCESSES\r
36383                                                         ;ONE HEADER AND ITS DATA\r
36384         077463  254000  077462          JRST LOAD       ;IF OK, GET NEXT BLOCK.(IF NONE, \r
36385                                                         ;LODUMP RETURNS TO JBLK.)\r
36386         077464  336240  000012  DELE:   SKIPN E,WRITE   ;SKIP IF NOT IN THE K PHASE OF A D COMMAND.\r
36387                                                         ;OR A K COMMAND\r
36388                                                         ;ALSO, SET E =0, SO SEARCH HAPPENS IN RBLK\r
36389         077465  344500  077713  CLS1:   AOJA WRITE,CLSTP        ; 0 TO 1. GO DUMP OUT DIRECTORY.\r
36390         077466  334300  077422  ERR:    SKIPA P,NEXT    ;SET TO RETURN TO BEGR\r
36391         077467  334100  077413  CRR:    SKIPA A,CRCH    ;LIKE HRROI A,215 AND SKIPA\r
36392         077470  334100  077423          SKIPA A,BELL    ;GET A BELL CHARACTER\r
36393         077471  336000  077777  TYO:    SKIPN COMPTR    ;DONT TYO IF NO TYI, UNLESS ERR\r
36394         077472  712140  000002          DATAO TTY,A     ;TYPE OUT\r
36395         077473  712300  000020          CONSZ TTY,20    ;WAIT FOR TTY TO FINISH\r
36396         077474  254000  077473          JRST .-1        ;NOT YET\r
36397         077475  302100  000215          CAIE A,215      ;IF CR TYPED IN,\r
36398         077476  325106  000000          JUMPGE A,(P)    ;OR SIGN BIT OF CHAR ON,(SEE CRR)\r
36399         077477  201100  000012          MOVEI A,12      ;APPEND A LINEFEED\r
36400         077500  254000  077471          JRST TYO        ;GO TYPE LF\r
36401 \r
36402 \r
36403 \fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032    MACRO 10 05:53 24-APR-78 PAGE 4\r
36404 TENDMP  MAC     24-APR-78 14:35         TD10 VERSION\r
36405 \r
36406         077501  607040  004040  ALTTST: TLNN B,4040     ;IF ALPHA CHARACTERS, DONT GET CH\r
36407         077502  135600  000005          LDB CH,E        ;LAST CH BEFORE ALT, -40\r
36408         077503  326600  077667          JUMPN CH,ALTMD  ;IF CH NOT NULL, GOT PROCESS ALTMODE\r
36409         077504  205400  777752  CARRET: MOVSI FILN,-26  ;FILE NAME SPECIFIED. FIRST THING TO\r
36410                                                         ;DO IS LOOK IT UP IN DIRECTORY\r
36411         077505  336010  077322  LUP:    SKIPN TAB+123(FILN)     ;SEARCH FOR FREE FILE\r
36412         077506  332450  077350          SKIPE BLKNO,TAB+151(FILN)       ;CHECK BOTH WORDS\r
36413         077507  634440  000011          TDZA BLKNO,BLKNO        ;ENSURE CLEAR BLOCK NUMBER\r
36414         077510  542400  077517          HRRM FILN,FREE  ;SAVE NUMBER OF A FREE FILE\r
36415         077511  510710  077350          HLLZ G,TAB+151(FILN)    ;ONLY CHECK LEFT OF 2ND WD\r
36416         077512  316050  077322          CAMN B,TAB+123(FILN)    ;SEARCH FOR TYPED-IN FILE\r
36417         077513  312140  000016          CAME C,G                ;BOTH WORDS\r
36418         077514  253400  077505          AOBJN FILN,LUP  ;NOT THIS ONE. KEEP LOOKING\r
36419         077515  321400  077522          JUMPL FILN,BEG69        ;IF FILE FOUND, JUMP\r
36420         077516  323500  077466          JUMPLE WRITE,ERR        ;IF NOT FOUND, BETTER BE DUMP\r
36421         077517  201400  077517  FREE:   MOVEI FILN,.    ;DUMP & NOT FOUND, MAKE ENTRY WHERE FREE\r
36422                                                         ;(ADDRESS MODIFIED ABOVE)\r
36423         077520  332010  077322          SKIPE TAB+123(FILN)     ;MAKE SURE HOLE AVAILABLE\r
36424         077521  254000  077466          JRST ERR        ;NO FREE SLOTS\r
36425 \r
36426         077522  201410  000001  BEG69:  MOVEI FILN,1(FILN)      ;FILN IS FILE #+1; CLR LH\r
36427         077523  321500  077455          JUMPL WRITE,LOADS       ;ALL LOAD INSTRUCTIONS\r
36428                                 IFE MAGT,<\r
36429         077524  336000  000012          SKIPN WRITE     ;DELETE? (K COMMAND)\r
36430         077525  403040  000003          SETZB B,C       ;YES, KILL FILE\r
36431         077526  202050  077321          MOVEM B,TAB+122(FILN)   ;CLEAR IF DELE, ENTER IF NEW DUMP\r
36432         077527  512150  077347          HLLZM C,TAB+150(FILN)   ;BOTH WORDS\r
36433                                                                 ;FALL INTO DUMP ROUTINE\r
36434                                                                 ;WHICH IS A NO-OP FOR K\r
36435 \r
36436 \r
36437 \fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032    MACRO 10 05:53 24-APR-78 PAGE 5\r
36438 TENDMP  MAC     24-APR-78 14:35         TD10 VERSION\r
36439 \r
36440 \r
36441                                 ;DUMP WRITES OUT CORE ONTO TAPE\r
36442 \r
36443                                 ;DUMP THRU DUMP2-1 SETS UP POINTERS TO NON-ZERO CORE AREAS. THESE\r
36444                                 ;AOBJN POINTERS ARE CALLED  "HEADERS", AND PRECEDE THE DATA WHEN\r
36445                                 ;THE TAPE IS WRITTEN.\r
36446                                 ;THE FIRST HEADER IS KEPT IN SPNT. SUCCESIVE HEADERS GO INTO THE FIRST\r
36447                                 ;ZERO WORD FOLLOWING THE BLOCK CORRESPONDING TO THE PREVIOUS HEADER.\r
36448                                 ;AFTER THE LAST NON-ZERO BLOCK IS (BY DEFINITION) A ZERO, WHICH\r
36449                                 ;TERMINATES THE HEADER LIST. THIS WORD MAY BE LOCATION FOOF (37176) IF\r
36450                                 ;CORE WAS FILLED UP TO THE BASE OF TENDMP.\r
36451 \r
36452         077530                  DUMP:                   ;HERE ON D,K. (BLKN)=0, FILN SET UP\r
36453         077530  210100  077755          MOVN A,[XWD HIGH-LOW-1,-LOW+1]  ;COUNTER TO EXAMINE \r
36454                                                                         ;CORE FOR BLOCKS OF 0\r
36455         077531  201340  077751          MOVEI CKS,SPNT-1        ;FIRST HEADER GOES INTO SPNT\r
36456         077532  336002  000001  DMP1:   SKIPN 1(A)      ;FIND SOME NON-ZERO CORE\r
36457         077533  253100  077532          AOBJN A,.-1     ;ZERO. KEEP LOOKING.\r
36458         077534  202100  000004          MOVEM A,D       ;SAVE ADR\r
36459         077535  336002  000001          SKIPN 1(A)      ;FIND SOME ZERO CORE\r
36460         077536  332002  000002          SKIPE 2(A)      ;DON'T MAKE NEW BLOCK FOR 1 ZERO\r
36461         077537  253100  077535          AOBJN A,.-2     ;NON-ZERO. KEEP LOOKING\r
36462         077540  274200  000002          SUB D,A         ;GET -COUNT IN BOTH HALVES OF D\r
36463         077541  275744  777777          SUBI CT,-1(D)   ;COUNT N WORDS DATA, 1 HDR\r
36464         077542  271202  000000          ADDI D,(A)      ;GET F.A.-1 IN RH OF D\r
36465         077543  202207  000001          MOVEM D,1(CKS)  ;SAVE HEADER\r
36466         077544  325200  077546          JUMPGE D,.+2    ;ON DATA GROUPS,\r
36467         077545  200340  000002          MOVE CKS,A      ;GET THE HEADER\r
36468                                                         ;F.A.+W.C. IS ADR OF NEXT HEADER\r
36469                                                         ;I.E., FIRST 0 AFTER NON-ZERO BLOCK\r
36470         077546  321100  077532          JUMPL A,DMP1    ;LOOP IF MORE CORE\r
36471         077547  242340  000002          LSH CKS,2       ;SHIFT CORE SIZ FOR DIR\r
36472         077550  333000  000012          SKIPLE WRITE    ;IF DUMPING, SET JOBREL\r
36473         077551  542350  077347          HRRM CKS,TAB+150(FILN)  ;PUT IN DIR\r
36474         077552  201200  077751  DMP2:   MOVEI D,SPNT-1  ;SET UP TO FOLLOW THE HEADERS.\r
36475         077553  201757  000001          MOVEI CT,1(CT)  ;CLR LH, COUNT JBLK\r
36476         077554  200204  000001  DMP3:   MOVE D,1(D)     ;GET HEADER\r
36477         077555  325200  077566          JUMPGE D,THRU   ;IF NULL HEADER FOUND\r
36478         077556  201640  077554          MOVEI Q,DMP3    ;Q:= DMP3 AS A RETURN AFTER AOBJN\r
36479                                         >\r
36480 \r
36481                                 IFN MAGT,<\r
36482                                         JRST    ERR             ;HOW DID WE GET HERE?  DLS***\r
36483                                 ;DUMP WRITES OUT CORE ONTO MAGNETIC TAPE\r
36484                                 ;DUMP WRITES OUT A CORE IMAGE ON MAGNETIC TAPE WITHOUT\r
36485                                 ;ZERO COMPRESSION. THE RECORDS ARE 200(OCTAL) WORDS IN LENGTH\r
36486                                 ;AND BEGIN WITH WORD ZERO. BEFORE STARTING THE TAPE IS REWOUND.\r
36487                                 ;IT ASSUMES MTA0, AT LEAST FOR NOW.\r
36488                                  \r
36489                                         MTC=    340\r
36490                                         MTS=    344\r
36491                                 DUMP:   CONO    MTC,1000        ;REWIND\r
36492                                         CONSO   MTS,300000      ;WAIT FOR BOT OR REWINDING\r
36493 \r
36494 \fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032    MACRO 10 05:53 24-APR-78 PAGE 5-1\r
36495 TENDMP  MAC     24-APR-78 14:35         TD10 VERSION\r
36496 \r
36497                                         JRST    .-1\r
36498                                         CONSO   MTS,40          ;TRANSPORT READY?\r
36499                                         JRST    .-1\r
36500                                         SETZ    A,\r
36501                                 DUMP1:  HRLI    A,-200          ;WORDS PER BLOCK\r
36502                                         CONO    MTC,64100       ;START WRITE OPERATION\r
36503                                 DUMP2:  CONSO   MTS,1           ;TD10 READY FOR DATA?\r
36504                                         JRST    .-1\r
36505                                         DATAO   MTC,(A)         ;SEND OUT DATA\r
36506                                         AOBJN   A,DUMP2         ;POINT TO NEXT WORD AND LOOP\r
36507                                         CONO    MTS,1           ;STOP THE DRIVE\r
36508                                         CONSO   MTS,100         ;WAIT TILL STOPPED\r
36509                                         JRST    .-1\r
36510                                         CONSZ   MTS,464610      ;ANY ERRORS?\r
36511                                         JRST    ERR             ;YES, GO RING BELL\r
36512                                         AOSE    [-CORE*20000/200+2]     ;ALL CORE DUMPED?\r
36513                                         JRST    DUMP1           ;NO\r
36514                                         CONO    MTC,65100       ;WRITE END OF FILE\r
36515                                         CONSO   MTS,100         ;DONE?\r
36516                                         JRST    .-1\r
36517                                         CONO    MTC,65100\r
36518                                         CONSO   MTS,100\r
36519                                         JRST    .-1\r
36520                                         JRST    BEGR            ;ALL DONE\r
36521                                         >\r
36522 \r
36523 \r
36524         077557  265300  077572  LODUMP: JSP P,UWAIT\r
36525         077560  255000  000004          JFCL D          ;IN/OUTPUT HEADER\r
36526         077561  325200  077451          JUMPGE D,JBLK   ;IF JRST BLOCK READ. CANT HAPPEN ON WRITE\r
36527         077562  265300  077572  DMP5:   JSP P,UWAIT\r
36528         077563  255004  000001          JFCL 1(D)       ;IN/OUTPUT DATA WORD\r
36529         077564  253200  077562          AOBJN D,DMP5    ;COUNT DOWN THE HEADER\r
36530         077565  254015  000000          JRST (Q)        ;END OF HEADER. TO DMP3 OR LOAD+1\r
36531                                 ;WRITE:  1=D  0=K  -1=ELSE\r
36532 \r
36533         077566  265300  077572  THRU:   JSP P,UWAIT     ;WRITE OUT JRST BLOCK\r
36534         077567  255000  077454          JFCL SADR       ;FROM LOC SADR\r
36535         077570  341240  077627  IFE MODE,<      AOJL E,UWAIT1   ;FILL OUT BLOCK, TO GET CKSM OUT>\r
36536         077571  624500  777777          TRZA WRITE,-1   ;THEN SET WRITE TO 0, AND GO CLOBBER\r
36537                                                         ;ANY FURTHER BLOCKS WITH THIS FILN\r
36538         077572  341240  077627  UWAIT:  AOJL E,UWAIT1   ;RETURN ADDR = (P)      DATA ADDR = @(P)\r
36539                                                         ;E IS -WD COUNT IN BLOCK OR POSITIVE\r
36540                                                         ;BYTE POINTER FIRST TIME THRU\r
36541         077573  554440  077377          HLRZ BLKNO,LINK         ;SET TO FOLLOW LINK\r
36542         077574  325500  077576  MNLUP0: JUMPGE WRITE,MNLUP      ;WRITING OR DELETING\r
36543         077575  326440  077620          JUMPN BLKNO,RBLK\r
36544         077576  354000  000011  MNLUP:  AOSA BLKNO      ;NEXT BLOCK IN THE DIRECTORY\r
36545         077577  137040  000013  MNLUP1: DPB B,PNTR      ;FOR DELETE, 0 FILE NAME AND NUMBER\r
36546         077600  134100  000013          ILDB A,PNTR     ;SEARCH FILE DIR\r
36547         077601  306100  000037          CAIN A,37\r
36548         077602  254000  077464          JRST DELE       ;END OF TAB MARKER, DELE GOES TO\r
36549                                                         ;CLSTP ON A "D" TO DUMP DIRECTORY\r
36550 \r
36551 \fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032    MACRO 10 05:53 24-APR-78 PAGE 5-2\r
36552 TENDMP  MAC     24-APR-78 14:35         TD10 VERSION\r
36553 \r
36554         077603  661112  777777          TLO A,-1(WRITE) ;0 ON D, -1 ON K OR K PHASE OF D\r
36555         077604  302402  000000          CAIE FILN,(A)   ;IS THIS BLOCK ASSIGNED TO CURRENT FILE?\r
36556         077605  326100  077576          JUMPN A,MNLUP   ;OR MAYBE FREE? JUMP IF IN USE BY\r
36557                                                         ;ANOTHER FILE.\r
36558         077606  137400  000013          DPB FILN,PNTR   ;SMASH AWAY WRITE BLOCK ON D OR K. BUT\r
36559                                                         ;SEE MNLUP1 ON K.\r
36560         077607  322500  077577          JUMPE WRITE,MNLUP1      ;K COMMAND\r
36561         077610  336140  077377          SKIPN C,LINK            ;HAS LINK BEEN SET UP?\r
36562         077611  137440  077756          DPB BLKNO,[XWD 101200,LINK]     ;NO. PUT BLOCK IN AS FIRST BLK NO\r
36563         077612  506440  077377          HRLM BLKNO,LINK ;PUT BLOCK IN AS LINK\r
36564         077613  322140  077574          JUMPE C,MNLUP0          ;JUMP IF THIS IS THE FIRST PASS THRU DIRECTORY\r
36565         077614  554440  000003          HLRZ BLKNO,C            ;GET LINKED BLOCK CHOSEN BEFORE\r
36566         077615  201140  000177          MOVEI C,177             ;PUT IN A WORD COUNT FOR PIP\r
36567         077616  436140  077377          IORM C,LINK             ;AND PUT ALL THAT INTO LINK WORD\r
36568         077617  275740  000177          SUBI CT,177             ;DECREMENT WORDS LEFT TO GO\r
36569 \r
36570 \r
36571 \fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032    MACRO 10 05:53 24-APR-78 PAGE 6\r
36572 TENDMP  MAC     24-APR-78 14:35         TD10 VERSION\r
36573 \r
36574 \r
36575                                 ;RBLK SEARCHES FOR THE BLOCK IN BLKNO, ENTERS IT GOING FORWARD,\r
36576                                 ;AND THEN READS INTO CORE, DUMPS CORE, OR COMPARES CORE AS\r
36577                                 ;DETERMINED BY CONTENTS OF WRITE.\r
36578 \r
36579         077620  560140  077744  RBLK:   HRRO C,TAPENO   ;CURRENT TAPE NO.\r
36580                                                         ;SET LH TO  PREPARE FOR JUMPN IN DELE\r
36581                                 IFE MODE,<\r
36582         077621  660040  777777          TRO B,-1        ;ENSURE GOING FORWARD WHEN FIRST SEARCH\r
36583         077622  732340  300000          CONSO DTC,300000        ;IS A DIRECTION ASSERTED?\r
36584         077623  660140  210000          TRO C,210000    ;NO. GO FORWARD\r
36585         077624  606040  400001  RB1:    TRNN B,400001   ;DECIDE WHETHER TO TURN AROUND\r
36586         077625  660140  300000          TRO C,300000    ;TURN AROUND\r
36587         077626  732203  020200  RBG:    CONO DTC,20200(C)       ;ISSUE THE COMMAND TO TD10.\r
36588                                                                 ;200=SEARCH, 300=READ, 700=WRITE.\r
36589         077627  732700  672700  UWAIT1: CONSZ DTS,672700        ;ANY ERRORS?\r
36590         077630  254000  077466          JRST ERR        ;YES. GO DING AND THEN TYI\r
36591         077631  732740  000001          CONSO DTS,1     ;DATA READY?\r
36592         077632  254000  077627          JRST .-3        ;NO. GO WAIT SOME MORE\r
36593         077633  321252  077660          JUMPL E,INOUT(WRITE)    ;IF IN MIDST OF A DT BLOCK, DISPATCH\r
36594         077634  732040  000001          DATAI DTC,B     ;NO. SEARCHING. GET BLOCK NO.\r
36595         077635  620140  310000          TRZ C,310000    ;CLOBBER DIRECTION BITS IN CONO\r
36596         077636  275051  000000          SUBI B,(BLKNO)  ;COMPARE WITH DESIRED BLOCK\r
36597         077637  732300  100000          CONSZ DTC,100000        ;COMPLEMENT DECISION IF GOING REVERSE\r
36598         077640  640040  777776          TRC B,-2        ;BIT 35 IS FOR  TURNAROUND SPACE.\r
36599                                 >\r
36600 \r
36601 \fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032    MACRO 10 05:53 24-APR-78 PAGE 7\r
36602 TENDMP  MAC     24-APR-78 14:35         TD10 VERSION\r
36603 \r
36604 \r
36605                                 IFN MODE,<\r
36606                                         SETOB A,B       ;GO FORWARD, SET DC FOR SEARCH\r
36607                                         CONSZ UTS,40    ;IS CHECKSUM BEING WRITTEN?\r
36608                                         JRST .-1        ;WAIT\r
36609                                 RB1:    TRNN B,400001   ;DECIDE WHETHER TO TURN AROUND\r
36610                                         TRCA C,10000    ;CHANGE DIRECTION AND DELAY\r
36611                                         CONSO UTC,200000        ;UNIT SELECTED?\r
36612                                         TRO C,2000      ;INVOKE STARTUP DELAY\r
36613                                 RBG:    CONO UTC,220200(C)      ;COMMAND TO THE  551.\r
36614                                                                 ;200=SEARCH, 300=READ, 700=WRITE.\r
36615                                         CONO DC,4011(A) ;COMMAND TO THE 136.\r
36616                                 UWAIT1: CONSZ UTS,6     ;ANY ERRORS?\r
36617                                         JRST ERR        ;YES. GO DING AND THEN TYI\r
36618                                         CONSO DC,1000   ;DATA READY?\r
36619                                         JRST .-3        ;NO. WAIT SOME MORE\r
36620                                         JUMPL E,INOUT(WRITE)    ;IF IN MIDST OF A DT BLOCK, DISPATCH\r
36621                                         DATAI DC,B      ;NO. SEARCHING. GET BLOCK NUMBER\r
36622                                         TRZ C,2000      ;DONT DELAY ANY MORE\r
36623                                         SUBI B,(BLKNO)  ;COMPARE WITH DESIRED BLOCK\r
36624                                         TRNE C,10000    ;COMPLEMENT IF GOING REVERSE\r
36625                                         TRC B,-2        ;BIT 35 IS FOR TURNAROUND SPACE.\r
36626                                 >\r
36627         077641  326040  077624          JUMPN B,RB1     ;JUMP IF NOT GOING FORWARD INTO (BLKNO)\r
36628         077642  211240  000200          MOVNI E,200     ;WORDS PER BLOCK\r
36629         077643  202300  000000          MOVEM P,F       ;SAVE RETURN IN AC0\r
36630         077644  660140  000100          TRO C,100       ;READ COMMAND, MAYBE\r
36631         077645  323500  077652          JUMPLE WRITE,RB2        ;JUMP IF READ\r
36632         077646  660140  000400          TRO C,400       ;CHANGE TO WRITE COMMAND\r
36633                                 IFN MODE,<MOVNI A,401   ;SET 136 TO OUTPUT>\r
36634         077647  327740  077652          JUMPG CT,.+3\r
36635         077650  553000  077377          HRRZS LINK      ;IF LAST BLK, KILL LINK\r
36636         077651  137240  000013          DPB E,PNTR              ;AND THE DIR BYTE ? 0\r
36637         077652  302440  000144  RB2:    CAIE BLKNO,^D100        ;IF NOT DIRECTORY BLOCK\r
36638         077653  201300  077655          MOVEI P,.+2     ;SETUP NEW RETURN\r
36639         077654  254000  077626          JRST RBG\r
36640         077655  340240  077377          AOJ E,LINK      ;IN/OUTPUT LINK\r
36641         077656  267300  077627          JRA P,UWAIT1    ;RESTORE CALLER ADR\r
36642                                                         ;AND PROCESS DATA WORDS\r
36643 \r
36644 \fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032    MACRO 10 05:53 24-APR-78 PAGE 8\r
36645 TENDMP  MAC     24-APR-78 14:35         TD10 VERSION\r
36646 \r
36647 \r
36648                                 IFE MODE,<\r
36649         077657  732066  000000          DATAI DTC,@(P)  ;READ COMMANDS. GET WORD TO CORE\r
36650         077660  254000  077662  INOUT:  JRST UWAIT2     ;INOUT-1 TO INOUT +1 ARE DISPATCHED TO.\r
36651         077661  732166  000000          DATAO DTC,@(P)  ;OUTPUT TO TAPE\r
36652         077662  346240  077666  UWAIT2: AOJN E,UWAIT3   ;WAS THAT THE LAST WORD IN THE DT BLOCK?\r
36653         077663  732600  000001          CONO DTS,1      ;YES. GIVE FUNCTION STOP TO TD10\r
36654         077664  732740  100000          CONSO DTS,100000        ;AND WAIT FOR CHECKSUM TO BE DONE\r
36655         077665  254000  077664          JRST .-1        ;NOT YET. WAIT\r
36656         077666  364246  000000  UWAIT3: SOJA E,0(P)     ;DONE. COMPENSATE FOR THE AOJN ABOVE, AND\r
36657                                                         ;RETURN TO CALLER OF UWAIT OR RBLK\r
36658                                 >\r
36659 \r
36660                                 IFN MODE,<\r
36661                                         DATAI DC,@(P)   ;READ COMMANDS. GET WORD TO CORE\r
36662                                 INOUT:  JRST UWAIT2     ;INOUT-1 THRU INOUT+1 ARE DISPATCHED TO.\r
36663                                         DATAO DC,@(P)   ;OUTPUT TO TAPE\r
36664                                 UWAIT2: JRST 0(P)       ;RETURN TO CALLER OF UWAIT OR RBLK.\r
36665                                 >\r
36666 \r
36667 \fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032    MACRO 10 05:53 24-APR-78 PAGE 9\r
36668 TENDMP  MAC     24-APR-78 14:35         TD10 VERSION\r
36669 \r
36670 \r
36671         077667  201100  000044  ALTMD:  MOVEI A,"$"\r
36672         077670  265300  077471          JSP P,TYO       ;ALTMODE IS PRINTED AS "$"\r
36673 \r
36674                                 IFE MAGT,<\r
36675         077671  302600  000053          CAIE CH,"K"-40  ;FOR K, WRITE := 0\r
36676         077672  306600  000044          CAIN CH,"D"-40  ;FOR D, WRITE :=1\r
36677         077673  343500  077672          AOJLE WRITE,.-1 ;COUNT (WRITE)\r
36678                                         >\r
36679 \r
36680                                 IFN MAGT,<\r
36681                                         CAIN CH,"D"-40  ;FOR D, WRITE :=1\r
36682                                         AOJLE WRITE,.-1 ;COUNT (WRITE)\r
36683                                         JUMPG WRITE,DUMP        ;D MEANS GO DUMP ON MAG TAPE\r
36684                                         >\r
36685 \r
36686         077674  306600  000047          CAIN CH,"G"-40  ;GO TO PROGRAM?\r
36687         077675  254020  077454          JRST @SADR      ;YES. JUMP OUT\r
36688         077676  306600  000046          CAIN CH,"F"-40  ;FILE DIR PRINT?\r
36689         077677  254000  077732          JRST FDIR       ;YES. PRINT FILE DIR OF THIS TAPE\r
36690         077700  306600  000072          CAIN CH,"Z"-40  ;ZERO DIRECTORY?\r
36691         077701  254000  077721          JRST ZDIR       ;DISPATCH\r
36692         077702  303600  000027          CAILE CH,27     ;SKIP IF OCTAL NUMBER\r
36693         077703  254000  077414          JRST TYI        ;NO. GO PROCESS FILE NAME\r
36694         077704  242040  000003          LSH B,3 ;CONVERT SIXBIT TO OCTAL\r
36695         077705  246000  000003          LSHC F,3        ;F+1=B\r
36696         077706  326040  077704          JUMPN B,.-2     ;MAY BE MORE THAN 1 DIGIT (START ADR)\r
36697         077707  303000  000007          CAILE F,7       ;SKIP IF ONE DIGIT\r
36698         077710  267200  077451          JRA D,JBLK      ;D:=SADR. DISPATCH TO JBLK WHICH SAVES SADR.\r
36699         077711                  OPNTP:                  ;SHIFT UNIT NUMBER LEFT FOR CONO\r
36700         077711  242000  000011  IFE MODE,<LSH F,11>\r
36701                                 IFN MODE,<LSH F,3>\r
36702         077712  542000  077744          HRRM F,TAPENO   ;SAVE IN CORE\r
36703         077713  201440  000144  CLSTP:  MOVEI BLKNO,^D100       ;BLK NO OF FILE DIR\r
36704         077714  401540  000000          SETZI PNTR,0    ;DONT CLOBBER DIRECTORY BYTE\r
36705         077715  265300  077620          JSP P,RBLK      ;MOVE TO BLOCK 100\r
36706         077716  255005  077377          JFCL TAB+200(E) ;READ OR WRITE DIR TAB AS DETERMINED BY WRITE\r
36707         077717  341240  077627          AOJL E,UWAIT1   ;COUNT THE 200 WORDS\r
36708         077720  254000  077402          JRST BEG        ;GO ASK FOR NEXT COMMAND\r
36709 \r
36710         077721  200100  077757  ZDIR:   MOVE A,[XWD FOOF,TAB]   ;FOOF IS CLEAR\r
36711         077722  251100  077375          BLT A,TAB+176   ;CLEAR DIRECTORY, EXCEPT LAST WORD FOR ID\r
36712         077723  205100  757000          MOVSI A,(36B4+36B9)     ;RESERVE BLOCKS 1 & 2\r
36713         077724  202100  077177          MOVEM A,TAB     ;IN DIRECTORY\r
36714         077725  205100  017000          MOVSI A,(36B9)\r
36715         077726  202100  077215          MOVEM A,TAB+16  ;BLK 100 (DIR) IS RESERVED TOO\r
36716         077727  525100  000007          HRLOI A,7       ;AND BLOCKS >1100 ARE EOT\r
36717         077730  202100  077321          MOVEM A,TAB+122 ;END OF BYTE TAB\r
36718         077731  344500  077465          AOJA WRITE,CLS1 ;SET WRITE TO OUTPUT\r
36719                                                                 ;AND DUMP BLK 100.\r
36720 \r
36721 \fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032    MACRO 10 05:53 24-APR-78 PAGE 10\r
36722 TENDMP  MAC     24-APR-78 14:35         TD10 VERSION\r
36723 \r
36724         077732  211400  000026  FDIR:   MOVNI FILN,26   ;26 FILES (OCTAL)\r
36725         077733  265300  077467  FD2:    JSP P,CRR       ;CR-LF\r
36726         077734  336150  077350  FD3:    SKIPN C,TAB+123+26(FILN)        ;FIRST WORD OF NAME. IS IT BLANK?\r
36727         077735  344140  077741          AOJA C,FD1      ;YES. SET C=1 AND LOOP\r
36728         077736  265700  077743          JSP G,SIXBP     ;PRINT FIRST WORD AND A SPACE\r
36729         077737  510150  077376          HLLZ C,TAB+151+26(FILN) ;SECOND WORD OF FILE NAME\r
36730         077740  265700  077743          JSP G,SIXBP     ;PRINT AND CLEAR C\r
36731         077741  341403  077733  FD1:    AOJL FILN,FD2(C)        ;CAN JUMP TO FD2 OR FD3. COUNT FILES.\r
36732         077742  254000  077402          JRST BEG        ;ALL FILES PRINTED OR BLANK. RETURN.\r
36733 \r
36734         077743  201040  000007  SIXBP:  MOVEI B,7       ;SIXBP PRINTS C(C) IN 6BIT\r
36735                                                         ;AND ADDS A TRAILING SPACE\r
36736                                                         ;AND LEAVES (C)=0\r
36737 \r
36738         077744                  TAPENO:                 ;USE ADR AS TEMP FOR CURRENT UNIT\r
36739         077744  401100  000000  SIXBP1: SETZI A,.-.     ;CLEAR A\r
36740         077745  246100  000006          LSHC A,6\r
36741         077746  271100  000040          ADDI A,40       ;SIXBIT TO ASCII\r
36742         077747  265300  077471          JSP P,TYO       ;TYPE OUT CHARACTER\r
36743         077750  367040  077744          SOJG B,SIXBP1   ;LOOP IF MORE CHARACTERS\r
36744         077751  254016  000000          JRST 0(G)       ;RETURN\r
36745 \r
36746         077752  000000  000000  SPNT:   0               ;POINTER TO HEADERS IN CORE.\r
36747 \r
36748         077753                          LIT\r
36749         077753  000500  077176\r
36750         077754  000040  000041\r
36751         077755  077154  777761\r
36752         077756  101200  077377\r
36753         077757  077176  077177\r
36754 \r
36755 \r
36756                                 IFN MAGT,<\r
36757                                 SLOP:   MOVE    .+3\r
36758                                         MOVEM   COMPTR\r
36759                                         JRST    BEGR+1\r
36760                                         XWD     440700,.+1\r
36761                                         BYTE    (7) "0",33,177\r
36762                                 LAST:   JRST    SLOP\r
36763                                         >\r
36764                                 IFE MAGT,<\r
36765                         000000          SLOP=COMPTR-17-.        ;THIS MANY WORDS BEFORE RESERVED AREA\r
36766                                                                 ;FOR COMMAND STRINGS.\r
36767                                 ;!!!!!  NOTE: ABOVE PARAMETER MUST COME OUT POSITIVE IN\r
36768                                 ;       ORDER TO MEET THE DOCUMENTATION OF RESERVED COMMAND STRING AREA.\r
36769                                 ;\r
36770                                 ;       THIS MEANS ANY CODE ADDED MUST BE COMPENSATED FOR BY\r
36771                                 ;       A CORRESPONDING TIGHTENING SOMEWHERE. GOOD LUCK.\r
36772                                 ;       TENDMP IS VERY TIGHT ALREADY.\r
36773                                         >\r
36774 \r
36775                         077400          END BEGR\r
36776 \r
36777 \r
36778 \fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032    MACRO 10 05:53 24-APR-78 PAGE 10-1\r
36779 TENDMP  MAC     24-APR-78 14:35         TD10 VERSION\r
36780 \r
36781 NO ERRORS DETECTED\r
36782 \r
36783 PROGRAM BREAK IS 000000\r
36784 ABSLUTE BREAK IS 077760\r
36785 \r
36786 8K CORE USED\r
36787 \r
36788 \fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032    MACRO 10 05:53 24-APR-78 PAGE 11\r
36789 TENDMP  MAC     24-APR-78 14:35         SYMBOL TABLE\r
36790 \r
36791 A               000002  \r
36792 ALTMD           077667  \r
36793 ALTTST          077501  \r
36794 B               000001  \r
36795 BEG             077402  \r
36796 BEG1            077404  \r
36797 BEG69           077522  \r
36798 BEGR            077400  \r
36799 BELL            077423  \r
36800 BLKNO           000011  \r
36801 C               000003  \r
36802 CARRET          077504  \r
36803 CH              000014  \r
36804 CKS             000007  \r
36805 CLS1            077465  \r
36806 CLSTP           077713  \r
36807 COMPTR          077777  \r
36808 CORE            000004  \r
36809 CRCH            077413  \r
36810 CRR             077467  \r
36811 CT              000017  \r
36812 D               000004  \r
36813 DC              000200  \r
36814 DELE            077464  \r
36815 DMP1            077532  \r
36816 DMP2            077552  \r
36817 DMP3            077554  \r
36818 DMP5            077562  \r
36819 DTC             000320  \r
36820 DTS             000324  \r
36821 DUMP            077530  \r
36822 E               000005  \r
36823 ERR             077466  \r
36824 F               000000  \r
36825 FD1             077741  \r
36826 FD2             077733  \r
36827 FD3             077734  \r
36828 FDIR            077732  \r
36829 FILN            000010  \r
36830 FOOF            077176  \r
36831 FREE            077517  \r
36832 G               000016  \r
36833 HIGH            077175  \r
36834 INOUT           077660  \r
36835 JBLK            077451  \r
36836 LINK            077377  \r
36837 LOAD            077462  \r
36838 LOADS           077455  \r
36839 LODUMP          077557  \r
36840 LOW             000020  \r
36841 LOZAD           077175  \r
36842 LUP             077505  \r
36843 MAGT            000000  \r
36844 \r
36845 \fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032    MACRO 10 05:53 24-APR-78 PAGE 11-1\r
36846 TENDMP  MAC     24-APR-78 14:35         SYMBOL TABLE\r
36847 \r
36848 MNLUP           077576  \r
36849 MNLUP0          077574  \r
36850 MNLUP1          077577  \r
36851 MODE            000000  \r
36852 NEXT            077422  \r
36853 NEXT1           077446  \r
36854 OPNTP           077711  \r
36855 P               000006  \r
36856 PNTR            000013  \r
36857 Q               000015  \r
36858 RB1             077624  \r
36859 RB2             077652  \r
36860 RBG             077626  \r
36861 RBLK            077620  \r
36862 RCH             077433  \r
36863 REL             000000  \r
36864 SADR            077454  \r
36865 SIXBP           077743  \r
36866 SIXBP1          077744  \r
36867 SLOP            000000  \r
36868 SPACE           077417  \r
36869 SPNT            077752  \r
36870 TAB             077177  \r
36871 TAPENO          077744  \r
36872 THRU            077566  \r
36873 TTY             000120  SPD\r
36874 TYI             077414  \r
36875 TYO             077471  \r
36876 UTC             000210  \r
36877 UTS             000214  \r
36878 UWAIT           077572  \r
36879 UWAIT1          077627  \r
36880 UWAIT2          077662  \r
36881 UWAIT3          077666  \r
36882 WRITE           000012  \r
36883 ZDIR            077721  \r
36884 \fSpooler runtime 0 Seconds, 0 KCS, 2085 disk reads, 74 disk writes, 865 pages\r
36885  ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36886 \13   \r
36887 \13   \r
36888 \13   \r
36889 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36890 \13   \r
36891 \13   \r
36892 \13   \r
36893 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36894 \13   \r
36895 \13   \r
36896 \13   \r
36897 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36898 \13   \r
36899 \13   \r
36900 \13   \r
36901 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36902 \13   \r
36903 \13   \r
36904 \13   \r
36905 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36906 \13   \r
36907 \13   \r
36908 \13   \r
36909 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36910 \13   \r
36911 \13   \r
36912 \13   \r
36913 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36914 \13   \r
36915 \13   \r
36916 \13   \r
36917 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36918 \13   \r
36919 \13   \r
36920 \13   \r
36921 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36922 \13   \r
36923 \13   \r
36924 \13   \r
36925 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36926 \13   \r
36927 \13   \r
36928 \13   \r
36929 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36930 \13   \r
36931 \13   \r
36932 \13   \r
36933 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36934 \13   \r
36935 \13   \r
36936 \13   \r
36937 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36938 \13   \r
36939 \13   \r
36940 \13   \r
36941 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36942 \13   \r
36943 \13   \r
36944 \13   \r
36945 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36946 \13   \r
36947 \13   \r
36948 \13   \r
36949 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36950 \13   \r
36951 \13   \r
36952 \13   \r
36953 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36954 \13   \r
36955 \13   \r
36956 \13   \r
36957 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36958 \13   \r
36959 \13   \r
36960 \13   \r
36961 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36962 \13   \r
36963 \13   \r
36964 \13   \r
36965 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36966 \13   \r
36967 \13   \r
36968 \13   \r
36969 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36970 \13   \r
36971 \13   \r
36972 \13   \r
36973 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36974 \13   \r
36975 \13   \r
36976 \13   \r
36977 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36978 \13   \r
36979 \13   \r
36980 \13   \r
36981 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36982 \13   \r
36983 \13   \r
36984 \13   \r
36985 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36986 \13   \r
36987 \13   \r
36988 \13   \r
36989 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36990 \13   \r
36991 \13   \r
36992 \13   \r
36993 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36994 \13   \r
36995 \13   \r
36996 \13   \r
36997 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
36998 \13   \r
36999 \13   \r
37000 \13   \r
37001 \13 ***END*** Name: MON45        Address: **** UNKNOWN ****  CDRSER-144 24-April-1978 05:53:43 Address: **** UNKNOWN ****    \r
37002 \13   \r
37003 \13   \r
37004 \13   \r
37005 \13\f