Cleanup of typos.
[retro-software/dec/tops10/v1.19.git] / src / m140n.lst
1 LPTSPL Version 3(105)  Running on LPT000\r
2  **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 **START** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:18 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13\f   CCCCCCCCCCCC      DDDDDDDDDDDD         RRRRRRRRRRRR            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
3    CCCCCCCCCCCC      DDDDDDDDDDDD         RRRRRRRRRRRR            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
4    CCCCCCCCCCCC      DDDDDDDDDDDD         RRRRRRRRRRRR            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
5 CCC                  DDD         DDD      RRR         RRR      SSS                  EEE                  RRR         RRR\r
6 CCC                  DDD         DDD      RRR         RRR      SSS                  EEE                  RRR         RRR\r
7 CCC                  DDD         DDD      RRR         RRR      SSS                  EEE                  RRR         RRR\r
8 CCC                  DDD         DDD      RRR         RRR      SSS                  EEE                  RRR         RRR\r
9 CCC                  DDD         DDD      RRR         RRR      SSS                  EEE                  RRR         RRR\r
10 CCC                  DDD         DDD      RRR         RRR      SSS                  EEE                  RRR         RRR\r
11 CCC                  DDD         DDD      RRRRRRRRRRRR            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
12 CCC                  DDD         DDD      RRRRRRRRRRRR            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
13 CCC                  DDD         DDD      RRRRRRRRRRRR            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
14 CCC                  DDD         DDD      RRR   RRR                        SSS      EEE                  RRR   RRR      \r
15 CCC                  DDD         DDD      RRR   RRR                        SSS      EEE                  RRR   RRR      \r
16 CCC                  DDD         DDD      RRR   RRR                        SSS      EEE                  RRR   RRR      \r
17 CCC                  DDD         DDD      RRR      RRR                     SSS      EEE                  RRR      RRR   \r
18 CCC                  DDD         DDD      RRR      RRR                     SSS      EEE                  RRR      RRR   \r
19 CCC                  DDD         DDD      RRR      RRR                     SSS      EEE                  RRR      RRR   \r
20    CCCCCCCCCCCC      DDDDDDDDDDDD         RRR         RRR      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
21    CCCCCCCCCCCC      DDDDDDDDDDDD         RRR         RRR      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
22    CCCCCCCCCCCC      DDDDDDDDDDDD         RRR         RRR      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
23 \r
24 \r
25 \r
26 \r
27 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
28 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
29 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
30 LLL                  SSS                        TTT                                                                     \r
31 LLL                  SSS                        TTT                                                                     \r
32 LLL                  SSS                        TTT                                                                     \r
33 LLL                  SSS                        TTT                                                                     \r
34 LLL                  SSS                        TTT                                                                     \r
35 LLL                  SSS                        TTT                                                                     \r
36 LLL                     SSSSSSSSS               TTT                                                                     \r
37 LLL                     SSSSSSSSS               TTT                                                                     \r
38 LLL                     SSSSSSSSS               TTT                                                                     \r
39 LLL                              SSS            TTT                                                                     \r
40 LLL                              SSS            TTT                                                                     \r
41 LLL                              SSS            TTT                                                                     \r
42 LLL                              SSS            TTT                                                                     \r
43 LLL                              SSS            TTT                                                                     \r
44 LLL                              SSS            TTT                                                                     \r
45 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
46 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
47 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
48 \r
49 \r
50 \r
51 \r
52 Request created: 24-April-1978  11:23:08\r
53 File: DSKB1 :CDRSER.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:18
54 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2632 \r
55 File will be deleted after printing\r
56 \f\rCDRSER - CARD READER SERVICE                 PAGE 1\r
57         8-2-65\r
58 \r
59                                 00010           XLIST\r
60                                 01930          LIST\r
61 \r\fCDRSER - CARD READER SERVICE                 PAGE 7\r
62         8-2-65\r
63 \r
64 \r
65                                 00010   TITLE CDRSER - CARD READER SERVICE\r
66                                 00020   SUBTTL  8-2-65\r
67 \r
68 \r
69                                 00050   EXTERNAL STODAT, ADVBFF, IOSET, SETIOD, SETBYT, STOSQD\r
70                                 00060   EXTERNAL CDRSAV, CDRCHN,  CDRRET,ILLOUT,PIOMOD\r
71                                 00070   INTERNAL CDRINT\r
72 \r
73                                 00090   ;DEVICE DATA BLOCK LINKAGE\r
74                                 00100   EXTERNAL CDRDB,CDRDAT,CRDIS\r
75                                 00110   ENTRY CDRDSP\r
76 \r\fCDRSER - CARD READER SERVICE                 PAGE 2\r
77         8-2-65\r
78 \r
79 \r
80  \r
81                                 00150   ,CDR PARAMETER ASSIGNMENTS\r
82  \r
83                                 00170   ,   CDR CONTROL REGISTER\r
84                         000010  00180             CRDONE=10;            DONE FLAG\r
85                         000020  00190             CRBUSY=20;            BUSY FLAG\r
86                         000040  00200             CRBIN=40;             BINARY\r
87                         000100  00210             CRALL=100;            ALL FLAG\r
88                         000200  00220             CRMISS=200;           DATA MISSED\r
89                         000400  00230             CREOC=400;            END OF CARD\r
90                         001000  00240             CREOFF=1000;          END OF FILE\r
91                         002000  00250             CRERR=2000;           ERROR\r
92                         000002  00260             CHCHN=2\r
93                                 00270   ,   ACCUMULATORS\r
94                         000010  00280             CRDAT1=TEM\r
95                         000011  00290             CRAC=JDAT\r
96  \r
97                                 00310   ,   SPECIAL IO STATUS WORD ASSIGNMENTS\r
98                         040000  00320             CRMFST=40000;         FIRST CARD\r
99                         200000  00330             CRMBIN=200000;        BINARY\r
100                         100000  00340             CRMIMG=100000;        IMAGE\r
101                                 00350   ,   SPECIAL CHARACTERS\r
102                         000032  00360             S2EOF=32;             END OF FILE\r
103  \r
104                                 00380   REPEAT 0,<\r
105                                 00390   ,CDR DATA BLOCK\r
106                                 00400   \r
107                                 00410   CDRDAT:   SIXBIT /CRD\r
108                                 00420    34\r
109                                 00430    0\r
110                                 00440    EXP CDRDSP\r
111                                 00450    XWD 1400+PROG,10403\r
112                                 00460    0\r
113                                 00470    0 \r
114                                 00480    XWD PROG,0\r
115                                 00490    0\r
116                                 00500    0\r
117                                 00510   CRDIS:    JRST .\r
118                                 00520   >\r
119 \r
120                                 00540   ,CDR SERVICE DISPATCH TABLE\r
121 \r
122         000000' 715200  000000  00560   CDRDSP:   CONO CR,0 ;RELEASE\r
123         000001' 263140  000000  00570             POPJ PDP,;            CLOSE\r
124         000002' 254000  000000* 00580             JRST ILLOUT           ;OUTPUT\r
125         000003' 254000  000004' 00590             JRST CRINP;           INPUT\r
126 \r\fCDRSER - CARD READER SERVICE                 PAGE 3\r
127         8-2-65\r
128 \r
129 \r
130 \r
131         000004' 621000  000002  00630   CRINP:    TLZ IOS,IOBEG;        VIRGIN DEVICE?  IOBUF:=0\r
132 \r
133         000005' 661000  040004  00650   CDRIN1:   TLO IOS,IOFST+CRMFST;         IOFST:=CRMFST:=1\r
134         000006' 135040  000000* 00660             LDB TAC,PIOMOD\r
135         000007' 306040  000014  00670             CAIN TAC,B;           MODE=BINARY?\r
136         000010' 661000  200000  00680             TLO IOS,CRMBIN;       YES.  CRMBIN:=1\r
137         000011' 306040  000010  00690             CAIN TAC,I;           MODE=IMAGE?\r
138         000012' 661000  100000  00700             TLO IOS,CRMIMG;       YES.  CRMIMG:=1\r
139         000013' 660000  010000  00710             TRO IOS,IOACT;        IOACT:=1\r
140         000014' 202006  000002  00720             MOVEM IOS,DEVIOS(DEVDAT)\r
141         000015' 260140  000000* 00730             PUSHJ PDP,SETBYT;     TAC0-5:=TAC12-13:=0; TAC6-11:=BYTE SIZE\r
142         000016' 202046  000010  00740             MOVEM TAC,DEVPTR(DEVDAT)\r
143         000017' 201040  000000* 00750             MOVEI TAC, CDRCHN;    ASSIGN PI CHANNEL\r
144         000020' 715201  000160  00760             CONO CR,CRBIN+CRALL+CRBUSY(TAC);              SELECT BINARY, ALL\r
145         000021' 263140  000000  00770             POPJ PDP,;            RETURN\r
146 \r\fCDRSER - CARD READER SERVICE                 PAGE 4\r
147         8-2-65\r
148 \r
149 \r
150 \r
151         000022' 715340  000010  00810   CDRINT:   CONSO CR,CRDONE;      DONE FLAG?\r
152         000023' 254000  000022' 00820             JRST CDRINT\r
153         000024' 264000  000000* 00830             JSR CDRSAV;                   SAVE ACCUMULATORS AND ESTABLI\r
154         000025' 201300  000000* 00840             MOVEI DEVDAT,CDRDAT\r
155         000026' 200006  000002  00850             MOVE IOS,DEVIOS(DEVDAT)\r
156         000027' 715300  002200  00860             CONSZ CR,  CRMISS+CRERR;      DATA MISSED OR ERROR?\r
157         000030' 660000  200000  00870             TRO IOS,IODERR;       IODERR:=1\r
158         000031' 715040  000010  00880             DATAI CR, CRDAT1;     INPUT INFORMATION\r
159         000032' 260140  000000* 00890             PUSHJ PDP,IOSET;      PROG:=C(JBTADR18-35), ITEM:= C(DEVPTR)\r
160         000033' 627000  040000  00900             TLZN IOS,CRMFST;      FIRST CARD?  CRMFST:=0\r
161         000034' 256000  000000* 00910             XCT CRDIS             ;NOT FIRST, GO TO SUBROUTINE\r
162 \r
163         000035' 640400  007400  00930   CRFIRS:   TRC CRDAT1, 7400;     FIRST COL OF FIRST CARD\r
164         000036' 646400  007400  00940             TRCN CRDAT1,7400;     Y, X, 0, OR 1 PUNCH?\r
165         000037' 254000  000047' 00950             JRST CREOFC;                  NO, END OF FILE CARD\r
166         000040' 715300  001000  00960             CONSZ CR, CREOFF;     END OF FILE?\r
167         000041' 254000  000051' 00970             JRST CREOF;                   YES\r
168         000042' 603000  200000  00980             TLNE IOS,CRMBIN;      CRMBIN=1?\r
169         000043' 254000  000125' 00990             JRST CRFSTB;          YES\r
170         000044' 603000  100000  01000             TLNE IOS,CRMIMG;      CRMIMG=1?\r
171         000045' 254000  000144' 01010             JRST CRFSTI;          YES\r
172         000046' 254000  000067' 01020             JRST CRFSTL+1\r
173 \r
174         000047' 201040  000017* 01040   CREOFC:   MOVEI TAC,CDRCHN      ;WAIT FOR EOC\r
175         000050' 715201  000020  01050             CONO CR,CRBUSY(TAC)\r
176         000051' 661000  000040  01060   CREOF:    TLO IOS, IOEND;       IUEND:=1\r
177         000052' 201240  000032  01070             MOVEI DAT,S2EOF\r
178         000053' 260140  000000* 01080             PUSHJ PDP,STODAT;     STORE END OF FILE CHARACTER\r
179         000054' 330000  000000  01090             SKIP\r
180         000055' 254000  000217' 01100             JRST CRLST2;          BLOCK FULL OR BLOCK COMPLETE\r
181         000056' 201040  000056' 01110             MOVEI TAC,.;          DATA STATED PROPERLY\r
182         000057' 542040  000034* 01120             HRRM TAC, CRDIS;      SET DISPATCH TO RETURN HERE.\r
183         000060' 715340  000400  01130             CONSO CR, CREOC;      END OF CARD?\r
184         000061' 254000  000226' 01140             JRST CREXIT;          NO.\r
185         000062' 260140  000000* 01150             PUSHJ PDP,ADVBFF;     ADVANCE BUFFER\r
186         000063' 330000  000000  01160             SKIP\r
187         000064' 661000  000002  01170             TLO IOS,IOBEG;        IOBEG:=1\r
188         000065' 254000  000231' 01180             JRST CROFF\r
189 \r
190         000066' 260140  000164' 01200   CRFSTL:   PUSHJ PDP, CRITMS;    STORE ITEM\r
191         000067' 201040  000074' 01210             MOVEI TAC,CRCV;       TAC:=CRCV.   HOLLERITH READ\r
192 \r
193         000070' 715240  000002  01230   CRREST:   CONI CR, TAC1\r
194         000071' 620100  000160  01240             TRZ TAC1, CRBIN+CRALL+CRBUSY; SELECT HOLERITH, ALL:=0, BUS\r
195         000072' 715202  000000  01250             CONO CR, (TAC1);      RESET CARD READER\r
196         000073' 254000  000112' 01260             JRST CREXT1;          CHANGE DISPATCH AND GO\r
197 \r\fCDRSER - CARD READER SERVICE                 PAGE 5\r
198         8-2-65\r
199 \r
200 \r
201                                 01290   , HOLLERITH READ MODE\r
202 \r
203         000074' 200440  000241' 01310   CRCV:     MOVE CRAC, [POINT 6,CRDAT1,23];       COLUMNS 79 AND 80\r
204         000075' 715340  000400  01320             CONSO CR,CREOC;       END OF CARD?\r
205         000076' 200440  000142' 01330             MOVE CRAC,CRC1;       NO.  LOOK AT ALL CHARACTERS\r
206         000077' 134040  000011  01340             LDBI TAC,CRAC         ;CONVERT HOLLERITH\r
207         000100' 231040  000005  01350             IDIVI TAC, 5;         TO ASCII\r
208         000101' 135242  000206' 01360             LDB DAT, CRCV1(TAC1)\r
209         000102' 260140  000053* 01370             PUSHJ PDP,STODAT;     STORE IN BU FER\r
210         000103' 254000  000052' 01380             JRST CREOF+1\r
211         000104' 254000  000115' 01390             JRST CRINS\r
212         000105' 603440  760000  01400             TLNE CRAC, 760000;    WORD COMPLETE?\r
213         000106' 254000  000077' 01410             JRST CRCV+3;          NO\r
214         000107' 715300  000400  01420             CONSZ CR,CREOC;       END OF CARD?\r
215         000110' 254000  000115' 01430             JRST CRINS;           YES\r
216         000111' 201040  000074' 01440             MOVEI TAC, CRCV;      NEXT DISPATCH TO CRCV.  HOLLERITH READ\r
217 \r
218         000112' 542040  000057* 01460   CREXT1:   HRRM TAC, CRDIS;      UPDATE DISPTACHER\r
219         000113' 254000  000226' 01470             JRST CREXIT\r
220         000114' 000000  006424  01480   CRCON:    OCT 6424\r
221 \r
222         000115' 200440  000143' 01500   CRINS:    MOVE CRAC,CRC2;       BLOCK FULL OR BLOCK COMPLETE  INSERT CR\r
223         000116' 134240  000011  01510             LDBI DAT, CRAC\r
224         000117' 260140  000102* 01520             PUSHJ PDP,STODAT;     STORE CHAR\r
225         000120' 330000  000000  01530             SKIP;                 EXIT1.\r
226         000121' 254000  000217' 01540             JRST CRLST2;          EXIT2.  BLOCK FULL OR BLOCK COMPLETE\r
227         000122' 603440  760000  01550             TLNE CRAC,760000;     THATS ALL?\r
228         000123' 254000  000116' 01560             JRST CRINS+1;         NO\r
229         000124' 254000  000213' 01570             JRST CRLAST;          END OF CARD\r
230 \r\fCDRSER - CARD READER SERVICE                 PAGE 6\r
231         8-2-65\r
232 \r
233 \r
234                                 01600   , BINARY READ MODE\r
235 \r
236         000125' 135040  000242' 01620   CRFSTB:   LDB TAC,[POINT 3,CRDAT1,35];  7-9 PUNCH?\r
237         000126' 302040  000005  01630             CAIE TAC, 5\r
238         000127' 660000  400000  01640             TRO IOS, IOIMPM;      YES.  IOIMPM:=1\r
239         000130' 715240  000001  01650             CONI CR, TAC\r
240         000131' 620040  000120  01660             TRZ TAC, CRBUSY+CRALL;        BUSY FLAG:=0, ALL FLAG;=0\r
241         000132' 715201  000000  01670             CONO CR,(TAC);        RESET TO RE-READ COL 3\r
242         000133' 201040  000135' 01680             MOVEI TAC, CRCOL2;    DISPATCH TO CRCOL2 ON NEXT INTERRUPT\r
243         000134' 254000  000112' 01690             JRST CREXT1\r
244 \r
245         000135' 201040  000137' 01710   CRCOL2:   MOVEI TAC, CRCOL4;    DISPATCH TO CRCOL4 ON NEXT INTERRUPT\r
246         000136' 542040  000112* 01720             HRRM TAC,CRDIS\r
247 \r
248         000137' 200240  000010  01740   CRCOL4:   MOVE DAT, CRDAT1\r
249         000140' 260140  000165' 01750             PUSHJ PDP, CRITMS+1;          STORE THE WORD FROM DAT\r
250         000141' 254000  000226' 01760             JRST CREXIT\r
251 \r
252         000142' 440600  000010  01780   CRC1:     POINT 6,CRDAT1\r
253         000143' 170700  000114' 01790   CRC2:     POINT 7,CRCON,20\r
254 \r\fCDRSER - CARD READER SERVICE                 PAGE 7\r
255         8-2-65\r
256 \r
257 \r
258                                 01820   ,IMAGE READ MODE\r
259 \r
260         000144' 201040  000147' 01840   CRFSTI:   MOVEI TAC,  .+3;      DISPATCH TO CRFSTI + 3 ON NEXT INTERRUP\r
261         000145' 137400  000243' 01850             DPB CRDAT1,[POINT 24,CRTEM,23];       SAVE COLUMN 1 AS MI\r
262         000146' 254000  000112' 01860             JRST CREXT1\r
263 \r
264         000147' 260140  000164' 01880             PUSHJ PDP, CRITMS;    SET ITEM AND CHECK SIZE\r
265         000150' 434400  000240' 01890             IOR CRDAT1, CRTEM;    CRTEM12-35:=COL 1 AND 2\r
266         000151' 201040  000153' 01900             MOVEI TAC, .+2;       DISPATCH TO CRFSTI + 7 ON NEXT INTERRUP\r
267         000152' 254000  000157' 01910             JRST CRIM1+1\r
268 \r
269         000153' 715240  000002  01930             CONI CR, TAC1\r
270         000154' 620100  000120  01940             TRZ TAC1, CRBUSY+CRALL;       BUSY FLAG:=ALL FLAG:=0\r
271         000155' 715202  000000  01950             CONO CR, (TAC1);      RESET READER ON COL 3\r
272 \r
273         000156' 201040  000156' 01970   CRIM1:    MOVEI TAC,.;          DISPATCH TO CRIM1 ON NEXT INTERRUPT\r
274         000157' 715300  000400  01980             CONSZ CR, CREOC;      END OF CARD?\r
275         000160' 254000  000213' 01990             JRST CRLAST;          YES\r
276         000161' 202026  000010  02000             MOVEM @DEVPTR(DEVDAT)\r
277         000162' 350006  000010  02010             AOS DEVPTR(DEVDAT);   INCREMENT ITEM POINTER\r
278         000163' 254000  000112' 02020             JRST CREXT1\r
279 \r
280         000164' 661000  000004  02040   CRITMS:   TLO IOS, IOFST;       IOFST:=1\r
281         000165' 260140  000117* 02050             PUSHJ PDP, STODAT;    STORE WORD\r
282         000166' 254000  000052' 02060             JRST CREOF+1\r
283         000167' 254000  000052' 02070             JRST CREOF+1\r
284         000170' 263140  000000  02080             POPJ PDP,;            RETURN\r
285 \r
286         000171' 575426  231550  02100   CRCNV:    ASCII ._123456789.\r
287         000172' 325546  734162\r
288         000173' 301730  057116  02110             ASCII .0=@^'\ /ST.\r
289         000174' 561005  751650\r
290         000175' 526552  754262  02120             ASCII .UVWXYZ;,(".\r
291         000176' 551665  424104\r
292         000177' 215125  545226  02130             ASCII .#%-JKLMNOP.\r
293         000200' 462331  647640\r
294         000201' 506447  222124  02140             ASCII .QR:$*[>&+A.\r
295         000202' 555744  625602\r
296         000203' 412070  442614  02150             ASCII :BCDEFGHI?.:\r
297         000204' 436211  137534\r
298         000205' 246727  420576  02160             ASCII :)]<!?:\r
299 \r
300         000206' 350701  000171' 02180   CRCV1:    POINT 7,CRCNV(TAC),6\r
301         000207' 260701  000171' 02190             POINT 7,CRCNV(TAC),13\r
302         000210' 170701  000171' 02200             POINT 7,CRCNV(TAC),20\r
303         000211' 100701  000171' 02210             POINT 7,CRCNV(TAC),27\r
304         000212' 010701  000171' 02220             POINT 7,CRCNV(TAC),34\r
305 \r\fCDRSER - CARD READER SERVICE                 PAGE 8\r
306         8-2-65\r
307 \r
308 \r
309         000213' 301200  000122  02250   CRLAST:   CAIL ITEM,^D82;       C(ITEM)<82?\r
310         000214' 254000  000234' 02260             JRST CRCONT;          NO\r
311         000215' 260140  000000* 02270   CRLST0:   PUSHJ PDP,STOSQD;     STORE WORD COUNT\r
312         000216' 330000  000000  02280             SKIP\r
313         000217' 260140  000062* 02290   CRLST2:   PUSHJ PDP,ADVBFF;     ADVANCE BUFFER\r
314         000220' 254000  000231' 02300             JRST CROFF;           EXIT1.  NECT BUFFER FULL\r
315         000221' 201040  000047* 02310             MOVEI TAC, CDRCHN\r
316         000222' 715201  000160  02320             CONO CR, CRBIN+CRALL+CRBUSY(TAC);     SELECT BINARY, ALL\r
317                                 02330                                   ,ASSIGN PI CHANNEL\r
318         000223' 661000  040004  02340   CRLST1:   TLO IOS,IOFST+CRMFST;         IOFST:=CRMFST:=1\r
319         000224' 623000  000001  02350             TLZE IOS, IOW;        IN A WAIT?  IOW:=0\r
320         000225' 260140  000000* 02360             PUSHJ PDP, SETIOD;    IOWS:=1\r
321 \r
322         000226' 202006  000002  02380   CREXIT:   MOVEM IOS,DEVIOS(DEVDAT);     C(CRIOS):=C(IOS)\r
323         000227' 202206  000011  02390             MOVEM ITEM, DEVCTR(DEVDAT);   C(CRCTR):=C(ITEM)\r
324         000230' 254000  000000* 02400             JRST CDRRET;          RESTORE ACCUMULATORS AND DISMISS INTERR\r
325 \r
326         000231' 620000  010000  02420   CROFF:    TRZ IOS,IOACT;        IOACT:=0\r
327         000232' 715200  000000  02430             CONO CR,0;            CLEAR CDR CONTROL REGISTER\r
328         000233' 254000  000223' 02440             JRST CRLST1\r
329 \r
330         000234' 201040  000221* 02460   CRCONT:   MOVEI TAC, CDRCHN;    ASSIGN PI CHANNEL\r
331         000235' 715201  000160  02470             CONO CR, CRBIN+CRALL+CRBUSY(TAC);     SELECT BINARY, ALL,\r
332         000236' 661000  040000  02480             TLO IOS,CRMFST;       CRMFST:=1\r
333         000237' 254000  000226' 02490             JRST CREXIT\r
334 \r
335         000240' 000000  000000  02510   CRTEM:    0\r
336                                 02520   END,\r
337         000241' 140600  000010\r
338         000242' 000300  000010\r
339         000243' 143000  000240'\r
340 \r
341 NO ERRORS DETECTED\r
342 \r
343 PROGRAM BREAK IS 000244\r
344 \r
345 8K CORE USED\r
346 \r\fCDRSER - CARD READER SERVICE                 PAGE 9\r
347         SYMBOL TABLE\r
348 \r
349                 000253  \r
350 A               000000  INT\r
351 AC1             000015  INT\r
352 AC2             000016  INT\r
353 AC3             000017  INT\r
354 ADVBFF          000217' EXT\r
355 AL              000001  INT\r
356 ASSCON          400000  INT\r
357 ASSPRG          200000  INT\r
358 B               000014  INT\r
359 BUFPNT          000012  INT\r
360 BUFWRD          000013  INT\r
361 CDRCHN          000234' EXT\r
362 CDRDAT          000025' EXT\r
363 CDRDB           000000  EXT\r
364 CDRDSP          000000' ENT\r
365 CDRIN1          000005' \r
366 CDRINT          000022' INT\r
367 CDRRET          000230' EXT\r
368 CDRSAV          000024' EXT\r
369 CHCHN           000002  \r
370 CLOSB           002000  INT\r
371 CLSIN           000002  INT\r
372 CLSOUT          000001  INT\r
373 CR              000150  SPD\r
374 CRAC            000011  \r
375 CRALL           000100  \r
376 CRBIN           000040  \r
377 CRBUSY          000020  \r
378 CRC1            000142' \r
379 CRC2            000143' \r
380 CRCNV           000171' \r
381 CRCOL2          000135' \r
382 CRCOL4          000137' \r
383 CRCON           000114' \r
384 CRCONT          000234' \r
385 CRCV            000074' \r
386 CRCV1           000206' \r
387 CRDAT1          000010  \r
388 CRDIS           000136' EXT\r
389 CRDONE          000010  \r
390 CREOC           000400  \r
391 CREOF           000051' \r
392 CREOFC          000047' \r
393 CREOFF          001000  \r
394 CRERR           002000  \r
395 CREXIT          000226' \r
396 CREXT1          000112' \r
397 CRFIRS          000035' \r
398 CRFSTB          000125' \r
399 CRFSTI          000144' \r
400 CRFSTL          000066' \r
401 CRIM1           000156' \r
402 \r\fCDRSER - CARD READER SERVICE                 PAGE 9-1\r
403         SYMBOL TABLE\r
404 \r
405 CRINP           000004' \r
406 CRINS           000115' \r
407 CRITMS          000164' \r
408 CRLAST          000213' \r
409 CRLST0          000215' \r
410 CRLST1          000223' \r
411 CRLST2          000217' \r
412 CRMBIN          200000  \r
413 CRMFST          040000  \r
414 CRMIMG          100000  \r
415 CRMISS          000200  \r
416 CROFF           000231' \r
417 CRREST          000070' \r
418 CRTEM           000240' \r
419 D               000017  INT\r
420 DAT             000005  INT\r
421 DCL             000001  INT\r
422 DCW             020000  INT\r
423 DDI             000007  INT\r
424 DDO             000006  INT\r
425 DDTMEM          000037  INT\r
426 DDTSYM          000036  INT\r
427 DEN             000004  INT\r
428 DEVADR          000007  INT\r
429 DEVBUF          000006  INT\r
430 DEVCHR          000001  INT\r
431 DEVCTR          000011  INT\r
432 DEVDAT          000006  INT\r
433 DEVIAD          000007  INT\r
434 DEVIOS          000002  INT\r
435 DEVLOG          000005  INT\r
436 DEVMOD          000004  INT\r
437 DEVNAM          000000  INT\r
438 DEVOAD          000010  INT\r
439 DEVPTR          000010  INT\r
440 DEVSER          000003  INT\r
441 DGF             000012  INT\r
442 DIN             000003  INT\r
443 DLK             000005  INT\r
444 DOU             000002  INT\r
445 DR              000016  INT\r
446 DRL             000000  INT\r
447 DSI             000011  INT\r
448 DSO             000010  INT\r
449 DTW             040000  INT\r
450 DVAVAL          000040  INT\r
451 DVCDR           100000  INT\r
452 DVDIR           000004  INT\r
453 DVDIRI          400000  INT\r
454 DVIN            000002  INT\r
455 DVLPT           040000  INT\r
456 DVMTA           000020  INT\r
457 DVOUT           000001  INT\r
458 \r\fCDRSER - CARD READER SERVICE                 PAGE 9-2\r
459         SYMBOL TABLE\r
460 \r
461 DVTTY           000010  INT\r
462 ENTRB           020000  INT\r
463 I               000010  INT\r
464 IB              000013  INT\r
465 IBUFB           200000  INT\r
466 ILLOUT          000002' EXT\r
467 INITB           400000  INT\r
468 INPB            010000  INT\r
469 IO              000020  INT\r
470 IOACT           010000  INT\r
471 IOBEG           000002  INT\r
472 IOBKTL          040000  INT\r
473 IOCON           000040  INT\r
474 IODEND          020000  INT\r
475 IODERR          200000  INT\r
476 IODISC          400000  INT\r
477 IODONE          400000  INT\r
478 IODTER          100000  INT\r
479 IOEND           000040  INT\r
480 IOFST           000004  INT\r
481 IOIMPM          400000  INT\r
482 IONRCK          000100  INT\r
483 IORDEL          000100  INT\r
484 IORET           000020  INT\r
485 IOS             000000  INT\r
486 IOSET           000032' EXT\r
487 IOSTRT          000010  INT\r
488 IOUSE           400000  INT\r
489 IOW             000001  INT\r
490 IOWC            000020  INT\r
491 IOWS            400000  INT\r
492 ITEM            000004  INT\r
493 JBFADR          000000  INT\r
494 JBFCTR          000002  INT\r
495 JBFPTR          000001  INT\r
496 JBUF            000005  INT\r
497 JDAT            000011  INT\r
498 JERR            002000  INT\r
499 JIOW            100000  INT\r
500 JNA             004000  INT\r
501 LOOKB           040000  INT\r
502 MTW             010000  INT\r
503 OBUFB           100000  INT\r
504 OUTPB           004000  INT\r
505 PDP             000003  INT\r
506 PICHN           000100  INT\r
507 PIOMOD          000006' EXT\r
508 PROG            000007  INT\r
509 RUN             200000  INT\r
510 RUNABL          204000  INT\r
511 S2EOF           000032  \r
512 SETBYT          000015' EXT\r
513 SETIOD          000225' EXT\r
514 \r\fCDRSER - CARD READER SERVICE                 PAGE 9-3\r
515         SYMBOL TABLE\r
516 \r
517 STODAT          000165' EXT\r
518 STOSQD          000215' EXT\r
519 TAC             000001  INT\r
520 TAC1            000002  INT\r
521 TEM             000010  INT\r
522 TTYATC          020000  INT\r
523 TTYUSE          010000  INT\r
524 USRMOD          010000  INT\r
525 UUO             000014  INT\r
526 \f   CCCCCCCCCCCC      LLL                  KKK         KKK         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
527    CCCCCCCCCCCC      LLL                  KKK         KKK         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
528    CCCCCCCCCCCC      LLL                  KKK         KKK         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
529 CCC                  LLL                  KKK         KKK      CCC                  SSS                  SSS            \r
530 CCC                  LLL                  KKK         KKK      CCC                  SSS                  SSS            \r
531 CCC                  LLL                  KKK         KKK      CCC                  SSS                  SSS            \r
532 CCC                  LLL                  KKK      KKK         CCC                  SSS                  SSS            \r
533 CCC                  LLL                  KKK      KKK         CCC                  SSS                  SSS            \r
534 CCC                  LLL                  KKK      KKK         CCC                  SSS                  SSS            \r
535 CCC                  LLL                  KKKKKKKKK            CCC                     SSSSSSSSS            SSSSSSSSS   \r
536 CCC                  LLL                  KKKKKKKKK            CCC                     SSSSSSSSS            SSSSSSSSS   \r
537 CCC                  LLL                  KKKKKKKKK            CCC                     SSSSSSSSS            SSSSSSSSS   \r
538 CCC                  LLL                  KKK      KKK         CCC                              SSS                  SSS\r
539 CCC                  LLL                  KKK      KKK         CCC                              SSS                  SSS\r
540 CCC                  LLL                  KKK      KKK         CCC                              SSS                  SSS\r
541 CCC                  LLL                  KKK         KKK      CCC                              SSS                  SSS\r
542 CCC                  LLL                  KKK         KKK      CCC                              SSS                  SSS\r
543 CCC                  LLL                  KKK         KKK      CCC                              SSS                  SSS\r
544    CCCCCCCCCCCC      LLLLLLLLLLLLLLL      KKK         KKK         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
545    CCCCCCCCCCCC      LLLLLLLLLLLLLLL      KKK         KKK         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
546    CCCCCCCCCCCC      LLLLLLLLLLLLLLL      KKK         KKK         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
547 \r
548 \r
549 \r
550 \r
551 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
552 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
553 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
554 LLL                  SSS                        TTT                                                                     \r
555 LLL                  SSS                        TTT                                                                     \r
556 LLL                  SSS                        TTT                                                                     \r
557 LLL                  SSS                        TTT                                                                     \r
558 LLL                  SSS                        TTT                                                                     \r
559 LLL                  SSS                        TTT                                                                     \r
560 LLL                     SSSSSSSSS               TTT                                                                     \r
561 LLL                     SSSSSSSSS               TTT                                                                     \r
562 LLL                     SSSSSSSSS               TTT                                                                     \r
563 LLL                              SSS            TTT                                                                     \r
564 LLL                              SSS            TTT                                                                     \r
565 LLL                              SSS            TTT                                                                     \r
566 LLL                              SSS            TTT                                                                     \r
567 LLL                              SSS            TTT                                                                     \r
568 LLL                              SSS            TTT                                                                     \r
569 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
570 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
571 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
572 \r
573 \r
574 \r
575 \r
576 Request created: 24-April-1978  11:23:08\r
577 File: DSKB1 :CLKCSS.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:18
578 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2619 \r
579 File will be deleted after printing\r
580 \f\rCLKCSS - SCHEDULING ALOGRITHM                 PAGE 1\r
581         T. HASTING 6-29-65\r
582 \r
583                                 00010           XLIST\r
584                                 01930          LIST\r
585 \r\fCLKCSS - SCHEDULING ALOGRITHM                 PAGE 7\r
586         T. HASTING 6-29-65\r
587 \r
588 \r
589                                 00010   TITLE CLKCSS - SCHEDULING ALOGRITHM\r
590                                 00020   SUBTTL      T. HASTING 6-29-65\r
591                                 00030   ;SCHEDULING ALOGRITHM\r
592                                 00040   ;CALL:\r
593                                 00050   ;       PUSHJ PDP, NXTJOB\r
594                                 00060   ;       EXIT                    ;RETURN HIGHEST PRIORITY USER IN AC ITEM\r
595 \r
596                                 00080   ;NEXJOB ASSUMES NO ACS SET EXCEPT PDP AND THAT IS MAY USE\r
597                                 00090   ;ANY OF THE OTHER ACS\r
598                                 00100   ;EXECUTION REQUIRES ROUGHLY 37 CYCLES FOR NORMAL CASE\r
599 \r
600                                 00120   INTERNAL NXTJOB, QUANTS\r
601                                 00130   EXTERNAL IOCOMP,JOBN,JBTSTS,JOB\r
602                                 00140   EXTERNAL MTAVAL,DCAVAL,DTAVAL,SCNOFF,SCNON\r
603 \r
604                         000002  00160   T=TAC1    ;TEMPORARY AC\r
605                         000006  00170   C=DEVDAT\r
606                         000005  00180   P=DAT\r
607 \r
608         000000' 200100  000000* 00200   NXTJOB:   MOVE T, IOCOMP        ;NO. OF COMPLETED IO JOBS\r
609         000001' 202100  000064' 00210             MOVEM T, IOAVAL       ;MAKE SLOW IO LOOK LIKE FAST IO\r
610 \r
611                                 00230   ;KEEP IO DEVICES BUSY\r
612         000002' 515240  777774  00240             HRLZI P, -NUM         ;NO. OF IO DEVICES CATEGORIES TO CHECK\r
613         000003' 336025  000060' 00250   NXT0:     SKIPN @AVALTB(P)      ;NON-ZERO IF IO JUST BECOME AVAILABLE\r
614         000004' 253240  000003' 00260   NXT1:     AOBJN P, NXT0\r
615         000005' 327240  000026' 00270             JUMPG P, NXT4         ;FINISHED YET\r
616         000006' 402025  000060' 00280             SETZM @AVALTB(P)      ;IO DEVICE AVAIL. ACKNOWLEDGE FACT\r
617         000007' 200105  000065' 00290             MOVE T,WAITB(P)       ;GET APPROPRIATE JOB STATUS BIT\r
618         000010' 200205  000071' 00300             MOVE ITEM,JOBP(P)     ;SEARCH FOR WAITING JOB\r
619         000011' 350000  000004  00310             AOS ITEM              ;LOOK AT EVERYONE ELSE FIRST\r
620         000012' 301200  000000* 00320   NXT2:     CAIL ITEM,JOBN        ;MODULO JOBN\r
621         000013' 201200  000001  00330             MOVEI ITEM,1          ;SKIP NULL JOB\r
622         000014' 617104  000000* 00340             TSNN T,JBTSTS(ITEM)   ;IS WAIT BIT SET FOR THIS JOB?\r
623         000015' 254000  000023' 00350             JRST NXT3 ;NO. KEEP LOOKING\r
624         000016' 700600  000000* 00360             CONO PI,SCNOFF        ;YES, TURN SCANNER CHAN. OFF(CONTROL C)\r
625         000017' 554044  000014* 00370             HLRZ TAC,JBTSTS(ITEM)           ;IS JOB RUNABLE?\r
626         000020' 306042  204000  00380             CAIN TAC,RUNABLE(T)\r
627         000021' 254000  000041' 00390             JRST NXT7             ;YES, CLEAR BIT. SET RUN TIME. RETURN\r
628         000022' 700600  000000* 00400             CONO PI,SCNON         ;NO. TURN SCANNER CHAN. ON. KEEP LOOKIN\r
629         000023' 312205  000071' 00410   NXT3:     CAME ITEM, JOBP(P)    ;HAVE ALL USERS BEEN LOOKED AT\r
630         000024' 344200  000012' 00420             AOJA ITEM, NXT2       ;NO. KEEP LOOKING\r
631         000025' 254000  000004' 00430             JRST NXT1             ;YES. SHOULD NOT HAPPEN\r
632 \r\fCLKCSS - SCHEDULING ALOGRITHM                 PAGE 2\r
633         T. HASTING 6-29-65\r
634 \r
635 \r
636                                 00460   ;NO JOBS WAITING TO USE IO DEVICES\r
637                                 00470   ;HAS CURENT JOB USED ITS QUANTUM\r
638 \r
639         000026' 201300  000012* 00490   NXT4:     MOVEI C,JOBN          ;GET READY FOR POSSIBLE LOOP\r
640         000027' 334200  000000* 00500             SKIPA ITEM, JOB       ;CURRENTLY RUNNING JOB\r
641 \r
642         000030' 350000  000004  00520   NXT6:     AOS ITEM              ;LOOK AT NEXT JOB\r
643         000031' 301200  000026* 00530             CAIL ITEM, JOBN       ;MODULO JOBN\r
644         000032' 201200  000001  00540             MOVEI ITEM, 1         ;SKIP NULL JOB\r
645 \r
646         000033' 554104  000017* 00560   NXT5:     HLRZ T, JBTSTS(ITEM)           ;IS THIS JOB RUNNABLE\r
647         000034' 306100  204000  00570             CAIN T, RUNABLE\r
648         000035' 254000  000050' 00580             JRST NXT9             ;YES,RETURN WITH ITEM SET\r
649         000036' 367300  000030' 00590   NXT5A:    SOJG C, NXT6          ;NO. LOOKED AT ALL JOBS YET?\r
650         000037' 403200  000002  00600             SETZB ITEM,T          ;YES. INDICATE NULL JOB TO RUN\r
651         000040' 344100  000054' 00610             AOJA T,NXT8           ;SET TO RUN FOR ONE CLOCK TICK\r
652 \r
653         000041' 202205  000071' 00630   NXT7:     MOVEM ITEM, JOBP(P)   ;SAVE THIS JOB NO. FOR NEXT TIME\r
654         000042' 620042  000000  00640             TRZ TAC,(T)           ;CLEAR WAIT BIT\r
655         000043' 506044  000033* 00650             HRLM TAC,JBTSTS(ITEM)           ;IN JOB STATUS WORD\r
656         000044' 602100  400000  00660             TRNE T,IOWS           ;IS WAIT BIT IOWS?\r
657         000045' 370000  000000* 00670             SOS IOCOMP            ;YES, SUBTRACT REQUEST COUNT\r
658         000046' 700600  000022* 00680             CONO PI,SCNON         ;TURN SCANNER CHANNEL BACK ON\r
659         000047' 254000  000053' 00690             JRST NXT10            ;AND GO SET RUNNING TIME\r
660 \r
661         000050' 550104  000043* 00710   NXT9:     HRRZ T,JBTSTS(ITEM)   ;HAS TIME GONE TO ZERO FOR THIS JOB?\r
662         000051' 602100  777777  00720             TRNE T,-1\r
663         000052' 263140  000000  00730             POPJ PDP,             ;NO\r
664         000053' 200105  000075' 00740   NXT10:    MOVE T, QUANTS(P)     ;SET QUANTUM RUNNING TIME FOR THIS QUEU\r
665         000054' 542104  000050* 00750   NXT8:     HRRM T, JBTSTS(ITEM)\r
666         000055' 316200  000027* 00760             CAMN ITEM, JOB        ;IS THIS SAME AS OLD JOB?\r
667         000056' 326200  000036' 00770             JUMPN ITEM, NXT5A     ;AND NOT NULL JOB\r
668         000057' 263140  000000  00780             POPJ PDP,\r
669 \r\fCLKCSS - SCHEDULING ALOGRITHM                 PAGE 3\r
670         T. HASTING 6-29-65\r
671 \r
672 \r
673                                 00810   ;FLAGS SET NON-ZERO WHEN IO DEVICES BECOME AVAILABLE\r
674 \r
675         000060' 000000  000000* 00830   AVALTB:   EXP MTAVAL            ;MAG TAPE\r
676         000061' 000000  000000* 00840             EXP DCAVAL            ;DATA CONTROL\r
677         000062' 000000  000000* 00850             EXP DTAVAL            ;DECTAPE\r
678         000063' 000000  000064' 00860             EXP IOAVAL            ;ALL OTHER DEVICES\r
679                         000004  00870   NUM=.-AVALTB\r
680 \r
681         000064' 000000  000000  00890   IOAVAL:   0                     ;FLAG = NO. OF IO COMPLETED JOBS\r
682 \r
683                                 00910   ;BIT IN STATUS WORD MEANING JOB WAITING TO USE DEVICE\r
684         000065' 000000  010000  00920   WAITB:    EXP MTW\r
685         000066' 000000  020000  00930             EXP DCW\r
686         000067' 000000  040000  00940             EXP DTW\r
687         000070' 000000  400000  00950             EXP IOWS\r
688 \r
689                                 00970   ;LAST JOB SCHEDULED FOR DEVICE\r
690                                 00980   JOBP:     REPEAT NUM,\r
691                                 00990   <         EXP 1\r
692                                 01000   >\r
693         000071' 000000  000001                    EXP 1\r
694 \r
695         000072' 000000  000001                    EXP 1\r
696 \r
697         000073' 000000  000001                    EXP 1\r
698 \r
699         000074' 000000  000001                    EXP 1\r
700 \r
701 \r
702                                 01020   ;QUANTUM TIMES FOR EACH QUEUE\r
703 \r
704         000075' 000000  000004  01040   QUANTS:   EXP 4                 ;MAGTAPE QUEUE\r
705         000076' 000000  000004  01050             EXP 4                 ;DATA CONTROL QUEUE\r
706         000077' 000000  000004  01060             EXP 4                 ;DECTAPE QUEUE\r
707         000100' 000000  000006  01070             EXP 6                 ;IOWAIT SATISFIED QUEUE\r
708         000101' 000000  000017  01080             EXP QUANT1            ;STRAIGHT COMPUTATION QUEUE\r
709 \r
710                                 01100   XP  QUANT1,^D15;        STRAIGHT COMPUTATION QUEUE\r
711 \r
712                                 01120             END,\r
713 \r
714 NO ERRORS DETECTED\r
715 \r
716 PROGRAM BREAK IS 000102\r
717 \r
718 8K CORE USED\r
719 \r\fCLKCSS - SCHEDULING ALOGRITHM                 PAGE 4\r
720         SYMBOL TABLE\r
721 \r
722                 000217  \r
723 A               000000  INT\r
724 AC1             000015  INT\r
725 AC2             000016  INT\r
726 AC3             000017  INT\r
727 AL              000001  INT\r
728 ASSCON          400000  INT\r
729 ASSPRG          200000  INT\r
730 AVALTB          000060' \r
731 B               000014  INT\r
732 BUFPNT          000012  INT\r
733 BUFWRD          000013  INT\r
734 C               000006  \r
735 CLOSB           002000  INT\r
736 CLSIN           000002  INT\r
737 CLSOUT          000001  INT\r
738 D               000017  INT\r
739 DAT             000005  INT\r
740 DCAVAL          000061' EXT\r
741 DCL             000001  INT\r
742 DCW             020000  INT\r
743 DDI             000007  INT\r
744 DDO             000006  INT\r
745 DDTMEM          000037  INT\r
746 DDTSYM          000036  INT\r
747 DEN             000004  INT\r
748 DEVADR          000007  INT\r
749 DEVBUF          000006  INT\r
750 DEVCHR          000001  INT\r
751 DEVCTR          000011  INT\r
752 DEVDAT          000006  INT\r
753 DEVIAD          000007  INT\r
754 DEVIOS          000002  INT\r
755 DEVLOG          000005  INT\r
756 DEVMOD          000004  INT\r
757 DEVNAM          000000  INT\r
758 DEVOAD          000010  INT\r
759 DEVPTR          000010  INT\r
760 DEVSER          000003  INT\r
761 DGF             000012  INT\r
762 DIN             000003  INT\r
763 DLK             000005  INT\r
764 DOU             000002  INT\r
765 DR              000016  INT\r
766 DRL             000000  INT\r
767 DSI             000011  INT\r
768 DSO             000010  INT\r
769 DTAVAL          000062' EXT\r
770 DTW             040000  INT\r
771 DVAVAL          000040  INT\r
772 DVCDR           100000  INT\r
773 DVDIR           000004  INT\r
774 DVDIRI          400000  INT\r
775 \r\fCLKCSS - SCHEDULING ALOGRITHM                 PAGE 4-1\r
776         SYMBOL TABLE\r
777 \r
778 DVIN            000002  INT\r
779 DVLPT           040000  INT\r
780 DVMTA           000020  INT\r
781 DVOUT           000001  INT\r
782 DVTTY           000010  INT\r
783 ENTRB           020000  INT\r
784 I               000010  INT\r
785 IB              000013  INT\r
786 IBUFB           200000  INT\r
787 INITB           400000  INT\r
788 INPB            010000  INT\r
789 IO              000020  INT\r
790 IOACT           010000  INT\r
791 IOAVAL          000064' \r
792 IOBEG           000002  INT\r
793 IOBKTL          040000  INT\r
794 IOCOMP          000045' EXT\r
795 IOCON           000040  INT\r
796 IODEND          020000  INT\r
797 IODERR          200000  INT\r
798 IODISC          400000  INT\r
799 IODONE          400000  INT\r
800 IODTER          100000  INT\r
801 IOEND           000040  INT\r
802 IOFST           000004  INT\r
803 IOIMPM          400000  INT\r
804 IONRCK          000100  INT\r
805 IORDEL          000100  INT\r
806 IORET           000020  INT\r
807 IOS             000000  INT\r
808 IOSTRT          000010  INT\r
809 IOUSE           400000  INT\r
810 IOW             000001  INT\r
811 IOWC            000020  INT\r
812 IOWS            400000  INT\r
813 ITEM            000004  INT\r
814 JBFADR          000000  INT\r
815 JBFCTR          000002  INT\r
816 JBFPTR          000001  INT\r
817 JBTSTS          000054' EXT\r
818 JBUF            000005  INT\r
819 JDAT            000011  INT\r
820 JERR            002000  INT\r
821 JIOW            100000  INT\r
822 JNA             004000  INT\r
823 JOB             000055' EXT\r
824 JOBN            000031' EXT\r
825 JOBP            000071' \r
826 LOOKB           040000  INT\r
827 MTAVAL          000060' EXT\r
828 MTW             010000  INT\r
829 NUM             000004  \r
830 NXT0            000003' \r
831 \r\fCLKCSS - SCHEDULING ALOGRITHM                 PAGE 4-2\r
832         SYMBOL TABLE\r
833 \r
834 NXT1            000004' \r
835 NXT10           000053' \r
836 NXT2            000012' \r
837 NXT3            000023' \r
838 NXT4            000026' \r
839 NXT5            000033' \r
840 NXT5A           000036' \r
841 NXT6            000030' \r
842 NXT7            000041' \r
843 NXT8            000054' \r
844 NXT9            000050' \r
845 NXTJOB          000000' INT\r
846 OBUFB           100000  INT\r
847 OUTPB           004000  INT\r
848 P               000005  \r
849 PDP             000003  INT\r
850 PI              000004  SPD\r
851 PICHN           000100  INT\r
852 PROG            000007  INT\r
853 QUANT1          000017  INT\r
854 QUANTS          000075' INT\r
855 RUN             200000  INT\r
856 RUNABL          204000  INT\r
857 SCNOFF          000016' EXT\r
858 SCNON           000046' EXT\r
859 T               000002  \r
860 TAC             000001  INT\r
861 TAC1            000002  INT\r
862 TEM             000010  INT\r
863 TTYATC          020000  INT\r
864 TTYUSE          010000  INT\r
865 USRMOD          010000  INT\r
866 UUO             000014  INT\r
867 WAITB           000065' \r
868 \f   CCCCCCCCCCCC      LLL                     OOOOOOOOO            CCCCCCCCCCCC      KKK         KKK                     \r
869    CCCCCCCCCCCC      LLL                     OOOOOOOOO            CCCCCCCCCCCC      KKK         KKK                     \r
870    CCCCCCCCCCCC      LLL                     OOOOOOOOO            CCCCCCCCCCCC      KKK         KKK                     \r
871 CCC                  LLL                  OOO         OOO      CCC                  KKK         KKK                     \r
872 CCC                  LLL                  OOO         OOO      CCC                  KKK         KKK                     \r
873 CCC                  LLL                  OOO         OOO      CCC                  KKK         KKK                     \r
874 CCC                  LLL                  OOO         OOO      CCC                  KKK      KKK                        \r
875 CCC                  LLL                  OOO         OOO      CCC                  KKK      KKK                        \r
876 CCC                  LLL                  OOO         OOO      CCC                  KKK      KKK                        \r
877 CCC                  LLL                  OOO         OOO      CCC                  KKKKKKKKK                           \r
878 CCC                  LLL                  OOO         OOO      CCC                  KKKKKKKKK                           \r
879 CCC                  LLL                  OOO         OOO      CCC                  KKKKKKKKK                           \r
880 CCC                  LLL                  OOO         OOO      CCC                  KKK      KKK                        \r
881 CCC                  LLL                  OOO         OOO      CCC                  KKK      KKK                        \r
882 CCC                  LLL                  OOO         OOO      CCC                  KKK      KKK                        \r
883 CCC                  LLL                  OOO         OOO      CCC                  KKK         KKK                     \r
884 CCC                  LLL                  OOO         OOO      CCC                  KKK         KKK                     \r
885 CCC                  LLL                  OOO         OOO      CCC                  KKK         KKK                     \r
886    CCCCCCCCCCCC      LLLLLLLLLLLLLLL         OOOOOOOOO            CCCCCCCCCCCC      KKK         KKK                     \r
887    CCCCCCCCCCCC      LLLLLLLLLLLLLLL         OOOOOOOOO            CCCCCCCCCCCC      KKK         KKK                     \r
888    CCCCCCCCCCCC      LLLLLLLLLLLLLLL         OOOOOOOOO            CCCCCCCCCCCC      KKK         KKK                     \r
889 \r
890 \r
891 \r
892 \r
893 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
894 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
895 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
896 LLL                  SSS                        TTT                                                                     \r
897 LLL                  SSS                        TTT                                                                     \r
898 LLL                  SSS                        TTT                                                                     \r
899 LLL                  SSS                        TTT                                                                     \r
900 LLL                  SSS                        TTT                                                                     \r
901 LLL                  SSS                        TTT                                                                     \r
902 LLL                     SSSSSSSSS               TTT                                                                     \r
903 LLL                     SSSSSSSSS               TTT                                                                     \r
904 LLL                     SSSSSSSSS               TTT                                                                     \r
905 LLL                              SSS            TTT                                                                     \r
906 LLL                              SSS            TTT                                                                     \r
907 LLL                              SSS            TTT                                                                     \r
908 LLL                              SSS            TTT                                                                     \r
909 LLL                              SSS            TTT                                                                     \r
910 LLL                              SSS            TTT                                                                     \r
911 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
912 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
913 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
914 \r
915 \r
916 \r
917 \r
918 Request created: 24-April-1978  11:23:08\r
919 File: DSKB1 :CLOCK .LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:18
920 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2612 \r
921 File will be deleted after printing\r
922 \f\rCLOCK - CLOCK SERVICE ROUTINE                 PAGE 1\r
923         T. HASTINGS 6-2-65\r
924 \r
925                                 00010           XLIST\r
926                                 01930          LIST\r
927 \r\fCLOCK - CLOCK SERVICE ROUTINE                 PAGE 7\r
928         T. HASTINGS 6-2-65\r
929 \r
930 \r
931                                 00010   TITLE CLOCK - CLOCK SERVICE ROUTINE\r
932                                 00020   SUBTTL      T. HASTINGS 6-2-65\r
933                                 00030   INTERNAL CLOCK, CLKINI,NULJOB,APRINT,RSCHED\r
934                                 00040   EXTERNAL APRSAV, APRRET, APRCHN,APRILM,APRCHL\r
935                                 00050   EXTERNAL COMCNT,COMMAND,JOB,JOBADR,APRSAC,JOBDAC,JOBPDP,JOBREL\r
936                                 00060   EXTERNAL USRPDP,JOBPFU,JOBPC,JBTADR,JOBADR,JOBDAT,USRPFU,CLDS,NXTJOB\r
937                                 00070   EXTERNAL STOPU,SCHEDF,TIME,JOBLEV,JOBUXT,UUO0,JOBDHI,CLKOFF,JBTSTS\r
938 \r
939                                 00090   ;CLOCK WILL TIME AN INTERVAL AND PUSHJ PDP, TO AN ADDRESS\r
940                                 00100   ;AFTER THE INTERVAL HAS EXPIRED\r
941                                 00110   ;TO MAKE A REQUEST:\r
942                                 00120   ;       CONO PI,PIOFF\r
943                                 00130   ;       DPBI AC,CLOCK\r
944                                 00140   ;       CONO PI,PION\r
945                                 00150   ;AC MUST CONTAIN- XWD ADDRESS,NUMBER OF CLOCK COUNTS+DATA*1000\r
946                                 00160   ;THE HIGH ORDER SIX BITS OF THE RIGHT HALF(DATA) ARE PLACED IN AC\r
947                                 00170   ;TAC RIGHT JUSTIFIED BEFORE THE PUSHJ PDP, ADDRES IS DONE\r
948 \r
949                                 00190   ;SYSTEM FLAGS:\r
950                                 00200   ; STOPU IS SET NON-ZERO AT EITHER INTERRUPT SERVICE LEVEL OR\r
951                                 00210   ;   UUO LEVEL AND A CLOCK INTERRUPT IS REQUESTED WHEN CURRENT\r
952                                 00220   ;   JOB MUST BE STOPPED AND ANOTHER ONE RUN.\r
953                                 00230   ; SCHEDF IS SET NON-ZERO BY CLOCK ROUTINE WHEN IF IS IN THE PROCESS\r
954                                 00240   ;   OF RESCHEDULING.  IT IS CLEARED AFTER JOB HAS BEEN SET TO\r
955                                 00250   ;   CURRENTLY RUNNING JOB.\r
956                                 00260   ; TIME IS THE TIME SYSTEM HAS RUN IN 60THS OF A SECOND\r
957 \r
958                         000200  00280   PION=200\r
959                         000400  00290   PIOFF=400\r
960 \r
961                         000005  00310   STOR=DAT\r
962                         000001  00320   T=TAC\r
963                         000011  00330   JA=JDAT\r
964 \r
965         000000' 004400  000000' 00350   CLOCK:    POINT 36,CIPWT-1,35           ;BYTE POINTER TO CLOCK QUEUE\r
966         000001'                 00360   CIPWT:    BLOCK 12                      ;THE QUEUE\r
967 \r
968         000013' 201000  000000' 00380   CLKINI:   MOVEI CIPWT-1                 ;SET UP BYTE POINTER\r
969         000014' 542000  000000' 00390             HRRM CLOCK\r
970         000015' 263140  000000  00400             POPJ PDP,\r
971 \r\fCLOCK - CLOCK SERVICE ROUTINE                 PAGE 2\r
972         T. HASTINGS 6-2-65\r
973 \r
974 \r
975         000016' 254000  000020' 00430   APRINT:   JRST .+2              ;HERE ON APR INTERRUPT\r
976         000017' 254000  000017' 00440             JRST .                ;TO OTHER DEVICES ON THIS CHANNEL\r
977         000020' 700340  230000  00450             CONSO APR,230000              ;IS IT ANY OF THE OTHERS\r
978         000021' 254000  000024' 00460             JRST CIP0             ;NO. GO CHECK CLOCK\r
979         000022' 264000  000000* 00470             JSR APRSAV                    ;YES, SAVE ACS\r
980         000023' 254000  000000* 00480             JRST APRILM                   ;AND GO PROCESS ILLEGAL MEMOR\r
981         000024' 700340  002000  00490   CIP0:     CONSO APR, 2000       ;IS CLOCK ENABLED\r
982         000025' 254000  000030' 00500             JRST CIP1  ;NO. GO TO OTHER DEVICES\r
983         000026' 700300  001000  00510             CONSZ APR, 1000       ;YES, DID CLOCK CAUSE INTERRUPT\r
984         000027' 254000  000034' 00520             JRST CIP2             ;YES\r
985         000030' 336000  000000* 00530   CIP1:     SKIPN STOPU           ;NO, IS THIS A REQUEST INTERRUPT\r
986         000031' 254000  000017' 00540             JRST APRINT+1         ;NO. GO TO OTHER DEVICES\r
987         000032' 264000  000022* 00550   CIP1B:    JSR APRSAV            ;YES, SAVE ACS\r
988         000033' 254000  000064' 00560             JRST CIP6             ;RESCHEDULE BUT DONT TIME\r
989 \r\fCLOCK - CLOCK SERVICE ROUTINE                 PAGE 3\r
990         T. HASTINGS 6-2-65\r
991 \r
992 \r
993         000034' 264000  000032* 00590   CIP2:     JSR APRSAV                    ;SAVE ACS\r
994         000035' 350000  000000* 00600             AOS TIME              ;INCREMENT TIME\r
995         000036' 200040  000000* 00610             MOVE TAC,JOB          ;DECREMENT CURRENT JOBS RUNNING TIME\r
996         000037' 370001  000000* 00620             SOS JBTSTS(TAC)\r
997         000040' 700200  000000* 00630             CONO APR,CLKOFF       ;TURN CLOCK FLAG OFF\r
998 \r
999                                 00650   ;PROCESS TIMING REQUESTS STORED IN QUEUE\r
1000         000041' 550240  000000' 00660             HRRZ STOR, CLOCK      ;GET END OF LIST\r
1001         000042' 306240  000000' 00670   CIP4:     CAIN STOR, CIPWT-1    ;END YET\r
1002         000043' 254000  000062' 00680             JRST CIP5             ;YES\r
1003         000044' 370105  000000  00690             SOS TAC1, (STOR)      ;DECREMENT TIMING REQUEST\r
1004         000045' 602100  007777  00700             TRNE TAC1, 7777       ;TIME EXPIRED YET\r
1005         000046' 364240  000042' 00710             SOJA STOR, CIP4       ;NO, CONTINUE SCAN\r
1006         000047' 700600  000400  00720             CONO PI, PIOFF        ;YES. MOVE LAST ITEM IN LIST TO THS\r
1007         000050' 200060  000000' 00730             MOVE TAC, @CLOCK\r
1008         000051' 370000  000000' 00740             SOS CLOCK\r
1009         000052' 700600  000200  00750             CONO PI, PION\r
1010         000053' 202045  000000  00760             MOVEM TAC, (STOR)\r
1011         000054' 135040  000143' 00770             LDB TAC, [POINT 6, TAC1, 23]  ;GET 6 BIT DATA ITEM\r
1012         000055' 207000  000002  00780             MOVSS TAC1            ;SETUP DISPATCH ADDRESS\r
1013         000056' 261140  000005  00790             PUSH PDP, STOR        ;SAVE ONLY VALUABLE AC\r
1014         000057' 260142  000000  00800             PUSHJ PDP, (TAC1)     ;AND DISPATCH TO TIMING REQUEST ROUTINE\r
1015         000060' 262140  000005  00810             POP PDP, STOR\r
1016         000061' 364240  000042' 00820             SOJA STOR, CIP4       ;GO BACK FOR MORE REQUESTS\r
1017 \r
1018         000062' 332000  000000* 00840   CIP5:     SKIPE COMCNT          ;ANY COMMANDS TO PROCESS\r
1019         000063' 260140  000000* 00850             PUSHJ PDP, COMMAND    ;YES\r
1020         000064'                 00860   RSCHED:                         ;RESCHEDULE, HERE AFTER APRILM\r
1021         000064' 402000  000030* 00870   CIP6:     SETZM STOPU           ;CLEAR INTERRUPT REQUEST FLAG\r
1022         000065' 476000  000000* 00880             SETOM SCHEDF          ;FLAG THAT SCHEDULING IS IN PROGRESS\r
1023         000066' 260140  000000* 00890             PUSHJ PDP, NXTJOB     ;RETURN HIGHEST PRIORITY JOB IN AC ITEM\r
1024         000067' 316200  000036* 00900             CAMN ITEM, JOB        ;IS IT SAME AS CURRENT JOB\r
1025         000070' 254000  000136' 00910             JRST CIP8 ;YES, EXIT\r
1026 \r\fCLOCK - CLOCK SERVICE ROUTINE                 PAGE 4\r
1027         T. HASTINGS 6-2-65\r
1028 \r
1029 \r
1030                                 00940   ;DIFFERENT JOB, SAVE OLD JOB\r
1031         000071' 336000  000067* 00950             SKIPN JOB             ;IS OLD JOB THE NULL JOB\r
1032         000072' 254000  000110' 00960             JRST CIP7             ;YES, DONT BOTHER TO SAVE ANYTHING\r
1033         000073' 200440  000000* 00970             MOVE JA, JOBADR       ;NO. MOVE CHANNEL ACS TO USER JOB AREA\r
1034         000074' 201051  000000* 00980             MOVEI T,JOBDAC(JA)\r
1035         000075' 505040  000000* 00990             HRLI T, APRSAC\r
1036         000076' 251051  000000* 01000             BLT T, JOBDHI(JA)\r
1037         000077' 201051  000000* 01010             MOVEI T, JOBPDP(JA)   ;MOVE JOB STATE VARIABLES TO JOB DATA A\r
1038         000100' 505040  000000* 01020             HRLI T, USRPDP\r
1039         000101' 251051  000000* 01030             BLT T, JOBPFU(JA)\r
1040         000102' 200040  000040  01040             MOVE T, 40                    ;SAVE LOC. 40\r
1041         000103' 202051  000000* 01050             MOVEM T, JOBLEV(JA)\r
1042         000104' 200040  000000* 01060             MOVE T, UUO0                  ;AND UUO PC\r
1043         000105' 202051  000000* 01070             MOVEM T, JOBUXT(JA)\r
1044         000106' 200040  000000* 01080             MOVE T, APRCHL        ;SET C(CHANNEL INTERRUPT LOC.) AS PC\r
1045         000107' 202051  000000* 01090             MOVEM T, JOBPC(JA)\r
1046 \r
1047 \r\fCLOCK - CLOCK SERVICE ROUTINE                 PAGE 5\r
1048         T. HASTINGS 6-2-65\r
1049 \r
1050 \r
1051                                 01130   ;RESTOR NEW JOB\r
1052         000110' 202200  000071* 01140   CIP7:     MOVEM ITEM, JOB       ;STORE NEW CURRENT JOB NUMBER\r
1053         000111' 403000  000065* 01150             SETZB 0,SCHEDF        ;INDICATE SCHEDULING FINISHED\r
1054         000112' 322200  000140' 01160             JUMPE ITEM, NUL0      ;IS NEW JOB NULL JOB\r
1055         000113' 200444  000000* 01170             MOVE JA, JBTADR(ITEM)         ;SETUP STATE VARIABLES FOR CU\r
1056         000114' 552440  000073* 01180             HRRZM JA, JOBADR      ;IN SYSTEM AREA\r
1057         000115' 552440  000000* 01190             HRRZM JA, JOBDAT\r
1058         000116' 556451  000000* 01200             HLRZM JA, JOBREL(JA)          ;SET RELOCATION AND PROTECTION\r
1059         000117' 700140  000011  01210             DATAO JA\r
1060         000120' 201040  000100* 01220             MOVEI T,USRPDP\r
1061         000121' 505051  000077* 01230             HRLI T, JOBPDP(JA)    ;MOVE JOB STATE VARIABLES TO SYSTEM ARE\r
1062         000122' 251040  000000* 01240             BLT T, USRPFU\r
1063         000123' 200051  000103* 01250             MOVE T, JOBLEV(JA)    ;RESTORE LOC. 40\r
1064         000124' 202040  000040  01260             MOVEM T, 40\r
1065         000125' 200051  000105* 01270             MOVE T, JOBUXT(JA)    ;AND UUO PC\r
1066         000126' 202040  000104* 01280             MOVEM T, UUO0\r
1067         000127' 200051  000107* 01290             MOVE T, JOBPC(JA)     ;SET C(CHANNEL LOC.) TO C(JOBPC)\r
1068         000130' 202040  000106* 01300             MOVEM T, APRCHL\r
1069         000131' 205751  000074* 01310             MOVSI 17, JOBDAC(JA)          ;RESTORE USER ACS\r
1070         000132' 251740  000017  01320             BLT 17,17\r
1071         000133' 332000  000064* 01330             SKIPE STOPU           ;HAS STOPU BEEN SET SINCE CIP6\r
1072         000134' 254000  000032' 01340             JRST CIP1B                    ;YES, GO RESCHEDULE\r
1073         000135' 254520  000130* 01350             JEN @APRCHL           ;NO. DISMISS CHANNEL\r
1074 \r
1075         000136' 402000  000111* 01370   CIP8:     SETZM SCHEDF                  ;CLEAR SCHEDULING FLAG\r
1076         000137' 254000  000000* 01380             JRST APRRET                   ;AND DISMISS INTERRUPT\r
1077 \r
1078                                 01400   ;THE NULL JOB\r
1079         000140' 254400  000141' 01410   NUL0:     JRST 10, NULJOB       ;RENABLE AND RUN IN EXEC. MODE\r
1080 \r
1081         000141' 200040  000142' 01430   NULJOB:   MOVE 1,.+1\r
1082         000142' 344000  000001  01440             AOJA 0,1  ;COUNT IN AC0 FOR VISUAL MONITORING\r
1083                                 01450                                   ;ALSO PC = 1\r
1084                                 01460             END,\r
1085         000143' 140600  000002\r
1086 \r
1087 NO ERRORS DETECTED\r
1088 \r
1089 PROGRAM BREAK IS 000144\r
1090 \r
1091 8K CORE USED\r
1092 \r\fCLOCK - CLOCK SERVICE ROUTINE                 PAGE 6\r
1093         SYMBOL TABLE\r
1094 \r
1095                 000243  \r
1096 A               000000  INT\r
1097 AC1             000015  INT\r
1098 AC2             000016  INT\r
1099 AC3             000017  INT\r
1100 AL              000001  INT\r
1101 APR             000000  SPD\r
1102 APRCHL          000135' EXT\r
1103 APRCHN          000000  EXT\r
1104 APRILM          000023' EXT\r
1105 APRINT          000016' INT\r
1106 APRRET          000137' EXT\r
1107 APRSAC          000075' EXT\r
1108 APRSAV          000034' EXT\r
1109 ASSCON          400000  INT\r
1110 ASSPRG          200000  INT\r
1111 B               000014  INT\r
1112 BUFPNT          000012  INT\r
1113 BUFWRD          000013  INT\r
1114 CIP0            000024' \r
1115 CIP1            000030' \r
1116 CIP1B           000032' \r
1117 CIP2            000034' \r
1118 CIP4            000042' \r
1119 CIP5            000062' \r
1120 CIP6            000064' \r
1121 CIP7            000110' \r
1122 CIP8            000136' \r
1123 CIPWT           000001' \r
1124 CLDS            000000  EXT\r
1125 CLKINI          000013' INT\r
1126 CLKOFF          000040' EXT\r
1127 CLOCK           000000' INT\r
1128 CLOSB           002000  INT\r
1129 CLSIN           000002  INT\r
1130 CLSOUT          000001  INT\r
1131 COMCNT          000062' EXT\r
1132 COMMAN          000063' EXT\r
1133 D               000017  INT\r
1134 DAT             000005  INT\r
1135 DCL             000001  INT\r
1136 DCW             020000  INT\r
1137 DDI             000007  INT\r
1138 DDO             000006  INT\r
1139 DDTMEM          000037  INT\r
1140 DDTSYM          000036  INT\r
1141 DEN             000004  INT\r
1142 DEVADR          000007  INT\r
1143 DEVBUF          000006  INT\r
1144 DEVCHR          000001  INT\r
1145 DEVCTR          000011  INT\r
1146 DEVDAT          000006  INT\r
1147 DEVIAD          000007  INT\r
1148 \r\fCLOCK - CLOCK SERVICE ROUTINE                 PAGE 6-1\r
1149         SYMBOL TABLE\r
1150 \r
1151 DEVIOS          000002  INT\r
1152 DEVLOG          000005  INT\r
1153 DEVMOD          000004  INT\r
1154 DEVNAM          000000  INT\r
1155 DEVOAD          000010  INT\r
1156 DEVPTR          000010  INT\r
1157 DEVSER          000003  INT\r
1158 DGF             000012  INT\r
1159 DIN             000003  INT\r
1160 DLK             000005  INT\r
1161 DOU             000002  INT\r
1162 DR              000016  INT\r
1163 DRL             000000  INT\r
1164 DSI             000011  INT\r
1165 DSO             000010  INT\r
1166 DTW             040000  INT\r
1167 DVAVAL          000040  INT\r
1168 DVCDR           100000  INT\r
1169 DVDIR           000004  INT\r
1170 DVDIRI          400000  INT\r
1171 DVIN            000002  INT\r
1172 DVLPT           040000  INT\r
1173 DVMTA           000020  INT\r
1174 DVOUT           000001  INT\r
1175 DVTTY           000010  INT\r
1176 ENTRB           020000  INT\r
1177 I               000010  INT\r
1178 IB              000013  INT\r
1179 IBUFB           200000  INT\r
1180 INITB           400000  INT\r
1181 INPB            010000  INT\r
1182 IO              000020  INT\r
1183 IOACT           010000  INT\r
1184 IOBEG           000002  INT\r
1185 IOBKTL          040000  INT\r
1186 IOCON           000040  INT\r
1187 IODEND          020000  INT\r
1188 IODERR          200000  INT\r
1189 IODISC          400000  INT\r
1190 IODONE          400000  INT\r
1191 IODTER          100000  INT\r
1192 IOEND           000040  INT\r
1193 IOFST           000004  INT\r
1194 IOIMPM          400000  INT\r
1195 IONRCK          000100  INT\r
1196 IORDEL          000100  INT\r
1197 IORET           000020  INT\r
1198 IOS             000000  INT\r
1199 IOSTRT          000010  INT\r
1200 IOUSE           400000  INT\r
1201 IOW             000001  INT\r
1202 IOWC            000020  INT\r
1203 IOWS            400000  INT\r
1204 \r\fCLOCK - CLOCK SERVICE ROUTINE                 PAGE 6-2\r
1205         SYMBOL TABLE\r
1206 \r
1207 ITEM            000004  INT\r
1208 JA              000011  \r
1209 JBFADR          000000  INT\r
1210 JBFCTR          000002  INT\r
1211 JBFPTR          000001  INT\r
1212 JBTADR          000113' EXT\r
1213 JBTSTS          000037' EXT\r
1214 JBUF            000005  INT\r
1215 JDAT            000011  INT\r
1216 JERR            002000  INT\r
1217 JIOW            100000  INT\r
1218 JNA             004000  INT\r
1219 JOB             000110' EXT\r
1220 JOBADR          000114' EXT\r
1221 JOBDAC          000131' EXT\r
1222 JOBDAT          000115' EXT\r
1223 JOBDHI          000076' EXT\r
1224 JOBLEV          000123' EXT\r
1225 JOBPC           000127' EXT\r
1226 JOBPDP          000121' EXT\r
1227 JOBPFU          000101' EXT\r
1228 JOBREL          000116' EXT\r
1229 JOBUXT          000125' EXT\r
1230 LOOKB           040000  INT\r
1231 MTW             010000  INT\r
1232 NUL0            000140' \r
1233 NULJOB          000141' INT\r
1234 NXTJOB          000066' EXT\r
1235 OBUFB           100000  INT\r
1236 OUTPB           004000  INT\r
1237 PDP             000003  INT\r
1238 PI              000004  SPD\r
1239 PICHN           000100  INT\r
1240 PIOFF           000400  \r
1241 PION            000200  \r
1242 PROG            000007  INT\r
1243 RSCHED          000064' INT\r
1244 RUN             200000  INT\r
1245 RUNABL          204000  INT\r
1246 SCHEDF          000136' EXT\r
1247 STOPU           000133' EXT\r
1248 STOR            000005  \r
1249 T               000001  \r
1250 TAC             000001  INT\r
1251 TAC1            000002  INT\r
1252 TEM             000010  INT\r
1253 TIME            000035' EXT\r
1254 TTYATC          020000  INT\r
1255 TTYUSE          010000  INT\r
1256 USRMOD          010000  INT\r
1257 USRPDP          000120' EXT\r
1258 USRPFU          000122' EXT\r
1259 UUO             000014  INT\r
1260 \r\fCLOCK - CLOCK SERVICE ROUTINE                 PAGE 6-3\r
1261         SYMBOL TABLE\r
1262 \r
1263 UUO0            000126' EXT\r
1264 \f   CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
1265    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
1266    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
1267 CCC                  OOO         OOO      MMMMMM   MMMMMM      CCC                  OOO         OOO      NNN         NNN\r
1268 CCC                  OOO         OOO      MMMMMM   MMMMMM      CCC                  OOO         OOO      NNN         NNN\r
1269 CCC                  OOO         OOO      MMMMMM   MMMMMM      CCC                  OOO         OOO      NNN         NNN\r
1270 CCC                  OOO         OOO      MMM   MMM   MMM      CCC                  OOO         OOO      NNNNNN      NNN\r
1271 CCC                  OOO         OOO      MMM   MMM   MMM      CCC                  OOO         OOO      NNNNNN      NNN\r
1272 CCC                  OOO         OOO      MMM   MMM   MMM      CCC                  OOO         OOO      NNNNNN      NNN\r
1273 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN   NNN   NNN\r
1274 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN   NNN   NNN\r
1275 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN   NNN   NNN\r
1276 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN      NNNNNN\r
1277 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN      NNNNNN\r
1278 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN      NNNNNN\r
1279 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN         NNN\r
1280 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN         NNN\r
1281 CCC                  OOO         OOO      MMM         MMM      CCC                  OOO         OOO      NNN         NNN\r
1282    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
1283    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
1284    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
1285 \r
1286 \r
1287 \r
1288 \r
1289 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
1290 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
1291 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
1292 LLL                  SSS                        TTT                                                                     \r
1293 LLL                  SSS                        TTT                                                                     \r
1294 LLL                  SSS                        TTT                                                                     \r
1295 LLL                  SSS                        TTT                                                                     \r
1296 LLL                  SSS                        TTT                                                                     \r
1297 LLL                  SSS                        TTT                                                                     \r
1298 LLL                     SSSSSSSSS               TTT                                                                     \r
1299 LLL                     SSSSSSSSS               TTT                                                                     \r
1300 LLL                     SSSSSSSSS               TTT                                                                     \r
1301 LLL                              SSS            TTT                                                                     \r
1302 LLL                              SSS            TTT                                                                     \r
1303 LLL                              SSS            TTT                                                                     \r
1304 LLL                              SSS            TTT                                                                     \r
1305 LLL                              SSS            TTT                                                                     \r
1306 LLL                              SSS            TTT                                                                     \r
1307 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
1308 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
1309 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
1310 \r
1311 \r
1312 \r
1313 \r
1314 Request created: 24-April-1978  11:23:08\r
1315 File: DSKB1 :COMCON.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:18
1316 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2602 \r
1317 File will be deleted after printing\r
1318 \f\rCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 1\r
1319         T.HASTINGS 8-2-65\r
1320 \r
1321                                 00010           XLIST\r
1322                                 01930          LIST\r
1323 \r\fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 7\r
1324         T.HASTINGS 8-2-65\r
1325 \r
1326 \r
1327                                 00010           TITLE COMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES\r
1328                                 00020           SUBTTL T.HASTINGS 8-2-65\r
1329                                 00030   ;CALLED FROM COMMAND DECODER WHICH IS CALLED FROM CLOCK ROUTINE\r
1330                                 00040   ;WITH FOLLOWING ACS SET:\r
1331                                 00050   ;TAC= BYTE POINTER TO COMMAND STRING(SPACE OR CR AFTER COMMAND NAME)\r
1332                                 00060   ;ITEM = JOB NUMBER\r
1333                                 00070   ;DAT = BYTE POINTER TO LAST OUTPUT CHARACTER\r
1334                                 00080   ;DEVDAT= ADDRESS OF DEVICE DATA BLOCK INITIATING COMMAND\r
1335                                 00090   ;JDAT = ADDRESS OF JOB DATA AREA, = 0 IF NO JOB AREA\r
1336 \r
1337                                 00110   ;UPON RETURN FROM COMMAND SETUP ROUTINE, A CR-LF IS ADDED IF\r
1338                                 00120   ;NEEDED AND TTY IS STARTED\r
1339 \r
1340                                 00140   ;SINCE THE COMMAND DECODER IS CALLED FROM THE CLOCK ROUTINE\r
1341                                 00150   ;COMMAND SETUP ROUTINES MUST RUN TO COMPLETION QUICKLY\r
1342                                 00160   ;IF A COMMAND FUNCTION CANNOT DO THIS, IT MUST JUST SET\r
1343                                 00170   ;THE JOB TO A RUNNABLE STATUS AND RETURN I MEDIATELY\r
1344 \r
1345                                 00190   ; "IJOB" - INITIALIZE JOB\r
1346                                 00200   INTERNAL IJOB\r
1347                                 00210   EXTERNAL RADX10,JOBINI,JOBKIL,CRLF,MONJOB\r
1348 \r
1349         000000' 254000  000000* 00230   IJOB:   JRST JOBINI\r
1350 \r
1351                                 00250   ;PRINT JOB NUMBER\r
1352 \r
1353                                 00270           INTERNAL PJOB\r
1354         000001' 200040  000004  00280   PJOB:   MOVE TAC, ITEM\r
1355         000002' 260140  000000* 00290           PUSHJ PDP,RADX10\r
1356         000003' 254000  000000* 00300           JRST CRLF\r
1357 \r
1358                                 00320   ;KILL JOB(MUST HAVE CORE ASSIGNED)\r
1359 \r
1360                                 00340           INTERNAL KJOB\r
1361         000004' 254000  000000* 00350   KJOB:   JRST JOBKIL\r
1362 \r\fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 2\r
1363         T.HASTINGS 8-2-65\r
1364 \r
1365 \r
1366 \r
1367                                 00390   ; "START L" OR "START" - START AT LOC. L OR STARTING ADDRESS\r
1368                                 00400   INTERNAL START\r
1369                                 00410   EXTERNAL OCTIN,JOBSA,START1,COMERA,STARTU,CPOPJ,CPOPJ1,STARTM\r
1370 \r
1371         000005' 260140  000013' 00430   START:  PUSHJ PDP,STRT\r
1372         000006' 254000  000000* 00440           JRST COMERA     ;ERROR\r
1373         000007' 254000  000000* 00450           JRST STARTU     ;GO SET JOB TO START(CONSOLE IN USER MO\r
1374 \r
1375                                 00470   ; "STARTC L" OR  "STARTC" - START AT LOC. L(TTY IN COMMAND MODE)\r
1376 \r
1377                                 00490   INTERNAL STARTC\r
1378                                 00500   EXTERNAL STARTM\r
1379 \r
1380         000010' 260140  000013' 00520   STARTC: PUSHJ PDP,STRT\r
1381         000011' 254000  000006* 00530           JRST COMERA     ;ERROR\r
1382         000012' 254000  000000* 00540           JRST STARTM     ;FO SET JOB TO START(TTY IN COM. MODE)\r
1383 \r
1384                                 00560   ;ROUTINE TO SCAN ARGUMENT\r
1385 \r
1386         000013' 260140  000000* 00580   STRT:   PUSHJ PDP,OCTIN ;CONVERT OCTAL NO,\r
1387         000014' 254000  000016' 00590           JRST ST2        ;EITHER NO NUMBER OR ERROR\r
1388         000015' 254000  000020' 00600           JRST ST3        ;START JOB C(TAC1)\r
1389 \r
1390         000016' 326100  000000* 00620   ST2:    JUMPN TAC1, CPOPJ       ;NOT A NUMBER IF NON-ZERO\r
1391         000017' 550111  000000* 00630           HRRZ TAC1, JOBSA(JDAT)          ;NO, START AT STARTING ADDRES\r
1392         000020' 505100  001000  00640   ST3:    HRLI TAC1, 1000         ;USER MODE FLAG\r
1393         000021' 254000  000000* 00650           JRST CPOPJ1             ;OR RETURN\r
1394 \r\fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 3\r
1395         T.HASTINGS 8-2-65\r
1396 \r
1397 \r
1398 \r
1399                                 00690   ; "CONT" - CONTINUE EXECUTION FROM WHERE LEFT OFF\r
1400                                 00700   INTERNAL CONT\r
1401                                 00710   EXTERNAL CONTU,CONMES,JBTSTS\r
1402 \r
1403         000022' 205100  002000  00730   CONT:   MOVSI TAC1, JERR\r
1404         000023' 616104  000000* 00740           TDNN TAC1, JBTSTS(ITEM)         ;IS JOB ERROR BIT SET?\r
1405         000024' 254000  000000* 00750           JRST CONTU                      ;NO, GO SET JOB TO CONTINUE\r
1406         000025' 265040  000000* 00760   CONTA:  JSP TAC,CONMES          ;YES, PRINT CANT CONTINUE\r
1407 \r
1408         000026' 416031  623650  00780           ASCIZ /CAN'T CONTINUE\r
1409         000027' 202071  747250\r
1410         000030' 446352  542432\r
1411         000031' 050000  000000  00790   /\r
1412 \r
1413                                 00810   ; "CONTC" - CONTINUE EXECUTION(TTY REMAINS IN COMMAND MODE)\r
1414 \r
1415                                 00830   INTERNAL CONTC\r
1416                                 00840   EXTERNAL CONTM\r
1417 \r
1418         000032' 205100  002000  00860   CONTC:  MOVSI TAC1, JERR\r
1419         000033' 616104  000023* 00870           TDNN TAC1, JBTSTS(ITEM)         ;IS JOB ERROR BIT SET?\r
1420         000034' 254000  000000* 00880           JRST CONTM      ;NO\r
1421         000035' 254000  000025' 00890           JRST CONTA      ;YES\r
1422 \r
1423                                 00910   ; "DDT" - START EXECUTION AT DDT IN USER AREA\r
1424                                 00920   INTERNAL DDTGO\r
1425                                 00930   EXTERNAL JOBDDT,STARTU\r
1426 \r
1427         000036' 550111  000000* 00950   DDTGO:  HRRZ TAC1, JOBDDT(JDAT)         ;GET DDT STARTING ADDRESS\r
1428         000037' 326100  000043' 00960           JUMPN TAC1,DDT1         ;GO START JOB IF NON-ZERO\r
1429         000040' 265040  000025* 00970           JSP TAC,CONMES                  ;ZERO, PRINT"NO DDT"\r
1430 \r
1431         000041' 472364  042210  00990           ASCII /NO DDT\r
1432         000042' 520321  200000  01000   /\r
1433 \r
1434         000043' 505100  010000  01020   DDT1:   HRLI TAC1,USRMOD        ;USER MODE BIT\r
1435         000044' 254000  000007* 01030           JRST STARTU             ;GO SET TO RUN JOB\r
1436                                 01040   ;DIGITAL MAYNARD\r
1437 \r
1438                                 01060   INTERNAL DIGITAL\r
1439 \r
1440         000045' 265040  000040* 01080   DIGITAL:        JSP TAC,CONMES\r
1441         000046' 442131  446236  01090           ASCIZ /HELLO\r
1442         000047' 064240  000000  01100   /\r
1443 \r\fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 4\r
1444         T.HASTINGS 8-2-65\r
1445 \r
1446 \r
1447 \r
1448 \r
1449 \r
1450                                 01160   ; "CORE  #" - ASSIGNS #*1024 WORDS OF CORE TO JOB\r
1451                                 01170   ;   "CORE" WITH NO ARGUMENT IS EQUIVALENT TO "CORE 0"\r
1452 \r
1453                                 01190   INTERNAL CORE\r
1454                                 01200   EXTERNAL CORE1,DECIN,ANYRIN,CONMES,COMERA,NOTENF\r
1455                                 01210   EXTERNAL JOBPFI,JBTADR,CPOPJ,JOBPRT,JOBPR1,JOBZER\r
1456                                 01220   EXTERNAL RADX10\r
1457 \r
1458         000050' 260140  000000* 01240   CORE:   PUSHJ PDP, DECIN        ;GET NO. OF 1K BLOCKS\r
1459         000051' 254000  000077' 01250           JRST COR3               ;ERROR\r
1460         000052' 336040  000002  01260           SKIPN TAC,TAC1          ;IS ZERO BEING ASKED FOR?\r
1461         000053' 326440  000000* 01270           JUMPN JDAT,JOBZER       ;YES, RELEASE ALL DEVICES IF THERE WAS\r
1462         000054' 260140  000000* 01280           PUSHJ PDP,CORE1\r
1463         000055' 254000  000065' 01290           JRST COR2               ;CORE NOT AVAILABLE (AC TAC = BLO CKS L\r
1464         000056' 550444  000000* 01300           HRRZ JDAT, JBTADR(ITEM)         ;CORE GRANTED, CLEAR PART OF\r
1465         000057' 322440  000016* 01310           JUMPE JDAT, CPOPJ       ;UNLESS ALL CORE WAS RETURNED\r
1466         000060' 402011  000000* 01320           SETZM JOBPRT(JDAT)              ;CLEAR PART PROTECTED FROM IO\r
1467         000061' 505051  000060* 01330           HRLI TAC,JOBPRT(JDAT)\r
1468         000062' 541051  000000* 01340           HRRI TAC, JOBPR1(JDAT)\r
1469         000063' 251051  000000* 01350           BLT TAC, JOBPFI(JDAT)\r
1470         000064' 263140  000000  01360           POPJ PDP,\r
1471 \r
1472         000065' 260140  000002* 01380   COR2:   PUSHJ PDP,RADX10        ;PRINT NO. OF FREE 1K BLOCKS LEFT\r
1473         000066' 265040  000045* 01390           JSP TAC,CONMES\r
1474 \r
1475         000067' 202152  242612  01410           ASCIZ / FREE 1K BLOCKS LEFT, NONE ASSIGNED\r
1476         000070' 201431  320204\r
1477         000071' 462370  345646\r
1478         000072' 202310  543250\r
1479         000073' 261011  647634\r
1480         000074' 425010  151646\r
1481         000075' 446171  642610\r
1482         000076' 064240  000000  01420   /\r
1483         000077' 326100  000011* 01430   COR3:   JUMPN TAC1, COMERA      ;NOT A NO. IF NON-ZERO, APPEND "?"\r
1484         000100' 254000  000000* 01440           JRST NOTENF             ;NOT ENOUGH ARGUMENT\r
1485 \r\fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 5\r
1486         T.HASTINGS 8-2-65\r
1487 \r
1488 \r
1489 \r
1490                                 01480   ; "SAVE FILE-NAME" - SAVES JOB AREA ON RETRIEVABLE DEVICE\r
1491                                 01490   ;ONLY A SAVE OR A GET IN PROGRESS FOR EACH JOB\r
1492                                 01500   ;NO ATTEMPT IS MADE TO SAVE DEVICE ASSIGNMENTS, ACS, OR PC\r
1493                                 01510   INTERNAL SAVE\r
1494                                 01520   EXTERNAL SAVJOB,START1,SGSET\r
1495 \r
1496         000101' 201100  000000* 01540   SAVE:   MOVEI TAC1, SAVJOB      ;SETUP TO RUN SAVJOB\r
1497         000102' 254000  000000* 01550           JRST SGSET\r
1498 \r
1499                                 01570   ; "GET DEVICE:FILE-NAME" - SETS UP JOB AREA FROM RETRIEVABLE DEVICE\r
1500                                 01580   INTERNAL GET\r
1501                                 01590   EXTERNAL GETJOB\r
1502 \r
1503         000103' 201100  000000* 01610   GET:    MOVEI TAC1, GETJOB      ;SETUP TO RUN GET JOB\r
1504         000104' 254000  000102* 01620           JRST SGSET\r
1505 \r\fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 6\r
1506         T.HASTINGS 8-2-65\r
1507 \r
1508 \r
1509 \r
1510 \r
1511                                 01670   ;"ASSIGN DEV:NAME" - ASSIGNS DEV TO JOB AND GIVES IT LOGICAL NAME NAM\r
1512 \r
1513                                 01690   ;TEMPORARY ACS\r
1514                         000012  01700           T1=BUFPNT\r
1515                         000013  01710           T=BUFWRD\r
1516 \r
1517                                 01730   INTERNAL ASSIGN\r
1518                                 01740   EXTERNAL CTEXT1, NOTENF, DEVLST, ASSASG, CONMES, PJOBN, ANYRDX, ERNAM\r
1519                                 01750   EXTERNAL CRLF, DEVLG,SYSTAP\r
1520 \r
1521         000105' 260140  000000* 01770   ASSIGN: PUSHJ PDP, CTEXT1       ;GET FIRST ARGUMENT\r
1522         000106' 322100  000100* 01780           JUMPE TAC1, NOTENF      ;NO ARGUMENTS TYPED IF 0\r
1523         000107' 200500  000002  01790           MOVE T1, TAC1                   ;SAVE DEVICE NAME\r
1524         000110' 261140  400000  01800           PUSH PDP, ASSCON        ;SAVE INPUT BYTE POINTER\r
1525         000111' 201100  400000  01810           MOVEI TAC1, ASSCON      ;SETUP ASSIGNED BY CONSOLE BIT\r
1526         000112' 554300  000000* 01820   ASSN:   HLRZ DEVDAT, DEVLST\r
1527         000113' 312506  000000  01830   ASSG0:  CAME T1,DEVNAM(DEVDAT)          ;DOES PHYSICAL NAME MATCH?\r
1528         000114' 254000  000120' 01840           JRST ASSG1              ;NO\r
1529         000115' 260140  000000* 01850           PUSHJ PDP, ASSASG       ;YES, TRY TO ASSIGN DEVICE\r
1530         000116' 254000  000135' 01860           JRST ASSER1             ;ALREADY ASSIGNED TO ANOTHER JOB\r
1531         000117' 254000  000151' 01870           JRST ASSFIN             ;ASSIGNED\r
1532 \r
1533         000120' 200046  000000  01890   ASSG1:  MOVE TAC,DEVNAM(DEVDAT)         ;IS THIS THE SYSTEM TAPE?\r
1534         000121' 316040  000000* 01900           CAMN TAC,SYSTAP\r
1535         000122' 254000  000131' 01910           JRST ASSG2              ;YES\r
1536         000123' 135540  000000* 01920           LDB T, PJOBN            ;SAVE OLD JOB NUMBER FOR THIS\r
1537         000124' 620040  777777  01930           TRZ TAC,-1              ;COMPARE LEFT HALF ONLY\r
1538         000125' 316040  000012  01940           CAMN TAC, T1\r
1539         000126' 260140  000115* 01950           PUSHJ PDP, ASSASG       ;MATCH, TRY TO ASSIGN IT\r
1540         000127' 254000  000131' 01960           JRST ASSG2              ;KEEP LOOKING\r
1541         000130' 322540  000151' 01970           JUMPE T,ASSFIN          ;IF OLD JOB NUMBER 0, DEVICE PREVIOSLY\r
1542 \r
1543         000131' 554306  000003  01990   ASSG2:  HLRZ DEVDAT, DEVSER(DEVDAT)\r
1544         000132' 326300  000113' 02000           JUMPN DEVDAT, ASSG0\r
1545         000133' 262140  000001  02010           POP PDP, TAC\r
1546         000134' 254000  000211' 02020           JRST NOTDEV             ;PRINT NO SUCH DEVICE\r
1547 \r\fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 7\r
1548         T.HASTINGS 8-2-65\r
1549 \r
1550 \r
1551 \r
1552                                 02060   ;ALREADY ASSIGNED TO ANOTHER JOB\r
1553 \r
1554         000135' 262140  000001  02080   ASSER1: POP PDP, TAC\r
1555         000136' 201040  000144' 02090           MOVEI TAC, ASSMS2\r
1556         000137' 260140  000066* 02100           PUSHJ PDP, CONMES\r
1557         000140' 201100  000012  02110           MOVEI TAC1, ^D10\r
1558         000141' 135040  000123* 02120           LDB TAC, PJOBN\r
1559         000142' 260140  000000* 02130           PUSHJ PDP,ANYRDX\r
1560         000143' 254000  000003* 02140           JRST CRLF\r
1561 \r
1562         000144' 406312  242602  02160   ASSMS2: ASCIZ /ALREADY ASSIGNED TO JOB /\r
1563         000145' 422624  040646\r
1564         000146' 516230  747212\r
1565         000147' 421012  447500\r
1566         000150' 452370  220000\r
1567 \r
1568                                 02180   ;DEVICE ASSIGNED, GIVE IT A LOGICAL NAME\r
1569 \r
1570         000151' 262140  000001  02200   ASSFIN: POP PDP,TAC     ;RESTORE INPUT BYTE POINTER\r
1571         000152' 261140  000006  02210           PUSH PDP,DEVDAT ;SAVE DDB ADDRESS\r
1572         000153' 260140  000105* 02220           PUSHJ PDP,CTEXT1        ;GET SECOND ARG, LOGICAL DEVICE NAME\r
1573         000154' 332040  000002  02230           SKIPE TAC,TAC1  ;IS THERE A LOGICAL NAME SPECIFIED?\r
1574         000155' 260140  000000* 02240           PUSHJ PDP, DEVLG        ;YES, SEE IF IT IS ALREADY IN USE\r
1575                                 02250                                   ;BY THIS USER\r
1576         000156' 254000  000161' 02260           JRST ASSF1                      ;NO\r
1577         000157' 201040  000173' 02270           MOVEI TAC,LOGERR        ;YES, PRINT ERROR\r
1578         000160' 260140  000137* 02280           PUSHJ PDP,CONMES\r
1579         000161' 200303  000000  02290   ASSF1:  MOVE DEVDAT,(PDP)       ;RESTORE DDB ADDRESS\r
1580         000162' 202106  000005  02300           MOVEM TAC1,DEVLOG(DEVDAT)       ;STORE IN DEVICE DATA BLOCK\r
1581         000163' 205100  400000  02310           MOVSI TAC1,DVDIRIN      ;CLEAR DIRECTORY IN CORE BIT\r
1582         000164' 412106  000004  02320           ANDCAM TAC1,DEVMOD(DEVDAT)\r
1583         000165' 260140  000000* 02330           PUSHJ PDP, ERNAM        ;PRINT PHYSICAL DEVICE NAME\r
1584         000166' 262140  000006  02340           POP PDP, DEVDAT\r
1585         000167' 265040  000160* 02350           JSP TAC,CONMES\r
1586 \r
1587         000170' 202032  351622  02370           ASCIZ / ASSIGNED\r
1588         000171' 436350  542032\r
1589         000172' 050000  000000  02380   /\r
1590 \r
1591         000173' 462370  744606  02400   LOGERR: ASCIZ /LOGICAL NAME ALREADY IN USE, /\r
1592         000174' 406304  047202\r
1593         000175' 466124  040630\r
1594         000176' 512130  142262\r
1595         000177' 202231  620252\r
1596         000200' 516125  420000\r
1597 \r\fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 8\r
1598         T.HASTINGS 8-2-65\r
1599 \r
1600 \r
1601 \r
1602                                 02440   ;"DEASSIGN DEV" - DEASSIGNS DEVICE FROM CONSOLE\r
1603 \r
1604                                 02460   INTERNAL DEASSIGN, NOTDEV\r
1605                                 02470   EXTERNAL CTEXT1, DEVSRC, CONMES, ERNAM, DEASG, DEASTY\r
1606 \r
1607         000201' 260140  000153* 02490   DEASSIGN: PUSHJ PDP, CTEXT1     ;GET DEVICE NAME\r
1608         000202' 322100  000000* 02500           JUMPE TAC1,DEASTY       ;NO ARG. IF 0, DEASSIGN ALL BUT TTY\r
1609         000203' 200040  000002  02510           MOVE TAC, TAC1          ;DEVICE NAME\r
1610         000204' 260140  000000* 02520           PUSHJ PDP, DEVSRC       ;SEARCH FOR DEVICE\r
1611         000205' 254000  000211' 02530           JRST DEAER1             ;NOT FOUND\r
1612         000206' 260140  000000* 02540           PUSHJ PDP, DEASG        ;FOUND, DEASSIGN IT\r
1613         000207' 254000  000216' 02550           JRST DEAER2             ;NOT PREVIOUSLY ASSIGNED\r
1614         000210' 263140  000000  02560           POPJ PDP,               ;DEVICE DEASSIGNED\r
1615 \r
1616         000211'                 02580   NOTDEV:\r
1617         000211' 265040  000167* 02590   DEAER1: JSP TAC,CONMES          ;PRINT NO SUCH DEVICE\r
1618 \r
1619         000212' 472364  051652  02610           ASCIZ /NO SUCH DEVICE\r
1620         000213' 416204  042212\r
1621         000214' 532230  342432\r
1622         000215' 050000  000000  02620   /\r
1623 \r
1624         000216' 261140  000006  02640   DEAER2: PUSH PDP, DEVDAT        ;PRINT PHYSICAL DEVICE NAME\r
1625         000217' 260140  000165* 02650           PUSHJ PDP, ERNAM\r
1626         000220' 262140  000006  02660           POP PDP, DEVDAT\r
1627         000221' 265040  000211* 02670           JSP TAC,CONMES\r
1628 \r
1629         000222' 536032  347116  02690           ASCIZ /WASN'T ASSIGNED\r
1630         000223' 521010  151646\r
1631         000224' 446171  642610\r
1632         000225' 064240  000000  02700   /\r
1633 \r\fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 9\r
1634         T.HASTINGS 8-2-65\r
1635 \r
1636 \r
1637 \r
1638                                 02740   ; "ATTACH N" - ATTACH CONSOLE TO JOB N\r
1639                                 02750   ;CHANGES ADDRESS OF TTY DEVICE DATA BLOCK STORED IN -1(PDP)\r
1640                                 02760   ;BY THE COMMAND DECODER\r
1641 \r
1642                                 02780   INTERNAL ATTACH\r
1643                                 02790   EXTERNAL DECIN,TTYATT,JOBN,ERNAM,CONMES,TTYFND\r
1644 \r
1645         000226' 260140  000050* 02810   ATTACH: PUSHJ PDP,DECIN         ;GET JOB NO.\r
1646         000227' 254000  000243' 02820           JRST ATT1               ;NOT A NUMBER OR NONE SPECIFIEED\r
1647         000230' 332000  000002  02830           SKIPE TAC1                      ;0 IS ILLEGAL\r
1648         000231' 301100  000000* 02840           CAIL TAC1, JOBN         ;IS JOB NUMBER TOO BIG?\r
1649         000232' 254000  000243' 02850           JRST ATT1               ;ILLEGAL JOB NUMBER\r
1650         000233' 205040  004000  02860           MOVSI TAC,JNA           ;HAS THIS JOB NO BEEN ASSIGNED?\r
1651         000234' 616042  000033* 02870           TDNN TAC,JBTSTS(TAC1)\r
1652         000235' 254000  000261' 02880           JRST ATT4               ;NO, PRINT ERROR\r
1653         000236' 200200  000002  02890           MOVE ITEM,TAC1          ;JOB NUMBER TO ITEM\r
1654         000237' 260140  000000* 02900           PUSHJ PDP,TTYATT        ;NO, ATTACH TTY\r
1655         000240' 254000  000251' 02910           JRST ATT2               ;ERROR CANT ATTACH\r
1656         000241' 202303  777777  02920           MOVEM DEVDAT,-1(PDP)            ;CHANGE DEV DATA BLOCK ADDRES\r
1657         000242' 254000  000000* 02930           JRST TTYFND             ;ATTACHED. GO SET UP OUTP. BYTE PTR.\r
1658 \r
1659         000243' 265040  000221* 02950   ATT1:   JSP TAC,CONMES\r
1660         000244' 446311  442616  02960           ASCIZ /ILLEGAL JOB NUMBER\r
1661         000245' 406304  045236\r
1662         000246' 411011  652632\r
1663         000247' 412132  206424  02970   /\r
1664         000250' 000000  000000\r
1665 \r
1666         000251' 261140  000006  02990   ATT2:   PUSH PDP,DEVDAT\r
1667         000252' 260140  000217* 03000           PUSHJ PDP,ERNAM         ;PRINT TTY DEVICE NAME\r
1668         000253' 262140  000001  03010           POP PDP,TAC\r
1669         000254' 265040  000243* 03020           JSP TAC,CONMES\r
1670         000255' 202031  451212  03030           ASCIZ / ALREADY ATTACHED\r
1671         000256' 406113  120202\r
1672         000257' 522510  141620\r
1673         000260' 426101  505000  03040   /\r
1674 \r
1675         000261' 265040  000254* 03060   ATT4:   JSP TAC,CONMES\r
1676         000262' 452370  220234  03070           ASCIZ /JOB NEVER WAS INITIATED\r
1677         000263' 426550  551100\r
1678         000264' 536032  320222\r
1679         000265' 472232  444602\r
1680         000266' 522130  406424  03080   /\r
1681         000267' 000000  000000\r
1682 \r
1683                                 03100   ; "DETACH" - DETACH CONSOLE FORM JOB\r
1684 \r
1685                                 03120   INTERNAL DETACH\r
1686                                 03130   EXTERNAL TTYDET\r
1687 \r
1688         000270' 350003  000000  03150   DETACH: AOS (PDP)       ;SUPRESS CR-LF SO NO TTY DDB SETUP\r
1689 \r\fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 9-1\r
1690         T.HASTINGS 8-2-65\r
1691 \r
1692         000271' 254000  000000* 03160           JRST TTYDET     ;GO DETACH TTY\r
1693 \r
1694                                 03180           END,\r
1695 \r
1696 NO ERRORS DETECTED\r
1697 \r
1698 PROGRAM BREAK IS 000272\r
1699 \r
1700 8K CORE USED\r
1701 \r\fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 10\r
1702         SYMBOL TABLE\r
1703 \r
1704                 000303  \r
1705 A               000000  INT\r
1706 AC1             000015  INT\r
1707 AC2             000016  INT\r
1708 AC3             000017  INT\r
1709 AL              000001  INT\r
1710 ANYRDX          000142' EXT\r
1711 ANYRIN          000000  EXT\r
1712 ASSASG          000126' EXT\r
1713 ASSCON          400000  INT\r
1714 ASSER1          000135' \r
1715 ASSF1           000161' \r
1716 ASSFIN          000151' \r
1717 ASSG0           000113' \r
1718 ASSG1           000120' \r
1719 ASSG2           000131' \r
1720 ASSIGN          000105' INT\r
1721 ASSMS2          000144' \r
1722 ASSN            000112' \r
1723 ASSPRG          200000  INT\r
1724 ATT1            000243' \r
1725 ATT2            000251' \r
1726 ATT4            000261' \r
1727 ATTACH          000226' INT\r
1728 B               000014  INT\r
1729 BUFPNT          000012  INT\r
1730 BUFWRD          000013  INT\r
1731 CLOSB           002000  INT\r
1732 CLSIN           000002  INT\r
1733 CLSOUT          000001  INT\r
1734 COMERA          000077' EXT\r
1735 CONMES          000261' EXT\r
1736 CONT            000022' INT\r
1737 CONTA           000025' \r
1738 CONTC           000032' INT\r
1739 CONTM           000034' EXT\r
1740 CONTU           000024' EXT\r
1741 COR2            000065' \r
1742 COR3            000077' \r
1743 CORE            000050' INT\r
1744 CORE1           000054' EXT\r
1745 CPOPJ           000057' EXT\r
1746 CPOPJ1          000021' EXT\r
1747 CRLF            000143' EXT\r
1748 CTEXT1          000201' EXT\r
1749 D               000017  INT\r
1750 DAT             000005  INT\r
1751 DCL             000001  INT\r
1752 DCW             020000  INT\r
1753 DDI             000007  INT\r
1754 DDO             000006  INT\r
1755 DDT1            000043' \r
1756 DDTGO           000036' INT\r
1757 \r\fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 10-1\r
1758         SYMBOL TABLE\r
1759 \r
1760 DDTMEM          000037  INT\r
1761 DDTSYM          000036  INT\r
1762 DEAER1          000211' \r
1763 DEAER2          000216' \r
1764 DEASG           000206' EXT\r
1765 DEASSI          000201' INT\r
1766 DEASTY          000202' EXT\r
1767 DECIN           000226' EXT\r
1768 DEN             000004  INT\r
1769 DETACH          000270' INT\r
1770 DEVADR          000007  INT\r
1771 DEVBUF          000006  INT\r
1772 DEVCHR          000001  INT\r
1773 DEVCTR          000011  INT\r
1774 DEVDAT          000006  INT\r
1775 DEVIAD          000007  INT\r
1776 DEVIOS          000002  INT\r
1777 DEVLG           000155' EXT\r
1778 DEVLOG          000005  INT\r
1779 DEVLST          000112' EXT\r
1780 DEVMOD          000004  INT\r
1781 DEVNAM          000000  INT\r
1782 DEVOAD          000010  INT\r
1783 DEVPTR          000010  INT\r
1784 DEVSER          000003  INT\r
1785 DEVSRC          000204' EXT\r
1786 DGF             000012  INT\r
1787 DIGITA          000045' INT\r
1788 DIN             000003  INT\r
1789 DLK             000005  INT\r
1790 DOU             000002  INT\r
1791 DR              000016  INT\r
1792 DRL             000000  INT\r
1793 DSI             000011  INT\r
1794 DSO             000010  INT\r
1795 DTW             040000  INT\r
1796 DVAVAL          000040  INT\r
1797 DVCDR           100000  INT\r
1798 DVDIR           000004  INT\r
1799 DVDIRI          400000  INT\r
1800 DVIN            000002  INT\r
1801 DVLPT           040000  INT\r
1802 DVMTA           000020  INT\r
1803 DVOUT           000001  INT\r
1804 DVTTY           000010  INT\r
1805 ENTRB           020000  INT\r
1806 ERNAM           000252' EXT\r
1807 GET             000103' INT\r
1808 GETJOB          000103' EXT\r
1809 I               000010  INT\r
1810 IB              000013  INT\r
1811 IBUFB           200000  INT\r
1812 IJOB            000000' INT\r
1813 \r\fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 10-2\r
1814         SYMBOL TABLE\r
1815 \r
1816 INITB           400000  INT\r
1817 INPB            010000  INT\r
1818 IO              000020  INT\r
1819 IOACT           010000  INT\r
1820 IOBEG           000002  INT\r
1821 IOBKTL          040000  INT\r
1822 IOCON           000040  INT\r
1823 IODEND          020000  INT\r
1824 IODERR          200000  INT\r
1825 IODISC          400000  INT\r
1826 IODONE          400000  INT\r
1827 IODTER          100000  INT\r
1828 IOEND           000040  INT\r
1829 IOFST           000004  INT\r
1830 IOIMPM          400000  INT\r
1831 IONRCK          000100  INT\r
1832 IORDEL          000100  INT\r
1833 IORET           000020  INT\r
1834 IOS             000000  INT\r
1835 IOSTRT          000010  INT\r
1836 IOUSE           400000  INT\r
1837 IOW             000001  INT\r
1838 IOWC            000020  INT\r
1839 IOWS            400000  INT\r
1840 ITEM            000004  INT\r
1841 JBFADR          000000  INT\r
1842 JBFCTR          000002  INT\r
1843 JBFPTR          000001  INT\r
1844 JBTADR          000056' EXT\r
1845 JBTSTS          000234' EXT\r
1846 JBUF            000005  INT\r
1847 JDAT            000011  INT\r
1848 JERR            002000  INT\r
1849 JIOW            100000  INT\r
1850 JNA             004000  INT\r
1851 JOBDDT          000036' EXT\r
1852 JOBINI          000000' EXT\r
1853 JOBKIL          000004' EXT\r
1854 JOBN            000231' EXT\r
1855 JOBPFI          000063' EXT\r
1856 JOBPR1          000062' EXT\r
1857 JOBPRT          000061' EXT\r
1858 JOBSA           000017' EXT\r
1859 JOBZER          000053' EXT\r
1860 KJOB            000004' INT\r
1861 LOGERR          000173' \r
1862 LOOKB           040000  INT\r
1863 MONJOB          000000  EXT\r
1864 MTW             010000  INT\r
1865 NOTDEV          000211' INT\r
1866 NOTENF          000106' EXT\r
1867 OBUFB           100000  INT\r
1868 OCTIN           000013' EXT\r
1869 \r\fCOMCON - COMMON CONTROL - THE COMMAND SETUP ROUTINES                 PAGE 10-3\r
1870         SYMBOL TABLE\r
1871 \r
1872 OUTPB           004000  INT\r
1873 PDP             000003  INT\r
1874 PICHN           000100  INT\r
1875 PJOB            000001' INT\r
1876 PJOBN           000141' EXT\r
1877 PROG            000007  INT\r
1878 RADX10          000065' EXT\r
1879 RUN             200000  INT\r
1880 RUNABL          204000  INT\r
1881 SAVE            000101' INT\r
1882 SAVJOB          000101' EXT\r
1883 SGSET           000104' EXT\r
1884 ST2             000016' \r
1885 ST3             000020' \r
1886 START           000005' INT\r
1887 START1          000000  EXT\r
1888 STARTC          000010' INT\r
1889 STARTM          000012' EXT\r
1890 STARTU          000044' EXT\r
1891 STRT            000013' \r
1892 SYSTAP          000121' EXT\r
1893 T               000013  \r
1894 T1              000012  \r
1895 TAC             000001  INT\r
1896 TAC1            000002  INT\r
1897 TEM             000010  INT\r
1898 TTYATC          020000  INT\r
1899 TTYATT          000237' EXT\r
1900 TTYDET          000271' EXT\r
1901 TTYFND          000242' EXT\r
1902 TTYUSE          010000  INT\r
1903 USRMOD          010000  INT\r
1904 UUO             000014  INT\r
1905 \f   CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
1906    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
1907    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
1908 CCC                  OOO         OOO      MMMMMM   MMMMMM      CCC                  SSS                  SSS            \r
1909 CCC                  OOO         OOO      MMMMMM   MMMMMM      CCC                  SSS                  SSS            \r
1910 CCC                  OOO         OOO      MMMMMM   MMMMMM      CCC                  SSS                  SSS            \r
1911 CCC                  OOO         OOO      MMM   MMM   MMM      CCC                  SSS                  SSS            \r
1912 CCC                  OOO         OOO      MMM   MMM   MMM      CCC                  SSS                  SSS            \r
1913 CCC                  OOO         OOO      MMM   MMM   MMM      CCC                  SSS                  SSS            \r
1914 CCC                  OOO         OOO      MMM         MMM      CCC                     SSSSSSSSS            SSSSSSSSS   \r
1915 CCC                  OOO         OOO      MMM         MMM      CCC                     SSSSSSSSS            SSSSSSSSS   \r
1916 CCC                  OOO         OOO      MMM         MMM      CCC                     SSSSSSSSS            SSSSSSSSS   \r
1917 CCC                  OOO         OOO      MMM         MMM      CCC                              SSS                  SSS\r
1918 CCC                  OOO         OOO      MMM         MMM      CCC                              SSS                  SSS\r
1919 CCC                  OOO         OOO      MMM         MMM      CCC                              SSS                  SSS\r
1920 CCC                  OOO         OOO      MMM         MMM      CCC                              SSS                  SSS\r
1921 CCC                  OOO         OOO      MMM         MMM      CCC                              SSS                  SSS\r
1922 CCC                  OOO         OOO      MMM         MMM      CCC                              SSS                  SSS\r
1923    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
1924    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
1925    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
1926 \r
1927 \r
1928 \r
1929 \r
1930 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
1931 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
1932 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
1933 LLL                  SSS                        TTT                                                                     \r
1934 LLL                  SSS                        TTT                                                                     \r
1935 LLL                  SSS                        TTT                                                                     \r
1936 LLL                  SSS                        TTT                                                                     \r
1937 LLL                  SSS                        TTT                                                                     \r
1938 LLL                  SSS                        TTT                                                                     \r
1939 LLL                     SSSSSSSSS               TTT                                                                     \r
1940 LLL                     SSSSSSSSS               TTT                                                                     \r
1941 LLL                     SSSSSSSSS               TTT                                                                     \r
1942 LLL                              SSS            TTT                                                                     \r
1943 LLL                              SSS            TTT                                                                     \r
1944 LLL                              SSS            TTT                                                                     \r
1945 LLL                              SSS            TTT                                                                     \r
1946 LLL                              SSS            TTT                                                                     \r
1947 LLL                              SSS            TTT                                                                     \r
1948 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
1949 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
1950 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
1951 \r
1952 \r
1953 \r
1954 \r
1955 Request created: 24-April-1978  11:23:08\r
1956 File: DSKB1 :COMCSS.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:19
1957 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2587 \r
1958 File will be deleted after printing\r
1959 \f\rCOMCSS - COMMAND COMMON ROUTINES                 PAGE 1\r
1960         T. HASTINGS         8-15-65\r
1961 \r
1962                                 00010           XLIST\r
1963                                 01930          LIST\r
1964 \r\fCOMCSS - COMMAND COMMON ROUTINES                 PAGE 7\r
1965         T. HASTINGS         8-15-65\r
1966 \r
1967 \r
1968                                 00010   TITLE COMCSS - COMMAND COMMON ROUTINES\r
1969                                 00020   SUBTTL    T. HASTINGS       8-15-65\r
1970                                 00030   ;ROUTINE TO RETURN NEXT ALPHANUMERIC STRING\r
1971                                 00040   ; IN COMMAND LINE (SIXBIT)\r
1972                                 00050   ; CALL:   MOVE TAC, BYTE POINTER TO FIRST CHAR.-1\r
1973                                 00060   ;         PUSHJ PDP, CTEXT\r
1974                                 00070   ; SIXBIT STRING RETURN LEFT JUSTIFIED IN AC TAC1\r
1975 \r
1976                                 00090   INTERNAL CTEXT, CTEXT1\r
1977 \r
1978                         000012  00110   T=BUFPNT            ;TEMPORARY ACS\r
1979                         000013  00120   T1=BUFWRD\r
1980                         000014  00130   T2=UUO\r
1981 \r
1982         000000' 201100  000000  00150   CTEXT1:   MOVEI TAC1, 0         ;CHECK PREVIOUS BREAK CHAR.\r
1983         000001' 135500  000001  00160             LDB T, TAC\r
1984         000002' 306500  000015  00170             CAIN T, 15            ;RETURN IF CR.\r
1985         000003' 263140  000000  00180             POPJ PDP,\r
1986 \r
1987         000004' 260140  000035' 00200   CTEXT:    PUSHJ PDP, SKIPS              ;SKIP LEADING SPACES, TABS\r
1988         000005' 200500  000231' 00210             MOVE T,[POINT 6,TAC1]\r
1989         000006' 201100  000000  00220             MOVEI TAC1, 0\r
1990         000007' 135540  000001  00230             LDB T1, TAC\r
1991         000010' 254000  000012' 00240             JRST CTEX1\r
1992         000011' 134540  000001  00250   CTEX0:    ILDB T1,TAC\r
1993         000012' 260140  000024' 00260   CTEX1:    PUSHJ PDP, CTEX               ;IS IT ALPHANUMERIC\r
1994         000013' 263140  000000  00270             POPJ PDP,                     ;NO. EXIT\r
1995         000014' 640540  000040  00280             TRC T1,40                     ;CONVERT TO SIXBIT\r
1996         000015' 136540  000012  00290             IDPB T1,T                     ;YES, STORE AWAY\r
1997         000016' 312500  000232' 00300             CAME T,[POINT 6,TAC1,35]      ;SIX CHARACTER YET\r
1998         000017' 254000  000011' 00310             JRST CTEX0                    ;NO\r
1999         000020' 134540  000001  00320   CTEX2:    ILDB T1, TAC                  ;YES\r
2000         000021' 260140  000024' 00330             PUSHJ PDP, CTEX               ;IS IT ALPHANUMERIC\r
2001         000022' 263140  000000  00340             POPJ PDP,                     ;NO, EXIT\r
2002         000023' 254000  000020' 00350             JRST CTEX2\r
2003 \r
2004                                 00370   ;SCAN FOR ALPHANUMERIC CHAR IN T1\r
2005         000024' 301540  000060  00380   CTEX:     CAIL T1, "0"\r
2006         000025' 303540  000132  00390             CAILE T1, "Z"         ;LETTERS ARE LARGER THAN NOS.\r
2007         000026' 263140  000000  00400             POPJ PDP,           ;NEITHER\r
2008         000027' 303540  000071  00410             CAILE T1, "9"\r
2009         000030' 301540  000101  00420             CAIL T1, "A"\r
2010         000031' 350003  000000  00430             AOS (PDP)           ;LETTER OR NUMBER\r
2011         000032' 263140  000000  00440             POPJ PDP,\r
2012 \r\fCOMCSS - COMMAND COMMON ROUTINES                 PAGE 2\r
2013         T. HASTINGS         8-15-65\r
2014 \r
2015 \r
2016                                 00470   ;ROUTINE TO IGNORE LEADING SPACES AND TABS\r
2017                                 00480   ;CALL:    MOVE TAC, BYTE POINTER TO CHAR.\r
2018                                 00490   ;         PUSHJ PDP, SKIPS1\r
2019 \r
2020                                 00510   INTERNAL SKIPS1\r
2021 \r
2022         000033' 135500  000001  00530   SKIPS1:   LDB T, TAC\r
2023         000034' 254000  000036' 00540             JRST SKIPSA\r
2024 \r
2025                                 00560   ;ROUTINE TO IGNORE LEDING SPACES AND TABS \r
2026                                 00570   ;CALL:    MOVE TAC, BYTE POINTER TO CHAR.-1\r
2027                                 00580   ;         PUSHJ PDP, SKIPS\r
2028 \r
2029                                 00600   INTERNAL SKIPS\r
2030 \r
2031         000035' 134500  000001  00620   SKIPS:    ILDB T, TAC\r
2032         000036' 302500  000040  00630   SKIPSA:   CAIE T, " "\r
2033         000037' 306500  000011  00640             CAIN T, 11\r
2034         000040' 254000  000035' 00650             JRST SKIPS\r
2035         000041' 263140  000000  00660             POPJ PDP,\r
2036 \r\fCOMCSS - COMMAND COMMON ROUTINES                 PAGE 3\r
2037         T. HASTINGS         8-15-65\r
2038 \r
2039 \r
2040                                 00690   ;ROUTINE TO APPEND A "?" TO INPUT STRING AND SET AS OUTPUT\r
2041                                 00700   ;CALL:    MOVE TAC, BYTE POINTER TO LAST CHAR. IN INPUT STRING\r
2042                                 00710   ;         PUSHJ PDP, COMERA\r
2043 \r
2044                                 00730   INTERNAL COMERA\r
2045 \r
2046         000042' 133000  000001  00750   COMERA:   IBP TAC\r
2047  \r
2048                                 00770   ;ROUTINE TO REPLACE LAST CHARACTER IN INPUT STRING BY "?"\r
2049                                 00780   ;AND SET AS OUTPUT\r
2050                                 00790   ;CALL:    MOVE TAC, BYTE POINTER TO LAST CHAR. IN INPUT STRING\r
2051                                 00800   ;         PUSHJ PDP, COMERR\r
2052 \r
2053                                 00820   INTERNAL COMERR\r
2054 \r
2055                                 00840   EXTERNAL TTYBUF\r
2056 \r
2057         000043' 200240  000001  00860   COMERR:   MOVE DAT,TAC\r
2058         000044' 201506  000000* 00870             MOVEI T,TTYBUF(DEVDAT)        ;IS THERE MORE THAN 3 WORDS I\r
2059         000045' 305505  777775  00880             CAIGE T,-3(DAT)\r
2060         000046' 541252  000003  00890             HRRI DAT,3(T)         ;YES, TYPE ONLY 3\r
2061         000047' 201500  000077  00900             MOVEI T, "?"            ;APPEND "?"\r
2062         000050' 137500  000005  00910             DPB T, DAT\r
2063         000051' 265040  000060' 00920             JSP TAC,CONMES\r
2064 \r
2065         000052' 202331  747222  00940             ASCIZ / MONITOR COMMAND ERROR\r
2066         000053' 522372  220206\r
2067         000054' 476331  540634\r
2068         000055' 421010  551244\r
2069         000056' 476441  505000  00950   /\r
2070 \r\fCOMCSS - COMMAND COMMON ROUTINES                 PAGE 4\r
2071         T. HASTINGS         8-15-65\r
2072 \r
2073 \r
2074                                 00980   ;ROUTINE TO PRINT CARRIAGE RETURN-LINE-FEED\r
2075                                 00990   ;CALL:    MOVE DAT,BYTE POINTER TO OUTPUT\r
2076                                 01000   ;         PUSHJ PDP,CRLF\r
2077 \r
2078                                 01020   INTERNAL CRLF\r
2079 \r
2080                                 01040   CRLF:     MOVEI TAC,[ASCII /\r
2081         000057' 201040  000233' 01050   /]\r
2082 \r
2083                                 01070   ;ROUTINE TO MOVE ASCII CHAR. STRING TO CONSOLE OUTPUT BUFFER\r
2084                                 01080   ; CALL:   MOVE DAT, BYTE POINTER TO LAST OUTPUT CHARACTER\r
2085                                 01090   ;         MOVEI TAC,  ADDRESS OF ASCII MESSAGE`\r
2086                                 01100   ;         PUSHJ PDP, CONMES\r
2087                                 01110   ; STRING TERMINATED BY NULL\r
2088                                 01120   ; CONMES DOES NOT START TTY\r
2089 \r
2090                                 01140   INTERNAL CONMES\r
2091 \r
2092         000060' 261140  000002  01160   CONMES:   PUSH PDP, TAC1\r
2093         000061' 505040  440700  01170             HRLI TAC, 440700      ;FORM BYTE POINTER\r
2094         000062' 134100  000001  01180   CON0:     ILDB TAC1, TAC\r
2095         000063' 322100  000066' 01190             JUMPE TAC1, CON1\r
2096         000064' 136100  000005  01200             IDPB TAC1, DAT\r
2097         000065' 254000  000062' 01210             JRST CON0\r
2098         000066' 262140  000002  01220   CON1:     POP PDP, TAC1\r
2099         000067' 263140  000000  01230             POPJ PDP,\r
2100 \r
2101                                 01250   ;ROUTINE TO PRINT "TO FEW ARGUMENTS"\r
2102                                 01260   ;CALL:    MOVE DAT,BYTE POINTER\r
2103                                 01270   ;         PUSHJ PDP,NOTENF\r
2104 \r
2105                                 01290   INTERNAL NOTENF\r
2106 \r
2107         000070' 265040  000060' 01310   NOTENF:   JSP TAC,CONMES\r
2108 \r
2109         000071' 522371  720214  01330   ASCIZ /TOO FEW ARGUMENTS\r
2110         000072' 426564  040644\r
2111         000073' 436531  542634\r
2112         000074' 522461  505000  01340   /\r
2113 \r\fCOMCSS - COMMAND COMMON ROUTINES                 PAGE 5\r
2114         T. HASTINGS         8-15-65\r
2115 \r
2116 \r
2117                                 01370   ;ROUTINE TO INITIALIZE A JOB\r
2118                                 01380   ;CALL:    MOVE ITEM, JOB NUMBER\r
2119                                 01390   ;         PUSHJ PDP, JOBINI\r
2120                                 01400   ;         DEVDAT IS SETUP ON RETURN\r
2121 \r
2122                                 01420   INTERNAL JOBINI,JOBZER\r
2123                                 01430   EXTERNAL JBTSTS,PJOBN,CORE1,MONJOB,ESTOP,TTYATT\r
2124 \r
2125         000075' 326200  000100' 01450   JOBINI:   JUMPN ITEM,JOB0       ;HAS A JOB NUMBER BEED ASSIGNED?\r
2126         000076' 260140  000135' 01460             PUSHJ PDP,ASSJOB      ;NO, THEN ASSIGN ONE.\r
2127         000077' 254000  000060' 01470             JRST CONMESS          ;NONE LEFT\r
2128         000100' 260140  000000* 01480   JOB0:     PUSHJ PDP,TTYATT      ;ATTACH TTY\r
2129         000101' 255000  000000  01490             JFCL                  ;ALREADY ATTACHED\r
2130         000102' 205040  004000  01500             MOVSI TAC,JNA         ;CLEAR JOB NO. ASSIGNED BIT\r
2131         000103' 412044  000000* 01510             ANDCAM TAC,JBTSTS(ITEM)         ;TO FORCE MESSAGE\r
2132         000104' 205040  646471  01520             MOVSI TAC,646471      ;SIXBIT /TTY/\r
2133         000105' 202046  000005  01530             MOVEM TAC, DEVLOG(DEVDAT)       ;SET LOGICAL NAME\r
2134         000106' 201500  400000  01540             MOVEI T, ASSCON       ;SET ASSIGNED BY CONSOLE BIT\r
2135         000107' 436506  000004  01550             IORM T, DEVMOD(DEVDAT)\r
2136         000110' 260140  000172' 01560             PUSHJ PDP, DEASTY     ;DE-ASSIGNED ALL DEVICES EXCEPT TTY\r
2137         000111' 322440  000000* 01570             JUMPE JDAT,CPOPJ      ;DOES JOB ALREDY HAVE CORE?\r
2138 \r
2139                                 01590   ;ROUTINE TO RELEASE ALL DEVICES AND FLUSH CORE\r
2140                                 01600   ;RUN AS MONITOR JOB\r
2141                                 01610   ;CALL:    SAME AS JOBIN\r
2142 \r
2143                                 01630   EXTERNAL IOKILL\r
2144 \r
2145         000112' 541100  000115' 01650   JOBZER:   HRRI TAC1,JOB1        ;ADDRESS OF SUB. TO RELEASE DEV.\r
2146         000113' 505100  000000* 01660   JOBZR1:   HRLI TAC1, ESTOP      ;RETURN ADDRESS AFER IORELS\r
2147         000114' 254000  000000* 01670             JRST MONJOB           ;GO SCHEDULE MONITOR JOB\r
2148 \r
2149         000115' 260140  000000* 01690   JOB1:     PUSHJ PDP,IOKILL      ;KILL ALL IO DEVICES\r
2150         000116' 201040  000000  01700             MOVEI TAC,0           ;FLUSH ALL CORE\r
2151         000117' 370003  000000  01710             SOS (PDP)             ;CORE1 WILL SKIP RETURN\r
2152         000120' 254000  000000* 01720             JRST CORE1\r
2153 \r\fCOMCSS - COMMAND COMMON ROUTINES                 PAGE 6\r
2154         T. HASTINGS         8-15-65\r
2155 \r
2156 \r
2157                                 01750   ;ROUTINE TO KILL CURRENT JOB\r
2158                                 01760   ;CALL   PUSHJ PDP,JOBKIL\r
2159 \r
2160                                 01780   INTERNAL JOBKIL\r
2161                                 01790   EXTERNAL JBTSTS,TTYKIL\r
2162 \r
2163         000121' 350003  000000  01810   JOBKIL:   AOS (PDP)             ;SUPRESS CR-LF AND JOB INIT. CHECK\r
2164         000122' 201040  000001  01820             MOVEI TAC,1\r
2165         000123' 260140  000173' 01830             PUSHJ PDP,DEASAL      ;DEASSIGN ALL DEVICES\r
2166         000124' 322440  000132' 01840             JUMPE JDAT,JOBKA      ;DOES JOB HAVE CORE?\r
2167         000125' 541100  000127' 01850             HRRI TAC1,JOBK2       ;YES,RELEAS DEVICE AND CLEAR\r
2168         000126' 254000  000113' 01860             JRST JOBZR1\r
2169 \r
2170         000127' 261140  000006  01880   JOBK2:    PUSH PDP,DEVDAT       ;SAVE DEVDAT FOR TTYKIL\r
2171         000130' 260140  000115' 01890             PUSHJ PDP,JOB1        ;FLUSH CORE AND RELEASE DEVICES\r
2172         000131' 262140  000006  01900             POP PDP,DEVDAT\r
2173         000132' 205040  002000  01910   JOBKA:    MOVSI TAC,JERR        ;CLEAR ALL BUT JOB ERROR BIT\r
2174         000133' 202044  000103* 01920             MOVEM TAC,JBTSTS(ITEM)          ;IN JOB STATUS WORD\r
2175         000134' 254000  000000* 01930             JRST TTYKIL           ;RETURN TTY TO VIRGIN STATE\r
2176 \r
2177                                 01950   ;ROUTINE TO ASSIGN AN UNUSED JOB NUMBER\r
2178                                 01960   ;CALL     PUSHJ PDP,ASSJOB\r
2179                                 01970   ;         ERROR RETURN       TAC DESTROYED\r
2180                                 01980   ;         OK RETURN       ITEM SET, TAC AND TAC1 PRESERVED\r
2181 \r
2182                                 02000   INTERNAL ASSJOB\r
2183                                 02010   EXTERNAL MJOBN,JBTSTS,CPOPJ1\r
2184 \r
2185         000135' 205200  000000* 02030   ASSJOB:   MOVSI ITEM,MJOBN\r
2186         000136' 253200  000137' 02040             AOBJN ITEM,.+1\r
2187         000137' 205540  004000  02050             MOVSI T1,JNA\r
2188         000140' 612544  000133* 02060             TDNE T1,JBTSTS(ITEM)\r
2189         000141' 253200  000140' 02070             AOBJN ITEM,.-1\r
2190         000142' 325200  000145' 02080             JUMPGE ITEM,ASSJB1\r
2191         000143' 405200  777777  02090             ANDI ITEM,-1\r
2192         000144' 254000  000000* 02100             JRST CPOPJ1\r
2193 \r
2194         000145' 265040  000060' 02120   ASSJB1:   JSP TAC,CONMES\r
2195         000146' 452370  220206  02130             ASCIZ /JOB CAPACITY EXCEEDED\r
2196         000147' 406410  141622\r
2197         000150' 522624  042660\r
2198         000151' 416130  542212\r
2199         000152' 420321  200000  02140   /\r
2200 \r\fCOMCSS - COMMAND COMMON ROUTINES                 PAGE 7\r
2201         T. HASTINGS         8-15-65\r
2202 \r
2203 \r
2204                                 02170   ;ROUTINE TO DEASSIGN A DEVICE \r
2205                                 02180   ;CALL:    MOVE DEVDAT, DEVICE DATA BLOCK\r
2206                                 02190   ;         MOVE ITEM, JOB NUMBER\r
2207                                 02200   ;         PUSHJ DPD, DEASG\r
2208                                 02210   ;         ERROR NOT PREVIOUSLY ASSIGNED\r
2209                                 02220   ;         OK RETURN WITH DEVICE DEASSIGNED\r
2210 \r
2211                                 02240   INTERNAL DEASG\r
2212                                 02250   EXTERNAL PJOBN, CPOPJ1\r
2213 \r
2214         000153' 135500  000000* 02270   DEASG:    LDB T, PJOBN          ;WAS DEVICE ASSIGNED TO THIS JOB?\r
2215         000154' 312500  000004  02280             CAME T, ITEM\r
2216         000155' 263140  000000  02290             POPJ PDP,             ;NO. RETURN\r
2217         000156' 205500  400000  02300             MOVSI T,DVDIRIN       ;CLEAR DIRECTORY IN CORE BIT\r
2218         000157' 412506  000004  02310             ANDCAM T,DEVMOD(DEVDAT)\r
2219         000160' 201500  400000  02320             MOVEI T, ASSCON       ;YES, IS ASSIGNED BY CONSOLE BIT ON?\r
2220         000161' 616506  000004  02330             TDNN T, DEVMOD(DEVDAT)\r
2221         000162' 263140  000000  02340             POPJ PDP,             ;NO\r
2222         000163' 413506  000004  02350             ANDCAB T,DEVMOD(DEVDAT)        ;YES, CLEAR BIT\r
2223         000164' 402006  000005  02360             SETZM DEVLOG(DEVDAT)           ;CLEAR LOGICAL NAME\r
2224         000165' 602500  200000  02370             TRNE T, ASSPRG        ;IS ASSIGNED BY PROGRAM BIT ON?\r
2225         000166' 254000  000144* 02380             JRST CPOPJ1           ;YES\r
2226         000167' 201500  000000  02390             MOVEI T,0             ;NO, CLEAR JOB NUMBER\r
2227         000170' 137500  000153* 02400             DPB T, PJOBN\r
2228         000171' 254000  000166* 02410             JRST CPOPJ1\r
2229 \r
2230                                 02430   ;ROUTINE TO DEASSIGN ALL DEVICES EXCEPT LOGICAL TTY\r
2231                                 02440   ;CALL:    MOVE ITEM, JOB NUMBER \r
2232                                 02450   ;         PUSHJ PDP, DEASTY\r
2233 \r
2234                                 02470   INTERNAL DEASTY\r
2235 \r
2236         000172' 205040  646471  02490   DEASTY:   MOVSI TAC, 646471     ;SIXBIT /TTY/\r
2237                                 02500                                   ;FALL INTO DEASAL\r
2238 \r
2239                                 02520   ;ROUTINE TO DEASSIGN ALL DEVICES EXECPT ONE\r
2240                                 02530   ;CALL:    MOVE ITEM, JOB NUMBER\r
2241                                 02540   ;         MOVE TAC, LOGICAL DEVICE NOT TO BE DEASSIGNED\r
2242                                 02550   ;         PUSHJ PDP, DEASAL\r
2243 \r
2244                                 02570   INTERNAL DEASAL\r
2245                                 02580   EXTERNAL DEVLST\r
2246 \r
2247         000173' 261140  000006  02600   DEASAL:   PUSH PDP,DEVDAT\r
2248         000174' 554300  000000* 02610             HLRZ DEVDAT,DEVLST    ;SEARCH ALL DDBS\r
2249         000175' 312046  000005  02620   DEA1:     CAME TAC, DEVLOG(DEVDAT)        ;IS THIS THE LOGICAL NAME\r
2250         000176' 260140  000153' 02630             PUSHJ PDP, DEASG      ;NO, TRY TO DEASSIGN IT\r
2251         000177' 255000  000000  02640             JFCL                  ;IGNORE IF CANT\r
2252         000200' 554306  000003  02650             HLRZ DEVDAT, DEVSER(DEVDAT)\r
2253         000201' 326300  000175' 02660             JUMPN DEVDAT, DEA1\r
2254         000202' 262140  000006  02670             POP PDP,DEVDAT\r
2255         000203' 263140  000000  02680             POPJ PDP,\r
2256 \r\fCOMCSS - COMMAND COMMON ROUTINES                 PAGE 8\r
2257         T. HASTINGS         8-15-65\r
2258 \r
2259 \r
2260                                 02710   ;ROUTINE TO READ CONSOLE AND CONVERT ANY RADIX NUMBER\r
2261                                 02720   ; CALL:   MOVE TAC1,  DESIRED RADIX\r
2262                                 02730   ;         MOVE TAC,  BYTE POINTER TO FIRST CHRACTER\r
2263                                 02740   ;         PUSHJ PDP, ANYRIN\r
2264                                 02750   ;         ERROR EXIT            ;AC TAC1=0 IF NO NUMBER BEFORE FIRST NO\r
2265                                 02760   ;         NORMAL EXIT           ;AC TAC1 CONTAINS NUMEBR\r
2266                                 02770   ; SCAN STOPS ON FIRST ILLEGAL CHARACTER OR CR\r
2267                                 02780   ; IGNORES SPACES, TABS, RUBOUTS\r
2268 \r
2269                                 02800   INTERNAL OCTIN,ANYRIN,DECIN,DECIN1\r
2270                                 02810   EXTERNAL CPOPJ1, CPOPJ\r
2271 \r
2272                         000012  02830   C=BUFPNT  ;CHARACTER AC\r
2273                         000013  02840   R=BUFWRD  ;RADIX AC\r
2274 \r
2275         000204' 133000  000001  02860   DECIN1:   IBP TAC       ;SKIP SEPARATION CHARACTER\r
2276         000205' 201100  000012  02870   DECIN:    MOVEI TAC1,12         ;DECIMAL INPUT\r
2277         000206' 254000  000210' 02880             JRST ANYRIN\r
2278 \r
2279         000207' 201100  000010  02900   OCTIN:    MOVEI TAC1, 10\r
2280         000210' 200540  000002  02910   ANYRIN:   MOVE R, TAC1\r
2281         000211' 201100  000000  02920             MOVEI TAC1, 0\r
2282         000212' 260140  000033' 02930             PUSHJ PDP, SKIPS1     ;SKIP LEADING SPACES, TABS\r
2283         000213' 135500  000001  02940             LDB C, TAC\r
2284         000214' 306500  000015  02950             CAIN C, 15            ;CHECK FOR INITIAL CR\r
2285         000215' 263140  000000  02960             POPJ PDP,             ;EXIT WITH 0 IN TAC1\r
2286         000216' 302500  000055  02970   OCT0:     CAIE C,"-"   ;DASH?\r
2287         000217' 306500  000015  02980             CAIN C,15  ;CR?\r
2288         000220' 254000  000171* 02990             JRST CPOPJ1           ;YES, ONLY LEGAL TERMINATORS\r
2289         000221' 275500  000060  03000             SUBI C,60\r
2290         000222' 321500  000224' 03010             JUMPL C, OCTE         ;ERROR IF NEGATIVE\r
2291         000223' 311500  000013  03020             CAML C, R             ;OR .GE. RADIX\r
2292         000224' 344100  000111* 03030   OCTE:     AOJA TAC1,CPOPJ       ;ERROR,INSURE TAC1 NON-ZERO\r
2293         000225' 220100  000013  03040             IMUL TAC1, R\r
2294         000226' 270100  000012  03050             ADD TAC1, C\r
2295         000227' 134500  000001  03060   OCT1:     ILDB C, TAC\r
2296         000230' 254000  000216' 03070             JRST OCT0\r
2297 \r
2298                                 03090             END,\r
2299         000231' 440600  000002\r
2300         000232' 000600  000002\r
2301         000233' 064240  000000\r
2302 \r
2303 NO ERRORS DETECTED\r
2304 \r
2305 PROGRAM BREAK IS 000234\r
2306 \r
2307 8K CORE USED\r
2308 \r\fCOMCSS - COMMAND COMMON ROUTINES                 PAGE 9\r
2309         SYMBOL TABLE\r
2310 \r
2311                 000245  \r
2312 A               000000  INT\r
2313 AC1             000015  INT\r
2314 AC2             000016  INT\r
2315 AC3             000017  INT\r
2316 AL              000001  INT\r
2317 ANYRIN          000210' INT\r
2318 ASSCON          400000  INT\r
2319 ASSJB1          000145' \r
2320 ASSJOB          000135' INT\r
2321 ASSPRG          200000  INT\r
2322 B               000014  INT\r
2323 BUFPNT          000012  INT\r
2324 BUFWRD          000013  INT\r
2325 C               000012  \r
2326 CLOSB           002000  INT\r
2327 CLSIN           000002  INT\r
2328 CLSOUT          000001  INT\r
2329 COMERA          000042' INT\r
2330 COMERR          000043' INT\r
2331 CON0            000062' \r
2332 CON1            000066' \r
2333 CONMES          000060' INT\r
2334 CORE1           000120' EXT\r
2335 CPOPJ           000224' EXT\r
2336 CPOPJ1          000220' EXT\r
2337 CRLF            000057' INT\r
2338 CTEX            000024' \r
2339 CTEX0           000011' \r
2340 CTEX1           000012' \r
2341 CTEX2           000020' \r
2342 CTEXT           000004' INT\r
2343 CTEXT1          000000' INT\r
2344 D               000017  INT\r
2345 DAT             000005  INT\r
2346 DCL             000001  INT\r
2347 DCW             020000  INT\r
2348 DDI             000007  INT\r
2349 DDO             000006  INT\r
2350 DDTMEM          000037  INT\r
2351 DDTSYM          000036  INT\r
2352 DEA1            000175' \r
2353 DEASAL          000173' INT\r
2354 DEASG           000153' INT\r
2355 DEASTY          000172' INT\r
2356 DECIN           000205' INT\r
2357 DECIN1          000204' INT\r
2358 DEN             000004  INT\r
2359 DEVADR          000007  INT\r
2360 DEVBUF          000006  INT\r
2361 DEVCHR          000001  INT\r
2362 DEVCTR          000011  INT\r
2363 DEVDAT          000006  INT\r
2364 \r\fCOMCSS - COMMAND COMMON ROUTINES                 PAGE 9-1\r
2365         SYMBOL TABLE\r
2366 \r
2367 DEVIAD          000007  INT\r
2368 DEVIOS          000002  INT\r
2369 DEVLOG          000005  INT\r
2370 DEVLST          000174' EXT\r
2371 DEVMOD          000004  INT\r
2372 DEVNAM          000000  INT\r
2373 DEVOAD          000010  INT\r
2374 DEVPTR          000010  INT\r
2375 DEVSER          000003  INT\r
2376 DGF             000012  INT\r
2377 DIN             000003  INT\r
2378 DLK             000005  INT\r
2379 DOU             000002  INT\r
2380 DR              000016  INT\r
2381 DRL             000000  INT\r
2382 DSI             000011  INT\r
2383 DSO             000010  INT\r
2384 DTW             040000  INT\r
2385 DVAVAL          000040  INT\r
2386 DVCDR           100000  INT\r
2387 DVDIR           000004  INT\r
2388 DVDIRI          400000  INT\r
2389 DVIN            000002  INT\r
2390 DVLPT           040000  INT\r
2391 DVMTA           000020  INT\r
2392 DVOUT           000001  INT\r
2393 DVTTY           000010  INT\r
2394 ENTRB           020000  INT\r
2395 ESTOP           000113' EXT\r
2396 I               000010  INT\r
2397 IB              000013  INT\r
2398 IBUFB           200000  INT\r
2399 INITB           400000  INT\r
2400 INPB            010000  INT\r
2401 IO              000020  INT\r
2402 IOACT           010000  INT\r
2403 IOBEG           000002  INT\r
2404 IOBKTL          040000  INT\r
2405 IOCON           000040  INT\r
2406 IODEND          020000  INT\r
2407 IODERR          200000  INT\r
2408 IODISC          400000  INT\r
2409 IODONE          400000  INT\r
2410 IODTER          100000  INT\r
2411 IOEND           000040  INT\r
2412 IOFST           000004  INT\r
2413 IOIMPM          400000  INT\r
2414 IOKILL          000115' EXT\r
2415 IONRCK          000100  INT\r
2416 IORDEL          000100  INT\r
2417 IORET           000020  INT\r
2418 IOS             000000  INT\r
2419 IOSTRT          000010  INT\r
2420 \r\fCOMCSS - COMMAND COMMON ROUTINES                 PAGE 9-2\r
2421         SYMBOL TABLE\r
2422 \r
2423 IOUSE           400000  INT\r
2424 IOW             000001  INT\r
2425 IOWC            000020  INT\r
2426 IOWS            400000  INT\r
2427 ITEM            000004  INT\r
2428 JBFADR          000000  INT\r
2429 JBFCTR          000002  INT\r
2430 JBFPTR          000001  INT\r
2431 JBTSTS          000140' EXT\r
2432 JBUF            000005  INT\r
2433 JDAT            000011  INT\r
2434 JERR            002000  INT\r
2435 JIOW            100000  INT\r
2436 JNA             004000  INT\r
2437 JOB0            000100' \r
2438 JOB1            000115' \r
2439 JOBINI          000075' INT\r
2440 JOBK2           000127' \r
2441 JOBKA           000132' \r
2442 JOBKIL          000121' INT\r
2443 JOBZER          000112' INT\r
2444 JOBZR1          000113' \r
2445 LOOKB           040000  INT\r
2446 MJOBN           000135' EXT\r
2447 MONJOB          000114' EXT\r
2448 MTW             010000  INT\r
2449 NOTENF          000070' INT\r
2450 OBUFB           100000  INT\r
2451 OCT0            000216' \r
2452 OCT1            000227' \r
2453 OCTE            000224' \r
2454 OCTIN           000207' INT\r
2455 OUTPB           004000  INT\r
2456 PDP             000003  INT\r
2457 PICHN           000100  INT\r
2458 PJOBN           000170' EXT\r
2459 PROG            000007  INT\r
2460 R               000013  \r
2461 RUN             200000  INT\r
2462 RUNABL          204000  INT\r
2463 SKIPS           000035' INT\r
2464 SKIPS1          000033' INT\r
2465 SKIPSA          000036' \r
2466 T               000012  \r
2467 T1              000013  \r
2468 T2              000014  \r
2469 TAC             000001  INT\r
2470 TAC1            000002  INT\r
2471 TEM             000010  INT\r
2472 TTYATC          020000  INT\r
2473 TTYATT          000100' EXT\r
2474 TTYBUF          000044' EXT\r
2475 TTYKIL          000134' EXT\r
2476 \r\fCOMCSS - COMMAND COMMON ROUTINES                 PAGE 9-3\r
2477         SYMBOL TABLE\r
2478 \r
2479 TTYUSE          010000  INT\r
2480 USRMOD          010000  INT\r
2481 UUO             000014  INT\r
2482 \f   CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
2483    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
2484    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
2485 CCC                  OOO         OOO      MMMMMM   MMMMMM            III            NNN         NNN            III      \r
2486 CCC                  OOO         OOO      MMMMMM   MMMMMM            III            NNN         NNN            III      \r
2487 CCC                  OOO         OOO      MMMMMM   MMMMMM            III            NNN         NNN            III      \r
2488 CCC                  OOO         OOO      MMM   MMM   MMM            III            NNNNNN      NNN            III      \r
2489 CCC                  OOO         OOO      MMM   MMM   MMM            III            NNNNNN      NNN            III      \r
2490 CCC                  OOO         OOO      MMM   MMM   MMM            III            NNNNNN      NNN            III      \r
2491 CCC                  OOO         OOO      MMM         MMM            III            NNN   NNN   NNN            III      \r
2492 CCC                  OOO         OOO      MMM         MMM            III            NNN   NNN   NNN            III      \r
2493 CCC                  OOO         OOO      MMM         MMM            III            NNN   NNN   NNN            III      \r
2494 CCC                  OOO         OOO      MMM         MMM            III            NNN      NNNNNN            III      \r
2495 CCC                  OOO         OOO      MMM         MMM            III            NNN      NNNNNN            III      \r
2496 CCC                  OOO         OOO      MMM         MMM            III            NNN      NNNNNN            III      \r
2497 CCC                  OOO         OOO      MMM         MMM            III            NNN         NNN            III      \r
2498 CCC                  OOO         OOO      MMM         MMM            III            NNN         NNN            III      \r
2499 CCC                  OOO         OOO      MMM         MMM            III            NNN         NNN            III      \r
2500    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
2501    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
2502    CCCCCCCCCCCC         OOOOOOOOO         MMM         MMM         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
2503 \r
2504 \r
2505 \r
2506 \r
2507 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
2508 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
2509 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
2510 LLL                  SSS                        TTT                                                                     \r
2511 LLL                  SSS                        TTT                                                                     \r
2512 LLL                  SSS                        TTT                                                                     \r
2513 LLL                  SSS                        TTT                                                                     \r
2514 LLL                  SSS                        TTT                                                                     \r
2515 LLL                  SSS                        TTT                                                                     \r
2516 LLL                     SSSSSSSSS               TTT                                                                     \r
2517 LLL                     SSSSSSSSS               TTT                                                                     \r
2518 LLL                     SSSSSSSSS               TTT                                                                     \r
2519 LLL                              SSS            TTT                                                                     \r
2520 LLL                              SSS            TTT                                                                     \r
2521 LLL                              SSS            TTT                                                                     \r
2522 LLL                              SSS            TTT                                                                     \r
2523 LLL                              SSS            TTT                                                                     \r
2524 LLL                              SSS            TTT                                                                     \r
2525 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
2526 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
2527 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
2528 \r
2529 \r
2530 \r
2531 \r
2532 Request created: 24-April-1978  11:23:08\r
2533 File: DSKB1 :COMINI.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:19
2534 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2574 \r
2535 File will be deleted after printing\r
2536 \f\rCOMINI - THE COMMAND DECODER                 PAGE 1\r
2537         T. HASTINGS 8-2-65\r
2538 \r
2539                                 00010           XLIST\r
2540                                 01930          LIST\r
2541 \r\fCOMINI - THE COMMAND DECODER                 PAGE 7\r
2542         T. HASTINGS 8-2-65\r
2543 \r
2544 \r
2545                                 00010           TITLE COMINI - THE COMMAND DECODER\r
2546                                 00020           SUBTTL  T. HASTINGS 8-2-65\r
2547                                 00030   ;CALLED FROM CLOCK ROUTINE WHEN COMCNT IS GREATER THAN 0\r
2548                                 00040   ;AS SET BY TTY SERVICE ROUTINE\r
2549                                 00050   ;ALL ACS HAVE BEEN SAVED BY CLOCK CHANNEL\r
2550                                 00060   ;THE COMMAND DECODER CALLS TTYCOM WHICH SCANS FOR TTY WHICH TYPED\r
2551                                 00070   ;THE COMMAND AND THEN DISPATCHES(PUSHJ) TO APPROPRIATE\r
2552                                 00080   ;COMMAND SETUP ROTUINE OF THE SAME NAME WITH ACS SET AS:\r
2553                                 00090   ;ITEM = JOB NUMBER\r
2554                                 00100   ;TAC = BYTE POINTER TO COMMAND STRING(SSPACE OR CR AFTER COMMAND NAME)\r
2555                                 00110   ;DAT = BYTE POINTER TO LAST OUTPUT CHARACTER\r
2556                                 00120   ;DEVDAT = ADDRESS OF DEVICE DATA BLOCK TYPING COMMAND\r
2557                                 00130   ;JDAT = ADDRESS OF JOB AREA, = 0 IF NO JOB AREA\r
2558                                 00140   ;PROG = ADDRESS OF PROGRAM AREA\r
2559                                 00150   ;DEVDAT IS ALSO PUSHED ON END OF PD LIST SO IT MAY BE DESTROYED\r
2560                                 00160   ;UPON RETURN FROM COMMAND SETUP ROUTINE. A CR-LF IS ADDED TO\r
2561                                 00170   ;MASSAGE AND TTY IS STARTED ON TTY SPCIFIED BY -1(PDP)\r
2562 \r
2563                                 00190   ;SINCE THE COMMAND DECODER IS CALLED FROM CLOCK ROUTINE\r
2564                                 00200   ;COMMAND SETUP ROUTINE MUST RUN TO COMPLETION QUICKLY\r
2565                                 00210   ;IF A COMMAND FUNCTION CANNON DO THIS. IT MUST JUST SET\r
2566                                 00220   ;THE JOB TO RUNABLE STATUS AND RETURN IMMEDIATELY\r
2567 \r
2568                                 00240   INTERNAL COMMAND\r
2569                                 00250   EXTERNAL TTYCOM,TTYSTR,CTEXT,JBTADR,CONMES\r
2570                                 00260   EXTERNAL COMERR,COMCNT\r
2571                                 00270   EXTERNAL JOBINI,CRLF,CTEXT,RADX10,ASSJOB,JBTSTS\r
2572 \r
2573                         000012  00290   T=BUFPNT  ;TEMPORARY ACS\r
2574                         000013  00300   T1=BUFWRD\r
2575 \r\fCOMINI - THE COMMAND DECODER                 PAGE 2\r
2576         T. HASTINGS 8-2-65\r
2577 \r
2578 \r
2579         000000' 260140  000000* 00330   COMMAND:  PUSHJ PDP, TTYCOM     ;SETUP DEVDAT,DAT,TAC, AND ITEM\r
2580         000001' 254000  000041' 00340             JRST COM2             ;NONE FOUND\r
2581         000002' 261140  000006  00350             PUSH PDP,DEVDAT       ;SAVE TTY DDB ADDRESS\r
2582         000003' 260140  000000* 00360             PUSHJ PDP, CTEXT      ;RETURN COMMAND NAME IN TAC1\r
2583         000004' 322100  000043' 00370             JUMPE TAC1, COM2A     ;IGNORE BLANK LINE\r
2584         000005' 205500  777760  00380             MOVSI T, -DISPL       ;SEARCH FOR COMMAND NAME\r
2585         000006' 312112  000074' 00390             CAME TAC1, COMTAB(T)  \r
2586         000007' 253500  000006' 00400             AOBJN T, .-1\r
2587         000010' 325500  000047' 00410             JUMPGE T,COM2B        ;WAS COMMAND FOUND?\r
2588         000011' 200112  000114' 00420             MOVE TAC1,DISP(T)     ;YES, GET DISPATCH ADDRESS AND BITS\r
2589         000012' 326200  000026' 00430             JUMPN ITEM, COM1      ;HAS A JOB NUMBER BEEN ASSIGNED\r
2590         000013' 603100  200000  00440             TLNE TAC1,NOJOBN      ;NO, IS A JOB NUMBER NEEDED FOR THIS CO\r
2591         000014' 254000  000026' 00450             JRST COM1 ;NO\r
2592         000015' 260140  000000* 00460             PUSHJ PDP,ASSJOB      ;TRY TO ASSIGN A FREE JOB NUMBER\r
2593         000016' 254000  000067' 00470             JRST COM3A            ;NONE AVAILABLE, ERROR MESSAGE\r
2594 \r\fCOMINI - THE COMMAND DECODER                 PAGE 3\r
2595         T. HASTINGS 8-2-65\r
2596 \r
2597 \r
2598         000017' 261140  000001  00500             PUSH PDP, TAC         ;SAVE INPUT BYTE POINTER\r
2599         000020' 261140  000002  00510             PUSH PDP,TAC1         ;SAVE ADDRESS OF COMMAND ROUTINE\r
2600         000021' 403340  000011  00520             SETZB PROG,JDAT       ;NO CORE, CLEAR REL. ADRESS\r
2601         000022' 260140  000000* 00530             PUSHJ PDP,JOBINI      ;INITIALIZE JOB\r
2602         000023' 262140  000002  00540             POP PDP,TAC1          ;RESTORE ADR OF COMMAND ROUTINE\r
2603         000024' 262140  000001  00550             POP PDP, TAC          ;RESTORE INPUT BYTE POINTER\r
2604         000025' 202303  000000  00560             MOVEM DEVDAT,(PDP)    ;SET ADDRESS OF TTY DEV. DATA BLOCK\r
2605         000026' 550444  000000* 00570   COM1:     HRRZ JDAT, JBTADR(ITEM)       ;AND JOB DATA AREA\r
2606         000027' 336340  000011  00580             SKIPN PROG,JDAT       ;SET PROG. DOES JOB HAVE CORE?\r
2607         000030' 603100  400000  00590             TLNE TAC1,NOCORE      ;NO. IS CORE NEEDED FOR THIS COMMAND?\r
2608         000031' 254000  000035' 00600             JRST COM1C            ;NO\r
2609         000032' 201040  000051' 00610             MOVEI TAC,NOCOR       ;YES, PRINT "NO CORE ASSIGNED"\r
2610         000033' 260140  000000* 00620   COM1B:    PUSHJ PDP,CONMES\r
2611         000034' 254000  000036' 00630             JRST COM1A\r
2612 \r
2613         000035' 260142  000000  00650   COM1C:    PUSHJ PDP,(TAC1)      ;DISPATCH TO COMMAND SETUP ROUTINE\r
2614         000036' 326200  000055' 00660   COM1A:    JUMPN ITEM, COM3      ;ADD CR-LF AND CHECK FOR JOB INIT.\r
2615         000037' 262140  000006  00670   COM1D:    POP PDP,DEVDAT        ;RESTORE TTY DDB ADDRESS\r
2616         000040' 260140  000000* 00680             PUSHJ PDP, TTYSTR     ;START OUTPUT, IF ANY\r
2617         000041' 370000  000000* 00690   COM2:     SOS COMCNT            ;DECREMENT COMMAND COUNT\r
2618         000042' 263140  000000  00700             POPJ PDP,             ;EXIT\r
2619 \r
2620         000043' 135100  000001  00720   COM2A:    LDB TAC1, TAC         ;NULL FIELD. WAS BREAK CHAR. A CR?\r
2621         000044' 302100  000015  00730             CAIE TAC1,15          ;A CR?\r
2622         000045' 306100  000073  00740             CAIN TAC1,";"           ;OR A SEMI COLON?\r
2623         000046' 254000  000037' 00750             JRST COM1D            ;YES. IGNORE LINE\r
2624         000047' 260140  000000* 00760   COM2B:    PUSHJ PDP,COMERR      ;NO. PRINT MONITOR COMMAND ERROR\r
2625         000050' 254000  000037' 00770             JRST COM1D\r
2626 \r
2627         000051' 472364  041636  00790   NOCOR:    ASCIZ /NO CORE ASSIGNED\r
2628         000052' 512124  040646\r
2629         000053' 516230  747212\r
2630         000054' 420321  200000  00800   /\r
2631 \r
2632         000055' 200044  000000* 00820   COM3:     MOVE TAC,JBTSTS(ITEM)         ;GET STATUS WORD\r
2633         000056' 663040  004000  00830             TLOE TAC,JNA                  ;IS JOB NO ASSIGNED BIT ON YET\r
2634         000057' 254000  000067' 00840             JRST COM3A                    ;YES, JOB INIT. BEFORE\r
2635         000060' 202044  000055* 00850             MOVEM TAC,JBTSTS(ITEM)\r
2636         000061' 201040  000134' 00860             MOVEI TAC,[ASCIZ /JOB /]\r
2637         000062' 260140  000033* 00870             PUSHJ PDP,CONMES      ;PRINT JOB N INITIALIZED\r
2638         000063' 200040  000004  00880             MOVE TAC,ITEM\r
2639         000064' 260140  000000* 00890             PUSHJ PDP,RADX10      ;PRINT JOB NUMBER\r
2640         000065' 201040  000071' 00900             MOVEI TAC,JOBM\r
2641         000066' 260140  000062* 00910             PUSHJ PDP,CONMES\r
2642         000067' 260140  000000* 00920   COM3A:    PUSHJ PDP,CRLF\r
2643         000070' 254000  000037' 00930             JRST COM1D\r
2644 \r
2645         000071' 202231  644650  00950   JOBM:     ASCIZ / INITIALIZED\r
2646         000072' 446031  444664\r
2647         000073' 426101  505000  00960   /\r
2648 \r\fCOMINI - THE COMMAND DECODER                 PAGE 4\r
2649         T. HASTINGS 8-2-65\r
2650 \r
2651 \r
2652                                 00990   ;TABLE OF CONSOLE COMMANDS.\r
2653 \r
2654                         400000  01010   NOCORE=400000           ;NO CORE NEEDED FOR COMMAND\r
2655                         200000  01020   NOJOBN=200000           ;NO JOB NUMBER NEEDED FOR COMMAND\r
2656 \r
2657                                 01040   DEFINE NAMES\r
2658                                 01050   <REPEAT 0,<\r
2659                                 01060    C G,COMERR,0\r
2660                                 01070   >\r
2661                                 01080    C CORE,CORE,NOCORE\r
2662                                 01090    C GET,GET,0\r
2663                                 01100    C START,START,0\r
2664                                 01110    C IJOB,IJOB,NOCORE+NOJOBN\r
2665                                 01120    C PJOB,PJOB,NOCORE\r
2666                                 01130    C KJOB,KJOB,NOCORE\r
2667                                 01140    C SAVE,SAVE,0\r
2668                                 01150   REPEAT 0,<\r
2669                                 01160    C RESAVE,COMERR,0\r
2670                                 01170   >\r
2671                                 01180    C CONT,CONT,0\r
2672                                 01190    C DDT,DDTGO,0\r
2673                                 01200    C ASSIGN,ASSIGN,NOCORE\r
2674                                 01210    C DEASSI,DEASSIGN,NOCORE\r
2675                                 01220    C STARTC,STARTC,0\r
2676                                 01230    C CONTC,CONTC,0\r
2677                                 01240    C DETACH,DETACH,NOCORE+NOJOBN\r
2678                                 01250    C ATTACH,ATTACH,NOCORE+NOJOBN\r
2679                                 01260   REPEAT 0,<\r
2680                                 01270    C MTAPE,COMERR,0\r
2681                                 01280    C DAYTIM,COMERR,NOCORE\r
2682                                 01290    C RUNTIM,COMERR,NOCORE\r
2683                                 01300    C TOTTIM,COMERR,NOCORE\r
2684                                 01310    C NULTIM,COMERR,NOCRE\r
2685                                 01320    C SYSDDT,COMERR,NOCORE\r
2686                                 01330    C SYSMAK,SYSMAK,0\r
2687                                 01340   >\r
2688                                 01350    C DIGITAL,DIGITAL,NOCORE+NOJOBN\r
2689                                 01360   >\r
2690 \r\fCOMINI - THE COMMAND DECODER                 PAGE 5\r
2691         T. HASTINGS 8-2-65\r
2692 \r
2693 \r
2694                                 01390   ;GENERATE TABLE OF SIXBIT COMMAND NAMES\r
2695 \r
2696                                 01410   DEFINE C(A,B,C)\r
2697                                 01420   <         ZZ=.+1\r
2698                                 01430    SIXBIT /A/\r
2699                                 01440    IFN .-ZZ,<RELOC ZZ> ;ONLY FIRST 6 CHARACTERS\r
2700                                 01450   >\r
2701 \r
2702                                 01470   COMTAB:   NAMES^REPEAT 0,<\r
2703                                          C G,COMERR,0\r
2704                                         >\r
2705         000074' 435762  450000           SIXBIT /CORE/\r
2706         000075' 474564  000000           SIXBIT /GET/\r
2707         000076' 636441  626400           SIXBIT /START/\r
2708         000077' 515257  420000           SIXBIT /IJOB/\r
2709         000100' 605257  420000           SIXBIT /PJOB/\r
2710         000101' 535257  420000           SIXBIT /KJOB/\r
2711         000102' 634166  450000           SIXBIT /SAVE/\r
2712         000103' 435756  640000           SIXBIT /CONT/\r
2713         000104' 444464  000000           SIXBIT /DDT/\r
2714         000105' 416363  514756           SIXBIT /ASSIGN/\r
2715         000106' 444541  636351           SIXBIT /DEASSI/\r
2716         000107' 636441  626443           SIXBIT /STARTC/\r
2717         000110' 435756  644300           SIXBIT /CONTC/\r
2718         000111' 444564  414350           SIXBIT /DETACH/\r
2719         000112' 416464  414350           SIXBIT /ATTACH/\r
2720         000113' 445147  516441           SIXBIT /DIGITAL/\r
2721         000114' 540000  000000\r
2722                         000020  01480   DISPL=.-COMTAB          ;LENTH OF TABLE\r
2723 \r\fCOMINI - THE COMMAND DECODER                 PAGE 6\r
2724         T. HASTINGS 8-2-65\r
2725 \r
2726 \r
2727                                 01510   ;GENERATE THE DISPATCH TABLE\r
2728 \r
2729                                 01530   DEFINE C(A,B,C)\r
2730                                 01540   <         XWD C,B\r
2731                                 01550   EXTERNAL B\r
2732                                 01560   >\r
2733 \r
2734                                 01580   DISP:     NAMES^REPEAT 0,<\r
2735                                          C G,COMERR,0\r
2736                                         >\r
2737         000114' 400000  000000*          C CORE,CORE,NOCORE^      XWD NOCORE,CORE\r
2738         000115' 000000  000000*          C GET,GET,0^     XWD 0,GET\r
2739         000116' 000000  000000*          C START,START,0^         XWD 0,START\r
2740         000117' 600000  000000*          C IJOB,IJOB,NOCORE+NOJOBN^       XWD NOCORE+NOJOBN,IJOB\r
2741         000120' 400000  000000*          C PJOB,PJOB,NOCORE^      XWD NOCORE,PJOB\r
2742         000121' 400000  000000*          C KJOB,KJOB,NOCORE^      XWD NOCORE,KJOB\r
2743         000122' 000000  000000*          C SAVE,SAVE,0^   XWD 0,SAVE\r
2744         000123' 000000  000000*          C CONT,CONT,0^   XWD 0,CONT\r
2745         000124' 000000  000000*          C DDT,DDTGO,0^   XWD 0,DDTGO\r
2746         000125' 400000  000000*          C ASSIGN,ASSIGN,NOCORE^          XWD NOCORE,ASSIGN\r
2747         000126' 400000  000000*          C DEASSI,DEASSIGN,NOCORE^        XWD NOCORE,DEASSIGN\r
2748         000127' 000000  000000*          C STARTC,STARTC,0^       XWD 0,STARTC\r
2749         000130' 000000  000000*          C CONTC,CONTC,0^         XWD 0,CONTC\r
2750         000131' 600000  000000*          C DETACH,DETACH,NOCORE+NOJOBN^   XWD NOCORE+NOJOBN,DETACH\r
2751         000132' 600000  000000*          C ATTACH,ATTACH,NOCORE+NOJOBN^   XWD NOCORE+NOJOBN,ATTACH\r
2752         000133' 600000  000000*          C DIGITAL,DIGITAL,NOCORE+NOJOBN^         XWD NOCORE+NOJOBN,DIGITAL\r
2753 \r
2754                                 01600             END,\r
2755         000134' 452370  220000\r
2756 \r
2757 NO ERRORS DETECTED\r
2758 \r
2759 PROGRAM BREAK IS 000135\r
2760 \r
2761 9K CORE USED\r
2762 \r\fCOMINI - THE COMMAND DECODER                 PAGE 7\r
2763         SYMBOL TABLE\r
2764 \r
2765                 000241  \r
2766 A               000000  INT\r
2767 AC1             000015  INT\r
2768 AC2             000016  INT\r
2769 AC3             000017  INT\r
2770 AL              000001  INT\r
2771 ASSCON          400000  INT\r
2772 ASSIGN          000125' EXT\r
2773 ASSJOB          000015' EXT\r
2774 ASSPRG          200000  INT\r
2775 ATTACH          000132' EXT\r
2776 B               000014  INT\r
2777 BUFPNT          000012  INT\r
2778 BUFWRD          000013  INT\r
2779 CLOSB           002000  INT\r
2780 CLSIN           000002  INT\r
2781 CLSOUT          000001  INT\r
2782 COM1            000026' \r
2783 COM1A           000036' \r
2784 COM1B           000033' \r
2785 COM1C           000035' \r
2786 COM1D           000037' \r
2787 COM2            000041' \r
2788 COM2A           000043' \r
2789 COM2B           000047' \r
2790 COM3            000055' \r
2791 COM3A           000067' \r
2792 COMCNT          000041' EXT\r
2793 COMERR          000047' EXT\r
2794 COMMAN          000000' INT\r
2795 COMTAB          000074' \r
2796 CONMES          000066' EXT\r
2797 CONT            000123' EXT\r
2798 CONTC           000130' EXT\r
2799 CORE            000114' EXT\r
2800 CRLF            000067' EXT\r
2801 CTEXT           000003' EXT\r
2802 D               000017  INT\r
2803 DAT             000005  INT\r
2804 DCL             000001  INT\r
2805 DCW             020000  INT\r
2806 DDI             000007  INT\r
2807 DDO             000006  INT\r
2808 DDTGO           000124' EXT\r
2809 DDTMEM          000037  INT\r
2810 DDTSYM          000036  INT\r
2811 DEASSI          000126' EXT\r
2812 DEN             000004  INT\r
2813 DETACH          000131' EXT\r
2814 DEVADR          000007  INT\r
2815 DEVBUF          000006  INT\r
2816 DEVCHR          000001  INT\r
2817 DEVCTR          000011  INT\r
2818 \r\fCOMINI - THE COMMAND DECODER                 PAGE 7-1\r
2819         SYMBOL TABLE\r
2820 \r
2821 DEVDAT          000006  INT\r
2822 DEVIAD          000007  INT\r
2823 DEVIOS          000002  INT\r
2824 DEVLOG          000005  INT\r
2825 DEVMOD          000004  INT\r
2826 DEVNAM          000000  INT\r
2827 DEVOAD          000010  INT\r
2828 DEVPTR          000010  INT\r
2829 DEVSER          000003  INT\r
2830 DGF             000012  INT\r
2831 DIGITA          000133' EXT\r
2832 DIN             000003  INT\r
2833 DISP            000114' \r
2834 DISPL           000020  \r
2835 DLK             000005  INT\r
2836 DOU             000002  INT\r
2837 DR              000016  INT\r
2838 DRL             000000  INT\r
2839 DSI             000011  INT\r
2840 DSO             000010  INT\r
2841 DTW             040000  INT\r
2842 DVAVAL          000040  INT\r
2843 DVCDR           100000  INT\r
2844 DVDIR           000004  INT\r
2845 DVDIRI          400000  INT\r
2846 DVIN            000002  INT\r
2847 DVLPT           040000  INT\r
2848 DVMTA           000020  INT\r
2849 DVOUT           000001  INT\r
2850 DVTTY           000010  INT\r
2851 ENTRB           020000  INT\r
2852 GET             000115' EXT\r
2853 I               000010  INT\r
2854 IB              000013  INT\r
2855 IBUFB           200000  INT\r
2856 IJOB            000117' EXT\r
2857 INITB           400000  INT\r
2858 INPB            010000  INT\r
2859 IO              000020  INT\r
2860 IOACT           010000  INT\r
2861 IOBEG           000002  INT\r
2862 IOBKTL          040000  INT\r
2863 IOCON           000040  INT\r
2864 IODEND          020000  INT\r
2865 IODERR          200000  INT\r
2866 IODISC          400000  INT\r
2867 IODONE          400000  INT\r
2868 IODTER          100000  INT\r
2869 IOEND           000040  INT\r
2870 IOFST           000004  INT\r
2871 IOIMPM          400000  INT\r
2872 IONRCK          000100  INT\r
2873 IORDEL          000100  INT\r
2874 \r\fCOMINI - THE COMMAND DECODER                 PAGE 7-2\r
2875         SYMBOL TABLE\r
2876 \r
2877 IORET           000020  INT\r
2878 IOS             000000  INT\r
2879 IOSTRT          000010  INT\r
2880 IOUSE           400000  INT\r
2881 IOW             000001  INT\r
2882 IOWC            000020  INT\r
2883 IOWS            400000  INT\r
2884 ITEM            000004  INT\r
2885 JBFADR          000000  INT\r
2886 JBFCTR          000002  INT\r
2887 JBFPTR          000001  INT\r
2888 JBTADR          000026' EXT\r
2889 JBTSTS          000060' EXT\r
2890 JBUF            000005  INT\r
2891 JDAT            000011  INT\r
2892 JERR            002000  INT\r
2893 JIOW            100000  INT\r
2894 JNA             004000  INT\r
2895 JOBINI          000022' EXT\r
2896 JOBM            000071' \r
2897 KJOB            000121' EXT\r
2898 LOOKB           040000  INT\r
2899 MTW             010000  INT\r
2900 NOCOR           000051' \r
2901 NOCORE          400000  \r
2902 NOJOBN          200000  \r
2903 OBUFB           100000  INT\r
2904 OUTPB           004000  INT\r
2905 PDP             000003  INT\r
2906 PICHN           000100  INT\r
2907 PJOB            000120' EXT\r
2908 PROG            000007  INT\r
2909 RADX10          000064' EXT\r
2910 RUN             200000  INT\r
2911 RUNABL          204000  INT\r
2912 SAVE            000122' EXT\r
2913 START           000116' EXT\r
2914 STARTC          000127' EXT\r
2915 T               000012  \r
2916 T1              000013  \r
2917 TAC             000001  INT\r
2918 TAC1            000002  INT\r
2919 TEM             000010  INT\r
2920 TTYATC          020000  INT\r
2921 TTYCOM          000000' EXT\r
2922 TTYSTR          000040' EXT\r
2923 TTYUSE          010000  INT\r
2924 USRMOD          010000  INT\r
2925 UUO             000014  INT\r
2926 ZZ              000114' \r
2927 \f   CCCCCCCCCCCC         OOOOOOOOO         RRRRRRRRRRRR         EEEEEEEEEEEEEEE                                          \r
2928    CCCCCCCCCCCC         OOOOOOOOO         RRRRRRRRRRRR         EEEEEEEEEEEEEEE                                          \r
2929    CCCCCCCCCCCC         OOOOOOOOO         RRRRRRRRRRRR         EEEEEEEEEEEEEEE                                          \r
2930 CCC                  OOO         OOO      RRR         RRR      EEE                                                      \r
2931 CCC                  OOO         OOO      RRR         RRR      EEE                                                      \r
2932 CCC                  OOO         OOO      RRR         RRR      EEE                                                      \r
2933 CCC                  OOO         OOO      RRR         RRR      EEE                                                      \r
2934 CCC                  OOO         OOO      RRR         RRR      EEE                                                      \r
2935 CCC                  OOO         OOO      RRR         RRR      EEE                                                      \r
2936 CCC                  OOO         OOO      RRRRRRRRRRRR         EEEEEEEEEEEE                                             \r
2937 CCC                  OOO         OOO      RRRRRRRRRRRR         EEEEEEEEEEEE                                             \r
2938 CCC                  OOO         OOO      RRRRRRRRRRRR         EEEEEEEEEEEE                                             \r
2939 CCC                  OOO         OOO      RRR   RRR            EEE                                                      \r
2940 CCC                  OOO         OOO      RRR   RRR            EEE                                                      \r
2941 CCC                  OOO         OOO      RRR   RRR            EEE                                                      \r
2942 CCC                  OOO         OOO      RRR      RRR         EEE                                                      \r
2943 CCC                  OOO         OOO      RRR      RRR         EEE                                                      \r
2944 CCC                  OOO         OOO      RRR      RRR         EEE                                                      \r
2945    CCCCCCCCCCCC         OOOOOOOOO         RRR         RRR      EEEEEEEEEEEEEEE                                          \r
2946    CCCCCCCCCCCC         OOOOOOOOO         RRR         RRR      EEEEEEEEEEEEEEE                                          \r
2947    CCCCCCCCCCCC         OOOOOOOOO         RRR         RRR      EEEEEEEEEEEEEEE                                          \r
2948 \r
2949 \r
2950 \r
2951 \r
2952 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
2953 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
2954 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
2955 LLL                  SSS                        TTT                                                                     \r
2956 LLL                  SSS                        TTT                                                                     \r
2957 LLL                  SSS                        TTT                                                                     \r
2958 LLL                  SSS                        TTT                                                                     \r
2959 LLL                  SSS                        TTT                                                                     \r
2960 LLL                  SSS                        TTT                                                                     \r
2961 LLL                     SSSSSSSSS               TTT                                                                     \r
2962 LLL                     SSSSSSSSS               TTT                                                                     \r
2963 LLL                     SSSSSSSSS               TTT                                                                     \r
2964 LLL                              SSS            TTT                                                                     \r
2965 LLL                              SSS            TTT                                                                     \r
2966 LLL                              SSS            TTT                                                                     \r
2967 LLL                              SSS            TTT                                                                     \r
2968 LLL                              SSS            TTT                                                                     \r
2969 LLL                              SSS            TTT                                                                     \r
2970 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
2971 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
2972 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
2973 \r
2974 \r
2975 \r
2976 \r
2977 Request created: 24-April-1978  11:23:08\r
2978 File: DSKB1 :CORE  .LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:19
2979 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2564 \r
2980 File will be deleted after printing\r
2981 \f\rCORE - CORE ALLOCATION ROUTINE                 PAGE 1\r
2982         G. BELL 6-29-65\r
2983 \r
2984                                 00010           XLIST\r
2985                                 01930          LIST\r
2986 \r\fCORE - CORE ALLOCATION ROUTINE                 PAGE 7\r
2987         G. BELL 6-29-65\r
2988 \r
2989 \r
2990                                 00010   TITLE CORE - CORE ALLOCATION ROUTINE\r
2991                                 00020           SUBTTL G. BELL 6-29-65\r
2992                                 00030   ;         PUSHJ PDP, CORE1      ;ITEM = JOB #. TAC = 1K CORE BLOCKS\r
2993                                 00040                                   ;REQUESTED\r
2994                                 00050   ;         RET1                  ;OLD CORE RETURNED.\r
2995                                 00060   ;         RET2                  ;OLD CORE RETURNED.   JBTADR, JOBREL ARE\r
2996                                 00070                                   ;SET UP\r
2997                                 00080   ; JBADR (ITEM) = POINTER TO JOB AREA. JOBREL (JBTADR) = HIGHEST LOCAT\r
2998                                 00090   ; C(RH) JBTADR IS SET OT 0 OR REQUESTED CORE. JOBREL IS SET IF CORE G\r
2999                                 00100   ; NOT A PURE PROCEDURE ...\r
3000                                 00110   ;CORTAL:  0                             ;COUNT OF FREE CORE\r
3001                                 00120   ;CORTAB:  BLOCK ^D3                     ;TABLE OF 72 BITS. 1 BIT FOR\r
3002                                 00130   ;1K OF CORE. 1 = USED. 0 = FREE\r
3003                                 00140   ;CORLST:  POINT 1, CORTAB, 32           ;POINTER FIRST OUT OF BOUNDS\r
3004                                 00150   ;\r
3005                                 00160   ;TEMPORARY USAGE\r
3006         000000' 000000  000000  00170   CORUSZ:   0                             ;SIZE OF USERS CODE, OLD.-NEW\r
3007         000001' 000000  000000  00180   CORLOC:   0                             ;POSITION OF 1ST FREE BLOCK\r
3008                                 00190   ;\r
3009                                 00200   ;AC ASSIGNMENTS\r
3010                         000012  00210   COR1=BUFPNT\r
3011                         000013  00220   COR2=BUFWRD\r
3012                         000014  00230   COR3=UUO\r
3013                                 00240   INTERNAL CORE1\r
3014                                 00250   EXTERNAL JBTADR,JOBREL,CORLST,CORTAL,CORTAB\r
3015 \r\fCORE - CORE ALLOCATION ROUTINE                 PAGE 2\r
3016         G. BELL 6-29-65\r
3017 \r
3018 \r
3019         000002' 135500  000042' 00280   CORE1:    LDB COR1, CORE1P      \r
3020         000003' 202500  000001' 00290             MOVEM COR1, CORLOC\r
3021         000004' 322500  000013' 00300             JUMPE COR1, CORGET            ;IF 0 NO CORE NOEW.\r
3022         000005' 554504  000000* 00310             HLRZ COR1, JBTADR(ITEM)       ;CLEAR OLD CORE\r
3023         000006' 350000  000012  00320             AOS COR1                      ;HIGHEST ADDRESS AVAIL. FORM\r
3024         000007' 240500  777766  00330             ASH COR1, -^D10\r
3025         000010' 202500  000000' 00340             MOVEM COR1, CORUSZ\r
3026         000011' 402000  000014  00350   CORRET:   CLEARM COR3                   ;RETURN OLD CORE\r
3027         000012' 260140  000056' 00360             PUSHJ PDP, CORSTG\r
3028         000013' 402004  000005* 00370   CORGET:   SETZM JBTADR(ITEM)    ;CLEAR JOB ADDRESS TO 0\r
3029         000014' 322040  000037' 00380             JUMPE TAC, COROK              ;IF NO CORE TO GET, RETURN\r
3030         000015' 200600  000043' 00390             MOVE COR3, CORE2P     ;SET UP FOR\r
3031         000016' 476000  000001' 00400             SETOM CORLOC                  ;HOLE SEARCH\r
3032         000017' 260140  000044' 00410   CORG1:    PUSHJ PDP, CORHOL\r
3033         000020' 254000  000040' 00420             JRST CORNG                    ;UNSUCCESSFUL SEARCH\r
3034         000021' 315500  000001  00430             CAMGE COR1, TAC               ;HOLE FOUND\r
3035         000022' 254000  000017' 00440             JRST CORG1\r
3036         000023' 213000  000012  00450   CORGVE:   MOVNS COR1                    ;BACKUP CORLOC\r
3037         000024' 272500  000001' 00460             ADDM COR1, CORLOC\r
3038         000025' 202040  000000' 00470             MOVEM TAC, CORUSZ             ;RESERVE HOLD FOR JOB\r
3039         000026' 201600  000001  00480             MOVEI COR3, 1                 ;SET CORTAB\r
3040         000027' 260140  000056' 00490             PUSHJ PDP, CORSTG\r
3041         000030' 200500  000001' 00500             MOVE COR1, CORLOC             ;C(RH)=RELOC, C(LH)=PROTECT\r
3042         000031' 240500  000012  00510             ASH COR1, ^D10\r
3043         000032' 542504  000013* 00520             HRRM COR1, JBTADR(ITEM)\r
3044         000033' 240040  000012  00530             ASH TAC, ^D10\r
3045         000034' 275040  000001  00540             SUBI TAC, 1\r
3046         000035' 542052  000000* 00550             HRRM TAC, JOBREL (COR1)\r
3047         000036' 506044  000032* 00560             HRLM TAC,JBTADR(ITEM)\r
3048         000037' 350003  000000  00570   COROK:    AOS (PDP)\r
3049         000040' 200040  000000* 00580   CORNG:    MOVE TAC, CORTAL\r
3050         000041' 263140  000000  00590             POPJ PDP,\r
3051 \r
3052         000042' 121004  000036* 00610   CORE1P:   POINT 8, JBTADRR(ITEM),25\r
3053         000043' 440100  000000* 00620   CORE2P:   POINT 1, CORTAB\r
3054 \r\fCORE - CORE ALLOCATION ROUTINE                 PAGE 3\r
3055         G. BELL 6-29-65\r
3056 \r
3057 \r
3058                                 00650   ;         PUSHJ PDP, CORHOL     ;COR1-HOLES FREE, COR2=TEMP\r
3059                                 00660   ;         RETURN1               ;COR3=POINTER. RETURN1=END OF STRING RE\r
3060                                 00670   ;         RETURN2               ;HOLE FOUND.\r
3061                                 00680   ; CORLOC CONTAINS 0,1.. N, THE CORE BLK PTR. CORLST IS PTR TO\r
3062                                 00690   ; STOP STRING TEST\r
3063         000044' 402000  000012  00700   CORHOL:   CLEARM COR1\r
3064         000045' 316600  000000* 00710   CORH01:   CAMN COR3, CORLST             ;TEST DONE\r
3065         000046' 263140  000000  00720             POPJ PDP,\r
3066         000047' 134540  000014  00730             ILDB COR2, COR3               ;TEST NEXT BLOCK\r
3067         000050' 350000  000001' 00740             AOS CORLOC\r
3068         000051' 336000  000013  00750             SKIPN COR2\r
3069         000052' 344500  000045' 00760             AOJA COR1, CORH01             ;COUNT FREE\r
3070         000053' 322500  000045' 00770             JUMPE COR1, CORH01\r
3071         000054' 350003  000000  00780             AOS (PDP)\r
3072         000055' 263140  000000  00790             POPJ PDP,\r
3073                                 00800   ;;        PUSHJ PDP, CORSTG     ;CORUSZ=SIZE RESERVED. CORLOC=LOCATION\r
3074                                 00810   ; IF COR3=0, THEN FREE CORE\r
3075                                 00820   ; IF COR3=1, THEN RESERVE CORE.\r
3076                                 00830   ; USES COR1, COR2, COR3\r
3077                                 00840   ; CORTAL=COUNT OF FREE CORE. AND IS UPDATED\r
3078         000056' 261140  000001  00850   CORSTG:   PUSH PDP, TAC                 ;SAVE NO. OF BLOCKS BEING REQ\r
3079         000057' 200540  000000' 00860             MOVE COR2,CORUSZ              ;FIX CORTALLY\r
3080         000060' 332000  000014  00870             SKIPE COR3\r
3081         000061' 213000  000013  00880             MOVNS COR2\r
3082         000062' 272540  000040* 00890             ADDM COR2, CORTAL\r
3083         000063' 200040  000001' 00900             MOVE TAC, CORLOC              ;GET POINTER-1\r
3084         000064' 231040  000044  00910             IDIVI TAC, ^D36               ;TAC=WORD,TAC1=BIT\r
3085         000065' 270040  000076' 00920             ADD TAC, CORLP1       ;FORM BYTE POINTER\r
3086         000066' 213000  000002  00930             MOVNS TAC1\r
3087         000067' 271100  000044  00940             ADDI TAC1, ^D36\r
3088         000070' 137100  000077' 00950             DPB TAC1, [POINT 6, TAC, 5]\r
3089         000071' 200540  000000' 00960             MOVE COR2, CORUSZ\r
3090         000072' 136600  000001  00970   CORLOP:   DPBI COR3, TAC                ;SET OR CLEAR EACH BIT IN USE\r
3091         000073' 367540  000072' 00980             SOJG COR2, CORLOP\r
3092         000074' 262140  000001  00990             POP PDP, TAC\r
3093         000075' 263140  000000  01000             POPJ PDP,\r
3094 \r
3095         000076' 000100  000043* 01020   CORLP1:   XWD 100, CORTAB\r
3096 \r
3097                                 01040             END,\r
3098         000077' 360600  000001\r
3099 \r
3100 NO ERRORS DETECTED\r
3101 \r
3102 PROGRAM BREAK IS 000100\r
3103 \r
3104 8K CORE USED\r
3105 \r\fCORE - CORE ALLOCATION ROUTINE                 PAGE 4\r
3106         SYMBOL TABLE\r
3107 \r
3108                 000206  \r
3109 A               000000  INT\r
3110 AC1             000015  INT\r
3111 AC2             000016  INT\r
3112 AC3             000017  INT\r
3113 AL              000001  INT\r
3114 ASSCON          400000  INT\r
3115 ASSPRG          200000  INT\r
3116 B               000014  INT\r
3117 BUFPNT          000012  INT\r
3118 BUFWRD          000013  INT\r
3119 CLOSB           002000  INT\r
3120 CLSIN           000002  INT\r
3121 CLSOUT          000001  INT\r
3122 COR1            000012  \r
3123 COR2            000013  \r
3124 COR3            000014  \r
3125 CORE1           000002' INT\r
3126 CORE1P          000042' \r
3127 CORE2P          000043' \r
3128 CORG1           000017' \r
3129 CORGET          000013' \r
3130 CORGVE          000023' \r
3131 CORH01          000045' \r
3132 CORHOL          000044' \r
3133 CORLOC          000001' \r
3134 CORLOP          000072' \r
3135 CORLP1          000076' \r
3136 CORLST          000045' EXT\r
3137 CORNG           000040' \r
3138 COROK           000037' \r
3139 CORRET          000011' \r
3140 CORSTG          000056' \r
3141 CORTAB          000076' EXT\r
3142 CORTAL          000062' EXT\r
3143 CORUSZ          000000' \r
3144 D               000017  INT\r
3145 DAT             000005  INT\r
3146 DCL             000001  INT\r
3147 DCW             020000  INT\r
3148 DDI             000007  INT\r
3149 DDO             000006  INT\r
3150 DDTMEM          000037  INT\r
3151 DDTSYM          000036  INT\r
3152 DEN             000004  INT\r
3153 DEVADR          000007  INT\r
3154 DEVBUF          000006  INT\r
3155 DEVCHR          000001  INT\r
3156 DEVCTR          000011  INT\r
3157 DEVDAT          000006  INT\r
3158 DEVIAD          000007  INT\r
3159 DEVIOS          000002  INT\r
3160 DEVLOG          000005  INT\r
3161 \r\fCORE - CORE ALLOCATION ROUTINE                 PAGE 4-1\r
3162         SYMBOL TABLE\r
3163 \r
3164 DEVMOD          000004  INT\r
3165 DEVNAM          000000  INT\r
3166 DEVOAD          000010  INT\r
3167 DEVPTR          000010  INT\r
3168 DEVSER          000003  INT\r
3169 DGF             000012  INT\r
3170 DIN             000003  INT\r
3171 DLK             000005  INT\r
3172 DOU             000002  INT\r
3173 DR              000016  INT\r
3174 DRL             000000  INT\r
3175 DSI             000011  INT\r
3176 DSO             000010  INT\r
3177 DTW             040000  INT\r
3178 DVAVAL          000040  INT\r
3179 DVCDR           100000  INT\r
3180 DVDIR           000004  INT\r
3181 DVDIRI          400000  INT\r
3182 DVIN            000002  INT\r
3183 DVLPT           040000  INT\r
3184 DVMTA           000020  INT\r
3185 DVOUT           000001  INT\r
3186 DVTTY           000010  INT\r
3187 ENTRB           020000  INT\r
3188 I               000010  INT\r
3189 IB              000013  INT\r
3190 IBUFB           200000  INT\r
3191 INITB           400000  INT\r
3192 INPB            010000  INT\r
3193 IO              000020  INT\r
3194 IOACT           010000  INT\r
3195 IOBEG           000002  INT\r
3196 IOBKTL          040000  INT\r
3197 IOCON           000040  INT\r
3198 IODEND          020000  INT\r
3199 IODERR          200000  INT\r
3200 IODISC          400000  INT\r
3201 IODONE          400000  INT\r
3202 IODTER          100000  INT\r
3203 IOEND           000040  INT\r
3204 IOFST           000004  INT\r
3205 IOIMPM          400000  INT\r
3206 IONRCK          000100  INT\r
3207 IORDEL          000100  INT\r
3208 IORET           000020  INT\r
3209 IOS             000000  INT\r
3210 IOSTRT          000010  INT\r
3211 IOUSE           400000  INT\r
3212 IOW             000001  INT\r
3213 IOWC            000020  INT\r
3214 IOWS            400000  INT\r
3215 ITEM            000004  INT\r
3216 JBFADR          000000  INT\r
3217 \r\fCORE - CORE ALLOCATION ROUTINE                 PAGE 4-2\r
3218         SYMBOL TABLE\r
3219 \r
3220 JBFCTR          000002  INT\r
3221 JBFPTR          000001  INT\r
3222 JBTADR          000042' EXT\r
3223 JBUF            000005  INT\r
3224 JDAT            000011  INT\r
3225 JERR            002000  INT\r
3226 JIOW            100000  INT\r
3227 JNA             004000  INT\r
3228 JOBREL          000035' EXT\r
3229 LOOKB           040000  INT\r
3230 MTW             010000  INT\r
3231 OBUFB           100000  INT\r
3232 OUTPB           004000  INT\r
3233 PDP             000003  INT\r
3234 PICHN           000100  INT\r
3235 PROG            000007  INT\r
3236 RUN             200000  INT\r
3237 RUNABL          204000  INT\r
3238 TAC             000001  INT\r
3239 TAC1            000002  INT\r
3240 TEM             000010  INT\r
3241 TTYATC          020000  INT\r
3242 TTYUSE          010000  INT\r
3243 USRMOD          010000  INT\r
3244 UUO             000014  INT\r
3245 \fDDDDDDDDDDDD         TTTTTTTTTTTTTTT         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR            222222222   \r
3246 DDDDDDDDDDDD         TTTTTTTTTTTTTTT         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR            222222222   \r
3247 DDDDDDDDDDDD         TTTTTTTTTTTTTTT         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR            222222222   \r
3248 DDD         DDD            TTT            SSS                  EEE                  RRR         RRR      222         222\r
3249 DDD         DDD            TTT            SSS                  EEE                  RRR         RRR      222         222\r
3250 DDD         DDD            TTT            SSS                  EEE                  RRR         RRR      222         222\r
3251 DDD         DDD            TTT            SSS                  EEE                  RRR         RRR                  222\r
3252 DDD         DDD            TTT            SSS                  EEE                  RRR         RRR                  222\r
3253 DDD         DDD            TTT            SSS                  EEE                  RRR         RRR                  222\r
3254 DDD         DDD            TTT               SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR                  222   \r
3255 DDD         DDD            TTT               SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR                  222   \r
3256 DDD         DDD            TTT               SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR                  222   \r
3257 DDD         DDD            TTT                        SSS      EEE                  RRR   RRR                  222      \r
3258 DDD         DDD            TTT                        SSS      EEE                  RRR   RRR                  222      \r
3259 DDD         DDD            TTT                        SSS      EEE                  RRR   RRR                  222      \r
3260 DDD         DDD            TTT                        SSS      EEE                  RRR      RRR            222         \r
3261 DDD         DDD            TTT                        SSS      EEE                  RRR      RRR            222         \r
3262 DDD         DDD            TTT                        SSS      EEE                  RRR      RRR            222         \r
3263 DDDDDDDDDDDD               TTT            SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR      222222222222222\r
3264 DDDDDDDDDDDD               TTT            SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR      222222222222222\r
3265 DDDDDDDDDDDD               TTT            SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR      222222222222222\r
3266 \r
3267 \r
3268 \r
3269 \r
3270 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
3271 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
3272 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
3273 LLL                  SSS                        TTT                                                                     \r
3274 LLL                  SSS                        TTT                                                                     \r
3275 LLL                  SSS                        TTT                                                                     \r
3276 LLL                  SSS                        TTT                                                                     \r
3277 LLL                  SSS                        TTT                                                                     \r
3278 LLL                  SSS                        TTT                                                                     \r
3279 LLL                     SSSSSSSSS               TTT                                                                     \r
3280 LLL                     SSSSSSSSS               TTT                                                                     \r
3281 LLL                     SSSSSSSSS               TTT                                                                     \r
3282 LLL                              SSS            TTT                                                                     \r
3283 LLL                              SSS            TTT                                                                     \r
3284 LLL                              SSS            TTT                                                                     \r
3285 LLL                              SSS            TTT                                                                     \r
3286 LLL                              SSS            TTT                                                                     \r
3287 LLL                              SSS            TTT                                                                     \r
3288 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
3289 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
3290 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
3291 \r
3292 \r
3293 \r
3294 \r
3295 Request created: 24-April-1978  11:23:08\r
3296 File: DSKB1 :DTSER2.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:20
3297 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2557 \r
3298 File will be deleted after printing\r
3299 \f\rDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 1\r
3300         L. HANTMANN 8-2-65 MULTIPLE DIRECTORIES VERSION\r
3301 \r
3302                                 00010           XLIST\r
3303                                 01930          LIST\r
3304 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 7\r
3305         L. HANTMANN 8-2-65 MULTIPLE DIRECTORIES VERSION\r
3306 \r
3307 \r
3308                                 00010   TITLE DTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING\r
3309                                 00020   SUBTTL  L. HANTMANN 8-2-65 MULTIPLE DIRECTORIES VERSION\r
3310                         000001  00030           DTSIZ=1\r
3311 \r
3312                                 00050   ;SUBROUTINE FOR DIRECTORY SEARCH\r
3313                                 00060   ;PROG CONTAINS ACTUAL START OF PROGRAM\r
3314                                 00070   ;DEVDAT CONTAINS ACTUAL START OF DVDB\r
3315                                 00080   ;UUO CONTAINS RELATIVE ADDRESS OF DIRECTORY ENTRY IN USER AREA\r
3316                                 00090   ;FORMAT   PUSHJ PDP, UDIRSH\r
3317                                 00100   ;         JRST X                ;RETURN IF EMPTY ENTRY FOUND\r
3318                                 00110   ;         NORMAL RETURN WHEN ENTRY IS FOUND\r
3319                                 00120   INTERNAL ULOOK, UENTER\r
3320                                 00130   EXTERNAL UXIT,PUUOAC,IOIERR,DIRERR,ADRCK,CPOPJ1,THSDAT\r
3321                         000004  00140             UDIRLN=4\r
3322                         000100  00150             UDIRIN=100            ;DIRECTORY IN\r
3323                         000200  00160             UDIREN=200            ;DIRECTORY ENTERED INTO\r
3324                         000400  00170             UNWFRE=400            ;FREE BLCOK POINTER CHANGED\r
3325                         001000  00180             ULINKF=1000           ;LAST OUTPUT BLOCK LINKED TO STORAGE\r
3326                         000001  00190             UX1=TAC\r
3327                         000002  00200             UX2=TAC1\r
3328                         000005  00210             UX3=DAT\r
3329         000000' 602600  777760  00220   UDIRSH:   TRNE UUO,777760       ;IS BLOCK IN UUO ACS?\r
3330         000001' 260140  000000* 00230             PUSHJ PDP,ADRCK       ;NO. CHECK ADDRESS\r
3331         000002' 201054  000003  00240             MOVEI  TAC,3(UUO)\r
3332         000003' 603000  000002  00250             TLNE IOS,IOBEG\r
3333         000004' 260140  000343' 00260             PUSHJ PDP, UBEG\r
3334         000005' 550040  000007  00270             HRRZ UX1, PROG                ;COPY ADR OF START OF PROGRAM\r
3335         000006' 272040  000014  00280             ADDM UX1, UUO                 ;ACTUAL START OF DIR. IN USER\r
3336         000007' 201066  000000* 00290             MOVEI UX1,@UDIR(DEVDAT)       ;ACTUAL POINTER TO DIRECTORY\r
3337         000010' 550101  000000  00300             HRRZ UX2, 0(UX1)              ;RELATIVE ADDR OF 1ST ENTRY I\r
3338                                 00310                                           ;DIRECTORY\r
3339         000011' 505042  777603  00320             HRLI UX1, -^D129+UDIRLN(UX2)  ;ENTRY COUNTER\r
3340         000012' 272100  000001  00330             ADDM UX2, UX1                 ;START OF 1ST ENTRY IN DIRECT\r
3341         000013' 332000  000002  00340             SKIPE UX2\r
3342         000014' 303100  000174  00350             CAILE UX2,174         ;IS THE REL ADR OF 1ST ENTRY INSIDE BUF\r
3343         000015' 254000  000000* 00360             JRST DIRERR           ;NO\r
3344         000016' 336101  000000  00370   UDIR2:    SKIPN UX2, 0 (UX1)            ;FIRST WORD OF ENTRY\r
3345         000017' 263140  000000  00380             POPJ PDP,                     ;SPACES FOUND\r
3346         000020' 316114  000000  00390             CAMN UX2, 0(UUO)              ;CHECK IF = TO USER AREA\r
3347         000021' 254000  000026' 00400             JRST UDIR4                    ;CHECK 2ND WORD\r
3348         000022' 270040  000034' 00410   UDIR3:    ADD UX1, UDIRK1       \r
3349         000023' 321040  000016' 00420             JUMPL UX1, UDIR2\r
3350         000024' 262140  000001  00430             POP PDP, UX1                  ;TAKE PREVIOUS EXIT FROM TABL\r
3351         000025' 254000  000000* 00440             JRST UXIT                     ;TABLE FULL\r
3352         000026' 554114  000001  00450   UDIR4:    HLRZ UX2, 1 (UUO)             ;2ND WORD IN USER ARE\r
3353         000027' 322100  000000* 00460             JUMPE UX2, CPOPJ1\r
3354         000030' 554241  000001  00470             HLRZ UX3, 1 (UX1)             ;2ND WORD OF DIRECTORY AREA\r
3355         000031' 302242  000000  00480             CAIE UX3, 0 (UX2)\r
3356         000032' 254000  000022' 00490             JRST UDIR3                    ;CHECK MORE ENTRIES\r
3357         000033' 254000  000027* 00500             JRST CPOPJ1           ;MATCH, SKIP RETURN\r
3358 \r
3359         000034' 000004  000004  00520   UDIRK1:   XWD UDIRLN, UDIRLN\r
3360 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 2\r
3361         L. HANTMANN 8-2-65 MULTIPLE DIRECTORIES VERSION\r
3362 \r
3363 \r
3364                                 00550   ;SUBROUTINE FOR DIRECTORY LOOKUP\r
3365 \r
3366                                 00570   ;FORMAT   PUSHJ PDP, UDIRLU             ;VIA UUO\r
3367                                 00580   ;         JRST X                        ;ENTRY NOT IN TABLE\r
3368 \r
3369         000035' 260140  000000' 00600   ULOOK:    PUSHJ PDP, UDIRSH\r
3370         000036' 254000  000025* 00610             JRST UXIT\r
3371         000037' 540241  000001  00620             HRR UX3, 1 (UX1)\r
3372         000040' 506246  000007  00630             HRLM UX3, DEVIAD (DEVDAT)\r
3373         000041' 505101  000000  00640   ULOOK1:   HRLI UX2, 0 (UX1)             ;FROM DIRECTORY\r
3374         000042' 541114  000000  00650             HRRI UX2, 0 (UUO)             ;TO USER\r
3375         000043' 251114  000003  00660             BLT UX2, UDIRLN-1(UUO)\r
3376         000044' 135100  001272' 00670             LDB UX2,[POINT 12,2(UX1),35]  ;GET DATE USER(ENTER)EXEC(LOO\r
3377         000045' 326100  000050' 00680             JUMPN UX2,.+3         ;IS IT 0?\r
3378         000046' 200100  000000* 00690             MOVE UX2,THSDAT       ;YES, USE CURRENT DATE\r
3379         000047' 137100  001273' 00700             DPB UX2,[POINT 12,2(UUO),35]  ;SET EXEC\r
3380         000050' 350003  000000  00710             AOS (PDP)\r
3381         000051' 254000  000311' 00720             JRST UTWDR\r
3382 \r
3383                                 00740   ;SUBROUTINE TO ENTER NEW OR CHANGE OLD DIRECTORY ENTRY\r
3384                                 00750   ;FORMAT   PUSHJ PDP, UDIRCH\r
3385                                 00760   ;         JRST X                        ;NO ROOM IN TABLE\r
3386 \r
3387         000052' 260140  000000' 00780   UENTER:   PUSHJ PDP, UDIRSH\r
3388         000053' 254000  000054' 00790             JRST .+1\r
3389         000054' 350246  000000* 00800             AOS UX3, UFREE (DEVDAT)\r
3390         000055' 542254  000001  00810             HRRM UX3,1(UUO)\r
3391         000056' 506246  000010  00820             HRLM UX3, DEVOAD (DEVDAT)\r
3392         000057' 250040  000014  00830             EXCH UX1, UUO\r
3393         000060' 661000  001600  00840             TLO IOS, UDIREN+UNWFRE+ULINKF\r
3394         000061' 202006  000002  00850             MOVEM IOS, DEVIOS(DEVDAT)\r
3395         000062' 254000  000041' 00860             JRST ULOOK1\r
3396 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 3\r
3397         L. HANTMANN 8-2-65 MULTIPLE DIRECTORIES VERSION\r
3398 \r
3399 \r
3400                                 00890   ;CREATE A CLEAN TAPE AND DIRECTORY\r
3401 \r
3402                                 00910   INTERNAL UTPCLR\r
3403                                 00920   EXTERNAL USRJDA\r
3404 \r
3405         000063' 135040  000000* 00940   UTPCLR:   LDB TAC,PUUOAC\r
3406         000064' 200301  000000* 00950             MOVE DEVDAT,USRJDA(TAC)\r
3407         000065' 322300  000000* 00960             JUMPE DEVDAT,IOIERR\r
3408         000066' 554046  000000  00970             HLRZ TAC,DEVNAM(DEVDAT)\r
3409         000067' 302040  446441  00980             CAIE TAC,446441\r
3410         000070' 254000  000036* 00990             JRST UXIT             ;NOT DTA\r
3411         000071' 200006  000002  01000             MOVE IOS,DEVIOS(DEVDAT)\r
3412         000072' 621000  000002  01010             TLZ IOS,IOBEG\r
3413         000073' 661000  000700  01020             TLO IOS,UDIRIN+UDIREN+UNWFRE\r
3414                                 01030   IFE DTSIZ,<        MOVEM DEVDAT,DIREC>\r
3415                                 01040   ;THIS FOR SINGLE DIRECTORY ONLY\r
3416         000074' 200046  000007* 01050             MOVE TAC,UDIR(DEVDAT)\r
3417         000075' 200100  001274' 01060             MOVE TAC1,[XWD 1,5]\r
3418         000076' 202101  000000  01070             MOVEM TAC1,(TAC)\r
3419         000077' 507000  000001  01080             HRLS TAC\r
3420         000100' 253040  000101' 01090             AOBJN TAC,.+1\r
3421         000101' 402001  000000  01100             SETZM (TAC)\r
3422         000102' 200100  000001  01110             MOVE TAC1,TAC\r
3423         000103' 350000  000001  01120             AOS TAC\r
3424         000104' 251042  000176  01130             BLT TAC,176(TAC1)\r
3425         000105' 201040  000001  01140             MOVEI TAC, 1\r
3426         000106' 202046  000054* 01150             MOVEM TAC, UFREE (DEVDAT)\r
3427         000107' 202006  000002  01160             MOVEM IOS, DEVIOS(DEVDAT)\r
3428         000110' 260140  000326' 01170             PUSHJ PDP,UTPREL\r
3429         000111' 254000  000070* 01180             JRST UXIT\r
3430 \r
3431 \r
3432                                 01210   ;END OF DTDR\r
3433 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 4\r
3434         L. HANTMANN 8-2-65 MULTIPLE DIRECTORIES VERSION\r
3435 \r
3436 \r
3437                                 01240   SUBTTL  L. HANTMAN PART 1 7-13-65\r
3438                         010000  01250             UREV=10000            ;DT REVERSE BIT\r
3439                         000001  01260             DTSIZ=1               ;1 FOR ONE BUFFER PER TAPE UNIT\r
3440 \r
3441                         000001  01280             UBLK=1                ;NUMBER OF BLOCKS/BLOCK\r
3442                         000001  01290             UCHN=1                ;CHANNEL OF DATA CONTROL = 1, LOC 42\r
3443                         000042  01300             UCHA=42               ;DATA CONTROL INTERRUPT POSITION\r
3444                                 01310             EXTERNAL UXIT,ADVBFF,ADVBFE,IOSET,OUT,WAIT1,WSYNC\r
3445                                 01320             EXTERNAL PIOMOD,PUNIT,UFREE,UDIR,ADRERR,JOBPFI\r
3446                                 01330             ENTRY UTDSP\r
3447 \r
3448                         004010  01350   DACI=4010                       ;DC INPUT DT\r
3449                         003410  01360   DACO=3410                       ;DC OUTPUT DT\r
3450                         220000  01370   SL=220000                       ;DT TURN ON. SELECT\r
3451                         003000  01380           DTR=3000                        ;DT TURN AROUND DELAY\r
3452                         002000  01390   DT=2000                         ;DT START/STOP DELAY\r
3453                         000300  01400   RD=300                          ;DT RD\r
3454                         000700  01410   WD=700                          ;DT WR\r
3455                         000200  01420   RB=200                          ;DT READ BLOCK NOS.\r
3456                         000002  01430   VEOT=2                          ;EOT FLAG BIT\r
3457                         010000  01440   GR=10000                        ;DT REVERSE BIT\r
3458                         040000  01450   JDE=40000                       ;JOB DONE ENABLE\r
3459                         100000  01460   EE=100000                       ;ENABLE END FLAG\r
3460                         002000  01470   URDIR=2000                      ;READING DIRECTORY\r
3461 \r
3462         000112' 254000  000326' 01490   UTDSP:    JRST UTPREL           ;RELEASE\r
3463         000113' 254000  000312' 01500             JRST UTPCLS           ;CLOSE\r
3464         000114' 254000  000125' 01510             JRST UOUT             ;OUTPUT\r
3465         000115' 254000  000204' 01520             JRST UIN              ;INPUT\r
3466         000116' 254000  000052' 01530             JRST UENTER           ;ENTER IN DIRECTORY\r
3467         000117' 254000  000035' 01540             JRST ULOOK            ;LOOKUP IN DIRECTORY\r
3468         000120' 254000  000633' 01550             JRST UDMPO            ;DUMPOUT\r
3469         000121' 254000  001022' 01560             JRST UDMPI            ;DUMPIN\r
3470         000122' 254000  000272' 01570             JRST SETO             ;SET OUTPUT BLOCK NO.\r
3471         000123' 254000  000267' 01580             JRST SETI             ;SET INPUT BLOCK NO.\r
3472         000124' 254000  000277' 01590             JRST GETF             ;GET FREE BLOCK\r
3473 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 5\r
3474         L. HANTMAN PART 1 7-13-65\r
3475 \r
3476 \r
3477         000125' 260140  001142' 01620   UOUT:     PUSHJ PDP, UINTER             ;CHECK INTERLOCK\r
3478         000126' 661000  000020  01630             TLO IOS, IO                   ;WRITING\r
3479         000127' 550046  000010  01640             HRRZ TAC,DEVOAD(DEVDAT)\r
3480         000130' 270040  000007  01650             ADD TAC, PROG                 ;ACTUAL BUFFER ADDRESS\r
3481         000131' 554106  000010  01660             HLRZ TAC1, DEVOAD(DEVDAT)     ;BLOCK TO WRITE\r
3482         000132' 306100  000001  01670             CAIN TAC1,1\r
3483         000133' 254000  000171' 01680             JRST UOUT4                    ;COPY DIRECTORY\r
3484         000134' 554101  000001  01690             HLRZ TAC1, 1(TAC)             ;BLOCK TIE\r
3485         000135' 621000  001000  01700             TLZ IOS, ULINKF               ;NOT LINKED TO FREE STORAGE\r
3486         000136' 326100  000144' 01710             JUMPN TAC1, UOUT1             ;USE BALOCK NUMBER INDICATED\r
3487         000137' 623000  000002  01720             TLZE IOS, IOBEG               ;GET FREE STORAGE BLOCK\r
3488         000140' 260140  000370' 01730             PUSHJ PDP, UBEG3\r
3489         000141' 661000  001400  01740             TLO IOS,UNWFRE+ULINKF         ;LINKED TO FREE STORAGE\r
3490         000142' 202006  000002  01750             MOVEM IOS, DEVIOS (DEVDAT)\r
3491         000143' 350106  000106* 01760             AOS TAC1,UFREE(DEVDAT)        ;NEXT FREE BLOCK\r
3492         000144' 306100  000001  01770   UOUT1:    CAIN TAC1,1                   ;IF 1, THIS IS LAST BLOCK\r
3493         000145' 400100  000000  01780             SETZ TAC1,                    ;LAST BLOCK TIE = 0\r
3494         000146' 506101  000001  01790             HRLM TAC1,1(TAC)              ;BLOCK\r
3495         000147' 552040  001121' 01800             HRRZM TAC,UBUF                ;ACTUAL LOCATION OF DATA\r
3496         000150' 544046  000010  01810             HLR TAC,DEVOAD(DEVDAT)\r
3497         000151' 506106  000010  01820             HRLM TAC1, DEVOAD(DEVDAT)     ;NEXT BLOCK\r
3498         000152' 254000  000375' 01830             JRST USETW\r
3499                                 01840   ;RETURN FROM WRITING 1 BLOCK\r
3500 \r
3501         000153' 200046  000010  01860   UOUT2:    MOVE TAC,DEVOAD(DEVDAT)\r
3502         000154' 505040  000007  01870             HRLI TAC,PROG                 ;PROG, BUFFER ADDRESS\r
3503         000155' 515100  400000  01880             HRLZI TAC1,IOUSE\r
3504         000156' 412120  000001  01890             ANDCAM TAC1,@TAC              ;SET USE BIT IN BUFFER\r
3505         000157' 554106  000010  01900             HLRZ TAC1,DEVOAD(DEVDAT)      ;BLOCK TIE\r
3506         000160' 322100  000167' 01910             JUMPE TAC1,UOUT3              ;WAS BLOCK WRITTEN THE LAST 0\r
3507         000161' 540060  000001  01920             HRR TAC,@TAC                  ;PROG, NEXT BUFFER ADDRESS\r
3508         000162' 542046  000010  01930             HRRM TAC,DEVOAD(DEVDAT)       ;NEXT BUFFER\r
3509         000163' 602000  000040  01940             TRNE IOS, IOCON               ;CONTINUOUS?\r
3510         000164' 254000  000167' 01950             JRST UOUT3                    ;STOP TAPE AND DISMISS\r
3511         000165' 335020  000001  01960             SKIPGE @TAC                   ;IS NEXT BUFFER EMPTY?\r
3512         000166' 254000  000126' 01970             JRST UOUT+1                   ;PROCESS NEXT BLOCK\r
3513         000167' 262140  000001  01980   UOUT3:    POP PDP, TAC                  ;REDUCE TABLE\r
3514         000170' 254000  001220' 01990             JRST DTC1                     ;STOP TAPE AND DISMISS\r
3515 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 6\r
3516         L. HANTMAN PART 1 7-13-65\r
3517 \r
3518 \r
3519                                 02020   ;COPY DIRECTORY WHEN WRITING BLOCK 1\r
3520         000171' 505101  000001  02030   UOUT4:    HRLI TAC1,1(TAC)              ;BUFFER ADDRESS, FROM\r
3521         000172' 540106  000074* 02040             HRR TAC1, UDIR(DEVDAT)        ;DIRECTORY ADDRESS, TO\r
3522         000173' 550046  000172* 02050             HRRZ TAC, UDIR(DEVDAT)        ;DIRECTORY ADDRESS\r
3523         000174' 251101  000177  02060             BLT TAC1, 177(TAC)            ;MORE BUFFER AREA TO DIRECTORY\r
3524         000175' 661000  000300  02070             TLO IOS, UDIRIN+UDIREN        ;SET DIRECTORY BITS\r
3525         000176' 200126  000173* 02080             MOVE TAC1, @UDIR(DEVDAT)      ;NEXT FREE BLOCK IN DIRECTORY\r
3526         000177' 556106  000143* 02090             HLRZM TAC1,UFREE(DEVDAT)      ;PLACE IN DATA BLOCK\r
3527         000200' 515100  400000  02100             HRLZI TAC1, IOUSE\r
3528         000201' 413101  000000  02110             ANDCAB TAC1, 0(TAC)           ;CLEAR USE BIT\r
3529         000202' 542106  000010  02120             HRRM TAC1, DEVOAD(DEVDAT)     ;ADVANCE BUFFER POINTER\r
3530         000203' 254000  000242' 02130             JRST UEND2\r
3531                                 02140   ,INPUT- NON DUMP\r
3532 \r
3533         000204' 260140  001142' 02160   UIN:      PUSHJ PDP, UINTER             ;CHECK INTERLOCK\r
3534         000205' 621000  000020  02170             TLZ IOS, IO                   ;READING\r
3535         000206' 550046  000007  02180             HRRZ TAC,DEVIAD(DEVDAT)       ;UBUF:=TAC:=DEVIAD+PROG\r
3536         000207' 270040  000007  02190             ADD TAC,PROG\r
3537         000210' 554106  000007  02200             HLRZ TAC1, DEVIAD(DEVDAT)     ;BLOCK TO READ\r
3538         000211' 306100  000001  02210             CAIN TAC1, 1                  ;TRYING TO READ DIRECTORY?\r
3539         000212' 254000  000251' 02220             JRST UIN2                     ;COPY DIRECTORY\r
3540         000213' 552040  001121' 02230             HRRZM TAC,UBUF\r
3541         000214' 554046  000007  02240             HLRZ TAC,DEVIAD(DEVDAT)       ;TAC:=C(DEVIAD LH)\r
3542         000215' 322040  000236' 02250             JUMPE TAC,UEND                ;NEXT BLOCK=00, THEN END OF FI\r
3543         000216' 254000  000377' 02260             JRST USETR\r
3544                                 02270   ;RETURN FROM READING ONE BLOCK\r
3545 \r
3546         000217' 550046  000007  02290   UIN1:     HRRZ TAC,DEVIAD(DEVDAT)\r
3547         000220' 270040  000007  02300             ADD TAC,PROG\r
3548         000221' 554101  000001  02310             HLRZ TAC1,1(TAC)\r
3549         000222' 546106  000007  02320             HLRM TAC1,DEVIAD(DEVDAT)      ;NEXT BLOCK NUMBER TO READ\r
3550         000223' 200046  000007  02330             MOVE TAC,DEVIAD(DEVDAT)\r
3551         000224' 505040  000007  02340             HRLI TAC,PROG\r
3552         000225' 515100  400000  02350             HRLZI TAC1,IOUSE\r
3553         000226' 436120  000001  02360             IORM TAC1,@TAC                ;SET USE BIT\r
3554         000227' 540060  000001  02370             HRR TAC,@TAC\r
3555         000230' 542046  000007  02380             HRRM TAC,DEVIAD(DEVDAT)       ;NEXT BUFFER ADDRESS\r
3556         000231' 602000  000040  02390             TRNE IOS, IOCON               ;CONTINUOUS?\r
3557         000232' 254000  000167' 02400             JRST UOUT3                    ;EXIT\r
3558         000233' 331020  000001  02410             SKIPL @TAC                    ;IS NEXT BUFFER FULL\r
3559         000234' 254000  000205' 02420             JRST UIN+1                    ;PROCESS NEXT BLOCK\r
3560         000235' 254000  000167' 02430             JRST UOUT3                    ;EXIT\r
3561 \r
3562         000236' 661000  000040  02450   UEND:     TLO IOS, IOEND\r
3563         000237' 202006  000002  02460             MOVEM IOS, DEVIOS(DEVDAT)\r
3564         000240' 721300  020000  02470             CONSZ UTC, 20000              ;IS TAPE STOPPED?\r
3565         000241' 254000  000167' 02480             JRST UOUT3                    ;STOP TAPE AND EXIT\r
3566         000242' 371000  000000* 02490   UEND2:    SOSL DCREQ            ;DECREMENT REQUEST COUNT, IS ANY ONE WA\r
3567         000243' 476000  000000* 02500             SETOM DCAVAL                  ;YES,SET DATA CONTROL AVAILABLE\r
3568         000244' 371000  000000* 02510             SOSL DTREQ            ;DECREMENT REQUEST COUNT, IS ANY ONE WA\r
3569         000245' 476000  000000* 02520             SETOM DTAVAL                  ;YES,SET DECTAPE CONTROL AVAI\r
3570         000246' 620000  010000  02530             TRZ IOS, IOACT                ;CLEAR ACTIVE BIT\r
3571 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 6-1\r
3572         L. HANTMAN PART 1 7-13-65\r
3573 \r
3574         000247' 202006  000002  02540             MOVEM IOS, DEVIOS(DEVDAT)     ;RESTORE STATUS BITS\r
3575         000250' 263140  000000  02550             POPJ PDP, 0                   ;EXIT\r
3576 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 7\r
3577         L. HANTMAN PART 1 7-13-65\r
3578 \r
3579 \r
3580                                 02580   ;COPY DIRECTORY WHEN READING BLOCK 1\r
3581         000251' 623000  000002  02590   UIN2:     TLZE IOS, IOBEG               ;IS DIRECTORY IN\r
3582         000252' 254000  000265' 02600             JRST UIN4                     ;READ IN DIRECTORY\r
3583         000253' 260140  000242' 02610             PUSHJ PDP, UEND2              ;CLR INDICATORS\r
3584         000254' 200106  000177* 02620   UIN3:     MOVE TAC1,UFREE(DEVDAT)       ;NEXT FREE BLOCK IN DATA BLOC\r
3585         000255' 506126  000176* 02630             HRLM TAC1, @UDIR(DEVDAT)      ;PLACE IN DIRECTORY\r
3586         000256' 541101  000001  02640             HRRI TAC1, 1(TAC)             ;BUFFER ADDRESS, TO\r
3587         000257' 504106  000255* 02650             HRL TAC1, UDIR(DEVDAT)        ;DIRECTORY ADDRESS, TO\r
3588         000260' 251101  000200  02660             BLT TAC1, 200 (TAC)           ;MOVE DIRECTORY TO BUFFER ARE\r
3589         000261' 515100  400000  02670             HRLZI TAC1, IOUSE\r
3590         000262' 437100  400000  02680             IORB TAC1, IOUSE              ;SET USE BIT\r
3591         000263' 542106  000007  02690             HRRM TAC1,DEVIAD(DEVDAT)      ;ADVANCE BUFFER\r
3592         000264' 263140  000000  02700             POPJ PDP, 0                   ;EXIT\r
3593         000265' 260140  000370' 02710   UIN4:     PUSHJ PDP, UBEG3\r
3594         000266' 254000  000254' 02720             JRST UIN3\r
3595         000267' 260140  000000* 02730   SETI:     PUSHJ PDP,WAIT1\r
3596         000270' 506606  000007  02740             HRLM UUO,DEVIAD(DEVDAT)       ;SET INPUT BLOCK NO.\r
3597         000271' 254000  000111* 02750             JRST UXIT\r
3598 \r
3599         000272' 260140  000267* 02770   SETO:     PUSHJ PDP,WAIT1       \r
3600         000273' 260140  001142' 02780             PUSHJ PDP, UINTER             ;WAIT FOR USE TO STOP\r
3601         000274' 260140  000242' 02790             PUSHJ PDP, UEND2              ;CLEAR INDICATORS\r
3602         000275' 506606  000010  02800             HRLM UUO,DEVOAD(DEVDAT)       ;SET OUTPUT BLOCK NO.\r
3603         000276' 254000  000271* 02810             JRST UXIT\r
3604 \r
3605         000277' 260140  000272* 02830   GETF:     PUSHJ PDP,WAIT1\r
3606         000300' 603000  000002  02840             TLNE IOS,IOBEG\r
3607         000301' 260140  000343' 02850             PUSHJ PDP,UBEG\r
3608         000302' 661000  000400  02860             TLO IOS,UNWFRE\r
3609         000303' 202006  000002  02870             MOVEM IOS,DEVIOS(DEVDAT)\r
3610         000304' 350046  000254* 02880             AOS TAC, UFREE(DEVDAT)        ;GET FREE BLOCK\r
3611         000305' 506046  000010  02890             HRLM TAC, DEVOAD(DEVDAT)\r
3612         000306' 505600  000007  02900             HRLI UUO,PROG\r
3613         000307' 542060  000014  02910             HRRM TAC,@UUO\r
3614         000310' 254000  000276* 02920             JRST UXIT\r
3615 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 8\r
3616         L. HANTMAN PART 1 7-13-65\r
3617 \r
3618 \r
3619                                 02950   INTERNAL UTPCLS,UTWDR,UBEG,UTPREL\r
3620 \r
3621         000311'                 02970   UTWDR:    IFE DTSIZ,<        PUSHJ PDP,UTPREL>\r
3622 \r
3623         000311' 254000  000310* 02990             JRST UXIT\r
3624 \r
3625         000312' 607000  001000  03010   UTPCLS:   TLNN IOS, ULINKF\r
3626         000313' 254000  000326' 03020             JRST UTPREL\r
3627         000314' 135040  000000* 03030             LDB TAC,PIOMOD        ;MODE\r
3628         000315' 301040  000016  03040             CAIL TAC,16\r
3629         000316' 254000  000326' 03050             JRST UTPREL\r
3630         000317' 544046  000006  03060             HLR TAC,DEVBUF(DEVDAT)\r
3631         000320' 545040  000007  03070             HLRI TAC, PROG\r
3632         000321' 540060  000001  03080             HRR TAC, @TAC                 ;TAC:=BUFFER ADDRESS\r
3633         000322' 271040  000001  03090             ADDI TAC,1\r
3634         000323' 201100  000001  03100             MOVEI TAC1,1\r
3635         000324' 506120  000001  03110             HRLM TAC1,@TAC\r
3636         000325' 254000  000000* 03120             JRST OUT\r
3637 \r
3638                                 03140   UTPREL:   IFE DTSIZ,< TLNE  IOS,IOBEG   ;RELEASE\r
3639                                 03150    POPJ PDP,\r
3640                                 03160    TLZE IOS,UDIREN\r
3641                                 03170    JRST UTPRL1\r
3642                                 03180    TLNN IOS,UNWFRE\r
3643                                 03190    POPJ PDP,\r
3644                                 03200    TLNN IOS,UDIRIN\r
3645                                 03210    PUSHJ PDP,UBEG>\r
3646 \r
3647         000326' 627000  000600  03230             IFN DTSIZ,< TLZN IOS,UDIREN+UNWFRE\r
3648         000327' 263140  000000  03240    POPJ PDP,>\r
3649         000330' 260140  001142' 03250   UTPRL1:   PUSHJ PDP,UINTER      ;IS SYSTEM AVAILABLE?\r
3650         000331' 540046  000304* 03260             HRR TAC,UFREE(DEVDAT)\r
3651         000332' 506066  000257* 03270             HRLM TAC,@UDIR(DEVDAT)\r
3652         000333' 200046  000332* 03280             MOVE TAC,UDIR(DEVDAT)\r
3653         000334' 275040  000001  03290             SUBI TAC,1\r
3654         000335' 202040  001121' 03300             MOVEM TAC,UBUF\r
3655         000336' 661000  002000  03310             TLO IOS, URDIR\r
3656         000337' 202006  000002  03320             MOVEM IOS,DEVIOS(DEVDAT)\r
3657         000340' 201040  000001  03330             MOVEI TAC,1\r
3658         000341' 260140  000375' 03340             PUSHJ PDP,USETW\r
3659         000342' 254000  000277* 03350             JRST WAIT1\r
3660 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 9\r
3661         L. HANTMAN PART 1 7-13-65\r
3662 \r
3663 \r
3664                                 03380   ,READ THE DIRECTORY FROM THIS DEC-TAPE\r
3665 \r
3666         000343' 335006  000004  03400   UBEG:     SKIPGE DEVMOD(DEVDAT)         ;IS DIRECTORY IN CORE?\r
3667         000344' 661000  000100  03410             TLO IOS,UDIRIN\r
3668         000345' 603000  000100  03420             TLNE IOS,UDIRIN\r
3669         000346' 263140  000000  03430             POPJ PDP, 0\r
3670         000347' 260140  001142' 03440             PUSHJ PDP, UINTER             ;CHECK INTERLOCK\r
3671         000350' 261140  000001  03450   UBEG2:    PUSH PDP, TAC                 ;SAVE TAC\r
3672         000351' 550046  000333* 03460             HRRZ TAC,UDIR(DEVDAT)\r
3673         000352' 275040  000001  03470             SUBI TAC, 1\r
3674         000353' 202040  001121' 03480             MOVEM TAC,UBUF\r
3675         000354' 661000  002100  03490             TLO IOS,UDIRIN+URDIR\r
3676         000355' 621000  000002  03500             TLZ IOS, IOBEG\r
3677         000356' 202006  000002  03510             MOVEM IOS,DEVIOS(DEVDAT)\r
3678         000357' 205040  400000  03520             MOVSI TAC,DVDIRIN     ;SET DIRECTORY IN CORE BIT\r
3679         000360' 436046  000004  03530             IORM TAC,DEVMOD(DEVDAT)\r
3680         000361' 201040  000001  03540             MOVEI TAC,1\r
3681         000362' 260140  000377' 03550             PUSHJ PDP,USETR\r
3682         000363' 260140  000000* 03560             PUSHJ PDP,WSYNC\r
3683         000364' 544066  000351* 03570             HLR TAC,@UDIR(DEVDAT)\r
3684         000365' 552046  000331* 03580             HRRZM TAC,UFREE(DEVDAT)\r
3685         000366' 262140  000001  03590   UBEGX:    POP PDP,TAC\r
3686         000367' 263140  000000  03600             POPJ PDP, 0\r
3687 \r
3688         000370' 603000  000100  03620   UBEG3:    TLNE IOS, UDIRIN\r
3689         000371' 263140  000000  03630             POPJ PDP, 0\r
3690         000372' 254000  000350' 03640             JRST UBEG2\r
3691 \r
3692         000373' 260140  001220' 03660   UTBERR:   PUSHJ PDP, DTC1       ;ILL. BLOCK NO.\r
3693         000374' 254000  000000* 03670             JRST UTBKER\r
3694 \r
3695         000375' 201100  000535' 03690   USETW:    MOVEI TAC1, RIT\r
3696         000376' 334000  000000  03700             SKIPA\r
3697         000377' 201100  000527' 03710   USETR:    MOVEI TAC1,READ\r
3698         000400' 542100  000500' 03720             HRRM TAC1,DDIG\r
3699         000401' 552040  001117' 03730             HRRZM TAC,UBKN\r
3700         000402' 323040  000373' 03740             JUMPLE TAC,UTBERR     ;ILL. BLOCK NO.?\r
3701         000403' 301040  001102  03750             CAIL TAC,1102\r
3702         000404' 254000  000373' 03760             JRST UTBERR           ;ILL. BLOCK NO.\r
3703         000405' 135040  000000* 03770             LDB TAC,PUNIT         ;UNIT\r
3704         000406' 241040  000003  03780             ROT TAC, 3\r
3705         000407' 271040  000000* 03790             ADDI TAC, DTCCHN              ;DECTAPE CHANNEL\r
3706         000410' 202040  001116' 03800             MOVEM TAC, UNIT               ;UNIT AND CHANNEL\r
3707         000411' 201040  000137  03810             MOVEI TAC, 137\r
3708         000412' 542040  001166' 03820             HRRM TAC, DTCINT\r
3709         000413' 275040  000021  03830             SUBI TAC, 21\r
3710         000414' 542040  001172' 03840             HRRM TAC, CONSZ1              ;FALL INTO FILL\r
3711 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 10\r
3712         L. HANTMAN PART 1 7-13-65\r
3713 \r
3714 \r
3715         000415' 720200  000000  03870   FILL:     CONO DC,0                     ;DESELECT DC\r
3716         000416' 700600  002100  03880             CONO PI,2100                  ;TURN ON CHANNEL 1\r
3717         000417' 202300  001151' 03890             MOVEM DEVDAT, USVDB           ;SAVE DATA BLOCK ADDR\r
3718         000420' 202300  001122' 03900             MOVEM DEVDAT,UDVDAT           ;UDVDAT:=DTJIOS POINTER\r
3719         000421' 201040  000002  03910             MOVEI TAC, DEVIOS\r
3720         000422' 272040  001122' 03920             ADDM TAC,UDVDAT\r
3721         000423' 200040  001275' 03930             MOVE TAC, [JSR DDIF]          ;DATA CONTROL INTERRUPT CHANN\r
3722         000424' 202040  000042  03940             MOVEM TAC,UCHA\r
3723         000425' 202340  001120' 03950             MOVEM PROG,UPROG              ;UPROG:=PROG\r
3724         000426' 200040  001121' 03960             MOVE TAC,UBUF                 ;BLI:=XWD-200,C(UBUF)\r
3725         000427' 505040  777600  03970             HRLI TAC,-200\r
3726         000430' 202040  001114' 03980             MOVEM TAC,BLI\r
3727         000431' 271040  000177  03990             ADDI TAC,200-1\r
3728         000432' 202040  001113' 04000             MOVEM TAC,BLO\r
3729         000433' 721300  020000  04010             CONSZ UTC, 20000              ;IS TAPE MOVING?\r
3730         000434' 254000  000453' 04020             JRST FILLC                    ;YES\r
3731         000435' 200040  001116' 04030             MOVE TAC, UNIT                ;RDDA:=RDRM:=WTDA:=WTRM:=C(UN\r
3732         000436' 137040  000457' 04040             DPB TAC,F1\r
3733         000437' 137040  000460' 04050             DPB TAC,F2\r
3734         000440' 137040  000461' 04060             DPB TAC,F3\r
3735         000441' 137040  000462' 04070             DPB TAC,F4\r
3736         000442' 200040  001116' 04080             MOVE TAC,UNIT\r
3737         000443' 405040  000070  04090             ANDI TAC, 70                  ;TAC HAS UNIT ONLY\r
3738         000444' 271040  323201  04100                   ADDI TAC, SL+DTR+RB+EE+UCHN\r
3739         000445' 607000  010000  04110             TLNN IOS, UREV                ;WAS REV, GO FWD\r
3740         000446' 271040  010000  04120             ADDI TAC,GR                   ;WAS FWD, GO REV\r
3741         000447' 721220  000001  04130             CONO UTC, @TAC\r
3742         000450' 720200  004011  04140   FILL2:    CONO DC, DACI+UCHN            ;SET UP DC FOR INPUT\r
3743         000451' 202006  000002  04150             MOVEM IOS, DEVIOS (DEVDAT)\r
3744         000452' 263140  000000  04160             POPJ PDP,\r
3745 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 11\r
3746         L. HANTMAN PART 1 7-13-65\r
3747 \r
3748 \r
3749                                 04190   ,TAPE IS ACTIVE - GIVE A COMMAND\r
3750         000453' 721240  000001  04200   FILLC:    CONI UTC,TAC                  ;UTC COMMAND: UNIT, OLD DIRE\r
3751         000454' 405040  010070  04210             ANDI TAC,GR+70                ;DIRECTION PLUS UNIT\r
3752         000455' 721201  320201  04220             CONO UTC,SL+RB+EE+UCHN(TAC)   ;NO TIME DELAY\r
3753         000456' 254000  000450' 04230             JRST FILL2\r
3754 \r
3755         000457' 000600  000517' 04250   F1:       POINT 6,RDDA,35\r
3756         000460' 000600  000531' 04260   F2:       POINT 6,RDRM,35\r
3757         000461' 000600  000523' 04270   F3:       POINT 6,WTDA,35\r
3758         000462' 000600  000537' 04280   F4:       POINT 6,WTRM,35\r
3759                                 04290   ,CHANGE DIRECTIONS - GIVE NEW COMMANDS\r
3760         000463' 721240  000001  04300   RRV:      CONI UTC,TAC\r
3761         000464' 431040  010000  04310             XORI TAC,GR                   ;REVERSE BIT\r
3762         000465' 405040  550777  04320             ANDI TAC,550777\r
3763         000466' 435040  002000  04330             IORI TAC,DT\r
3764         000467' 721201  220000  04340             CONO UTC,SL(TAC)\r
3765         000470' 720200  004011  04350             CONO DC,DACI+UCHN\r
3766         000471' 254000  000515' 04360             JRST DXIT\r
3767                                 04370   ,EXAMINE BLOCK NUMBERS - DISPATCHED FROM INTERRUPT - CHAN, DC.\r
3768         000472' 000000  000000  04380   DDIF:     0                             ;GOING FORWARD\r
3769         000473' 202040  001115' 04390             MOVEM TAC,SV1                 ;SV1:=TAC\r
3770         000474' 721700  000002  04400             CONSZ UTS, VEOT\r
3771         000475' 254000  000463' 04410             JRST RRV\r
3772         000476' 720040  000001  04420             DATAI DC,TAC\r
3773         000477' 316040  001117' 04430             CAMN TAC,UBKN                 ;BLK NOT =STR\r
3774         000500' 254000  000500' 04440   DDIG:     JRST .                        ;JRST READ, BIT, IFRIGHT UBK\r
3775         000501' 721300  010000  04450             CONSZ UTC,10000               ;GOING BACKWARDS\r
3776         000502' 254000  000506' 04460             JRST .+4                      ;BACKWARDS\r
3777         000503' 311040  001117' 04470             CAML TAC,UBKN                 ;BLK > STR > FORWARD\r
3778         000504' 254000  000463' 04480             JRST RRV\r
3779         000505' 254000  000510' 04490             JRST .+3\r
3780         000506' 317040  001117' 04500             CAMG TAC,UBKN                 ;BACKWARDS\r
3781         000507' 254000  000463' 04510             JRST RRV                      ;BACKWARDS\r
3782         000510' 721240  000001  04520   DDIG2:    CONI UTC,TAC\r
3783         000511' 405040  550777  04530             ANDI TAC,550777\r
3784         000512' 721201  220000  04540             CONO UTC,SL(TAC)\r
3785         000513' 334000  000000  04550             SKIPA\r
3786         000514' 542040  000042  04560   DXIT1:    HRRM TAC,UCHA\r
3787         000515' 200040  001115' 04570   DXIT:     MOVE TAC,SV1                  ;RESTORE TAC\r
3788         000516' 254520  000472' 04580             JEN @DDIF                     ;RE-ENABLE, DISMISS.\r
3789 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 12\r
3790         L. HANTMAN PART 1 7-13-65\r
3791 \r
3792 \r
3793                                 04610   ,DISPATCH FROM UCHA INITIALLY ON CORRECT BLOCK MARK\r
3794                                 04620   ,SETS OP TO READ, WRITE IN FWD, REVERSE\r
3795 \r
3796                                 04640   ;RD FORWARD\r
3797         000517' 721200  360300  04650   RDDA:     CONO UTC,SL+RD+JDE+EE                 ;GETS UNIT NO. - RE\r
3798         000520' 201040  000551' 04660             MOVEI TAC,RDFW\r
3799         000521' 720200  004011  04670             CONO DC,DACI+UCHN\r
3800         000522' 254000  000514' 04680             JRST DXIT1\r
3801 \r
3802         000523' 721200  360700  04700   WTDA:     CONO UTC,SL+WD+JDE+EE                 ;GETS UNIT NO. - RE\r
3803         000524' 201040  000563' 04710             MOVEI TAC,WTFW\r
3804         000525' 720200  003411  04720             CONO DC,DACO+UCHN\r
3805         000526' 254000  000514' 04730             JRST DXIT1\r
3806 \r
3807         000527' 721340  010000  04750   READ:     CONSO UTC,10000               ;ENTRY TO SET UP READ\r
3808         000530' 254000  000517' 04760             JRST, RDDA\r
3809                                 04770   ;READ REVERSE\r
3810         000531' 721200  370300  04780   RDRM:     CONO UTC,SL+GR+RD+JDE+EE      ;GETS UNIT NO. - RESETS TO RD\r
3811         000532' 201040  000543' 04790             MOVEI TAC,RDRV\r
3812         000533' 720200  004011  04800             CONO DC,DACI+UCHN\r
3813         000534' 254000  000514' 04810             JRST DXIT1\r
3814         000535' 721340  010000  04820   RIT:      CONSO UTC,10000               ;GOING REVERSE - ENTRY TO SET\r
3815         000536' 254000  000523' 04830             JRST WTDA                     ;WRITE FORWARD\r
3816                                 04840   ;WRITE REVERSE\r
3817         000537' 721200  370700  04850   WTRM:     CONO UTC,SL+WD+GR+JDE+EE      ;GETS UNIT NO. -RESETS. TO WT\r
3818         000540' 201040  000555' 04860             MOVEI TAC,WTRV\r
3819         000541' 720200  003411  04870             CONO DC,DACO+UCHN\r
3820         000542' 254000  000514' 04880             JRST DXIT1\r
3821 \r
3822                                 04900   ,DC INTERRUPT PROCESSSING TO READ/WRITE DATA IN EITHER\r
3823                                 04910   ,DIRECTION, AND RE-ENABLE INTERRUP.\r
3824                                 04920   ,EXIT BLOCK PROCESSING AT ENPT(WRITE), ENPTI(READ)\r
3825 \r
3826         000543' 000000  000000  04940   RDRV:     0                             ;ENTRY VIA UCHA - READ REV\r
3827         000544' 720000  001113' 04950             BLKI DC,BLO\r
3828         000545' 264000  000620' 04960             JSR ENPTI\r
3829         000546' 370000  001113' 04970             SOS BLO\r
3830         000547' 370000  001113' 04980             SOS BLO\r
3831         000550' 254520  000543' 04990             JEN @RDRV\r
3832 \r
3833         000551' 000000  000000  05010   RDFW:     0                             ;ENTRY VIA UCHA - READ FWD\r
3834         000552' 720000  001114' 05020             BLKI DC,BLI\r
3835         000553' 264000  000620' 05030             JSR ENPTI\r
3836         000554' 254520  000551' 05040             JEN @RDFW\r
3837 \r
3838         000555' 000000  000000  05060   WTRV:     0                             ;ENTRY VIA UCHA - WRITE REV\r
3839         000556' 720100  001113' 05070             BLKO DC,BLO\r
3840         000557' 264000  000567' 05080             JSR ENPT\r
3841         000560' 370000  001113' 05090             SOS BLO\r
3842         000561' 370000  001113' 05100             SOS BLO\r
3843         000562' 254520  000555' 05110             JEN @WTRV\r
3844 \r
3845 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 12-1\r
3846         L. HANTMAN PART 1 7-13-65\r
3847 \r
3848         000563' 000000  000000  05130   WTFW:     0                             ;ENTRY VIA UCHA - WRITE FWD\r
3849         000564' 720100  001114' 05140             BLKO DC,BLI\r
3850         000565' 264000  000567' 05150             JSR ENPT\r
3851         000566' 254520  000563' 05160             JEN @WTFW\r
3852 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 13\r
3853         L. HANTMAN PART 1 7-13-65\r
3854 \r
3855 \r
3856                                 05190   ;END OF OUTPUT BLOCK\r
3857 \r
3858         000567' 000000  000000  05210   ENPT:     0\r
3859         000570' 264000  000603' 05220             JSR, ENP\r
3860         000571' 202040  001115' 05230   ENPT2:    MOVEM TAC,SV1                 ;SV1:=TAC\r
3861         000572' 515040  010000  05240             HRLZI TAC,UREV\r
3862         000573' 721300  010000  05250             CONSZ UTC,10000\r
3863         000574' 412060  001122' 05260             ANDCAM TAC,@UDVDAT\r
3864         000575' 721340  010000  05270             CONSO UTC,10000\r
3865         000576' 436060  001122' 05280             IORM TAC,@UDVDAT\r
3866         000577' 201040  000615' 05290             MOVEI TAC,UOFF\r
3867         000600' 542040  000042  05300             HRRM TAC,UCHA\r
3868         000601' 200040  001115' 05310             MOVE TAC,SV1\r
3869         000602' 254120  000567' 05320             JRSTF @ENPT\r
3870 \r
3871                                 05340   ,CHECK ERROR BITS DC MISSED, 0T PARITY, 1 LEG OP, TAPE END\r
3872         000603' 000000  000000  05350   ENP:      0\r
3873         000604' 720300  010000  05360             CONSZ DC, 10000;      DATA MISSED\r
3874         000605' 264000  000627' 05370             JSR ERROR2\r
3875         000606' 254120  000603' 05380             JRSTF @ENP\r
3876 \r
3877                                 05400   ,SAVE STATE OF UTS, UTC, DC, TURN OFF DC, UTC, +1@ERRTAL,+1@UERR\r
3878                                 05410   ;ERROR LOOPS\r
3879         000607' 000000  000000  05420   ERROR:    0\r
3880         000610' 721640  001111' 05430             CONI UTS, C12\r
3881         000611' 721240  001112' 05440             CONI UTC, C13\r
3882         000612' 720240  001110' 05450             CONI DC, C11\r
3883         000613' 476000  001124' 05460             SETOM ERRFLG\r
3884         000614' 254120  000607' 05470             JRSTF @ERROR\r
3885                                 05480   ;INTERRUPT FROM DATA FLAG AFER BLKO HAS COUNTED OUT\r
3886         000615' 000000  000000  05490   UOFF:     0\r
3887         000616' 700600  001100  05500             CONO PI, 1100         ;TURN DC CHANNEL OFF\r
3888         000617' 254520  000615' 05510             JEN @UOFF             ;DISMISS EXTRA WRITE FLAG\r
3889 \r
3890                                 05530   ;END OF INPUT BLOCK\r
3891         000620' 000000  000000  05540   ENPTI:    0\r
3892         000621' 250040  000620' 05550             EXCH TAC, ENPTI\r
3893         000622' 202040  000567' 05560             MOVEM TAC, ENPT\r
3894         000623' 264000  000603' 05570             JSR ENP\r
3895         000624' 720200  000000  05580             CONO DC, 0\r
3896         000625' 200040  000620' 05590             MOVE TAC, ENPTI\r
3897         000626' 254000  000571' 05600             JRST ENPT2\r
3898                                 05610   ;DETECT FIRST ERROR ONLY\r
3899         000627' 000000  000000  05620   ERROR2:   0\r
3900         000630' 336000  001124' 05630             SKIPN ERRFLG          ;PREVIOUSLY DETECTED ERROR!\r
3901         000631' 264000  000607' 05640             JSR ERROR             ;STORE ERROR CONDITIONS\r
3902         000632' 254120  000627' 05650             JRSTF @ERROR2         ;CONTINUE LOOP\r
3903 \r
3904                                 05670   ;END OF PART 1 DTSER2\r
3905 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 14\r
3906         L. HANTMAN PART 1 7-13-65\r
3907 \r
3908 \r
3909                                 05700             EXTERNAL SETIOD\r
3910                                 05710             INTERNAL UDMP0, UDMPI\r
3911 \r
3912                                 05730   ; DUMP OUT\r
3913         000633' 661000  000020  05740   UDMPO:    TLO IOS, IO                   ;SET FOR OUTPUT\r
3914         000634' 260140  001142' 05750             PUSHJ PDP, UINTER             ;CHECK INTERLOCK\r
3915         000635' 606600  777777  05760             TRNN UUO, 777777              ;COMMAND ADDRESS?\r
3916         000636' 254000  000722' 05770             JRST UDMP2-1                  ;ERROR\r
3917         000637' 201040  000727' 05780             MOVEI TAC, DDUMP              ;RETURN WHEN BLOCK FOUND\r
3918         000640' 200100  001276' 05790   UDMP0:    MOVE TAC1, [JSR DMPADV]       ;BLKI OR BLKO RETURN, COMMANDS\r
3919 \r
3920                                 05810   ;COMMON ROUTINE FOR ALL DUMP MODES,  START SEARCH\r
3921         000641' 542040  000500' 05820   UDMP1:    HRRM TAC,DDIG                 ;SEARCH RETURN\r
3922         000642' 202100  000043  05830             MOVEM TAC1, UCHA+1            ;INTERRUPT RETURN\r
3923         000643' 200040  001275' 05840             MOVE TAC, [JSR DDIF]  \r
3924         000644' 202040  000042  05850             MOVEM TAC, UCHA               ;DATA CONTROL CHANNEL\r
3925         000645' 554046  000010  05860             HLRZ TAC, DEVOAD (DEVDAT)     ;BLOCK NUMBER\r
3926         000646' 607000  000020  05870             TLNN IOS, IO                  ;WRITING?\r
3927         000647' 554046  000007  05880             HLRZ TAC, DEVIAD(DEVDAT)      ;INPUT BLOCK NUMBER\r
3928         000650' 202040  001117' 05890             MOVEM TAC, UBKN               ;BLOCK TO LOOK FOR\r
3929         000651' 552300  001151' 05900             HRRZM DEVDAT, USVDB           ;DATA BLOCK ADDRESS\r
3930         000652' 135040  000405* 05910             LDB TAC,PUNIT         ;UNIT\r
3931         000653' 241040  000003  05920             ROT TAC, 3\r
3932         000654' 271040  000407* 05930             ADDI TAC, DTCCHN\r
3933         000655' 202040  001116' 05940             MOVEM TAC, UNIT               ;UNIT AND DT CHANNEL\r
3934         000656' 405040  000070  05950             ANDI TAC, 70\r
3935         000657' 721201  323201  05960                   CONO UTC, SL+DTR+RB+EE+UCHN(TAC)\r
3936         000660' 476000  001153' 05970             SETOM UERRCN                  ;SET ERROR COUNTER\r
3937         000661' 201040  000037  05980             MOVEI TAC, 37                 ;DO NOT CHECK FOR INCOMPLETE\r
3938         000662' 542040  001166' 05990             HRRM TAC, DTCINT\r
3939         000663' 201040  000016  06000             MOVEI TAC,16\r
3940         000664' 542040  001172' 06010             HRRM TAC, DTCINT+4\r
3941         000665' 720200  004011  06020             CONO DC, DACI+UCHN            ;SET DATA CONTROL\r
3942         000666' 700600  002100  06030             CONO PI,2100          ;INSURE CHANNEL 1 ON\r
3943         000667' 552340  001126' 06040             HRRZM PROG, UDMPA             ;SAVE PROGRAM\r
3944         000670' 606600  777777  06050             TRNN UUO, 777777              ;COMMAND ADDRESS\r
3945         000671' 263140  000000  06060             POPJ PDP, 0                   ;COMMAND LIST ON TAPE, INPUT\r
3946         000672' 550040  000014  06070             HRRZ TAC, UUO                 ;GET CMD PNTR\r
3947         000673' 550100  000001  06080             HRRZ TAC1, TAC                ;SAVE POINTER\r
3948         000674' 270100  000007  06090   UDMP1A:   ADD TAC1, PROG                ;GET ACTUAL POINTER\r
3949         000675' 552100  001125' 06100             HRRZM TAC1, UDMP              ;STORE WORKING POINTER\r
3950 \r
3951                                 06120   ;CHECK ENTIRE COMMAND LIST FOR VALIDITY\r
3952         000676' 336120  001125' 06130   UDMP1B:   SKIPN TAC1, @UDMP             ;GET COMMAND\r
3953         000677' 254000  000712' 06140             JRST UDMP1C                   ;END OF COMMAND LIST\r
3954         000700' 327100  000674' 06150             JUMPG TAC1, UDMP1A            ;CHANGE COMMAND SEQUENCE\r
3955         000701' 576100  001141' 06160             HLREM TAC1, SVCNTR            ;SAVE -N\r
3956         000702' 553000  000002  06170             HRRZS TAC1                    ;GET ADDRESS\r
3957         000703' 305100  000000* 06180             CAIGE TAC1, JOBPFI    ;IS IT ABOVE IO PROT. AREA\r
3958         000704' 254000  000000* 06190             JRST ADRERR           ;NO. ADDRESS CHECK ERROR\r
3959         000705' 274100  001141' 06200             SUB TAC1, SVCNTR              ;GET AREA END\r
3960         000706' 313100  000000* 06210             CAMLE TAC1, USRREL            ;LESS THEN END?\r
3961 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 14-1\r
3962         L. HANTMAN PART 1 7-13-65\r
3963 \r
3964         000707' 254000  000722' 06220             JRST UDMP2-1                  ;OUT OF BOUNDS\r
3965         000710' 350000  001125' 06230             AOS UDMP                      ;INDEX COMMAND LIST POINTER\r
3966         000711' 254000  000676' 06240             JRST UDMP1B                   ;GET NEXT COMMAND\r
3967 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 15\r
3968         L. HANTMAN PART 1 7-13-65\r
3969 \r
3970 \r
3971                                 06270   ;GET FIRST COMMAND\r
3972         000712' 270040  000007  06280   UDMP1C:   ADD TAC, PROG                 ;GET ACTUAL ADDRESS\r
3973         000713' 552040  001125' 06290             HRRZM TAC, UDMP               ;SAVE POINTER\r
3974         000714' 336060  001125' 06300             SKIPN TAC, @UDMP              ;1ST COMMAND\r
3975         000715' 254000  000723' 06310             JRST UDMP2                    ;NOTHING TO DO\r
3976         000716' 270040  000007  06320             ADD TAC, PROG                 ;ACTUAL POINTER\r
3977         000717' 325040  000713' 06330             JUMPGE TAC, .-4               ;CHANGE COMMAND SEQUENCE\r
3978         000720' 202040  001113' 06340             MOVEM TAC, BLO                ;SAVE I/O POINTER\r
3979         000721' 263140  000000  06350             POPJ PDP, 0\r
3980                                 06360   ;EXIT WITH ERROR\r
3981         000722' 660000  040000  06370             TRO IOS, IOBKTL\r
3982         000723' 201040  777775  06380   UDMP2:    MOVEI TAC, -3\r
3983         000724' 572040  001153' 06390             HRREM TAC, UERRCN\r
3984         000725' 402000  001124' 06400             SETZM ERRFLG\r
3985         000726' 254000  000242' 06410             JRST UEND2\r
3986 \r
3987                                 06430   ;SEARCH RETURN,OUTPUT,COMMAND LIST IN MEMORY\r
3988         000727' 721300  010000  06440   DDUMP:    CONSZ UTC,GR\r
3989         000730' 254000  000510' 06450             JRST DDIG2            ;KEEP GOING\r
3990         000731' 200040  001277' 06460             MOVE TAC,[BLKO DC,BLO]\r
3991         000732' 202040  000042  06470             MOVEM TAC, UCHA\r
3992         000733' 720200  003411  06480             CONO DC,DACO+UCHN\r
3993         000734' 200040  001116' 06490             MOVE TAC,UNIT\r
3994 \r
3995         000735' 721201  360700  06510             CONO UTC,SL+WD+JDE+EE(TAC)\r
3996         000736' 254000  000515' 06520             JRST DXIT\r
3997                                 06530   ;BLKI OR BLKO RETURNS, COMMAND LIST IN MEMORY\r
3998         000737' 000000  000000  06540   DMPADV:   0\r
3999         000740' 202040  001115' 06550             MOVEM TAC,SV1\r
4000         000741' 354040  001125' 06560             AOSA TAC,UDMP                 ;POINTER\r
4001 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 16\r
4002         L. HANTMAN PART 1 7-13-65\r
4003 \r
4004 \r
4005         000742' 552040  001125' 06590   DMPA1:    HRRZM TAC, UDMP               ;STORE POINTER\r
4006         000743' 336041  000000  06600             SKIPN TAC, 0(TAC)             ;IS WORD ZERO\r
4007         000744' 254000  000752' 06610             JRST DMPA2                    ;END\r
4008         000745' 270040  001126' 06620             ADD TAC, UDMPA                ;ADD PROGRAM\r
4009         000746' 325040  000742' 06630             JUMPGE TAC, DMPA1             ;CHANGE COMMAND\r
4010         000747' 202040  001113' 06640             MOVEM TAC, BLO\r
4011         000750' 200040  001115' 06650   DMPXT:    MOVE TAC, SV1\r
4012         000751' 254520  000737' 06660             JEN @DMPADV\r
4013 \r
4014                                 06680   ;END OF COMMAND LIST, INPUT OR OUTPUT\r
4015         000752' 264000  000603' 06690   DMPA2:    JSR ENP\r
4016         000753' 700600  001100  06700             CONO PI, 1100                 ;TURN DATA CONTROL CHANNEL OF\r
4017         000754' 721740  000040  06710             CONSO UTS, 40                 ;WRITING?\r
4018         000755' 720200  000000  06720             CONO DC, 0                    ;SHUT OFF DATA CONTROL\r
4019         000756' 254000  000750' 06730             JRST DMPXT\r
4020                                 06740   ;SEARCH RETURN, INPUT COMMAND LIST ON TAPE\r
4021         000757' 721300  010000  06750   DDMPI:    CONSZ UTC, GR                 ;GOING BACKWARDS?\r
4022         000760' 254000  000510' 06760             JRST DDIG2                    ;KEEP GOING\r
4023         000761' 200040  001300' 06770             MOVE TAC, [XWD -1,BLO-1]\r
4024         000762' 202040  001113' 06780             MOVEM TAC, BLO\r
4025 \r
4026                                 06800   ;COMMON INSTRUCTIONS FOR COMMAND LIST IN MEMORY OR ON TAPE\r
4027         000763' 200040  001301' 06810   DDMPI2:   MOVE TAC, [BLKI DC,BLO]\r
4028         000764' 202040  000042  06820             MOVEM TAC, UCHA\r
4029         000765' 720200  004011  06830             CONO DC, DACI+UCHN\r
4030         000766' 200040  001116' 06840             MOVE TAC, UNIT\r
4031         000767' 721201  360300  06850             CONO UTC, SL+RD+JDE+EE(TAC)\r
4032         000770' 254000  000515' 06860             JRST DXIT\r
4033 \r
4034                                 06880   ;INPUT COMMAND LIST ON TAPE.  BLKI RETURN AFTER READING COMMAND\r
4035         000771' 000000  000000  06890   DMPRD:    0\r
4036         000772' 331000  001113' 06900             SKIPL BLO                     ;END OF COMMAND LIST?\r
4037         000773' 254000  001010' 06910             JRST DMPRD1\r
4038         000774' 202040  001115' 06920             MOVEM TAC, SV1                ;SAVE TAC\r
4039         000775' 200040  001113' 06930             MOVE TAC, BLO                 ;PICK UP COMMAND\r
4040         000776' 576040  001141' 06940             HLREM TAC, SVCNTR             ;-N\r
4041         000777' 553000  000001  06950             HRRZS TAC                     ;ADDRESS\r
4042         001000' 274040  001141' 06960             SUB TAC, SVCNTR               ;END ADDRESS\r
4043         001001' 303040  000000  06970   DMPRD0:   CAILE TAC, 0                  ;<END? MODIFIED\r
4044         001002' 254000  001102' 06980             JRST DMPERR                   ;OUT OF BOUNDS, EXIT\r
4045         001003' 200040  001125' 06990             MOVE TAC, UDMP                ;PROG\r
4046         001004' 272040  001113' 07000             ADDM TAC, BLO                 ;TO GET ACTUAL I/O POINTER\r
4047         001005' 201040  001012' 07010             MOVEI TAC,DMPRDA              ;NEW RETURN\r
4048         001006' 542040  000042  07020             HRRM TAC, UCHA+\r
4049         001007' 334040  001115' 07030             SKIPA TAC, SV1                ;RESTORE TAC\r
4050         001010' 720200  000000  07040   DMPRD1:   CONO DC, 0\r
4051         001011' 254520  000771' 07050             JEN @DMPRD\r
4052 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 17\r
4053         L. HANTMAN PART 1 7-13-65\r
4054 \r
4055 \r
4056                                 07080   ;INPUT COMMAND LIST ON TAPE.  BLKI RETURN AFTER READING DATA\r
4057         001012' 000000  000000  07090   DMPRDA:   0\r
4058         001013' 202040  001115' 07100             MOVEM TAC, SV1                ;SAVE TAC\r
4059         001014' 200040  001300' 07110             MOVE TAC, [XWD -1,BLO-1]\r
4060         001015' 202040  001113' 07120             MOVEM TAC, BLO                ;READ INTO BLO\r
4061         001016' 201040  000771' 07130             MOVEI TAC, DMPRD              ;USE PREV. RETURN\r
4062         001017' 542040  000043  07140             HRRM TAC, UCHA+1\r
4063         001020' 200040  001115' 07150             MOVE TAC, SV1                 ;SAVE TAC\r
4064         001021' 254520  001012' 07160             JEN @DMPRDA\r
4065                                 07170   ;DUMP IN\r
4066         001022' 621000  000020  07180   UDMPI:    TLZ IOS, IO\r
4067         001023' 260140  001142' 07190             PUSHJ PDP, UINTER\r
4068         001024' 602600  777777  07200             TRNE UUO, 777777              ;COMMAND LIST ON TAPE\r
4069         001025' 254000  001033' 07210             JRST UDMPI2                   ;COMMAND LIST IN CORE\r
4070         001026' 200040  000706* 07220             MOVE TAC, USRREL              ;LENGTH OF USER AREA\r
4071         001027' 542040  001001' 07230             HRRM TAC, DMPRD0\r
4072         001030' 201040  000757' 07240             MOVEI TAC, DDMPI              ;SEARCH RETURN\r
4073         001031' 200100  001302' 07250             MOVE TAC1, [JSR DMPRD]                ;BLOCK IN RETURN\r
4074         001032' 254000  000641' 07260             JRST UDMP1\r
4075         001033' 201040  001035' 07270   UDMPI2:   MOVEI TAC, DDMPI3             ;COMMAND LIST IN CORE\r
4076         001034' 254000  000640' 07280             JRST UDMP0\r
4077                                 07290   ;SEARCH RETURN, INPUT COMMAND LIST IN MEMORY\r
4078         001035' 721300  010000  07300   DDMPI3:   CONSZ UTC, GR\r
4079         001036' 254000  000510' 07310             JRST DDIG2                    ;KEEP GOING\r
4080         001037' 254000  000763' 07320             JRST DDMPI2                   ;INPUT COMMAND LIST IN CORE\r
4081                                 07330   ;JOB DONE AFTER COMMAND LIST RUNS OUT\r
4082         001040' 332000  001124' 07340   DMPEND:   SKIPE ERRFLG\r
4083         001041' 660000  200000  07350             TRO IOS,IODERR\r
4084         001042' 202006  000002  07360             MOVEM IOS,DEVIOS(DEVDAT)\r
4085         001043' 200040  001116' 07370             MOVE TAC,UNIT\r
4086         001044' 405040  000070  07380             ANDI TAC, 70\r
4087         001045' 700600  002100  07390             CONO PI,2100\r
4088         001046' 720200  004011  07400             CONO DC, DACI+UCHN\r
4089         001047' 721201  220200  07410             CONO UTC, SL+RB(TAC)          ;SWITCH TO SEARCH MODE\r
4090         001050' 200040  001303' 07420             MOVE TAC, [JSR UDMPRB]\r
4091         001051' 202040  000042  07430             MOVEM TAC, UCHA\r
4092         001052' 254000  000000* 07440             JRST DTCRET\r
4093                                 07450   ;SEARCH RETURN TO READ NEXT FREE BLOCK\r
4094         001053' 000000  000000  07460   UDMPRB:   0\r
4095         001054' 250300  001151' 07470             EXCH DEVDAT, USVDB            ;GET DVDB\r
4096         001055' 202040  001130' 07480             MOVEM TAC,SVAC\r
4097         001056' 202000  001131' 07490             MOVEM IOS,SVAC+1\r
4098         001057' 202140  001132' 07500             MOVEM PDP,SVAC+2\r
4099         001060' 202100  001133' 07510             MOVEM TAC1,SVAC+3\r
4100         001061' 200006  000002  07520             MOVE IOS,DEVIOS(DEVDAT)\r
4101         001062' 607000  000020  07530             TLNN IOS,IO                   ;INPUT OR OUTPUT?\r
4102         001063' 254000  001066' 07540             JRST .+3                      ;INPUT\r
4103         001064' 720046  000365* 07550             DATAI DC,UFREE(DEVDAT)        ;LAST FREEBLOCK TALLY\r
4104         001065' 661000  000400  07560             TLO IOS,UNWFRE                ;SET FREE BLOCK CHANGED BIT\r
4105         001066' 720200  000000  07570             CONO DC,0                     ;TURN OFF DATA CONTROL\r
4106         001067' 201040  000654* 07580             MOVEI TAC,DTCCHN\r
4107         001070' 721201  005000  07590             CONO UTC,5000(TAC)            ;STOP TAPE\r
4108 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 17-1\r
4109         L. HANTMAN PART 1 7-13-65\r
4110 \r
4111         001071' 200140  001304' 07600             MOVE PDP,[XWD -5,SVAC+3]      ;USE REST OF SCAV BLOCK\r
4112         001072' 264000  001154' 07610             JSR IODSET\r
4113         001073' 260140  001227' 07620             PUSHJ PDP,DTC1B\r
4114 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 18\r
4115         L. HANTMAN PART 1 7-13-65\r
4116 \r
4117 \r
4118         001074' 200040  001130' 07650             MOVE TAC,SVAC\r
4119         001075' 200000  001131' 07660             MOVE IOS,SVAC+1\r
4120         001076' 200140  001132' 07670             MOVE PDP,SVAC+2\r
4121         001077' 200100  001133' 07680             MOVE TAC1,SVAC+3\r
4122         001100' 250300  001151' 07690             EXCH DEVDAT,USVDB\r
4123         001101' 254520  001053' 07700             JEN @UDMPRB\r
4124                                 07710   ;ADDRESS CHECK FROM COMMAND.  COMMANDS ON TAPE\r
4125         001102' 250300  001151' 07720   DMPERR:   EXCH DEVDAT, USVDB            ;GET DVDB\r
4126         001103' 201040  400000  07730             MOVEI TAC, IOIMPM             ;ERROR BITS\r
4127         001104' 436046  000002  07740             ORM TAC, DEVIOS(DEVDAT)       ;SET STATUS\r
4128         001105' 250300  001151' 07750             EXCH DEVDAT, USVDB            ;RESTORE DEVDAT\r
4129         001106' 200040  001115' 07760             MOVE TAC, SV1                 ;RESTORE TAC\r
4130         001107' 254000  001010' 07770             JRST DMPRD1\r
4131 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 19\r
4132         L. HANTMAN PART 1 7-13-65\r
4133 \r
4134 \r
4135         001110' 000000  000000  07800   C11:      0             ;TEMP CONI DC\r
4136         001111' 000000  000000  07810   C12:      0             ;TEMP CONI UTS\r
4137         001112' 000000  000000  07820   C13:      0             ;TEMP CONI UTC\r
4138         001113' 000000  000000  07830   BLO:      0             ;XWD -200 C(UBUF)\r
4139         001114' 000000  000000  07840   BLI:      0             ;XWD,-200,C(UBUF+200)\r
4140         001115' 000000  000000  07850   SV1:      0             ;TEMPORARY FOR TAC DURING INTERRUPT\r
4141         001116' 000000  000000  07860   UNIT:     0             ;IN BITS 30-32\r
4142         001117' 000000  000000  07870   UBKN:     0             ;BLOCK BEING SEARCHED FOR\r
4143         001120' 000000  000000  07880   UPROG:    0             ;HOLDS PROG\r
4144         001121' 000000  000000  07890   UBUF:     0             ;ABS. LOC OF DATA\r
4145         001122' 000000  000000  07900   UDVDAT:   0             ;PTR TO IOS\r
4146         001123' 000000  000000  07910   ERRTAL:   0             ;TOTAL NO. OF ERRORS\r
4147         001124' 000000  000000  07920   ERRFLG:   0             ;-1 IF ERROR OCCURED, 0 OTHERWISSE\r
4148 \r
4149         001125' 000000  000000  07940   UDMP:     0             ;HOLDS DUMP UUO ADDRESS\r
4150         001126' 000000  000000  07950   UDMPA:    0             ;HOLDS USER PROGRAM STARTING ADDRESS\r
4151         001127' 000000  000000  07960   SV0:      0\r
4152         001130'                 07970   SVAC:     BLOCK 11\r
4153         001141' 000000  000000  07980   SVCNTR:   0             ;HOLDS -N OF DUMP COMMAND WORD\r
4154 \r
4155                                 08000   ;CHECK FRO INTERLOCK ON DECTAPE AND DATA CONTROLS\r
4156         001142' 660000  010000  08010   UINTER:   TRO IOS, IOACT\r
4157         001143' 202006  000002  08020             MOVEM IOS, DEVIOS(DEVDAT)\r
4158         001144' 352000  000244* 08030             AOSE DTREQ                    ;IS DECTAPE CONTROL FREE?\r
4159         001145' 260140  000000* 08040             PUSHJ PDP, DTWAIT             ;WAIT\r
4160         001146' 352000  000242* 08050             AOSE DCREQ                    ;IS DATA CONTROL FREE?\r
4161         001147' 260140  000000* 08060             PUSHJ PDP, DCWAIT             ;WAIT\r
4162         001150' 263140  000000  08070             POPJ PDP, 0                   ;EXIT\r
4163 \r
4164         001151' 000000  000000  08090   USVDB:    0             ;SAVE DATA BLOCK ADDRESS\r
4165         001152' 000000  000000  08100   USVIOS:   0             ;SAVE IOS\r
4166         001153' 777777  777775  08110   UERRCN:   -3            ;ERROR COUNTER\r
4167 \r
4168         001154' 000000  000000  08130   IODSET:   0\r
4169         001155' 623000  000001  08140             TLZE IOS,IOW\r
4170         001156' 260140  000000* 08150             PUSHJ PDP,SETIOD\r
4171         001157' 202006  000002  08160             MOVEM IOS,DEVIOS(DEVDAT)\r
4172         001160' 254020  001154' 08170             JRST @IODSET\r
4173 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 20\r
4174         L. HANTMAN PART 1 7-13-65\r
4175 \r
4176 \r
4177                                 08200   ;INITIALZATION\r
4178 \r
4179         001161' 201040  777775  08220   DTCINI:   MOVEI TAC, -3                 ;CLEAR ERROR COUNTER\r
4180         001162' 572040  001153' 08230             HRREM TAC, UERRCN\r
4181         001163' 402000  001124' 08240             SETZM ERRFLG\r
4182         001164' 721200  000000  08250             CONO UTC, 0\r
4183         001165' 263140  000000  08260             POPJ PDP, 0\r
4184 \r
4185         001166' 721740  000137  08280   DTCINT:   CONSO UTS, 137                ;ALL ERRORS AND JOB DONE\r
4186         001167' 254000  001167' 08290             JRST .                        ;MODIFIED BY INITIALIZATION\r
4187         001170' 721700  000020  08300             CONSZ UTS,20                  ;TIME FLAG\r
4188         001171' 254000  001244' 08310             JRST UTIME                    ;SET DECTAPE CONTROL AVAILABL\r
4189         001172' 721700  000116  08320   CONSZ1:   CONSZ UTS, 116                ;INC BLK, PARITY, ILL OP, END\r
4190         001173' 264000  000627' 08330             JSR ERROR2                    ;ERROR\r
4191 \r
4192                                 08350   ;JOB DONE\r
4193         001174' 720200  000000  08360             CONO DC, 0                    ;TURN OFF DATA CONTROL\r
4194         001175' 202000  001127' 08370             MOVEM 0, SV0                  ;SAVE ZERO\r
4195         001176' 721240  000000  08380             CONI UTC, 0\r
4196         001177' 202000  001152' 08390             MOVEM 0, USVIOS\r
4197         001200' 405000  230070  08400             ANDI 0, 230070                ;SAVE DIRECTION AND UNIT\r
4198         001201' 721220  000000  08410             CONO UTC, @0                  ;SWITCH TO MOVE MODE\r
4199         001202' 200000  001127' 08420             MOVE 0, SV0\r
4200         001203' 264000  000000* 08430             JSR DTCSAV\r
4201         001204' 260140  001252' 08440             PUSHJ PDP, DSETAC\r
4202         001205' 332000  001124' 08450             SKIPE ERRFLG\r
4203         001206' 254000  001256' 08460             JRST DTRED0\r
4204         001207' 623000  002000  08470             TLZE IOS,URDIR\r
4205         001210' 254000  001213' 08480             JRST .+3\r
4206         001211' 264000  001154' 08490             JSR IODSET\r
4207         001212' 254000  001220' 08500             JRST DTC1\r
4208         001213' 640000  000017  08510             TRC IOS,17\r
4209         001214' 646000  000017  08520             TRCN IOS,17\r
4210         001215' 254000  001040' 08530             JRST DMPEND\r
4211         001216' 264000  001154' 08540             JSR IODSET\r
4212         001217' 254000  001237' 08550             JRST DTCONT\r
4213         001220' 200040  001152' 08560   DTC1:     MOVE TAC, USVIOS\r
4214         001221' 405040  010007  08570             ANDI TAC, 10007               ;DIRECTION, CHANNEL\r
4215         001222' 435040  005000  08580             ORI TAC,5000                  ;TIME FLAG ENABLE\r
4216         001223' 721220  000001  08590             CONO UTC, @ TAC               ;STOP TAPE, AND DESELECT\r
4217         001224' 621000  010000  08600             TLZ IOS, UREV\r
4218         001225' 602040  010000  08610             TRNE TAC, 10000\r
4219         001226' 661000  010000  08620             TLO IOS,UREV\r
4220 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 21\r
4221         L. HANTMAN PART 1 7-13-65\r
4222 \r
4223 \r
4224         001227'                 08650   DTC1A:\r
4225         001227' 371000  001146* 08660   DTC1B:    SOSL DCREQ            ;DECREMENT REQUEST COUNT, ANYONE LEFT W\r
4226         001230' 476000  000243* 08670             SETOM DCAVAL                  ;YES.DATA CONTROL AVAILABLE\r
4227         001231' 620000  010000  08680             TRZ IOS, IOACT\r
4228         001232' 202006  000002  08690   DTC2:     MOVEM IOS, DEVIOS(DEVDAT)\r
4229         001233' 201040  777775  08700             MOVEI TAC, -3\r
4230         001234' 572040  001153' 08710             HRREM TAC, UERRCN\r
4231         001235' 402000  001124' 08720             SETZM ERRFLG\r
4232         001236' 263140  000000  08730             POPJ PDP,\r
4233 \r
4234         001237' 201100  000153' 08750   DTCONT:   MOVEI TAC1, UOUT2\r
4235         001240' 607000  000020  08760             TLNN IOS, IO                  ;WRITING?\r
4236         001241' 201100  000217' 08770             MOVEI TAC1, UIN1\r
4237         001242' 260142  000000  08780             PUSHJ PDP, 0(TAC1)\r
4238         001243' 254000  001232' 08790             JRST DTC2\r
4239 \r
4240                                 08810   ;INTERRUPT FROM TIME FLAG AFTER STOP DELAY\r
4241         001244' 721340  004000  08820   UTIME:    CONSO UTC,4000\r
4242         001245' 254000  001167' 08830             JRST DTCINT+1\r
4243         001246' 371000  001144* 08840             SOSL DTREQ            ;DECREMENT REQUEST COUNT, IS ANYONE STI\r
4244         001247' 476000  000245* 08850             SETOM DTAVAL                  ;YES,DECTAPE CONTROL AVAILABL\r
4245         001250' 721200  000000  08860             CONO UTC, 0\r
4246         001251' 254520  000000* 08870             JEN @DTCCHL\r
4247 \r
4248                                 08890   ;SET UP NECESSARY DECTAPE ACCUMULATORS\r
4249         001252' 200300  001151' 08900   DSETAC:   MOVE DEVDAT, USVDB\r
4250         001253' 200340  001120' 08910             MOVE PROG, UPROG\r
4251         001254' 200006  000002  08920             MOVE IOS, DEVIOS(DEVDAT)\r
4252         001255' 263140  000000  08930             POPJ PDP,\r
4253                                 08940   ;RE-DO DECTAPE COMMAND IF AN ERROR OCCURED\r
4254         001256' 640000  000017  08950   DTRED0:   TRC IOS,17\r
4255         001257' 646000  000017  08960             TRCN IOS,17\r
4256         001260' 254000  001040' 08970             JRST DMPEND\r
4257         001261' 350000  001153' 08980             AOS UERRCN                    ;NOT YET 3 ERRORS\r
4258         001262' 254000  001266' 08990             JRST DTRD2                    ;THIRD ERROR\r
4259         001263' 402000  001124' 09000             SETZM ERRFLG                  ;CLEAR FLAG\r
4260         001264' 260140  000415' 09010             PUSHJ PDP, FILL               ;RE-EXECUTE THE COMMAND\r
4261         001265' 254000  001052* 09020             JRST DTCRET                   ;EXIT\r
4262         001266' 660000  200000  09030   DTRD2:    TRO IOS, IODERR               ;SET ERROR INDICATION\r
4263         001267' 623000  000001  09040             TLZE IOS, IOW\r
4264         001270' 260140  001156* 09050             PUSHJ PDP, SETIOD             ;RELEASE WAIT\r
4265         001271' 254000  001220' 09060             JRST DTC1                     ;STOP THE TAPE\r
4266                                 09070   EXTERNAL DTREQ, DCREQ, DTWAIT, DCWAIT, DTCSAV,DTCRET\r
4267                                 09080   EXTERNAL DTAVAL, DCAVAL, DTCCHL, UTBKER, DTCCHN, USRREL\r
4268                                 09090   INTERNAL DTCINT, DTCINI, DTSIZ,UBUF\r
4269 \r
4270                                 09110             END,\r
4271         001272' 001401  000002\r
4272         001273' 001414  000002\r
4273         001274' 000001  000005\r
4274         001275' 264000  000472'\r
4275         001276' 264000  000737'\r
4276 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 21-1\r
4277         L. HANTMAN PART 1 7-13-65\r
4278 \r
4279         001277' 720100  001113'\r
4280         001300' 777777  001112'\r
4281         001301' 720000  001113'\r
4282         001302' 264000  000771'\r
4283         001303' 264000  001053'\r
4284         001304' 777773  001133'\r
4285 \r
4286 NO ERRORS DETECTED\r
4287 \r
4288 PROGRAM BREAK IS 001305\r
4289 \r
4290 9K CORE USED\r
4291 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 22\r
4292         SYMBOL TABLE\r
4293 \r
4294                 000452  \r
4295 A               000000  INT\r
4296 AC1             000015  INT\r
4297 AC2             000016  INT\r
4298 AC3             000017  INT\r
4299 ADRCK           000001' EXT\r
4300 ADRERR          000704' EXT\r
4301 ADVBFE          000000  EXT\r
4302 ADVBFF          000000  EXT\r
4303 AL              000001  INT\r
4304 ASSCON          400000  INT\r
4305 ASSPRG          200000  INT\r
4306 B               000014  INT\r
4307 BLI             001114' \r
4308 BLO             001113' \r
4309 BUFPNT          000012  INT\r
4310 BUFWRD          000013  INT\r
4311 C11             001110' \r
4312 C12             001111' \r
4313 C13             001112' \r
4314 CLOSB           002000  INT\r
4315 CLSIN           000002  INT\r
4316 CLSOUT          000001  INT\r
4317 CONSZ1          001172' \r
4318 CPOPJ1          000033' EXT\r
4319 D               000017  INT\r
4320 DACI            004010  \r
4321 DACO            003410  \r
4322 DAT             000005  INT\r
4323 DC              000200  SPD\r
4324 DCAVAL          001230' EXT\r
4325 DCL             000001  INT\r
4326 DCREQ           001227' EXT\r
4327 DCW             020000  INT\r
4328 DCWAIT          001147' EXT\r
4329 DDI             000007  INT\r
4330 DDIF            000472' \r
4331 DDIG            000500' \r
4332 DDIG2           000510' \r
4333 DDMPI           000757' \r
4334 DDMPI2          000763' \r
4335 DDMPI3          001035' \r
4336 DDO             000006  INT\r
4337 DDTMEM          000037  INT\r
4338 DDTSYM          000036  INT\r
4339 DDUMP           000727' \r
4340 DEN             000004  INT\r
4341 DEVADR          000007  INT\r
4342 DEVBUF          000006  INT\r
4343 DEVCHR          000001  INT\r
4344 DEVCTR          000011  INT\r
4345 DEVDAT          000006  INT\r
4346 DEVIAD          000007  INT\r
4347 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 22-1\r
4348         SYMBOL TABLE\r
4349 \r
4350 DEVIOS          000002  INT\r
4351 DEVLOG          000005  INT\r
4352 DEVMOD          000004  INT\r
4353 DEVNAM          000000  INT\r
4354 DEVOAD          000010  INT\r
4355 DEVPTR          000010  INT\r
4356 DEVSER          000003  INT\r
4357 DGF             000012  INT\r
4358 DIN             000003  INT\r
4359 DIRERR          000015' EXT\r
4360 DLK             000005  INT\r
4361 DMPA1           000742' \r
4362 DMPA2           000752' \r
4363 DMPADV          000737' \r
4364 DMPEND          001040' \r
4365 DMPERR          001102' \r
4366 DMPRD           000771' \r
4367 DMPRD0          001001' \r
4368 DMPRD1          001010' \r
4369 DMPRDA          001012' \r
4370 DMPXT           000750' \r
4371 DOU             000002  INT\r
4372 DR              000016  INT\r
4373 DRL             000000  INT\r
4374 DSETAC          001252' \r
4375 DSI             000011  INT\r
4376 DSO             000010  INT\r
4377 DT              002000  \r
4378 DTAVAL          001247' EXT\r
4379 DTC1            001220' \r
4380 DTC1A           001227' \r
4381 DTC1B           001227' \r
4382 DTC2            001232' \r
4383 DTCCHL          001251' EXT\r
4384 DTCCHN          001067' EXT\r
4385 DTCINI          001161' INT\r
4386 DTCINT          001166' INT\r
4387 DTCONT          001237' \r
4388 DTCRET          001265' EXT\r
4389 DTCSAV          001203' EXT\r
4390 DTR             003000  \r
4391 DTRD2           001266' \r
4392 DTRED0          001256' \r
4393 DTREQ           001246' EXT\r
4394 DTSIZ           000001  INT\r
4395 DTW             040000  INT\r
4396 DTWAIT          001145' EXT\r
4397 DVAVAL          000040  INT\r
4398 DVCDR           100000  INT\r
4399 DVDIR           000004  INT\r
4400 DVDIRI          400000  INT\r
4401 DVIN            000002  INT\r
4402 DVLPT           040000  INT\r
4403 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 22-2\r
4404         SYMBOL TABLE\r
4405 \r
4406 DVMTA           000020  INT\r
4407 DVOUT           000001  INT\r
4408 DVTTY           000010  INT\r
4409 DXIT            000515' \r
4410 DXIT1           000514' \r
4411 EE              100000  \r
4412 ENP             000603' \r
4413 ENPT            000567' \r
4414 ENPT2           000571' \r
4415 ENPTI           000620' \r
4416 ENTRB           020000  INT\r
4417 ERRFLG          001124' \r
4418 ERROR           000607' \r
4419 ERROR2          000627' \r
4420 ERRTAL          001123' \r
4421 F1              000457' \r
4422 F2              000460' \r
4423 F3              000461' \r
4424 F4              000462' \r
4425 FILL            000415' \r
4426 FILL2           000450' \r
4427 FILLC           000453' \r
4428 GETF            000277' \r
4429 GR              010000  \r
4430 I               000010  INT\r
4431 IB              000013  INT\r
4432 IBUFB           200000  INT\r
4433 INITB           400000  INT\r
4434 INPB            010000  INT\r
4435 IO              000020  INT\r
4436 IOACT           010000  INT\r
4437 IOBEG           000002  INT\r
4438 IOBKTL          040000  INT\r
4439 IOCON           000040  INT\r
4440 IODEND          020000  INT\r
4441 IODERR          200000  INT\r
4442 IODISC          400000  INT\r
4443 IODONE          400000  INT\r
4444 IODSET          001154' \r
4445 IODTER          100000  INT\r
4446 IOEND           000040  INT\r
4447 IOFST           000004  INT\r
4448 IOIERR          000065' EXT\r
4449 IOIMPM          400000  INT\r
4450 IONRCK          000100  INT\r
4451 IORDEL          000100  INT\r
4452 IORET           000020  INT\r
4453 IOS             000000  INT\r
4454 IOSET           000000  EXT\r
4455 IOSTRT          000010  INT\r
4456 IOUSE           400000  INT\r
4457 IOW             000001  INT\r
4458 IOWC            000020  INT\r
4459 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 22-3\r
4460         SYMBOL TABLE\r
4461 \r
4462 IOWS            400000  INT\r
4463 ITEM            000004  INT\r
4464 JBFADR          000000  INT\r
4465 JBFCTR          000002  INT\r
4466 JBFPTR          000001  INT\r
4467 JBUF            000005  INT\r
4468 JDAT            000011  INT\r
4469 JDE             040000  \r
4470 JERR            002000  INT\r
4471 JIOW            100000  INT\r
4472 JNA             004000  INT\r
4473 JOBPFI          000703' EXT\r
4474 LOOKB           040000  INT\r
4475 MTW             010000  INT\r
4476 OBUFB           100000  INT\r
4477 OUT             000325' EXT\r
4478 OUTPB           004000  INT\r
4479 PDP             000003  INT\r
4480 PI              000004  SPD\r
4481 PICHN           000100  INT\r
4482 PIOMOD          000314' EXT\r
4483 PROG            000007  INT\r
4484 PUNIT           000652' EXT\r
4485 PUUOAC          000063' EXT\r
4486 RB              000200  \r
4487 RD              000300  \r
4488 RDDA            000517' \r
4489 RDFW            000551' \r
4490 RDRM            000531' \r
4491 RDRV            000543' \r
4492 READ            000527' \r
4493 RIT             000535' \r
4494 RRV             000463' \r
4495 RUN             200000  INT\r
4496 RUNABL          204000  INT\r
4497 SETI            000267' \r
4498 SETIOD          001270' EXT\r
4499 SETO            000272' \r
4500 SL              220000  \r
4501 SV0             001127' \r
4502 SV1             001115' \r
4503 SVAC            001130' \r
4504 SVCNTR          001141' \r
4505 TAC             000001  INT\r
4506 TAC1            000002  INT\r
4507 TEM             000010  INT\r
4508 THSDAT          000046' EXT\r
4509 TTYATC          020000  INT\r
4510 TTYUSE          010000  INT\r
4511 UBEG            000343' INT\r
4512 UBEG2           000350' \r
4513 UBEG3           000370' \r
4514 UBEGX           000366' \r
4515 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 22-4\r
4516         SYMBOL TABLE\r
4517 \r
4518 UBKN            001117' \r
4519 UBLK            000001  \r
4520 UBUF            001121' INT\r
4521 UCHA            000042  \r
4522 UCHN            000001  \r
4523 UDIR            000364' EXT\r
4524 UDIR2           000016' \r
4525 UDIR3           000022' \r
4526 UDIR4           000026' \r
4527 UDIREN          000200  \r
4528 UDIRIN          000100  \r
4529 UDIRK1          000034' \r
4530 UDIRLN          000004  \r
4531 UDIRSH          000000' \r
4532 UDMP            001125' \r
4533 UDMP0           000640' INT\r
4534 UDMP1           000641' \r
4535 UDMP1A          000674' \r
4536 UDMP1B          000676' \r
4537 UDMP1C          000712' \r
4538 UDMP2           000723' \r
4539 UDMPA           001126' \r
4540 UDMPI           001022' INT\r
4541 UDMPI2          001033' \r
4542 UDMPO           000633' \r
4543 UDMPRB          001053' \r
4544 UDVDAT          001122' \r
4545 UEND            000236' \r
4546 UEND2           000242' \r
4547 UENTER          000052' INT\r
4548 UERRCN          001153' \r
4549 UFREE           001064' EXT\r
4550 UIN             000204' \r
4551 UIN1            000217' \r
4552 UIN2            000251' \r
4553 UIN3            000254' \r
4554 UIN4            000265' \r
4555 UINTER          001142' \r
4556 ULINKF          001000  \r
4557 ULOOK           000035' INT\r
4558 ULOOK1          000041' \r
4559 UNIT            001116' \r
4560 UNWFRE          000400  \r
4561 UOFF            000615' \r
4562 UOUT            000125' \r
4563 UOUT1           000144' \r
4564 UOUT2           000153' \r
4565 UOUT3           000167' \r
4566 UOUT4           000171' \r
4567 UPROG           001120' \r
4568 URDIR           002000  \r
4569 UREV            010000  \r
4570 USETR           000377' \r
4571 \r\fDTSER2 - EXECUTIVE SYSTEM DEC-TAPE SERVICE WITH STACKING                 PAGE 22-5\r
4572         SYMBOL TABLE\r
4573 \r
4574 USETW           000375' \r
4575 USRJDA          000064' EXT\r
4576 USRMOD          010000  INT\r
4577 USRREL          001026' EXT\r
4578 USVDB           001151' \r
4579 USVIOS          001152' \r
4580 UTBERR          000373' \r
4581 UTBKER          000374' EXT\r
4582 UTC             000210  SPD\r
4583 UTDSP           000112' ENT\r
4584 UTIME           001244' \r
4585 UTPCLR          000063' INT\r
4586 UTPCLS          000312' INT\r
4587 UTPREL          000326' INT\r
4588 UTPRL1          000330' \r
4589 UTS             000214  SPD\r
4590 UTWDR           000311' INT\r
4591 UUO             000014  INT\r
4592 UX1             000001  \r
4593 UX2             000002  \r
4594 UX3             000005  \r
4595 UXIT            000311' EXT\r
4596 VEOT            000002  \r
4597 WAIT1           000342' EXT\r
4598 WD              000700  \r
4599 WSYNC           000363' EXT\r
4600 WTDA            000523' \r
4601 WTFW            000563' \r
4602 WTRM            000537' \r
4603 WTRV            000555' \r
4604 \fEEEEEEEEEEEEEEE      RRRRRRRRRRRR         RRRRRRRRRRRR            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
4605 EEEEEEEEEEEEEEE      RRRRRRRRRRRR         RRRRRRRRRRRR            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
4606 EEEEEEEEEEEEEEE      RRRRRRRRRRRR         RRRRRRRRRRRR            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
4607 EEE                  RRR         RRR      RRR         RRR      CCC                  OOO         OOO      NNN         NNN\r
4608 EEE                  RRR         RRR      RRR         RRR      CCC                  OOO         OOO      NNN         NNN\r
4609 EEE                  RRR         RRR      RRR         RRR      CCC                  OOO         OOO      NNN         NNN\r
4610 EEE                  RRR         RRR      RRR         RRR      CCC                  OOO         OOO      NNNNNN      NNN\r
4611 EEE                  RRR         RRR      RRR         RRR      CCC                  OOO         OOO      NNNNNN      NNN\r
4612 EEE                  RRR         RRR      RRR         RRR      CCC                  OOO         OOO      NNNNNN      NNN\r
4613 EEEEEEEEEEEE         RRRRRRRRRRRR         RRRRRRRRRRRR         CCC                  OOO         OOO      NNN   NNN   NNN\r
4614 EEEEEEEEEEEE         RRRRRRRRRRRR         RRRRRRRRRRRR         CCC                  OOO         OOO      NNN   NNN   NNN\r
4615 EEEEEEEEEEEE         RRRRRRRRRRRR         RRRRRRRRRRRR         CCC                  OOO         OOO      NNN   NNN   NNN\r
4616 EEE                  RRR   RRR            RRR   RRR            CCC                  OOO         OOO      NNN      NNNNNN\r
4617 EEE                  RRR   RRR            RRR   RRR            CCC                  OOO         OOO      NNN      NNNNNN\r
4618 EEE                  RRR   RRR            RRR   RRR            CCC                  OOO         OOO      NNN      NNNNNN\r
4619 EEE                  RRR      RRR         RRR      RRR         CCC                  OOO         OOO      NNN         NNN\r
4620 EEE                  RRR      RRR         RRR      RRR         CCC                  OOO         OOO      NNN         NNN\r
4621 EEE                  RRR      RRR         RRR      RRR         CCC                  OOO         OOO      NNN         NNN\r
4622 EEEEEEEEEEEEEEE      RRR         RRR      RRR         RRR         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
4623 EEEEEEEEEEEEEEE      RRR         RRR      RRR         RRR         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
4624 EEEEEEEEEEEEEEE      RRR         RRR      RRR         RRR         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
4625 \r
4626 \r
4627 \r
4628 \r
4629 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
4630 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
4631 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
4632 LLL                  SSS                        TTT                                                                     \r
4633 LLL                  SSS                        TTT                                                                     \r
4634 LLL                  SSS                        TTT                                                                     \r
4635 LLL                  SSS                        TTT                                                                     \r
4636 LLL                  SSS                        TTT                                                                     \r
4637 LLL                  SSS                        TTT                                                                     \r
4638 LLL                     SSSSSSSSS               TTT                                                                     \r
4639 LLL                     SSSSSSSSS               TTT                                                                     \r
4640 LLL                     SSSSSSSSS               TTT                                                                     \r
4641 LLL                              SSS            TTT                                                                     \r
4642 LLL                              SSS            TTT                                                                     \r
4643 LLL                              SSS            TTT                                                                     \r
4644 LLL                              SSS            TTT                                                                     \r
4645 LLL                              SSS            TTT                                                                     \r
4646 LLL                              SSS            TTT                                                                     \r
4647 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
4648 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
4649 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
4650 \r
4651 \r
4652 \r
4653 \r
4654 Request created: 24-April-1978  11:23:08\r
4655 File: DSKB1 :ERRCON.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:20
4656 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2524 \r
4657 File will be deleted after printing\r
4658 \f\rERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 1\r
4659         8-9-65\r
4660 \r
4661                                 00010           XLIST\r
4662                                 01930          LIST\r
4663 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 7\r
4664         8-9-65\r
4665 \r
4666 \r
4667                                 00010   TITLE ERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS\r
4668                                 00020   SUBTTL  8-9-65\r
4669                                 00030   EXTERNAL APRCHL,APRRET,HOLD,HOLDI,APRCHN\r
4670                                 00040   EXTERNAL JOB,JOBADR,JOBREL,TTYFND,TTYCTR,TTYSTR\r
4671                                 00050   EXTERNAL JBTADR, UXIT,JOBPDP,JOBTRP,USRPDP,UBUF,PJOBN\r
4672                                 00060   EXTERNAL CPOPJ,HOLDI1,WAIT1,USRPOV,JOBPFI\r
4673                                 00070   EXTERNAL CRLF,MJOBPD,JOBPDL,CPOPJ1\r
4674 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 2\r
4675         8-9-65\r
4676 \r
4677 \r
4678                                 00100   ;CALL:    PUSHJ PDP,ADRCK\r
4679                                 00110   ;                   HRRZ TAC,LOC\r
4680                                 00120   ;                   OK RETURN\r
4681 \r
4682                                 00140             INTERNAL ADRCK\r
4683 \r
4684         000000' 261140  000001  00160   ADRCK:    PUSH PDP, TAC\r
4685         000001' 256023  777777  00170             XCT @-1(PDP)\r
4686         000002' 350003  777777  00180             AOS -1(PDP)\r
4687         000003' 261140  000002  00190             PUSH PDP,TAC1\r
4688         000004' 135100  000000* 00200             LDB TAC1,PJOBN\r
4689         000005' 554102  000000* 00210             HLRZ TAC1,JBTADR(TAC1)\r
4690         000006' 303040  000000* 00220             CAILE TAC,JOBPFI      ;IN IO PROTECTED PART OF DATA AREA?\r
4691         000007' 313040  000002  00230             CAMLE TAC,TAC1        ;NO,IS IT GREATER THAN PROTECTION?\r
4692         000010' 260140  000014' 00240             PUSHJ PDP,ADRERR      ;YES\r
4693         000011' 262140  000002  00250             POP PDP,TAC1          ;NO\r
4694         000012' 262140  000001  00260             POP PDP, TAC\r
4695         000013' 263140  000000  00270             POPJ PDP,\r
4696 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 3\r
4697         8-9-65\r
4698 \r
4699 \r
4700                                 00300             INTERNAL ADRERR\r
4701 \r
4702         000014' 550100  000003  00320   ADRERR:   HRRZ TAC1,PDP\r
4703         000015' 317100  000000* 00330             CAMG TAC1,JOBADR      ;IS THIS ERROR AT UUO OR INTERRUPT SERV\r
4704         000016' 254000  000027' 00340             JRST ADRERI           ;INTERRUPT SERVICE LEVEL\r
4705         000017' 265040  000231' 00350             JSP TAC,ERRPTU\r
4706         000020' 440700  000023' 00360             POINT 7,AERM1\r
4707         000021' 260140  000155' 00370             PUSHJ PDP,ERNAM\r
4708         000022' 254000  000207' 00380             JRST ERSYC1\r
4709 \r
4710         000023' 406110  451212  00400   AERM1:    ASCIZ /ADDRESS CHECK FOR /\r
4711         000024' 516464  041620\r
4712         000025' 426071  320214\r
4713         000026' 476444  000000\r
4714 \r
4715         000027' 135200  000004* 00420   ADRERI:   LDB ITEM, PJOBN\r
4716         000030' 265040  000232' 00430             JSP TAC,ERRPNT\r
4717         000031' 440700  000023' 00440             POINT 7,AERM1\r
4718         000032' 260140  000155' 00450             PUSHJ PDP,ERNAM\r
4719         000033' 201100  000045' 00460             MOVEI TAC1,AERM3\r
4720         000034' 260140  000333' 00470             PUSHJ PDP,MESPNT\r
4721         000035' 250303  000000  00480   ADRER2:   EXCH DEVDAT, (PDP)    ;GET ADDRESS OF D.D. BLOCK DECTECTING ER\r
4722         000036' 135040  000422' 00490             LDB TAC, [POINT 3, DEVCHR(DEVDAT), 11]  ;GET PI CHANNEL NO.\r
4723         000037' 261140  000001  00500             PUSH PDP, TAC                 ;AND SAVE\r
4724         000040' 200046  000003  00510             MOVE TAC,DEVSER(DEVDAT)\r
4725         000041' 260141  000000  00520             PUSHJ PDP,DRL(TAC)    ;RELEASE DEVICE\r
4726         000042' 262140  000001  00530             POP PDP, TAC          ;RESTORE PI CHANNEL NO.\r
4727         000043' 250303  000000  00540             EXCH DEVDAT,(PDP)\r
4728         000044' 254000  000000* 00550             JRST HOLDI                    ;AND GO DISMISS CHANNEL\r
4729 \r
4730         000045' 202112  551222  00570   AERM3:    ASCIZ / DURING INTERRUPT/\r
4731         000046' 472164  044634\r
4732         000047' 522132  251252\r
4733         000050' 502500  000000\r
4734 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 4\r
4735         8-9-65\r
4736 \r
4737 \r
4738                                 00600             INTERNAL APRILM\r
4739                                 00610             EXTERNAL USRREL\r
4740 \r
4741                         200000  00630             POVF=200000\r
4742                         400000  00640             POVC=400000\r
4743                         010000  00650             NXM=10000\r
4744                         020000  00660             ILM=20000\r
4745 \r
4746         000051' 201040  000000* 00680   APRILM:   MOVEI TAC,APRCHN\r
4747         000052' 700340  020000  00690             CONSO APR,ILM\r
4748         000053' 254000  000100' 00700             JRST APRNXM\r
4749         000054' 700201  020000  00710             CONO APR,ILM(TAC)\r
4750         000055' 550040  000000* 00720             HRRZ TAC,APRCHL\r
4751         000056' 313040  000000* 00730             CAMLE TAC, USRREL\r
4752         000057' 254000  000064' 00740             JRST APRJRS\r
4753         000060' 265040  000231' 00750             JSP TAC,ERRPTU\r
4754         000061' 440700  000070' 00760             POINT 7,APM1\r
4755         000062' 260140  000144' 00770   APRIL1:   PUSHJ PDP,EPTADR\r
4756         000063' 254000  000132' 00780             JRST APRDMS           ;GO DISMISS APR CHANNEL\r
4757 \r
4758         000064' 265040  000231' 00800   APRJRS:   JSP TAC,ERRPTU\r
4759         000065' 440700  000073' 00810             POINT 7,APM2\r
4760         000066' 260140  000144' 00820             PUSHJ PDP,EPTADR\r
4761         000067' 254000  000132' 00830             JRST APRDMS\r
4762 \r
4763         000070' 446311  420232  00850   APM1:     ASCIZ /ILL MEM REF/\r
4764         000071' 426324  051212\r
4765         000072' 430000  000000\r
4766 \r
4767         000073' 502064  042660  00870   APM2:     ASCIZ /PC EXCEEDS MEM BOUND/\r
4768         000074' 416130  542246\r
4769         000075' 202330  546500\r
4770         000076' 412372  547210\r
4771         000077' 000000  000000\r
4772 \r
4773 \r
4774 \r
4775 \r
4776         000100' 700340  010000  00920   APRNXM:   CONSO APR,NXM\r
4777         000101' 254000  000111' 00930             JRST APRPDL\r
4778         000102' 700201  010000  00940             CONO APR,NXM(TAC)\r
4779         000103' 265040  000231' 00950             JSP TAC,ERRPTU\r
4780         000104' 440700  000106' 00960             POINT 7,APM3\r
4781         000105' 254000  000062' 00970             JRST APRIL1\r
4782 \r
4783         000106' 472371  620212  00990   APM3:     ASCIZ /NON EX MEM/\r
4784         000107' 541011  542632\r
4785         000110' 000000  000000\r
4786 \r
4787 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 5\r
4788         8-9-65\r
4789 \r
4790 \r
4791         000111' 700340  200000  01030   APRPDL:   CONSO APR,POVF\r
4792         000112' 265240  000202' 01040             JSP DAT, ERROR        ;NOT APR, MUST BE HARDWARE PROB.\r
4793         000113' 700201  400000  01050             CONO APR,POVC(TAC)\r
4794         000114' 200040  000055* 01060             MOVE TAC,APRCHL\r
4795         000115' 332100  000000* 01070             SKIPE TAC1,USRPOV\r
4796         000116' 607040  010000  01080             TLNN TAC,10000        ;WAS OVF IN USER MODE?\r
4797         000117' 254000  000122' 01090             JRST PDLOV                    ;NO, GO PRINT MESSAGE\r
4798         000120' 542100  000114* 01100             HRRM TAC1,APRCHL      ;RESET RETURN\r
4799         000121' 254000  000000* 01110             JRST APRRET                   ;DISMISS CLOCK\r
4800         000122' 265040  000231' 01120   PDLOV:    JSP TAC,ERRPTU\r
4801         000123' 440700  000134' 01130             POINT 7,APM4\r
4802         000124' 260140  000144' 01140             PUSHJ PDP,EPTADR\r
4803         000125' 200040  000120* 01150             MOVE TAC,APRCHL\r
4804         000126' 603040  010000  01160             TLNE TAC,10000\r
4805         000127' 254000  000132' 01170             JRST APRDMS           ;GO DISMISS APR CHANNEL\r
4806         000130' 201100  000225' 01180             MOVEI TAC1,ERMS1\r
4807         000131' 260140  000340' 01190             PUSHJ PDP,MESPC\r
4808         000132' 201040  000000  01200   APRDMS:   MOVEI TAC, 0          ;SET TO DISMISS APR CHANNEL\r
4809         000133' 254000  000000* 01210             JRST HOLDI1\r
4810 \r
4811         000134' 502111  420236  01230   APM4:     ASCIZ .PDL OV.\r
4812         000135' 530000  000000\r
4813 \r
4814         000136' 202032  420212  01250   APMSYS:   ASCIZ / AT EXEC LOC /\r
4815         000137' 542130  320230\r
4816         000140' 476064  000000\r
4817 \r
4818 \r
4819         000141' 202032  420252  01280   APMUSR:   ASCIZ / AT USER LOC /\r
4820         000142' 516132  220230\r
4821         000143' 476064  000000\r
4822 \r
4823 \r
4824         000144' 200040  000125* 01310   EPTADR:   MOVE TAC,APRCHL\r
4825         000145' 261140  000001  01320   EPTAD1:   PUSH PDP,TAC          ;PPRINT "AT EXEC LOC " OR "AT USER LOC"\r
4826         000146' 201100  000136' 01330             MOVEI TAC1,APMSYS\r
4827         000147' 603040  010000  01340             TLNE TAC,10000\r
4828         000150' 201100  000141' 01350             MOVEI TAC1,APMUSR\r
4829         000151' 260140  000333' 01360             PUSHJ PDP,MESPNT\r
4830         000152' 262140  000001  01370             POP PDP,TAC\r
4831         000153' 405040  777777  01380             ANDI TAC,-1\r
4832         000154' 254000  000344' 01390             JRST OCTPNT\r
4833 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 6\r
4834         8-9-65\r
4835 \r
4836 \r
4837                                 01420             INTERNAL ERNAM\r
4838 \r
4839 \r
4840         000155' 201100  000167' 01450   ERNAM:    MOVEI TAC1,ERRDEV\r
4841         000156' 260140  000333' 01460             PUSHJ PDP,MESPNT\r
4842         000157' 200100  000423' 01470             MOVE TAC1,[POINT 6,@-(PDP)]\r
4843         000160' 201000  000006  01480             MOVEI 0,6\r
4844         000161' 134040  000002  01490   ERNAM1:   ILDB TAC,TAC1\r
4845         000162' 322040  000166' 01500             JUMPE TAC,.+4\r
4846         000163' 271040  000240  01510             ADDI TAC,240\r
4847         000164' 136040  000005  01520             IDPB TAC,DAT\r
4848         000165' 367000  000161' 01530             SOJG 0,ERNAM1\r
4849         000166' 263140  000000  01540             POPJ PDP,\r
4850 \r
4851         000167' 422132  644606  01560   ERRDEV:   ASCIZ /DEVICE /\r
4852         000170' 425000  000000\r
4853 \r
4854                                 01580   INTERNAL DIRERR\r
4855 \r
4856         000171' 262140  000000  01600   DIRERR:   POP PDP,0 ;FLUSH RETURN ADDRESS\r
4857         000172' 265040  000231' 01610             JSP TAC,ERRPTU\r
4858         000173' 440700  000176' 01620             POINT 7,DIRER1\r
4859         000174' 260140  000155' 01630             PUSHJ PDP,ERNAM\r
4860         000175' 254000  000207' 01640             JRST ERSYC1\r
4861 \r
4862         000176' 412030  420210  01660   DIRER1:   ASCIZ /BAD DIRECTORY FOR /\r
4863         000177' 446450  541650\r
4864         000200' 476453  120214\r
4865         000201' 476444  000000\r
4866 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 7\r
4867         8-9-65\r
4868 \r
4869 \r
4870                                 01690   ;         INTERNAL ERRDIS\r
4871 \r
4872                                 01710   ;ERRDIS:  LDB TAC,[POINT 4,DEVCHR(DEVDAT),17]\r
4873                                 01720   ;         ADDI TAC,ERRC2\r
4874                                 01730   ;         SKIPL TAC1,@TAC\r
4875                                 01740   ;         JRST 4,.\r
4876                                 01750   ;         TLZ TAC1,400000\r
4877                                 01760   ;         MOVEM TAC1,@TAC\r
4878                                 01770   ;         MOVE PDP,JOBPDP(PROG)\r
4879                                 01780   ;         MOVE TAC,@TAC\r
4880                                 01790   ;         HRLI TAC,PROG\r
4881                                 01800   ;         MOVE TAC,@TAC\r
4882                                 01810   ;         HLL TAC,1(PDP)\r
4883                                 01820   ;         PUSH PDP,TAC\r
4884                                 01830   ;         JRST UXIT\r
4885 \r
4886                                 01850   ;ERRC2:   XWD PROG,JOBTRP\r
4887 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 8\r
4888         8-9-65\r
4889 \r
4890 \r
4891                                 01880   ;UNEXPLAINED ERROR ENTRY\r
4892                                 01890   ;CALL:    JSP DAT, ERROR\r
4893 \r
4894                                 01910   INTERNAL ERROR\r
4895                                 01920   EXTERNAL JOBPD1\r
4896 \r
4897         000202' 201200  000001  01940   ERROR:    MOVEI ITEM,1          ;PRINT ON OPERATORS CONSOLE(JOB 1)\r
4898         000203' 265040  000232' 01950             JSP TAC,ERRPNT\r
4899         000204' 440700  000220' 01960             POINT 7,ERR1\r
4900         000205' 550043  777776  01970             HRRZ TAC,-2(PDP)      ;GET LOC OF CALL TO ERROR\r
4901         000206' 260140  000342' 01980   EPOCT:    PUSHJ PDP,PCPNT\r
4902         000207' 201100  000225' 01990   ERSYC1:   MOVEI TAC1,ERMS1\r
4903 \r
4904         000210' 260140  000340' 02010   ERSYCL:   PUSHJ PDP,MESPC\r
4905         000211' 254000  000000* 02020             JRST HOLD\r
4906 \r
4907         000212' 260140  000333' 02040   EPCAD0:   PUSHJ PDP,MESPNT      ;PRINT MESS\r
4908         000213' 260140  000216' 02050   EPCAD1:   PUSHJ PDP,EPCAD       ;PRINT LAST USER CALL TO MONITOR\r
4909         000214' 254000  000211* 02060             JRST HOLD\r
4910 \r
4911         000215' 260140  000333' 02080   EPCADR:   PUSHJ PDP,MESPNT\r
4912         000216' 200051  000000* 02090   EPCAD:    MOVE TAC, JOBPD1(JDAT)        ;GET LAST USER UUO CALL\r
4913         000217' 364040  000145' 02100             SOJA TAC,EPTAD1\r
4914 \r
4915         000220' 426452  247644  02120   ERR1:     ASCIZ /ERROR IN MONITOR AT /\r
4916         000221' 202231  620232\r
4917         000222' 476351  152236\r
4918         000223' 511010  152100\r
4919         000224' 000000  000000\r
4920         000225' 355010  554212  02130   ERMS1:    ASCIZ /; EXEC CALLED FROM /\r
4921         000226' 415010  340630\r
4922         000227' 462130  420214\r
4923         000230' 512371  520000\r
4924 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 9\r
4925         8-9-65\r
4926 \r
4927 \r
4928                                 02160   ;ERROR SETUP ROUTINE\r
4929                                 02170   ;CALL:    MOVE ITEM, JOBNUMBER\r
4930                                 02180   ;         MOVE DEVDAT, DEVICE DATA BLOCK IF DEVICE ERROR\r
4931                                 02190   ;         JSP TAC, ERRPNT\r
4932                                 02200   ;         POINT 7, ERROR MESSAGE\r
4933                                 02210   ;         RETURN\r
4934 \r
4935 \r
4936                                 02240             INTERNAL ERRPNT,ERRPTU\r
4937 \r
4938         000231' 200200  000000* 02260   ERRPTU:   MOVE ITEM,JOB\r
4939         000232' 200344  000005* 02270   ERRPNT:   MOVE PROG,JBTADR(ITEM)\r
4940         000233' 200444  000232* 02280             MOVE JDAT,JBTADR(ITEM)        ;GET ADDRESS OF JOB DATA AREA\r
4941         000234' 322440  000240' 02290             JUMPE JDAT, ERRPD     ;SET UP PDP IN USER AREA IF HE HAS CORE\r
4942         000235' 205140  000000* 02300             MOVSI PDP, MJOBPD\r
4943         000236' 541151  000000* 02310             HRRI PDP, JOBPDL(JDAT)\r
4944 \r
4945         000237' 253140  000240' 02330             AOBJN PDP, .+1                ;LEAVE ROOM FOR UUO RETURN\r
4946         000240' 261140  000005  02340   ERRPD:    PUSH PDP, DAT         ;SAVE CLALL TO ERROR SUB\r
4947         000241' 261140  000006  02350             PUSH PDP, DEVDAT\r
4948         000242' 261140  000001  02360             PUSH PDP, TAC                 ;SAVE RETURN\r
4949         000243' 260140  000000* 02370             PUSHJ PDP, TTYFND\r
4950         000244' 201100  000254' 02380             MOVEI TAC1,SYSERR\r
4951         000245' 260140  000333' 02390             PUSHJ PDP,MESPNT\r
4952         000246' 200040  000004  02400             MOVE TAC, ITEM\r
4953         000247' 260140  000362' 02410             PUSHJ PDP,RADX10\r
4954         000250' 260140  000000* 02420             PUSHJ PDP, CRLF               ;PRINT CRLF\r
4955         000251' 200123  000000  02430             MOVE TAC1, @(PDP)\r
4956         000252' 260140  000333' 02440             PUSHJ PDP, MESPNT\r
4957         000253' 254000  000000* 02450             JRST CPOPJ1\r
4958 \r
4959         000254'                 02470   SYSERR:   ASCIZ /\r
4960         000254' 064250  551244  02480   ERROR IN JOB /\r
4961         000255' 476444  044634\r
4962         000256' 202251  741100\r
4963         000257' 000000  000000\r
4964 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 10\r
4965         8-9-65\r
4966 \r
4967 \r
4968                                 02510   ,ERROR TRAP HANDLING\r
4969 \r
4970                                 02530   ;ERRTRP:  LDB TAC,[POINT 4,DEVCHR(DEVDAT),17]\r
4971                                 02540   ;         ADDI TAC,ERRC2\r
4972                                 02550   ;         SKIPG TAC1,@TAC\r
4973                                 02560   ;         TLO TAC1,400000\r
4974                                 02570   ;         MOVEM TAC1,@TAC\r
4975                                 02580   ;         AOS       TAC\r
4976                                 02590   ;         MOVE PDP,JOBPDP(PROG)\r
4977                                 02600   ;         AOS       TAC\r
4978                                 02610   ;         MOVE TAC1,1(PDP)\r
4979                                 02620   ;         PUSH PDP,TAC\r
4980                                 02630   ;         HLL TAC1,0(PDP)\r
4981                                 02640   ;         HRLI TAC1,PROG\r
4982                                 02650   ;         MOVEM TAC,@TAC1\r
4983                                 02660   ;         JRST UXIT\r
4984 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 11\r
4985         8-9-65\r
4986 \r
4987 \r
4988                                 02690             INTERNAL ILLINP\r
4989 \r
4990         000260' 265040  000231' 02710   ILLINP:   JSP TAC,ERRPTU\r
4991         000261' 440700  000270' 02720             POINT 7,ILLOT\r
4992         000262' 260140  000155' 02730             PUSHJ PDP,ERNAM\r
4993         000263' 265100  000212' 02740             JSP TAC1, EPCAD0\r
4994         000264' 202070  147234  02750   ASCIZ / CANNOT DO INPUT/\r
4995         000265' 476504  042236\r
4996         000266' 202231  650252\r
4997         000267' 520000  000000\r
4998 \r
4999         000270' 476532  450252  02770   ILLOT:    ASCIZ /OUTPUT /\r
5000         000271' 521000  000000\r
5001 \r
5002 \r
5003                                 02800             INTERNAL ILLINS\r
5004 \r
5005         000272' 265040  000231' 02820   ILLINS:   JSP TAC,ERRPTU\r
5006         000273' 440700  000275' 02830             POINT 7,ERRIL\r
5007         000274' 254000  000213' 02840             JRST EPCAD1\r
5008 \r
5009         000275' 446311  420222  02860   ERRIL:    ASCIZ /ILL INST/\r
5010         000276' 472472  400000\r
5011 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 12\r
5012         8-9-65\r
5013 \r
5014 \r
5015                                 02890           INTERNAL ILLMOD\r
5016 \r
5017         000277' 265040  000231' 02910   ILLMOD: JSP TAC,ERRPTU\r
5018         000300' 440700  000303' 02920           POINT 7,ILLMO1\r
5019         000301' 260140  000155' 02930           PUSHJ PDP,ERNAM\r
5020         000302' 254000  000213' 02940           JRST EPCAD1\r
5021 \r
5022         000303' 446311  420210  02960   ILLMO1: ASCIZ /ILL DEVICE DATA MODE FOR /\r
5023         000304' 426551  141612\r
5024         000305' 202110  152202\r
5025         000306' 202331  742212\r
5026         000307' 202151  751100\r
5027         000310' 000000  000000\r
5028 \r
5029                                 02980           INTERNAL ILLOUT\r
5030 \r
5031         000311' 265040  000231' 03000   ILLOUT: JSP TAC,ERRPTU\r
5032         000312' 440700  000321' 03010           POINT 7,ILLIN\r
5033         000313' 260140  000155' 03020           PUSHJ PDP,ERNAM\r
5034         000314' 265100  000212' 03030           JSP TAC1,EPCAD0\r
5035 \r
5036         000315' 202070  147234  03050   ILM3:           ASCIZ / CANNOT DO OUTPUT/\r
5037         000316' 476504  042236\r
5038         000317' 202372  552240\r
5039         000320' 526500  000000\r
5040 \r
5041         000321' 446352  052650  03070   ILLIN:  ASCIZ /INPUT /\r
5042         000322' 200000  000000\r
5043                                 03080   INTERNAL IOIERR\r
5044 \r
5045         000323' 265040  000231' 03100   IOIERR: JSP TAC,ERRPTU\r
5046         000324' 440700  000326' 03110           POINT 7,IOIER1\r
5047         000325' 254000  000213' 03120           JRST EPCAD1\r
5048 \r
5049         000326' 446364  052236  03140   IOIER1: ASCIZ /IO TO UNASSIGNED CHANNEL/\r
5050         000327' 202531  640646\r
5051         000330' 516230  747212\r
5052         000331' 421010  344202\r
5053         000332' 472350  546000\r
5054 \r
5055                                 03160   ,CALL WITH DEST. POINTER IN DAT\r
5056                                 03170   ,SOURCE POINTER IN TAC1\r
5057                                 03180   ,MOVES UNTIL A ZERO CHAR. IS FOUND\r
5058 \r
5059                                 03200           INTERNAL MESPNT\r
5060         000333' 505100  440700  03210   MESPNT: HRLI TAC1,440700\r
5061         000334' 134040  000002  03220   MES1:   ILDB TAC, TAC1\r
5062         000335' 322040  000000* 03230           JUMPE TAC,CPOPJ\r
5063         000336' 136040  000005  03240           IDPB TAC, DAT\r
5064         000337' 254000  000334' 03250           JRST MES1\r
5065 \r
5066                                 03270   ,ANY RADIX PRINT\r
5067 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 12-1\r
5068         8-9-65\r
5069 \r
5070                                 03280   ,  TAC1 = RADIX\r
5071                                 03290   ,  DAT = BYTE POINTER\r
5072                                 03300   ,  TAC = NUMBER\r
5073 \r
5074                                 03320           INTERNAL OCTPNT, ANYRDX, PCPNT\r
5075                                 03330           EXTERNAL UUO0,JOBPD1\r
5076 \r
5077         000340' 260140  000333' 03350   MESPC:  PUSHJ PDP, MESPNT       ;PRINT LAST USER UUO CALL\r
5078         000341' 550051  000216* 03360           HRRZ TAC,JOBPD1(JDAT)\r
5079         000342' 275040  000001  03370   PCPNT:  SUBI TAC,1\r
5080         000343' 404040  777777  03380           AND TAC,-1\r
5081         000344' 201100  000010  03390   OCTPNT: MOVEI TAC1,10\r
5082         000345' 261140  000004  03400   ANYRDX: PUSH PDP,ITEM\r
5083         000346' 552100  000004  03410           HRRZM TAC1, ITEM\r
5084         000347' 260140  000352' 03420           PUSHJ PDP,OCTP1\r
5085         000350' 262140  000004  03430           POP PDP,ITEM\r
5086         000351' 263140  000000  03440           POPJ PDP,\r
5087 \r
5088         000352' 230040  000004  03460   OCTP1:  IDIV TAC,ITEM\r
5089         000353' 506103  000000  03470           HRLM TAC1, (PDP)\r
5090         000354' 322040  000356' 03480           JUMPE TAC, .+2\r
5091         000355' 260140  000352' 03490           PUSHJ PDP, OCTP1\r
5092         000356' 554043  000000  03500           HLRZ TAC, (PDP)\r
5093         000357' 271040  000060  03510           ADDI TAC, "0"\r
5094         000360' 136040  000005  03520           IDPB TAC, DAT\r
5095         000361' 263140  000000  03530           POPJ PDP,\r
5096 \r
5097                                 03550   INTERNAL RADX10\r
5098 \r
5099         000362' 261140  000002  03570   RADX10: PUSH PDP,TAC1   ;OUTPUT DECIMAL\r
5100         000363' 201100  000012  03580           MOVEI TAC1,12\r
5101         000364' 260140  000345' 03590           PUSHJ PDP,ANYRDX\r
5102         000365' 262140  000002  03600           POP PDP,TAC1\r
5103         000366' 263140  000000  03610           POPJ PDP,\r
5104 \r
5105                                 03630   REPEAT 0,<\r
5106                                 03640   PCPNT:  SUBI TAC,1\r
5107                                 03650   OCTPNT: HRLZ TAC1,TAC\r
5108                                 03660     MOVSI TAC,-1\r
5109                                 03670    LSHC TAC,3\r
5110                                 03680     TRNN TAC,7\r
5111                                 03690      JUMPN TAC1,.-2\r
5112                                 03700   OCTPN1: ADDI TAC,"0"\r
5113                                 03710     IDPB TAC,DAT\r
5114                                 03720     JUMPGE TAC,CPOPJ\r
5115                                 03730     HLLZS TAC\r
5116                                 03740     LSHC TAC,3\r
5117                                 03750     JRST OCTPN1\r
5118                                 03760   >\r
5119 \r
5120                                 03780           INTERNAL UTBKER\r
5121         000367' 135200  000027* 03790   UTBKER: LDB ITEM,PJOBN  ;JOB NUMBER\r
5122         000370' 265040  000232' 03800           JSP TAC,ERRPNT\r
5123 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 12-2\r
5124         8-9-65\r
5125 \r
5126         000371' 440700  000401' 03810           POINT 7,UTERM\r
5127         000372' 200040  000000* 03820           MOVE TAC,UBUF\r
5128         000373' 275047  000000  03830           SUBI TAC,(PROG)\r
5129         000374' 260140  000344' 03840           PUSHJ PDP,OCTPNT\r
5130         000375' 201100  000424' 03850           MOVEI TAC1, [ASCII / /]\r
5131         000376' 260140  000333' 03860           PUSHJ PDP, MESPNT\r
5132         000377' 260140  000155' 03870           PUSHJ PDP,ERNAM\r
5133         000400' 254000  000035' 03880           JRST ADRER2\r
5134 \r
5135         000401' 446311  420210  03900   UTERM:  ASCIZ /ILL DT BLOCK NO. , BUFFER AT /\r
5136         000402' 521010  246236\r
5137         000403' 416264  047236\r
5138         000404' 271005  420204\r
5139         000405' 526150  642644\r
5140         000406' 202032  420000\r
5141 \r
5142                                 03920           INTERNAL UUOERR\r
5143                                 03930           EXTERNAL UUO0\r
5144 \r
5145         000407' 265040  000231' 03950   UUOERR: JSP TAC,ERRPTU\r
5146         000410' 440700  000416' 03960           POINT 7,UUOER1\r
5147         000411' 200040  000000* 03970           MOVE TAC, UUO0  ;UUO PC\r
5148         000412' 603040  010000  03980           TLNE TAC, 10000 ;WAS IT FROM USER?\r
5149         000413' 254000  000213' 03990           JRST EPCAD1     ;YES, JUST PRINT LOC OF CALL\r
5150         000414' 260140  000145' 04000           PUSHJ PDP,EPTAD1        ;NO, PRINT BOTH EXEC CALL\r
5151         000415' 254000  000207' 04010           JRST ERSYC1     ;AND USER CALL\r
5152 \r
5153         000416' 446311  420240  04030   UUOER1: ASCIZ /ILL PROG. OP. USED/\r
5154         000417' 512370  727100\r
5155         000420' 476405  620252\r
5156         000421' 516130  400000\r
5157                                 04040           END,\r
5158         000422' 300306  000001\r
5159         000423' 440623  000000\r
5160         000424' 200000  000000\r
5161 \r
5162 NO ERRORS DETECTED\r
5163 \r
5164 PROGRAM BREAK IS 000425\r
5165 \r
5166 8K CORE USED\r
5167 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 13\r
5168         SYMBOL TABLE\r
5169 \r
5170                 000320  \r
5171 A               000000  INT\r
5172 AC1             000015  INT\r
5173 AC2             000016  INT\r
5174 AC3             000017  INT\r
5175 ADRCK           000000' INT\r
5176 ADRER2          000035' \r
5177 ADRERI          000027' \r
5178 ADRERR          000014' INT\r
5179 AERM1           000023' \r
5180 AERM3           000045' \r
5181 AL              000001  INT\r
5182 ANYRDX          000345' INT\r
5183 APM1            000070' \r
5184 APM2            000073' \r
5185 APM3            000106' \r
5186 APM4            000134' \r
5187 APMSYS          000136' \r
5188 APMUSR          000141' \r
5189 APR             000000  SPD\r
5190 APRCHL          000144' EXT\r
5191 APRCHN          000051' EXT\r
5192 APRDMS          000132' \r
5193 APRIL1          000062' \r
5194 APRILM          000051' INT\r
5195 APRJRS          000064' \r
5196 APRNXM          000100' \r
5197 APRPDL          000111' \r
5198 APRRET          000121' EXT\r
5199 ASSCON          400000  INT\r
5200 ASSPRG          200000  INT\r
5201 B               000014  INT\r
5202 BUFPNT          000012  INT\r
5203 BUFWRD          000013  INT\r
5204 CLOSB           002000  INT\r
5205 CLSIN           000002  INT\r
5206 CLSOUT          000001  INT\r
5207 CPOPJ           000335' EXT\r
5208 CPOPJ1          000253' EXT\r
5209 CRLF            000250' EXT\r
5210 D               000017  INT\r
5211 DAT             000005  INT\r
5212 DCL             000001  INT\r
5213 DCW             020000  INT\r
5214 DDI             000007  INT\r
5215 DDO             000006  INT\r
5216 DDTMEM          000037  INT\r
5217 DDTSYM          000036  INT\r
5218 DEN             000004  INT\r
5219 DEVADR          000007  INT\r
5220 DEVBUF          000006  INT\r
5221 DEVCHR          000001  INT\r
5222 DEVCTR          000011  INT\r
5223 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 13-1\r
5224         SYMBOL TABLE\r
5225 \r
5226 DEVDAT          000006  INT\r
5227 DEVIAD          000007  INT\r
5228 DEVIOS          000002  INT\r
5229 DEVLOG          000005  INT\r
5230 DEVMOD          000004  INT\r
5231 DEVNAM          000000  INT\r
5232 DEVOAD          000010  INT\r
5233 DEVPTR          000010  INT\r
5234 DEVSER          000003  INT\r
5235 DGF             000012  INT\r
5236 DIN             000003  INT\r
5237 DIRER1          000176' \r
5238 DIRERR          000171' INT\r
5239 DLK             000005  INT\r
5240 DOU             000002  INT\r
5241 DR              000016  INT\r
5242 DRL             000000  INT\r
5243 DSI             000011  INT\r
5244 DSO             000010  INT\r
5245 DTW             040000  INT\r
5246 DVAVAL          000040  INT\r
5247 DVCDR           100000  INT\r
5248 DVDIR           000004  INT\r
5249 DVDIRI          400000  INT\r
5250 DVIN            000002  INT\r
5251 DVLPT           040000  INT\r
5252 DVMTA           000020  INT\r
5253 DVOUT           000001  INT\r
5254 DVTTY           000010  INT\r
5255 ENTRB           020000  INT\r
5256 EPCAD           000216' \r
5257 EPCAD0          000212' \r
5258 EPCAD1          000213' \r
5259 EPCADR          000215' \r
5260 EPOCT           000206' \r
5261 EPTAD1          000145' \r
5262 EPTADR          000144' \r
5263 ERMS1           000225' \r
5264 ERNAM           000155' INT\r
5265 ERNAM1          000161' \r
5266 ERR1            000220' \r
5267 ERRDEV          000167' \r
5268 ERRIL           000275' \r
5269 ERROR           000202' INT\r
5270 ERRPD           000240' \r
5271 ERRPNT          000232' INT\r
5272 ERRPTU          000231' INT\r
5273 ERSYC1          000207' \r
5274 ERSYCL          000210' \r
5275 HOLD            000214' EXT\r
5276 HOLDI           000044' EXT\r
5277 HOLDI1          000133' EXT\r
5278 I               000010  INT\r
5279 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 13-2\r
5280         SYMBOL TABLE\r
5281 \r
5282 IB              000013  INT\r
5283 IBUFB           200000  INT\r
5284 ILLIN           000321' \r
5285 ILLINP          000260' INT\r
5286 ILLINS          000272' INT\r
5287 ILLMO1          000303' \r
5288 ILLMOD          000277' INT\r
5289 ILLOT           000270' \r
5290 ILLOUT          000311' INT\r
5291 ILM             020000  \r
5292 ILM3            000315' \r
5293 INITB           400000  INT\r
5294 INPB            010000  INT\r
5295 IO              000020  INT\r
5296 IOACT           010000  INT\r
5297 IOBEG           000002  INT\r
5298 IOBKTL          040000  INT\r
5299 IOCON           000040  INT\r
5300 IODEND          020000  INT\r
5301 IODERR          200000  INT\r
5302 IODISC          400000  INT\r
5303 IODONE          400000  INT\r
5304 IODTER          100000  INT\r
5305 IOEND           000040  INT\r
5306 IOFST           000004  INT\r
5307 IOIER1          000326' \r
5308 IOIERR          000323' INT\r
5309 IOIMPM          400000  INT\r
5310 IONRCK          000100  INT\r
5311 IORDEL          000100  INT\r
5312 IORET           000020  INT\r
5313 IOS             000000  INT\r
5314 IOSTRT          000010  INT\r
5315 IOUSE           400000  INT\r
5316 IOW             000001  INT\r
5317 IOWC            000020  INT\r
5318 IOWS            400000  INT\r
5319 ITEM            000004  INT\r
5320 JBFADR          000000  INT\r
5321 JBFCTR          000002  INT\r
5322 JBFPTR          000001  INT\r
5323 JBTADR          000233' EXT\r
5324 JBUF            000005  INT\r
5325 JDAT            000011  INT\r
5326 JERR            002000  INT\r
5327 JIOW            100000  INT\r
5328 JNA             004000  INT\r
5329 JOB             000231' EXT\r
5330 JOBADR          000015' EXT\r
5331 JOBPD1          000341' EXT\r
5332 JOBPDL          000236' EXT\r
5333 JOBPDP          000000  EXT\r
5334 JOBPFI          000006' EXT\r
5335 \r\fERRCON - ERROR HANDLING ROUTINE FOR MONITOR DECTECTED ERRORS                 PAGE 13-3\r
5336         SYMBOL TABLE\r
5337 \r
5338 JOBREL          000000  EXT\r
5339 JOBTRP          000000  EXT\r
5340 LOOKB           040000  INT\r
5341 MES1            000334' \r
5342 MESPC           000340' \r
5343 MESPNT          000333' INT\r
5344 MJOBPD          000235' EXT\r
5345 MTW             010000  INT\r
5346 NXM             010000  \r
5347 OBUFB           100000  INT\r
5348 OCTP1           000352' \r
5349 OCTPNT          000344' INT\r
5350 OUTPB           004000  INT\r
5351 PCPNT           000342' INT\r
5352 PDLOV           000122' \r
5353 PDP             000003  INT\r
5354 PICHN           000100  INT\r
5355 PJOBN           000367' EXT\r
5356 POVC            400000  \r
5357 POVF            200000  \r
5358 PROG            000007  INT\r
5359 RADX10          000362' INT\r
5360 RUN             200000  INT\r
5361 RUNABL          204000  INT\r
5362 SYSERR          000254' \r
5363 TAC             000001  INT\r
5364 TAC1            000002  INT\r
5365 TEM             000010  INT\r
5366 TTYATC          020000  INT\r
5367 TTYCTR          000000  EXT\r
5368 TTYFND          000243' EXT\r
5369 TTYSTR          000000  EXT\r
5370 TTYUSE          010000  INT\r
5371 UBUF            000372' EXT\r
5372 USRMOD          010000  INT\r
5373 USRPDP          000000  EXT\r
5374 USRPOV          000115' EXT\r
5375 USRREL          000056' EXT\r
5376 UTBKER          000367' INT\r
5377 UTERM           000401' \r
5378 UUO             000014  INT\r
5379 UUO0            000411' EXT\r
5380 UUOER1          000416' \r
5381 UUOERR          000407' INT\r
5382 UXIT            000000  EXT\r
5383 WAIT1           000000  EXT\r
5384 \f   IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN      TTTTTTTTTTTTTTT\r
5385    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN      TTTTTTTTTTTTTTT\r
5386    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN      TTTTTTTTTTTTTTT\r
5387       III            OOO         OOO      CCC                  OOO         OOO      NNN         NNN            TTT      \r
5388       III            OOO         OOO      CCC                  OOO         OOO      NNN         NNN            TTT      \r
5389       III            OOO         OOO      CCC                  OOO         OOO      NNN         NNN            TTT      \r
5390       III            OOO         OOO      CCC                  OOO         OOO      NNNNNN      NNN            TTT      \r
5391       III            OOO         OOO      CCC                  OOO         OOO      NNNNNN      NNN            TTT      \r
5392       III            OOO         OOO      CCC                  OOO         OOO      NNNNNN      NNN            TTT      \r
5393       III            OOO         OOO      CCC                  OOO         OOO      NNN   NNN   NNN            TTT      \r
5394       III            OOO         OOO      CCC                  OOO         OOO      NNN   NNN   NNN            TTT      \r
5395       III            OOO         OOO      CCC                  OOO         OOO      NNN   NNN   NNN            TTT      \r
5396       III            OOO         OOO      CCC                  OOO         OOO      NNN      NNNNNN            TTT      \r
5397       III            OOO         OOO      CCC                  OOO         OOO      NNN      NNNNNN            TTT      \r
5398       III            OOO         OOO      CCC                  OOO         OOO      NNN      NNNNNN            TTT      \r
5399       III            OOO         OOO      CCC                  OOO         OOO      NNN         NNN            TTT      \r
5400       III            OOO         OOO      CCC                  OOO         OOO      NNN         NNN            TTT      \r
5401       III            OOO         OOO      CCC                  OOO         OOO      NNN         NNN            TTT      \r
5402    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN            TTT      \r
5403    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN            TTT      \r
5404    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN            TTT      \r
5405 \r
5406 \r
5407 \r
5408 \r
5409 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
5410 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
5411 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
5412 LLL                  SSS                        TTT                                                                     \r
5413 LLL                  SSS                        TTT                                                                     \r
5414 LLL                  SSS                        TTT                                                                     \r
5415 LLL                  SSS                        TTT                                                                     \r
5416 LLL                  SSS                        TTT                                                                     \r
5417 LLL                  SSS                        TTT                                                                     \r
5418 LLL                     SSSSSSSSS               TTT                                                                     \r
5419 LLL                     SSSSSSSSS               TTT                                                                     \r
5420 LLL                     SSSSSSSSS               TTT                                                                     \r
5421 LLL                              SSS            TTT                                                                     \r
5422 LLL                              SSS            TTT                                                                     \r
5423 LLL                              SSS            TTT                                                                     \r
5424 LLL                              SSS            TTT                                                                     \r
5425 LLL                              SSS            TTT                                                                     \r
5426 LLL                              SSS            TTT                                                                     \r
5427 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
5428 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
5429 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
5430 \r
5431 \r
5432 \r
5433 \r
5434 Request created: 24-April-1978  11:23:08\r
5435 File: DSKB1 :IOCONT.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:20
5436 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2505 \r
5437 File will be deleted after printing\r
5438 \f\rIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 1\r
5439         8-9-95\r
5440 \r
5441                                 00010           XLIST\r
5442                                 01930          LIST\r
5443 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 7\r
5444         8-9-95\r
5445 \r
5446 \r
5447                                 00010           TITLE IOCONT - CONTROL FOR IO PROGRAMMED OPERATORS\r
5448                                 00020           SUBTTL 8-9-95\r
5449                                 00030           EXTERNAL BUFCLC,ERROR,IOSETC,IOIERR,BUFCLR\r
5450                                 00040           EXTERNAL SETBYT,UINTQ,WAIT1,WSYNC,ADRCK\r
5451                                 00050           EXTERNAL UXIT,USRJDA,JOBJDA,ILLMOD,PUUOAC,PIOMOD\r
5452                                 00060           EXTERNAL JOB,ASSIN,PJOBN,ADRERR,USRREL,CUXIT1,CUXIT2\r
5453                                 00070           EXTERNAL SETIOS\r
5454 \r
5455                                 00090   ;FOR PURPOSES OF COMMENTING THIS SUBROUTINE THE\r
5456                                 00100   ;TERM BUFFER HEADER SHALL REFER TO THE 3 WORD HEADER\r
5457                                 00110   ;WHICH IS USED BY THE USER PROGRAM AND THIS EXEC FOR\r
5458                                 00120   ;REFERING TO THE RING BUFFERS.\r
5459 \r
5460                                 00140   ;THE CONTENTS OF THE 3 WORD HEADER (AS SET BY THE MONITOR FOR THE USE\r
5461                                 00150   ;                  FROM USERS PROGRAM BY AN INPUT OR AN OUTPUT UUO\r
5462                                 00160   ;        WORD 2:   BYTE POINTER TO CURRENT ITEM.\r
5463                                 00170   ;        WORD 3:   POSITIVE ITEM COUNT (NO. OF ITEMS LEFT ON\r
5464                                 00180   ;                  INPUT, NO. OF FREE ITEMS TO GO ON OUTPUT).\r
5465 \r
5466                                 00200   ;EACH BUFFER IN THE RING HAS FOLLOWING FORMAT (AS THE USER SEES IT)\r
5467 \r
5468                                 00220   ;        WORD 1:   RESERVED FOR BLOCK NUMBER FOR FIXED ADDRESS DEVIC\r
5469                                 00230   ;        WORD 2:   BIT 0=USE BIT FOR THIS BUFFER\r
5470                                 00240   ;                  BIT 1-17=NO. OF WORDS WHICH FOLLOW (LENGTH OF BUF\r
5471                                 00250   ;                  BIT 18-35=ADDRESS OF SECOND WORD OF NEXT BUFFER I\r
5472                                 00260   ;        WORD 3:   LH=LINK TO NEXT BLOCK (SET BY MONITOR FOR DECTAB\r
5473                                 00270   ;                  RH=NO. OF WORDS OF DATA WHICH FOLLOW (USUALLY\r
5474                                 00280   ;                  SET BY EXEC EXCEPT TO COMPUTE WORD COUNT\r
5475                                 00290   ;                  THAT HE WANTS TO COMPUTE WORD COUNT\r
5476                                 00300   ;                  HIMSELF INSTEAD OF HAVING THE MONITOR DO IT\r
5477                                 00310   ;                  USING THE BYTE POINTER IN THE 3 WORD HEADER).\r
5478 \r
5479 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 2\r
5480         8-9-95\r
5481 \r
5482 \r
5483                                 00350   ,H. R. MORSE      2/21/65\r
5484                                 00360   ,CALLING SEQUENCE\r
5485                                 00370   ,         CLOSE D,\r
5486                                 00380   ,         EXIT                ALWAYS RETURNS HERE\r
5487                                 00390   , THIS ROUTINE PROCESSES THE CLOSE UUO AND DETERMINES WHETHER THE\r
5488                                 00400   ,OUTPUT ROUTINE SHOULD BE CALLED IF OUTPUT WERE ACTIVE, CLEARS\r
5489                                 00410   ,THE INPUT BUFFER AREA IF INPUT WERE ACTIVE, AND CLEARS THE\r
5490                                 00420   ,ITEM COUNTS OF BOTH INPUT AND OUTPUT HEADERS SERVING TO BOTH\r
5491                                 00430   ,TERMINATE THE USE OF THE DEVICE AND SET THE I/O ROUTINES TO\r
5492                                 00440   ,ACCEPT ANOTHER INPUT OR OUTPUT COMMAND IN A CLEAR STATE.\r
5493                                 00450   ,IN THE CASE OF OUTPUT DEVICES. THE CLOSE ROUTINE OF THE DEVICE HANDL\r
5494                                 00460   ,ING ROUTINE IS CALLED IN CASE ANY SPECIAL HANDLING IS REQUIRED.\r
5495                                 00470   ,MONITOR INTERFACE\r
5496                                 00480   ,         STORAGE: 30\r
5497                                 00490   ,         ROUTINES CALLED:   DCL, WAIT1, UXIT\r
5498                                 00500   ,         SYMBOLS SET/USED:\r
5499                                 00510   ,             ACCUMULATORS:       DAT    S/U    PROG U\r
5500                                 00520   ,                                 DEVDAT U      TAC  S/U\r
5501                                 00530   ,                                 IOS    S/U    TAC1 S/U\r
5502                                 00540   ,                                  PDP   U\r
5503                                 00550   ,             DEVICE DATA BLOCK:   DEVBUF  U\r
5504                                 00560   ,                                  DEVIOS  S/U\r
5505                                 00570   ,                                  DEVSER  U\r
5506                                 00580   ,             IO STATUS WORD:      IOACT   S    IODTER S\r
5507                                 00590   ,                                  IOBEG   S    IOEND  S\r
5508                                 00600   ,                                  IOBKTL  2    IOFST  S\r
5509                                 00610   ,                                  IODEND  S    IOIMPM S\r
5510                                 00620   ,                                  IODERR  S    IOSTRT S\r
5511                                 00630   ,                                  IODISC  S    IOW    S\r
5512                                 00640   ,             JOB BUFFER AREA:     IOUSE   S    \r
5513                                 00650   ,                                  JBFCTR  S\r
5514 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 3\r
5515         8-9-95\r
5516 \r
5517 \r
5518 \r
5519                                 00690   INTERNAL CLOSE1\r
5520 \r
5521         000000' 663300  002000  00710   CLOSE1:   TLOE DEVDAT,CLOSB     ;HAS A CLOSE ALREADY BEEN DONE?\r
5522         000001' 254000  000000* 00720             JRST UXIT             ;YES, FOR THIS CHANNEL\r
5523         000002' 135040  000000* 00730             LDB TAC,PUUOAC        ;USER DEVICE CHANNEL NO.\r
5524         000003' 502301  000000* 00740             HLLM DEVDAT,USRJDA(TAC)\r
5525         000004' 261140  000005  00750             PUSH PDP,DAT\r
5526         000005' 135040  000000* 00760             LDB TAC,PIOMOD\r
5527         000006' 305040  000016  00770             CAIGE TAC,DR\r
5528         000007' 254000  000013' 00780             JRST UCLS4\r
5529         000010' 200046  000003  00790             MOVE TAC,DEVSER(DEVDAT)\r
5530         000011' 260141  000001  00800             PUSHJ PDP,DCL(TAC)\r
5531         000012' 254000  000060' 00810             JRST UCLS3\r
5532         000013' 260140  000000* 00820   UCLS4:    PUSHJ PDP,WAIT1;      WAIT UNTIL DEVICE IS INACTIVE.\r
5533         000014' 606600  000002  00830             TRNN UUO,CLSIN        ;SUPPRESS INPUT?\r
5534         000015' 607300  200000  00840             TLNN DEVDAT,IBUFB     ;NO, WAS INPUT BUFFER SPECIFIED?\r
5535         000016' 254000  000041' 00850             JRST UCLS2                                ;NO\r
5536         000017' 550106  000006  00860             HRRZ TAC1,DEVBUF(DEVDAT)\r
5537         000020' 505100  000007  00870             HRLI TAC1,PROG\r
5538         000021' 550260  000002  00880             HRRZ DAT,@TAC1        ;FIRST WORD OF 3 WORD BUFFER HEADER\r
5539         000022' 540120  000002  00890             HRR TAC1,@TAC1        ;REMEMBER CURRENT BUFFER IN TAC1\r
5540         000023' 515040  400000  00900             HRLZI TAC,IOUSE       ;USER BOTH FOR HEADER AND EACH BUFFER\r
5541         000024' 322240  000034' 00910             JUMPE DAT,UCLS1       ;HAS A RING BEEN SETUP?(NO IF 0)\r
5542         000025' 505240  000007  00920             HRLI DAT,PROG         ;YES\r
5543         000026' 540260  000005  00930   UCLS0:    HRR DAT,@DAT;         ADVANCE CURRENT INPUT BUFFER ADDRESS\r
5544                                 00940             ADRCHK DAT  ;IS ADDRESS OF?\r
5545         000027' 260140  000000*                 PUSHJ PDP,ADRCK\r
5546         000030' 550040  000005                  HRRZ TAC,DAT  \r
5547         000031' 412060  000005  00950             ANDCAM TAC,@DAT       ;YES, CLEAR USE BIT.\r
5548         000032' 312100  000005  00960             CAME TAC1,DAT;        DONE?\r
5549         000033' 254000  000026' 00970             JRST UCLS0\r
5550         000034' 505240  000007  00980   UCLS1:    HRLI DAT,PROG\r
5551         000035' 540246  000006  00990             HRR DAT,DEVBUF(DEVDAT)\r
5552         000036' 436060  000005  01000             IORM TAC,@DAT         ;FLAG AS VIRGIN BUFFER IN 3 WORD HEADER\r
5553         000037' 271240  000002  01010             ADDI DAT,2;           JBFCTR:=0\r
5554         000040' 402020  000005  01020             SETZM @DAT            ;CLEAR INPUT ITEM COUNT.\r
5555         000041' 606600  000001  01030   UCLS2:    TRNN UUO,CLSOUT       ;SUPPRESS OUTPUT?\r
5556         000042' 607300  100000  01040             TLNN DEVDAT,OBUFB     ;NO.WAS OUPUT BUFFER SPECIFIED?\r
5557         000043' 254000  000060' 01050             JRST UCLS3                    ;NO\r
5558         000044' 544246  000006  01060             HLR DAT, DEVBUF(DEVDAT)       ;VIRGIN OUBPUT BUFFER?\r
5559         000045' 505240  000007  01070             HRLI DAT, PROG\r
5560         000046' 337020  000005  01080             SKIPG @DAT\r
5561         000047' 254000  000060' 01090             JRST UCLS3            ;YES\r
5562         000050' 200046  000003  01100             MOVE TAC,DEVSER(DEVDAT)\r
5563         000051' 260141  000001  01110             PUSHJ PDP,DCL(TAC); CLOSE OUTPUT BUFFER\r
5564         000052' 544246  000006  01120             HLR DAT,DEVBUF(DEVDAT)\r
5565         000053' 505240  000007  01130             HRLI DAT,PROG\r
5566         000054' 515040  400000  01140             HRLZI TAC,IOUSE\r
5567         000055' 436060  000005  01150             IORM TAC,@DAT\r
5568         000056' 271240  000002  01160             ADDI DAT,2\r
5569         000057' 402020  000005  01170             SETZM @DAT;           JBFCTR:=0\r
5570 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 3-1\r
5571         8-9-95\r
5572 \r
5573         000060' 260140  000013* 01180   UCLS3:    PUSHJ PDP,WAIT1\r
5574         000061' 262140  000005  01190             POP PDP,DAT\r
5575         000062' 630000  000473' 01200             TDZ IOS,[XWD IOEND,IODEND]\r
5576         000063' 661000  000002  01210             TLO IOS,IOBEG\r
5577         000064' 202006  000002  01220             MOVEM IOS,DEVIOS(DEVDAT);     IODISC:=0\r
5578         000065' 254000  000001* 01230             JRST UXIT;            EXIT THIS UUO\r
5579 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 4\r
5580         8-9-95\r
5581 \r
5582 \r
5583 \r
5584                                 01270   ,DEC 06 00 EX UUO L PT PRE 02 INBUF,OUTBUF\r
5585                                 01280   ,H. R. MORSE        64-12-26\r
5586                                 01290   ,CALLING SEQUENCE\r
5587                                 01300   ,         INBUF D,N\r
5588                                 01310   ,         EXIT                RETURNS HERE IF MEMORY NOT EXCEEDED\r
5589                                 01320   ,CALLING SEQUENCE\r
5590                                 01330   ,         OUTBUF D,N\r
5591                                 01340   ,         EXIT                RETURNS HERE IF MEMORY NOT EXCEEDED\r
5592                                 01350   , SETS UP AN N BUFFER RING FOLLOWING THE USERS PROGRAM FOR DEVICE\r
5593                                 01360   , D AND INITIALIZES THE JOB BUFFER AREA HEADER:\r
5594                                 01370   ,         JBFADR0:=1,         JBFADR 1-17:=0\r
5595                                 01380   ,         JBFADR 18-35:=ADDRESS OF FIRST BUFFER IN RING\r
5596                                 01390   ,INPUT SETS DEVIAD:=ADDRESS OF FIRST BUFFER IN RING\r
5597                                 01400   ,OUTPUT SET DEVOAD:=ADDRESS OF FIRST BUFFER IN RING\r
5598                                 01410   ,BUFPNT IS RESTORED.\r
5599                                 01420   ,MONITOR INTERFACE\r
5600                                 01430   ,         STORAGE:13\r
5601                                 01440   ,         ROUTINES CALLED: BUFCLC,  UXIT\r
5602                                 01450   ,         SYMBOLS SET/USED:\r
5603                                 01460   ,             ACCUMULATORS:   BUFPNT  S/U               PROG U\r
5604                                 01470   ,                             DEVDAT  U                 TAC  S/U\r
5605                                 01480   ,                             PDP     U                 TAC1 S/U\r
5606                                 01490   ,             DEVICE DATA BLOCK:        DEVBUF  U\r
5607                                 01500   ,                             DEVIAD  S\r
5608                                 01510   ,                             DEVOAD  S\r
5609                                 01520   ,             JOB BUFFER AREA:          JBFADR  S\r
5610 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 5\r
5611         8-9-95\r
5612 \r
5613 \r
5614 \r
5615                                 01560           INTERN UINBF, UOUTBF\r
5616 \r
5617         000066' 261140  000012  01580   UOUTBF:   PUSH PDP,BUFPNT;      SAVE BUFPNT ON STACK\r
5618         000067' 260140  000000* 01590             PUSHJ PDP,BUFCLC;     SET UP BUFFER RIGH\r
5619         000070' 544046  000006  01600             HLR TAC,DEVBUF(DEVDAT);TAC:=OUTPUT BUFFER AREA HEADER ADDRE\r
5620         000071' 542506  000010  01610             HRRM BUFPNT,DEVOAD(DEVDAT);DEVOAD:=ADDRESS OF FIRST BUFFER\r
5621                                 01620   ,                                       IN RING\r
5622         000072' 505040  000007  01630   UOBF1:    HRLI TAC,PROG;        RELOCATE BUFFER AREA HEADER ADDRESS\r
5623         000073' 202520  000001  01640             MOVEM BUFPNT,@TAC;    JBFADR:=IOUSE,ADDRESS OF FIRST BUFFER\r
5624                                 01650   ,                                       IN RING\r
5625         000074' 262140  000012  01660             POP PDP,BUFPNT;       RESTORE BUFPNT FROM STACK\r
5626         000075' 254000  000065* 01670             JRST UXIT;            EXIT THIS UUO\r
5627         000076' 261140  000012  01680   UINBF:    PUSH PDP,BUFPNT;      SAVE BUFPNT ON STACK\r
5628         000077' 260140  000067* 01690             PUSHJ PDP,BUFCLC;     SET UP BUFFER RING\r
5629         000100' 542506  000007  01700             HRRM BUFPNT,DEVIAD(DEVDAT); DEVIAD:=ADDRESS OF FIRST BUFFER\r
5630                                 01710   ,                                       IN RING\r
5631         000101' 540046  000006  01720             HRR TAC,DEVBUF(DEVDAT); TAC:=INPUT BUFFER AREA HEADER ADDRE\r
5632         000102' 254000  000072' 01730             JRST UOBF1\r
5633 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 6\r
5634         8-9-95\r
5635 \r
5636 \r
5637 \r
5638                                 01770   ,DEC 06 00 EX UUO L PT PRE 03 INIT\r
5639                                 01780   ,H. R. MORSE AND D. A. WITCRAFT          2/21/65\r
5640                                 01790   ,CALLING SEQUENCE\r
5641                                 01800   ,         INIT D,MODUS          D=JOB DEVICE CHANNEL\r
5642                                 01810   ,                               MODUS=IORDEL,IOCON,IOWC,MODE.\r
5643                                 01820   ,         SIXBIT/NAME/          DEVICE NAME\r
5644                                 01830   ,         XWD OBUF,IBUF         BUFFER AREA HEADER ADDRESS\r
5645                                 01840   ,         EXIT1                 DEVICE NOT AVAILABLE\r
5646                                 01850   ,         EXIT2                 DEVICE PROPERLY AVAILABLE\r
5647                                 01860   ,THE LEFT HALF OF NAME CONTAINS THE THREE LETTER DEVICE MNEMONIC,\r
5648                                 01870   ,   THE RIGHT HALF IS EITHER ZOER (SYSTEM WILL ASSIGN AN ARBITRARY\r
5649                                 01880   ,   UNIT) OR NON-ZERO TO REQUEST A SPECIFIC UNIT (LEFT JUSTIFIED).\r
5650                                 01890   ,IF THE SELECTED DEVICE IS NOT AVAILABLE. CONTROL RETURNS TO EXIT1.\r
5651                                 01900   ,OTHERWISE, THE DEVICE IS ASSIGNED TO THE USER AND ATTACHED TO HIS\r
5652                                 01910   ,CHANNEL D.  THE DEVICE IS INITIALIZED IN THE FOLLOWING MANNER AFTER\r
5653                                 01920   ,IOACT IS ZERO:\r
5654                                 01930   ,         IOBEG:=1\r
5655                                 01940   ,         DATA MODE:=BITS 32-35 OF AC UUO\r
5656                                 01950   ,         IOCON:=BIT 31 OF AC UUO\r
5657                                 01960   ,         IOWC:=BIT 40 OF AC UUO\r
5658                                 01970   ,         IORDEL:=BIT 29 OF AC UUO\r
5659                                 01980   ,         IOACT:=IODEND:=IOBKTL:=IODTER:=IODERR:=IOIMPM:=0\r
5660                                 01990   ,         JBFADR:=JBFCTR:=0 FOR THE SPECIFIED BUFFERS.\r
5661                                 02000   ,         DEVBUF:=OBUF,IBUF\r
5662                                 02010   ,MONITOR INTERFACE\r
5663                                 02020   ,         STORAGE:  20\r
5664                                 02030   ,         ROUTINES CALLED:      UINTQ, ASSIGN(UASG1),USEL,UINITZ,UXIT\r
5665                                 02040   ,         SYMBOLS SET/USED:\r
5666                                 02050   ,             ACCUMULATORS:     DEVDAT U\r
5667                                 02060   ,                               PDP    U        TAC  U\r
5668                                 02070   ,                               PROG   U        TAC1 S/U\r
5669                                 02080   ,             DEVICE DATA BLOCK:         DEVBUF S\r
5670 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 7\r
5671         8-9-95\r
5672 \r
5673 \r
5674 \r
5675                                 02120             INTERN UINIT,UINIT1\r
5676         000103' 135040  000002* 02130   UINIT:    LDB TAC,PUUOAC        ;USER DEVICE CHANNEL NO.\r
5677         000104' 332301  000003* 02140             SKIPE DEVDAT,USRJDA(TAC)        ;IS A DEVICE ALREADY HERE?\r
5678         000105' 260140  000430' 02150             PUSHJ PDP,RELEA0      ;YES, RELEASE IT\r
5679         000106' 200600  000040  02160             MOVE UUO,40           ;RESTORE AC UUO FROM LOC 40\r
5680         000107' 260140  000000* 02170             PUSHJ PDP,UINTQ       ;GET SIXBIT DEVICE NAME FROM USER\r
5681         000110' 350003  000000  02180             AOS (PDP)\r
5682         000111' 200200  000000* 02190   UINIT1:   MOVE ITEM,JOB         ;CALLED BY SAVGET\r
5683         000112' 260140  000000* 02200             PUSHJ PDP,ASSIN;      TRY TO ASSIGN DEVICE\r
5684         000113' 254000  000000* 02210             JRST CUXIT1;          NOT AVAILABLE\r
5685         000114' 135040  000103* 02220             LDB TAC,PUUOAC\r
5686         000115' 552301  000104* 02230             HRRZM DEVDAT,USRJDA(TAC)      ;STORE DDB ADR IN DEVICE TABL\r
5687         000116' 515040  000002  02240             HRLZI TAC,IOBEG\r
5688         000117' 202046  000002  02250             MOVEM TAC,DEVIOS(DEVDAT)\r
5689         000120' 260140  000000* 02260             PUSHJ PDP,SETIOS      ;SET DDB IOS STATUS WORD\r
5690                                 02270                                   ;FROM RT. HALF OF UUO\r
5691         000121' 260140  000107* 02280             PUSHJ PDP,UINTQ\r
5692         000122' 505300  400000  02290             HRLI DEVDAT, INITB    ;SET INIT UUO BIT\r
5693         000123' 607040  777777  02300             TLNN TAC,-1   \r
5694         000124' 254000  000127' 02310             JRST UINIT4           ;OUTPUT NOT SPECIFIED\r
5695         000125' 502046  000006  02320             HLLM TAC,DEVBUF(DEVDAT)\r
5696         000126' 661300  100000  02330             TLO DEVDAT,OBUFB      ;SET OUTPUT BUFFER SPECIFIED BIT\r
5697         000127' 606040  777777  02340   UINIT4:   TRNN TAC,-1;          IS IBUF SPECIFIED?\r
5698         000130' 254000  000133' 02350             JRST UINIT5           ;INPUT BUF NOT SPECIFIED\r
5699         000131' 542046  000006  02360             HRRM TAC,DEVBUF(DEVDAT);      DEVBUF 18-35:=IBUF\r
5700         000132' 661300  200000  02370             TLO DEVDAT,IBUFB      ;SET INPUT BUFFER SPECIFIED BIT\r
5701         000133' 550100  000001  02380   UINIT5:   HRRZ TAC1,TAC;        TAC1:=PROG,IBUF\r
5702         000134' 260140  000142' 02390             PUSHJ PDP,UINITZ;     JBFADR:=JBFCTR:=0 FOR IBUF\r
5703         000135' 544100  000001  02400             HLR TAC1,TAC;         TAC1:=PROG,OBUF\r
5704         000136' 260140  000142' 02410             PUSHJ PDP,UINITZ;     JBFADR:=JBFCTR:=0 FOR OBUF\r
5705         000137' 135040  000114* 02420             LDB TAC,PUUOAC        ;STORE UUO BITS FOR THIS CHANNEL\r
5706         000140' 502301  000115* 02430             HLLM DEVDAT,USRJDA(TAC)\r
5707         000141' 254000  000000* 02440             JRST CUXIT2\r
5708 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 8\r
5709         8-9-95\r
5710 \r
5711 \r
5712 \r
5713                                 02480   ,DEC 06 00 EX COM L PT PRE 03 UINITZ\r
5714                                 02490   ,H. R. MORSE        64-12-26\r
5715                                 02500   ,CALLING SEQUENCE\r
5716                                 02510   ,         PUSHJ PDP,UINITZ\r
5717                                 02520   ,         EXIT                  RETURNS HERE IF MEMORY NOT EXCEEDED.\r
5718                                 02530   ,SETS JBFADR:=JBFCTR:=0 FOR THE BUFFER AREA HEADER WHOSE ADDRESS\r
5719                                 02540   ,IS IN AC TAC1.  ALSO,JBFPTR 0-5:=JBFPTR 12-17:=0,JBFPTR 6-11:=BYTE S\r
5720                                 02550   ,MONITOR INTERFACE\r
5721                                 02560   ,         STORAGE:15\r
5722                                 02570   ,         ROUTINES CALLED:      ADRCK, SETBYT\r
5723                                 02580   ,         SYMBOLS SET/USED:\r
5724                                 02590   ,             ACCUMULATORS:     PDP   U                 TAC    S/U\r
5725                                 02600   ,                       TAC1  S/U\r
5726                                 02610   ,            JOB BUFFER AREA:  JBFADR S\r
5727                                 02620   ,                                       JBFCTR S\r
5728                                 02630   ,                                       JBFPTR S\r
5729                                 02640             INTERN UINITZ\r
5730 \r
5731         000142' 606100  777777  02660   UINITZ:   TRNN TAC1,-1;         IS BUFFER SPECIFIED?\r
5732         000143' 263140  000000  02670             POPJ PDP,;RETURN\r
5733         000144' 505100  000007  02680             HRLI TAC1,PROG\r
5734         000145' 260140  000027* 02690             PUSHJ PDP,ADRCK       ;CHECK 3 WORD BUFFER HEADER\r
5735         000146' 551042  000002  02700             HRRZI TAC,2(TAC1)\r
5736         000147' 402020  000002  02710             SETZM @TAC1;          JBFADR:=0\r
5737         000150' 350000  000002  02720             AOS TAC1\r
5738         000151' 261140  000001  02730             PUSH PDP,TAC\r
5739         000152' 261140  000002  02740             PUSH PDP,TAC1\r
5740         000153' 350000  000002  02750             AOS TAC1\r
5741         000154' 402020  000002  02760             SETZM @TAC1;          JBFCTR:=0\r
5742         000155' 260140  000000* 02770             PUSHJ PDP,SETBYT;     JBFPTR 6-11:=BYTE SIZE\r
5743         000156' 621040  770077  02780             TLZ TAC,770077\r
5744         000157' 262140  000002  02790             POP PDP,TAC1\r
5745         000160' 502060  000002  02800             HLLM TAC,@TAC1\r
5746         000161' 262140  000001  02810             POP PDP,TAC\r
5747         000162' 263140  000000  02820             POPJ PDP,;            RETURN\r
5748 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 9\r
5749         8-9-95\r
5750 \r
5751 \r
5752 \r
5753                                 02860   INTERNAL IN\r
5754         000163' 603000  000020  02870   IN:       TLNE IOS,IO           ;IS THIS DEVICE ALREADY DOING OUTPUT!\r
5755         000164' 260140  000060* 02880             PUSHJ PDP,WAIT1       ;YES,WAIT TILL IT IS FINISHED\r
5756         000165' 135040  000137* 02890             LDB TAC,PUUOAC        ;SET BIT THAT SAYS AN INPUT UUO HAS OCC\r
5757         000166' 661300  010000  02900             TLO DEVDAT,INPB       ;FOR THIS DEVICE\r
5758         000167' 502301  000140* 02910             HLLM DEVDAT,USRJDA(TAC)         ;IN LH OF CURRENT JOB DEVICE\r
5759         000170' 135040  000005* 02920             LDB TAC,PIOMOD        ;IO MODE\r
5760         000171' 301040  000016  02930             CAIL TAC,DR           ;IS THE IO MODE DUMP MODE?\r
5761         000172' 254000  000271' 02940             JRST INDMP            ;YES\r
5762         000173' 540246  000006  02950   IN1:      HRR JBUF,DEVBUF(DEVDAT)         ;NO, GET ADDRESS OF R WORD BU\r
5763         000174' 515040  400000  02960             HRLZI TAC,IOUSE       ;BUFFER INUSE BIT\r
5764         000175' 505240  000007  02970             HRLI JBUF,PROG        ;SET INDEX FIELD FOR RELOCATION USING A\r
5765         000176' 260140  000145* 02980             PUSHJ PDP,ADRCK       ;CHECK BUFFER HEADER\r
5766         000177' 551045  000002  02990             HRRZI TAC,2(JBUF)     ;END ADDRESS OF 3 WORD HEADER\r
5767         000200' 200120  000005  03000             MOVE TAC1,@JBUF       ;GET WORD 1 OF 3 WORD BUFFER HEADER (PO\r
5768         000201' 505100  000007  03010             HRLI TAC1,PROG        ;SET INDEX FIELD COR RELOCATION USING A\r
5769         000202' 337020  000005  03020             SKIPG @JBUF           ;HAS A BUFFER RING BEEN SET UP (RH NON-\r
5770                                 03030                                   ;WHICH HAS BEEN REFERENCED BY PREVIOUS\r
5771         000203' 254000  000256' 03040             JRST INPUTF           ;NO, GO SET UP BUFFER IF NECESSARY AND\r
5772                                 03050             ADRCHK TAC1           ;YES, CHECK ADDRESS TO SEE IF IN BOUNDS\r
5773         000204' 260140  000176*         PUSHJ PDP,ADRCK\r
5774         000205' 550040  000002                  HRRZ TAC,TAC1           \r
5775         000206' 413060  000002  03060             ANDCAB TAC,@TAC1      ;FLAG THIS BUFFER AS BEING FILLED (USE\r
5776                                 03070                                   ;AND GET POINTER TO NEXT BUFFER\r
5777         000207' 542060  000005  03080             HRRM TAC,@JBUF        ;SET WORD 1 IN 3 WORD HEADER TO NEXT BU\r
5778                                 03090             ADRCHK TAC ;AND CHECK ITS ADDRESS TO SEE IF IN BOUNDS\r
5779         000210' 260140  000204*         PUSHJ PDP,ADRCK\r
5780         000211' 550040  000001                  HRRZ TAC,TAC \r
5781         000212' 200006  000002  03100   INPUT0:   MOVE IOS,DEVIOS(DEVDAT)       ;GET IO STATUS WORD\r
5782         000213' 606000  010000  03110             TRNN IOS,IOACT        ;IS THE DEVICE ALREADY ACTIVE (FILLING\r
5783         000214' 254000  000220' 03120             JRST INPT0B           ;NO.\r
5784         000215' 606000  000040  03130             TRNN IOS,IOCON        ;DOES THE USER WANT TO STOP AFTER EVERY\r
5785         000216' 254000  000224' 03140             JRST INPT0C           ;NO. HE WANTS NORMAL CONTINUOUS OVERLAP\r
5786         000217' 260140  000000* 03150             PUSHJ PDP,WSYNC       ;YES, WAIT TILL DEVICE FINISHES WITH ON\r
5787         000220' 505040  000007  03160   INPT0B:   HRLI TAC,PROG         ;SET FOR RELOCATION\r
5788         000221' 540060  000001  03170             HRR TAC,@TAC          ;GET POINTER 1 BLOCK AHEAD OF NEXT BBUF\r
5789         000222' 331020  000001  03180             SKIPL @TAC\r
5790         000223' 260140  000276' 03190             PUSHJ PDP,CALIN\r
5791         000224' 540120  000002  03200   INPT0C:   HRR TAC1,@TAC1\r
5792         000225' 335020  000002  03210   INPT0A:   SKIPGE @TAC1\r
5793         000226' 254000  000236' 03220             JRST INPUT2\r
5794         000227' 260140  000217* 03230   INPUT1:   PUSHJ PDP,WSYNC\r
5795         000230' 335020  000002  03240             SKIPGE @TAC1\r
5796         000231' 254000  000236' 03250             JRST INPUT2\r
5797         000232' 612000  000474' 03260             TDNE IOS,[XWD IOEND,IODERR]\r
5798         000233' 254000  000250' 03270             JRST INEOF\r
5799         000234' 200006  000002  03280             MOVE IOS,DEVIOS(DEVDAT)\r
5800         000235' 254000  000227' 03290             JRST INPUT1\r
5801 \r
5802         000236' 271100  000001  03310   INPUT2:   ADDI TAC1,1\r
5803         000237' 550220  000002  03320             HRRZ ITEM,@TAC1\r
5804 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 9-1\r
5805         8-9-95\r
5806 \r
5807         000240' 275100  000001  03330             SUBI TAC1,1\r
5808         000241' 261140  000004  03340             PUSH PDP,ITEM         ;SAVE WORD COUNT AS STORED BY IO SERVIC\r
5809         000242' 260140  000000* 03350             PUSHJ PDP,IOSETC\r
5810         000243' 262140  000004  03360             POP PDP,ITEM\r
5811         000244' 135040  000170* 03370             LDB TAC,PIOMOD        ;GET DEVICE DATA MODE\r
5812         000245' 306040  000010  03380             CAIN TAC, I           ;IMAGE MODE?\r
5813         000246' 202220  000005  03390             MOVEM ITEM,@JBUF      ;YES, STORE WORD COUNT NOT ITEM COUNT\r
5814         000247' 254000  000075* 03400             JRST UXIT\r
5815 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 10\r
5816         8-9-95\r
5817 \r
5818 \r
5819 \r
5820         000250' 551000  020000  03440   INEOF:    HRRZI IOS,IODEND\r
5821         000251' 436006  000002  03450             IORM IOS,DEVIOS(DEVDAT)\r
5822         000252' 254000  000247* 03460             JRST UXIT\r
5823 \r
5824         000253' 540100  000014  03480   INPUTA:   HRR TAC1,UUO\r
5825         000254' 412060  000002  03490             ANDCAM TAC,@TAC1\r
5826         000255' 254000  000212' 03500             JRST INPUT0\r
5827 \r
5828                                 03520   ;HERE ON FIRST INPUT AFTER INIT, INIT & LOOKUP, OR INIT & LOOKUP & IN\r
5829         000256' 412060  000005  03530   INPUTF:   ANDCAM TAC,@JBUF      ;MARK THAT BUFFERS HAVE BEEN REFERENCED\r
5830         000257' 540060  000005  03540             HRR TAC,@JBUF         ;PICKUP ADDRESS OF FIRST BUFFERE IN RING\r
5831         000260' 542046  000007  03550             HRRM TAC,DEVIAD(DEVDAT)               ;SET CURRENT RING BUFFER ADDR\r
5832                                 03560                                                   ;IN DEVICE DATA BLOCK\r
5833         000261' 336020  000005  03570             SKIPN @JBUF           ;HAS A RING BEEN SET UP YET?\r
5834         000262' 254000  000265' 03580             JRST INPUT3           ;NO, GO SET UP A 2 BUFFER RING\r
5835         000263' 260140  000276' 03590             PUSHJ PDP,CALIN       ;YES, GO START TO SERVICE ROUTINE\r
5836                                 03600                                           ;FILLING BUFFER\r
5837         000264' 254000  000225' 03610             JRST INPT0A\r
5838         000265' 541600  000002  03620   INPUT3:   HRRI UUO,2            ;BUFFERS NOT SETUP YET.\r
5839                                 03630                                           ;SET UP 2\r
5840         000266' 260140  000076' 03640             PUSHJ PDP, UINBF\r
5841         000267' 513000  000014  03650             HLLZS UUO             ;CLEAR RIGHT HALF\r
5842         000270' 254000  000173' 03660             JRST IN1\r
5843 \r
5844         000271' 260140  000227* 03680   INDMP:    PUSHJ PDP,WSYNC\r
5845         000272' 200046  000003  03690             MOVE TAC,DEVSER(DEVDAT)\r
5846         000273' 260141  000007  03700             PUSHJ PDP,DDI(TAC)\r
5847         000274' 260140  000164* 03710             PUSHJ PDP,WAIT1\r
5848         000275' 254000  000252* 03720             JRST UXIT\r
5849 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 11\r
5850         8-9-95\r
5851 \r
5852 \r
5853 \r
5854 \r
5855 \r
5856         000276' 603000  000040  03780   CALIN:    TLNE IOS,IOEND\r
5857         000277' 263140  000000  03790             POPJ PDP,\r
5858         000300' 260140  000271* 03800             PUSHJ PDP,WSYNC\r
5859         000301' 261140  000002  03810             PUSH PDP,TAC1\r
5860         000302' 200046  000003  03820             MOVE TAC,DEVSER(DEVDAT)\r
5861         000303' 260141  000003  03830             PUSHJ PDP,DIN(TAC)\r
5862         000304' 262140  000002  03840             POP PDP,TAC1\r
5863         000305' 263140  000000  03850             POPJ PDP,\r
5864 \r
5865 \r
5866 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 12\r
5867         8-9-95\r
5868 \r
5869 \r
5870 \r
5871                                 03910   ,DEC 06 00 EX COM  L PT PRE 03 OUTPUT\r
5872                                 03920   ,H.R. MORSE    2/21/65\r
5873                                 03930   ,CALLING SEQUENCE\r
5874                                 03940   ,       OUTPUT D,\r
5875                                 03950   ,       EXIT\r
5876                                 03960   ,OR\r
5877                                 03970   ,       OUTPUT D, ADR\r
5878                                 03980   ,       EXIT\r
5879 \r
5880                                 04000   ,IF INPUT IS ACTIVE, WAIT FOR IT TO COMPLETE.\r
5881                                 04010   ,IF DUMP MODE WAS SELECTED BY THE LAST INIT UUO., THEN A CHECK IS MADE\r
5882                                 04020   ,   TO SEE IF DUMP FILES ARE LEGAL FOR THIS DEVICE.  IF DUMP FILES AR\r
5883                                 04030   ,   NOT LEGAL. (IORET=0) AN ERROR MESSAGE IS PRINTED ON THE TTY AND\r
5884                                 04040   ,   CONTROL IS TRANSFERRED T THE COMMAND INPUT ROUTINE.\r
5885                                 04050   ,   OTHERWISE,THE PROGRAM WAITS UNTIL THE DEVICE IS INACTIVE AND THEN\r
5886                                 04060   ,   WRITES THE DUMPFILE AND RETURNS CONTROL TO THE USERS PROGRAM\r
5887                                 04070   ,IF THE MODE IS NOT DUMP, THEN\r
5888                                 04080   ,1) IF ADR IS NOT ZERO, WAIT FOR DEVICE TO BECOME INACTIVE THEN SET T\r
5889                                 04090   ,   CURRENT BUFFER ADDRESS EQUAL TO ADR AND AN INDICATOR (JBFADR0)\r
5890                                 04100   ,   SPECIFYING THAT THIS BUFFER RING HAS NEVER BEEN REFERENCED FROM T\r
5891                                 04110   ,   USERS PROGRAM BY AN INPUT OR AN OUTPUT UUO.  OTHERWISE, GO TO\r
5892                                 04120   ,   2) DIRECTLY.\r
5893 \r
5894                                 04140   ,2) IF THE BUFFER RING HAS NEVER BEEN REFERENCED (JBFADR0=1), THE\r
5895                                 04150   ,   BUFFER IS CLEARED. IOUSE SET TO ZERO AND\r
5896                                 04160   ,      IF THE CURRENT BUFFER ADDRESS IS ZERO, A TWO BUFFER RING IS SE\r
5897                                 04170   ,      THE GO TO 8\r
5898                                 04180   ,\r
5899                                 04190   ,3) IF THE BUFFER RING HAS BEEN REFERENCED (JBFADR0=0   ,THEN A C\r
5900                                 04200   ,   MADE TO DETERMINE IF THE WORD COUNT IS TO BE COMPUTED.\r
5901                                 04210   ,       IF THE WORD COUNT IS TO BE COMPUTED (IOWC=0), IT IS SET EQUAL\r
5902                                 04220   ,       TO THE ADDRESS FOR THE LAST DATA WORD MINUS THE ADDRESS OF THE\r
5903                                 04230   ,       BUFFER MINUS ONE,\r
5904 \r
5905                                 04250   ,4) IOUSE IS SET TO ONE. INDICATING THAT THE BUFFER IS FULL OR BEING\r
5906                                 04260   ,   EMPTIED, AND THE CURRENT BUFFER ADDRESS IS ADVANCED.\r
5907 \r
5908                                 04280   ,5) IF THE DEVICE IS NOT ACTIVE (IOACT=0), OUTPUT IS STARTED.\r
5909                                 04290   ,6) IF THE CURRENT BUFFER IS FULL OR BEING EMPTIED (IOUSE=1),\r
5910                                 04300   ,   THE PROGRAM WAITS UNTIL THE DEVICE IS INACTIVE\r
5911                                 04310   ,7) THE CURRENT BUFFER IS CLEARED.\r
5912                                 04320   ,8) THE ITEM POINTER IS INITIATED TO THE CURRENT BUFFER ADDRESS+1\r
5913                                 04330   ,   AND THE ITEM COUNT IS SET TO THE PRODUCT OF THE BUFFER SIZE\r
5914                                 04340   ,   MINUS ONE AND THE INTEGER PART OF 36/BYTE SIZE.\r
5915                                 04350   ,9) RETURN TO THE USERS PROGRAM\r
5916 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 13\r
5917         8-9-95\r
5918 \r
5919 \r
5920 \r
5921                                 04390   ,MONITOR INTERFACE\r
5922                                 04400   ,     STORAGE:  54\r
5923                                 04410   ,     ROUTINE CALLED:  ADRCK, BUFCLR, CALOUT, INOUT, IOSETC, OUTA,\r
5924                                 04420   ,                       OUTBUF, UXIT, WSYNC,\r
5925                                 04430   ,     SYMBOLS SET/USED:\r
5926                                 04440   ,        ACCUMULATORS:  DEVDAT U        PROG U\r
5927                                 04450   ,                       IOS U           TAC S/U\r
5928                                 04460   ,                       ITEM S/U        TAC1 S/U\r
5929                                 04470   ,                       JBUF S/U        UUO S\r
5930                                 04480   ,                       PDP U\r
5931                                 04490   ,       DEVICE DATA BLOCK: DEVBUF U     DEVOAD S\r
5932                                 04500   ,       IO STATUS WORD: IOACT U\r
5933                                 04510   ,                       IOWC U\r
5934                                 04520   ,       JOB BUFFER AREA:        JBADR S/U\r
5935                                 04530   ,                        JBFCTR S\r
5936                                 04540   ,                        JBPPTR S/U\r
5937                                 04550   ,                        BUFFER SIZE U\r
5938                                 04560   ,                        IOUSE S/U\r
5939                                 04570   ,                        WORD COUNT S\r
5940 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 14\r
5941         8-9-95\r
5942 \r
5943 \r
5944 \r
5945 \r
5946                                 04620             INTERN OUT\r
5947 \r
5948         000306' 607000  000020  04640   OUT:      TLNN IOS,IO   ;IS THIS DEVICE ALREADY DOING INPUT?\r
5949         000307' 260140  000274* 04650             PUSHJ PDP,WAIT1       ;YES, WAIT TILL IT BECOMES INACTIVE\r
5950         000310' 135040  000165* 04660             LDB TAC,PUUOAC\r
5951         000311' 661300  004000  04670             TLO DEVDAT,OUTPB\r
5952         000312' 502301  000167* 04680             HLLM DEVDAT,USRJDA(TAC)\r
5953         000313' 135040  000244* 04690             LDB TAC,PIOMOD\r
5954         000314' 301040  000016  04700             CAIL TAC,DR\r
5955         000315' 254000  000402' 04710             JRST OUTDMP\r
5956         000316' 260140  000407' 04720             PUSHJ PDP,OUTA\r
5957         000317' 544246  000006  04730   OUT1:     HLR JBUF,DEVBUF(DEVDAT)\r
5958         000320' 260140  000210* 04740             PUSHJ PDP,ADRCK       ;CHECK END OF 3 WORD HEADER\r
5959         000321' 551045  000002  04750             HRRZI TAC,2(JBUF)\r
5960         000322' 505240  000007  04760             HRLI JBUF,PROG\r
5961         000323' 515040  400000  04770             HRLZI TAC, IOUSE\r
5962         000324' 337120  000005  04780             SKIPG TAC1, @JBUF             ;HAS THIS BUFFER EVER BEEN\r
5963                                 04790                                           ;;REFERENCED?(JBFADR0=0?)\r
5964         000325' 254000  000361' 04800             JRST OUTF\r
5965         000326' 350000  000005  04810             AOS JBUF\r
5966         000327' 550060  000005  04820             HRRZ TAC, @JBUF\r
5967         000330' 271100  000001  04830             ADDI TAC1, 1\r
5968         000331' 274040  000002  04840             SUB TAC, TAC1\r
5969         000332' 505100  000007  04850             HRLI TAC1,PROG\r
5970         000333' 602000  000020  04860             TRNE IOS, IOWC                ;COMPUTE WORD COUNT?(IOWC=0?)\r
5971         000334' 254000  000340' 04870             JRST OUT2\r
5972                                 04880             ADRCHK TAC1           ;PROCEED IF ADDRESS OF WORD COUNT\r
5973         000335' 260140  000320*         PUSHJ PDP,ADRCK\r
5974         000336' 550040  000002                  HRRZ TAC,TAC1           \r
5975                                 04890                                           ;<PROTECTION ADDRESS\r
5976         000337' 542060  000002  04900             HRRM TAC, @TAC1               ;WORD COUNT:=C(JBFPTR18-35)\r
5977                                 04910                                           ;            -C(JBFPTR18-35)-\r
5978         000340' 275240  000001  04920   OUT2:     SUBI JBUF,1\r
5979         000341' 275100  000001  04930             SUBI TAC1,1\r
5980         000342' 515040  400000  04940             HRLZI TAC, IOUSE\r
5981         000343' 437060  000002  04950             IORB TAC, @TAC1               ;IOUSE:=1\r
5982         000344' 260140  000335* 04960             ADRCHK TAC1^PUSHJ PDP,ADRCK\r
5983         000345' 550040  000002                  HRRZ TAC,TAC1^\r
5984         000346' 542060  000005  04970             HRRM TAC,@JBUF                ;ADVANCE CURRENT BUFFER ADDRE\r
5985         000347' 200006  000002  04980             MOVE IOS,DEVIOS (DEVDAT)\r
5986         000350' 606000  010000  04990             TRNN IOS,IOACT\r
5987         000351' 260140  000421' 05000             PUSHJ PDP, CALOUT             ;START OUTPUT\r
5988         000352' 544246  000006  05010             HLR JBUF,DEVBUF(DEVDAT)\r
5989         000353' 505240  000007  05020             HRLI JBUF,PROG\r
5990         000354' 200120  000005  05030             MOVE TAC1,@JBUF\r
5991         000355' 505100  000007  05040             HRLI TAC1,PROG\r
5992         000356' 337020  000002  05050             SKIPG @TAC1                   ;IOUSE=1?\r
5993         000357' 260140  000300* 05060             PUSHJ PDP, WSYNC              ;WAIT FOR DEVICE TO BECOME IN\r
5994         000360' 254000  000372' 05070             JRST OUTS\r
5995 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 15\r
5996         8-9-95\r
5997 \r
5998 \r
5999 \r
6000         000361' 332120  000005  05110   OUTF:     SKIPE TAC1,@JBUF\r
6001         000362' 254000  000367' 05120             JRST OUTF1\r
6002         000363' 541600  000002  05130             HRRI UUO,2\r
6003         000364' 260140  000066' 05140             PUSHJ PDP,UOUTBF\r
6004         000365' 544246  000006  05150             HLR JBUF,DEVBUF(DEVDAT)\r
6005         000366' 505240  000007  05160             HRLI JBUF,PROG\r
6006         000367' 515040  400000  05170   OUTF1:    HRLZI TAC, IOUSE\r
6007         000370' 413060  000005  05180             ANDCAB TAC, @JBUF             ;IOUSE:=0\r
6008         000371' 542046  000010  05190             HRRM TAC,DEVOAD(DEVDAT)\r
6009         000372' 550060  000005  05200   OUTS:     HRRZ TAC,@JBUF\r
6010         000373' 260140  000000* 05210             PUSHJ PDP,BUFCLR\r
6011         000374' 540120  000005  05220             HRR TAC1,@JBUF\r
6012         000375' 505100  000007  05230             HRLI TAC1,PROG\r
6013         000376' 135200  000475' 05240             LDB ITEM,[POINT 17,@TAC1,17]\r
6014         000377' 275200  000001  05250             SUBI ITEM,1\r
6015         000400' 260140  000242* 05260             PUSHJ PDP,IOSETC      ;JBFPTR18-35:=CURRENT BUFFER\r
6016                                 05270                                   ;ADDRESS+1\r
6017                                 05280                                   ;JBFCTR:=(BUFFER SIZE-1)*[36/BYTE\r
6018                                 05290                                   ;SIZE]\r
6019         000401' 254000  000275* 05300             JRST UXIT             ;RETURN TO USERS PROGRAM\r
6020 \r
6021         000402' 260140  000357* 05320   OUTDMP:   PUSHJ PDP,WSYNC\r
6022         000403' 200046  000003  05330             MOVE TAC,DEVSER(DEVDAT)\r
6023         000404' 260141  000006  05340             PUSHJ PDP,DDO(TAC)\r
6024         000405' 260140  000307* 05350             PUSHJ PDP,WAIT1\r
6025         000406' 254000  000401* 05360             JRST UXIT\r
6026 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 16\r
6027         8-9-95\r
6028 \r
6029 \r
6030 \r
6031 \r
6032                                 05410   ,DEC 06 00 EX COM L PT PRE 01 OUTA\r
6033                                 05420   ,H.R. MORSE     64-12-26\r
6034 \r
6035                                 05440   ,CALLING SEQUENCE:\r
6036                                 05450   ,         PUSHJ PDP,OUTA\r
6037                                 05460   ,         EXIT                  ALWAYS RETURN HERE\r
6038                                 05470   ,IF THE ADDRESS FIELD OF AC UUO IS ZERO,EXIT. OTHERWISE,CHECK IOACT.\r
6039                                 05480   ,IF IOACT=1, WIAT FOR IOACT=0.\r
6040                                 05490   ,SET JBFADR18-35:=ADDRESS FIELD OF AC UUO. JBFADR0:=1 AND EXIT.\r
6041 \r
6042                                 05510   ,MONITOR INTERFACE\r
6043                                 05520   ,         STORAGE:13\r
6044                                 05530   ,         ROUTINES CALLED:      WSYNC\r
6045                                 05540   ,         SYMBOLS SET/USED:\r
6046                                 05550   ,             ACCUMULATORS:     DEVDAT U\r
6047                                 05560   ,                               IOS U           PROG U\r
6048                                 05570   ,                               JBUF S/U        TAC S/U\r
6049                                 05580   ,         DEVICE DATA BLOCK:    DEVIOS U        DEVBUF U\r
6050                                 05590   ,         IO STATUS WORD:       IOACT U\r
6051                                 05600   ,         JOB BUFFER AREA:      IOUSE U\r
6052                                 05610   ,                               JBFADR S\r
6053 \r
6054                                 05630             INTERN OUTA\r
6055         000407' 606600  777777  05640   OUTA:     TRNN UUO, 777777      ;IS BUFFER ADDRESS SPECIFIED?\r
6056         000410' 263140  000000  05650             POPJ PDP,             ;NO\r
6057         000411' 260140  000405* 05660             PUSHJ PDP,WAIT1\r
6058         000412' 544246  000006  05670             HLR JBUF,DEVBUF(DEVDAT)\r
6059         000413' 545240  000007  05680             HLRI JBUF,PROG\r
6060         000414' 542620  000005  05690             HRRM UUO,@JBUF\r
6061         000415' 542606  000010  05700             HRRM UUO,DEVOAD(DEVDAT)\r
6062         000416' 515040  400000  05710             HRLZI TAC,IOUSE\r
6063         000417' 412060  000005  05720             ANDCAM TAC,@JBUF\r
6064         000420' 263140  000000  05730             POPJ PDP,             ;RETURN\r
6065 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 17\r
6066         8-9-95\r
6067 \r
6068 \r
6069 \r
6070 \r
6071                                 05780   ,DEC 06 00 EX COM L PT PRE 03 CALOUT\r
6072                                 05790   ,H.R. MORSE      2/21/65\r
6073 \r
6074                                 05810   ,CALLING SEQUENCE\r
6075                                 05820   ,         PUSHJ PDP,CALOUT\r
6076                                 05830   ,         EXIT\r
6077 \r
6078                                 05850   ,DISPATCH TO DEVICE SERVICE ROUTINE DOU TO INITIATE OUTPUT.\r
6079 \r
6080                                 05870   ,MONITOR INTERFACE\r
6081                                 05880   ,         STORAGE:2\r
6082                                 05890   ,         SYMBOLS SET/USED:\r
6083                                 05900   ,             ACCUMULATORS:     DEVDAT U\r
6084                                 05910   ,                               TAC U\r
6085                                 05920   ,         DEVICE DATA BLOCK:    DEVSER U\r
6086 \r
6087                                 05940             INTERN CALOUT\r
6088         000421' 606000  010000  05950   CALOUT:   TRNN IOS,IOACT\r
6089         000422' 254000  000426' 05960             JRST CALOU1\r
6090         000423' 606000  000040  05970             TRNN IOS,IOCON\r
6091         000424' 263140  000000  05980             POPJ PDP,\r
6092         000425' 260140  000402* 05990             PUSHJ PDP,WSYNC\r
6093         000426' 200046  000003  06000   CALOU1:   MOVE TAC,DEVSER(DEVDAT)\r
6094         000427' 254001  000002  06010             JRST DOU(TAC)\r
6095 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 18\r
6096         8-9-95\r
6097 \r
6098 \r
6099 \r
6100 \r
6101                                 06060   ,RELEASE A DEVICE\r
6102 \r
6103                                 06080   INTERNAL RELEA1,RELEA2,RELEA3,RELEA5\r
6104 \r
6105         000430' 200006  000002  06100   RELEA0:   MOVE IOS,DEVIOS(DEVDAT)       ;CALLED FROM INIT\r
6106         000431'                 06110   RELEA2:RELEA3:\r
6107         000431' 620600  777777  06120   RELEA1:   TRZ UUO,-1            ;CLOSE BOTH INPUT AND OUTPUT\r
6108         000432' 260140  000000' 06130             PUSHJ PDP,CLOSE1\r
6109         000433' 260140  000411* 06140             PUSHJ PDP,WAIT1       ;WAIT FOR DEVICE TO BECOME INACTIVE\r
6110         000434' 200046  000003  06150   RELEA5:   MOVE TAC, DEVSER(DEVDAT)      ;RELEASE WITHOUT WAITING\r
6111         000435' 260141  000000  06160             PUSHJ PDP, DRL (TAC)\r
6112         000436' 135040  000310* 06170             LDB TAC,PUUOAC\r
6113         000437' 402001  000312* 06180             SETZM USRJDA(TAC)\r
6114         000440' 201040  000017  06190             MOVEI TAC,17          ;IS THE DEVICE ON AONTHER USER CHANNEL?\r
6115         000441' 550101  000437* 06200   RELEA4:   HRRZ TAC1,USRJDA(TAC)\r
6116         000442' 302106  000000  06210             CAIE TAC1,(DEVDAT)\r
6117         000443' 365040  000441' 06220             SOJGE TAC,RELEA4\r
6118         000444' 325040  000406* 06230             JUMPGE TAC,UXIT       ;EXIT IF ON ANOTHER CHANNEL\r
6119         000445' 201100  200000  06240             MOVEI TAC1,ASSPRG     ;OTHERWISE CLEAR ASSIGNED BY PROG. BIT\r
6120         000446' 413106  000004  06250             ANDCAB TAC1,DEVMOD(DEVDAT)\r
6121         000447' 616100  000476' 06260             TDNN TAC1,[XWD TTYUSE,ASSCON] ; ASSIGNED BY CONSOLE OR TTY I\r
6122         000450' 137600  000000* 06270             DPB UUO,PJOBN         ;NO. CLEAR JOB NUMBER\r
6123         000451' 254000  000444* 06280             JRST UXIT\r
6124 \r
6125 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 19\r
6126         8-9-95\r
6127 \r
6128 \r
6129 \r
6130 \r
6131                                 06340   ,DEC 06 00 EX UUO L PT PRE 01 STATO\r
6132                                 06350   ,H.R. MORSE     64-12-26\r
6133 \r
6134                                 06370   ,CALLING SEQUENCE\r
6135                                 06380   ,         STATO D,MASK\r
6136                                 06390   ,         EXIT1                 ALL SELECTED BITS ARE 0\r
6137                                 06400   ,         EXIT2                 SOME SELECTED BITS ARE 1\r
6138                                 06410   ,TESTS BITS OF I/O STATUS WORD OF DEVICE ON USERS CHANNEL D WHICH\r
6139                                 06420   ,ARE SELECTED BY MASK.\r
6140 \r
6141                                 06440   ,MONITOR INTERFACE:\r
6142                                 06450   ,         STORAGE:              3\r
6143                                 06460   ,         ROUTINES CALLED:      UXIT\r
6144                                 06470   ,         SYMBOLS SET/USED:\r
6145                                 06480   ,             ACCUMULATORS:     IOS U\r
6146                                 06490   ,                               PDP U\r
6147                                 06500   ,                               UUO U\r
6148 \r
6149                                 06520             INTERN USTATO\r
6150 \r
6151         000452' 602014  000000  06540   USTATO:   TRNE IOS,(UUO)        ;SKIP IF ANY INDICATED BITS ARE ONE\r
6152         000453' 350003  000000  06550             AOS (PDP)\r
6153         000454' 254000  000451* 06560             JRST UXIT\r
6154 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 20\r
6155         8-9-95\r
6156 \r
6157 \r
6158 \r
6159                                 06600   ,DEC 06 00 EX UUO L PT PRE 01 STATUS\r
6160                                 06610   ,H.R. MORSE   64-12-26\r
6161 \r
6162                                 06630   ,CALLING SEQUENCE\r
6163                                 06640   ,         STATUS D,ADR\r
6164                                 06650   ,         EXIT                  ALWAYS RETURNS HERE\r
6165                                 06660   ,STORES I/O STATUS WORD OF DEVICE ON CHANNEL D IN LOCATION ADR.\r
6166 \r
6167                                 06680   ,MONITOR INTERFACE\r
6168                                 06690   ,         STORAGE:              3\r
6169                                 06700   ,         ROUTINES CALLED:      UXIT\r
6170                                 06710   ,         SYMBOLS SET/USED:     \r
6171                                 06720   ,             ACCUMULATORS:     IOS U\r
6172                                 06730   ,                               PROG U\r
6173                                 06740   ,                               UUO U\r
6174 \r
6175                                 06760   INTERN USTATS\r
6176                                 06770   EXTERNAL ADRERR,USRREL\r
6177 \r
6178         000455' 200040  000000* 06790   USTATS:   MOVE TAC,USRREL               ;CHECK TO SEE IF IN BOUNDS\r
6179         000456' 307054  000000  06800             CAIG TAC,(UUO)\r
6180         000457' 260140  000000* 06810             PUSHJ PDP,ADRERR\r
6181         000460' 505600  000007  06820             HRLI UUO,PROG         ;LOAD STATUS INTO INDICATED ADDRESS.\r
6182         000461' 552020  000014  06830             HRRZM IOS,@UUO\r
6183         000462' 254000  000454* 06840             JRST UXIT\r
6184 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 21\r
6185         8-9-95\r
6186 \r
6187 \r
6188 \r
6189                                 06880   ,CALLING SEQUENCE\r
6190                                 06890   ,         SETSTS D,BITS\r
6191                                 06900   ,         EXIT                  ALWAYS RETURN HERE\r
6192 \r
6193                                 06920   INTERNAL USETST\r
6194                                 06930   EXTERNAL WAIT1,SETIOS\r
6195 \r
6196         000463' 260140  000433* 06950   USETST:   PUSHJ PDP,WAIT1       ;WAIT TILL DEVICE INACTIVE\r
6197         000464' 205000  000002  06960             MOVSI IOS, IOBEG\r
6198         000465' 436006  000002  06970             IORM IOS,DEVIOS(DEVDAT)\r
6199         000466' 542606  000002  06980             HRRM UUO,DEVIOS(DEVDAT)\r
6200         000467' 254000  000462* 06990             JRST UXIT\r
6201 \r
6202                                 07010   ,DEC 06 00 EX UUO L PT PRE 01 STATZ\r
6203                                 07020   ,H.R. MORSE     64-12-26\r
6204 \r
6205                                 07040   ,CALLING SEQUENCE\r
6206                                 07050   ,         STATZ D,MASK\r
6207                                 07060   ,         EXIT1                 SOME SELECTED BITS ARE 1\r
6208                                 07070   ,         EXIT2                 ALL SELECTED BITS ARE 0\r
6209 \r
6210                                 07090   ,TESTS BITS OF I/O STATUS WORD OF DEVICE ON USERS\r
6211                                 07100   ,CHANNEL D WHICH ARE SELECTED BY MASK,\r
6212 \r
6213                                 07120   ,MONITOR INTERFACE\r
6214                                 07130   ,         STORAGE:              3\r
6215                                 07140   ,         ROUTINES CALLED:      UXIT\r
6216                                 07150   ,         SYMBOLS SET/USED:\r
6217                                 07160   ,             ACCUMULATORS:     IOS U\r
6218                                 07170   ,                               PDP U\r
6219                                 07180   ,                               UUO U\r
6220 \r
6221                                 07200             INTERN USTATZ\r
6222 \r
6223         000470' 606014  000000  07220   USTATZ:   TRNN IOS,(UUO)        ;SKIP IF ALL INDICATED BITS ARE ZERO\r
6224         000471' 350003  000000  07230             AOS (PDP)\r
6225         000472' 254000  000467* 07240             JRST UXIT\r
6226 \r
6227                                 07260             END,\r
6228         000473' 000040  020000\r
6229         000474' 000040  200000\r
6230         000475' 222120  000002\r
6231         000476' 010000  400000\r
6232 \r
6233 NO ERRORS DETECTED\r
6234 \r
6235 PROGRAM BREAK IS 000477\r
6236 \r
6237 8K CORE USED\r
6238 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 22\r
6239         SYMBOL TABLE\r
6240 \r
6241                 000266  \r
6242 A               000000  INT\r
6243 AC1             000015  INT\r
6244 AC2             000016  INT\r
6245 AC3             000017  INT\r
6246 ADRCK           000344' EXT\r
6247 ADRERR          000457' EXT\r
6248 AL              000001  INT\r
6249 ASSCON          400000  INT\r
6250 ASSIN           000112' EXT\r
6251 ASSPRG          200000  INT\r
6252 B               000014  INT\r
6253 BUFCLC          000077' EXT\r
6254 BUFCLR          000373' EXT\r
6255 BUFPNT          000012  INT\r
6256 BUFWRD          000013  INT\r
6257 CALIN           000276' \r
6258 CALOU1          000426' \r
6259 CALOUT          000421' INT\r
6260 CLOSB           002000  INT\r
6261 CLOSE1          000000' INT\r
6262 CLSIN           000002  INT\r
6263 CLSOUT          000001  INT\r
6264 CUXIT1          000113' EXT\r
6265 CUXIT2          000141' EXT\r
6266 D               000017  INT\r
6267 DAT             000005  INT\r
6268 DCL             000001  INT\r
6269 DCW             020000  INT\r
6270 DDI             000007  INT\r
6271 DDO             000006  INT\r
6272 DDTMEM          000037  INT\r
6273 DDTSYM          000036  INT\r
6274 DEN             000004  INT\r
6275 DEVADR          000007  INT\r
6276 DEVBUF          000006  INT\r
6277 DEVCHR          000001  INT\r
6278 DEVCTR          000011  INT\r
6279 DEVDAT          000006  INT\r
6280 DEVIAD          000007  INT\r
6281 DEVIOS          000002  INT\r
6282 DEVLOG          000005  INT\r
6283 DEVMOD          000004  INT\r
6284 DEVNAM          000000  INT\r
6285 DEVOAD          000010  INT\r
6286 DEVPTR          000010  INT\r
6287 DEVSER          000003  INT\r
6288 DGF             000012  INT\r
6289 DIN             000003  INT\r
6290 DLK             000005  INT\r
6291 DOU             000002  INT\r
6292 DR              000016  INT\r
6293 DRL             000000  INT\r
6294 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 22-1\r
6295         SYMBOL TABLE\r
6296 \r
6297 DSI             000011  INT\r
6298 DSO             000010  INT\r
6299 DTW             040000  INT\r
6300 DVAVAL          000040  INT\r
6301 DVCDR           100000  INT\r
6302 DVDIR           000004  INT\r
6303 DVDIRI          400000  INT\r
6304 DVIN            000002  INT\r
6305 DVLPT           040000  INT\r
6306 DVMTA           000020  INT\r
6307 DVOUT           000001  INT\r
6308 DVTTY           000010  INT\r
6309 ENTRB           020000  INT\r
6310 ERROR           000000  EXT\r
6311 I               000010  INT\r
6312 IB              000013  INT\r
6313 IBUFB           200000  INT\r
6314 ILLMOD          000000  EXT\r
6315 IN              000163' INT\r
6316 IN1             000173' \r
6317 INDMP           000271' \r
6318 INEOF           000250' \r
6319 INITB           400000  INT\r
6320 INPB            010000  INT\r
6321 INPT0A          000225' \r
6322 INPT0B          000220' \r
6323 INPT0C          000224' \r
6324 INPUT0          000212' \r
6325 INPUT1          000227' \r
6326 INPUT2          000236' \r
6327 INPUT3          000265' \r
6328 INPUTA          000253' \r
6329 INPUTF          000256' \r
6330 IO              000020  INT\r
6331 IOACT           010000  INT\r
6332 IOBEG           000002  INT\r
6333 IOBKTL          040000  INT\r
6334 IOCON           000040  INT\r
6335 IODEND          020000  INT\r
6336 IODERR          200000  INT\r
6337 IODISC          400000  INT\r
6338 IODONE          400000  INT\r
6339 IODTER          100000  INT\r
6340 IOEND           000040  INT\r
6341 IOFST           000004  INT\r
6342 IOIERR          000000  EXT\r
6343 IOIMPM          400000  INT\r
6344 IONRCK          000100  INT\r
6345 IORDEL          000100  INT\r
6346 IORET           000020  INT\r
6347 IOS             000000  INT\r
6348 IOSETC          000400' EXT\r
6349 IOSTRT          000010  INT\r
6350 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 22-2\r
6351         SYMBOL TABLE\r
6352 \r
6353 IOUSE           400000  INT\r
6354 IOW             000001  INT\r
6355 IOWC            000020  INT\r
6356 IOWS            400000  INT\r
6357 ITEM            000004  INT\r
6358 JBFADR          000000  INT\r
6359 JBFCTR          000002  INT\r
6360 JBFPTR          000001  INT\r
6361 JBUF            000005  INT\r
6362 JDAT            000011  INT\r
6363 JERR            002000  INT\r
6364 JIOW            100000  INT\r
6365 JNA             004000  INT\r
6366 JOB             000111' EXT\r
6367 JOBJDA          000000  EXT\r
6368 LOOKB           040000  INT\r
6369 MTW             010000  INT\r
6370 OBUFB           100000  INT\r
6371 OUT             000306' INT\r
6372 OUT1            000317' \r
6373 OUT2            000340' \r
6374 OUTA            000407' INT\r
6375 OUTDMP          000402' \r
6376 OUTF            000361' \r
6377 OUTF1           000367' \r
6378 OUTPB           004000  INT\r
6379 OUTS            000372' \r
6380 PDP             000003  INT\r
6381 PICHN           000100  INT\r
6382 PIOMOD          000313' EXT\r
6383 PJOBN           000450' EXT\r
6384 PROG            000007  INT\r
6385 PUUOAC          000436' EXT\r
6386 RELEA0          000430' \r
6387 RELEA1          000431' INT\r
6388 RELEA2          000431' INT\r
6389 RELEA3          000431' INT\r
6390 RELEA4          000441' \r
6391 RELEA5          000434' INT\r
6392 RUN             200000  INT\r
6393 RUNABL          204000  INT\r
6394 SETBYT          000155' EXT\r
6395 SETIOS          000120' EXT\r
6396 TAC             000001  INT\r
6397 TAC1            000002  INT\r
6398 TEM             000010  INT\r
6399 TTYATC          020000  INT\r
6400 TTYUSE          010000  INT\r
6401 UCLS0           000026' \r
6402 UCLS1           000034' \r
6403 UCLS2           000041' \r
6404 UCLS3           000060' \r
6405 UCLS4           000013' \r
6406 \r\fIOCONT - CONTROL FOR IO PROGRAMMED OPERATORS                 PAGE 22-3\r
6407         SYMBOL TABLE\r
6408 \r
6409 UINBF           000076' INT\r
6410 UINIT           000103' INT\r
6411 UINIT1          000111' INT\r
6412 UINIT4          000127' \r
6413 UINIT5          000133' \r
6414 UINITZ          000142' INT\r
6415 UINTQ           000121' EXT\r
6416 UOBF1           000072' \r
6417 UOUTBF          000066' INT\r
6418 USETST          000463' INT\r
6419 USRJDA          000441' EXT\r
6420 USRMOD          010000  INT\r
6421 USRREL          000455' EXT\r
6422 USTATO          000452' INT\r
6423 USTATS          000455' INT\r
6424 USTATZ          000470' INT\r
6425 UUO             000014  INT\r
6426 UXIT            000472' EXT\r
6427 WAIT1           000463' EXT\r
6428 WSYNC           000425' EXT\r
6429 \f   IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS                     \r
6430    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS                     \r
6431    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS                     \r
6432       III            OOO         OOO      CCC                  SSS                  SSS                                 \r
6433       III            OOO         OOO      CCC                  SSS                  SSS                                 \r
6434       III            OOO         OOO      CCC                  SSS                  SSS                                 \r
6435       III            OOO         OOO      CCC                  SSS                  SSS                                 \r
6436       III            OOO         OOO      CCC                  SSS                  SSS                                 \r
6437       III            OOO         OOO      CCC                  SSS                  SSS                                 \r
6438       III            OOO         OOO      CCC                     SSSSSSSSS            SSSSSSSSS                        \r
6439       III            OOO         OOO      CCC                     SSSSSSSSS            SSSSSSSSS                        \r
6440       III            OOO         OOO      CCC                     SSSSSSSSS            SSSSSSSSS                        \r
6441       III            OOO         OOO      CCC                              SSS                  SSS                     \r
6442       III            OOO         OOO      CCC                              SSS                  SSS                     \r
6443       III            OOO         OOO      CCC                              SSS                  SSS                     \r
6444       III            OOO         OOO      CCC                              SSS                  SSS                     \r
6445       III            OOO         OOO      CCC                              SSS                  SSS                     \r
6446       III            OOO         OOO      CCC                              SSS                  SSS                     \r
6447    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS                        \r
6448    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS                        \r
6449    IIIIIIIII            OOOOOOOOO            CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS                        \r
6450 \r
6451 \r
6452 \r
6453 \r
6454 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
6455 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
6456 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
6457 LLL                  SSS                        TTT                                                                     \r
6458 LLL                  SSS                        TTT                                                                     \r
6459 LLL                  SSS                        TTT                                                                     \r
6460 LLL                  SSS                        TTT                                                                     \r
6461 LLL                  SSS                        TTT                                                                     \r
6462 LLL                  SSS                        TTT                                                                     \r
6463 LLL                     SSSSSSSSS               TTT                                                                     \r
6464 LLL                     SSSSSSSSS               TTT                                                                     \r
6465 LLL                     SSSSSSSSS               TTT                                                                     \r
6466 LLL                              SSS            TTT                                                                     \r
6467 LLL                              SSS            TTT                                                                     \r
6468 LLL                              SSS            TTT                                                                     \r
6469 LLL                              SSS            TTT                                                                     \r
6470 LLL                              SSS            TTT                                                                     \r
6471 LLL                              SSS            TTT                                                                     \r
6472 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
6473 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
6474 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
6475 \r
6476 \r
6477 \r
6478 \r
6479 Request created: 24-April-1978  11:23:08\r
6480 File: DSKB1 :IOCSS .LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:21
6481 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2477 \r
6482 File will be deleted after printing\r
6483 \f\rIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 1\r
6484         8-15-65\r
6485 \r
6486                                 00010           XLIST\r
6487                                 01930          LIST\r
6488 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 7\r
6489         8-15-65\r
6490 \r
6491 \r
6492                                 00010              TITLE IOCSS - IO COMMON SYSTEM SUBROUTINES\r
6493                                 00020              SUBTTL 8-15-65\r
6494                                 00030              EXTERNAL CLOSE1,DEVLST,ERROR,JBTADR\r
6495                                 00040              EXTERNAL JOB,JOBFF,RELEA1,USRJDA,WAIT1,CLDS,CLEN\r
6496                                 00050              EXTERNAL PJOBN,CPOPJ1,PIOMOD,CPOPJ,CPOPJ2\r
6497                                 00060              EXTERNAL SCNOFF,SCNON\r
6498 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 2\r
6499         8-15-65\r
6500 \r
6501 \r
6502 \r
6503                                 00100   ,DEC 06 00 EX COM L PT PRE 01 ADVBFE\r
6504                                 00110   ,H.R. MORSE         64-12-26\r
6505                                 00120   ,CALLING SEQUENCE\r
6506                                 00130   ,         PUSHJ PDP,ADVBFE\r
6507                                 00140   ,         EXIT1               RETURN IF NEXT BUFFER IS EMPTY\r
6508                                 00150   ,         EXIT2               RETURN IF NEXT BUFFER IS FULL\r
6509                                 00160   ,CLEARS THE USE BIT (IOUSE:=0) OF THE BUFFER POINTED TO BY THE\r
6510                                 00170   ,OUTPUT BUFFER ADDRESS (DEVOAD) OF THE CURRENT DEVICE DATA BLOCK\r
6511                                 00180   ,AND ADVANCES THE BUFFER ADDRESS TO THE NEXT BUFFER IN THE RING\r
6512                                 00190   ,UPON RETURN, SKIPS IF THE NEXT BUFFER IS FULL.\r
6513                                 00200   ,MONITOR INTERFACE\r
6514                                 00210   ,         STORAGE:  6\r
6515                                 00220   ,         SYMBOLS SET/USED:\r
6516                                 00230   ,             ACCUMULATORS:     DEVDAT U\r
6517                                 00240   ,                               PDP    S/U\r
6518                                 00250   ,                               TAC    S/U\r
6519                                 00260   ,             DEVICE DATA BLOCK:         DEVOAD S/U\r
6520                                 00270   ,             JOB BUFFER HEADER:         IOUSE  S/U\r
6521                                 00280             INTERN ADVBFE\r
6522         000000'                 00290   ADVBFE:   ADRCHK DEVOAD(DEVDAT)^        EXTERNAL ADRCK\r
6523         000000' 260140  000000*                 PUSHJ PDP,ADRCK\r
6524         000001' 550046  000010                  HRRZ TAC,DEVOAD(DEVDAT)^\r
6525         000002' 515040  400000  00300             HRLZI TAC,IOUSE;      IOUSE:=0\r
6526         000003' 413066  000010  00310             ANDCAB TAC,@DEVOAD(DEVDAT)\r
6527         000004' 542046  000010  00320             HRRM TAC,DEVOAD(DEVDAT); DEVOAD 18-35:=NEXT BUFFER ADDRESS\r
6528         000005' 335026  000010  00330             SKIPGE @DEVOAD(DEVDAT);       IS IOUSE=0?\r
6529         000006' 350003  000000  00340             AOS (PDP);                    EXIT2. BUFFER IS FULL\r
6530         000007' 263140  000000  00350             POPJ PDP,;            EXIT1. BUFFER IS EMPTY\r
6531 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 3\r
6532         8-15-65\r
6533 \r
6534 \r
6535 \r
6536                                 00390   ,DEC 06 00 EX COM L PT PRE 01 ADVBFF\r
6537                                 00400   ,H.R. MORSE         64-12-26\r
6538                                 00410   ,CALLING SEQUENCE\r
6539                                 00420   ,         PUSHJ PDP,ADVBFF\r
6540                                 00430   ,         EXIT1                 RETURN IF NEXT BUFFER IS FULL\r
6541                                 00440   ,         EXIT2                 RETURN IF NEXT BUFFER IS EMPTY\r
6542                                 00450   ,SETS THE USE BIT (IOUSE:=1) OF THE BUFFER POINTED TO BY THE\r
6543                                 00460   ,INPUT BUFFER ADDRESS (DEVIAD) OF THE CURRENT DEVICE DATA BLOCK\r
6544                                 00470   ,AND ADVANCES THE BUFFER ADDRESS TO THE NEXT BUFFER IN THE RING.\r
6545                                 00480   ,UPON RETURN. SKIPS IF THE NEXT BUFFER IS EMPTY,\r
6546                                 00490   ,MONITOR INTERFACE\r
6547                                 00500   ,         STORAGE:   6\r
6548                                 00510   ,         SYMBOLS SET/USED:\r
6549                                 00520   ,             ACCUMULATORS:             DEVDAT U\r
6550                                 00530   ,                                       PDP    S/U\r
6551                                 00540   ,                                       TAC    S/U\r
6552                                 00550   ,             DEVICE DATA BLOCK:        DEVIAD S/U\r
6553                                 00560   ,             JOB BUFFER HEADER:        IOUSE  S/U\r
6554                                 00570             INTERN ADVBFF\r
6555         000010' 260140  000000* 00580   ADVBFF:   ADRCHK DEVIAD(DEVDAT)^PUSHJ PDP,ADRCK\r
6556         000011' 550046  000007                  HRRZ TAC,DEVIAD(DEVDAT)^\r
6557         000012' 515040  400000  00590             HRLZI TAC,IOUSE;      IOUSE:=1\r
6558         000013' 437066  000007  00600             IORB TAC,@DEVIAD(DEVDAT)\r
6559         000014' 542046  000007  00610             HRRM TAC,DEVIAD(DEVDAT); DEVIAD:=NEXT BUFFER ADDRESS\r
6560         000015' 331026  000007  00620             SKIPL @DEVIAD(DEVDAT);        IOUSE=1?\r
6561         000016' 350003  000000  00630             AOS (PDP);            EXIT2. NEXT BUFFER IS EMPTY\r
6562         000017' 263140  000000  00640             POPJ PDP,;            EXIT1. NEXT BUFFER IS FULL\r
6563 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 4\r
6564         8-15-65\r
6565 \r
6566 \r
6567 \r
6568 \r
6569                                 00690   ,DEC 06 00 EX COM L PT PRE 01 ASCIA\r
6570                                 00700   ,C. FRAZIER AND W. SEGAL      64-12-26\r
6571                                 00710   ,CALLING SEQUENCE\r
6572                                 00720   ,         PUSHJ PDP,ASCIA\r
6573                                 00730   ,         EXIT                ALWAYS RETURNS HERE\r
6574                                 00740   ,ADDS THE ASCII INCREMENT (RIGHT JUSTIFIED) IN AC TAC1 TO THE FIVE\r
6575                                 00750   ,DIGIT ASCII NUMBER (LEFT JUSTIFIED) IN AC TAC AND LEAVES THE \r
6576                                 00760   ,RESULT (LEFT JUSTIFIED) IN AC TAC. TAC1 IS RESTORED.\r
6577                                 00770   ,MONITOR INTERFACE\r
6578                                 00780   ,         STORAGE:  21\r
6579                                 00790   ,         SYMBOLS SET/USED:\r
6580                                 00800   ,             ACCUMULATORS:     PDP  U\r
6581                                 00810   ,                               TAC  S/U\r
6582                                 00820   ,                               TAC1 S/U\r
6583 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 5\r
6584         8-15-65\r
6585 \r
6586 \r
6587 \r
6588                                 00860   ;         INTERN ASCIA\r
6589                                 00870   ;ASCIA:   PUSH PDP,TAC1;        SAVE TAC1 = ASCII INCREMENT (RIGHT JUST\r
6590                                 00880   ;         AND TAC1,K2;          CLEAR MOST SIGNIFICANT 3 BITS OF\r
6591                                 00890   ;,                              EACH CHARACTER\r
6592                                 00900   ;         LSH TAC,-1;           TAC=FIVE DIGIT ASCII NO.(RIGHT JUST.)\r
6593                                 00910   ;         IOR TAC,K4;           SET SECOND AND THIRD MOST SIGNIFICANT\r
6594                                 00920   ;,                              BITS OF EACH CHARACTER TO ONES.\r
6595                                 00930   ;         TLZN TAC,400000\r
6596                                 00940   ;         ADD TAC,K1\r
6597                                 00950   ;         ADD TAC1,TAC\r
6598                                 00960   ;         AND TAC1,K3\r
6599                                 00970   ;         MOVE TAC,K4\r
6600                                 00980   ;         AND TAC,TAC1\r
6601                                 00990   ;         ASH TAC,-3\r
6602                                 01000   ;         SUBM TAC1,TAC\r
6603                                 01010   ;         IOR TAC,K4\r
6604                                 01020   ;         LSH TAC,1\r
6605                                 01030   ;         TRO TAC,1\r
6606                                 01040   ;         POP PDP,TAC1;         RESTORE TAC1\r
6607                                 01050   ;         POPJ PDP,;            RETURN\r
6608                                 01060   ;K1:      OCT 215064321506;     CHARACTER MASK: 1000110\r
6609                                 01070   ;K2:      OCT 036170743617;     CHARACTER MASK: 0001111\r
6610                                 01080   ;K3:      OCT 176773757677;     CHARACTER MASK: 0111111\r
6611                                 01090   ;K4:      OCT 140603014060;     CHARACTER MASK: 0110000\r
6612 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 6\r
6613         8-15-65\r
6614 \r
6615 \r
6616 \r
6617                                 01130             INTERNAL ASSIN,ASSASG\r
6618 \r
6619         000020' 260140  000041' 01150   ASSIN:    PUSHJ PDP,DEVSRC      ;SEARCH FOR DEVICE\r
6620         000021' 263140  000000  01160             POPJ PDP,             ;DEVICE NOT FOUND\r
6621         000022' 201100  200000  01170             MOVEI TAC1, ASSPRG    ;DEVICE FOUND, FLAG AS ASSIGNED BY PROG\r
6622 \r
6623                                 01190   ;ASSIGN DEVICE IF UNASSIGNED\r
6624                                 01200   ;CALL:    MOVE ITEM, JOB NUMBER\r
6625                                 01210   ;         MOVE DEVDAT, ADDR. OF DDB\r
6626                                 01220   ;         MOVEI TAC1, EITHER ASSPRG OR ASSCON\r
6627                                 01230   ;         PUSHJ PDP, ASSASG\r
6628                                 01240   ;         CANT ASSIGN RETURN\r
6629                                 01250   ;         ASSIGNED RETURN\r
6630 \r
6631         000023' 700200  000000* 01270   ASSASG:   CONO APR,CLDS         ;DISABLE CLOCK\r
6632         000024' 135040  000000* 01280             LDB TAC,PJOBN         ;GET JOB NUMBER IN DEV DATA BLOCK\r
6633         000025' 316040  000004  01290             CAMN TAC,ITEM         ;IS IT ALREADY ASSIGNED TO THIS JOB\r
6634         000026' 254000  000035' 01300             JRST ASSAS1           ;YES\r
6635         000027' 201040  600000  01310             MOVEI TAC, ASSPRG+ASSCON      ;NO, IS IT ASSIGNED TO ANOTHE\r
6636         000030' 700600  000000* 01320             CONO PI, SCNOFF       ;TURN SCANNER OFF\r
6637         000031' 612046  000004  01330             TDNE TAC, DEVMOD(DEVDAT)      ;ARE EITHER ASSIGNED BITS SET\r
6638         000032' 254000  000036' 01340             JRST ASSAS2           ;YES\r
6639         000033' 436106  000004  01350             IORM TAC1, DEVMOD(DEVDAT)     ;NO, SET ONE OF THEM\r
6640         000034' 137200  000024* 01360             DPB ITEM,PJOBN        ;AND STORE JOB NUMBER\r
6641         000035' 350003  000000  01370   ASSAS1:   AOS (PDP)\r
6642         000036' 700600  000000* 01380   ASSAS2:   CONO PI, SCNON        ;TURN SCANNER BACK ON\r
6643         000037' 700200  000000* 01390             CONO APR,CLEN         ;RENABLE CLOCK\r
6644         000040' 263140  000000  01400             POPJ PDP,\r
6645 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 7\r
6646         8-15-65\r
6647 \r
6648 \r
6649 \r
6650                                 01440   ;ROUTINE TO SEARCH FOR A DEVICE\r
6651                                 01450   ;CALL:    HRR ITEM,JOB NUMBER\r
6652                                 01460   ;         MOVE TAC,[SIXBIT .DEVICE NAME.]\r
6653                                 01470   ;         PUSHJ PDP, DEVSRC\r
6654                                 01480   ;         NOT FOUND\r
6655                                 01490   ;         FOUND\r
6656 \r
6657                                 01510             INTERNAL DEVLG,DEVSRC,DEVPHY\r
6658                                 01520             EXTERNAL SYSTAP,DEVOPR\r
6659 \r
6660         000041' 260140  000044' 01540   DEVSRC:   PUSHJ PDP, DEVLG      ;SEARCH LOGICAL NAMES FIRST\r
6661         000042' 254000  000056' 01550             JRST DEVPHY           ;NOT FOUND, SEARCH PHYSICAL NAMES\r
6662         000043' 254000  000000* 01560             JRST CPOPJ1           ;FOUND\r
6663 \r
6664                                 01580   ;SEARCH LOGICAL NAMES\r
6665 \r
6666         000044' 554300  000000* 01600   DEVLG:    HLRZ DEVDAT,DEVLST    ;BEGINNING OF DDB CHAIN\r
6667         000045' 322040  000000* 01610             JUMPE TAC,CPOPJ       ;0 CANNOT BE A LOGICAL NAME\r
6668         000046' 312046  000005  01620   DEVLP0:   CAME TAC,DEVLOG(DEVDAT)       ;COMPARE WITH LOGICAL NAME\r
6669         000047' 254000  000053' 01630             JRST DEV0             ;NO MATCH\r
6670         000050' 135100  000034* 01640             LDB TAC1,PJOBN        ;DOES THE LOGICAL NAME BELONG TO THIS J\r
6671         000051' 316100  000004  01650             CAMN TAC1,ITEM\r
6672         000052' 254000  000043* 01660             JRST CPOPJ1                   ;YES\r
6673         000053' 554306  000003  01670   DEV0:     HLRZ DEVDAT,DEVSER(DEVDAT)    ;NO, KEEP LOOKING\r
6674         000054' 326300  000046' 01680             JUMPN DEVDAT,DEVLP0\r
6675         000055' 263140  000000  01690             POPJ PDP,             ;FINISH AND NOT FOUND\r
6676 \r
6677                                 01710   ;SEARCH PHYSICAL NAMES\r
6678 \r
6679         000056' 322040  000045* 01730   DEVPHY:   JUMPE TAC,CPOPJ       ;ZERO CANNOT BE A LOGICAL NAME\r
6680         000057' 316040  000370' 01740             CAMN TAC,[SIXBIT  /OPR/] ;IS IT "OPR"?\r
6681         000060' 200040  000000* 01750             MOVE TAC,DEVOPR       ;YES, CHANGE TO OPERATORS TTY\r
6682         000061' 316040  000371' 01760             CAMN TAC,[SIXBIT  /SYS/] ;IS IT "SYS"?\r
6683         000062' 200040  000000* 01770             MOVE TAC,SYSTAP       ;YES, CHANGE TO SYSTEM TAPE NAME\r
6684         000063' 554300  000044* 01780             HLRZ DEVDAT,DEVLST    ;SEARCH DEVICE DATA BLOCKS\r
6685         000064' 316046  000000  01790   DEVLP1:   CAMN TAC,DEVNAM(DEVDAT)\r
6686         000065' 254000  000052* 01800             JRST CPOPJ1           ;FOUND\r
6687         000066' 554306  000003  01810             HLRZ DEVDAT,DEVSER(DEVDAT)\r
6688         000067' 326300  000064' 01820             JUMPN DEVDAT,DEVLP1\r
6689         000070' 263140  000000  01830             POPJ PDP, ;NOT FOUND\r
6690 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 8\r
6691         8-15-65\r
6692 \r
6693 \r
6694 \r
6695                                 01870   ,DEC 06 00 EX COM L PT PRE 01 BUFCLC\r
6696                                 01880   ,H. R. MORSE        64-12-26\r
6697                                 01890   ,CALLING SEQUENCE\r
6698                                 01900   ,         PUSHJ PDP,BUFCLC\r
6699                                 01910   ,         EXIT                  RETURNS HERE IF MEMORY NOT EXCEEDED\r
6700                                 01920   , SETS UP AN N BUFFER RING FOLLOWING THE USERS PROGRAM, WHERE N\r
6701                                 01930   , IS IN THE ADDRESS FIELD OF AC UUO.\r
6702                                 01940   , THE BUFFER RING FORMAT IS AS FOLLOWS:\r
6703                                 01950   ,         LOCATION  LH   CONTENTS   RH\r
6704                                 01960   , C(JOBFF) + 1              BUFFER              C(JOBFF) +1\r
6705                                 01970   ,    + 0(BUFFER SIZE+2)      SIZE                    + 1(BUFFER SIZ+2)\r
6706                                 01980   , C(JOBFF) +1               BUFFER              C(JOBFF) +1\r
6707                                 01990   ,    +1(BUFFER SIZE+2)       SIZE                    +  2(BUFFER SIZE+2)\r
6708                                 02000   ,        .                    .                             .\r
6709                                 02010   ,        .                    .                             .\r
6710                                 02020   ,        .                    .                             .\r
6711                                 02030   , C(JOBFF) + 1              BUFFER              C(JOBFF) + 1\r
6712                                 02040   ,    + (N-2)(BUFFER SIZE+2)  SIZE                    +(N-1)(BUFFER SIZE+2)\r
6713                                 02050   , C(JOBFF) + 1              BUFFER              C(JOBFF) + 1\r
6714                                 02060   ,    + (N-1)(BUFFER SIZE+2)  SIZE       \r
6715                                 02070   ,THEN SET           BUFPNT:=IOUS,C(JOBFF) + 1\r
6716                                 02080   , AND               JOBFF:=C(JOBFF) + 1 + N(BUFFER SIZE + 2)\r
6717                                 02090   , BUFWRD IS RESTORED.\r
6718                                 02100   ,MONITOR INTERFACE\r
6719                                 02110   ,         STORAGE:  20\r
6720                                 02120   ,         ROUTINES CALLED:   ADRCK\r
6721                                 02130   ,         SYMBOLS SET/USED:\r
6722                                 02140   ,             ACCUMULATORS:  BUFPNT S/U         PROG   U\r
6723                                 02150   ,                            BUFWRD S/U         TAC   S/U\r
6724                                 02160   ,                            DEVDAT U           TAC1  S/U\r
6725                                 02170   ,                            PDP    S/U         UUO   U\r
6726                                 02180   ,         DEVICE DATA BLOCK: DEVCHR U\r
6727                                 02190   ,         JOB AREA:          JOBFF  S/U\r
6728                                 02200   ,         JOB BUFFER HEADER: IOUSE  U\r
6729 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 9\r
6730         8-15-65\r
6731 \r
6732 \r
6733 \r
6734                                 02240             INTERN BUFCLC\r
6735         000071' 261140  000013  02250   BUFCLC:   PUSH PDP,BUFWRD;      SAVE BUFWRD ON STACK\r
6736         000072' 135040  000372' 02260             LDB TAC,[POINT 12,DEVCHR(DEVDAT),35];TAC:=BUFFER SIZE\r
6737         000073' 550507  000000* 02270             HRRZ BUFPNT,JOBFF(PROG);BUFPNT:=FIRST FREE LOCATION + 1\r
6738         000074' 271500  000001  02280             ADDI BUFPNT,1\r
6739         000075' 550540  000012  02290             HRRZ BUFWRD,BUFPNT\r
6740         000076' 505500  000007  02300             HRLI BUFPNT,PROG\r
6741         000077' 504540  000001  02310             HRL BUFWRD,TAC;       BUFWRD:=BUFFER SIZE,FIRST FREE LOC + 1\r
6742         000100' 271040  000002  02320             ADDI TAC,2;           TAC:=BUFFER SIZE + 2\r
6743         000101' 550100  000014  02330             HRRZ TAC1,UUO;        TAC1:=N=ADDRESS FIELD OF AC UUO\r
6744         000102' 270540  000001  02340   BUFC1:    ADD BUFWRD,TAC;       BUFWRD:=C(BUFWRD) + C(TAC)\r
6745                                 02350             ADRCHK BUFPNT;        CHECK BUFFER FOR MEMORY BOUND\r
6746         000103' 260140  000010*         PUSHJ PDP,ADRCK\r
6747         000104' 550040  000012                  HRRZ TAC,BUFPNT\r
6748         000105' 202560  000012  02360             MOVEM BUFWRD,@BUFPNT; BUFFER HEADER+1:=C(BUFWRD)\r
6749         000106' 540500  000013  02370             HRR BUFPNT,BUFWRD;    BUFPNT 18-35:=C(BUFWRD 18-35)\r
6750         000107' 367100  000102' 02380             SOJG TAC1,BUFC1;      N:=N-1.  IS N>0?\r
6751         000110' 540547  000073* 02390             HRR BUFWRD,JOBFF(PROG)\r
6752         000111' 271540  000001  02400             ADDI BUFWRD,1\r
6753         000112' 260140  000103* 02410             PUSHJ PDP,ADRCK       ;CHECK LAST ADR. OF HEADER\r
6754         000113' 551052  777776  02420             HRRZI TAC,-2(BUFPNT)\r
6755         000114' 274500  000001  02430             SUB BUFPNT,TAC\r
6756         000115' 202560  000012  02440             MOVEM BUFWRD,@BUFPNT;LINK LAST BUFFER TO FIRST BUFFER\r
6757         000116' 270500  000001  02450             ADD BUFPNT,TAC\r
6758         000117' 542507  000110* 02460             HRRM BUFPNT,JOBFF(PROG);JOBFF:=C(JOBFF)+1+N(BUFFER SIZE+2)\r
6759         000120' 540500  000013  02470             HRR BUFPNT,BUFWRD;    BUFPNT:=IOUSE,ADDRESS OF FIRST BUFFER\r
6760                                 02480   ,                                        IN RING.\r
6761         000121' 505500  400000  02490             HRLI BUFPNT,IOUSE\r
6762         000122' 262140  000013  02500             POP PDP,BUFWRD;       RESTORE BUFWRD FROM STACK.\r
6763         000123' 263140  000000  02510             POPJ PDP,;            RETURN\r
6764 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 10\r
6765         8-15-65\r
6766 \r
6767 \r
6768 \r
6769                                 02550   ,DEC 06 00 EX COM L PT PRE 01 BUFCLR\r
6770                                 02560   ,H. R. MORSE        64-12-26\r
6771                                 02570   ,CALLING SEQUENCE\r
6772                                 02580   ,         PUSHJ PDP,BUFCLR\r
6773                                 02590   ,         EXIT                  RETURNS HERE IF MEMORY NOT EXCEEDED\r
6774                                 02600   , CLEAR THE WORD COUNT AND DATA AREA OF THE BUFFER WHOSE ADDRESS\r
6775                                 02610   , IS IN TAC 18-35.\r
6776                                 02620   ,MONITOR INTERFACE:\r
6777                                 02630   ,         STORAGE:  13\r
6778                                 02640   ,         ROUTINE CALLED:    ADRCK\r
6779                                 02650   ,         SYMBOLS SET/USED:\r
6780                                 02660   ,             ACCUMULATORS:  PDP  U             TAC   S/U\r
6781                                 02670   ,                            PROG U             TAC1  S/U\r
6782                                 02680             INTERN BUFCLR\r
6783         000124' 505040  000007  02690   BUFCLR:   HRLI TAC,PROG\r
6784                                 02700             ADRCHK TAC;           PROCEED IF CURRENT BUFFER ADDRESS\r
6785         000125' 260140  000112*         PUSHJ PDP,ADRCK\r
6786         000126' 550040  000001                  HRRZ TAC,TAC\r
6787                                 02710   ,                                   < PROTECTION ADDRESS.\r
6788         000127' 554120  000001  02720             HLRZ TAC1,@TAC;       TAC1 18-35=SIZE\r
6789         000130' 620100  400000  02730             TRZ TAC1,400000\r
6790         000131' 270100  000001  02740             ADD TAC1,TAC;         TAC1:=CURRENT BUFFER ADDRESS + SIZE\r
6791                                 02750             ADRCHK TAC1;          PROCEED IF CURRENT BUFFER ADDRESS\r
6792         000132' 260140  000125*         PUSHJ PDP,ADRCK\r
6793         000133' 550040  000002                  HRRZ TAC,TAC1\r
6794                                 02760   ,                                    + SIZE < PROTECTION ADDRESS.\r
6795         000134' 201060  000001  02770             MOVEI TAC,@TAC;       TAC:=CURRENT BUFFER ADDRESS+1,\r
6796                                 02780   ,                                    CURRENT BUFFER ADDRESS+1\r
6797         000135' 504040  000001  02790             HRL TAC,TAC\r
6798         000136' 253040  000137' 02800             AOBJN TAC,.+1\r
6799         000137' 402001  000000  02810             CLEARM 0(TAC);        WORD COUNT:=0\r
6800         000140' 350000  000001  02820             AOS TAC;              TAC:=CURRENT BUFFER ADDRESS+1,\r
6801                                 02830   ,                                    CURRENT BUFFER ADDRESS+2\r
6802         000141' 251060  000002  02840             BLT TAC,@TAC1;        CLEAR BUFFER\r
6803         000142' 263140  000000  02850             POPJ PDP,;            RETURN\r
6804 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 11\r
6805         8-15-65\r
6806 \r
6807 \r
6808                                 02880             SUBTTL 5-17-65 PART 2\r
6809 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 12\r
6810         5-17-65 PART 2\r
6811 \r
6812 \r
6813 \r
6814                                 02920   ,CALLING SEQUENCE\r
6815                                 02930   ,         PUSHJ PDP,CKS12\r
6816                                 02940   ,         EXIT                  ALWAYS RETURNS HERE\r
6817                                 02950   ,CALCULATES FOLDED 12 BIT CHECKSUMS OF THE DATA WORDS IN THE\r
6818                                 02960   ,BUFFER WHOSE ADDRESS IS IN AC TAC1.  TWO ALGORITHMS ARE USED.\r
6819                                 02970   ,ON RETURN, THE LEFT HALF OF AC TAC CONTAINS A CHECKSUM OBTAINED\r
6820                                 02980   ,BY ACCUMULATING, IN ONES COMPLEMENT, THE DATA WORDS AND FOLDING IT.\r
6821                                 02990   ,THE LEFT HALF OF AC DAT CONTAINS A CHECKSUM OBTAINED BY ACCUMULATING\r
6822                                 03000   ,IN TWOS COMPLEMENT, THE DATA WORDS AND FOLDING IT.  AC TAC1\r
6823                                 03010   ,CONTAINS A 1.\r
6824                                 03020   ,MONITOR INTERFACE\r
6825                                 03030   ,         STORAGE:  20\r
6826                                 03040   ,         ROUTINES CALLED:   FOLD\r
6827                                 03050   ,         SYMBOLS SET/USED:\r
6828                                 03060   ,             ACCUMULATORS:  DAT   S/U          SUB    S\r
6829                                 03070   ,                            PDP   U            TAC    S/U\r
6830                                 03080   ,                            PROG  U            TAC1   S/U\r
6831 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 13\r
6832         5-17-65 PART 2\r
6833 \r
6834 \r
6835 \r
6836                                 03120             INTERN CKS12\r
6837         000143' 270100  000007  03130   CKS12:    ADD TAC1,PROG;        TAC1:=-WORD COUNTER,ADDRESS OF FIRST DATA\r
6838         000144' 350000  000002  03140             AOS TAC1\r
6839         000145' 550042  000000  03150             HRRZ TAC,0(TAC1)\r
6840         000146' 213000  000001  03160             MOVNS TAC\r
6841         000147' 350000  000002  03170             AOS TAC1\r
6842         000150' 504100  000001  03180             HRL TAC1,TAC\r
6843         000151' 402000  000001  03190             CLEARM TAC;           INITIALIZE TWOS COMPLEMENT SUM\r
6844         000152' 270042  000000  03200   CKS12A:   ADD TAC,0(TAC1);      TWOS COMPLEMENT ADD\r
6845         000153' 253100  000152' 03210             AOBJN TAC1,CKS12A;    DONE?\r
6846         000154' 246040  777750  03220   FOLD:     LSHC TAC,-30\r
6847         000155' 242100  777764  03230             LSH TAC1,-14\r
6848         000156' 270040  000002  03240             ADD TAC,TAC1\r
6849         000157' 246040  777764  03250             LSHC TAC,-14\r
6850         000160' 242100  777750  03260             LSH TAC1,-30\r
6851         000161' 270040  000002  03270             ADD TAC,TAC1\r
6852         000162' 622040  770000  03280             TRZE TAC,770000\r
6853         000163' 350000  000001  03290             AOS TAC\r
6854         000164' 517000  000001  03300             HRLZS TAC\r
6855         000165' 201100  000001  03310             MOVEI TAC1,1          ;TAC1:=1\r
6856         000166' 263140  000000  03320             POPJ PDP,\r
6857 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 14\r
6858         5-17-65 PART 2\r
6859 \r
6860 \r
6861 \r
6862                                 03360   ,DEC 06 00 EX COM L PT PRE 01 CLRBYT\r
6863                                 03370   ,H. R. MORSE        64-12-26\r
6864                                 03380   ,CALLING SEQUENCE \r
6865                                 03390   ,         PUSHJ PDP,CLRBYT\r
6866                                 03400   ,         EXIT                  ALWAYS RETURN HERE\r
6867                                 03410   ,CALLED WITH A BYTE POINTER IN AC TAC, IT CLEARS THE REST OF THE\r
6868                                 03420   ,WORD POINTED TO BY THE BYTE POINTER.\r
6869                                 03430   ,MONITOR INTERFACE\r
6870                                 03440   ,         STORAGE:   7\r
6871                                 03450   ,         SYMBOLS SET/USED:\r
6872                                 03460   ,             ACCUMULATORS:   PDP    U\r
6873                                 03470   ,                             TAC    U\r
6874                                 03480   ,                             TAC1   S/U\r
6875                                 03490             INTERN CLRBYT\r
6876         000167' 135100  000373' 03500   CLRBYT:   LDB TAC1,[POINT 6,TAC,5];     TAC1:=P\r
6877         000170' 137100  000374' 03510             DPB TAC1,[POINT 12,TAC,11];   TAC 0-5:=0, TAC 6-12:=P\r
6878         000171' 402000  000002  03520             SETZM TAC1\r
6879         000172' 137100  000001  03530             DPB TAC1,TAC;         CLEAR BITS 36-P THROUGH 35\r
6880         000173' 263140  000000  03540             POPJ PDP,;            RETURN\r
6881 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 15\r
6882         5-17-65 PART 2\r
6883 \r
6884 \r
6885 \r
6886                                 03580   ;ROUTINE TO RELEASE ALL DEVICES ASSIGNED TO JOB\r
6887 \r
6888                                 03600   INTERNAL IORELS\r
6889                                 03610   EXTERNAL PUUOAC,RELEA3\r
6890 \r
6891 \r
6892         000174' 201040  000000* 03640   IORELS:   MOVEI TAC,RELEA3      ;RELEASE ALL IO DEVICES(DONT CLOSE)\r
6893 \r
6894                                 03660   ;ROUTINE TO DO IO FOR ALL DEVICES ASSIGNED TOI JOB\r
6895                                 03670   ;CALL     MOVEI TAC,ADR. OR IO SUB.\r
6896                                 03680   ;         PUSHJ PDP,IOALL\r
6897 \r
6898                                 03700   INTERNAL IOALL\r
6899 \r
6900         000175' 261140  000001  03720   IOALL:    PUSH PDP,TAC          ;SAVE ADR. FO SUB.\r
6901         000176' 515240  777760  03730             HRLZI DAT, -20\r
6902         000177' 200305  000000* 03740   IOALL1:   MOVE DEVDAT, USRJDA(DAT)\r
6903         000200' 200006  000002  03750             MOVE IOS,DEVIOS(DEVDAT)\r
6904         000201' 201600  000000  03760             MOVEI UUO,0\r
6905         000202' 137240  000000* 03770             DPB DAT,PUUOAC\r
6906         000203' 332000  000006  03780             SKIPE DEVDAT\r
6907         000204' 260163  000000  03790             PUSHJ PDP,@(PDP)      ;CALL THE SUB.\r
6908         000205' 253240  000177' 03800             AOBJN DAT, IOALL1\r
6909         000206' 262140  000001  03810             POP PDP,TAC\r
6910         000207' 263140  000000  03820             POPJ PDP,\r
6911 \r
6912                                 03840   ;KILL ALL DEVICES(RELEASE WITHOUT WAITING FOR DEVICE INACTIVE)\r
6913 \r
6914                                 03860   INTERNAL IOKILL\r
6915                                 03870   EXTERNAL RELEA5\r
6916 \r
6917         000210' 201040  000000* 03890   IOKILL:   MOVEI TAC,RELEA5\r
6918         000211' 254000  000175' 03900             JRST IOALL\r
6919 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 16\r
6920         5-17-65 PART 2\r
6921 \r
6922 \r
6923 \r
6924                                 03940   ,DEC 06 00 EX COM L PT PRE 01 IOSET\r
6925                                 03950   ,H. R. MORSE        64-12-26\r
6926                                 03960   ,CALLING SEQUENCE\r
6927                                 03970   ,         PUSHJ PDP,IOSET\r
6928                                 03980   ,         EXIT      ALWAYS RETURNS HERE\r
6929                                 03990   ,THIS PROGRAM IS CALLED FROM AN INTERRUPT SERVICE ROUTINE.\r
6930                                 04000   ,IT PUTS THE ADDRESS OF THE DATA AREA OF THE JOB (C(JBTADR18-35))\r
6931                                 04010   ,CONNECTED TO THE DEVICE SPECIFIED BY AC DEVDAT IN AC PROG AND\r
6932                                 04020   ,PUTS THE ITEM POINTER (C(DEVCTR)) IN AC ITEM.\r
6933                                 04030   ,MONITOR INTERFACE\r
6934                                 04040   ,         STORAGE:   5\r
6935                                 04050   ,         SYMBOLS SET/USED:\r
6936                                 04060   ,             ACCUMULATORS:             DEVDAT U   PDP  U\r
6937                                 04070   ,                                       ITEM   S   PROG S/U\r
6938                                 04080   ,             DEVICE DATA BLOCK:        DEVCHR U\r
6939                                 04090   ,                                       DEVCTR U\r
6940                                 04100   ,             SYSTEM ADDRESSES:         JBTADR U\r
6941                                 04110             INTERN IOSET\r
6942 \r
6943         000212' 135340  000050* 04130   IOSET:    LDB PROG,PJOBN\r
6944         000213' 200206  000011  04140             MOVE ITEM,DEVCTR(DEVDAT); ITEM:=ITEM POINTER=C(DEVCTR)\r
6945         000214' 550347  000000* 04150             HRRZ PROG,JBTADR(PROG);       PROG:=C(JBTADR 18-35)\r
6946         000215' 263140  000000  04160             POPJ PDP,;                    RETURN\r
6947 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 17\r
6948         5-17-65 PART 2\r
6949 \r
6950 \r
6951 \r
6952                                 04200   ,6-CSS-DEC-IOSETC-PL-PRE1\r
6953                                 04210   ,H.R. MORSE   17-11-64\r
6954 \r
6955                                 04230   ,CALLING SEQUENCE\r
6956                                 04240   ,         PUSHJ PDP,IOSETC\r
6957                                 04250   ,         EXIT                  ALWAYS RETURN HERE\r
6958 \r
6959                                 04270   ,SETS JBFPTR18-35:=C(TAC1 18-35)\r
6960                                 04280   ,         JBFCTR:=C(ITEM)*[WORD LENGTH/BYTE SIZE]\r
6961                                 04290   ,WHERE    WORD LENGTH:=36 DECIMAL\r
6962                                 04300   ,         BYTE SIZE:=C(JBFPTR6-11)\r
6963                                 04310   ,         [X]:= INTEGER PART OF X\r
6964 \r
6965                                 04330   ,MONITOR INTERFACE\r
6966                                 04340   ,         STORAGE:   11\r
6967                                 04350   ,         ROUTINES CALLED:      ITMCT1\r
6968                                 04360   ,         SYMBOLS SET/USED:\r
6969                                 04370   ,             ACCUMULATORS:     JBUF S/U        TAC S/U\r
6970                                 04380   ,                               ITEM S/U        TAC1 S/U\r
6971                                 04390   ,                               PDP U\r
6972 \r
6973                                 04410             INTERN IOSETC\r
6974 \r
6975         000216' 271240  000001  04430   IOSETC:   ADDI JBUF,1                   ;JBFPTR12-18:=0\r
6976         000217' 515040  007777  04440             HRLZI TAC,7777        ;JBFPTR18-35:=C(TAC1 18-35)+1\r
6977         000220' 406060  000005  04450             ANDM TAC,@JBUF\r
6978         000221' 542120  000005  04460             HRRM TAC1,@JBUF\r
6979         000222' 350020  000005  04470             AOS @JBUF\r
6980         000223' 135100  000375' 04480             LDB TAC1,[POINT 6,@JBUF,11]   ;TAC1:=BYTE SIZE\r
6981         000224' 260140  000233' 04490             PUSHJ PDP,ITMCT1      ;JBFCTR:=C(ITEM)*[36/BYTE SIZE]\r
6982         000225' 271000  000006  04500             ADDI JBUF+1\r
6983         000226' 202220  000005  04510             MOVEM ITEM,@JBUF\r
6984         000227' 263140  000000  04520             POPJ PDP,             ;EXIT\r
6985 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 18\r
6986         5-17-65 PART 2\r
6987 \r
6988 \r
6989 \r
6990                                 04560   ,DEC 06 00 EX COM L PT PRE 01 ITMSET, ITMCNT, ITMCT1\r
6991                                 04570   ,H.R. MORSE   64-12-26\r
6992 \r
6993                                 04590   ,CALLING SEQUENCE\r
6994                                 04600   ,         PUSHJ PDP,ITMSET\r
6995                                 04610   ,         EXIT                  ALWAYS RETURNS HERE\r
6996                                 04620   ,SETS AC ITEM:=(BUFFER SIZE-1)*[WORD LENGTH/BYTE SIZE]\r
6997                                 04630   ,WHERE BUFFER SIZE:=BITS 1-17 OF THE BUFFER HEADER WORD POINTED TO\r
6998                                 04640   ,                   BY C(DEVADR)\r
6999                                 04650   ,        WORD LENGTH:=36 DECIMAL\r
7000                                 04660   ,        BYTE SIZE:=INTEGER PART OF X.\r
7001 \r
7002                                 04680   ,CALLING SEQUENCE\r
7003                                 04690   ,         PUSHJ PDP,ITMCNT\r
7004                                 04700   ,         EXIT                  ALWAYS RETURNS HERE\r
7005                                 04710   ,SETS AC ITEM=C(ITEM)*[WORD LENGTH/BYTE SIZE]\r
7006 \r
7007                                 04730   ,CALLING SEQUENCE\r
7008                                 04740   ,         PUSHJ PDP,ITMCT1\r
7009                                 04750   ,         EXIT                  ALWAYS RETURNS HERE\r
7010                                 04760   ,SETS AC ITEM:=C(ITEM)*[WORD LENGTH/C(TAC1)]\r
7011 \r
7012                                 04780   ,MONITOR INTERFACE\r
7013                                 04790   ,         STOAGE:   7\r
7014                                 04800   ,         SYMBOLS SET/USED:\r
7015                                 04810   ,             ACCUMULATORS:     DEVDAT U   TAC S/U\r
7016                                 04820   ,                               ITEM S/U   TAC1 S/U\r
7017                                 04830   ,                               PDP U\r
7018                                 04840   ,         DEVICE DATA BLOCK:    DEVADR U\r
7019                                 04850   ,                               DEVPTR U\r
7020 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 19\r
7021         5-17-65 PART 2\r
7022 \r
7023 \r
7024 \r
7025                                 04890             INTERN ITMSET,ITMCNT,ITMCT1\r
7026         000230' 135200  000376' 04900   ITMSET:   LDB ITEM,[POINT 17,@DEVADR(DEVDAT),17];ITEM:=BUFFER SIZE-1\r
7027         000231' 275200  000001  04910             SUBI ITEM,1\r
7028         000232' 135100  000377' 04920   ITMCNT:   LDB TAC1,[POINT 6,DEVPTR(DEVDAT),11];TAC1:=BYTE SIZE\r
7029         000233' 201040  000044  04930   ITMCT1:   MOVEI TAC,44          ;ITEM:=C(ITEM)*[WORD LENGTH/C(TAC1)]\r
7030         000234' 230040  000002  04940             IDIV TAC,TAC1\r
7031         000235' 220200  000001  04950             IMUL ITEM,TAC\r
7032         000236' 263140  000000  04960             POPJ PDP,\r
7033 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 20\r
7034         5-17-65 PART 2\r
7035 \r
7036 \r
7037 \r
7038                                 05000   ;ROUTINE TO SET DEVICE STATUS WORD FROM UUO\r
7039 \r
7040                                 05020   INTERNAL SETIOS\r
7041                                 05030   EXTERNAL ILLMOD\r
7042 \r
7043         000237' 135040  000400' 05050   SETIOS:   LDB TAC,[POINT 4,UUO,35]      ;GET DEVICE DATA MODE\r
7044         000240' 201040  000001  05060             MOVEI TAC,1           ;AND CHECK FOR LEGALITY\r
7045         000241' 242042  000000  05070             LSH TAC,(TAC1)\r
7046         000242' 616046  000004  05080             TDNN TAC,DEVMOD(DEVDAT)\r
7047         000243' 254000  000000* 05090             JRST ILLMOD           ;ILLEGAL MODE\r
7048         000244' 620600  010000  05100             TRZ UUO,IOACT         ;LET USER SET ALL BITS EXCEPT IOACT\r
7049         000245' 542606  000002  05110             HRRM UUO,DEVIOS(DEVDAT)\r
7050         000246' 263140  000000  05120             POPJ PDP,\r
7051 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 21\r
7052         5-17-65 PART 2\r
7053 \r
7054 \r
7055 \r
7056                                 05160   ,DEC 06 00 EX COM L PT PRE 01 NEWBUF, BPNSET\r
7057                                 05170   ,H. R. MORSE        64-12-26\r
7058                                 05180   ,CALLING SEQUENCE\r
7059                                 05190   ,         PUSHJ PDP,NEWBUF\r
7060                                 05200   ,         EXIT                  ALWAYS RETURNS HERE\r
7061                                 05210   ,CLEARS THE BUFFERE CURRENTLY POINTED TO BY THE INPUT BUFFER\r
7062                                 05220   ,ADDRESS (DEVDR) OF THE CURRENT DEVICE. SETS UP THE BYTE\r
7063                                 05230   ,POINTER (DEVPTR), AND THE ITEM COUNT (DEVCTR) AND RETURNS.\r
7064                                 05240   ,CALLING SEQUENCE\r
7065                                 05250   ,         PUSHJ PDP,BPNSET\r
7066                                 05260   ,         EXIT                  ALWAYS RETURNS HERE\r
7067                                 05270   ,SETS UP THE BYTE POINTER (DEVPTR) AND THE ITEM COUNT (DEVCTR)\r
7068                                 05280   ,OF THE CURRENT DEVICE AND RETURNS.\r
7069                                 05290   ,MONITOR INTERFACE\r
7070                                 05300   ,         STORAGE:  10\r
7071                                 05310   ,         ROUTINES CALLED:      BUFCLR, ITMSET\r
7072                                 05320   ,         SYMBOLS SET/USED:     \r
7073                                 05330   ,             ACCUMULATORS:     DEVDAT U        PDP U\r
7074                                 05340   ,                               ITEM   U        TAC S/U\r
7075                                 05350   ,             DEVICE DATA BLOCKS:       DEVADR U\r
7076                                 05360   ,                               DEVCTR S\r
7077                                 05370   ,                               DEVPTR S/U\r
7078 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 22\r
7079         5-17-65 PART 2\r
7080 \r
7081 \r
7082                                 05400             INTERN BPNSET,NEWBUF\r
7083 \r
7084         000247' 550046  000007  05420   NEWBUF:   HRRZ TAC,DEVADR(DEVDAT); TAC:=INPUT BUFFER HEADER ADDRESS\r
7085         000250' 260140  000124' 05430             PUSHJ PDP,BUFCLR;     CLEAR INPUT BUFFER.\r
7086         000251' 540046  000007  05440   BPNSET:   HRR TAC,DEVADR(DEVDAT)\r
7087         000252' 515040  007737  05450             HRLZI TAC,7737\r
7088         000253' 404046  000010  05460             AND TAC,DEVPTR(DEVDAT); DEVPTR 0-5:=0, DEVPTR 12:=0\r
7089         000254' 540046  000007  05470             HRR TAC,DEVADR(DEVDAT); DEVPTR 10-35:=C(DEVADR 18-35) + 1\r
7090         000255' 350000  000001  05480             AOS TAC\r
7091         000256' 202046  000010  05490             MOVEM TAC,DEVPTR(DEVDAT)\r
7092         000257' 260140  000230' 05500             PUSHJ PDP,ITMSET;     ITEM:=(BUFFER SIZE-1)[36/BYTE SIZE]\r
7093         000260' 202206  000011  05510             MOVEM ITEM,DEVCTR(DEVDAT); DEVCTR:=ITEM COUNT\r
7094         000261' 263140  000000  05520             POPJ PDP,;            RETURN\r
7095 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 23\r
7096         5-17-65 PART 2\r
7097 \r
7098 \r
7099 \r
7100                                 05560   ,DEC 06 00 EX COM L PT PRE 02 SETBYT\r
7101                                 05570   ,H. R. MORSE        64-12-26\r
7102                                 05580   ,CALLING SEQUENCE\r
7103                                 05590   ,         PUSHJ PDP,SETBYT\r
7104                                 05600   ,         EXIT                  ALWAYS RETURN HERE\r
7105                                 05610   ,SETS     TAC 0-5:=0\r
7106                                 05620   ,         TAC 6-11:=S\r
7107                                 05630   ,         TAC 12-13:=0\r
7108                                 05640   ,         TAC 14-17:=PROG\r
7109                                 05650   ,WHERE S=35 IF DATA MODE (IOS 32-25) IS BINARY (B)\r
7110                                 05660   ,      S=8  IF DATA MODE IS IMAGE (I)\r
7111                                 05670   ,      S=7  IF DATA MODE IS   ASCII PACKED (A)\r
7112                                 05680   ,                             ASCII LINE (AL)\r
7113                                 05690   ,                             ASCII SEQUENCED (AS)\r
7114                                 05700   ,                             ASCII SEQUENCED (ASL)\r
7115                                 05710   ,                   OR        ALTERNATE MODE BREAK (AM)\r
7116                                 05720   ,MONITOR INTERFACE\r
7117                                 05730   ,         STORAGE:   12\r
7118                                 05740   ,         SYMBOLS SET/USED:\r
7119                                 05750   ,             ACCUMULATORS:     PROG  U                 TAC   S\r
7120                                 05760   ,                               PDP   U                 TAC1  S/U\r
7121                                 05770   ,             DEVICE DATA BLOCK:          DEVIOS U\r
7122                                 05780             INTERN SETBYT\r
7123         000262' 200106  000002  05790   SETBYT:   MOVE TAC1,DEVIOS(DEVDAT);     FETCH DATA MODE, BITS 32-35 0\r
7124         000263' 405100  000017  05800             ANDI TAC1, 17\r
7125         000264' 302100  000013  05810             CAIE TAC1,IB          ;DATA MODE IMAGE BINARY?\r
7126         000265' 306100  000014  05820             CAIN TAC1,B;          IS DATA MODE=BINARY?\r
7127         000266' 505040  004407  05830             HRLI TAC,4400+PROG;   SET BYTE SIZE TO 36.\r
7128         000267' 306100  000010  05840             CAIN TAC1,I;          IS DATA MODE=IMAGE?\r
7129         000270' 254000  000275' 05850             JRST SETBY1\r
7130         000271' 602100  000014  05860             TRNE TAC1,14;         IS DATA MODE=ASCII PACKED,ASCII LINE,\r
7131         000272' 254000  000274' 05870             JRST .+2;             ASCII SEQUENCED,OR ASCII SEQUENCED LINE\r
7132         000273' 505040  000707  05880             HRLI TAC,700+PROG;    SET BYTE SIZE TO 7.\r
7133         000274' 263140  000000  05890             POPJ PDP,;            RETURN\r
7134 \r
7135         000275' 510046  000004  05910   SETBY1:   HLLZ TAC,DEVMOD(DEVDAT)\r
7136         000276' 621040  770077  05920             TLZ TAC,770077\r
7137         000277' 661040  000007  05930             TLO TAC,PROG\r
7138         000300' 263140  000000  05940             POPJ PDP,\r
7139 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 24\r
7140         5-17-65 PART 2\r
7141 \r
7142 \r
7143 \r
7144                                 05980   ,DEC 06 00 EX COM L PT PRE 01 STORE ITEM\r
7145                                 05990   ,H.R. MORSE         64-12-26\r
7146                                 06000   ,CALLING SEQUENCE\r
7147                                 06010   ,         PUSHJ PDP,STODAT\r
7148                                 06020   ,         EXIT1                 CHECKSUM ERROR\r
7149                                 06030   ,         EXIT2                 BLOCK FULL OR BLOCK COMPLETE\r
7150                                 06040   ,         EXIT3                 DATA STORED CORRECTLY\r
7151                                 06050   ,CALLED FROM AN INPUT SERVICE ROUTINE WITH A DATA ITEM IN AC DAT.\r
7152                                 06060   ,STORES THE DATA ITEM IN THE BUFFER, CHECKING TO SEE IF IT WERE\r
7153                                 06070   ,THE FIRST ITEM ON THE BUFFER AND SETTING UP THE POINTER AND\r
7154                                 06080   ,WORD COUNT APPROPRIATELY CHECKING THE MODE TO SEE IF ANY SPECIAL\r
7155                                 06090   ,PROCESSING NEED BE DONE.  FOR EXAMPLE, GENERATION OF SEQUENCE\r
7156                                 06100   ,NUMBERS PRECEDING EACH LINE IN SEQUENCE MODE, OR THE TERMINATION\r
7157                                 06110   ,OF A BUFFER ON CERTAIN CHARACTERS IN OTHER MODES, OR IF THE BUFFER\r
7158                                 06120   ,RETURN OCCURS ON AN ERROR CONDITION. THE SECOND RETURN OCCURS\r
7159                                 06130   ,ON A BLOCK FULL CONDITION OR BLOCK COMPLETE CONDITION, THE THIRD\r
7160                                 06140   ,RETURN OCCURS ON THE DATA STORED CORRECTLY CONDITION.  THIS\r
7161                                 06150   ,ROUTINE ALSO DOES SOME CHECKING ON INPUT OF BINARY RECORD,\r
7162                                 06160   ,PAPER TAPE OR CARDS.\r
7163                                 06170   ,CALLING SEQUENCE\r
7164                                 06180   ,         PUSHJ PDP,STOSQD\r
7165                                 06190   ,         XXXX                  ALWAYS SKIPS\r
7166                                 06200   ,         EXIT                  ALWAYS RETURNS HERE\r
7167                                 06210   ,STORES THE WORD COUNT:=C(DEVPTR 18-35) -C(DEVIAD 18-35) - 1\r
7168                                 06220   ,IN THE BUFFER.\r
7169                                 06230   ,MONITOR INTERFACE\r
7170                                 06240   ,         STORAGE:  69\r
7171                                 06250   ,         ROUTINES CALLED: ASCIA, CKS12, ITMSET, NEWBUF\r
7172                                 06260   ,         SYMBOLS SET/USED:\r
7173                                 06270   ,             ACCUMULATORS:             DAT    U  PDP  U\r
7174                                 06280   ,                                       DEVDAT U  TAC S/U\r
7175                                 06290   ,                                       IOS    S/U         TAC1 S/U\r
7176                                 06300   ,                                       ITEM   S/U\r
7177                                 06310   ,             DEVICE DATA BLOCK:        DEVCTR U  DEVPTR S/\r
7178                                 06320   ,                                       DEVIAD U  DEVSEQ S/\r
7179                                 06330   ,             IO STATUS WORD: A     U             I      U\r
7180                                 06340   ,                                       AS   U             IOBKTL S\r
7181                                 06350   ,                                       ASL  U             IODTER S\r
7182                                 06360   ,                                       B    U             IOFST  S/\r
7183                                 06370   ,             JOB BUFFER AREA:          WORD COUNT S\r
7184 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 25\r
7185         5-17-65 PART 2\r
7186 \r
7187 \r
7188                                 06400             INTERN STODAT, STOSQD\r
7189 \r
7190         000301' 603000  000004  06420   STODAT:   TLNE IOS,IOFST;       WILL THE NEXT ITEM BE THE FIRST ITEM\r
7191                                 06430   ,                                  OF A BUFFER?\r
7192         000302' 260140  000247' 06440             PUSHJ PDP,NEWBUF;     SET UP A NEW BUFFER. ITEM:=(BUFFER\r
7193                                 06450   ,                                  SIZE - 1)*[36/BYTE SIZE]\r
7194         000303' 135100  000000* 06460             LDB TAC1,PIOMOD;      TAC1:=DATA MODE\r
7195         000304' 306100  000014  06470             CAIN TAC1,B;          MODE=BINARY?\r
7196         000305' 254000  000344' 06480             JRST STOBIN\r
7197         000306' 621000  000004  06490             TLZ IOS,IOFST\r
7198         000307' 136246  000010  06500   STO1:     DPBI DAT,DEVPTR(DEVDAT); STORE DATA IN BUFFER.\r
7199         000310' 302100  000000  06510             CAIE TAC1,A;          MODE=ASCII,  IMAGE, OR BINARY?\r
7200         000311' 306100  000010  06520             CAIN TAC1,I\r
7201         000312' 254000  000324' 06530             JRST STOAIB\r
7202         000313' 306100  000014  06540             CAIN TAC1,B\r
7203         000314' 254000  000324' 06550             JRST STOAIB\r
7204         000315' 307240  000214  06560             CAIG DAT,214          ;LINE FEED,FORM FEED, OR VERTICAL TAB?\r
7205         000316' 305240  000212  06570             CAIGE DAT,212\r
7206         000317' 254000  000321' 06580             JRST .+2  ;NO\r
7207         000320' 254000  000336' 06590             JRST STOSQD           ;YES\r
7208         000321' 365200  000000* 06600             SOJGE ITEM,CPOPJ2;    ITEM:=C(ITEM)-1. IS C(ITEM)>OR=0?\r
7209         000322' 660000  040000  06610   STOE1:    TRO IOS,IOBKTL                ;IOBKTL:=1\r
7210         000323' 254000  000056* 06620             JRST CPOPJ\r
7211         000324' 367200  000321* 06630   STOAIB:   SOJG ITEM,CPOPJ2;     ITEM:=C(ITEM)-1. IS C(ITEM)>0?\r
7212         000325' 306100  000000  06640             CAIN TAC1,A;          MODE=ASCII?\r
7213         000326' 254000  000336' 06650             JRST STOSQD\r
7214         000327' 306100  000014  06660             CAIN TAC1,B;          MODE=BINARY?\r
7215         000330' 254000  000354' 06670             JRST STOBND\r
7216         000331' 260140  000230' 06680   STOI:     PUSHJ PDP,ITMSET;     ITEM:=(BUFFER SIZE-1)*[36/BYTE SIZE]\r
7217                                 06690   ,                                      - C(DEVCTR)\r
7218         000332' 274206  000011  06700             SUB ITEM,DEVCTR(DEVDAT)\r
7219         000333' 550106  000007  06710             HRRZ TAC1,DEVIAD(DEVDAT)      ;STORE ITEM COUNT INSTEAD OF\r
7220         000334' 271200  000001  06720             ADDI ITEM,1           ;IN FIRST WORD OF BUFFER\r
7221         000335' 344100  000342' 06730             AOJA TAC1,STOSQE\r
7222 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 26\r
7223         5-17-65 PART 2\r
7224 \r
7225 \r
7226         000336' 200106  000007  06760   STOSQD:   MOVE TAC1,DEVIAD(DEVDAT); TAC1:=ADDRESS OF WORD COUNT\r
7227         000337' 350000  000002  06770             AOS TAC1\r
7228         000340' 550206  000010  06780             HRRZ ITEM,DEVPTR(DEVDAT); ITEM:=C(DEVPTR 18-25) -\r
7229                                 06790   ,                                     C(DEVIAD 18-35) -1\r
7230         000341' 274200  000002  06800             SUB ITEM,TAC1\r
7231         000342' 542220  000002  06810   STOSQE:   HRRM ITEM,@TAC1       ;WORD COUNT TO FIRST WORD IN BUFFER\r
7232         000343' 254000  000065* 06820             JRST CPOPJ1;          EXIT2. BLOCK COMPLETE\r
7233         000344' 627000  000004  06830   STOBIN:   TLZN IOS,IOFST;       WILL THE NEXT ITEM BE THE FIRST ITEM\r
7234         000345' 254000  000307' 06840             JRST STO1;               OF A BUFFER?  IOSFST:=0\r
7235         000346' 550040  000005  06850             HRRZ TAC,DAT\r
7236         000347' 313040  000004  06860             CAMLE TAC,ITEM;       IS WORD COUNT <OR= (BUFFER SIZE-1)*\r
7237         000350' 254000  000322' 06870             JRST STOE1;              [36/BYTE SIZE]?\r
7238         000351' 200200  000001  06880             MOVE ITEM,TAC;        ITEM:=WORD COUNT\r
7239         000352' 202266  000010  06890             MOVEM DAT,@DEVPTR(DEVDAT); STORE WORD COUNT IN BUFFER\r
7240         000353' 254000  000324* 06900             JRST CPOPJ2;          EXIT3.  DATA STORED CORRECTLY.\r
7241         000354' 550106  000007  06910   STOBND:   HRRZ TAC1,DEVIAD(DEVDAT)\r
7242         000355' 260140  000143' 06920             PUSHJ PDP,CKS12;      COMPUTE CHECKSUM\r
7243         000356' 270106  000007  06930             ADD TAC1, DEVIAD(DEVDAT)\r
7244         000357' 510120  000002  06940             HLLZ TAC1,@TAC1;      DATA CHECKSUM=COMPUTED CHECKSUM?\r
7245         000360' 316040  000002  06950             CAMN TAC,TAC1\r
7246         000361' 254000  000343* 06960             JRST CPOPJ1;          EXIT2. BLOCK COMPLETE\r
7247         000362' 660000  100000  06970             TRO IOS,IODTER;       IODTER:=1\r
7248         000363' 254000  000323* 06980             JRST CPOPJ;           EXIT1. CHECKSUM ERROR\r
7249 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 27\r
7250         5-17-65 PART 2\r
7251 \r
7252 \r
7253 \r
7254                                 07020   ,DEC 06 00 EX COM L PT PRE 01 UINTQ\r
7255                                 07030   ,H.R. MORSE  64-12-26\r
7256                                 07040   ,CALLING SEQUENCE\r
7257                                 07050   ,         PUSHJ PDP, UINT1\r
7258                                 07060   ,         EXIT                  ALWAYS RETURNS HERE\r
7259                                 07070   ,TAC:=CONTENTYS OF WORD FOLLOWING UUO CALL\r
7260                                 07080   ,FROM USERS AREA.\r
7261                                 07090   ,MONITOR INTERFACE\r
7262                                 07100   ,         STORAGE: 4\r
7263                                 07110   ,         SYMBOLS SET/USED:\r
7264                                 07120   ,            ACCUMULATORS:   PDP U      TAC S/U\r
7265                                 07130   ,                            PROG U     \r
7266                                 07140                 INTERN UINTQ\r
7267         000364' 200043  777777  07150   UINTQ:        MOVE TAC, -1(PDP)                 ;TAC:=ADDRESS FOLLOWING UUO C\r
7268         000365' 505040  000007  07160                 HRLI TAC, PROG                    ;RELOCATE ADDRESS\r
7269         000366' 200060  000001  07170                 MOVE TAC, @TAC                    ;TAC:=CONTENTS OF WORD FOLLOW\r
7270                                 07180                                                   ;UUO CALL FROM USERS AREA\r
7271         000367' 263140  000000  07190                 POPJ PDP,                         ;RETURN\r
7272 \r
7273                                 07210                 END,\r
7274         000370' 576062  000000\r
7275         000371' 637163  000000\r
7276         000372' 001406  000001\r
7277         000373' 360600  000001\r
7278         000374' 301400  000001\r
7279         000375' 300620  000005\r
7280         000376' 222126  000007\r
7281         000377' 300606  000010\r
7282         000400' 000400  000014\r
7283 \r
7284 NO ERRORS DETECTED\r
7285 \r
7286 PROGRAM BREAK IS 000401\r
7287 \r
7288 8K CORE USED\r
7289 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 28\r
7290         SYMBOL TABLE\r
7291 \r
7292                 000264  \r
7293 A               000000  INT\r
7294 AC1             000015  INT\r
7295 AC2             000016  INT\r
7296 AC3             000017  INT\r
7297 ADRCK           000132' EXT\r
7298 ADVBFE          000000' INT\r
7299 ADVBFF          000010' INT\r
7300 AL              000001  INT\r
7301 APR             000000  SPD\r
7302 ASSAS1          000035' \r
7303 ASSAS2          000036' \r
7304 ASSASG          000023' INT\r
7305 ASSCON          400000  INT\r
7306 ASSIN           000020' INT\r
7307 ASSPRG          200000  INT\r
7308 B               000014  INT\r
7309 BPNSET          000251' INT\r
7310 BUFC1           000102' \r
7311 BUFCLC          000071' INT\r
7312 BUFCLR          000124' INT\r
7313 BUFPNT          000012  INT\r
7314 BUFWRD          000013  INT\r
7315 CKS12           000143' INT\r
7316 CKS12A          000152' \r
7317 CLDS            000023' EXT\r
7318 CLEN            000037' EXT\r
7319 CLOSB           002000  INT\r
7320 CLOSE1          000000  EXT\r
7321 CLRBYT          000167' INT\r
7322 CLSIN           000002  INT\r
7323 CLSOUT          000001  INT\r
7324 CPOPJ           000363' EXT\r
7325 CPOPJ1          000361' EXT\r
7326 CPOPJ2          000353' EXT\r
7327 D               000017  INT\r
7328 DAT             000005  INT\r
7329 DCL             000001  INT\r
7330 DCW             020000  INT\r
7331 DDI             000007  INT\r
7332 DDO             000006  INT\r
7333 DDTMEM          000037  INT\r
7334 DDTSYM          000036  INT\r
7335 DEN             000004  INT\r
7336 DEV0            000053' \r
7337 DEVADR          000007  INT\r
7338 DEVBUF          000006  INT\r
7339 DEVCHR          000001  INT\r
7340 DEVCTR          000011  INT\r
7341 DEVDAT          000006  INT\r
7342 DEVIAD          000007  INT\r
7343 DEVIOS          000002  INT\r
7344 DEVLG           000044' INT\r
7345 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 28-1\r
7346         SYMBOL TABLE\r
7347 \r
7348 DEVLOG          000005  INT\r
7349 DEVLP0          000046' \r
7350 DEVLP1          000064' \r
7351 DEVLST          000063' EXT\r
7352 DEVMOD          000004  INT\r
7353 DEVNAM          000000  INT\r
7354 DEVOAD          000010  INT\r
7355 DEVOPR          000060' EXT\r
7356 DEVPHY          000056' INT\r
7357 DEVPTR          000010  INT\r
7358 DEVSER          000003  INT\r
7359 DEVSRC          000041' INT\r
7360 DGF             000012  INT\r
7361 DIN             000003  INT\r
7362 DLK             000005  INT\r
7363 DOU             000002  INT\r
7364 DR              000016  INT\r
7365 DRL             000000  INT\r
7366 DSI             000011  INT\r
7367 DSO             000010  INT\r
7368 DTW             040000  INT\r
7369 DVAVAL          000040  INT\r
7370 DVCDR           100000  INT\r
7371 DVDIR           000004  INT\r
7372 DVDIRI          400000  INT\r
7373 DVIN            000002  INT\r
7374 DVLPT           040000  INT\r
7375 DVMTA           000020  INT\r
7376 DVOUT           000001  INT\r
7377 DVTTY           000010  INT\r
7378 ENTRB           020000  INT\r
7379 ERROR           000000  EXT\r
7380 FOLD            000154' \r
7381 I               000010  INT\r
7382 IB              000013  INT\r
7383 IBUFB           200000  INT\r
7384 ILLMOD          000243' EXT\r
7385 INITB           400000  INT\r
7386 INPB            010000  INT\r
7387 IO              000020  INT\r
7388 IOACT           010000  INT\r
7389 IOALL           000175' INT\r
7390 IOALL1          000177' \r
7391 IOBEG           000002  INT\r
7392 IOBKTL          040000  INT\r
7393 IOCON           000040  INT\r
7394 IODEND          020000  INT\r
7395 IODERR          200000  INT\r
7396 IODISC          400000  INT\r
7397 IODONE          400000  INT\r
7398 IODTER          100000  INT\r
7399 IOEND           000040  INT\r
7400 IOFST           000004  INT\r
7401 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 28-2\r
7402         SYMBOL TABLE\r
7403 \r
7404 IOIMPM          400000  INT\r
7405 IOKILL          000210' INT\r
7406 IONRCK          000100  INT\r
7407 IORDEL          000100  INT\r
7408 IORELS          000174' INT\r
7409 IORET           000020  INT\r
7410 IOS             000000  INT\r
7411 IOSET           000212' INT\r
7412 IOSETC          000216' INT\r
7413 IOSTRT          000010  INT\r
7414 IOUSE           400000  INT\r
7415 IOW             000001  INT\r
7416 IOWC            000020  INT\r
7417 IOWS            400000  INT\r
7418 ITEM            000004  INT\r
7419 ITMCNT          000232' INT\r
7420 ITMCT1          000233' INT\r
7421 ITMSET          000230' INT\r
7422 JBFADR          000000  INT\r
7423 JBFCTR          000002  INT\r
7424 JBFPTR          000001  INT\r
7425 JBTADR          000214' EXT\r
7426 JBUF            000005  INT\r
7427 JDAT            000011  INT\r
7428 JERR            002000  INT\r
7429 JIOW            100000  INT\r
7430 JNA             004000  INT\r
7431 JOB             000000  EXT\r
7432 JOBFF           000117' EXT\r
7433 LOOKB           040000  INT\r
7434 MTW             010000  INT\r
7435 NEWBUF          000247' INT\r
7436 OBUFB           100000  INT\r
7437 OUTPB           004000  INT\r
7438 PDP             000003  INT\r
7439 PI              000004  SPD\r
7440 PICHN           000100  INT\r
7441 PIOMOD          000303' EXT\r
7442 PJOBN           000212' EXT\r
7443 PROG            000007  INT\r
7444 PUUOAC          000202' EXT\r
7445 RELEA1          000000  EXT\r
7446 RELEA3          000174' EXT\r
7447 RELEA5          000210' EXT\r
7448 RUN             200000  INT\r
7449 RUNABL          204000  INT\r
7450 SCNOFF          000030' EXT\r
7451 SCNON           000036' EXT\r
7452 SETBY1          000275' \r
7453 SETBYT          000262' INT\r
7454 SETIOS          000237' INT\r
7455 STO1            000307' \r
7456 STOAIB          000324' \r
7457 \r\fIOCSS - IO COMMON SYSTEM SUBROUTINES                 PAGE 28-3\r
7458         SYMBOL TABLE\r
7459 \r
7460 STOBIN          000344' \r
7461 STOBND          000354' \r
7462 STODAT          000301' INT\r
7463 STOE1           000322' \r
7464 STOI            000331' \r
7465 STOSQD          000336' INT\r
7466 STOSQE          000342' \r
7467 SYSTAP          000062' EXT\r
7468 TAC             000001  INT\r
7469 TAC1            000002  INT\r
7470 TEM             000010  INT\r
7471 TTYATC          020000  INT\r
7472 TTYUSE          010000  INT\r
7473 UINTQ           000364' INT\r
7474 USRJDA          000177' EXT\r
7475 USRMOD          010000  INT\r
7476 UUO             000014  INT\r
7477 WAIT1           000000  EXT\r
7478 \f   IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII               111      \r
7479    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII               111      \r
7480    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII               111      \r
7481       III            OOO         OOO            III            NNN         NNN            III               111111      \r
7482       III            OOO         OOO            III            NNN         NNN            III               111111      \r
7483       III            OOO         OOO            III            NNN         NNN            III               111111      \r
7484       III            OOO         OOO            III            NNNNNN      NNN            III                  111      \r
7485       III            OOO         OOO            III            NNNNNN      NNN            III                  111      \r
7486       III            OOO         OOO            III            NNNNNN      NNN            III                  111      \r
7487       III            OOO         OOO            III            NNN   NNN   NNN            III                  111      \r
7488       III            OOO         OOO            III            NNN   NNN   NNN            III                  111      \r
7489       III            OOO         OOO            III            NNN   NNN   NNN            III                  111      \r
7490       III            OOO         OOO            III            NNN      NNNNNN            III                  111      \r
7491       III            OOO         OOO            III            NNN      NNNNNN            III                  111      \r
7492       III            OOO         OOO            III            NNN      NNNNNN            III                  111      \r
7493       III            OOO         OOO            III            NNN         NNN            III                  111      \r
7494       III            OOO         OOO            III            NNN         NNN            III                  111      \r
7495       III            OOO         OOO            III            NNN         NNN            III                  111      \r
7496    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            111111111   \r
7497    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            111111111   \r
7498    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            111111111   \r
7499 \r
7500 \r
7501 \r
7502 \r
7503 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
7504 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
7505 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
7506 LLL                  SSS                        TTT                                                                     \r
7507 LLL                  SSS                        TTT                                                                     \r
7508 LLL                  SSS                        TTT                                                                     \r
7509 LLL                  SSS                        TTT                                                                     \r
7510 LLL                  SSS                        TTT                                                                     \r
7511 LLL                  SSS                        TTT                                                                     \r
7512 LLL                     SSSSSSSSS               TTT                                                                     \r
7513 LLL                     SSSSSSSSS               TTT                                                                     \r
7514 LLL                     SSSSSSSSS               TTT                                                                     \r
7515 LLL                              SSS            TTT                                                                     \r
7516 LLL                              SSS            TTT                                                                     \r
7517 LLL                              SSS            TTT                                                                     \r
7518 LLL                              SSS            TTT                                                                     \r
7519 LLL                              SSS            TTT                                                                     \r
7520 LLL                              SSS            TTT                                                                     \r
7521 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
7522 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
7523 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
7524 \r
7525 \r
7526 \r
7527 \r
7528 Request created: 24-April-1978  11:23:08\r
7529 File: DSKB1 :IOINI1.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:21
7530 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2445 \r
7531 File will be deleted after printing\r
7532 \f\rIOINI1 - IO INITIALIZATION PART 1                 PAGE 1\r
7533         MINIMAL CONFIGURATION\r
7534 \r
7535                                 00010           XLIST\r
7536                                 01930          LIST\r
7537 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 7\r
7538         MINIMAL CONFIGURATION\r
7539 \r
7540 \r
7541                                 00010   ;SOME MACROS FOR DEFINING CONFIGURATION\r
7542 \r
7543                                 00030   DEFINE NAME (A)\r
7544                                 00040   <DEFINE NAME1\r
7545                                 00050   <CONFIG:  ASCIZ /A/\r
7546                                 00060   INTERNAL CONFIG\r
7547                                 00070   >\r
7548                                 00080   XP A,0\r
7549                                 00090   SUBTTL A CONFIGURATION\r
7550                                 00100   >\r
7551 \r
7552                                 00120   DEFINE DATE (A)\r
7553                                 00130   <DEFINE DATE1\r
7554                                 00140   <SYSDAT:  ASCIZ /A/\r
7555                                 00150   INTERNAL SYSDAT\r
7556                                 00160   >>\r
7557 \r
7558                                 00180   DEFINE VERSION (A,B)\r
7559                                 00190   <DEFINE VERS1\r
7560                                 00200   <SYSNUM:  XWD ^D'A,^D'B\r
7561                                 00210   XP SYSMOD,^D'A\r
7562                                 00220   XP SYSVER,^D'B\r
7563                                 00230   INTERNAL SYSNUM\r
7564                                 00240   >>\r
7565 \r
7566                                 00260   DEFINE CUSPTAPE (A)\r
7567                                 00270   <DEFINE CUSP1\r
7568                                 00280   <SYSTAP:  SIXBIT /A/\r
7569                                 00290   INTERNAL SYSTAP\r
7570                                 00300   >>\r
7571 \r
7572                                 00320   DEFINE ACPDL (J,CHJN,CHJPDN)\r
7573                                 00330   <         CH'J'N=CHJN\r
7574                                 00340    CH'J'PDN=CHJPDN\r
7575                                 00350   >\r
7576 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 2\r
7577         MINIMAL CONFIGURATION\r
7578 \r
7579 \r
7580                                 00010   NAME <MINIMAL>^DEFINE NAME1\r
7581                                         <CONFIG:  ASCIZ /MINIMAL/\r
7582                                         INTERNAL CONFIG\r
7583                                         >\r
7584 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 2\r
7585         MINIMAL CONFIGURATION\r
7586 \r
7587 \r
7588                                 00040           DATE <8-16-65>^DEFINE DATE1\r
7589                                         <SYSDAT:  ASCIZ /8-16-65/\r
7590                                         INTERNAL SYSDAT\r
7591                                         >^\r
7592                                 00050           VERSION 1,4^DEFINE VERS1\r
7593                                         <SYSNUM:  XWD ^D1,^D4\r
7594                                         XP SYSMOD,^D1\r
7595                                         XP SYSVER,^D4\r
7596                                         INTERNAL SYSNUM\r
7597                                         >^\r
7598                                 00060           CUSPTAPE DTA0^DEFINE CUSP1\r
7599                                         <SYSTAP:  SIXBIT /DTA0/\r
7600                                         INTERNAL SYSTAP\r
7601                                         >^\r
7602 \r
7603                                 00080   ;DEFINE THE IO PART OF THE SYSTEM\r
7604                                 00090   ;THAT IS:\r
7605                                 00100   ;         DEFINE INTERRUPT SERVICE ROTUINE TO BE USED\r
7606                                 00110   ;       ASSIGN DEVICES TO PI CHANNELS\r
7607 \r
7608                                 00130   DEFINE SYSTEM\r
7609                                 00140    <\r
7610                                 00150    ASSOC APR,6,<>\r
7611                                 00160    ASSOC CTY,3,<>\r
7612                                 00170    ASSOC SCN,3,<TTY0,TTY1>\r
7613                                 00180    ASSOC DTC,4,<DTA0>\r
7614                                 00190   >\r
7615 \r
7616                         000001  00210   DTSIZ=1   ;MULTIPLE DECTAPE DIRECTORIES\r
7617 \r
7618                         000001  00230   SCNLIN=1\r
7619 \r
7620                                 00250   ;DEFINE HIGHEST AC TO SAVE AND LENGTH OF PD LIST FOR EACH PI CHANNEL\r
7621 \r
7622                         000000  00270   ACPDL (1,0,0)^    CH1N=0\r
7623                         000000  00280   ACPDL (2,0,0)^    CH2N=0\r
7624                         000011  00290   ACPDL (3,11,20)^          CH3N=11\r
7625                         000011  00300   ACPDL (4,11,20)^          CH4N=11\r
7626                         000000  00310   ACPDL (5,0,0)^    CH5N=0\r
7627                         000017  00320   ACPDL (6,17,20^   CH6N=17\r
7628                         000000  00330   ACPDL (7,0,0)^    CH7N=0\r
7629                                 00010             TITLE IOINI1 - IO INITIALIZATION PART 1\r
7630         000000' 466231  644632  00020             NAME1^CONFIG:  ASCIZ /MINIMAL/\r
7631         000001' 406300  000000\r
7632         000002' 341326  133132  00030             DATE1^SYSDAT:  ASCIZ /8-16-65/\r
7633         000003' 331520  000000\r
7634         000004' 000001  000004  00040             VERS1^SYSNUM:  XWD ^D1,^D4\r
7635         000005' 446441  200000  00050             CUSP1^SYSTAP:  SIXBIT /DTA0/\r
7636 \r
7637                                 00070   ;CONFIGURATION INDEPENDANT PART OF IOINIT FOLLOWS:\r
7638 \r
7639                                 00090   EXTERNAL ERROR\r
7640 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 1\r
7641         MINIMAL CONFIGURATION\r
7642 \r
7643 \r
7644                                 00110   ;SETUP CHANNEL SAVE AND RESTORE ROUTINES\r
7645 \r
7646                         000000  00130   CHANU1=0\r
7647                         000000  00140   CHANU2=0\r
7648                         000000  00150   CHANU3=0\r
7649                         000000  00160   CHANU4=0\r
7650                         000000  00170   CHANU5=0\r
7651                         000000  00180   CHANU6=0\r
7652                         000000  00190   CHANU7=0\r
7653                                 00200   DEFINE ASSOC(A,NO,D)\r
7654                                 00210   <IFE CHANU'NO,<\r
7655                                 00220   CHANU'NO=1\r
7656                                 00230   INTERNAL CH'NO'SAV,CH'NO',CH'NO'XIT,CH'NO'SAC\r
7657                                 00240   \r
7658                                 00250   CH'NO'SAV: 0\r
7659                                 00260     MOVEM CH'NO'N, CH'NO'SAC+CH'NO'N\r
7660                                 00270     MOVEI CH'NO'N, CH'NO'SAC\r
7661                                 00280     BLT CH'NO'N,CH'NO'SAC+CH'NO'N-1       ;DO ONLY ONCE FOR EACH CHANNEL\r
7662                                 00290     MOVE PDP, CH'NO'CJ\r
7663                                 00300     JRST @CH'NO'SAV\r
7664                                 00310   \r
7665                                 00320   CH'NO'SAC: REPEAT CH'NO'N+1,<EXP 0>     ;SPACE TO SAVE SOME AC'S\r
7666                                 00330             EXP CH'NO'XIT         ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
7667                                 00340             REPEAT CH'NO'PDN-1,<EXP 0>    ;REST OF PD LIST\r
7668                                 00350   \r
7669                                 00360   CH'NO'XIT: MOVSI CH'NO'N, CH'NO'SAC\r
7670                                 00370    BLT CH'NO'N, CH'NO'N\r
7671                                 00380    JEN @CH'NO\r
7672                                 00390   \r
7673                                 00400   CH'NO'CJ: XWD -CH'NO'PDN+1,CH'NO'SAC+CH'NO'N+1  ;INIT. SETTING OF P\r
7674                                 00410   \r
7675                                 00420   CH'NO':   0             ;PC STORED HERE BY JSR\r
7676                                 00430    JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
7677                                 00440    AOS CH'NO'ERR          ;SPURIOUS INTERRUPT, ADD TO COUNT\r
7678                                 00450    JEN @CH'NO             ;AND DISMISS\r
7679                                 00460   >\r
7680                                 00470   >\r
7681                                 00480   ;GENERATE THE SAVE AND RESTORE ROUTINES\r
7682 \r
7683                                 00500             SYSTEM^\r
7684         000006' 000000  000000          CH6SAV: 0\r
7685         000007' 202740  000033'           MOVEM CH6N, CH6SAC+CH6N\r
7686         000010' 201740  000014'           MOVEI CH6N, CH6SAC\r
7687         000011' 251740  000032'           BLT CH6N,CH6SAC+CH6N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
7688         000012' 200140  000057'           MOVE PDP, CH6CJ\r
7689         000013' 254020  000006'           JRST @CH6SAV\r
7690         000014' 000000  000000          EXP 0\r
7691         000015' 000000  000000          EXP 0\r
7692         000016' 000000  000000          EXP 0\r
7693         000017' 000000  000000          EXP 0\r
7694         000020' 000000  000000          EXP 0\r
7695         000021' 000000  000000          EXP 0\r
7696 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 1-1\r
7697         MINIMAL CONFIGURATION\r
7698 \r
7699         000022' 000000  000000          EXP 0\r
7700         000023' 000000  000000          EXP 0\r
7701         000024' 000000  000000          EXP 0\r
7702         000025' 000000  000000          EXP 0\r
7703         000026' 000000  000000          EXP 0\r
7704         000027' 000000  000000          EXP 0\r
7705         000030' 000000  000000          EXP 0\r
7706         000031' 000000  000000          EXP 0\r
7707         000032' 000000  000000          EXP 0\r
7708         000033' 000000  000000          EXP 0   ;SPACE TO SAVE SOME AC'S\r
7709         000034' 000000  000054'                   EXP CH6XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
7710         000035' 000000  000000          EXP 0\r
7711         000036' 000000  000000          EXP 0\r
7712         000037' 000000  000000          EXP 0\r
7713         000040' 000000  000000          EXP 0\r
7714         000041' 000000  000000          EXP 0\r
7715         000042' 000000  000000          EXP 0\r
7716         000043' 000000  000000          EXP 0\r
7717         000044' 000000  000000          EXP 0\r
7718         000045' 000000  000000          EXP 0\r
7719         000046' 000000  000000          EXP 0\r
7720         000047' 000000  000000          EXP 0\r
7721         000050' 000000  000000          EXP 0\r
7722         000051' 000000  000000          EXP 0\r
7723         000052' 000000  000000          EXP 0\r
7724         000053' 000000  000000          EXP 0   ;REST OF PD LIST\r
7725         000054' 205740  000014'         CH6XIT: MOVSI CH6N, CH6SAC\r
7726         000055' 251740  000017           BLT CH6N, CH6N\r
7727         000056' 254520  000060'          JEN @CH6\r
7728         000057' 777761  000034'         CH6CJ: XWD -CH6PDN+1,CH6SAC+CH6N+1      ;INIT. SETTING OF P\r
7729         000060' 000000  000000          CH6:      0             ;PC STORED HERE BY JSR\r
7730         000061' 254000  000062'          JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
7731         000062' 350000  000317'          AOS CH6ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
7732         000063' 254520  000060'          JEN @CH6               ;AND DISMISS\r
7733         000064' 000000  000000          CH3SAV: 0\r
7734         000065' 202440  000103'           MOVEM CH3N, CH3SAC+CH3N\r
7735         000066' 201440  000072'           MOVEI CH3N, CH3SAC\r
7736         000067' 251440  000102'           BLT CH3N,CH3SAC+CH3N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
7737         000070' 200140  000127'           MOVE PDP, CH3CJ\r
7738         000071' 254020  000064'           JRST @CH3SAV\r
7739         000072' 000000  000000          EXP 0\r
7740         000073' 000000  000000          EXP 0\r
7741         000074' 000000  000000          EXP 0\r
7742         000075' 000000  000000          EXP 0\r
7743         000076' 000000  000000          EXP 0\r
7744         000077' 000000  000000          EXP 0\r
7745         000100' 000000  000000          EXP 0\r
7746         000101' 000000  000000          EXP 0\r
7747         000102' 000000  000000          EXP 0\r
7748         000103' 000000  000000          EXP 0   ;SPACE TO SAVE SOME AC'S\r
7749         000104' 000000  000124'                   EXP CH3XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
7750         000105' 000000  000000          EXP 0\r
7751         000106' 000000  000000          EXP 0\r
7752 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 1-2\r
7753         MINIMAL CONFIGURATION\r
7754 \r
7755         000107' 000000  000000          EXP 0\r
7756         000110' 000000  000000          EXP 0\r
7757         000111' 000000  000000          EXP 0\r
7758         000112' 000000  000000          EXP 0\r
7759         000113' 000000  000000          EXP 0\r
7760         000114' 000000  000000          EXP 0\r
7761         000115' 000000  000000          EXP 0\r
7762         000116' 000000  000000          EXP 0\r
7763         000117' 000000  000000          EXP 0\r
7764         000120' 000000  000000          EXP 0\r
7765         000121' 000000  000000          EXP 0\r
7766         000122' 000000  000000          EXP 0\r
7767         000123' 000000  000000          EXP 0   ;REST OF PD LIST\r
7768         000124' 205440  000072'         CH3XIT: MOVSI CH3N, CH3SAC\r
7769         000125' 251440  000011           BLT CH3N, CH3N\r
7770         000126' 254520  000130'          JEN @CH3\r
7771         000127' 777761  000104'         CH3CJ: XWD -CH3PDN+1,CH3SAC+CH3N+1      ;INIT. SETTING OF P\r
7772         000130' 000000  000000          CH3:      0             ;PC STORED HERE BY JSR\r
7773         000131' 254000  000132'          JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
7774         000132' 350000  000314'          AOS CH3ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
7775         000133' 254520  000130'          JEN @CH3               ;AND DISMISS\r
7776         000134' 000000  000000          CH4SAV: 0\r
7777         000135' 202440  000153'           MOVEM CH4N, CH4SAC+CH4N\r
7778         000136' 201440  000142'           MOVEI CH4N, CH4SAC\r
7779         000137' 251440  000152'           BLT CH4N,CH4SAC+CH4N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
7780         000140' 200140  000177'           MOVE PDP, CH4CJ\r
7781         000141' 254020  000134'           JRST @CH4SAV\r
7782         000142' 000000  000000          EXP 0\r
7783         000143' 000000  000000          EXP 0\r
7784         000144' 000000  000000          EXP 0\r
7785         000145' 000000  000000          EXP 0\r
7786         000146' 000000  000000          EXP 0\r
7787         000147' 000000  000000          EXP 0\r
7788         000150' 000000  000000          EXP 0\r
7789         000151' 000000  000000          EXP 0\r
7790         000152' 000000  000000          EXP 0\r
7791         000153' 000000  000000          EXP 0   ;SPACE TO SAVE SOME AC'S\r
7792         000154' 000000  000174'                   EXP CH4XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
7793         000155' 000000  000000          EXP 0\r
7794         000156' 000000  000000          EXP 0\r
7795         000157' 000000  000000          EXP 0\r
7796         000160' 000000  000000          EXP 0\r
7797         000161' 000000  000000          EXP 0\r
7798         000162' 000000  000000          EXP 0\r
7799         000163' 000000  000000          EXP 0\r
7800         000164' 000000  000000          EXP 0\r
7801         000165' 000000  000000          EXP 0\r
7802         000166' 000000  000000          EXP 0\r
7803         000167' 000000  000000          EXP 0\r
7804         000170' 000000  000000          EXP 0\r
7805         000171' 000000  000000          EXP 0\r
7806         000172' 000000  000000          EXP 0\r
7807         000173' 000000  000000          EXP 0   ;REST OF PD LIST\r
7808 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 1-3\r
7809         MINIMAL CONFIGURATION\r
7810 \r
7811         000174' 205440  000142'         CH4XIT: MOVSI CH4N, CH4SAC\r
7812         000175' 251440  000011           BLT CH4N, CH4N\r
7813         000176' 254520  000200'          JEN @CH4\r
7814         000177' 777761  000154'         CH4CJ: XWD -CH4PDN+1,CH4SAC+CH4N+1      ;INIT. SETTING OF P\r
7815         000200' 000000  000000          CH4:      0             ;PC STORED HERE BY JSR\r
7816         000201' 254000  000202'          JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
7817         000202' 350000  000315'          AOS CH4ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
7818         000203' 254520  000200'          JEN @CH4               ;AND DISMISS\r
7819 \r
7820                                 00520   ;SET UP NULL CHANNEL ROUTINES FOR UNUSED CHANNELS\r
7821 \r
7822                                 00540   DEFINE NULCHN(J)\r
7823                                 00550   <\r
7824                                 00560   INTERNAL CH'J,CH'J'XIT\r
7825                                 00570   CH'J:     0\r
7826                                 00580   CH'J'XIT: AOS CH'J'ERR\r
7827                                 00590    JEN @CH'J\r
7828                                 00600   >\r
7829 \r
7830                                 00620             IFE CHANU1,<NULCHN(1)>^\r
7831         000204' 000000  000000          CH1:      0\r
7832         000205' 350000  000312'         CH1XIT: AOS CH1ERR\r
7833         000206' 254520  000204'          JEN @CH1\r
7834                                 00630             IFE CHANU2,<NULCHN(2)>^\r
7835         000207' 000000  000000          CH2:      0\r
7836         000210' 350000  000313'         CH2XIT: AOS CH2ERR\r
7837         000211' 254520  000207'          JEN @CH2\r
7838                                 00640             IFE CHANU3,<NULCHN(3)>\r
7839                                 00650             IFE CHANU4,<NULCHN(4)>\r
7840                                 00660             IFE CHANU5,<NULCHN(5)>^\r
7841         000212' 000000  000000          CH5:      0\r
7842         000213' 350000  000316'         CH5XIT: AOS CH5ERR\r
7843         000214' 254520  000212'          JEN @CH5\r
7844                                 00670             IFE CHANU6,<NULCHN(6)>\r
7845                                 00680             IFE CHANU7,<NULCHN(7)>^\r
7846         000215' 000000  000000          CH7:      0\r
7847         000216' 350000  000320'         CH7XIT: AOS CH7ERR\r
7848         000217' 254520  000215'          JEN @CH7\r
7849 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 2\r
7850         MINIMAL CONFIGURATION\r
7851 \r
7852 \r
7853 \r
7854                                 00720   ;ASSIGN DEVICE TO CHANNELS AND SETUP CORESPONDENCE TABLE\r
7855                                 00730   ;OF CHANNELS TO SERVICE ROUTINES\r
7856 \r
7857                                 00750   DEFINE ASSOC (A,N,D)\r
7858                                 00760   <         A'RET=CH'N'XIT\r
7859                                 00770    A'SAV=CH'N'SAV\r
7860                                 00780    A'SAC=CH'N'SAC\r
7861                                 00790    A'CHL=CH'N\r
7862                                 00800    A'CHN=N\r
7863                                 00810    A'BIT=1\r
7864                                 00820    REPEAT 7-N,<A'BIT=A'BIT*2>\r
7865                                 00830    A'OFF=1000+A'BIT       ;CONO PI, A'OFF WIL TURN CHANNEL OFF\r
7866                                 00840    A'ON=2000+A'BIT        ;TURN BACK ON\r
7867                                 00850    A'ACT=4000+A'BIT       ;FORCE INTERRUPT ON CHAN.\r
7868                                 00860   INTERN A'RET, A'SAV, A'CHL, A'CHN, A'SAC\r
7869                                 00870   INTERNAL A'OFF,A'ON,A'ACT,A'BIT\r
7870                                 00880    XWD A'CHL,A'INT\r
7871                                 00890    EXTERNAL A'INT\r
7872                                 00900   >\r
7873 \r
7874                                 00920   INTERNAL DEVINT\r
7875         000220'                 00930   DEVINT:   SYSTEM^\r
7876         000220' 000060' 000000*          XWD APRCHL,APRINT\r
7877         000221' 000130' 000000*          XWD CTYCHL,CTYINT\r
7878         000222' 000130' 000000*          XWD SCNCHL,SCNINT\r
7879         000223' 000200' 000000*          XWD DTCCHL,DTCINT\r
7880                         000004  00940   NDEV=.-DEVINT           ;NO. OF DEVICE INTERUPT SERVICE ROUTINES\r
7881                         000003  00950   NDEVM1=NDEV-1           ;(USED BY ONCE)\r
7882                                 00960   INTERNAL NDEVM1\r
7883 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 3\r
7884         MINIMAL CONFIGURATION\r
7885 \r
7886 \r
7887 \r
7888                                 01000   ;INITIALIZE SOME IO DEVICES\r
7889                                 01010   ;IOINI CALLED BY A PUSHJ PDP, FROM SYSINI AT SYSTEM INITIALIZATION\r
7890 \r
7891                                 01030   DEFINE IOINIT (A)\r
7892                                 01040   <IRP A\r
7893                                 01050   <         EXTERNAL A'INI\r
7894                                 01060    PUSHJ PDP,A'INI\r
7895                                 01070   >>\r
7896 \r
7897                                 01090   DEFINE ASSOC (A,B,C)\r
7898                                 01100   <         IFIDN <A><MTC>,< IOINIT MTC>\r
7899                                 01110    IFIDN <A><DTC>,< IOINIT DTC>\r
7900                                 01120    IFIDN <A><LPT>,< IOINIT LPT>\r
7901                                 01130    IFIDN <A><SCN>,< IOINIT SCN>\r
7902                                 01140    IFIDN <A><PTP>,<IOINIT PTP>\r
7903                                 01150    IFIDN <A><PTR>,<IOINIT PTR>\r
7904                                 01160   >\r
7905 \r
7906                                 01180   INTERNAL IOINI\r
7907 \r
7908         000224'                 01200   IOINI:  SYSTEM^\r
7909         000224' 260140  000000*          PUSHJ PDP,SCNINI\r
7910         000225' 260140  000000*          PUSHJ PDP,DTCINI\r
7911         000226' 254000  000000* 01210           JRST CLKINI             ;ALWAYS INIT. CLOCK\r
7912 \r
7913                                 01230   EXTERNAL CLKINI\r
7914 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 4\r
7915         MINIMAL CONFIGURATION\r
7916 \r
7917 \r
7918 \r
7919                                 01270   ;CLOCK CONTROL PARAMETERS\r
7920 \r
7921                         004006  01290             CLDS=4000+APRCHN      ;CLOCK DISABLE\r
7922                         000206  01300             CLEN=200+APRCHN       ;CLOCK ENABLE\r
7923 \r
7924                                 01320             INTERNAL CLDS,CLEN\r
7925 \r
7926                                 01340   ;BYTE POINTERS\r
7927 \r
7928         000227' 270400  000014  01360   PUUOAC:   POINT 4,UUO,12        ;UUO AC FIELD\r
7929         000230' 000400  000000  01370   PIOMOD:   POINT 4,IOS,35        ;MODE BITS\r
7930         000231' 331106  000001  01380   PJOBN:    POINT 9,DEVCHR(DEVDAT),8      ;DEVICE JOB ASSIGNMENT\r
7931         000232' 220406  000001  01390   PJDCHN:   POINT 4,DEVCHR(DEVDAT),17     ;JOB DEVICE CHANNEL NO.\r
7932         000233' 140606  000001  01400   PUNIT:    POINT 6,DEVCHR(DEVDAT),23     ;DEVICE UNIT NO.\r
7933 \r
7934                                 01420   INTERNAL PUUOAC,PIOMOD,PJOBN,PJDCHN,PUNIT\r
7935 \r
7936                                 01440   ;COMMON SUBROUTINE RETURNS\r
7937 \r
7938         000234' 350003  000000  01460   CPOPJ2:   AOS (PDP)\r
7939         000235' 350003  000000  01470   CPOPJ1:   AOS (PDP)\r
7940         000236' 263140  000000  01480   CPOPJ:    POPJ PDP,\r
7941 \r
7942                                 01500   INTERNAL CPOPJ,CPOPJ1,CPOPJ2\r
7943 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 5\r
7944         MINIMAL CONFIGURATION\r
7945 \r
7946 \r
7947                                 01530   ,SYSTEM DATA STORAGE\r
7948 \r
7949 \r
7950                                 01560   INTERNAL JOB,JOBADR,JBTADR,JBTSTS,USRREL,USRINF,USRJDA\r
7951                                 01570   INTERNAL USRPDP,JOBDAT,USRDDT,USRSAV,USRUXT,USRLO,USRHI\r
7952                                 01580   INTERNAL COMCNT,IOCOMP,USRPOV,STOPU,SCHEDF,TIME,JBTAD1\r
7953                                 01590   INTERNAL MTAVAL,DCAVAL,DTAVAL,MTREQ,DCREQ,DTREQ,TTYTAB,CORTAB\r
7954                                 01600   INTERNAL CH1ERR,CH2ERR,CH3ERR,CH4ERR,CH5ERR,CH6ERR,CH7ERR\r
7955                                 01610   INTERNAL CORLST,CORTAB,CORTAL,SYSEND,SYSBEG,DEVOPR\r
7956 \r
7957                         000000  01630   JOBN=0  ;DEFINE NO. OF JOBS (0 THRU JOBN-1)\r
7958                                 01640   ;THERE MUST BE MORE TTY DEVICE DATA BLCKS THAN JOBS.\r
7959 \r
7960                                 01660   DEFINE ASSOC (A,N,D)\r
7961                                 01670   <IRP D,<IFIDN <A><SCN>,<JOBN=JOBN+1>>>\r
7962                                 01680             SYSTEM^\r
7963                 777777  777776  01690   MJOBN=-JOBN\r
7964                                 01700   INTERNAL JOBN,MJOBN\r
7965 \r
7966         000237'                 01720   SYSBEG:   ;FIRST LOC IN SYSTEM DATA AREA\r
7967                                 01730   XP SYSBG1,SYSBEG+1      ;FIRST LOC+1\r
7968         000237' 000000  000000  01740   JOB:      0             ;CURRENT JOB NUMBER EXCEPT WEN SCHEDF IS NON-ZERO\r
7969         000240' 000000  000000  01750   JOBADR:   0             ;CONTAINS ADDRESS OF JOB CURRENTLY RUNNING\r
7970         000241' 000000  000000  01760   JOBDAT:   0             ;CONTAINS ADDRESS OF JOB DATA AREA\r
7971 \r
7972         000242'                 01780   JBTADR:   BLOCK JOBN            ;C(LH)=PROTECT, C(RH)=RELOCATION\r
7973                                 01790   XP JBTAD1,JBTADR+1   ;ADDRESS OF JOB 1(USED BY SYSMAK)\r
7974         000244'                 01800   JBTSTS:   BLOCK JOBN            ;CONTAINS STATUS INFORMATION FOR EACH J\r
7975 \r
7976         000246' 000000  000000  01820   USRPDP:   0         ;USER PUSH DOWN POINTER\r
7977         000247' 000000  000000  01830   USRREL:   0         ;LH=0, RH CONTAINS CONTENTS OF PROTECTION REGISTER\r
7978         000250'                 01840   USRLO:    ;FIRST LOC CLEARD BY SETUSR SUBROUTINE\r
7979         000250' 000000  000000  01850   USRUXT:   0         ;UNUSED,  JOBUXT USED TO SAVE UUO PC(UUO0)\r
7980         000251' 000000  000000  01860   USRLEV:   0         ;UNUSED,  JOBLEV USED TO SAVE LOC. 40\r
7981         000252' 000000  000000  01870   USRSAV:   0         ;TEMPORARY STORAGE FOR UUO HANDLER\r
7982         000253' 000000  000000  01880   USRPOV:   0         ;PUSH DOWN OVERFLOW TRAP\r
7983         000254'                 01890             BLOCK 2\r
7984         000256' 000000  000000  01900   USRINF:   0         ;UN LAYED OUT USER INFORMATION\r
7985         000257'                 01910   USRJDA:   BLOCK 20  ;RH=JOB DEVICE ASSIGNMENTS FOR THIS USER,LH=UUOS\r
7986                                 01920   XP USRHI,.-1        ;LAST LOC CLEARED BY SETUSR ROUTINE\r
7987                                 01930   XP USRPFI,.-1       ;LAST LOC PROTECTED FROM IO SERVICE\r
7988                                 01940   XP USRPFU,.         ;LAST LOC PROTECTED FROM USER PROGRAM\r
7989         000277' 000000  000000  01950   USRDDT:   0         ;STARTING ADDR OF USER DDT\r
7990 \r
7991                                 01970   ;DEVICE JUSTR BECOME AVAILABLE FLAGS\r
7992         000300' 000000  000000  01980   MTAVAL:   0          ;MAGNETIC TAPE\r
7993         000301' 000000  000000  01990   DCAVAL:   0          ;DATA CONTROL\r
7994         000302' 000000  000000  02000   DTAVAL:   0          ;DECTAPE\r
7995 \r
7996                                 02020   ;NUMBER OF JOBS WAITING FOR DEVICES(-1=NONE, 0=1 USING, 1=1 USING)\r
7997         000303' 777777  777777  02030   MTREQ:    -1        ;MAGNETIC TAPE\r
7998         000304' 777777  777777  02040   DCREQ:    -1        ;DATA CONTROL\r
7999 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 5-1\r
8000         MINIMAL CONFIGURATION\r
8001 \r
8002         000305' 777777  777777  02050   DTREQ:    -1        ;DECTAPE\r
8003         000306' 000000  000000  02060   IOCOMP:   0         ;NUMBER OF USERS IN IO WAIT STATE\r
8004         000307' 000000  000000  02070   COMCNT:   0         ;NUMBER OF COMMANDS TYPED-IN BUT NOT DECODED\r
8005         000310' 000000  000000  02080   STOPU:    0         ;NON-ZERO WHEN CLOCK INTERRUPT FORCED TO STOP USER\r
8006         000311' 000000  000000  02090   SCHEDF:   0         ;NON-ZERO WHEN CLOCK ROUTINE IS SCHEDULING\r
8007 \r
8008         000312' 000000  000000  02110   CH1ERR:   0         ;SPURIOUS INTERRUPT COUNTS FOR EACH CHANNEL\r
8009         000313' 000000  000000  02120   CH2ERR:   0\r
8010         000314' 000000  000000  02130   CH3ERR:   0\r
8011         000315' 000000  000000  02140   CH4ERR:   0\r
8012         000316' 000000  000000  02150   CH5ERR:   0\r
8013         000317' 000000  000000  02160   CH6ERR:   0\r
8014         000320' 000000  000000  02170   CH7ERR:   0\r
8015 \r
8016                         000251' 02190              USRLO1=USRLO+1\r
8017                                 02200              INTERNAL USRLO1\r
8018 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 6\r
8019         MINIMAL CONFIGURATION\r
8020 \r
8021 \r
8022         000321' 000000  000000  02230   TIME:     0             ;TIME SYSTEM HAS RUN IN 60THS OF A SECOND\r
8023 \r
8024 \r
8025                                 02260   XP TTYLEN,SCNLIN+1   ;LENGTH OF TTY TRANSLATOR TABLES(INCLUDING CTY)\r
8026         000322'                 02270   TTYTAB:   BLOCK TTYLEN          ;TTY TRANSLATOR TABLE\r
8027                                 02280                                   ;SIGN BIT = 1 IF COMMAND JUST TYPED\r
8028                                 02290                                   ;BITS 1 -9, JOB CONSOLE IS ATTACHED TO\r
8029                                 02300                                   ;BITS 18-35, THE DEVICE DATA BLOCK FOR\r
8030         000324' 000000  000000  02310   DEVOPR:   0             ;SIXBIT PHYSICAL NAME OF OPERATORS\r
8031                                 02320                           ;CONSOLE SET BY SCNSER TO FIRST ACTIVE TTY.\r
8032                                 02330   ;LOCATIONS FOR CORE ALLOCATION\r
8033                                 02340   XP CORBLK,^D256          ;NO. OF 1K BLOCKS POSSIBLE\r
8034         000325'                 02350   CORTAB:   BLOCK <CORBLK>/^D36+1         ;1K BLOCK USE BIT TABLE\r
8035                                 02360                                   ;A 1 MEANS BLOCK IS IN USE\r
8036         000335' 000000  000000  02370   CORLST:   0             ;1 BIT BYTE POINTER TO LAST FREE BLOCK POSSIBLE\r
8037         000336' 000000  000000  02380   CORTAL:   0             ;TOTAL NO. OF FREE CORE BLOCKS LEFT\r
8038                                 02390   ;CORLST AND CORTAL ARE SET UP AT SYSTEM INITIALIZATION\r
8039 \r
8040                         000336' 02410   SYSEND=.-1              ;LAST LOC. CLEARED BY SYSINI\r
8041 \r
8042                                 02430   INTERNAL SYSSIZ\r
8043                                 02440   EXTERNAL SYSFIN\r
8044         000337' 000000  000000* 02450   SYSSIZ:   EXP SYSFIN            ;SIZE OF MONITOR(LAST LOC. USED)\r
8045 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 7\r
8046         MINIMAL CONFIGURATION\r
8047 \r
8048 \r
8049                                 02480             END,\r
8050 \r
8051 NO ERRORS DETECTED\r
8052 \r
8053 PROGRAM BREAK IS 000340\r
8054 \r
8055 9K CORE USED\r
8056 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 8\r
8057         SYMBOL TABLE\r
8058 \r
8059                 000436  \r
8060 A               000000  INT\r
8061 AC1             000015  INT\r
8062 AC2             000016  INT\r
8063 AC3             000017  INT\r
8064 AL              000001  INT\r
8065 APRACT          004002  INT\r
8066 APRBIT          000002  INT\r
8067 APRCHL          000060' INT\r
8068 APRCHN          000006  INT\r
8069 APRINT          000220' EXT\r
8070 APROFF          001002  INT\r
8071 APRON           002002  INT\r
8072 APRRET          000054' INT\r
8073 APRSAC          000014' INT\r
8074 APRSAV          000006' INT\r
8075 ASSCON          400000  INT\r
8076 ASSPRG          200000  INT\r
8077 B               000014  INT\r
8078 BUFPNT          000012  INT\r
8079 BUFWRD          000013  INT\r
8080 CH1             000204' INT\r
8081 CH1ERR          000312' INT\r
8082 CH1N            000000  \r
8083 CH1PDN          000000  \r
8084 CH1XIT          000205' INT\r
8085 CH2             000207' INT\r
8086 CH2ERR          000313' INT\r
8087 CH2N            000000  \r
8088 CH2PDN          000000  \r
8089 CH2XIT          000210' INT\r
8090 CH3             000130' INT\r
8091 CH3CJ           000127' \r
8092 CH3ERR          000314' INT\r
8093 CH3N            000011  \r
8094 CH3PDN          000020  \r
8095 CH3SAC          000072' INT\r
8096 CH3SAV          000064' INT\r
8097 CH3XIT          000124' INT\r
8098 CH4             000200' INT\r
8099 CH4CJ           000177' \r
8100 CH4ERR          000315' INT\r
8101 CH4N            000011  \r
8102 CH4PDN          000020  \r
8103 CH4SAC          000142' INT\r
8104 CH4SAV          000134' INT\r
8105 CH4XIT          000174' INT\r
8106 CH5             000212' INT\r
8107 CH5ERR          000316' INT\r
8108 CH5N            000000  \r
8109 CH5PDN          000000  \r
8110 CH5XIT          000213' INT\r
8111 CH6             000060' INT\r
8112 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 8-1\r
8113         SYMBOL TABLE\r
8114 \r
8115 CH6CJ           000057' \r
8116 CH6ERR          000317' INT\r
8117 CH6N            000017  \r
8118 CH6PDN          000020  \r
8119 CH6SAC          000014' INT\r
8120 CH6SAV          000006' INT\r
8121 CH6XIT          000054' INT\r
8122 CH7             000215' INT\r
8123 CH7ERR          000320' INT\r
8124 CH7N            000000  \r
8125 CH7PDN          000000  \r
8126 CH7XIT          000216' INT\r
8127 CHANU1          000000  \r
8128 CHANU2          000000  \r
8129 CHANU3          000001  \r
8130 CHANU4          000001  \r
8131 CHANU5          000000  \r
8132 CHANU6          000001  \r
8133 CHANU7          000000  \r
8134 CLDS            004006  INT\r
8135 CLEN            000206  INT\r
8136 CLKINI          000226' EXT\r
8137 CLOSB           002000  INT\r
8138 CLSIN           000002  INT\r
8139 CLSOUT          000001  INT\r
8140 COMCNT          000307' INT\r
8141 CONFIG          000000' INT\r
8142 CORBLK          000400  INT\r
8143 CORLST          000335' INT\r
8144 CORTAB          000325' INT\r
8145 CORTAL          000336' INT\r
8146 CPOPJ           000236' INT\r
8147 CPOPJ1          000235' INT\r
8148 CPOPJ2          000234' INT\r
8149 CTYACT          004020  INT\r
8150 CTYBIT          000020  INT\r
8151 CTYCHL          000130' INT\r
8152 CTYCHN          000003  INT\r
8153 CTYINT          000221' EXT\r
8154 CTYOFF          001020  INT\r
8155 CTYON           002020  INT\r
8156 CTYRET          000124' INT\r
8157 CTYSAC          000072' INT\r
8158 CTYSAV          000064' INT\r
8159 D               000017  INT\r
8160 DAT             000005  INT\r
8161 DCAVAL          000301' INT\r
8162 DCL             000001  INT\r
8163 DCREQ           000304' INT\r
8164 DCW             020000  INT\r
8165 DDI             000007  INT\r
8166 DDO             000006  INT\r
8167 DDTMEM          000037  INT\r
8168 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 8-2\r
8169         SYMBOL TABLE\r
8170 \r
8171 DDTSYM          000036  INT\r
8172 DEN             000004  INT\r
8173 DEVADR          000007  INT\r
8174 DEVBUF          000006  INT\r
8175 DEVCHR          000001  INT\r
8176 DEVCTR          000011  INT\r
8177 DEVDAT          000006  INT\r
8178 DEVIAD          000007  INT\r
8179 DEVINT          000220' INT\r
8180 DEVIOS          000002  INT\r
8181 DEVLOG          000005  INT\r
8182 DEVMOD          000004  INT\r
8183 DEVNAM          000000  INT\r
8184 DEVOAD          000010  INT\r
8185 DEVOPR          000324' INT\r
8186 DEVPTR          000010  INT\r
8187 DEVSER          000003  INT\r
8188 DGF             000012  INT\r
8189 DIN             000003  INT\r
8190 DLK             000005  INT\r
8191 DOU             000002  INT\r
8192 DR              000016  INT\r
8193 DRL             000000  INT\r
8194 DSI             000011  INT\r
8195 DSO             000010  INT\r
8196 DTAVAL          000302' INT\r
8197 DTCACT          004010  INT\r
8198 DTCBIT          000010  INT\r
8199 DTCCHL          000200' INT\r
8200 DTCCHN          000004  INT\r
8201 DTCINI          000225' EXT\r
8202 DTCINT          000223' EXT\r
8203 DTCOFF          001010  INT\r
8204 DTCON           002010  INT\r
8205 DTCRET          000174' INT\r
8206 DTCSAC          000142' INT\r
8207 DTCSAV          000134' INT\r
8208 DTREQ           000305' INT\r
8209 DTSIZ           000001  \r
8210 DTW             040000  INT\r
8211 DVAVAL          000040  INT\r
8212 DVCDR           100000  INT\r
8213 DVDIR           000004  INT\r
8214 DVDIRI          400000  INT\r
8215 DVIN            000002  INT\r
8216 DVLPT           040000  INT\r
8217 DVMTA           000020  INT\r
8218 DVOUT           000001  INT\r
8219 DVTTY           000010  INT\r
8220 ENTRB           020000  INT\r
8221 ERROR           000000  EXT\r
8222 I               000010  INT\r
8223 IB              000013  INT\r
8224 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 8-3\r
8225         SYMBOL TABLE\r
8226 \r
8227 IBUFB           200000  INT\r
8228 INITB           400000  INT\r
8229 INPB            010000  INT\r
8230 IO              000020  INT\r
8231 IOACT           010000  INT\r
8232 IOBEG           000002  INT\r
8233 IOBKTL          040000  INT\r
8234 IOCOMP          000306' INT\r
8235 IOCON           000040  INT\r
8236 IODEND          020000  INT\r
8237 IODERR          200000  INT\r
8238 IODISC          400000  INT\r
8239 IODONE          400000  INT\r
8240 IODTER          100000  INT\r
8241 IOEND           000040  INT\r
8242 IOFST           000004  INT\r
8243 IOIMPM          400000  INT\r
8244 IOINI           000224' INT\r
8245 IONRCK          000100  INT\r
8246 IORDEL          000100  INT\r
8247 IORET           000020  INT\r
8248 IOS             000000  INT\r
8249 IOSTRT          000010  INT\r
8250 IOUSE           400000  INT\r
8251 IOW             000001  INT\r
8252 IOWC            000020  INT\r
8253 IOWS            400000  INT\r
8254 ITEM            000004  INT\r
8255 JBFADR          000000  INT\r
8256 JBFCTR          000002  INT\r
8257 JBFPTR          000001  INT\r
8258 JBTAD1          000243' INT\r
8259 JBTADR          000242' INT\r
8260 JBTSTS          000244' INT\r
8261 JBUF            000005  INT\r
8262 JDAT            000011  INT\r
8263 JERR            002000  INT\r
8264 JIOW            100000  INT\r
8265 JNA             004000  INT\r
8266 JOB             000237' INT\r
8267 JOBADR          000240' INT\r
8268 JOBDAT          000241' INT\r
8269 JOBN            000002  INT\r
8270 LOOKB           040000  INT\r
8271 MINIMA          000000  INT\r
8272 MJOBN   777777  777776  INT\r
8273 MTAVAL          000300' INT\r
8274 MTREQ           000303' INT\r
8275 MTW             010000  INT\r
8276 NDEV            000004  \r
8277 NDEVM1          000003  INT\r
8278 OBUFB           100000  INT\r
8279 OUTPB           004000  INT\r
8280 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 8-4\r
8281         SYMBOL TABLE\r
8282 \r
8283 PDP             000003  INT\r
8284 PICHN           000100  INT\r
8285 PIOMOD          000230' INT\r
8286 PJDCHN          000232' INT\r
8287 PJOBN           000231' INT\r
8288 PROG            000007  INT\r
8289 PUNIT           000233' INT\r
8290 PUUOAC          000227' INT\r
8291 RUN             200000  INT\r
8292 RUNABL          204000  INT\r
8293 SCHEDF          000311' INT\r
8294 SCNACT          004020  INT\r
8295 SCNBIT          000020  INT\r
8296 SCNCHL          000130' INT\r
8297 SCNCHN          000003  INT\r
8298 SCNINI          000224' EXT\r
8299 SCNINT          000222' EXT\r
8300 SCNLIN          000001  \r
8301 SCNOFF          001020  INT\r
8302 SCNON           002020  INT\r
8303 SCNRET          000124' INT\r
8304 SCNSAC          000072' INT\r
8305 SCNSAV          000064' INT\r
8306 STOPU           000310' INT\r
8307 SYSBEG          000237' INT\r
8308 SYSBG1          000240' INT\r
8309 SYSDAT          000002' INT\r
8310 SYSEND          000336' INT\r
8311 SYSFIN          000337' EXT\r
8312 SYSMOD          000001  INT\r
8313 SYSNUM          000004' INT\r
8314 SYSSIZ          000337' INT\r
8315 SYSTAP          000005' INT\r
8316 SYSVER          000004  INT\r
8317 TAC             000001  INT\r
8318 TAC1            000002  INT\r
8319 TEM             000010  INT\r
8320 TIME            000321' INT\r
8321 TTYATC          020000  INT\r
8322 TTYLEN          000002  INT\r
8323 TTYTAB          000322' INT\r
8324 TTYUSE          010000  INT\r
8325 USRDDT          000277' INT\r
8326 USRHI           000276' INT\r
8327 USRINF          000256' INT\r
8328 USRJDA          000257' INT\r
8329 USRLEV          000251' \r
8330 USRLO           000250' INT\r
8331 USRLO1          000251' INT\r
8332 USRMOD          010000  INT\r
8333 USRPDP          000246' INT\r
8334 USRPFI          000276' INT\r
8335 USRPFU          000277' INT\r
8336 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 8-5\r
8337         SYMBOL TABLE\r
8338 \r
8339 USRPOV          000253' INT\r
8340 USRREL          000247' INT\r
8341 USRSAV          000252' INT\r
8342 USRUXT          000250' INT\r
8343 UUO             000014  INT\r
8344 \f   IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            222222222   \r
8345    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            222222222   \r
8346    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            222222222   \r
8347       III            OOO         OOO            III            NNN         NNN            III            222         222\r
8348       III            OOO         OOO            III            NNN         NNN            III            222         222\r
8349       III            OOO         OOO            III            NNN         NNN            III            222         222\r
8350       III            OOO         OOO            III            NNNNNN      NNN            III                        222\r
8351       III            OOO         OOO            III            NNNNNN      NNN            III                        222\r
8352       III            OOO         OOO            III            NNNNNN      NNN            III                        222\r
8353       III            OOO         OOO            III            NNN   NNN   NNN            III                     222   \r
8354       III            OOO         OOO            III            NNN   NNN   NNN            III                     222   \r
8355       III            OOO         OOO            III            NNN   NNN   NNN            III                     222   \r
8356       III            OOO         OOO            III            NNN      NNNNNN            III                  222      \r
8357       III            OOO         OOO            III            NNN      NNNNNN            III                  222      \r
8358       III            OOO         OOO            III            NNN      NNNNNN            III                  222      \r
8359       III            OOO         OOO            III            NNN         NNN            III               222         \r
8360       III            OOO         OOO            III            NNN         NNN            III               222         \r
8361       III            OOO         OOO            III            NNN         NNN            III               222         \r
8362    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII         222222222222222\r
8363    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII         222222222222222\r
8364    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII         222222222222222\r
8365 \r
8366 \r
8367 \r
8368 \r
8369 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
8370 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
8371 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
8372 LLL                  SSS                        TTT                                                                     \r
8373 LLL                  SSS                        TTT                                                                     \r
8374 LLL                  SSS                        TTT                                                                     \r
8375 LLL                  SSS                        TTT                                                                     \r
8376 LLL                  SSS                        TTT                                                                     \r
8377 LLL                  SSS                        TTT                                                                     \r
8378 LLL                     SSSSSSSSS               TTT                                                                     \r
8379 LLL                     SSSSSSSSS               TTT                                                                     \r
8380 LLL                     SSSSSSSSS               TTT                                                                     \r
8381 LLL                              SSS            TTT                                                                     \r
8382 LLL                              SSS            TTT                                                                     \r
8383 LLL                              SSS            TTT                                                                     \r
8384 LLL                              SSS            TTT                                                                     \r
8385 LLL                              SSS            TTT                                                                     \r
8386 LLL                              SSS            TTT                                                                     \r
8387 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
8388 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
8389 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
8390 \r
8391 \r
8392 \r
8393 \r
8394 Request created: 24-April-1978  11:23:08\r
8395 File: DSKB1 :IOINI2.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:21
8396 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2424 \r
8397 File will be deleted after printing\r
8398 \f\rIOINI2 - IO INITIALIZATION PART 2                 PAGE 1\r
8399         MINIMAL CONFIGURATION\r
8400 \r
8401                                 00010           XLIST\r
8402                                 01930          LIST\r
8403 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 7\r
8404         MINIMAL CONFIGURATION\r
8405 \r
8406 \r
8407                                 00010   ;SOME MACROS FOR DEFINING CONFIGURATION\r
8408 \r
8409                                 00030   DEFINE NAME (A)\r
8410                                 00040   <DEFINE NAME1\r
8411                                 00050   <CONFIG:  ASCIZ /A/\r
8412                                 00060   INTERNAL CONFIG\r
8413                                 00070   >\r
8414                                 00080   XP A,0\r
8415                                 00090   SUBTTL A CONFIGURATION\r
8416                                 00100   >\r
8417 \r
8418                                 00120   DEFINE DATE (A)\r
8419                                 00130   <DEFINE DATE1\r
8420                                 00140   <SYSDAT:  ASCIZ /A/\r
8421                                 00150   INTERNAL SYSDAT\r
8422                                 00160   >>\r
8423 \r
8424                                 00180   DEFINE VERSION (A,B)\r
8425                                 00190   <DEFINE VERS1\r
8426                                 00200   <SYSNUM:  XWD ^D'A,^D'B\r
8427                                 00210   XP SYSMOD,^D'A\r
8428                                 00220   XP SYSVER,^D'B\r
8429                                 00230   INTERNAL SYSNUM\r
8430                                 00240   >>\r
8431 \r
8432                                 00260   DEFINE CUSPTAPE (A)\r
8433                                 00270   <DEFINE CUSP1\r
8434                                 00280   <SYSTAP:  SIXBIT /A/\r
8435                                 00290   INTERNAL SYSTAP\r
8436                                 00300   >>\r
8437 \r
8438                                 00320   DEFINE ACPDL (J,CHJN,CHJPDN)\r
8439                                 00330   <         CH'J'N=CHJN\r
8440                                 00340    CH'J'PDN=CHJPDN\r
8441                                 00350   >\r
8442 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 2\r
8443         MINIMAL CONFIGURATION\r
8444 \r
8445 \r
8446                                 00010   NAME <MINIMAL>^DEFINE NAME1\r
8447                                         <CONFIG:  ASCIZ /MINIMAL/\r
8448                                         INTERNAL CONFIG\r
8449                                         >\r
8450 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 2\r
8451         MINIMAL CONFIGURATION\r
8452 \r
8453 \r
8454                                 00040           DATE <8-16-65>^DEFINE DATE1\r
8455                                         <SYSDAT:  ASCIZ /8-16-65/\r
8456                                         INTERNAL SYSDAT\r
8457                                         >^\r
8458                                 00050           VERSION 1,4^DEFINE VERS1\r
8459                                         <SYSNUM:  XWD ^D1,^D4\r
8460                                         XP SYSMOD,^D1\r
8461                                         XP SYSVER,^D4\r
8462                                         INTERNAL SYSNUM\r
8463                                         >^\r
8464                                 00060           CUSPTAPE DTA0^DEFINE CUSP1\r
8465                                         <SYSTAP:  SIXBIT /DTA0/\r
8466                                         INTERNAL SYSTAP\r
8467                                         >^\r
8468 \r
8469                                 00080   ;DEFINE THE IO PART OF THE SYSTEM\r
8470                                 00090   ;THAT IS:\r
8471                                 00100   ;         DEFINE INTERRUPT SERVICE ROTUINE TO BE USED\r
8472                                 00110   ;       ASSIGN DEVICES TO PI CHANNELS\r
8473 \r
8474                                 00130   DEFINE SYSTEM\r
8475                                 00140    <\r
8476                                 00150    ASSOC APR,6,<>\r
8477                                 00160    ASSOC CTY,3,<>\r
8478                                 00170    ASSOC SCN,3,<TTY0,TTY1>\r
8479                                 00180    ASSOC DTC,4,<DTA0>\r
8480                                 00190   >\r
8481 \r
8482                         000001  00210   DTSIZ=1   ;MULTIPLE DECTAPE DIRECTORIES\r
8483 \r
8484                         000001  00230   SCNLIN=1\r
8485 \r
8486                                 00250   ;DEFINE HIGHEST AC TO SAVE AND LENGTH OF PD LIST FOR EACH PI CHANNEL\r
8487 \r
8488                         000000  00270   ACPDL (1,0,0)^    CH1N=0\r
8489                         000000  00280   ACPDL (2,0,0)^    CH2N=0\r
8490                         000011  00290   ACPDL (3,11,20)^          CH3N=11\r
8491                         000011  00300   ACPDL (4,11,20)^          CH4N=11\r
8492                         000000  00310   ACPDL (5,0,0)^    CH5N=0\r
8493                         000017  00320   ACPDL (6,17,20^   CH6N=17\r
8494                         000000  00330   ACPDL (7,0,0)^    CH7N=0\r
8495                                 00010           TITLE IOINI2 - IO INITIALIZATION PART 2\r
8496 \r
8497                                 00030   ;DEFINITIONS OF DEVCHN AND DEVBIT\r
8498                                 00040   ;THESE ALSO OCCUR IN IOINT1\r
8499 \r
8500                                 00060   DEFINE ASSOC (A,N,D)\r
8501                                 00070   <\r
8502                                 00080     A'CHN=N\r
8503                                 00090   >\r
8504 \r
8505                                 00110             SYSTEM^\r
8506 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 1\r
8507         MINIMAL CONFIGURATION\r
8508 \r
8509 \r
8510 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 2\r
8511         MINIMAL CONFIGURATION\r
8512 \r
8513 \r
8514 \r
8515                                 00160   ;APR PIP BITS\r
8516 \r
8517                         000001  00180   APRBIT=1\r
8518                         000002  00190   REPEAT 7-APRCHN,<APRBIT=APRBIT*2>\r
8519                                 00200   XP PION,200             ;CONO PI,PION TURNS PI SYSTEM ON\r
8520                                 00210   XP PIOFF,400            ;TURN IT OFF\r
8521                                 00220   XP PICLK,PION+1B24+APRBIT       ;TURN PI ON, AND FORCE CLOCK INT.\r
8522                                 00230   XP CLKOFF,1000+APRCHN           ;CONO APR,CLKOFF TURNS CLOCK FLAG OFF\r
8523 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 3\r
8524         MINIMAL CONFIGURATION\r
8525 \r
8526 \r
8527 \r
8528                                 00270   ;ASSEMBLE ALL DEVICE DATA BLOCKS AND LINK THEM TOGETHER\r
8529 \r
8530                                 00290   DEFINE SCNDDB (A,B,C)\r
8531                                 00300   <         INTERNAL C'DB\r
8532                                 00310   C'DB:     ZZ=.\r
8533                                 00320    SIXBIT /C/\r
8534                                 00330    XWD A'CHN*PICHN,STTYBF+1       ;LONG ENOUGH FOR PRINTING\r
8535                                 00340                   ;SEQUENCE CARD IMAGE.\r
8536                                 00350                   ;USER BUFFERS ARE 2 WORDS\r
8537                                 00360                   ;LONGER THEN THE MONITORY TTY BUFFERS.\r
8538                                 00370    0\r
8539                                 00380   EXTERNAL  TTYDSP\r
8540                                 00390    XWD C,TTYDSP\r
8541                                 00400    XWD DVTTY+DVIN+DVOUT,3\r
8542                                 00410    0\r
8543                                 00420    0\r
8544                                 00430    XWD PROG,0\r
8545                                 00440    XWD PROG,0\r
8546                                 00450    XP TTYPTR,.-ZZ\r
8547                                 00460    0\r
8548                                 00470    XP TTYCTR,.-ZZ\r
8549                                 00480    0\r
8550                                 00490    XP TTYSAV,.-ZZ\r
8551                                 00500    0\r
8552                                 00510    XP TTYBUF,.-ZZ\r
8553                                 00520    XP TTYBM1,TTYBUF-1\r
8554                                 00530   XP STTYBF,20\r
8555                                 00540   XP STTYB1,STTYBF+1      ;LENGTH+1\r
8556                                 00550    BLOCK STTYBF\r
8557                                 00560   XP TTYBFE,.-ZZ-1\r
8558                                 00570   \r
8559                                 00580   ;LINE NO. PARAMETERS\r
8560                                 00590   XP TTYLEN,SCNLIN+1  ;LENGTH OF TTY TRANSLATOR TABLE(INCLUDE TTY)\r
8561                                 00600   XP TSCNLN,SCNLIN-1  ;HIGHEST TTY LINE NO.(NOT COUNTING CTY)\r
8562                                 00610   XP TCONLN,TSCNLN+1  ;CTY LINE NUMBER\r
8563                                 00620   XP MTTYLN,-TTYLEN   ;NEGATIVEL LENGTH OF TRANSLATOR TABLE\r
8564                                 00630   XP FSNCHN,SCNCHN*101 ;CHANNEL ASSIGNED, FOR FULL DUPLEX SCN.\r
8565                                 00640    XP TTYLST,TTY0DB    ;FIRST TTY DEVICE DATA BLOCK\r
8566                                 00650    >\r
8567 \r
8568                                 00670   ;NEG. NO. OF TELTYPE DEVICE DATA BLOCKS\r
8569 \r
8570                         000000  00690   MLTTYL=0\r
8571                                 00700   DEFINE ASSOC (A,N,D)\r
8572                                 00710   <IRP D,<IFIDN <A>,<SCN>,<MLTTYL=MLTTYL-1>>>\r
8573 \r
8574                                 00730             SYSTEM^\r
8575 \r
8576                                 00750   INTERNAL MLTTYL\r
8577 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 4\r
8578         MINIMAL CONFIGURATION\r
8579 \r
8580 \r
8581 \r
8582                                 00790   ;MAG TAPE DEVICE DATA BLOCK\r
8583 \r
8584                         000000  00810   MTCNUM=0\r
8585 \r
8586                                 00830   DEFINE MTCDDB (A,B,C)\r
8587                                 00840   <         INTERNAL C'DB\r
8588                                 00850   C'DB:     SIXBIT /C/\r
8589                                 00860   MTCNUM=MTCNUM+1\r
8590                                 00870    XWD IORET+A'CHN*PICHN,<MTCNUM-1>*10000+201\r
8591                                 00880   \r
8592                                 00890    0\r
8593                                 00900    XWD C,MTDISP\r
8594                                 00910   EXTERNAL MTDISP\r
8595                                 00920    XWD 4400+DVMTA+DVIN+DVOUT,154403\r
8596                                 00930    0\r
8597                                 00940    0\r
8598                                 00950    XWD PROG,0\r
8599                                 00960    XWD PROG,0\r
8600                                 00970   >\r
8601 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 5\r
8602         MINIMAL CONFIGURATION\r
8603 \r
8604 \r
8605                                 01000   ;DECTAPE DEVICE DATA BLOCK\r
8606 \r
8607                         000000  01020   DTCNUM=0\r
8608 \r
8609                                 01040   DEFINE DTCDDB (A,B,C)\r
8610                                 01050   <         INTERNAL C'DB\r
8611                                 01060   C'DB:     ZZ=.\r
8612                                 01070    SIXBIT /C/\r
8613                                 01080   DTCNUM=DTCNUM+1\r
8614                                 01090    XWD IORET+A'CHN*PICHN,<DTCNUM-1>*10000+201\r
8615                                 01100    0\r
8616                                 01110    XWD C,UTDSP\r
8617                                 01120   EXTERNAL UTDSP\r
8618                                 01130    XWD 4400+DVDIR+DVIN+DVOUT,154403\r
8619                                 01140    0\r
8620                                 01150    0\r
8621                                 01160    0\r
8622                                 01170    0\r
8623                                 01180   XP UFREE,.-ZZ   ;NEXT FREE BLOCK NO.\r
8624                                 01190    0\r
8625                                 01200    XP UDIR,.-ZZ   ;LINK TO DIRECTORY IN DATA BLOCK\r
8626                                 01210    IFE DTSIZ,<    EXP DIRBUF\r
8627                                 01220   >\r
8628                                 01230   IFN DTSIZ,<     EXP DTDIR+200*<DTCNUM-1>\r
8629                                 01240   >\r
8630                                 01250   >\r
8631 \r
8632 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 6\r
8633         MINIMAL CONFIGURATION\r
8634 \r
8635 \r
8636 \r
8637                                 01300   ;LINE PRINTER DEVICE DTA BLOCK\r
8638 \r
8639                                 01320   DEFINE LPTDDB (A,B,C)\r
8640                                 01330   <INTERNAL LPTDB,LPTDAT,LPTCHR,LPTIOS,LPTSER,LPTMOD\r
8641                                 01340   INTERNAL LPTBUF,LPTPTR,LPTADR,LPTSV1\r
8642                                 01350   EXTERNAL LPTDSP\r
8643                                 01360   \r
8644                                 01370   LPTDB:\r
8645                                 01380   LPTDAT:   SIXBIT /LPT/\r
8646                                 01390   LPTCHR:   XWD A'CHN*PICHN,32\r
8647                                 01400   LPTIOS:   0\r
8648                                 01410   LPTSER:   XWD C,LPTDSP\r
8649                                 01420   LPTMOD:   XWD 0+DVOUT,3\r
8650                                 01430    0\r
8651                                 01440   LPTBUF:   0\r
8652                                 01450   LPTPTR:   0\r
8653                                 01460   LPTADR:   XWD PROG,0\r
8654                                 01470   LPTSV1:   0\r
8655                                 01480   \r
8656                                 01490   XP LPTCLB,LPTCHN+200  ;PI CHANNEL AND BUSY FLAG\r
8657                                 01500   XP LPTCHB,11*LPTCHN ;LINE PRINTER ERROR AND DATA CHANNELS\r
8658                                 01510   >\r
8659 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 7\r
8660         MINIMAL CONFIGURATION\r
8661 \r
8662 \r
8663 \r
8664                                 01550   ;CARD READER DEVICE DATA BLOCK\r
8665 \r
8666                                 01570   DEFINE CDRDDB (A,B,C)\r
8667                                 01580   <INTERNAL CDRDB,CDRDAT,CRDIS\r
8668                                 01590   EXTERNAL CDRDSP\r
8669                                 01600   \r
8670                                 01610   CDRDB:\r
8671                                 01620   CDRDAT:   SIXBIT /CDR/\r
8672                                 01630    XWD A'CHN*PICHN,34 ;LONG ENOUGHT FOR BINARY CARDS\r
8673                                 01640    0\r
8674                                 01650    XWD C,CDRDSP\r
8675                                 01660    XWD DVCDR+1400+DVIN,14403\r
8676                                 01670    0\r
8677                                 01680    0\r
8678                                 01690    XWD PROG,0\r
8679                                 01700    0\r
8680                                 01710    0\r
8681                                 01720   CRDIS:    JRST .\r
8682                                 01730   >\r
8683 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 8\r
8684         MINIMAL CONFIGURATION\r
8685 \r
8686 \r
8687 \r
8688                                 01770   ;PAPER TAPE READER DEVICE DATA BLOCK\r
8689 \r
8690                                 01790   DEFINE PTRDDB (A,B,C)\r
8691                                 01800   <INTERNAL PTRDB,PTRDAT,PTRCHR,PTRIOS,PTRSER\r
8692                                 01810   INTERNAL PTRMOD,PTRBUF,PTRADR,PTRPTR,PTRCTR,PTRSVC,PTRSV1\r
8693                                 01820   EXTERNAL PTRDSP\r
8694                                 01830   \r
8695                                 01840   PTRDB:\r
8696                                 01850   PTRDAT:   SIXBIT /PTR/\r
8697                                 01860   PTRCHR:   XWD A'CHN*PICHN,41\r
8698                                 01870   PTRIOS:   0\r
8699                                 01880   PTRSER:   XWD C,PTRDSP\r
8700                                 01890   PTRMOD:   XWD 1000+DVIN,14403\r
8701                                 01900    0\r
8702                                 01910   PTRBUF:   0\r
8703                                 01920   PTRADR:   XWD PROG,0\r
8704                                 01930   PTRPTR:   0\r
8705                                 01940   PTRCTR:   0\r
8706                                 01950   PTRSVC:   0\r
8707                                 01960   PTRSV1:   0\r
8708                                 01970   >\r
8709 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 9\r
8710         MINIMAL CONFIGURATION\r
8711 \r
8712 \r
8713 \r
8714                                 02010   ;PAPER TAPE PUNCH DEVICE DATA BLOCK\r
8715 \r
8716                                 02030   DEFINE PTPDDB (A,B,C)\r
8717                                 02040   <INTERNAL PTPDB,PTPDAT,PTPCHR,PTPIOS,PTPSER,PTPMOD,PTPBUF\r
8718                                 02050   INTERNAL PTPPTR,PTPADR,PTPCTR,PTPCNT,PTPCHA,PTPSIO\r
8719                                 02060   EXTERNAL PTPDSP\r
8720                                 02070   \r
8721                                 02080   PTPDB:\r
8722                                 02090   PTPDAT:   SIXBIT /PTP/\r
8723                                 02100   PTPCHR:   XWD A'CHN*PICHN,41\r
8724                                 02110   PTPIOS:   0\r
8725                                 02120   PTPSER:   XWD C,PTPDSP\r
8726                                 02130   PTPMOD:   XWD 1000+DVOUT,14403\r
8727                                 02140    0\r
8728                                 02150   PTPBUF:   0\r
8729                                 02160   PTPPTR:   0\r
8730                                 02170   PTPADR:   XWD PROG,0\r
8731                                 02180   PTPCTR:   0\r
8732                                 02190   PTPCNT:   0\r
8733                                 02200   PTPCHA:   0\r
8734                                 02210   PTPSIO:   0\r
8735                                 02220   >\r
8736 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 10\r
8737         MINIMAL CONFIGURATION\r
8738 \r
8739 \r
8740 \r
8741                                 02260   ;GENERATE DEVICE DATA BLOCKS NEEDED FOR THIS CONFIGURATION\r
8742 \r
8743                                 02280   DEFINE ASSOC (A,B,C)\r
8744                                 02290   <\r
8745                                 02300   IRP C,<\r
8746                                 02310             ;DEFINE FORWARD LINL SYMBOL\r
8747                                 02320    LINK\r
8748                                 02330   ;\r
8749                                 02340   ;\r
8750                                 02350   ;\r
8751                                 02360    A'DDB A,B,C\r
8752                                 02370   \r
8753                                 02380   C=0       ;SET LINK TO 0(IN CASE THIS IS LAST DDB)\r
8754                                 02390   DEFINE LINK\r
8755                                 02400   <C=.>\r
8756                                 02410   >\r
8757                                 02420   >\r
8758 \r
8759                                 02440   INTERNAL DEVLST\r
8760 \r
8761         000000' 000001' 000000  02460   DEVLST:   XWD FIRDB,0           ;BEGINNING OF DEVICE DATA BLOCK CHAIN\r
8762 \r
8763                                 02480   DEFINE LINK\r
8764                                 02490   <FIRDB=.>\r
8765 \r
8766                                 02510             SYSTEM^\r
8767         000001' 646471  200000           SIXBIT /TTY0/\r
8768         000002' 000300  000021           XWD SCNCHN*PICHN,STTYBF+1      ;LONG ENOUGH FOR PRINTING\r
8769         000003' 000000  000000           0\r
8770         000004' 000035' 000000*          XWD TTY0,TTYDSP\r
8771         000005' 000013  000003           XWD DVTTY+DVIN+DVOUT,3\r
8772         000006' 000000  000000           0\r
8773         000007' 000000  000000           0\r
8774         000010' 000007  000000           XWD PROG,0\r
8775         000011' 000007  000000           XWD PROG,0\r
8776         000012' 000000  000000           0\r
8777         000013' 000000  000000           0\r
8778         000014' 000000  000000           0\r
8779         000035' 646471  210000           SIXBIT /TTY1/\r
8780         000036' 000300  000021           XWD SCNCHN*PICHN,STTYBF+1      ;LONG ENOUGH FOR PRINTING\r
8781         000037' 000000  000000           0\r
8782         000040' 000071' 000004*          XWD TTY1,TTYDSP\r
8783         000041' 000013  000003           XWD DVTTY+DVIN+DVOUT,3\r
8784         000042' 000000  000000           0\r
8785         000043' 000000  000000           0\r
8786         000044' 000007  000000           XWD PROG,0\r
8787         000045' 000007  000000           XWD PROG,0\r
8788         000046' 000000  000000           0\r
8789         000047' 000000  000000           0\r
8790         000050' 000000  000000           0\r
8791         000071' 446441  200000           SIXBIT /DTA0/\r
8792 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 10-1\r
8793         MINIMAL CONFIGURATION\r
8794 \r
8795         000072' 000420  000201           XWD IORET+DTCCHN*PICHN,<DTCNUM-1>*10000+201\r
8796         000073' 000000  000000           0\r
8797         000074' 000000  000000*          XWD DTA0,UTDSP\r
8798         000075' 004407  154403           XWD 4400+DVDIR+DVIN+DVOUT,154403\r
8799         000076' 000000  000000           0\r
8800         000077' 000000  000000           0\r
8801         000100' 000000  000000           0\r
8802         000101' 000000  000000           0\r
8803         000102' 000000  000000           0\r
8804         000103' 000000  000104'         IFN DTSIZ,<     EXP DTDIR+200*<DTCNUM-1>\r
8805 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 11\r
8806         MINIMAL CONFIGURATION\r
8807 \r
8808 \r
8809 \r
8810         000104'                 02550             LIT\r
8811 \r
8812                                 02570             IFE DTSIZ,<           DIRBUF: BLOCK 200\r
8813                                 02580    INTERNAL DIRBUF\r
8814                                 02590   >\r
8815 \r
8816         000104'                 02610   IFN DTSIZ,<DTDIR:       BLOCK DTCNUM*200\r
8817                                 02620   INTERNAL DTDIR\r
8818                                 02630   >\r
8819 \r
8820                                 02650             END,\r
8821 \r
8822 NO ERRORS DETECTED\r
8823 \r
8824 PROGRAM BREAK IS 000304\r
8825 \r
8826 9K CORE USED\r
8827 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 12\r
8828         SYMBOL TABLE\r
8829 \r
8830                 000272  \r
8831 A               000000  INT\r
8832 AC1             000015  INT\r
8833 AC2             000016  INT\r
8834 AC3             000017  INT\r
8835 AL              000001  INT\r
8836 APRBIT          000002  \r
8837 APRCHN          000006  \r
8838 ASSCON          400000  INT\r
8839 ASSPRG          200000  INT\r
8840 B               000014  INT\r
8841 BUFPNT          000012  INT\r
8842 BUFWRD          000013  INT\r
8843 CH1N            000000  \r
8844 CH1PDN          000000  \r
8845 CH2N            000000  \r
8846 CH2PDN          000000  \r
8847 CH3N            000011  \r
8848 CH3PDN          000020  \r
8849 CH4N            000011  \r
8850 CH4PDN          000020  \r
8851 CH5N            000000  \r
8852 CH5PDN          000000  \r
8853 CH6N            000017  \r
8854 CH6PDN          000020  \r
8855 CH7N            000000  \r
8856 CH7PDN          000000  \r
8857 CLKOFF          001006  INT\r
8858 CLOSB           002000  INT\r
8859 CLSIN           000002  INT\r
8860 CLSOUT          000001  INT\r
8861 CTYCHN          000003  \r
8862 D               000017  INT\r
8863 DAT             000005  INT\r
8864 DCL             000001  INT\r
8865 DCW             020000  INT\r
8866 DDI             000007  INT\r
8867 DDO             000006  INT\r
8868 DDTMEM          000037  INT\r
8869 DDTSYM          000036  INT\r
8870 DEN             000004  INT\r
8871 DEVADR          000007  INT\r
8872 DEVBUF          000006  INT\r
8873 DEVCHR          000001  INT\r
8874 DEVCTR          000011  INT\r
8875 DEVDAT          000006  INT\r
8876 DEVIAD          000007  INT\r
8877 DEVIOS          000002  INT\r
8878 DEVLOG          000005  INT\r
8879 DEVLST          000000' INT\r
8880 DEVMOD          000004  INT\r
8881 DEVNAM          000000  INT\r
8882 DEVOAD          000010  INT\r
8883 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 12-1\r
8884         SYMBOL TABLE\r
8885 \r
8886 DEVPTR          000010  INT\r
8887 DEVSER          000003  INT\r
8888 DGF             000012  INT\r
8889 DIN             000003  INT\r
8890 DLK             000005  INT\r
8891 DOU             000002  INT\r
8892 DR              000016  INT\r
8893 DRL             000000  INT\r
8894 DSI             000011  INT\r
8895 DSO             000010  INT\r
8896 DTA0            000000  \r
8897 DTA0DB          000071' INT\r
8898 DTCCHN          000004  \r
8899 DTCNUM          000001  \r
8900 DTDIR           000104' INT\r
8901 DTSIZ           000001  \r
8902 DTW             040000  INT\r
8903 DVAVAL          000040  INT\r
8904 DVCDR           100000  INT\r
8905 DVDIR           000004  INT\r
8906 DVDIRI          400000  INT\r
8907 DVIN            000002  INT\r
8908 DVLPT           040000  INT\r
8909 DVMTA           000020  INT\r
8910 DVOUT           000001  INT\r
8911 DVTTY           000010  INT\r
8912 ENTRB           020000  INT\r
8913 FIRDB           000001' \r
8914 FSNCHN          000303  INT\r
8915 I               000010  INT\r
8916 IB              000013  INT\r
8917 IBUFB           200000  INT\r
8918 INITB           400000  INT\r
8919 INPB            010000  INT\r
8920 IO              000020  INT\r
8921 IOACT           010000  INT\r
8922 IOBEG           000002  INT\r
8923 IOBKTL          040000  INT\r
8924 IOCON           000040  INT\r
8925 IODEND          020000  INT\r
8926 IODERR          200000  INT\r
8927 IODISC          400000  INT\r
8928 IODONE          400000  INT\r
8929 IODTER          100000  INT\r
8930 IOEND           000040  INT\r
8931 IOFST           000004  INT\r
8932 IOIMPM          400000  INT\r
8933 IONRCK          000100  INT\r
8934 IORDEL          000100  INT\r
8935 IORET           000020  INT\r
8936 IOS             000000  INT\r
8937 IOSTRT          000010  INT\r
8938 IOUSE           400000  INT\r
8939 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 12-2\r
8940         SYMBOL TABLE\r
8941 \r
8942 IOW             000001  INT\r
8943 IOWC            000020  INT\r
8944 IOWS            400000  INT\r
8945 ITEM            000004  INT\r
8946 JBFADR          000000  INT\r
8947 JBFCTR          000002  INT\r
8948 JBFPTR          000001  INT\r
8949 JBUF            000005  INT\r
8950 JDAT            000011  INT\r
8951 JERR            002000  INT\r
8952 JIOW            100000  INT\r
8953 JNA             004000  INT\r
8954 LOOKB           040000  INT\r
8955 MINIMA          000000  INT\r
8956 MLTTYL  777777  777776  INT\r
8957 MTCNUM          000000  \r
8958 MTTYLN  777777  777776  INT\r
8959 MTW             010000  INT\r
8960 OBUFB           100000  INT\r
8961 OUTPB           004000  INT\r
8962 PDP             000003  INT\r
8963 PICHN           000100  INT\r
8964 PICLK           004202  INT\r
8965 PIOFF           000400  INT\r
8966 PION            000200  INT\r
8967 PROG            000007  INT\r
8968 RUN             200000  INT\r
8969 RUNABL          204000  INT\r
8970 SCNCHN          000003  \r
8971 SCNLIN          000001  \r
8972 STTYB1          000021  INT\r
8973 STTYBF          000020  INT\r
8974 TAC             000001  INT\r
8975 TAC1            000002  INT\r
8976 TCONLN          000001  INT\r
8977 TEM             000010  INT\r
8978 TSCNLN          000000  INT\r
8979 TTY0            000035' \r
8980 TTY0DB          000001' INT\r
8981 TTY1            000071' \r
8982 TTY1DB          000035' INT\r
8983 TTYATC          020000  INT\r
8984 TTYBFE          000033  INT\r
8985 TTYBM1          000013  INT\r
8986 TTYBUF          000014  INT\r
8987 TTYCTR          000012  INT\r
8988 TTYDSP          000040' EXT\r
8989 TTYLEN          000002  INT\r
8990 TTYLST          000001' INT\r
8991 TTYPTR          000011  INT\r
8992 TTYSAV          000013  INT\r
8993 TTYUSE          010000  INT\r
8994 UDIR            000012  INT\r
8995 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 12-3\r
8996         SYMBOL TABLE\r
8997 \r
8998 UFREE           000011  INT\r
8999 USRMOD          010000  INT\r
9000 UTDSP           000074' EXT\r
9001 UUO             000014  INT\r
9002 ZZ              000071' \r
9003 \f   IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            333333333   \r
9004    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            333333333   \r
9005    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            333333333   \r
9006       III            OOO         OOO            III            NNN         NNN            III            333         333\r
9007       III            OOO         OOO            III            NNN         NNN            III            333         333\r
9008       III            OOO         OOO            III            NNN         NNN            III            333         333\r
9009       III            OOO         OOO            III            NNNNNN      NNN            III                        333\r
9010       III            OOO         OOO            III            NNNNNN      NNN            III                        333\r
9011       III            OOO         OOO            III            NNNNNN      NNN            III                        333\r
9012       III            OOO         OOO            III            NNN   NNN   NNN            III                     333   \r
9013       III            OOO         OOO            III            NNN   NNN   NNN            III                     333   \r
9014       III            OOO         OOO            III            NNN   NNN   NNN            III                     333   \r
9015       III            OOO         OOO            III            NNN      NNNNNN            III                        333\r
9016       III            OOO         OOO            III            NNN      NNNNNN            III                        333\r
9017       III            OOO         OOO            III            NNN      NNNNNN            III                        333\r
9018       III            OOO         OOO            III            NNN         NNN            III            333         333\r
9019       III            OOO         OOO            III            NNN         NNN            III            333         333\r
9020       III            OOO         OOO            III            NNN         NNN            III            333         333\r
9021    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            333333333   \r
9022    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            333333333   \r
9023    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII            333333333   \r
9024 \r
9025 \r
9026 \r
9027 \r
9028 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
9029 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
9030 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
9031 LLL                  SSS                        TTT                                                                     \r
9032 LLL                  SSS                        TTT                                                                     \r
9033 LLL                  SSS                        TTT                                                                     \r
9034 LLL                  SSS                        TTT                                                                     \r
9035 LLL                  SSS                        TTT                                                                     \r
9036 LLL                  SSS                        TTT                                                                     \r
9037 LLL                     SSSSSSSSS               TTT                                                                     \r
9038 LLL                     SSSSSSSSS               TTT                                                                     \r
9039 LLL                     SSSSSSSSS               TTT                                                                     \r
9040 LLL                              SSS            TTT                                                                     \r
9041 LLL                              SSS            TTT                                                                     \r
9042 LLL                              SSS            TTT                                                                     \r
9043 LLL                              SSS            TTT                                                                     \r
9044 LLL                              SSS            TTT                                                                     \r
9045 LLL                              SSS            TTT                                                                     \r
9046 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
9047 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
9048 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
9049 \r
9050 \r
9051 \r
9052 \r
9053 Request created: 24-April-1978  11:23:08\r
9054 File: DSKB1 :IOINI3.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:21
9055 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2404 \r
9056 File will be deleted after printing\r
9057 \f\rIOINI1 - IO INITIALIZATION PART 1                 PAGE 1\r
9058         MAXIMAL CONFIGURATION\r
9059 \r
9060                                 00010           XLIST\r
9061                                 01930          LIST\r
9062 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 7\r
9063         MAXIMAL CONFIGURATION\r
9064 \r
9065 \r
9066                                 00010   ;SOME MACROS FOR DEFINING CONFIGURATION\r
9067 \r
9068                                 00030   DEFINE NAME (A)\r
9069                                 00040   <DEFINE NAME1\r
9070                                 00050   <CONFIG:  ASCIZ /A/\r
9071                                 00060   INTERNAL CONFIG\r
9072                                 00070   >\r
9073                                 00080   XP A,0\r
9074                                 00090   SUBTTL A CONFIGURATION\r
9075                                 00100   >\r
9076 \r
9077                                 00120   DEFINE DATE (A)\r
9078                                 00130   <DEFINE DATE1\r
9079                                 00140   <SYSDAT:  ASCIZ /A/\r
9080                                 00150   INTERNAL SYSDAT\r
9081                                 00160   >>\r
9082 \r
9083                                 00180   DEFINE VERSION (A,B)\r
9084                                 00190   <DEFINE VERS1\r
9085                                 00200   <SYSNUM:  XWD ^D'A,^D'B\r
9086                                 00210   XP SYSMOD,^D'A\r
9087                                 00220   XP SYSVER,^D'B\r
9088                                 00230   INTERNAL SYSNUM\r
9089                                 00240   >>\r
9090 \r
9091                                 00260   DEFINE CUSPTAPE (A)\r
9092                                 00270   <DEFINE CUSP1\r
9093                                 00280   <SYSTAP:  SIXBIT /A/\r
9094                                 00290   INTERNAL SYSTAP\r
9095                                 00300   >>\r
9096 \r
9097                                 00320   DEFINE ACPDL (J,CHJN,CHJPDN)\r
9098                                 00330   <         CH'J'N=CHJN\r
9099                                 00340    CH'J'PDN=CHJPDN\r
9100                                 00350   >\r
9101 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 2\r
9102         MAXIMAL CONFIGURATION\r
9103 \r
9104 \r
9105                                 00010   NAME <MAXIMAL>^DEFINE NAME1\r
9106                                         <CONFIG:  ASCIZ /MAXIMAL/\r
9107                                         INTERNAL CONFIG\r
9108                                         >\r
9109 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 2\r
9110         MAXIMAL CONFIGURATION\r
9111 \r
9112 \r
9113                                 00040           DATE <8-16-65>^DEFINE DATE1\r
9114                                         <SYSDAT:  ASCIZ /8-16-65/\r
9115                                         INTERNAL SYSDAT\r
9116                                         >^\r
9117                                 00050           VERSION 1,4^DEFINE VERS1\r
9118                                         <SYSNUM:  XWD ^D1,^D4\r
9119                                         XP SYSMOD,^D1\r
9120                                         XP SYSVER,^D4\r
9121                                         INTERNAL SYSNUM\r
9122                                         >^\r
9123                                 00060           CUSPTAPE DTA0^DEFINE CUSP1\r
9124                                         <SYSTAP:  SIXBIT /DTA0/\r
9125                                         INTERNAL SYSTAP\r
9126                                         >^\r
9127 \r
9128                                 00080   ;DEFINE THE IO PART OF THE SYSTEM\r
9129                                 00090   ;THAT IS:\r
9130                                 00100   ;         DEFINE INTERRUPT SERVICE ROTUINE TO BE USED\r
9131                                 00110   ;       ASSIGN DEVICES TO PI CHANNELS\r
9132 \r
9133                                 00130   DEFINE SYSTEM\r
9134                                 00140    <\r
9135                                 00150    ASSOC APR,6,<>\r
9136                                 00160    ASSOC CTY,3,<>\r
9137                                 00170    ASSOC SCN,3,<TTY0,TTY1>\r
9138                                 00180    ASSOC DTC,4,<DTA0>\r
9139                                 00190    ASSOC DTC,4,<DTA1>\r
9140                                 00200    ASSOC DTC,4,<DTA2>\r
9141                                 00210    ASSOC DTC,4,<DTA3>\r
9142                                 00220    ASSOC MTC,2,<MTA0>\r
9143                                 00230    ASSOC MTC,2,<MTA1>\r
9144                                 00240    ASSOC MTC,2,<MTA2>\r
9145                                 00250    ASSOC MTC,2,<MTA3>\r
9146                                 00260    ASSOC LPT,5,<LPT>\r
9147                                 00270    ASSOC PTP,5,<PTP>\r
9148                                 00280    ASSOC PTR,5,<PTR>\r
9149                                 00290    ASSOC CDR,5,<CDR>\r
9150                                 00300   >\r
9151 \r
9152                         000001  00320   DTSIZ=1   ;MULTIPLE DECTAPE DIRECTORIES\r
9153 \r
9154                         000001  00340   SCNLIN=1\r
9155 \r
9156                                 00360   ;DEFINE HIGHEST AC TO SAVE AND LENGTH OF PD LIST FOR EACH PI CHANNEL\r
9157 \r
9158                         000000  00380   ACPDL (1,0,0)^    CH1N=0\r
9159                         000011  00390   ACPDL (2,11,20)^          CH2N=11\r
9160                         000011  00400   ACPDL (3,11,20)^          CH3N=11\r
9161                         000011  00410   ACPDL (4,11,20)^          CH4N=11\r
9162                         000011  00420   ACPDL (5,11,20)^          CH5N=11\r
9163                         000017  00430   ACPDL (6,17,20^   CH6N=17\r
9164                         000000  00440   ACPDL (7,0,0)^    CH7N=0\r
9165 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 2-1\r
9166         MAXIMAL CONFIGURATION\r
9167 \r
9168                                 00010             TITLE IOINI1 - IO INITIALIZATION PART 1\r
9169         000000' 466033  044632  00020             NAME1^CONFIG:  ASCIZ /MAXIMAL/\r
9170         000001' 406300  000000\r
9171         000002' 341326  133132  00030             DATE1^SYSDAT:  ASCIZ /8-16-65/\r
9172         000003' 331520  000000\r
9173         000004' 000001  000004  00040             VERS1^SYSNUM:  XWD ^D1,^D4\r
9174         000005' 446441  200000  00050             CUSP1^SYSTAP:  SIXBIT /DTA0/\r
9175 \r
9176                                 00070   ;CONFIGURATION INDEPENDANT PART OF IOINIT FOLLOWS:\r
9177 \r
9178                                 00090   EXTERNAL ERROR\r
9179 \r
9180                                 00110   ;SETUP CHANNEL SAVE AND RESTORE ROUTINES\r
9181 \r
9182                         000000  00130   CHANU1=0\r
9183                         000000  00140   CHANU2=0\r
9184                         000000  00150   CHANU3=0\r
9185                         000000  00160   CHANU4=0\r
9186                         000000  00170   CHANU5=0\r
9187                         000000  00180   CHANU6=0\r
9188                         000000  00190   CHANU7=0\r
9189                                 00200   DEFINE ASSOC(A,NO,D)\r
9190                                 00210   <IFE CHANU'NO,<\r
9191                                 00220   CHANU'NO=1\r
9192                                 00230   INTERNAL CH'NO'SAV,CH'NO',CH'NO'XIT,CH'NO'SAC\r
9193                                 00240   \r
9194                                 00250   CH'NO'SAV: 0\r
9195                                 00260     MOVEM CH'NO'N, CH'NO'SAC+CH'NO'N\r
9196                                 00270     MOVEI CH'NO'N, CH'NO'SAC\r
9197                                 00280     BLT CH'NO'N,CH'NO'SAC+CH'NO'N-1       ;DO ONLY ONCE FOR EACH CHANNEL\r
9198                                 00290     MOVE PDP, CH'NO'CJ\r
9199                                 00300     JRST @CH'NO'SAV\r
9200                                 00310   \r
9201                                 00320   CH'NO'SAC: REPEAT CH'NO'N+1,<EXP 0>     ;SPACE TO SAVE SOME AC'S\r
9202                                 00330             EXP CH'NO'XIT         ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
9203                                 00340             REPEAT CH'NO'PDN-1,<EXP 0>    ;REST OF PD LIST\r
9204                                 00350   \r
9205                                 00360   CH'NO'XIT: MOVSI CH'NO'N, CH'NO'SAC\r
9206                                 00370    BLT CH'NO'N, CH'NO'N\r
9207                                 00380    JEN @CH'NO\r
9208                                 00390   \r
9209                                 00400   CH'NO'CJ: XWD -CH'NO'PDN+1,CH'NO'SAC+CH'NO'N+1  ;INIT. SETTING OF P\r
9210                                 00410   \r
9211                                 00420   CH'NO':   0             ;PC STORED HERE BY JSR\r
9212                                 00430    JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
9213                                 00440    AOS CH'NO'ERR          ;SPURIOUS INTERRUPT, ADD TO COUNT\r
9214                                 00450    JEN @CH'NO             ;AND DISMISS\r
9215                                 00460   >\r
9216                                 00470   >\r
9217                                 00480   ;GENERATE THE SAVE AND RESTORE ROUTINES\r
9218 \r
9219                                 00500             SYSTEM^       000006' 000000  000000          CH6SAV: 0\r
9220         000007' 202740  000033'           MOVEM CH6N, CH6SAC+CH6N\r
9221 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 1\r
9222         MAXIMAL CONFIGURATION\r
9223 \r
9224         000010' 201740  000014'           MOVEI CH6N, CH6SAC\r
9225         000011' 251740  000032'           BLT CH6N,CH6SAC+CH6N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
9226         000012' 200140  000057'           MOVE PDP, CH6CJ\r
9227         000013' 254020  000006'           JRST @CH6SAV\r
9228         000014' 000000  000000          EXP 0\r
9229         000015' 000000  000000          EXP 0\r
9230         000016' 000000  000000          EXP 0\r
9231         000017' 000000  000000          EXP 0\r
9232         000020' 000000  000000          EXP 0\r
9233         000021' 000000  000000          EXP 0\r
9234         000022' 000000  000000          EXP 0\r
9235         000023' 000000  000000          EXP 0\r
9236         000024' 000000  000000          EXP 0\r
9237         000025' 000000  000000          EXP 0\r
9238         000026' 000000  000000          EXP 0\r
9239         000027' 000000  000000          EXP 0\r
9240         000030' 000000  000000          EXP 0\r
9241         000031' 000000  000000          EXP 0\r
9242         000032' 000000  000000          EXP 0\r
9243         000033' 000000  000000          EXP 0   ;SPACE TO SAVE SOME AC'S\r
9244         000034' 000000  000054'                   EXP CH6XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
9245         000035' 000000  000000          EXP 0\r
9246         000036' 000000  000000          EXP 0\r
9247         000037' 000000  000000          EXP 0\r
9248         000040' 000000  000000          EXP 0\r
9249         000041' 000000  000000          EXP 0\r
9250         000042' 000000  000000          EXP 0\r
9251         000043' 000000  000000          EXP 0\r
9252         000044' 000000  000000          EXP 0\r
9253         000045' 000000  000000          EXP 0\r
9254         000046' 000000  000000          EXP 0\r
9255         000047' 000000  000000          EXP 0\r
9256         000050' 000000  000000          EXP 0\r
9257         000051' 000000  000000          EXP 0\r
9258         000052' 000000  000000          EXP 0\r
9259         000053' 000000  000000          EXP 0   ;REST OF PD LIST\r
9260         000054' 205740  000014'         CH6XIT: MOVSI CH6N, CH6SAC\r
9261         000055' 251740  000017           BLT CH6N, CH6N\r
9262         000056' 254520  000060'          JEN @CH6\r
9263         000057' 777761  000034'         CH6CJ: XWD -CH6PDN+1,CH6SAC+CH6N+1      ;INIT. SETTING OF P\r
9264         000060' 000000  000000          CH6:      0             ;PC STORED HERE BY JSR\r
9265         000061' 254000  000062'          JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
9266         000062' 350000  000456'          AOS CH6ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
9267         000063' 254520  000060'          JEN @CH6               ;AND DISMISS\r
9268         000064' 000000  000000          CH3SAV: 0\r
9269         000065' 202440  000103'           MOVEM CH3N, CH3SAC+CH3N\r
9270         000066' 201440  000072'           MOVEI CH3N, CH3SAC\r
9271         000067' 251440  000102'           BLT CH3N,CH3SAC+CH3N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
9272         000070' 200140  000127'           MOVE PDP, CH3CJ\r
9273         000071' 254020  000064'           JRST @CH3SAV\r
9274         000072' 000000  000000          EXP 0\r
9275         000073' 000000  000000          EXP 0\r
9276         000074' 000000  000000          EXP 0\r
9277 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 1-1\r
9278         MAXIMAL CONFIGURATION\r
9279 \r
9280         000075' 000000  000000          EXP 0\r
9281         000076' 000000  000000          EXP 0\r
9282         000077' 000000  000000          EXP 0\r
9283         000100' 000000  000000          EXP 0\r
9284         000101' 000000  000000          EXP 0\r
9285         000102' 000000  000000          EXP 0\r
9286         000103' 000000  000000          EXP 0   ;SPACE TO SAVE SOME AC'S\r
9287         000104' 000000  000124'                   EXP CH3XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
9288         000105' 000000  000000          EXP 0\r
9289         000106' 000000  000000          EXP 0\r
9290         000107' 000000  000000          EXP 0\r
9291         000110' 000000  000000          EXP 0\r
9292         000111' 000000  000000          EXP 0\r
9293         000112' 000000  000000          EXP 0\r
9294         000113' 000000  000000          EXP 0\r
9295         000114' 000000  000000          EXP 0\r
9296         000115' 000000  000000          EXP 0\r
9297         000116' 000000  000000          EXP 0\r
9298         000117' 000000  000000          EXP 0\r
9299         000120' 000000  000000          EXP 0\r
9300         000121' 000000  000000          EXP 0\r
9301         000122' 000000  000000          EXP 0\r
9302         000123' 000000  000000          EXP 0   ;REST OF PD LIST\r
9303         000124' 205440  000072'         CH3XIT: MOVSI CH3N, CH3SAC\r
9304         000125' 251440  000011           BLT CH3N, CH3N\r
9305         000126' 254520  000130'          JEN @CH3\r
9306         000127' 777761  000104'         CH3CJ: XWD -CH3PDN+1,CH3SAC+CH3N+1      ;INIT. SETTING OF P\r
9307         000130' 000000  000000          CH3:      0             ;PC STORED HERE BY JSR\r
9308         000131' 254000  000132'          JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
9309         000132' 350000  000453'          AOS CH3ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
9310         000133' 254520  000130'          JEN @CH3               ;AND DISMISS\r
9311         000134' 000000  000000          CH4SAV: 0\r
9312         000135' 202440  000153'           MOVEM CH4N, CH4SAC+CH4N\r
9313         000136' 201440  000142'           MOVEI CH4N, CH4SAC\r
9314         000137' 251440  000152'           BLT CH4N,CH4SAC+CH4N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
9315         000140' 200140  000177'           MOVE PDP, CH4CJ\r
9316         000141' 254020  000134'           JRST @CH4SAV\r
9317         000142' 000000  000000          EXP 0\r
9318         000143' 000000  000000          EXP 0\r
9319         000144' 000000  000000          EXP 0\r
9320         000145' 000000  000000          EXP 0\r
9321         000146' 000000  000000          EXP 0\r
9322         000147' 000000  000000          EXP 0\r
9323         000150' 000000  000000          EXP 0\r
9324         000151' 000000  000000          EXP 0\r
9325         000152' 000000  000000          EXP 0\r
9326         000153' 000000  000000          EXP 0   ;SPACE TO SAVE SOME AC'S\r
9327         000154' 000000  000174'                   EXP CH4XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
9328         000155' 000000  000000          EXP 0\r
9329         000156' 000000  000000          EXP 0\r
9330         000157' 000000  000000          EXP 0\r
9331         000160' 000000  000000          EXP 0\r
9332         000161' 000000  000000          EXP 0\r
9333 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 1-2\r
9334         MAXIMAL CONFIGURATION\r
9335 \r
9336         000162' 000000  000000          EXP 0\r
9337         000163' 000000  000000          EXP 0\r
9338         000164' 000000  000000          EXP 0\r
9339         000165' 000000  000000          EXP 0\r
9340         000166' 000000  000000          EXP 0\r
9341         000167' 000000  000000          EXP 0\r
9342         000170' 000000  000000          EXP 0\r
9343         000171' 000000  000000          EXP 0\r
9344         000172' 000000  000000          EXP 0\r
9345         000173' 000000  000000          EXP 0   ;REST OF PD LIST\r
9346         000174' 205440  000142'         CH4XIT: MOVSI CH4N, CH4SAC\r
9347         000175' 251440  000011           BLT CH4N, CH4N\r
9348         000176' 254520  000200'          JEN @CH4\r
9349         000177' 777761  000154'         CH4CJ: XWD -CH4PDN+1,CH4SAC+CH4N+1      ;INIT. SETTING OF P\r
9350         000200' 000000  000000          CH4:      0             ;PC STORED HERE BY JSR\r
9351         000201' 254000  000202'          JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
9352         000202' 350000  000454'          AOS CH4ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
9353         000203' 254520  000200'          JEN @CH4               ;AND DISMISS\r
9354         000204' 000000  000000          CH2SAV: 0\r
9355         000205' 202440  000223'           MOVEM CH2N, CH2SAC+CH2N\r
9356         000206' 201440  000212'           MOVEI CH2N, CH2SAC\r
9357         000207' 251440  000222'           BLT CH2N,CH2SAC+CH2N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
9358         000210' 200140  000247'           MOVE PDP, CH2CJ\r
9359         000211' 254020  000204'           JRST @CH2SAV\r
9360         000212' 000000  000000          EXP 0\r
9361         000213' 000000  000000          EXP 0\r
9362         000214' 000000  000000          EXP 0\r
9363         000215' 000000  000000          EXP 0\r
9364         000216' 000000  000000          EXP 0\r
9365         000217' 000000  000000          EXP 0\r
9366         000220' 000000  000000          EXP 0\r
9367         000221' 000000  000000          EXP 0\r
9368         000222' 000000  000000          EXP 0\r
9369         000223' 000000  000000          EXP 0   ;SPACE TO SAVE SOME AC'S\r
9370         000224' 000000  000244'                   EXP CH2XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
9371         000225' 000000  000000          EXP 0\r
9372         000226' 000000  000000          EXP 0\r
9373         000227' 000000  000000          EXP 0\r
9374         000230' 000000  000000          EXP 0\r
9375         000231' 000000  000000          EXP 0\r
9376         000232' 000000  000000          EXP 0\r
9377         000233' 000000  000000          EXP 0\r
9378         000234' 000000  000000          EXP 0\r
9379         000235' 000000  000000          EXP 0\r
9380         000236' 000000  000000          EXP 0\r
9381         000237' 000000  000000          EXP 0\r
9382         000240' 000000  000000          EXP 0\r
9383         000241' 000000  000000          EXP 0\r
9384         000242' 000000  000000          EXP 0\r
9385         000243' 000000  000000          EXP 0   ;REST OF PD LIST\r
9386         000244' 205440  000212'         CH2XIT: MOVSI CH2N, CH2SAC\r
9387         000245' 251440  000011           BLT CH2N, CH2N\r
9388         000246' 254520  000250'          JEN @CH2\r
9389 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 1-3\r
9390         MAXIMAL CONFIGURATION\r
9391 \r
9392         000247' 777761  000224'         CH2CJ: XWD -CH2PDN+1,CH2SAC+CH2N+1      ;INIT. SETTING OF P\r
9393         000250' 000000  000000          CH2:      0             ;PC STORED HERE BY JSR\r
9394         000251' 254000  000252'          JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
9395         000252' 350000  000452'          AOS CH2ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
9396         000253' 254520  000250'          JEN @CH2               ;AND DISMISS\r
9397         000254' 000000  000000          CH5SAV: 0\r
9398         000255' 202440  000273'           MOVEM CH5N, CH5SAC+CH5N\r
9399         000256' 201440  000262'           MOVEI CH5N, CH5SAC\r
9400         000257' 251440  000272'           BLT CH5N,CH5SAC+CH5N-1        ;DO ONLY ONCE FOR EACH CHANNEL\r
9401         000260' 200140  000317'           MOVE PDP, CH5CJ\r
9402         000261' 254020  000254'           JRST @CH5SAV\r
9403         000262' 000000  000000          EXP 0\r
9404         000263' 000000  000000          EXP 0\r
9405         000264' 000000  000000          EXP 0\r
9406         000265' 000000  000000          EXP 0\r
9407         000266' 000000  000000          EXP 0\r
9408         000267' 000000  000000          EXP 0\r
9409         000270' 000000  000000          EXP 0\r
9410         000271' 000000  000000          EXP 0\r
9411         000272' 000000  000000          EXP 0\r
9412         000273' 000000  000000          EXP 0   ;SPACE TO SAVE SOME AC'S\r
9413         000274' 000000  000314'                   EXP CH5XIT            ;FIRST ENTRY IN PD LIST(CHAN. EXIT)\r
9414         000275' 000000  000000          EXP 0\r
9415         000276' 000000  000000          EXP 0\r
9416         000277' 000000  000000          EXP 0\r
9417         000300' 000000  000000          EXP 0\r
9418         000301' 000000  000000          EXP 0\r
9419         000302' 000000  000000          EXP 0\r
9420         000303' 000000  000000          EXP 0\r
9421         000304' 000000  000000          EXP 0\r
9422         000305' 000000  000000          EXP 0\r
9423         000306' 000000  000000          EXP 0\r
9424         000307' 000000  000000          EXP 0\r
9425         000310' 000000  000000          EXP 0\r
9426         000311' 000000  000000          EXP 0\r
9427         000312' 000000  000000          EXP 0\r
9428         000313' 000000  000000          EXP 0   ;REST OF PD LIST\r
9429         000314' 205440  000262'         CH5XIT: MOVSI CH5N, CH5SAC\r
9430         000315' 251440  000011           BLT CH5N, CH5N\r
9431         000316' 254520  000320'          JEN @CH5\r
9432         000317' 777761  000274'         CH5CJ: XWD -CH5PDN+1,CH5SAC+CH5N+1      ;INIT. SETTING OF P\r
9433         000320' 000000  000000          CH5:      0             ;PC STORED HERE BY JSR\r
9434         000321' 254000  000322'          JRST .+1 ;INSTR. AT END OF SERVICE CHAIN\r
9435         000322' 350000  000455'          AOS CH5ERR             ;SPURIOUS INTERRUPT, ADD TO COUNT\r
9436         000323' 254520  000320'          JEN @CH5               ;AND DISMISS\r
9437 \r
9438                                 00520   ;SET UP NULL CHANNEL ROUTINES FOR UNUSED CHANNELS\r
9439 \r
9440                                 00540   DEFINE NULCHN(J)\r
9441                                 00550   <\r
9442                                 00560   INTERNAL CH'J,CH'J'XIT\r
9443                                 00570   CH'J:     0\r
9444                                 00580   CH'J'XIT: AOS CH'J'ERR\r
9445 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 1-4\r
9446         MAXIMAL CONFIGURATION\r
9447 \r
9448                                 00590    JEN @CH'J\r
9449                                 00600   >\r
9450 \r
9451                                 00620             IFE CHANU1,<NULCHN(1)>^\r
9452         000324' 000000  000000          CH1:      0\r
9453         000325' 350000  000451'         CH1XIT: AOS CH1ERR\r
9454         000326' 254520  000324'          JEN @CH1\r
9455                                 00630             IFE CHANU2,<NULCHN(2)>\r
9456                                 00640             IFE CHANU3,<NULCHN(3)>\r
9457                                 00650             IFE CHANU4,<NULCHN(4)>\r
9458                                 00660             IFE CHANU5,<NULCHN(5)>\r
9459                                 00670             IFE CHANU6,<NULCHN(6)>\r
9460                                 00680             IFE CHANU7,<NULCHN(7)>^\r
9461         000327' 000000  000000          CH7:      0\r
9462         000330' 350000  000457'         CH7XIT: AOS CH7ERR\r
9463         000331' 254520  000327'          JEN @CH7\r
9464 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 2\r
9465         MAXIMAL CONFIGURATION\r
9466 \r
9467 \r
9468 \r
9469                                 00720   ;ASSIGN DEVICE TO CHANNELS AND SETUP CORESPONDENCE TABLE\r
9470                                 00730   ;OF CHANNELS TO SERVICE ROUTINES\r
9471 \r
9472                                 00750   DEFINE ASSOC (A,N,D)\r
9473                                 00760   <         A'RET=CH'N'XIT\r
9474                                 00770    A'SAV=CH'N'SAV\r
9475                                 00780    A'SAC=CH'N'SAC\r
9476                                 00790    A'CHL=CH'N\r
9477                                 00800    A'CHN=N\r
9478                                 00810    A'BIT=1\r
9479                                 00820    REPEAT 7-N,<A'BIT=A'BIT*2>\r
9480                                 00830    A'OFF=1000+A'BIT       ;CONO PI, A'OFF WIL TURN CHANNEL OFF\r
9481                                 00840    A'ON=2000+A'BIT        ;TURN BACK ON\r
9482                                 00850    A'ACT=4000+A'BIT       ;FORCE INTERRUPT ON CHAN.\r
9483                                 00860   INTERN A'RET, A'SAV, A'CHL, A'CHN, A'SAC\r
9484                                 00870   INTERNAL A'OFF,A'ON,A'ACT,A'BIT\r
9485                                 00880    XWD A'CHL,A'INT\r
9486                                 00890    EXTERNAL A'INT\r
9487                                 00900   >\r
9488 \r
9489                                 00920   INTERNAL DEVINT\r
9490         000332'                 00930   DEVINT:   SYSTEM^       000332' 000060' 000000*          XWD APRCHL,APRINT\r
9491         000333' 000130' 000000*          XWD CTYCHL,CTYINT\r
9492         000334' 000130' 000000*          XWD SCNCHL,SCNINT\r
9493         000335' 000200' 000000*          XWD DTCCHL,DTCINT\r
9494         000336' 000200' 000335*          XWD DTCCHL,DTCINT\r
9495         000337' 000200' 000336*          XWD DTCCHL,DTCINT\r
9496         000340' 000200' 000337*          XWD DTCCHL,DTCINT\r
9497         000341' 000250' 000000*          XWD MTCCHL,MTCINT\r
9498         000342' 000250' 000341*          XWD MTCCHL,MTCINT\r
9499         000343' 000250' 000342*          XWD MTCCHL,MTCINT\r
9500         000344' 000250' 000343*          XWD MTCCHL,MTCINT\r
9501         000345' 000320' 000000*          XWD LPTCHL,LPTINT\r
9502         000346' 000320' 000000*          XWD PTPCHL,PTPINT\r
9503         000347' 000320' 000000*          XWD PTRCHL,PTRINT\r
9504         000350' 000320' 000000*          XWD CDRCHL,CDRINT\r
9505                         000017  00940   NDEV=.-DEVINT           ;NO. OF DEVICE INTERUPT SERVICE ROUTINES\r
9506                         000016  00950   NDEVM1=NDEV-1           ;(USED BY ONCE)\r
9507                                 00960   INTERNAL NDEVM1\r
9508 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 3\r
9509         MAXIMAL CONFIGURATION\r
9510 \r
9511 \r
9512 \r
9513                                 01000   ;INITIALIZE SOME IO DEVICES\r
9514                                 01010   ;IOINI CALLED BY A PUSHJ PDP, FROM SYSINI AT SYSTEM INITIALIZATION\r
9515 \r
9516                                 01030   DEFINE IOINIT (A)\r
9517                                 01040   <IRP A\r
9518                                 01050   <         EXTERNAL A'INI\r
9519                                 01060    PUSHJ PDP,A'INI\r
9520                                 01070   >>\r
9521 \r
9522                                 01090   DEFINE ASSOC (A,B,C)\r
9523                                 01100   <         IFIDN <A><MTC>,< IOINIT MTC>\r
9524                                 01110    IFIDN <A><DTC>,< IOINIT DTC>\r
9525                                 01120    IFIDN <A><LPT>,< IOINIT LPT>\r
9526                                 01130    IFIDN <A><SCN>,< IOINIT SCN>\r
9527                                 01140    IFIDN <A><PTP>,<IOINIT PTP>\r
9528                                 01150    IFIDN <A><PTR>,<IOINIT PTR>\r
9529                                 01160   >\r
9530 \r
9531                                 01180   INTERNAL IOINI\r
9532 \r
9533         000351'                 01200   IOINI:  SYSTEM^ 000351' 260140  000000*          PUSHJ PDP,SCNINI\r
9534         000352' 260140  000000*          PUSHJ PDP,DTCINI\r
9535         000353' 260140  000352*          PUSHJ PDP,DTCINI\r
9536         000354' 260140  000353*          PUSHJ PDP,DTCINI\r
9537         000355' 260140  000354*          PUSHJ PDP,DTCINI\r
9538         000356' 260140  000000*          PUSHJ PDP,MTCINI\r
9539         000357' 260140  000356*          PUSHJ PDP,MTCINI\r
9540         000360' 260140  000357*          PUSHJ PDP,MTCINI\r
9541         000361' 260140  000360*          PUSHJ PDP,MTCINI\r
9542         000362' 260140  000000*          PUSHJ PDP,LPTINI\r
9543         000363' 260140  000000*          PUSHJ PDP,PTPINI\r
9544         000364' 260140  000000*          PUSHJ PDP,PTRINI\r
9545         000365' 254000  000000* 01210           JRST CLKINI             ;ALWAYS INIT. CLOCK\r
9546 \r
9547                                 01230   EXTERNAL CLKINI\r
9548 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 4\r
9549         MAXIMAL CONFIGURATION\r
9550 \r
9551 \r
9552 \r
9553                                 01270   ;CLOCK CONTROL PARAMETERS\r
9554 \r
9555                         004006  01290             CLDS=4000+APRCHN      ;CLOCK DISABLE\r
9556                         000206  01300             CLEN=200+APRCHN       ;CLOCK ENABLE\r
9557 \r
9558                                 01320             INTERNAL CLDS,CLEN\r
9559 \r
9560                                 01340   ;BYTE POINTERS\r
9561 \r
9562         000366' 270400  000014  01360   PUUOAC:   POINT 4,UUO,12        ;UUO AC FIELD\r
9563         000367' 000400  000000  01370   PIOMOD:   POINT 4,IOS,35        ;MODE BITS\r
9564         000370' 331106  000001  01380   PJOBN:    POINT 9,DEVCHR(DEVDAT),8      ;DEVICE JOB ASSIGNMENT\r
9565         000371' 220406  000001  01390   PJDCHN:   POINT 4,DEVCHR(DEVDAT),17     ;JOB DEVICE CHANNEL NO.\r
9566         000372' 140606  000001  01400   PUNIT:    POINT 6,DEVCHR(DEVDAT),23     ;DEVICE UNIT NO.\r
9567 \r
9568                                 01420   INTERNAL PUUOAC,PIOMOD,PJOBN,PJDCHN,PUNIT\r
9569 \r
9570                                 01440   ;COMMON SUBROUTINE RETURNS\r
9571 \r
9572         000373' 350003  000000  01460   CPOPJ2:   AOS (PDP)\r
9573         000374' 350003  000000  01470   CPOPJ1:   AOS (PDP)\r
9574         000375' 263140  000000  01480   CPOPJ:    POPJ PDP,\r
9575 \r
9576                                 01500   INTERNAL CPOPJ,CPOPJ1,CPOPJ2\r
9577 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 5\r
9578         MAXIMAL CONFIGURATION\r
9579 \r
9580 \r
9581                                 01530   ,SYSTEM DATA STORAGE\r
9582 \r
9583 \r
9584                                 01560   INTERNAL JOB,JOBADR,JBTADR,JBTSTS,USRREL,USRINF,USRJDA\r
9585                                 01570   INTERNAL USRPDP,JOBDAT,USRDDT,USRSAV,USRUXT,USRLO,USRHI\r
9586                                 01580   INTERNAL COMCNT,IOCOMP,USRPOV,STOPU,SCHEDF,TIME,JBTAD1\r
9587                                 01590   INTERNAL MTAVAL,DCAVAL,DTAVAL,MTREQ,DCREQ,DTREQ,TTYTAB,CORTAB\r
9588                                 01600   INTERNAL CH1ERR,CH2ERR,CH3ERR,CH4ERR,CH5ERR,CH6ERR,CH7ERR\r
9589                                 01610   INTERNAL CORLST,CORTAB,CORTAL,SYSEND,SYSBEG,DEVOPR\r
9590 \r
9591                         000000  01630   JOBN=0  ;DEFINE NO. OF JOBS (0 THRU JOBN-1)\r
9592                                 01640   ;THERE MUST BE MORE TTY DEVICE DATA BLCKS THAN JOBS.\r
9593 \r
9594                                 01660   DEFINE ASSOC (A,N,D)\r
9595                                 01670   <IRP D,<IFIDN <A><SCN>,<JOBN=JOBN+1>>>\r
9596                                 01680             SYSTEM^               777777  777776  01690   MJOBN=-JOBN\r
9597                                 01700   INTERNAL JOBN,MJOBN\r
9598 \r
9599         000376'                 01720   SYSBEG:   ;FIRST LOC IN SYSTEM DATA AREA\r
9600                                 01730   XP SYSBG1,SYSBEG+1      ;FIRST LOC+1\r
9601         000376' 000000  000000  01740   JOB:      0             ;CURRENT JOB NUMBER EXCEPT WEN SCHEDF IS NON-ZERO\r
9602         000377' 000000  000000  01750   JOBADR:   0             ;CONTAINS ADDRESS OF JOB CURRENTLY RUNNING\r
9603         000400' 000000  000000  01760   JOBDAT:   0             ;CONTAINS ADDRESS OF JOB DATA AREA\r
9604 \r
9605         000401'                 01780   JBTADR:   BLOCK JOBN            ;C(LH)=PROTECT, C(RH)=RELOCATION\r
9606                                 01790   XP JBTAD1,JBTADR+1   ;ADDRESS OF JOB 1(USED BY SYSMAK)\r
9607         000403'                 01800   JBTSTS:   BLOCK JOBN            ;CONTAINS STATUS INFORMATION FOR EACH J\r
9608 \r
9609         000405' 000000  000000  01820   USRPDP:   0         ;USER PUSH DOWN POINTER\r
9610         000406' 000000  000000  01830   USRREL:   0         ;LH=0, RH CONTAINS CONTENTS OF PROTECTION REGISTER\r
9611         000407'                 01840   USRLO:    ;FIRST LOC CLEARD BY SETUSR SUBROUTINE\r
9612         000407' 000000  000000  01850   USRUXT:   0         ;UNUSED,  JOBUXT USED TO SAVE UUO PC(UUO0)\r
9613         000410' 000000  000000  01860   USRLEV:   0         ;UNUSED,  JOBLEV USED TO SAVE LOC. 40\r
9614         000411' 000000  000000  01870   USRSAV:   0         ;TEMPORARY STORAGE FOR UUO HANDLER\r
9615         000412' 000000  000000  01880   USRPOV:   0         ;PUSH DOWN OVERFLOW TRAP\r
9616         000413'                 01890             BLOCK 2\r
9617         000415' 000000  000000  01900   USRINF:   0         ;UN LAYED OUT USER INFORMATION\r
9618         000416'                 01910   USRJDA:   BLOCK 20  ;RH=JOB DEVICE ASSIGNMENTS FOR THIS USER,LH=UUOS\r
9619                                 01920   XP USRHI,.-1        ;LAST LOC CLEARED BY SETUSR ROUTINE\r
9620                                 01930   XP USRPFI,.-1       ;LAST LOC PROTECTED FROM IO SERVICE\r
9621                                 01940   XP USRPFU,.         ;LAST LOC PROTECTED FROM USER PROGRAM\r
9622         000436' 000000  000000  01950   USRDDT:   0         ;STARTING ADDR OF USER DDT\r
9623 \r
9624                                 01970   ;DEVICE JUSTR BECOME AVAILABLE FLAGS\r
9625         000437' 000000  000000  01980   MTAVAL:   0          ;MAGNETIC TAPE\r
9626         000440' 000000  000000  01990   DCAVAL:   0          ;DATA CONTROL\r
9627         000441' 000000  000000  02000   DTAVAL:   0          ;DECTAPE\r
9628 \r
9629                                 02020   ;NUMBER OF JOBS WAITING FOR DEVICES(-1=NONE, 0=1 USING, 1=1 USING)\r
9630         000442' 777777  777777  02030   MTREQ:    -1        ;MAGNETIC TAPE\r
9631         000443' 777777  777777  02040   DCREQ:    -1        ;DATA CONTROL\r
9632         000444' 777777  777777  02050   DTREQ:    -1        ;DECTAPE\r
9633 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 5-1\r
9634         MAXIMAL CONFIGURATION\r
9635 \r
9636         000445' 000000  000000  02060   IOCOMP:   0         ;NUMBER OF USERS IN IO WAIT STATE\r
9637         000446' 000000  000000  02070   COMCNT:   0         ;NUMBER OF COMMANDS TYPED-IN BUT NOT DECODED\r
9638         000447' 000000  000000  02080   STOPU:    0         ;NON-ZERO WHEN CLOCK INTERRUPT FORCED TO STOP USER\r
9639         000450' 000000  000000  02090   SCHEDF:   0         ;NON-ZERO WHEN CLOCK ROUTINE IS SCHEDULING\r
9640 \r
9641         000451' 000000  000000  02110   CH1ERR:   0         ;SPURIOUS INTERRUPT COUNTS FOR EACH CHANNEL\r
9642         000452' 000000  000000  02120   CH2ERR:   0\r
9643         000453' 000000  000000  02130   CH3ERR:   0\r
9644         000454' 000000  000000  02140   CH4ERR:   0\r
9645         000455' 000000  000000  02150   CH5ERR:   0\r
9646         000456' 000000  000000  02160   CH6ERR:   0\r
9647         000457' 000000  000000  02170   CH7ERR:   0\r
9648 \r
9649                         000410' 02190              USRLO1=USRLO+1\r
9650                                 02200              INTERNAL USRLO1\r
9651 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 6\r
9652         MAXIMAL CONFIGURATION\r
9653 \r
9654 \r
9655         000460' 000000  000000  02230   TIME:     0             ;TIME SYSTEM HAS RUN IN 60THS OF A SECOND\r
9656 \r
9657 \r
9658                                 02260   XP TTYLEN,SCNLIN+1   ;LENGTH OF TTY TRANSLATOR TABLES(INCLUDING CTY)\r
9659         000461'                 02270   TTYTAB:   BLOCK TTYLEN          ;TTY TRANSLATOR TABLE\r
9660                                 02280                                   ;SIGN BIT = 1 IF COMMAND JUST TYPED\r
9661                                 02290                                   ;BITS 1 -9, JOB CONSOLE IS ATTACHED TO\r
9662                                 02300                                   ;BITS 18-35, THE DEVICE DATA BLOCK FOR\r
9663         000463' 000000  000000  02310   DEVOPR:   0             ;SIXBIT PHYSICAL NAME OF OPERATORS\r
9664                                 02320                           ;CONSOLE SET BY SCNSER TO FIRST ACTIVE TTY.\r
9665                                 02330   ;LOCATIONS FOR CORE ALLOCATION\r
9666                                 02340   XP CORBLK,^D256          ;NO. OF 1K BLOCKS POSSIBLE\r
9667         000464'                 02350   CORTAB:   BLOCK <CORBLK>/^D36+1         ;1K BLOCK USE BIT TABLE\r
9668                                 02360                                   ;A 1 MEANS BLOCK IS IN USE\r
9669         000474' 000000  000000  02370   CORLST:   0             ;1 BIT BYTE POINTER TO LAST FREE BLOCK POSSIBLE\r
9670         000475' 000000  000000  02380   CORTAL:   0             ;TOTAL NO. OF FREE CORE BLOCKS LEFT\r
9671                                 02390   ;CORLST AND CORTAL ARE SET UP AT SYSTEM INITIALIZATION\r
9672 \r
9673                         000475' 02410   SYSEND=.-1              ;LAST LOC. CLEARED BY SYSINI\r
9674 \r
9675                                 02430   INTERNAL SYSSIZ\r
9676                                 02440   EXTERNAL SYSFIN\r
9677         000476' 000000  000000* 02450   SYSSIZ:   EXP SYSFIN            ;SIZE OF MONITOR(LAST LOC. USED)\r
9678 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 7\r
9679         MAXIMAL CONFIGURATION\r
9680 \r
9681 \r
9682                                 02480             END,\r
9683 \r
9684 NO ERRORS DETECTED\r
9685 \r
9686 PROGRAM BREAK IS 000477\r
9687 \r
9688 9K CORE USED\r
9689 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 8\r
9690         SYMBOL TABLE\r
9691 \r
9692                 000532  \r
9693 A               000000  INT\r
9694 AC1             000015  INT\r
9695 AC2             000016  INT\r
9696 AC3             000017  INT\r
9697 AL              000001  INT\r
9698 APRACT          004002  INT\r
9699 APRBIT          000002  INT\r
9700 APRCHL          000060' INT\r
9701 APRCHN          000006  INT\r
9702 APRINT          000332' EXT\r
9703 APROFF          001002  INT\r
9704 APRON           002002  INT\r
9705 APRRET          000054' INT\r
9706 APRSAC          000014' INT\r
9707 APRSAV          000006' INT\r
9708 ASSCON          400000  INT\r
9709 ASSPRG          200000  INT\r
9710 B               000014  INT\r
9711 BUFPNT          000012  INT\r
9712 BUFWRD          000013  INT\r
9713 CDRACT          004004  INT\r
9714 CDRBIT          000004  INT\r
9715 CDRCHL          000320' INT\r
9716 CDRCHN          000005  INT\r
9717 CDRINT          000350' EXT\r
9718 CDROFF          001004  INT\r
9719 CDRON           002004  INT\r
9720 CDRRET          000314' INT\r
9721 CDRSAC          000262' INT\r
9722 CDRSAV          000254' INT\r
9723 CH1             000324' INT\r
9724 CH1ERR          000451' INT\r
9725 CH1N            000000  \r
9726 CH1PDN          000000  \r
9727 CH1XIT          000325' INT\r
9728 CH2             000250' INT\r
9729 CH2CJ           000247' \r
9730 CH2ERR          000452' INT\r
9731 CH2N            000011  \r
9732 CH2PDN          000020  \r
9733 CH2SAC          000212' INT\r
9734 CH2SAV          000204' INT\r
9735 CH2XIT          000244' INT\r
9736 CH3             000130' INT\r
9737 CH3CJ           000127' \r
9738 CH3ERR          000453' INT\r
9739 CH3N            000011  \r
9740 CH3PDN          000020  \r
9741 CH3SAC          000072' INT\r
9742 CH3SAV          000064' INT\r
9743 CH3XIT          000124' INT\r
9744 CH4             000200' INT\r
9745 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 8-1\r
9746         SYMBOL TABLE\r
9747 \r
9748 CH4CJ           000177' \r
9749 CH4ERR          000454' INT\r
9750 CH4N            000011  \r
9751 CH4PDN          000020  \r
9752 CH4SAC          000142' INT\r
9753 CH4SAV          000134' INT\r
9754 CH4XIT          000174' INT\r
9755 CH5             000320' INT\r
9756 CH5CJ           000317' \r
9757 CH5ERR          000455' INT\r
9758 CH5N            000011  \r
9759 CH5PDN          000020  \r
9760 CH5SAC          000262' INT\r
9761 CH5SAV          000254' INT\r
9762 CH5XIT          000314' INT\r
9763 CH6             000060' INT\r
9764 CH6CJ           000057' \r
9765 CH6ERR          000456' INT\r
9766 CH6N            000017  \r
9767 CH6PDN          000020  \r
9768 CH6SAC          000014' INT\r
9769 CH6SAV          000006' INT\r
9770 CH6XIT          000054' INT\r
9771 CH7             000327' INT\r
9772 CH7ERR          000457' INT\r
9773 CH7N            000000  \r
9774 CH7PDN          000000  \r
9775 CH7XIT          000330' INT\r
9776 CHANU1          000000  \r
9777 CHANU2          000001  \r
9778 CHANU3          000001  \r
9779 CHANU4          000001  \r
9780 CHANU5          000001  \r
9781 CHANU6          000001  \r
9782 CHANU7          000000  \r
9783 CLDS            004006  INT\r
9784 CLEN            000206  INT\r
9785 CLKINI          000365' EXT\r
9786 CLOSB           002000  INT\r
9787 CLSIN           000002  INT\r
9788 CLSOUT          000001  INT\r
9789 COMCNT          000446' INT\r
9790 CONFIG          000000' INT\r
9791 CORBLK          000400  INT\r
9792 CORLST          000474' INT\r
9793 CORTAB          000464' INT\r
9794 CORTAL          000475' INT\r
9795 CPOPJ           000375' INT\r
9796 CPOPJ1          000374' INT\r
9797 CPOPJ2          000373' INT\r
9798 CTYACT          004020  INT\r
9799 CTYBIT          000020  INT\r
9800 CTYCHL          000130' INT\r
9801 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 8-2\r
9802         SYMBOL TABLE\r
9803 \r
9804 CTYCHN          000003  INT\r
9805 CTYINT          000333' EXT\r
9806 CTYOFF          001020  INT\r
9807 CTYON           002020  INT\r
9808 CTYRET          000124' INT\r
9809 CTYSAC          000072' INT\r
9810 CTYSAV          000064' INT\r
9811 D               000017  INT\r
9812 DAT             000005  INT\r
9813 DCAVAL          000440' INT\r
9814 DCL             000001  INT\r
9815 DCREQ           000443' INT\r
9816 DCW             020000  INT\r
9817 DDI             000007  INT\r
9818 DDO             000006  INT\r
9819 DDTMEM          000037  INT\r
9820 DDTSYM          000036  INT\r
9821 DEN             000004  INT\r
9822 DEVADR          000007  INT\r
9823 DEVBUF          000006  INT\r
9824 DEVCHR          000001  INT\r
9825 DEVCTR          000011  INT\r
9826 DEVDAT          000006  INT\r
9827 DEVIAD          000007  INT\r
9828 DEVINT          000332' INT\r
9829 DEVIOS          000002  INT\r
9830 DEVLOG          000005  INT\r
9831 DEVMOD          000004  INT\r
9832 DEVNAM          000000  INT\r
9833 DEVOAD          000010  INT\r
9834 DEVOPR          000463' INT\r
9835 DEVPTR          000010  INT\r
9836 DEVSER          000003  INT\r
9837 DGF             000012  INT\r
9838 DIN             000003  INT\r
9839 DLK             000005  INT\r
9840 DOU             000002  INT\r
9841 DR              000016  INT\r
9842 DRL             000000  INT\r
9843 DSI             000011  INT\r
9844 DSO             000010  INT\r
9845 DTAVAL          000441' INT\r
9846 DTCACT          004010  INT\r
9847 DTCBIT          000010  INT\r
9848 DTCCHL          000200' INT\r
9849 DTCCHN          000004  INT\r
9850 DTCINI          000355' EXT\r
9851 DTCINT          000340' EXT\r
9852 DTCOFF          001010  INT\r
9853 DTCON           002010  INT\r
9854 DTCRET          000174' INT\r
9855 DTCSAC          000142' INT\r
9856 DTCSAV          000134' INT\r
9857 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 8-3\r
9858         SYMBOL TABLE\r
9859 \r
9860 DTREQ           000444' INT\r
9861 DTSIZ           000001  \r
9862 DTW             040000  INT\r
9863 DVAVAL          000040  INT\r
9864 DVCDR           100000  INT\r
9865 DVDIR           000004  INT\r
9866 DVDIRI          400000  INT\r
9867 DVIN            000002  INT\r
9868 DVLPT           040000  INT\r
9869 DVMTA           000020  INT\r
9870 DVOUT           000001  INT\r
9871 DVTTY           000010  INT\r
9872 ENTRB           020000  INT\r
9873 ERROR           000000  EXT\r
9874 I               000010  INT\r
9875 IB              000013  INT\r
9876 IBUFB           200000  INT\r
9877 INITB           400000  INT\r
9878 INPB            010000  INT\r
9879 IO              000020  INT\r
9880 IOACT           010000  INT\r
9881 IOBEG           000002  INT\r
9882 IOBKTL          040000  INT\r
9883 IOCOMP          000445' INT\r
9884 IOCON           000040  INT\r
9885 IODEND          020000  INT\r
9886 IODERR          200000  INT\r
9887 IODISC          400000  INT\r
9888 IODONE          400000  INT\r
9889 IODTER          100000  INT\r
9890 IOEND           000040  INT\r
9891 IOFST           000004  INT\r
9892 IOIMPM          400000  INT\r
9893 IOINI           000351' INT\r
9894 IONRCK          000100  INT\r
9895 IORDEL          000100  INT\r
9896 IORET           000020  INT\r
9897 IOS             000000  INT\r
9898 IOSTRT          000010  INT\r
9899 IOUSE           400000  INT\r
9900 IOW             000001  INT\r
9901 IOWC            000020  INT\r
9902 IOWS            400000  INT\r
9903 ITEM            000004  INT\r
9904 JBFADR          000000  INT\r
9905 JBFCTR          000002  INT\r
9906 JBFPTR          000001  INT\r
9907 JBTAD1          000402' INT\r
9908 JBTADR          000401' INT\r
9909 JBTSTS          000403' INT\r
9910 JBUF            000005  INT\r
9911 JDAT            000011  INT\r
9912 JERR            002000  INT\r
9913 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 8-4\r
9914         SYMBOL TABLE\r
9915 \r
9916 JIOW            100000  INT\r
9917 JNA             004000  INT\r
9918 JOB             000376' INT\r
9919 JOBADR          000377' INT\r
9920 JOBDAT          000400' INT\r
9921 JOBN            000002  INT\r
9922 LOOKB           040000  INT\r
9923 LPTACT          004004  INT\r
9924 LPTBIT          000004  INT\r
9925 LPTCHL          000320' INT\r
9926 LPTCHN          000005  INT\r
9927 LPTINI          000362' EXT\r
9928 LPTINT          000345' EXT\r
9929 LPTOFF          001004  INT\r
9930 LPTON           002004  INT\r
9931 LPTRET          000314' INT\r
9932 LPTSAC          000262' INT\r
9933 LPTSAV          000254' INT\r
9934 MAXIMA          000000  INT\r
9935 MJOBN   777777  777776  INT\r
9936 MTAVAL          000437' INT\r
9937 MTCACT          004040  INT\r
9938 MTCBIT          000040  INT\r
9939 MTCCHL          000250' INT\r
9940 MTCCHN          000002  INT\r
9941 MTCINI          000361' EXT\r
9942 MTCINT          000344' EXT\r
9943 MTCOFF          001040  INT\r
9944 MTCON           002040  INT\r
9945 MTCRET          000244' INT\r
9946 MTCSAC          000212' INT\r
9947 MTCSAV          000204' INT\r
9948 MTREQ           000442' INT\r
9949 MTW             010000  INT\r
9950 NDEV            000017  \r
9951 NDEVM1          000016  INT\r
9952 OBUFB           100000  INT\r
9953 OUTPB           004000  INT\r
9954 PDP             000003  INT\r
9955 PICHN           000100  INT\r
9956 PIOMOD          000367' INT\r
9957 PJDCHN          000371' INT\r
9958 PJOBN           000370' INT\r
9959 PROG            000007  INT\r
9960 PTPACT          004004  INT\r
9961 PTPBIT          000004  INT\r
9962 PTPCHL          000320' INT\r
9963 PTPCHN          000005  INT\r
9964 PTPINI          000363' EXT\r
9965 PTPINT          000346' EXT\r
9966 PTPOFF          001004  INT\r
9967 PTPON           002004  INT\r
9968 PTPRET          000314' INT\r
9969 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 8-5\r
9970         SYMBOL TABLE\r
9971 \r
9972 PTPSAC          000262' INT\r
9973 PTPSAV          000254' INT\r
9974 PTRACT          004004  INT\r
9975 PTRBIT          000004  INT\r
9976 PTRCHL          000320' INT\r
9977 PTRCHN          000005  INT\r
9978 PTRINI          000364' EXT\r
9979 PTRINT          000347' EXT\r
9980 PTROFF          001004  INT\r
9981 PTRON           002004  INT\r
9982 PTRRET          000314' INT\r
9983 PTRSAC          000262' INT\r
9984 PTRSAV          000254' INT\r
9985 PUNIT           000372' INT\r
9986 PUUOAC          000366' INT\r
9987 RUN             200000  INT\r
9988 RUNABL          204000  INT\r
9989 SCHEDF          000450' INT\r
9990 SCNACT          004020  INT\r
9991 SCNBIT          000020  INT\r
9992 SCNCHL          000130' INT\r
9993 SCNCHN          000003  INT\r
9994 SCNINI          000351' EXT\r
9995 SCNINT          000334' EXT\r
9996 SCNLIN          000001  \r
9997 SCNOFF          001020  INT\r
9998 SCNON           002020  INT\r
9999 SCNRET          000124' INT\r
10000 SCNSAC          000072' INT\r
10001 SCNSAV          000064' INT\r
10002 STOPU           000447' INT\r
10003 SYSBEG          000376' INT\r
10004 SYSBG1          000377' INT\r
10005 SYSDAT          000002' INT\r
10006 SYSEND          000475' INT\r
10007 SYSFIN          000476' EXT\r
10008 SYSMOD          000001  INT\r
10009 SYSNUM          000004' INT\r
10010 SYSSIZ          000476' INT\r
10011 SYSTAP          000005' INT\r
10012 SYSVER          000004  INT\r
10013 TAC             000001  INT\r
10014 TAC1            000002  INT\r
10015 TEM             000010  INT\r
10016 TIME            000460' INT\r
10017 TTYATC          020000  INT\r
10018 TTYLEN          000002  INT\r
10019 TTYTAB          000461' INT\r
10020 TTYUSE          010000  INT\r
10021 USRDDT          000436' INT\r
10022 USRHI           000435' INT\r
10023 USRINF          000415' INT\r
10024 USRJDA          000416' INT\r
10025 \r\fIOINI1 - IO INITIALIZATION PART 1                 PAGE 8-6\r
10026         SYMBOL TABLE\r
10027 \r
10028 USRLEV          000410' \r
10029 USRLO           000407' INT\r
10030 USRLO1          000410' INT\r
10031 USRMOD          010000  INT\r
10032 USRPDP          000405' INT\r
10033 USRPFI          000435' INT\r
10034 USRPFU          000436' INT\r
10035 USRPOV          000412' INT\r
10036 USRREL          000406' INT\r
10037 USRSAV          000411' INT\r
10038 USRUXT          000407' INT\r
10039 UUO             000014  INT\r
10040 \f   IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII         444      444   \r
10041    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII         444      444   \r
10042    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII         444      444   \r
10043       III            OOO         OOO            III            NNN         NNN            III            444      444   \r
10044       III            OOO         OOO            III            NNN         NNN            III            444      444   \r
10045       III            OOO         OOO            III            NNN         NNN            III            444      444   \r
10046       III            OOO         OOO            III            NNNNNN      NNN            III            444      444   \r
10047       III            OOO         OOO            III            NNNNNN      NNN            III            444      444   \r
10048       III            OOO         OOO            III            NNNNNN      NNN            III            444      444   \r
10049       III            OOO         OOO            III            NNN   NNN   NNN            III            444444444444444\r
10050       III            OOO         OOO            III            NNN   NNN   NNN            III            444444444444444\r
10051       III            OOO         OOO            III            NNN   NNN   NNN            III            444444444444444\r
10052       III            OOO         OOO            III            NNN      NNNNNN            III                     444   \r
10053       III            OOO         OOO            III            NNN      NNNNNN            III                     444   \r
10054       III            OOO         OOO            III            NNN      NNNNNN            III                     444   \r
10055       III            OOO         OOO            III            NNN         NNN            III                     444   \r
10056       III            OOO         OOO            III            NNN         NNN            III                     444   \r
10057       III            OOO         OOO            III            NNN         NNN            III                     444   \r
10058    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII                  444   \r
10059    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII                  444   \r
10060    IIIIIIIII            OOOOOOOOO            IIIIIIIII         NNN         NNN         IIIIIIIII                  444   \r
10061 \r
10062 \r
10063 \r
10064 \r
10065 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
10066 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
10067 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
10068 LLL                  SSS                        TTT                                                                     \r
10069 LLL                  SSS                        TTT                                                                     \r
10070 LLL                  SSS                        TTT                                                                     \r
10071 LLL                  SSS                        TTT                                                                     \r
10072 LLL                  SSS                        TTT                                                                     \r
10073 LLL                  SSS                        TTT                                                                     \r
10074 LLL                     SSSSSSSSS               TTT                                                                     \r
10075 LLL                     SSSSSSSSS               TTT                                                                     \r
10076 LLL                     SSSSSSSSS               TTT                                                                     \r
10077 LLL                              SSS            TTT                                                                     \r
10078 LLL                              SSS            TTT                                                                     \r
10079 LLL                              SSS            TTT                                                                     \r
10080 LLL                              SSS            TTT                                                                     \r
10081 LLL                              SSS            TTT                                                                     \r
10082 LLL                              SSS            TTT                                                                     \r
10083 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
10084 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
10085 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
10086 \r
10087 \r
10088 \r
10089 \r
10090 Request created: 24-April-1978  11:23:08\r
10091 File: DSKB1 :IOINI4.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:22
10092 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2380 \r
10093 File will be deleted after printing\r
10094 \f\rIOINI2 - IO INITIALIZATION PART 2                 PAGE 1\r
10095         MAXIMAL CONFIGURATION\r
10096 \r
10097                                 00010           XLIST\r
10098                                 01930          LIST\r
10099 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 7\r
10100         MAXIMAL CONFIGURATION\r
10101 \r
10102 \r
10103                                 00010   ;SOME MACROS FOR DEFINING CONFIGURATION\r
10104 \r
10105                                 00030   DEFINE NAME (A)\r
10106                                 00040   <DEFINE NAME1\r
10107                                 00050   <CONFIG:  ASCIZ /A/\r
10108                                 00060   INTERNAL CONFIG\r
10109                                 00070   >\r
10110                                 00080   XP A,0\r
10111                                 00090   SUBTTL A CONFIGURATION\r
10112                                 00100   >\r
10113 \r
10114                                 00120   DEFINE DATE (A)\r
10115                                 00130   <DEFINE DATE1\r
10116                                 00140   <SYSDAT:  ASCIZ /A/\r
10117                                 00150   INTERNAL SYSDAT\r
10118                                 00160   >>\r
10119 \r
10120                                 00180   DEFINE VERSION (A,B)\r
10121                                 00190   <DEFINE VERS1\r
10122                                 00200   <SYSNUM:  XWD ^D'A,^D'B\r
10123                                 00210   XP SYSMOD,^D'A\r
10124                                 00220   XP SYSVER,^D'B\r
10125                                 00230   INTERNAL SYSNUM\r
10126                                 00240   >>\r
10127 \r
10128                                 00260   DEFINE CUSPTAPE (A)\r
10129                                 00270   <DEFINE CUSP1\r
10130                                 00280   <SYSTAP:  SIXBIT /A/\r
10131                                 00290   INTERNAL SYSTAP\r
10132                                 00300   >>\r
10133 \r
10134                                 00320   DEFINE ACPDL (J,CHJN,CHJPDN)\r
10135                                 00330   <         CH'J'N=CHJN\r
10136                                 00340    CH'J'PDN=CHJPDN\r
10137                                 00350   >\r
10138 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 2\r
10139         MAXIMAL CONFIGURATION\r
10140 \r
10141 \r
10142                                 00010   NAME <MAXIMAL>^DEFINE NAME1\r
10143                                         <CONFIG:  ASCIZ /MAXIMAL/\r
10144                                         INTERNAL CONFIG\r
10145                                         >\r
10146 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 2\r
10147         MAXIMAL CONFIGURATION\r
10148 \r
10149 \r
10150                                 00040           DATE <8-16-65>^DEFINE DATE1\r
10151                                         <SYSDAT:  ASCIZ /8-16-65/\r
10152                                         INTERNAL SYSDAT\r
10153                                         >^\r
10154                                 00050           VERSION 1,4^DEFINE VERS1\r
10155                                         <SYSNUM:  XWD ^D1,^D4\r
10156                                         XP SYSMOD,^D1\r
10157                                         XP SYSVER,^D4\r
10158                                         INTERNAL SYSNUM\r
10159                                         >^\r
10160                                 00060           CUSPTAPE DTA0^DEFINE CUSP1\r
10161                                         <SYSTAP:  SIXBIT /DTA0/\r
10162                                         INTERNAL SYSTAP\r
10163                                         >^\r
10164 \r
10165                                 00080   ;DEFINE THE IO PART OF THE SYSTEM\r
10166                                 00090   ;THAT IS:\r
10167                                 00100   ;         DEFINE INTERRUPT SERVICE ROTUINE TO BE USED\r
10168                                 00110   ;       ASSIGN DEVICES TO PI CHANNELS\r
10169 \r
10170                                 00130   DEFINE SYSTEM\r
10171                                 00140    <\r
10172                                 00150    ASSOC APR,6,<>\r
10173                                 00160    ASSOC CTY,3,<>\r
10174                                 00170    ASSOC SCN,3,<TTY0,TTY1>\r
10175                                 00180    ASSOC DTC,4,<DTA0>\r
10176                                 00190    ASSOC DTC,4,<DTA1>\r
10177                                 00200    ASSOC DTC,4,<DTA2>\r
10178                                 00210    ASSOC DTC,4,<DTA3>\r
10179                                 00220    ASSOC MTC,2,<MTA0>\r
10180                                 00230    ASSOC MTC,2,<MTA1>\r
10181                                 00240    ASSOC MTC,2,<MTA2>\r
10182                                 00250    ASSOC MTC,2,<MTA3>\r
10183                                 00260    ASSOC LPT,5,<LPT>\r
10184                                 00270    ASSOC PTP,5,<PTP>\r
10185                                 00280    ASSOC PTR,5,<PTR>\r
10186                                 00290    ASSOC CDR,5,<CDR>\r
10187                                 00300   >\r
10188 \r
10189                         000001  00320   DTSIZ=1   ;MULTIPLE DECTAPE DIRECTORIES\r
10190 \r
10191                         000001  00340   SCNLIN=1\r
10192 \r
10193                                 00360   ;DEFINE HIGHEST AC TO SAVE AND LENGTH OF PD LIST FOR EACH PI CHANNEL\r
10194 \r
10195                         000000  00380   ACPDL (1,0,0)^    CH1N=0\r
10196                         000011  00390   ACPDL (2,11,20)^          CH2N=11\r
10197                         000011  00400   ACPDL (3,11,20)^          CH3N=11\r
10198                         000011  00410   ACPDL (4,11,20)^          CH4N=11\r
10199                         000011  00420   ACPDL (5,11,20)^          CH5N=11\r
10200                         000017  00430   ACPDL (6,17,20^   CH6N=17\r
10201                         000000  00440   ACPDL (7,0,0)^    CH7N=0\r
10202 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 2-1\r
10203         MAXIMAL CONFIGURATION\r
10204 \r
10205                                 00010           TITLE IOINI2 - IO INITIALIZATION PART 2\r
10206 \r
10207                                 00030   ;DEFINITIONS OF DEVCHN AND DEVBIT\r
10208                                 00040   ;THESE ALSO OCCUR IN IOINT1\r
10209 \r
10210                                 00060   DEFINE ASSOC (A,N,D)\r
10211                                 00070   <\r
10212                                 00080     A'CHN=N\r
10213                                 00090   >\r
10214 \r
10215                                 00110             SYSTEM^\r
10216 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 2\r
10217         MAXIMAL CONFIGURATION\r
10218 \r
10219 \r
10220 \r
10221                                 00160   ;APR PIP BITS\r
10222 \r
10223                         000001  00180   APRBIT=1\r
10224                         000002  00190   REPEAT 7-APRCHN,<APRBIT=APRBIT*2>\r
10225                                 00200   XP PION,200             ;CONO PI,PION TURNS PI SYSTEM ON\r
10226                                 00210   XP PIOFF,400            ;TURN IT OFF\r
10227                                 00220   XP PICLK,PION+1B24+APRBIT       ;TURN PI ON, AND FORCE CLOCK INT.\r
10228                                 00230   XP CLKOFF,1000+APRCHN           ;CONO APR,CLKOFF TURNS CLOCK FLAG OFF\r
10229 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 3\r
10230         MAXIMAL CONFIGURATION\r
10231 \r
10232 \r
10233 \r
10234                                 00270   ;ASSEMBLE ALL DEVICE DATA BLOCKS AND LINK THEM TOGETHER\r
10235 \r
10236                                 00290   DEFINE SCNDDB (A,B,C)\r
10237                                 00300   <         INTERNAL C'DB\r
10238                                 00310   C'DB:     ZZ=.\r
10239                                 00320    SIXBIT /C/\r
10240                                 00330    XWD A'CHN*PICHN,STTYBF+1       ;LONG ENOUGH FOR PRINTING\r
10241                                 00340                   ;SEQUENCE CARD IMAGE.\r
10242                                 00350                   ;USER BUFFERS ARE 2 WORDS\r
10243                                 00360                   ;LONGER THEN THE MONITORY TTY BUFFERS.\r
10244                                 00370    0\r
10245                                 00380   EXTERNAL  TTYDSP\r
10246                                 00390    XWD C,TTYDSP\r
10247                                 00400    XWD DVTTY+DVIN+DVOUT,3\r
10248                                 00410    0\r
10249                                 00420    0\r
10250                                 00430    XWD PROG,0\r
10251                                 00440    XWD PROG,0\r
10252                                 00450    XP TTYPTR,.-ZZ\r
10253                                 00460    0\r
10254                                 00470    XP TTYCTR,.-ZZ\r
10255                                 00480    0\r
10256                                 00490    XP TTYSAV,.-ZZ\r
10257                                 00500    0\r
10258                                 00510    XP TTYBUF,.-ZZ\r
10259                                 00520    XP TTYBM1,TTYBUF-1\r
10260                                 00530   XP STTYBF,20\r
10261                                 00540   XP STTYB1,STTYBF+1      ;LENGTH+1\r
10262                                 00550    BLOCK STTYBF\r
10263                                 00560   XP TTYBFE,.-ZZ-1\r
10264                                 00570   \r
10265                                 00580   ;LINE NO. PARAMETERS\r
10266                                 00590   XP TTYLEN,SCNLIN+1  ;LENGTH OF TTY TRANSLATOR TABLE(INCLUDE TTY)\r
10267                                 00600   XP TSCNLN,SCNLIN-1  ;HIGHEST TTY LINE NO.(NOT COUNTING CTY)\r
10268                                 00610   XP TCONLN,TSCNLN+1  ;CTY LINE NUMBER\r
10269                                 00620   XP MTTYLN,-TTYLEN   ;NEGATIVEL LENGTH OF TRANSLATOR TABLE\r
10270                                 00630   XP FSNCHN,SCNCHN*101 ;CHANNEL ASSIGNED, FOR FULL DUPLEX SCN.\r
10271                                 00640    XP TTYLST,TTY0DB    ;FIRST TTY DEVICE DATA BLOCK\r
10272                                 00650    >\r
10273 \r
10274                                 00670   ;NEG. NO. OF TELTYPE DEVICE DATA BLOCKS\r
10275 \r
10276                         000000  00690   MLTTYL=0\r
10277                                 00700   DEFINE ASSOC (A,N,D)\r
10278                                 00710   <IRP D,<IFIDN <A>,<SCN>,<MLTTYL=MLTTYL-1>>>\r
10279 \r
10280                                 00730             SYSTEM^\r
10281                                 00750   INTERNAL MLTTYL\r
10282 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 4\r
10283         MAXIMAL CONFIGURATION\r
10284 \r
10285 \r
10286 \r
10287                                 00790   ;MAG TAPE DEVICE DATA BLOCK\r
10288 \r
10289                         000000  00810   MTCNUM=0\r
10290 \r
10291                                 00830   DEFINE MTCDDB (A,B,C)\r
10292                                 00840   <         INTERNAL C'DB\r
10293                                 00850   C'DB:     SIXBIT /C/\r
10294                                 00860   MTCNUM=MTCNUM+1\r
10295                                 00870    XWD IORET+A'CHN*PICHN,<MTCNUM-1>*10000+201\r
10296                                 00880   \r
10297                                 00890    0\r
10298                                 00900    XWD C,MTDISP\r
10299                                 00910   EXTERNAL MTDISP\r
10300                                 00920    XWD 4400+DVMTA+DVIN+DVOUT,154403\r
10301                                 00930    0\r
10302                                 00940    0\r
10303                                 00950    XWD PROG,0\r
10304                                 00960    XWD PROG,0\r
10305                                 00970   >\r
10306 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 5\r
10307         MAXIMAL CONFIGURATION\r
10308 \r
10309 \r
10310                                 01000   ;DECTAPE DEVICE DATA BLOCK\r
10311 \r
10312                         000000  01020   DTCNUM=0\r
10313 \r
10314                                 01040   DEFINE DTCDDB (A,B,C)\r
10315                                 01050   <         INTERNAL C'DB\r
10316                                 01060   C'DB:     ZZ=.\r
10317                                 01070    SIXBIT /C/\r
10318                                 01080   DTCNUM=DTCNUM+1\r
10319                                 01090    XWD IORET+A'CHN*PICHN,<DTCNUM-1>*10000+201\r
10320                                 01100    0\r
10321                                 01110    XWD C,UTDSP\r
10322                                 01120   EXTERNAL UTDSP\r
10323                                 01130    XWD 4400+DVDIR+DVIN+DVOUT,154403\r
10324                                 01140    0\r
10325                                 01150    0\r
10326                                 01160    0\r
10327                                 01170    0\r
10328                                 01180   XP UFREE,.-ZZ   ;NEXT FREE BLOCK NO.\r
10329                                 01190    0\r
10330                                 01200    XP UDIR,.-ZZ   ;LINK TO DIRECTORY IN DATA BLOCK\r
10331                                 01210    IFE DTSIZ,<    EXP DIRBUF\r
10332                                 01220   >\r
10333                                 01230   IFN DTSIZ,<     EXP DTDIR+200*<DTCNUM-1>\r
10334                                 01240   >\r
10335                                 01250   >\r
10336 \r
10337 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 6\r
10338         MAXIMAL CONFIGURATION\r
10339 \r
10340 \r
10341 \r
10342                                 01300   ;LINE PRINTER DEVICE DTA BLOCK\r
10343 \r
10344                                 01320   DEFINE LPTDDB (A,B,C)\r
10345                                 01330   <INTERNAL LPTDB,LPTDAT,LPTCHR,LPTIOS,LPTSER,LPTMOD\r
10346                                 01340   INTERNAL LPTBUF,LPTPTR,LPTADR,LPTSV1\r
10347                                 01350   EXTERNAL LPTDSP\r
10348                                 01360   \r
10349                                 01370   LPTDB:\r
10350                                 01380   LPTDAT:   SIXBIT /LPT/\r
10351                                 01390   LPTCHR:   XWD A'CHN*PICHN,32\r
10352                                 01400   LPTIOS:   0\r
10353                                 01410   LPTSER:   XWD C,LPTDSP\r
10354                                 01420   LPTMOD:   XWD 0+DVOUT,3\r
10355                                 01430    0\r
10356                                 01440   LPTBUF:   0\r
10357                                 01450   LPTPTR:   0\r
10358                                 01460   LPTADR:   XWD PROG,0\r
10359                                 01470   LPTSV1:   0\r
10360                                 01480   \r
10361                                 01490   XP LPTCLB,LPTCHN+200  ;PI CHANNEL AND BUSY FLAG\r
10362                                 01500   XP LPTCHB,11*LPTCHN ;LINE PRINTER ERROR AND DATA CHANNELS\r
10363                                 01510   >\r
10364 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 7\r
10365         MAXIMAL CONFIGURATION\r
10366 \r
10367 \r
10368 \r
10369                                 01550   ;CARD READER DEVICE DATA BLOCK\r
10370 \r
10371                                 01570   DEFINE CDRDDB (A,B,C)\r
10372                                 01580   <INTERNAL CDRDB,CDRDAT,CRDIS\r
10373                                 01590   EXTERNAL CDRDSP\r
10374                                 01600   \r
10375                                 01610   CDRDB:\r
10376                                 01620   CDRDAT:   SIXBIT /CDR/\r
10377                                 01630    XWD A'CHN*PICHN,34 ;LONG ENOUGHT FOR BINARY CARDS\r
10378                                 01640    0\r
10379                                 01650    XWD C,CDRDSP\r
10380                                 01660    XWD DVCDR+1400+DVIN,14403\r
10381                                 01670    0\r
10382                                 01680    0\r
10383                                 01690    XWD PROG,0\r
10384                                 01700    0\r
10385                                 01710    0\r
10386                                 01720   CRDIS:    JRST .\r
10387                                 01730   >\r
10388 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 8\r
10389         MAXIMAL CONFIGURATION\r
10390 \r
10391 \r
10392 \r
10393                                 01770   ;PAPER TAPE READER DEVICE DATA BLOCK\r
10394 \r
10395                                 01790   DEFINE PTRDDB (A,B,C)\r
10396                                 01800   <INTERNAL PTRDB,PTRDAT,PTRCHR,PTRIOS,PTRSER\r
10397                                 01810   INTERNAL PTRMOD,PTRBUF,PTRADR,PTRPTR,PTRCTR,PTRSVC,PTRSV1\r
10398                                 01820   EXTERNAL PTRDSP\r
10399                                 01830   \r
10400                                 01840   PTRDB:\r
10401                                 01850   PTRDAT:   SIXBIT /PTR/\r
10402                                 01860   PTRCHR:   XWD A'CHN*PICHN,41\r
10403                                 01870   PTRIOS:   0\r
10404                                 01880   PTRSER:   XWD C,PTRDSP\r
10405                                 01890   PTRMOD:   XWD 1000+DVIN,14403\r
10406                                 01900    0\r
10407                                 01910   PTRBUF:   0\r
10408                                 01920   PTRADR:   XWD PROG,0\r
10409                                 01930   PTRPTR:   0\r
10410                                 01940   PTRCTR:   0\r
10411                                 01950   PTRSVC:   0\r
10412                                 01960   PTRSV1:   0\r
10413                                 01970   >\r
10414 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 9\r
10415         MAXIMAL CONFIGURATION\r
10416 \r
10417 \r
10418 \r
10419                                 02010   ;PAPER TAPE PUNCH DEVICE DATA BLOCK\r
10420 \r
10421                                 02030   DEFINE PTPDDB (A,B,C)\r
10422                                 02040   <INTERNAL PTPDB,PTPDAT,PTPCHR,PTPIOS,PTPSER,PTPMOD,PTPBUF\r
10423                                 02050   INTERNAL PTPPTR,PTPADR,PTPCTR,PTPCNT,PTPCHA,PTPSIO\r
10424                                 02060   EXTERNAL PTPDSP\r
10425                                 02070   \r
10426                                 02080   PTPDB:\r
10427                                 02090   PTPDAT:   SIXBIT /PTP/\r
10428                                 02100   PTPCHR:   XWD A'CHN*PICHN,41\r
10429                                 02110   PTPIOS:   0\r
10430                                 02120   PTPSER:   XWD C,PTPDSP\r
10431                                 02130   PTPMOD:   XWD 1000+DVOUT,14403\r
10432                                 02140    0\r
10433                                 02150   PTPBUF:   0\r
10434                                 02160   PTPPTR:   0\r
10435                                 02170   PTPADR:   XWD PROG,0\r
10436                                 02180   PTPCTR:   0\r
10437                                 02190   PTPCNT:   0\r
10438                                 02200   PTPCHA:   0\r
10439                                 02210   PTPSIO:   0\r
10440                                 02220   >\r
10441 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 10\r
10442         MAXIMAL CONFIGURATION\r
10443 \r
10444 \r
10445 \r
10446                                 02260   ;GENERATE DEVICE DATA BLOCKS NEEDED FOR THIS CONFIGURATION\r
10447 \r
10448                                 02280   DEFINE ASSOC (A,B,C)\r
10449                                 02290   <\r
10450                                 02300   IRP C,<\r
10451                                 02310             ;DEFINE FORWARD LINL SYMBOL\r
10452                                 02320    LINK\r
10453                                 02330   ;\r
10454                                 02340   ;\r
10455                                 02350   ;\r
10456                                 02360    A'DDB A,B,C\r
10457                                 02370   \r
10458                                 02380   C=0       ;SET LINK TO 0(IN CASE THIS IS LAST DDB)\r
10459                                 02390   DEFINE LINK\r
10460                                 02400   <C=.>\r
10461                                 02410   >\r
10462                                 02420   >\r
10463 \r
10464                                 02440   INTERNAL DEVLST\r
10465 \r
10466         000000' 000001' 000000  02460   DEVLST:   XWD FIRDB,0           ;BEGINNING OF DEVICE DATA BLOCK CHAIN\r
10467 \r
10468                                 02480   DEFINE LINK\r
10469                                 02490   <FIRDB=.>\r
10470 \r
10471                                 02510             SYSTEM^       000001' 646471  200000           SIXBIT /TTY0/\r
10472         000002' 000300  000021           XWD SCNCHN*PICHN,STTYBF+1      ;LONG ENOUGH FOR PRINTING\r
10473         000003' 000000  000000           0\r
10474         000004' 000035' 000000*          XWD TTY0,TTYDSP\r
10475         000005' 000013  000003           XWD DVTTY+DVIN+DVOUT,3\r
10476         000006' 000000  000000           0\r
10477         000007' 000000  000000           0\r
10478         000010' 000007  000000           XWD PROG,0\r
10479         000011' 000007  000000           XWD PROG,0\r
10480         000012' 000000  000000           0\r
10481         000013' 000000  000000           0\r
10482         000014' 000000  000000           0\r
10483         000035' 646471  210000           SIXBIT /TTY1/\r
10484         000036' 000300  000021           XWD SCNCHN*PICHN,STTYBF+1      ;LONG ENOUGH FOR PRINTING\r
10485         000037' 000000  000000           0\r
10486         000040' 000071' 000004*          XWD TTY1,TTYDSP\r
10487         000041' 000013  000003           XWD DVTTY+DVIN+DVOUT,3\r
10488         000042' 000000  000000           0\r
10489         000043' 000000  000000           0\r
10490         000044' 000007  000000           XWD PROG,0\r
10491         000045' 000007  000000           XWD PROG,0\r
10492         000046' 000000  000000           0\r
10493         000047' 000000  000000           0\r
10494         000050' 000000  000000           0\r
10495         000071' 446441  200000           SIXBIT /DTA0/\r
10496         000072' 000420  000201           XWD IORET+DTCCHN*PICHN,<DTCNUM-1>*10000+201\r
10497 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 10-1\r
10498         MAXIMAL CONFIGURATION\r
10499 \r
10500         000073' 000000  000000           0\r
10501         000074' 000104' 000000*          XWD DTA0,UTDSP\r
10502         000075' 004407  154403           XWD 4400+DVDIR+DVIN+DVOUT,154403\r
10503         000076' 000000  000000           0\r
10504         000077' 000000  000000           0\r
10505         000100' 000000  000000           0\r
10506         000101' 000000  000000           0\r
10507         000102' 000000  000000           0\r
10508         000103' 000000  000267'         IFN DTSIZ,<     EXP DTDIR+200*<DTCNUM-1>\r
10509         000104' 446441  210000           SIXBIT /DTA1/\r
10510         000105' 000420  010201           XWD IORET+DTCCHN*PICHN,<DTCNUM-1>*10000+201\r
10511         000106' 000000  000000           0\r
10512         000107' 000117' 000074*          XWD DTA1,UTDSP\r
10513         000110' 004407  154403           XWD 4400+DVDIR+DVIN+DVOUT,154403\r
10514         000111' 000000  000000           0\r
10515         000112' 000000  000000           0\r
10516         000113' 000000  000000           0\r
10517         000114' 000000  000000           0\r
10518         000115' 000000  000000           0\r
10519         000116' 000000  000467'         IFN DTSIZ,<     EXP DTDIR+200*<DTCNUM-1>\r
10520         000117' 446441  220000           SIXBIT /DTA2/\r
10521         000120' 000420  020201           XWD IORET+DTCCHN*PICHN,<DTCNUM-1>*10000+201\r
10522         000121' 000000  000000           0\r
10523         000122' 000132' 000107*          XWD DTA2,UTDSP\r
10524         000123' 004407  154403           XWD 4400+DVDIR+DVIN+DVOUT,154403\r
10525         000124' 000000  000000           0\r
10526         000125' 000000  000000           0\r
10527         000126' 000000  000000           0\r
10528         000127' 000000  000000           0\r
10529         000130' 000000  000000           0\r
10530         000131' 000000  000667'         IFN DTSIZ,<     EXP DTDIR+200*<DTCNUM-1>\r
10531         000132' 446441  230000           SIXBIT /DTA3/\r
10532         000133' 000420  030201           XWD IORET+DTCCHN*PICHN,<DTCNUM-1>*10000+201\r
10533         000134' 000000  000000           0\r
10534         000135' 000145' 000122*          XWD DTA3,UTDSP\r
10535         000136' 004407  154403           XWD 4400+DVDIR+DVIN+DVOUT,154403\r
10536         000137' 000000  000000           0\r
10537         000140' 000000  000000           0\r
10538         000141' 000000  000000           0\r
10539         000142' 000000  000000           0\r
10540         000143' 000000  000000           0\r
10541         000144' 000000  001067'         IFN DTSIZ,<     EXP DTDIR+200*<DTCNUM-1>\r
10542         000145' 556441  200000          MTA0DB:   SIXBIT /MTA0/\r
10543         000146' 000220  000201           XWD IORET+MTCCHN*PICHN,<MTCNUM-1>*10000+201\r
10544         000147' 000000  000000           0\r
10545         000150' 000156' 000000*          XWD MTA0,MTDISP\r
10546         000151' 004423  154403           XWD 4400+DVMTA+DVIN+DVOUT,154403\r
10547         000152' 000000  000000           0\r
10548         000153' 000000  000000           0\r
10549         000154' 000007  000000           XWD PROG,0\r
10550         000155' 000007  000000           XWD PROG,0\r
10551         000156' 556441  210000          MTA1DB:   SIXBIT /MTA1/\r
10552         000157' 000220  010201           XWD IORET+MTCCHN*PICHN,<MTCNUM-1>*10000+201\r
10553 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 10-2\r
10554         MAXIMAL CONFIGURATION\r
10555 \r
10556         000160' 000000  000000           0\r
10557         000161' 000167' 000150*          XWD MTA1,MTDISP\r
10558         000162' 004423  154403           XWD 4400+DVMTA+DVIN+DVOUT,154403\r
10559         000163' 000000  000000           0\r
10560         000164' 000000  000000           0\r
10561         000165' 000007  000000           XWD PROG,0\r
10562         000166' 000007  000000           XWD PROG,0\r
10563         000167' 556441  220000          MTA2DB:   SIXBIT /MTA2/\r
10564         000170' 000220  020201           XWD IORET+MTCCHN*PICHN,<MTCNUM-1>*10000+201\r
10565         000171' 000000  000000           0\r
10566         000172' 000200' 000161*          XWD MTA2,MTDISP\r
10567         000173' 004423  154403           XWD 4400+DVMTA+DVIN+DVOUT,154403\r
10568         000174' 000000  000000           0\r
10569         000175' 000000  000000           0\r
10570         000176' 000007  000000           XWD PROG,0\r
10571         000177' 000007  000000           XWD PROG,0\r
10572         000200' 556441  230000          MTA3DB:   SIXBIT /MTA3/\r
10573         000201' 000220  030201           XWD IORET+MTCCHN*PICHN,<MTCNUM-1>*10000+201\r
10574         000202' 000000  000000           0\r
10575         000203' 000211' 000172*          XWD MTA3,MTDISP\r
10576         000204' 004423  154403           XWD 4400+DVMTA+DVIN+DVOUT,154403\r
10577         000205' 000000  000000           0\r
10578         000206' 000000  000000           0\r
10579         000207' 000007  000000           XWD PROG,0\r
10580         000210' 000007  000000           XWD PROG,0\r
10581         000211' 546064  000000          LPTDAT:   SIXBIT /LPT/\r
10582         000212' 000500  000032          LPTCHR:   XWD LPTCHN*PICHN,32\r
10583         000213' 000000  000000          LPTIOS:   0\r
10584         000214' 000223' 000000*         LPTSER:   XWD LPT,LPTDSP\r
10585         000215' 000001  000003          LPTMOD:   XWD 0+DVOUT,3\r
10586         000216' 000000  000000           0\r
10587         000217' 000000  000000          LPTBUF:   0\r
10588         000220' 000000  000000          LPTPTR:   0\r
10589         000221' 000007  000000          LPTADR:   XWD PROG,0\r
10590         000222' 000000  000000          LPTSV1:   0\r
10591         000223' 606460  000000          PTPDAT:   SIXBIT /PTP/\r
10592         000224' 000500  000041          PTPCHR:   XWD PTPCHN*PICHN,41\r
10593         000225' 000000  000000          PTPIOS:   0\r
10594         000226' 000240' 000000*         PTPSER:   XWD PTP,PTPDSP\r
10595         000227' 001001  014403          PTPMOD:   XWD 1000+DVOUT,14403\r
10596         000230' 000000  000000           0\r
10597         000231' 000000  000000          PTPBUF:   0\r
10598         000232' 000000  000000          PTPPTR:   0\r
10599         000233' 000007  000000          PTPADR:   XWD PROG,0\r
10600         000234' 000000  000000          PTPCTR:   0\r
10601         000235' 000000  000000          PTPCNT:   0\r
10602         000236' 000000  000000          PTPCHA:   0\r
10603         000237' 000000  000000          PTPSIO:   0\r
10604         000240' 606462  000000          PTRDAT:   SIXBIT /PTR/\r
10605         000241' 000500  000041          PTRCHR:   XWD PTRCHN*PICHN,41\r
10606         000242' 000000  000000          PTRIOS:   0\r
10607         000243' 000254' 000000*         PTRSER:   XWD PTR,PTRDSP\r
10608         000244' 001002  014403          PTRMOD:   XWD 1000+DVIN,14403\r
10609 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 10-3\r
10610         MAXIMAL CONFIGURATION\r
10611 \r
10612         000245' 000000  000000           0\r
10613         000246' 000000  000000          PTRBUF:   0\r
10614         000247' 000007  000000          PTRADR:   XWD PROG,0\r
10615         000250' 000000  000000          PTRPTR:   0\r
10616         000251' 000000  000000          PTRCTR:   0\r
10617         000252' 000000  000000          PTRSVC:   0\r
10618         000253' 000000  000000          PTRSV1:   0\r
10619         000254' 434462  000000          CDRDAT:   SIXBIT /CDR/\r
10620         000255' 000500  000034           XWD CDRCHN*PICHN,34 ;LONG ENOUGHT FOR BINARY CARDS\r
10621         000256' 000000  000000           0\r
10622         000257' 000000  000000*          XWD CDR,CDRDSP\r
10623         000260' 101402  014403           XWD DVCDR+1400+DVIN,14403\r
10624         000261' 000000  000000           0\r
10625         000262' 000000  000000           0\r
10626         000263' 000007  000000           XWD PROG,0\r
10627         000264' 000000  000000           0\r
10628         000265' 000000  000000           0\r
10629         000266' 254000  000266'         CRDIS:    JRST .\r
10630 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 11\r
10631         MAXIMAL CONFIGURATION\r
10632 \r
10633 \r
10634 \r
10635         000267'                 02550             LIT\r
10636 \r
10637                                 02570             IFE DTSIZ,<           DIRBUF: BLOCK 200\r
10638                                 02580    INTERNAL DIRBUF\r
10639                                 02590   >\r
10640 \r
10641         000267'                 02610   IFN DTSIZ,<DTDIR:       BLOCK DTCNUM*200\r
10642                                 02620   INTERNAL DTDIR\r
10643                                 02630   >\r
10644 \r
10645                                 02650             END,\r
10646 \r
10647 NO ERRORS DETECTED\r
10648 \r
10649 PROGRAM BREAK IS 001267\r
10650 \r
10651 10K CORE USED\r
10652 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 12\r
10653         SYMBOL TABLE\r
10654 \r
10655                 000376  \r
10656 A               000000  INT\r
10657 AC1             000015  INT\r
10658 AC2             000016  INT\r
10659 AC3             000017  INT\r
10660 AL              000001  INT\r
10661 APRBIT          000002  \r
10662 APRCHN          000006  \r
10663 ASSCON          400000  INT\r
10664 ASSPRG          200000  INT\r
10665 B               000014  INT\r
10666 BUFPNT          000012  INT\r
10667 BUFWRD          000013  INT\r
10668 CDR             000000  \r
10669 CDRCHN          000005  \r
10670 CDRDAT          000254' INT\r
10671 CDRDB           000254' INT\r
10672 CDRDSP          000257' EXT\r
10673 CH1N            000000  \r
10674 CH1PDN          000000  \r
10675 CH2N            000011  \r
10676 CH2PDN          000020  \r
10677 CH3N            000011  \r
10678 CH3PDN          000020  \r
10679 CH4N            000011  \r
10680 CH4PDN          000020  \r
10681 CH5N            000011  \r
10682 CH5PDN          000020  \r
10683 CH6N            000017  \r
10684 CH6PDN          000020  \r
10685 CH7N            000000  \r
10686 CH7PDN          000000  \r
10687 CLKOFF          001006  INT\r
10688 CLOSB           002000  INT\r
10689 CLSIN           000002  INT\r
10690 CLSOUT          000001  INT\r
10691 CRDIS           000266' INT\r
10692 CTYCHN          000003  \r
10693 D               000017  INT\r
10694 DAT             000005  INT\r
10695 DCL             000001  INT\r
10696 DCW             020000  INT\r
10697 DDI             000007  INT\r
10698 DDO             000006  INT\r
10699 DDTMEM          000037  INT\r
10700 DDTSYM          000036  INT\r
10701 DEN             000004  INT\r
10702 DEVADR          000007  INT\r
10703 DEVBUF          000006  INT\r
10704 DEVCHR          000001  INT\r
10705 DEVCTR          000011  INT\r
10706 DEVDAT          000006  INT\r
10707 DEVIAD          000007  INT\r
10708 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 12-1\r
10709         SYMBOL TABLE\r
10710 \r
10711 DEVIOS          000002  INT\r
10712 DEVLOG          000005  INT\r
10713 DEVLST          000000' INT\r
10714 DEVMOD          000004  INT\r
10715 DEVNAM          000000  INT\r
10716 DEVOAD          000010  INT\r
10717 DEVPTR          000010  INT\r
10718 DEVSER          000003  INT\r
10719 DGF             000012  INT\r
10720 DIN             000003  INT\r
10721 DLK             000005  INT\r
10722 DOU             000002  INT\r
10723 DR              000016  INT\r
10724 DRL             000000  INT\r
10725 DSI             000011  INT\r
10726 DSO             000010  INT\r
10727 DTA0            000104' \r
10728 DTA0DB          000071' INT\r
10729 DTA1            000117' \r
10730 DTA1DB          000104' INT\r
10731 DTA2            000132' \r
10732 DTA2DB          000117' INT\r
10733 DTA3            000145' \r
10734 DTA3DB          000132' INT\r
10735 DTCCHN          000004  \r
10736 DTCNUM          000004  \r
10737 DTDIR           000267' INT\r
10738 DTSIZ           000001  \r
10739 DTW             040000  INT\r
10740 DVAVAL          000040  INT\r
10741 DVCDR           100000  INT\r
10742 DVDIR           000004  INT\r
10743 DVDIRI          400000  INT\r
10744 DVIN            000002  INT\r
10745 DVLPT           040000  INT\r
10746 DVMTA           000020  INT\r
10747 DVOUT           000001  INT\r
10748 DVTTY           000010  INT\r
10749 ENTRB           020000  INT\r
10750 FIRDB           000001' \r
10751 FSNCHN          000303  INT\r
10752 I               000010  INT\r
10753 IB              000013  INT\r
10754 IBUFB           200000  INT\r
10755 INITB           400000  INT\r
10756 INPB            010000  INT\r
10757 IO              000020  INT\r
10758 IOACT           010000  INT\r
10759 IOBEG           000002  INT\r
10760 IOBKTL          040000  INT\r
10761 IOCON           000040  INT\r
10762 IODEND          020000  INT\r
10763 IODERR          200000  INT\r
10764 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 12-2\r
10765         SYMBOL TABLE\r
10766 \r
10767 IODISC          400000  INT\r
10768 IODONE          400000  INT\r
10769 IODTER          100000  INT\r
10770 IOEND           000040  INT\r
10771 IOFST           000004  INT\r
10772 IOIMPM          400000  INT\r
10773 IONRCK          000100  INT\r
10774 IORDEL          000100  INT\r
10775 IORET           000020  INT\r
10776 IOS             000000  INT\r
10777 IOSTRT          000010  INT\r
10778 IOUSE           400000  INT\r
10779 IOW             000001  INT\r
10780 IOWC            000020  INT\r
10781 IOWS            400000  INT\r
10782 ITEM            000004  INT\r
10783 JBFADR          000000  INT\r
10784 JBFCTR          000002  INT\r
10785 JBFPTR          000001  INT\r
10786 JBUF            000005  INT\r
10787 JDAT            000011  INT\r
10788 JERR            002000  INT\r
10789 JIOW            100000  INT\r
10790 JNA             004000  INT\r
10791 LOOKB           040000  INT\r
10792 LPT             000223' \r
10793 LPTADR          000221' INT\r
10794 LPTBUF          000217' INT\r
10795 LPTCHB          000055  INT\r
10796 LPTCHN          000005  \r
10797 LPTCHR          000212' INT\r
10798 LPTCLB          000205  INT\r
10799 LPTDAT          000211' INT\r
10800 LPTDB           000211' INT\r
10801 LPTDSP          000214' EXT\r
10802 LPTIOS          000213' INT\r
10803 LPTMOD          000215' INT\r
10804 LPTPTR          000220' INT\r
10805 LPTSER          000214' INT\r
10806 LPTSV1          000222' INT\r
10807 MAXIMA          000000  INT\r
10808 MLTTYL  777777  777776  INT\r
10809 MTA0            000156' \r
10810 MTA0DB          000145' INT\r
10811 MTA1            000167' \r
10812 MTA1DB          000156' INT\r
10813 MTA2            000200' \r
10814 MTA2DB          000167' INT\r
10815 MTA3            000211' \r
10816 MTA3DB          000200' INT\r
10817 MTCCHN          000002  \r
10818 MTCNUM          000004  \r
10819 MTDISP          000203' EXT\r
10820 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 12-3\r
10821         SYMBOL TABLE\r
10822 \r
10823 MTTYLN  777777  777776  INT\r
10824 MTW             010000  INT\r
10825 OBUFB           100000  INT\r
10826 OUTPB           004000  INT\r
10827 PDP             000003  INT\r
10828 PICHN           000100  INT\r
10829 PICLK           004202  INT\r
10830 PIOFF           000400  INT\r
10831 PION            000200  INT\r
10832 PROG            000007  INT\r
10833 PTP             000240' \r
10834 PTPADR          000233' INT\r
10835 PTPBUF          000231' INT\r
10836 PTPCHA          000236' INT\r
10837 PTPCHN          000005  \r
10838 PTPCHR          000224' INT\r
10839 PTPCNT          000235' INT\r
10840 PTPCTR          000234' INT\r
10841 PTPDAT          000223' INT\r
10842 PTPDB           000223' INT\r
10843 PTPDSP          000226' EXT\r
10844 PTPIOS          000225' INT\r
10845 PTPMOD          000227' INT\r
10846 PTPPTR          000232' INT\r
10847 PTPSER          000226' INT\r
10848 PTPSIO          000237' INT\r
10849 PTR             000254' \r
10850 PTRADR          000247' INT\r
10851 PTRBUF          000246' INT\r
10852 PTRCHN          000005  \r
10853 PTRCHR          000241' INT\r
10854 PTRCTR          000251' INT\r
10855 PTRDAT          000240' INT\r
10856 PTRDB           000240' INT\r
10857 PTRDSP          000243' EXT\r
10858 PTRIOS          000242' INT\r
10859 PTRMOD          000244' INT\r
10860 PTRPTR          000250' INT\r
10861 PTRSER          000243' INT\r
10862 PTRSV1          000253' INT\r
10863 PTRSVC          000252' INT\r
10864 RUN             200000  INT\r
10865 RUNABL          204000  INT\r
10866 SCNCHN          000003  \r
10867 SCNLIN          000001  \r
10868 STTYB1          000021  INT\r
10869 STTYBF          000020  INT\r
10870 TAC             000001  INT\r
10871 TAC1            000002  INT\r
10872 TCONLN          000001  INT\r
10873 TEM             000010  INT\r
10874 TSCNLN          000000  INT\r
10875 TTY0            000035' \r
10876 \r\fIOINI2 - IO INITIALIZATION PART 2                 PAGE 12-4\r
10877         SYMBOL TABLE\r
10878 \r
10879 TTY0DB          000001' INT\r
10880 TTY1            000071' \r
10881 TTY1DB          000035' INT\r
10882 TTYATC          020000  INT\r
10883 TTYBFE          000033  INT\r
10884 TTYBM1          000013  INT\r
10885 TTYBUF          000014  INT\r
10886 TTYCTR          000012  INT\r
10887 TTYDSP          000040' EXT\r
10888 TTYLEN          000002  INT\r
10889 TTYLST          000001' INT\r
10890 TTYPTR          000011  INT\r
10891 TTYSAV          000013  INT\r
10892 TTYUSE          010000  INT\r
10893 UDIR            000012  INT\r
10894 UFREE           000011  INT\r
10895 USRMOD          010000  INT\r
10896 UTDSP           000135' EXT\r
10897 UUO             000014  INT\r
10898 ZZ              000132' \r
10899 \f            JJJ         OOOOOOOOO         BBBBBBBBBBBB         DDDDDDDDDDDD            AAAAAAAAA         TTTTTTTTTTTTTTT\r
10900             JJJ         OOOOOOOOO         BBBBBBBBBBBB         DDDDDDDDDDDD            AAAAAAAAA         TTTTTTTTTTTTTTT\r
10901             JJJ         OOOOOOOOO         BBBBBBBBBBBB         DDDDDDDDDDDD            AAAAAAAAA         TTTTTTTTTTTTTTT\r
10902             JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
10903             JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
10904             JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
10905             JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
10906             JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
10907             JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
10908             JJJ      OOO         OOO      BBBBBBBBBBBB         DDD         DDD      AAA         AAA            TTT      \r
10909             JJJ      OOO         OOO      BBBBBBBBBBBB         DDD         DDD      AAA         AAA            TTT      \r
10910             JJJ      OOO         OOO      BBBBBBBBBBBB         DDD         DDD      AAA         AAA            TTT      \r
10911 JJJ         JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAAAAAAAAAAAAAA            TTT      \r
10912 JJJ         JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAAAAAAAAAAAAAA            TTT      \r
10913 JJJ         JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAAAAAAAAAAAAAA            TTT      \r
10914 JJJ         JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
10915 JJJ         JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
10916 JJJ         JJJ      OOO         OOO      BBB         BBB      DDD         DDD      AAA         AAA            TTT      \r
10917    JJJJJJJJJ            OOOOOOOOO         BBBBBBBBBBBB         DDDDDDDDDDDD         AAA         AAA            TTT      \r
10918    JJJJJJJJJ            OOOOOOOOO         BBBBBBBBBBBB         DDDDDDDDDDDD         AAA         AAA            TTT      \r
10919    JJJJJJJJJ            OOOOOOOOO         BBBBBBBBBBBB         DDDDDDDDDDDD         AAA         AAA            TTT      \r
10920 \r
10921 \r
10922 \r
10923 \r
10924 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
10925 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
10926 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
10927 LLL                  SSS                        TTT                                                                     \r
10928 LLL                  SSS                        TTT                                                                     \r
10929 LLL                  SSS                        TTT                                                                     \r
10930 LLL                  SSS                        TTT                                                                     \r
10931 LLL                  SSS                        TTT                                                                     \r
10932 LLL                  SSS                        TTT                                                                     \r
10933 LLL                     SSSSSSSSS               TTT                                                                     \r
10934 LLL                     SSSSSSSSS               TTT                                                                     \r
10935 LLL                     SSSSSSSSS               TTT                                                                     \r
10936 LLL                              SSS            TTT                                                                     \r
10937 LLL                              SSS            TTT                                                                     \r
10938 LLL                              SSS            TTT                                                                     \r
10939 LLL                              SSS            TTT                                                                     \r
10940 LLL                              SSS            TTT                                                                     \r
10941 LLL                              SSS            TTT                                                                     \r
10942 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
10943 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
10944 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
10945 \r
10946 \r
10947 \r
10948 \r
10949 Request created: 24-April-1978  11:23:08\r
10950 File: DSKB1 :JOBDAT.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:22
10951 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2357 \r
10952 File will be deleted after printing\r
10953 \f\rJOBDAT - JOB DATA AREA ASSIGNMENTS                 PAGE 1\r
10954 \r
10955 \r
10956                                 00010   TITLE JOBDAT - JOB DATA AREA ASSIGNMENTS\r
10957 \r
10958                                 00030             DEFINE BLK (A,B)\r
10959                                 00040   <JOBPRO=B\r
10960                                 00050   A=0\r
10961                                 00060   ENTRY A\r
10962                                 00070   DEFINE BLK (C,D)\r
10963                                 00080   <C=JOBPRO\r
10964                                 00090   JOBPRO=JOBPRO+D\r
10965                                 00100   ENTRY C>>\r
10966 \r
10967                                 00120             BLK JOBAC,20          ;SYSTEM USE AC STORAGE\r
10968                                 00130             BLK JOBDAC,20         ;USER'S AC STORAGE WHILE JOB IS INACTIV\r
10969                         000157  00140   JOBDHI=JOBDAT+17    ;HIGHEST AC SAVED WHILE INACTIVE\r
10970                                 00150             BLK JOBUUO,1          ;UUO SAVE AND TRAP LOCATIONS\r
10971                                 00160             BLK JOB41,1           ;UUO JSR LOCATION\r
10972                                 00170             BLK JOBPC,1           ;BITS 0-5=APR FLAGS, C(RH)=PC\r
10973                                 00180             BLK JOBPDP,1          ;PUSH DOWN POINTER FOR SYSTEM USE\r
10974                         000043  00190   JOBPRT=JOBPDP                   ;FIRST LOC PROTECTED FROM ITNERRUPT SER\r
10975                         000044  00200   JOBPR1=JOBPRT+1                 ;FIRST LOC+1\r
10976                                 00210             BLK JOBREL,1          ;C(LH)=0, C(RH)=RELOCATION ADDRESS\r
10977                                 00220             BLK JOBUXT,1          ;EXIT FROM UUO AT BREAK\r
10978                                 00230             BLK JOBLEV,1          ;C(40) WHEN INACTIVE\r
10979                                 00240             BLK JOBSAV,1          ;TEMPOARY STORAGE FOR UOO HANDLER\r
10980                                 00250             BLK JOBPOV,1          ;PUSH DOWN OVERFLOW TRAP\r
10981                                 00260             BLK JOBTEM,1          ;(UNUSED)TEMPORARY SYSTEM STORAGE\r
10982                                 00270             BLK JOBTM1,1          ;"\r
10983                                 00280             BLK JOBINF,1          ;UNUSED\r
10984                                 00290             BLK JOBJDA,20         ;JOB IO DEVICE CHANNEL ASSIGNMENTS\r
10985                                 00300             BLK JOBDDT,1          ;ADDRESS OF USER'S DDT\r
10986                         000073  00310   JOBPFI=JOBDDT-1                 ;LAST LOC PROTECTED FROM IO SERVICE\r
10987                         000074  00320   JOBPFU=JOBDDT                   ;LAST LOC PROTECTED FROM USER\r
10988                                 00330             BLK JOBCDP,1          ;(UNUSED)POINTER TO COMMAND STRING\r
10989                                 00340             BLK JOBTRP,20         ;(UNUSED)TRAP LOCATIONS\r
10990                                 00350             BLK JOBSYM,1          ;SYMBOL TABLE POINTER\r
10991                                 00360             BLK JOBUSY,1          ;(UNUSED)POINTER TO UNDEFINED SYMBOL TA\r
10992                                 00370             BLK JOBSA,1           ;C(RH)=STARTING ADDRESS\r
10993                                 00380                                   ;C(LH)=HIGHEST LOCATION USED\r
10994                                 00390             BLK JOBFF,1           ;FIRST FREE LOCATION\r
10995                         000140  00400   JOBDAT=140          ;LENGTH OF JOB DATA AREA\r
10996                         000137  00410   JOBHGH=JOBDAT-1                 ;HIGHEST LOC IN JOB DATA AREA\r
10997                         000121  00420   JOBPDL=JOBPRO-1                 ;FIRST LOC. -1 OF PD LIST\r
10998                         000122  00430   JOBPD1=JOBPDL+1                 ;FIRST LOC. IN PD LIST\r
10999                 777777  777762  00440   MJOBPD=JOBPDL-JOBHGH            ;- LENGTH OF PD LIST\r
11000                         000122  00450   JOBS41=JOBPRO                   ;PLACE WHERE SAVE-GET SAVES USER LOC 4\r
11001                         000140  00460   JOBDA=JOBDAT\r
11002                                 00470   ENTRY JOBPFI,JOBPFU,JOBPDL,JOBPRO,MJOBPD,JOBHGH\r
11003                                 00480   ENTRY JOBDHI,JOBPRT,JOBPR1,JOBDA,JOBS41,JOBPD1\r
11004 \r
11005                                 00500             END,\r
11006 \r
11007 NO ERRORS DETECTED\r
11008 \r
11009 \r\fJOBDAT - JOB DATA AREA ASSIGNMENTS                 PAGE 1-1\r
11010 \r
11011 \r
11012 PROGRAM BREAK IS 000000\r
11013 \r
11014 8K CORE USED\r
11015 \r\fJOBDAT - JOB DATA AREA ASSIGNMENTS                 PAGE 2\r
11016         SYMBOL TABLE\r
11017 \r
11018                 000046  \r
11019 JOB41           000041  ENT\r
11020 JOBAC           000000  ENT\r
11021 JOBCDP          000075  ENT\r
11022 JOBDA           000140  ENT\r
11023 JOBDAC          000020  ENT\r
11024 JOBDAT          000140  \r
11025 JOBDDT          000074  ENT\r
11026 JOBDHI          000157  ENT\r
11027 JOBFF           000121  ENT\r
11028 JOBHGH          000137  ENT\r
11029 JOBINF          000053  ENT\r
11030 JOBJDA          000054  ENT\r
11031 JOBLEV          000046  ENT\r
11032 JOBPC           000042  ENT\r
11033 JOBPD1          000122  ENT\r
11034 JOBPDL          000121  ENT\r
11035 JOBPDP          000043  ENT\r
11036 JOBPFI          000073  ENT\r
11037 JOBPFU          000074  ENT\r
11038 JOBPOV          000050  ENT\r
11039 JOBPR1          000044  ENT\r
11040 JOBPRO          000122  ENT\r
11041 JOBPRT          000043  ENT\r
11042 JOBREL          000044  ENT\r
11043 JOBS41          000122  ENT\r
11044 JOBSA           000120  ENT\r
11045 JOBSAV          000047  ENT\r
11046 JOBSYM          000116  ENT\r
11047 JOBTEM          000051  ENT\r
11048 JOBTM1          000052  ENT\r
11049 JOBTRP          000076  ENT\r
11050 JOBUSY          000117  ENT\r
11051 JOBUUO          000040  ENT\r
11052 JOBUXT          000045  ENT\r
11053 MJOBPD  777777  777762  ENT\r
11054 \fLLL                  PPPPPPPPPPPP         TTTTTTTTTTTTTTT         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
11055 LLL                  PPPPPPPPPPPP         TTTTTTTTTTTTTTT         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
11056 LLL                  PPPPPPPPPPPP         TTTTTTTTTTTTTTT         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
11057 LLL                  PPP         PPP            TTT            SSS                  EEE                  RRR         RRR\r
11058 LLL                  PPP         PPP            TTT            SSS                  EEE                  RRR         RRR\r
11059 LLL                  PPP         PPP            TTT            SSS                  EEE                  RRR         RRR\r
11060 LLL                  PPP         PPP            TTT            SSS                  EEE                  RRR         RRR\r
11061 LLL                  PPP         PPP            TTT            SSS                  EEE                  RRR         RRR\r
11062 LLL                  PPP         PPP            TTT            SSS                  EEE                  RRR         RRR\r
11063 LLL                  PPPPPPPPPPPP               TTT               SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
11064 LLL                  PPPPPPPPPPPP               TTT               SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
11065 LLL                  PPPPPPPPPPPP               TTT               SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
11066 LLL                  PPP                        TTT                        SSS      EEE                  RRR   RRR      \r
11067 LLL                  PPP                        TTT                        SSS      EEE                  RRR   RRR      \r
11068 LLL                  PPP                        TTT                        SSS      EEE                  RRR   RRR      \r
11069 LLL                  PPP                        TTT                        SSS      EEE                  RRR      RRR   \r
11070 LLL                  PPP                        TTT                        SSS      EEE                  RRR      RRR   \r
11071 LLL                  PPP                        TTT                        SSS      EEE                  RRR      RRR   \r
11072 LLLLLLLLLLLLLLL      PPP                        TTT            SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
11073 LLLLLLLLLLLLLLL      PPP                        TTT            SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
11074 LLLLLLLLLLLLLLL      PPP                        TTT            SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
11075 \r
11076 \r
11077 \r
11078 \r
11079 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11080 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11081 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11082 LLL                  SSS                        TTT                                                                     \r
11083 LLL                  SSS                        TTT                                                                     \r
11084 LLL                  SSS                        TTT                                                                     \r
11085 LLL                  SSS                        TTT                                                                     \r
11086 LLL                  SSS                        TTT                                                                     \r
11087 LLL                  SSS                        TTT                                                                     \r
11088 LLL                     SSSSSSSSS               TTT                                                                     \r
11089 LLL                     SSSSSSSSS               TTT                                                                     \r
11090 LLL                     SSSSSSSSS               TTT                                                                     \r
11091 LLL                              SSS            TTT                                                                     \r
11092 LLL                              SSS            TTT                                                                     \r
11093 LLL                              SSS            TTT                                                                     \r
11094 LLL                              SSS            TTT                                                                     \r
11095 LLL                              SSS            TTT                                                                     \r
11096 LLL                              SSS            TTT                                                                     \r
11097 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11098 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11099 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11100 \r
11101 \r
11102 \r
11103 \r
11104 Request created: 24-April-1978  11:23:08\r
11105 File: DSKB1 :LPTSER.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:22
11106 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2354 \r
11107 File will be deleted after printing\r
11108 \f\rLPTSER - LINE PRINTER SERVICE ROUTINE                 PAGE 1\r
11109         8-4-65\r
11110 \r
11111                                 00010           XLIST\r
11112                                 01930          LIST\r
11113 \r\fLPTSER - LINE PRINTER SERVICE ROUTINE                 PAGE 7\r
11114         8-4-65\r
11115 \r
11116 \r
11117                                 00010   TITLE LPTSER - LINE PRINTER SERVICE ROUTINE\r
11118                                 00020   SUBTTL 8-4-65\r
11119                                 00030   INTERNAL LPTINT,LPTINI\r
11120                                 00040   EXTERNAL LPTCHN, LPTCHL, LPTRET,  OUT, WAIT1, LPTSAV, IOSET\r
11121                                 00050   EXTERNAL ADVBFE,  SETIOD,ILLINP,LPTCHB,LPTCLB\r
11122 \r
11123                                 00070   ;DEVICE DATA BLOCK LINKAGE\r
11124                                 00080   EXTERNAL LPTDAT,LPTCHR,LPTIOS,LPTSER,LPTMOD,LPTBUF,LPTPTR\r
11125                                 00090   EXTERNAL LPTADR,LPTSV1\r
11126                                 00100   ENTRY LPTDSP\r
11127 \r\fLPTSER - LINE PRINTER SERVICE ROUTINE                 PAGE 2\r
11128         8-4-65\r
11129 \r
11130 \r
11131 \r
11132                                 00140   ,LPT PARAMETER ASSIGNMENTS\r
11133 \r
11134                                 00160   ,   LPT CONTROL REGISTER\r
11135                         002000  00170             LPTCLR=2000           ;CLEAR BUFFER\r
11136                         000100  00180             LPTDON=100            ;DONE FLAG\r
11137                         000400  00190             LPTERR=400            ;ERROR FLAG\r
11138                         001000  00200             LPTLOV=1000           ;LINE OVERFLOW\r
11139 \r
11140                                 00220   ,   SPECIAL IO STATUS WORD ASSIGNMENTS\r
11141                         100000  00230             LPTADV=100000\r
11142 \r
11143                                 00250   REPEAT 0,<\r
11144                                 00260   ,   LPT DATABLOCK\r
11145                                 00270   \r
11146                                 00280   LPTDAT:   SIXBIT .LPT.\r
11147                                 00290   LPTCHR:   32\r
11148                                 00300   LPTIOS:   0\r
11149                                 00310   LPTSER:   EXP LPTDSP\r
11150                                 00320   LPTMOD:   XWD 0,3\r
11151                                 00330    0\r
11152                                 00340   LPTBUF:   0\r
11153                                 00350   LPTPTR:   0\r
11154                                 00360   LPTADR:   XWD PROG,0\r
11155                                 00370   LPTSV1:   0\r
11156                                 00380   >\r
11157 \r
11158                                 00400   ,  LPT SERVICE DISPATCH TABLE\r
11159 \r
11160         000000' 254000  000004' 00420   LPTDSP:   JRST LPTINI           ;RELEASE\r
11161         000001' 254000  000007' 00430             JRST LPTCLS           ;CLOSE\r
11162         000002' 254000  000013' 00440             JRST LPTOUT           ;OUTPUT\r
11163         000003' 254000  000000* 00450             JRST ILLINP                           ;INPUT\r
11164 \r
11165         000004' 712600  002000  00470   LPTINI:   CONO LPT,LPTCLR       ;LPT INITIALIZE\r
11166         000005' 513000  000034' 00480             HLLZS LPTINT\r
11167         000006' 263140  000000  00490             POPJ PDP,\r
11168 \r\fLPTSER - LINE PRINTER SERVICE ROUTINE                 PAGE 3\r
11169         8-4-65\r
11170 \r
11171 \r
11172 \r
11173         000007' 260140  000000* 00530   LPTCLS:   PUSHJ PDP,OUT         ;PRINT REMAINING BUFFERS\r
11174         000010' 260140  000000* 00540             PUSHJ PDP, WAIT1      ;WAIT FOR IOACT=0\r
11175         000011' 712540  000126' 00550             DATAO LPT,LPTTOP      ;PRINT CARRAGE RETURN, FORM FEED\r
11176         000012' 263140  000000  00560             POPJ PDP,             ;CLOSE RETURN\r
11177 \r
11178         000013' 660000  010000  00580   LPTOUT:   TRO IOS,IOACT         ;IOACT=1\r
11179         000014' 621000  400000  00590             TLZ IOS,IODISC        ;IODISC:=0\r
11180         000015' 661000  000020  00600             TLO IOS,IO            ;IO:=1\r
11181         000016' 603000  000002  00610             TLNE IOS,IOBEG        ;VIRGIN DEVICE? IOBEG:=0\r
11182         000017' 254000  000024' 00620             JRST LPTBEG           ;YES\r
11183         000020' 260140  000127' 00630             PUSHJ PDP,LPTSET\r
11184         000021' 202000  000000* 00640             MOVEM IOS,LPTIOS      ;C(LPTIOS):=C(IOS)\r
11185         000022' 201040  000100  00650             MOVEI TAC,LPTDON\r
11186         000023' 254000  000030' 00660             JRST LPTBG1\r
11187 \r
11188         000024' 661000  400000  00680   LPTBEG:   TLO IOS,IODISC\r
11189         000025' 202000  000021* 00690             MOVEM IOS,LPTIOS      ;C(LPTIOS):=C(IOS)\r
11190         000026' 260140  000127' 00700             PUSHJ PDP,LPTSET\r
11191         000027' 201040  002000  00710             MOVEI TAC,LPTCLR\r
11192         000030' 201100  001500  00720   LPTBG1:   MOVEI TAC1,LPTLOV+LPTERR+LPTDON\r
11193         000031' 542100  000034' 00730             HRRM TAC1,LPTINT\r
11194         000032' 712601  000000* 00740             CONO LPT, LPTCHB(TAC)         ;CLEAR BUFFER AND ASSIGN PI C\r
11195         000033' 263140  000000  00750             POPJ PDP,             ;RETURN\r
11196 \r\fLPTSER - LINE PRINTER SERVICE ROUTINE                 PAGE 4\r
11197         8-4-65\r
11198 \r
11199 \r
11200 \r
11201 \r
11202                                 00800   , LINE PRINTER INTERRUPT SERVICE\r
11203 \r
11204         000034' 712740  001500  00820   LPTINT:   CONSO LPT,LPTLOV+LPTERR+LPTDON;LINE OVERFLOW, ERROR OR DONE\r
11205         000035' 254000  000034' 00830             JRST LPTINT           ;IF LPT IS IN FLAG LIST, GO TO ERROR, E\r
11206         000036' 712700  000070  00840             CONSZ LPT,70\r
11207         000037' 712740  000100  00850             CONSO LPT,LPTDON\r
11208         000040' 254000  000102' 00860             JRST LPTERI                   ;YES\r
11209         000041' 335000  000025* 00870   LPTIN1:   SKIPGE LPTIOS         ;IODISC=1?\r
11210         000042' 254000  000053' 00880             JRST LPTDSC                   ;YES\r
11211         000043' 712500  000000* 00890             BLKO LPT,LPTPTR       ;PRINT\r
11212         000044' 334000  000000  00900             SKIPA                 ;BUFFER EMPTY\r
11213         000045' 254520  000000* 00910             JEN @LPTCHL                   ;DISMISS INTERRUPT AND RETURN\r
11214         000046' 202040  000000* 00920             MOVEM TAC,LPTSV1      ;SAVE TAC\r
11215         000047' 515040  400000  00930             HRLZI TAC,IODISC      ;IODISC:=1\r
11216         000050' 436040  000041* 00940             IORM TAC,LPTIOS\r
11217         000051' 200040  000046* 00950   LPTERX:   MOVE TAC,LPTSV1       ;RESTORE TAC\r
11218         000052' 254520  000045* 00960             JEN @LPTCHL                   ;DISMISS INTERRUPT AND RETURN\r
11219 \r
11220         000053' 264000  000000* 00980   LPTDSC:   JSR LPTSAV                    ;SAVE ACCUMULATORS AND ESTABL\r
11221         000054' 201300  000000* 00990             MOVEI DEVDAT,LPTDAT  ;DEVDAT:=LPTDAT\r
11222         000055' 260140  000000* 01000             PUSHJ PDP,IOSET       ;PROG:=C(JBTADR18-35),ITEM:=C(DEVPTR)\r
11223         000056' 200000  000050* 01010             MOVE IOS,LPTIOS\r
11224         000057' 623000  000002  01020             TLZE IOS,IOBEG\r
11225         000060' 254000  000077' 01030             JRST LPTBG                    ;PUT OUT CR-LF\r
11226         000061' 260140  000000* 01040             PUSHJ PDP,ADVBFE      ;ADVANCE BUFFER\r
11227         000062' 254000  000073' 01050             JRST      LPTOFF      ;NEXT BUFFER EMPTY\r
11228         000063' 602000  000040  01060             TRNE IOS,IOCON        ;CONTINUOUS? (IOCON=0?)\r
11229         000064' 254000  000073' 01070             JRST LPTOFF           ;NO\r
11230         000065' 621000  400000  01080             TLZ IOS,IODISC\r
11231         000066' 260140  000127' 01090             PUSHJ PDP,LPTSET      ;SET LPTPTR\r
11232 \r
11233         000067' 623000  000001  01110   LPTINX:   TLZE IOS,IOW          ;IN A WAIT? IOW:=0\r
11234         000070' 260140  000000* 01120             PUSHJ PDP,SETIOD      ;YES.  IOWS:=1\r
11235         000071' 202000  000056* 01130   LPTXIT:   MOVEM IOS,LPTIOS      ;C(LPTIOS):=C(IOS)\r
11236         000072' 254000  000000* 01140             JRST LPTRET                     ;RESTORE ACCUMULATORS AND DIS\r
11237 \r
11238         000073' 620000  010000  01160   LPTOFF:   TRZ IOS,IOACT\r
11239         000074' 712600  000000  01170             CONO LPT,0\r
11240         000075' 513000  000034' 01180             HLLZS LPTINT          ;TURN LPT OFF\r
11241         000076' 254000  000067' 01190             JRST LPTINX\r
11242 \r
11243         000077' 712540  000126' 01210   LPTBG:    DATAO LPT,LPTTOP      ;SEND OUT CR-FF\r
11244         000100' 621000  400000  01220             TLZ IOS,IODISC        ;WHEN IODISC=1\r
11245         000101' 254000  000071' 01230             JRST LPTXIT\r
11246 \r\fLPTSER - LINE PRINTER SERVICE ROUTINE                 PAGE 5\r
11247         8-4-65\r
11248 \r
11249 \r
11250 \r
11251                                 01270   ;HERE ON EITHER OVERFLOW OR ERROR(OFFLINE) OR ERROR CHANNEL\r
11252                                 01280   ;NOT ASSIGNED.\r
11253 \r
11254         000102' 202040  000051* 01300   LPTERI:   MOVEM TAC,LPTSV1      ;SAVE TAC\r
11255         000103' 712740  001000  01310             CONSO LPT,LPTLOV      ;LINE OVERFLOW?\r
11256         000104' 254000  000111' 01320             JRST LPTER1                   ;NO\r
11257         000105' 210040  000137' 01330             MOVN TAC,[EXP 100001]         ;YES, DECREMENT POINTER\r
11258         000106' 272040  000043* 01340             ADDM TAC,LPTPTR\r
11259         000107' 712540  000140' 01350             DATAO LPT,[EXP 15B6+12B13]    ;PRINT CARRIAGE RETURN, LINE\r
11260         000110' 254000  000051' 01360             JRST LPTERX\r
11261 \r
11262         000111' 712740  000070  01380   LPTER1:   CONSO LPT,70          ;ERROR INTERRUPT ASSIGNED?\r
11263         000112' 254000  000117' 01390             JRST LPTER2           ;NO\r
11264         000113' 712600  000000* 01400             CONO LPT,LPTCLB       ;YES, DEASSIGN IT,SET BUSY,CLEAR REST\r
11265         000114' 201040  000100  01410             MOVEI TAC,LPTDON      ;ENABLE FOR DONE FLAG ONLY\r
11266         000115' 542040  000034' 01420   LPTERA:   HRRM TAC,LPTINT\r
11267         000116' 254000  000051' 01430             JRST LPTERX\r
11268 \r
11269         000117' 712640  000001  01450   LPTER2:   CONI LPT,TAC\r
11270         000120' 405040  000300  01460             ANDI TAC,300\r
11271         000121' 712601  000032* 01470             CONO LPT,LPTCHB(TAC)\r
11272         000122' 201040  001500  01480             MOVEI TAC,LPTDON+LPTERR+LPTLOV\r
11273         000123' 542040  000034' 01490             HRRM TAC,LPTINT\r
11274         000124' 200040  000102* 01500             MOVE TAC,LPTSV1\r
11275         000125' 254000  000041' 01510             JRST LPTIN1\r
11276         000126' 064300  000000  01520   LPTTOP:   EXP 15B6+14B13        ;CARRIAGE RETURN, FORM FEED\r
11277 \r\fLPTSER - LINE PRINTER SERVICE ROUTINE                 PAGE 6\r
11278         8-4-65\r
11279 \r
11280 \r
11281 \r
11282                                 01560   ,SET UP PRINTER COUNTER AND POINTER\r
11283 \r
11284         000127' 201060  000000* 01580   LPTSET:   MOVEI TAC,@LPTADR     ;LPTPTR:=-(WORD COUNT+1), BUFFER ADDRES\r
11285         000130' 210101  000001  01590             MOVN TAC1,1(TAC)\r
11286         000131' 504040  000002  01600             HRL TAC,TAC1\r
11287         000132' 343040  000134' 01610             AOJLE TAC,.+2         ;C(LPTPTR0-17)<0?\r
11288         000133' 561040  000135' 01620             HRROI TAC,LPTNUL-1\r
11289         000134' 202040  000106* 01630             MOVEM TAC,LPTPTR\r
11290         000135' 263140  000000  01640             POPJ PDP,             ;RETURN\r
11291 \r
11292         000136' 000000  000000  01660   LPTNUL:   0\r
11293 \r
11294                                 01680             END,\r
11295         000137' 000000  100001\r
11296         000140' 064240  000000\r
11297 \r
11298 NO ERRORS DETECTED\r
11299 \r
11300 PROGRAM BREAK IS 000141\r
11301 \r
11302 8K CORE USED\r
11303 \r\fLPTSER - LINE PRINTER SERVICE ROUTINE                 PAGE 7\r
11304         SYMBOL TABLE\r
11305 \r
11306                 000236  \r
11307 A               000000  INT\r
11308 AC1             000015  INT\r
11309 AC2             000016  INT\r
11310 AC3             000017  INT\r
11311 ADVBFE          000061' EXT\r
11312 AL              000001  INT\r
11313 ASSCON          400000  INT\r
11314 ASSPRG          200000  INT\r
11315 B               000014  INT\r
11316 BUFPNT          000012  INT\r
11317 BUFWRD          000013  INT\r
11318 CLOSB           002000  INT\r
11319 CLSIN           000002  INT\r
11320 CLSOUT          000001  INT\r
11321 D               000017  INT\r
11322 DAT             000005  INT\r
11323 DCL             000001  INT\r
11324 DCW             020000  INT\r
11325 DDI             000007  INT\r
11326 DDO             000006  INT\r
11327 DDTMEM          000037  INT\r
11328 DDTSYM          000036  INT\r
11329 DEN             000004  INT\r
11330 DEVADR          000007  INT\r
11331 DEVBUF          000006  INT\r
11332 DEVCHR          000001  INT\r
11333 DEVCTR          000011  INT\r
11334 DEVDAT          000006  INT\r
11335 DEVIAD          000007  INT\r
11336 DEVIOS          000002  INT\r
11337 DEVLOG          000005  INT\r
11338 DEVMOD          000004  INT\r
11339 DEVNAM          000000  INT\r
11340 DEVOAD          000010  INT\r
11341 DEVPTR          000010  INT\r
11342 DEVSER          000003  INT\r
11343 DGF             000012  INT\r
11344 DIN             000003  INT\r
11345 DLK             000005  INT\r
11346 DOU             000002  INT\r
11347 DR              000016  INT\r
11348 DRL             000000  INT\r
11349 DSI             000011  INT\r
11350 DSO             000010  INT\r
11351 DTW             040000  INT\r
11352 DVAVAL          000040  INT\r
11353 DVCDR           100000  INT\r
11354 DVDIR           000004  INT\r
11355 DVDIRI          400000  INT\r
11356 DVIN            000002  INT\r
11357 DVLPT           040000  INT\r
11358 DVMTA           000020  INT\r
11359 \r\fLPTSER - LINE PRINTER SERVICE ROUTINE                 PAGE 7-1\r
11360         SYMBOL TABLE\r
11361 \r
11362 DVOUT           000001  INT\r
11363 DVTTY           000010  INT\r
11364 ENTRB           020000  INT\r
11365 I               000010  INT\r
11366 IB              000013  INT\r
11367 IBUFB           200000  INT\r
11368 ILLINP          000003' EXT\r
11369 INITB           400000  INT\r
11370 INPB            010000  INT\r
11371 IO              000020  INT\r
11372 IOACT           010000  INT\r
11373 IOBEG           000002  INT\r
11374 IOBKTL          040000  INT\r
11375 IOCON           000040  INT\r
11376 IODEND          020000  INT\r
11377 IODERR          200000  INT\r
11378 IODISC          400000  INT\r
11379 IODONE          400000  INT\r
11380 IODTER          100000  INT\r
11381 IOEND           000040  INT\r
11382 IOFST           000004  INT\r
11383 IOIMPM          400000  INT\r
11384 IONRCK          000100  INT\r
11385 IORDEL          000100  INT\r
11386 IORET           000020  INT\r
11387 IOS             000000  INT\r
11388 IOSET           000055' EXT\r
11389 IOSTRT          000010  INT\r
11390 IOUSE           400000  INT\r
11391 IOW             000001  INT\r
11392 IOWC            000020  INT\r
11393 IOWS            400000  INT\r
11394 ITEM            000004  INT\r
11395 JBFADR          000000  INT\r
11396 JBFCTR          000002  INT\r
11397 JBFPTR          000001  INT\r
11398 JBUF            000005  INT\r
11399 JDAT            000011  INT\r
11400 JERR            002000  INT\r
11401 JIOW            100000  INT\r
11402 JNA             004000  INT\r
11403 LOOKB           040000  INT\r
11404 LPT             000124  SPD\r
11405 LPTADR          000127' EXT\r
11406 LPTADV          100000  \r
11407 LPTBEG          000024' \r
11408 LPTBG           000077' \r
11409 LPTBG1          000030' \r
11410 LPTBUF          000000  EXT\r
11411 LPTCHB          000121' EXT\r
11412 LPTCHL          000052' EXT\r
11413 LPTCHN          000000  EXT\r
11414 LPTCHR          000000  EXT\r
11415 \r\fLPTSER - LINE PRINTER SERVICE ROUTINE                 PAGE 7-2\r
11416         SYMBOL TABLE\r
11417 \r
11418 LPTCLB          000113' EXT\r
11419 LPTCLR          002000  \r
11420 LPTCLS          000007' \r
11421 LPTDAT          000054' EXT\r
11422 LPTDON          000100  \r
11423 LPTDSC          000053' \r
11424 LPTDSP          000000' ENT\r
11425 LPTER1          000111' \r
11426 LPTER2          000117' \r
11427 LPTERA          000115' \r
11428 LPTERI          000102' \r
11429 LPTERR          000400  \r
11430 LPTERX          000051' \r
11431 LPTIN1          000041' \r
11432 LPTINI          000004' INT\r
11433 LPTINT          000034' INT\r
11434 LPTINX          000067' \r
11435 LPTIOS          000071' EXT\r
11436 LPTLOV          001000  \r
11437 LPTMOD          000000  EXT\r
11438 LPTNUL          000136' \r
11439 LPTOFF          000073' \r
11440 LPTOUT          000013' \r
11441 LPTPTR          000134' EXT\r
11442 LPTRET          000072' EXT\r
11443 LPTSAV          000053' EXT\r
11444 LPTSER          000000  EXT\r
11445 LPTSET          000127' \r
11446 LPTSV1          000124' EXT\r
11447 LPTTOP          000126' \r
11448 LPTXIT          000071' \r
11449 MTW             010000  INT\r
11450 OBUFB           100000  INT\r
11451 OUT             000007' EXT\r
11452 OUTPB           004000  INT\r
11453 PDP             000003  INT\r
11454 PICHN           000100  INT\r
11455 PROG            000007  INT\r
11456 RUN             200000  INT\r
11457 RUNABL          204000  INT\r
11458 SETIOD          000070' EXT\r
11459 TAC             000001  INT\r
11460 TAC1            000002  INT\r
11461 TEM             000010  INT\r
11462 TTYATC          020000  INT\r
11463 TTYUSE          010000  INT\r
11464 USRMOD          010000  INT\r
11465 UUO             000014  INT\r
11466 WAIT1           000010' EXT\r
11467 \fMMM         MMM      TTTTTTTTTTTTTTT      PPPPPPPPPPPP            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
11468 MMM         MMM      TTTTTTTTTTTTTTT      PPPPPPPPPPPP            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
11469 MMM         MMM      TTTTTTTTTTTTTTT      PPPPPPPPPPPP            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
11470 MMMMMM   MMMMMM            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
11471 MMMMMM   MMMMMM            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
11472 MMMMMM   MMMMMM            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
11473 MMM   MMM   MMM            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
11474 MMM   MMM   MMM            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
11475 MMM   MMM   MMM            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
11476 MMM         MMM            TTT            PPPPPPPPPPPP            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
11477 MMM         MMM            TTT            PPPPPPPPPPPP            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
11478 MMM         MMM            TTT            PPPPPPPPPPPP            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
11479 MMM         MMM            TTT            PPP                              SSS      EEE                  RRR   RRR      \r
11480 MMM         MMM            TTT            PPP                              SSS      EEE                  RRR   RRR      \r
11481 MMM         MMM            TTT            PPP                              SSS      EEE                  RRR   RRR      \r
11482 MMM         MMM            TTT            PPP                              SSS      EEE                  RRR      RRR   \r
11483 MMM         MMM            TTT            PPP                              SSS      EEE                  RRR      RRR   \r
11484 MMM         MMM            TTT            PPP                              SSS      EEE                  RRR      RRR   \r
11485 MMM         MMM            TTT            PPP                  SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
11486 MMM         MMM            TTT            PPP                  SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
11487 MMM         MMM            TTT            PPP                  SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
11488 \r
11489 \r
11490 \r
11491 \r
11492 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11493 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11494 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
11495 LLL                  SSS                        TTT                                                                     \r
11496 LLL                  SSS                        TTT                                                                     \r
11497 LLL                  SSS                        TTT                                                                     \r
11498 LLL                  SSS                        TTT                                                                     \r
11499 LLL                  SSS                        TTT                                                                     \r
11500 LLL                  SSS                        TTT                                                                     \r
11501 LLL                     SSSSSSSSS               TTT                                                                     \r
11502 LLL                     SSSSSSSSS               TTT                                                                     \r
11503 LLL                     SSSSSSSSS               TTT                                                                     \r
11504 LLL                              SSS            TTT                                                                     \r
11505 LLL                              SSS            TTT                                                                     \r
11506 LLL                              SSS            TTT                                                                     \r
11507 LLL                              SSS            TTT                                                                     \r
11508 LLL                              SSS            TTT                                                                     \r
11509 LLL                              SSS            TTT                                                                     \r
11510 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11511 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11512 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
11513 \r
11514 \r
11515 \r
11516 \r
11517 Request created: 24-April-1978  11:23:08\r
11518 File: DSKB1 :MTPSER.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:22
11519 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2344 \r
11520 File will be deleted after printing\r
11521 \f\rMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 1\r
11522         L. HANTMAN 8-9-65\r
11523 \r
11524                                 00010           XLIST\r
11525                                 01930          LIST\r
11526 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 7\r
11527         L. HANTMAN 8-9-65\r
11528 \r
11529 \r
11530                                 00010             TITLE MTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES\r
11531                                 00020             SUBTTL L. HANTMAN 8-9-65\r
11532                         000004  00030             T=ITEM\r
11533                                 00040   ; MAG TAPE SERVICE SUBROUTINES\r
11534 \r
11535         000000' 260140  000000* 00060   MTAPE1:   PUSHJ PDP,WAIT1\r
11536         000001' 551000  776000  00070             HRRZI IOS,776000\r
11537         000002' 413006  000002  00080             ANDCAB IOS,DEVIOS(DEVDAT)\r
11538         000003' 201214  000000  00090             MOVEI T,(UUO)\r
11539         000004' 260140  000007' 00100             PUSHJ PDP,MTAPE+1\r
11540         000005' 254000  000000* 00110             JRST UXIT\r
11541 \r
11542         000006' 260140  000000* 00130   MTAPE:    PUSHJ PDP,WAIT1\r
11543         000007' 621000  010000  00140             TLZ IOS,IODT\r
11544         000010' 660000  010000  00150             TRO IOS, IOACT                ;SET ACTIVE\r
11545         000011' 260140  000063' 00160             PUSHJ PDP,MTCHK2              ;CHECK IF MAG TAPE CONTROL AV\r
11546         000012' 242200  000010  00170             LSH T,^D8 ;MOVE TO FUNCTION\r
11547         000013' 405200  007400  00180             ANDI T,7400           ;MODE BITS\r
11548         000014' 306200  004000  00190             CAIN T,4000           ;LOGICAL EOT?\r
11549         000015' 254000  000436' 00200             JRST MTLEOT\r
11550         000016' 302200  000400  00210             CAIE T,400            ;RWD?\r
11551         000017' 254000  000022' 00220             JRST .+3\r
11552         000020' 722700  004000  00230             CONSZ 224,4000        ;AT LOAD POINT?\r
11553         000021' 254000  000520' 00240             JRST MTDMP4\r
11554         000022' 201040  000001  00250             MOVEI TAC, TCF                ;LOOK FOR TAPE CONTROL FREE 0\r
11555         000023' 542040  000044' 00260   MTGO1:    HRRM TAC, MTCONO\r
11556         000024' 542040  000211' 00270             HRRM TAC, MTCINT\r
11557         000025' 135040  000000* 00280   MTGO1A:   LDB TAC,PUNIT         ;UNIT\r
11558         000026' 137040  000537' 00290             DPB TAC,[POINT 3,T,31]        ;UNIT\r
11559         000027' 135040  000540' 00300             LDB TAC, [POINT 3, IOS,28]    ;DENSITY PARITY\r
11560         000030' 431040  000005  00310             XORI TAC, 5                   ;ODD, 556\r
11561         000031' 137040  000541' 00320             DPB TAC,[POINT 3,T,23]\r
11562         000032' 201044  000000* 00330             MOVEI TAC,MTCCHN(T) ;CHANNEL\r
11563 \r
11564         000033' 722600  000000  00350   MTGO:     CONO 224, 0                   ;DISABLE ALL INTERRUPTS\r
11565         000034' 660040  000200  00360             TRO TAC, 200                  ;INHIBIT RETURN TO POOL\r
11566         000035' 722201  000000  00370             CONO 220,(TAC)                ;COMMAND\r
11567         000036' 402000  000534' 00380             SETZM MTEOFF#                 ;CLEAR EOF FLAG\r
11568         000037' 542300  000533' 00390             HRRM DEVDAT,MTDEV#    ;COMMAND, DVDB\r
11569         000040' 506040  000533' 00400             HRLM TAC,MTDEV\r
11570         000041' 603000  010000  00410             TLNE IOS,IODT\r
11571         000042' 700600  002100  00420             CONO PI,2000+DCB\r
11572         000043' 201040  000225' 00430             MOVEI TAC,MTPDUN\r
11573         000044' 722600  000005  00440   MTCONO:   CONO 224,TCF+ERF              ;ENABLE FLAGS\r
11574         000045' 263140  000000  00450             POPJ PDP,\r
11575 \r
11576                                 00470   ;READ\r
11577         000046' 621000  000020  00480   MTIN:     TLZ IOS, IO                   ;READING\r
11578         000047' 260140  000056' 00490             PUSHJ PDP,MTCHEK              ;IS SYSTEM AVAILABLE?\r
11579         000050' 460066  000007  00500             SETCM TAC,@DEVIAD(DEVDAT)     ;-SIZE-1\r
11580         000051' 541066  000007  00510   MTIN1:    HRRI TAC,@DEVIAD(DEVDAT)      ;BUFFER ADDRESS, PROG INCLUDE\r
11581         000052' 270040  000542' 00520             ADD TAC,[XWD 2,1]             ;-SIZE+1,BUFFER+1\r
11582 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 1\r
11583         L. HANTMAN 8-9-65\r
11584 \r
11585         000053' 201200  002400  00530             MOVEI T,2400          ;READ\r
11586         000054' 200100  000543' 00540   MTIN2:    MOVE TAC1,[BLKI DC,4000+DCN+MTDC*10]\r
11587         000055' 254000  000132' 00550             JRST MTINDC\r
11588 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 2\r
11589         L. HANTMAN 8-9-65\r
11590 \r
11591 \r
11592                                 00580   ;IS SYSTEM AVAILABLE\r
11593         000056' 660000  010000  00590   MTCHEK:   TRO IOS, IOACT                ;SET ACTIVE\r
11594         000057' 661000  010000  00600             TLO IOS, IODT                 ;SET FOR DATA TRANSFER\r
11595         000060' 202006  000002  00610             MOVEM IOS, DEVIOS(DEVDAT)\r
11596         000061' 352000  000000* 00620   MTCHK1:   AOSE DCREQ\r
11597         000062' 260140  000000* 00630             PUSHJ PDP,DCWAIT\r
11598         000063' 621000  004002  00640   MTCHK2:   TLZ IOS, IOSEOF+IOBEG                 ;CLEAR SPACE TO EOF\r
11599         000064' 202006  000002  00650             MOVEM IOS, DEVIOS(DEVDAT)             ;STORE BITS\r
11600         000065' 352000  000000* 00660             AOSE MTREQ\r
11601         000066' 260140  000000* 00670             PUSHJ PDP,MTWAIT\r
11602         000067' 256000  000025' 00680             XCT MTGO1A                    ;UNIT\r
11603         000070' 241040  000004  00690             ROT TAC, 4                    ;PUT IN UNIT POSITION\r
11604         000071' 722201  000200  00700             CONO 220, 200(TAC)    ;HAS UNIT ONLY\r
11605         000072' 722600  000002  00710             CONO 224, SEL                 ;JAM UNIT INTO COMMAND BUFFER\r
11606         000073' 722700  000002  00720             CONSZ 224, SEL                ;UNIT NOT READY?\r
11607         000074' 263140  000000  00730             POPJ PDP, 0                   ;EXIT\r
11608         000075' 241040  777774  00740             ROT TAC, -4                   ;UNIT IN TAC\r
11609         000076' 542301  000426' 00750             HRRM DEVDAT, MTSTAK(TAC)      ;PUT IN STACK\r
11610         000077' 200100  000544' 00760             MOVE TAC1, [XWD MTCLOK,^D32]  ;HALF SECOND\r
11611         000100' 137040  000545' 00770             DPB TAC, [POINT 3,TAC1,23]    ;STORE UNIT NUMBER\r
11612         000101' 506101  000426' 00780             HRLM TAC1, MTSTAK(TAC)        ;SAVE ACTUAL CLOCK REQUEST\r
11613         000102' 700600  000400  00790             CONO PI, 400                  ;TURN OFF PI\r
11614         000103' 136100  000000* 00800             IDPB TAC1, CLOCK              ;REQUEST CLOCK RETURN TO MTCL\r
11615         000104' 700600  000200  00810             CONO PI, 200                  ;TURN PI ON\r
11616         000105' 371000  000065* 00820             SOSL MTREQ            ;DECREMENT REQUEST COUNT, ANYONE LEFT W\r
11617         000106' 476000  000000* 00830             SETOM MTAVAL                  ;YES,SET MAG TAPE AVAL\r
11618         000107' 607000  010000  00840             TLNN IOS, IODT                ;NON-DATA TRANSFER?\r
11619         000110' 254000  000113' 00850             JRST MTCHK3           ;YES\r
11620         000111' 371000  000061* 00860             SOSL DCREQ            ;NO,DECREMENT REQUEST COUNT,ANYONE LEFT\r
11621         000112' 476000  000000* 00870             SETOM DCAVAL                  ;YES,SET DATA CONTROL AVAILAB\r
11622         000113' 260140  000000* 00880   MTCHK3:   PUSHJ PDP, WSYNC              ;REQUEST WAIT\r
11623         000114' 200006  000002  00890             MOVE IOS, DEVIOS(DEVDAT)      ;LOAD STATUS\r
11624         000115' 607000  010000  00900             TLNN IOS, IODT                ;DATA TRANFER?\r
11625         000116' 254000  000065' 00910             JRST MTCHK2+2                 ;CHECK FOR MT AVAILABLE ONLY\r
11626         000117' 254000  000061' 00920             JRST MTCHK1                   ;CHECK FOR MT AND DC AVAIALABL\r
11627 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 3\r
11628         L. HANTMAN 8-9-65\r
11629 \r
11630 \r
11631                                 00950   ;WRITE\r
11632         000120' 661000  000020  00960   MTOUT:    TLO IOS, IO                   ;WRITING\r
11633         000121' 260140  000056' 00970             PUSHJ PDP,MTCHEK\r
11634         000122' 722700  000200  00980             CONSZ 224,200         ;IS FILE PROTECT RING IN?\r
11635         000123' 254000  000145' 00990             JRST MTOUTE           ;NO, ERROR CANT WRITE. CROCK!!\r
11636         000124' 201066  000010  01000   MTOUT1:   MOVEI TAC,@DEVOAD(DEVDAT)     ;BUFFER ADDRESS, PROG INCLUDE\r
11637         000125' 210101  000001  01010             MOVN TAC1,1(TAC)      ;-WD COUNT\r
11638         000126' 504040  000002  01020             HRL TAC,TAC1          ;-WD CMT,BUFFER\r
11639         000127' 347040  000274' 01030             AOJG TAC,MTNOTI       ;BUFFER+1, TEST FOR ZERO WORD COUNT\r
11640         000130' 200040  000546' 01040   MTOUT2:   MOVE TAC,[BLKO DC,3400+DCN+MTDC*10]\r
11641         000131' 201200  001000  01050             MOVEI T,1000          ;WRITE\r
11642         000132' 202040  000532' 01060   MTINDC:   MOVEM TAC,MTDCCN#             ;BLKO POINTER\r
11643         000133' 202040  000527' 01070             MOVEM TAC,DCWRD#\r
11644         000134' 552100  000530' 01080             HRRZM TAC1, MDCSAV#           ;SAVE DC COMMAND\r
11645         000135' 541100  000527' 01090             HRRI TAC1,DCWRD\r
11646         000136' 202100  000042  01100             MOVEM TAC1,40+<2*DCN>         ;BLK COMMAND\r
11647         000137' 200100  000547' 01110             MOVE TAC1,[JSR MTDCND]\r
11648         000140' 202100  000043  01120             MOVEM TAC1,41+<2*DCN>\r
11649         000141' 700600  001100  01130             CONO PI,1100\r
11650         000142' 720220  000530' 01140             CONO DC, @MDCSAV              ;DATA CONTROL COMMAND\r
11651         000143' 201040  000004  01150             MOVEI TAC, ERF\r
11652         000144' 254000  000023' 01160             JRST MTGO1\r
11653 \r
11654         000145' 660000  200000  01180   MTOUTE:   TRO IOS,IODERR        ;WRITE LOCK, DEVICE ERROR\r
11655         000146' 260140  000247' 01190             PUSHJ PDP,MTEND1\r
11656         000147' 254000  000005* 01200             JRST UXIT\r
11657 \r
11658         000150' 135040  000000* 01220   MTCLS:    LDB TAC,PIOMOD        ;MODE\r
11659         000151' 307040  000016  01230             CAIG TAC, 16                  ;DUMP MODE\r
11660         000152' 254000  000157' 01240             JRST MTCLS1                   ;CLOSE OUTPUT\r
11661         000153' 603000  000020  01250             TLNE IOS,IO                   ;INPUT?\r
11662         000154' 254000  000160' 01260             JRST MTCLS1+1                 ;WRITE EOFS\r
11663         000155' 201200  000016  01270             MOVEI T,16            ;SPACE TO EOF\r
11664         000156' 254000  000006' 01280             JRST MTAPE                    ;GOES BACK TO UUO LEVEL\r
11665         000157' 260140  000000* 01290   MTCLS1:   PUSHJ PDP,OUT\r
11666         000160' 201200  000003  01300             MOVEI T,3  ;WRITE IOF\r
11667         000161' 260140  000006' 01310             PUSHJ PDP, MTAPE\r
11668         000162' 201200  000003  01320             MOVEI T,3  ;WRITE EOF\r
11669         000163' 260140  000006' 01330             PUSHJ PDP, MTAPE\r
11670         000164' 201200  000007  01340             MOVEI T,7  ;BSP\r
11671         000165' 254000  000006' 01350             JRST MTAPE\r
11672         000166' 263140  000000  01360   MTDISP:   POPJ PDP,                     ;RELEASE\r
11673         000167' 254000  000150' 01370             JRST MTCLS                    ;CLOSE\r
11674         000170' 254000  000120' 01380             JRST MTOUT                    ;WRITE\r
11675         000171' 254000  000046' 01390             JRST MTIN                     ;READ\r
11676         000172' 254000  000000* 01400             JRST CUXIT1           ;ENTER IN DIRECTORY\r
11677         000173' 254000  000172* 01410             JRST CUXIT1           ;LOOKUP IN DIRECTORY\r
11678         000174' 254000  000455' 01420             JRST MTDMPO                   ;DUMP OUT\r
11679         000175' 254000  000505' 01430             JRST MTDMPI                   ;DUMP IN\r
11680         000176' 254000  000147* 01440             JRST UXIT                     ;SETO\r
11681         000177' 254000  000176* 01450             JRST UXIT                     ;SETI\r
11682         000200' 254000  000177* 01460             JRST UXIT                     ;GETF\r
11683 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 3-1\r
11684         L. HANTMAN 8-9-65\r
11685 \r
11686 \r
11687         000201' 210040  000454' 01480   MTCINI:   MOVN TAC, MTREDO              ;REPEAT COUNTER\r
11688         000202' 572040  000535' 01490             HRREM TAC, MTERCN             ;RESET ERROR CNTR\r
11689         000203' 722600  000000  01500             CONO 224,0                    ;CLEAR ENABLES\r
11690         000204' 513000  000211' 01510             HLLZS MTCINT                  ;CLEAR CONSO\r
11691         000205' 263140  000000  01520             POPJ PDP,\r
11692 \r
11693 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 4\r
11694         L. HANTMAN 8-9-65\r
11695 \r
11696 \r
11697 \r
11698 \r
11699                                 01580   ;BLK COUNTED OUT\r
11700 \r
11701         000206' 000000  000000  01600   MTDCND:   0\r
11702         000207' 700600  001100  01610             CONO PI,DCB+1000              ;SHUT OF DC CHANNEL\r
11703         000210' 254520  000206' 01620             JEN @MTDCND\r
11704 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 5\r
11705         L. HANTMAN 8-9-65\r
11706 \r
11707 \r
11708 \r
11709                                 01660   ;FLAG FROM TAPE CONTROL.  SET UP BY INSERT MACRO\r
11710         000211' 722740  000005  01670   MTCINT:   CONSO 224,TCF+ERF\r
11711         000212' 254000  000212' 01680             JRST .\r
11712         000213' 264000  000000* 01690             JSR MTCSAV                    ;SAVE ACS\r
11713         000214' 550300  000533' 01700             HRRZ DEVDAT,MTDEV             ;DVBD\r
11714         000215' 135340  000000* 01710             LDB PROG,PJOBN;               JOB NUMBER\r
11715         000216' 550347  000000* 01720             HRRZ PROG, JBTADR(PROG)\r
11716         000217' 200006  000002  01730             MOVE IOS, DEVIOS(DEVDAT)\r
11717         000220' 722740  000001  01740             CONSO 224,TCF                 ;TAPE CONTROL FREE\r
11718         000221' 254000  000324' 01750             JRST MTEOR\r
11719         000222' 254000  000225' 01760   MTIDSP:   JRST MTPDUN                   ;POINTS TO MTERR FOR ERROR\r
11720         000223' 254000  000356' 01770             JRST MTBSP                    ;AFTER BACKSPACE\r
11721         000224' 254000  000336' 01780             JRST MTERR                    ;IF ERROR FOUND\r
11722         000225' 607000  010000  01790   MTPDUN:   TLNN IOS,IODT\r
11723         000226' 254000  000313' 01800             JRST MTNIO2\r
11724         000227' 135040  000150* 01810             LDB TAC,PIOMOD\r
11725         000230' 301040  000016  01820             CAIL TAC,16\r
11726         000231' 254000  000247' 01830             JRST MTEND1                   ;DUMP\r
11727         000232' 603000  000020  01840             TLNE IOS,IO\r
11728         000233' 254000  000274' 01850             JRST MTNOTI                   ;WRITING\r
11729         000234' 332000  000534' 01860             SKIPE MTEOFF                  ;NOT EOF?\r
11730         000235' 254000  000322' 01870             JRST MTEOF\r
11731         000236' 201066  000007  01880   MTINDN:   MOVEI TAC,@DEVIAD(DEVDAT)     ;BUFFER ADDRESS\r
11732         000237' 210100  000532' 01890             MOVN TAC1,MTDCCN              ;WD CNT-1\r
11733         000240' 253100  000241' 01900             AOBJN TAC1, .+1               ;WD CNT\r
11734         000241' 513000  000002  01910             HLLZS TAC1                    ;CLR RT HALF\r
11735         000242' 270100  000527' 01920             ADD TAC1,DCWRD                ;ADD CURRENT COUNT=NO. OF WDS\r
11736         000243' 546101  000001  01930             HLRM TAC1,1(TAC)              ;STORE AT WORD COUNT\r
11737         000244' 260140  000000* 01940             PUSHJ PDP,ADVBFF\r
11738         000245' 254000  000247' 01950             JRST .+2  ;NEXT BUFFER FULL\r
11739         000246' 254000  000276' 01960             JRST MTCON                            ;CONTINUE MODE\r
11740         000247' 720200  000000  01970   MTEND1:   CONO DC, 0                    ;TURN OFF DATA CONTROL\r
11741         000250' 371000  000111* 01980             SOSL DCREQ            ;DECREMENT REQUEST COUNT, ANYONE LEFT?\r
11742         000251' 476000  000112* 01990             SETOM DCAVAL                  ;YES, SET FLAG FOR CLOCK\r
11743         000252' 371000  000105* 02000   MTNIO:    SOSL MTREQ\r
11744         000253' 476000  000106* 02010             SETOM MTAVAL                  ;YES, SET FLAG FOR CLOCK\r
11745         000254' 722700  010000  02020             CONSZ 224,10000               ;END OF TAPE?\r
11746         000255' 660000  002000  02030             TRO IOS, IOTEND               ;SET END OF TAPE INDICATION\r
11747         000256' 620000  004000  02040             TRZ IOS, IOBOT                ;CLR LOAD POINT INDICATION\r
11748         000257' 722700  004000  02050             CONSZ 224, 4000               ;LOAD POINT?\r
11749         000260' 660000  004000  02060             TRO IOS, IOBOT                ;SET LOAD POINT INDICATION\r
11750         000261' 722700  020000  02070             CONSZ 224, 20000              ;TAPE REWINDING?\r
11751         000262' 660000  004000  02080             TRO IOS, IOBOT                ;SET LOAD POINT INDICATION\r
11752         000263' 623000  000001  02090             TLZE IOS, IOW                 ;CLEAR WAIT\r
11753         000264' 260140  000000* 02100             PUSHJ PDP, SETIOD             ;REQUEST WAIT SATISFIED\r
11754         000265' 620000  010000  02110             TRZ IOS, IOACT                ;CLEAR ACTIVE\r
11755         000266' 202006  000002  02120             MOVEM IOS, DEVIOS(DEVDAT)     ;RESTORE BITS\r
11756         000267' 722600  000000  02130             CONO 224,0                    ;CLEAR MAG TAPE ENABLES\r
11757         000270' 513000  000211' 02140             HLLZS MTCINT                  ;CLEAR CONSO\r
11758         000271' 210040  000454' 02150             MOVN TAC, MTREDO              ;REPEAT COUNTER\r
11759         000272' 572040  000535' 02160             HRREM TAC, MTERCN#\r
11760 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 5-1\r
11761         L. HANTMAN 8-9-65\r
11762 \r
11763         000273' 263140  000000  02170             POPJ PDP,             ;DISMISS INTERRUPT OR RETURN TO CALLER\r
11764 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 6\r
11765         L. HANTMAN 8-9-65\r
11766 \r
11767 \r
11768         000274' 260140  000000* 02200   MTNOTI:   PUSHJ PDP,ADVBFE              ;WRITING\r
11769         000275' 254000  000247' 02210             JRST MTEND1\r
11770         000276' 602000  000040  02220   MTCON:    TRNE IOS,IOCON                ;CONTINUOUS?\r
11771         000277' 254000  000247' 02230             JRST MTEND1                   ;STOP TAPE\r
11772         000300' 722700  010000  02240             CONSZ 224,10000               ;END OF TAPE?\r
11773         000301' 254000  000247' 02250             JRST MTEND1                   ;STOP TAPE\r
11774         000302' 720200  000000  02260             CONO DC,0             ;CLEAR DATA CONTROL\r
11775         000303' 623000  000001  02270             TLZE IOS,IOW\r
11776         000304' 260140  000264* 02280             PUSHJ PDP,SETIOD\r
11777         000305' 202006  000002  02290             MOVEM IOS,DEVIOS(DEVDAT)\r
11778         000306' 210040  000454' 02300             MOVN TAC,MTREDO\r
11779         000307' 572040  000535' 02310             HRREM TAC,MTERCN\r
11780         000310' 607000  000020  02320             TLNN IOS,IO           ;INPUT OR OUTPUT?\r
11781         000311' 254000  000051' 02330             JRST MTIN1            ;CALL INPUT SUBROUTINE\r
11782         000312' 254000  000124' 02340             JRST MTOUT1           ;CALL OUTPUT SUBROUTINE\r
11783         000313' 554040  000533' 02350   MTNIO2:   HLRZ TAC,MTDEV                ;COMMAND\r
11784         000314' 405040  007400  02360             ANDI TAC,7400\r
11785         000315' 302040  003000  02370             CAIE TAC, 3000                ;SPACE ONE RECORD\r
11786         000316' 254000  000252' 02380             JRST MTNIO                    ;EXIT\r
11787         000317' 722700  000400  02390             CONSZ 224, 400                ;EOF?\r
11788         000320' 661000  004000  02400             TLO IOS, IOSEOF               ;SET EOF DETECTED\r
11789         000321' 254000  000252' 02410             JRST MTNIO                    ;EXIT\r
11790         000322' 661000  000040  02420   MTEOF:    TLO IOS, IOEND\r
11791         000323' 254000  000247' 02430             JRST MTEND1\r
11792         000324' 722700  000030  02440   MTEOR:    CONSZ 224,LPE+CPE             ;IF END OF RECORD CHECK PARIT\r
11793         000325' 370000  000222' 02450             SOS MTIDSP                    ;IF ERROR CAUSE INTERRUPT TO\r
11794                                 02460                                           ;ERROR ROUTIE VIA TCF\r
11795         000326' 722700  000400  02470             CONSZ 224, 400                ;EOF?\r
11796         000327' 476000  000534' 02480             SETOM MTEOFF                  ;SET EOF FLAG\r
11797         000330' 722600  000001  02490   MTIGN:    CONO 224, TCF                 ;IF ERF, CAUSE INTERRUPT TO D\r
11798                                 02500                                           ;PATCH TABLE, DISABLE ERF FLA\r
11799         000331' 202040  000206' 02510             MOVEM TAC, MTDCND             ;SAVE TAC\r
11800         000332' 201040  000001  02520             MOVEI TAC, TCF                ;LOOK FOR TCF ONLY\r
11801         000333' 542040  000211' 02530             HRRM TAC, MTCINT              ;SET CONSO\r
11802         000334' 200040  000206' 02540             MOVE TAC,MTDCND               ;RESTORE TAC\r
11803         000335' 254000  000000* 02550             JRST MTCRET                   ;DISMISS AND RETURN VIA TCF\r
11804 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 7\r
11805         L. HANTMAN 8-9-65\r
11806 \r
11807 \r
11808         000336' 554040  000533' 02580   MTERR:    HLRZ TAC,MTDEV                ;COMMAND\r
11809         000337' 405040  007400  02590             ANDI TAC,7400\r
11810         000340' 306040  002400  02600             CAIN TAC,2400                 ;READ?\r
11811         000341' 254000  000344' 02610             JRST .+3\r
11812         000342' 306040  001000  02620             CAIN TAC,1000                 ;WRITE\r
11813         000343' 254000  000402' 02630             JRST MTIGN2                   ;IGNORE IF NOT RD OR WRITE\r
11814         000344' 606000  000100  02640             TRNN IOS, IONRCK              ;RE-DO?\r
11815         000345' 351000  000535' 02650             AOSL MTERCN                   ;THIRD ERROR?\r
11816         000346' 254000  000354' 02660             JRST MTERR2                   ;TRIPLE ERROR\r
11817         000347' 554040  000533' 02670             HLRZ TAC,MTDEV                ;COMMAND\r
11818         000350' 405040  770377  02680             ANDI TAC,770377\r
11819         000351' 722201  003400  02690             CONO 220,3400(TAC)    ;BSP\r
11820         000352' 370000  000222' 02700             SOS MTIDSP\r
11821         000353' 254000  000330' 02710             JRST MTIGN\r
11822 \r
11823         000354' 660000  200000  02730   MTERR2:   TRO IOS, IODERR               ;DEVICE ERROR\r
11824         000355' 254000  000225' 02740             JRST MTPDUN\r
11825 \r
11826         000356' 200040  000532' 02760   MTBSP:    MOVE TAC,MTDCCN               ;POINTER\r
11827         000357' 202040  000527' 02770             MOVEM TAC,DCWRD               ;RESET POINTER WORD\r
11828         000360' 720240  000001  02780             CONI DC,TAC                   ;SAVE IN/OUT, PACK MD. DEV NU\r
11829                                 02790                                           ;PRIORITY\r
11830         000361' 405040  000777  02800             ANDI TAC,777\r
11831         000362' 271040  003000  02810             ADDI TAC,3000                 ;MAKE WRITE\r
11832         000363' 606040  000400  02820             TRNN TAC,400                  ;WAS IT WRITING?\r
11833         000364' 271040  001000  02830             ADDI TAC,1000                 ;MAKE READ\r
11834         000365' 720201  000000  02840             CONO DC,(TAC)                 ;REISSUE CONO\r
11835         000366' 554040  000533' 02850             HLRZ TAC,MTDEV                ;COMMAND\r
11836         000367' 722740  040000  02860             CONSO 224,XNC                 ;WAIT FOR XNC\r
11837         000370' 254000  000367' 02870             JRST .-1  ;SHOULD ADD A COUNT(RUNAWAY TAPE TURNED\r
11838         000371' 722201  000000  02880             CONO 220,(TAC)                ;REISSUE RD OR WRITE\r
11839         000372' 402000  000534' 02890             SETZM MTEOFF                  ;CLR EOF FLAG\r
11840         000373' 700600  002100  02900             CONO PI,2000+DCB              ;TURN ON CHANNEL\r
11841         000374' 201040  000225' 02910             MOVEI TAC,MTPDUN              ;RESET SWITCH\r
11842         000375' 542040  000222' 02920             HRRM TAC,MTIDSP\r
11843         000376' 201040  000004  02930             MOVEI TAC, ERF\r
11844         000377' 542040  000211' 02940             HRRM TAC, MTCINT\r
11845         000400' 722600  000004  02950             CONO 224, ERF\r
11846         000401' 254000  000335* 02960             JRST MTCRET                   ;ENABLE PROPER FLAGS\r
11847         000402' 350000  000222' 02970   MTIGN2:   AOS MTIDSP                    ;RESET DISPATCH SWITCH\r
11848         000403' 254000  000330' 02980             JRST MTIGN\r
11849 \r
11850                                 03000   ;NEED TO TRY WRITING LONG RECORD GAP ON OUTPUT(ONLY) AND TRY\r
11851                                 03010   ;ONCE MORE AT NEW SPOT ON TAPE IF TRIPLE ERROR\r
11852 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 8\r
11853         L. HANTMAN 8-9-65\r
11854 \r
11855 \r
11856 \r
11857                         040000  03050   XNC=40000               ;TRANSFER NEW COMMAND\r
11858                         000002  03060   MTDC=2                  ;MAG TAPE DATA CONTROL DEVICE NO.\r
11859                         000001  03070   TCF=1                   ;TAPE CONTROL FREE\r
11860                         000004  03080   ERF=4                   ;END OF RECORD FLAG\r
11861                         000020  03090   LPE=20                  ;LONG. PARITY ERROR\r
11862                         000010  03100   CPE=10                  ;CHAR. PARITY ERROR\r
11863                         000100  03110   DCB=100                 ;DATA CHANNEL NUMBER\r
11864                         000001  03120   DCN=1                   ;DATA CHANNEL NUMBER\r
11865                         000002  03130   SEL=2                   ;UNIT TO COMMAND BUFFER\r
11866                         004000  03140   IOSEOF=4000             ;SPACING ONE RECORD FORWARD FOUND EOF\r
11867                         002000  03150   IOTEND=2000             ;EOT INDICATION\r
11868                         000100  03160   IONRCK=100              ;DO NOT RE-TRY ON ERRORS\r
11869                         004000  03170   IOBOT=4000              ;TAPE AT LOAD POINT\r
11870                         010000  03180   IODT=10000              ;A 1 FOR A DATA TRANFER TYPE COMMAND\r
11871                                 03190   EXTERNAL UXIT, ADVBFF, ADVBFE, DCREQ, DCWAIT, MTCSAV\r
11872                                 03200   EXTERNAL MTCRET, DCAVAL, MTAVAL, MTCCHN, MTCCHL, MTREQ\r
11873                                 03210   EXTERNAL MTWAIT,OUT,SETIOD,CLOCK,CUXIT1\r
11874                                 03220   EXTERNAL WSYNC,USRREL,WAIT1,ADRERR,PUNIT,PIOMOD,PJOBN\r
11875                                 03230   EXTERNAL JBTADR\r
11876                                 03240   ENTRY MTDISP\r
11877                                 03250   INTERNAL MTCINT,MTAPE1,MTCINI\r
11878                                 03260   ;CLOCK INTERRUPT, UNIT IN TAC\r
11879         000404' 550301  000426' 03270   MTCLOK:   HRRZ DEVDAT, MTSTAK(TAC)      ;DVDB\r
11880         000405' 241040  000004  03280             ROT TAC, 4                    ;PUT UNIT IN SEL BITS\r
11881         000406' 722201  000200  03290             CONO 220, 200(TAC)    ;UNIT ONLY\r
11882         000407' 722600  000002  03300             CONO 224, SEL                 ;SEL UNIT\r
11883         000410' 722700  000002  03310             CONSZ 224, SEL                ;UNIT NOT READY?\r
11884         000411' 254000  000421' 03320             JRST MTCLK2                   ;UNIT READY\r
11885         000412' 241040  777774  03330             ROT TAC, -4                   ;FOR INDEXING PURPOSES\r
11886         000413' 544101  000426' 03340             HLR TAC1, MTSTAK(TAC)         ;CLOCK REQUEST\r
11887         000414' 505100  000404' 03350             HRLI TAC1, MTCLOK             ;GET CLOCK REQUEST\r
11888         000415' 700600  000400  03360             CONO PI, 400                  ;TURN OFF PI\r
11889         000416' 136100  000103* 03370             IDPB TAC1, CLOCK              ;STORE CLOCK REQUESTED\r
11890         000417' 700600  000200  03380             CONO PI, 200                  ;TURN ON PI\r
11891         000420' 263140  000000  03390             POPJ PDP, 0                   ;EXIT\r
11892         000421' 200006  000002  03400   MTCLK2:   MOVE IOS, DEVIOS(DEVDAT)\r
11893         000422' 623000  000001  03410             TLZE IOS,IOW\r
11894         000423' 260140  000304* 03420             PUSHJ PDP, SETIOD\r
11895         000424' 202006  000002  03430             MOVEM IOS, DEVIOS(DEVDAT)\r
11896         000425' 263140  000000  03440             POPJ PDP, 0\r
11897         000426'                 03450   MTSTAK:   BLOCK ^D8\r
11898 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 9\r
11899         L. HANTMAN 8-9-65\r
11900 \r
11901 \r
11902 \r
11903                                 03490   ;LOGICAL END OF TAPE LOOP\r
11904         000436' 722700  004000  03500   MTLEOT:   CONSZ 224, 4000               ;TAPE NOT AT LOAD POINT?\r
11905         000437' 254000  000442' 03510             JRST MTEOT2                   ;AVOID BACKSPACE IFAT LOAD P\r
11906         000440' 201200  003400  03520             MOVEI T,3400          ;BACKSPACE\r
11907         000441' 260140  000022' 03530             PUSHJ PDP, MTGO1-1\r
11908         000442' 201200  000016  03540   MTEOT2:   MOVEI T,16            ;SPACE ONE FILE\r
11909         000443' 260140  000006' 03550             PUSHJ PDP, MTAPE\r
11910         000444' 201200  000006  03560             MOVEI T,6 ;SPACE ONE RECORD\r
11911         000445' 260140  000006' 03570             PUSHJ PDP, MTAPE\r
11912         000446' 260140  000006* 03580             PUSHJ PDP, WAIT1              ;WAIT UNTIL SPACING IS COMPLE\r
11913         000447' 200006  000002  03590             MOVE IOS, DEVIOS(DEVDAT)\r
11914         000450' 607000  004000  03600             TLNN IOS, IOSEOF              ;WAS EOF DETECTED?\r
11915         000451' 254000  000442' 03610             JRST MTEOT2                   ;RESUME SPACING\r
11916         000452' 201200  000007  03620             MOVEI T,7 ;BACKSPACE, LOGICAL EOF FOUND\r
11917         000453' 254000  000006' 03630             JRST MTAPE                    ;RETURN BACK TO MAIN PROGRAM\r
11918         000454' 000000  000012  03640   MTREDO:   12        ;NUMBER OF TIMES TO RE-EXECUTE\r
11919 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 10\r
11920         L. HANTMAN 8-9-65\r
11921 \r
11922 \r
11923 \r
11924                                 03680   ;DEVICE DEPENDENT DUMP MODES. MODE 16.\r
11925                                 03690   ;OUTPUT\r
11926         000455' 661000  000020  03700   MTDMPO:   TLO IOS, IO                   ;WRITING\r
11927         000456' 550200  000014  03710             HRRZ T,UUO\r
11928         000457' 260140  000056' 03720             PUSHJ PDP, MTCHEK             ;IS SYSTEM AVAILABLE?\r
11929         000460' 200120  000130' 03730             MOVE TAC1, @MTOUT2    ;BLK0 AND DATA CONTROL COMMAN\r
11930         000461' 200040  000004  03740             MOVE TAC,T                    ;COMMAND LIST POINTER\r
11931         000462' 201200  001000  03750             MOVEI T,1000          ;WRITING COMMAND\r
11932         000463' 505040  000007  03760   MTDMP1:   HRLI TAC, PROG                ;ACTUAL ADDRESS OF COMMAND LI\r
11933         000464' 202040  000531' 03770             MOVEM TAC, MTCMDP#    ;COMMAND POINTER\r
11934         000465' 336060  000001  03780             SKIPN TAC,@TAC                ;COMMAND WORD\r
11935         000466' 254000  000516' 03790             JRST MTDMP3                   ;NOTHING TO DO\r
11936         000467' 325040  000463' 03800             JUMPGE TAC, MTDMP1    ;CHANGE COMMAND SEQUENCE\r
11937         000470' 576040  000536' 03810             HLREM TAC, SVCNTR#    ;SAVE COUNTER\r
11938         000471' 553000  000001  03820             HRRZS TAC                     ;GET ADDRESS ALONE\r
11939         000472' 274040  000536' 03830             SUB TAC, SVCNTR               ;GET LAST ADDRESS\r
11940         000473' 313040  000000* 03840             CAMLE TAC, USRREL             ;LESS THAN END?\r
11941         000474' 254000  000514' 03850             JRST MTDMP2                   ;OUT OF BOUNDS\r
11942         000475' 200060  000531' 03860             MOVE TAC, @MTCMDP             ;PICK UP POINTER AGAIN\r
11943         000476' 270040  000007  03870             ADD TAC, PROG                 ;GET ACTUAL ADDRESS\r
11944         000477' 260140  000132' 03880             PUSHJ PDP, MTINDC             ;MOVE TAPE\r
11945         000500' 260140  000446* 03890             PUSHJ PDP,WAIT1\r
11946         000501' 350200  000531' 03900             AOS T,MTCMDP          ;UPDATE COMMAND POINTER\r
11947         000502' 607000  000020  03910             TLNN IOS, IO                  ;WRITING?\r
11948         000503' 254000  000507' 03920             JRST MTDMPI+2                 ;READING\r
11949         000504' 254000  000457' 03930             JRST MTDMPO+2                 ;WRITING\r
11950                                 03940   ;INPUT\r
11951         000505' 621000  000020  03950   MTDMPI:   TLZ IOS, IO                   ;READING\r
11952         000506' 550200  000014  03960             HRRZ T,UUO\r
11953         000507' 260140  000056' 03970             PUSHJ PDP, MTCHEK             ;IS SYSTEM AVAILABLE\r
11954         000510' 200120  000054' 03980             MOVE TAC1,@MTIN2              ;BLKI AND DATA CONTROL COMMAN\r
11955         000511' 200040  000004  03990             MOVE TAC,T                    ;COMMAND LIST POINTER\r
11956         000512' 201200  002400  04000             MOVEI T,2400          ;READ COMMAND\r
11957         000513' 254000  000463' 04010             JRST MTDMP1                   ;DUMP\r
11958                                 04020   ;ADDRESS ERROR\r
11959 \r
11960         000514' 260140  000516' 04040   MTDMP2:   PUSHJ PDP,MTDMP3\r
11961         000515' 254000  000000* 04050             JRST ADRERR\r
11962                                 04060   ;CLEAR ALL USE BITS. NOTHING IN COMMAND LIST\r
11963 \r
11964         000516' 371000  000250* 04080   MTDMP3:   SOSL DCREQ\r
11965         000517' 476000  000251* 04090             SETOM DCAVAL\r
11966         000520' 371000  000252* 04100   MTDMP4:   SOSL MTREQ\r
11967         000521' 476000  000253* 04110             SETOM MTAVAL\r
11968         000522' 620000  010000  04120             TRZ IOS,IOACT\r
11969         000523' 623000  000001  04130             TLZE IOS,IOW\r
11970         000524' 260140  000423* 04140             PUSHJ PDP,SETIOD\r
11971         000525' 202006  000002  04150             MOVEM IOS,DEVIOS(DEVDAT)\r
11972         000526' 263140  000000  04160             POPJ PDP,\r
11973 \r
11974                                 04180             END,\r
11975 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 10-1\r
11976         L. HANTMAN 8-9-65\r
11977 \r
11978         000537' 040300  000004\r
11979         000540' 070300  000000\r
11980         000541' 140300  000004\r
11981         000542' 000002  000001\r
11982         000543' 720000  004021\r
11983         000544' 000404' 000040\r
11984         000545' 140300  000002\r
11985         000546' 720100  003421\r
11986         000547' 264000  000206'\r
11987 \r
11988 NO ERRORS DETECTED\r
11989 \r
11990 PROGRAM BREAK IS 000550\r
11991 \r
11992 8K CORE USED\r
11993 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 11\r
11994         SYMBOL TABLE\r
11995 \r
11996                 000322  \r
11997 A               000000  INT\r
11998 AC1             000015  INT\r
11999 AC2             000016  INT\r
12000 AC3             000017  INT\r
12001 ADRERR          000515' EXT\r
12002 ADVBFE          000274' EXT\r
12003 ADVBFF          000244' EXT\r
12004 AL              000001  INT\r
12005 ASSCON          400000  INT\r
12006 ASSPRG          200000  INT\r
12007 B               000014  INT\r
12008 BUFPNT          000012  INT\r
12009 BUFWRD          000013  INT\r
12010 CLOCK           000416' EXT\r
12011 CLOSB           002000  INT\r
12012 CLSIN           000002  INT\r
12013 CLSOUT          000001  INT\r
12014 CPE             000010  \r
12015 CUXIT1          000173' EXT\r
12016 D               000017  INT\r
12017 DAT             000005  INT\r
12018 DC              000200  SPD\r
12019 DCAVAL          000517' EXT\r
12020 DCB             000100  \r
12021 DCL             000001  INT\r
12022 DCN             000001  \r
12023 DCREQ           000516' EXT\r
12024 DCW             020000  INT\r
12025 DCWAIT          000062' EXT\r
12026 DCWRD           000527' \r
12027 DDI             000007  INT\r
12028 DDO             000006  INT\r
12029 DDTMEM          000037  INT\r
12030 DDTSYM          000036  INT\r
12031 DEN             000004  INT\r
12032 DEVADR          000007  INT\r
12033 DEVBUF          000006  INT\r
12034 DEVCHR          000001  INT\r
12035 DEVCTR          000011  INT\r
12036 DEVDAT          000006  INT\r
12037 DEVIAD          000007  INT\r
12038 DEVIOS          000002  INT\r
12039 DEVLOG          000005  INT\r
12040 DEVMOD          000004  INT\r
12041 DEVNAM          000000  INT\r
12042 DEVOAD          000010  INT\r
12043 DEVPTR          000010  INT\r
12044 DEVSER          000003  INT\r
12045 DGF             000012  INT\r
12046 DIN             000003  INT\r
12047 DLK             000005  INT\r
12048 DOU             000002  INT\r
12049 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 11-1\r
12050         SYMBOL TABLE\r
12051 \r
12052 DR              000016  INT\r
12053 DRL             000000  INT\r
12054 DSI             000011  INT\r
12055 DSO             000010  INT\r
12056 DTW             040000  INT\r
12057 DVAVAL          000040  INT\r
12058 DVCDR           100000  INT\r
12059 DVDIR           000004  INT\r
12060 DVDIRI          400000  INT\r
12061 DVIN            000002  INT\r
12062 DVLPT           040000  INT\r
12063 DVMTA           000020  INT\r
12064 DVOUT           000001  INT\r
12065 DVTTY           000010  INT\r
12066 ENTRB           020000  INT\r
12067 ERF             000004  \r
12068 I               000010  INT\r
12069 IB              000013  INT\r
12070 IBUFB           200000  INT\r
12071 INITB           400000  INT\r
12072 INPB            010000  INT\r
12073 IO              000020  INT\r
12074 IOACT           010000  INT\r
12075 IOBEG           000002  INT\r
12076 IOBKTL          040000  INT\r
12077 IOBOT           004000  \r
12078 IOCON           000040  INT\r
12079 IODEND          020000  INT\r
12080 IODERR          200000  INT\r
12081 IODISC          400000  INT\r
12082 IODONE          400000  INT\r
12083 IODT            010000  \r
12084 IODTER          100000  INT\r
12085 IOEND           000040  INT\r
12086 IOFST           000004  INT\r
12087 IOIMPM          400000  INT\r
12088 IONRCK          000100  INT\r
12089 IORDEL          000100  INT\r
12090 IORET           000020  INT\r
12091 IOS             000000  INT\r
12092 IOSEOF          004000  \r
12093 IOSTRT          000010  INT\r
12094 IOTEND          002000  \r
12095 IOUSE           400000  INT\r
12096 IOW             000001  INT\r
12097 IOWC            000020  INT\r
12098 IOWS            400000  INT\r
12099 ITEM            000004  INT\r
12100 JBFADR          000000  INT\r
12101 JBFCTR          000002  INT\r
12102 JBFPTR          000001  INT\r
12103 JBTADR          000216' EXT\r
12104 JBUF            000005  INT\r
12105 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 11-2\r
12106         SYMBOL TABLE\r
12107 \r
12108 JDAT            000011  INT\r
12109 JERR            002000  INT\r
12110 JIOW            100000  INT\r
12111 JNA             004000  INT\r
12112 LOOKB           040000  INT\r
12113 LPE             000020  \r
12114 MDCSAV          000530' \r
12115 MTAPE           000006' \r
12116 MTAPE1          000000' INT\r
12117 MTAVAL          000521' EXT\r
12118 MTBSP           000356' \r
12119 MTCCHL          000000  EXT\r
12120 MTCCHN          000032' EXT\r
12121 MTCHEK          000056' \r
12122 MTCHK1          000061' \r
12123 MTCHK2          000063' \r
12124 MTCHK3          000113' \r
12125 MTCINI          000201' INT\r
12126 MTCINT          000211' INT\r
12127 MTCLK2          000421' \r
12128 MTCLOK          000404' \r
12129 MTCLS           000150' \r
12130 MTCLS1          000157' \r
12131 MTCMDP          000531' \r
12132 MTCON           000276' \r
12133 MTCONO          000044' \r
12134 MTCRET          000401' EXT\r
12135 MTCSAV          000213' EXT\r
12136 MTDC            000002  \r
12137 MTDCCN          000532' \r
12138 MTDCND          000206' \r
12139 MTDEV           000533' \r
12140 MTDISP          000166' ENT\r
12141 MTDMP1          000463' \r
12142 MTDMP2          000514' \r
12143 MTDMP3          000516' \r
12144 MTDMP4          000520' \r
12145 MTDMPI          000505' \r
12146 MTDMPO          000455' \r
12147 MTEND1          000247' \r
12148 MTEOF           000322' \r
12149 MTEOFF          000534' \r
12150 MTEOR           000324' \r
12151 MTEOT2          000442' \r
12152 MTERCN          000535' \r
12153 MTERR           000336' \r
12154 MTERR2          000354' \r
12155 MTGO            000033' \r
12156 MTGO1           000023' \r
12157 MTGO1A          000025' \r
12158 MTIDSP          000222' \r
12159 MTIGN           000330' \r
12160 MTIGN2          000402' \r
12161 \r\fMTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES                 PAGE 11-3\r
12162         SYMBOL TABLE\r
12163 \r
12164 MTIN            000046' \r
12165 MTIN1           000051' \r
12166 MTIN2           000054' \r
12167 MTINDC          000132' \r
12168 MTINDN          000236' \r
12169 MTLEOT          000436' \r
12170 MTNIO           000252' \r
12171 MTNIO2          000313' \r
12172 MTNOTI          000274' \r
12173 MTOUT           000120' \r
12174 MTOUT1          000124' \r
12175 MTOUT2          000130' \r
12176 MTOUTE          000145' \r
12177 MTPDUN          000225' \r
12178 MTREDO          000454' \r
12179 MTREQ           000520' EXT\r
12180 MTSTAK          000426' \r
12181 MTW             010000  INT\r
12182 MTWAIT          000066' EXT\r
12183 OBUFB           100000  INT\r
12184 OUT             000157' EXT\r
12185 OUTPB           004000  INT\r
12186 PDP             000003  INT\r
12187 PI              000004  SPD\r
12188 PICHN           000100  INT\r
12189 PIOMOD          000227' EXT\r
12190 PJOBN           000215' EXT\r
12191 PROG            000007  INT\r
12192 PUNIT           000025' EXT\r
12193 RUN             200000  INT\r
12194 RUNABL          204000  INT\r
12195 SEL             000002  \r
12196 SETIOD          000524' EXT\r
12197 SVCNTR          000536' \r
12198 T               000004  \r
12199 TAC             000001  INT\r
12200 TAC1            000002  INT\r
12201 TCF             000001  \r
12202 TEM             000010  INT\r
12203 TTYATC          020000  INT\r
12204 TTYUSE          010000  INT\r
12205 USRMOD          010000  INT\r
12206 USRREL          000473' EXT\r
12207 UUO             000014  INT\r
12208 UXIT            000200' EXT\r
12209 WAIT1           000500' EXT\r
12210 WSYNC           000113' EXT\r
12211 XNC             040000  \r
12212 \f   OOOOOOOOO         NNN         NNN         CCCCCCCCCCCC      EEEEEEEEEEEEEEE                                          \r
12213    OOOOOOOOO         NNN         NNN         CCCCCCCCCCCC      EEEEEEEEEEEEEEE                                          \r
12214    OOOOOOOOO         NNN         NNN         CCCCCCCCCCCC      EEEEEEEEEEEEEEE                                          \r
12215 OOO         OOO      NNN         NNN      CCC                  EEE                                                      \r
12216 OOO         OOO      NNN         NNN      CCC                  EEE                                                      \r
12217 OOO         OOO      NNN         NNN      CCC                  EEE                                                      \r
12218 OOO         OOO      NNNNNN      NNN      CCC                  EEE                                                      \r
12219 OOO         OOO      NNNNNN      NNN      CCC                  EEE                                                      \r
12220 OOO         OOO      NNNNNN      NNN      CCC                  EEE                                                      \r
12221 OOO         OOO      NNN   NNN   NNN      CCC                  EEEEEEEEEEEE                                             \r
12222 OOO         OOO      NNN   NNN   NNN      CCC                  EEEEEEEEEEEE                                             \r
12223 OOO         OOO      NNN   NNN   NNN      CCC                  EEEEEEEEEEEE                                             \r
12224 OOO         OOO      NNN      NNNNNN      CCC                  EEE                                                      \r
12225 OOO         OOO      NNN      NNNNNN      CCC                  EEE                                                      \r
12226 OOO         OOO      NNN      NNNNNN      CCC                  EEE                                                      \r
12227 OOO         OOO      NNN         NNN      CCC                  EEE                                                      \r
12228 OOO         OOO      NNN         NNN      CCC                  EEE                                                      \r
12229 OOO         OOO      NNN         NNN      CCC                  EEE                                                      \r
12230    OOOOOOOOO         NNN         NNN         CCCCCCCCCCCC      EEEEEEEEEEEEEEE                                          \r
12231    OOOOOOOOO         NNN         NNN         CCCCCCCCCCCC      EEEEEEEEEEEEEEE                                          \r
12232    OOOOOOOOO         NNN         NNN         CCCCCCCCCCCC      EEEEEEEEEEEEEEE                                          \r
12233 \r
12234 \r
12235 \r
12236 \r
12237 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
12238 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
12239 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
12240 LLL                  SSS                        TTT                                                                     \r
12241 LLL                  SSS                        TTT                                                                     \r
12242 LLL                  SSS                        TTT                                                                     \r
12243 LLL                  SSS                        TTT                                                                     \r
12244 LLL                  SSS                        TTT                                                                     \r
12245 LLL                  SSS                        TTT                                                                     \r
12246 LLL                     SSSSSSSSS               TTT                                                                     \r
12247 LLL                     SSSSSSSSS               TTT                                                                     \r
12248 LLL                     SSSSSSSSS               TTT                                                                     \r
12249 LLL                              SSS            TTT                                                                     \r
12250 LLL                              SSS            TTT                                                                     \r
12251 LLL                              SSS            TTT                                                                     \r
12252 LLL                              SSS            TTT                                                                     \r
12253 LLL                              SSS            TTT                                                                     \r
12254 LLL                              SSS            TTT                                                                     \r
12255 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
12256 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
12257 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
12258 \r
12259 \r
12260 \r
12261 \r
12262 Request created: 24-April-1978  11:23:08\r
12263 File: DSKB1 :ONCE  .LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:23
12264 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2325 \r
12265 File will be deleted after printing\r
12266 \f\rONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 1\r
12267         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12268 \r
12269                                 00010           XLIST\r
12270                                 01930          LIST\r
12271 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 7\r
12272         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12273 \r
12274 \r
12275                                 00010             TITLE ONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE\r
12276                                 00020             SUBTTL THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12277                                 00030   ;WHICH SHOULD BE THE LAST LOADED PROGRAM BEFORE SYSMAK AND DDT\r
12278                                 00040   ;THUS IF IT OVERFLOWS INTO THE USER AREA NO HARM IS DONE\r
12279                                 00050   ;INITIALIZE PRIORITY CHANNELS AND SETUP INTERRUPT SERVICE ROUTINE CHA\r
12280 \r
12281                                 00070   XP SYSFIN,.-1           ;LAST LOC. IN SYSTEM\r
12282                         010000  00080   NXM=10000 ;NON EX-MEM\r
12283 \r
12284                                 00100   INTERNAL PATCH\r
12285 \r
12286         000000'                 00120   PATCH:    BLOCK 100 ;PATCH SPACE\r
12287                                 00130                       ;C(SYSSIZE) SHOULD BE UPDATED AS PATCHES ARE MADE\r
12288 \r
12289                         000001  00150   T=TAC     ;SOME ACS\r
12290                         000002  00160   C=TAC1\r
12291                         000005  00170   INT=DAT   ;INTERRUPT SERVICE ENTRY POINT(USUALLY A CONSO INSTR.)\r
12292                         000006  00180   CHL=DEVDAT          ;THE PLACE WHERE PC IS STORED FOR THAT CHANNEL\r
12293 \r
12294                                 00200   ;LINK TO SERVICE ROUTINES\r
12295 \r
12296                                 00220   INTERNAL LINKSR\r
12297                                 00230   EXTERNAL NDEVM1     ;=NDOV-1 (DEFINED IN IOINI1)\r
12298                                 00240   EXTERNAL DEVINT,JOBSYM\r
12299 \r
12300         000100' 000000  000000  00260   LINKSR:   0                     ;CALLED WITH JSR FROM SYSINI\r
12301                                 00270                                   ;CHAIN INTERUPT SERVICE ROUTINES TOGETH\r
12302         000101' 515240  254000  00280             HRLZI INT, 254000     ;FORM JRST INSTR.\r
12303         000102' 201100  000000* 00290             MOVEI C, NDEVM1       ;NO. OV DEV. SERV. ROUTINES TO CHAIN\r
12304         000103' 554302  000000* 00300   DEV1:     HLRZ CHL, DEVINT(C)   ;LOC. WHERE PC IS STORED\r
12305         000104' 540242  000103* 00310             HRR INT, DEVINT(C)    ;INTERRUPT SERVICE ROUTINE ENTRY POINT\r
12306         000105' 200046  000001  00320             MOVE T, 1(CHL)        ;INSERT THIS ROUTINE AT FRONT OF CHAIN\r
12307         000106' 202045  000001  00330             MOVEM T, 1(INT)\r
12308         000107' 202246  000001  00340             MOVEM INT, 1(CHL)\r
12309         000110' 365100  000103' 00350             SOJGE C, DEV1\r
12310 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 2\r
12311         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12312 \r
12313 \r
12314 \r
12315                                 00390   ;MOVE SYMBOL TABLE UP IN MEMORY\r
12316                                 00400   ;EXEC MUST BE LOADED IN 15K OR LESS IF GOING INTO 16K MACHINE\r
12317 \r
12318         000111' 402000  000005  00420             SETZM DAT             ;FIND FIRST NON EX MEM\r
12319         000112' 700200  010000  00430             CONO APR,NXM          ;CLEAR NON-EX MEM FLAG\r
12320         000113' 271240  002000  00440             ADDI DAT,2000         ;TRY NEXT 1K BLOCK\r
12321         000114' 200105  000000  00450             MOVE TAC1,(DAT)       ;REFERENCE THIS LOCATION\r
12322         000115' 700340  010000  00460             CONSO APR,NXM         ;NON-EXISTENT?\r
12323         000116' 254000  000113' 00470             JRST .-3              ;NO\r
12324         000117' 275240  000001  00480             SUBI DAT,1            ;YES, HIGHEST LEGAL LOC\r
12325         000120' 202240  000037  00490             MOVEM DAT,DDTMEM      ;FOR DDT\r
12326         000121' 275240  000177  00500             SUBI DAT,200-1        ;MAKE ROOM FOR DECDUMP\r
12327         000122' 574100  000000* 00510             HLRE TAC1,JOBSYM      ;-LENGTH OF S. T.\r
12328         000123' 322100  000143' 00520             JUMPE TAC1,JRSTI1     ;0 IF NON S. T. TO MOVE UP\r
12329         000124' 213000  000002  00530             MOVNS TAC1            ;+LENGTH\r
12330         000125' 550040  000122* 00540             HRRZ TAC,JOBSYM       ;FIRST ADDRESS\r
12331         000126' 271042  000000  00550             ADDI TAC,(TAC1)\r
12332         000127' 504040  000002  00560             HRL TAC,TAC1          ;XWD LENGTH,LENGTH+FIRST ADDRESS\r
12333         000130' 275241  000001  00570             SUBI DAT,1(TAC)       ;NEW LAST+1-OLD LAST+1\r
12334         000131' 542240  000140' 00580             HRRM DAT,STO1         ;DIST. TO MOVE\r
12335         000132' 200100  000125* 00590             MOVE TAC1,JOBSYM      ;-N,FIRST ADD.\r
12336         000133' 271045  000001  00600             ADDI TAC,1(DAT)       ;FORM NEW S.T. POINTER\r
12337         000134' 202100  000132* 00610             MOVEM TAC1,JOBSYM\r
12338         000135' 201100  000134* 00620             MOVEI TAC1,JOBSYM\r
12339         000136' 202100  000036  00630             MOVEM TAC1,DDTSYM\r
12340         000137' 200101  777777  00640             MOVE TAC1,-1(TAC)\r
12341         000140' 202101  000140' 00650   STO1:     MOVEM TAC1,.(TAC)\r
12342         000141' 274040  000551' 00660             SUB TAC,[XWD 1,1]\r
12343         000142' 325040  000137' 00670             JUMPGE TAC,.-3\r
12344 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 3\r
12345         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12346 \r
12347 \r
12348 \r
12349                                 00710   ;SETUP LOCATIONS 40 THRU 57\r
12350 \r
12351         000143' 200040  000552' 00730   JRSTI1:   MOVE TAC,[XWD LOC40,40]\r
12352         000144' 251040  000057  00740             BLT TAC,57\r
12353         000145' 200040  000147' 00750             MOVE TAC,JRSTI\r
12354         000146' 202040  000101' 00760             MOVEM TAC,LINKSR+1    ;DO ONCE ONLY\r
12355         000147' 254020  000100' 00770   JRSTI:    JRST @LINKSR\r
12356 \r
12357                                 00790   EXTERN UUO0,ERROR\r
12358                                 00800   EXTERN CH1,CH2,CH3,CH4,CH5,CH6,CH7\r
12359 \r
12360         000150' 000000  000000  00820   LOC40:    0             ;UUO PC\r
12361         000151' 264000  000000* 00830             JSR UUO0      ;TO UUO HANDLER\r
12362         000152' 264000  000000* 00840             JSR CH1\r
12363         000153' 265240  000000* 00850             JSP DAT,ERROR\r
12364         000154' 264000  000000* 00860             JSR CH2\r
12365         000155' 265240  000153* 00870             JSP DAT,ERROR\r
12366         000156' 264000  000000* 00880             JSR CH3\r
12367         000157' 265240  000155* 00890             JSP DAT,ERROR\r
12368         000160' 264000  000000* 00900             JSR CH4\r
12369         000161' 265240  000157* 00910             JSP DAT,ERROR\r
12370         000162' 264000  000000* 00920             JSR CH5\r
12371         000163' 265240  000161* 00930             JSP DAT,ERROR\r
12372         000164' 264000  000000* 00940             JSR CH6\r
12373         000165' 265240  000163* 00950             JSP DAT,ERROR\r
12374         000166' 264000  000000* 00960             JSR CH7\r
12375         000167' 265240  000165* 00970             JSP DAT,ERROR\r
12376 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 4\r
12377         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12378 \r
12379 \r
12380 \r
12381 \r
12382                                 01020   ;ONCE ONLY CODE - OPERATOR SETUP DIALOGUE\r
12383 \r
12384                                 01040   INTERNAL ONCE\r
12385                                 01050   EXTERNAL CONMES,RADX10,CRLF,DECIN,DECIN1\r
12386                                 01060   EXTERNAL THSDAT,MAKEND,JOBFF\r
12387                                 01070   EXTERNAL ERNAM,OCTPNT,SYSSIZ,CONFIG,SYSNUM,SYSDAT\r
12388 \r
12389         000170' 000000  000000  01090   ONCE:     0\r
12390         000171' 201040  777777' 01100             MOVEI TAC,SYSFIN      ;SET SIZE OF MONITOR\r
12391         000172' 202040  000000* 01110             MOVEM TAC,SYSSIZ\r
12392         000173' 200240  000443' 01120             MOVE DAT,LINEP        ;SETUP LINE BYTE POINTER\r
12393         000174' 200140  000553' 01130             MOVE PDP,[XWD ONCEPN,ONCEPD]\r
12394         000175' 260140  000000* 01140             PUSHJ PDP,CRLF\r
12395         000176' 201040  000000* 01150             MOVEI TAC,CONFIG\r
12396         000177' 260140  000000* 01160             PUSHJ PDP,CONMES\r
12397         000200' 201040  000474' 01170             MOVEI TAC,TSEXEC\r
12398         000201' 260140  000177* 01180             PUSHJ PDP,CONMES\r
12399         000202' 554040  000000* 01190             HLRZ TAC,SYSNUM\r
12400         000203' 260140  000000* 01200             PUSHJ PDP,RADX10\r
12401         000204' 201040  000554' 01210             MOVEI TAC,[ASCIZ /./]\r
12402         000205' 260140  000201* 01220             PUSHJ PDP,CONMES\r
12403         000206' 550040  000202* 01230             HRRZ TAC,SYSNUM\r
12404         000207' 260140  000203* 01240             PUSHJ PDP,RADX10\r
12405         000210' 201040  000555' 01250             MOVEI TAC,[ASCIZ / /]\r
12406         000211' 260140  000205* 01260             PUSHJ PDP,CONMES\r
12407         000212' 201040  000000* 01270             MOVEI TAC,SYSDAT\r
12408         000213' 260140  000211* 01280             PUSHJ PDP,CONMES\r
12409         000214' 260140  000175* 01290             PUSHJ PDP,CRLF\r
12410         000215' 260140  000421' 01300             PUSHJ PDP,OPOUT\r
12411 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 5\r
12412         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12413 \r
12414 \r
12415 \r
12416                                 01340   ;ASK FOR TODAYS DATE AND CONVERT\r
12417                                 01350   ;DATE STORED AS ((Y-64)*12.+M-1)*31.+D-1\r
12418 \r
12419         000216' 402000  000000* 01370   DATLOP:   SETZM THSDAT\r
12420         000217' 200240  000443' 01380             MOVE DAT,LINEP\r
12421         000220' 201040  000477' 01390             MOVEI TAC,TODATE\r
12422         000221' 260140  000213* 01400             PUSHJ PDP,CONMES\r
12423         000222' 260140  000421' 01410             PUSHJ PDP,OPOUT\r
12424         000223' 260140  000376' 01420             PUSHJ PDP,GETLIN\r
12425         000224' 254000  000216' 01430             JRST DATLOP           ;JUST CR\r
12426         000225' 260140  000000* 01440             PUSHJ PDP,DECIN1      ;MONTH\r
12427         000226' 254000  000216' 01450             JRST DATLOP           ;ERROR\r
12428         000227' 332000  000002  01460             SKIPE TAC1\r
12429         000230' 303100  000014  01470             CAILE TAC1,^D12\r
12430         000231' 254000  000216' 01480             JRST DATLOP\r
12431         000232' 275100  000001  01490             SUBI TAC1,1\r
12432         000233' 221100  000037  01500             IMULI TAC1,^D31\r
12433         000234' 272100  000216* 01510             ADDM TAC1,THSDAT\r
12434         000235' 260140  000225* 01520             PUSHJ PDP,DECIN1      ;DAY\r
12435         000236' 254000  000216' 01530             JRST DATLOP\r
12436         000237' 332000  000002  01540             SKIPE TAC1\r
12437         000240' 303040  000037  01550             CAILE TAC,^D31\r
12438         000241' 254000  000216' 01560             JRST DATLOP\r
12439         000242' 275100  000001  01570             SUBI TAC1,1\r
12440         000243' 272100  000234* 01580             ADDM TAC1,THSDAT\r
12441         000244' 260140  000235* 01590             PUSHJ PDP,DECIN1      ;YEAR\r
12442         000245' 254000  000216' 01600             JRST DATLOP\r
12443         000246' 301100  000101  01610             CAIL TAC1,^D65\r
12444         000247' 303100  000143  01620             CAILE TAC1,^D99\r
12445         000250' 254000  000216' 01630             JRST DATLOP\r
12446         000251' 275100  000100  01640             SUBI TAC1,^D64        ;YEAR ZERO\r
12447         000252' 221100  000564  01650             IMULI TAC1,^D12*^D31\r
12448         000253' 272100  000243* 01660             ADDM TAC1,THSDAT\r
12449 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 6\r
12450         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12451 \r
12452 \r
12453 \r
12454                                 01700   ;GET TIME OF DAY\r
12455 \r
12456                                 01720   EXTERN TIME\r
12457 \r
12458         000254' 402000  000000* 01740   TIMLOP:   SETZM TIME\r
12459         000255' 200240  000443' 01750             MOVE DAT,LINEP\r
12460         000256' 201040  000506' 01760             MOVEI TAC,TIMEM\r
12461         000257' 260140  000221* 01770             PUSHJ PDP,CONMES\r
12462         000260' 260140  000421' 01780             PUSHJ PDP,OPOUT\r
12463         000261' 260140  000376' 01790             PUSHJ PDP,GETLIN\r
12464         000262' 254000  000254' 01800             JRST TIMLOP           ;JUST A CR\r
12465         000263' 134100  000001  01810             ILDB TAC1,TAC\r
12466         000264' 275100  000060  01820             SUBI TAC1,60\r
12467         000265' 331000  000002  01830             SKIPL TAC1            ;CHECK FIRST DIGIT OF HOUR\r
12468         000266' 303100  000002  01840             CAILE TAC1,2\r
12469         000267' 254000  000254' 01850             JRST TIMLOP\r
12470         000270' 220100  000556' 01860             IMUL TAC1,[^D60*^D60*^D60*^D10]\r
12471         000271' 272100  000254* 01870             ADDM TAC1,TIME\r
12472         000272' 134100  000001  01880             ILDB TAC1,TAC\r
12473         000273' 275100  000060  01890             SUBI TAC1,60          ;CONVERT TO BINARY\r
12474         000274' 331000  000002  01900             SKIPL TAC1\r
12475         000275' 303100  000011  01910             CAILE TAC1,^D9\r
12476         000276' 254000  000254' 01920             JRST TIMLOP\r
12477         000277' 221100  645700  01930             IMULI TAC1,^D60*^D60*^D60\r
12478         000300' 272100  000271* 01940             ADDM TAC1,TIME\r
12479         000301' 260140  000244* 01950             PUSHJ PDP,DECIN1\r
12480         000302' 254000  000254' 01960             JRST TIMLOP\r
12481         000303' 303100  000073  01970             CAILE TAC1,^D59\r
12482         000304' 254000  000254' 01980             JRST TIMLOP\r
12483         000305' 221100  007020  01990             IMULI TAC1,^D60*^D60\r
12484         000306' 272100  000300* 02000             ADDM TAC1,TIME\r
12485 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 7\r
12486         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12487 \r
12488 \r
12489 \r
12490                                 02040   ;PRINT IO CONFIGURATION\r
12491 \r
12492                                 02060   EXTERN DEVLST\r
12493 \r
12494         000307' 200240  000443' 02080              MOVE DAT,LINEP\r
12495         000310' 201040  000517' 02090              MOVEI TAC,IOCONF\r
12496         000311' 260140  000257* 02100              PUSHJ PDP,CONMES\r
12497         000312' 554300  000000* 02110              HLRZ DEVDAT,DEVLST\r
12498         000313' 201040  000004  02120              MOVEI TAC,ITEM\r
12499         000314' 261140  000001  02130              PUSH PDP,TAC\r
12500         000315' 201040  000001  02140   ONCE5:     MOVEI TAC,1\r
12501         000316' 510206  000000  02150              HLLZ ITEM,DEVNAM(DEVDAT)\r
12502         000317' 554306  000003  02160   ONCE4:     HLRZ DEVDAT,DEVSER(DEVDAT)\r
12503         000320' 322300  000324' 02170              JUMPE DEVDAT,ONCE6\r
12504         000321' 510106  000000  02180              HLLZ TAC1,DEVNAM(DEVDAT)\r
12505         000322' 316100  000004  02190              CAMN TAC1,ITEM\r
12506         000323' 344040  000317' 02200              AOJA TAC,ONCE4\r
12507         000324' 200340  000001  02210   ONCE6:     MOVE PROG,TAC        ;SAVE NO.\r
12508         000325' 260140  000207* 02220              PUSHJ PDP,RADX10\r
12509         000326' 201600  000040  02230              MOVEI UUO," "\r
12510         000327' 136600  000005  02240              IDPB UUO,DAT\r
12511         000330' 201600  000003  02250              MOVEI UUO,3\r
12512         000331' 200440  000557' 02260              MOVE JDAT,[POINT 6,ITEM]\r
12513         000332' 134100  000011  02270   ONCE7:     ILDB TAC1,JDAT\r
12514         000333' 271100  000240  02280              ADDI TAC1,240\r
12515         000334' 136100  000005  02290              IDPB TAC1,DAT\r
12516         000335' 367600  000332' 02300              SOJG UUO,ONCE7\r
12517         000336' 201040  000560' 02310              MOVEI TAC,[ASCIZ /'S/]\r
12518         000337' 303340  000001  02320              CAILE PROG,1\r
12519         000340' 260140  000311* 02330              PUSHJ PDP,CONMES\r
12520         000341' 260140  000214* 02340              PUSHJ PDP,CRLF\r
12521         000342' 326300  000315' 02350              JUMPN DEVDAT,ONCE5\r
12522         000343' 262140  000002  02360              POP PDP,TAC1\r
12523         000344' 260140  000421' 02370              PUSHJ PDP,OPOUT\r
12524 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 8\r
12525         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12526 \r
12527 \r
12528 \r
12529                                 02410   ;ASK IF SYSMAK IS WANTED\r
12530 \r
12531         000345' 200240  000443' 02430             MOVE DAT,LINEP\r
12532         000346' 201040  000524' 02440             MOVEI TAC,SYSM\r
12533         000347' 260140  000340* 02450             PUSHJ PDP,CONMES\r
12534         000350' 260140  000421' 02460             PUSHJ PDP,OPOUT\r
12535         000351' 260140  000376' 02470             PUSHJ PDP,GETLIN\r
12536         000352' 254000  000355' 02480             JRST ONCE2            ;NO SYSMAK\r
12537         000353' 201040  000000* 02490             MOVEI TAC,MAKEND      ;YES\r
12538         000354' 202040  000172* 02500             MOVEM TAC,SYSSIZ\r
12539 \r
12540                                 02520   ;IS EXEC DDT WANTED?\r
12541 \r
12542         000355' 200240  000443' 02540   ONCE2:    MOVE DAT,LINEP\r
12543         000356' 201040  000536' 02550             MOVEI TAC,SYSDM\r
12544         000357' 260140  000347* 02560             PUSHJ PDP,CONMES\r
12545         000360' 260140  000421' 02570             PUSHJ PDP,OPOUT\r
12546         000361' 260140  000376' 02580             PUSHJ PDP,GETLIN\r
12547         000362' 254000  000365' 02590             JRST ONCE3            ;NO \r
12548         000363' 201040  000000* 02600             MOVEI TAC,JOBFF       ;FIRST FREE LOCATION\r
12549         000364' 552040  000354* 02610             HRRZM TAC,SYSSIZ\r
12550 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 9\r
12551         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12552 \r
12553 \r
12554 \r
12555                                 02650   ;PRINT OCTAL SIZE OF MONITOR\r
12556 \r
12557         000365' 200240  000443' 02670   ONCE3:    MOVE DAT,LINEP\r
12558         000366' 201040  000541' 02680             MOVEI TAC,EXECIS\r
12559         000367' 260140  000357* 02690             PUSHJ PDP,CONMES\r
12560         000370' 200040  000364* 02700             MOVE TAC,SYSSIZ\r
12561         000371' 260140  000000* 02710             PUSHJ PDP,OCTPNT\r
12562         000372' 201040  000544' 02720             MOVEI TAC,LENGTH\r
12563         000373' 260140  000367* 02730             PUSHJ PDP,CONMES\r
12564         000374' 260140  000421' 02740             PUSHJ PDP,OPOUT\r
12565         000375' 254020  000170' 02750             JRST @ONCE\r
12566 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 10\r
12567         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12568 \r
12569 \r
12570 \r
12571                                 02790   ;ROUTINE TO READ A LINE FROM OPERATORS CONSOLE\r
12572                                 02800   ;CALL:    PUSHJ PDP,GETLIN\r
12573                                 02810   ;         JUST A CR TYPED IN\r
12574                                 02820   ;         A LINE TYPED IN,TAC SET AS BYTE POINTER\r
12575 \r
12576                                 02840   EXTERN CPOPJ, CPOPJ1\r
12577 \r
12578         000376' 200040  000443' 02860   GETLIN:   MOVE TAC,LINEP\r
12579         000377' 201200  000000  02870             MOVEI ITEM,0\r
12580         000400' 712340  000040  02880   GET1:     CONSO TTY,40\r
12581         000401' 254000  000400' 02890             JRST .-1\r
12582         000402' 712040  000002  02900             DATAI TTY,TAC1\r
12583         000403' 712140  000002  02910             DATAO TTY,TAC1\r
12584         000404' 136100  000001  02920             IDPB TAC1,TAC\r
12585         000405' 405100  000177  02930             ANDI TAC1,177\r
12586         000406' 306100  000177  02940             CAIN TAC1,177         ;RUBOUT\r
12587         000407' 254000  000000* 02950             JRST CPOPJ\r
12588         000410' 302100  000015  02960             CAIE TAC1,15\r
12589         000411' 344200  000400' 02970             AOJA ITEM,GET1\r
12590         000412' 712340  000020  02980             CONSO TTY,20\r
12591         000413' 254000  000412' 02990             JRST .-1\r
12592         000414' 201100  000012  03000             MOVEI TAC1,12\r
12593         000415' 712140  000002  03010             DATAO TTY,TAC1\r
12594         000416' 200040  000443' 03020             MOVE TAC,LINEP\r
12595         000417' 326200  000000* 03030             JUMPN ITEM,CPOPJ1\r
12596         000420' 263140  000000  03040             POPJ PDP,\r
12597 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 11\r
12598         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12599 \r
12600 \r
12601 \r
12602                                 03080   ;ROUTINE TO TYPE A LINE ON OPERATORS CONSOLE\r
12603                                 03090   ;ECHO CHECK STOPS LINE AND RETURNS\r
12604                                 03100   ;CALL:    DAT SET TO END OF MESSAGE\r
12605 \r
12606         000421' 200040  000443' 03120   OPOUT:    MOVE TAC,LINEP\r
12607         000422' 712040  000002  03130             DATAI TTY,TAC1\r
12608         000423' 316040  000005  03140   OPOUT1:   CAMN TAC,DAT\r
12609         000424' 262140  000000  03150             POP PDP,\r
12610         000425' 712300  000040  03160             CONSZ TTY,40\r
12611         000426' 254000  000434' 03170             JRST OPOUT2           ;ECHO CHECK\r
12612         000427' 712300  000020  03180             CONSZ TTY,20\r
12613         000430' 254000  000427' 03190             JRST .-1\r
12614         000431' 134100  000001  03200             ILDB TAC1,TAC\r
12615         000432' 712140  000002  03210             DATAO TTY,TAC1\r
12616         000433' 254000  000423' 03220             JRST OPOUT1\r
12617         000434' 712300  000020  03230   OPOUT2:   CONSZ TTY,20\r
12618         000435' 254000  000434' 03240             JRST .-1\r
12619         000436' 712140  000561' 03250             DATAO TTY,[15]\r
12620         000437' 712300  000020  03260             CONSZ TTY,20\r
12621         000440' 254000  000437' 03270             JRST .-1\r
12622         000441' 712140  000562' 03280             DATAO TTY,[12]\r
12623         000442' 263140  000000  03290             POPJ PDP,\r
12624 \r
12625         000443' 440700  000444' 03310   LINEP:    POINT 7,LINBUF\r
12626         000444'                 03320   LINBUF:   BLOCK 20\r
12627                         000010  03330   ONCEPN=10\r
12628         000464'                 03340   ONCEPD:   BLOCK ONCEPN\r
12629 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 12\r
12630         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12631 \r
12632 \r
12633 \r
12634                                 03380   ;MESSAGES\r
12635 \r
12636         000474' 202505  620246  03400   TSEXEC:   ASCIZ / T. S. EXEC-/\r
12637         000475' 271010  554212\r
12638         000476' 415320  000000\r
12639         000477'                 03410   TODATE:   ASCIZ /\r
12640         000477' 064252  454640  03420   TYPE TODAY'S DATE AS ABOVE.\r
12641         000500' 425012  447610\r
12642         000501' 406624  751500\r
12643         000502' 422032  442500\r
12644         000503' 406464  040604\r
12645         000504' 476550  527032\r
12646         000505' 050000  000000  03430   /\r
12647         000506'                 03440   TIMEM:    ASCIZ /\r
12648         000506' 064252  454640  03450   TYPE 4 DIGIT NAVY TIME(0953 IS 9:53 AM).\r
12649         000507' 425006  420210\r
12650         000510' 446171  152100\r
12651         000511' 472032  654500\r
12652         000512' 522231  542520\r
12653         000513' 301626  531500\r
12654         000514' 446464  034564\r
12655         000515' 325464  040632\r
12656         000516' 245341  505000  03460   /\r
12657         000517'                 03470   IOCONF:   ASCIZ /\r
12658         000517' 064251  147500  03480   IO CONFIGURATION\r
12659         000520' 416371  643222\r
12660         000521' 436532  240650\r
12661         000522' 446371  606424  03490   /\r
12662         000523' 000000  000000\r
12663 \r
12664         000524'                 03510   SYSM:     ASCIZ /\r
12665         000524' 064250  447500  03520   DO YOU WANT SYSMAK(TYPE Y IF YES,CR IF NO)?\r
12666         000525' 546372  520256\r
12667         000526' 406352  420246\r
12668         000527' 546471  540626\r
12669         000530' 242513  150212\r
12670         000531' 202624  044614\r
12671         000532' 202630  551530\r
12672         000533' 416444  044614\r
12673         000534' 202351  724576\r
12674         000535' 064240  000000  03530   /\r
12675 \r
12676         000536'                 03550   SYSDM:    ASCIZ /\r
12677         000536' 064250  554212  03560   EXEC DDT?\r
12678         000537' 415010  442250\r
12679         000540' 374321  200000  03570   /\r
12680         000541'                 03580   EXECIS:   ASCIZ /\r
12681         000541' 064250  554212  03590   EXEC IS /\r
12682         000542' 415011  151500\r
12683         000543' 000000  000000\r
12684         000544' 476072  440630  03600   LENGTH:   ASCIZ /OCTAL LOCATIONS LONG.\r
12685 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 12-1\r
12686         THIS IS ONLY CODE PLACED AT THE END OF IOINIT\r
12687 \r
12688         000545' 202311  741602\r
12689         000546' 522231  747246\r
12690         000547' 202311  747216\r
12691         000550' 270321  200000  03610   /\r
12692                                 03620             END,\r
12693         000551' 000001  000001\r
12694         000552' 000150' 000040\r
12695         000553' 000010  000464'\r
12696         000554' 270000  000000\r
12697         000555' 200000  000000\r
12698         000556' 000010  172600\r
12699         000557' 440600  000004\r
12700         000560' 236460  000000\r
12701         000561' 000000  000015\r
12702         000562' 000000  000012\r
12703 \r
12704 NO ERRORS DETECTED\r
12705 \r
12706 PROGRAM BREAK IS 000563\r
12707 \r
12708 8K CORE USED\r
12709 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 13\r
12710         SYMBOL TABLE\r
12711 \r
12712                 000265  \r
12713 A               000000  INT\r
12714 AC1             000015  INT\r
12715 AC2             000016  INT\r
12716 AC3             000017  INT\r
12717 AL              000001  INT\r
12718 APR             000000  SPD\r
12719 ASSCON          400000  INT\r
12720 ASSPRG          200000  INT\r
12721 B               000014  INT\r
12722 BUFPNT          000012  INT\r
12723 BUFWRD          000013  INT\r
12724 C               000002  \r
12725 CH1             000152' EXT\r
12726 CH2             000154' EXT\r
12727 CH3             000156' EXT\r
12728 CH4             000160' EXT\r
12729 CH5             000162' EXT\r
12730 CH6             000164' EXT\r
12731 CH7             000166' EXT\r
12732 CHL             000006  \r
12733 CLOSB           002000  INT\r
12734 CLSIN           000002  INT\r
12735 CLSOUT          000001  INT\r
12736 CONFIG          000176' EXT\r
12737 CONMES          000373' EXT\r
12738 CPOPJ           000407' EXT\r
12739 CPOPJ1          000417' EXT\r
12740 CRLF            000341' EXT\r
12741 D               000017  INT\r
12742 DAT             000005  INT\r
12743 DATLOP          000216' \r
12744 DCL             000001  INT\r
12745 DCW             020000  INT\r
12746 DDI             000007  INT\r
12747 DDO             000006  INT\r
12748 DDTMEM          000037  INT\r
12749 DDTSYM          000036  INT\r
12750 DECIN           000000  EXT\r
12751 DECIN1          000301' EXT\r
12752 DEN             000004  INT\r
12753 DEV1            000103' \r
12754 DEVADR          000007  INT\r
12755 DEVBUF          000006  INT\r
12756 DEVCHR          000001  INT\r
12757 DEVCTR          000011  INT\r
12758 DEVDAT          000006  INT\r
12759 DEVIAD          000007  INT\r
12760 DEVINT          000104' EXT\r
12761 DEVIOS          000002  INT\r
12762 DEVLOG          000005  INT\r
12763 DEVLST          000312' EXT\r
12764 DEVMOD          000004  INT\r
12765 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 13-1\r
12766         SYMBOL TABLE\r
12767 \r
12768 DEVNAM          000000  INT\r
12769 DEVOAD          000010  INT\r
12770 DEVPTR          000010  INT\r
12771 DEVSER          000003  INT\r
12772 DGF             000012  INT\r
12773 DIN             000003  INT\r
12774 DLK             000005  INT\r
12775 DOU             000002  INT\r
12776 DR              000016  INT\r
12777 DRL             000000  INT\r
12778 DSI             000011  INT\r
12779 DSO             000010  INT\r
12780 DTW             040000  INT\r
12781 DVAVAL          000040  INT\r
12782 DVCDR           100000  INT\r
12783 DVDIR           000004  INT\r
12784 DVDIRI          400000  INT\r
12785 DVIN            000002  INT\r
12786 DVLPT           040000  INT\r
12787 DVMTA           000020  INT\r
12788 DVOUT           000001  INT\r
12789 DVTTY           000010  INT\r
12790 ENTRB           020000  INT\r
12791 ERNAM           000000  EXT\r
12792 ERROR           000167' EXT\r
12793 EXECIS          000541' \r
12794 GET1            000400' \r
12795 GETLIN          000376' \r
12796 I               000010  INT\r
12797 IB              000013  INT\r
12798 IBUFB           200000  INT\r
12799 INITB           400000  INT\r
12800 INPB            010000  INT\r
12801 INT             000005  \r
12802 IO              000020  INT\r
12803 IOACT           010000  INT\r
12804 IOBEG           000002  INT\r
12805 IOBKTL          040000  INT\r
12806 IOCON           000040  INT\r
12807 IOCONF          000517' \r
12808 IODEND          020000  INT\r
12809 IODERR          200000  INT\r
12810 IODISC          400000  INT\r
12811 IODONE          400000  INT\r
12812 IODTER          100000  INT\r
12813 IOEND           000040  INT\r
12814 IOFST           000004  INT\r
12815 IOIMPM          400000  INT\r
12816 IONRCK          000100  INT\r
12817 IORDEL          000100  INT\r
12818 IORET           000020  INT\r
12819 IOS             000000  INT\r
12820 IOSTRT          000010  INT\r
12821 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 13-2\r
12822         SYMBOL TABLE\r
12823 \r
12824 IOUSE           400000  INT\r
12825 IOW             000001  INT\r
12826 IOWC            000020  INT\r
12827 IOWS            400000  INT\r
12828 ITEM            000004  INT\r
12829 JBFADR          000000  INT\r
12830 JBFCTR          000002  INT\r
12831 JBFPTR          000001  INT\r
12832 JBUF            000005  INT\r
12833 JDAT            000011  INT\r
12834 JERR            002000  INT\r
12835 JIOW            100000  INT\r
12836 JNA             004000  INT\r
12837 JOBFF           000363' EXT\r
12838 JOBSYM          000135' EXT\r
12839 JRSTI           000147' \r
12840 JRSTI1          000143' \r
12841 LENGTH          000544' \r
12842 LINBUF          000444' \r
12843 LINEP           000443' \r
12844 LINKSR          000100' INT\r
12845 LOC40           000150' \r
12846 LOOKB           040000  INT\r
12847 MAKEND          000353' EXT\r
12848 MTW             010000  INT\r
12849 NDEVM1          000102' EXT\r
12850 NXM             010000  \r
12851 OBUFB           100000  INT\r
12852 OCTPNT          000371' EXT\r
12853 ONCE            000170' INT\r
12854 ONCE2           000355' \r
12855 ONCE3           000365' \r
12856 ONCE4           000317' \r
12857 ONCE5           000315' \r
12858 ONCE6           000324' \r
12859 ONCE7           000332' \r
12860 ONCEPD          000464' \r
12861 ONCEPN          000010  \r
12862 OPOUT           000421' \r
12863 OPOUT1          000423' \r
12864 OPOUT2          000434' \r
12865 OUTPB           004000  INT\r
12866 PATCH           000000' INT\r
12867 PDP             000003  INT\r
12868 PICHN           000100  INT\r
12869 PROG            000007  INT\r
12870 RADX10          000325' EXT\r
12871 RUN             200000  INT\r
12872 RUNABL          204000  INT\r
12873 STO1            000140' \r
12874 SYSDAT          000212' EXT\r
12875 SYSDM           000536' \r
12876 SYSFIN  777777  777777' INT\r
12877 \r\fONCE ONLY CODE - OPERATOR DIALOGUE AND SERVICE ROUT. LINKAGE                 PAGE 13-3\r
12878         SYMBOL TABLE\r
12879 \r
12880 SYSM            000524' \r
12881 SYSNUM          000206' EXT\r
12882 SYSSIZ          000370' EXT\r
12883 T               000001  \r
12884 TAC             000001  INT\r
12885 TAC1            000002  INT\r
12886 TEM             000010  INT\r
12887 THSDAT          000253' EXT\r
12888 TIME            000306' EXT\r
12889 TIMEM           000506' \r
12890 TIMLOP          000254' \r
12891 TODATE          000477' \r
12892 TSEXEC          000474' \r
12893 TTY             000120  SPD\r
12894 TTYATC          020000  INT\r
12895 TTYUSE          010000  INT\r
12896 USRMOD          010000  INT\r
12897 UUO             000014  INT\r
12898 UUO0            000151' EXT\r
12899 \fPPPPPPPPPPPP         TTTTTTTTTTTTTTT      RRRRRRRRRRRR            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
12900 PPPPPPPPPPPP         TTTTTTTTTTTTTTT      RRRRRRRRRRRR            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
12901 PPPPPPPPPPPP         TTTTTTTTTTTTTTT      RRRRRRRRRRRR            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
12902 PPP         PPP            TTT            RRR         RRR      SSS                  EEE                  RRR         RRR\r
12903 PPP         PPP            TTT            RRR         RRR      SSS                  EEE                  RRR         RRR\r
12904 PPP         PPP            TTT            RRR         RRR      SSS                  EEE                  RRR         RRR\r
12905 PPP         PPP            TTT            RRR         RRR      SSS                  EEE                  RRR         RRR\r
12906 PPP         PPP            TTT            RRR         RRR      SSS                  EEE                  RRR         RRR\r
12907 PPP         PPP            TTT            RRR         RRR      SSS                  EEE                  RRR         RRR\r
12908 PPPPPPPPPPPP               TTT            RRRRRRRRRRRR            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
12909 PPPPPPPPPPPP               TTT            RRRRRRRRRRRR            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
12910 PPPPPPPPPPPP               TTT            RRRRRRRRRRRR            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
12911 PPP                        TTT            RRR   RRR                        SSS      EEE                  RRR   RRR      \r
12912 PPP                        TTT            RRR   RRR                        SSS      EEE                  RRR   RRR      \r
12913 PPP                        TTT            RRR   RRR                        SSS      EEE                  RRR   RRR      \r
12914 PPP                        TTT            RRR      RRR                     SSS      EEE                  RRR      RRR   \r
12915 PPP                        TTT            RRR      RRR                     SSS      EEE                  RRR      RRR   \r
12916 PPP                        TTT            RRR      RRR                     SSS      EEE                  RRR      RRR   \r
12917 PPP                        TTT            RRR         RRR      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
12918 PPP                        TTT            RRR         RRR      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
12919 PPP                        TTT            RRR         RRR      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
12920 \r
12921 \r
12922 \r
12923 \r
12924 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
12925 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
12926 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
12927 LLL                  SSS                        TTT                                                                     \r
12928 LLL                  SSS                        TTT                                                                     \r
12929 LLL                  SSS                        TTT                                                                     \r
12930 LLL                  SSS                        TTT                                                                     \r
12931 LLL                  SSS                        TTT                                                                     \r
12932 LLL                  SSS                        TTT                                                                     \r
12933 LLL                     SSSSSSSSS               TTT                                                                     \r
12934 LLL                     SSSSSSSSS               TTT                                                                     \r
12935 LLL                     SSSSSSSSS               TTT                                                                     \r
12936 LLL                              SSS            TTT                                                                     \r
12937 LLL                              SSS            TTT                                                                     \r
12938 LLL                              SSS            TTT                                                                     \r
12939 LLL                              SSS            TTT                                                                     \r
12940 LLL                              SSS            TTT                                                                     \r
12941 LLL                              SSS            TTT                                                                     \r
12942 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
12943 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
12944 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
12945 \r
12946 \r
12947 \r
12948 \r
12949 Request created: 24-April-1978  11:23:08\r
12950 File: DSKB1 :PTRSER.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:23
12951 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2307 \r
12952 File will be deleted after printing\r
12953 \f\rPTRSER - PAPER TAPE READER SERVICE ROUTINE                 PAGE 1\r
12954         8-15-65\r
12955 \r
12956                                 00010           XLIST\r
12957                                 01930          LIST\r
12958 \r\fPTRSER - PAPER TAPE READER SERVICE ROUTINE                 PAGE 7\r
12959         8-15-65\r
12960 \r
12961 \r
12962                                 00010   TITLE PTRSER - PAPER TAPE READER SERVICE ROUTINE\r
12963                                 00020   SUBTTL 8-15-65\r
12964                                 00030   EXTERNAL WSYNC, STOSQD, ILLOUT\r
12965                                 00040   EXTERNAL STODAT, IOSET, SETBYT, CKS12, ADVBFF\r
12966                                 00050   EXTERNAL SETIOD, PTRSAV, PTRCHN, PTRRET,PIOMOD\r
12967                                 00060   INTERNAL PTRINT\r
12968 \r
12969                                 00080   ;PTR DEVICE DATA BLOCK LINKAGE\r
12970 \r
12971                                 00100   EXTERNAL PTRDB,PTRDAT,PTRCHR,PTRIOS,PTRSER,PTRMOD,PTRBUF\r
12972                                 00110   EXTERNAL PTRADR,PTRPTR,PTRCTR,PTRSVC,PTRSV1\r
12973                                 00120   ENTRY PTRDSP\r
12974 \r\fPTRSER - PAPER TAPE READER SERVICE ROUTINE                 PAGE 2\r
12975         8-15-65\r
12976 \r
12977 \r
12978 \r
12979                                 00160   ,PARAMETER ASSIGNMENTS\r
12980                                 00170   ,   PTR CONTROL REGISTER \r
12981                         000010  00180             PTRDON=10;            DONE FLAG\r
12982                         000020  00190             PTRBSY=20;            BUSY FLAG\r
12983                         000040  00200             PTRBIN=40;            BINARY READ MODE\r
12984                         000400  00210             POW=400;   POWER.  ON=1\r
12985 \r
12986                                 00230   ,   SPECIAL IO STATUS WORD ASSIGMENTS\r
12987                         002000  00240             PTRERR=2000\r
12988                         200000  00250             PTRFCI=200000\r
12989                         100000  00260             PTRPOW=100000\r
12990                                 00270   ,   SPECIAL ASCII CHARACTERS\r
12991                         000200  00280             NULL=200\r
12992                         000377  00290             RUBOUT=377\r
12993                         000232  00300             S2EOF=232;            END OF FILE\r
12994                                 00310   ,   PI CONTROL REGISTER\r
12995                         000200  00320             PION=200\r
12996                         000400  00330             PIOFF=400\r
12997 \r
12998                                 00350   REPEAT 0,<P\r
12999                                 00360   ,PTR DATA BLOCK\r
13000                                 00370   PTRDAT:   SIXBIT "PTR"\r
13001                                 00380   PTRCHR:   41\r
13002                                 00390   PTRIOS:   0\r
13003                                 00400   PTRSER:   EXP PTRDSP\r
13004                                 00410   PTRMOD:   XWD 1000+PROG,10403\r
13005                                 00420    0\r
13006                                 00430   PTRBUF:   0\r
13007                                 00440   PTRADR:   XWD PROG,0\r
13008                                 00450   PTRPTR:   0\r
13009                                 00460   PTRCTR:   0\r
13010                                 00470   PTRSVC:   0\r
13011                                 00480   PTRSV1:   0\r
13012                                 00490   >\r
13013 \r
13014                                 00510   ,PTR SERVICE DISPATCH TABLE\r
13015 \r
13016         000000' 254000  000134' 00530   PTRDSP:   JRST PTRREL           ;RELEASE\r
13017         000001' 263140  000000  00540             POPJ PDP,;            CLOSE\r
13018         000002' 254000  000000* 00550             JRST ILLOUT           ;OUTPUT\r
13019         000003' 254000  000004' 00560             JRST PTRINP;          INPUT\r
13020 \r\fPTRSER - PAPER TAPE READER SERVICE ROUTINE                 PAGE 3\r
13021         8-15-65\r
13022 \r
13023 \r
13024 \r
13025         000004' 607000  000002  00600   PTRINP:   TLNN IOS,IOBEG;       VIRGIN DEVICE? (IOBEG=1?)\r
13026         000005' 254000  000013' 00610             JRST PTRIN1;          NO\r
13027         000006' 661000  000004  00620             TLO IOS,IOFST;    IOFST:=1. NEXT ITEM WILL BE FIRST ITEM\r
13028         000007' 260140  000000* 00630             PUSHJ PDP,SETBYT; TAC0-5:=TAC12-13:=0,TAC6-11:=BYTE SIZE\r
13029                                 00640   ,                               TAC14-17:=PROG\r
13030         000010' 202040  000000* 00650             MOVEM TAC,PTRPTR;     PTRPTR:=C(TAC)\r
13031         000011' 710700  000400  00660             CONSZ PTR,POW;        IS POWER ON?\r
13032         000012' 661000  100000  00670             TLO IOS,PTRPOW;       YES. PTRPOW:=1\r
13033         000013' 660000  010000  00680   PTRIN1:   TRO IOS,IOACT;        IOACT:=1\r
13034         000014' 135040  000000* 00690             LDB TAC,PIOMOD\r
13035         000015' 201100  000000* 00700             MOVEI TAC1, PTRCHN;   TAC1:=PTR PI CHANNEL ASSIGNME\r
13036         000016' 306040  000014  00710             CAIN TAC,B;           MODE=BINARY?\r
13037         000017' 271100  000040  00720             ADDI TAC1,PTRBIN;     YES.  ALPHA/BINARY:=BINARY\r
13038         000020' 201040  000010  00730             MOVEI TAC,PTRDON  ;SET CONSO INTERRUPT FLAG\r
13039         000021' 542040  000032' 00740             HRRM TAC,PTRINT\r
13040         000022' 627000  000002  00750             TLZN IOS,IOBEG;       VIRGIN DEVICE? (IOBEG=1?)\r
13041         000023' 254000  000027' 00760             JRST PTRIN4;          NO\r
13042         000024' 202000  000000* 00770             MOVEM IOS,PTRIOS;     PTRIOS:=C(IOS)\r
13043         000025' 710602  000020  00780             CONO PTR,PTRBSY(TAC1);        PTR BUSY FLAG:=1,ASSIGN INTER\r
13044         000026' 263140  000000  00790             POPJ PDP,;            INPUT RETURN-VIRGIN DEVICE\r
13045 \r
13046         000027' 202000  000024* 00810   PTRIN4:   MOVEM IOS,PTRIOS;     PTRIOS:=C(IOS)\r
13047         000030' 710602  000010  00820             CONO PTR,PTRDON(TAC1);        PTR DONE FLAG:=1,ASSIGN INTER\r
13048         000031' 263140  000000  00830             POPJ PDP,\r
13049 \r\fPTRSER - PAPER TAPE READER SERVICE ROUTINE                 PAGE 4\r
13050         8-15-65\r
13051 \r
13052 \r
13053 \r
13054         000032' 710740  000010  00870   PTRINT:   CONSO PTR,PTRDON      ;INTERRUPT.  IS DONE FLAG = 1?\r
13055         000033' 254000  000032' 00880             JRST PTRINT           ;NO. IF PTR IS IN FLAG LIST, THIS LOC\r
13056         000034' 331000  000027* 00890             SKIPL PTRIOS          ;DISCONNECT REQUEST? (IODISC=1?)\r
13057         000035' 710440  000000* 00900             DATAI PTR,PTRSV1      ;PTRSV1: = DATA WORD\r
13058         000036' 264000  000000* 00910             JSR PTRSAV            ;SAVE ACCUMULATORS AND ESTABLISH PDP\r
13059         000037' 201300  000000* 00920             MOVEI DEVDAT,PTRDAT   ;DEVDAT: = PTR SIXBIT\r
13060         000040' 260140  000000* 00930             PUSHJ PDP,IOSET       ;PROG:=C(JBTADR18-35),ITEM:=C(DEVCTR)\r
13061         000041' 200000  000034* 00940             MOVE IOS,PTRIOS       ;IOS:=C(PTRIOS)\r
13062         000042' 200240  000035* 00950             MOVE DAT,PTRSV1       ;DAT:=C(PTRSV1)\r
13063         000043' 710740  000400  00960             CONSO PTR,POW         ;PTR POWER ON?\r
13064         000044' 254000  000075' 00970             JRST PTREND           ;NO\r
13065         000045' 667000  100000  00980             TLON IOS,PTRPOW       ;PTRPOW=1? PTRPOW:=1\r
13066         000046' 254000  000131' 00990             JRST PTREX1           ;NO\r
13067         000047' 623000  400000  01000             TLZE IOS,IODISC\r
13068         000050' 254000  000121' 01010             JRST PTREX\r
13069         000051' 623000  200000  01020             TLZE IOS,PTRFCI       ;IS PTRFCI=1?\r
13070         000052' 200240  000000* 01030             MOVE DAT,PTRSVC       ;YES.  DAT:=C(PTRSVC)\r
13071         000053' 602000  000014  01040   PTRIN0:   TRNE IOS,B            ;MODE=BINARY?\r
13072         000054' 254000  000061' 01050             JRST PTRI0            ;YES\r
13073         000055' 302240  000200  01060             CAIE DAT,NULL         ;LAST CHARACTER NULL OR RUBOUT\r
13074         000056' 306240  000377  01070             CAIN DAT,RUBOUT\r
13075         000057' 254000  000131' 01080             JRST PTREX1           ;YES\r
13076         000060' 322240  000131' 01090             JUMPE DAT,PTREX1      ;DAT=0?\r
13077 \r
13078         000061' 260140  000000* 01110   PTRI0:    PUSHJ PDP,STODAT      ;NO STORE DATA WORD.\r
13079         000062' 255000  000000  01120             JFCL      ;CHECKSUM ERROR\r
13080         000063' 254000  000065' 01130             JRST PTRI1            ;BLOCK FULL OR BLOCK COMPLETE\r
13081         000064' 254000  000131' 01140             JRST PTREX1           ;DATA STORED CORRECTLY.\r
13082 \r
13083         000065' 260140  000000* 01160   PTRI1:    PUSHJ PDP,ADVBFF      ;ADVANCE BUFFER\r
13084         000066' 661000  400000  01170             TLO IOS,IODISC;       NEXT BUFFER IS FULL. IODISC:=1\r
13085         000067' 602000  000040  01180             TRNE IOS,IOCON;       NEXT BUFFER IS EMPTY.  CONTINUOUS? (IOC\r
13086         000070' 661000  400000  01190             TLO IOS,IODISC;       NON-CONT. OPERATION. IODISC:=1\r
13087         000071' 661000  000004  01200   PTRI2:    TLO IOS,IOFST;        IOFST:=1.  NEXT ITEM IS FIRST ITEM OF A\r
13088         000072' 623000  000001  01210             TLZE IOS,IOW;         IN A WAIT?  IOW:=0\r
13089         000073' 260140  000000* 01220             PUSHJ PDP,SETIOD;     IOWS:=1\r
13090         000074' 254000  000131' 01230             JRST PTREX1\r
13091 \r\fPTRSER - PAPER TAPE READER SERVICE ROUTINE                 PAGE 5\r
13092         8-15-65\r
13093 \r
13094 \r
13095 \r
13096                                 01270   ,COME HERE WHEN THE READER IS SHUT OFF\r
13097 \r
13098         000075' 630000  000137' 01290   PTREND:   TDZ IOS,[XWD PTRPOW,IOACT]    ;PTRPOW:=0,IOACT:=0\r
13099         000076' 260140  000134' 01300             PUSHJ PDP,PTRREL      ;CLEAR PTR AND CONSO FLAG\r
13100         000077' 135040  000014* 01310             LDB TAC,PIOMOD\r
13101         000100' 661000  000040  01320             TLO IOS,IOEND         ;IOEND:=1\r
13102         000101' 602040  000014  01330             TRNE TAC,B            ;MODE=A,AL\r
13103         000102' 254000  000114' 01340             JRST PTREIB           ;NO\r
13104         000103' 201240  000232  01350             MOVEI DAT,S2EOF;      EOF CHAR\r
13105         000104' 260140  000061* 01360             PUSHJ PDP,STODAT      ;STORE DATA WORD\r
13106         000105' 254000  000062' 01370             JRST PTRI0+1          ;CHECKSUM ERROR\r
13107         000106' 254000  000111' 01380             JRST .+3      ;BLOCK FULL OF BLOCK COMPLETE\r
13108         000107' 260140  000000* 01390   PTREI:    PUSHJ PDP,STOSQD;     FINISH THIS BUFFER, STORE WORD COUNT\r
13109         000110' 330000  000000  01400             SKIP\r
13110         000111' 260140  000065* 01410             PUSHJ PDP,ADVBFF      ;ADVANCE BUFFER\r
13111         000112' 330000  000000  01420             SKIP\r
13112         000113' 254000  000071' 01430             JRST PTRI2\r
13113 \r
13114         000114' 302040  000014  01450   PTREIB:   CAIE TAC,B            ;MODE=BINARY?\r
13115         000115' 254000  000107' 01460             JRST PTREI            ;NO\r
13116         000116' 607000  000004  01470             TLNN IOS,IOFST        ;IOFST=1?\r
13117         000117' 660000  002000  01480             TRO IOS,PTRERR        ;NO.  PTRERR:=1.  BINARY BLOCK INCOMPLE\r
13118         000120' 254000  000071' 01490             JRST PTRI2\r
13119 \r\fPTRSER - PAPER TAPE READER SERVICE ROUTINE                 PAGE 6\r
13120         8-15-65\r
13121 \r
13122 \r
13123 \r
13124                                 01530   ,DISCONNECT PTR\r
13125         000121' 337020  000000* 01540   PTREX:    SKIPG @PTRADR         ;IOUSE=1?\r
13126         000122' 254000  000125' 01550             JRST PTREX0           ;YES.\r
13127         000123' 710440  000042* 01560             DATAI PTR,PTRSV1\r
13128         000124' 254000  000053' 01570             JRST PTRIN0\r
13129 \r
13130         000125' 710440  000052* 01590   PTREX0:   DATAI PTR,PTRSVC      ;SAVE LAST DATA WORD FROM PTR\r
13131         000126' 260140  000134' 01600             PUSHJ PDP,PTRREL      ;CLEAR PTR AND CONSO FLAG\r
13132         000127' 661000  200000  01610             TLO IOS,PTRFCI        ;PTRFCI:=1\r
13133         000130' 620000  010000  01620             TRZ IOS,IOACT         ;IOACT:=0\r
13134 \r
13135         000131' 202200  000000* 01640   PTREX1:   MOVEM ITEM,PTRCTR     ;PTRCTR:=C(ITEM)\r
13136         000132' 202000  000041* 01650             MOVEM IOS,PTRIOS      ;PTRIOS:=C(IOS)\r
13137         000133' 254000  000000* 01660             JRST PTRRET           ;RESTORE ACCUMULATORS AND DISMISS INTER\r
13138 \r
13139                                 01680             INTERNAL PTRINI\r
13140 \r
13141         000134'                 01700   PTRINI:\r
13142         000134' 710600  000000  01710   PTRREL:   CONO PTR,0            ;CLEAR PTR CONTROL\r
13143         000135' 513000  000032' 01720             HLLZS PTRINT          ;CLEAR CONSO FLAG\r
13144         000136' 263140  000000  01730             POPJ PDP,\r
13145 \r
13146                                 01750             END,\r
13147         000137' 100000  010000\r
13148 \r
13149 NO ERRORS DETECTED\r
13150 \r
13151 PROGRAM BREAK IS 000140\r
13152 \r
13153 8K CORE USED\r
13154 \r\fPTRSER - PAPER TAPE READER SERVICE ROUTINE                 PAGE 7\r
13155         SYMBOL TABLE\r
13156 \r
13157                 000245  \r
13158 A               000000  INT\r
13159 AC1             000015  INT\r
13160 AC2             000016  INT\r
13161 AC3             000017  INT\r
13162 ADVBFF          000111' EXT\r
13163 AL              000001  INT\r
13164 ASSCON          400000  INT\r
13165 ASSPRG          200000  INT\r
13166 B               000014  INT\r
13167 BUFPNT          000012  INT\r
13168 BUFWRD          000013  INT\r
13169 CKS12           000000  EXT\r
13170 CLOSB           002000  INT\r
13171 CLSIN           000002  INT\r
13172 CLSOUT          000001  INT\r
13173 D               000017  INT\r
13174 DAT             000005  INT\r
13175 DCL             000001  INT\r
13176 DCW             020000  INT\r
13177 DDI             000007  INT\r
13178 DDO             000006  INT\r
13179 DDTMEM          000037  INT\r
13180 DDTSYM          000036  INT\r
13181 DEN             000004  INT\r
13182 DEVADR          000007  INT\r
13183 DEVBUF          000006  INT\r
13184 DEVCHR          000001  INT\r
13185 DEVCTR          000011  INT\r
13186 DEVDAT          000006  INT\r
13187 DEVIAD          000007  INT\r
13188 DEVIOS          000002  INT\r
13189 DEVLOG          000005  INT\r
13190 DEVMOD          000004  INT\r
13191 DEVNAM          000000  INT\r
13192 DEVOAD          000010  INT\r
13193 DEVPTR          000010  INT\r
13194 DEVSER          000003  INT\r
13195 DGF             000012  INT\r
13196 DIN             000003  INT\r
13197 DLK             000005  INT\r
13198 DOU             000002  INT\r
13199 DR              000016  INT\r
13200 DRL             000000  INT\r
13201 DSI             000011  INT\r
13202 DSO             000010  INT\r
13203 DTW             040000  INT\r
13204 DVAVAL          000040  INT\r
13205 DVCDR           100000  INT\r
13206 DVDIR           000004  INT\r
13207 DVDIRI          400000  INT\r
13208 DVIN            000002  INT\r
13209 DVLPT           040000  INT\r
13210 \r\fPTRSER - PAPER TAPE READER SERVICE ROUTINE                 PAGE 7-1\r
13211         SYMBOL TABLE\r
13212 \r
13213 DVMTA           000020  INT\r
13214 DVOUT           000001  INT\r
13215 DVTTY           000010  INT\r
13216 ENTRB           020000  INT\r
13217 I               000010  INT\r
13218 IB              000013  INT\r
13219 IBUFB           200000  INT\r
13220 ILLOUT          000002' EXT\r
13221 INITB           400000  INT\r
13222 INPB            010000  INT\r
13223 IO              000020  INT\r
13224 IOACT           010000  INT\r
13225 IOBEG           000002  INT\r
13226 IOBKTL          040000  INT\r
13227 IOCON           000040  INT\r
13228 IODEND          020000  INT\r
13229 IODERR          200000  INT\r
13230 IODISC          400000  INT\r
13231 IODONE          400000  INT\r
13232 IODTER          100000  INT\r
13233 IOEND           000040  INT\r
13234 IOFST           000004  INT\r
13235 IOIMPM          400000  INT\r
13236 IONRCK          000100  INT\r
13237 IORDEL          000100  INT\r
13238 IORET           000020  INT\r
13239 IOS             000000  INT\r
13240 IOSET           000040' EXT\r
13241 IOSTRT          000010  INT\r
13242 IOUSE           400000  INT\r
13243 IOW             000001  INT\r
13244 IOWC            000020  INT\r
13245 IOWS            400000  INT\r
13246 ITEM            000004  INT\r
13247 JBFADR          000000  INT\r
13248 JBFCTR          000002  INT\r
13249 JBFPTR          000001  INT\r
13250 JBUF            000005  INT\r
13251 JDAT            000011  INT\r
13252 JERR            002000  INT\r
13253 JIOW            100000  INT\r
13254 JNA             004000  INT\r
13255 LOOKB           040000  INT\r
13256 MTW             010000  INT\r
13257 NULL            000200  \r
13258 OBUFB           100000  INT\r
13259 OUTPB           004000  INT\r
13260 PDP             000003  INT\r
13261 PICHN           000100  INT\r
13262 PIOFF           000400  \r
13263 PIOMOD          000077' EXT\r
13264 PION            000200  \r
13265 POW             000400  \r
13266 \r\fPTRSER - PAPER TAPE READER SERVICE ROUTINE                 PAGE 7-2\r
13267         SYMBOL TABLE\r
13268 \r
13269 PROG            000007  INT\r
13270 PTR             000104  SPD\r
13271 PTRADR          000121' EXT\r
13272 PTRBIN          000040  \r
13273 PTRBSY          000020  \r
13274 PTRBUF          000000  EXT\r
13275 PTRCHN          000015' EXT\r
13276 PTRCHR          000000  EXT\r
13277 PTRCTR          000131' EXT\r
13278 PTRDAT          000037' EXT\r
13279 PTRDB           000000  EXT\r
13280 PTRDON          000010  \r
13281 PTRDSP          000000' ENT\r
13282 PTREI           000107' \r
13283 PTREIB          000114' \r
13284 PTREND          000075' \r
13285 PTRERR          002000  \r
13286 PTREX           000121' \r
13287 PTREX0          000125' \r
13288 PTREX1          000131' \r
13289 PTRFCI          200000  \r
13290 PTRI0           000061' \r
13291 PTRI1           000065' \r
13292 PTRI2           000071' \r
13293 PTRIN0          000053' \r
13294 PTRIN1          000013' \r
13295 PTRIN4          000027' \r
13296 PTRINI          000134' INT\r
13297 PTRINP          000004' \r
13298 PTRINT          000032' INT\r
13299 PTRIOS          000132' EXT\r
13300 PTRMOD          000000  EXT\r
13301 PTRPOW          100000  \r
13302 PTRPTR          000010' EXT\r
13303 PTRREL          000134' \r
13304 PTRRET          000133' EXT\r
13305 PTRSAV          000036' EXT\r
13306 PTRSER          000000  EXT\r
13307 PTRSV1          000123' EXT\r
13308 PTRSVC          000125' EXT\r
13309 RUBOUT          000377  \r
13310 RUN             200000  INT\r
13311 RUNABL          204000  INT\r
13312 S2EOF           000232  \r
13313 SETBYT          000007' EXT\r
13314 SETIOD          000073' EXT\r
13315 STODAT          000104' EXT\r
13316 STOSQD          000107' EXT\r
13317 TAC             000001  INT\r
13318 TAC1            000002  INT\r
13319 TEM             000010  INT\r
13320 TTYATC          020000  INT\r
13321 TTYUSE          010000  INT\r
13322 \r\fPTRSER - PAPER TAPE READER SERVICE ROUTINE                 PAGE 7-3\r
13323         SYMBOL TABLE\r
13324 \r
13325 USRMOD          010000  INT\r
13326 UUO             000014  INT\r
13327 WSYNC           000000  EXT\r
13328 \fPPPPPPPPPPPP         TTTTTTTTTTTTTTT      PPPPPPPPPPPP            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
13329 PPPPPPPPPPPP         TTTTTTTTTTTTTTT      PPPPPPPPPPPP            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
13330 PPPPPPPPPPPP         TTTTTTTTTTTTTTT      PPPPPPPPPPPP            SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
13331 PPP         PPP            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
13332 PPP         PPP            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
13333 PPP         PPP            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
13334 PPP         PPP            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
13335 PPP         PPP            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
13336 PPP         PPP            TTT            PPP         PPP      SSS                  EEE                  RRR         RRR\r
13337 PPPPPPPPPPPP               TTT            PPPPPPPPPPPP            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
13338 PPPPPPPPPPPP               TTT            PPPPPPPPPPPP            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
13339 PPPPPPPPPPPP               TTT            PPPPPPPPPPPP            SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
13340 PPP                        TTT            PPP                              SSS      EEE                  RRR   RRR      \r
13341 PPP                        TTT            PPP                              SSS      EEE                  RRR   RRR      \r
13342 PPP                        TTT            PPP                              SSS      EEE                  RRR   RRR      \r
13343 PPP                        TTT            PPP                              SSS      EEE                  RRR      RRR   \r
13344 PPP                        TTT            PPP                              SSS      EEE                  RRR      RRR   \r
13345 PPP                        TTT            PPP                              SSS      EEE                  RRR      RRR   \r
13346 PPP                        TTT            PPP                  SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
13347 PPP                        TTT            PPP                  SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
13348 PPP                        TTT            PPP                  SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
13349 \r
13350 \r
13351 \r
13352 \r
13353 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
13354 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
13355 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
13356 LLL                  SSS                        TTT                                                                     \r
13357 LLL                  SSS                        TTT                                                                     \r
13358 LLL                  SSS                        TTT                                                                     \r
13359 LLL                  SSS                        TTT                                                                     \r
13360 LLL                  SSS                        TTT                                                                     \r
13361 LLL                  SSS                        TTT                                                                     \r
13362 LLL                     SSSSSSSSS               TTT                                                                     \r
13363 LLL                     SSSSSSSSS               TTT                                                                     \r
13364 LLL                     SSSSSSSSS               TTT                                                                     \r
13365 LLL                              SSS            TTT                                                                     \r
13366 LLL                              SSS            TTT                                                                     \r
13367 LLL                              SSS            TTT                                                                     \r
13368 LLL                              SSS            TTT                                                                     \r
13369 LLL                              SSS            TTT                                                                     \r
13370 LLL                              SSS            TTT                                                                     \r
13371 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
13372 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
13373 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
13374 \r
13375 \r
13376 \r
13377 \r
13378 Request created: 24-April-1978  11:23:08\r
13379 File: DSKB1 :PTPSER.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:23
13380 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2296 \r
13381 File will be deleted after printing\r
13382 \f\rPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE                 PAGE 1\r
13383         8-15-65\r
13384 \r
13385                                 00010           XLIST\r
13386                                 01930          LIST\r
13387 \r\fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE                 PAGE 7\r
13388         8-15-65\r
13389 \r
13390 \r
13391                                 00010   TITLE PTPSER - PAPER TAPE PUNCH SERVICE ROUTINE\r
13392                                 00020   SUBTTL 8-15-65\r
13393                                 00030   EXTERNAL PTPCHN, PTPSAV, ADVBFE, ITMCT1, SETIOD, SETBYT, IOSET, CKS12\r
13394                                 00040   EXTERNAL ILLINP,  OUT, WAIT1, PTPRET,PTPCHL,PIOMOD\r
13395                                 00050   INTERNAL PTPINT\r
13396 \r
13397                                 00070   ;PTP DEVICE DATA BLOCK LINKAGE\r
13398 \r
13399                                 00090   EXTERNAL PTPDB,PTPDAT,PTPCHR,PTPIOS,PTPSER,PTPMOD,PTPBUF\r
13400                                 00100   EXTERNAL PTPPTR,PTPADR,PTPCTR,PTPCNT,PTPCHA,PTPSIO\r
13401                                 00110   ENTRY PTPDSP\r
13402 \r\fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE                 PAGE 2\r
13403         8-15-65\r
13404 \r
13405 \r
13406 \r
13407                                 00150   , PARAMETER ASSIGNMENTS\r
13408 \r
13409 \r
13410                                 00180   ,   PTP CONTROL REGISTER\r
13411                         000010  00190             PTPDON=10\r
13412 \r
13413                                 00210   ,   FORMAT CONTROL\r
13414                         000200  00220             PTPFDN=200\r
13415 \r
13416                                 00240   ,   SPECIAL IO STATUS WORD ASSIGNMENTS\r
13417                         200000  00250             PTPFED=200000\r
13418                         040000  00260             PTPSSQ=40000\r
13419                         020000  00270             PTPEOL=20000\r
13420                         010000  00280             PTPSEQ=10000\r
13421                         004000  00290             PTPBIN=4000           ;CHECKSUM BINARY\r
13422                         002000  00300             PTPIB=2000            ;IMAGE BINARY\r
13423 \r
13424                                 00320   ,   SPECIAL ASCII CHARACTERS\r
13425                         000200  00330             NULL=200\r
13426                         000377  00340             RUBOUT=377\r
13427                         000211  00350             HORTAB=211\r
13428                         000213  00360             VERTAB=213\r
13429                         000214  00370             FORMFD=214\r
13430 \r
13431                                 00390   REPEAT 0,<\r
13432                                 00400   ,PTP DATA BLOCK\r
13433                                 00410   \r
13434                                 00420   PTPDAT:   SIXBIT "PTP"\r
13435                                 00430   PTPCHR:   41\r
13436                                 00440   PTPIOS:   0\r
13437                                 00450   PTPSER:   EXP PTPDSP\r
13438                                 00460   PTPMOD:   XWD 1000+PROG.14403\r
13439                                 00470    0\r
13440                                 00480   PTPBUF:   0\r
13441                                 00490   PTPPTR:   0\r
13442                                 00500   PTPADR:   XWD PROG,0\r
13443                                 00510   PTPCTR:   0\r
13444                                 00520   PTPCNT:   0\r
13445                                 00530   PTPCHA:   0\r
13446                                 00540   PTPSIO:   0\r
13447                                 00550   >\r
13448 \r
13449                                 00570   ,PTP SERVICE DISPATCH TABLE\r
13450 \r
13451         000000' 254000  000004' 00590   PTPDSP:   JRST PTPREL           ;RELEASE\r
13452         000001' 254000  000007' 00600             JRST PTPCLS           ;CLOSE\r
13453         000002' 254000  000024' 00610             JRST PTPOUT           ;OUTPUT\r
13454         000003' 254000  000000* 00620             JRST ILLINP           ;INPUT\r
13455 \r\fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE                 PAGE 3\r
13456         8-15-65\r
13457 \r
13458 \r
13459 \r
13460                                 00660             INTERNAL PTPINI\r
13461         000004'                 00670   PTPINI:\r
13462         000004' 710200  000000  00680   PTPREL:   CONO PTP,0\r
13463         000005' 513000  000052' 00690             HLLZS PTPINT          ;CLEAR CONSO FLAG BITS\r
13464         000006' 263140  000000  00700             POPJ PDP,             ;RETURN\r
13465 \r
13466         000007' 260140  000000* 00720   PTPCLS:   PUSHJ PDP,OUT;        OUTPUT REMAINING BUFFERS\r
13467         000010' 260140  000000* 00730             PUSHJ PDP,WAIT1;      WAIT FOR IOACT=0.\r
13468         000011' 200000  000000* 00740             MOVE IOS,PTPIOS;      C(IOS):=C(PTPIOS)\r
13469         000012' 661000  600001  00750             TLO IOS,IODISC+PTPFED+IOW;    IODISC:=IOW:=PTPFED:=1\r
13470         000013' 660000  010000  00760             TRO IOS,IOACT;        IOACT:=1\r
13471         000014' 202000  000011* 00770             MOVEM IOS,PTPIOS;     C(PTPIOS):=C(IOS)\r
13472         000015' 201040  000200  00780             MOVEI TAC,200\r
13473         000016' 202040  000000* 00790             MOVEM TAC,PTPCNT;     PTPCNT:=400\r
13474         000017' 201040  000010  00800             MOVEI TAC,PTPDON      ;SET CONSO FLAG\r
13475         000020' 542040  000052' 00810             HRRM TAC,PTPINT\r
13476         000021' 201040  000000* 00820             MOVEI TAC,PTPCHN;     TAC:=PTPCHN,PI CHANNEL ASSIGNMENT\r
13477         000022' 710201  000010  00830             CONO PTP,PTPDON(TAC);         DONE FLAG:=1, ASSIGN PI CHANN\r
13478         000023' 254000  000010* 00840             JRST WAIT1            ;WAIT FOR IOACT=0, ALL BUFFERS FINISHED\r
13479 \r\fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE                 PAGE 4\r
13480         8-15-65\r
13481 \r
13482 \r
13483 \r
13484         000024' 623000  000002  00880   PTPOUT:   TLZE IOS,IOBEG        ;VIRGIN DEVICE? (IOBEG:=0)\r
13485         000025' 254000  000036' 00890             JRST PTPIN2           ;YES\r
13486 \r
13487         000026' 660000  010000  00910   PTPIN1:   TRO IOS,IOACT         ;IOACT:=1\r
13488         000027' 621000  400000  00920             TLZ IOS,IODISC        ;CLEAR DISCONNECT BIT\r
13489         000030' 202000  000014* 00930             MOVEM IOS,PTPIOS      ;PTPIOS:=C(IOS)\r
13490         000031' 201040  000010  00940             MOVEI TAC,PTPDON      ;SET CONSO FLAG BIT\r
13491         000032' 542040  000052' 00950             HRRM TAC,PTPINT\r
13492         000033' 201040  000021* 00960             MOVEI TAC, PTPCHN\r
13493         000034' 710201  000010  00970             CONO PTP,PTPDON (TAC);        DONE FLAG:=1, ASSIGN PI CHAN\r
13494         000035' 263140  000000  00980             POPJ PDP,             ;RETURN\r
13495 \r
13496         000036' 135040  000000* 01000   PTPIN2:   LDB TAC,PIOMOD\r
13497         000037' 661000  200024  01010             TLO IOS, IOFST+PTPFED+IO      ;IOFST:=PTPFED:=IO:=1\r
13498         000040' 621000  006000  01020             TLZ IOS,PTPBIN+PTPIB          ;CLEAR BINARY AND IMAGE BINAR\r
13499         000041' 306040  000013  01030             CAIN TAC,IB           ;IMAGE BINARY?\r
13500         000042' 661000  002000  01040             TLO IOS,PTPIB         ;YES\r
13501         000043' 306040  000014  01050             CAIN TAC,B                    ;MODE:=BINARY?\r
13502         000044' 661000  004000  01060             TLO IOS,PTPBIN        ;YES, PTPBIN:=1\r
13503         000045' 201040  000200  01070             MOVEI TAC,PTPFDN      ;PTPCNT:=PTPFDN\r
13504         000046' 202040  000016* 01080             MOVEM TAC,PTPCNT\r
13505         000047' 260140  000000* 01090             PUSHJ PDP,SETBYT      ;SETBYT\r
13506         000050' 502040  000000* 01100             HLLM TAC,PTPPTR       ;PTPPTR0-5:=PTPPTR12-13:=0,PTPPTR6-11:=\r
13507                                 01110                                   ;SIZE; PTPPTR14-17:=PROG\r
13508         000051' 254000  000026' 01120             JRST PTPIN1\r
13509 \r\fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE                 PAGE 5\r
13510         8-15-65\r
13511 \r
13512 \r
13513 \r
13514                                 01160   ,PUNCH INTERRUPT SERVICE\r
13515 \r
13516         000052' 710340  000010  01180   PTPINT:   CONSO PTP,PTPDON;     DONE FLAG=1?\r
13517         000053' 254000  000052' 01190             JRST PTPINT           ;NO. IF PTP IS IN FLAG LIST GO TO ERROR\r
13518         000054' 202000  000000* 01200             MOVEM IOS,PTPSIO      ;PTPSIO:=C(IOS)  SAVE IOS\r
13519         000055' 200000  000030* 01210             MOVE IOS,PTPIOS       ;IOS:=C(PTPIOS)\r
13520         000056' 603000  200000  01220             TLNE IOS,PTPFED       ;FEED REQUEST? (PTPFED=1?)\r
13521         000057' 254000  000151' 01230             JRST PTPS2            ;YES\r
13522         000060' 200000  000054* 01240             MOVE IOS,PTPSIO       ;RESTORE IOS\r
13523         000061' 264000  000000* 01250             JSR PTPSAV            ;SAVE ACS AND ESTABLISH PDP\r
13524         000062' 201300  000000* 01260             MOVEI DEVDAT,PTPDAT\r
13525         000063' 260140  000000* 01270             PUSHJ PDP,IOSET       ;PROG:=(JBTADR 18-35),ITEM:=C(DEVCTR)\r
13526         000064' 200000  000055* 01280             MOVE IOS,PTPIOS\r
13527         000065' 623000  400000  01290             TLZE IOS,IODISC       ;DISCONNECT?  (IODISC=1?)\r
13528         000066' 254000  000167' 01300             JRST PTPADV           ;YES\r
13529         000067' 623000  000004  01310             TLZE IOS,IOFST        ;IOFST=1?  IOFST:=0\r
13530         000070' 254000  000175' 01320             JRST PTP9             ;YES\r
13531         000071' 607000  006000  01330             TLNN IOS,PTPBIN+PTPIB         ;BINARY PUNCH MODE?\r
13532         000072' 254000  000121' 01340             JRST PTP3             ;NO\r
13533 \r
13534         000073' 200040  000000* 01360   PTPB0:    MOVE TAC,PTPCHA;      BINARY OUTPUT BYTE SIZE=36\r
13535         000074' 241040  000006  01370             ROT TAC,6\r
13536         000075' 202040  000073* 01380             MOVEM TAC,PTPCHA\r
13537         000076' 405040  000077  01390             ANDI TAC,77;          TAC:=XX, SIXBIT SUB-BYTE\r
13538         000077' 271040  000200  01400             ADDI TAC,200\r
13539         000100' 710140  000001  01410             DATAO PTP,TAC;        PUNCH 2XX\r
13540         000101' 371000  000046* 01420             SOSL PTPCNT;          C(PTPCNT):=C(PTPCNT)-1.   WORD DONE?\r
13541         000102' 254000  000227' 01430             JRST PTPXIT;          NO\r
13542         000103' 371000  000000* 01440             SOSL PTPCTR;          C(PTPCTR):=C(PTPCTR)-1.   ITEM COUNT < 0\r
13543         000104' 254000  000113' 01450             JRST PTPB1;           NO\r
13544         000105' 603000  002000  01460             TLNE IOS,PTPIB        ;IMAGE BINARY?\r
13545         000106' 665000  400000  01470             TLOA IOS,IODISC       ;YES, SUPPRESS TAPE FEED.\r
13546         000107' 661000  600000  01480             TLO IOS,IODISC+PTPFED         ;IODIS:=PTPFED:=1\r
13547         000110' 201040  000010  01490             MOVEI TAC,10\r
13548         000111' 202040  000101* 01500             MOVEM TAC,PTPCNT;     PTPCNT:=10\r
13549         000112' 254000  000227' 01510             JRST PTPXIT\r
13550 \r
13551         000113' 201040  000005  01530   PTPB1:    MOVEI TAC,5           ;PTPCNT:=5\r
13552         000114' 202040  000111* 01540             MOVEM TAC,PTPCNT\r
13553         000115' 200260  000050* 01550             MOVE DAT,@PTPPTR;     PTPCHA:=OUTPUT DATA WORD\r
13554         000116' 350000  000115* 01560             AOS PTPPTR;           PTPPTR:=C(PTPPTR)+1.  ADVANCE ITEM POIN\r
13555         000117' 202240  000075* 01570             MOVEM DAT,PTPCHA\r
13556         000120' 254000  000227' 01580             JRST PTPXIT\r
13557 \r\fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE                 PAGE 6\r
13558         8-15-65\r
13559 \r
13560 \r
13561 \r
13562         000121' 710140  000117* 01620   PTP3:     DATAO PTP,PTPCHA;     PUNCH CHARACTER\r
13563         000122' 602000  000014  01630             TRNE IOS,14;          IS MODE AN ALPHA MODE\r
13564         000123' 254000  000136' 01640             JRST PTP1;            NO\r
13565         000124' 200240  000121* 01650             MOVE DAT,PTPCHA\r
13566         000125' 302240  000211  01660             CAIE DAT,HORTAB;      HORIZONTAL OR VERTICAL TAB?\r
13567         000126' 306240  000213  01670             CAIN DAT,VERTAB\r
13568         000127' 254000  000216' 01680             JRST PTPP1;           YES\r
13569         000130' 302240  000214  01690             CAIE DAT,FORMFD;      FORM FEED?\r
13570         000131' 254000  000136' 01700             JRST PTP1;            NO\r
13571         000132' 661000  220000  01710             TLO IOS,PTPFED+PTPEOL;        PTPFED:=PTPEOL:=1\r
13572         000133' 201240  000020  01720             MOVEI DAT,20\r
13573         000134' 202240  000114* 01730             MOVEM DAT,PTPCNT;     PTPCNT:=20\r
13574         000135' 254000  000227' 01740             JRST PTPXIT\r
13575 \r\fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE                 PAGE 7\r
13576         8-15-65\r
13577 \r
13578 \r
13579 \r
13580         000136' 375000  000103* 01780   PTP1:     SOSGE     PTPCTR;     C(PTPCTR:=C(PTPCTR)-1.  IS C(PTPCTR)<0\r
13581         000137' 254000  000160' 01790             JRST PTP5             ;YES\r
13582         000140' 134240  000116* 01800             LDBI DAT,PTPPTR       ;DAT:=OUTPUT ITEM\r
13583         000141' 135040  000036* 01810             LDB TAC,PIOMOD\r
13584         000142' 306040  000010  01820             CAIN TAC,I;           MODE=IMAGE?\r
13585         000143' 254000  000147' 01830             JRST PTP6             ;YES\r
13586         000144' 435240  000200  01840             IORI DAT,200;         NO, INSERT EIGHTH HOLD\r
13587         000145' 306240  000200  01850             CAIN DAT,NULL;        NULL?\r
13588         000146' 254000  000136' 01860             JRST PTP1;            YES\r
13589 \r
13590         000147' 202240  000124* 01880   PTP6:     MOVEM DAT,PTPCHA;     PTPCHA:=OUTPUT ITEM\r
13591         000150' 254000  000227' 01890             JRST PTPXIT\r
13592 \r
13593         000151' 402000  000147* 01910   PTPS2:    CLEARM    PTPCHA;     PUNCH FEED\r
13594         000152' 710140  000151* 01920             DATAO PTP,PTPCHA\r
13595         000153' 377000  000134* 01930             SOSG PTPCNT;          COUNT FEED LINES\r
13596         000154' 621000  200000  01940             TLZ IOS,PTPFED;       PTPFED:=0\r
13597         000155' 202000  000064* 01950             MOVEM IOS,PTPIOS;     PTPIOS:=C(IOS)\r
13598         000156' 200000  000060* 01960             MOVE IOS,PTPSIO       ;RESTORE IOS\r
13599         000157' 254520  000000* 01970             JEN @PTPCHL           ;DISMISS\r
13600 \r
13601         000160' 661000  400000  01990   PTP5:     TLO IOS,IODISC;       IODISC:=1\r
13602         000161' 254000  000227' 02000             JRST PTPXIT\r
13603 \r
13604         000162' 550100  000000* 02020   PTPBN:    HRRZ TAC1,PTPADR;     TAC1:=BUFFER ADDRESS\r
13605         000163' 260140  000000* 02030             PUSHJ PDP,CKS12;      TAC:=CALCULATE CHECKSUM\r
13606         000164' 270100  000162* 02040             ADD TAC1, PTPADR\r
13607         000165' 502060  000002  02050             HLLM TAC,@TAC1;       STORE CHECKSUM IN LEFT HALF OF FIRST BU\r
13608         000166' 254000  000113' 02060             JRST PTPB1\r
13609 \r\fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE                 PAGE 8\r
13610         8-15-65\r
13611 \r
13612 \r
13613 \r
13614         000167' 260140  000000* 02100   PTPADV:   PUSHJ PDP,ADVBFE;     ADVANCE BUFFER\r
13615         000170' 254000  000222' 02110             JRST PTPDSC;          EXIT1.  NEXT BUFFER EMPTY\r
13616         000171' 602000  000040  02120             TRNE IOS,IOCON;       CONTINUOUS? (IOCON=1?)\r
13617         000172' 254000  000222' 02130             JRST PTPDSC;          YES\r
13618         000173' 623000  000001  02140             TLZE IOS,IOW;         IN A WAIT?  IOW:=0\r
13619         000174' 260140  000000* 02150             PUSHJ PDP,SETIOD;     YES.  IOWS:=1\r
13620         000175' 621000  000004  02160   PTP9:     TLZ IOS,IOFST;        IOFST:=0\r
13621         000176' 200040  000164* 02170             MOVE TAC,PTPADR\r
13622         000177' 350000  000001  02180             AOS TAC\r
13623         000200' 542040  000140* 02190             HRRM TAC,PTPPTR;      PTPPTR18-35:=C(PTPADR18-25)+1\r
13624         000201' 550220  000001  02200             HRRZ ITEM,@TAC;       ITEM:=WORD COUNT\r
13625         000202' 135100  000215' 02210             LDB TAC1,PTP91                ;PICK UP BYTE SIZE\r
13626         000203' 260140  000000* 02220             PUSHJ PDP,ITMCT1;     ITEM:=WORD COUNT*[36/BYTE SIZE]\r
13627         000204' 202200  000136* 02230             MOVEM ITEM,PTPCTR;    PTPCTR:=C(ITEM)\r
13628         000205' 322200  000167' 02240             JUMPE ITEM,PTPADV     ;       IS ITEM COUNT=0?\r
13629         000206' 603000  004000  02250             TLNE IOS,PTPBIN;      BINARY PUNCH MODE?\r
13630         000207' 254000  000162' 02260             JRST PTPBN;           YES\r
13631         000210' 607000  002000  02270             TLNN IOS,PTPIB        ;IMAGE BINARY?\r
13632         000211' 254000  000136' 02280             JRST PTP1\r
13633         000212' 350000  000200* 02290             AOS PTPPTR            ;YES\r
13634         000213' 370000  000204* 02300             SOS PTPCTR\r
13635         000214' 254000  000113' 02310             JRST PTPB1\r
13636 \r
13637         000215' 300600  000212* 02330   PTP91:    POINT 6,PTPPTR,11\r
13638 \r
13639         000216' 201240  000377  02350   PTPP1:    MOVEI DAT,RUBOUT;     PTPCHA:=RUBOUT\r
13640         000217' 202240  000152* 02360             MOVEM DAT,PTPCHA\r
13641         000220' 661000  020000  02370             TLO IOS,PTPEOL;       PTPEOL:=1\r
13642         000221' 254000  000227' 02380             JRST PTPXIT\r
13643 \r
13644         000222' 260140  000004' 02400   PTPDSC:   PUSHJ PDP,PTPREL      ;CLEAR PTP CONTROL REG AND CONSO BITS\r
13645         000223' 620000  010000  02410             TRZ IOS,IOACT;        IOACT:=0\r
13646         000224' 661000  000004  02420             TLO IOS,IOFST;        IOFST:=1\r
13647         000225' 623000  000001  02430             TLZE IOS,IOW;         IN A WAIT?  IOW:=0\r
13648         000226' 260140  000174* 02440             PUSHJ PDP,SETIOD;     YES.  IOSW:=1\r
13649 \r
13650         000227' 202000  000155* 02460   PTPXIT:   MOVEM IOS,PTPIOS;     PTPIOS:=C(IOS)\r
13651         000230' 254000  000000* 02470             JRST PTPRET;          NO\r
13652 \r
13653                                 02490   END,\r
13654 \r
13655 NO ERRORS DETECTED\r
13656 \r
13657 PROGRAM BREAK IS 000231\r
13658 \r
13659 8K CORE USED\r
13660 \r\fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE                 PAGE 9\r
13661         SYMBOL TABLE\r
13662 \r
13663                 000255  \r
13664 A               000000  INT\r
13665 AC1             000015  INT\r
13666 AC2             000016  INT\r
13667 AC3             000017  INT\r
13668 ADVBFE          000167' EXT\r
13669 AL              000001  INT\r
13670 ASSCON          400000  INT\r
13671 ASSPRG          200000  INT\r
13672 B               000014  INT\r
13673 BUFPNT          000012  INT\r
13674 BUFWRD          000013  INT\r
13675 CKS12           000163' EXT\r
13676 CLOSB           002000  INT\r
13677 CLSIN           000002  INT\r
13678 CLSOUT          000001  INT\r
13679 D               000017  INT\r
13680 DAT             000005  INT\r
13681 DCL             000001  INT\r
13682 DCW             020000  INT\r
13683 DDI             000007  INT\r
13684 DDO             000006  INT\r
13685 DDTMEM          000037  INT\r
13686 DDTSYM          000036  INT\r
13687 DEN             000004  INT\r
13688 DEVADR          000007  INT\r
13689 DEVBUF          000006  INT\r
13690 DEVCHR          000001  INT\r
13691 DEVCTR          000011  INT\r
13692 DEVDAT          000006  INT\r
13693 DEVIAD          000007  INT\r
13694 DEVIOS          000002  INT\r
13695 DEVLOG          000005  INT\r
13696 DEVMOD          000004  INT\r
13697 DEVNAM          000000  INT\r
13698 DEVOAD          000010  INT\r
13699 DEVPTR          000010  INT\r
13700 DEVSER          000003  INT\r
13701 DGF             000012  INT\r
13702 DIN             000003  INT\r
13703 DLK             000005  INT\r
13704 DOU             000002  INT\r
13705 DR              000016  INT\r
13706 DRL             000000  INT\r
13707 DSI             000011  INT\r
13708 DSO             000010  INT\r
13709 DTW             040000  INT\r
13710 DVAVAL          000040  INT\r
13711 DVCDR           100000  INT\r
13712 DVDIR           000004  INT\r
13713 DVDIRI          400000  INT\r
13714 DVIN            000002  INT\r
13715 DVLPT           040000  INT\r
13716 \r\fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE                 PAGE 9-1\r
13717         SYMBOL TABLE\r
13718 \r
13719 DVMTA           000020  INT\r
13720 DVOUT           000001  INT\r
13721 DVTTY           000010  INT\r
13722 ENTRB           020000  INT\r
13723 FORMFD          000214  \r
13724 HORTAB          000211  \r
13725 I               000010  INT\r
13726 IB              000013  INT\r
13727 IBUFB           200000  INT\r
13728 ILLINP          000003' EXT\r
13729 INITB           400000  INT\r
13730 INPB            010000  INT\r
13731 IO              000020  INT\r
13732 IOACT           010000  INT\r
13733 IOBEG           000002  INT\r
13734 IOBKTL          040000  INT\r
13735 IOCON           000040  INT\r
13736 IODEND          020000  INT\r
13737 IODERR          200000  INT\r
13738 IODISC          400000  INT\r
13739 IODONE          400000  INT\r
13740 IODTER          100000  INT\r
13741 IOEND           000040  INT\r
13742 IOFST           000004  INT\r
13743 IOIMPM          400000  INT\r
13744 IONRCK          000100  INT\r
13745 IORDEL          000100  INT\r
13746 IORET           000020  INT\r
13747 IOS             000000  INT\r
13748 IOSET           000063' EXT\r
13749 IOSTRT          000010  INT\r
13750 IOUSE           400000  INT\r
13751 IOW             000001  INT\r
13752 IOWC            000020  INT\r
13753 IOWS            400000  INT\r
13754 ITEM            000004  INT\r
13755 ITMCT1          000203' EXT\r
13756 JBFADR          000000  INT\r
13757 JBFCTR          000002  INT\r
13758 JBFPTR          000001  INT\r
13759 JBUF            000005  INT\r
13760 JDAT            000011  INT\r
13761 JERR            002000  INT\r
13762 JIOW            100000  INT\r
13763 JNA             004000  INT\r
13764 LOOKB           040000  INT\r
13765 MTW             010000  INT\r
13766 NULL            000200  \r
13767 OBUFB           100000  INT\r
13768 OUT             000007' EXT\r
13769 OUTPB           004000  INT\r
13770 PDP             000003  INT\r
13771 PICHN           000100  INT\r
13772 \r\fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE                 PAGE 9-2\r
13773         SYMBOL TABLE\r
13774 \r
13775 PIOMOD          000141' EXT\r
13776 PROG            000007  INT\r
13777 PTP             000100  SPD\r
13778 PTP1            000136' \r
13779 PTP3            000121' \r
13780 PTP5            000160' \r
13781 PTP6            000147' \r
13782 PTP9            000175' \r
13783 PTP91           000215' \r
13784 PTPADR          000176' EXT\r
13785 PTPADV          000167' \r
13786 PTPB0           000073' \r
13787 PTPB1           000113' \r
13788 PTPBIN          004000  \r
13789 PTPBN           000162' \r
13790 PTPBUF          000000  EXT\r
13791 PTPCHA          000217' EXT\r
13792 PTPCHL          000157' EXT\r
13793 PTPCHN          000033' EXT\r
13794 PTPCHR          000000  EXT\r
13795 PTPCLS          000007' \r
13796 PTPCNT          000153' EXT\r
13797 PTPCTR          000213' EXT\r
13798 PTPDAT          000062' EXT\r
13799 PTPDB           000000  EXT\r
13800 PTPDON          000010  \r
13801 PTPDSC          000222' \r
13802 PTPDSP          000000' ENT\r
13803 PTPEOL          020000  \r
13804 PTPFDN          000200  \r
13805 PTPFED          200000  \r
13806 PTPIB           002000  \r
13807 PTPIN1          000026' \r
13808 PTPIN2          000036' \r
13809 PTPINI          000004' INT\r
13810 PTPINT          000052' INT\r
13811 PTPIOS          000227' EXT\r
13812 PTPMOD          000000  EXT\r
13813 PTPOUT          000024' \r
13814 PTPP1           000216' \r
13815 PTPPTR          000215' EXT\r
13816 PTPREL          000004' \r
13817 PTPRET          000230' EXT\r
13818 PTPS2           000151' \r
13819 PTPSAV          000061' EXT\r
13820 PTPSEQ          010000  \r
13821 PTPSER          000000  EXT\r
13822 PTPSIO          000156' EXT\r
13823 PTPSSQ          040000  \r
13824 PTPXIT          000227' \r
13825 RUBOUT          000377  \r
13826 RUN             200000  INT\r
13827 RUNABL          204000  INT\r
13828 \r\fPTPSER - PAPER TAPE PUNCH SERVICE ROUTINE                 PAGE 9-3\r
13829         SYMBOL TABLE\r
13830 \r
13831 SETBYT          000047' EXT\r
13832 SETIOD          000226' EXT\r
13833 TAC             000001  INT\r
13834 TAC1            000002  INT\r
13835 TEM             000010  INT\r
13836 TTYATC          020000  INT\r
13837 TTYUSE          010000  INT\r
13838 USRMOD          010000  INT\r
13839 UUO             000014  INT\r
13840 VERTAB          000213  \r
13841 WAIT1           000023' EXT\r
13842 \fRRRRRRRRRRRR         UUU         UUU      NNN         NNN         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
13843 RRRRRRRRRRRR         UUU         UUU      NNN         NNN         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
13844 RRRRRRRRRRRR         UUU         UUU      NNN         NNN         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
13845 RRR         RRR      UUU         UUU      NNN         NNN      CCC                  SSS                  SSS            \r
13846 RRR         RRR      UUU         UUU      NNN         NNN      CCC                  SSS                  SSS            \r
13847 RRR         RRR      UUU         UUU      NNN         NNN      CCC                  SSS                  SSS            \r
13848 RRR         RRR      UUU         UUU      NNNNNN      NNN      CCC                  SSS                  SSS            \r
13849 RRR         RRR      UUU         UUU      NNNNNN      NNN      CCC                  SSS                  SSS            \r
13850 RRR         RRR      UUU         UUU      NNNNNN      NNN      CCC                  SSS                  SSS            \r
13851 RRRRRRRRRRRR         UUU         UUU      NNN   NNN   NNN      CCC                     SSSSSSSSS            SSSSSSSSS   \r
13852 RRRRRRRRRRRR         UUU         UUU      NNN   NNN   NNN      CCC                     SSSSSSSSS            SSSSSSSSS   \r
13853 RRRRRRRRRRRR         UUU         UUU      NNN   NNN   NNN      CCC                     SSSSSSSSS            SSSSSSSSS   \r
13854 RRR   RRR            UUU         UUU      NNN      NNNNNN      CCC                              SSS                  SSS\r
13855 RRR   RRR            UUU         UUU      NNN      NNNNNN      CCC                              SSS                  SSS\r
13856 RRR   RRR            UUU         UUU      NNN      NNNNNN      CCC                              SSS                  SSS\r
13857 RRR      RRR         UUU         UUU      NNN         NNN      CCC                              SSS                  SSS\r
13858 RRR      RRR         UUU         UUU      NNN         NNN      CCC                              SSS                  SSS\r
13859 RRR      RRR         UUU         UUU      NNN         NNN      CCC                              SSS                  SSS\r
13860 RRR         RRR      UUUUUUUUUUUUUUU      NNN         NNN         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
13861 RRR         RRR      UUUUUUUUUUUUUUU      NNN         NNN         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
13862 RRR         RRR      UUUUUUUUUUUUUUU      NNN         NNN         CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
13863 \r
13864 \r
13865 \r
13866 \r
13867 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
13868 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
13869 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
13870 LLL                  SSS                        TTT                                                                     \r
13871 LLL                  SSS                        TTT                                                                     \r
13872 LLL                  SSS                        TTT                                                                     \r
13873 LLL                  SSS                        TTT                                                                     \r
13874 LLL                  SSS                        TTT                                                                     \r
13875 LLL                  SSS                        TTT                                                                     \r
13876 LLL                     SSSSSSSSS               TTT                                                                     \r
13877 LLL                     SSSSSSSSS               TTT                                                                     \r
13878 LLL                     SSSSSSSSS               TTT                                                                     \r
13879 LLL                              SSS            TTT                                                                     \r
13880 LLL                              SSS            TTT                                                                     \r
13881 LLL                              SSS            TTT                                                                     \r
13882 LLL                              SSS            TTT                                                                     \r
13883 LLL                              SSS            TTT                                                                     \r
13884 LLL                              SSS            TTT                                                                     \r
13885 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
13886 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
13887 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
13888 \r
13889 \r
13890 \r
13891 \r
13892 Request created: 24-April-1978  11:23:08\r
13893 File: DSKB1 :RUNCSS.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:24
13894 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2283 \r
13895 File will be deleted after printing\r
13896 \f\rRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 1\r
13897         T. HASTINGS   8-16-65\r
13898 \r
13899                                 00010           XLIST\r
13900                                 01930          LIST\r
13901 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 7\r
13902         T. HASTINGS   8-16-65\r
13903 \r
13904 \r
13905                                 00010   TITLE RUNCSS - RUN CONTROL SUBROUTINES\r
13906                                 00020   SUBTTL T. HASTINGS   8-16-65\r
13907                                 00030   EXTERNAL APRCHN,APRCHL,CH6SAC,JBTADR,JOB,JOBAC,JOBDAT,JOBN\r
13908                                 00040   EXTERNAL JOBPDP,USRDDT,USRPDP,JOBDDT\r
13909                                 00050   EXTERNAL IORELS,JBTSTS,JOBADR,JOBCDP,JOBPC,JOBREL,JOBSA,JOBSYM\r
13910                                 00060   EXTERNAL MESPNT,QUANT1,JOBDAC,TTYSTR,STOPU,SCHEDF\r
13911                                 00070   EXTERNAL UXIT,IOCOMP,DCREQ,DCAVAL,DTREQ,DTAVAL,MTREQ,MTAVAL\r
13912                                 00080   EXTERNAL CH1XIT,CH2XIT,CH3XIT,CH4XIT,CH5XIT,CH6XIT,CH7XIT\r
13913                                 00090   EXTERNAL JOBFF,MJOBPD,JOBPDL,IOCOMP,PJOBN,USRLO,USRLO1,USRHI\r
13914                                 00100   EXTERNAL TTYFNU,RSCHED\r
13915 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 2\r
13916         T. HASTINGS   8-16-65\r
13917 \r
13918 \r
13919                                 00130   ;EXIT UUO ROUTINE\r
13920 \r
13921                                 00150             INTERNAL EXIT\r
13922                                 00160   EXTERNAL IORELS,TTYFNU,MESPNT,IOKILL\r
13923 \r
13924         000000' 260140  000000* 00180   EXIT:     PUSHJ PDP,IORELS      ;RELEASE ALL DEVICES\r
13925         000001' 260140  000000* 00190             PUSHJ PDP,TTYFNU\r
13926         000002' 201100  000005' 00200             MOVEI TAC1,EXMESS\r
13927         000003' 260140  000000* 00210             PUSHJ PDP,MESPNT\r
13928         000004' 254000  000030' 00220             JRST HOLD ;STOP THIS USER IMMEDIATELY\r
13929 \r
13930         000005'                 00240   EXMESS:   ASCIZ /\r
13931         000005' 064250  554222  00250   EXIT\r
13932         000006' 520321  200000  00260   /\r
13933                                 00270   ;RESET UUO ROUTINE\r
13934 \r
13935                                 00290             INTERNAL RESET\r
13936 \r
13937         000007' 260140  000000* 00310   RESET:    PUSHJ PDP,IOKILL      ;RELEASE ALL DEVICES\r
13938         000010' 260140  000230' 00320             PUSHJ PDP,SETUSR      ;CLEAR PART OF JOB DATA AREA\r
13939         000011' 254000  000000* 00330             JRST UXIT             ;AND RETURN TO CALLER\r
13940 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 3\r
13941         T. HASTINGS   8-16-65\r
13942 \r
13943 \r
13944 \r
13945                                 00370   ;COMMON ERROR HANDLING ROUTINES\r
13946                                 00380   ;DEVDAT MUST BE SET UP TO TTY DDB ON WHICH TO PRINT ERROR MESSAGE\r
13947 \r
13948                                 00400   ;HERE ON ERROR DETECTED AT INTERRUPT SERVICE LEVEL\r
13949                                 00410   ;0(PDP) CONTAINS ADR. OF DEVICE DATA BLOCK CAUSING ERROR\r
13950 \r
13951                                 00430   ;CALL     MOVE TAC, PI CHANNEL NO DETECTING ERROR\r
13952                                 00440   ;         JRST HOLDI\r
13953 \r
13954                                 00460   INTERNAL HOLDI,HOLD,HOLDI1\r
13955 \r
13956         000012' 200103  000000  00480   HOLDI:    MOVE TAC1, 0(PDP)     ;DEVICE DATA BLOCK\r
13957         000013' 135200  000266' 00490             LDB ITEM, [POINT 9, DEVCHR(TAC1), 8]          ;GET JOB NUMBER\r
13958         000014' 261140  000001  00500   HOLDI1:   PUSH PDP, TAC         ;SAVE PI CHANNEL NO.\r
13959         000015' 260140  000032' 00510             PUSHJ PDP, HOLDSB\r
13960         000016' 262140  000001  00520             POP PDP, TAC\r
13961         000017' 254001  000020' 00530             JRST CHNTAB(TAC)      ;GO RESTORE ACS AND DISMISS CHANNEL\r
13962 \r
13963         000020' 254000  000000* 00550   CHNTAB:   JRST RSCHED           ;INTERRUPT ON CLOCK CHANNEL,RESCHEDULE\r
13964         000021' 254000  000000* 00560             JRST CH1XIT\r
13965         000022' 254000  000000* 00570             JRST CH2XIT\r
13966         000023' 254000  000000* 00580             JRST CH3XIT\r
13967         000024' 254000  000000* 00590             JRST CH4XIT\r
13968         000025' 254000  000000* 00600             JRST CH5XIT\r
13969         000026' 254000  000000* 00610             JRST CH6XIT\r
13970         000027' 254000  000000* 00620             JRST CH7XIT\r
13971 \r
13972                                 00640   ;HERE ON ERROR FROM UUO LEVEL. ERROR MESSAGE ALREADY IN TTY BUFFER\r
13973 \r
13974                                 00660   ;DAT=BYTE POINTER TO END OF MESSAGE; DEVDAT=TTY DEV. DATA BLOCK\r
13975         000030' 200200  000000* 00670   HOLD:     MOVE ITEM, JOB                ;NO. OF THIS JOB\r
13976         000031' 260140  000243' 00680             PUSHJ PDP,WAIT1               ;WAIT UNTIL TTY FINISHED\r
13977 \r
13978         000032' 260140  000000* 00700   HOLDSB:   PUSHJ PDP,CRLF\r
13979         000033' 260140  000000* 00710             PUSHJ PDP, TTYSTR     ;START UP TTY TO PRINT ERROR MESSAGE\r
13980                                 00720   EXTERNAL CRLF\r
13981 \r
13982                                 00740   ;ROUTINE TO STOP USER AND FLAG AS ERROR STOP\r
13983                                 00750   ;CALL:    MOVE ITEM, JOB NUMBER\r
13984                                 00760   ;         PUSHJ PDP,ESTOP\r
13985 \r
13986 \r
13987                                 00790   INTERNAL ESTOP\r
13988 \r
13989         000034' 205040  002000  00810   ESTOP:    MOVSI TAC,JERR                ;SET ERROR BIT IN JOB STATUS\r
13990         000035' 436044  000000* 00820             IORM TAC, JBTSTS(ITEM)\r
13991         000036' 254000  000071' 00830             JRST STOP1\r
13992 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 4\r
13993         T. HASTINGS   8-16-65\r
13994 \r
13995 \r
13996 \r
13997                                 00870   ,BLOCK TRANSFER PROGRAM OVER LOADER\r
13998 \r
13999                                 00890             INTERNAL LDRBLT\r
14000                                 00900             EXTERNAL USRREL\r
14001 \r
14002                         000002  00920             PGADR=2               ;AC CONTAINING BEGINNING OF PROGRAM(LOA\r
14003 \r
14004         000037' 260140  000000* 00940   LDRBLT:   PUSHJ PDP,IORELS\r
14005         000040' 550051  000002  00950             HRRZ TAC, PGADR (JDAT)        ;ADD OFFSET TO SYMBOL TABLE P\r
14006         000041' 402011  000002  00960             SETZM PGADR(JDAT)     ;THEN CLEAR SO SYSMAK WILL STILL WORK\r
14007         000042' 550240  000007  00970             HRRZ DAT,PROG\r
14008         000043' 270240  000001  00980             ADD DAT,TAC\r
14009         000044' 272045  000000* 00990             ADDM TAC,JOBSYM(DAT)\r
14010         000045' 504240  000007  01000             HRL DAT,PROG\r
14011         000046' 554045  000000* 01010             HLRZ TAC,JOBSA(DAT)\r
14012         000047' 313040  000000* 01020             CAMLE TAC,USRREL      ;IS HIGHEST DESTINATION STILL IN USER A\r
14013         000050' 200040  000047* 01030             MOVE TAC,USRREL       ;NO. MAKE SURE IT IS.\r
14014         000051' 207000  000005  01040             MOVSS DAT\r
14015         000052' 270040  000005  01050             ADD TAC,DAT\r
14016         000053' 270240  000267' 01060             ADD DAT,[XWD 30,30]   ;MOVE PROGRAM DOWN\r
14017         000054' 251241  000000  01070             BLT DAT,(TAC)\r
14018         000055' 200051  000000* 01080             MOVE TAC,JOBDDT(JDAT)\r
14019         000056' 202040  000000* 01090             MOVEM TAC,USRDDT\r
14020         000057' 260140  000230' 01100             PUSHJ PDP,SETUSR\r
14021         000060' 260140  000001* 01110             PUSHJ PDP,TTYFNU\r
14022         000061' 201100  000064' 01120             MOVEI TAC1,LDRMES\r
14023         000062' 260140  000003* 01130             PUSHJ PDP,MESPNT\r
14024         000063' 254000  000030' 01140             JRST HOLD\r
14025 \r
14026         000064'                 01160   LDRMES:   ASCIZ /\r
14027         000064' 064251  447602  01170   LOADER FINISHED\r
14028         000065' 422132  220214\r
14029         000066' 446351  151620\r
14030         000067' 426101  505000  01180   /\r
14031 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 5\r
14032         T. HASTINGS   8-16-65\r
14033 \r
14034 \r
14035 \r
14036                                 01220   INTERNAL STOP1, STOP2, CONT1, START1\r
14037 \r
14038                         000200  01240   PION=200\r
14039                         000400  01250   PIOFF=400\r
14040 \r
14041                                 01270   ;ROUTINE TO PUT CURRENT JOB IN IO WAIT\r
14042                                 01280   ;ROUTINE TO STOP CURRENT JOB\r
14043                                 01290   ;MAY BE CALLED FROM ANY LEVEL\r
14044                                 01300   ;CALL;    PUSHJ PDP,STOP0\r
14045                                 01310   ;         RETURN                ;RETURN HERE IMMEDIATELY, IF CALLED FRO\r
14046                                 01320   ;PRIORITY CHANNEL THAN CLOCK. OTHERWISE RETURN WHEN JOB IS RUNABLE AG\r
14047 \r
14048                                 01340   INTERNAL STOP0\r
14049 \r
14050         000070' 200200  000030* 01360   STOP0:    MOVE ITEM, JOB                ;CURRENT JOB NUMBER\r
14051 \r
14052                                 01380   ;ROUTINE TO STOP ANY JOB FROM BEING SCHEDULED\r
14053                                 01390   ;CALL:\r
14054                                 01400   ;          MOVE ITEM, JOB NUMBER\r
14055                                 01410   ;          PUSHJ PDP, STOP1\r
14056                                 01420   ;          EXIT     ;RETURN HERE IMMEDIATELY, IF CALLED FROM HIGHER\r
14057                                 01430   ;PRIORITY CHANNEL THAN CLOCK, OTHERWISE RETURN WHEN JOB IC RUNABLE\r
14058                                 01440   ;CALLED WHEN CONTROL C TYPED OR ON ERROR MESSAGES\r
14059 \r
14060         000071' 205040  200000  01460   STOP1:     MOVSI TAC, RUN\r
14061         000072' 700600  000400  01470              CONO PI, PIOFF       ;DONE AT INTERUPT LEVEL HIGHER THAN DT\r
14062         000073' 616044  000035* 01480              TDNN TAC, JBTSTS(ITEM)               ;IS RUN BIT ON IN JOB STATUS\r
14063         000074' 254000  000105' 01490              JRST STOPA           ;NO\r
14064         000075' 413044  000073* 01500              ANDCAB TAC, JBTSTS(ITEM)             ;YES, SO CLEAR IT\r
14065         000076' 700600  000200  01510              CONO PI, PION\r
14066         000077' 603040  040000  01520              TLNE TAC, DTW        ;WAITING TO USE DECTAPE\r
14067         000100' 370000  000000* 01530              SOS DTREQ ;YES, REDUCE REQUEST COUNT\r
14068         000101' 603040  020000  01540              TLNE TAC, DCW        ;DATA CONTROL\r
14069         000102' 370000  000000* 01550              SOS DCREQ\r
14070         000103' 603040  010000  01560              TLNE TAC,MTW         ;MAG TAPE\r
14071         000104' 370000  000000* 01570              SOS MTREQ\r
14072         000105' 700600  000200  01580   STOPA:     CONO PI, PION        ;MAKE SURE PI ON\r
14073         000106' 332000  000000* 01590              SKIPE SCHEDF         ;IS CLOCK IN THE MIDDLE OF SCHEDULING\r
14074         000107' 254000  000112' 01600              JRST STOP2           ;YES, MAKE SURE THIS JOB WONT RUN\r
14075         000110' 312200  000070* 01610              CAME ITEM, JOB       ;NO, IS THIS JOB CURRENT USER\r
14076         000111' 263140  000000  01620              POPJ PDP,            ;NO\r
14077                                 01630                                   ;YES, MAKE CLOCK RESCHEDULE\r
14078 \r
14079                                 01650   ;ROUTINE TO CAUSE CLOCK TO RESCHEDULE\r
14080                                 01660   ;CALL :\r
14081                                 01670   ;          PUSHJ PDP, STOP2\r
14082                                 01680   ;          EXIT         ;RETURN WHEN JOB RUNABLE AGAIN\r
14083 \r
14084                                 01700   EXTERNAL PICLK\r
14085 \r
14086         000112' 700600  000400  01720   STOP2:     CONO PI, PIOFF       ;PREVENT CLOCK INTERRUPT\r
14087 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 5-1\r
14088         T. HASTINGS   8-16-65\r
14089 \r
14090         000113' 476000  000000* 01730              SETOM STOPU          ;SET FLAG FOR CLOCK ROUTINE\r
14091         000114' 700600  000000* 01740              CONO PI,PICLK        ;REQUEST CLOCK INTERRUPT AND TURN PI ON\r
14092                                 01750                                   ;CLOCK WILL TRAP IMMEDIATELY IF AT UUO\r
14093         000115' 263140  000000  01760              POPJ PDP,            ;RETURN HERE WHEN JOB RUNABLE AGAIN\r
14094 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 6\r
14095         T. HASTINGS   8-16-65\r
14096 \r
14097 \r
14098 \r
14099                                 01800   ;SUBROUTINE TO SETUP A MONITOR JOB TO BE RUN\r
14100                                 01810   ;JOB MUST HAVE CORE ASSIGNED\r
14101                                 01820   ;CALL:    MOVE ITEM, JOB NUMBER\r
14102                                 01830   ;         HRRI TAC1, ADDRESS OF MONITOR JOB(A SUBROUTINE)\r
14103                                 01840   ;         HRLI TAC1, RETURN ADDRESS WHEN JOB FINISHED\r
14104                                 01850   ;         PUSHJ PDP, MONJOB\r
14105                                 01860   ;         RETURN IMMEDIATELY IF CALLED FROM CLOCK LEV OR HIGHER\r
14106 \r
14107                                 01880   ;ALL ACS WILL BE SAVED FOR THE MONITOR JOB\r
14108 \r
14109                                 01900   INTERNAL MONJOB\r
14110                                 01910   EXTERNAL JOBDAC,JOBDHI,JOBPDP,MJOBPD,JOBPDL,JBTADR\r
14111 \r
14112         000116' 261140  000002  01930   MONJOB:   PUSH PDP, TAC1        ;SAVE ARG.\r
14113         000117' 550444  000000* 01940             HRRZ JDAT,JBTADR(ITEM)        ;ADDRESS OF JOBS DATA AREA\r
14114         000120' 201111  000000* 01950             MOVEI TAC1, JOBDAC(JDAT)      ;SAVE 0-17 IN DUMP ACS\r
14115         000121' 251111  000000* 01960             BLT TAC1, JOBDHI(JDAT)        ;IN JOB DATA AREA\r
14116         000122' 205100  000000* 01970             MOVSI TAC1,MJOBPD     ;SET UP PD LIST IN JOB DATA AREA\r
14117         000123' 541111  000000* 01980             HRRI TAC1, JOBPDL(JDAT)\r
14118         000124' 554043  000000  01990             HLRZ TAC, (PDP)       ;WITH RETURN AS FIRST ITEM\r
14119         000125' 261100  000001  02000             PUSH TAC1, TAC\r
14120         000126' 201051  000120* 02010             MOVEI TAC, JOBDAC(JDAT)\r
14121         000127' 202101  000003  02020             MOVEM TAC1,PDP(TAC)\r
14122         000130' 262140  000002  02030             POP PDP, TAC1         ;SET TO RUN\r
14123         000131' 405100  777777  02040             ANDI TAC1, 777777     ;FALL INTO STARTU\r
14124 \r
14125                                 02060   ;ROUTINE TO START A JOB AND LEAVE CONSOLE IN COMMAND MODE\r
14126                                 02070   ;CALL:    MOVE TAC1, START PC\r
14127                                 02080   ;         MOVE ITEM, JOB NUMBER\r
14128                                 02090   ;         PUSHJ PDP, STARTU\r
14129                                 02100   ;         RETURN IMMEDIATELY\r
14130                                 02110   INTERNAL STARTM\r
14131                                 02120   EXTERNAL TTYURC\r
14132 \r
14133         000132' 260140  000140' 02140   STARTM:   PUSHJ PDP, START1\r
14134         000133' 254000  000000* 02150             JRST TTYURC\r
14135 \r
14136                                 02170   ;START WITH TTY IN USER MODE\r
14137 \r
14138                                 02190   INTERNAL STARTU\r
14139                                 02200   EXTERNAL TTYSET\r
14140 \r
14141         000134' 260140  000140' 02220   STARTU:   PUSHJ PDP,START1\r
14142         000135' 254000  000000* 02230             JRST TTYSET           ;SET SCANNER TO CALL SETRUN WHEN\r
14143                                 02240                                   ;CR-LF AND INITIALIZE TTY\r
14144 \r
14145                                 02260   INTERNAL CONTM\r
14146                                 02270   EXTERNAL TTYURC\r
14147 \r
14148         000136' 254000  000133* 02290   CONTM:    JRST TTYURC\r
14149 \r
14150 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 6-1\r
14151         T. HASTINGS   8-16-65\r
14152 \r
14153                                 02310   ;ROUTINE TO CONTINUE A JOB FROM COMMAND MODE\r
14154                                 02320   ;CALL:    MOVE ITEM, JOB NUMBER\r
14155                                 02330   ;         PUSHJ PDP, CONTU\r
14156                                 02340   ;         RETURN IMMEDIATELY\r
14157                                 02350   INTERNAL CONTU\r
14158                                 02360   EXTERNAL TTYURC\r
14159 \r
14160         000137' 254000  000136* 02380   CONTU:    JRST TTYURC           ;SET SCANNER TO CALL SETRUN WHEN CR-LF\r
14161 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 7\r
14162         T. HASTINGS   8-16-65\r
14163 \r
14164 \r
14165 \r
14166                                 02420   ;ROUTINE TO SET JOB STATE TO BE SCHEDULED TO RUN\r
14167                                 02430   ;WITH SPECIFIED STARTING ADDRESS INCLUDING PC FLAGS\r
14168                                 02440   ;CALL:    MOVE TAC1,STARTING PC\r
14169                                 02450   ;         MOVE ITEM, JOB NUMBER\r
14170                                 02460   ;         MOVE JDAT, ADDRESS OF JOBS DATA AREA(THERE MUST BE ONE)\r
14171                                 02470   ;         PUSHJ PDP, START1\r
14172                                 02480             ;         EXIT        RETURN HERE IMMEDIATELY\r
14173 \r
14174         000140' 200051  000000* 02500   START1:   MOVE TAC,JOBPC(JDAT)          ;GET OLD PC\r
14175         000141' 202111  000140* 02510             MOVEM TAC1,JOBPC(JDAT)        ;STORE NEW PC\r
14176         000142' 603100  010000  02520             TLNE TAC1,USRMOD              ;IS NEW PC IN USER AREA?\r
14177         000143' 603040  010000  02530             TLNE TAC,USRMOD               ;YES, WAS OLD PC IN USER AREA\r
14178         000144' 254000  000150' 02540             JRST START2                   ;YES,DUMP ACS ARE HIS\r
14179         000145' 205111  000000  02550             MOVSI TAC1,(JDAT)             ;NO, UUO ACS ARE HIS\r
14180         000146' 541111  000126* 02560             HRRI TAC1,JOBDAC(JDAT)        ;MOVE THEM TO DUMP ACS\r
14181         000147' 251111  000121* 02570             BLT TAC1,JOBDHI(JDAT)\r
14182         000150' 205100  172000  02580   START2:   MOVSI TAC1,JERR+DCW+DTW+MTW+JIOW      ;CLEAR WAIT BITS\r
14183         000151' 412044  000075* 02590             ANDCAM TAC, JBTSTS(ITEM)      ;IN JOB STATUS WORD\r
14184 \r
14185                                 02610   ;ROUTINE TO CONTINUE ANY JOB AT CURRENT PC\r
14186                                 02620   ;CALL:\r
14187                                 02630   ;         MOVE ITEM, JOB NUMBER\r
14188                                 02640   ;         PUSHJ PDP, CONT1\r
14189                                 02650   ;         EXIT      RETURN IMMEDIATELY\r
14190 \r
14191         000152' 263140  000000  02670   CONT1:    POPJ PDP,\r
14192 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 8\r
14193         T. HASTINGS   8-16-65\r
14194 \r
14195 \r
14196 \r
14197                                 02710   ;ROUTINE TO SET JOB STATUS RUN BIT\r
14198                                 02720   ;CALL:    MOVE ITEM,JOB NUMBER\r
14199                                 02730   ;         PUSHJ PDP,SETRUN\r
14200 \r
14201                                 02750             INTERNAL SETRUN\r
14202         000153' 205040  200000  02760   SETRUN:   MOVSI TAC,RUN\r
14203         000154' 437044  000151* 02770             IORB TAC,JBTSTS(ITEM)\r
14204         000155' 607040  020000  02780             TLNN TAC,DCW          ;IS JOB WAITING FOR DATA CONTROL?\r
14205         000156' 254000  000161' 02790             JRST CONT2            ;NO\r
14206         000157' 357000  000102* 02800             AOSG DCREQ            ;YES, INCREMENT REQUEST COUNT\r
14207         000160' 476000  000000* 02810             SETOM DCAVAL          ;AND SET DC AS AVAIL IF NOT IN USE\r
14208         000161' 607040  040000  02820   CONT2:    TLNN TAC,DTW          ;DECTAPE?\r
14209         000162' 254000  000165' 02830             JRST CONT3            ;NO\r
14210         000163' 357000  000100* 02840             AOSG DTREQ\r
14211         000164' 476000  000000* 02850             SETOM DTAVAL\r
14212         000165' 607040  010000  02860   CONT3:    TLNN TAC,MTW          ;MAG TAPE?\r
14213         000166' 254000  000171' 02870             JRST CONT4\r
14214         000167' 357000  000104* 02880             AOSG MTREQ\r
14215         000170' 476000  000000* 02890             SETOM MTAVAL\r
14216         000171' 603040  400000  02900   CONT4:    TLNE TAC,IOWS         ;IO WAIT SATISFIED?\r
14217         000172' 350000  000000* 02910             AOS IOCOMP            ;YES\r
14218         000173' 201040  000000* 02920             MOVEI TAC,QUANT1      ;SET TIME TO RUN FOR STRAIGHT QUEUE COM\r
14219         000174' 542044  000154* 02930             HRRM TAC,JBTSTS(ITEM)         ;RESPONSE IS FINISHED\r
14220         000175' 332000  000110* 02940             SKIPE JOB ;IS NULL JOB RUNNING?\r
14221         000176' 263140  000000  02950             POPJ PDP,             ;NO\r
14222         000177' 254000  000112' 02960             JRST STOP2                    ;YES, RESCHEDULE\r
14223 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 9\r
14224         T. HASTINGS   8-16-65\r
14225 \r
14226 \r
14227 \r
14228                                 03000   ,ROUTINE TO INIATE A WAIT FOR MAG TAPE. DECTAPE, AND DATA CONTROL AC\r
14229                                 03010             INTERNAL MTWAIT\r
14230         000200' 261140  000002  03020   MTWAIT:   PUSH PDP,TAC1\r
14231         000201' 515100  010000  03030             HRLZI TAC1,MTW\r
14232         000202' 261140  000001  03040   DVWAIT:   PUSH PDP, TAC\r
14233         000203' 200040  000175* 03050             MOVE TAC,JOB\r
14234         000204' 436101  000174* 03060             IORM TAC1,JBTSTS(TAC)\r
14235         000205' 260140  000112' 03070             PUSHJ PDP,STOP2\r
14236         000206' 262140  000001  03080             POP PDP,TAC\r
14237         000207' 262140  000002  03090             POP PDP,TAC1\r
14238         000210' 263140  000000  03100             POPJ PDP,\r
14239                                 03110             INTERNAL DTWAIT\r
14240         000211' 261140  000002  03120   DTWAIT:   PUSH PDP,TAC1\r
14241         000212' 515100  040000  03130             HRLZI TAC1,DTW\r
14242         000213' 254000  000202' 03140             JRST DVWAIT\r
14243                                 03150             INTERNAL DCWAIT\r
14244         000214' 261140  000002  03160   DCWAIT:   PUSH PDP,TAC1\r
14245         000215' 515100  020000  03170             HRLZI TAC1,DCW\r
14246         000216' 254000  000202' 03180             JRST DVWAIT\r
14247                                 03190             INTERNAL DVWAIT\r
14248 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 10\r
14249         T. HASTINGS   8-16-65\r
14250 \r
14251 \r
14252 \r
14253 \r
14254                                 03240   ,DEC 06 00 EX JOB L PT PRE 02 SETIOD\r
14255                                 03250   ,H.R. MORSE    64-12-26\r
14256                                 03260   ,CALLING SEQUENCE\r
14257                                 03270   ,     PUSHJ PDP, SETIOD\r
14258                                 03280   ,     EXIT              ALWAYS RETURNS HERE\r
14259                                 03290   ,SETS THEBIT (IOWS:=1) IN THE JOB STATUS WORD (JBTSTS)\r
14260                                 03300   ,INFORMING THE SYSTEM THAT AN I/O WAIT HAS BEEN COMPLETED\r
14261                                 03310   ,AND THE JOB IS READY TO RUN AGAIN.\r
14262                                 03320   ,MONITOR INTERFACE\r
14263                                 03330   ,     STORAGE: 6\r
14264                                 03340   ,     SYMBOLS SET/USED:\r
14265                                 03350   ,          ACCUMULATORS:   DEVDAT U      TAC S/U\r
14266                                 03360   ,                          PDP U         TAC1 S/U\r
14267                                 03370   ,          DEVICE DATA BLOCK: DEVCHR U\r
14268                                 03380   ,          SYSTEM DATA STORAGE: JBTSTS S/U\r
14269                                 03390   ,          JOB STATUS WORD:    IOWS S\r
14270                                 03400             INTERNAL SETIOD\r
14271 \r
14272         000217' 350000  000172* 03420   SETIOD:   AOS IOCOMP\r
14273         000220' 135040  000000* 03430             LDB TAC,PJOBN\r
14274         000221' 205100  400000  03440             MOVSI TAC1, IOWS      ;SET IO-WAIT SATISFIED BIT\r
14275         000222' 436101  000204* 03450             IORM TAC1, JBTSTS(TAC)\r
14276         000223' 205100  100000  03460             MOVSI TAC1, JIOW              ;CLEAR JOB IO-WAIT BIT\r
14277         000224' 412101  000222* 03470             ANDCAM TAC1, JBTSTS(TAC)\r
14278         000225' 336000  000203* 03480             SKIPN JOB             ;IS NULL JOB RUNNING\r
14279         000226' 254000  000112' 03490             JRST STOP2                    ;YES, FORCE CLOCK TO RE-SCHED\r
14280         000227' 263140  000000  03500             POPJ PDP,;                        RETURN\r
14281 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 11\r
14282         T. HASTINGS   8-16-65\r
14283 \r
14284 \r
14285 \r
14286 \r
14287                                 03550   ;SET CURRENT JOB AREA IN SYSTEM AREA\r
14288 \r
14289                                 03570             INTERNAL SETUSR\r
14290 \r
14291         000230' 541040  000000* 03590   SETUSR:   HRRI TAC,USRLO1\r
14292         000231' 505040  000000* 03600             HRLI TAC,USRLO\r
14293         000232' 402000  000231* 03610             SETZM USRLO\r
14294         000233' 251040  000000* 03620             BLT TAC,USRHI\r
14295         000234' 205040  000122* 03630             MOVSI TAC,MJOBPD\r
14296         000235' 541040  000123* 03640             HRRI TAC,JOBPDL\r
14297         000236' 202040  000000* 03650             MOVEM TAC,USRPDP\r
14298         000237' 200440  000000* 03660             MOVE JDAT,JOBDAT\r
14299         000240' 544051  000046* 03670             HLR TAC,JOBSA(JDAT)\r
14300         000241' 542051  000000* 03680             HRRM TAC,JOBFF(JDAT)\r
14301         000242' 263140  000000  03690             POPJ PDP,\r
14302 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 12\r
14303         T. HASTINGS   8-16-65\r
14304 \r
14305 \r
14306 \r
14307                                 03730   ,DEC 06 00 EX COM L PT PRE 02 WAIT1,WSYNC\r
14308                                 03740   ,H.R. MORSE   64-12-26\r
14309                                 03750   ,CALLING SEQUENCE\r
14310                                 03760   ,     PUSHJ PDP, WAIT1\r
14311                                 03770   ,     EXIT              ALWAYS RETURNS HERE\r
14312 \r
14313                                 03790   ,IF THE DEVICE IS INACTIVE (IOACT=0), RETURNS TO EXIT. OTHERWISE, SET\r
14314                                 03800   ,IOW:=1 AND ENTERS WAIT UNLESS IOACT BECOMES ZERO BEFORE THE\r
14315                                 03810   ,JUMP IS MADE, IN WHICH CHASEIT SETS IOW:=0 AND RETURNS TO EXIT.\r
14316                                 03820   ,ON LEAVING THE WAIT STAT, RETURNS TO EXIT.\r
14317                                 03830   ,THIS ROUTINE PREVENTS THE STATE IOACT=0 AND IOW=1 FROM OCCURING\r
14318                                 03840   ,CALLING SEQUENCE\r
14319                                 03850   ,     PUSHJ PDP, WSYNC\r
14320                                 03860   ,     EXIT              ALWAYS RETURNS HERE\r
14321                                 03870   ,SETS IOW:=1 AND ENTERS WAIT ROUTINE. RETURNS TO EXIT WHEN IOACT=0.\r
14322                                 03880   ,MONITOR INTERFACE\r
14323                                 03890   ,     STORAGE:          13\r
14324                                 03900   ,     ROUTINES CALLED:  WAIT\r
14325                                 03910   ,     SYMBOLS SET/USED: \r
14326                                 03920   ,        ACCUMULATORS:     DEVDAT U     PDP U\r
14327                                 03930   ,                          IOS S/U      TAC S/U\r
14328                                 03940   ,     DEVICE DATA BLOCK:   DEVIOS S/U\r
14329                                 03950   ,     IO STATUS WORD:      IOACT U\r
14330                                 03960   ,                          IOW S/U\r
14331 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 13\r
14332         T. HASTINGS   8-16-65\r
14333 \r
14334 \r
14335 \r
14336                                 04000             INTERN WAIT1, WSYNC\r
14337 \r
14338                                 04020   ; WAIT1 WAITS UNTIL DEVICE IS COMPLETELY INACTIVE BEFORE RETURNING\r
14339         000243' 200006  000002  04030   WAIT1:    MOVE IOS,DEVIOS(DEVDAT)\r
14340         000244' 606000  010000  04040             TRNN IOS, IOACT               ;IS DEVICE ACTIVE? (IOACT=1?)\r
14341         000245' 263140  000000  04050             POPJ PDP,;                    RETURN\r
14342         000246' 260140  000250' 04060             PUSHJ PDP,WSYNC;              WAIT\r
14343         000247' 254000  000243' 04070             JRST WAIT1\r
14344 \r
14345                                 04090   ;WSYNC IS CALLED TO WAIT UNTIL SETIOD IS CALLED BY INTERRUPT SERVICE\r
14346                                 04100   ;IE  UNTIL CURRENT BUFFER ACTIVITY IS COMPLETED\r
14347                                 04110   ;DEVDAT MUST BE SET UP\r
14348 \r
14349                         000200  04130   PION=200\r
14350                         000400  04140   PIOFF=400\r
14351 \r
14352                                 04160   WSYNC:    REPEAT 0,< PUSH PDP, TAC      ;MUST THESE BE SAVED?\r
14353                                 04170    PUSH PDP, TAC1\r
14354                                 04180    PUSH PDP, DAT>\r
14355         \r
14356         000250' 205000  000001  04200             MOVSI IOS, IOW\r
14357         000251' 205640  100000  04210             MOVSI AC1, JIOW\r
14358         000252' 200700  000225* 04220             MOVE AC2, JOB\r
14359         000253' 201740  010000  04230             MOVEI AC3, IOACT\r
14360         000254' 700600  000400  04240             CONO PI, PIOFF                ;TURN PI OFF\r
14361         000255' 616746  000002  04250             TDNN AC3, DEVIOS(DEVDAT)      ;IS THE DEVICE ACTIVE?\r
14362         000256' 254000  000263' 04260             JRST WSYNC1                   ;NO\r
14363         000257' 436006  000002  04270             IORM IOS, DEVIOS(DEVDAT)      ;YES, SET DEVICE IO-WAIT BIT\r
14364         000260' 436656  000224* 04280             IORM AC1, JBTSTS(AC2)         ;AND JOB IO-WAIT BIT\r
14365         000261' 700600  000200  04290             CONO PI, PION                 ;TURN PI ON\r
14366         000262' 260140  000112' 04300             PUSHJ PDP, STOP2              ;STOP THIS USER BY FORCING CL\r
14367                                 04310                                   ;RETURN WHEN IO-WAIT FINISHED\r
14368         000263' 700600  000200  04320   WSYNC1:   CONO PI, PION\r
14369         000264' 413006  000002  04330             ANDCAB IOS, DEVIOS(DEVDAT)    ;CLEAR DEVICE IO-WAIT BIT\r
14370                                 04340   REPEAT 0,< POP PDP, DAT\r
14371                                 04350    POP PDP, TAC1\r
14372                                 04360    POP PDP, TAC>\r
14373 \r
14374         000265' 263140  000000  04380             POPJ PDP,\r
14375 \r
14376                                 04400             END,\r
14377         000266' 331102  000001\r
14378         000267' 000030  000030\r
14379 \r
14380 NO ERRORS DETECTED\r
14381 \r
14382 PROGRAM BREAK IS 000270\r
14383 \r
14384 8K CORE USED\r
14385 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 14\r
14386         SYMBOL TABLE\r
14387 \r
14388                 000317  \r
14389 A               000000  INT\r
14390 AC1             000015  INT\r
14391 AC2             000016  INT\r
14392 AC3             000017  INT\r
14393 AL              000001  INT\r
14394 APRCHL          000000  EXT\r
14395 APRCHN          000000  EXT\r
14396 ASSCON          400000  INT\r
14397 ASSPRG          200000  INT\r
14398 B               000014  INT\r
14399 BUFPNT          000012  INT\r
14400 BUFWRD          000013  INT\r
14401 CH1XIT          000021' EXT\r
14402 CH2XIT          000022' EXT\r
14403 CH3XIT          000023' EXT\r
14404 CH4XIT          000024' EXT\r
14405 CH5XIT          000025' EXT\r
14406 CH6SAC          000000  EXT\r
14407 CH6XIT          000026' EXT\r
14408 CH7XIT          000027' EXT\r
14409 CHNTAB          000020' \r
14410 CLOSB           002000  INT\r
14411 CLSIN           000002  INT\r
14412 CLSOUT          000001  INT\r
14413 CONT1           000152' INT\r
14414 CONT2           000161' \r
14415 CONT3           000165' \r
14416 CONT4           000171' \r
14417 CONTM           000136' INT\r
14418 CONTU           000137' INT\r
14419 CRLF            000032' EXT\r
14420 D               000017  INT\r
14421 DAT             000005  INT\r
14422 DCAVAL          000160' EXT\r
14423 DCL             000001  INT\r
14424 DCREQ           000157' EXT\r
14425 DCW             020000  INT\r
14426 DCWAIT          000214' INT\r
14427 DDI             000007  INT\r
14428 DDO             000006  INT\r
14429 DDTMEM          000037  INT\r
14430 DDTSYM          000036  INT\r
14431 DEN             000004  INT\r
14432 DEVADR          000007  INT\r
14433 DEVBUF          000006  INT\r
14434 DEVCHR          000001  INT\r
14435 DEVCTR          000011  INT\r
14436 DEVDAT          000006  INT\r
14437 DEVIAD          000007  INT\r
14438 DEVIOS          000002  INT\r
14439 DEVLOG          000005  INT\r
14440 DEVMOD          000004  INT\r
14441 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 14-1\r
14442         SYMBOL TABLE\r
14443 \r
14444 DEVNAM          000000  INT\r
14445 DEVOAD          000010  INT\r
14446 DEVPTR          000010  INT\r
14447 DEVSER          000003  INT\r
14448 DGF             000012  INT\r
14449 DIN             000003  INT\r
14450 DLK             000005  INT\r
14451 DOU             000002  INT\r
14452 DR              000016  INT\r
14453 DRL             000000  INT\r
14454 DSI             000011  INT\r
14455 DSO             000010  INT\r
14456 DTAVAL          000164' EXT\r
14457 DTREQ           000163' EXT\r
14458 DTW             040000  INT\r
14459 DTWAIT          000211' INT\r
14460 DVAVAL          000040  INT\r
14461 DVCDR           100000  INT\r
14462 DVDIR           000004  INT\r
14463 DVDIRI          400000  INT\r
14464 DVIN            000002  INT\r
14465 DVLPT           040000  INT\r
14466 DVMTA           000020  INT\r
14467 DVOUT           000001  INT\r
14468 DVTTY           000010  INT\r
14469 DVWAIT          000202' INT\r
14470 ENTRB           020000  INT\r
14471 ESTOP           000034' INT\r
14472 EXIT            000000' INT\r
14473 EXMESS          000005' \r
14474 HOLD            000030' INT\r
14475 HOLDI           000012' INT\r
14476 HOLDI1          000014' INT\r
14477 HOLDSB          000032' \r
14478 I               000010  INT\r
14479 IB              000013  INT\r
14480 IBUFB           200000  INT\r
14481 INITB           400000  INT\r
14482 INPB            010000  INT\r
14483 IO              000020  INT\r
14484 IOACT           010000  INT\r
14485 IOBEG           000002  INT\r
14486 IOBKTL          040000  INT\r
14487 IOCOMP          000217' EXT\r
14488 IOCON           000040  INT\r
14489 IODEND          020000  INT\r
14490 IODERR          200000  INT\r
14491 IODISC          400000  INT\r
14492 IODONE          400000  INT\r
14493 IODTER          100000  INT\r
14494 IOEND           000040  INT\r
14495 IOFST           000004  INT\r
14496 IOIMPM          400000  INT\r
14497 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 14-2\r
14498         SYMBOL TABLE\r
14499 \r
14500 IOKILL          000007' EXT\r
14501 IONRCK          000100  INT\r
14502 IORDEL          000100  INT\r
14503 IORELS          000037' EXT\r
14504 IORET           000020  INT\r
14505 IOS             000000  INT\r
14506 IOSTRT          000010  INT\r
14507 IOUSE           400000  INT\r
14508 IOW             000001  INT\r
14509 IOWC            000020  INT\r
14510 IOWS            400000  INT\r
14511 ITEM            000004  INT\r
14512 JBFADR          000000  INT\r
14513 JBFCTR          000002  INT\r
14514 JBFPTR          000001  INT\r
14515 JBTADR          000117' EXT\r
14516 JBTSTS          000260' EXT\r
14517 JBUF            000005  INT\r
14518 JDAT            000011  INT\r
14519 JERR            002000  INT\r
14520 JIOW            100000  INT\r
14521 JNA             004000  INT\r
14522 JOB             000252' EXT\r
14523 JOBAC           000000  EXT\r
14524 JOBADR          000000  EXT\r
14525 JOBCDP          000000  EXT\r
14526 JOBDAC          000146' EXT\r
14527 JOBDAT          000237' EXT\r
14528 JOBDDT          000055' EXT\r
14529 JOBDHI          000147' EXT\r
14530 JOBFF           000241' EXT\r
14531 JOBN            000000  EXT\r
14532 JOBPC           000141' EXT\r
14533 JOBPDL          000235' EXT\r
14534 JOBPDP          000000  EXT\r
14535 JOBREL          000000  EXT\r
14536 JOBSA           000240' EXT\r
14537 JOBSYM          000044' EXT\r
14538 LDRBLT          000037' INT\r
14539 LDRMES          000064' \r
14540 LOOKB           040000  INT\r
14541 MESPNT          000062' EXT\r
14542 MJOBPD          000234' EXT\r
14543 MONJOB          000116' INT\r
14544 MTAVAL          000170' EXT\r
14545 MTREQ           000167' EXT\r
14546 MTW             010000  INT\r
14547 MTWAIT          000200' INT\r
14548 OBUFB           100000  INT\r
14549 OUTPB           004000  INT\r
14550 PDP             000003  INT\r
14551 PGADR           000002  \r
14552 PI              000004  SPD\r
14553 \r\fRUNCSS - RUN CONTROL SUBROUTINES                 PAGE 14-3\r
14554         SYMBOL TABLE\r
14555 \r
14556 PICHN           000100  INT\r
14557 PICLK           000114' EXT\r
14558 PIOFF           000400  \r
14559 PION            000200  \r
14560 PJOBN           000220' EXT\r
14561 PROG            000007  INT\r
14562 QUANT1          000173' EXT\r
14563 RESET           000007' INT\r
14564 RSCHED          000020' EXT\r
14565 RUN             200000  INT\r
14566 RUNABL          204000  INT\r
14567 SCHEDF          000106' EXT\r
14568 SETIOD          000217' INT\r
14569 SETRUN          000153' INT\r
14570 SETUSR          000230' INT\r
14571 START1          000140' INT\r
14572 START2          000150' \r
14573 STARTM          000132' INT\r
14574 STARTU          000134' INT\r
14575 STOP0           000070' INT\r
14576 STOP1           000071' INT\r
14577 STOP2           000112' INT\r
14578 STOPA           000105' \r
14579 STOPU           000113' EXT\r
14580 TAC             000001  INT\r
14581 TAC1            000002  INT\r
14582 TEM             000010  INT\r
14583 TTYATC          020000  INT\r
14584 TTYFNU          000060' EXT\r
14585 TTYSET          000135' EXT\r
14586 TTYSTR          000033' EXT\r
14587 TTYURC          000137' EXT\r
14588 TTYUSE          010000  INT\r
14589 USRDDT          000056' EXT\r
14590 USRHI           000233' EXT\r
14591 USRLO           000232' EXT\r
14592 USRLO1          000230' EXT\r
14593 USRMOD          010000  INT\r
14594 USRPDP          000236' EXT\r
14595 USRREL          000050' EXT\r
14596 UUO             000014  INT\r
14597 UXIT            000011' EXT\r
14598 WAIT1           000243' INT\r
14599 WSYNC           000250' INT\r
14600 WSYNC1          000263' \r
14601 \f   SSSSSSSSSSSS         AAAAAAAAA         VVV         VVV         GGGGGGGGGGGG      EEEEEEEEEEEEEEE      TTTTTTTTTTTTTTT\r
14602    SSSSSSSSSSSS         AAAAAAAAA         VVV         VVV         GGGGGGGGGGGG      EEEEEEEEEEEEEEE      TTTTTTTTTTTTTTT\r
14603    SSSSSSSSSSSS         AAAAAAAAA         VVV         VVV         GGGGGGGGGGGG      EEEEEEEEEEEEEEE      TTTTTTTTTTTTTTT\r
14604 SSS                  AAA         AAA      VVV         VVV      GGG                  EEE                        TTT      \r
14605 SSS                  AAA         AAA      VVV         VVV      GGG                  EEE                        TTT      \r
14606 SSS                  AAA         AAA      VVV         VVV      GGG                  EEE                        TTT      \r
14607 SSS                  AAA         AAA      VVV         VVV      GGG                  EEE                        TTT      \r
14608 SSS                  AAA         AAA      VVV         VVV      GGG                  EEE                        TTT      \r
14609 SSS                  AAA         AAA      VVV         VVV      GGG                  EEE                        TTT      \r
14610    SSSSSSSSS         AAA         AAA      VVV         VVV      GGG                  EEEEEEEEEEEE               TTT      \r
14611    SSSSSSSSS         AAA         AAA      VVV         VVV      GGG                  EEEEEEEEEEEE               TTT      \r
14612    SSSSSSSSS         AAA         AAA      VVV         VVV      GGG                  EEEEEEEEEEEE               TTT      \r
14613             SSS      AAAAAAAAAAAAAAA      VVV         VVV      GGG   GGGGGGGGG      EEE                        TTT      \r
14614             SSS      AAAAAAAAAAAAAAA      VVV         VVV      GGG   GGGGGGGGG      EEE                        TTT      \r
14615             SSS      AAAAAAAAAAAAAAA      VVV         VVV      GGG   GGGGGGGGG      EEE                        TTT      \r
14616             SSS      AAA         AAA         VVV   VVV         GGG         GGG      EEE                        TTT      \r
14617             SSS      AAA         AAA         VVV   VVV         GGG         GGG      EEE                        TTT      \r
14618             SSS      AAA         AAA         VVV   VVV         GGG         GGG      EEE                        TTT      \r
14619 SSSSSSSSSSSS         AAA         AAA            VVV               GGGGGGGGG         EEEEEEEEEEEEEEE            TTT      \r
14620 SSSSSSSSSSSS         AAA         AAA            VVV               GGGGGGGGG         EEEEEEEEEEEEEEE            TTT      \r
14621 SSSSSSSSSSSS         AAA         AAA            VVV               GGGGGGGGG         EEEEEEEEEEEEEEE            TTT      \r
14622 \r
14623 \r
14624 \r
14625 \r
14626 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
14627 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
14628 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
14629 LLL                  SSS                        TTT                                                                     \r
14630 LLL                  SSS                        TTT                                                                     \r
14631 LLL                  SSS                        TTT                                                                     \r
14632 LLL                  SSS                        TTT                                                                     \r
14633 LLL                  SSS                        TTT                                                                     \r
14634 LLL                  SSS                        TTT                                                                     \r
14635 LLL                     SSSSSSSSS               TTT                                                                     \r
14636 LLL                     SSSSSSSSS               TTT                                                                     \r
14637 LLL                     SSSSSSSSS               TTT                                                                     \r
14638 LLL                              SSS            TTT                                                                     \r
14639 LLL                              SSS            TTT                                                                     \r
14640 LLL                              SSS            TTT                                                                     \r
14641 LLL                              SSS            TTT                                                                     \r
14642 LLL                              SSS            TTT                                                                     \r
14643 LLL                              SSS            TTT                                                                     \r
14644 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
14645 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
14646 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
14647 \r
14648 \r
14649 \r
14650 \r
14651 Request created: 24-April-1978  11:23:08\r
14652 File: DSKB1 :SAVGET.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:24
14653 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2263 \r
14654 File will be deleted after printing\r
14655 \f\rSAVGET- SAVE AND GET COMMANDS                 PAGE 1\r
14656         T.HASTINGS 8-4-64\r
14657 \r
14658                                 00010           XLIST\r
14659                                 01930          LIST\r
14660 \r\fSAVGET- SAVE AND GET COMMANDS                 PAGE 7\r
14661         T.HASTINGS 8-4-64\r
14662 \r
14663 \r
14664 \r
14665                                 00020   TITLE SAVGET- SAVE AND GET COMMANDS\r
14666                                 00030   SUBTTL T.HASTINGS 8-4-64\r
14667                                 00040   ;ROUTINE TO SET UP SAVE-GET DEVICE FILE-NAME TABLE\r
14668                                 00050   ;CALLED BY COMMAND SETUP ROUTINES AND SAVE GET\r
14669 \r
14670                                 00070   INTERNAL SGSET\r
14671                                 00080   EXTERNAL CTEXT1,SETUSR,HOLD,MONJOB\r
14672                                 00090   EXTERNAL CONMES,NOTENF,CPOPJ1\r
14673 \r
14674         000000' 261140  000002  00110   SGSET:    PUSH PDP, TAC1        ;SAVE STARTTING ADDRESS(SAVJOB OR GETJOB)\r
14675         000001' 260140  000000* 00120             PUSHJ PDP, CTEXT1     ;GET DEVICE NAME FROM COMMAND STRING\r
14676         000002' 322100  000012' 00130             JUMPE TAC1,SGSET1\r
14677         000003' 202107  000017  00140             MOVEM TAC1, 17(PROG)          ;SAVE IN UUO AC AREA\r
14678         000004' 260140  000001* 00150             PUSHJ PDP, CTEXT1     ;GET FILE NAME FROM COMMAND STRING\r
14679         000005' 322100  000012' 00160             JUMPE TAC1,SGSET1\r
14680         000006' 202107  000014  00170             MOVEM TAC1, 14(PROG)\r
14681         000007' 262140  000002  00180             POP PDP, TAC1         ;SCHEDULE MONITOR JOB\r
14682         000010' 260140  000000* 00190             PUSHJ PDP, MONJOB\r
14683         000011' 254000  000000* 00200             JRST CPOPJ1           ;SUPPRESS CR-LF PRINTED BY COMINI\r
14684 \r
14685         000012' 262140  000002  00220   SGSET1:   POP PDP,TAC1\r
14686         000013' 254000  000000* 00230             JRST NOTENF\r
14687 \r\fSAVGET- SAVE AND GET COMMANDS                 PAGE 2\r
14688         T.HASTINGS 8-4-64\r
14689 \r
14690 \r
14691 \r
14692                                 00270   ;THIS JOB SAVES A JOB AREA ON RETRIEVABLE STORAGE\r
14693                                 00280   ;THIS JOB RUNS IN EXEC. MODE AND CALLS IO ROUTINES DIRECTLY\r
14694                                 00290   ;NO ATTTEMPT IS MADE TO SAVE STATUS OF IO DEVICES, JOBPDP, OR ACS\r
14695                                 00300   ;IN FACT THE ONLY USEFUL THING WHICH MAY BE DONE WITH A JOB AREA\r
14696                                 00310   ;AFTER IT HAS BEEN SAVED IS TO START EXECUTION OVER AT THE STARTING \r
14697                                 00320   ;ADDRESS\r
14698 \r
14699                                 00340   INTERNAL SAVJOB\r
14700                                 00350   EXTERNAL USRPDP, OUT, USRREL,JOBPFI,JOB41,JOBS41,THSDAT\r
14701 \r
14702                         000012  00370   T=BUFPNT   ;TEMPORARY ACS\r
14703                         000013  00380   T1=BUFWRD\r
14704 \r
14705         000014' 265040  000076' 00400   SAVJOB:   JSP TAC,  SG1   ;SET UP ACS AND ASSIGN DEVICE\r
14706         000015' 200551  000000* 00410             MOVE T1,JOB41(JDAT) ;SAVE USR UUOI HANDLING JSR\r
14707         000016' 202551  000000* 00420             MOVEM T1,JOBS41(JDAT)\r
14708         000017' 200540  000000* 00430             MOVE T1,THSDAT      ;SET DATE IN THIRD WORD\r
14709         000020' 202547  000016  00440             MOVEM T1,16(PROG)\r
14710         000021' 260152  000004  00450             PUSHJ PDP, DEN(T)   ;ENTER FILE NAME IN DIRECTORY\r
14711         000022' 254000  000031' 00460             JRST SAV4           ;DIRECTORY FULL\r
14712         000023' 260140  000134' 00470             PUSHJ PDP, SETLST   ;SET DUMP COMMAND LIST IN USER ARE\r
14713         000024' 260140  000000* 00480             PUSHJ PDP, OUT      ;DO AN OUTPUT\r
14714         000025' 265040  000054' 00490             JSP TAC,SG2\r
14715 \r
14716         000026' 452370  220246  00510             ASCIZ /JOB SAVED\r
14717         000027' 406550  542032\r
14718         000030' 050000  000000  00520   /\r
14719         000031' 265040  000054' 00530   SAV4:     JSP TAC,SG2\r
14720 \r
14721         000032' 422232  242606  00550             ASCIZ /DIRECTORY FULL\r
14722         000033' 522372  254500\r
14723         000034' 432531  446032\r
14724         000035' 050000  000000  00560   /\r
14725 \r\fSAVGET- SAVE AND GET COMMANDS                 PAGE 3\r
14726         T.HASTINGS 8-4-64\r
14727 \r
14728 \r
14729 \r
14730 \r
14731                                 00610   ;THIS JOB GETS A JOB AREA FROM RETRIEVABLE DEVICE\r
14732                                 00620   ;THIS JOB RUNS IN EXEC. MODE AND CALLS IO ROUTINES DIRECTLY\r
14733                                 00630   ;NO ATTEMPT IS MADE TO RESTORE STATUS OF IO DEVICES, PC, OR ACS\r
14734                                 00640   ;JOBPC IS SET TO STARTING ADDRESS OF JOB\r
14735                                 00650   ;CORE MUST ALREADY HAVE BEEN ASSIGNED AND THE FOLLOWING LOC. SETUP IN \r
14736                                 00660   ;JOB DATA AREA:\r
14737                                 00670   ;JOBPDP, JOBREL\r
14738 \r
14739                                 00690   INTERNAL GETJOB\r
14740                                 00700   EXTERNAL USRREL, IN\r
14741 \r
14742         000036' 265040  000076' 00720   GETJOB:   JSP TAC, SG1  ;SETUP ACS AND ASSIGN DEVICE\r
14743         000037' 260152  000005  00730             PUSHJ PDP, DLK(T)     ;LOOKUP FILE NAME IN DIRECTORY\r
14744         000040' 254000  000047' 00740             JRST GET2             ;NOT FOUND\r
14745         000041' 260140  000134' 00750             PUSHJ PDP, SETLST     ;SET DUMP COMMAND LIST IN USER ARE\r
14746         000042' 260140  000000* 00760             PUSHJ PDP, IN         ;DO AN INPUT\r
14747         000043' 265040  000054' 00770             JSP TAC,SG2\r
14748 \r
14749         000044' 452370  220246  00790             ASCIZ /JOB SETUP\r
14750         000045' 426512  550032\r
14751         000046' 050000  000000  00800   /\r
14752 \r
14753         000047' 265040  000054' 00820   GET2:     JSP TAC,SG2\r
14754 \r
14755         000050' 432231  442500  00840             ASCIZ /FILE NOT FOUND\r
14756         000051' 472372  420214\r
14757         000052' 476531  642032\r
14758         000053' 050000  000000  00850   /\r
14759 \r\fSAVGET- SAVE AND GET COMMANDS                 PAGE 4\r
14760         T.HASTINGS 8-4-64\r
14761 \r
14762 \r
14763 \r
14764                                 00890   ;ROUTINE TERMINATES SAVJOB AND GETJOB\r
14765                                 00900   ;CLOSE, RELEASE, CHECK FOR ERRORS AND PRINT MESSAGE AND STOP JOB\r
14766                                 00910   ;ADDRESS OF MESSAGE IN AC TAC\r
14767 \r
14768                                 00930   EXTERNAL RELEA2, SETUSR, TTYFNU, WAIT1,JOBS41,JOB41\r
14769 \r
14770                         740000  00950   ERRORS=1B18+1B19+1B20+1B21      ;ERRORS CHECKED FOR IN IO TRANSMISSION\r
14771 \r
14772         000054' 260140  000000* 00970   SG2:      PUSHJ PDP, WAIT1\r
14773         000055' 602000  740000  00980             TRNE IOS, ERRORS      ;ANY ERRORS?\r
14774         000056' 254000  000070' 00990             JRST SG2A             ;AN ERROR\r
14775         000057' 261140  000001  01000             PUSH PDP,TAC          ;SAVE PRINT ADDRESS\r
14776         000060' 260140  000000* 01010             PUSHJ PDP,RELEA2      ;RELEASE DEVICE\r
14777         000061' 260140  000000* 01020             PUSHJ PDP,SETUSR      ;SETUP COPY OF JOB AREA STORED IN SYSTE\r
14778         000062' 200051  000016* 01030             MOVE TAC,JOBS41(JDAT)\r
14779                                 01040             ;RESTORE USER LOCATION 41\r
14780         000063' 202051  000015* 01050             MOVEM TAC,JOB41(JDAT)\r
14781         000064' 260140  000000* 01060   SG4:      PUSHJ PDP,TTYFNU      ;FIND TELETYPE\r
14782         000065' 262140  000001  01070             POP PDP,TAC           ;RESTORE PRINT MESSAGE ADDRESS\r
14783         000066' 260140  000000* 01080   SG5:      PUSHJ PDP,CONMES\r
14784         000067' 254000  000000* 01090             JRST HOLD\r
14785 \r
14786         000070' 265040  000064' 01110   SG2A:     JSP TAC,SG4\r
14787 \r
14788         000071' 522450  147246  01130             ASCIZ /TRANSMISSION ERROR\r
14789         000072' 466232  351622\r
14790         000073' 476344  042644\r
14791         000074' 512372  206424  01140   /\r
14792         000075' 000000  000000\r
14793 \r\fSAVGET- SAVE AND GET COMMANDS                 PAGE 5\r
14794         T.HASTINGS 8-4-64\r
14795 \r
14796 \r
14797 \r
14798                                 01180   ;ROUTINE CALED BY SAVJOB AND GETJOBTO SETUP ACS\r
14799                                 01190   ;AND ASSIGN DEVICE\r
14800                                 01200   ;CALL     JSP TAC, SG1\r
14801 \r
14802                                 01220   EXTERNAL JOBDAT, JOB, UINIT1, WAIT1, JOBADR, RESET\r
14803 \r
14804         000076' 505140  777763  01240   SG1:      HRLI PDP, -15         ;SET UP PD LIST IN UUO ACS\r
14805         000077' 541147  777777  01250             HRRI PDP, -1(PROG)\r
14806         000100' 261140  000001  01260             PUSH PDP, TAC         ;SAVE RETURN ADDRESS\r
14807         000101' 260140  000000* 01270             PUSHJ PDP, RESET      ;DO RESET UUO\r
14808         000102' 201600  000017  01280             MOVEI UUO, D          ;DUMP MODE\r
14809         000103' 200047  000017  01290             MOVE TAC, 17(PROG)    ;DEVICE NAME\r
14810         000104' 201340  000000  01300             MOVEI PROG, 0         ;PRETEND RELOC. IS 0\r
14811         000105' 260140  000000* 01310             PUSHJ PDP, UINIT1     ;ASSIGN DEVICE\r
14812         000106' 000000  000000  01320             0                     ;IBF,OBF\r
14813         000107' 254000  000124' 01330             JRST SGERRA           ;NOT AVAILABLE\r
14814         000110' 200006  000002  01340             MOVE IOS, DEVIOS(DEVDAT)      ;SETUP IOS\r
14815         000111' 201600  000014  01350             MOVEI UUO,14          ;REL.ADDRESS OF 4 WORD DIRECTORY ENTRY\r
14816         000112' 200340  000000* 01360             MOVE PROG, JOBADR     ;RESTORE PROG\r
14817         000113' 205500  445560  01370             MOVSI T,445560        ;SET FILE EXTENSION TO DMP\r
14818         000114' 202507  000015  01380             MOVEM T, 15(PROG)\r
14819         000115' 402007  000016  01390             SETZM 16(PROG)\r
14820         000116' 210540  000000* 01400             MOVN T1,USRREL        ;SET NEG. WORD COUNT FROM JOBREL\r
14821         000117' 271540  000000* 01410             ADDI T1,JOBPFI        ;DONT DUMP LOC. 0-JOBPFI\r
14822         000120' 505540  000117* 01420             HRLI T1,JOBPFI\r
14823         000121' 206547  000017  01430             MOVSM T1,17(PROG)     ;STORE IN 4TH WORD OF DICECTORY\r
14824         000122' 200506  000003  01440             MOVE T, DEVSER(DEVDAT)        ;SETUP FOR DOING ENTRY OF LOO\r
14825         000123' 263140  000000  01450             POPJ PDP,\r
14826 \r
14827         000124' 201040  000127' 01470   SGERRA:   MOVEI TAC,SGNAVL\r
14828         000125' 261140  000001  01480             PUSH PDP,TAC\r
14829         000126' 254000  000066' 01490             JRST SG5\r
14830 \r
14831         000127' 422132  644606  01510   SGNAVL:   ASCIZ /DEVICE NOT AVAILABLE\r
14832         000130' 425011  647650\r
14833         000131' 202032  640622\r
14834         000132' 462030  246212\r
14835         000133' 064240  000000  01520   /\r
14836 \r\fSAVGET- SAVE AND GET COMMANDS                 PAGE 6\r
14837         T.HASTINGS 8-4-64\r
14838 \r
14839 \r
14840 \r
14841 \r
14842                                 01570   ;ROUTINE TO SET DUMP MODE COMMAND LIST IN USER AREA\r
14843 \r
14844                                 01590   EXTERNAL ANYRDX,RELEA2,TTYFNU\r
14845 \r
14846         000134' 200507  000017  01610   SETLST:   MOVE T, 17(PROG)      ;4TH WORD FROM DIRECTORY\r
14847         000135' 202507  000016  01620             MOVEM T, 16(PROG)\r
14848         000136' 402007  000017  01630             SETZM 17(PROG)\r
14849         000137' 574500  000012  01640             HLRE T, T\r
14850         000140' 270500  000116* 01650             ADD T, USRREL\r
14851         000141' 321500  000144' 01660             JUMPL T, NOROOM\r
14852         000142' 201600  000016  01670             MOVEI UUO,16          ;DUMP MODE\r
14853         000143' 263140  000000  01680             POPJ PDP,\r
14854 \r
14855         000144' 260140  000060* 01700   NOROOM:   PUSHJ PDP,RELEA2\r
14856         000145' 260140  000064* 01710             PUSHJ PDP,TTYFNU\r
14857         000146' 255000  000000  01720             JFCL\r
14858         000147' 574047  000016  01730             HLRE TAC, 16(PROG)  ;PRINT NO. OF BLOCKS NEEDED\r
14859         000150' 213000  000001  01740             MOVNS TAC\r
14860         000151' 242040  777766  01750             LSH TAC, -12\r
14861         000152' 271040  000001  01760             ADDI TAC, 1\r
14862         000153' 201100  000012  01770             MOVEI TAC1, 12\r
14863         000154' 260140  000000* 01780             PUSHJ PDP, ANYRDX\r
14864         000155' 265040  000066' 01790             JSP TAC,SG5\r
14865 \r
14866         000156' 201431  320204  01810             ASCIZ / 1K BLOCKS OF CORE NEEDED\r
14867         000157' 462370  345646\r
14868         000160' 202370  620206\r
14869         000161' 476450  520234\r
14870         000162' 426130  442610\r
14871         000163' 064240  000000  01820   /\r
14872                                 01830             END,\r
14873 \r
14874 NO ERRORS DETECTED\r
14875 \r
14876 PROGRAM BREAK IS 000164\r
14877 \r
14878 8K CORE USED\r
14879 \r\fSAVGET- SAVE AND GET COMMANDS                 PAGE 7\r
14880         SYMBOL TABLE\r
14881 \r
14882                 000230  \r
14883 A               000000  INT\r
14884 AC1             000015  INT\r
14885 AC2             000016  INT\r
14886 AC3             000017  INT\r
14887 AL              000001  INT\r
14888 ANYRDX          000154' EXT\r
14889 ASSCON          400000  INT\r
14890 ASSPRG          200000  INT\r
14891 B               000014  INT\r
14892 BUFPNT          000012  INT\r
14893 BUFWRD          000013  INT\r
14894 CLOSB           002000  INT\r
14895 CLSIN           000002  INT\r
14896 CLSOUT          000001  INT\r
14897 CONMES          000066' EXT\r
14898 CPOPJ1          000011' EXT\r
14899 CTEXT1          000004' EXT\r
14900 D               000017  INT\r
14901 DAT             000005  INT\r
14902 DCL             000001  INT\r
14903 DCW             020000  INT\r
14904 DDI             000007  INT\r
14905 DDO             000006  INT\r
14906 DDTMEM          000037  INT\r
14907 DDTSYM          000036  INT\r
14908 DEN             000004  INT\r
14909 DEVADR          000007  INT\r
14910 DEVBUF          000006  INT\r
14911 DEVCHR          000001  INT\r
14912 DEVCTR          000011  INT\r
14913 DEVDAT          000006  INT\r
14914 DEVIAD          000007  INT\r
14915 DEVIOS          000002  INT\r
14916 DEVLOG          000005  INT\r
14917 DEVMOD          000004  INT\r
14918 DEVNAM          000000  INT\r
14919 DEVOAD          000010  INT\r
14920 DEVPTR          000010  INT\r
14921 DEVSER          000003  INT\r
14922 DGF             000012  INT\r
14923 DIN             000003  INT\r
14924 DLK             000005  INT\r
14925 DOU             000002  INT\r
14926 DR              000016  INT\r
14927 DRL             000000  INT\r
14928 DSI             000011  INT\r
14929 DSO             000010  INT\r
14930 DTW             040000  INT\r
14931 DVAVAL          000040  INT\r
14932 DVCDR           100000  INT\r
14933 DVDIR           000004  INT\r
14934 DVDIRI          400000  INT\r
14935 \r\fSAVGET- SAVE AND GET COMMANDS                 PAGE 7-1\r
14936         SYMBOL TABLE\r
14937 \r
14938 DVIN            000002  INT\r
14939 DVLPT           040000  INT\r
14940 DVMTA           000020  INT\r
14941 DVOUT           000001  INT\r
14942 DVTTY           000010  INT\r
14943 ENTRB           020000  INT\r
14944 ERRORS          740000  \r
14945 GET2            000047' \r
14946 GETJOB          000036' INT\r
14947 HOLD            000067' EXT\r
14948 I               000010  INT\r
14949 IB              000013  INT\r
14950 IBUFB           200000  INT\r
14951 IN              000042' EXT\r
14952 INITB           400000  INT\r
14953 INPB            010000  INT\r
14954 IO              000020  INT\r
14955 IOACT           010000  INT\r
14956 IOBEG           000002  INT\r
14957 IOBKTL          040000  INT\r
14958 IOCON           000040  INT\r
14959 IODEND          020000  INT\r
14960 IODERR          200000  INT\r
14961 IODISC          400000  INT\r
14962 IODONE          400000  INT\r
14963 IODTER          100000  INT\r
14964 IOEND           000040  INT\r
14965 IOFST           000004  INT\r
14966 IOIMPM          400000  INT\r
14967 IONRCK          000100  INT\r
14968 IORDEL          000100  INT\r
14969 IORET           000020  INT\r
14970 IOS             000000  INT\r
14971 IOSTRT          000010  INT\r
14972 IOUSE           400000  INT\r
14973 IOW             000001  INT\r
14974 IOWC            000020  INT\r
14975 IOWS            400000  INT\r
14976 ITEM            000004  INT\r
14977 JBFADR          000000  INT\r
14978 JBFCTR          000002  INT\r
14979 JBFPTR          000001  INT\r
14980 JBUF            000005  INT\r
14981 JDAT            000011  INT\r
14982 JERR            002000  INT\r
14983 JIOW            100000  INT\r
14984 JNA             004000  INT\r
14985 JOB             000000  EXT\r
14986 JOB41           000063' EXT\r
14987 JOBADR          000112' EXT\r
14988 JOBDAT          000000  EXT\r
14989 JOBPFI          000120' EXT\r
14990 JOBS41          000062' EXT\r
14991 \r\fSAVGET- SAVE AND GET COMMANDS                 PAGE 7-2\r
14992         SYMBOL TABLE\r
14993 \r
14994 LOOKB           040000  INT\r
14995 MONJOB          000010' EXT\r
14996 MTW             010000  INT\r
14997 NOROOM          000144' \r
14998 NOTENF          000013' EXT\r
14999 OBUFB           100000  INT\r
15000 OUT             000024' EXT\r
15001 OUTPB           004000  INT\r
15002 PDP             000003  INT\r
15003 PICHN           000100  INT\r
15004 PROG            000007  INT\r
15005 RELEA2          000144' EXT\r
15006 RESET           000101' EXT\r
15007 RUN             200000  INT\r
15008 RUNABL          204000  INT\r
15009 SAV4            000031' \r
15010 SAVJOB          000014' INT\r
15011 SETLST          000134' \r
15012 SETUSR          000061' EXT\r
15013 SG1             000076' \r
15014 SG2             000054' \r
15015 SG2A            000070' \r
15016 SG4             000064' \r
15017 SG5             000066' \r
15018 SGERRA          000124' \r
15019 SGNAVL          000127' \r
15020 SGSET           000000' INT\r
15021 SGSET1          000012' \r
15022 T               000012  \r
15023 T1              000013  \r
15024 TAC             000001  INT\r
15025 TAC1            000002  INT\r
15026 TEM             000010  INT\r
15027 THSDAT          000017' EXT\r
15028 TTYATC          020000  INT\r
15029 TTYFNU          000145' EXT\r
15030 TTYUSE          010000  INT\r
15031 UINIT1          000105' EXT\r
15032 USRMOD          010000  INT\r
15033 USRPDP          000000  EXT\r
15034 USRREL          000140' EXT\r
15035 UUO             000014  INT\r
15036 WAIT1           000054' EXT\r
15037 \f   SSSSSSSSSSSS         CCCCCCCCCCCC      NNN         NNN         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
15038    SSSSSSSSSSSS         CCCCCCCCCCCC      NNN         NNN         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
15039    SSSSSSSSSSSS         CCCCCCCCCCCC      NNN         NNN         SSSSSSSSSSSS      EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
15040 SSS                  CCC                  NNN         NNN      SSS                  EEE                  RRR         RRR\r
15041 SSS                  CCC                  NNN         NNN      SSS                  EEE                  RRR         RRR\r
15042 SSS                  CCC                  NNN         NNN      SSS                  EEE                  RRR         RRR\r
15043 SSS                  CCC                  NNNNNN      NNN      SSS                  EEE                  RRR         RRR\r
15044 SSS                  CCC                  NNNNNN      NNN      SSS                  EEE                  RRR         RRR\r
15045 SSS                  CCC                  NNNNNN      NNN      SSS                  EEE                  RRR         RRR\r
15046    SSSSSSSSS         CCC                  NNN   NNN   NNN         SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
15047    SSSSSSSSS         CCC                  NNN   NNN   NNN         SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
15048    SSSSSSSSS         CCC                  NNN   NNN   NNN         SSSSSSSSS         EEEEEEEEEEEE         RRRRRRRRRRRR   \r
15049             SSS      CCC                  NNN      NNNNNN                  SSS      EEE                  RRR   RRR      \r
15050             SSS      CCC                  NNN      NNNNNN                  SSS      EEE                  RRR   RRR      \r
15051             SSS      CCC                  NNN      NNNNNN                  SSS      EEE                  RRR   RRR      \r
15052             SSS      CCC                  NNN         NNN                  SSS      EEE                  RRR      RRR   \r
15053             SSS      CCC                  NNN         NNN                  SSS      EEE                  RRR      RRR   \r
15054             SSS      CCC                  NNN         NNN                  SSS      EEE                  RRR      RRR   \r
15055 SSSSSSSSSSSS            CCCCCCCCCCCC      NNN         NNN      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
15056 SSSSSSSSSSSS            CCCCCCCCCCCC      NNN         NNN      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
15057 SSSSSSSSSSSS            CCCCCCCCCCCC      NNN         NNN      SSSSSSSSSSSS         EEEEEEEEEEEEEEE      RRR         RRR\r
15058 \r
15059 \r
15060 \r
15061 \r
15062 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
15063 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
15064 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
15065 LLL                  SSS                        TTT                                                                     \r
15066 LLL                  SSS                        TTT                                                                     \r
15067 LLL                  SSS                        TTT                                                                     \r
15068 LLL                  SSS                        TTT                                                                     \r
15069 LLL                  SSS                        TTT                                                                     \r
15070 LLL                  SSS                        TTT                                                                     \r
15071 LLL                     SSSSSSSSS               TTT                                                                     \r
15072 LLL                     SSSSSSSSS               TTT                                                                     \r
15073 LLL                     SSSSSSSSS               TTT                                                                     \r
15074 LLL                              SSS            TTT                                                                     \r
15075 LLL                              SSS            TTT                                                                     \r
15076 LLL                              SSS            TTT                                                                     \r
15077 LLL                              SSS            TTT                                                                     \r
15078 LLL                              SSS            TTT                                                                     \r
15079 LLL                              SSS            TTT                                                                     \r
15080 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
15081 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
15082 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
15083 \r
15084 \r
15085 \r
15086 \r
15087 Request created: 24-April-1978  11:23:08\r
15088 File: DSKB1 :SCNSER.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:24
15089 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2253 \r
15090 File will be deleted after printing\r
15091 \f\rSCNSER - SCANNER SERVICE                 PAGE 1\r
15092         TOM EGGERS     8-9-65\r
15093 \r
15094                                 00010           XLIST\r
15095                                 01930          LIST\r
15096 \r\fSCNSER - SCANNER SERVICE                 PAGE 7\r
15097         TOM EGGERS     8-9-65\r
15098 \r
15099 \r
15100                                 00010   TITLE SCNSER - SCANNER SERVICE\r
15101                                 00020   SUBTTL TOM EGGERS     8-9-65\r
15102                                 00030   EXTERN SETIOD, ADVBFE, ADVBFF, JBTADR, CLRBYT,STTYB1\r
15103                                 00040   EXTERN SCNCHN, COMCNT, SCNSAV, SCNRET,STOP1, DEVLST,TTYTAB\r
15104                                 00050   INTERN SCNINI\r
15105 \r
15106                                 00070   ;TTYPTR=DEVOAD+1\r
15107                                 00080   ;TTYCTR=TTYPTR+1\r
15108                                 00090   ;TTYBUF=TTYCTR+1\r
15109                         000200  00100   PION=200   ;TURN PI ON BIT\r
15110                         000400  00110   PIOFF=400               ;TURN PI OFF BIT\r
15111                                 00120   ;SCNDDB                 ;NUMBER OF DEVICE DATA BLOCKS\r
15112                                 00130   ;STTYBF7   ;SIZE OF TELETYPE BUFFER\r
15113                         000010  00140   CHREC=TEM               ;AC FOR CHARACTER\r
15114                         000004  00150   VPOS=ITEM               ;VERITICAL POSITION OF TELETYPE\r
15115                         000005  00160   HPOS=VPOS+1             ;               HORIZONTAL POS.\r
15116                         000006  00170   DDB=DEVDAT\r
15117                         000002  00180   LINE=TAC1               ;AC THAT HOLDS SCANNER LINE NUMBER\r
15118                         040000  00190   SYNC=40000              ;1 WHEN A BUFFER IS READY TO TRANSFER\r
15119                         010000  00200   DETH=10000              ;1 IF TTY DETACHED AND OUTPUT WAITING\r
15120                         020000  00210   NIO=20000               ;STOP ALL IO\r
15121                         000020  00220   TOUT=IO                 ;OUTPUT IN PROGRESS\r
15122                         040000  00230   NCERR=IOBKTL            ;CHARACTER LOST ON TYPE IN\r
15123                         000177  00240   DCHAR=177               ;DELETE CHARACTER\r
15124                         100000  00250   ECHOF=IODTER            ;ECHO FAILURE OCCURED\r
15125                         001000  00260   TPMON=1000              ;IO IS FROM MONITOR\r
15126                         002000  00270   SP=2000                 ;SPECIAL TELETYPE CHAR. IS BEING INTERPRETED\r
15127                         100000  00280   DDTM=100000             ;DDT MODE\r
15128                         004000  00290   T35=4000   ;TELETYPE HAS TAB,FF,VT,ETC. MECHANISM\r
15129                         000100  00300   USRB=100   ;TURN OFF TPMON WHEN OUTPUT IS FINISHED      \r
15130                         020000  00310   USRBC=20000             ;RT HALF MONITOR IOS WORD. REMAIN IN MONITOR MODE\r
15131                                 00320   INTERNAL SCNINT,CTYINT,TTYUSR,TTYURC\r
15132                                 00330   ENTRY TTYDSP\r
15133                                 00340   EXTERN TSCNLN,TCONLN,MTTYLN,CPOPJ1\r
15134                                 00350   EXTERN CPOPJ\r
15135                                 00360   EXTERN FSNCHN,SCNCHL,OUT,PUUOAC,PJOBN,PUNIT,PIOMOD\r
15136                                 00370   INTERNAL DDTGT,DDTRL,DDTIN,DDTOUT,TTYFND,TTYSTR,TTYFNU\r
15137                                 00380   EXTERNAL WAIT1,WSYNC,CLRBYT,JOB,CLDS,CLEN,TTYBFE,TTYBM1\r
15138                                 00390   EXTERNAL UXIT,ADRCK,TTYSAV,DEVPHY,DEVOPR\r
15139                                 00400   EXTERNAL TTYCTR,TTYPTR,TTYBUF,TTYLST,MLTTYL,SETRUN,STTYBF,TTY0DB\r
15140 \r
15141         000000' 270706  000007  00420   PHPOS:  POINT 7,DEVIAD(DEVDAT),12       ;POINTER HORIZONTAL POSITION\r
15142         000001' 270506  000010  00430   PVPOS:  POINT 5,DEVOAD(DEVDAT),12       ;POINTER VERITICAL POSITION\r
15143         000002' 340706  000010  00440   PLASTC: POINT 7,DEVOAD(DEVDAT),7        ;POINTER TO LAST CHARACTER OU\r
15144         000003' 360606  000007  00450   PSCHAR: POINT 6,DEVIAD(DEVDAT),5        ;POINTER TO ^C OR ^O\r
15145 \r
15146         000004' 321102  000000* 00470   TPCJOBN:        POINT 9,TTYTAB(LINE),9  ;CONSOLE NUMBER FOR TTY\r
15147 \r\fSCNSER - SCANNER SERVICE                 PAGE 2\r
15148         TOM EGGERS     8-9-65\r
15149 \r
15150 \r
15151         000005' 201040  100000  00500   SCNINI: MOVEI TAC,100000\r
15152         000006' 712200  000000  00510           CONO TTY,0              ;SHUT DOWN CONSOLE TTY\r
15153         000007' 730200  004010  00520           CONO DCSA,4010          ;RELEASE XMITTER,RECEIVER\r
15154         000010' 730300  001000  00530           CONSZ DCSA, 1000\r
15155         000011' 730200  004000  00540           CONO DCSA, 4000\r
15156         000012' 730300  000010  00550           CONSZ DCSA, 10\r
15157         000013' 730440  000002  00560           DATAI DCSB, TAC1\r
15158         000014' 367040  000010' 00570           SOJG TAC,.-4\r
15159         000015' 201040  000000* 00580           MOVEI TAC,SCNCHN\r
15160         000016' 712201  003600  00590           CONO TTY,3600(TAC)      ;CLEAR TTY, ASSIGN CHANNEL\r
15161         000017' 730200  000000* 00600           CONO DCSA,FSNCHN        ;ASSIGN INTERRUPT CHANNELS\r
15162         000020' 205040  000000* 00610           MOVSI TAC,MLTTYL        ;NO. OF TTY DEV. DATA BLOCKS\r
15163         000021' 205240  010000  00620           MOVSI DAT,TTYUSE        ;TTY DDB IN USE BIT\r
15164         000022' 205000  001004  00630           MOVSI IOS,TPMON+IOFST           ;VIRGIN STATUS\r
15165         000023' 201300  000000* 00640           MOVEI DDB,TTYLST        ;FIRST TTY DDB ADDRESS\r
15166         000024' 616246  000004  00650   SCN1:   TDNN DAT,DEVMOD(DDB)            ;IS THIS TTY DDB IN USE?\r
15167         000025' 402006  000000  00660           SETZM DEVNAM(DDB)       ;NO. SET NAME TO 0\r
15168         000026' 202006  000002  00670           MOVEM IOS,DEVIOS(DDB)\r
15169         000027' 402006  000000* 00680           SETZM TTYSAV(DDB)       ;CLEAR USER MODE TTY STATUS WORD\r
15170         000030' 412246  000004  00690           ANDCAM DAT,DEVMOD(DDB)          ;CLEAR USE BIT\r
15171         000031' 554306  000003  00700           HLRZ DDB,DEVSER(DDB)            ;GET NEXT TTY DDB\r
15172         000032' 253040  000024' 00710           AOBJN TAC,SCN1\r
15173         000033' 205040  000000* 00720           MOVSI TAC,MTTYLN        ;SET DDB USE BITS FROM TRANSLATOR TABLE\r
15174         000034' 205100  010000  00730           MOVSI TAC1,TTYUSE\r
15175         000035' 332301  000004* 00740   SCN2:   SKIPE DDB,TTYTAB(TAC)\r
15176         000036' 436106  000004  00750           IORM TAC1,DEVMOD(DDB)\r
15177         000037' 253040  000035' 00760           AOBJN TAC,SCN2\r
15178         000040' 263140  000000  00770           POPJ PDP,\r
15179 \r\fSCNSER - SCANNER SERVICE                 PAGE 3\r
15180         TOM EGGERS     8-9-65\r
15181 \r
15182 \r
15183                                 00800   ;ROUTINE TO RETURN TTY TO VIRGIN STATE\r
15184                                 00810   ;CALL:    MOVE DDB, ADDRESS OF DEVICE DATA BLOCK\r
15185                                 00820   ;         PUSHJ PDP,TTYKIL\r
15186 \r
15187                                 00840   INTERNAL TTYKIL\r
15188 \r
15189         000041' 200040  001144' 00860   TTYKIL: MOVE TAC,[XWD TTYUSE+TTYATC,ASSCON+ASSPRG]\r
15190         000042' 412046  000004  00870           ANDCAM TAC,DEVMOD(DEVDAT)       ;CLEAR DDB USE BIT\r
15191         000043' 402006  000000  00880           SETZM DEVNAM(DEVDAT)            ;CLEAR PHYSICAL NAME\r
15192         000044' 402006  000005  00890           SETZM DEVLOG(DEVDAT)            ;CLEAR LOGICAL NAME\r
15193         000045' 254000  000052' 00900           JRST TTYDT1\r
15194 \r
15195                                 00920   ;ROUTINE TO DETACH TTY FROM JOB\r
15196                                 00930   ;CALL:    MOVE DEVDAT,ADDRESS OF TTY DDB TO BE DETACHED\r
15197 \r
15198                                 00950   INTERNAL TTYDET\r
15199 \r
15200         000046' 200046  000004  00970   TTYDET: MOVE TAC,DEVMOD(DEVDAT)\r
15201         000047' 627040  020000  00980           TLZN TAC,TTYATC      ;WAS TTY ATTACHED?\r
15202         000050' 254000  000041' 00990           JRST TTYKIL          ;NO, SO RETURN DDB TO POOL\r
15203         000051' 202046  000004  01000           MOVEM TAC,DEVMOD(DEVDAT)        ;YES, JUST CLEAR ATTACH BIT\r
15204         000052' 135100  000000* 01010   TTYDT1: LDB LINE,PUNIT\r
15205         000053' 414002  000035* 01020           SETM TTYTAB(LINE)\r
15206         000054' 263140  000000  01030           POPJ PDP,\r
15207 \r
15208 \r
15209         000055' 000000  000000  01060   CCHAR:  0          ;HOLDS CHARACTER FOR CONSOLE TELETYPE\r
15210                                 01070   ;CONTROL C - GO BACK TO MONITOR\r
15211                                 01080   ;CONTROL 0 - SUPPRESS OUTPUT\r
15212 \r
15213         000056' 334040  001145' 01100   TTYURC: SKIPA TAC,[XWD USRB,USRBC]      ;START JOB BUT REMAIN IN MON1\r
15214         000057' 205040  000100  01110   TTYUSR: MOVSI TAC,USRB          ;CAUSE TTY TO GO INTO\r
15215         000060' 436046  000002  01120           IORM TAC,DEVIOS(DEVDAT)         ;USER MODE WHEN\r
15216         000061' 263140  000000  01130           POPJ PDP, ;OUTPUT FINISHES\r
15217 \r
15218                                 01150   INTERNAL TTYSET\r
15219 \r
15220         000062' 205040  000004  01170   TTYSET: MOVSI TAC,IOFST         ;INITIALIZE USER TTY IOS WORD\r
15221         000063' 202046  000027* 01180           MOVEM TAC,TTYSAV(DEVDAT)        ;FOR START COMMAND\r
15222         000064' 254000  000057' 01190           JRST TTYUSR\r
15223 \r\fSCNSER - SCANNER SERVICE                 PAGE 4\r
15224         TOM EGGERS     8-9-65\r
15225 \r
15226 \r
15227 \r
15228                                 01230   ;ROUTINE TO ATTACH TTY TO A JOB\r
15229                                 01240   ;CALL:    MOVE DEVDAT,ADDRESS OF TTY DEVICE DATA BLOCK\r
15230                                 01250   ;         MOVE ITEM,JOB NUMBER\r
15231                                 01260   ;         PUSHJ PDP,TTYATT\r
15232                                 01270   ;         ERROR     ;DEVDAT=DDB ADR OF OTHER TTY\r
15233                                 01280                       ;IF ANOTHER ALREADY IS ATTACHED.\r
15234                                 01290   ;         OK RETURN ;DEVDAT, DAT AND TRANSLATOR TABLE SET\r
15235 \r
15236                                 01310   INTERNAL TTYATT\r
15237 \r
15238         000065' 135100  000052* 01330   TTYATT: LDB LINE,PUNIT  ;LINE NO. OF THIS TTY\r
15239         000066' 201300  000023* 01340           MOVEI DEVDAT,TTYLST ;SEARCH FOR DDB THAT IS ATTACHED\r
15240         000067' 334000  000000  01350           SKIPA\r
15241         000070' 554306  000003  01360   TTYAT2: HLRZ DEVDAT,DEVSER(DEVDAT)\r
15242         000071' 322300  000115' 01370           JUMPE DEVDAT,TTYAT4\r
15243         000072' 135040  000000* 01380           LDB TAC,PJOBN       ;JOB NUMBER\r
15244         000073' 500046  000004  01390           HLL TAC,DEVMOD(DEVDAT)          ;ATTACH AND USE BITS\r
15245         000074' 607040  000010  01400           TLNN TAC,DVTTY       ;IS THIS STILL A TTY DDB?\r
15246         000075' 254000  000115' 01410           JRST TTYAT4          ;NO, THIS MUST BE IJOB\r
15247         000076' 306201  000000  01420           CAIN ITEM,(TAC)      ;JOB NUMBER THE ONE TO ATTACH?\r
15248         000077' 607040  010000  01430           TLNN TAC,TTYUSE      ;YES, IS IT THE DETACHED ONE?\r
15249         000100' 254000  000070' 01440           JRST TTYAT2          ;NO, KEEP LOOKING\r
15250         000101' 603040  020000  01450           TLNE TAC,TTYATC         ;IS SOME TTY ALREADY ATTACHED?\r
15251         000102' 263140  000000  01460           POPJ PDP,               ;YES, ERROR RETURN WITH DEVDAT SET\r
15252         000103' 261140  000006  01470           PUSH PDP,DEVDAT         ;SAVE NEW DDB ADDRESS\r
15253         000104' 200302  000053* 01480           MOVE DEVDAT,TTYTAB(LINE)\r
15254         000105' 200046  000004  01490           MOVE TAC,DEVMOD(DEVDAT)\r
15255         000106' 260140  000046' 01500           PUSHJ PDP,TTYDET        ;DETACH DDB FROM TTY\r
15256         000107' 262140  000006  01510           POP PDP,DEVDAT\r
15257         000110' 137200  000004' 01520   TTYAT3: DPB ITEM,TPCJOBN        ;STORE ATTACHED JOB NO.\r
15258         000111' 137200  000072* 01530           DPB ITEM,PJOBN          ;SET JOB NUMBER\r
15259         000112' 205040  020000  01540           MOVSI TAC,TTYATC        ;SET ATTACHED BIT\r
15260         000113' 260140  000247' 01550           PUSHJ PDP,TTYDAT        ;SETUP OUTPUT BYTE\r
15261         000114' 254000  000411' 01560           JRST SCNIN              ;GO INITIALIZE DDB\r
15262 \r
15263         000115' 200302  000104* 01580   TTYAT4: MOVE DEVDAT,TTYTAB(LINE)        ;RESTORE OLD DDB ADDRESS\r
15264         000116' 254000  000110' 01590           JRST TTYAT3\r
15265 \r\fSCNSER - SCANNER SERVICE                 PAGE 5\r
15266         TOM EGGERS     8-9-65\r
15267 \r
15268 \r
15269 \r
15270                                 01630   ;ROUTINE TO SETUP AC DEVDAT TO ADDRESS OF TTY WHICH HAS TYPED A COMMA\r
15271                                 01640   ;AC DAT TO BYTE POINTER TO OUTPUT BUFFER FOR COMMAND MESSAGE\r
15272                                 01650   ;AC TAC TO BYTE POINTER TO COMMAND STRING\r
15273                                 01660   ;AC ITEM TO JOB NUNMBER TTY IS ATTACHED TO\r
15274                                 01670   ;CALL:     PUSHJ PDP,TTYCOM\r
15275                                 01680   ;          NONE FOUND\r
15276                                 01690   ;          ACS SETUP\r
15277 \r
15278                                 01710   INTERNAL TTYCOM\r
15279 \r
15280         000117' 205100  000033* 01730   TTYCOM: MOVSI LINE,MTTYLN\r
15281         000120' 331002  000115* 01740           SKIPL TTYTAB(LINE)\r
15282         000121' 253100  000120' 01750           AOBJN LINE,.-1\r
15283         000122' 327100  000000* 01760           JUMPG LINE,CPOPJ\r
15284         000123' 205300  400000  01770           MOVSI DEVDAT,400000\r
15285         000124' 413302  000120* 01780           ANDCAB DEVDAT,TTYTAB(LINE)\r
15286         000125' 205240  440700  01790           MOVSI DAT,440700\r
15287         000126' 271246  000000* 01800           ADDI DAT,TTYBUF(DEVDAT)\r
15288         000127' 200040  000005  01810           MOVE TAC,DAT\r
15289 \r
15290                                 01830   ;FALL INTO TTYJOB\r
15291 \r
15292                                 01850   ;ROUTINE TO RETURN IN AC ITEM JOB NUMBER WHICH TTY IS ATTACHED TO\r
15293                                 01860   ;CALL:    MOVE DEVDAT,ADDRESS OF TTY DEVICE DATA BLOCK\r
15294 \r
15295                                 01880   INTERNAL TTYJOB\r
15296 \r
15297         000130' 135100  000065* 01900   TTYJOB: LDB LINE, PUNIT\r
15298         000131' 135200  000004' 01910           LDB ITEM,TPCJOBN\r
15299         000132' 254000  000000* 01920           JRST CPOPJ1\r
15300 \r\fSCNSER - SCANNER SERVICE                 PAGE 6\r
15301         TOM EGGERS     8-9-65\r
15302 \r
15303 \r
15304 \r
15305                                 01960   ;TELETYPE SCANNER UUO ROUTINES\r
15306                                 01970   ;FOR DDT\r
15307 \r
15308                                 01990   ;DDTGT WAITS FOR OUTPUT TO COMPLETE THEN PUTS\r
15309                                 02000   ;TELETYPE INTO DDT MODE\r
15310 \r
15311         000133' 260140  000231' 02020   DDTGT:  PUSHJ PDP,TTYSR1        ;FIND DEVICE DATA BLOCK\r
15312         000134' 200006  000002  02030           MOVE IOS,DEVIOS(DEVDAT)\r
15313         000135' 607000  100000  02040           TLNN IOS,DDTM\r
15314         000136' 607000  000020  02050           TLNN IOS,IO             ;OUTPUT IN PROGRESS\r
15315         000137' 254000  000141' 02060           JRST DDTGT2             ;NO\r
15316                                 02070   ;       PUSHJ PDP,OUT           ;MAKE SURE OUTPUT STARTED\r
15317         000140' 260140  000000* 02080           PUSHJ PDP,WAIT1         ;WAIT FOR OUTPUT TO FINISH\r
15318         000141' 661000  100000  02090   DDTGT2: TLO IOS,DDTM            ;SET DDT MODE BIT\r
15319         000142' 202006  000002  02100           MOVEM IOS,DEVIOS(DEVDAT)\r
15320         000143' 254000  000000* 02110           JRST UXIT\r
15321 \r
15322                                 02130   ;RELEASE TELETYPE FROM DDT MODE\r
15323                                 02140   ;MAKE SURE OUPUT IS FINISHED FIRST\r
15324 \r
15325         000144' 260140  000231' 02160   DDTRL:  PUSHJ PDP,TTYSR1        ;FIND DEVICE DATA BLOCK\r
15326         000145' 200006  000002  02170           MOVE IOS,DEVIOS(DEVDAT)\r
15327         000146' 603000  000020  02180           TLNE IOS,IO             ;OUTPUT IN PROGRESS?\r
15328         000147' 260140  000140* 02190           PUSHJ PDP,WAIT1         ;YES, WAIT\r
15329         000150' 205000  140000  02200           MOVSI IOS,DDTM+SYNC\r
15330         000151' 412006  000002  02210           ANDCAM IOS,DEVIOS(DEVDAT)       ;TURN OFF DDT BIT\r
15331         000152' 254000  000143* 02220           JRST UXIT\r
15332 \r\fSCNSER - SCANNER SERVICE                 PAGE 7\r
15333         TOM EGGERS     8-9-65\r
15334 \r
15335 \r
15336 \r
15337                                 02260   ;INPUT TO DDT\r
15338                                 02270   ;CALL AC,[SIXBIT /DDTIN/]     AC CONTAINS POINTER TO BUFFER AREA\r
15339                                 02280   ;BUFFER AREA MUST BE 21 WORDS LONG\r
15340 \r
15341         000153' 260140  000231' 02300   DDTIN:  PUSHJ PDP,TTYSR1                ;SET UP DEVDAT\r
15342         000154' 200006  000002  02310           MOVE IOS,DEVIOS(DEVDAT)\r
15343         000155' 603000  000020  02320           TLNE IOS,IO                     ;OUTPUT IN PROGRESS\r
15344         000156' 260140  000147* 02330           PUSHJ PDP,WAIT1                 ;YES, WAIT\r
15345         000157' 200006  000002  02340   DDTIN2: MOVE IOS,DEVIOS(DEVDAT)\r
15346         000160' 603000  000040  02350           TLNE IOS,IOEND                  ;BUFFER ALREADY?\r
15347         000161' 254000  000166' 02360           JRST DDTIN3                     ;YES\r
15348         000162' 201000  010000  02370           MOVEI IOS,IOACT\r
15349         000163' 436006  000002  02380           IORM IOS,DEVIOS(DDB)\r
15350         000164' 260140  000000* 02390           PUSHJ PDP,WSYNC                 ;NO, WAIT\r
15351         000165' 254000  000157' 02400           JRST DDTIN2\r
15352 \r
15353         000166' 205040  120004  02420   DDTIN3: MOVSI TAC,NIO+IOFST+DDTM\r
15354         000167' 436046  000002  02430           IORM TAC,DEVIOS(DEVDAT)         ;STOP ALL IO\r
15355         000170' 200046  000000* 02440           MOVE TAC,TTYPTR(DEVDAT)\r
15356         000171' 260140  000000* 02450           PUSHJ PDP,CLRBYT                ;CLEAR OUT REMAINING BYTES\r
15357         000172' 275046  000000* 02460           SUBI TAC,TTYBM1(DEVDAT)         ;NUMBER OF WORDS\r
15358         000173' 135100  000000* 02470           LDB TAC1,PUUOAC       ;PICK UP AC NUMBER\r
15359         000174' 271107  000000  02480           ADDI TAC1,(PROG)                ;FIND REAL ADDRESS\r
15360         000175' 200102  000000  02490           MOVE TAC1,(TAC1)                ;PICK UP POINTER\r
15361         000176' 271107  000000  02500           ADDI TAC1,(PROG)                ;FIND REAL ADDRESS OF BUFFER\r
15362         000177' 505106  000126* 02510           HRLI TAC1,TTYBUF(DEVDAT)\r
15363         000200' 271042  000000  02520           ADDI TAC,(TAC1)\r
15364         000201' 251101  000000  02530           BLT TAC1,(TAC)                  ;TRANSFER MONITOR BUFFER TO U\r
15365         000202' 402001  000001  02540           CLEARM 1(TAC)                   ;MAKE SURE THERE ARE SOME NUL\r
15366         000203' 205040  020040  02550           MOVSI TAC,NIO+IOEND\r
15367         000204' 412046  000002  02560           ANDCAM TAC,DEVIOS(DEVDAT)\r
15368         000205' 254000  000152* 02570           JRST UXIT\r
15369 \r\fSCNSER - SCANNER SERVICE                 PAGE 8\r
15370         TOM EGGERS     8-9-65\r
15371 \r
15372 \r
15373 \r
15374                                 02610   ;OUTPUT FROM DDT\r
15375                                 02620   ;CALL AC,[SIXBIT /DDTOUT/]      AC HAS POINTER TO DDT OUTPUT BUFFER\r
15376 \r
15377         000206' 260140  000231' 02640   DDTOUT: PUSHJ PDP,TTYSR1\r
15378         000207' 200006  000002  02650           MOVE IOS,DEVIOS(DEVDAT)\r
15379         000210' 603000  000020  02660           TLNE IOS,IO                     ;OUTPUT IN PROGRESS?\r
15380         000211' 260140  000156* 02670           PUSHJ PDP,WAIT1                 ;YES, WAIT\r
15381         000212' 200000  001146' 02680           MOVE IOS,[XWD NIO+TOUT+DDTM,IOACT]\r
15382         000213' 437006  000002  02690           IORB IOS,DEVIOS(DEVDAT)\r
15383         000214' 135040  000173* 02700           LDB TAC,PUUOAC          ;PICK UP AC NUMBER\r
15384         000215' 505040  000011  02710           HRLI TAC,JDAT           ;CALC REAL ADDRESS OF AC\r
15385         000216' 540060  000001  02720           HRR TAC,@TAC            ;PICK UP AC\r
15386         000217' 505060  000001  02730           HRLI TAC,@TAC           ;CALC REAL ADDRESS OF DDT BUF\r
15387         000220' 541046  000177* 02740           HRRI TAC,TTYBUF(DEVDAT)\r
15388         000221' 552046  000000* 02750           HRRZM TAC,TTYCTR(DDB)           ;A SUITABLY LARGE NUMBER\r
15389         000222' 200100  000001  02760           MOVE TAC1,TAC\r
15390         000223' 251042  000020  02770           BLT TAC,20(TAC1)                ;MOVE DDT BUFFER TO MONITOR\r
15391         000224' 505100  440700  02780           HRLI TAC1,440700\r
15392 \r
15393         000225' 202106  000170* 02800           MOVEM TAC1,TTYPTR(DEVDAT)\r
15394         000226' 621000  000004  02810           TLZ IOS,IOS+IOFST\r
15395         000227' 260140  000303' 02820           PUSHJ PDP,TTYOU0\r
15396         000230' 254000  000205* 02830           JRST UXIT\r
15397 \r\fSCNSER - SCANNER SERVICE                 PAGE 9\r
15398         TOM EGGERS     8-9-65\r
15399 \r
15400 \r
15401 \r
15402         000231' 200200  000000* 02870   TTYSR1: MOVE ITEM,JOB\r
15403         000232' 205100  000117* 02880   TTYSRC: MOVSI LINE,MTTYLN\r
15404         000233' 550302  000124* 02890                   HRRZ DEVDAT,TTYTAB(LINE)\r
15405         000234' 322300  000240' 02900                   JUMPE DEVDAT,TTYF0\r
15406         000235' 135040  000004' 02910                   LDB TAC,TPCJOBN\r
15407         000236' 306044  000000  02920                   CAIN TAC,(ITEM)\r
15408         000237' 263140  000000  02930                   POPJ PDP,               ;FOUND\r
15409         000240' 253100  000233' 02940           TTYF0:  AOBJN LINE,TTYSRC+1\r
15410         000241' 205040  576062  02950                   MOVSI TAC,576062        ;SIXBIT /OPR/\r
15411         000242' 254000  000000* 02960                   JRST DEVPHY             ;SEARCH PHYSICAL DEVICE NAMES\r
15412                                 02970                                           ;AND RETURN OPERATOR TTY.\r
15413 \r
15414                                 02990           ;ROUTINE TO FIND A TTY FOR A JOB\r
15415                                 03000           ;CALL:  MOVE ITEM,JOB NUMBER\r
15416                                 03010           ;       PUSHJ PDP, TTYFND\r
15417                                 03020           ;       ERROR RETURN\r
15418                                 03030           ;       RETURN WITH DEVDAT SET TO ADR OF DDB\r
15419                                 03040           ;       AND DAT SET TO BYTE POINTER TO MONITOR OUTPUT BUFFER\r
15420 \r
15421         000243' 200200  000231* 03060           TTYFNU: MOVE ITEM,JOB\r
15422         000244' 260140  000232' 03070           TTYFND: PUSHJ PDP,TTYSRC                ;CALLED BY PUSHJ PDP,TTYFND\r
15423                                 03080           ;       PUSHJ PDP,WSYNC\r
15424         000245' 205040  020000  03090                   MOVSI TAC,NIO                   ;JOB NUMBER IN TAC1\r
15425         000246' 436046  000002  03100                   IORM TAC,DEVIOS(DEVDAT) \r
15426         000247' 201246  000220* 03110           TTYDAT: MOVEI DAT,TTYBUF(DEVDAT)        ;SETUP OUTPUT BYTE POINTER\r
15427         000250' 505240  440700  03120                   HRLI DAT,440700\r
15428         000251' 263140  000000  03130                   POPJ PDP,\r
15429 \r
15430         000252' 200040  000005  03150           TTYSTR: MOVE TAC,DAT\r
15431         000253' 260140  000171* 03160                   PUSHJ PDP,CLRBYT\r
15432         000254' 275046  000172* 03170                   SUBI TAC,TTYBM1(DEVDAT)\r
15433         000255' 405040  777777  03180                   ANDI TAC,-1\r
15434         000256' 221040  000005  03190                   IMULI TAC,5\r
15435         000257' 202046  000221* 03200                   MOVEM TAC,TTYCTR(DEVDAT)\r
15436         000260' 201046  000247* 03210                   MOVEI TAC,TTYBUF(DEVDAT)\r
15437         000261' 505040  440700  03220                   HRLI TAC,440700\r
15438         000262' 202046  000225* 03230                   MOVEM TAC,TTYPTR(DEVDAT)\r
15439         000263' 200006  000002  03240                   MOVE IOS,DEVIOS(DEVDAT)\r
15440         000264' 434000  001147' 03250                   IOR IOS,[XWD NIO+IOFST,IODTER+IOBKTL]\r
15441         000265' 420000  001147' 03260                   ANDCM IOS,[XWD NIO+IOFST,IODTER+IOBKTL]\r
15442         000266' 260140  000771' 03270                   PUSHJ PDP,GCHAR\r
15443         000267' 263140  000000  03280                   POPJ PDP, ;NOTHING TO TYPE\r
15444         000270' 254000  000311' 03290                   JRST TTYOU2             ;START OUTPUT\r
15445 \r
15446                                 03310           ;DISPATCH TABLE;\r
15447 \r
15448         000271' 263140  000000  03330           TTYDSP: POPJ PDP, ;RELEASE\r
15449         000272' 254000  000000* 03340                   JRST OUT        ;CLOSE\r
15450         000273' 254000  000301' 03350                   JRST TTYOUT\r
15451         000274' 630000  001150' 03360                   TDZ IOS,[XWD TPMON,ECHOF+NCERR]         ;INPUT\r
15452         000275' 660000  010000  03370                   TRO IOS,IOACT\r
15453 \r\fSCNSER - SCANNER SERVICE                 PAGE 9-1\r
15454         TOM EGGERS     8-9-65\r
15455 \r
15456         000276' 623000  000002  03380                   TLZE IOS, IOBEG\r
15457         000277' 661000  000004  03390                   TLO IOS, IOFST\r
15458         000300' 254000  001133' 03400                   JRST MIS1\r
15459 \r
15460         000301' 670000  001151' 03420           TTYOUT: TDO IOS,[XWD TOUT+IOFST,IOACT]\r
15461         000302' 630000  001150' 03430                   TDZ IOS,[XWD TPMON,ECHOF+NCERR]\r
15462         000303' 135240  000000' 03440           TTYOU0: LDB HPOS,PHPOS\r
15463         000304' 135200  000001' 03450                   LDB VPOS,PVPOS\r
15464         000305' 260140  000771' 03460                   PUSHJ PDP, GCHAR\r
15465         000306' 263140  000000  03470                   POPJ PDP,\r
15466         000307' 137240  000000' 03480                   DPB HPOS,PHPOS\r
15467         000310' 137200  000001' 03490                   DPB VPOS,PVPOS\r
15468         000311' 135100  000130* 03500           TTYOU2: LDB LINE,PUNIT\r
15469         000312' 700200  000000* 03510                   CONO CLDS               ;DISABLE CLOCK\r
15470         000313' 306100  000000* 03520                   CAIN LINE,TCONLN\r
15471         000314' 254000  000325' 03530                   JRST CTYOUT\r
15472         000315' 730200  000000  03540                   CONO DCSA,0             ;DISABLE SCANNER\r
15473         000316' 730602  000000  03550                   CONO DCSB, (LINE)\r
15474         000317' 730140  000010  03560                   DATAO DCSA, CHREC\r
15475         000320' 730200  000017* 03570                   CONO DCSA,FSNCHN\r
15476         000321' 137400  000002' 03580                   DPB CHREC,PLASTC\r
15477         000322' 700200  000000* 03590           TTYOU1: CONO CLEN               ;RE-ENABLE CLOCK\r
15478         000323' 202006  000002  03600                   MOVEM IOS,DEVIOS(DEVDAT)\r
15479         000324' 263140  000000  03610                   POPJ PDP,\r
15480 \r
15481         000325' 712200  000000  03630           CTYOUT: CONO TTY,0              ;DISABLE TTY\r
15482         000326' 712140  000010  03640                   DATAO TTY,CHREC\r
15483         000327' 202400  000055' 03650                   MOVEM CHREC,CCHAR\r
15484         000330' 712200  000015* 03660                   CONO TTY,SCNCHN         ;RE-ENABLE\r
15485         000331' 254000  000301' 03670                   JRST TTYOUT1\r
15486 \r
15487         000332' 712340  000050  03690           CTYINT: CONSO TTY,50\r
15488         000333' 254000  000333' 03700                   JRST .\r
15489         000334' 712340  000040  03710                   CONSO TTY,40\r
15490         000335' 254000  000347' 03720                   JRST CTYOU1\r
15491         000336' 202040  000055' 03730                   MOVEM TAC, CCHAR        ;DONT ECHO RUBOUT\r
15492         000337' 712040  000001  03740                   DATAI TTY, TAC\r
15493         000340' 405040  000177  03750                   ANDI TAC, 177\r
15494         000341' 306040  000177  03760                   CAIN TAC, 177\r
15495         000342' 254000  000346' 03770                   JRST CTYRUB             ;IS A RUBOUT\r
15496         000343' 712140  000001  03780                   DATAO TTY, TAC          ;NOT, SO ECHO\r
15497         000344' 250040  000055' 03790                   EXCH TAC, CCHAR\r
15498         000345' 254520  000000* 03800                   JRST 12,@SCNCHL                 ;DISMISS INTERRUP\r
15499 \r
15500         000346' 250040  000055' 03820           CTYRUB: EXCH TAC, CCHAR\r
15501         000347' 264000  000000* 03830           CTYOU1: JSR SCNSAV\r
15502         000350' 201400  000330* 03840                   MOVEI CHREC,SCNCHN\r
15503         000351' 712210  000200  03850                   CONO TTY,200(CHREC)\r
15504         000352' 200400  000055' 03860                   MOVE CHREC,CCHAR\r
15505         000353' 201100  000313* 03870                   MOVEI LINE,TCONLN\r
15506         000354' 254000  000364' 03880                   JRST TCOMM\r
15507 \r
15508         000355' 730340  001010  03900           SCNINT: CONSO DCSA,1010\r
15509 \r\fSCNSER - SCANNER SERVICE                 PAGE 9-2\r
15510         TOM EGGERS     8-9-65\r
15511 \r
15512         000356' 254000  000356' 03910                   JRST .\r
15513         000357' 264000  000347* 03920                   JSR SCNSAV\r
15514         000360' 730340  000010  03930                   CONSO DCSA,10           ;RECEIVER FLAG?\r
15515         000361' 254000  000440' 03940                   JRST SCNIN1             ;NO,XMITTER FLAG\r
15516         000362' 730640  000002  03950                   CONI DCSB, LINE\r
15517         000363' 730440  000010  03960                   DATAI DCSB, CHREC\r
15518         000364' 405400  000177  03970           TCOMM:  ANDI CHREC, 177\r
15519         000365' 303100  000353* 03980                   CAILE LINE,TCONLN       ;CTY LINE OR LESS\r
15520         000366' 254000  000450' 03990                   JRST TYPX               ;NO\r
15521         000367' 332302  000233* 04000                   SKIPE DDB,TTYTAB(LINE)  ;DATA BLOCK ASSIGNED?\r
15522         000370' 254000  000462' 04010                   JRST INUSE              ;YES\r
15523         000371' 260140  000400' 04020                   PUSHJ PDP,DDBSRC        ;SEARCH FOR FREE TTY DEV. DATA BLOCK\r
15524         000372' 254000  000450' 04030                   JRST TYPX               ;NONE FOUND, TYPE X\r
15525         000373' 403240  000004  04040                   CLEARB HPOS,VPOS        ;ASSUME TTY IS AT BEGIN OF FORM\r
15526         000374' 730300  000700  04050                   CONSZ DCSA,700          ;FULL DUPLEX?\r
15527         000375' 306100  000365* 04060                   CAIN LINE,TCONLN        ;CTY?\r
15528         000376' 254000  000575' 04070                   JRST INJEST             ;NO, SWALLOW CHAR\r
15529         000377' 254000  000511' 04080                   JRST TYP1\r
15530 \r\fSCNSER - SCANNER SERVICE                 PAGE 10\r
15531         TOM EGGERS     8-9-65\r
15532 \r
15533 \r
15534 \r
15535                                 04120   ;ROUTINE TO SEARCH FOR FREE TTY DEV DATA BLOCK\r
15536                                 04130   ;CALL:    MOVE LINE,TTY LINE NO\r
15537                                 04140   ;         PUSHJ PDP,DDBSRC\r
15538                                 04150   ;         NONE FOUND\r
15539                                 04160   ;         RETURN DEVDAT, LINE SET\r
15540 \r
15541         000400' 205000  000020* 04180   DDBSRC:   MOVSI IOS,MLTTYL      ;NO. OF TTY DDB\r
15542         000401' 201300  000066* 04190             MOVEI DEVDAT,TTYLST   ;ADDRESS OF FIRST DDB\r
15543         000402' 334040  001144' 04200             SKIPA TAC,[XWD TTYUSE+TTYATC,ASSPRG+ASSCON]\r
15544         000403' 554306  000003  04210             HLRZ DEVDAT,DEVSER(DEVDAT)\r
15545         000404' 612046  000004  04220             TDNE TAC,DEVMOD(DEVDAT)       ;USE.ATTACH, AND BOTH ASSIGN\r
15546         000405' 253000  000403' 04230             AOBJN IOS,.-2\r
15547         000406' 325000  000122* 04240             JUMPGE IOS,CPOPJ      ;DDB FOUND?\r
15548         000407' 200000  001152' 04250             MOVE IOS,[XWD TPMON+IOFST,IOACT]\r
15549         000410' 200040  001153' 04260             MOVE TAC,[XWD TTYUSE,ASSCON]\r
15550 \r
15551                                 04280   ;INITIALIZE TTY DEVICE DATA BLOCK(CALLED FROM TTYATT TOO)\r
15552 \r
15553         000411' 436046  000004  04300   SCNIN:    IORM TAC,DEVMOD(DEVDAT)\r
15554         000412' 137100  000311* 04310             DPB LINE,PUNIT        ;SET LINE NO. IN DDB\r
15555         000413' 205040  646471  04320             MOVSI TAC,646471      ;SIXBIT /TTY/\r
15556         000414' 202046  000000  04330             MOVEM TAC,DEVNAM(DEVDAT)\r
15557         000415' 200040  001154' 04340             MOVE TAC,[POINT 6,DEVNAM(DEVDAT),17]\r
15558         000416' 261140  000002  04350             PUSH PDP,LINE         ;SAVE LINE NO.\r
15559         000417' 606100  000070  04360             TRNN LINE,70          ;IS THERE A HIGH ORDER OCTAL DIGIT?\r
15560         000420' 254000  000425' 04370             JRST SCNIN0           ;NO\r
15561         000421' 241100  777775  04380             ROT LINE,-3           ;YES,CONVERT TO SIXBIT\r
15562         000422' 271100  000020  04390             ADDI LINE,20\r
15563         000423' 136100  000001  04400             IDPB LINE,TAC         ;STORE HIGH ORDER SIXBIT DIGIT\r
15564         000424' 242100  000020  04410             LSH LINE,20           ;IN PHYSICAL NAME\r
15565         000425' 271100  000020  04420   SCNIN0:   ADDI LINE,20\r
15566         000426' 136100  000001  04430             IDPB LINE,TAC         ;STORE LOW ORDER DIGIT\r
15567         000427' 262140  000002  04440             POP PDP,LINE\r
15568 \r
15569         000430' 542302  000367* 04460             HRRM DEVDAT,TTYTAB(LINE)      ;SET LINE NO. IN TRANSLATOR T\r
15570         000431' 205040  436471  04470             MOVSI TAC,436471      ;SIXBIT /CTY/\r
15571         000432' 306100  000375* 04480             CAIN LINE,TCONLN      ;IS THIS CONSOLE TTY?\r
15572         000433' 202046  000000  04490             MOVEM TAC,DEVNAM(DEVDAT)      ;YES, SET NAME TO CTY\r
15573         000434' 200046  000000  04500             MOVE TAC,DEVNAM(DEVDAT)\r
15574         000435' 336000  000000* 04510             SKIPN DEVOPR          ;IS THIS FIRST CHAR. TYPED BY ANYONE?\r
15575         000436' 202040  000435* 04520             MOVEM TAC,DEVOPR      ;YES,SET THIS TTY AS OPERATOR TTY\r
15576         000437' 254000  000132* 04530             JRST CPOPJ1           ;SUCCESSFUL RETURN\r
15577 \r
15578         000440' 730040  000002  04550   SCNIN1:   DATAI DCSA,LINE       ;GET LINE NO. FROM FULL DUPLEX\r
15579         000441' 201040  000320* 04560             MOVEI TAC,FSNCHN\r
15580         000442' 730201  004000  04570             CONO DCSA,4000(TAC)   ;RELEASE XMITTER SCANNER\r
15581         000443' 332302  000430* 04580             SKIPE DDB,TTYTAB(LINE)        ;DATA BLOCK ASSIGNED?\r
15582         000444' 301100  000432* 04590             CAIL LINE,TCONLN      ;LINE NO. TOO LARGE?\r
15583         000445' 254000  000000* 04600             JRST SCNRET                   ;GO AWAY\r
15584         000446' 135400  000002' 04610             LDB CHREC,PLASTC\r
15585         000447' 254000  000471' 04620             JRST INUS1\r
15586 \r\fSCNSER - SCANNER SERVICE                 PAGE 11\r
15587         TOM EGGERS     8-9-65\r
15588 \r
15589 \r
15590 \r
15591         000450' 306400  000130  04660   TYPX:     CAIN CHREC,"X"                ;CHARACTER RECEIVED AN X?\r
15592         000451' 254000  000445* 04670             JRST SCNRET                 ;YES, GO AWAY\r
15593         000452' 201400  000130  04680             MOVEI CHREC,"X"\r
15594         000453' 302100  000444* 04690             CAIE LINE,TCONLN\r
15595         000454' 254000  000457' 04700             JRST TYPX1\r
15596         000455' 712140  000010  04710             DATAO TTY,CHREC\r
15597         000456' 254000  000451* 04720             JRST SCNRET\r
15598         000457' 730742  000000  04730   TYPX1:    CONSO DCSB,(LINE)\r
15599         000460' 730140  000010  04740             DATAO DCSA,CHREC              ;TYPE AN X\r
15600         000461' 254000  000456* 04750             JRST SCNRET\r
15601 \r
15602         000462' 730300  000700  04770   INUSE:    CONSZ DCSA,700        ;FULL DUPLEX?\r
15603         000463' 306100  000453* 04780             CAIN LINE,TCONLN\r
15604         000464' 254000  000471' 04790             JRST INUS1\r
15605         000465' 730602  000000  04800             CONO DCSB,(LINE)\r
15606         000466' 730140  000010  04810             DATAO DCSA,CHREC\r
15607         000467' 137400  000002' 04820             DPB CHREC,PLASTC\r
15608         000470' 254000  000461* 04830             JRST SCNRET\r
15609 \r
15610         000471' 200006  000002  04850   INUS1:    MOVE IOS,DEVIOS(DDB)\r
15611         000472' 135340  000111* 04860             LDB PROG,PJOBN\r
15612         000473' 550347  000000* 04870             HRRZ PROG,JBTADR(PROG)\r
15613         000474' 135240  000000' 04880             LDB HPOS,PHPOS\r
15614         000475' 135200  000001' 04890             LDB VPOS,PVPOS\r
15615         000476' 135046  000262* 04900             LDB TAC, TTYPTR(DDB)\r
15616         000477' 603000  002000  04910             TLNE IOS, SP\r
15617         000500' 254000  000533' 04920             JRST SIM35\r
15618         000501' 607000  000020  04930   INUS2:    TLNN IOS,TOUT\r
15619         000502' 254000  000575' 04940             JRST INJEST\r
15620         000503' 312040  000010  04950             CAME TAC, CHREC\r
15621         000504' 254000  000527' 04960             JRST ECHO\r
15622         000505' 260140  000771' 04970   INUS3:    PUSHJ PDP, GCHAR\r
15623         000506' 254000  000520' 04980             JRST LEAV0\r
15624         000507' 306100  000463* 04990   TYPE:     CAIN LINE,TCONLN\r
15625         000510' 254000  000524' 05000             JRST CTSER3\r
15626         000511' 730602  000000  05010   TYP1:     CONO DCSB,(LINE)\r
15627         000512' 730140  000010  05020             DATAO DCSA, CHREC\r
15628         000513' 137400  000002' 05030             DPB CHREC,PLASTC      ;SAVE CHARACTER FOR FULL DUPLEX\r
15629         000514' 202006  000002  05040   LEAVE:    MOVEM IOS, DEVIOS(DDB)\r
15630         000515' 137240  000000' 05050   LEAV1:    DPB HPOS,PHPOS\r
15631         000516' 137200  000001' 05060             DPB VPOS,PVPOS\r
15632         000517' 254000  000470* 05070             JRST SCNRET\r
15633         000520' 202046  000004  05080   LEAV0:    MOVEM TAC,DEVMOD(DEVDAT)      ;IS TTY ATTCHED?\r
15634         000521' 607040  020000  05090             TLNN TAC,TTYATC\r
15635         000522' 260140  000041' 05100             PUSHJ PDP,TTYKIL              ;NO,RETURN TO POOL\r
15636         000523' 254000  000515' 05110             JRST LEAV1\r
15637 \r
15638         000524' 712140  000010  05130   CTSER3:   DATAO TTY,CHREC\r
15639         000525' 202400  000055' 05140             MOVEM CHREC,CCHAR\r
15640         000526' 254000  000514' 05150             JRST LEAVE\r
15641 \r\fSCNSER - SCANNER SERVICE                 PAGE 12\r
15642         TOM EGGERS     8-9-65\r
15643 \r
15644 \r
15645 \r
15646         000527' 670000  001155' 05190   ECHO:     TDO IOS,[XWD SP,ECHOF]\r
15647         000530' 621000  000020  05200             TLZ IOS,TOUT\r
15648         000531' 201400  000177  05210             MOVEI CHREC,177               ;SEND A RUBOUT AFTER ECHO CHE\r
15649         000532' 254000  000507' 05220             JRST TYPE\r
15650 \r
15651         000533' 205040  777766  05240   SIM35:    MOVSI TAC,-SCTABL\r
15652         000534' 200241  000545' 05250             MOVE HPOS, SCTAB(TAC)\r
15653         000535' 302405  000000  05260             CAIE CHREC,(HPOS)\r
15654         000536' 253040  000534' 05270             AOBJN TAC, .-2\r
15655         000537' 135240  000000' 05280             LDB HPOS,PHPOS\r
15656         000540' 325040  000527' 05290             JUMPGE TAC, ECHO\r
15657         000541' 204041  000545' 05300             MOVS TAC, SCTAB(TAC)\r
15658         000542' 603040  000140  05310             TLNE TAC, 140         ;SPACING CHARACTER\r
15659         000543' 344241  000000  05320             AOJA HPOS,(TAC)       ;YES\r
15660         000544' 254001  000000  05330             JRST (TAC)            ;NO\r
15661 \r
15662         000545' 000557' 000040  05350   SCTAB:    XWD SPACE," "\r
15663         000546' 000565' 000012  05360             XWD SIMLF,12\r
15664         000547' 000572' 000177  05370             XWD SIMRO,177         ;RUBOUT\r
15665         000550' 000572' 000134  05380             XWD SIMRO,134         ;BACK SLASH\r
15666         000551' 000735' 000015  05390             XWD ASC3,15           ;CR\r
15667         000552' 000562' 000136  05400             XWD SIMVA,"^"\r
15668         000553' 000766' 000103  05410             XWD DELET1,"C"\r
15669         000554' 000766' 000117  05420             XWD DELET1,"O"\r
15670         000555' 000566' 000132  05430             XWD SIM4,"Z"\r
15671         000556' 000766' 000125  05440             XWD DELET1,"U"\r
15672                         000012  05450   SCTABL=.-SCTAB\r
15673 \r
15674         000557' 606240  000007  05470   SPACE:    TRNN HPOS,7           ;FINISHED SIMULATING TABS(8)\r
15675         000560' 254000  000566' 05480             JRST SIM4             ;YES\r
15676         000561' 254000  000507' 05490             JRST TYPE             ;NO, SEND ANOTHER SPACE\r
15677 \r
15678         000562' 135400  000003' 05510   SIMVA:    LDB CHREC,PSCHAR\r
15679         000563' 660400  000100  05520             TRO CHREC, 100\r
15680         000564' 254000  000507' 05530             JRST TYPE\r
15681 \r
15682         000565' 367200  000507' 05550   SIMLF:    SOJG VPOS,TYPE        ;SEND ANOTHER LINE-FEED\r
15683         000566' 621000  002000  05560   SIM4:     TLZ IOS,SP\r
15684         000567' 607000  000020  05570             TLNN IOS,TOUT\r
15685         000570' 254000  000630' 05580             JRST INJ4\r
15686         000571' 254000  000505' 05590             JRST INUS3\r
15687 \r
15688         000572' 625000  002000  05610   SIMRO:    TLZA IOS, SP\r
15689         000573' 640000  004000  05620   MOD35:    TRC IOS,T35\r
15690         000574' 254000  000514' 05630             JRST LEAVE\r
15691 \r\fSCNSER - SCANNER SERVICE                 PAGE 13\r
15692         TOM EGGERS     8-9-65\r
15693 \r
15694 \r
15695 \r
15696         000575' 306400  000003  05670   INJEST:   CAIN CHREC,3          ;CONTROL C?\r
15697         000576' 254000  000644' 05680             JRST INJ5\r
15698         000577' 623000  000004  05690             TLZE IOS,IOFST        ;IF FIRST CHARACTER IN, INITIALIZE\r
15699         000600' 260140  000632' 05700             PUSHJ PDP,SETMB1\r
15700         000601' 603000  100000  05710             TLNE IOS,DDTM         ;1 DDT CHAR RESTARTS PROGRAM\r
15701         000602' 661000  040040  05720             TLO IOS,SYNC+IOEND    ;YES, TERMINATE BUFFER\r
15702         000603' 306400  000017  05730             CAIN CHREC,17                 ;COTNROL O?\r
15703         000604' 254000  000657' 05740             JRST INJ6                     ;YES, FLUSH OUTPUT\r
15704         000605' 622000  100000  05750             TRZE IOS,ECHOF                ;ECHO HAS OCCURRED?\r
15705         000606' 254000  000677' 05760             JRST INJ7                     ;YES, NOW RESUME OUTPUT\r
15706         000607' 602000  040000  05770             TRNE IOS,NCERR\r
15707         000610' 254000  000514' 05780             JRST LEAVE\r
15708         000611' 302400  000033  05790             CAIE CHREC,033        ;NEW NEW ALT-MODE?\r
15709         000612' 306400  000176  05800             CAIN CHREC,176        ;NEW ALT-MODE?\r
15710         000613' 201400  000175  05810             MOVEI CHREC,175       ;CHANGE TO OLD\r
15711         000614' 306400  000020  05820             CAIN CHREC,20         ;CONTROL P TAB SIMULATION FLIP FLOP SWI\r
15712         000615' 254000  000573' 05830             JRST MOD35\r
15713         000616' 603000  100000  05840             TLNE IOS,DDTM\r
15714         000617' 254000  000622' 05850             JRST INJ25            ;SENT RUBOUTS ON TO DDT\r
15715         000620' 306400  000177  05860             CAIN CHREC,177        ;RUBOUT\r
15716         000621' 254000  000752' 05870             JRST DELET\r
15717         000622' 136406  000476* 05880   INJ25:    DPBI CHREC, TTYPTR(DDB)\r
15718         000623' 370046  000257* 05890             SOS TAC, TTYCTR(DDB)\r
15719         000624' 301400  000040  05900             CAIL CHREC, 40\r
15720         000625' 303400  000137  05910             CAILE CHREC, 137\r
15721         000626' 254000  000701' 05920             JRST SPCIN\r
15722         000627' 271240  000001  05930             ADDI HPOS,1\r
15723         000630' 260140  001064' 05940   INJ4:     PUSHJ PDP, MOVBUF\r
15724         000631' 254000  000514' 05950             JRST LEAVE\r
15725 \r
15726         000632' 541046  000260* 05970   SETMB1:   HRRI TAC, TTYBUF(DDB)\r
15727         000633' 505040  440700  05980             HRLI TAC, 440700\r
15728         000634' 202046  000622* 05990             MOVEM TAC, TTYPTR(DDB)\r
15729         000635' 507000  000001  06000             HRLS TAC\r
15730         000636' 350000  000001  06010             AOS TAC\r
15731         000637' 402006  000632* 06020             SETZM TTYBUF(DDB)\r
15732         000640' 251046  000000* 06030             BLT TAC,TTYBFE(DDB) ;CLEAR OUT MONITOR BUFFER\r
15733         000641' 201040  000111  06040             MOVEI TAC, 111\r
15734         000642' 202046  000623* 06050             MOVEM TAC, TTYCTR(DDB)\r
15735         000643' 263140  000000  06060             POPJ PDP,\r
15736 \r\fSCNSER - SCANNER SERVICE                 PAGE 14\r
15737         TOM EGGERS     8-9-65\r
15738 \r
15739 \r
15740 \r
15741         000644' 260140  000632' 06100   INJ5:     PUSHJ PDP,SETMB1\r
15742         000645' 261140  000004  06110             PUSH PDP,ITEM         ;^C\r
15743         000646' 135200  000004' 06120             LDB ITEM,TPCJOBN      ;YES, GET USER CONSOLE NUMBER\r
15744         000647' 332000  000004  06130             SKIPE ITEM\r
15745         000650' 260140  000000* 06140             PUSHJ PDP,STOP1                 ;SHUT OFF JOB\r
15746         000651' 262140  000004  06150             POP PDP,ITEM\r
15747         000652' 607000  001000  06160             TLNN IOS,TPMON        ;SAVE STATUS OF TTY\r
15748         000653' 202006  000063* 06170             MOVEM IOS,TTYSAV(DDB)         ;WHEN IT WAS IN USER MODE\r
15749         000654' 200000  001152' 06180             MOVE IOS,[XWD TPMON+IOFST,IOACT]\r
15750         000655' 201040  000103  06190             MOVEI TAC,"C"\r
15751         000656' 254000  000674' 06200             JRST INJ61\r
15752 \r
15753         000657' 261140  000002  06220   INJ6:     PUSH PDP,TAC1         ;^O\r
15754         000660' 623000  000001  06230             TLZE IOS,IOW\r
15755         000661' 260140  000000* 06240             PUSHJ PDP,SETIOD\r
15756         000662' 262140  000002  06250             POP PDP,TAC1\r
15757         000663' 603000  101000  06260             TLNE IOS,TPMON+DDTM\r
15758         000664' 254000  000667' 06270             JRST INJ6A\r
15759         000665' 603000  000020  06280             TLNE IOS,TOUT\r
15760         000666' 260140  000000* 06290             PUSHJ PDP,ADVBFE\r
15761         000667' 665000  000004  06300   INJ6A:    TLOA IOS,IOFST\r
15762         000670' 254000  000666' 06310             JRST .-2\r
15763         000671' 620000  100000  06320             TRZ IOS,ECHOF\r
15764         000672' 660000  020000  06330             TRO IOS,IODEND\r
15765         000673' 201040  000060  06340             MOVEI TAC,"0"\r
15766         000674' 137040  000003' 06350   INJ61:    DPB TAC,PSCHAR\r
15767         000675' 201400  000136  06360             MOVEI CHREC,"^"\r
15768         000676' 254000  000745' 06370             JRST SPC21\r
15769 \r
15770         000677' 661000  000020  06390   INJ7:     TLO IOS,TOUT\r
15771         000700' 254000  000505' 06400             JRST INUS3\r
15772 \r\fSCNSER - SCANNER SERVICE                 PAGE 15\r
15773         TOM EGGERS     8-9-65\r
15774 \r
15775 \r
15776 \r
15777         000701' 205040  777770  06440   SPCIN:    MOVSI TAC,-SCITL      ;SEARCH FOR SPECIAL INPUT CHAR\r
15778         000702' 200101  000711' 06450             MOVE TAC1,SCITAB(TAC)\r
15779         000703' 302402  000000  06460             CAIE CHREC,(TAC1)     ;FOUND?\r
15780         000704' 253040  000702' 06470             AOBJN TAC,.-2         ;NO\r
15781         000705' 544040  000002  06480             HLR TAC,TAC1          ;SAVE DISPATCH ADDRESS\r
15782         000706' 135100  000412* 06490             LDB LINE,PUNIT        ;RESTORE TAC1\r
15783         000707' 321041  000000  06500             JUMPL TAC,(TAC)       \r
15784         000710' 254000  000630' 06510             JRST INJ4             ;CHARACTER NOT FOUND\r
15785 \r
15786         000711' 000721' 000015  06530   SCITAB:   XWD SPCCR,15          ;CR\r
15787         000712' 000727' 000012  06540             XWD ASC1,12           ;LF\r
15788         000713' 000742' 000011  06550             XWD SPC2,11           ;HORIZ TAB\r
15789         000714' 000724' 000013  06560             XWD SPVT,13           ;VT\r
15790         000715' 000723' 000014  06570             XWD SPFF,14           ;FF\r
15791         000716' 000737' 000025  06580             XWD SPC4A,25          ;^U\r
15792         000717' 000747' 000032  06590             XWD SPC7,32           ;^Z\r
15793         000720' 000727' 000175  06600             XWD ASC1, 175         ;ALT MODE\r
15794                         000010  06610   SCITL=.-SCITAB\r
15795 \r
15796         000721' 201240  000000  06630   SPCCR:    MOVEI HPOS,0\r
15797         000722' 254000  000735' 06640             JRST ASC3\r
15798 \r
15799         000723' 334200  001156' 06660   SPFF:     SKIPA VPOS,[10]\r
15800         000724' 201200  000004  06670   SPVT:     MOVEI VPOS,4\r
15801         000725' 607000  004000  06680             TLNN IOS,T35          ;DONT SIMULATE FOR A MOD 35\r
15802         000726' 661000  002000  06690             TLO IOS,SP\r
15803         000727' 135040  000000* 06700   ASC1:     LDB TAC,PIOMOD\r
15804         000730' 607000  001000  06710             TLNN IOS,TPMON\r
15805         000731' 306040  000001  06720             CAIN TAC,AL\r
15806         000732' 661000  040000  06730             TLO IOS,SYNC\r
15807         000733' 607000  002000  06740   ASC2:     TLNN IOS,SP\r
15808         000734' 254000  000630' 06750             JRST INJ4\r
15809         000735' 201400  000012  06760   ASC3:     MOVEI CHREC,12        ;LINE FEED\r
15810         000736' 254000  000507' 06770             JRST TYPE\r
15811 \r
15812         000737' 260140  000632' 06790   SPC4A:    PUSHJ PDP,SETMB1\r
15813         000740' 201040  000125  06800             MOVEI TAC,"U"\r
15814         000741' 254000  000674' 06810             JRST INJ61\r
15815 \r
15816         000742' 602000  004000  06830   SPC2:     TRNE IOS,T35\r
15817         000743' 254000  000514' 06840             JRST LEAVE\r
15818         000744' 201400  000040  06850             MOVEI CHREC," "\r
15819         000745' 661000  002000  06860   SPC21:    TLO IOS,SP\r
15820         000746' 254000  000507' 06870             JRST TYPE\r
15821 \r
15822         000747' 661000  042040  06890   SPC7:     TLO IOS,SYNC+IOEND+SP         ;^Z\r
15823         000750' 201040  000132  06900             MOVEI TAC,"Z"\r
15824         000751' 254000  000674' 06910             JRST INJ61            ;ECHO ^Z\r
15825 \r\fSCNSER - SCANNER SERVICE                 PAGE 16\r
15826         TOM EGGERS     8-9-65\r
15827 \r
15828 \r
15829 \r
15830         000752' 200046  000642* 06950   DELET:    MOVE TAC,TTYCTR(DDB)\r
15831         000753' 301040  000111  06960             CAIL TAC,111\r
15832         000754' 254000  000766' 06970             JRST DELET1\r
15833 \r
15834         000755' 205040  070000  06990             MOVSI TAC,070000\r
15835         000756' 270046  000634* 07000             ADD TAC,TTYPTR(DDB)\r
15836         000757' 603040  400000  07010             TLNE TAC,400000\r
15837         000760' 270040  001157' 07020             ADD TAC,[XWD 347777,-1]\r
15838         000761' 202046  000756* 07030             MOVEM TAC,TTYPTR(DDB)\r
15839         000762' 350006  000752* 07040             AOS TTYCTR(DDB)\r
15840 \r
15841         000763' 201400  000334  07060             MOVEI CHREC,334               ;BACK SLASH\r
15842         000764' 661000  002000  07070   DELET2:   TLO IOS,SP\r
15843         000765' 254000  000507' 07080             JRST TYPE\r
15844 \r
15845         000766' 201200  000001  07100   DELET1:   MOVEI VPOS,1\r
15846         000767' 201400  000015  07110             MOVEI CHREC,15\r
15847         000770' 254000  000764' 07120             JRST DELET2\r
15848 \r\fSCNSER - SCANNER SERVICE                 PAGE 17\r
15849         TOM EGGERS     8-9-65\r
15850 \r
15851 \r
15852 \r
15853                                 07160   ;ROUTINE TO GET NEXT CHARACTER FROM OUTPUT BUFFER\r
15854                                 07170   ;CALL:    PUSHJ PDP,GCHAR\r
15855                                 07180   ;         NO MORE LEFT\r
15856                                 07190   ;         RETURN WITH CHAR. IN CHREC\r
15857 \r
15858         000771' 627000  000004  07210   GCHAR:    TLZN IOS, IOFST\r
15859         000772' 254000  001001' 07220             JRST GCHAR3\r
15860         000773' 550046  000010  07230   GCHAR1:   HRRZ TAC,DEVOAD(DDB)\r
15861         000774' 270040  001160' 07240             ADD TAC, [XWD 000700+PROG,1]\r
15862         000775' 202046  000761* 07250             MOVEM TAC, TTYPTR(DDB)\r
15863         000776' 550060  000001  07260             HRRZ TAC, @TAC\r
15864         000777' 221040  000005  07270             IMULI TAC, 5\r
15865         001000' 202046  000762* 07280             MOVEM TAC,TTYCTR(DDB)\r
15866         001001' 375006  001000* 07290   GCHAR3:   SOSGE TTYCTR(DDB)\r
15867         001002' 254000  001025' 07300             JRST GCHAR5\r
15868         001003' 134406  000775* 07310             LDBI CHREC, TTYPTR(DDB)\r
15869         001004' 322400  001023' 07320             JUMPE CHREC, GCHAR7\r
15870         001005' 306400  000011  07330             CAIN CHREC, 11\r
15871         001006' 254000  001052' 07340             JRST HT\r
15872         001007' 306400  000012  07350             CAIN CHREC, 12\r
15873         001010' 344200  001017' 07360             AOJA VPOS,GCH3\r
15874         001011' 302400  000013  07370             CAIE CHREC, 13\r
15875         001012' 306400  000014  07380             CAIN CHREC, 14\r
15876         001013' 254000  001057' 07390             JRST VTFF\r
15877         001014' 271240  000001  07400             ADDI HPOS,1\r
15878         001015' 306400  000015  07410             CAIN CHREC,15\r
15879         001016' 201240  000000  07420             MOVEI HPOS,0\r
15880         001017' 354003  000000  07430   GCH3:     AOSA (PDP)\r
15881         001020' 200006  000653* 07440   GCH3A:    MOVE IOS,TTYSAV(DDB)          ;RESTORE STATUS TO USER\r
15882         001021' 202006  000002  07450   GCHAR4:   MOVEM IOS,DEVIOS(DDB)\r
15883         001022' 263140  000000  07460             POPJ PDP,\r
15884 \r
15885         001023' 607000  100000  07480   GCHAR7:   TLNN IOS,DDTM         ;DDT BUFFER TERMINATED WITH NULL\r
15886         001024' 254000  001001' 07490             JRST GCHAR3\r
15887         001025' 261140  000002  07500   GCHAR5:   PUSH PDP,TAC1\r
15888         001026' 623000  000001  07510             TLZE IOS, IOW\r
15889         001027' 260140  000661* 07520             PUSHJ PDP, SETIOD\r
15890         001030' 262140  000002  07530             POP PDP,TAC1\r
15891         001031' 607000  101000  07540             TLNN IOS,TPMON+DDTM\r
15892         001032' 260140  000666* 07550             PUSHJ PDP, ADVBFE\r
15893         001033' 665000  000004  07560             TLOA IOS,IOFST\r
15894         001034' 254000  000773' 07570             JRST GCHAR1\r
15895         001035' 630000  001161' 07580             TDZ IOS,[XWD IO,IOACT]\r
15896         001036' 627000  000100  07590             TLZN IOS,USRB\r
15897         001037' 254000  001021' 07600             JRST GCHAR4\r
15898         001040' 621000  001000  07610             TLZ IOS,TPMON\r
15899         001041' 135100  000706* 07620             LDB LINE,PUNIT        ;GET LINE NO.\r
15900         001042' 261140  000004  07630             PUSH PDP,ITEM\r
15901         001043' 135200  000004' 07640             LDB ITEM,TPCJOB\r
15902         001044' 260140  000000* 07650             PUSHJ PDP,SETRUN\r
15903         001045' 262140  000004  07660             POP PDP,ITEM\r
15904 \r\fSCNSER - SCANNER SERVICE                 PAGE 17-1\r
15905         TOM EGGERS     8-9-65\r
15906 \r
15907         001046' 626000  020000  07670             TRZN IOS,USRBC\r
15908         001047' 254000  001020' 07680             JRST GCH3A\r
15909         001050' 205000  001004  07690             MOVSI IOS,TPMON+IOFST\r
15910         001051' 254000  001021' 07700             JRST GCHAR4\r
15911         001052' 602000  004000  07710   HT:       TRNE IOS,T35\r
15912         001053' 344240  001017' 07720             AOJA HPOS,GCH3\r
15913         001054' 661000  002000  07730             TLO IOS,SP\r
15914         001055' 201400  000240  07740   SPOUT:    MOVEI CHREC,240\r
15915         001056' 254000  001017' 07750             JRST GCH3\r
15916 \r
15917         001057' 602000  004000  07770   VTFF:     TRNE IOS,T35\r
15918         001060' 344200  001017' 07780             AOJA VPOS,GCH3\r
15919         001061' 201400  000012  07790             MOVEI CHREC,12\r
15920         001062' 661000  002000  07800             TLO IOS,SP\r
15921         001063' 254000  001017' 07810             JRST GCH3\r
15922 \r\fSCNSER - SCANNER SERVICE                 PAGE 18\r
15923         TOM EGGERS     8-9-65\r
15924 \r
15925 \r
15926         001064' 603000  100000  07840   MOVBUF:   TLNE IOS,DDTM\r
15927         001065' 254000  001125' 07850             JRST MOV3 ;DONT ADVANCE BUFFERS FOR DDT MODE\r
15928         001066' 627000  040000  07860             TLZN IOS,SYNC\r
15929         001067' 337006  001001* 07870             SKIPG TTYCTR(DDB)\r
15930         001070' 254000  001072' 07880             JRST .+2\r
15931         001071' 254000  001133' 07890             JRST MIS1\r
15932         001072' 603000  001000  07900             TLNE IOS, TPMON\r
15933         001073' 254000  001135' 07910             JRST MOVMON\r
15934         001074' 200046  000007  07920             MOVE TAC,DEVIAD(DDB)          ;IS TTY EXPECTING INPUT?\r
15935         001075' 602040  777777  07930             TRNE TAC,-1   \r
15936         001076' 335020  000001  07940             SKIPGE @TAC                   ;OR IS NEXT BUFFER READY?\r
15937         001077' 254000  001132' 07950             JRST MIS  ;NO\r
15938         001100' 261140  000002  07960             PUSH PDP,TAC1\r
15939         001101' 200046  001003* 07970             MOVE TAC,TTYPTR(DDB)\r
15940         001102' 260140  000253* 07980             PUSHJ PDP,CLRBYT\r
15941         001103' 200046  000007  07990             MOVE TAC,DEVIAD(DDB)\r
15942         001104' 260140  000000* 08000             PUSHJ PDP,ADRCK    ;MAKE SURE BUFFER WILL FIT\r
15943         001105' 551041  000000* 08010             HRRZI TAC,STTYB1(TAC)         ;LENGTH+1\r
15944 \r
15945         001106' 201066  000007  08030             MOVEI TAC,@DEVIAD(DDB)\r
15946         001107' 271040  000002  08040             ADDI TAC,2\r
15947         001110' 540400  000001  08050             HRR CHREC,TAC\r
15948         001111' 271040  000000* 08060             ADDI TAC,STTYBF\r
15949         001112' 505406  000637* 08070             HRLI CHREC,TTYBUF(DDB)\r
15950         001113' 251401  777777  08080             BLT CHREC,-1 (TAC)\r
15951         \r
15952         001114' 201040  000111  08100             MOVEI TAC,111\r
15953         001115' 274046  001067* 08110             SUB TAC, TTYCTR(DDB)\r
15954         001116' 271040  000004  08120             ADDI TAC,4\r
15955         001117' 231040  000005  08130             IDIVI TAC,5\r
15956         001120' 201426  000007  08140             MOVEI CHREC,@DEVIAD(DDB)\r
15957         001121' 202050  000001  08150             MOVEM TAC,1(CHREC)\r
15958         001122' 260140  000000* 08160             PUSHJ PDP, ADVBFF\r
15959         001123' 254000  001124' 08170             JRST .+1\r
15960         001124' 665000  000004  08180             TLOA IOS,IOFST\r
15961         001125' 261140  000002  08190   MOV3:     PUSH PDP,TAC1\r
15962         001126' 623000  000001  08200             TLZE IOS, IOW\r
15963         001127' 260140  001027* 08210             PUSHJ PDP, SETIOD\r
15964         001130' 262140  000002  08220             POP PDP,TAC1\r
15965         001131' 624000  050000  08230             TRZA IOS,NCERR+IOACT\r
15966         001132' 660000  040000  08240   MIS:      TRO IOS, NCERR\r
15967         001133' 202006  000002  08250   MIS1:     MOVEM IOS, DEVIOS(DDB)\r
15968         001134' 263140  000000  08260             POPJ PDP,\r
15969         001135' 205040  400000  08270   MOVMON:   MOVSI TAC,400000\r
15970         001136' 436042  000443* 08280             IORM TAC,TTYTAB(LINE)         ;SET BIT FOR MONITOR\r
15971         001137' 661000  000004  08290             TLO IOS,IOFST\r
15972         001140' 201040  000015  08300             MOVEI TAC,15\r
15973         001141' 137046  001101* 08310             DPB TAC,TTYPTR(DDB) ;FORCE A CARRIAGE RET INTO MONITOR COMM\r
15974         001142' 350000  000000* 08320             AOS COMCNT\r
15975         001143' 263140  000000  08330             POPJ PDP,\r
15976 \r
15977                                 08350             END,\r
15978 \r\fSCNSER - SCANNER SERVICE                 PAGE 18-1\r
15979         TOM EGGERS     8-9-65\r
15980 \r
15981         001144' 030000  600000\r
15982         001145' 000100  020000\r
15983         001146' 120020  010000\r
15984         001147' 020004  140000\r
15985         001150' 001000  140000\r
15986         001151' 000024  010000\r
15987         001152' 001004  010000\r
15988         001153' 010000  400000\r
15989         001154' 220606  000000\r
15990         001155' 002000  100000\r
15991         001156' 000000  000010\r
15992         001157' 347777  777777\r
15993         001160' 000707  000001\r
15994         001161' 000020  010000\r
15995 \r
15996 NO ERRORS DETECTED\r
15997 \r
15998 PROGRAM BREAK IS 001162\r
15999 \r
16000 9K CORE USED\r
16001 \r\fSCNSER - SCANNER SERVICE                 PAGE 19\r
16002         SYMBOL TABLE\r
16003 \r
16004                 000443  \r
16005 A               000000  INT\r
16006 AC1             000015  INT\r
16007 AC2             000016  INT\r
16008 AC3             000017  INT\r
16009 ADRCK           001104' EXT\r
16010 ADVBFE          001032' EXT\r
16011 ADVBFF          001122' EXT\r
16012 AL              000001  INT\r
16013 ASC1            000727' \r
16014 ASC2            000733' \r
16015 ASC3            000735' \r
16016 ASSCON          400000  INT\r
16017 ASSPRG          200000  INT\r
16018 B               000014  INT\r
16019 BUFPNT          000012  INT\r
16020 BUFWRD          000013  INT\r
16021 CCHAR           000055' \r
16022 CHREC           000010  \r
16023 CLDS            000312' EXT\r
16024 CLEN            000322' EXT\r
16025 CLOSB           002000  INT\r
16026 CLRBYT          001102' EXT\r
16027 CLSIN           000002  INT\r
16028 CLSOUT          000001  INT\r
16029 COMCNT          001142' EXT\r
16030 CPOPJ           000406' EXT\r
16031 CPOPJ1          000437' EXT\r
16032 CTSER3          000524' \r
16033 CTYINT          000332' INT\r
16034 CTYOU1          000347' \r
16035 CTYOUT          000325' \r
16036 CTYRUB          000346' \r
16037 D               000017  INT\r
16038 DAT             000005  INT\r
16039 DCHAR           000177  \r
16040 DCL             000001  INT\r
16041 DCSA            000300  SPD\r
16042 DCSB            000304  SPD\r
16043 DCW             020000  INT\r
16044 DDB             000006  \r
16045 DDBSRC          000400' \r
16046 DDI             000007  INT\r
16047 DDO             000006  INT\r
16048 DDTGT           000133' INT\r
16049 DDTGT2          000141' \r
16050 DDTIN           000153' INT\r
16051 DDTIN2          000157' \r
16052 DDTIN3          000166' \r
16053 DDTM            100000  \r
16054 DDTMEM          000037  INT\r
16055 DDTOUT          000206' INT\r
16056 DDTRL           000144' INT\r
16057 \r\fSCNSER - SCANNER SERVICE                 PAGE 19-1\r
16058         SYMBOL TABLE\r
16059 \r
16060 DDTSYM          000036  INT\r
16061 DELET           000752' \r
16062 DELET1          000766' \r
16063 DELET2          000764' \r
16064 DEN             000004  INT\r
16065 DETH            010000  \r
16066 DEVADR          000007  INT\r
16067 DEVBUF          000006  INT\r
16068 DEVCHR          000001  INT\r
16069 DEVCTR          000011  INT\r
16070 DEVDAT          000006  INT\r
16071 DEVIAD          000007  INT\r
16072 DEVIOS          000002  INT\r
16073 DEVLOG          000005  INT\r
16074 DEVLST          000000  EXT\r
16075 DEVMOD          000004  INT\r
16076 DEVNAM          000000  INT\r
16077 DEVOAD          000010  INT\r
16078 DEVOPR          000436' EXT\r
16079 DEVPHY          000242' EXT\r
16080 DEVPTR          000010  INT\r
16081 DEVSER          000003  INT\r
16082 DGF             000012  INT\r
16083 DIN             000003  INT\r
16084 DLK             000005  INT\r
16085 DOU             000002  INT\r
16086 DR              000016  INT\r
16087 DRL             000000  INT\r
16088 DSI             000011  INT\r
16089 DSO             000010  INT\r
16090 DTW             040000  INT\r
16091 DVAVAL          000040  INT\r
16092 DVCDR           100000  INT\r
16093 DVDIR           000004  INT\r
16094 DVDIRI          400000  INT\r
16095 DVIN            000002  INT\r
16096 DVLPT           040000  INT\r
16097 DVMTA           000020  INT\r
16098 DVOUT           000001  INT\r
16099 DVTTY           000010  INT\r
16100 ECHO            000527' \r
16101 ECHOF           100000  \r
16102 ENTRB           020000  INT\r
16103 FSNCHN          000441' EXT\r
16104 GCH3            001017' \r
16105 GCH3A           001020' \r
16106 GCHAR           000771' \r
16107 GCHAR1          000773' \r
16108 GCHAR3          001001' \r
16109 GCHAR4          001021' \r
16110 GCHAR5          001025' \r
16111 GCHAR7          001023' \r
16112 HPOS            000005  \r
16113 \r\fSCNSER - SCANNER SERVICE                 PAGE 19-2\r
16114         SYMBOL TABLE\r
16115 \r
16116 HT              001052' \r
16117 I               000010  INT\r
16118 IB              000013  INT\r
16119 IBUFB           200000  INT\r
16120 INITB           400000  INT\r
16121 INJ25           000622' \r
16122 INJ4            000630' \r
16123 INJ5            000644' \r
16124 INJ6            000657' \r
16125 INJ61           000674' \r
16126 INJ6A           000667' \r
16127 INJ7            000677' \r
16128 INJEST          000575' \r
16129 INPB            010000  INT\r
16130 INUS1           000471' \r
16131 INUS2           000501' \r
16132 INUS3           000505' \r
16133 INUSE           000462' \r
16134 IO              000020  INT\r
16135 IOACT           010000  INT\r
16136 IOBEG           000002  INT\r
16137 IOBKTL          040000  INT\r
16138 IOCON           000040  INT\r
16139 IODEND          020000  INT\r
16140 IODERR          200000  INT\r
16141 IODISC          400000  INT\r
16142 IODONE          400000  INT\r
16143 IODTER          100000  INT\r
16144 IOEND           000040  INT\r
16145 IOFST           000004  INT\r
16146 IOIMPM          400000  INT\r
16147 IONRCK          000100  INT\r
16148 IORDEL          000100  INT\r
16149 IORET           000020  INT\r
16150 IOS             000000  INT\r
16151 IOSTRT          000010  INT\r
16152 IOUSE           400000  INT\r
16153 IOW             000001  INT\r
16154 IOWC            000020  INT\r
16155 IOWS            400000  INT\r
16156 ITEM            000004  INT\r
16157 JBFADR          000000  INT\r
16158 JBFCTR          000002  INT\r
16159 JBFPTR          000001  INT\r
16160 JBTADR          000473' EXT\r
16161 JBUF            000005  INT\r
16162 JDAT            000011  INT\r
16163 JERR            002000  INT\r
16164 JIOW            100000  INT\r
16165 JNA             004000  INT\r
16166 JOB             000243' EXT\r
16167 LEAV0           000520' \r
16168 LEAV1           000515' \r
16169 \r\fSCNSER - SCANNER SERVICE                 PAGE 19-3\r
16170         SYMBOL TABLE\r
16171 \r
16172 LEAVE           000514' \r
16173 LINE            000002  \r
16174 LOOKB           040000  INT\r
16175 MIS             001132' \r
16176 MIS1            001133' \r
16177 MLTTYL          000400' EXT\r
16178 MOD35           000573' \r
16179 MOV3            001125' \r
16180 MOVBUF          001064' \r
16181 MOVMON          001135' \r
16182 MTTYLN          000232' EXT\r
16183 MTW             010000  INT\r
16184 NCERR           040000  \r
16185 NIO             020000  \r
16186 OBUFB           100000  INT\r
16187 OUT             000272' EXT\r
16188 OUTPB           004000  INT\r
16189 PDP             000003  INT\r
16190 PHPOS           000000' \r
16191 PICHN           000100  INT\r
16192 PIOFF           000400  \r
16193 PIOMOD          000727' EXT\r
16194 PION            000200  \r
16195 PJOBN           000472' EXT\r
16196 PLASTC          000002' \r
16197 PROG            000007  INT\r
16198 PSCHAR          000003' \r
16199 PUNIT           001041' EXT\r
16200 PUUOAC          000214' EXT\r
16201 PVPOS           000001' \r
16202 RUN             200000  INT\r
16203 RUNABL          204000  INT\r
16204 SCITAB          000711' \r
16205 SCITL           000010  \r
16206 SCN1            000024' \r
16207 SCN2            000035' \r
16208 SCNCHL          000345' EXT\r
16209 SCNCHN          000350' EXT\r
16210 SCNIN           000411' \r
16211 SCNIN0          000425' \r
16212 SCNIN1          000440' \r
16213 SCNINI          000005' INT\r
16214 SCNINT          000355' INT\r
16215 SCNRET          000517' EXT\r
16216 SCNSAV          000357' EXT\r
16217 SCTAB           000545' \r
16218 SCTABL          000012  \r
16219 SETIOD          001127' EXT\r
16220 SETMB1          000632' \r
16221 SETRUN          001044' EXT\r
16222 SIM35           000533' \r
16223 SIM4            000566' \r
16224 SIMLF           000565' \r
16225 \r\fSCNSER - SCANNER SERVICE                 PAGE 19-4\r
16226         SYMBOL TABLE\r
16227 \r
16228 SIMRO           000572' \r
16229 SIMVA           000562' \r
16230 SP              002000  \r
16231 SPACE           000557' \r
16232 SPC2            000742' \r
16233 SPC21           000745' \r
16234 SPC4A           000737' \r
16235 SPC7            000747' \r
16236 SPCCR           000721' \r
16237 SPCIN           000701' \r
16238 SPFF            000723' \r
16239 SPOUT           001055' \r
16240 SPVT            000724' \r
16241 STOP1           000650' EXT\r
16242 STTYB1          001105' EXT\r
16243 STTYBF          001111' EXT\r
16244 SYNC            040000  \r
16245 T35             004000  \r
16246 TAC             000001  INT\r
16247 TAC1            000002  INT\r
16248 TCOMM           000364' \r
16249 TCONLN          000507' EXT\r
16250 TEM             000010  INT\r
16251 TOUT            000020  \r
16252 TPCJOB          000004' \r
16253 TPMON           001000  \r
16254 TSCNLN          000000  EXT\r
16255 TTY             000120  SPD\r
16256 TTY0DB          000000  EXT\r
16257 TTYAT2          000070' \r
16258 TTYAT3          000110' \r
16259 TTYAT4          000115' \r
16260 TTYATC          020000  INT\r
16261 TTYATT          000065' INT\r
16262 TTYBFE          000640' EXT\r
16263 TTYBM1          000254' EXT\r
16264 TTYBUF          001112' EXT\r
16265 TTYCOM          000117' INT\r
16266 TTYCTR          001115' EXT\r
16267 TTYDAT          000247' \r
16268 TTYDET          000046' INT\r
16269 TTYDSP          000271' ENT\r
16270 TTYDT1          000052' \r
16271 TTYF0           000240' \r
16272 TTYFND          000244' INT\r
16273 TTYFNU          000243' INT\r
16274 TTYJOB          000130' INT\r
16275 TTYKIL          000041' INT\r
16276 TTYLST          000401' EXT\r
16277 TTYOU0          000303' \r
16278 TTYOU1          000322' \r
16279 TTYOU2          000311' \r
16280 TTYOUT          000301' \r
16281 \r\fSCNSER - SCANNER SERVICE                 PAGE 19-5\r
16282         SYMBOL TABLE\r
16283 \r
16284 TTYPTR          001141' EXT\r
16285 TTYSAV          001020' EXT\r
16286 TTYSET          000062' INT\r
16287 TTYSR1          000231' \r
16288 TTYSRC          000232' \r
16289 TTYSTR          000252' INT\r
16290 TTYTAB          001136' EXT\r
16291 TTYURC          000056' INT\r
16292 TTYUSE          010000  INT\r
16293 TTYUSR          000057' INT\r
16294 TYP1            000511' \r
16295 TYPE            000507' \r
16296 TYPX            000450' \r
16297 TYPX1           000457' \r
16298 USRB            000100  \r
16299 USRBC           020000  \r
16300 USRMOD          010000  INT\r
16301 UUO             000014  INT\r
16302 UXIT            000230' EXT\r
16303 VPOS            000004  \r
16304 VTFF            001057' \r
16305 WAIT1           000211' EXT\r
16306 WSYNC           000164' EXT\r
16307 \f   SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
16308    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
16309    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
16310 SSS                  YYY         YYY      SSS                  CCC                  OOO         OOO      NNN         NNN\r
16311 SSS                  YYY         YYY      SSS                  CCC                  OOO         OOO      NNN         NNN\r
16312 SSS                  YYY         YYY      SSS                  CCC                  OOO         OOO      NNN         NNN\r
16313 SSS                     YYY   YYY         SSS                  CCC                  OOO         OOO      NNNNNN      NNN\r
16314 SSS                     YYY   YYY         SSS                  CCC                  OOO         OOO      NNNNNN      NNN\r
16315 SSS                     YYY   YYY         SSS                  CCC                  OOO         OOO      NNNNNN      NNN\r
16316    SSSSSSSSS               YYY               SSSSSSSSS         CCC                  OOO         OOO      NNN   NNN   NNN\r
16317    SSSSSSSSS               YYY               SSSSSSSSS         CCC                  OOO         OOO      NNN   NNN   NNN\r
16318    SSSSSSSSS               YYY               SSSSSSSSS         CCC                  OOO         OOO      NNN   NNN   NNN\r
16319             SSS            YYY                        SSS      CCC                  OOO         OOO      NNN      NNNNNN\r
16320             SSS            YYY                        SSS      CCC                  OOO         OOO      NNN      NNNNNN\r
16321             SSS            YYY                        SSS      CCC                  OOO         OOO      NNN      NNNNNN\r
16322             SSS            YYY                        SSS      CCC                  OOO         OOO      NNN         NNN\r
16323             SSS            YYY                        SSS      CCC                  OOO         OOO      NNN         NNN\r
16324             SSS            YYY                        SSS      CCC                  OOO         OOO      NNN         NNN\r
16325 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
16326 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
16327 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            CCCCCCCCCCCC         OOOOOOOOO         NNN         NNN\r
16328 \r
16329 \r
16330 \r
16331 \r
16332 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
16333 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
16334 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
16335 LLL                  SSS                        TTT                                                                     \r
16336 LLL                  SSS                        TTT                                                                     \r
16337 LLL                  SSS                        TTT                                                                     \r
16338 LLL                  SSS                        TTT                                                                     \r
16339 LLL                  SSS                        TTT                                                                     \r
16340 LLL                  SSS                        TTT                                                                     \r
16341 LLL                     SSSSSSSSS               TTT                                                                     \r
16342 LLL                     SSSSSSSSS               TTT                                                                     \r
16343 LLL                     SSSSSSSSS               TTT                                                                     \r
16344 LLL                              SSS            TTT                                                                     \r
16345 LLL                              SSS            TTT                                                                     \r
16346 LLL                              SSS            TTT                                                                     \r
16347 LLL                              SSS            TTT                                                                     \r
16348 LLL                              SSS            TTT                                                                     \r
16349 LLL                              SSS            TTT                                                                     \r
16350 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
16351 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
16352 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
16353 \r
16354 \r
16355 \r
16356 \r
16357 Request created: 24-April-1978  11:23:08\r
16358 File: DSKB1 :SYSCON.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:25
16359 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2224 \r
16360 File will be deleted after printing\r
16361 \f\rSYSCON - UUO HANDLER                 PAGE 1\r
16362         8-9-65\r
16363 \r
16364                                 00010           XLIST\r
16365                                 01930          LIST\r
16366 \r\fSYSCON - UUO HANDLER                 PAGE 7\r
16367         8-9-65\r
16368 \r
16369 \r
16370                                 00010   TITLE SYSCON - UUO HANDLER\r
16371                                 00020   SUBTTL 8-9-65\r
16372                                 00030   EXTERNAL CLOSE1,ILLINS,IN,JOBAC,JOBADR,JOBDAT\r
16373                                 00040   EXTERNAL MTAPE1,OUT,RELEA1,UINBF,UINIT,UOUTBF\r
16374                                 00050   EXTERNAL USRJDA,USRSAV,USTATO,USTATS,USTATZ\r
16375                                 00060   EXTERNAL ERROR,UUOERR,CLDS,CLEN\r
16376                                 00070   EXTERNAL IOIERR,MJOBPD,JOBPDL,WAIT1,USRREL,PUUOAC\r
16377                                 00080   EXTERNAL JOBPDL,MJOBPD,USETST\r
16378 \r\fSYSCON - UUO HANDLER                 PAGE 2\r
16379         8-9-65\r
16380 \r
16381 \r
16382 \r
16383 \r
16384                                 00130   , DEC 06 00 EX UUO L PT PRE 06 UUO HANDLER\r
16385                                 00140   , 3/10/65\r
16386                                 00150   ,   ALL UUOS DROP THEMSELVE IN REAL LOCATION 40, AND TRAP\r
16387                                 00160   , TO 41. THE UUO HANDLER SHUFFLES THE UUO OFF TO THE USERS\r
16388                                 00170   , 40,41, IF IT IS NOT A SYSTEM UUO.\r
16389                                 00180   , SYSTEM UUOS FALL INTO THREE CLASSES, HANDLED DIFFERENTLY\r
16390                                 00190   , (1) SYSTEM FUNCTIONS: LOAD ACS PDP, PROG, AND DISPATCH TO THE\r
16391                                 00200   , FUNCTION.\r
16392                                 00210   , (2) DEVICE INDEPENDENT I/O UUO: ALSO LOAD ACS DEVDAT AND IOS\r
16393                                 00220   , AND GO THE THE SYSTEM FUNCTION.\r
16394                                 00230   , (3) DEVICE DEPENDENT I/O UUOS: DO (1) AND (2), THEN DISPATCH\r
16395                                 00240   , THROUGH THE TABLE WHOSE ADDRESS IS IN THE RIGHT HALF OF DEVSER(DEVD\r
16396                                 00250   , CONTROL MAY ALWAYS BE RETURNED BY EXECUTING A\r
16397                                 00260   ,    JRST UXIT\r
16398                                 00270   , WHICH WILL RESTORE THE ACS, ARP BITS, AND RETURN.\r
16399                                 00280   , THE UUO HANDLER IS PURE IF THE FOLLOWING RESTRICTIONS ARE OBSERVED.\r
16400                                 00290   , RESTRICTIONS: UUOS CANNOT BE CALLED BY INTERRUPT SERVICE ROUTINES.\r
16401                                 00300   , MONITOR INTERFACE\r
16402                                 00310   ,         STORAGE: 89\r
16403                                 00320   ,         ROUTINES CALLED: ILLINS, ADRCK, EXCLK, UUOH, SETIOS,UUOUSR\r
16404                                 00330   ,            UUOS CALLED: CALL, INIT, RELEAS, CLOSE, OUTBUF, INBUF\r
16405                                 00340   ,                         STATS, STATO, STATZ, OUTPUT, INPUT\r
16406                                 00350   ,            DEVICE DEPENDENT:          DEN, DLK, DSO, DSI, DGF\r
16407                                 00360   ,         SYMBOLS SET/USED:     \r
16408                                 00370   ,                   ACCUMULATORS:       POP  S/U  TAC  S/U\r
16409                                 00380   ,                                       PROG S/U  TAC1 S/U\r
16410                                 00390   ,                                       SUB  S\r
16411                                 00400   ,                   SYSTEM PARAMETERS:  UIO   U\r
16412                                 00410   ,                                       USYS  U\r
16413                                 00420   ,                                       USYSN U\r
16414                                 00430   ,                   JOB AREA:           JOBAC  U  JOBDAT U\r
16415                                 00440   ,                                       JOBPDP U\r
16416                                 00450   ,                   SYSTEM ADDRESSES:   CLK    S/U\r
16417                                 00460   ,                                       JOBADR U\r
16418                                 00470   ,                                       USRLEV S/U\r
16419                                 00480   ,                   DEVICE DATA BLOCK:  DEVSER U\r
16420                                 00490   ,                   INTERNAL ADDRESSES: 40     S/U\r
16421                                 00500   ,                                       UUO0   S/U\r
16422                                 00510   ,                                       UUSAV  S/U\r
16423 \r\fSYSCON - UUO HANDLER                 PAGE 3\r
16424         8-9-65\r
16425 \r
16426 \r
16427 \r
16428 \r
16429                                 00560   INTERNAL UUO0\r
16430 \r
16431         000000' 000000  000000  00580   UUO0:     0\r
16432         000001' 250040  000040  00590             EXCH TAC,40           ;SAVE TAC; PICK UP UUO\r
16433         000002' 202740  000000* 00600             MOVEM 17,USRSAV       ;SAVE 17\r
16434         000003' 603040  077000  00610             TLNE TAC,77000        ;0 UUO IS ILLEGAL\r
16435         000004' 603040  740000  00620             TLNE TAC,740000       ;UUO FOR SYSTEM?\r
16436         000005' 254000  000030' 00630             JRST UUOSYS           ;YES\r
16437         000006' 200740  000000* 00640             MOVE 17,JOBADR        ;GET JOB AREA ADDRESS\r
16438         000007' 202057  000040  00650             MOVEM TAC,40(17)      ;STORE UUO IN USERS 40\r
16439         000010' 550057  000041  00660             HRRZ TAC,41(17)       ;PICK UP ADR OF USERS JSR\r
16440         000011' 322040  000030' 00670             JUMPE TAC,UUOSYS      ;IF ADDRESS=0,ILLEGAL USER UU\r
16441         000012' 500040  000000' 00680             HLL TAC,UUO0          ;PICK UP PROCESSOR FLAGS FOR\r
16442         000013' 607040  010000  00690             TLNN TAC,USRMOD       ;WAS UUO FROM USER?\r
16443         000014' 254000  000030' 00700             JRST UUOSYS           ;NO, ILLEGAL NUUO FROM SYSTEM\r
16444         000015' 201741  000000  00710             MOVEI 17,(TAC)        ;17 NOW HAS REL. ADR. OF USER\r
16445         000016' 317740  000000* 00720             CAMG 17,USRREL        ;DONT INCREMENT RETURN IF PC\r
16446         000017' 541041  000001  00730             HRRI TAC,1(TAC)       ;INCREMENT PC\r
16447         000020' 250040  000000' 00740             EXCH TAC,UUO0         ;SET UP RETURN  TO USER, PICK\r
16448                                 00750                                   ;UP USERS FLAGS,PC\r
16449         000021' 313740  000016* 00760             CAMLE 17,USRREL       ;LEGAL MEMORY?\r
16450         000022' 254000  000025' 00770             JRST .+3  ;NO. DONT STORE PC\r
16451         000023' 270740  000006* 00780             ADD 17,JOBADR         ;MAKE REL. ADR. INTO ABS. ADR\r
16452         000024' 202057  000000  00790             MOVEM TAC,(17)        ;STORE FLAGS AND PC LIKE JSR\r
16453         000025' 200040  000040  00800             MOVE TAC,40           ;RESTORE TAC\r
16454         000026' 200740  000002* 00810             MOVE 17,USRSAV        ;RESTORE 17\r
16455         000027' 254120  000000' 00820             JRST 2,@UUO0          ;RETURN TO USER\r
16456 \r\fSYSCON - UUO HANDLER                 PAGE 4\r
16457         8-9-65\r
16458 \r
16459 \r
16460 \r
16461 \r
16462         000030' 250040  000040  00870   UUOSYS:   EXCH TAC,40                   ;RESTORE TA. RESTORE THE UUO\r
16463         000031' 200740  000000' 00880             MOVE 17,UUO0                  ;PICK UP PROCESSOR FLAG\r
16464         000032' 607740  010000  00890             TLNN 17,USRMOD                ;SYSTEM UUO FROM SYSTEM?\r
16465         000033' 254000  000046' 00900             JRST UUOSY1                   ;YES\r
16466         000034' 200740  000023* 00910             MOVE 17,JOBADR                ;NO. PICK UP ADR. OF USER PRO\r
16467         000035' 202717  000016  00920             MOVEM 16,16(17)               ;STORE AC16 IN USER 16\r
16468         000036' 550700  000017  00930             HRRZ 16,17                    ;SET UP BLP POINTER\r
16469         000037' 251717  000015  00940             BLT 16,15(17)                 ;MOVE REAL ACS TO USER AREA\r
16470         000040' 200000  000026* 00950             MOVE 0,USRSAV                 ;MOVE USER 17 TO USERS AREA\r
16471         000041' 202017  000017  00960             MOVEM 0,17(17)\r
16472         \r
16473         000042' 200440  000000* 00980             MOVE JDAT,JOBDAT              ;LOAD UP JOB DAT AREA ADDRES\r
16474         000043' 205140  000000* 00990             MOVSI PDP,MJOBPD              ;LOAD UP PUSH DOWN AC AND\r
16475         000044' 541151  000000* 01000             HRRI PDP,JOBPDL(JDAT)                   ;MAKE ABSOLUTE PATH\r
16476         000045' 334340  000017  01010             SKIPA PROG,17       ;PROGRAM BASE ADDRESS\r
16477         000046' 200740  000040* 01020   UUOSY1:   MOVE 17,USRSAV                ;RESTORE AC17 IF UUO FROM SYS\r
16478         000047' 261140  000000' 01030             PUSH PDP,UUO0                 ;SAVE RETURN ON PUSH DOWN LIS\r
16479         000050' 200600  000040  01040             MOVE UUO,40                   ;GET THE UUO INTO AC(UUO)\r
16480         000051' 135100  000250' 01050             LDB TAC1,[POINT 9,UUO,8]                ;PICK UP UUO OP COD\r
16481         000052' 301100  000100  01060             CAIL TAC1,100                 ;ILLEGAL INSTRUCTION?\r
16482         000053' 254000  000000* 01070             JRST ILLINS                   ;YES\r
16483         000054' 305100  000040  01080             CAIGE TAC1,40                 ;SYSTEM UUO?\r
16484         000055' 254000  000000* 01090             JRST UUOERR                   ;NO. ILLEGAL\r
16485         000056' 135040  000000* 01100             LDB TAC,PUUOAC\r
16486         000057' 200301  000000* 01110             MOVE DEVDAT,USRJDA(TAC)       ;GET DDB\r
16487         000060' 305100  000060  01120             CAIGE TAC1,100-UUOT2L                   ;AN IO UUO?\r
16488         000061' 254000  000070' 01130             JRST UUODSP                   ;NO\r
16489         000062' 302100  000070  01140             CAIE TAC1,70          ;CLOSE AND RELEASE ARE ALWAYS LEGAL\r
16490         000063' 306100  000071  01150             CAIN TAC1,71\r
16491         000064' 322300  000236' 01160             JUMPE DEVDAT,UXIT\r
16492         000065' 322300  000000* 01170             JUMPE DEVDAT,IOIERR ;CHANNEL MUST BE ASSIGNED\r
16493         000066' 200006  000002  01180             MOVE IOS,DEVIOS(DEVDAT)                 ;GET DATA BLOCK STA\r
16494         000067' 254002  000015' 01190             JRST UUOT2-77+UUOT2L-1(TAC1)  ;DISPATCH\r
16495 \r
16496         000070' 305100  000042  01210   UUODSP:   CAIGE TAC1,40+UUOT1L          ;LEGAL SYSTEM UUO?\r
16497         000071' 254002  000033' 01220             JRST UUOT1-40(TAC1)           ;YES. DISPATCH\r
16498         000072' 254000  000055* 01230             JRST UUOERR\r
16499 \r\fSYSCON - UUO HANDLER                 PAGE 5\r
16500         8-9-65\r
16501 \r
16502 \r
16503 \r
16504         000073' 254000  000162' 01270   UUOT1:    JRST UCALL            ;40\r
16505         000074' 254000  000000* 01280             JRST UINIT\r
16506                                 01290   ;ADD NON IO UUOS HERE\r
16507 \r
16508                         000002  01310   UUOT1L=.-UUOT1\r
16509 \r
16510         000075'                 01330   UUOT2:\r
16511                                 01340   ;ADD IO UUOS HERE\r
16512         000075' 254000  000000* 01350             JRST USETST\r
16513         000076' 254000  000000* 01360             JRST USTATO\r
16514         000077' 254000  000000* 01370             JRST USTATS\r
16515         000100' 254000  000000* 01380             JRST USTATZ\r
16516         000101' 254000  000000* 01390             JRST UINBF\r
16517         000102' 254000  000000* 01400             JRST UOUTBF\r
16518         000103' 254000  000000* 01410             JRST IN\r
16519         000104' 254000  000000* 01420             JRST OUT\r
16520         000105' 254000  000000* 01430             JRST CLOSE1\r
16521         000106' 254000  000000* 01440             JRST RELEA1\r
16522         000107' 254000  000000* 01450             JRST MTAPE1\r
16523         000110' 254000  000160' 01460             JRST UDGF\r
16524         000111' 254000  000156' 01470             JRST UDSI\r
16525         000112' 254000  000154' 01480             JRST UDSO\r
16526         000113' 254000  000143' 01490             JRST UDLK\r
16527         000114' 254000  000131' 01500             JRST UDEN             ;77\r
16528                         000020  01510   UUOT2L=.-UUOT2\r
16529 \r\fSYSCON - UUO HANDLER                 PAGE 6\r
16530         8-9-65\r
16531 \r
16532 \r
16533 \r
16534                                 01550   ,DISPATCH TO SPECIAL ROUTINE\r
16535                                 01560   DEFINE DSPT(A)\r
16536                                 01570   <U'A:     PUSHJ PDP,UDSP\r
16537                                 01580   JRST A(TAC)\r
16538                                 01590   >\r
16539         000115' 200046  000003  01600   UDSP:     MOVE TAC,DEVSER(DEVDAT)\r
16540         000116' 200106  000001  01610             MOVE TAC1,DEVCHR(DEVDAT)\r
16541         000117' 607100  000020  01620             TLNN TAC1,IORET\r
16542         000120' 201040  000116' 01630             MOVEI TAC,NRTOSP-4    ;IGNORE THESE CALLS FOR NON-\r
16543         000121' 263140  000000  01640             POPJ PDP,\r
16544         000122' 254000  000235' 01650   NRTOSP:   JRST CUXIT1           ;SKIP RETURN\r
16545         000123' 254000  000235' 01660             JRST CUXIT1           ;SKIP RETURN\r
16546         000124' 265240  000000* 01670             JSP DAT,ERROR         ;DUMP0\r
16547         000125' 265240  000124* 01680             JSP DAT,ERROR         ;DUMP1\r
16548         000126' 254000  000072* 01690             JRST UUOERR                   ;USETO\r
16549         000127' 254000  000126* 01700             JRST UUOERR                   ;USETI\r
16550         000130' 254000  000127* 01710             JRST UUOERR                   ;GETF\r
16551         000131' 260140  000000* 01720   UDEN:     PUSHJ PDP,WAIT1\r
16552         000132' 661000  000002  01730             TLO IOS,IOBEG\r
16553         000133' 620000  776000  01740             TRZ IOS,776000\r
16554         000134' 202006  000002  01750             MOVEM IOS,DEVIOS(DEVDAT)\r
16555         000135' 135040  000056* 01760             LDB TAC,PUUOAC\r
16556         000136' 661300  020000  01770             TLO DEVDAT,ENTRB\r
16557         000137' 621300  002000  01780             TLZ DEVDAT,CLOSB\r
16558         000140' 502301  000057* 01790             HLLM DEVDAT,USRJDA(TAC)\r
16559         000141' 260140  000115' 01800             PUSHJ PDP,UDSP\r
16560         000142' 254001  000004  01810             JRST DEN(TAC)\r
16561 \r
16562         000143' 260140  000131* 01830   UDLK:     PUSHJ PDP,WAIT1\r
16563         000144' 630000  000251' 01840             TDZ IOS,[XWD IOEND,776000]\r
16564         000145' 202006  000002  01850             MOVEM IOS,DEVIOS(DEVDAT)\r
16565         000146' 135040  000135* 01860             LDB TAC,PUUOAC\r
16566         000147' 661300  040000  01870             TLO DEVDAT,LOOKB\r
16567         000150' 621300  002000  01880             TLZ DEVDAT,CLOSB\r
16568         000151' 502301  000140* 01890             HLLM DEVDAT,USRJDA(TAC)\r
16569         000152' 260140  000115' 01900             PUSHJ PDP,UDSP\r
16570         000153' 254001  000005  01910             JRST DLK(TAC)\r
16571 \r
16572         000154' 260140  000115' 01930             DSPT(DSO)^UDSO:         PUSHJ PDP,UDSP\r
16573         000155' 254001  000010          JRST DSO(TAC)\r
16574 \r
16575         000156' 260140  000115' 01950             DSPT(DSI)^UDSI:         PUSHJ PDP,UDSP\r
16576         000157' 254001  000011          JRST DSI(TAC)\r
16577 \r
16578         000160' 260140  000115' 01970             DSPT(DGF)^UDGF:         PUSHJ PDP,UDSP\r
16579         000161' 254001  000012          JRST DGF(TAC)\r
16580 \r
16581 \r\fSYSCON - UUO HANDLER                 PAGE 7\r
16582         8-9-65\r
16583 \r
16584 \r
16585 \r
16586                                 02020   , 6-CSS-DEC-CALL-PL-PRE2\r
16587                                 02030   , H. R. MORSE       64-11-17\r
16588                                 02040   , CALLING SEQUENCE\r
16589                                 02050   ,         CALL 0,[SIXBIT/NAME/]\r
16590                                 02060   , WHERE NAME IS THE NAME OF A SYSTEM ROUTINE.\r
16591                                 02070   , IF NO SYSTEM ROUTINE WITH THE SPECIFIED NAME IF FOUND, THIS ROUTINE\r
16592                                 02080   , EXISTS TO ERROR.\r
16593                                 02090   , MONITOR INTERFACE\r
16594                                 02100   ,         ROUTINES CALLED: ERROR, HASH, SYSTEM ROUTINES DEFINED BY\r
16595                                 02110   ,                             USE OF UCALIN.\r
16596                                 02120   ,         SYMBOLS SET/USED:\r
16597                                 02130   ,                   ACCUMULATORS:       DAT S/U         PROG U\r
16598                                 02140   ,                                       PDP U           UUO  S/U\r
16599                                 02150   ;CONTENTS OF USER AC PLACED IN AC TAC\r
16600 \r
16601         000162' 661600  000011  02170   UCALL:    TLO UUO,JDAT          ;RELATIVIZE UUO ADDRESS\r
16602         000163' 200260  000014  02180             MOVE DAT,@UUO;                  DAT:=NAME OF SYSTEM ROUTINE C\r
16603         000164' 205100  777760  02190             MOVSI TAC1,-UCLLEN\r
16604         000165' 312242  000174' 02200             CAME DAT,UCLTAB(TAC1);          SEARCH SYSTEM TOUTINE NAME TA\r
16605         000166' 253100  000165' 02210             AOBJN TAC1,.-1\r
16606         000167' 135240  000146* 02220             LDB DAT,PUUOAC        ;USER UUO AC FIELD\r
16607         000170' 505240  000011  02230             HRLI DAT,JDAT\r
16608         000171' 200060  000005  02240             MOVE TAC,@DAT         ;PICK UP CONTENTS OF USER AC\r
16609         000172' 321122  000214' 02250             JUMPL TAC1,@UCLJMP(TAC1)\r
16610         000173' 254000  000130* 02260             JRST UUOERR\r
16611 \r
16612                                 02280   DEFINE NAMES\r
16613                                 02290   <         X DDTIN,DDTIN\r
16614                                 02300    X DDTOUT,DDTOUT\r
16615                                 02310    X DDTGT,DDTGT\r
16616                                 02320    X DDTRL,DDTRL\r
16617                                 02330    X SETDDT,SETDDT\r
16618                                 02340    X DEVCHR,DVCHR\r
16619                                 02350   X GETCHR,DVCHR\r
16620                                 02360   X WAIT,WAIT\r
16621                                 02370    X RESET,RESET\r
16622                                 02380    X EXIT,EXIT\r
16623                                 02390    X LDRBLT,LDRBLT\r
16624                                 02400    X UTPCLR,UTPCLR\r
16625                                 02410    X DATE,DATE\r
16626                                 02420    X SETPOV,SETPOV\r
16627                                 02430    X SWITCH,SWITCH\r
16628                                 02440    X TIMER,TIMER\r
16629                                 02450   >\r
16630                                 02460   DEFINE X (A,B)\r
16631                                 02470   <         SIXBIT /A/\r
16632                                 02480   >\r
16633         000174' 444464  515600  02490   UCLTAB:   NAMES^          X DDTIN,DDTIN^          SIXBIT /DDTIN/\r
16634         000175' 444464  576564           X DDTOUT,DDTOUT^         SIXBIT /DDTOUT/\r
16635         000176' 444464  476400           X DDTGT,DDTGT^   SIXBIT /DDTGT/\r
16636         000177' 444464  625400           X DDTRL,DDTRL^   SIXBIT /DDTRL/\r
16637 \r\fSYSCON - UUO HANDLER                 PAGE 7-1\r
16638         8-9-65\r
16639 \r
16640         000200' 634564  444464           X SETDDT,SETDDT^         SIXBIT /SETDDT/\r
16641         000201' 444566  435062           X DEVCHR,DVCHR^          SIXBIT /DEVCHR/\r
16642         000202' 474564  435062          X GETCHR,DVCHR^   SIXBIT /GETCHR/\r
16643         000203' 674151  640000          X WAIT,WAIT^      SIXBIT /WAIT/\r
16644         000204' 624563  456400           X RESET,RESET^   SIXBIT /RESET/\r
16645         000205' 457051  640000           X EXIT,EXIT^     SIXBIT /EXIT/\r
16646         000206' 544462  425464           X LDRBLT,LDRBLT^         SIXBIT /LDRBLT/\r
16647         000207' 656460  435462           X UTPCLR,UTPCLR^         SIXBIT /UTPCLR/\r
16648         000210' 444164  450000           X DATE,DATE^     SIXBIT /DATE/\r
16649         000211' 634564  605766           X SETPOV,SETPOV^         SIXBIT /SETPOV/\r
16650         000212' 636751  644350           X SWITCH,SWITCH^         SIXBIT /SWITCH/\r
16651         000213' 645155  456200           X TIMER,TIMER^   SIXBIT /TIMER/\r
16652                         000020  02500   UCLLEN=.-UCLTAB\r
16653 \r
16654                                 02520   DEFINE X(A,B)\r
16655                                 02530   <         JRST B\r
16656                                 02540   EXTERNAL B\r
16657                                 02550   >\r
16658         000214' 254000  000000* 02560   UCLJMP:   NAMES^          X DDTIN,DDTIN^          JRST DDTIN\r
16659         000215' 254000  000000*          X DDTOUT,DDTOUT^         JRST DDTOUT\r
16660         000216' 254000  000000*          X DDTGT,DDTGT^   JRST DDTGT\r
16661         000217' 254000  000000*          X DDTRL,DDTRL^   JRST DDTRL\r
16662         000220' 254000  000000*          X SETDDT,SETDDT^         JRST SETDDT\r
16663         000221' 254000  000000*          X DEVCHR,DVCHR^          JRST DVCHR\r
16664         000222' 254000  000221*         X GETCHR,DVCHR^   JRST DVCHR\r
16665         000223' 254000  000000*         X WAIT,WAIT^      JRST WAIT\r
16666         000224' 254000  000000*          X RESET,RESET^   JRST RESET\r
16667         000225' 254000  000000*          X EXIT,EXIT^     JRST EXIT\r
16668         000226' 254000  000000*          X LDRBLT,LDRBLT^         JRST LDRBLT\r
16669         000227' 254000  000000*          X UTPCLR,UTPCLR^         JRST UTPCLR\r
16670         000230' 254000  000000*          X DATE,DATE^     JRST DATE\r
16671         000231' 254000  000000*          X SETPOV,SETPOV^         JRST SETPOV\r
16672         000232' 254000  000000*          X SWITCH,SWITCH^         JRST SWITCH\r
16673         000233' 254000  000000*          X TIMER,TIMER^   JRST TIMER\r
16674 \r\fSYSCON - UUO HANDLER                 PAGE 8\r
16675         8-9-65\r
16676 \r
16677 \r
16678 \r
16679                                 02600   , DEV 06 00 EX COM L PT PRE 02 UXIT\r
16680                                 02610   , H. R. MORSE       64-12-26\r
16681                                 02620   , CALLING SEQUENCE\r
16682                                 02630   ,         ANY TRANSFER OF CONTROL TO UXIT\r
16683                                 02640   , EXITS THIS UUO CALL.\r
16684                                 02650   , MONITOR INTERFACE\r
16685                                 02660   ,         SYMBOLS SET/USED:\r
16686                                 02670   ,                   ACCUMULATORS:       MAY RESTORE ALL ACCUMULATORS\r
16687                                 02680   ,                                       JDAT U\r
16688                                 02690   ,                                       PDP U\r
16689                                 02700   ,                                       17  S/U\r
16690                                 02710   ,                   JOB AREA:           JOBAC U\r
16691                                 02720   ,                   SYSTEM ADDRESSES:   USRUXT U\r
16692                                 02730   ,                                       USRLEV S/U\r
16693 \r\fSYSCON - UUO HANDLER                 PAGE 9\r
16694         8-9-65\r
16695 \r
16696 \r
16697 \r
16698 \r
16699                                 02780             INTERN UXIT,CUXIT1,CUXIT2\r
16700 \r
16701         000234' 350003  000000  02800   CUXIT2:   AOS (PDP)\r
16702         000235' 350003  000000  02810   CUXIT1:   AOS (PDP)\r
16703         000236' 262140  000046* 02820   UXIT:     POP PDP,USRSAV                ;RESTORE UUO EXIT ADDRESS FRO\r
16704         000237' 250040  000236* 02830             EXCH TAC,USRSAV\r
16705         000240' 607040  010000  02840             TLNN TAC,USRMOD               ;WAS ENTRY FROM USER MODE?\r
16706         000241' 254000  000246' 02850             JRST UXIT2\r
16707         000242' 202040  000237* 02860             MOVEM TAC,USRSAV              ;SET UP RETURN\r
16708         000243' 205751  000000* 02870             MOVSI 17, JOBAC(JDAT)                   ;RESTORE ACCUMULATO\r
16709         000244' 251740  000017  02880             BLT 17,17\r
16710         000245' 254120  000242* 02890   UXIT1:    JRST 2,@USRSAV                ;RETURN TO USERS PROGRAM\r
16711 \r
16712         000246' 250040  000245* 02910   UXIT2:    EXCH TAC,USRSAV\r
16713         000247' 254120  000246* 02920             JRST 2,@USRSAV\r
16714 \r
16715                                 02940             END,\r
16716         000250' 331100  000014\r
16717         000251' 000040  776000\r
16718 \r
16719 NO ERRORS DETECTED\r
16720 \r
16721 PROGRAM BREAK IS 000252\r
16722 \r
16723 9K CORE USED\r
16724 \r\fSYSCON - UUO HANDLER                 PAGE 10\r
16725         SYMBOL TABLE\r
16726 \r
16727                 000264  \r
16728 A               000000  INT\r
16729 AC1             000015  INT\r
16730 AC2             000016  INT\r
16731 AC3             000017  INT\r
16732 AL              000001  INT\r
16733 ASSCON          400000  INT\r
16734 ASSPRG          200000  INT\r
16735 B               000014  INT\r
16736 BUFPNT          000012  INT\r
16737 BUFWRD          000013  INT\r
16738 CLDS            000000  EXT\r
16739 CLEN            000000  EXT\r
16740 CLOSB           002000  INT\r
16741 CLOSE1          000105' EXT\r
16742 CLSIN           000002  INT\r
16743 CLSOUT          000001  INT\r
16744 CUXIT1          000235' INT\r
16745 CUXIT2          000234' INT\r
16746 D               000017  INT\r
16747 DAT             000005  INT\r
16748 DATE            000230' EXT\r
16749 DCL             000001  INT\r
16750 DCW             020000  INT\r
16751 DDI             000007  INT\r
16752 DDO             000006  INT\r
16753 DDTGT           000216' EXT\r
16754 DDTIN           000214' EXT\r
16755 DDTMEM          000037  INT\r
16756 DDTOUT          000215' EXT\r
16757 DDTRL           000217' EXT\r
16758 DDTSYM          000036  INT\r
16759 DEN             000004  INT\r
16760 DEVADR          000007  INT\r
16761 DEVBUF          000006  INT\r
16762 DEVCHR          000001  INT\r
16763 DEVCTR          000011  INT\r
16764 DEVDAT          000006  INT\r
16765 DEVIAD          000007  INT\r
16766 DEVIOS          000002  INT\r
16767 DEVLOG          000005  INT\r
16768 DEVMOD          000004  INT\r
16769 DEVNAM          000000  INT\r
16770 DEVOAD          000010  INT\r
16771 DEVPTR          000010  INT\r
16772 DEVSER          000003  INT\r
16773 DGF             000012  INT\r
16774 DIN             000003  INT\r
16775 DLK             000005  INT\r
16776 DOU             000002  INT\r
16777 DR              000016  INT\r
16778 DRL             000000  INT\r
16779 DSI             000011  INT\r
16780 \r\fSYSCON - UUO HANDLER                 PAGE 10-1\r
16781         SYMBOL TABLE\r
16782 \r
16783 DSO             000010  INT\r
16784 DTW             040000  INT\r
16785 DVAVAL          000040  INT\r
16786 DVCDR           100000  INT\r
16787 DVCHR           000222' EXT\r
16788 DVDIR           000004  INT\r
16789 DVDIRI          400000  INT\r
16790 DVIN            000002  INT\r
16791 DVLPT           040000  INT\r
16792 DVMTA           000020  INT\r
16793 DVOUT           000001  INT\r
16794 DVTTY           000010  INT\r
16795 ENTRB           020000  INT\r
16796 ERROR           000125' EXT\r
16797 EXIT            000225' EXT\r
16798 I               000010  INT\r
16799 IB              000013  INT\r
16800 IBUFB           200000  INT\r
16801 ILLINS          000053' EXT\r
16802 IN              000103' EXT\r
16803 INITB           400000  INT\r
16804 INPB            010000  INT\r
16805 IO              000020  INT\r
16806 IOACT           010000  INT\r
16807 IOBEG           000002  INT\r
16808 IOBKTL          040000  INT\r
16809 IOCON           000040  INT\r
16810 IODEND          020000  INT\r
16811 IODERR          200000  INT\r
16812 IODISC          400000  INT\r
16813 IODONE          400000  INT\r
16814 IODTER          100000  INT\r
16815 IOEND           000040  INT\r
16816 IOFST           000004  INT\r
16817 IOIERR          000065' EXT\r
16818 IOIMPM          400000  INT\r
16819 IONRCK          000100  INT\r
16820 IORDEL          000100  INT\r
16821 IORET           000020  INT\r
16822 IOS             000000  INT\r
16823 IOSTRT          000010  INT\r
16824 IOUSE           400000  INT\r
16825 IOW             000001  INT\r
16826 IOWC            000020  INT\r
16827 IOWS            400000  INT\r
16828 ITEM            000004  INT\r
16829 JBFADR          000000  INT\r
16830 JBFCTR          000002  INT\r
16831 JBFPTR          000001  INT\r
16832 JBUF            000005  INT\r
16833 JDAT            000011  INT\r
16834 JERR            002000  INT\r
16835 JIOW            100000  INT\r
16836 \r\fSYSCON - UUO HANDLER                 PAGE 10-2\r
16837         SYMBOL TABLE\r
16838 \r
16839 JNA             004000  INT\r
16840 JOBAC           000243' EXT\r
16841 JOBADR          000034' EXT\r
16842 JOBDAT          000042' EXT\r
16843 JOBPDL          000044' EXT\r
16844 LDRBLT          000226' EXT\r
16845 LOOKB           040000  INT\r
16846 MJOBPD          000043' EXT\r
16847 MTAPE1          000107' EXT\r
16848 MTW             010000  INT\r
16849 NRTOSP          000122' \r
16850 OBUFB           100000  INT\r
16851 OUT             000104' EXT\r
16852 OUTPB           004000  INT\r
16853 PDP             000003  INT\r
16854 PICHN           000100  INT\r
16855 PROG            000007  INT\r
16856 PUUOAC          000167' EXT\r
16857 RELEA1          000106' EXT\r
16858 RESET           000224' EXT\r
16859 RUN             200000  INT\r
16860 RUNABL          204000  INT\r
16861 SETDDT          000220' EXT\r
16862 SETPOV          000231' EXT\r
16863 SWITCH          000232' EXT\r
16864 TAC             000001  INT\r
16865 TAC1            000002  INT\r
16866 TEM             000010  INT\r
16867 TIMER           000233' EXT\r
16868 TTYATC          020000  INT\r
16869 TTYUSE          010000  INT\r
16870 UCALL           000162' \r
16871 UCLJMP          000214' \r
16872 UCLLEN          000020  \r
16873 UCLTAB          000174' \r
16874 UDEN            000131' \r
16875 UDGF            000160' \r
16876 UDLK            000143' \r
16877 UDSI            000156' \r
16878 UDSO            000154' \r
16879 UDSP            000115' \r
16880 UINBF           000101' EXT\r
16881 UINIT           000074' EXT\r
16882 UOUTBF          000102' EXT\r
16883 USETST          000075' EXT\r
16884 USRJDA          000151' EXT\r
16885 USRMOD          010000  INT\r
16886 USRREL          000021' EXT\r
16887 USRSAV          000247' EXT\r
16888 USTATO          000076' EXT\r
16889 USTATS          000077' EXT\r
16890 USTATZ          000100' EXT\r
16891 UTPCLR          000227' EXT\r
16892 \r\fSYSCON - UUO HANDLER                 PAGE 10-3\r
16893         SYMBOL TABLE\r
16894 \r
16895 UUO             000014  INT\r
16896 UUO0            000000' INT\r
16897 UUODSP          000070' \r
16898 UUOERR          000173' EXT\r
16899 UUOSY1          000046' \r
16900 UUOSYS          000030' \r
16901 UUOT1           000073' \r
16902 UUOT1L          000002  \r
16903 UUOT2           000075' \r
16904 UUOT2L          000020  \r
16905 UXIT            000236' INT\r
16906 UXIT1           000245' \r
16907 UXIT2           000246' \r
16908 WAIT            000223' EXT\r
16909 WAIT1           000143' EXT\r
16910 \f   SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
16911    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
16912    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         CCCCCCCCCCCC         SSSSSSSSSSSS         SSSSSSSSSSSS\r
16913 SSS                  YYY         YYY      SSS                  CCC                  SSS                  SSS            \r
16914 SSS                  YYY         YYY      SSS                  CCC                  SSS                  SSS            \r
16915 SSS                  YYY         YYY      SSS                  CCC                  SSS                  SSS            \r
16916 SSS                     YYY   YYY         SSS                  CCC                  SSS                  SSS            \r
16917 SSS                     YYY   YYY         SSS                  CCC                  SSS                  SSS            \r
16918 SSS                     YYY   YYY         SSS                  CCC                  SSS                  SSS            \r
16919    SSSSSSSSS               YYY               SSSSSSSSS         CCC                     SSSSSSSSS            SSSSSSSSS   \r
16920    SSSSSSSSS               YYY               SSSSSSSSS         CCC                     SSSSSSSSS            SSSSSSSSS   \r
16921    SSSSSSSSS               YYY               SSSSSSSSS         CCC                     SSSSSSSSS            SSSSSSSSS   \r
16922             SSS            YYY                        SSS      CCC                              SSS                  SSS\r
16923             SSS            YYY                        SSS      CCC                              SSS                  SSS\r
16924             SSS            YYY                        SSS      CCC                              SSS                  SSS\r
16925             SSS            YYY                        SSS      CCC                              SSS                  SSS\r
16926             SSS            YYY                        SSS      CCC                              SSS                  SSS\r
16927             SSS            YYY                        SSS      CCC                              SSS                  SSS\r
16928 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
16929 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
16930 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            CCCCCCCCCCCC      SSSSSSSSSSSS         SSSSSSSSSSSS   \r
16931 \r
16932 \r
16933 \r
16934 \r
16935 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
16936 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
16937 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
16938 LLL                  SSS                        TTT                                                                     \r
16939 LLL                  SSS                        TTT                                                                     \r
16940 LLL                  SSS                        TTT                                                                     \r
16941 LLL                  SSS                        TTT                                                                     \r
16942 LLL                  SSS                        TTT                                                                     \r
16943 LLL                  SSS                        TTT                                                                     \r
16944 LLL                     SSSSSSSSS               TTT                                                                     \r
16945 LLL                     SSSSSSSSS               TTT                                                                     \r
16946 LLL                     SSSSSSSSS               TTT                                                                     \r
16947 LLL                              SSS            TTT                                                                     \r
16948 LLL                              SSS            TTT                                                                     \r
16949 LLL                              SSS            TTT                                                                     \r
16950 LLL                              SSS            TTT                                                                     \r
16951 LLL                              SSS            TTT                                                                     \r
16952 LLL                              SSS            TTT                                                                     \r
16953 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
16954 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
16955 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
16956 \r
16957 \r
16958 \r
16959 \r
16960 Request created: 24-April-1978  11:23:08\r
16961 File: DSKB1 :SYSCSS.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:25
16962 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2209 \r
16963 File will be deleted after printing\r
16964 \f\rSYSCSS - COMMON SYSTEM SUBROUTINES                 PAGE 1\r
16965         8-9-65\r
16966 \r
16967                                 00010           XLIST\r
16968                                 01930          LIST\r
16969 \r\fSYSCSS - COMMON SYSTEM SUBROUTINES                 PAGE 7\r
16970         8-9-65\r
16971 \r
16972 \r
16973                                 00010   TITLE SYSCSS - COMMON SYSTEM SUBROUTINES\r
16974                                 00020   SUBTTL 8-9-65\r
16975                                 00030   EXTERNAL UXIT,ERROR,USRDDT,USRPOV,PUUOAC,USRREL\r
16976 \r
16977                                 00050   ;RETURN THE DATE TO THE USER\r
16978 \r
16979 \r
16980                                 00080             INTERNAL DATE,THSDAT\r
16981 \r
16982         000000' 200240  000002' 00100   DATE:     MOVE DAT, THSDAT\r
16983         000001' 254000  000005' 00110             JRST STOAC\r
16984 \r
16985         000002' 000000  000000  00130   THSDAT:   0             ;CONTAINS THE DATE\r
16986 \r
16987                                 00150   ;RETURN TIME SYSTEM HAS RUN IN 60THS OF A SECOND\r
16988 \r
16989                                 00170   INTERNAL TIMER\r
16990                                 00180   EXTERNAL TIME\r
16991 \r
16992         000003' 334240  000000* 00200   TIMER:    SKIPA DAT, TIME  ;FALL INTO STOAC\r
16993 \r
16994                                 00220   ;RETURN DATA SWITCHES\r
16995 \r
16996                                 00240   INTERNAL SWITCH\r
16997 \r
16998         000004' 700040  000005  00260   SWITCH:   DATAI DAT\r
16999 \r
17000                                 00280   ;STORE DAT IN USER AC\r
17001 \r
17002                                 00300   INTERNAL STOAC\r
17003 \r
17004         000005' 135040  000000* 00320   STOAC:    LDB TAC, PUUOAC\r
17005         000006' 505040  000007  00330             HRLI TAC, PROG\r
17006         000007' 202260  000001  00340             MOVEM DAT,@TAC\r
17007         000010' 254000  000000* 00350             JRST UXIT\r
17008 \r
17009                                 00370   ;RETURN DEVICE CHARACTERISTICS\r
17010 \r
17011                                 00390   INTERNAL DVCHR\r
17012                                 00400   EXTERNAL JOB,DEVSRC,PJOBN\r
17013 \r
17014         000011' 200200  000000* 00420   DVCHR:    MOVE ITEM,JOB\r
17015         000012' 260140  000000* 00430             PUSHJ PDP,DEVSRC      ;SEARCH FOR DEVICE\r
17016         000013' 334240  000034' 00440             SKIPA DAT,[0]         ;NOT A DEVICE\r
17017         000014' 334246  000004  00450             SKIPA DAT,DEVMOD(DEVDAT)\r
17018         000015' 254000  000005' 00460             JRST STOAC\r
17019         000016' 135040  000000* 00470             LDB TAC,PJOBN         ;GET JOB NUMBER\r
17020         000017' 312040  000011* 00480             CAME TAC,JOB          ;DOES USER ALREADY HAVE THIS DEVICE?\r
17021         000020' 606240  600000  00490             TRNN DAT,ASSCON+ASSPRG        ;NO\r
17022         000021' 661240  000040  00500             TLO DAT,DVAVAL        ;NO, BUT HE CAN GET IT\r
17023         000022' 254000  000005' 00510             JRST STOAC\r
17024 \r\fSYSCSS - COMMON SYSTEM SUBROUTINES                 PAGE 2\r
17025         8-9-65\r
17026 \r
17027 \r
17028 \r
17029                                 00550   , CALLING SEQUENCE\r
17030                                 00560   ,         PUSHJ PDP,HASH\r
17031                                 00570   ,         EXIT;L                ALWAYS RETURNS HERE\r
17032                                 00580   , COMPUTES XOR HASH TYPE INDEX FROM NAME (SIXBIT CODE) IN AC DAT\r
17033                                 00590   , AND LEAVES THE RESULT (00<OR= INDEX <OR=77) AS AN INTEGER IN TAC.\r
17034                                 00600   , THE ALGORITHM IS AS FOLLOWS: (V = EXCLUSIVE OR)\r
17035                                 00610   , BIT     35:=8V17V26V35\r
17036                                 00620   ,         34:=7V16V25V34\r
17037                                 00630   ,         33:=6V15V24V33\r
17038                                 00640   ,         32:=5V11V23V29\r
17039                                 00650   ,         31:=4V10V22V28\r
17040                                 00660   ,         30:=3V9V21V27\r
17041                                 00670   , MONITOR INTERFACE\r
17042                                 00680   ,         SYMBOLS SET/USED:\r
17043                                 00690   ,                   ACCUMULATORS:       DAT U           TAC S/U\r
17044                                 00700   ,                                       PDP S/U         TAC1 S/U\r
17045                                 00710   ;         INTERN HASH\r
17046 \r
17047                                 00730   ;HASH:    HLR TAC,DAT\r
17048                                 00740   ;         MOVE TAC1,DAT\r
17049                                 00750   ;         XORB TAC1,TAC\r
17050                                 00760   ;         ROT TAC1,-11\r
17051                                 00770   ;         XOR TAC,TAC1\r
17052                                 00780   ;         ANDI TAC,UTBNM1\r
17053                                 00790   ;         POPJ PDP,             ;       RETURN\r
17054 \r\fSYSCSS - COMMON SYSTEM SUBROUTINES                 PAGE 3\r
17055         8-9-65\r
17056 \r
17057 \r
17058                                 00820             INTERNAL SETDDT\r
17059 \r
17060         000023' 545040  010000  00840   SETDDT:   HLRI TAC,10000\r
17061         000024' 202040  000000* 00850             MOVEM TAC,USRDDT\r
17062         000025' 254000  000010* 00860             JRST UXIT\r
17063 \r
17064 \r
17065                                 00890             INTERNAL SETPOV\r
17066 \r
17067         000026' 545040  010000  00910   SETPOV:   HLRI TAC,10000\r
17068         000027' 202040  000000* 00920             MOVEM TAC,USRPOV\r
17069         000030' 254000  000025* 00930             JRST UXIT\r
17070 \r
17071                                 00950   ;WAIT FOR IO TO BECOME INACTIVE ON CHANNEL AC\r
17072 \r
17073                                 00970   INTERNAL WAIT\r
17074                                 00980   EXTERNAL IOIERR,WAIT1\r
17075 \r
17076         000031' 322300  000000* 01000   WAIT:     JUMPE DEVDAT,IOIERR ;CHANNEL ASSIGNED?\r
17077         000032' 260140  000000* 01010             PUSHJ PDP,WAIT1     ;WAIT TILL INACTIVE\r
17078         000033' 254000  000030* 01020             JRST UXIT\r
17079                                 01030             END,\r
17080         000034' 000000  000000\r
17081 \r
17082 NO ERRORS DETECTED\r
17083 \r
17084 PROGRAM BREAK IS 000035\r
17085 \r
17086 8K CORE USED\r
17087 \r\fSYSCSS - COMMON SYSTEM SUBROUTINES                 PAGE 4\r
17088         SYMBOL TABLE\r
17089 \r
17090                 000203  \r
17091 A               000000  INT\r
17092 AC1             000015  INT\r
17093 AC2             000016  INT\r
17094 AC3             000017  INT\r
17095 AL              000001  INT\r
17096 ASSCON          400000  INT\r
17097 ASSPRG          200000  INT\r
17098 B               000014  INT\r
17099 BUFPNT          000012  INT\r
17100 BUFWRD          000013  INT\r
17101 CLOSB           002000  INT\r
17102 CLSIN           000002  INT\r
17103 CLSOUT          000001  INT\r
17104 D               000017  INT\r
17105 DAT             000005  INT\r
17106 DATE            000000' INT\r
17107 DCL             000001  INT\r
17108 DCW             020000  INT\r
17109 DDI             000007  INT\r
17110 DDO             000006  INT\r
17111 DDTMEM          000037  INT\r
17112 DDTSYM          000036  INT\r
17113 DEN             000004  INT\r
17114 DEVADR          000007  INT\r
17115 DEVBUF          000006  INT\r
17116 DEVCHR          000001  INT\r
17117 DEVCTR          000011  INT\r
17118 DEVDAT          000006  INT\r
17119 DEVIAD          000007  INT\r
17120 DEVIOS          000002  INT\r
17121 DEVLOG          000005  INT\r
17122 DEVMOD          000004  INT\r
17123 DEVNAM          000000  INT\r
17124 DEVOAD          000010  INT\r
17125 DEVPTR          000010  INT\r
17126 DEVSER          000003  INT\r
17127 DEVSRC          000012' EXT\r
17128 DGF             000012  INT\r
17129 DIN             000003  INT\r
17130 DLK             000005  INT\r
17131 DOU             000002  INT\r
17132 DR              000016  INT\r
17133 DRL             000000  INT\r
17134 DSI             000011  INT\r
17135 DSO             000010  INT\r
17136 DTW             040000  INT\r
17137 DVAVAL          000040  INT\r
17138 DVCDR           100000  INT\r
17139 DVCHR           000011' INT\r
17140 DVDIR           000004  INT\r
17141 DVDIRI          400000  INT\r
17142 DVIN            000002  INT\r
17143 \r\fSYSCSS - COMMON SYSTEM SUBROUTINES                 PAGE 4-1\r
17144         SYMBOL TABLE\r
17145 \r
17146 DVLPT           040000  INT\r
17147 DVMTA           000020  INT\r
17148 DVOUT           000001  INT\r
17149 DVTTY           000010  INT\r
17150 ENTRB           020000  INT\r
17151 ERROR           000000  EXT\r
17152 I               000010  INT\r
17153 IB              000013  INT\r
17154 IBUFB           200000  INT\r
17155 INITB           400000  INT\r
17156 INPB            010000  INT\r
17157 IO              000020  INT\r
17158 IOACT           010000  INT\r
17159 IOBEG           000002  INT\r
17160 IOBKTL          040000  INT\r
17161 IOCON           000040  INT\r
17162 IODEND          020000  INT\r
17163 IODERR          200000  INT\r
17164 IODISC          400000  INT\r
17165 IODONE          400000  INT\r
17166 IODTER          100000  INT\r
17167 IOEND           000040  INT\r
17168 IOFST           000004  INT\r
17169 IOIERR          000031' EXT\r
17170 IOIMPM          400000  INT\r
17171 IONRCK          000100  INT\r
17172 IORDEL          000100  INT\r
17173 IORET           000020  INT\r
17174 IOS             000000  INT\r
17175 IOSTRT          000010  INT\r
17176 IOUSE           400000  INT\r
17177 IOW             000001  INT\r
17178 IOWC            000020  INT\r
17179 IOWS            400000  INT\r
17180 ITEM            000004  INT\r
17181 JBFADR          000000  INT\r
17182 JBFCTR          000002  INT\r
17183 JBFPTR          000001  INT\r
17184 JBUF            000005  INT\r
17185 JDAT            000011  INT\r
17186 JERR            002000  INT\r
17187 JIOW            100000  INT\r
17188 JNA             004000  INT\r
17189 JOB             000017' EXT\r
17190 LOOKB           040000  INT\r
17191 MTW             010000  INT\r
17192 OBUFB           100000  INT\r
17193 OUTPB           004000  INT\r
17194 PDP             000003  INT\r
17195 PICHN           000100  INT\r
17196 PJOBN           000016' EXT\r
17197 PROG            000007  INT\r
17198 PUUOAC          000005' EXT\r
17199 \r\fSYSCSS - COMMON SYSTEM SUBROUTINES                 PAGE 4-2\r
17200         SYMBOL TABLE\r
17201 \r
17202 RUN             200000  INT\r
17203 RUNABL          204000  INT\r
17204 SETDDT          000023' INT\r
17205 SETPOV          000026' INT\r
17206 STOAC           000005' INT\r
17207 SWITCH          000004' INT\r
17208 TAC             000001  INT\r
17209 TAC1            000002  INT\r
17210 TEM             000010  INT\r
17211 THSDAT          000002' INT\r
17212 TIME            000003' EXT\r
17213 TIMER           000003' INT\r
17214 TTYATC          020000  INT\r
17215 TTYUSE          010000  INT\r
17216 USRDDT          000024' EXT\r
17217 USRMOD          010000  INT\r
17218 USRPOV          000027' EXT\r
17219 USRREL          000000  EXT\r
17220 UUO             000014  INT\r
17221 UXIT            000033' EXT\r
17222 WAIT            000031' INT\r
17223 WAIT1           000032' EXT\r
17224 \f   SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
17225    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
17226    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS         IIIIIIIII         NNN         NNN         IIIIIIIII   \r
17227 SSS                  YYY         YYY      SSS                        III            NNN         NNN            III      \r
17228 SSS                  YYY         YYY      SSS                        III            NNN         NNN            III      \r
17229 SSS                  YYY         YYY      SSS                        III            NNN         NNN            III      \r
17230 SSS                     YYY   YYY         SSS                        III            NNNNNN      NNN            III      \r
17231 SSS                     YYY   YYY         SSS                        III            NNNNNN      NNN            III      \r
17232 SSS                     YYY   YYY         SSS                        III            NNNNNN      NNN            III      \r
17233    SSSSSSSSS               YYY               SSSSSSSSS               III            NNN   NNN   NNN            III      \r
17234    SSSSSSSSS               YYY               SSSSSSSSS               III            NNN   NNN   NNN            III      \r
17235    SSSSSSSSS               YYY               SSSSSSSSS               III            NNN   NNN   NNN            III      \r
17236             SSS            YYY                        SSS            III            NNN      NNNNNN            III      \r
17237             SSS            YYY                        SSS            III            NNN      NNNNNN            III      \r
17238             SSS            YYY                        SSS            III            NNN      NNNNNN            III      \r
17239             SSS            YYY                        SSS            III            NNN         NNN            III      \r
17240             SSS            YYY                        SSS            III            NNN         NNN            III      \r
17241             SSS            YYY                        SSS            III            NNN         NNN            III      \r
17242 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            IIIIIIIII         NNN         NNN         IIIIIIIII   \r
17243 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            IIIIIIIII         NNN         NNN         IIIIIIIII   \r
17244 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS            IIIIIIIII         NNN         NNN         IIIIIIIII   \r
17245 \r
17246 \r
17247 \r
17248 \r
17249 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17250 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17251 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17252 LLL                  SSS                        TTT                                                                     \r
17253 LLL                  SSS                        TTT                                                                     \r
17254 LLL                  SSS                        TTT                                                                     \r
17255 LLL                  SSS                        TTT                                                                     \r
17256 LLL                  SSS                        TTT                                                                     \r
17257 LLL                  SSS                        TTT                                                                     \r
17258 LLL                     SSSSSSSSS               TTT                                                                     \r
17259 LLL                     SSSSSSSSS               TTT                                                                     \r
17260 LLL                     SSSSSSSSS               TTT                                                                     \r
17261 LLL                              SSS            TTT                                                                     \r
17262 LLL                              SSS            TTT                                                                     \r
17263 LLL                              SSS            TTT                                                                     \r
17264 LLL                              SSS            TTT                                                                     \r
17265 LLL                              SSS            TTT                                                                     \r
17266 LLL                              SSS            TTT                                                                     \r
17267 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17268 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17269 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17270 \r
17271 \r
17272 \r
17273 \r
17274 Request created: 24-April-1978  11:23:08\r
17275 File: DSKB1 :SYSINI.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:25
17276 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2202 \r
17277 File will be deleted after printing\r
17278 \f\rSYSINI - SYSTEM INITIALIZATION                 PAGE 1\r
17279         8-9-65\r
17280 \r
17281                                 00010           XLIST\r
17282                                 01930          LIST\r
17283 \r\fSYSINI - SYSTEM INITIALIZATION                 PAGE 7\r
17284         8-9-65\r
17285 \r
17286 \r
17287                                 00010   TITLE SYSINI - SYSTEM INITIALIZATION\r
17288                                 00020   SUBTTL 8-9-65\r
17289                                 00030   EXTERNAL APRCHN,ERROR,IOINI\r
17290                                 00040   EXTERNAL DDT,NULJOB,SYSMAK,ONCE,SYSBEG,SYSBG1,SYSEND\r
17291                                 00050   EXTERNAL CORTAB,CORLST,CORTAL,CORBLK,SYSSIZ,LINKSR\r
17292 \r
17293                                 00070   ;SYSTEM INITIALIZATION DISPATCHTABLE, STARTING AT LOC. 140\r
17294                                 00080   ;THIS SUBROUTINE MUST BE LOADED FIRST\r
17295                                 00090   ;ROUTINE ONCE IS ONCE ONLY CODE. IT CONVERTS THE DATE\r
17296                                 00100   ;AND SETS UP IO SERVICE CHAIN.\r
17297 \r
17298 \r
17299 \r
17300                                 00140   INTERNAL SYSDSP\r
17301 \r
17302         000000' 254000  000010' 00160   SYSDSP:   JRST SYSINI           ;INITIALIZE SYSTEM VARIABLES ONCE ONLY\r
17303         000001' 254000  000000* 00170             JRST DDT      ;EXEC DDT\r
17304         000002' 254000  000000* 00180             JRST SYSMAK           ;MAKE NEW SYSTEM\r
17305         000003' 254000  000010' 00190             JRST SYSINI           ;INITIALIZE SYSTEM VARIABLES ALWAYS\r
17306         000004' 254500  000000* 00200             JEN  NULJOB           ;ERROR RECOVERY\r
17307         000005' 254000  000007' 00210             JRST SYSONE           ;DO ONCE ONLY CODE OVER AGAIN\r
17308         000006' 254000  000012' 00220             JRST JSR2 ;BYPASS ONCE ONLY OPERATOR DIALOG\r
17309                                 00230                       ;(IN CASE CONSOLE TTY DOWN)\r
17310 \r\fSYSINI - SYSTEM INITIALIZATION                 PAGE 2\r
17311         8-9-65\r
17312 \r
17313 \r
17314 \r
17315                                 00270   ;INITIALIZE SYSTEM DATA STORAGE\r
17316 \r
17317                                 00290   INTERNAL SYSINI\r
17318                         010000  00300   NXM=10000 ;NON EX MEM FLAG\r
17319 \r
17320         000007' 264000  000000* 00320   SYSONE:   JSR ONCE  ;ONCE ONLY CODE\r
17321         000010' 700200  200000  00330   SYSINI:   CONO APR,200000       ;IO RESET\r
17322         000011' 264000  000007* 00340   JSR1:     JSR ONCE  ;DO ONCE ONLY CODE ONCE\r
17323         000012' 264000  000000* 00350   JSR2:     JSR LINKSR            ;LINK IO SERVICE ROUTINES\r
17324         000013' 204040  000014' 00360             MOVS TAC,.+1\r
17325         000014' 403100  000000* 00370             SETZB TAC1,SYSBEG\r
17326         000015' 206040  000011' 00380             MOVSM TAC,JSR1\r
17327         000016' 206040  000012' 00390             MOVSM TAC,JSR2\r
17328         000017' 541040  000000* 00400             HRRI TAC,SYSBG1       ;CLEAR SYSTEM DATA STORAGE\r
17329         000020' 251040  000000* 00410             BLT TAC,SYSEND\r
17330         000021' 205040  430000  00420             MOVSI TAC, DVDIRIN+TTYATC+TTYUSE\r
17331         000022' 541040  600000  00430             HRRI TAC,ASSCON+ASSPRG\r
17332         000023' 554300  000000* 00440             HLRZ DEVDAT,DEVLST   ;SCAN ALL DEVICES\r
17333         000024' 412046  000004  00450   SYS1:     ANDCAM TAC, DEVMOD(DEVDAT)    ;CLEAR DIRECTORY IN CORE BIT,\r
17334                                 00460                   ;ASSIGNED BY CONSOLE & PROGRAM\r
17335         000025' 402006  000005  00470             SETZM DEVLOG(DEVDAT)          ;CLEAR LOGICAL NAME\r
17336         000026' 554306  000003  00480             HLRZ DEVDAT, DEVSER(DEVDAT)\r
17337         000027' 326300  000024' 00490             JUMPN DEVDAT, SYS1\r
17338         000030' 200440  000105' 00500             MOVE JDAT,COREP       ;SET UP CORE USE BIT TABLE\r
17339         000031' 202440  000000* 00510             MOVEM JDAT,CORLST\r
17340         000032' 201040  000000* 00520             MOVEI TAC,CORBLK      ;NO. OF 1K BLOCKS IN TABLE\r
17341         000033' 700200  010000  00530   SYS2:     CONO APR,NXM          ;CLEAR NON EX MEM\r
17342         000034' 133000  000011  00540             IBP JDAT      ;MOVE BYTE POINTER\r
17343         000035' 510242  000000  00550             HLLZ DAT,(TAC1)       ;REFERENCE MEMORY, CLEAR RT. OF DAT\r
17344         000036' 313100  000000* 00560             CAMLE TAC1,SYSSIZ     ;HIGHEST LOC IN EXEC.\r
17345         000037' 700300  010000  00570             CONSZ APR,NXM         ;CAN MEMORY BE USED FOR USER PROG?\r
17346         000040' 344240  000043' 00580             AOJA DAT,SYS3         ;NO, MARK AS INACCESIBLE (1 BIT)\r
17347         000041' 350000  000000* 00590             AOS CORTAL\r
17348         000042' 202440  000031* 00600             MOVEM JDAT,CORLST     ;AND SET LAST FREE BLOCK POINTER\r
17349         000043' 137240  000011  00610   SYS3:     DPB DAT,JDAT          ;STORE 0 OR 1 IN TABLE\r
17350         000044' 271100  002000  00620             ADDI TAC1,2000        ;INCREMENT MEMORY REF\r
17351         000045' 367040  000033' 00630             SOJG TAC,SYS2\r
17352         000046' 133000  000042* 00640             IBP CORLST            ;SET TO FIRST UNAVAILABLE BLOCK\r
17353         000047' 541040  000051' 00650             HRRI 1,IOGO\r
17354         000050' 542040  000000' 00660             HRRM 1,SYSDSP         ;FALINTO IOGO\r
17355 \r\fSYSINI - SYSTEM INITIALIZATION                 PAGE 3\r
17356         8-9-65\r
17357 \r
17358 \r
17359 \r
17360                                 00700   ;INITIALIZE ALL IODEVICES\r
17361 \r
17362                                 00720             INTERNAL IOGO\r
17363                                 00730             EXTERNAL DEVLST, MJOBN, JBTADR,JBTSTS,IOINI\r
17364                                 00740   EXTERNAL DCREQ,MTREQ,DTREQ\r
17365 \r
17366         000051' 201040  000000* 00760   IOGO:     MOVEI TAC,APRCHN\r
17367         000052' 700201  633440  00770             CONO APR,633440(TAC)\r
17368         000053' 554040  000023* 00780             HLRZ TAC, DEVLST       ;CHAIN OF DEVICE DATA BLOKS\r
17369         000054' 201100  200000  00790   IOG0:     MOVEI TAC1,ASSPRG      ;CLEAR ASSIGNED BY PROGRAM BIT\r
17370         000055' 413101  000004  00800             ANDCAB TAC1,DEVMOD(TAC)\r
17371         000056' 525200  000720  00810             HRLOI ITEM,IORET+7*PICHN      ;CLEAR JOB NO., USER CHANNEL\r
17372         000057' 602100  400000  00820             TRNE TAC1,ASSCON\r
17373         000060' 661200  777000  00830             TLO ITEM,777000\r
17374         000061' 406201  000001  00840             ANDM ITEM,DEVCHR(TAC)         ;BUT NOT IORET BIT OR PII CHA\r
17375         000062' 402001  000002  00850             SETZM DEVIOS(TAC)     ;CLEAR IO STATUS WORD\r
17376         000063' 402001  000006  00860             SETZM DEVBUF(TAC)     ;CLEAR BUFFER ADDRESS\r
17377         000064' 554041  000003  00870             HLRZ TAC, DEVSER(TAC)\r
17378         000065' 326040  000054' 00880             JUMPN TAC, IOG0\r
17379         000066' 476000  000000* 00890             SETOM DCREQ           ;CLEAR DEVICE REQUEST COUNTS\r
17380         000067' 476000  000000* 00900             SETOM MTREQ   \r
17381         000070' 476000  000000* 00910             SETOM DTREQ\r
17382         000071' 201140  000100' 00920             MOVEI PDP,IOPDL-1\r
17383         000072' 260140  000000* 00930             PUSHJ PDP,IOINI       ;INITIALIZE IO DEVICES\r
17384         000073' 205240  000000* 00940             MOVSI DAT,MJOBN       ;JOB NUMBER ASSIGNED BIT\r
17385         000074' 200040  000106' 00950             MOVE TAC,[XWD JERR,1]         ;SET ERROR BIT, CLEAR ALL 0TH\r
17386         000075' 202045  000000* 00960   IOG1:     MOVEM TAC,JBTSTS(DAT)\r
17387         000076' 253240  000075' 00970             AOBJN DAT,IOG1\r
17388         000077' 700600  012377  00980             CONO PI,12377\r
17389         000100' 254000  000004* 00990             JRST NULJOB           ;START THE NULL JOB\r
17390         000101'                 01000   IOPDL:    BLOCK 4\r
17391         000105' 440100  000000* 01010   COREP:    POINT 1,CORTAB        ;1 BIT BYTE POINTER TO CORE USE TABLE\r
17392 \r
17393                         000010' 01030             END SYSINI\r
17394         000106' 002000  000001\r
17395 \r
17396 NO ERRORS DETECTED\r
17397 \r
17398 PROGRAM BREAK IS 000107\r
17399 \r
17400 8K CORE USED\r
17401 \r\fSYSINI - SYSTEM INITIALIZATION                 PAGE 4\r
17402         SYMBOL TABLE\r
17403 \r
17404                 000225  \r
17405 A               000000  INT\r
17406 AC1             000015  INT\r
17407 AC2             000016  INT\r
17408 AC3             000017  INT\r
17409 AL              000001  INT\r
17410 APR             000000  SPD\r
17411 APRCHN          000051' EXT\r
17412 ASSCON          400000  INT\r
17413 ASSPRG          200000  INT\r
17414 B               000014  INT\r
17415 BUFPNT          000012  INT\r
17416 BUFWRD          000013  INT\r
17417 CLOSB           002000  INT\r
17418 CLSIN           000002  INT\r
17419 CLSOUT          000001  INT\r
17420 CORBLK          000032' EXT\r
17421 COREP           000105' \r
17422 CORLST          000046' EXT\r
17423 CORTAB          000105' EXT\r
17424 CORTAL          000041' EXT\r
17425 D               000017  INT\r
17426 DAT             000005  INT\r
17427 DCL             000001  INT\r
17428 DCREQ           000066' EXT\r
17429 DCW             020000  INT\r
17430 DDI             000007  INT\r
17431 DDO             000006  INT\r
17432 DDT             000001' EXT\r
17433 DDTMEM          000037  INT\r
17434 DDTSYM          000036  INT\r
17435 DEN             000004  INT\r
17436 DEVADR          000007  INT\r
17437 DEVBUF          000006  INT\r
17438 DEVCHR          000001  INT\r
17439 DEVCTR          000011  INT\r
17440 DEVDAT          000006  INT\r
17441 DEVIAD          000007  INT\r
17442 DEVIOS          000002  INT\r
17443 DEVLOG          000005  INT\r
17444 DEVLST          000053' EXT\r
17445 DEVMOD          000004  INT\r
17446 DEVNAM          000000  INT\r
17447 DEVOAD          000010  INT\r
17448 DEVPTR          000010  INT\r
17449 DEVSER          000003  INT\r
17450 DGF             000012  INT\r
17451 DIN             000003  INT\r
17452 DLK             000005  INT\r
17453 DOU             000002  INT\r
17454 DR              000016  INT\r
17455 DRL             000000  INT\r
17456 DSI             000011  INT\r
17457 \r\fSYSINI - SYSTEM INITIALIZATION                 PAGE 4-1\r
17458         SYMBOL TABLE\r
17459 \r
17460 DSO             000010  INT\r
17461 DTREQ           000070' EXT\r
17462 DTW             040000  INT\r
17463 DVAVAL          000040  INT\r
17464 DVCDR           100000  INT\r
17465 DVDIR           000004  INT\r
17466 DVDIRI          400000  INT\r
17467 DVIN            000002  INT\r
17468 DVLPT           040000  INT\r
17469 DVMTA           000020  INT\r
17470 DVOUT           000001  INT\r
17471 DVTTY           000010  INT\r
17472 ENTRB           020000  INT\r
17473 ERROR           000000  EXT\r
17474 I               000010  INT\r
17475 IB              000013  INT\r
17476 IBUFB           200000  INT\r
17477 INITB           400000  INT\r
17478 INPB            010000  INT\r
17479 IO              000020  INT\r
17480 IOACT           010000  INT\r
17481 IOBEG           000002  INT\r
17482 IOBKTL          040000  INT\r
17483 IOCON           000040  INT\r
17484 IODEND          020000  INT\r
17485 IODERR          200000  INT\r
17486 IODISC          400000  INT\r
17487 IODONE          400000  INT\r
17488 IODTER          100000  INT\r
17489 IOEND           000040  INT\r
17490 IOFST           000004  INT\r
17491 IOG0            000054' \r
17492 IOG1            000075' \r
17493 IOGO            000051' INT\r
17494 IOIMPM          400000  INT\r
17495 IOINI           000072' EXT\r
17496 IONRCK          000100  INT\r
17497 IOPDL           000101' \r
17498 IORDEL          000100  INT\r
17499 IORET           000020  INT\r
17500 IOS             000000  INT\r
17501 IOSTRT          000010  INT\r
17502 IOUSE           400000  INT\r
17503 IOW             000001  INT\r
17504 IOWC            000020  INT\r
17505 IOWS            400000  INT\r
17506 ITEM            000004  INT\r
17507 JBFADR          000000  INT\r
17508 JBFCTR          000002  INT\r
17509 JBFPTR          000001  INT\r
17510 JBTADR          000000  EXT\r
17511 JBTSTS          000075' EXT\r
17512 JBUF            000005  INT\r
17513 \r\fSYSINI - SYSTEM INITIALIZATION                 PAGE 4-2\r
17514         SYMBOL TABLE\r
17515 \r
17516 JDAT            000011  INT\r
17517 JERR            002000  INT\r
17518 JIOW            100000  INT\r
17519 JNA             004000  INT\r
17520 JSR1            000011' \r
17521 JSR2            000012' \r
17522 LINKSR          000012' EXT\r
17523 LOOKB           040000  INT\r
17524 MJOBN           000073' EXT\r
17525 MTREQ           000067' EXT\r
17526 MTW             010000  INT\r
17527 NULJOB          000100' EXT\r
17528 NXM             010000  \r
17529 OBUFB           100000  INT\r
17530 ONCE            000011' EXT\r
17531 OUTPB           004000  INT\r
17532 PDP             000003  INT\r
17533 PI              000004  SPD\r
17534 PICHN           000100  INT\r
17535 PROG            000007  INT\r
17536 RUN             200000  INT\r
17537 RUNABL          204000  INT\r
17538 SYS1            000024' \r
17539 SYS2            000033' \r
17540 SYS3            000043' \r
17541 SYSBEG          000014' EXT\r
17542 SYSBG1          000017' EXT\r
17543 SYSDSP          000000' INT\r
17544 SYSEND          000020' EXT\r
17545 SYSINI          000010' INT\r
17546 SYSMAK          000002' EXT\r
17547 SYSONE          000007' \r
17548 SYSSIZ          000036' EXT\r
17549 TAC             000001  INT\r
17550 TAC1            000002  INT\r
17551 TEM             000010  INT\r
17552 TTYATC          020000  INT\r
17553 TTYUSE          010000  INT\r
17554 USRMOD          010000  INT\r
17555 UUO             000014  INT\r
17556 \f   SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS      MMM         MMM         AAAAAAAAA         KKK         KKK\r
17557    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS      MMM         MMM         AAAAAAAAA         KKK         KKK\r
17558    SSSSSSSSSSSS      YYY         YYY         SSSSSSSSSSSS      MMM         MMM         AAAAAAAAA         KKK         KKK\r
17559 SSS                  YYY         YYY      SSS                  MMMMMM   MMMMMM      AAA         AAA      KKK         KKK\r
17560 SSS                  YYY         YYY      SSS                  MMMMMM   MMMMMM      AAA         AAA      KKK         KKK\r
17561 SSS                  YYY         YYY      SSS                  MMMMMM   MMMMMM      AAA         AAA      KKK         KKK\r
17562 SSS                     YYY   YYY         SSS                  MMM   MMM   MMM      AAA         AAA      KKK      KKK   \r
17563 SSS                     YYY   YYY         SSS                  MMM   MMM   MMM      AAA         AAA      KKK      KKK   \r
17564 SSS                     YYY   YYY         SSS                  MMM   MMM   MMM      AAA         AAA      KKK      KKK   \r
17565    SSSSSSSSS               YYY               SSSSSSSSS         MMM         MMM      AAA         AAA      KKKKKKKKK      \r
17566    SSSSSSSSS               YYY               SSSSSSSSS         MMM         MMM      AAA         AAA      KKKKKKKKK      \r
17567    SSSSSSSSS               YYY               SSSSSSSSS         MMM         MMM      AAA         AAA      KKKKKKKKK      \r
17568             SSS            YYY                        SSS      MMM         MMM      AAAAAAAAAAAAAAA      KKK      KKK   \r
17569             SSS            YYY                        SSS      MMM         MMM      AAAAAAAAAAAAAAA      KKK      KKK   \r
17570             SSS            YYY                        SSS      MMM         MMM      AAAAAAAAAAAAAAA      KKK      KKK   \r
17571             SSS            YYY                        SSS      MMM         MMM      AAA         AAA      KKK         KKK\r
17572             SSS            YYY                        SSS      MMM         MMM      AAA         AAA      KKK         KKK\r
17573             SSS            YYY                        SSS      MMM         MMM      AAA         AAA      KKK         KKK\r
17574 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS         MMM         MMM      AAA         AAA      KKK         KKK\r
17575 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS         MMM         MMM      AAA         AAA      KKK         KKK\r
17576 SSSSSSSSSSSS               YYY            SSSSSSSSSSSS         MMM         MMM      AAA         AAA      KKK         KKK\r
17577 \r
17578 \r
17579 \r
17580 \r
17581 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17582 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17583 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17584 LLL                  SSS                        TTT                                                                     \r
17585 LLL                  SSS                        TTT                                                                     \r
17586 LLL                  SSS                        TTT                                                                     \r
17587 LLL                  SSS                        TTT                                                                     \r
17588 LLL                  SSS                        TTT                                                                     \r
17589 LLL                  SSS                        TTT                                                                     \r
17590 LLL                     SSSSSSSSS               TTT                                                                     \r
17591 LLL                     SSSSSSSSS               TTT                                                                     \r
17592 LLL                     SSSSSSSSS               TTT                                                                     \r
17593 LLL                              SSS            TTT                                                                     \r
17594 LLL                              SSS            TTT                                                                     \r
17595 LLL                              SSS            TTT                                                                     \r
17596 LLL                              SSS            TTT                                                                     \r
17597 LLL                              SSS            TTT                                                                     \r
17598 LLL                              SSS            TTT                                                                     \r
17599 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17600 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17601 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17602 \r
17603 \r
17604 \r
17605 \r
17606 Request created: 24-April-1978  11:23:08\r
17607 File: DSKB1 :SYSMAK.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:25
17608 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2195 \r
17609 File will be deleted after printing\r
17610 \f\rSYSMAK - MAKE NEW SYSTEM WITH THE OLD                 PAGE 1\r
17611         7-21-65\r
17612 \r
17613                                 00010           XLIST\r
17614                                 01930          LIST\r
17615 \r\fSYSMAK - MAKE NEW SYSTEM WITH THE OLD                 PAGE 7\r
17616         7-21-65\r
17617 \r
17618 \r
17619                                 00010   TITLE SYSMAK - MAKE NEW SYSTEM WITH THE OLD\r
17620                                 00020   SUBTTL 7-21-65\r
17621                                 00030   ,SYSMAK ASSUMES AN EXISTING SYSTEM WITH A LOADER IN CORE FOR JOB 1\r
17622                                 00040   ,AND HIGHEST EMORY ADDRESS IN REAL 37.  TO CREATE A NEW SYSTEM, SET\r
17623                                 00050   ,37 AS DESIRED, LOAD NEW SYSTEM (WITHOUT GOING INTO EXECUTION), AND\r
17624                                 00060   ,START AT REAL 62.  THE COMPUTE WILL HALT AFTER THE NEW SYSTEM\r
17625                                 00070   ,HAS BEEN BLOCKED DOWN.  TO START, PRESS CONTINUE OR START AT REAL\r
17626                                 00080   ,60.  EXEC DDT (IF LOADED WITH THE NEW SYSTEM) STARTS AT REAL 141.\r
17627                                 00090   ;FROM REL. LOC. 30 ON UP IS BLOCKED DOWN\r
17628 \r
17629                                 00110   ,WHEN LOADING A NEW SYSTEM, LOAD SYSINI FIRST.\r
17630                                 00120   ;SYSINI CONTAINS A DISPATCH TABLE  DOCUMENTED TO BE AT LOC. 60\r
17631                                 00130   ;ALSO LOAD IOINI LAST SINCE IT CONTAINS SOME ONCE ONLY CODE AT END\r
17632                                 00140   ;THEN LOAD SYSMAK FOLLOWED BY DDT(EXEC)\r
17633                                 00150   ;BE SURE THAT LOC SYSSIZ(SIZ OF SYSTEM) IS GREATER THAN\r
17634                                 00160   ;LAST LOC IN SYSMAK BEFORE STARTING TO LOAD.\r
17635                                 00170   ;LOC SYSSIZ IS IN LOWER CORE AND MAY HAVE TO BE PATCHED\r
17636                                 00180   ;USING CONSOLE SWITCHES.\r
17637 \r
17638                                 00200   INTERNAL SYSMAK,MAKEND\r
17639                                 00210   EXTERNAL JBTADR,JBTAD1\r
17640 \r
17641         000000' 200040  000000* 00230   SYSMAK:   MOVE 1,JBTAD1         ;LOADER BLOCK ADDRESS FROM JOB ADDRESS\r
17642         000001' 200301  000002  00240             MOVE 6,2(1)           ;LOADER OFFSET\r
17643         000002' 271301  000000  00250             ADDI 6,(1)            ;BLOCK ADDRESS+OFFSET\r
17644         000003' 200101  000006  00260             MOVE 2,6(1);          SYSMBOL TABLE POINTER:  -N,L = LOWEST AD\r
17645         000004' 271001  000002  00270             ADDI 2(1)\r
17646         000005' 564140  000002  00280             HLRO 3,2\r
17647         000006' 213000  000003  00290             MOVNS 3       ;N = SYMBOL TABLE LENGTH\r
17648         000007' 200200  000037  00300             MOVE 4,DDTMEM         ;MEMORY SIZE(LOC 37)\r
17649         000010' 202206  000037  00310             MOVEM 4,DDTMEM(6)     ;STORE IN NEW DDTMEM\r
17650         000011' 275200  000200  00320             SUBI 4,200            ;ROOM FOR DECDUMP\r
17651         000012' 202206  000036  00330             MOVEM 4,DDTSYM(6)     ;ALSO STORE IN WHAT WILL BECOME DDTSYM\r
17652         000013' 200240  000002  00340             MOVE 5,2  ;LEAVES ROOM FOR DECDMP\r
17653         000014' 270240  000003  00350             ADD 5,3\r
17654         000015' 504240  000003  00360             HRL 5,3   ;C(5):=N,L+N\r
17655         000016' 274200  000005  00370             SUB 4,5\r
17656         000017' 553000  000004  00380             HRRZS 4   ;C(4):=0,C(37)-200-(L+N)\r
17657         000020' 270100  000004  00390             ADD 2,4   ;C(2):=-N,C(37)-200-N\r
17658         000021' 202105  000000  00400             MOVEM 2,(5)\r
17659         000022' 542200  000023' 00410             HRRM 4,.+1\r
17660         000023' 262245  000000  00420             POP 5,(5) ;MOVE SYMOBOL TABLE TO TOP OF MEMORY\r
17661         000024' 325240  000023' 00430             JUMPGE 5,.-1\r
17662         000025' 200400  000034' 00440             MOVE 10,[BLT 3,(2)]\r
17663         000026' 200440  000035' 00450             MOVE 11,[JRST 4,]\r
17664         000027' 541140  000030  00460             HRRI 3,30\r
17665         000030' 505146  000030  00470             HRLI 3,30(6)          ;C(3):=LOADER OFFSET+LOADER BLOCK ADDRE\r
17666         000031' 550101  000006  00480             HRRZ 2,6(1)           ;C(2):=LOWEST LOCATION IN SYMBOL TABLE\r
17667         000032' 540441  000000  00490             HRR 11,(1)            ;C(11):=JRST 4,START ADDRESS\r
17668         000033' 254000  000010  00500             JRST 10       ;MOVE SYSTEM TO BOTTOM OF MEMORY AND HALT\r
17669 \r
17670         000034'                 00520             LIT\r
17671 \r\fSYSMAK - MAKE NEW SYSTEM WITH THE OLD                 PAGE 1\r
17672         7-21-65\r
17673 \r
17674         000034' 251142  000000\r
17675         000035' 254200  000000\r
17676 \r
17677         000036'                 00540   MAKEND:   END,\r
17678 \r
17679 NO ERRORS DETECTED\r
17680 \r
17681 PROGRAM BREAK IS 000036\r
17682 \r
17683 8K CORE USED\r
17684 \r\fSYSMAK - MAKE NEW SYSTEM WITH THE OLD                 PAGE 2\r
17685         SYMBOL TABLE\r
17686 \r
17687                 000162  \r
17688 A               000000  INT\r
17689 AC1             000015  INT\r
17690 AC2             000016  INT\r
17691 AC3             000017  INT\r
17692 AL              000001  INT\r
17693 ASSCON          400000  INT\r
17694 ASSPRG          200000  INT\r
17695 B               000014  INT\r
17696 BUFPNT          000012  INT\r
17697 BUFWRD          000013  INT\r
17698 CLOSB           002000  INT\r
17699 CLSIN           000002  INT\r
17700 CLSOUT          000001  INT\r
17701 D               000017  INT\r
17702 DAT             000005  INT\r
17703 DCL             000001  INT\r
17704 DCW             020000  INT\r
17705 DDI             000007  INT\r
17706 DDO             000006  INT\r
17707 DDTMEM          000037  INT\r
17708 DDTSYM          000036  INT\r
17709 DEN             000004  INT\r
17710 DEVADR          000007  INT\r
17711 DEVBUF          000006  INT\r
17712 DEVCHR          000001  INT\r
17713 DEVCTR          000011  INT\r
17714 DEVDAT          000006  INT\r
17715 DEVIAD          000007  INT\r
17716 DEVIOS          000002  INT\r
17717 DEVLOG          000005  INT\r
17718 DEVMOD          000004  INT\r
17719 DEVNAM          000000  INT\r
17720 DEVOAD          000010  INT\r
17721 DEVPTR          000010  INT\r
17722 DEVSER          000003  INT\r
17723 DGF             000012  INT\r
17724 DIN             000003  INT\r
17725 DLK             000005  INT\r
17726 DOU             000002  INT\r
17727 DR              000016  INT\r
17728 DRL             000000  INT\r
17729 DSI             000011  INT\r
17730 DSO             000010  INT\r
17731 DTW             040000  INT\r
17732 DVAVAL          000040  INT\r
17733 DVCDR           100000  INT\r
17734 DVDIR           000004  INT\r
17735 DVDIRI          400000  INT\r
17736 DVIN            000002  INT\r
17737 DVLPT           040000  INT\r
17738 DVMTA           000020  INT\r
17739 DVOUT           000001  INT\r
17740 \r\fSYSMAK - MAKE NEW SYSTEM WITH THE OLD                 PAGE 2-1\r
17741         SYMBOL TABLE\r
17742 \r
17743 DVTTY           000010  INT\r
17744 ENTRB           020000  INT\r
17745 I               000010  INT\r
17746 IB              000013  INT\r
17747 IBUFB           200000  INT\r
17748 INITB           400000  INT\r
17749 INPB            010000  INT\r
17750 IO              000020  INT\r
17751 IOACT           010000  INT\r
17752 IOBEG           000002  INT\r
17753 IOBKTL          040000  INT\r
17754 IOCON           000040  INT\r
17755 IODEND          020000  INT\r
17756 IODERR          200000  INT\r
17757 IODISC          400000  INT\r
17758 IODONE          400000  INT\r
17759 IODTER          100000  INT\r
17760 IOEND           000040  INT\r
17761 IOFST           000004  INT\r
17762 IOIMPM          400000  INT\r
17763 IONRCK          000100  INT\r
17764 IORDEL          000100  INT\r
17765 IORET           000020  INT\r
17766 IOS             000000  INT\r
17767 IOSTRT          000010  INT\r
17768 IOUSE           400000  INT\r
17769 IOW             000001  INT\r
17770 IOWC            000020  INT\r
17771 IOWS            400000  INT\r
17772 ITEM            000004  INT\r
17773 JBFADR          000000  INT\r
17774 JBFCTR          000002  INT\r
17775 JBFPTR          000001  INT\r
17776 JBTAD1          000000' EXT\r
17777 JBTADR          000000  EXT\r
17778 JBUF            000005  INT\r
17779 JDAT            000011  INT\r
17780 JERR            002000  INT\r
17781 JIOW            100000  INT\r
17782 JNA             004000  INT\r
17783 LOOKB           040000  INT\r
17784 MAKEND          000036' INT\r
17785 MTW             010000  INT\r
17786 OBUFB           100000  INT\r
17787 OUTPB           004000  INT\r
17788 PDP             000003  INT\r
17789 PICHN           000100  INT\r
17790 PROG            000007  INT\r
17791 RUN             200000  INT\r
17792 RUNABL          204000  INT\r
17793 SYSMAK          000000' INT\r
17794 TAC             000001  INT\r
17795 TAC1            000002  INT\r
17796 \r\fSYSMAK - MAKE NEW SYSTEM WITH THE OLD                 PAGE 2-2\r
17797         SYMBOL TABLE\r
17798 \r
17799 TEM             000010  INT\r
17800 TTYATC          020000  INT\r
17801 TTYUSE          010000  INT\r
17802 USRMOD          010000  INT\r
17803 UUO             000014  INT\r
17804 \fMMM         MMM         AAAAAAAAA            CCCCCCCCCCCC      RRRRRRRRRRRR            OOOOOOOOO                        \r
17805 MMM         MMM         AAAAAAAAA            CCCCCCCCCCCC      RRRRRRRRRRRR            OOOOOOOOO                        \r
17806 MMM         MMM         AAAAAAAAA            CCCCCCCCCCCC      RRRRRRRRRRRR            OOOOOOOOO                        \r
17807 MMMMMM   MMMMMM      AAA         AAA      CCC                  RRR         RRR      OOO         OOO                     \r
17808 MMMMMM   MMMMMM      AAA         AAA      CCC                  RRR         RRR      OOO         OOO                     \r
17809 MMMMMM   MMMMMM      AAA         AAA      CCC                  RRR         RRR      OOO         OOO                     \r
17810 MMM   MMM   MMM      AAA         AAA      CCC                  RRR         RRR      OOO         OOO                     \r
17811 MMM   MMM   MMM      AAA         AAA      CCC                  RRR         RRR      OOO         OOO                     \r
17812 MMM   MMM   MMM      AAA         AAA      CCC                  RRR         RRR      OOO         OOO                     \r
17813 MMM         MMM      AAA         AAA      CCC                  RRRRRRRRRRRR         OOO         OOO                     \r
17814 MMM         MMM      AAA         AAA      CCC                  RRRRRRRRRRRR         OOO         OOO                     \r
17815 MMM         MMM      AAA         AAA      CCC                  RRRRRRRRRRRR         OOO         OOO                     \r
17816 MMM         MMM      AAAAAAAAAAAAAAA      CCC                  RRR   RRR            OOO         OOO                     \r
17817 MMM         MMM      AAAAAAAAAAAAAAA      CCC                  RRR   RRR            OOO         OOO                     \r
17818 MMM         MMM      AAAAAAAAAAAAAAA      CCC                  RRR   RRR            OOO         OOO                     \r
17819 MMM         MMM      AAA         AAA      CCC                  RRR      RRR         OOO         OOO                     \r
17820 MMM         MMM      AAA         AAA      CCC                  RRR      RRR         OOO         OOO                     \r
17821 MMM         MMM      AAA         AAA      CCC                  RRR      RRR         OOO         OOO                     \r
17822 MMM         MMM      AAA         AAA         CCCCCCCCCCCC      RRR         RRR         OOOOOOOOO                        \r
17823 MMM         MMM      AAA         AAA         CCCCCCCCCCCC      RRR         RRR         OOOOOOOOO                        \r
17824 MMM         MMM      AAA         AAA         CCCCCCCCCCCC      RRR         RRR         OOOOOOOOO                        \r
17825 \r
17826 \r
17827 \r
17828 \r
17829 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17830 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17831 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
17832 LLL                  SSS                        TTT                                                                     \r
17833 LLL                  SSS                        TTT                                                                     \r
17834 LLL                  SSS                        TTT                                                                     \r
17835 LLL                  SSS                        TTT                                                                     \r
17836 LLL                  SSS                        TTT                                                                     \r
17837 LLL                  SSS                        TTT                                                                     \r
17838 LLL                     SSSSSSSSS               TTT                                                                     \r
17839 LLL                     SSSSSSSSS               TTT                                                                     \r
17840 LLL                     SSSSSSSSS               TTT                                                                     \r
17841 LLL                              SSS            TTT                                                                     \r
17842 LLL                              SSS            TTT                                                                     \r
17843 LLL                              SSS            TTT                                                                     \r
17844 LLL                              SSS            TTT                                                                     \r
17845 LLL                              SSS            TTT                                                                     \r
17846 LLL                              SSS            TTT                                                                     \r
17847 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17848 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17849 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
17850 \r
17851 \r
17852 \r
17853 \r
17854 Request created: 24-April-1978  11:23:08\r
17855 File: DSKB1 :MACRO .LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:26
17856 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:2189 \r
17857 File will be deleted after printing\r
17858 \f\rMACRO V.10                     PAGE 1\r
17859         RPG/CMF/JF/PMH/DMN      7-SEPT-71\r
17860 \r
17861                                 ;STANFORD ASSEMBLY:\r
17862                         000170          LPTWID==^D120   ;120 CHARACTERS/LINE ON LPT AT STANFORD\r
17863                                 TITLE   MACRO V.10      \r
17864                                 SUBTTL   RPG/CMF/JF/PMH/DMN     7-SEPT-71\r
17865                                 ;COPYRIGHT 1968,1969,1970,1971, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.\r
17866 \r
17867                         000010          VMACRO==10              ;VERSION NUMBER\r
17868                         000000          VUPDATE==0              ;DEC UPDATE LEVEL\r
17869                         000000          VEDIT==0                ;EDIT NUMBER\r
17870                         000000          VCUSTOM==0              ;NON-DEC UPDATE LEVEL\r
17871 \r
17872 \r
17873         000137                          LOC     <JOBVER==137>\r
17874         000137  001000  000000          <VCUSTOM>B2+<VMACRO>B11+<VUPDATE>B17+VEDIT\r
17875         000000'                         RELOC\r
17876                                         MLON\r
17877 \r
17878                                 COMMENT *       ASSEMBLY FEATURE SWITCHES (ACTION WHEN NON-ZERO)\r
17879 \r
17880                                         SWITCHES ON (NON-ZERO) IN DEC VERSION\r
17881                                 CCLSW           GIVES RAPID PROGRAM GENERATION FEATURE\r
17882                                 FTDISK          GIVES DISK FEATURES\r
17883                                 RENTSW          ASSEMBLE REENTRANT PROGRAMS\r
17884 \r
17885                                         SWITCHES OFF (ZERO) IN DEC VERSION\r
17886                                 LNSSW           GIVES LNS VERSION\r
17887                                 IIISW           GIVES III FEATURES\r
17888                                 OPHSH           GIVES HASH SEARCH OF OPCODES\r
17889                                 *\r
17890 \r\fMACRO V.10                     PAGE 2\r
17891         DEFAULT ASSEMBLY SWITCH SETTINGS\r
17892 \r
17893                                 SUBTTL  DEFAULT ASSEMBLY SWITCH SETTINGS\r
17894 \r
17895 \r
17896                                 IFNDEF RENTSW,<RENTSW==0>\r
17897 \r
17898                                 IFNDEF LNSSW,<LNSSW==0>\r
17899                                 IFN LNSSW,<FTDISK==0>\r
17900 \r
17901                                 IFNDEF CCLSW,<CCLSW==1>\r
17902                         000001  IFN CCLSW,<FTDISK==1>\r
17903 \r
17904                                 IFNDEF UNIVR,<UNIVR==0>\r
17905 \r
17906                                 IFNDEF FTDISK,<FTDISK==0>\r
17907 \r
17908                                 IFNDEF IIISW,<IIISW==0>\r
17909 \r
17910                                 IFNDEF OPHSH,<OPHSH==0>\r
17911 \r
17912 \r\fMACRO V.10                     PAGE 3\r
17913         OTHER PARAMETERS\r
17914 \r
17915                                 SUBTTL  OTHER PARAMETERS\r
17916 \r
17917                         000062  .PDP==  ^D50            ;BASIC PUSH-DOWN POINTER\r
17918                                 IFNDEF LPTWID,<LPTWID==^D132>   ;DEFAULT WIDTH OF PRINTER\r
17919                         000170  .LPTWD==8*<LPTWID/8>            ;USEFUL WIDTH IN MAIN LISTING\r
17920                         000130  .CPL==  .LPTWD-^D32             ;WIDTH AVAIABLE FOR TEXT WHEN\r
17921                                                                 ;BINARY IS IN HALFWORD FORMAT\r
17922                         000067  .LPP==^D55      ;LINES/PAGE\r
17923                         000050  .STP==  ^D40            ;STOW SIZE\r
17924                         000120  .TBUF== ^D80            ;TITLE BUFFER\r
17925                         000120  .SBUF== ^D80            ;SUB-TITLE BUFFER\r
17926                         000024  .IFBLK==^D20            ;IFIDN COMPARISON BLOCK SIZE\r
17927                         000022  .R1B==^D18\r
17928                         000012  .UNIV==^D10             ;NUMBER OF UNIVERSAL DEFINITIONS\r
17929                         000004  .LEAF==4                ;SIZE OF BLOCKS IN MACRO TREE\r
17930 \r
17931                         000001  NCOLS==1                ;NUMBER OF COLUMNS IN SYMBOL TABLE\r
17932                                 IFN CCLSW,<IFNDEF CTLSIZ,<CTLSIZ==^D200>>\r
17933                                 IFN OPHSH,<IFNDEF PRIME,<PRIME==^D701>>\r
17934                                 IFNDEF NUMBUF,<\r
17935                                 IFE LNSSW,<NUMBUF==2    ;NUMBER OF INPUT BUFFERS>\r
17936                                 IFN LNSSW,<NUMBUF==4    ;DOUBLE BUFFER FOR DOUBLE SIZE DEVICES>\r
17937                                 >\r
17938 \r
17939                                 EXTERN  JOBREL,JOBSYM,JOBDDT,JOBFF,JOBAPR,JOBSA\r
17940                                 IFN CCLSW,<     EXTERN  JOBERR>\r
17941 \r
17942                                         SALL            ;SUPPRESS ALL MACROS\r
17943 \r
17944                                 ;SOME ASCII CHARACTERS\r
17945 \r
17946                         000011  HT==11\r
17947                         000012  LF==12\r
17948                         000013  VT==13\r
17949                         000014  FF==14\r
17950                         000015  CR==15\r
17951                         000033  EOL==33\r
17952 \r\fMACRO V.10                     PAGE 4\r
17953         OTHER PARAMETERS\r
17954 \r
17955                                                         ;ACCUMULATORS\r
17956                         000000  AC0==   0\r
17957                         000001  AC1=    AC0+1\r
17958                         000002  AC2=    AC1+1\r
17959                         000003  SDEL=   3               ;SEARCH INCREMENT\r
17960                         000004  SX=     SDEL+1          ;SEARCH INDEX\r
17961                         000005  ARG=    5               ;ARGUMENT\r
17962                         000006  V=      6               ;VALUE\r
17963                         000007  C=      7               ;CURRENT CHARACTER\r
17964                         000010  CS=     C+1             ;CHARACTER STATUS BITS\r
17965                         000011  RC=     11              ;RELOCATION BITS\r
17966                         000012  MWP=    12              ;MACRO WRITE POINTER\r
17967                         000013  MRP=    13              ;MACRO READ POINTER\r
17968                         000014  IO=     14              ;IO REGISTER (LEFT)\r
17969                         000014  ER==    IO              ;ERROR REGISTER (RIGHT)\r
17970                         000015  FR=     15              ;FLAG REGISTER (LEFT)\r
17971                         000015  RX==    FR              ;CURRENT RADIX (RIGHT)\r
17972                         000016  MP=     16              ;MACRO PUSHDOWN POINTER\r
17973                         000017  PP=     17              ;BASIC PUSHDOWN POINTER\r
17974 \r
17975                         000003  %OP==   3\r
17976                         000005  %MAC==  5\r
17977                         000002  %DSYM== 2\r
17978                         000001  %SYM==  1\r
17979                         000006  %DMAC== %MAC+1\r
17980 \r
17981                                 OPDEF   RESET   [CALLI   0]\r
17982                                 OPDEF   SETDDT  [CALLI   2]\r
17983                                 OPDEF   DDTOUT  [CALLI   3]\r
17984                                 OPDEF   DEVCHR  [CALLI   4]\r
17985                                 OPDEF   WAIT    [MTAPE   0]\r
17986                                 OPDEF   CORE    [CALLI  11]\r
17987                                 OPDEF   EXIT    [CALLI  12]\r
17988                                 OPDEF   UTPCLR  [CALLI  13]\r
17989                                 OPDEF   DATE    [CALLI  14]\r
17990                                 OPDEF   APRENB  [CALLI  16]\r
17991                                 OPDEF   MSTIME  [CALLI  23]\r
17992                                 OPDEF   PJOB    [CALLI  30]\r
17993                                 OPDEF   RUN     [CALLI  35]\r
17994                                 OPDEF   TMPCOR  [CALLI  44]\r
17995 \r
17996 \r\fMACRO V.10                     PAGE 5\r
17997         OTHER PARAMETERS\r
17998 \r
17999                                                         ;FR  FLAG REGISTER (FR/RX)\r
18000                         000001  IOSCR== 000001          ;NO CR AFTER LINE\r
18001                         000004  MTAPSW==000004          ;MAG TAPE\r
18002                         000010  ERRQSW==000010          ;IGNORE Q ERRORS\r
18003                         000020  LOADSW==000020          ;END OF PASS1 & NO EOF YET\r
18004                         000040  DCFSW== 000040          ;DECIMAL FRACTION\r
18005                         000100  RIM1SW==000100          ;RIM10 MODE\r
18006                         000200  NEGSW== 000200          ;NEGATIVE ATOM\r
18007                         000400  RIMSW== 000400          ;RIM OUTPUT\r
18008                         001000  PNCHSW==001000          ;RIM/BIN OUTPUT WANTED\r
18009                         002000  CREFSW==002000\r
18010                         004000  R1BSW== 004000          ;RIM10 BINARY OUTPUT\r
18011                         010000  TMPSW== 010000          ;EVALUATE CURRENT ATOM\r
18012                         020000  INDSW== 020000          ;INDIRECT ADDRESSING WANTED\r
18013                         040000  RADXSW==040000          ;RADIX ERROR SWITCH\r
18014                         100000  FSNSW== 100000          ;NON BLANK FIELD SEEN\r
18015                         200000  MWLFLG==200000          ;ON FOR DON'T ALLOW MULTI-WORD LITERALS\r
18016                         400000  P1==    400000          ;PASS1\r
18017 \r
18018                                                         ;IO FLAG REGISTER (IO/ER)\r
18019                         400000  FLDSW== 400000          ;ADDRESS FIELD\r
18020                         200000  IOMSTR==200000\r
18021                         100000  ARPGSW==100000          ;ALLOW RAPID PROGRAM GENERATION\r
18022                         040000  IOPROG==040000          ;SUPRESS LISTING (LIST/XLIST PSEUDO OP)\r
18023                         020000  NUMSW== 020000\r
18024                         010000  IOMAC== 010000          ;MACRO EXPANSION IN PROGRESS\r
18025                         004000  IOPALL==004000          ;SUPRESS LISTING OF MACRO EXPANSIONS\r
18026                         002000  IONCRF==002000          ;SUPRESS OUTPUT OF CREF INFORMATION\r
18027                         001000  CRPGSW==001000          ;CURRENTLY IN PROGRESS ON RPG\r
18028                         000400  IOCREF==000400          ;WE ARE NOW OUTPUTTING CREF INFO\r
18029                         000200  IOENDL==000200          ;BEEN TO STOUT\r
18030                         000100  IOPAGE==000100\r
18031                         000040  DEFCRS==000040          ;THIS IS A DEFINING OCCURANCE (MACROS)\r
18032                         000020  IOIOPF==000020          ;IOP INSTRUCTION SEEN\r
18033                         000010  MFLSW== 000010          ;MULTI-FILE MODE,PRGEND SEEN\r
18034                         000004  IORPTC==000004          ;REPEAT CURRENT CHARACTER\r
18035                         000002  IOTLSN==000002          ;TITLE SEEN\r
18036                         000001  IOSALL==000001          ;SUPPRESS MACRO LISTING EVEN IF BINARY IS GENERATED\r
18037 \r
18038                                 OPDEF   JUMP1   [JUMPL  FR,  ]  ;JUMP IF PASS 1\r
18039                                 OPDEF   JUMP2   [JUMPGE FR,  ]  ;JUMP IF PASS 2\r
18040 \r
18041                                 OPDEF   JUMPOC  [JUMPGE IO,  ]  ;JUMP IF IN OP-CODE FIELD\r
18042                                 OPDEF   JUMPAD  [JUMPL  IO,  ]  ;JUMP IF IN ADDRESS FIELD\r
18043 \r
18044                                 OPDEF   JUMPCM  [JUMPL  CS,  ]  ;JUMP IF CURRENT CHAR IS COMMA\r
18045                                 OPDEF   JUMPNC  [JUMPGE CS,  ]  ;JUMP IF CURRENT CHAR IS NON-COMMA\r
18046 \r
18047 \r\fMACRO V.10                     PAGE 6\r
18048         OTHER PARAMETERS\r
18049 \r
18050                                                         ;ER ERROR REGISTERS (IO/ER)\r
18051                         000020  ERRM==  000020          ;MULTIPLY DEFINED SYMBOL\r
18052                         000040  ERRE==  000040          ;ILLEGAL USE OF EXTERNAL\r
18053                         000100  ERRP==  000100          ;PHASE DISCREPANCY\r
18054                         000200  ERRO==  000200          ;UNDEFINED OP CODE\r
18055                         000400  ERRN==  000400          ;NUMBER ERROR\r
18056                         001000  ERRV==  001000          ;VALUE PREVIOUSLY UNDEFINED\r
18057                         002000  ERRU==  002000          ;UNDEFINED SYMBOL\r
18058                         004000  ERRR==  004000          ;RELOCATION ERROR\r
18059                         010000  ERRL==  010000          ;LITERAL ERROR\r
18060                         020000  ERRD==  020000          ;REFERENCE TO MULTIPLY DEFINED SYMBOL\r
18061                         040000  ERRA==  040000          ;PECULIAR ARGUMENT\r
18062                         100000  ERRX==  100000          ;MACRO DEFINITION ERROR\r
18063                         200000  ERRQ==  200000          ;QUESTIONABLE, NON-FATAL ERROR\r
18064                         777760  ERRORS==777760\r
18065                         000002  LPTSW== 000002\r
18066                         000001  TTYSW== 000001\r
18067 \r
18068                                                         ;SYMBOL TABLE FLAGS\r
18069                         400000  SYMF==  400000          ;SYMBOL\r
18070                         200000  TAGF==  200000          ;TAG\r
18071                         100000  NOOUTF==100000          ;NO DDT OUTPUT WFW\r
18072                         040000  SYNF==  040000          ;SYNONYM\r
18073                         020000  MACF==  SYNF_-1         ;MACRO\r
18074                         010000  OPDF==  SYNF_-2         ;OPDEF\r
18075                         004000  PNTF==  004000          ;"VALUE" IN SYMBOL TBL IS PNTR TO 36BIT VALUE\r
18076                         002000  UNDF==  002000          ;UNDEFINED\r
18077                         001000  EXTF==  001000          ;EXTERNAL\r
18078                         000400  INTF==  000400          ;INTERNAL\r
18079                         000200  ENTF==  000200          ;ENTRY\r
18080                         000100  VARF==  000100          ;VARIABLE\r
18081                         000020  MDFF==  000020          ;MULTIPLY DEFINED\r
18082                         000010  SPTR==  000010          ;SPECIAL EXTERNAL POINTER\r
18083                         000004  SUPRBT==000004          ;SUPRESS OUTPUT TO DDT\r
18084                         000002  LELF==  000002          ;LEFT HAND RELOCATABLE\r
18085                         000001  RELF==  000001          ;RIGHT HAND RELOCATABLE\r
18086 \r
18087                         200000  LITF==  200000          ;FLAG FOR PSEUDO-OPS INVALID IN LIT'S\r
18088                         100000  ADDF==  100000          ;FLAG FOR PSEUDO-OPS INVALID IN ADDRESSES\r
18089 \r
18090                         200000  TNODE== 200000          ;TERMINAL NODE FOR EVALEX\r
18091 \r\fMACRO V.10                     PAGE 7\r
18092         RUN UUO\r
18093 \r
18094                                 SUBTTL  RUN UUO\r
18095 \r
18096                                 IFN CCLSW,<\r
18097                                 ;THIS CODE MUST BE IN FIRST 1K TO ALLOW MAXIMUM SPACE\r
18098                                 ; FOR OVERWRITING\r
18099                                 ; 74 APPEARS BECAUSE ONLY LOCS 74 AND BEYOND ARE SAVED BY "SAVE"\r
18100 \r
18101         000000' 000000  000016' IFN CCLSW,<NUNCOM:      IOWD    0,INHERE        ;WHERE TO DO IO\r
18102         000001' 000000  000000          0                       ;TERMINATE COMMAND LIST\r
18103         000002' 056040  000000' NUNGO2: IN      BIN,NUNCOM      ;READ FILE\r
18104         000003' 254000  000011'         JRST    NUNGO3          ;THERE ARE NO ERRORS\r
18105         000004' 047400  000003  NUNERR: DDTOUT  NUNPNT,         ;COMPLAIN\r
18106         000005' 047000  000012          EXIT                    ;GIVE UP\r
18107         000006' 376311  147226  NUNERM: ASCIZ   /?LINKAGE ERROR/\r
18108         000007' 406170  520212\r
18109         000010' 512451  751000\r
18110         000011' 332500  000056' NUNGO3: SKIPE   12,INHERE+133-74 ;LOOK AT JOBCOR\r
18111                                                                 ;DOES JOB WANT TO RUN IN MORE CORE?\r
18112         000012' 317500  000000*         CAMG    12,JOBREL       ;MORE CORE THAN CURRENTLY USED?\r
18113         000013' 254000  000000          JRST    NUNGO4          ;NO, GO BLT PROG\r
18114         000014' 047500  000011          CORE    12,             ;ASK FOR MORE CORE\r
18115         000015' 254000  000004'         JRST    NUNERR          ;NOT AVAILABLE\r
18116         000016' 254000  000000          JRST    NUNGO4          ;GO BLT PROGRAM\r
18117         000017'                 INHERE:\r
18118 \r\fMACRO V.10                     PAGE 8\r
18119         RUN UUO\r
18120 \r
18121                                 ;THIS CODE MUST BE IN FIRST 1K\r
18122         000017' 326040  000021' NUNSET: JUMPN   ACDEV,.+2               ;DEVICE SPECIFIED?\r
18123         000020' 205040  637163          MOVSI   ACDEV,(SIXBIT /SYS/)    ;NO, USE SYSTEM DEVICE\r
18124         000021' 326140  000023'         JUMPN   ACEXT,.+2               ;EXT SPECIFIED?\r
18125         000022' 205140  634166          MOVSI   ACEXT,(SIXBIT /SAV/)    ;NO, USE "SAV"\r
18126         000023' 202040  012556'         MOVEM   ACDEV,NUNDEV            ;DEVICE NAME TO USE\r
18127         000024' 050040  012555'         OPEN    BIN,NUNINI              ;INIT THE DEVICE\r
18128         000025' 254000  007700'         JRST    EINIT                   ;ERROR\r
18129         000026' 202100  012663'         MOVEM   ACFILE,NUNDIR           ;IS THE FILE AVAILABLE?\r
18130         000027' 512140  012664'         HLLZM   ACEXT,NUNDIR+1          ;STASH EXTENSION\r
18131         000030' 402000  012666'         SETZM   NUNDIR+3                ;CLEAR PPN\r
18132         000031' 076040  012663'         LOOKUP  BIN,NUNDIR              ;LOOK FOR FILE\r
18133                                         JRST    [HLRZ   ACEXT,NUNDIR+1          ;WAS EXTENSION "SAV"?\r
18134                                                 CAIE    ACEXT,(SIXBIT /SAV/)    ;...\r
18135                                                 JRST    ERRCF                   ;GO COMPLAIN\r
18136                                                 MOVSI   ACEXT,(SIXBIT /DMP/)    ;TRY "DMP" EXTENSION\r
18137         000032' 254000  014043'                 JRST    .-3     ]               ;TRA -3,4\r
18138         000033' 260740  000066'         PUSHJ PP,DELETE         ;COMMAND FILE\r
18139         000034' 200640  012663'         MOVE 15,NUNDIR          ;GET THE NAME\r
18140         000035' 047640  000043          CALLI 15,43     ;TELL SYSTEM "SETNAM"\r
18141         000036' 564640  012666'         HLRO    15,NUNDIR+3     ;GET WORD COUNT\r
18142         000037' 506640  000000'         HRLM    15,NUNCOM       ;STASH COUNT\r
18143         000040' 213000  000015          MOVNS   15              ;NEGATIVE COUNT\r
18144         000041' 201715  000073          MOVEI   16,73(15)       ;WHERE TO STOP BLT\r
18145         000042' 271640  000017'         ADDI    15,INHERE       ;HOW BIG TO MAKE CORE\r
18146         000043' 435640  001777          IORI    15,1777         ;AN EVEN MULTIPLE OF 1K\r
18147         000044' 047640  000011          CORE    15,             ;ASK TS EXEC FOR CORE\r
18148                                         JRST    [HRROI RC,[SIXBIT /NOT ENUF CORE FOR LINKAGE@/]\r
18149         000045' 254000  014055'                 JRST ERRFIN     ];GO COMPLAIN\r
18150         000046' 205440  000054'         MOVSI   NUNTOP,NUNAC\r
18151         000047' 251440  000011          BLT     NUNTOP,NUNTOP   ;SET ACS\r
18152         000050' 540200  000016          HRR     NUNBLT,16       ;...\r
18153         000051' 607600  001000          TLNN    IO,CRPGSW       ;WAS RPG IN PROGRESS?\r
18154         000052' 621300  577000          TLZ     NUNAOS,577000   ;NO, DON'T MAKE NEXT AN RPG\r
18155         000053' 254000  000002'         JRST    NUNGO2\r
18156 \r
18157         000000                  NUNAC:  PHASE   0\r
18158         000054' 200500  000017' NUNGO4: MOVE    NUNLAC,INHERE+74-74     ;SETUP FOR NEW DDT\r
18159         000055' 047500  000002          SETDDT  NUNLAC,         ;...\r
18160                                 INTERN JOBS41\r
18161                         000122  JOBS41=122              ;LOADER WILL GIVE MUL. DEF. GLOBAL IF CHANGED\r
18162 \r
18163                                 EXTERN JOB41\r
18164         000056' 200500  000045'         MOVE    NUNLAC,JOBS41+INHERE-74 ;RESTORE LOC 41\r
18165         000057' 202500  000000*         MOVEM   NUNLAC,JOB41    ;...\r
18166         000060' 251440  000000  NUNBLT: BLT     NUNTOP,.-.      ;MOVE PRGM TO WHERE IT BELONGS\r
18167         000061' 047000  000000          RESET                   ;RESET ALL I/O\r
18168         000062' 350040  000000* NUNAOS: AOS     1,JOBSA         ;GET STARTING ADDR FOR RPG\r
18169         000063' 254001  000000          JRST    0(1)            ;GET ON WITH THE GAME\r
18170         000064' 000000  000006' NUNPNT: NUNERM                  ;ERROR MESSAGE POINTER\r
18171         000065' 000020' 000075  NUNTOP: XWD     INHERE+1,75\r
18172                         000012  NUNLAC=.\r
18173         000066'                         DEPHASE\r
18174 \r\fMACRO V.10                     PAGE 8-1\r
18175         RUN UUO\r
18176 \r
18177                                 >   \r
18178                                         LIST\r
18179 \r
18180 \r\fMACRO V.10                     PAGE 9\r
18181         RUN UUO\r
18182 \r
18183         000066' 550000  013420' DELETE: HRRZ    EXTMP           ;IF THE EXTENSION\r
18184         000067' 302000  645560          CAIE    (SIXBIT/TMP/)   ;IS  .TMP\r
18185         000070' 263740  000000          POPJ    PP,             ;RETURN.\r
18186         000071' 070200  000000          CLOSE   CTL2,           ;DELETE\r
18187         000072' 403200  000005          SETZB   4,5             ;THE COMMAND FILE.\r
18188         000073' 403300  000007          SETZB   6,7\r
18189         000074' 055200  000004          RENAME  CTL2,4          ;\r
18190         000075' 255000  000000          JFCL\r
18191         000076' 263740  000000          POPJ    PP,\r
18192                                 >\r
18193 \r\fMACRO V.10                     PAGE 10\r
18194         START ASSEMBLING\r
18195 \r
18196                                 SUBTTL  START ASSEMBLING\r
18197 \r
18198         000077' 260740  003267' ASSEMB: PUSHJ   PP,INZ          ;INITIALIZE FOR PASS\r
18199         000100' 200000  014057'         MOVE    [ASCII /.MAIN/]\r
18200         000101' 202000  013230'         MOVEM   TBUF\r
18201         000102' 201000  013057'         MOVEI   SBUF\r
18202         000103' 542000  013100'         HRRM    SUBTTX\r
18203 \r
18204         000104' 260740  001406' ASSEM1: PUSHJ   PP,CHARAC       ;TEST FOR FORM FEED\r
18205         000105' 335000  013002'         SKIPGE  LIMBO           ;CRLF FLAG?\r
18206         000106' 254000  000104'         JRST    ASSEM1          ;YES ,IGNORE LF\r
18207         000107' 306340  000014          CAIN    C,14\r
18208         000110' 332000  012544'         SKIPE   SEQNO\r
18209         000111' 254000  000115'         JRST    ASSEM2\r
18210         000112' 260740  010410'         PUSHJ   PP,OUTFF1\r
18211         000113' 260740  001765'         PUSHJ   PP,OUTLI\r
18212         000114' 254000  000104'         JRST    ASSEM1\r
18213 \r
18214         000115' 350000  013377' ASSEM2: AOS     TAGINC\r
18215         000116' 306340  000134          CAIN    C,"\"           ;BACK-SLASH?\r
18216         000117' 625600  010000          TLZA    IO,IOMAC        ;YES, LIST IF IN MACRO\r
18217         000120' 661600  000004          TLO     IO,IORPTC\r
18218         000121' 260740  000125'         PUSHJ   PP,STMNT        ;OFF WE GO\r
18219         000122' 627600  000200          TLZN    IO,IOENDL       ;WAS STOUT PRE-EMPTED?\r
18220         000123' 260740  000230'         PUSHJ   PP,STOUT        ;NO, POLISH OFF LINE\r
18221         000124' 254000  000104'         JRST    ASSEM1\r
18222 \r
18223 \r\fMACRO V.10                     PAGE 11\r
18224         STATEMENT PROCESSOR\r
18225 \r
18226                                 SUBTTL  STATEMENT PROCESSOR\r
18227 \r
18228         000125' 621640  120000  STMNT:  TLZ     FR,INDSW!FSNSW\r
18229         000126' 625600  400000          TLZA    IO,FLDSW\r
18230         000127' 260740  000244' STMNT1: PUSHJ   PP,LABEL\r
18231         000130' 260740  000325' STMNT2: PUSHJ   PP,ATOM         ;GET THE FIRST ATOM\r
18232         000131' 306340  000035          CAIN    C,35            ;"="?\r
18233         000132' 254000  004023'         JRST    ASSIGN          ;YES\r
18234         000133' 306340  000032          CAIN    C,32            ;":"?\r
18235         000134' 254000  000127'         JRST    STMNT1          ;YES\r
18236         000135' 321600  000200'         JUMPAD  STMNT7          ;NUMERIC EXPRESSION\r
18237         000136' 326000  000146'         JUMPN   AC0,STMN2A      ;JUMP IF NON NULL FIELD\r
18238         000137' 336000  013321'         SKIPN   LITLVL          ;ALLOW COMMA IN LITERALS\r
18239         000140' 302340  000014          CAIE    C,14            ;NULL, COMMA?\r
18240         000141' 306340  000033          CAIN    C,EOL           ;OR END OF LINE?\r
18241         000142' 263740  000000          POPJ    PP,             ;YES,EXIT\r
18242         000143' 306340  000135          CAIN    C,"]"           ;CLOSING LITERAL?\r
18243         000144' 263740  000000          POPJ    PP,             ;YES\r
18244         000145' 254000  000201'         JRST    STMNT9          ;NO,AT LEAST SKIP ALL THIS NONSENSE\r
18245 \r
18246         000146' 322340  000150' STMN2A: JUMPE   C,.+2\r
18247         000147' 661600  000004          TLO     IO,IORPTC\r
18248         000150' 260740  012173'         PUSHJ   PP,MSRCH        ;SEARCH FOR MACRO/OPDEF/SYN\r
18249         000151' 254000  000157'         JRST    STMNT3          ;NOT FOUND, TRY OP CODE\r
18250         000152' 135140  014060'         LDB     SDEL,[POINT 3,ARG,5]\r
18251         000153' 322140  003311'         JUMPE   SDEL,ERRAX      ;ERROR IF NO FLAGS\r
18252         000154' 362140  004346'         SOJE    SDEL,OPD1       ;OPDEF IF 1\r
18253         000155' 362140  005511'         SOJE    SDEL,CALLM      ;MACRO IF 2\r
18254         000156' 254000  000161'         JRST    STMNT4          ;SYNONYM, PROCESS WITH OP-CODES\r
18255 \r
18256         000157' 260740  010470' STMNT3: PUSHJ   PP,OPTSCH       ;SEARCH OP CODE TABLE\r
18257         000160' 254000  000167'         JRST    STMNT5          ;NOT FOUND\r
18258         000161' 510000  000006  STMNT4: HLLZ    AC0,V           ;PUT CODE IN AC0\r
18259         000162' 620300  100000          TRZ     V,ADDF          ;CLEAR ADDRESS NON-VALID FLAG\r
18260         000163' 622300  200000          TRZE    V,LITF          ;VALID IN LITERAL?\r
18261         000164' 336000  013321'         SKIPN   LITLVL          ;NO, ARE WE IN A LITERAL?\r
18262         000165' 254006  000000          JRST    0(V)            ;NO, GO TO APPROPRIATE PROCESSOR\r
18263         000166' 263740  000000          POPJ    PP,             ;YES,EXIT\r
18264 \r
18265         000167' 260740  012210' STMNT5: PUSHJ   PP,SSRCH        ;TRY SYMBOLS\r
18266         000170' 254000  000207'         JRST    STMNT8          ;NOT FOUND\r
18267         000171' 603240  003000          TLNE    ARG,EXTF!UNDF   ;EXTERNAL OR UNDEFINED?\r
18268         000172' 254000  000200'         JRST    STMNT7          ;YES, PROCESS IN EVALEX\r
18269         000173' 607440  777776          TLNN RC,-2              ;CHECK FOR EXTERNAL\r
18270         000174' 602440  777776          TRNE RC,-2\r
18271         000175' 254000  000200'         JRST STMNT7\r
18272         000176' 200000  000006          MOVE    AC0,V           ;FOUND, PUT VALUE IN AC0\r
18273         000177' 661600  020000          TLO     IO,NUMSW        ;FLAG AS NUMERIC\r
18274         000200' 621600  000004  STMNT7: TLZ     IO,IORPTC\r
18275         000201' 260740  001056' STMNT9: PUSHJ   PP,EVALHA       ;EVALUATE EXPRESSION\r
18276         000202' 603640  100000          TLNE    FR,FSNSW        ;FIELD SEEN?\r
18277         000203' 254000  002665'         JRST    STOW            ;YES,STOW THE CODE AND EXIT\r
18278         000204' 302340  000075          CAIE    C,"]"-40        ;CLOSING LITERAL?\r
18279 \r\fMACRO V.10                     PAGE 11-1\r
18280         STATEMENT PROCESSOR\r
18281 \r
18282         000205' 660600  200000          TRO     ER,ERRQ         ;NO, GIVE "Q" ERROR\r
18283         000206' 263740  000000          POPJ    PP,             ;EXIT\r
18284 \r
18285 \r\fMACRO V.10                     PAGE 12\r
18286         STATEMENT PROCESSOR\r
18287 \r
18288                                 STMNT8:repeat 0,<MOVEI  V,0             ;ALWAYS START SCAN WITH 0\r
18289                                         CAIL    V,CALNTH        ;END OF TABLE?\r
18290                                         JRST    STMN8C          ;YES, TRY TTCALLS\r
18291                                         CAME    AC0,CALTBL(V)   ;FOUND IT?\r
18292                                         AOJA    V,.-3           ;NO,TRY AGAIN\r
18293                                         SUBI    V,NEGCAL        ;CALLI'S START AT -1\r
18294                                         HRLI    V,(CALLI)       ;PUT IN UUO>\r
18295         000207' 205240  010000  STMN8D: MOVSI   ARG,OPDF        ;SET FLAG FOR OPDEF\r
18296         000210' 260740  012366' STMN8B: PUSHJ   PP,INSERT       ;PUT OPDEF IN TABLE\r
18297         000211' 254000  004350'         JRST    OPD             ;AND TREAT AS OPDEF\r
18298 \r
18299         000212' 400300  000000  STMN8C: SETZ    V,              ;START WITH ZERO\r
18300         000213' 301300  000016          CAIL    V,TTCLTH        ;END OF TABLE?\r
18301         000214' 254000  000222'         JRST    STMN8A          ;YES, ERROR\r
18302         000215' 312006  012155'         CAME    AC0,TTCTBL(V)   ;MATCH?\r
18303         000216' 344300  000213'         AOJA    V,.-3           ;NO, KEEP TRYING\r
18304         000217' 242300  000005          LSH     V,5             ;PUT IN AC FIELD (RIGHT HALF)\r
18305         000220' 515306  051000          HRLZI   V,<(TTCALL)>(V) ;PUT UUO IN LEFT HALF\r
18306         000221' 254000  000207'         JRST    STMN8D          ;SET OPDEF FLAG\r
18307 \r
18308         000222' 403300  000011  STMN8A: SETZB   V,RC            ;CLEAR VALUE AND RELOCATION\r
18309         000223' 660600  000200          TRO     ER,ERRO         ;FLAG AS UNDEFINED OP-CODE\r
18310         000224' 321640  004350'         JUMP1   OPD             ;TREAT AS STANDARD OP ON PASS1\r
18311         000225' 205240  013000          MOVSI   ARG,OPDF!UNDF!EXTF      ;SET A FEW FLAGS\r
18312         000226' 254000  000210'         JRST    STMN8B          ;TO FORCE OUT A MESSAGE\r
18313 \r
18314                                                 ;STATEMENT OUT PASSES REMAINDER OF LINE (CMNT)\r
18315                                                         ;UNTIL A LINE TERMINATOR IS SEEN.\r
18316         000227' 665600  000204  STOUTS: TLOA    IO,IOENDL!IORPTC\r
18317         000230' 661600  000004  STOUT:  TLO     IO,IORPTC\r
18318         000231' 260740  004452'         PUSHJ   PP,BYPAS1\r
18319         000232' 306340  000014          CAIN    C,14            ;COMMA?\r
18320         000233' 331000  013104'         SKIPL   STPX            ;YES, ERROR IF CODE STORED\r
18321         000234' 306340  000033          CAIN    C,EOL\r
18322         000235' 665600  000004          TLOA    IO,IORPTC\r
18323         000236' 660600  200000          TRO     ER,ERRQ\r
18324         000237' 260740  001406' STOUT1: PUSHJ   PP,CHARAC\r
18325         000240' 307340  000015          CAIG    C,CR\r
18326         000241' 307340  000011          CAIG    C,HT\r
18327         000242' 254000  000237'         JRST    STOUT1\r
18328         000243' 254000  001547'         JRST    OUTLIN          ;OUTPUT THE LINE (BIN AND LST)\r
18329 \r\fMACRO V.10                     PAGE 13\r
18330         LABEL PROCESSOR\r
18331 \r
18332                                         SUBTTL  LABEL PROCESSOR\r
18333         \r
18334         000244' 321600  000310' LABEL:  JUMPAD  LABEL4          ;COMPARE IF NON-SYMBOLIC\r
18335         000245' 322000  000312'         JUMPE   AC0,LABEL5      ;ERROR IF BLANK\r
18336         000246' 661600  000040          TLO IO,DEFCRS           ;THIS IS A DEFINITION\r
18337         000247' 260740  012210'         PUSHJ   PP,SSRCH        ;SEARCH FOR OPERAND\r
18338         000250' 205240  602000          MOVSI   ARG,SYMF!UNDF!TAGF      ;NOT FOUND\r
18339         000251' 607240  001000          TLNN    ARG,EXTF        ;OPERAND FOUND (SKIP EXIT)\r
18340         000252' 254000  000257'         JRST    LABEL0\r
18341         000253' 321640  000304'         JUMP1   LABEL3          ;ERROR ON PASS1\r
18342         000254' 607240  002000          TLNN    ARG,UNDF        ;UNDEFINED ON PASS1\r
18343         000255' 254000  000304'         JRST    LABEL3          ;NO, FLAG ERROR\r
18344         000256' 621240  005000          TLZ     ARG,EXTF!PNTF   ;TURN OFF EXT FLAG NOW\r
18345         000257' 627240  002100  LABEL0: TLZN    ARG,UNDF!VARF   ;WAS IT PREVIOUSLY DEFINED?\r
18346         000260' 254000  000301'         JRST    LABEL2          ;YES, CHECK EQUALITY\r
18347         000261' 200300  013325'         MOVE    V,LOCA  ;WFW\r
18348         000262' 200440  013332'         MOVE    RC,MODA\r
18349         000263' 661240  200000          TLO     ARG,TAGF\r
18350         000264' 260740  006335'         PUSHJ   PP,PEEK         ;GET NEXT CHAR.\r
18351         000265' 302340  000072          CAIE    C,":"           ;SPECIAL CHECK FOR  ::\r
18352         000266' 254000  000272'         JRST    LABEL1          ;NO MATCH\r
18353         000267' 661240  000400          TLO     ARG,INTF        ;MAKE IT INTERNAL\r
18354         000270' 260740  001354'         PUSHJ   PP,GETCHR       ;PROCESS NEXT CHAR.\r
18355         000271' 260740  006335'         PUSHJ   PP,PEEK         ;PREVIEW NEXT CHAR.\r
18356         000272' 302340  000041  LABEL1: CAIE    C,"!"           ;HALF-KILL SIGN\r
18357         000273' 254000  000276'         JRST    LABEL6          ;NO\r
18358         000274' 661240  100000          TLO     ARG,NOOUTF      ;YES, SUPPRESS IT\r
18359         000275' 260740  001354'         PUSHJ   PP,GETCHR       ;AND GET RID OF IT\r
18360         000276' 202000  012541' LABEL6: MOVEM   AC0,TAG         ;SAVE FOR PASS 1 ERRORS\r
18361         000277' 513000  013377'         HLLZS   TAGINC          ;ZERO INCREMENT\r
18362         000300' 254000  012366'         JRST    INSERT          ;INSERT/UPDATE AND EXIT\r
18363 \r
18364         000301' 526300  013324' LABEL2: HRLOM   V,LOCBLK        ;SAVE LIST LOCATION\r
18365         000302' 316300  013325'         CAMN    V,LOCA          ;DOES IT COMPARE WITH PREVIOUS? WFW\r
18366         000303' 312440  013332'         CAME    RC,MODA\r
18367         000304' 665240  000020  LABEL3: TLOA    ARG,MDFF        ;NO, FLAG MULTIPLY DEFINED AND SKIP\r
18368         000305' 254000  000314'         JRST    LABEL7          ;YES, GET RID OF EXTRA CHARS.\r
18369         000306' 660600  000020          TRO     ER,ERRM         ;FLAG MULTIPLY DEFINED ERROR \r
18370         000307' 254000  012467'         JRST    UPDATE          ;UPDATE AND EXIT\r
18371 \r
18372         000310' 316000  013325' LABEL4: CAMN    AC0,LOCA        ;DO THEY COMPARE?\r
18373         000311' 312440  013332'         CAME    RC,MODA\r
18374         000312' 660600  000100  LABEL5: TRO     ER,ERRP         ;NO, FLAG PHASE ERROR\r
18375         000313' 263740  000000          POPJ    PP,\r
18376 \r
18377         000314' 332000  013321' LABEL7: SKIPE   LITLVL          ;LABEL IN A LITERAL?\r
18378         000315' 202000  013322'         MOVEM   AC0,LITLBL      ;YES, SAVE LABEL NAME FOR LATER\r
18379         000316' 260740  006335'         PUSHJ   PP,PEEK         ;INSPECT A CHAR.\r
18380         000317' 306340  000072          CAIN    C,":"           ;COLON?\r
18381         000320' 260740  001354'         PUSHJ   PP,GETCHR       ;YES, DISPOSE OF IT\r
18382         000321' 260740  006335'         PUSHJ   PP,PEEK         ;EXAMINE ONE MORE CHAR.\r
18383         000322' 306340  000041          CAIN    C,"!"           ;EXCLAMATION?\r
18384         000323' 254000  001354'         JRST    GETCHR          ;YES, INDEED\r
18385 \r\fMACRO V.10                     PAGE 14\r
18386         LABEL PROCESSOR\r
18387 \r
18388         000324' 263740  000000          POPJ    PP,\r
18389 \r\fMACRO V.10                     PAGE 15\r
18390         ATOM PROCESSOR\r
18391 \r
18392                                 SUBTTL  ATOM PROCESSOR\r
18393         000325' 260740  000354' ATOM:   PUSHJ   PP,CELL         ;GET FIRST CELL\r
18394         000326' 603600  020000          TLNE    IO,NUMSW        ;IF NON-NUMERIC\r
18395         000327' 302340  000042  ATOM1:  CAIE    C,42            ;OR NOT A BINARY SHIFT,\r
18396         000330' 263740  000000          POPJ    PP,             ;EXIT\r
18397 \r
18398         000331' 261740  000000          PUSH    PP,AC0          ;STACK REGISTERS, ITS A BINARY SHIFT\r
18399         000332' 261740  000001          PUSH    PP,AC1\r
18400         000333' 261740  000011          PUSH    PP,RC\r
18401         000334' 261740  000015          PUSH    PP,RX\r
18402         000335' 541640  000012          HRRI    RX,^D10         ;COMPUTE SHIFT RADIX 10\r
18403         000336' 260740  000353'         PUSHJ   PP,CELLSF       ;GET SHIFT\r
18404         000337' 200240  000011          MOVE    ARG,RC          ;SAVE RELOCATION\r
18405         000340' 262740  000015          POP     PP,RX           ;RESTORE REGISTERS\r
18406         000341' 262740  000011          POP     PP,RC\r
18407         000342' 262740  000001          POP     PP,AC1\r
18408         000343' 210200  000000          MOVN    SX,AC0          ;USE NEGATIVE OF SHIFT\r
18409         000344' 262740  000000          POP     PP,AC0\r
18410         000345' 326240  000432'         JUMPN   ARG,NUMER2      ;IF NOT ABSOLUTE\r
18411         000346' 607600  020000          TLNN    IO,NUMSW        ;AND NUMERIC,\r
18412         000347' 254000  000432'         JRST    NUMER2          ;FLAG ERROR\r
18413         000350' 246004  000043          LSHC    AC0,^D35(SX)\r
18414         000351' 242444  000043          LSH     RC,^D35(SX)\r
18415         000352' 254000  000327'         JRST    ATOM1           ;TEST FOR ANOTHER\r
18416 \r\fMACRO V.10                     PAGE 16\r
18417         ATOM PROCESSOR\r
18418 \r
18419         000353' 661600  400000  CELLSF: TLO     IO,FLDSW\r
18420         000354' 403000  000011  CELL:   SETZB   AC0,RC          ;CLEAR RESULT AND RELOCATION\r
18421         000355' 403040  000002          SETZB   AC1,AC2         ;CLEAR WORK REGISTERS\r
18422         000356' 202740  013342'         MOVEM   PP,PPTEMP       ;SAVE PUSHDOWN POINTER\r
18423         000357' 621600  020000          TLZ     IO,NUMSW\r
18424         000360' 625640  040240          TLZA    FR,NEGSW!DCFSW!RADXSW\r
18425 \r
18426         000361' 661600  400000  CELL1:  TLO     IO,FLDSW\r
18427         000362' 260740  004452'         PUSHJ   PP,BYPASS\r
18428         000363' 135300  014061'         LDB     V,[POINT 4,CSTAT(C),14] ;GET CODE\r
18429         000364' 256006  000365'         XCT     .+1(V)          ;EXECUTE, INDEX VIA BITS 11,12,13,14 OF CSTAT TABLE\r
18430         000365' 254000  000361'         JRST    CELL1           ;0; BLANK, (TAB OR "+")\r
18431         000366' 254000  000400'         JRST    LETTER          ;1; LETTER  ] $ % ( ) , ; >\r
18432         000367' 641640  000200          TLC     FR,NEGSW        ;2; "-"\r
18433         000370' 661640  020000          TLO     FR,INDSW        ;3; "@"\r
18434         000371' 254000  000710'         JRST    NUM1            ;4; NUMERIC   0 - 9\r
18435         000372' 254000  000653'         JRST    ANGLB           ;5; "<"\r
18436         000373' 254000  000550'         JRST    SQBRK           ;6; "["\r
18437         000374' 254000  000447'         JRST    QUOTES          ;7; ""","'" \r
18438         000375' 254000  000514'         JRST    QUAL            ;10; "^"\r
18439         000376' 254000  000671'         JRST    PERIOD          ;11; "."\r
18440         000377' 664600  200000          TROA    ER,ERRQ         ;12; ERROR, FLAG AND TREAT AS DELIMITER\r
18441                                                                 ;12;    ! # & * / : = ? \ _\r
18442 \r\fMACRO V.10                     PAGE 17\r
18443         ATOM PROCESSOR\r
18444 \r
18445         000400' 665100  440600  LETTER: TLOA    AC2,(POINT 6,AC0,)      ;SET BYTE POINTER\r
18446         000401' 260740  001354' LETTE1: PUSHJ   PP,GETCHR       ;GET CHARACTER\r
18447         000402' 607400  000006          TLNN    CS,6            ;ALPHA-NUMERIC?\r
18448         000403' 254000  000407'         JRST    LETTE3          ;NO,TEST FOR VARIABLE\r
18449         000404' 603100  770000          TLNE    AC2,770000      ;STORE ONLY SIX BYTES\r
18450         000405' 136340  000002  LETTE2: IDPB    C,AC2           ;RETURN FROM PERIOD\r
18451         000406' 254000  000401'         JRST    LETTE1\r
18452 \r
18453         000407' 302340  000003  LETTE3: CAIE    C,03            ;"#"?\r
18454         000410' 263740  000000          POPJ    PP,\r
18455         000411' 322000  000446'         JUMPE   AC0,POPOUT      ;TEST FOR NULL\r
18456         000412' 260740  006335'         PUSHJ   PP,PEEK         ;PEEK AT NEXT CHAR.\r
18457         000413' 306340  000043          CAIN    C,"#"           ;IS IT 2ND #?\r
18458         000414' 254000  000426'         JRST    LETTE4          ;YES, THEN IT'S AN EXTERN\r
18459         000415' 661600  000040          TLO     IO,DEFCRS\r
18460         000416' 260740  012210'         PUSHJ   PP,SSRCH        ;YES, SEARCH FOR SYMBOL (OPERAND)\r
18461         000417' 205240  402000          MOVSI   ARG,SYMF!UNDF   ;NOT FOUND, FLAGAS UNDEFINED SYM.\r
18462         000420' 607240  002000          TLNN    ARG,UNDF        ;UNDEFINED?\r
18463         000421' 254000  001354'         JRST    GETCHR          ;NO, GET NEXT CHAR AND RETURN\r
18464         000422' 661240  000100          TLO     ARG,VARF        ;YES, FLAG AS A VARIABLE\r
18465         000423' 660600  002000          TRO     ER,ERRU         ;SET UNDEFINED ERROR FLAG\r
18466         000424' 260740  012365'         PUSHJ   PP,INSERZ       ;INSERT IT WITH A ZERO VALUE\r
18467         000425' 254000  000433'         JRST    GETDEL\r
18468 \r
18469         000426' 260740  001354' LETTE4: PUSHJ   PP,GETCHR       ;AND SCAN PAST IT\r
18470         000427' 260740  001354'         PUSHJ   PP,GETCHR       ;GET RID OF #\r
18471         000430' 254000  003717'         JRST    EXTER1          ;PUT IN SYMBOL TABLE\r
18472 \r
18473         000431' 403000  000011  NUMER1: SETZB   AC0,RC          ;RETURN ZERO\r
18474         000432' 660600  000400  NUMER2: TRO     ER,ERRN         ;FLAG ERROR\r
18475 \r
18476         000433' 260740  004452' GETDEL: PUSHJ   PP,BYPASS\r
18477         000434' 322340  000433' GETDE1: JUMPE   C,.-1\r
18478         000435' 201040  000000          MOVEI   AC1,0\r
18479         000436' 661600  420000  GETDE3: TLO     IO,NUMSW!FLDSW  ;FLAG NUMERIC\r
18480         000437' 607640  000200          TLNN    FR,NEGSW        ;IS ATOM NEGATIVE?\r
18481         000440' 263740  000000          POPJ    PP,             ;NO, EXIT\r
18482         000441' 322040  000444'         JUMPE   AC1,GETDE2\r
18483         000442' 213000  000001          MOVNS   AC1\r
18484         000443' 654000  014062'         TDCA    AC0,[-1]\r
18485         000444' 213000  000000  GETDE2: MOVNS   AC0             ;YES, NEGATE VALUE\r
18486         000445' 213000  000011          MOVNS   RC              ;AND RELOCATION\r
18487         000446' 263740  000000  POPOUT: POPJ    PP,             ;EXIT\r
18488 \r\fMACRO V.10                     PAGE 18\r
18489         ATOM PROCESSOR\r
18490 \r
18491         000447' 302340  000007  QUOTES: CAIE    C,"'"-40        ;IS IT  "'"\r
18492         000450' 254000  000456'         JRST    QUOTE           ;NO MUST BE """\r
18493         000451' 254000  000500'         JRST    SQUOTE          ;YES\r
18494 \r
18495         000452' 603000  376000  QUOTE0: TLNE    AC0,376000      ;5 CHARACTERS STORED ALREADY?\r
18496         000453' 660600  200000          TRO     ER,ERRQ         ;YES, GIVE WARNING\r
18497         000454' 240000  000007          ASH     AC0,7\r
18498         000455' 434000  000007          IOR     AC0,C\r
18499         000456' 260740  001406' QUOTE:  PUSHJ   PP,CHARAC       ;GET 7-BIT ASCII\r
18500         000457' 307340  000015          CAIG    C,15            ;TEST FOR LF, VT, FF OR CR\r
18501         000460' 305340  000012          CAIGE   C,12\r
18502         000461' 254000  000463'         JRST    .+2             ;NO, SO ALL IS WELL\r
18503         000462' 254000  000472'         JRST    QUOTE2          ;ESCAPE WITH Q ERROR\r
18504         000463' 302340  000042          CAIE    C,42\r
18505         000464' 254000  000452'         JRST    QUOTE0\r
18506         000465' 260740  006335'         PUSHJ   PP,PEEK         ;LOOK AT NEXT CHAR.\r
18507         000466' 302340  000042          CAIE    C,42\r
18508         000467' 254000  000473'         JRST    QUOTE1          ;RESTORE REPEAT LEVEL AND QUIT\r
18509         000470' 260740  001406'         PUSHJ   PP,CHARAC       ;GET NEXT CHAR.\r
18510         000471' 254000  000452'         JRST    QUOTE0          ;USE IT\r
18511 \r
18512         000472' 660600  200000  QUOTE2: TRO     ER,ERRQ         ;SET Q ERROR\r
18513         000473' 254000  000433' QUOTE1: JRST    GETDEL\r
18514 \r
18515         000474' 603000  770000  SQUOT0: TLNE    AC0,770000      ;SIX CHARS. STORED ALREADY ?\r
18516         000475' 660600  200000          TRO     ER,ERRQ         ;YES\r
18517         000476' 242000  000006          LSH     AC0,6\r
18518         000477' 435007  777740          IORI    AC0,-40(C)      ;OR IN SIXBIT CHAR.\r
18519 \r
18520         000500' 260740  001406' SQUOTE: PUSHJ   PP,CHARAC\r
18521         000501' 307340  000015          CAIG    C,CR\r
18522         000502' 305340  000012          CAIGE   C,LF\r
18523         000503' 254000  000505'         JRST    .+2\r
18524         000504' 254000  000473'         JRST    QUOTE1\r
18525         000505' 302340  000047          CAIE    C,"'"\r
18526         000506' 254000  000474'         JRST    SQUOT0\r
18527         000507' 260740  006335'         PUSHJ   PP,PEEK\r
18528         000510' 302340  000047          CAIE    C,"'"\r
18529         000511' 254000  000473'         JRST    QUOTE1\r
18530         000512' 260740  001406'         PUSHJ   PP,CHARAC\r
18531         000513' 254000  000474'         JRST    SQUOT0\r
18532 \r
18533 \r\fMACRO V.10                     PAGE 19\r
18534         ATOM PROCESSOR\r
18535 \r
18536         000514' 260740  004452' QUAL:   PUSHJ   PP,BYPAS1       ;SKIP BLANKS, GET NEXT CHARACTER\r
18537         000515' 306340  000042          CAIN    C,42            ;"B"?\r
18538         000516' 254000  000531'         JRST    QUAL2           ;YES, RADIX=D2\r
18539         000517' 306340  000057          CAIN    C,57            ;"O"?\r
18540         000520' 254000  000530'         JRST    QUAL8           ;YES, RADIX=D8\r
18541         000521' 306340  000046          CAIN    C,46            ;"F"?\r
18542         000522' 254000  000704'         JRST    NUMDF           ;YES, PROCESS DECIMAL FRACTION\r
18543         000523' 306340  000054          CAIN    C,54            ;"L"?\r
18544         000524' 254000  000541'         JRST    QUALL           ;YES\r
18545         000525' 302340  000044          CAIE    C,44            ;"D"?\r
18546         000526' 254000  000431'         JRST    NUMER1          ;NO, FLAG NUMERIC ERROR\r
18547         000527' 271100  000002          ADDI    AC2,2\r
18548         000530' 271100  000006  QUAL8:  ADDI    AC2,6\r
18549         000531' 271100  000002  QUAL2:  ADDI    AC2,2\r
18550         000532' 261740  000015          PUSH    PP,RX\r
18551         000533' 540640  000002          HRR     RX,AC2\r
18552         000534' 260740  000353'         PUSHJ   PP,CELLSF\r
18553         000535' 262740  000015  QUAL2A: POP     PP,RX\r
18554         000536' 607600  020000          TLNN    IO,NUMSW\r
18555         000537' 254000  000431'         JRST    NUMER1\r
18556         000540' 254000  000434'         JRST    GETDE1\r
18557 \r
18558         000541' 261740  000015  QUALL:  PUSH    PP,FR\r
18559         000542' 260740  000353'         PUSHJ   PP,CELLSF\r
18560         000543' 200100  000000          MOVE    AC2,AC0\r
18561         000544' 201000  000044          MOVEI   AC0,^D36\r
18562         000545' 322100  000535'         JUMPE   AC2,QUAL2A\r
18563         000546' 242100  777777          LSH     AC2,-1\r
18564         000547' 364000  000545'         SOJA    AC0,.-2\r
18565 \r\fMACRO V.10                     PAGE 20\r
18566         LITERAL PROCESSOR\r
18567 \r
18568                                 SUBTTL  LITERAL PROCESSOR\r
18569 \r
18570         000550' 261740  000015  SQBRK:  PUSH    PP,FR\r
18571         000551' 261740  013270'         PUSH    PP,EXTPNT       ;ALLOW EXTERN TO PRECEDE LIT IN XWD\r
18572         000552' 402000  013270'         SETZM   EXTPNT\r
18573         000553' 332000  013321'         SKIPE LITLVL    ;SAVE SEQNO AND PAGE IF NOT IN LIT ALREADY\r
18574         000554' 254000  000561'         JRST SQB5\r
18575         000555' 200340  013415'         MOVE C,SEQNO2\r
18576         000556' 202340  013304'         MOVEM C,LITSEQ\r
18577         000557' 200340  013414'         MOVE C,PAGENO\r
18578         000560' 202340  013303'         MOVEM C,LITPG\r
18579         000561' 265100  002723' SQB5:   JSP     AC2,SVSTOW\r
18580         000562' 260740  000125' SQB3:   PUSHJ   PP,STMNT\r
18581         000563' 306340  000075          CAIN C,75       ;CHECK FOR ]\r
18582         000564' 254000  000620'         JRST SQB1\r
18583         000565' 661600  000004          TLO IO,IORPTC\r
18584         000566' 603640  200000          TLNE    FR,MWLFLG       ;CALL IT ] IF NOT MULTI-WORD FLAG\r
18585         000567' 254000  000621'         JRST    SQB2            ;BUT REPEAT LAST CHARACTER\r
18586         000570' 260740  004452'         PUSHJ PP,BYPAS1\r
18587         000571' 306340  000033          CAIN C,EOL\r
18588         000572' 665600  000004          TLOA IO,IORPTC\r
18589         000573' 660600  200000          TRO ER,ERRQ\r
18590         000574' 260740  001406' SQB4:   PUSHJ PP,CHARAC\r
18591         000575' 306340  000073          CAIN    C,";"           ;COMMENT?\r
18592         000576' 254000  000613'         JRST    SQB6            ;YES, IGNORE SQUARE BRACKETS\r
18593         000577' 306340  000135          CAIN    C,"]"           ;LOOK FOR TERMINAL SQB\r
18594         000600' 606600  777760          TRNN    ER,ERRORS       ;IN CASE OF ERROR IN LITERAL\r
18595         000601' 254000  000603'         JRST    .+2             ;NO ALL IS WELL\r
18596         000602' 254000  000620'         JRST    SQB1            ;FINISH THE LITERAL NOW!!\r
18597         000603' 307340  000015          CAIG    C,CR            ;LOOK FOR END OF LINE\r
18598         000604' 306340  000011          CAIN    C,HT\r
18599         000605' 254000  000574'         JRST    SQB4\r
18600         000606' 260740  002011' SQB4A:  PUSHJ   PP,OUTIML       ;DUMP\r
18601         000607' 260740  001406'         PUSHJ   PP,CHARAC       ;GET ANOTHER CHAR.\r
18602         000610' 331000  013002'         SKIPL   LIMBO           ;CRLF FLAG\r
18603         000611' 661600  000004          TLO     IO,IORPTC       ;NO REPEAT\r
18604         000612' 254000  000562'         JRST    SQB3\r
18605 \r
18606         000613' 260740  001406' SQB6:   PUSHJ   PP,CHARAC       ;GET A CHARACTER\r
18607         000614' 307340  000015          CAIG    C,CR\r
18608         000615' 306340  000011          CAIN    C,HT            ;LOOK FOR END OF LINE CHAR.\r
18609         000616' 254000  000613'         JRST    SQB6            ;NOT YET\r
18610         000617' 254000  000606'         JRST    SQB4A           ;GOT IT\r
18611 \r
18612         000620' 621600  000004  SQB1:   TLZ     IO,IORPTC\r
18613         000621' 260740  001264' SQB2:   PUSHJ   PP,STOLIT\r
18614         000622' 265100  002731'         JSP     AC2,GTSTOW\r
18615         000623' 332000  013322'         SKIPE   LITLBL          ;NEED TO FIXUP A LABEL?\r
18616         000624' 260740  000632'         PUSHJ   PP,RELBLE       ;YES, USE LOC OF LITERAL\r
18617         000625' 262740  013270'         POP     PP,EXTPNT\r
18618         000626' 262740  000015          POP     PP,FR\r
18619         000627' 332000  013321'         SKIPE   LITLVL          ;WERE WE NESTED?\r
18620         000630' 321640  000432'         JUMP1   NUMER2          ;YES, FORCE ERROR IF PASS 1\r
18621 \r\fMACRO V.10                     PAGE 20-1\r
18622         LITERAL PROCESSOR\r
18623 \r
18624         000631' 254000  000433'         JRST    GETDEL\r
18625 \r
18626         000632' 261740  000000  RELBLE: PUSH    PP,AC0          ;SAVE LOCATION COUNTER\r
18627         000633' 261740  000011          PUSH    PP,RC           ;AND RELOCATION\r
18628         000634' 200000  013322'         MOVE    AC0,LITLBL      ;SYMBOL WE NEED\r
18629         000635' 402000  013322'         SETZM   LITLBL          ;ZERO INDICATOR\r
18630         000636' 260740  012210'         PUSHJ   PP,SSRCH        ;SEARCH FOR OPERAND\r
18631         000637' 254000  000650'         JRST    RELBL1          ;SHOULD NEVER HAPPEN\r
18632         000640' 607240  200000          TLNN    ARG,TAGF        ;IT BETTER BE A LABEL\r
18633         000641' 254000  000650'         JRST    RELBL1          ;IT WASN'T , GIVE UP BEFORE SOME HARM IS DONE\r
18634         000642' 621240  007000          TLZ     ARG,UNDF!EXTF!PNTF      ;CLEAR FLAGS NOW\r
18635         000643' 262740  000011          POP     PP,RC           ;GET LITERAL RELOCATION\r
18636         000644' 200317  000000          MOVE    V,(PP)          ;GET VALUE (LOC COUNTER)\r
18637         000645' 260740  012467'         PUSHJ   PP,UPDATE       ;UPDATE VALUE\r
18638         000646' 262740  000000          POP     PP,AC0          ;RESTORE LITERAL COUNT\r
18639         000647' 263740  000000          POPJ    PP,             ;RETURN\r
18640         \r
18641         000650' 262740  000011  RELBL1: POP     PP,RC           ;RESTORE RC\r
18642         000651' 262740  000000          POP     PP,AC0  ;AND AC0\r
18643         000652' 263740  000000          POPJ    PP,             ;JUST RETURN\r
18644 \r\fMACRO V.10                     PAGE 21\r
18645         LITERAL PROCESSOR\r
18646 \r
18647         000653' 261740  000015  ANGLB:  PUSH    PP,FR\r
18648         000654' 621640  020000          TLZ     FR,INDSW\r
18649         000655' 260740  000325'         PUSHJ   PP,ATOM\r
18650         000656' 607600  020000          TLNN    IO,NUMSW\r
18651         000657' 302340  000035          CAIE    C,35\r
18652         000660' 254000  000664'         JRST    ANGLB1\r
18653         000661' 260740  004037'         PUSHJ   PP,ASSIG1\r
18654         000662' 200000  000006          MOVE    AC0,V\r
18655         000663' 254000  000665'         JRST    ANGLB2\r
18656 \r
18657         000664' 260740  001056' ANGLB1: PUSHJ   PP,EVALHA\r
18658         000665' 262740  000015  ANGLB2: POP     PP,FR\r
18659         000666' 302340  000036          CAIE    C,36\r
18660         000667' 660600  000400          TRO     ER,ERRN\r
18661         000670' 254000  000433'         JRST    GETDEL\r
18662 \r
18663         000671' 260740  001354' PERIOD: PUSHJ   PP,GETCHR       ;LOOK AT NEXT CHARACTER\r
18664         000672' 607400  000002          TLNN    CS,2            ;ALPHABETIC?\r
18665         000673' 254000  000677'         JRST    PERNUM          ;NO, TEST NUMERIC\r
18666         000674' 205000  160000          MOVSI   AC0,(SIXBIT /./)        ;YES, PUT PERIOD IN AC0\r
18667         000675' 205100  360600          MOVSI   AC2,(POINT 6,AC0,5)     ;SET BYTE POINTER\r
18668         000676' 254000  000405'         JRST    LETTE2          ;AND TREAT AS SYMBOL\r
18669 \r
18670         000677' 603400  000004  PERNUM: TLNE    CS,4            ;IS IT A NUMBER\r
18671         000700' 254000  000736'         JRST    NUM32           ;YES\r
18672         000701' 200000  013325'         MOVE    AC0,LOCA        ;NO. CURRENT LOC SYMBOL (.)\r
18673         000702' 200440  013332'         MOVE    RC,MODA         ;SET TO CURRENT ASSEMBLY MODE\r
18674         000703' 254000  000434'         JRST    GETDE1          ;GET DELIMITER\r
18675         000704' 661640  000040  NUMDF:  TLO     FR,DCFSW        ;SET DECIMAL FRACTION FLAG\r
18676         000705' 260740  001354' NUM:    PUSHJ   PP,GETCHR       ;GET A CHARACTER\r
18677         000706' 607400  000004          TLNN    CS,4            ;NUMERIC?\r
18678         000707' 254000  000720'         JRST    NUM10           ;NO\r
18679         000710' 275340  000020  NUM1:   SUBI    C,20            ;CONVERT TO OCTAL\r
18680         000711' 261740  000007          PUSH    PP,C            ;STACK FOR FLOATING POINT\r
18681         000712' 200000  000001          MOVE    AC0,AC1\r
18682         000713' 225015  000000          MULI    AC0,0(RX)\r
18683         000714' 270040  000007          ADD     AC1,C           ;ADD IN LAST VALUE\r
18684         000715' 301355  000000          CAIL    C,0(RX)         ;IS NUMBER LESS THAN CURRENT RADIX?\r
18685         000716' 661640  040000          TLO     FR,RADXSW       ;NO, SET FLAG\r
18686         000717' 344100  000705'         AOJA    AC2,NUM         ;YES, AC2=NO. OF DECIMAL PLACES\r
18687 \r
18688 \r\fMACRO V.10                     PAGE 22\r
18689         LITERAL PROCESSOR\r
18690 \r
18691         000720' 302340  000016  NUM10:  CAIE    C,16            ;PERIOD?\r
18692         000721' 603640  000040          TLNE    FR,DCFSW        ;OR DECIMAL FRACTION?\r
18693         000722' 254000  000732'         JRST    NUM30           ;YES, PROCESS FLOATING POINT\r
18694         000723' 242040  000001          LSH     AC1,1           ;NO, CLEAR THE SIGN BIT\r
18695         000724' 246000  000043          LSHC    AC0,^D35        ;AND SHIFT INTO AC0\r
18696         000725' 200740  013342'         MOVE    PP,PPTEMP       ;RESTORE PP\r
18697         000726' 362100  000434'         SOJE    AC2,GETDE1      ;NO RADIX ERROR TEST IF ONE DIGIT\r
18698         000727' 603640  040000          TLNE    FR,RADXSW       ;WAS ILLEGAL NUMBER ENCOUNTERED?\r
18699         000730' 660600  000400          TRO     ER,ERRN         ;YES, FLAG N ERROR\r
18700         000731' 254000  000434'         JRST    GETDE1\r
18701 \r
18702         000732' 302340  000042  NUM30:  CAIE    C,"B"-40        ;IF "B" THEN MISSING  "."\r
18703         000733' 260740  001354' NUM31:  PUSHJ   PP,GETCHR\r
18704         000734' 607400  000004          TLNN    CS,4            ;NUMERIC?\r
18705         000735' 254000  000741'         JRST    NUM40           ;NO\r
18706         000736' 275340  000020  NUM32:  SUBI    C,20\r
18707         000737' 261740  000007          PUSH    PP,C\r
18708         000740' 254000  000733'         JRST    NUM31\r
18709 \r
18710         000741' 261740  000015  NUM40:  PUSH    PP,FR           ;STACK VALUES\r
18711         000742' 541640  000012          HRRI    RX,^D10\r
18712         000743' 261740  000002          PUSH    PP,AC2\r
18713         000744' 261740  013342'         PUSH    PP,PPTEMP\r
18714         000745' 306340  000045          CAIN    C,45            ;"E"?\r
18715                                         JRST    [PUSHJ PP,PEEK  ;GET NEXT CHAR\r
18716                                                 PUSH PP,C       ;SAVE NEXT CHAR\r
18717                                                 PUSHJ PP,CELL   ;YES, GET EXPONENT\r
18718                                                 POP PP,C        ;GET FIRST CHAR. AFTER E\r
18719                                                 CAIN V,4        ;MUST HAVE NUMERICAL STATUS\r
18720                                                 JRST    .+2     ;SKIP RETURN\r
18721                                                 CAIN C,"<"      ;ALLOW <EXP>\r
18722                                                 JRST    .+2     ;SKIP RETURN\r
18723                                                 SKIPN   AC0     ;ERROR IF NON-ZERO EXPRESSION\r
18724                                                 TROA ER,ERRQ    ;ALLOW E+,E-\r
18725                                                 SETOM   RC      ;FORCE NUMERICAL ERROR\r
18726         000746' 254000  014063'                 JRST    .+2]    ;SKIP RETURN\r
18727         000747' 201000  000000          MOVEI   AC0,0           ;NO, ZERO EXPONENT\r
18728         000750' 262740  013342'         POP     PP,PPTEMP\r
18729         000751' 262740  000004          POP     PP,SX\r
18730         000752' 262740  000015          POP     PP,FR\r
18731         000753' 550300  000017          HRRZ    V,PP\r
18732         000754' 200740  013342'         MOVE    PP,PPTEMP\r
18733         000755' 326440  000431'         JUMPN   RC,NUMER1       ;EXPONENT MUST BE ABSOLUTE\r
18734         000756' 270200  000000          ADD     SX,AC0\r
18735         000757' 550240  000017          HRRZ    ARG,PP\r
18736         000760' 270200  000005          ADD     SX,ARG\r
18737         000761' 403000  000002          SETZB   AC0,AC2\r
18738         000762' 603640  000040          TLNE    FR,DCFSW\r
18739         000763' 254000  001004'         JRST    NUM60\r
18740         000764' 255400  000765'         JOV     NUM50           ;CLEAR OVERFLOW FLAG\r
18741 \r\fMACRO V.10                     PAGE 23\r
18742         LITERAL PROCESSOR\r
18743 \r
18744 \r
18745         000765' 265140  001020' NUM50:  JSP     SDEL,NUMUP      ;FLOATING POINT\r
18746         000766' 254000  000773'         JRST    NUM52           ;END OF WHOLE NUMBERS\r
18747         000767' 164000  014077'         FMPR    AC0,[10.0]      ;MULTIPLY BY 10\r
18748         000770' 661040  233000          TLO     AC1,233000      ;CONVERT TO FLOATING POINT\r
18749         000771' 144000  000001          FADR    AC0,AC1         ;ADD IT IN\r
18750         000772' 254000  000765'         JRST    NUM50\r
18751 \r
18752         000773' 265140  001026' NUM52:  JSP     SDEL,NUMDN      ;PROCESS FRACTION\r
18753         000774' 144000  000002          FADR    AC0,AC2\r
18754         000775' 255400  000431'         JOV     NUMER1          ;TEST FOR OVERFLOW\r
18755         000776' 254000  000434'         JRST    GETDE1\r
18756 \r
18757         000777' 661040  233000          TLO     AC1,233000\r
18758         001000' 602040  777777          TRNE    AC1,-1\r
18759         001001' 144100  000001          FADR    AC2,AC1         ;ACCUMULATE FRACTION\r
18760         001002' 174100  014077'         FDVR    AC2,[10.0]\r
18761         001003' 254000  000773'         JRST    NUM52\r
18762 \r
18763         001004' 265140  001020' NUM60:  JSP     SDEL,NUMUP\r
18764         001005' 254000  001011'         JRST    NUM62\r
18765         001006' 221000  000012          IMULI   AC0,^D10\r
18766         001007' 270000  000001          ADD     AC0,AC1\r
18767         001010' 254000  001004'         JRST    NUM60\r
18768 \r
18769         001011' 246040  777734  NUM62:  LSHC    AC1,-^D36\r
18770         001012' 265140  001026'         JSP     SDEL,NUMDN\r
18771         001013' 246040  000045          LSHC    AC1,^D37\r
18772         001014' 260740  004453'         PUSHJ   PP,BYPAS2\r
18773         001015' 254000  000436'         JRST    GETDE3\r
18774 \r
18775         001016' 235040  000012          DIVI    AC1,^D10\r
18776         001017' 254000  001011'         JRST    NUM62\r
18777 \r
18778         001020' 201040  000000  NUMUP:  MOVEI   AC1,0\r
18779         001021' 311240  000004          CAML    ARG,SX\r
18780         001022' 254003  000000          JRST    0(SDEL)\r
18781         001023' 315240  000006          CAMGE   ARG,V\r
18782         001024' 200045  000001          MOVE    AC1,1(ARG)\r
18783         001025' 344243  000001          AOJA    ARG,1(SDEL)\r
18784 \r
18785         001026' 201040  000000  NUMDN:  MOVEI   AC1,0\r
18786         001027' 317300  000004          CAMG    V,SX\r
18787         001030' 254003  000000          JRST    0(SDEL)\r
18788         001031' 313300  000005          CAMLE   V,ARG\r
18789         001032' 200046  000000          MOVE    AC1,0(V)\r
18790         001033' 364303  000003          SOJA    V,3(SDEL)\r
18791 \r\fMACRO V.10                     PAGE 24\r
18792         GETSYM\r
18793 \r
18794                                 SUBTTL  GETSYM\r
18795         001034' 201000  000000  GETSYM: MOVEI   AC0,0           ;CLEAR AC0\r
18796         001035' 205040  440600          MOVSI   AC1,(POINT 6,AC0)       ;PUT POINTER IN AC1\r
18797         001036' 260740  004452'         PUSHJ   PP,BYPASS       ;SKIP LEADING BLANKS\r
18798         001037' 607400  000002          TLNN    CS,2            ;ALPHABETIC?\r
18799         001040' 254000  001046'         JRST    GETSY1          ;NO, ERROR\r
18800         001041' 302340  000016          CAIE    C,16            ;PERIOD?\r
18801         001042' 254000  001047'         JRST    GETSY2          ;NO, A VALID SYMBOL\r
18802         001043' 136340  000001          IDPB    C,AC1           ;STORE THE CHARACTER\r
18803         001044' 260740  001354'         PUSHJ   PP,GETCHR       ;YES, TEST NEXT CHARACTER\r
18804         001045' 607400  000002          TLNN    CS,2            ;ALPHABETIC?\r
18805         001046' 664600  040000  GETSY1: TROA    ER,ERRA\r
18806         001047' 350017  000000  GETSY2: AOS     0(PP)           ;YES, SET SKIP EXIT\r
18807         001050' 607400  000006  GETSY3: TLNN    CS,6            ;ALPHA-NUMERIC?\r
18808         001051' 254000  004453'         JRST    BYPAS2          ;NO, GET DELIMITER\r
18809         001052' 603040  770000          TLNE    AC1,770000      ;YES, HAVE WE STORED SIX?\r
18810         001053' 136340  000001          IDPB    C,AC1           ;NO, STORE IT\r
18811         001054' 260740  001354'         PUSHJ   PP,GETCHR\r
18812         001055' 254000  001050'         JRST    GETSY3\r
18813 \r
18814 \r\fMACRO V.10                     PAGE 25\r
18815         EXPRESSION EVALUATOR\r
18816 \r
18817                                 SUBTTL  EXPRESSION EVALUATOR\r
18818                         000000  CV==    AC0                     ;CURRENT VALUE\r
18819                         000001  PV==    AC1                     ;PREVIOUS VALUE\r
18820                         000011  RC==    RC                      ;CURRENT RELOCATABILITY\r
18821                         000002  PR==    AC2                     ;PREVIOUS RELOCATABILITY\r
18822                         000010  CS=     CS                      ;CURRENT STATUS\r
18823                         000003  PS==    SDEL                    ;PREVIOUS STATUS\r
18824 \r
18825         001056' 661640  010000  EVALHA: TLO     FR,TMPSW\r
18826         001057' 260740  001070' EVALCM: PUSHJ   PP,EVALEX       ;EVALUATE FIRST EXPRESSION\r
18827         001060' 261740  014100'         PUSH    PP,[0]          ;MARK PDL\r
18828         001061' 321400  001064'         JUMPCM  EVALC3          ;JUMP IF COMMA\r
18829         001062' 661600  000004          TLO     IO,IORPTC       ;IT'S NOT,SO REPEAT\r
18830         001063' 254000  004354'         JRST    OP              ;PROCESS IN OP\r
18831         001064'                 EVALC3:\r
18832         001064' 261740  014100'         PUSH    PP,[0]          ;STORE ZERO'S ON PDL\r
18833         001065' 261740  014100'         PUSH    PP,[0]          ;.......\r
18834         001066' 205100  270417          MOVSI   AC2,(POINT 4,(PP),12)\r
18835         001067' 254000  004363'         JRST    OP1B            ;PROCESS IN OP\r
18836 \r
18837         001070' 661600  400000  EVALEX: TLO     IO,FLDSW\r
18838         001071' 261740  014101'         PUSH    PP,[XWD TNODE,0]        ;MARK THE LIST 200000,,0\r
18839         001072' 627640  010000          TLZN    FR,TMPSW\r
18840         001073' 260740  000325' EVATOM: PUSHJ   PP,ATOM         ;GET THE NEXT ATOM\r
18841         001074' 322000  001170'         JUMPE   AC0,EVGETD      ;TEST FOR NULL/ZERO\r
18842         001075' 663600  020000          TLOE    IO,NUMSW        ;SET NUMERIC, WAS IT PREVIOUSLY?\r
18843         001076' 254000  001171'         JRST    EVGETD+1        ;YES, TREAT ACCORDINGLY\r
18844         001077' 260740  012313'         PUSHJ   PP,SEARCH       ;SEARCH FOR MACRO OR SYMBOL\r
18845         001100' 254000  001122'         JRST    EVOP            ;NOT FOUND, TRY FOR OP-CODE\r
18846         001101' 321240  001103'         JUMPL   ARG,.+2         ;SKIP IF OPERAND\r
18847         001102' 260740  012213'         PUSHJ   PP,SSRCH1       ;OPERATOR, TRY FOR SYMBOL (OPERAND)\r
18848         001103' 260740  012203'         PUSHJ   PP,QSRCH        ;PERFORM CROSS-REFERENCE\r
18849         001104' 327240  001107'         JUMPG   ARG,EVMAC       ;BRANCH IF OPERATOR\r
18850         001105' 200000  000006          MOVE    AC0,V           ;SYMBOL, SET VALUE\r
18851         001106' 254000  001152'         JRST    EVTSTS          ;TEST STATUS\r
18852 \r
18853         001107' 603640  000200  EVMAC:  TLNE    FR,NEGSW        ;UNARY MINUS?\r
18854         001110' 254000  001147'         JRST    EVERRZ          ;YES, INVALID BEFORE OPERATOR\r
18855         001111' 135140  014060'         LDB     SDEL,[POINT 3,ARG,5]    ;GET MACF/OPDF/SYNF\r
18856         001112' 361140  001147'         SOJL    SDEL,EVERRZ     ;ERROR IF NO FLAGS\r
18857 \r
18858         001113' 322340  001115'         JUMPE   C,.+2           ;NON-BLANK?\r
18859         001114' 661600  000004          TLO     IO,IORPTC       ;YES, REPEAT CHARACTER\r
18860         001115' 362140  005511'         SOJE    SDEL,CALLM      ;MACRO IF 2\r
18861         001116' 327140  001126'         JUMPG   SDEL,EVOPS      ;SYNONYM IF 4\r
18862 \r
18863         001117' 200000  000006          MOVE    AC0,V           ;OPDEF\r
18864         001120' 201300  004354'         MOVEI   V,OP            ;SET TRANSFER VECTOR\r
18865         001121' 254000  001132'         JRST    EVOPD\r
18866 \r\fMACRO V.10                     PAGE 26\r
18867         EXPRESSION EVALUATOR\r
18868 \r
18869         001122' 603640  000200  EVOP:   TLNE    FR,NEGSW        ;OPCODE, UNARY MINUS?\r
18870         001123' 254000  001147'         JRST    EVERRZ          ;YES, ERROR\r
18871 \r
18872         001124' 260740  010470'         PUSHJ   PP,OPTSCH       ;SEARCH SYMBOL TABLE\r
18873         001125' 254000  001145'         JRST    EVOPX           ;NOT FOUND\r
18874         001126' 620300  200000  EVOPS:  TRZ     V,LITF          ;CLEAR LIT INVALID FLAG\r
18875         001127' 622300  100000          TRZE    V,ADDF          ;SYNONYM\r
18876         001130' 254000  001145'         JRST    EVOPX           ;PSEUDO-OP THAT GENERATES NO DATA JUMPS\r
18877         001131' 510000  000006          HLLZ    AC0,V\r
18878         001132' 322340  001134' EVOPD:  JUMPE   C,.+2           ;OPDEF, NON-BLANK DELIMITER?\r
18879         001133' 661600  000004          TLO     IO,IORPTC       ;YES, REPEAT CHARACTER\r
18880         001134' 265100  002723'         JSP     AC2,SVSTOW\r
18881         001135' 260746  000000          PUSHJ   PP,0(V)\r
18882         001136' 260740  002712'         PUSHJ   PP,DSTOW\r
18883         001137' 265100  002731'         JSP     AC2,GTSTOW\r
18884         001140' 602440  777776          TRNE    RC,-2\r
18885         001141' 542440  013270'         HRRM    RC,EXTPNT\r
18886         001142' 603440  777776          TLNE RC,-2\r
18887         001143' 502440  013270'         HLLM RC,EXTPNT\r
18888         001144' 254000  001175'         JRST    EVNUM\r
18889 \r
18890         001145' 205240  402000  EVOPX:  MOVSI   ARG,SYMF!UNDF\r
18891         001146' 260740  012365'         PUSHJ   PP,INSERZ\r
18892         001147' 403000  000011  EVERRZ: SETZB   AC0,RC          ;CLEAR CODE AND RELOCATION\r
18893         001150' 660600  002000  EVERRU: TRO     ER,ERRU\r
18894         001151' 254000  001170'         JRST    EVGETD\r
18895 \r\fMACRO V.10                     PAGE 27\r
18896         EXPRESSION EVALUATOR\r
18897 \r
18898         001152' 603240  002000  EVTSTS: TLNE    ARG,UNDF\r
18899                                         JRST    [TRO    ER,ERRU ;SET UNDEF ERROR\r
18900                                                 JUMP1   EVGETD  ;TREAT AS UNDF ON PASS1\r
18901         001153' 254000  014102'                 JRST    .+1]    ;TREAT AS EXTERNAL ON PASS2\r
18902         001154' 607240  001000          TLNN    ARG,EXTF\r
18903         001155' 254000  001164'         JRST    EVTSTR\r
18904         001156' 550440  000005          HRRZ RC,ARG     ;GET ADRES WFW\r
18905         001157' 550240  013270'         HRRZ ARG,EXTPNT ;SAVE IT WFW\r
18906         001160' 542440  013270'         HRRM RC,EXTPNT  ;WFW\r
18907         001161' 602240  777777          TRNE ARG,-1     ;WFW\r
18908         001162' 660600  000040          TRO     ER,ERRE\r
18909         001163' 403000  000005          SETZB   AC0,ARG\r
18910 \r
18911         001164' 603240  000020  EVTSTR: TLNE    ARG,MDFF        ;MULTIPLY DEFINED?\r
18912         001165' 660600  020000          TRO     ER,ERRD         ;YES, FLAG IT\r
18913         001166' 603640  000200          TLNE    FR,NEGSW        ;NEGATIVE ATOM?\r
18914         001167' 260740  000444'         PUSHJ   PP,GETDE2       ;YES, NEGATE AC0 AND RC\r
18915 \r
18916         001170' 603600  020000  EVGETD: TLNE    IO,NUMSW        ;NON BLANK FIELD\r
18917         001171' 661640  100000          TLO     FR,FSNSW        ;YES,SET FLAG\r
18918         001172' 260740  004453'         PUSHJ   PP,BYPAS2\r
18919         001173' 603400  000006          TLNE    CS,6            ;ALPHA-NUMERIC?\r
18920         001174' 661600  000004          TLO     IO,IORPTC       ;YES, REPEAT IT\r
18921         001175' 262740  000003  EVNUM:  POP     PP,PS           ;POP THE PREVIOUS DELIMITER/TNODE\r
18922         001176' 661140  004000          TLO     PS,4000\r
18923         001177' 315140  000010          CAMGE   PS,CS           ;OPERATION REQUIRED?\r
18924         001200' 254000  001205'         JRST    EVPUSH          ;NO, PUT VALUES BACK ON STACK\r
18925         001201' 607140  200000          TLNN    PS,TNODE        ;YES, HAVE WE REACHED TERMINAL NODE?\r
18926         001202' 254000  001212'         JRST    EVXCT           ;NO, EXECUTION REQUIRED\r
18927         001203' 607400  170000          TLNN    CS,170000       ;YES, ARE WE POINTING AT DEL? (& ! * / + - _)\r
18928         001204' 263740  000000          POPJ    PP,             ;YES, EXIT\r
18929                                                                 ;NO,FALL INTO EVPUSH\r
18930 \r
18931 \r\fMACRO V.10                     PAGE 28\r
18932         EXPRESSION EVALUATOR\r
18933 \r
18934         001205' 261740  000003  EVPUSH: PUSH    PP,PS           ;STACK VALUES\r
18935         001206' 261740  000000          PUSH    PP,CV\r
18936         001207' 261740  000011          PUSH    PP,RC\r
18937         001210' 261740  000010          PUSH    PP,CS\r
18938         001211' 254000  001073'         JRST    EVATOM          ;GET NEXT ATOM\r
18939 \r
18940         001212' 262740  000002  EVXCT:  POP     PP,PR           ;POP PREVIOUS RELOCATABILITY\r
18941         001213' 262740  000001          POP     PP,PV           ;AND PREVIOUS VALUE\r
18942         001214' 135140  014105'         LDB     PS,[POINT 3,PS,29]      ;TYPE OF OPERATION TO PS\r
18943         001215' 254003  001216'         JRST    .+1(PS)         ;PERFORM PROPER OPERATION\r
18944         001216' 254000  000104'         JRST    ASSEM1          ;0; SHOULD NEVER GET HERE ;DMN\r
18945         001217' 254000  001244'         JRST    XMUL            ;1;\r
18946         001220' 254000  001240'         JRST    XDIV            ;2;\r
18947         001221' 254000  001235'         JRST    XADD            ;3;\r
18948         001222' 254000  001232'         JRST    XSUB            ;4;\r
18949         001223' 254000  001255'         JRST    XLRW            ;5; "_"\r
18950         001224' 674000  000001          TDOA    CV,PV           ;6; MERGE PV INTO CV\r
18951         001225' 404000  000001          AND     CV,PV           ;7; AND PV INTO CV\r
18952         001226' 326440  001230'         JUMPN   RC,.+2          ;COMMON RELOCATION TEST\r
18953         001227' 322100  001175' EVXCT1: JUMPE   PR,EVNUM\r
18954         001230' 660600  004000          TRO     ER,ERRR         ;BOTH MUST BE FIXED\r
18955         001231' 254000  001175'         JRST    EVNUM           ;GO TRY AGAIN\r
18956 \r
18957         001232' 276040  000000  XSUB:   SUBM    PV,CV\r
18958         001233' 276100  000011          SUBM    PR,RC\r
18959         001234' 254000  001175'         JRST    EVNUM\r
18960 \r
18961         001235' 272040  000000  XADD:   ADDM    PV,CV\r
18962         001236' 272100  000011          ADDM    PR,RC\r
18963         001237' 254000  001175'         JRST    EVNUM\r
18964 \r
18965         001240' 230100  000000  XDIV:   IDIV    PR,CV           ;CORRECT RELOCATABILITY\r
18966         001241' 232040  000000          IDIVM   PV,CV\r
18967         001242' 250100  000011  XDIV1:  EXCH    PR,RC           ;TAKE RELOCATION OF NUMERATOR\r
18968         001243' 254000  001227'         JRST    EVXCT1\r
18969 \r
18970         001244' 322100  001247' XMUL:   JUMPE   PR,XMUL1        ;AT LEAST ONE OPERAND\r
18971         001245' 322440  001247'         JUMPE   RC,XMUL1        ;MUST BE FIXED\r
18972         001246' 660600  004000          TRO     ER,ERRR\r
18973         001247' 436100  000011  XMUL1:  IORM    PR,RC           ;GET RELOCATION TO RC\r
18974         001250' 315040  000000          CAMGE   PV,CV           ;FIND THE GREATER\r
18975         001251' 250040  000000          EXCH    PV,CV           ;FIX IN CASE CV=0,OR 1\r
18976         001252' 222040  000011          IMULM   PV,RC\r
18977         001253' 222040  000000          IMULM   PV,CV\r
18978         001254' 254000  001175'         JRST    EVNUM\r
18979         001255' 250040  000000  XLRW:   EXCH    PV,CV\r
18980         001256' 242001  000000          LSH     CV,0(PV)\r
18981         001257' 242101  000000          LSH     PR,0(PV)\r
18982         001260' 254000  001242'         JRST    XDIV1\r
18983 \r\fMACRO V.10                     PAGE 29\r
18984         LITERAL STORAGE HANDLER\r
18985 \r
18986                                         SUBTTL  LITERAL STORAGE HANDLER\r
18987         \r
18988         001261'                 STOLER:\r
18989         001261' 403000  000011          SETZB   AC0,RC  ;ERROR, NO CODE STORED\r
18990         001262' 260740  002665'         PUSHJ   PP,STOW         ;STOW ZERO\r
18991         001263' 660600  010000          TRO     ER,ERRL         ;AND FLAG THE ERROR\r
18992 \r
18993         001264' 200140  013104' STOLIT: MOVE    SDEL,STPX\r
18994         001265' 274140  013105'         SUB     SDEL,STPY       ;COMPUTE NUMBER OF WORDS\r
18995         001266' 322140  001261'         JUMPE   SDEL,STOLER     ;ERROR IF NONE STORED\r
18996         001267' 606600  777760          TRNN    ER,ERRORS       ;ANY ERRORS?\r
18997         001270' 254000  001274'         JRST    STOL06          ;NO\r
18998         001271' 325640  001333'         JUMP2   STOL22          ;YES, NO SEARCH.  BRANCH IF PASS2\r
18999         001272' 272140  013036'         ADDM    SDEL,LITCNT     ;PASS ONE, UPDATE COUNT\r
19000         001273' 254000  002717'         JRST    STOWI           ;INITIALIZE STOW\r
19001 \r
19002         001274' 201200  013031' STOL06: MOVEI   SX,LITAB        ;PREPARE FOR SEARCH\r
19003         001275' 200240  013104'         MOVE    ARG,STPX        ;SAVE IN THE EVENT OF MULTIPLE-WORD\r
19004         001276' 504240  013105'         HRL     ARG,STPY\r
19005         001277' 200100  013037'         MOVE    AC2,LITNUM\r
19006         001300' 201140  000000          MOVEI   SDEL,0\r
19007         001301' 260740  002712' STOL08: PUSHJ   PP,DSTOW        ;GET VALUE WFW\r
19008 \r
19009         001302' 361100  001335' STOL10: SOJL    AC2,STOL24      ;TEST FOR END\r
19010         001303' 200204  000000          MOVE    SX,0(SX)        ;NO, GET NEXT STORAGE CELL\r
19011         001304' 200304  777777          MOVE    V,-1(SX)                ;GET RELOCATION BITS WFW\r
19012         001305' 316004  777776          CAMN    AC0,-2(SX)      ;DO CODES COMPARE? WFW\r
19013         001306' 312440  000006          CAME    RC,V            ;YES, HOW ABOUT RELOCATION?\r
19014         001307' 344140  001302'         AOJA    SDEL,STOL10     ;NO, TRY AGAIN\r
19015         001310' 335000  013104'         SKIPGE  STPX            ;YES, MULTI-WORD?\r
19016         001311' 254000  001346'         JRST    STOL26          ;NO, JUST RETURN LOCATION\r
19017         001312' 202100  013047'         MOVEM   AC2,SAVBLK+AC2  ;YES, SAVE STARTING INFO\r
19018         001313' 202200  013051'         MOVEM   SX,SAVBLK+SX\r
19019 \r
19020         001314' 361100  001334' STOL12: SOJL    AC2,STOL23      ;TEST FOR END\r
19021         001315' 260740  002712'         PUSHJ   PP,DSTOW        ;GET NEXT WORD WFW\r
19022         001316' 200204  000000          MOVE    SX,0(SX)        ;UPDATE POINTER\r
19023         001317' 200304  777777          MOVE    V,-1(SX)                ;GET RELOCATION WFW\r
19024         001320' 316004  777776          CAMN    AC0,-2(SX)      ;COMPARE VALUE WFW\r
19025         001321' 312440  000006          CAME    RC,V            ;AND RELOCATION\r
19026         001322' 254000  001326'         JRST    STOL14          ;NO MATCH, TRY AGAIN\r
19027         001323' 331000  013104'         SKIPL   STPX            ;MATCH, HAVE WE FINISHED SEARCH?\r
19028         001324' 254000  001314'         JRST    STOL12          ;NO, TRY NEXT WORD\r
19029         001325' 254000  001346'         JRST    STOL26          ;YES, RETURN LOCATION\r
19030 \r
19031         001326' 200100  013047' STOL14: MOVE    AC2,SAVBLK+AC2  ;RESTORE STOW POINTERS\r
19032         001327' 200200  013051'         MOVE    SX,SAVBLK+SX\r
19033         001330' 572240  013104'         HRREM   ARG,STPX\r
19034         001331' 576240  013105'         HLREM   ARG,STPY\r
19035         001332' 344140  001301'         AOJA    SDEL,STOL08     ;BETTER LUCK NEXT TIME\r
19036 \r\fMACRO V.10                     PAGE 30\r
19037         LITERAL STORAGE HANDLER\r
19038 \r
19039 \r
19040         001333' 200140  013037' STOL22: MOVE    SDEL,LITNUM\r
19041         001334' 260740  002712' STOL23: PUSHJ   PP,DSTOW        ;DSTOW AND CONVERT\r
19042         001335' 200200  013032' STOL24: MOVE    SX,LITABX       ;GET CURRENT STORAGE\r
19043         001336' 260740  003444'         PUSHJ   PP,GETTOP       ;GET NEXT CELL\r
19044         001337' 202004  777776          MOVEM   AC0,-2(SX)      ;STORE CODE WFW\r
19045         001340' 202444  777777          MOVEM   RC,-1(SX)       ;WFW\r
19046         001341' 202200  013032'         MOVEM   SX,LITABX       ;SET POINTER TO CURRENT CELL\r
19047         001342' 350000  013037'         AOS     LITNUM          ;INCREMENT NUMBER STORED\r
19048         001343' 350000  013036'         AOS     LITCNT          ;INCREMENT NUMBER RESERVED\r
19049         001344' 331000  013104'         SKIPL   STPX            ;ANY MORE CODE?\r
19050         001345' 254000  001334'         JRST    STOL23          ;YES\r
19051         001346' 321640  000446' STOL26: JUMP1   POPOUT          ;EXIT IF PASS ONE\r
19052         001347' 200200  013035'         MOVE    SX,LITHDX       ;GET HEADER BLOCK\r
19053         001350' 554444  777777          HLRZ    RC,-1(SX)       ;GET BLOCK RELOCATION\r
19054         001351' 550004  777777          HRRZ    AC0,-1(SX)\r
19055         001352' 271003  000000          ADDI    AC0,0(SDEL)     ;COMPUTE ACTUAL LOCATION\r
19056         001353' 263740  000000          POPJ    PP,             ;EXIT\r
19057 \r
19058 \r\fMACRO V.10                     PAGE 31\r
19059         INPUT ROUTINES\r
19060 \r
19061                                 SUBTTL  INPUT ROUTINES\r
19062         001354' 260740  001406' GETCHR: PUSHJ   PP,CHARAC       ;GET ASCII CHARACTER\r
19063         001355' 301340  000141          CAIL    C,"A"+40        ;CHECK FOR LOWER CASE\r
19064         001356' 303340  000172          CAILE   C,"Z"+40\r
19065         001357' 254000  001361'         JRST    .+2             ;NOT LOWER CASE\r
19066         001360' 624340  000100          TRZA    C,100           ;CONVERT LOWER CASE TO SIXBIT\r
19067         001361' 275340  000040          SUBI    C,40            ;CONVERT TO SIXBIT\r
19068         001362' 307340  000077          CAIG    C,77            ;CHAR GREATER THAN SIXBIT?\r
19069         001363' 325340  001375'         JUMPGE  C,GETCS         ;TEST FOR VALID SIXBIT\r
19070         001364' 271340  000040          ADDI    C,40            ;BACK TO ASCII\r
19071         001365' 306340  000011          CAIN    C,HT            ;CHECK FOR TAB\r
19072         001366' 254000  001374'         JRST    GETCS2          ;MAKE IT LOOK LIKE SPACE\r
19073         001367' 307340  000015          CAIG    C,CR            ;GREATER THAN CR\r
19074         001370' 307340  000011          CAIG    C,HT            ;GREATER THAN TAB\r
19075         001371' 254000  001377'         JRST    GETCS1          ;IS NOT FF,VT,LF OR CR\r
19076         001372' 201340  000033          MOVEI   C,EOL           ;LINE OR FORM FEED OR V TAB\r
19077         001373' 665600  000004          TLOA    IO,IORPTC       ;REPEAT CHARACTER\r
19078         001374' 201340  000000  GETCS2: MOVEI   C,0             ;BUT TREAT AS BLANK\r
19079         001375' 200407  001447' GETCS:  MOVE    CS,CSTAT(C)     ;GET STATUS BITS\r
19080         001376' 263740  000000          POPJ    PP,             ;EXIT\r
19081 \r
19082         001377' 322340  001375' GETCS1: JUMPE   C,GETCS         ;IGNORE NULS\r
19083         001400' 640340  000100          TRC     C,100           ;MAKE CHAR. VISIBLE\r
19084         001401' 201400  000136          MOVEI   CS,"^"\r
19085         001402' 137400  013003'         DPB     CS,LBUFP        ;PUT ^ IN OUTPUT\r
19086         001403' 260740  001414'         PUSHJ   PP,RSW2         ;ALSO MODIFIED CHAR.\r
19087         001404' 660600  200000          TRO     ER,ERRQ         ;FLAG Q ERROR\r
19088         001405' 254000  001354'         JRST    GETCHR          ;BUT IGNORE CHAR.\r
19089 \r\fMACRO V.10                     PAGE 32\r
19090         INPUT ROUTINES\r
19091 \r
19092 \r
19093         001406' 623600  000004  CHARAC: TLZE    IO,IORPTC       ;REPEAT REQUESTED?\r
19094         001407' 254000  001434'         JRST    CHARAX          ;YES\r
19095         001410' 326540  006300' RSW0:   JUMPN   MRP,MREAD       ;BRANCH IF TREE POINTER SET\r
19096         001411' 260740  010221'         PUSHJ   PP,READ\r
19097         001412' 332000  013350' RSW1:   SKIPE   RPOLVL          ;ARE WE IN "REPEAT ONCE"?\r
19098         001413' 254000  005201'         JRST    REPO1           ;YES\r
19099         001414' 200400  013002' RSW2:   MOVE    CS,LIMBO        ;GET LAST CHAR.\r
19100         001415' 202340  013002'         MOVEM   C,LIMBO ;STORE THIS CHAR. FOR RPTC\r
19101         001416' 306340  000012          CAIN    C,LF            ;LF?\r
19102         001417' 302400  000015          CAIE    CS,CR           ;YES,LAST CHAR. A CR?\r
19103         001420' 254000  001423'         JRST    RSW3            ;NO\r
19104         001421' 563000  013002'         HRROS   LIMBO           ;YES,FLAG\r
19105         001422' 263740  000000          POPJ    PP,             ;AND EXIT\r
19106 \r
19107         001423' 603600  000001  RSW3:   TLNE    IO,IOSALL       ;MACRO SUPPRESS ALL?\r
19108         001424' 326540  003360'         JUMPN   MRP,CPOPJ       ;YES,DON'T LIST IN MACRO\r
19109         001425' 377000  013265'         SOSG    CPL             ;ANY ROOM IN THE IMAGE BUFFER?\r
19110         001426' 260740  001650'         PUSHJ   PP,OUTPL        ;NO, OUTPUT THE PARTIAL LINE\r
19111         001427' 136340  013003'         IDPB    C,LBUFP         ;YES, STORE IN PRINT AREA\r
19112         001430' 302340  000011          CAIE    C,HT            ;TAB?\r
19113         001431' 263740  000000          POPJ    PP,             ;NO, EXIT\r
19114         001432' 201340  000007          MOVEI   C,7\r
19115         001433' 412340  013265'         ANDCAM  C,CPL           ;MASK\r
19116         001434' 550340  013002' CHARAX: HRRZ    C,LIMBO         ;GET LAST CHARACTER\r
19117         001435' 263740  000000          POPJ    PP,             ;EXIT\r
19118 \r
19119         001436' 260740  001406' CHARL:  PUSHJ   PP,CHARAC       ;GET AND TEST 7-BIT ASCII\r
19120         001437' 307340  000014          CAIG    C,FF            ;LINE OR FORM FEED OR VT?\r
19121         001440' 305340  000012          CAIGE   C,LF\r
19122         001441' 263740  000000          POPJ    PP,             ;NO,EXIT\r
19123         001442' 332000  013321'         SKIPE   LITLVL          ;IN LITERAL?\r
19124         001443' 254000  002011'         JRST    OUTIML          ;YES\r
19125         001444' 260740  007211' CHARL1: PUSHJ   PP,SAVEXS       ;SAVE REGISTERS\r
19126         001445' 260740  001547'         PUSHJ   PP,OUTLIN       ;DUMP THE LINE\r
19127         001446' 254000  007205'         JRST    RSTRXS          ;RESTORE REGISTERS AND EXIT\r
19128 \r\fMACRO V.10                     PAGE 33\r
19129         CHARACTER STATUS TABLE\r
19130 \r
19131                                 SUBTTL  CHARACTER STATUS TABLE\r
19132 \r
19133                                         DEFINE  GENCS   (OPLVL,ATOM,AN,SQUOZ,OPTYPE,SEQNO)\r
19134                                 <BYTE (6)OPLVL (9)ATOM (3)AN (6)SQUOZ,OPTYPE,SEQNO>\r
19135 \r
19136                                         ;OPLVL  PRIORITY OF BINARY OPERATORS\r
19137                                         ;ATOM   INDEX TO JUMP TABLE AT CELL1\r
19138                                         ;AN     TYPE OF CHARACTER\r
19139                                         ;       1=OTHER, 2=ALPHA, 4=NUMERIC\r
19140                                         ;SQUOZ  VALUE IN RADIX 50\r
19141                                         ;OPTYPE INDEX TO JUMP TABLE AT EVXCT\r
19142                                         ;SEQNO  VALUE IN SIXBIT\r
19143         001447'                 CSTAT:\r
19144         001447' 000001  000000          GENCS   00,00,1,00,00,00        ; ' '\r
19145         001450' 040121  000601          GENCS   04,12,1,00,06,01        ; '!'\r
19146         001451' 000071  000002          GENCS   00,07,1,00,00,02        ; '"'\r
19147         001452' 000121  000003          GENCS   00,12,1,00,00,03        ; '#'\r
19148         001453' 000012  460004          GENCS   00,01,2,46,00,04        ; '$'\r
19149         001454' 000012  470005          GENCS   00,01,2,47,00,05        ; '%'\r
19150         001455' 040121  000706          GENCS   04,12,1,00,07,06        ; '&'\r
19151         001456' 000071  000007          GENCS   00,07,1,00,00,07        ; '''\r
19152 \r
19153         001457' 000011  000010          GENCS   00,01,1,00,00,10        ; '('\r
19154         001460' 000011  000011          GENCS   00,01,1,00,00,11        ; ')'\r
19155         001461' 020121  000112          GENCS   02,12,1,00,01,12        ; '*'\r
19156         001462' 010001  000313          GENCS   01,00,1,00,03,13        ; '+'\r
19157         001463' 400011  000014          GENCS   40,01,1,00,00,14        ; ','\r
19158         001464' 010021  000415          GENCS   01,02,1,00,04,15        ; '-'\r
19159         001465' 000112  450016          GENCS   00,11,2,45,00,16        ; '.'\r
19160         001466' 020121  000217          GENCS   02,12,1,00,02,17        ; '/'\r
19161 \r
19162         001467' 000044  010020          GENCS   00,04,4,01,00,20        ; '0'\r
19163         001470' 000044  020021          GENCS   00,04,4,02,00,21        ; '1'\r
19164         001471' 000044  030022          GENCS   00,04,4,03,00,22        ; '2'\r
19165         001472' 000044  040023          GENCS   00,04,4,04,00,23        ; '3'\r
19166         001473' 000044  050024          GENCS   00,04,4,05,00,24        ; '4'\r
19167         001474' 000044  060025          GENCS   00,04,4,06,00,25        ; '5'\r
19168         001475' 000044  070026          GENCS   00,04,4,07,00,26        ; '6'\r
19169         001476' 000044  100027          GENCS   00,04,4,10,00,27        ; '7'\r
19170 \r
19171         001477' 000044  110030          GENCS   00,04,4,11,00,30        ; '8'\r
19172         001500' 000044  120031          GENCS   00,04,4,12,00,31        ; '9'\r
19173         001501' 000121  000032          GENCS   00,12,1,00,00,32        ; ':'\r
19174         001502' 000011  000033          GENCS   00,01,1,00,00,33        ; ';'\r
19175         001503' 000051  000034          GENCS   00,05,1,00,00,34        ; '<'\r
19176         001504' 000121  000035          GENCS   00,12,1,00,00,35        ; '='\r
19177         001505' 000011  000036          GENCS   00,01,1,00,00,36        ; '>'\r
19178         001506' 000121  000037          GENCS   00,12,1,00,00,37        ; '?'\r
19179 \r\fMACRO V.10                     PAGE 34\r
19180         CHARACTER STATUS TABLE\r
19181 \r
19182         001507' 000031  000040          GENCS   00,03,1,00,00,40        ; '@'\r
19183         001510' 000012  130041          GENCS   00,01,2,13,00,41        ; 'A'\r
19184         001511' 000012  140042          GENCS   00,01,2,14,00,42        ; 'B'\r
19185         001512' 000012  150043          GENCS   00,01,2,15,00,43        ; 'C'\r
19186         001513' 000012  160044          GENCS   00,01,2,16,00,44        ; 'D'\r
19187         001514' 000012  170045          GENCS   00,01,2,17,00,45        ; 'E'\r
19188         001515' 000012  200046          GENCS   00,01,2,20,00,46        ; 'F'\r
19189         001516' 000012  210047          GENCS   00,01,2,21,00,47        ; 'G'\r
19190 \r
19191         001517' 000012  220050          GENCS   00,01,2,22,00,50        ; 'H'\r
19192         001520' 000012  230051          GENCS   00,01,2,23,00,51        ; 'I'\r
19193         001521' 000012  240052          GENCS   00,01,2,24,00,52        ; 'J'\r
19194         001522' 000012  250053          GENCS   00,01,2,25,00,53        ; 'K'\r
19195         001523' 000012  260054          GENCS   00,01,2,26,00,54        ; 'L'\r
19196         001524' 000012  270055          GENCS   00,01,2,27,00,55        ; 'M'\r
19197         001525' 000012  300056          GENCS   00,01,2,30,00,56        ; 'N'\r
19198         001526' 000012  310057          GENCS   00,01,2,31,00,57        ; 'O'\r
19199 \r
19200         001527' 000012  320060          GENCS   00,01,2,32,00,60        ; 'P'\r
19201         001530' 000012  330061          GENCS   00,01,2,33,00,61        ; 'Q'\r
19202         001531' 000012  340062          GENCS   00,01,2,34,00,62        ; 'R'\r
19203         001532' 000012  350063          GENCS   00,01,2,35,00,63        ; 'S'\r
19204         001533' 000012  360064          GENCS   00,01,2,36,00,64        ; 'T'\r
19205         001534' 000012  370065          GENCS   00,01,2,37,00,65        ; 'U'\r
19206         001535' 000012  400066          GENCS   00,01,2,40,00,66        ; 'V'\r
19207         001536' 000012  410067          GENCS   00,01,2,41,00,67        ; 'W'\r
19208 \r
19209         001537' 000012  420070          GENCS   00,01,2,42,00,70        ; 'X'\r
19210         001540' 000012  430071          GENCS   00,01,2,43,00,71        ; 'Y'\r
19211         001541' 000012  440072          GENCS   00,01,2,44,00,72        ; 'Z'\r
19212         001542' 000061  000073          GENCS   00,06,1,00,00,73        ; '['\r
19213         001543' 000121  000074          GENCS   00,12,1,00,00,74        ; '\'\r
19214         001544' 000011  000075          GENCS   00,01,1,00,00,75        ; ']'\r
19215         001545' 000101  000076          GENCS   00,10,1,00,00,76        ; '^'\r
19216         001546' 100121  000577          GENCS   10,12,1,00,05,77        ; '_'\r
19217 \r\fMACRO V.10                     PAGE 35\r
19218         LISTING ROUTINES\r
19219 \r
19220                                 SUBTTL  LISTING ROUTINES\r
19221 \r
19222         001547' 606600  577760  OUTLIN: TRNN    ER,ERRORS-ERRQ  ;ANY ERRORS?\r
19223         001550' 603640  000010          TLNE    FR,ERRQSW       ;NO, IGNORE Q ERRORS?\r
19224         001551' 620600  200000          TRZ     ER,ERRQ         ;YES, YES, ZERO THE Q ERROR\r
19225         001552' 514000  000014          HRLZ    AC0,ER          ;PUT ERROR FLAGS IN AC0 LEFT\r
19226         001553' 630600  013256'         TDZ     ER,TYPERR\r
19227         001554' 321640  001665'         JUMP1   OUTL30          ;BRANCH IF PASS ONE\r
19228         001555' 326000  001567'         JUMPN   AC0,OUTL02      ;JUMP IF ANY ERRORS TO FORCE PRINTING\r
19229         001556' 331000  013104'         SKIPL   STPX            ;SKIP IF NO CODE, OTHERWISE\r
19230         001557' 254000  001565'         JRST    OUTL01          ;NO\r
19231         001560' 607600  000001          TLNN    IO,IOSALL       ;YES,SUPPRESS ALL?\r
19232         001561' 254000  001566'         JRST    OUTL03          ;NO\r
19233         001562' 326540  003360'         JUMPN   MRP,CPOPJ       ;YES,EXIT IF IN MACRO\r
19234         001563' 135340  014106'         LDB     C,[XWD 350700,LBUF]\r
19235         001564' 302340  000015          CAIE    C,15            ;FIRST CHAR CR?\r
19236         001565' 621600  010000  OUTL01: TLZ     IO,IOMAC        ;FORCE MACRO PRINTING\r
19237         001566' 607600  250000  OUTL03: TLNN    IO,IOMSTR!IOPROG!IOMAC\r
19238         001567' 434600  013042' OUTL02: IOR     ER,OUTSW        ;FORCE IT.\r
19239         001570' 136000  013003'         IDPB    AC0,LBUFP       ;STORE ZERO TERMINATOR AFTER ASCII SRC LINE\r
19240         001571' 607640  002000          TLNN    FR,CREFSW       ;CREF?\r
19241         001572' 260740  012274'         PUSHJ   PP,CLSCRF       ;YES, WRITE END OF CREF DATA (177,003)\r
19242         001573' 322000  001577'         JUMPE   AC0,OUTL20      ;BRANCH IF NO ERRORS\r
19243         001574' 623000  000020          TLZE    AC0,ERRM        ;M ERROR?\r
19244         001575' 661000  000100          TLO     AC0,ERRP        ;M ERROR SET - SET P ERROR.\r
19245         001576' 260740  001712'         PUSHJ   PP,OUTLER       ;PROCESS ERRORS\r
19246 \r
19247         001577' 336440  013323' OUTL20: SKIPN   RC,ASGBLK\r
19248         001600' 332400  013324'         SKIPE   CS,LOCBLK       ;\r
19249         001601' 331000  013104'         SKIPL   STPX            ;ANY BINARY?\r
19250         001602' 254000  001625'         JRST    OUTL23          ;YES, JUMP\r
19251         001603' 322440  001621'         JUMPE   RC,OUTL22       ;SEQUENCE BREAK AND NO BINARY JUMPS\r
19252         001604' 134340  013226'         ILDB    C,TABP          ;ASSIGNMENT FALLS THROUGH\r
19253         001605' 260740  010325'         PUSHJ   PP,OUTL         ;OUTPUT A TAB.\r
19254         001606' 134340  013226'         ILDB    C,TABP          ;OUTPUT 2ND TAB, LOCATION FIELD\r
19255         001607' 260740  010377'         PUSHJ   PP,OUTC         ;NEXT IS BINARY LISTING FIELD\r
19256         001610' 520400  013324'         HLLO    CS,LOCBLK       ;LEFT HALF OF A 36BIT VALUE\r
19257         001611' 321440  001613'         JUMPL   RC,.+2          ;SKIP IF LEFT HALF IS NOT RELOC\r
19258         001612' 624400  000001          TRZA    CS,1            ;IT IS, SET THE FLAG\r
19259         001613' 603400  777777          TLNE    CS,-1           ;SKIP IF ITS A 18BIT VALUE, OTHERWISE\r
19260         001614' 260740  002751'         PUSHJ PP,ONC1           ;PRINT LH OF A 36 BIT VALUE IN CS\r
19261         001615' 524400  013324'         HRLO    CS,LOCBLK       ;PICK UP THE RIGHT HALF (18BIT VALUE)\r
19262         001616' 620411  000000          TRZ     CS,0(RC)        ;\r
19263         001617' 260740  002747'         PUSHJ   PP,ONC          ;PRINT IT\r
19264         001620' 254000  001625'         JRST    OUTL23          ;SKIP SINGLE QUOTE TEST\r
19265 \r\fMACRO V.10                     PAGE 36\r
19266         LISTING ROUTINES\r
19267 \r
19268         001621' 260740  002747' OUTL22: PUSHJ   PP,ONC          ;TAB TO RH AND PRINT IT\r
19269         001622' 201340  000047          MOVEI   C,"'"\r
19270         001623' 332000  013332'         SKIPE   MODA\r
19271         001624' 260740  010377'         PUSHJ   PP,OUTC\r
19272         001625' 331000  013104' OUTL23: SKIPL   STPX            ;ANY BINARY?\r
19273         001626' 260740  002434'         PUSHJ   PP,BOUT         ;YES, DUMP IT\r
19274         001627' 200420  001774'         MOVE    CS,@OUTLI2      ;[POINT 7,LBUF]\r
19275         001630' 134340  000010  OUTL24: ILDB    C,CS\r
19276         001631' 322340  001636'         JUMPE   C,OUTL25\r
19277         001632' 307340  000040          CAIG    C," "\r
19278         001633' 254000  001630'         JRST    OUTL24\r
19279         001634' 200400  013226'         MOVE    CS,TABP\r
19280         001635' 260740  002775'         PUSHJ   PP,OUTASC       ;OUTPUT TABS\r
19281         001636' 201400  013004' OUTL25: MOVEI   CS,LBUF\r
19282         001637' 260740  002774'         PUSHJ   PP,OUTAS0       ;DUMP THE LINE\r
19283         001640' 603600  000001          TLNE    IO,IOSALL       ;SUPPRESSING ALL\r
19284         001641' 326540  001646'         JUMPN   MRP,OUTL27      ;YES,EXTRA CR IF IN MACRO\r
19285         001642' 335000  013104' OUTL26: SKIPGE  STPX            ;ANY BINARY?\r
19286         001643' 254000  001765'         JRST    OUTLI           ;NO, CLEAN UP AND EXIT\r
19287         001644' 260740  001774'         PUSHJ   PP,OUTLI2       ;YES, INITIALIZE FOR NEXT LINE\r
19288         001645' 260740  002434'         PUSHJ   PP,BOUT         ;YES, DUMP IT\r
19289         001646' 260740  010316' OUTL27: PUSHJ   PP,OUTCR        ;OUTPUT CARRIAGE RETURN\r
19290         001647' 254000  001642'         JRST    OUTL26          ;TEST FOR MORE BINARY\r
19291 \r
19292         001650' 336000  013321' OUTPL:  SKIPN   LITLVL          ;IF IN LITERAL\r
19293         001651' 331000  013104'         SKIPL   STPX            ;OR CODE GENERATED\r
19294         001652' 254000  001737'         JRST    OUTIM           ;JUST OUTPUT THE IMAGE\r
19295         001653' 336000  013323'         SKIPN   ASGBLK          ;SKIP IF AN ASSIGNMENT\r
19296         001654' 254000  001737'         JRST    OUTIM           ;OTHERWISE OUTPUT IMAGE\r
19297         001655' 261740  000007          PUSH    PP,C            ;SAVE CHAR.\r
19298         001656' 201340  000015          MOVEI   C,CR\r
19299         001657' 136340  013003'         IDPB    C,LBUFP\r
19300         001660' 201340  000012          MOVEI   C,LF\r
19301         001661' 136340  013003'         IDPB    C,LBUFP         ;FINISH WITH CRLF\r
19302         001662' 260740  001547'         PUSHJ   PP,OUTLIN       ;OUTPUT PARTIAL LINE\r
19303         001663' 262740  000007          POP     PP,C            ;RESTORE CHAR.\r
19304         001664' 254000  001774'         JRST    OUTLI2          ;INITIALISE REST OF LINE\r
19305 \r\fMACRO V.10                     PAGE 37\r
19306         LISTING ROUTINES\r
19307 \r
19308         001665' 350400  013104' OUTL30: AOS     CS,STPX         ;PASS ONE\r
19309         001666' 272400  013326'         ADDM    CS,LOCO         ;INCREMENT OUTPUT LOCATION\r
19310         001667' 260740  002717'         PUSHJ   PP,STOWI        ;INITIALIZE STOW\r
19311         001670' 621000  776640          TLZ     AC0,ERRORS-ERRM-ERRP-ERRV\r
19312         001671' 326000  001675'         JUMPN   AC0,OUTL32      ;JUMP IF ERRORS\r
19313         001672' 603600  000001          TLNE    IO,IOSALL       ;SUPPRESSING ALL/\r
19314         001673' 326540  003360'         JUMPN   MRP,CPOPJ       ;YES,EXIT\r
19315         001674' 254000  001773'         JRST    OUTLI1          ;NO,INIT LINE\r
19316 \r
19317         001675' 136000  013003' OUTL32: IDPB    AC0,LBUFP       ;ZERO TERNIMATOR\r
19318         001676' 434600  013042'         IOR     ER,OUTSW        ;LIST ERRORS\r
19319         001677' 201400  012541'         MOVEI   CS,TAG\r
19320         001700' 260740  003001'         PUSHJ   PP,OUTSIX       ;OUTPUT TAG\r
19321         001701' 550340  013377'         HRRZ    C,TAGINC\r
19322         001702' 260740  002765'         PUSHJ   PP,DNC          ;CONVERT INCREMENT TO DECIMAL\r
19323         001703' 260740  010307'         PUSHJ   PP,OUTTAB       ;OUTPUT TAB\r
19324         001704' 260740  001712'         PUSHJ   PP,OUTLER       ;OUTPUT ERROR FLAGS\r
19325         001705' 260740  010307'         PUSHJ   PP,OUTTAB\r
19326         001706' 201400  012544'         MOVEI   CS,SEQNO        ;ADDRESS OF SEQUENCE NO.\r
19327         001707' 332000  012544'         SKIPE   SEQNO           ;FILE NOT SEQUENCED\r
19328         001710' 260740  002774'         PUSHJ   PP,OUTAS0       ;OUTPUT IT\r
19329         001711' 254000  001636'         JRST    OUTL25          ;OUTPUT BASIC LINE\r
19330 \r
19331         001712' 261740  000014  OUTLER: PUSH PP,ER      ;SAVE LISTING SWITCHES FOR LATER\r
19332         001713' 602600  000001          TRNE ER,TTYSW   ;IF THIS IS ON, LISTING IS ON TTY\r
19333         001714' 620600  777760          TRZ ER,ERRORS   ;SO SUPPRESS ON TTY\r
19334         001715' 630600  013042'         TDZ ER,OUTSW    ;BUT THIS SHOULD ONLY GO TO THE TTY\r
19335         001716' 200400  012673'         MOVE CS,INDIR   ;GET FILE NAME\r
19336         001717' 312400  012537'         CAME CS,LSTFIL  ;AND SEE IF SAME\r
19337                                         JRST    [MOVEM CS,LSTFIL        ;SAVE AS LAST ONE\r
19338                                                 MOVEI CS,LSTFIL\r
19339                                                 PUSHJ PP,OUTSIX ;LIST NAME\r
19340                                                 MOVEI C," "\r
19341                                                 PUSHJ PP,OUTL\r
19342                                                 MOVE CS,PAGENO  ;PRINT PAGE NUMBER TOO\r
19343         001720' 254000  014107'                 JRST OUTLE8]\r
19344         001721' 200400  013414'         MOVE CS,PAGENO  ;NOW CHECK PAGE NUMBER\r
19345         001722' 312400  013416'         CAME CS,LSTPGN\r
19346                                 OUTLE8: JRST    [MOVEM CS,LSTPGN\r
19347                                                 MOVEI CS,[ASCIZ /PAGE /]\r
19348                                                 PUSHJ PP,OUTAS0\r
19349                                                 MOVE C,PAGENO\r
19350                                                 PUSHJ PP,DNC\r
19351                                                 PUSHJ PP,OUTCR  ;AND NOW FOR THE ERROR LINE\r
19352         001723' 254000  014120'                 JRST .+1]\r
19353         001724' 502617  000000          HLLM ER,(PP)    ;RESTORE ER BUT NOT IO (LEFT HALF OF AC)\r
19354         001725' 262740  000014          POP PP,ER\r
19355         001726' 200400  014132'         MOVE    CS,[POINT 7,[ASCII / QXADLRUVNOPEM/]]\r
19356         001727' 134340  000010  OUTLE2: ILDB    C,CS            ;GET ERROR MNEMONIC\r
19357         001730' 325000  001733'         JUMPGE  AC0,OUTLE4      ;BRANCH IF NOT FLAGGED\r
19358         001731' 260740  010325'         PUSHJ   PP,OUTL         ;OUTPUT THE CHARACTER\r
19359         001732' 350000  012726'         AOS     ERRCNT          ;INCREMENT ERROR COUNT\r
19360         001733' 242000  000001  OUTLE4: LSH     AC0,1           ;SHIFT NEXT FLAG INTO SIGN BIT\r
19361 \r\fMACRO V.10                     PAGE 38\r
19362         LISTING ROUTINES\r
19363 \r
19364         001734' 326000  001727'         JUMPN   AC0,OUTLE2      ;TEST FOR END\r
19365         001735' 263740  000000          POPJ    PP,             ;EXIT\r
19366 \r\fMACRO V.10                     PAGE 39\r
19367         LISTING ROUTINES\r
19368 \r
19369         001736' 665640  000001  OUTIM1: TLOA    FR,IOSCR        ;SUPPRESS CRLF AFTER LINE\r
19370         001737' 621640  000001  OUTIM:  TLZ     FR,IOSCR        ;DON'T FOR PARTIAL LINE\r
19371         001740' 603600  000001          TLNE    IO,IOSALL       ;SUPPRESSING ALL?\r
19372         001741' 326540  003360'         JUMPN   MRP,CPOPJ       ;YES ,EXIT IF IN MACRO\r
19373         001742' 321640  001773'         JUMP1   OUTLI1          ;BYPASS IF PASS ONE\r
19374         001743' 261740  000014          PUSH    PP,ER\r
19375         001744' 630600  013256'         TDZ     ER,TYPERR\r
19376         001745' 607600  250000          TLNN    IO,IOMSTR!IOPROG!IOMAC\r
19377         001746' 434600  013042'         IOR     ER,OUTSW\r
19378         001747' 261740  000007          PUSH    PP,C            ;OUTPUT IMAGE\r
19379         001750' 607640  002000          TLNN    FR,CREFSW\r
19380         001751' 260740  012274'         PUSHJ   PP,CLSCRF\r
19381         001752' 200400  013226' OUTIM2: MOVE    CS,TABP\r
19382         001753' 260740  002775'         PUSHJ   PP,OUTASC       ;OUTPUT TABS\r
19383         001754' 136340  013003'         IDPB    C,LBUFP         ;STORE ZERO TERMINATOR\r
19384         001755' 201400  013004'         MOVEI   CS,LBUF\r
19385         001756' 260740  002774'         PUSHJ   PP,OUTAS0       ;OUTPUT THE IMAGE\r
19386         001757' 627640  000001          TLZN    FR,IOSCR        ;CRLF SUPPRESS?\r
19387         001760' 260740  010316'         PUSHJ   PP,OUTCR        ;NO,OUTPUT\r
19388         001761' 262740  000007          POP     PP,C\r
19389         001762' 502617  000000          HLLM    ER,0(PP)\r
19390         001763' 262740  000014          POP     PP,ER\r
19391         001764' 254000  001774'         JRST    OUTLI2\r
19392 \r
19393         001765' 603600  000001  OUTLI:  TLNE    IO,IOSALL       ;SUPPRESSING ALL\r
19394         001766' 326540  001772'         JUMPN   MRP,OUTLI3      ;YES,SET FLAG IN REPEATS ALSO\r
19395         001767' 603600  004000          TLNE    IO,IOPALL       ;MACRO EXPANSION SUPRESS REQUESTED?\r
19396         001770' 336000  013406'         SKIPN   MACLVL          ;YES, ARE WE IN MACRO?\r
19397         001771' 625600  010000          TLZA    IO,IOMAC        ;NO, CLEAR MAC FLAG\r
19398         001772' 661600  010000  OUTLI3: TLO     IO,IOMAC        ;YES, SET FLAG\r
19399 \r
19400         001773' 620600  777763  OUTLI1: TRZ     ER,ERRORS!LPTSW!TTYSW\r
19401         001774' 200400  014133' OUTLI2: MOVE    CS,[POINT 7,LBUF]       ;INITIALIZE BUFFERS\r
19402         001775' 202400  013003'         MOVEM   CS,LBUFP\r
19403         001776' 200400  014134'         MOVE    CS,[POINT 7,TABI,6]\r
19404         001777' 202400  013226'         MOVEM   CS,TABP\r
19405         002000' 201400  000130          MOVEI   CS,.CPL\r
19406         002001' 202400  013265'         MOVEM   CS,CPL\r
19407         002002' 205400  044000          MOVSI   CS,(ASCII /     /)\r
19408         002003' 332000  012544'         SKIPE   SEQNO           ;HAVE WE SEQUENCE NUMBERS?\r
19409         002004' 202400  012544'         MOVEM   CS,SEQNO        ;YES, STORE TAB IN CASE OF MACRO\r
19410         002005' 202400  012545'         MOVEM   CS,SEQNO+1      ;STORE TAB AND TERMINATOR\r
19411         002006' 402000  013323'         SETZM   ASGBLK\r
19412         002007' 402000  013324'         SETZM   LOCBLK\r
19413         002010' 263740  000000          POPJ    PP,\r
19414 \r\fMACRO V.10                     PAGE 40\r
19415         LISTING ROUTINES\r
19416 \r
19417         002011' 603600  000001  OUTIML: TLNE    IO,IOSALL       ;SUPPRESSING ALL?\r
19418         002012' 326540  003360'         JUMPN   MRP,CPOPJ       ;YES,EXIT IF IN MACRO\r
19419         002013' 606600  577760          TRNN ER,ERRORS-ERRQ     ;FOR LITERALS (MULIT-LINE) OUTPUT ERRORS\r
19420         002014' 603640  000010          TLNE FR,ERRQSW\r
19421         002015' 620600  200000          TRZ ER,ERRQ\r
19422         002016' 514400  000014          HRLZ CS,ER\r
19423         002017' 321640  002036'         JUMP1 OUTML1    ;CHECK PASS1 ERRORS\r
19424         002020' 630600  013256'         TDZ ER,TYPERR\r
19425         002021' 322400  001736'         JUMPE CS,OUTIM1\r
19426         002022' 261740  014100'         PUSH PP,[0]     ;ERRORS SHOULD BE ZEROED\r
19427         002023' 261740  000007          PUSH PP,C\r
19428         002024' 261740  000000          PUSH    PP,AC0  ;SAVE AC0 IN CASE CALLED FROM ASCII\r
19429         002025' 200000  000010          MOVE    AC0,CS  ;ERROR ROUTINE WANTS FLAGS IN AC0\r
19430         002026' 434600  013042'         IOR ER,OUTSW\r
19431         002027' 607640  002000          TLNN FR,CREFSW\r
19432         002030' 260740  012274'         PUSHJ PP,CLSCRF ;FIX CREF\r
19433         002031' 623000  000020          TLZE AC0,ERRM\r
19434         002032' 661000  000100          TLO AC0,ERRP\r
19435         002033' 260740  001712'         PUSHJ PP,OUTLER ;OUTPUT THEM\r
19436         002034' 262740  000000          POP     PP,AC0\r
19437         002035' 254000  001752'         JRST OUTIM2     ;AND LINE\r
19438         \r
19439         002036' 621400  776640  OUTML1: TLZ CS,ERRORS-ERRM-ERRP-ERRV\r
19440         002037' 322400  001774'         JUMPE CS,OUTLI2 ;NONE\r
19441         002040' 620600  001120          TRZ ER,ERRM!ERRP!ERRV\r
19442         002041' 660600  010000          TRO ER,ERRL\r
19443         002042' 261740  000014          PUSH PP,ER      ;SAVE\r
19444         002043' 261740  000007          PUSH PP,C       ;SAVE THIS\r
19445         002044' 261740  000000          PUSH    PP,AC0  ;AS ABOVE\r
19446         002045' 200000  000010          MOVE    AC0,CS          ;...\r
19447         002046' 630600  013256'         TDZ ER,TYPERR\r
19448         002047' 434600  013042'         IOR ER,OUTSW\r
19449         002050' 201400  012541'         MOVEI CS,TAG\r
19450         002051' 260740  003001'         PUSHJ PP,OUTSIX\r
19451         002052' 550340  013377'         HRRZ C,TAGINC\r
19452         002053' 260740  002765'         PUSHJ PP,DNC\r
19453         002054' 260740  010307'         PUSHJ PP,OUTTAB\r
19454         002055' 260740  001712'         PUSHJ PP,OUTLER ;DO NOT FORGET ERRORS\r
19455         002056' 260740  010307'         PUSHJ PP,OUTTAB\r
19456         002057' 201400  013004'         MOVEI CS,LBUF   ;PRINT REST OF LINE\r
19457         002060' 260740  002420'         PUSHJ PP,SOUT20\r
19458         002061' 262740  000000          POP     PP,AC0\r
19459         002062' 262740  000007          POP PP,C\r
19460         002063' 262740  000014          POP PP,ER\r
19461         002064' 254000  001774'         JRST OUTLI2\r
19462 \r\fMACRO V.10                     PAGE 41\r
19463         OUTPUT ROUTINES\r
19464 \r
19465                                 SUBTTL  OUTPUT ROUTINES\r
19466         002065' 260740  003025' UOUT:   PUSHJ   PP,LOOKUP       ;SET FOR TABLE SCAN\r
19467         002066' 606240  004000          TRNN ARG,PNTF   ;WFW\r
19468         002067' 606240  002000          TRNN    ARG,UNDF\r
19469         002070' 254000  002107'         JRST    UOUT13          ;TEST FOR UNDF!EXTF!PNTF ON PASS2\r
19470         002071' 325640  002113'         JUMP2   UOUT10\r
19471         002072' 607600  000020          TLNN    IO,IOIOPF       ;ANY IOP'S SEEN\r
19472         002073' 254000  002103'         JRST    UOUT12          ;NO,MAKE EXTERNAL\r
19473         002074' 205400  777700          MOVSI   CS,PRMTBL-PRMEND;YES LOOKUP IN TABLE\r
19474         002075' 312010  011720' UOUT1:  CAME    AC0,PRMTBL(CS)  ;HAVE WE A MATCH?\r
19475         002076' 253400  002102'         AOBJN   CS,UOUT2        ;NO,INCREMENT AND JUMP\r
19476         002077' 200250  011721'         MOVE    ARG,PRMTBL+1(CS);YES,GET VALUE\r
19477         002100' 202244  000000          MOVEM   ARG,(SX)        ;UPDATE SYMBOL TABLE\r
19478         002101' 263740  000000          POPJ    PP,             ;EXIT\r
19479         002102' 253400  002075' UOUT2:  AOBJN   CS,UOUT1        ;TEST FOR END\r
19480 \r
19481         002103' 260740  003726' UOUT12: PUSHJ   PP,EXTER2       ;MAKE IT EXTERNAL\r
19482         002104' 205240  002000          MOVSI   ARG,UNDF        ;BUT PUT UNDF BACK ON\r
19483         002105' 436244  000000          IORM    ARG,(SX)        ;SO MESSAGE WILL COME OUT\r
19484         002106' 263740  000000          POPJ    PP,             ;GET NEXT SYMBOL\r
19485 \r
19486         002107' 321640  003360' UOUT13: JUMP1   CPOPJ   ;RECYCLE ON PASS1\r
19487         002110' 640240  007000          TRC ARG,UNDF!EXTF!PNTF  ;CHECK FOR ALL THREE ON\r
19488         002111' 642240  007000          TRCE ARG,UNDF!EXTF!PNTF ;ARE THEY?\r
19489         002112' 263740  000000          POPJ    PP,             ;NO, RECYCLE\r
19490         002113' 260740  010316' UOUT10: PUSHJ PP,OUTCR\r
19491         002114' 260740  003010'         PUSHJ   PP,OUTSYM       ;OUTPUT THE SYMBOL\r
19492         002115' 201400  014135'         MOVEI   CS,[SIXBIT /UNASSIGNED, DEFINED AS IF EXTERNAL @/]\r
19493         002116' 254000  003001'         JRST    OUTSIX          ;POPJ FOR NEXT SYMBOL\r
19494 \r
19495         002117' 260740  002751' UOUT30: PUSHJ   PP,ONC1         ;OUTPUT THE LOCATION\r
19496         002120' 254000  004146'         JRST    HIGHQ           ;EXIT THROUGH HIGHQ\r
19497 \r\fMACRO V.10                     PAGE 42\r
19498         OUTPUT ROUTINES\r
19499 \r
19500                                                                 ;OUTPUT THE ENTRIES\r
19501 \r
19502         002121' 201340  000000  EOUT:   MOVEI   C,0             ;INITIALIZE THE COUNT\r
19503         002122' 200200  013102'         MOVE    SX,SYMBOL\r
19504         002123' 200144  000000          MOVE    SDEL,0(SX)\r
19505         002124' 361140  002132' EOUT1:  SOJL    SDEL,EOUT2      ;TEST FOR END\r
19506         002125' 271200  000002          ADDI    SX,2\r
19507         002126' 554244  000000          HLRZ    ARG,0(SX)\r
19508         002127' 411240  400600          ANDCAI  ARG,SYMF!INTF!ENTF\r
19509         002130' 326240  002124'         JUMPN   ARG,EOUT1       ;IF INVALID, DON'T COUNT\r
19510         002131' 344340  002124'         AOJA    C,EOUT1         ;BUMP COUNT\r
19511 \r
19512         002132' 505340  000004  EOUT2:  HRLI    C,4             ;BLOCK TYPE 4\r
19513         002133' 260740  010122'         PUSHJ   PP,OUTBIN\r
19514         002134' 403340  000005          SETZB   C,ARG\r
19515         002135' 260740  010122'         PUSHJ   PP,OUTBIN\r
19516         002136' 200200  013102'         MOVE    SX,SYMBOL\r
19517         002137' 200144  000000          MOVE    SDEL,0(SX)\r
19518         002140' 201300  000022          MOVEI   V,^D18\r
19519 \r
19520         002141' 361140  000446' EOUT3:  SOJL    SDEL,POPOUT\r
19521         002142' 271200  000002          ADDI    SX,2\r
19522         002143' 554344  000000          HLRZ    C,0(SX)\r
19523         002144' 411340  400600          ANDCAI  C,SYMF!INTF!ENTF\r
19524         002145' 326340  002141'         JUMPN   C,EOUT3\r
19525         002146' 365300  002151'         SOJGE   V,EOUT4         ;TEST END OF BLOCK\r
19526         002147' 260740  010122'         PUSHJ   PP,OUTBIN\r
19527         002150' 201300  000021          MOVEI   V,^D17  ;WFW\r
19528         002151' 200004  777777  EOUT4:  MOVE    AC0,-1(SX)\r
19529         002152' 260740  004677'         PUSHJ   PP,SQOZE\r
19530         002153' 200340  000000          MOVE    C,AC0\r
19531         002154' 260740  010122'         PUSHJ   PP,OUTBIN\r
19532         002155' 254000  002141'         JRST    EOUT3\r
19533 \r\fMACRO V.10                     PAGE 43\r
19534         OUTPUT ROUTINES\r
19535 \r
19536                                                                 ;OUTPUT THE SYMBOLS\r
19537 \r
19538         002156' 336000  013257' SOUT:   SKIPN   IONSYM          ;SKIP IF NOSYM SEEN\r
19539         002157' 606600  000003          TRNN    ER,LPTSW!TTYSW  ;A LISTING REQUIRED?\r
19540         002160' 254000  002314'         JRST    SOUT1           ;NO\r
19541         002161' 201000  014143'         MOVEI   [ASCIZ /SYMBOL TABLE/]\r
19542         002162' 542000  013100'         HRRM    SUBTTX          ;SET NEW SUB-TITLE\r
19543         002163' 260740  010417'         PUSHJ   PP,OUTFF        ;FORCE NEW PAGE\r
19544         002164' 260740  002166'         PUSHJ PP,LOUT1          ;OUTPUT THEM\r
19545         002165' 254000  002314'         JRST    SOUT1           ;NOW FOR BLOCK TYPE 2\r
19546 \r
19547         002166' 260740  002263' LOUT1:  PUSHJ   PP,LLUKUP       ;SET FOR TABLE SCAN\r
19548         002167' 606240  400000          TRNN    ARG,SYMF\r
19549         002170' 606240  060000          TRNN    ARG,MACF!SYNF\r
19550         002171' 634540  000013          TDZA    MRP,MRP         ;SKIP AND CLEAR MRP\r
19551         002172' 263740  000000          POPJ    PP,             ;NO, TRY AGAIN\r
19552         002173' 602240  000400          TRNE    ARG,INTF\r
19553         002174' 201540  000001          MOVEI   MRP,1\r
19554         002175' 602240  001000          TRNE    ARG,EXTF\r
19555         002176' 211540  000001          MOVNI   MRP,1           ;MRP=-1 FOR EXTERNAL\r
19556         002177' 602240  040000          TRNE    ARG,SYNF        ;SYNONYM?\r
19557         002200' 321540  000446'         JUMPL   MRP,POPOUT      ;YES, DON'T OUTPUT IF EXTERNAL\r
19558         002201' 602240  000004          TRNE ARG,SUPRBT         ;IF SUPRESSED\r
19559                                 ;       JUMPGE MRP,POPOUT       ;DO NOT OUTPUT UNLESS EXTERNAL\r
19560         002202' 263740  000000          POPJ    PP,             ;DO NOT OUTPUT\r
19561         002203' 350017  000000          AOS     (PP)            ;SET FOR SKIP RETURN IF SYMBOL IS PRINTED\r
19562         002204' 325540  002211'         JUMPGE  MRP,LOUT10      ;BRANCH IF NOT EXTERNAL\r
19563         002205' 554440  000006          HLRZ    RC,V            ;PUT POINTER/FLAGS IN RC\r
19564         002206' 602440  777776          TRNE    RC,-2           ;POINTER?\r
19565         002207' 204451  000000          MOVS    RC,0(RC)        ;YES\r
19566         002210' 500300  000011          HLL     V,RC            ;STORE LEFT VALUE\r
19567 \r
19568         002211' 261740  000011  LOUT10: PUSH PP,RC      ;SAVE FOR LATER\r
19569         002212' 260740  003010'         PUSHJ   PP,OUTSYM       ;OUTPUT THE NAME\r
19570         002213' 200457  000000          MOVE RC,(PP)    ;GET COPY\r
19571         002214' 201040  000000          MOVEI   AC1,0\r
19572         002215' 323540  002222'         JUMPLE  MRP,LOUT15      ;SET DEFFERRED BITS IF EXTERNAL\r
19573         002216' 603440  777776          TLNE    RC,-2           ;CHECK FOR LEFT FIXUP\r
19574         002217' 435040  000040          IORI    AC1,40          ;AND SET BITS\r
19575         002220' 602440  777776          TRNE    RC,-2           ;CHECK FOR RIGHT FIXUP\r
19576         002221' 435040  000020          IORI    AC1,20          ;AND SET BITS\r
19577         002222' 603440  777776  LOUT15: TLNE RC,-2      ;FIX RELOC AS 0 IF EXTERNAL\r
19578         002223' 553000  000011          HRRZS RC\r
19579         002224' 602440  777776          TRNE RC,-2\r
19580         002225' 513000  000011          HLLZS RC\r
19581         002226' 623440  777777          TLZE RC,-1\r
19582         002227' 660440  000002          TRO RC,2\r
19583         002230' 504540  000011          HRL MRP,RC\r
19584         002231' 201440  000000          MOVEI RC,0\r
19585         002232' 602240  000200          TRNE    ARG,ENTF        ;ENTRY DMN\r
19586         002233' 541540  777773          HRRI    MRP,-5\r
19587         002234' 602240  100000          TRNE ARG,NOOUTF         ;SUPRESS OUTPUT? WFW\r
19588         002235' 271540  000003          ADDI MRP,3              ;YES WFW\r
19589 \r\fMACRO V.10                     PAGE 43-1\r
19590         OUTPUT ROUTINES\r
19591 \r
19592         002236' 602240  002000          TRNE    ARG,UNDF        ;UNDEFINED IS EXTERNAL\r
19593         002237' 541540  000002          HRRI    MRP,2           ;SO FLAG AS UXT\r
19594         002240' 434053  002427'         IOR     AC1,SOUTC(MRP)\r
19595         002241' 200240  000001          MOVE ARG,AC1\r
19596         002242' 202000  013101'         MOVEM AC0,SVSYM         ;SAVE IT\r
19597         002243' 200000  000006          MOVE    AC0,V           ;GET THE VALUE\r
19598         002244' 554440  000013          HLRZ    RC,MRP          ;AND THE RELOCATION\r
19599         002245' 520400  000006          HLLO    CS,V\r
19600         002246' 602440  000002          TRNE    RC,2            ;LEFT HALF RELOCATABLE?\r
19601         002247' 624400  000001          TRZA    CS,1            ;NO, FLAG AND PRINT\r
19602         002250' 603400  777777          TLNE    CS,-1           ;IS THE LEFT HALF ZERO?\r
19603         002251' 260740  002751'         PUSHJ   PP,ONC1         ;NO, OUTPUT IT\r
19604         002252' 260740  010307' LOUT11: PUSHJ   PP,OUTTAB\r
19605         002253' 524400  000006  LOUT30: HRLO    CS,V\r
19606         002254' 630400  000011          TDZ     CS,RC           ;SET RELOCATION\r
19607         002255' 260740  002751'         PUSHJ   PP,ONC1\r
19608         002256' 260740  010307'         PUSHJ   PP,OUTTAB\r
19609         002257' 262740  000011          POP PP,RC               ;GET BACK RELOC AND CHECK EXTERNAL\r
19610         002260' 201413  002427' LOUT60: MOVEI   CS,SOUTC(MRP)\r
19611         002261' 260740  002774'         PUSHJ   PP,OUTAS0       ;EXT/INT\r
19612         002262' 254000  010316' LOUT64: JRST    OUTCR           ;CARRIAGE RETURN AND TRY FOR ANOTHER\r
19613 \r
19614 \r
19615 \r\fMACRO V.10                     PAGE 44\r
19616         OUTPUT ROUTINES\r
19617 \r
19618                                         SYN IFBLK,SYMBLK        ;SOMEWHERE TO STORE THE POINTERS\r
19619 \r
19620         002263' 262740  013040' LLUKUP: POP     PP,LOOKX        ;INTERCEPT RETURN POP\r
19621         002264' 200200  013102'         MOVE    SX,SYMBOL\r
19622         002265' 200144  000000          MOVE    SDEL,(SX)\r
19623         002266' 271200  000002          ADDI    SX,2            ;SKIP COUNT OF SYMBOLS\r
19624         002267' 202200  012730' LLUKP2: MOVEM   SX,SYMBLK       ;STORE SYMBOL POINTER IN TABLE\r
19625         002270' 550200  012730'         HRRZ    SX,SYMBLK\r
19626         002271' 254000  002300'         JRST    LLUKP7          ;ENTER LOOP\r
19627 \r
19628         002272' 202200  012730' LLUKP1: MOVEM   SX,SYMBLK       ;SAVE IT \r
19629         002273' 200004  777777          MOVE    AC0,-1(SX)\r
19630         002274' 260740  012340'         PUSHJ   PP,SRCH7\r
19631         002275' 557000  000005          HLRZS   ARG\r
19632         002276' 260760  013040'         PUSHJ   PP,@LOOKX\r
19633                                         JRST    [MOVEM SX,SYMBLK\r
19634         002277' 254000  014146'                 JRST    .+1]\r
19635         002300' 361140  000446' LLUKP7: SOJL    SDEL,POPOUT     ;TEST FOR END\r
19636         002301' 200200  012730' LLUKP3: MOVE    SX,SYMBLK       ;GET NEXT POINTER\r
19637         002302' 252200  002311'         AOBJP   SX,LLUKP4\r
19638         002303' 550300  000004          HRRZ    V,SX\r
19639         002304' 317300  013103'         CAMG    V,SYMTOP\r
19640         002305' 344200  002272'         AOJA    SX,LLUKP1\r
19641         002306' 260740  002262' LLUKP6: PUSHJ   PP,LOUT64       ;RESET SYMCNT\r
19642         002307' 322140  000446'         JUMPE   SDEL,POPOUT     ;EXIT IF ALL DONE\r
19643         002310' 254000  002301'         JRST    LLUKP3\r
19644 \r
19645         002311' 340200  000000  LLUKP4: AOJ     SX,\r
19646         002312' 202200  012730'         MOVEM   SX,SYMBLK\r
19647         002313' 254000  002301'         JRST    LLUKP3\r
19648 \r\fMACRO V.10                     PAGE 45\r
19649         OUTPUT ROUTINES\r
19650 \r
19651         002314' 260740  003025' SOUT1:  PUSHJ   PP,LOOKUP       ;SET FOR TABLE SCAN\r
19652         002315' 606240  400000          TRNN    ARG,SYMF\r
19653         002316' 606240  060000          TRNN    ARG,MACF!SYNF\r
19654         002317' 634540  000013          TDZA    MRP,MRP         ;SKIP AND CLEAR MRP\r
19655         002320' 263740  000000          POPJ    PP,             ;NO, TRY AGAIN\r
19656         002321' 602240  000400          TRNE    ARG,INTF\r
19657         002322' 201540  000001          MOVEI   MRP,1\r
19658         002323' 602240  001000          TRNE    ARG,EXTF\r
19659         002324' 211540  000001          MOVNI   MRP,1           ;MRP=-1 FOR EXTERNAL\r
19660         002325' 602240  040000          TRNE    ARG,SYNF        ;SYNONYM?\r
19661         002326' 321540  000446'         JUMPL   MRP,POPOUT      ;YES, DON'T OUTPUT IF EXTERNAL\r
19662         002327' 602240  000004          TRNE ARG,SUPRBT         ;IF SUPRESSED\r
19663                                 ;       JUMPGE MRP,POPOUT       ;DO NOT OUTPUT UNLESS EXTERNAL\r
19664         002330' 263740  000000          POPJ    PP,             ;DO NOT OUTPUT\r
19665         002331' 325540  002336'         JUMPGE  MRP,SOUT10      ;BRANCH IF NOT EXTERNAL\r
19666         002332' 554440  000006          HLRZ    RC,V            ;PUT POINTER/FLAGS IN RC\r
19667         002333' 602440  777776          TRNE    RC,-2           ;POINTER?\r
19668         002334' 204451  000000          MOVS    RC,0(RC)        ;YES\r
19669         002335' 500300  000011          HLL     V,RC            ;STORE LEFT VALUE\r
19670 \r
19671         002336' 261740  000011  SOUT10: PUSH PP,RC      ;SAVE FOR LATER\r
19672         002337' 201040  000000          MOVEI   AC1,0\r
19673         002340' 323540  002345'         JUMPLE  MRP,SOUT15      ;SET DEFFERRED BITS IF EXTERNAL\r
19674         002341' 603440  777776          TLNE    RC,-2           ;CHECK FOR LEFT FIXUP\r
19675         002342' 435040  000040          IORI    AC1,40          ;AND SET BITS\r
19676         002343' 602440  777776          TRNE    RC,-2           ;CHECK FOR RIGHT FIXUP\r
19677         002344' 435040  000020          IORI    AC1,20          ;AND SET BITS\r
19678         002345' 603440  777776  SOUT15: TLNE RC,-2      ;FIX RELOC AS 0 IF EXTERNAL\r
19679         002346' 553000  000011          HRRZS RC\r
19680         002347' 602440  777776          TRNE RC,-2\r
19681         002350' 513000  000011          HLLZS RC\r
19682         002351' 623440  777777          TLZE RC,-1\r
19683         002352' 660440  000002          TRO RC,2\r
19684         002353' 504540  000011          HRL MRP,RC\r
19685         002354' 201440  000000          MOVEI RC,0\r
19686         002355' 602240  000200          TRNE    ARG,ENTF        ;ENTRY DMN\r
19687         002356' 541540  777773          HRRI    MRP,-5\r
19688         002357' 602240  100000          TRNE ARG,NOOUTF         ;SUPRESS OUTPUT? WFW\r
19689         002360' 271540  000003          ADDI MRP,3              ;YES WFW\r
19690         002361' 434053  002427'         IOR     AC1,SOUTC(MRP)\r
19691         002362' 200240  000001          MOVE ARG,AC1\r
19692         002363' 260740  002624'         PUSHJ   PP,NOUT2        ;SQUOZE AND DUMP THE SYMBOL\r
19693         002364' 202000  013101'         MOVEM AC0,SVSYM         ;SAVE IT\r
19694         002365' 200000  000006          MOVE    AC0,V           ;GET THE VALUE\r
19695         002366' 554440  000013          HLRZ    RC,MRP          ;AND THE RELOCATION\r
19696         002367' 260740  002640'         PUSHJ   PP,COUT\r
19697         002370' 262740  000011          POP PP,RC               ;GET BACK RELOC AND CHECK EXTERNAL\r
19698         002371' 606440  777776          TRNN RC,-2              ;IS IT?\r
19699         002372' 254000  002404'         JRST SOUT50             ;NO\r
19700         002373' 200011  000001          MOVE AC0,1(RC)          ;GET NAME\r
19701         002374' 201240  000060          MOVEI ARG,60            ;EXTERNAL REQ\r
19702         002375' 260740  004677'         PUSHJ PP,SQOZE\r
19703         002376' 513000  000011          HLLZS RC        ;NO RELOC\r
19704 \r\fMACRO V.10                     PAGE 45-1\r
19705         OUTPUT ROUTINES\r
19706 \r
19707         002377' 260740  002640'         PUSHJ PP,COUT   ;OUTPUT IT\r
19708         002400' 200000  013101'         MOVE AC0,SVSYM  ;GET SYMBOL NAME\r
19709         002401' 661000  500000          TLO AC0,500000  ;SET AS ADDITIVE SYMBOL\r
19710         002402' 621000  200000          TLZ AC0,200000  ;BUT NOT LEFT HALF ETC\r
19711         002403' 260740  002640'         PUSHJ PP,COUT\r
19712         002404' 207000  000011  SOUT50: MOVSS RC        ;CHECK LEFT HALF\r
19713         002405' 606440  777776          TRNN RC,-2\r
19714         002406' 254000  002417'         JRST SOUT60\r
19715         002407' 200011  000001          MOVE AC0,1(RC)\r
19716         002410' 201240  000060          MOVEI ARG,60\r
19717         002411' 260740  004677'         PUSHJ PP,SQOZE\r
19718         002412' 201440  000000          MOVEI RC,0\r
19719         002413' 260740  002640'         PUSHJ PP,COUT\r
19720         002414' 200000  013101'         MOVE AC0,SVSYM\r
19721         002415' 661000  700000          TLO AC0,700000\r
19722         002416' 260740  002640'         PUSHJ PP,COUT\r
19723         002417' 263740  000000  SOUT60: POPJ    PP,\r
19724 \r
19725         002420' 260740  002774' SOUT20: PUSHJ PP,OUTAS0\r
19726         002421' 254000  010316'         JRST OUTCR\r
19727 \r
19728         002422' 426352  400004          <ASCII /ENT/>!04        ;DMN\r
19729         002423' 000000  000000          Z\r
19730         002424' 000000  000000          Z\r
19731         002425' 516131  600044          <ASCII /SEN/>!44        ;SUPRESSED ENTRY\r
19732         002426' 426612  400060          <ASCII /EXT/>!60\r
19733         002427' 000000  000010  SOUTC:  EXP     10\r
19734         002430' 446352  400004          <ASCII /INT/>!04\r
19735         002431' 526612  400060          <ASCII /UXT/>!60        ;UNDEFINED EXTERNAL\r
19736         002432' 516410  400050          <ASCII /SPD/>!50\r
19737         002433' 516231  600044          <ASCII /SIN/>!44        ;DMN\r
19738 \r\fMACRO V.10                     PAGE 46\r
19739         OUTPUT ROUTINES\r
19740 \r
19741                                                                 ;OUTPUT THE BINARY\r
19742 \r
19743         002434' 524400  013326' BOUT:   HRLO    CS,LOCO         ;PICKUP THE LOCATION\r
19744         002435' 260740  002747'         PUSHJ   PP,ONC          ;OUTPUT IT TO THE LISTING FILE\r
19745         002436' 201340  000047          MOVEI   C,"'"\r
19746         002437' 332000  013334'         SKIPE   MODO            ;IF MODE IS NOT ABSOLUTE\r
19747         002440' 260740  010377'         PUSHJ   PP,OUTC         ;PRINT A SINGLE QUOTE\r
19748         002441' 260740  002712'         PUSHJ   PP,DSTOW        ;GET THE CODE\r
19749         002442' 261740  000011          PUSH PP,RC      ;SAVE RELOC\r
19750         002443' 261740  000011          PUSH    PP,RC   ;AND AGAIN\r
19751         002444' 603440  777776          TLNE RC,-2      ;CHECK LEFT EXTERNAL\r
19752         002445' 553000  000011          HRRZS RC        ;MAKE LEFT NON-RELOC\r
19753         002446' 606440  777776          TRNN RC,-2      ;RIGHT EXT?\r
19754         002447' 254000  002470'         JRST BOUT30     ;NO\r
19755         002450' 550040  000000          HRRZ AC1,AC0    ;YES\r
19756         002451' 322040  002454'         JUMPE AC1,BOUT20        ;PROCESS IF ZERO CODE THERE\r
19757         002452' 513000  000011          HLLZS RC        ;MAKE NON-RELOC\r
19758         002453' 254000  002470'         JRST BOUT30     ;PROCESS\r
19759 \r
19760 \r\fMACRO V.10                     PAGE 47\r
19761         OUTPUT ROUTINES\r
19762 \r
19763         002454'                 BOUT20:\r
19764         002454' 542057  777777          HRRM AC1,-1(PP) ;FIX RC IN STACK SO NO CONFUSION WFW (AC1 HAS 0)\r
19765         002455' 540011  000000          HRR     AC0,0(RC)       ;NO, SET ADDRESS LINK\r
19766         002456' 200040  013326'         MOVE    AC1,LOCO        ;GET CURRENT LOCATION\r
19767         002457' 542051  000000          HRRM    AC1,0(RC)       ;SET NEW LINK\r
19768         002460' 554051  000000          HLRZ    AC1,0(RC)       ;GET FLAGS/POINTER\r
19769         002461' 606040  777776          TRNN    AC1,-2          ;POINTER?\r
19770         002462' 540040  000011          HRR     AC1,RC          ;NO, SET TO FLAGS\r
19771         002463' 544441  000000          HLR     RC,0(AC1)       ;PUT FLAGS IN RC\r
19772         002464' 504040  013334'         HRL     AC1,MODO        ;GET CURRENT MODE\r
19773         002465' 622440  777776          TRZE    RC,-2           ;LEFT HALF RELOCATABLE+\r
19774         002466' 661040  000002          TLO     AC1,2           ;YES, SET FLAG\r
19775         002467' 502041  000000          HLLM    AC1,0(AC1)      ;STORE NEW FLAGS\r
19776         002470' 520400  000000  BOUT30: HLLO    CS,AC0\r
19777         002471' 623440  000001          TLZE    RC,1            ;PACK RELOCATION BITS\r
19778         002472' 660440  000002          TRO     RC,2\r
19779         002473' 602440  000002          TRNE    RC,2            ;LEFT HALF RELOCATABLE?\r
19780         002474' 620400  000001          TRZ     CS,1            ;YES, RESET BIT\r
19781         002475' 261740  000000          PUSH    PP,AC0          ;NEED AN AC\r
19782         002476' 554017  777777          HLRZ    AC0,-1(PP)      ;AC0 = LEFT RELOCATION\r
19783         002477' 303000  000001          CAILE   AC0,1           ;EXTERNAL?\r
19784         002500' 431400  001001          XORI    CS,EXTF!1       ;YES, SET SWITCH\r
19785 \r\fMACRO V.10                     PAGE 48\r
19786         OUTPUT ROUTINES\r
19787 \r
19788         002501' 262740  000000          POP     PP,AC0          ;RESTORE\r
19789         002502' 260740  002747'         PUSHJ   PP,ONC\r
19790         002503' 524400  000000          HRLO    CS,AC0\r
19791         002504' 630400  000011          TDZ     CS,RC           ;SET RELOCATION\r
19792         002505' 550357  000000          HRRZ    C,(PP)          ;C = RIGHT RELOCATION\r
19793         002506' 303340  000001          CAILE   C,1             ;EXTERNAL\r
19794         002507' 431400  001001          XORI    CS,EXTF!1       ;YES, SET SWITCH\r
19795         002510' 260740  002747'         PUSHJ   PP,ONC\r
19796         002511' 262740  000010  BOUT3I: POP     PP,CS           ;GET RID OF ENTRY ON STACK\r
19797         002512' 550400  013326'         HRRZ    CS,LOCO\r
19798         002513' 603640  004500          TLNE    FR,RIMSW!RIM1SW!R1BSW   ;RIM OUTPUT?\r
19799         002514' 254000  010076'         JRST    ROUT            ;YES, GO PROCESS\r
19800 \r
19801         002515' 504400  013334'         HRL     CS,MODO\r
19802         002516' 312400  013333'         CAME    CS,MODLOC       ;SEQUENCE OR RELOCATION BREAK?\r
19803         002517' 260740  002645'         PUSHJ   PP,COUTD        ;YES, DUMP THE BUFFER\r
19804         002520' 331000  012700'         SKIPL   COUTX           ;NEW BUFFER?\r
19805         002521' 254000  002530'         JRST    BOUT40          ;NO, STORE CODE AND EXIT\r
19806         002522' 202400  013333'         MOVEM   CS,MODLOC       ;YES, STORE NEW VALUES\r
19807         002523' 250000  013326'         EXCH    AC0,LOCO\r
19808         002524' 250440  013334'         EXCH    RC,MODO\r
19809         002525' 260740  002640'         PUSHJ   PP,COUT         ;STORE BLOCK LOCATION AND MODE\r
19810         002526' 250440  013334'         EXCH    RC,MODO         ;RESTORE CURRENT VALUES\r
19811         002527' 250000  013326'         EXCH    AC0,LOCO\r
19812 \r
19813 \r\fMACRO V.10                     PAGE 49\r
19814         OUTPUT ROUTINES\r
19815 \r
19816         002530' 260740  002640' BOUT40: PUSHJ PP,COUT   ;EMIT CODE\r
19817         002531' 262740  000011          POP PP,RC       ;RETRIEVE EXTERNAL BITS\r
19818         002532' 606440  777776          TRNN RC,-2      ;RIGHT EXTERNAL?\r
19819         002533' 254000  002555'         JRST BOUT50     ;TRY FOR LEFT\r
19820         002534' 260740  002645'         PUSHJ PP,COUTD\r
19821         002535' 261740  012677'         PUSH PP,BLKTYP  ;TERMINATE TYPE AND SAVE\r
19822         002536' 201000  000002          MOVEI AC0,2     ;BLOCK TYPE 2\r
19823         002537' 202000  012677'         MOVEM AC0,BLKTYP\r
19824         002540' 200011  000001          MOVE AC0,1(RC)  ;GET SYMBOL\r
19825         002541' 201240  000060          MOVEI ARG,60    ;CODE BITS\r
19826         002542' 260740  004677'         PUSHJ PP,SQOZE  ;CONVERT TO RADIX 50\r
19827         002543' 513000  000011          HLLZS RC        ;SYMBOL HAS NO RELOCATION\r
19828         002544' 260740  002640'         PUSHJ PP,COUT   ;EMIT\r
19829         002545' 200000  013326'         MOVE AC0,LOCO   ;GET CURRENT LOC\r
19830         002546' 505000  400000          HRLI AC0,400000 ;ADDITIVE REQ\r
19831         002547' 540440  013334'         HRR RC,MODO     ;CURRENT MODE\r
19832         002550' 260740  002640'         PUSHJ PP,COUT   ;EMIT\r
19833         002551' 207000  000011          MOVSS RC        ;NOW FOR LEFT\r
19834         002552' 606440  777776          TRNN RC,-2\r
19835         002553' 254000  002575'         JRST BOUT60\r
19836         002554' 254000  002564'         JRST BOUT70\r
19837         002555' 207000  000011  BOUT50: MOVSS RC        ;CHECK OTHER HALF\r
19838         002556' 606440  777776          TRNN RC,-2              ;LEFT HALF EXTERNAL?\r
19839         002557' 254000  002577'         JRST BOUT80     ;NO, FALSE ALARM\r
19840         002560' 260740  002645'         PUSHJ PP,COUTD  ;CHANGE MODE\r
19841         002561' 261740  012677'         PUSH PP,BLKTYP\r
19842         002562' 201000  000002          MOVEI AC0,2\r
19843         002563' 202000  012677'         MOVEM AC0,BLKTYP\r
19844         002564' 200011  000001  BOUT70: MOVE AC0,1(RC)\r
19845         002565' 201240  000060          MOVEI ARG,60\r
19846         002566' 260740  004677'         PUSHJ PP,SQOZE\r
19847         002567' 513000  000011          HLLZS RC\r
19848         002570' 260740  002640'         PUSHJ PP,COUT\r
19849         002571' 200000  013326'         MOVE AC0,LOCO\r
19850         002572' 505000  600000          HRLI AC0,600000 ;LEFT HALF ADD\r
19851         002573' 540440  013334'         HRR RC,MODO\r
19852         002574' 260740  002640'         PUSHJ PP,COUT   ;EMIT\r
19853         002575' 260740  002645' BOUT60: PUSHJ PP,COUTD  ;CHANGE MODE\r
19854         002576' 262740  012677'         POP PP,BLKTYP   ;TO OLD ONE\r
19855         002577' 350000  013326' BOUT80: AOS LOCO\r
19856         002600' 350000  013333'         AOS MODLOC\r
19857         002601' 263740  000000          POPJ PP,\r
19858 \r
19859 \r\fMACRO V.10                     PAGE 50\r
19860         OUTPUT ROUTINES\r
19861 \r
19862         002602' 200300  014150' NOUT:   MOVE    V,[POINT 7,TBUF]        ;POINTER TO ASCII LINE\r
19863         002603' 205400  440600          MOVSI   CS,(POINT 6,AC0)        ;POINTER TO SIXBIT AC0\r
19864         002604' 403240  000000          SETZB   ARG,AC0\r
19865         002605' 134340  000006  NOUT1:  ILDB    C,V             ;GET ASCII\r
19866         002606' 301340  000141          CAIL C,"A"+40\r
19867         002607' 303340  000172          CAILE C,"Z"+40\r
19868         002610' 254000  002612'         JRST    .+2\r
19869         002611' 624340  000100          TRZA    C,100           ;LOWER CASE TO SIXBIT\r
19870         002612' 275340  000040          SUBI    C,40            ;CONVERT TO SIXBIT\r
19871         002613' 323340  002621'         JUMPLE  C,NOUT3         ;TEST FORM NON-SIXBIT\r
19872         002614' 303340  000077          CAILE   C,77            ;AND NOT GREATER THAN SIXBIT\r
19873         002615' 254000  002621'         JRST    NOUT3           ;...\r
19874         002616' 136340  000010          IDPB    C,CS            ;DEPOSIT IN AC0\r
19875         002617' 603400  770000          TLNE    CS,770000       ;TEST FOR SIX CHARACTERS\r
19876         002620' 254000  002605'         JRST    NOUT1           ;NO, GET ANOTHER\r
19877         002621'                 NOUT3:\r
19878                                 IFN UNIVR,<SKIPGE       UNIVSN          ;IF A UNIVERSAL PROG>\r
19879         002621' 263740  000000          POPJ    PP,             ;RETURN TO PUT IT IN THE TABLE\r
19880 \r
19881         002622' 607600  000002  IFN CCLSW,<     TLNN IO,IOTLSN  ;AND IF WE HAVE NOT SEEN A TITLE\r
19882         002623' 260740  004235'         PUSHJ PP,PRNAM  ;THEN PRINT THE NAME>\r
19883         002624' 260740  004677' NOUT2:  PUSHJ   PP,SQOZE        ;CONVERT TO SIXBIT\r
19884         002625' 254000  002640'         JRST    COUT            ;DUMP AND EXIT\r
19885 \r
19886         002626'                 HOUT:\r
19887         002626' 201440  000001          MOVEI   RC,1            ;RELOCATABLE\r
19888                                 IFN RENTSW,<\r
19889                                         MOVE    AC0,HHIGH       ;GET HIGH SEG IF TWO SEGMENTS\r
19890                                         JUMPE   AC0,.+2         ;NOT TWO SEGMENTS\r
19891                                         PUSHJ   PP,COUT         ;OUTPUT IT >\r
19892         002627' 200000  013263'         MOVE    AC0,HIGH\r
19893                                 IFN RENTSW,<\r
19894                                         SKIPE   HHIGH           ;ANY TWOSEG HIGH STUFF\r
19895                                         JRST    COUT            ;YES,SO NO ABS.>\r
19896         002630' 260740  002640'         PUSHJ   PP,COUT         ;OUTPUT THE HIGHEST LOCATION\r
19897         002631' 200000  013262'         MOVE AC0,ABSHI\r
19898                                                                 ;PUT OUT ABS PORTION OF PROGRAM BREAK\r
19899         002632' 364440  002640'         SOJA    RC,COUT         ;OUTPUT A WORD OF ZERO AND EXIT\r
19900 \r
19901 \r\fMACRO V.10                     PAGE 51\r
19902         OUTPUT ROUTINES\r
19903 \r
19904                                 IFN RENTSW,<\r
19905                                 HSOUT:  SETZM   HISNSW          ;CLEAR FOR PASS2\r
19906                                         MOVE    AC0,SVTYP3      ;GET HISEG ARG\r
19907                                         JUMPGE  AC0,.+4         ;JUMP IF ONLY HISEG\r
19908                                         HRL     AC0,HIGH1       ;GET BREAK FROM PASS 1\r
19909                                         JUMPL   AC0,.+2         ;OK IF GREATER THAN 400000\r
19910                                         HRLS    AC0             ;SIGNAL TWO SEGMENT TO LOADER\r
19911                                         MOVEI   RC,1            ;ASSUME RELOCATABLE\r
19912                                         JRST    COUT            ;OUTPUT THE WORD>\r
19913 \r
19914         002633' 336440  013400' VOUT:   SKIPN   RC,VECREL       ;IS VECTOR ABSOLUTE ZERO?\r
19915         002634' 332000  013401'         SKIPE   VECTOR          ;ALSO CHECK RELOCATION\r
19916         002635' 254000  002637'         JRST    .+2\r
19917         002636' 263740  000000          POPJ    PP,             ;YES, EXIT\r
19918         002637' 200000  013401'         MOVE    AC0,VECTOR      ;AC0 SHOULD BE FLAGS\r
19919 \r
19920         002640' 350340  012700' COUT:   AOS     C,COUTX         ;INCREMENT INDEX\r
19921         002641' 202007  012704'         MOVEM   AC0,COUTDB(C)   ;STORE CODE\r
19922         002642' 136440  012702'         IDPB    RC,COUTP        ;STORE RELOCATION BITS\r
19923         002643' 302340  000021          CAIE    C,^D17          ;IS THE BUFFER FULL?\r
19924         002644' 263740  000000          POPJ    PP,             ;NO, EXIT\r
19925 \r
19926         002645' 357340  012700' COUTD:  AOSG    C,COUTX         ;DUMP THE BUFFER\r
19927         002646' 254000  002657'         JRST    COUTI           ;BUFFER WAS EMPTY\r
19928         002647' 504340  012677'         HRL     C,BLKTYP        ;SET BLOCK TYPE\r
19929         002650' 260740  010122'         PUSHJ   PP,OUTBIN       ;OUTPUT COUNT AND TYPE\r
19930         002651' 477340  012701'         SETOB   C,COUTY         ;INITIALIZE INDEX\r
19931 \r
19932         002652' 200347  012704' COUTD2: MOVE    C,COUTDB(C)     ;GET RELOCATION BITS/CODE\r
19933         002653' 260740  010122'         PUSHJ   PP,OUTBIN       ;DUMP IT\r
19934         002654' 350340  012701'         AOS     C,COUTY         ;INCREMENT INDEX\r
19935         002655' 315340  012700'         CAMGE   C,COUTX         ;TEST FOR END\r
19936         002656' 254000  002652'         JRST    COUTD2          ;NO, GET NEXT WORD\r
19937 \r
19938         002657' 476000  012700' COUTI:  SETOM   COUTX           ;INITIALIZE BUFFER INDEX\r
19939         002660' 402000  012703'         SETZM   COUTRB          ;ZERO RELOCATION BITS\r
19940         002661' 200340  014151'         MOVE    C,[POINT 2,COUTRB]\r
19941         002662' 202340  012702'         MOVEM   C,COUTP         ;INITIALIZE BIT POINTER\r
19942         002663' 263740  000000          POPJ    PP,             ;EXIT\r
19943 \r\fMACRO V.10                     PAGE 52\r
19944         OUTPUT ROUTINES\r
19945 \r
19946         002664'                 STOWZ1:\r
19947         002664' 201440  000000  STOWZ:  MOVEI   RC,0\r
19948         002665'                 STOW:\r
19949         002665' 321640  002677'         JUMP1   STOW20          ;SKIP TEST IF PASS ONE\r
19950         002666' 602440  777776          TRNE    RC,-2           ;RIGHT HALF ZERO OR 1?\r
19951         002667' 260740  002735'         PUSHJ   PP,STOWT        ;NO, HANDLE EXTERNAL\r
19952         002670' 607440  777776          TLNN    RC,-2           ;LEFT HALF ZERO OR 1? WFW\r
19953         002671' 254000  002675'         JRST    STOW10          ;YES, SKIP TEST\r
19954         002672' 207000  000011          MOVSS   RC              ;SWAP HALVES\r
19955         002673' 260740  002742'         PUSHJ   PP,STOWT1       ;HANDLE EXTERNAL WFW\r
19956         002674' 207000  000011          MOVSS   RC              ;RESTORE VALUES\r
19957 \r
19958         002675' 332000  013270' STOW10: SKIPE   EXTPNT          ;ANY EXTERNALS REMAINING?\r
19959         002676' 660600  000040          TRO     ER,ERRE         ;YES, SET EXTERNAL ERROR FLAG\r
19960 \r
19961         002677' 350040  013104' STOW20: AOS     AC1,STPX        ;INCREMENT POINTER\r
19962         002700' 202001  013106'         MOVEM   AC0,STCODE(AC1) ;STOW CODE\r
19963         002701' 202441  013156'         MOVEM   RC,STOWRC(AC1)  ;STOW RELOCATION BITS\r
19964         002702' 336000  013321'         SKIPN   LITLVL          ;ARE WE IN LITERAL?\r
19965         002703' 350000  013325'         AOS     LOCA            ;NO, INCREMENT ASSEMBLY LOCATION\r
19966         002704' 305040  000047          CAIGE   AC1,.STP-1      ;OVERFLOW?\r
19967         002705' 263740  000000          POPJ    PP,             ;NO, EXIT\r
19968 \r
19969         002706' 332000  013321'         SKIPE   LITLVL          ;ARE WE IN A LITERAL?\r
19970         002707' 664600  010000          TROA    ER,ERRL         ;YES, FLAG ERROR BUT DON'T DUMP\r
19971         002710' 254000  001444'         JRST    CHARL1          ;NO, SAVE REGISTERS AND DUMP THE BUFFER\r
19972         002711' 254000  002717'         JRST    STOWI           ;INITIALIZE BUFFER\r
19973 \r
19974         002712' 350040  013105' DSTOW:  AOS     AC1,STPY        ;INCREMENT POINTER\r
19975         002713' 200001  013106'         MOVE    AC0,STCODE(AC1) ;FETCH CODE\r
19976         002714' 200441  013156'         MOVE    RC,STOWRC(AC1)  ;FETCH RELOCATION BITS\r
19977         002715' 315040  013104'         CAMGE   AC1,STPX        ;IS THIS THE END?\r
19978         002716' 263740  000000          POPJ    PP,             ;NO, EXIT\r
19979 \r
19980         002717' 476000  013104' STOWI:  SETOM   STPX            ;INITIALIZE FOR INPUT\r
19981         002720' 476000  013105'         SETOM   STPY            ;INITIALIZE FOR OUTPUT\r
19982         002721' 402000  013270'         SETZM   EXTPNT\r
19983         002722' 263740  000000          POPJ    PP,             ;EXIT\r
19984 \r\fMACRO V.10                     PAGE 53\r
19985         OUTPUT ROUTINES\r
19986 \r
19987         002723' 350000  013321' SVSTOW: AOS     LITLVL          ;NESTED LITERALS\r
19988         002724' 261740  013104'         PUSH    PP,STPX         ;MAKE ROOM FOR ANOTHER\r
19989         002725' 261740  013105'         PUSH    PP,STPY\r
19990         002726' 200040  013104'         MOVE    AC1,STPX\r
19991         002727' 202040  013105'         MOVEM   AC1,STPY\r
19992         002730' 254002  000000          JRST    0(AC2)\r
19993 \r
19994         002731' 262740  013105' GTSTOW: POP     PP,STPY         ;BACK UP A LEVEL\r
19995         002732' 262740  013104'         POP     PP,STPX\r
19996         002733' 370000  013321'         SOS     LITLVL\r
19997         002734' 254002  000000          JRST    0(AC2)\r
19998 \r
19999                                         ;EXTERNAL RIGHT\r
20000         002735' 550040  013270' STOWT:  HRRZ    AC1,EXTPNT      ;GET RIGHT POINTER\r
20001         002736' 302051  000000          CAIE    AC1,(RC)        ;DOES IT MATCH \r
20002         002737' 260740  003752'         PUSHJ   PP,QEXT         ;EXTERNAL OR RELOCATION ERROR\r
20003         002740' 513000  013270'         HLLZS   EXTPNT\r
20004         002741' 263740  000000          POPJ    PP,             ;EXIT\r
20005 \r
20006                                         ;EXTERNAL LEFT\r
20007         002742' 554040  013270' STOWT1: HLRZ    AC1,EXTPNT      ;GET LEFT HALF\r
20008         002743' 302051  000000          CAIE    AC1,(RC)        ;SEE ABOVE\r
20009         002744' 260740  003752'         PUSHJ   PP,QEXT\r
20010         002745' 553000  013270'         HRRZS   EXTPNT\r
20011         002746' 263740  000000          POPJ    PP,             ;EXIT\r
20012 \r\fMACRO V.10                     PAGE 54\r
20013         OUTPUT ROUTINES\r
20014 \r
20015         002747' 134340  013226' ONC:    ILDB    C,TABP          ;ENTRY TO ADVANCE TAB POINTER\r
20016         002750' 260740  010325'         PUSHJ   PP,OUTL         ;OUTPUT A TAB\r
20017                                                                 ;OUTPUT 6 OCT NUMBERS FROM CS LEFT\r
20018         002751' 201340  000006  ONC1:   MOVEI   C,6             ;CONVERT TO ASCII\r
20019         002752' 246340  000003          LSHC    C,3             ;SHIFT IN OCTAL\r
20020         002753' 260740  010325'         PUSHJ   PP,OUTL         ;OUTPUT ASCII FROM C\r
20021         002754' 602400  777777          TRNE    CS,-1           ;ARE WE THROUGH?\r
20022         002755' 254000  002751'         JRST    ONC1            ;NO, GET ANOTHER\r
20023         002756' 201340  000000          MOVEI   C,0             ;CLEAR C\r
20024         002757' 607400  000001          TLNN    CS,1            ;RELOCATABLE?\r
20025         002760' 201340  000047          MOVEI   C,"'"           ;YES\r
20026         002761' 607400  001000          TLNN    CS,EXTF         ;OR EXTERNAL\r
20027         002762' 201340  000052          MOVEI   C,"*"           ;YES\r
20028         002763' 326340  010377' ONC2:   JUMPN   C,OUTC          ;OUTPUT IF EXTERN OR RELOCATABLE\r
20029         002764' 263740  000000          POPJ    PP,             ;EXIT\r
20030 \r
20031         002765' 231340  000012  DNC:    IDIVI   C,^D10\r
20032         002766' 506417  000000          HRLM    CS,0(PP)\r
20033         002767' 322340  002771'         JUMPE   C,.+2\r
20034         002770' 260740  002765'         PUSHJ   PP,DNC          ;RECURSE IF NON-ZERO\r
20035         002771' 554357  000000          HLRZ    C,0(PP)\r
20036         002772' 271340  000060          ADDI    C,"0"           ;FORM ASCII\r
20037         002773' 254000  010310'         JRST    PRINT           ;DUMP AND TEST FOR END\r
20038 \r
20039         002774' 505400  440700  OUTAS0: HRLI    CS,(POINT 7,,)  ;ENTRY TO SET POINTER\r
20040         002775' 134340  000010  OUTASC: ILDB    C,CS            ;GET NEXT BYTE\r
20041         002776' 322340  000446'         JUMPE   C,POPOUT        ;EXIT ON ZERO DELIMITER\r
20042         002777' 260740  010310'         PUSHJ   PP,PRINT\r
20043         003000' 254000  002775'         JRST    OUTASC\r
20044 \r
20045         003001' 505400  440600  OUTSIX: HRLI    CS,(POINT 6,,)  ;OUTPUT SIXBIT\r
20046         003002' 134340  000010          ILDB    C,CS            ;GET SIXBIT\r
20047         003003' 306340  000040          CAIN    C,40            ;"@" DELIMITER?\r
20048         003004' 263740  000000          POPJ    PP,             ;YES, EXIT\r
20049         003005' 271340  000040          ADDI    C,40            ;NO, FORM ASCII\r
20050         003006' 260740  010325'         PUSHJ   PP,OUTL         ;OUTPUT ASCII CHAR FROM C\r
20051         003007' 254000  003002'         JRST    OUTSIX+1\r
20052 \r
20053         003010' 200400  000000  OUTSYM: MOVE    CS,AC0          ;PLACE NAME IN CS\r
20054         003011' 201340  000000  OUTSY1: MOVEI   C,0             ;CLEAR C\r
20055         003012' 246340  000006          LSHC    C,6             ;MOVE NEXT SIXBIT CHARACTER IN\r
20056         003013' 322340  010307'         JUMPE   C,OUTTAB        ;TEST FOR END\r
20057         003014' 271340  000040          ADDI    C,40            ;CONVERT TO ASCII\r
20058         003015' 260740  010325'         PUSHJ   PP,OUTL         ;OUTPUT\r
20059         003016' 254000  003011'         JRST    OUTSY1          ;LOOP\r
20060 \r\fMACRO V.10                     PAGE 55\r
20061         OUTPUT ROUTINES\r
20062 \r
20063         003017' 350217  000000  OUTSET: AOS     SX,0(PP)        ;GET RETURN LOCATION\r
20064         003020' 200204  777777          MOVE    SX,-1(SX)       ;GET XWD CODE\r
20065         003021' 546200  012677'         HLRM    SX,BLKTYP       ;SET BLOCK TYPE\r
20066         003022' 403240  000011          SETZB   ARG,RC\r
20067         003023' 260744  000000          PUSHJ   PP,0(SX)        ;GO TO PRESCRIBED ROUTINE\r
20068         003024' 254000  002645'         JRST    COUTD           ;TERMINATE BLOCK AND EXIT\r
20069 \r
20070                                         ;LOOKUP SCANS ALL THE SYMBOLS IN THE SYMBOL TABLE\r
20071 \r
20072         003025' 262740  013040' LOOKUP: POP     PP,LOOKX        ;INTERCEPT RETURN POP\r
20073         003026' 200200  013102'         MOVE    SX,SYMBOL\r
20074         003027' 200144  000000          MOVE    SDEL,0(SX)      ;SET FOR TABLE SCAN\r
20075         003030' 361140  000446' LOOKL:  SOJL    SDEL,POPOUT     ;TEST FOR END\r
20076         003031' 271200  000002          ADDI    SX,2\r
20077         003032' 200004  777777          MOVE    AC0,-1(SX)\r
20078         003033' 260740  012340'         PUSHJ   PP,SRCH7        ;LOAD REGISTERS\r
20079         003034' 557000  000005          HLRZS   ARG\r
20080         003035' 260760  013040'         PUSHJ   PP,@LOOKX       ;RETURN TO CALLING ROUTINE\r
20081         003036' 254000  003030'         JRST    LOOKL           ;TRY AGAIN\r
20082 \r\fMACRO V.10                     PAGE 56\r
20083         OUTPUT ROUTINES\r
20084 \r
20085         003037' 260740  001057' END0:   PUSHJ   PP,EVALCM       ;GET A WORD\r
20086         003040' 332000  013270'         SKIPE   EXTPNT          ;ANY EXTERNALS?\r
20087         003041' 660600  000040          TRO     ER,ERRE         ;YES, ERROR\r
20088         003042' 336300  000000          SKIPN   V,AC0           ;NON-ZERO?\r
20089         003043' 322440  003045'         JUMPE   RC,.+2          ;OR RELOC?\r
20090         003044' 260740  004027'         PUSHJ   PP,ASSIG7       ;YES, LIST THE VALUE\r
20091         003045' 202000  013401'         MOVEM   AC0,VECTOR\r
20092         003046' 202440  013400'         MOVEM   RC,VECREL\r
20093         003047' 260740  003462'         PUSHJ   PP,VARA         ;FILL OUT SELF-DEFINED VARIABLES\r
20094         003050' 260740  000227'         PUSHJ   PP,STOUTS       ;DUMP THE LINE\r
20095                                 ;       PUSH    PP,IO           ;SAVE FLAGS\r
20096                                 ;       TLO     IO,IOPROG       ;XLIST LITS\r
20097         003051' 260740  003367'         PUSHJ   PP,LIT1\r
20098                                 ;       POP     PP,IO           ;GET FLAG BACK\r
20099         003052' 325640  003127'         JUMP2   ENDP2\r
20100 \r
20101         003053' 260740  002065'         PUSHJ   PP,UOUT\r
20102         003054' 607600  000010          TLNN    IO,MFLSW        ;SKIP IF ONLY PSEND\r
20103         003055' 260740  007155'         PUSHJ   PP,REC2\r
20104         003056' 200000  012673'         MOVE    INDIR           ;SET UP FIRST AS LAST\r
20105         003057' 202000  012537'         MOVEM   LSTFIL          ;PRINTED\r
20106         003060' 402000  013416'         SETZM   LSTPGN\r
20107         003061' 260740  003267'         PUSHJ   PP,INZ\r
20108         003062' 603600  000010          TLNE    IO,MFLSW        ;IF PSEND\r
20109         003063' 263740  000000          POPJ    PP,             ;BACK TO PSEND0\r
20110         003064' 332000  013260'         SKIPE   PRGPTR          ;HAVE ANY PRGEND'S BEEN SEEN\r
20111         003065' 254000  004730'         JRST    PSEND3          ;YES,GO SET UP AGAIN\r
20112 \r
20113         003066' 402000  013266' PASS20: SETZM   CTLSAV\r
20114         003067' 260740  002657'         PUSHJ   PP,COUTI\r
20115         003070' 260740  002121'         PUSHJ   PP,EOUT         ;OUTPUT THE ENTRIES\r
20116         003071' 260740  003017'         PUSHJ   PP,OUTSET\r
20117         003072' 000006  002602'         XWD     6,NOUT          ;OUTPUT THE NAME (BLKTYP-6)\r
20118                                 IFN RENTSW,<\r
20119                                         SKIPN   HISNSW          ;PUT OUT BLOCK TYPE 3?\r
20120                                         JRST    PASS21          ;NO\r
20121                                         PUSHJ   PP,OUTSET\r
20122                                         XWD     3,HSOUT         ;OUTPUT THE HISEG BLOCK\r
20123                                 PASS21: >\r
20124         003073' 201000  000001          MOVEI   1\r
20125         003074' 542000  012677'         HRRM    BLKTYP          ;SET FOR TYPE 1 BLOCK\r
20126         003075' 621640  400000          TLZ     FR,P1           ;SET FOR PASS 2 AND TURN OFF FLAG\r
20127         003076' 661600  004000          TLO     IO,IOPALL       ;PUT THESE BACK\r
20128         003077' 621600  040440          TLZ     IO,IOPROG!IOCREF!DEFCRS ;SO LISTINGS WILL BE THE WAY THEY SHOULD\r
20129         003100' 607640  004000          TLNN    FR,R1BSW\r
20130         003101' 254000  002717'         JRST    STOWI\r
20131         \r
20132         003102' 200400  014152'         MOVE CS,[XWD $ST-1-$CKSM,R1BLDR]\r
20133         003103' 200350  000000          MOVE C,0(CS)\r
20134         003104' 260740  010123'         PUSHJ PP,PTPBIN\r
20135         003105' 253400  003103'         AOBJN CS,.-2\r
20136         003106' 260740  010203'         PUSHJ   PP,R1BI\r
20137         003107' 254000  002717'         JRST    STOWI\r
20138 \r\fMACRO V.10                     PAGE 57\r
20139         OUTPUT ROUTINES\r
20140 \r
20141         \r
20142         003110'                 R1BLDR:\r
20143         000000                          PHASE 0\r
20144         003110' 777762  000000          IOWD $ADR,$ST\r
20145         003111' 710600  000060  $ST:    CONO PTR,60\r
20146         003112' 541400  000004          HRRI $A,$RD+1\r
20147         003113' 710740  000010  $RD:    CONSO PTR,10\r
20148         003114' 254000  000003          JRST .-1\r
20149         003115' 710470  000007          DATAI PTR,@$TBL1-$RD+1($A)\r
20150         003116' 256010  000007          XCT $TBL1-$RD+1($A)\r
20151         003117' 256010  000012          XCT $TBL2-$RD+1($A)\r
20152         003120' 364400  000000  $A:     SOJA $A,\r
20153         003121' 312740  000016  $TBL1:  CAME $CKSM,$ADR\r
20154         003122' 270756  000001          ADD $CKSM,1($ADR)\r
20155         003123' 331740  000016          SKIPL $CKSM,$ADR\r
20156         003124' 254200  000001  $TBL2:  JRST 4,$ST\r
20157         003125' 253700  000003          AOBJN $ADR,$RD\r
20158         003126' 254000  000002  $ADR:   JRST $ST+1\r
20159         000017                  $CKSM:  \r
20160         003127'                         DEPHASE\r
20161 \r
20162                                 IF2,<   PURGE $ST,$RD,$A,$TBL1,$TBL2,$ADR,$CKSM>\r
20163 \r\fMACRO V.10                     PAGE 58\r
20164         OUTPUT ROUTINES\r
20165 \r
20166         003127' 260740  002645' ENDP2:  PUSHJ   PP,COUTD        ;DUMP THE BUFFER\r
20167         003130' 200000  013326'         MOVE    AC0,LOCO        ;CHECK TO SEE IF LIT DIFFERED\r
20168         003131' 336000  013334'         SKIPN   MODO            ;AND USE SMALLER SINCE AT END\r
20169                                         JRST    [CAMN   AC0,ABSHI\r
20170                                                 HRRZM   AC2,ABSHI\r
20171         003132' 254000  014153'                 JRST    ENDP2W]\r
20172                                 IFN RENTSW,<SKIPE HHIGH         ;SKIP IF NOT TWO SEGMENTS\r
20173                                         JRST    [CAMN   AC0,HHIGH\r
20174                                                 HRRZM   AC2,HHIGH\r
20175                                                 JRST    ENDP2W]>\r
20176         003133' 316000  013263'         CAMN    AC0,HIGH\r
20177         003134' 552100  013263'         HRRZM   AC2,HIGH\r
20178         003135'                 ENDP2W:\r
20179         003135' 603600  000400  REPEAT 1,<TLNE  IO,IOCREF       ;CLOSE CREF IF NECESSARY>\r
20180                                 REPEAT 0,<TLNE FR,CREFSW        ;IF CREFFING\r
20181                                         JRST ENDP2Q\r
20182                                         MOVEI SDEL,0\r
20183                                         PUSH PP,DBUF+3  ;SO NO PAGE INFO\r
20184                                         DPB SDEL,[POINT 7,DBUF+3,13]\r
20185                                         IOR ER,OUTSW    ;MAKE SURE OF OUTPUT\r
20186                                         PUSHJ PP,CREF\r
20187                                         MOVEI C,20      ;CODE FOR TITLE\r
20188                                         PUSHJ PP,OUTLST\r
20189                                         PUSH PP,IO      ;SAVE THIS\r
20190                                         TLZ IO,IOPAGE   ;AND PREVENT PAGE DURING TITLE\r
20191                                         MOVEI CS,TBUF\r
20192                                         PUSHJ PP,OUTAS0\r
20193                                         MOVEI CS,VBUF\r
20194                                         PUSHJ PP,OUTAS0\r
20195                                         POP PP,IO       ;RESTORE THE IO WORD\r
20196                                         POP PP,DBUF+3   >       ;NEEDS FIX TO CREF\r
20197         003136' 260740  012276'         PUSHJ   PP,CLSCR2       ;CLOSE IT UP\r
20198         003137' 540600  013042' ENDP2Q: HRR     ER,OUTSW        ;SET OUTPUT SWITCH\r
20199         003140' 336000  013256'         SKIPN   TYPERR\r
20200         003141' 660600  000001          TRO     ER,TTYSW\r
20201         003142' 260740  002065'         PUSHJ   PP,UOUT         ;OUTPUT UNDEFINEDS\r
20202         003143' 660600  000001          TRO     ER,TTYSW\r
20203         003144' 000000  000007          SKPINC  C       ;SEE IF WE CAN INPUT A CHAR.\r
20204         003145' 255000  000000            JFCL          ;BUT ONLY TO DEFEAT ^O\r
20205         003146' 337340  012726'         SKIPG C,ERRCNT  ;GET ERROR COUNT AND CHECK FOR POSITIVE\r
20206         003147' 254000  003165'         JRST NOERW      ;PRINT NO ERROR MESSAGE\r
20207         003150' 272340  000000* IFN CCLSW,<ADDM C,JOBERR        ;REMEMBER ERROR COUNT FOR EXECUTION DELETION>\r
20208         003151' 260740  010316'         PUSHJ PP,OUTCR\r
20209         003152' 200340  012726'         MOVE C,ERRCNT\r
20210         003153' 306340  000001          CAIN C,1        ;1 IS A SPECIAL CASE\r
20211         003154' 254000  003162'         JRST ONERW      ;PRINT MESSAGE\r
20212         003155' 201340  000077          MOVEI   C,"?"           ;? FOR BATCH\r
20213         003156' 260740  010325'         PUSHJ   PP,OUTL         ;...\r
20214         003157' 200340  012726'         MOVE C,ERRCNT   ;PRINT NUMBER OF ERRORS\r
20215         003160' 260740  002765'         PUSHJ PP,DNC\r
20216         003161' 334400  014156'         SKIPA CS,[EXP ERRMS1]   ;LOAD TO PRINT\r
20217         003162' 201400  007671' ONERW:  MOVEI CS,ERRMS2 ;ONE ERROR DETECTED\r
20218         003163' 260740  003001' ONERW1: PUSHJ PP,OUTSIX ;PRINT\r
20219 \r\fMACRO V.10                     PAGE 58-1\r
20220         OUTPUT ROUTINES\r
20221 \r
20222         003164' 254000  003173'         JRST ENDP2A\r
20223         003165' 201400  007674' NOERW:  MOVEI CS,ERRMS3\r
20224         003166' 603600  001010  IFN CCLSW,<TLNE IO,CRPGSW!MFLSW ;IF RPG, DON'T PRINT MESSAGE>\r
20225                                 IFE CCLSW,<TLNE IO,MFLSW        ;NOR IF MULTI-FILE MODE>\r
20226         003167' 620600  000001          TRZ     ER,TTYSW                ;NO TTY OUTPUT\r
20227         003170' 434600  013042'         IOR     ER,OUTSW        ;UNLESS NEEDED FOR LISTING\r
20228         003171' 260740  010316'         PUSHJ PP,OUTCR\r
20229         003172' 254000  003163'         JRST ONERW1\r
20230 \r
20231 \r\fMACRO V.10                     PAGE 59\r
20232         OUTPUT ROUTINES\r
20233 \r
20234         003173' 260740  010316' ENDP2A: PUSHJ PP,OUTCR\r
20235         003174' 607600  000010          TLNN    IO,MFLSW        ;IN A MULTI-PROG FILE?\r
20236         003175' 254000  003201'         JRST    ENDP2D          ;NO\r
20237         003176' 332000  012726'         SKIPE   ERRCNT          ;ANY ERROR?\r
20238                                         PUSHJ   PP,[MOVEI CS,[ASCIZ /PROGRAM    /]\r
20239                                                 PUSHJ PP,OUTAS0 ;YES,SO PRINT MESSAGE\r
20240                                                 MOVEI   CS,TBUF ;AND TITLE\r
20241                                                 PUSHJ PP,OUTAS0 ;FOR IDENTIFICATION\r
20242         003177' 260740  014161'                 JRST    OUTCR]  ;AND A CR-LF\r
20243         003200' 624600  000001          TRZA    ER,TTYSW        ;NO MORE OUTPUT NOW\r
20244         003201'                 ENDP2D:\r
20245         003201' 603600  001000  IFN CCLSW,<TLNE IO,CRPGSW       ;IF RPG, DON'T PRINT PGM BREAK\r
20246         003202' 620600  000001          TRZ     ER,TTYSW        ;...>\r
20247                                 IFE CCLSW,<     SKIPA           ;SO PRGEND CODE CAN WORK>\r
20248         003203' 434600  013042'         IOR     ER,OUTSW        ;...\r
20249         003204' 260740  010316'         PUSHJ   PP,OUTCR\r
20250                                 IFN RENTSW,<\r
20251                                         MOVEI   CS,[SIXBIT /HI-SEG. BREAK IS @/]\r
20252                                         SKIPN   HHIGH           ;DON'T PRINT IF ZERO\r
20253                                         JRST    ENDP2C          ;IT WAS\r
20254                                         PUSHJ   PP,OUTSIX\r
20255                                         HRLO    CS,HHIGH        ;GET THE BREAK\r
20256                                         PUSHJ   PP,ONC1\r
20257                                         PUSHJ   PP,OUTCR\r
20258                                 ENDP2C:>\r
20259         003205' 201400  014166'         MOVEI   CS,[SIXBIT /PROGRAM BREAK IS @/]\r
20260         003206' 260740  003001'         PUSHJ   PP,OUTSIX       ;OUTPUT PROGRAM BREAK\r
20261         003207' 550400  013262'         HRRZ    CS,ABSHI        ;GET ABS. BREAK\r
20262         003210' 307400  000140          CAIG    CS,140          ;ANY ABS. CODE\r
20263                                         JRST    [HRLO CS,HIGH   ;NO\r
20264         003211' 254000  014171'                 JRST    ENDP2B] ;SO DON'T PRINT\r
20265         003212' 524400  013263'         HRLO    CS,HIGH         ;GET PROGRAM BREAK\r
20266         003213' 260740  002751'         PUSHJ   PP,ONC1\r
20267         003214' 260740  010316'         PUSHJ   PP,OUTCR\r
20268         003215' 201400  014173'         MOVEI   CS,[SIXBIT /ABSLUTE BREAK IS @/]\r
20269         003216' 260740  003001'         PUSHJ   PP,OUTSIX\r
20270         003217' 524400  013262'         HRLO    CS,ABSHI\r
20271         003220' 260740  002751' ENDP2B: PUSHJ   PP,ONC1\r
20272         003221' 260740  010316'         PUSHJ PP,OUTCR\r
20273         003222' 603640  004400          TLNE    FR,RIMSW!R1BSW  ;RIM MODE?\r
20274         003223' 260740  003256'         PUSHJ   PP,RIMFIN       ;YES, FINISH IT\r
20275         003224' 607600  001010  IFN CCLSW,<TLNN IO,CRPGSW!MFLSW ;IF NOT IN CCL MODE>\r
20276                                 IFE CCLSW,<TLNN IO,MFLSW        ;NOR IF IN MULTI-FILE MODE>\r
20277         003225' 660600  000001          TRO     ER,TTYSW        ;PRINT SIZE\r
20278         003226' 260740  010316'         PUSHJ   PP,OUTCR\r
20279         003227' 200340  000012*         MOVE    C,JOBREL\r
20280         003230' 242340  777766          LSH     C,-^D10\r
20281         003231' 271340  000001          ADDI    C,1\r
20282         003232' 260740  002765'         PUSHJ   PP,DNC\r
20283         003233' 201400  014176'         MOVEI   CS,[SIXBIT /K CORE USED@/]\r
20284         003234' 260740  003001'         PUSHJ   PP,OUTSIX\r
20285         003235' 260740  010316'         PUSHJ   PP,OUTCR        \r
20286         003236' 540600  013042'         HRR     ER,OUTSW\r
20287 \r\fMACRO V.10                     PAGE 59-1\r
20288         OUTPUT ROUTINES\r
20289 \r
20290         003237' 260740  003017'         PUSHJ   PP,OUTSET\r
20291         003240' 000002  002156'         XWD     2,SOUT          ;OUTPUT THE SYMBOLS (BLKTYP-2)\r
20292         003241' 260740  003017'         PUSHJ   PP,OUTSET\r
20293         003242' 000007  002633'         XWD     7,VOUT          ;OUTPUT TRANSFER VECTOR (..-7)\r
20294         003243' 260740  003017'         PUSHJ   PP,OUTSET\r
20295         003244' 000005  002626'         XWD     5,HOUT          ;OUTPUT HIGHEST RELOCATABLE (..-5)\r
20296         003245' 260740  002645'         PUSHJ   PP,COUTD\r
20297         003246' 607600  000010          TLNN    IO,MFLSW        ;IS IT PRGEND?\r
20298         003247' 254000  007014'         JRST    FINIS           ;ALAS, FINISHED\r
20299         003250' 201400  013057'         MOVEI   CS,SBUF         ;RESET SBUF POINTER\r
20300         003251' 542400  013100'         HRRM    CS,SUBTTX       ;TO SUBTTL\r
20301         003252' 402000  013262'         SETZM   PASS2I          ;CLEAR PASS2 VARIABLES\r
20302         003253' 200000  014200'         MOVE    [XWD PASS2I,PASS2I+1]\r
20303         003254' 251000  013412'         BLT     PASS2Z-1        ;BUT NOT ALL OF VARIABLES\r
20304         003255' 254000  003267'         JRST    INZ             ;RE-INITIALIZE FOR NEXT PROG\r
20305 \r\fMACRO V.10                     PAGE 60\r
20306         OUTPUT ROUTINES\r
20307 \r
20308 \r
20309 \r
20310         003256' 603640  004000  RIMFIN: TLNE FR,R1BSW\r
20311         003257' 260740  010165'         PUSHJ PP,R1BDMP\r
20312         003260' 336340  013401'         SKIPN   C,VECTOR\r
20313         003261' 205340  254200          MOVSI   C,(JRST 4,)\r
20314         003262' 607340  777000          TLNN    C,777000\r
20315         003263' 661340  254000          TLO     C,(JRST)\r
20316         003264' 260740  010123'         PUSHJ   PP,PTPBIN\r
20317         003265' 201340  000000          MOVEI   C,0\r
20318         003266' 254000  010123'         JRST    PTPBIN\r
20319 \r\fMACRO V.10                     PAGE 61\r
20320         PASS INITIALIZE\r
20321 \r
20322                                 SUBTTL  PASS INITIALIZE\r
20323         003267' 350000  013332' INZ:    AOS     MODA\r
20324         003270' 350000  013334'         AOS     MODO\r
20325         003271' 402000  012544'         SETZM   SEQNO\r
20326         003272' 402000  012541'         SETZM   TAG\r
20327         003273' 541640  000010          HRRI    RX,^D8\r
20328         003274' 201000  013027'         MOVEI   VARHD\r
20329         003275' 202000  013030'         MOVEM   VARHDX\r
20330         003276' 201000  013034'         MOVEI   LITHD\r
20331         003277' 202000  013035'         MOVEM   LITHDX\r
20332         003300' 260740  003437'         PUSHJ   PP,LITI\r
20333         003301' 260740  002717'         PUSHJ   PP,STOWI\r
20334         003302' 254000  001765'         JRST    OUTLI\r
20335 \r
20336         003303' 220100  000005  RCPNTR: POINT   1,ARG,^L<RELF>-18       ;POINT 1,ARG,22\r
20337 \r\fMACRO V.10                     PAGE 62\r
20338         PSEUDO-OP HANDLERS\r
20339 \r
20340                                 SUBTTL  PSEUDO-OP HANDLERS\r
20341 \r
20342         003304' 260740  000227' TAPE0:  PUSHJ   PP,STOUTS       ;FINISH THIS LINE\r
20343         003305' 254000  007165'         JRST    GOTEND          ;AND IGNORE THE REST OF THIS FILE\r
20344 \r
20345         003306' 260740  003745' RADIX0: PUSHJ   PP,EVAL10       ;EVALUATE RADIX D10\r
20346         003307' 307000  000012          CAIG    AC0,^D10        ;IF GREATER THAN 10\r
20347         003310' 307000  000001          CAIG    AC0,1           ;OR LESS THAN 2,\r
20348         003311' 664600  040000  ERRAX:  TROA    ER,ERRA         ;FLAG ERROR AND SKIP\r
20349         003312' 540640  000000          HRR     RX,AC0          ;SET NEW RADIX\r
20350         003313' 263740  000000          POPJ    PP,\r
20351 \r
20352 \r
20353         003314' 621600  000001  XALL0:  TLZ     IO,IOSALL       ;TURN OFF MACRO SUPPRESS ALL\r
20354         003315' 321640  000446' IOSET:  JUMP1   POPOUT          ;NOSYM (IONSYM), XALL (IOPALL), XLIST (IOPROG)\r
20355         003316' 554200  000000          HLRZ    SX,AC0          ;STORE FLAGS\r
20356         003317' 260740  000227'         PUSHJ   PP,STOUTS       ;POLISH OFF LINE\r
20357         003320' 661604  000000          TLO     IO,0(SX)        ;NOW SUPRESS PRINTING\r
20358         003321' 263740  000000          POPJ    PP,\r
20359 \r
20360         003322' 630600  000000  IORSET: TDZ     IO,AC0          ;RESET  FLAG IOPALL/IOPROG\r
20361         003323' 603000  002000          TLNE    AC0,IONCRF      ;RESTORING CREFFING?\r
20362         003324' 621600  000040          TLZ     IO,DEFCRS       ;YES, CLEAR ANY WAITING DEFINING OCCURENCES\r
20363         003325' 263740  000000          POPJ    PP,\r
20364 \r
20365         003326' 260740  004146' BLOCK0: PUSHJ   PP,HIGHQ\r
20366         003327' 260740  001070'         PUSHJ   PP,EVALEX       ;EVALUATE\r
20367         003330' 622440  777777          TRZE    RC,-1           ;EXTERNAL OR RELOCATABLE?\r
20368         003331' 260740  003752'         PUSHJ   PP,QEXT         ;YES, DETERMINE TYPE\r
20369         003332' 272000  013326'         ADDM    AC0,LOCO        ;UPDATE ASSEMBLY LOCATION\r
20370         003333' 250000  013325' BLOCK1: EXCH    AC0,LOCA        ;SAVE START OF BLOCK\r
20371         003334' 272000  013325'         ADDM    AC0,LOCA        ;UPDATE OUTPUT LOCATION\r
20372         003335' 526000  013324' BLOCK2: HRLOM   AC0,LOCBLK\r
20373         003336' 325640  000446'         JUMP2   POPOUT\r
20374         003337' 602600  002000          TRNE    ER,ERRU\r
20375         003340' 660600  001000          TRO     ER,ERRV\r
20376         003341' 263740  000000          POPJ    PP,\r
20377 \r\fMACRO V.10                     PAGE 63\r
20378         PSEUDO-OP HANDLERS\r
20379 \r
20380 \r
20381         003342' 660600  000001  PRNTX0: TRO     ER,TTYSW        ;SET OUTPUT TO TTY\r
20382         003343' 325640  003345'         JUMP2   PRNTX2          ;PASS1?\r
20383         003344' 674600  013042'         TDOA    ER,OUTSW        ;YES,OUTPUT TO LSTDEV ALSO\r
20384         003345' 420600  013042' PRNTX2: ANDCM   ER,OUTSW        ;NO,DON'T OUTPUT TO TTY IF IT IS LSTDEV\r
20385         003346' 260740  004452'         PUSHJ   PP,BYPASS       ;GET FIRST CHAR.\r
20386         003347' 665600  000004          TLOA    IO,IORPTC       ;REPEAT IT AND SKIP\r
20387         003350' 260740  010310' PRNTX4: PUSHJ   PP,PRINT        ;PRINT THE CHAR.\r
20388         003351' 260740  001406'         PUSHJ   PP,CHARAC       ;GET ASCII CHAR.\r
20389         003352' 307340  000015          CAIG    C,CR            ;IF GREATER THAN CR\r
20390         003353' 307340  000011          CAIG    C,HT            ;OR LESS THAN LF\r
20391         003354' 254000  003350'         JRST    PRNTX4          ;THEN CONTINUE\r
20392         003355' 260740  010316'         PUSHJ   PP,OUTCR        ;OUTPUT A CRLF\r
20393         003356' 624600  000003          TRZA    ER,TTYSW!LPTSW  ;TURN OF OUTPUT\r
20394         003357' 350017  000000  CPOPJ1: AOS     (PP)            ;USEFUL TAG HAS TO GO SOMEWHERE\r
20395         003360' 263740  000000  CPOPJ:  POPJ    PP,             ;EXIT\r
20396 \r
20397         003361' 260740  001354' REMAR0: PUSHJ   PP,GETCHR       ;GET A CHARACTER\r
20398         003362' 302340  000033          CAIE    C,EOL\r
20399         003363' 254000  003361'         JRST    REMAR0\r
20400         003364' 263740  000000          POPJ    PP,             ;EXIT\r
20401 \r\fMACRO V.10                     PAGE 64\r
20402         PSEUDO-OP HANDLERS\r
20403 \r
20404         003365' 260740  003333' LIT0:   PUSHJ   PP,BLOCK1\r
20405         003366' 260740  000227'         PUSHJ   PP,STOUTS\r
20406         003367' 325640  003377' LIT1:   JUMP2   LIT20\r
20407 \r
20408                                 ;ON PASS ONE, WE JUST STEP THE LOCATION COUNTER AND CLEAR\r
20409 \r
20410         003370' 200000  013036'         MOVE    AC0,LITCNT\r
20411         003371' 200200  013035'         MOVE    SX,LITHDX\r
20412         003372' 506004  000000          HRLM    AC0,0(SX)\r
20413         003373' 200300  013325'         MOVE    V,LOCA\r
20414         003374' 504300  013332'         HRL     V,MODA\r
20415         003375' 202304  777777          MOVEM   V,-1(SX)\r
20416         003376' 254000  003433'         JRST    LIT24\r
20417 \r
20418         003377' 261740  013325' LIT20:  PUSH    PP,LOCA\r
20419         003400' 261740  013326'         PUSH    PP,LOCO\r
20420         003401' 336000  013037'         SKIPN   LITNUM\r
20421         003402' 254000  003407'         JRST    LIT20A\r
20422         003403' 200200  013035'         MOVE    SX,LITHDX\r
20423         003404' 550004  777777          HRRZ    AC0,-1(SX)\r
20424         003405' 312000  013325'         CAME    AC0,LOCA\r
20425         003406' 660600  000100          TRO     ER,ERRP\r
20426         003407' 200200  013031' LIT20A: MOVE    SX,LITAB\r
20427         003410' 375000  013037' LIT21:  SOSGE   LITNUM\r
20428         003411' 254000  003422'         JRST    LIT22\r
20429         003412' 200004  777776          MOVE    AC0,-2(SX)      ;WFW\r
20430         003413' 200444  777777          MOVE    RC,-1(SX)       ;WFW\r
20431         003414' 200204  000000          MOVE SX,(SX)    ;WFW POINTER TO THE NEXT LIT\r
20432         003415' 260740  002677'         PUSHJ   PP,STOW20       ;STOW CODE\r
20433         003416' 201340  000012          MOVEI   C,12            ;SET LINE FEED\r
20434         003417' 136340  013003'         IDPB    C,LBUFP\r
20435         003420' 260740  001547'         PUSHJ   PP,OUTLIN       ;OUTPUT THE LINE\r
20436         003421' 254000  003410'         JRST    LIT21\r
20437 \r\fMACRO V.10                     PAGE 65\r
20438         PSEUDO-OP HANDLERS\r
20439 \r
20440         003422' 550100  013326' LIT22:  HRRZ    AC2,LOCO\r
20441         003423' 262740  013326'         POP     PP,LOCO\r
20442         003424' 262740  013325'         POP     PP,LOCA\r
20443         003425' 200200  013035'         MOVE    SX,LITHDX\r
20444         003426' 554004  000000          HLRZ    AC0,0(SX)\r
20445         003427' 274100  013326'         SUB AC2,LOCO    ;COMPUTE LENGTH USED\r
20446         003430' 315000  000002          CAMGE AC0,AC2   ;USE LARGER\r
20447         003431' 200000  000002          MOVE AC0,AC2\r
20448         003432' 270100  013326'         ADD AC2,LOCO\r
20449         003433' 272000  013325' LIT24:  ADDM    AC0,LOCA\r
20450         003434' 272000  013326'         ADDM    AC0,LOCO\r
20451         003435' 260740  003444'         PUSHJ   PP,GETTOP\r
20452         003436' 542200  013035'         HRRM    SX,LITHDX\r
20453         003437' 402000  013036' LITI:   SETZM   LITCNT\r
20454         003440' 402000  013037'         SETZM   LITNUM\r
20455         003441' 201000  013031'         MOVEI   LITAB\r
20456         003442' 202000  013032'         MOVEM   LITABX\r
20457         003443' 254000  004146'         JRST    HIGHQ\r
20458 \r
20459         003444' 550040  000004  GETTOP: HRRZ    AC1,SX          ;VARHD\r
20460         003445' 550204  000000          HRRZ    SX,0(SX)\r
20461         003446' 326200  000446'         JUMPN   SX,POPOUT\r
20462         003447' 201200  000003          MOVEI   SX,3    ;WFW\r
20463         003450' 273200  012727'         ADDB    SX,FREE\r
20464         003451' 311200  013102'         CAML    SX,SYMBOL\r
20465         003452' 260740  010015'         PUSHJ   PP,XCEED\r
20466         003453' 275200  000001          SUBI    SX,1            ;MAKE SX POINT TO LINK\r
20467         003454' 402004  000000          SETZM   0(SX)           ;CLEAR FORWARD LINK\r
20468         003455' 542201  000000          HRRM    SX,0(AC1)       ;STORE ADDRESS IN LAST LINK\r
20469         003456' 263740  000000          POPJ    PP,\r
20470 \r\fMACRO V.10                     PAGE 66\r
20471         PSEUDO-OP HANDLERS\r
20472 \r
20473         003457' 260740  003333' VAR0:   PUSHJ   PP,BLOCK1       ;PRINT LOCATION\r
20474         003460' 260740  003462'         PUSHJ PP,VARA\r
20475         003461' 254000  000227'         JRST STOUTS\r
20476 \r
20477         003462' 200200  013030' VARA:   MOVE    SX,VARHDX\r
20478         003463' 200000  013325'         MOVE AC0,LOCA   ;GET LOCATION FOR CHECK\r
20479         003464' 321640  003467'         JUMP1 VARB      ;DO NOT CHECK START ON PASS 1\r
20480         003465' 312004  777777          CAME AC0,-1(SX) ;CHECK START OF VAR AREA\r
20481         003466' 660600  000100          TRO ER,ERRP     ;AND GIVE ERROR\r
20482         003467' 202004  777777  VARB:   MOVEM AC0,-1(SX)        ;SAVE START FOR PASS 2\r
20483         003470' 554004  000000          HLRZ    AC0,0(SX)\r
20484         003471' 272000  013325'         ADDM    AC0,LOCA\r
20485         003472' 272000  013326'         ADDM    AC0,LOCO\r
20486         003473' 260740  003444'         PUSHJ   PP,GETTOP\r
20487         003474' 542200  013030'         HRRM    SX,VARHDX\r
20488         003475' 325640  000446'         JUMP2   POPOUT\r
20489 \r
20490         003476' 260740  003025'         PUSHJ   PP,LOOKUP       ;SET FOR TABLE SCAN\r
20491         003477' 626240  000100          TRZN    ARG,VARF\r
20492         003500' 263740  000000          POPJ    PP,             ;NO, EXIT\r
20493         003501' 620240  002000          TRZ ARG,UNDF            ;TURN OFF FLAG NOW\r
20494         003502' 205000  000001          MOVSI AC0,1             ;ADD 1\r
20495         003503' 272001  000000          ADDM    AC0,0(AC1)      ;UPDATE COUNT\r
20496 \r
20497         003504' 434240  013332'         IOR     ARG,MODA        ;SET TO ASSEMBLY MODE\r
20498         003505' 504240  013325'         HRL     ARG,LOCA\r
20499         003506' 206244  000000          MOVSM   ARG,0(SX)       ;UPDATE 2ND WRD OF SYM TAB ENTRY\r
20500         003507' 350000  013325'         AOS     LOCA\r
20501         003510' 350000  013326'         AOS     LOCO\r
20502         003511' 254000  004146'         JRST    HIGHQ1\r
20503 \r\fMACRO V.10                     PAGE 67\r
20504         PSEUDO-OP HANDLERS\r
20505 \r
20506         003512' 261740  000000  IF:     PUSH    PP,AC0          ;SAVE AC0\r
20507         003513' 261740  000014          PUSH    PP,IO\r
20508         003514' 260740  003757'         PUSHJ   PP,EVALXQ       ;EVALUATE AND TEST EXTERNAL\r
20509         003515' 262740  000001          POP     PP,AC1\r
20510         003516' 321040  003520'         JUMPL   AC1,IFPOP\r
20511         003517' 621600  400000          TLZ     IO,FLDSW\r
20512         003520' 262740  000001  IFPOP:  POP     PP,AC1          ;RETRIEVE SKIP INSTRUCTION\r
20513         003521' 661600  000004  IFSET:  TLO IO,IORPTC           ;REPEAT CHARACTER\r
20514         003522' 256000  000001  IFXCT:  XCT     AC1             ;EXECUTE INSTRUCTION\r
20515         003523' 634000  000000          TDZA    AC0,AC0         ;FALSE\r
20516         003524' 201000  000001          MOVEI   AC0,1           ;TRUE\r
20517         003525' 325600  005072' IFEXIT: JUMPOC REPEA1           ;BRANCH IF IN OP-CODE FIELD\r
20518         003526' 260740  001354' IFEX1:  PUSHJ PP,GETCHR         ;SEARCH FOR "<"\r
20519         003527' 306340  000033          CAIN C,EOL              ;ERROR IF END OF LINE\r
20520         003530' 254000  003311'         JRST ERRAX\r
20521         003531' 302340  000034          CAIE C,34\r
20522         003532' 254000  003526'         JRST IFEX1\r
20523         003533' 322000  003664'         JUMPE AC0,IFEX2         ;TEST FOR 0\r
20524         003534' 661600  000004          TLO IO,IORPTC           ;NO, PROCESS AS CELL\r
20525         003535' 260740  000354'         PUSHJ PP,CELL\r
20526         003536' 402000  013275'         SETZM   INCND           ;NOT ANY MORE\r
20527         003537' 254000  002665'         JRST STOW               ;STOW CODE AND EXIT\r
20528 \r
20529         003540' 541000  400000  IFPASS: HRRI    AC0,P1          ;MAKE IT TLNX IO,P1\r
20530         003541' 200040  000000          MOVE    AC1,AC0         ;PLACE IT IN AC1\r
20531         003542' 254000  003521'         JRST    IFSET           ;EXECUTE INSTRUCTION\r
20532 \r
20533         003543' 520040  000000  IFB0:   HLLO    AC1,AC0         ;FORM AND STORE TEST INSTRUCTION\r
20534         003544' 260740  001436' IFB1:   PUSHJ   PP,CHARL        ;GET FIRST NON-BLANK\r
20535         003545' 302340  000040          CAIE    C," "\r
20536         003546' 306340  000011          CAIN    C,"     "\r
20537         003547' 254000  003544'         JRST    IFB1            ;SKIP BLANKS AND TABS\r
20538         003550' 307340  000015          CAIG    C,CR            ;CHECK FOR CARRET AS DELIM.\r
20539         003551' 305340  000012          CAIGE   C,LF\r
20540         003552' 334200  013415'         SKIPA   SX,SEQNO2\r
20541         003553' 254000  003311'         JRST    ERRAX\r
20542         003554' 202200  013312'         MOVEM   SX,CNDSEQ\r
20543         003555' 200200  013414'         MOVE    SX,PAGENO\r
20544         003556' 202200  013311'         MOVEM   SX,CNDPG\r
20545         003557' 476000  013275'         SETOM   INCND           ;SAVE INFO. FOR PASS 1 ERRORS\r
20546         003560' 306340  000074          CAIN    C,"<"           ;LEFT BRACKET?\r
20547         003561' 403340  000011          SETZB   C,RC            ;YES, PREPARE FOR OLD FORMAT\r
20548         003562' 334200  000007          SKIPA   SX,C            ;SAVE FOR COMPARISON\r
20549         003563' 660000  000001  IFB3:   TRO     AC0,1           ;SET FLAG\r
20550         003564' 260740  001436' IFB2:   PUSHJ   PP,CHARL        ;GET ASCII CHARACTER AND LIST\r
20551         003565' 316340  000004          CAMN    C,SX            ;TEST FOR DELIMITER\r
20552         003566' 254000  003522'         JRST    IFXCT           ;FOUND\r
20553         003567' 302340  000040          CAIE    C," "           ;BLANK?\r
20554         003570' 306340  000011          CAIN    C,"     "       ;OR TAB?\r
20555         003571' 254000  003564'         JRST    IFB2            ;YES\r
20556         003572' 326200  003563'         JUMPN   SX,IFB3         ;JUMP IF NEW FORMAT\r
20557         003573' 306340  000074          CAIN    C,"<"           ;<?\r
20558         003574' 344440  003564'         AOJA    RC,IFB2         ;YES, INCREMENT COUNT\r
20559 \r\fMACRO V.10                     PAGE 67-1\r
20560         PSEUDO-OP HANDLERS\r
20561 \r
20562         003575' 306340  000076          CAIN    C,">"           ;>?\r
20563         003576' 361440  003522'         SOJL    RC,IFXCT        ;YES, DECREMENT AND EXIT IF DONE\r
20564         003577' 254000  003563'         JRST    IFB3            ;GET NEXT CHARACTER\r
20565 \r
20566 \r\fMACRO V.10                     PAGE 68\r
20567         PSEUDO-OP HANDLERS\r
20568 \r
20569         003600' 541000  002000  IFDEF0: HRRI    AC0,UNDF        ;MAKE IT TLNX ARG,UNDF\r
20570         003601' 261740  000000          PUSH    PP,AC0          ;STACK IT\r
20571         003602' 260740  001034'         PUSHJ   PP,GETSYM       ;TAKES SKIP RETURN IF SYM NAME IS LEGAL\r
20572         003603' 664600  040000          TROA    ER,ERRA         ;ILLEGAL!\r
20573         003604' 260740  012313'         PUSHJ   PP,SEARCH\r
20574                                         JRST    [PUSHJ  PP,OPTSCH\r
20575                                                 TLO     ARG,UNDF\r
20576         003605' 254000  014201'                 JRST    .+1]\r
20577         003606' 260740  012220'         PUSHJ PP,SSRCH3         ;EMIT TO CREF ANYWAY\r
20578         003607' 254000  003520'         JRST    IFPOP           ;POP AND EXECUTE INSTRUCTION\r
20579 \r
20580 \r\fMACRO V.10                     PAGE 69\r
20581         PSEUDO-OP HANDLERS\r
20582 \r
20583         003610' 557000  000000  IFIDN0: HLRZS   AC0\r
20584         003611' 201300  000047          MOVEI   V,2*.IFBLK-1\r
20585         003612' 402006  012730'         SETZM   IFBLK(V)        ;CLEAR COMPARISON BLOCK\r
20586         003613' 365300  003612'         SOJGE   V,.-1\r
20587         003614' 402000  013402'         SETZM   .TEMP           ;CLEAR STORED DELIMETER\r
20588         003615' 201440  012730'         MOVEI   RC,IFBLK        ;SET FOR FIRST BLOCK\r
20589         003616' 260740  003630'         PUSHJ   PP,IFCL         ;GET FIRST STRING\r
20590         003617' 201440  012754'         MOVEI   RC,IFBLKA\r
20591         003620' 260740  003630'         PUSHJ   PP,IFCL         ;GET SECOND STRING\r
20592         003621' 201300  000023          MOVEI   V,.IFBLK-1\r
20593         003622' 200206  012730'         MOVE    SX,IFBLK(V)     ;GET WORD FROM FIRST STRING\r
20594         003623' 316206  012754'         CAMN    SX,IFBLKA(V)    ;COMPARE WITH SECOND STRING\r
20595         003624' 365300  003622'         SOJGE   V,.-2           ;EQUAL, TRY NEXT WORD\r
20596         003625' 321300  003525'         JUMPL   V,IFEXIT        ;DID WE FINISH STRING\r
20597         003626' 431000  000001          XORI    AC0,1           ;NO, TOGGLE REQUEST\r
20598         003627' 254000  003525'         JRST    IFEXIT  ;DO NOT TURN ON IORPTC WFW\r
20599 \r
20600         003630' 260740  001406' IFCL:   PUSHJ   PP,CHARAC       ;GET AND LIST CHARACTER\r
20601         003631' 302340  000040          CAIE    C," "           ;SKIP SPACES\r
20602         003632' 307340  000015          CAIG    C,CR            ;ALSO SKIP CR-LF\r
20603         003633' 305340  000011          CAIGE   C,HT            ;AND TAB\r
20604         003634' 254000  003636'         JRST    .+2             ;NOT ONE OF THEM\r
20605         003635' 254000  003630'         JRST    IFCL            ;SO LONG COMPARISONS WILL WORK\r
20606                                 ;*** A CROCK SO THAT IFIDN <X>,<X>,<INST.> WILL WORK    ***\r
20607         003636' 302340  000054          CAIE    C,","           ;IS IT A COMMA?\r
20608         003637' 254000  003642'         JRST    .+3             ;NO\r
20609         003640' 336000  013402'         SKIPN   .TEMP           ;YES, WAS PREVIOUS FIELD OLD METHOD?\r
20610         003641' 254000  003630'         JRST    IFCL            ;YES, IGNORE COMMA AND SPACES\r
20611                                 ;       ***\r
20612         003642' 306340  000074          CAIN    C,"<"           ;WAS IT LEFT BRACKET?\r
20613         003643' 474340  000000          SETO    C,              ;SIGNAL OLD METHOD, LOOK FOR RIGHT BRACKET\r
20614         003644' 202340  013402'         MOVEM   C,.TEMP         ;STORE TERMINATOR FOR COMPARISON\r
20615         003645' 201200  000143          MOVEI   SX,5*.IFBLK-1   ;LIMIT SEARCH\r
20616         003646' 505440  440700          HRLI    RC,(POINT 7,,)  ;SET UP BYTE IN RC\r
20617         003647' 260740  001406' IFCLR:  PUSHJ   PP,CHARAC\r
20618         003650' 333000  013402'         SKIPLE  .TEMP           ;NEW METHOD?\r
20619         003651' 254000  003656'         JRST    IFCLR1          ;YES, IGNORE ANGLE BRACKET COUNTING\r
20620         003652' 306340  000074          CAIN    C,"<"           ;ANOTHER LEFT ANGLE?\r
20621         003653' 370000  013402'         SOS     .TEMP           ;YES, KEEP COUNT\r
20622         003654' 306340  000076          CAIN    C,">"           ;CLOSING ANGLE\r
20623         003655' 355000  013402'         AOSGE   .TEMP           ;MATCHING COUNT?\r
20624         003656' 316340  013402' IFCLR1: CAMN    C,.TEMP         ;TEST FOR DELIMITER\r
20625         003657' 263740  000000          POPJ    PP,             ;EXIT ON RIGHT DELIMITER\r
20626         003660' 367200  003662'         SOJG    SX,.+2          ;ANY ROOM IN COMPARISON BLOCK?\r
20627         003661' 664600  040000          TROA    ER,ERRA         ;NO, FLAG ERROR BUT KEEP ON GOING\r
20628         003662' 136340  000011          IDPB    C,RC            ;DEPOSIT BYTE\r
20629         003663' 254000  003647'         JRST    IFCLR\r
20630 \r
20631 \r\fMACRO V.10                     PAGE 70\r
20632         PSEUDO-OP HANDLERS\r
20633 \r
20634 \r
20635         003664' 260740  001354' IFEX2:  PUSHJ   PP,GETCHR\r
20636         003665' 306340  000033          CAIN    C,EOL           ;EXIT WITH ERROR IF END OF LINE\r
20637         003666' 254000  003311'         JRST    ERRAX\r
20638         003667' 306340  000034          CAIN    C,34            ;"<"?\r
20639         003670' 344000  003664'         AOJA    AC0,IFEX2       ;YES, INCREMENT COUNT\r
20640         003671' 302340  000036          CAIE    C,36            ;">"?\r
20641         003672' 254000  003664'         JRST    IFEX2           ;NO, TRY AGAIN\r
20642         003673' 365000  003664'         SOJGE   AC0,IFEX2       ;YES, TEST FOR MATCH\r
20643         003674' 260740  004452'         PUSHJ   PP,BYPASS       ;YES, MOVE TO NEXT DELIMITER\r
20644         003675' 402000  013275'         SETZM   INCND           ;OUT OF CONDITIONAL NOW\r
20645         003676' 344000  002664'         AOJA    AC0,STOWZ1      ;STOW ZERO\r
20646 \r
20647 \r
20648         003677' 512000  013271' INTER0: HLLZM   AC0,INTENT      ;AC0 CONTAINS INTF/ENTF FLAGS\r
20649 \r
20650         003700' 260740  001034' INTER1: PUSHJ   PP,GETSYM       ;GET A SYMBOL\r
20651         003701' 254000  003710'         JRST    INTER3          ;INVALID, SKIP\r
20652         003702' 260740  012210'         PUSHJ   PP,SSRCH        ;SEARCH THE TABLE\r
20653         003703' 205240  402400          MOVSI   ARG,SYMF!INTF!UNDF\r
20654         003704' 603240  002000          TLNE    ARG,UNDF        ;UNDEFINED?\r
20655         003705' 660600  040000          TRO     ER,ERRA         ;YES, FLAG ERROR\r
20656         003706' 607240  041000          TLNN    ARG,SYNF!EXTF\r
20657         003707' 674240  013271'         TDOA    ARG,INTENT                      ;SET APPROPRIATE FLAGS\r
20658         003710' 664600  040000  INTER3: TROA    ER,ERRA         ;FLAG ARG EROR AND SKIP\r
20659         003711' 260740  012364'         PUSHJ   PP,INSERQ       ;INSERT/UPDATE\r
20660         003712' 321400  003700'         JUMPCM  INTER1\r
20661         003713' 402000  013270'         SETZM EXTPNT    ;JUST IN CASE, SO AS NOT TO CONFUSE WORLD\r
20662         003714' 263740  000000          POPJ    PP,             ;NO, EXIT\r
20663 \r\fMACRO V.10                     PAGE 71\r
20664         PSEUDO-OP HANDLERS\r
20665 \r
20666         003715' 260740  001034' EXTER0: PUSHJ   PP,GETSYM       ;GET A SYMBOL\r
20667         003716' 254000  003741'         JRST    EXTER4          ;INVALID, ERROR\r
20668         003717' 661600  000040  EXTER1: TLO     IO,DEFCRS       ;FLAG THIS AS A DEFINITION\r
20669         003720' 260740  012210'         PUSHJ   PP,SSRCH        ;OK, SEARCH SYMBOL TABLE\r
20670         003721' 254000  003726'         JRST    EXTER2          ;NOT THERE, INSERT IT\r
20671         003722' 607240  003100          TLNN    ARG,EXTF!VARF!UNDF\r
20672         003723' 664600  000040          TROA    ER,ERRE         ;FLAG ERROR AND BYPASS\r
20673         003724' 603240  001000          TLNE    ARG,EXTF        ;VALID, ALREADY DEFINED?\r
20674                                         JRST    [JUMP1  EXTER3  ;YES, BYPASS\r
20675                                                 TLZN ARG,UNDF   ;SKIP IF UNDEFINED ALSO\r
20676                                                 JRST    EXTER3  ;CONTINUE\r
20677                                                 ANDM ARG,(SX)   ;CLEAR UNDF ON PASS 2\r
20678         003725' 254000  014204'                 JRST    EXTER2] ;SET UP EXTERNAL NOW\r
20679         003726' 201300  000002  EXTER2: MOVEI V,2               ;NO, GET 2 CELLS FROM THE TREE\r
20680         003727' 273300  012727'         ADDB V,FREE\r
20681         003730' 311300  013102'         CAML    V,SYMBOL        ;HAVE WE RUN OUT OF CORE?\r
20682         003731' 260740  010014'         PUSHJ   PP,XCEEDS       ;YES, TRY TO BORROW SOME MORE\r
20683         003732' 275300  000002          SUBI    V,2             ;GET RIGHT CELL FOR POINTER\r
20684         003733' 403446  000000          SETZB   RC,0(V)         ;ALL SET, ZERO VALUES\r
20685         003734' 205240  401000          MOVSI   ARG,SYMF!EXTF\r
20686         003735' 260740  012366'         PUSHJ   PP,INSERT       ;INSERT/UPDATE IT\r
20687         003736' 205240  004000          MOVSI   ARG,PNTF\r
20688         003737' 436244  000000          IORM    ARG,0(SX)\r
20689         003740' 334244  777777          SKIPA ARG,-1(SX)                ;GET THE SIXBIT FOR THE NAME\r
20690         003741' 664600  040000  EXTER4: TROA ER,ERRA    ;FLAG AS ERROR\r
20691         003742' 202246  000001          MOVEM ARG,1(V)          ;AND STORE THAT IN CASE SYMBOL TABLE MOVES\r
20692         003743' 321400  003715' EXTER3: JUMPCM  EXTER0\r
20693         003744' 263740  000000          POPJ    PP,             ;NO, EXIT\r
20694 \r\fMACRO V.10                     PAGE 72\r
20695         PSEUDO-OP HANDLERS\r
20696 \r
20697         003745' 261740  000015  EVAL10: PUSH    PP,RX\r
20698         003746' 541640  000012          HRRI    RX,^D10\r
20699         003747' 260740  001070'         PUSHJ   PP,EVALEX       ;EVALUATE\r
20700         003750' 262740  000015          POP     PP,RX           ;RESET RADIX\r
20701         003751' 322440  000446'         JUMPE   RC,POPOUT       ;EXIT IF ABSOLUTE\r
20702 \r
20703         003752' 332000  013270' QEXT:   SKIPE   EXTPNT          ;ANY POSSIBILITIES?\r
20704         003753' 664600  000040          TROA    ER,ERRE         ;YES, FLAG EXTERNAL ERROR\r
20705         003754' 660600  004000          TRO     ER,ERRR         ;NO, FLAG RELOCATION ERROR\r
20706         003755' 513000  000011          HLLZS   RC              ;CLEAR RELOCATION/EXTERNAL\r
20707         003756' 263740  000000          POPJ    PP,\r
20708 \r
20709         003757' 260740  001070' EVALXQ: PUSHJ   PP,EVALEX       ;EVALUATE EXPRESSION\r
20710         003760' 627440  777776          TLZN RC,-2              ;LEFT HALF EXTERNAL\r
20711         003761' 622440  777776          TRZE    RC,-2           ;WAS AN EXTERNAL FOUND?\r
20712         003762' 660600  000040          TRO     ER,ERRE         ;YES, FLAG ERROR\r
20713         003763' 263740  000000          POPJ    PP,             ;RETURN\r
20714 \r\fMACRO V.10                     PAGE 73\r
20715         PSEUDO-OP HANDLERS\r
20716 \r
20717         003764' 260740  001034' OPDEF0: PUSHJ   PP,GETSYM       ;GET THE FIRST SYMBOL\r
20718         003765' 263740  000000          POPJ    PP,             ;ERROR IF INVALID SYMBOL\r
20719         003766' 302340  000073          CAIE    C,73            ;"["?\r
20720         003767' 254000  003311'         JRST    ERRAX           ;NO, ERROR\r
20721         003770' 261740  000000          PUSH    PP,AC0          ;STACK MNEMONIC\r
20722         003771' 350000  013321'         AOS     LITLVL          ;SHORT OUT LOCATION INCREMENT\r
20723         003772' 260740  000125'         PUSHJ   PP,STMNT        ;EVALUATE STATEMENT\r
20724         003773' 335000  013104'         SKIPGE  STPX            ;CODE STORED?\r
20725         003774' 664600  040000          TROA    ER,ERRA         ;NO,"A" ERROR\r
20726         003775' 260740  002712'         PUSHJ   PP,DSTOW        ;GET AND DECODE VALUE\r
20727         003776' 370000  013321'         SOS     LITLVL\r
20728         003777' 250017  000000          EXCH    AC0,0(PP)       ;EXCHANGE VALUE FOR MNEMONIC\r
20729         004000' 261740  000011          PUSH    PP,RC           ;STACK RELOCATION\r
20730         004001' 661600  000040          TLO     IO,DEFCRS       ;SAY WE ARE DEFINING IT\r
20731         004002' 260740  012173'         PUSHJ   PP,MSRCH        ;SEARCH SYMBOL TABLE\r
20732         004003' 205240  010000          MOVSI   ARG,OPDF        ;NOT FOUND\r
20733         004004' 262740  000011          POP     PP,RC           ;RESTORE VALUES\r
20734         004005' 262740  000006          POP     PP,V\r
20735         004006' 603240  060000          TLNE    ARG,SYNF!MACF\r
20736         004007' 660600  040000          TRO     ER,ERRA         ;YES "A" ERROR\r
20737         004010' 606600  040000          TRNN    ER,ERRA         ;ERROR?\r
20738         004011' 260740  012366'         PUSHJ   PP,INSERT       ;NO, INSERT/UPDATE\r
20739         004012' 621600  000040          TLZ IO,DEFCRS           ;JUST IN CASE\r
20740         004013' 260740  004452'         PUSHJ   PP,BYPASS\r
20741         004014' 254000  002717'         JRST    STOWI           ;BE SURE STOW IS RESET\r
20742 \r
20743 \r
20744         004015' 200000  013326' DEPHA0: MOVE    AC0,LOCO\r
20745         004016' 334440  013334'         SKIPA   RC,MODO         ;SET TO OUTPUT VALUES AND SKIP\r
20746         004017' 260740  003757' PHASE0: PUSHJ   PP,EVALXQ       ;EVALUATE AND CHECK FOR EXTERNAL\r
20747         004020' 202000  013325'         MOVEM   AC0,LOCA        ;SET ASSEMBLY LOCATION COUNTER\r
20748         004021' 202440  013332'         MOVEM   RC,MODA\r
20749         004022' 254000  003335'         JRST    BLOCK2\r
20750 \r\fMACRO V.10                     PAGE 74\r
20751         PSEUDO-OP HANDLERS\r
20752 \r
20753         004023' 321600  003311' ASSIGN: JUMPAD  ERRAX           ;NO, ERROR\r
20754         004024' 260740  004037'         PUSHJ   PP,ASSIG1\r
20755         004025' 603600  000001          TLNE    IO,IOSALL       ;SUPPRESS ALL?\r
20756         004026' 326540  003360'         JUMPN   MRP,CPOPJ       ;IF IN MACRO\r
20757         004027' 202440  013323' ASSIG7: MOVEM   RC,ASGBLK\r
20758         004030' 602440  777776          TRNE    RC,-2           ;EXTERNAL\r
20759         004031' 513000  013323'         HLLZS   ASGBLK          ;YES,CLEAR RELOCATION\r
20760         004032' 603440  000001          TLNE    RC,1            ;LEFT HALF NOT RELOC?\r
20761         004033' 603440  777776          TLNE    RC,-2           ;...\r
20762         004034' 563000  013323'         HRROS   ASGBLK          ;YES, SET FLAG\r
20763         004035' 202300  013324'         MOVEM   V,LOCBLK\r
20764         004036' 263740  000000          POPJ    PP,\r
20765 \r
20766         004037' 261740  000000  ASSIG1: PUSH    PP,AC0          ;SAVE SYMBOL\r
20767         004040' 403000  013270'         SETZB AC0,EXTPNT        ;SPECIAL CHECK FOR == WFW\r
20768         004041' 260740  006335'         PUSHJ PP,PEEK           ;IS THE NEXT ON =\r
20769         004042' 302340  000075          CAIE    C,"="\r
20770         004043' 254000  004047'         JRST    ASSIG5\r
20771         004044' 661000  100000          TLO     AC0,NOOUTF      ;YES, NOT OUT TO DDT WFW\r
20772         004045' 260740  001354'         PUSHJ   PP,GETCHR       ;PROCESS THE CHAR.\r
20773         004046' 260740  006335'         PUSHJ   PP,PEEK         ;CHECK FOR ==: DMN\r
20774         004047' 302340  000072  ASSIG5: CAIE    C,":"           ;IS IT\r
20775         004050' 254000  004053'         JRST    ASSIG6          ;NO\r
20776         004051' 661000  000400          TLO     AC0,INTF        ;MAKE INTERNAL\r
20777         004052' 260740  001354'         PUSHJ   PP,GETCHR       ;REPEAT IT\r
20778         004053' 202000  013417' ASSIG6: MOVEM AC0,HDAS          ;STORE THESE BITS WFW\r
20779         004054' 260740  001057'         PUSHJ   PP,EVALCM       ;EVALUATE EXPRESSION\r
20780         004055' 250017  000000          EXCH    AC0,0(PP)       ;SWAP VALUE FOR SYMBOL\r
20781         004056' 261740  000011          PUSH    PP,RC\r
20782         004057' 606440  777776          TRNN RC,-2              ;CHECK EXTERNAL AGREEMENT\r
20783         004060' 254000  004065'         JRST ASSIG2\r
20784         004061' 553000  000011          HRRZS RC\r
20785         004062' 550240  013270'         HRRZ ARG,EXTPNT\r
20786         004063' 312440  000005          CAME RC,ARG\r
20787         004064' 260740  003752'         PUSHJ   PP,QEXT         ;EXTERNAL OR RELOCATION ERROR\r
20788         004065' 554457  000000  ASSIG2: HLRZ RC,(PP)\r
20789         004066' 606440  777776          TRNN RC,-2\r
20790         004067' 254000  004073'         JRST ASSIG3\r
20791         004070' 554240  013270'         HLRZ ARG,EXTPNT\r
20792         004071' 312440  000005          CAME RC,ARG\r
20793         004072' 260740  003752'         PUSHJ   PP,QEXT\r
20794         004073' 661600  000040  ASSIG3: TLO IO,DEFCRS\r
20795         004074' 260740  012210'         PUSHJ   PP,SSRCH\r
20796         004075' 205240  400000          MOVSI   ARG,SYMF\r
20797         004076' 434240  013417'         IOR ARG,HDAS    ;WFW\r
20798         004077' 603240  002000          TLNE    ARG,UNDF        ;WAS IT UNDEFINED\r
20799         004100' 621240  005000          TLZ     ARG,EXTF!PNTF   ;YES,CLEAR EXTF NOW\r
20800         004101' 621240  002100          TLZ     ARG,UNDF!VARF   ;CANCEL UNDEFINED AND VARIABLE FLAGS\r
20801         004102' 402000  013270'         SETZM EXTPNT            ;FOR REST OF WORLD\r
20802         004103' 262740  000011          POP     PP,RC\r
20803         004104' 602600  577760          TRNE    ER,ERRORS-ERRQ\r
20804         004105' 400440  000000          SETZ    RC,             ;CLEAR RELOCATION\r
20805         004106' 262740  000006          POP     PP,V\r
20806 \r\fMACRO V.10                     PAGE 74-1\r
20807         PSEUDO-OP HANDLERS\r
20808 \r
20809         004107' 602600  002000          TRNE    ER,ERRU         ;WAS VALUE UNDEFINED?\r
20810         004110' 661240  002000          TLO     ARG,UNDF        ;YES,SO TURN UNDF ON\r
20811         004111' 603240  201000          TLNE    ARG,TAGF!EXTF\r
20812         004112' 254000  003311'         JRST    ERRAX\r
20813         004113' 254000  012366'         JRST    INSERT\r
20814 \r
20815 \r\fMACRO V.10                     PAGE 75\r
20816         PSEUDO-OP HANDLERS\r
20817 \r
20818         004114' 260740  004146' LOC0:   PUSHJ   PP,HIGHQ        ;AC0=0,0\r
20819         004115' 261740  000000          PUSH    PP,AC0          ;SAVE MODE REQUESTED\r
20820         004116' 557000  000000          HLRZS   AC0             ;PUT MODE IN RIGHT HALF\r
20821         004117' 326000  004140'         JUMPN   AC0,RELOC0      ;RELOC PSEUDO-OP\r
20822         004120' 316000  013334'         CAMN    AC0,MODO        ;SAME AS PRESENT MODE?\r
20823                                         JRST    [HRRZ AC0,LOCO  ;YES\r
20824                                                 EXCH AC0,ABSLOC ;EXCH VALUES\r
20825         004121' 254000  014211'                 JRST    LOC01]\r
20826         004122' 550000  013326'         HRRZ    AC0,LOCO        ;NO, GET CURRENT VALUE\r
20827         004123' 202000  013327'         MOVEM   AC0,RELLOC      ;SAVE IT\r
20828         004124' 200000  013330'         MOVE    AC0,ABSLOC      ;GET LAST RELOC VALUE\r
20829         004125' 260740  004452' LOC01:  PUSHJ   PP,BYPASS       ;SKIP BLANKS\r
20830         004126' 661600  000004          TLO     IO,IORPTC\r
20831         004127' 302340  000033          CAIE    C,EOL           ;USE PREVIOUS VALUE IF NULL ARGUMENT\r
20832         004130' 260740  003757'         PUSHJ   PP,EVALXQ       ;GET EXPRESSION AND TEST EXTERNAL\r
20833         004131' 542017  000000          HRRM    AC0,(PP)        ;STORE NEW VALUE\r
20834         004132' 262740  000000          POP     PP,AC0          ;RETRIEVE STORED MODE AND VALUE\r
20835         004133' 552000  013325' LOC10:  HRRZM   AC0,LOCA        ;SET ASSEMBLY LOCATION\r
20836         004134' 552000  013326'         HRRZM   AC0,LOCO        ;AND OUTPUT LOCATION\r
20837         004135' 556000  013332'         HLRZM   AC0,MODA        ;SET MODE\r
20838         004136' 556000  013334'         HLRZM   AC0,MODO\r
20839         004137' 254000  003335'         JRST    BLOCK2\r
20840 \r
20841         004140' 316000  013334' RELOC0: CAMN    AC0,MODO\r
20842                                         JRST    [HRRZ   AC0,LOCO\r
20843                                                 EXCH    AC0,RELLOC\r
20844         004141' 254000  014214'                 JRST    LOC01]\r
20845         004142' 550000  013326'         HRRZ    AC0,LOCO\r
20846         004143' 202000  013330'         MOVEM   AC0,ABSLOC\r
20847         004144' 200000  013327'         MOVE    AC0,RELLOC\r
20848         004145' 254000  004125'         JRST    LOC01\r
20849 \r
20850 \r\fMACRO V.10                     PAGE 76\r
20851         PSEUDO-OP HANDLERS\r
20852 \r
20853                                 IFN RENTSW,<\r
20854                                 HISEG1: PUSHJ   PP,HIGHQ        ;SET CURRENT PROGRAM BREAK\r
20855                                         PUSHJ   PP,COUTD        ;DUMP CURRENT TYPE OF BLOCK\r
20856                                         SKIPN   HISNSW          ;IF WE HAVE SEEN IT BEFORE\r
20857                                         SKIPE   HIGH            ;OR ANY RELOC CODE PUT OUT\r
20858                                         TRO     ER,ERRQ         ;FLAG AS AN ERROR\r
20859                                         PUSHJ   PP,BYPASS       ;GO GET EXPRESSION\r
20860                                         TLO     IO,IORPTC\r
20861                                         PUSHJ   PP,EVALXQ       ;CHECK FOR EXTERNAL\r
20862                                         ANDCMI  AC0,1777        ;ONLY ALLOWED TO START ON NEW K BOUND\r
20863                                         HRRZM   AC0,LOCA        ;SET LOC COUNTERS\r
20864                                         HRRZM   AC0,LOCO\r
20865                                         MOVEI   RC,1            ;ASSUME RELOCATABLE\r
20866                                         POPJ    PP,\r
20867                                 \r
20868                                 TWSEG0: PUSHJ   PP,HISEG1       ;COMMON CODE\r
20869                                         JUMPN   AC0,.+2         ;ARGUMENT SEEN\r
20870                                         MOVEI   AC0,400000      ;ASSUME 400000\r
20871                                         HRRZM   AC0,HMIN        ;SET OFSET OF HIGH SEG.\r
20872                                         HRRZM   AC0,HHIGH       ;INCASE NO HISEG CODE\r
20873                                         TLOA    AC0,(1B0)       ;SIGNAL TWO SEGMENTS AND SKIP\r
20874                                 \r
20875                                 HISEG0: PUSHJ   PP,HISEG1       ;COMMON CODE\r
20876                                 HISEG2: MOVEM   AC0,SVTYP3      ;SAVE THE HISEG ARG\r
20877                                         MOVEM   RC,MODA         ;SET MODES\r
20878                                         MOVEM   RC,MODO\r
20879                                         SETOM   HISNSW          ;WE HAVE ALREADY PUT ONE OUT\r
20880                                         JRST    BLOCK2          ;MAKE LISTING HAPPEN RIGHT>\r
20881 \r
20882                                 IFE RENTSW,<\r
20883                                         SYN     CPOPJ,HISEG0\r
20884                                         SYN     CPOPJ,TWSEG0>\r
20885 \r
20886                                         SYN     CPOPJ,ONFORM\r
20887                                         SYN     CPOPJ,OFFORM\r
20888 \r\fMACRO V.10                     PAGE 77\r
20889         PSEUDO-OP HANDLERS\r
20890 \r
20891         004146'                 HIGHQ:\r
20892         004146' 200300  013326' HIGHQ1: MOVE    V,LOCO  ;GET ASSEMBLY LOCATION\r
20893         004147' 336000  013334'         SKIPN   MODO            ;IF ASSEMBLY MODE IS ABSOLUTE\r
20894                                         JRST    [CAMLE V,ABSHI  ;RECORED ABS HIGHEST ALSO\r
20895                                                 MOVEM V,ABSHI\r
20896         004150' 254000  014217'                 POPJ PP,]\r
20897                                 IFN RENTSW,<SKIPE       HMIN    ;IS IT A TWO SEGMENT PROGRAM?\r
20898                                         JRST    [CAMGE  V,HMIN  ;YES,IS THIS HIGH SEG.?\r
20899                                                 JRST    .+1     ;NO,STORE LOW SEGMENT\r
20900                                                 CAMLE   V,HHIGH ;YES,IS IT GREATER THAN "HHIGH"?\r
20901                                                 MOVEM   V,HHIGH ;YES,REPLACE WITH LARGER VALUE\r
20902                                                 POPJ    PP,]>\r
20903         004151' 313300  013263'         CAMLE   V,HIGH          ;IS IT GREATER THAN "HIGH"?\r
20904         004152' 202300  013263'         MOVEM   V,HIGH          ;YES, REPLACE WITH LARGER VALUE\r
20905         004153' 263740  000000          POPJ    PP,\r
20906         \r
20907         004154' 625640  200000  ONML:   TLZA FR,MWLFLG          ;MULTI-WORD LITERALS OK\r
20908         004155' 661640  200000  OFFML:  TLO FR,MWLFLG           ;NO\r
20909         004156' 263740  000000          POPJ PP,\r
20910 \r
20911         004157' 476000  013257' OFFSYM: SETOM   IONSYM  ;SUPRESS SYMBOL TABLE LISTING\r
20912         004160' 263740  000000          POPJ    PP,\r
20913 \r
20914         004161' 260740  001034' SUPRE0: PUSHJ PP,GETSYM ;GET A SYMBOL TO SUPRES\r
20915         004162' 254000  004166'         JRST SUPRE1     ;ERROR\r
20916         004163' 260740  012210'         PUSHJ PP,SSRCH  ;SYMBOL ONLY\r
20917         004164' 254000  004166'         JRST SUPRE1     ;GIVE ERROR MESSAGE\r
20918         004165' 665240  000004          TLOA ARG,SUPRBT ;SET THE SUPRESS BIT\r
20919         004166' 664600  040000  SUPRE1: TROA ER,ERRA\r
20920         004167' 436244  000000          IORM ARG,(SX)   ;PUT BACK\r
20921         004170' 321400  004161'         JUMPCM SUPRE0   ;ANY MORE?\r
20922         004171' 254000  004175'         JRST    SUPRS1\r
20923 \r
20924         004172' 260740  003025' SUPRSA: PUSHJ PP,LOOKUP ;SUPRESS ALL\r
20925         004173' 205240  000004          MOVSI ARG,SUPRBT\r
20926         004174' 436244  000000          IORM ARG,(SX)\r
20927         004175' 402000  013270' SUPRS1: SETZM EXTPNT    ;JUST IN CASE WE LOOKED ONE UP\r
20928         004176' 263740  000000          POPJ PP,\r
20929 \r
20930         004177' 321640  000446' XPUNG0: JUMP1   POPOUT\r
20931         004200' 260740  003025'         PUSHJ   PP,LOOKUP\r
20932         004201' 200244  000000          MOVE    ARG,(SX)        ;GET SYMBOL FLAGS\r
20933         004202' 607240  001610          TLNN    ARG,INTF!ENTF!EXTF!SPTR\r
20934         004203' 665240  000004          TLOA    ARG,SUPRBT      ;LOCAL SYMBOL,SO SUPPRESS IT\r
20935         004204' 402000  013270'         SETZM   EXTPNT\r
20936         004205' 202244  000000          MOVEM   ARG,(SX)        ;RESTORE FLAGS\r
20937         004206' 263740  000000          POPJ    PP,\r
20938 \r\fMACRO V.10                     PAGE 78\r
20939         PSEUDO-OP HANDLERS\r
20940 \r
20941         004207' 325640  003361' TITLE0: JUMP2   REMAR0\r
20942         004210' 201200  000120          MOVEI   SX,.TBUF\r
20943         004211' 541000  013230'         HRRI    AC0,TBUF\r
20944         004212' 260740  004224'         PUSHJ PP,SUBTT1 ;GO READ IT\r
20945         004213' 202200  013227'         MOVEM   SX,TCNT         ;SAVE COUNT OF CHARS. WRITTEN\r
20946                                 IFN UNIVR,<SKIPE        UNIVSN          ;WAS IT A UNIVERSAL?\r
20947                                         PUSHJ   PP,ADDUNV       ;YES  ADD TO TABLE>\r
20948         004214' 663600  000002          TLOE IO,IOTLSN  ;HAVE WE SEEN ONE\r
20949                                 IFE CCLSW,<TRO  ER,ERRM         ;YES, COMPLAIN>\r
20950         004215' 664600  000020  IFN CCLSW,<TROA ER,ERRM         ;YES, MESSAGE\r
20951         004216' 254000  004235'         JRST    PRNAM           ;PRINT NAME IF FIRST ONE>\r
20952         004217' 263740  000000          POPJ    PP,             ;EXIT OTHERWISE\r
20953 \r
20954         004220' 332000  013057' SUBTT0: SKIPE   SBUF            ;STORE FIRST SUBTTL ON PASS1\r
20955         004221' 321640  003361'         JUMP1   REMAR0          ;OTHERWISE EXIT IF PASS ONE\r
20956         004222' 201200  000120          MOVEI   SX,.SBUF\r
20957         004223' 541000  013057'         HRRI    AC0,SBUF\r
20958 \r
20959         004224' 260740  004452' SUBTT1: PUSHJ   PP,BYPASS       ;BYPASS LEADING BLANKS\r
20960         004225' 661600  000004          TLO     IO,IORPTC\r
20961         004226' 260740  001406' SUBTT3: PUSHJ   PP,CHARAC       ;GET ASCII CHARACTER\r
20962         004227' 136340  000000          IDPB    C,AC0           ;STORE IN BLOCK\r
20963         004230' 305340  000040          CAIGE   C,40            ;TEST FOR TERMINATOR\r
20964         004231' 306340  000011          CAIN    C,HT\r
20965         004232' 367200  004226'         SOJG    SX,SUBTT3       ;TEST FOR BUFFER FULL\r
20966         004233' 137440  000000          DPB     RC,AC0          ;END, STORE TERMINATOR\r
20967         004234' 364200  003360'         SOJA    SX,CPOPJ        ;COUNT NUL AND EXIT\r
20968 \r
20969                                 IFN CCLSW,<\r
20970         004235' 607600  001000  PRNAM:  TLNN IO,CRPGSW  ;NOT IF NOT RPG\r
20971         004236' 263740  000000          POPJ PP,\r
20972         004237' 261740  000000          PUSH    PP,AC0          ;SAVE AC0 DMN\r
20973         004240' 261740  000011          PUSH    PP,RC           ;AND RC\r
20974         004241' 200000  014150'         MOVE AC0,[POINT 7,TBUF]\r
20975         004242' 200200  014222'         MOVE SX,[POINT 7,OTBUF]\r
20976         004243' 201440  000006          MOVEI RC,6      ;MAX OF SIX CHRS\r
20977         004244' 134340  000000  PN1:    ILDB C,AC0\r
20978         004245' 303340  000040          CAILE C," "     ;CHECK FOR LEGAL\r
20979         004246' 303340  000172          CAILE C,"Z"+40  ;CHECK AGAINST LOWER CASE Z\r
20980         004247' 254000  004252'         JRST PN2\r
20981         004250' 136340  000004          IDPB C,SX       ;PUT IN OUTPUT BUFFER\r
20982         004251' 367440  004244'         SOJG RC,PN1     ;GET MORE\r
20983         004252' 201340  000000  PN2:    MOVEI C,0\r
20984         004253' 136340  000004          IDPB C,SX       ;TERMINATOR\r
20985         004254' 051140  013335'         TTCALL  3,OTBUF\r
20986                                         TTCALL  3,[ASCIZ /\r
20987         004255' 051140  014223' /]\r
20988         004256' 262740  000011          POP     PP,RC\r
20989         004257' 262740  000000          POP     PP,AC0          ;RESTORE AC0 DMN\r
20990         004260' 263740  000000          POPJ PP,\r
20991                                 >\r
20992 \r\fMACRO V.10                     PAGE 79\r
20993         PSEUDO-OP HANDLERS\r
20994 \r
20995         004261' 260740  001034' SYN0:   PUSHJ   PP,GETSYM       ;GET THE FIRST SYMBOL\r
20996         004262' 254000  003311'         JRST    ERRAX           ;ERROR, EXIT\r
20997         004263' 260740  012173'         PUSHJ   PP,MSRCH        ;TRY FOR MACRO/OPDEF\r
20998         004264' 254000  004302'         JRST    SYN3            ;NO,0THRY FOR OPERAND\r
20999         004265' 201200  012173' SYN1:   MOVEI   SX,MSRCH        ;YES, SET FLAG\r
21000         004266' 260740  007211' SYN2:   PUSHJ   PP,SAVEXS       ;SAVE REGISTERS\r
21001         004267' 325400  003311'         JUMPNC  ERRAX           ;ERROR IF NO COMMA\r
21002         004270' 260740  001034'         PUSHJ   PP,GETSYM       ;GET THE SECOND SYMBOL\r
21003         004271' 263740  000000          POPJ    PP,\r
21004         004272' 260760  013051'         PUSHJ   PP,@SAVBLK+SX   ;SEARCH FOR SECOND SYMBOL\r
21005         004273' 255000  000000          JFCL\r
21006         004274' 200240  013052'         MOVE    ARG,SAVBLK+ARG  ;GET VALUES\r
21007         004275' 200440  013056'         MOVE    RC,SAVBLK+RC\r
21008         004276' 200300  013053'         MOVE    V,SAVBLK+V\r
21009         004277' 603240  020000          TLNE    ARG,MACF        ;MACRO?\r
21010         004300' 260740  006347'         PUSHJ   PP,REFINC       ;YES, INCREMENT REFERENCE\r
21011         004301' 254000  012366'         JRST    INSERT          ;INSERT AND EXIT\r
21012 \r
21013         004302' 260740  012210' SYN3:   PUSHJ   PP,SSRCH        ;SEARCH FOR OPERAND\r
21014         004303' 254000  004313'         JRST    SYN4            ;NOT FOUND, TRY OP CODE\r
21015         004304' 661240  040000          TLO     ARG,SYNF        ;FLAG AS SYNONYM\r
21016         004305' 603240  001000          TLNE    ARG,EXTF        ;EXTERNAL?\r
21017         004306' 550300  000005          HRRZ    V,ARG           ;YES, RELPACE WITH POINTER\r
21018         004307' 201200  012210'         MOVEI   SX,SSRCH        ;SET FLAG\r
21019         004310' 607240  000100          TLNN ARG,VARF   ;DO NOT LET HIM SYN A VARIABLE\r
21020         004311' 254000  004266'         JRST    SYN2\r
21021         004312' 254000  003311'         JRST ERRAX\r
21022 \r
21023         004313' 260740  010470' SYN4:   PUSHJ   PP,OPTSCH       ;SEARCH FOR OP-CODE\r
21024         004314' 254000  003311'         JRST    ERRAX           ;NOT FOUND, EXIT WITH ERROR\r
21025         004315' 205240  040000          MOVSI   ARG,SYNF        ;FLAG AS SYNONYM\r
21026         004316' 254000  004265'         JRST    SYN1\r
21027 \r\fMACRO V.10                     PAGE 80\r
21028         PSEUDO-OP HANDLERS\r
21029 \r
21030         004317' 260740  001034' PURGE0: PUSHJ   PP,GETSYM       ;GET A MNEMONIC\r
21031                                         JRST    [TRZ ER,ERRA    ;CLEAR ERROR\r
21032         004320' 254000  014224'                 POPJ    PP,]    ;AND RETURN\r
21033         004321' 260740  012173'         PUSHJ   PP,MSRCH        ;SEARCH MACRO SYMBOL TABLE\r
21034         004322' 254000  004330'         JRST    PURGE2          ;NOT FOUND, TRY SYMBOLS\r
21035         004323' 261740  000010          PUSH    PP,CS           ;SAVE CS AS IT MAY GET GARBAGED\r
21036         004324' 603240  020000          TLNE    ARG,MACF        ;MACRO?\r
21037         004325' 260740  006352'         PUSHJ   PP,REFDEC       ;YES, DECREMENT THE REFERENCE\r
21038         004326' 262740  000010          POP     PP,CS\r
21039         004327' 254000  004343'         JRST    PURGE4          ;REMOVE SYMBOL FROM TABLE\r
21040 \r
21041         004330' 260740  012210' PURGE2: PUSHJ   PP,SSRCH        ;TRY OPERAND SYMBOL TABLE\r
21042         004331' 254000  004344'         JRST    PURGE5          ;NOT FOUND GET NEXT SYMBOL\r
21043         004332' 606440  777776          TRNN RC,-2              ;CHECK COMPLEX EXTERNAL\r
21044         004333' 603440  777776          TLNE RC,-2\r
21045         004334' 603240  040000          TLNE ARG,SYNF\r
21046         004335' 254000  004337'         JRST    .+2\r
21047         004336' 254000  004342'         JRST PURGE3\r
21048         004337' 603240  003000          TLNE    ARG,EXTF!UNDF   ;ERROR IF EXTERNAL OR UNDEFINED\r
21049         004340' 603240  040000          TLNE    ARG,SYNF        ;BUT NOT A SYNONYM\r
21050         004341' 254000  004343'         JRST    PURGE4\r
21051         004342' 664600  040000  PURGE3: TROA    ER,ERRA         ;NOT FOUND, ERROR\r
21052         004343' 260740  012445' PURGE4: PUSHJ   PP,REMOVE       ;REMOVE FROM THE SYMBOL TABLE\r
21053         004344' 321400  004317' PURGE5: JUMPCM  PURGE0\r
21054         004345' 263740  000000          POPJ    PP,             ;EXIT\r
21055 \r\fMACRO V.10                     PAGE 81\r
21056         PSEUDO-OP HANDLERS\r
21057 \r
21058         004346' 603240  002000  OPD1:   TLNE    ARG,UNDF        ;IF OPDEF IS UNDEFINED\r
21059         004347' 660600  000200          TRO     ER,ERRO         ;GIVE "O" ERROR\r
21060         004350' 200000  000006  OPD:    MOVE    AC0,V           ;PUT VALUE IN AC0\r
21061         004351' 254000  004354'         JRST    OP\r
21062         004352' 205100  301117  IOP:    MOVSI   AC2,(POINT 9,0(PP),11)\r
21063         004353' 665600  000020          TLOA    IO,IOIOPF       ;SET "IOP SEEN" AND SKIP\r
21064         004354' 205100  270417  OP:     MOVSI   AC2,(POINT 4,0(PP),12)\r
21065         004355' 261740  000011          PUSH    PP,RC\r
21066         004356' 261740  000000          PUSH    PP,AC0          ;STACK CODE \r
21067         004357' 261740  000002          PUSH    PP,AC2\r
21068         004360' 260740  001070'         PUSHJ   PP,EVALEX       ;EVALUATE FIRST EXPRESSION\r
21069         004361' 262740  000002          POP     PP,AC2\r
21070         004362' 325400  004374'         JUMPNC  OP2\r
21071         004363' 260740  001354' OP1B:   PUSHJ   PP,GETCHR       ;GET A CHARACTER\r
21072         004364' 321400  004605'         JUMPCM XWD5             ;PROCESS COMMA COMMA IN XWD\r
21073         004365' 661600  000004          TLO     IO,IORPTC       ;NOT A COMMA,REPEAT IT\r
21074         004366' 135040  000002          LDB     AC1,AC2\r
21075         004367' 270040  000000          ADD     AC1,AC0\r
21076         004370' 137040  000002          DPB     AC1,AC2\r
21077         004371' 322440  004373'         JUMPE   RC,OP1A         ;EXTERNAL OR RELOCATABLE?\r
21078         004372' 260740  003752'         PUSHJ   PP,QEXT         ;YES, DETERMINE WHICH AND FLAG AN ERROR\r
21079 \r
21080         004373' 260740  001070' OP1A:   PUSHJ   PP,EVALEX       ;GET ADDRESS PART\r
21081         004374' 260740  004403' OP2:    PUSHJ   PP,EVADR        ;EVALUATE STANDARD ADDRESS\r
21082         004375' 262740  000000  OP3:    POP     PP,AC0          ;PUT IN AC0\r
21083         004376' 262740  000011          POP     PP,RC\r
21084         004377' 332017  000000          SKIPE   (PP)            ;CAME FROM EVALCM?\r
21085         004400' 254000  002665'         JRST    STOW            ;NO,STOW CODE AND EXIT\r
21086         004401' 262740  000001          POP     PP,AC1          ;YES,EXIT IMMEDIATELY\r
21087         004402' 263740  000000          POPJ    PP,\r
21088 \r
21089 \r\fMACRO V.10                     PAGE 82\r
21090         PSEUDO-OP HANDLERS\r
21091 \r
21092         004403'                 EVADR:                          ;EVALUATE STANDARD ADDRESS\r
21093         004403' 607000  777777  IFE IIISW,<TLNN AC0,-1          ;OK IF ALL 0'S\r
21094         004404' 254000  004410'         JRST    .+4             ;IT WAS\r
21095         004405' 641000  777777          TLC     AC0,-1          ;CHANGE ALL ONES TO ZEROS\r
21096         004406' 643000  777777          TLCE    AC0,-1          ;OK IF ALL 1'S\r
21097         004407' 660600  200000          TRO     ER,ERRQ         ;NO,FLAG Q ERROR>\r
21098         004410' 270017  777777          ADD     AC0,-1(PP)      ;ADD ADDRESS PORTIONS\r
21099         004411' 500017  777777          HLL     AC0,-1(PP)      ;GET LEFT HALF\r
21100         004412' 623640  020000          TLZE    FR,INDSW        ;INDIRECT BIT?\r
21101         004413' 661000  000020          TLO     AC0,(Z @)       ;YES, PUT IT IN\r
21102         004414' 202017  777777          MOVEM   AC0,-1(PP)      ;RE-STACK CODE\r
21103         004415' 270457  777776          ADD     RC,-2(PP)       ;UPDATE RELOCATION\r
21104         004416' 542457  777776          HRRM    RC,-2(PP)       ;USE HALF WORD ADD\r
21105         004417' 302340  000010          CAIE    C,10            ;"("?\r
21106         004420' 263740  000000          POPJ    PP,             ;NO, EXIT\r
21107 \r
21108         004421' 207000  013270'         MOVSS   EXTPNT          ;WFW\r
21109         004422' 260740  001057'         PUSHJ   PP,EVALCM       ;EVALUATE\r
21110         004423' 207000  013270'         MOVSS   EXTPNT          ;WFW\r
21111         004424' 207300  000000          MOVSS   V,AC0           ;SWAP HALVES\r
21112         004425' 207200  000011  IFE IIISW,<MOVSS SX,RC\r
21113         004426' 434200  000006          IOR     SX,V            ;MERGE RELOCATION\r
21114         004427' 606200  777777          TRNN    SX,-1           ;RIGHT HALF ZERO?\r
21115         004430' 254000  004442'         JRST    OP2A            ;YES, DO SIMPLE ADD\r
21116         004431' 200240  000011          MOVE    ARG,RC          ;NO, SWAP RC INTO ARG>\r
21117                                 IFN IIISW,<MOVSS ARG,RC>\r
21118         004432' 270317  777777          ADD     V,-1(PP)        ;ADD RIGHT HALVES\r
21119         004433' 270257  777776          ADD     ARG,-2(PP)\r
21120         004434' 542317  777777          HRRM    V,-1(PP)        ;UPDATE WITHOUT CARRY\r
21121         004435' 542257  777776          HRRM    ARG,-2(PP)\r
21122         004436' 513000  000000          HLLZS   AC0             ;PREPARE LEFT HALVES\r
21123         004437' 513000  000011          HLLZS   RC\r
21124         004440' 603200  777777  IFE IIISW,<TLNE SX,-1           ;IS LEFT HALF ZERO?\r
21125         004441' 660600  200000          TRO     ER,ERRQ         ;NO FLAG FORMAT ERROR\r
21126         004442' 603440  777777  OP2A:   TLNE    RC,-1           ;RELOCATION FOR LEFT HALF?\r
21127         004443' 260740  004455'         PUSHJ   PP,OP2A1        ;YES,IS IT LEGAL?\r
21128         004444' 603000  777000          TLNE    AC0,777000      ;OP CODE FIELD USED?\r
21129                                         JRST    [EXCH AC0,-1(PP);YES, GET STORED CODE\r
21130                                                 TLNE AC0,777000 ;OP CODE FIELD BEEN SET?\r
21131                                                 TRO ER,ERRQ     ;YES, MOST LIKELY AN ERROR\r
21132                                                 EXCH AC0,-1(PP)\r
21133         004445' 254000  014226'                 JRST    .+1]    ;RETURN TO ADD >\r
21134         004446' 272017  777777          ADDM    AC0,-1(PP)      ;MERGE WITH PREVIOUS VALUE\r
21135         004447' 272457  777776          ADDM    RC,-2(PP)\r
21136         004450' 302340  000011          CAIE    C,11            ;")"?\r
21137         004451' 254000  003311'         JRST    ERRAX           ;NO, FLAG ERROR\r
21138                                                                 ;YES, BYPASS PARENTHESIS\r
21139         004452'                 BYPASS:\r
21140         004452' 260740  001354' BYPAS1: PUSHJ   PP,GETCHR\r
21141         004453' 322340  004452' BYPAS2: JUMPE   C,.-1           ;SKIP TRAILING BLANKS\r
21142         004454' 263740  000000          POPJ    PP,             ;EXIT\r
21143 \r
21144 \r\fMACRO V.10                     PAGE 83\r
21145         PSEUDO-OP HANDLERS\r
21146 \r
21147                                 IFE IIISW,<\r
21148         004455' 250457  777776  OP2A1:  EXCH    RC,-2(PP)       ;GET STORED CODE\r
21149         004456' 607440  777777          TLNN    RC,-1           ;OK IF ALL ZERO\r
21150         004457' 254000  004463'         JRST    OP2A2           ;OK SO RETURN\r
21151         004460' 641440  777777          TLC     RC,-1           ;CHANGE ALL ONES TO ZEROS\r
21152         004461' 643440  777777          TLCE    RC,-1           ;OK IF ALL ONES\r
21153         004462' 660600  200000          TRO     ER,ERRQ         ;OTHERWISE A "Q" ERROR\r
21154         004463' 250457  777776  OP2A2:  EXCH    RC,-2(PP)       ;GET RC,BACK\r
21155         004464' 263740  000000          POPJ    PP,             ;AND RETURN>\r
21156 \r
21157 \r
21158         004465' 514000  000015  EXPRES: HRLZ    AC0,RX          ;FUDGE FOR OCT0\r
21159 \r
21160         004466' 261740  000015  OCT0:   PUSH    PP,RX\r
21161         004467' 544640  000000          HLR     RX,AC0\r
21162         004470' 260740  001070' OCT1:   PUSHJ   PP,EVALEX       ;EVALUATE\r
21163         004471' 260740  002665'         PUSHJ   PP,STOW         ;STOW CODE\r
21164         004472' 321400  004470'         JUMPCM  OCT1\r
21165         004473' 262740  000015          POP     PP,RX           ;YES, RESTORE RADIX\r
21166         004474' 263740  000000          POPJ    PP,             ;EXIT\r
21167 \r\fMACRO V.10                     PAGE 84\r
21168         PSEUDO-OP HANDLERS\r
21169 \r
21170         004475' 205440  440600  SIXB10: MOVSI   RC,(POINT 6,AC0)        ;SET UP POINTER\r
21171         004476' 201000  000000          MOVEI   AC0,0           ;CLEAR WORD\r
21172 \r
21173         004477' 260740  001436' SIXB20: PUSHJ   PP,CHARL        ;GET NEXT CHARACTER\r
21174         004500' 316340  000004          CAMN    C,SX            ;IS THIS PRESET DELIMITER?\r
21175         004501' 254000  004553'         JRST    ASC60           ;YES\r
21176         004502' 301340  000141          CAIL C,"A"+40\r
21177         004503' 303340  000172          CAILE C,"Z"+40\r
21178         004504' 254000  004506'         JRST    .+2\r
21179         004505' 624340  000100          TRZA    C,100           ;CONVERT LOWER CASE TO SIXBIT\r
21180         004506' 275340  000040          SUBI    C,40            ;CONVERT TO SIXBIT\r
21181         004507' 321340  004550'         JUMPL   C,ASC55         ;TEST FOR INVALID CHARACTER\r
21182         004510' 136340  000011          IDPB    C,RC            ;NO, DEPOSIT THE BYTE\r
21183         004511' 603440  770000          TLNE    RC,770000       ;IS THE WORD FULL?\r
21184         004512' 254000  004477'         JRST    SIXB20          ;NO, GET NEXT CHARACTER\r
21185         004513' 260740  002664'         PUSHJ   PP,STOWZ        ;YES, STORE\r
21186         004514' 254000  004475'         JRST    SIXB10          ;GET NEXT WORD\r
21187 \r\fMACRO V.10                     PAGE 85\r
21188         PSEUDO-OP HANDLERS\r
21189 \r
21190         004515' 510140  000000  ASCII0: HLLZ    SDEL,AC0        ;STORE ASCII/ASCIZ FLAG\r
21191         004516' 260740  001436' ASC10:  PUSHJ   PP,CHARL        ;GET FIRST NON-BLANK\r
21192         004517' 302340  000040          CAIE    C," "\r
21193         004520' 306340  000011          CAIN    C,HT\r
21194         004521' 254000  004516'         JRST    ASC10\r
21195         004522' 307340  000015          CAIG C,CR               ;CHECK FOR CRRET AS DELIM\r
21196         004523' 305340  000012          CAIGE C,LF\r
21197         004524' 334200  013415'         SKIPA   SX,SEQNO2\r
21198         004525' 254000  003311'         JRST ERRAX\r
21199         004526' 202200  013310'         MOVEM SX,TXTSEQ         ;SAVE SEQ AND PAGE\r
21200         004527' 200200  013414'         MOVE SX,PAGENO\r
21201         004530' 202200  013307'         MOVEM SX,TXTPG\r
21202         004531' 476000  013274'         SETOM INTXT\r
21203         004532' 200200  000007          MOVE    SX,C            ;SAVE FOR COMPARISON\r
21204         004533' 327140  004475'         JUMPG   SDEL,SIXB10     ;BRANCH IF SIXBIT\r
21205 \r
21206         004534' 205440  440700  ASC20:  MOVSI   RC,(POINT 7,AC0)        ;SET UP POINTER\r
21207         004535' 603140  200000          TLNE    SDEL,200000     ;THIS BIT (AND BIT0) IN FOR COMMENT\r
21208         004536' 205440  440000          MOVSI RC,440000         ;SO NOTHING WILL BE DEPOSITED\r
21209         004537' 201000  000000  IFE IIISW,<MOVEI AC0,0          ;CLEAR WORD>\r
21210                                 IFN IIISW,<TLNE SDEL,100000     ;ASCID?\r
21211                                         TLZA    SDEL,400000     ;YES, ZERO ASCIZ BIT\r
21212                                         TDZA    AC0,AC0         ;NO, ZERO WORD\r
21213                                         MOVE    AC0,[BYTE (7) 10,10,10,10,10 (1) 1]     ;YES, A WORD FULL OF BACKSPACES\r
21214                                 >\r
21215         004540' 260740  001436' ASC30:  PUSHJ   PP,CHARL        ;GET ASCII CHARACTER AND LIST\r
21216         004541' 316340  000004          CAMN    C,SX            ;TEST FOR DELIMITER\r
21217         004542' 254000  004551'         JRST    ASC50           ;FOUND\r
21218         004543' 136340  000011          IDPB    C,RC            ;DEPOSIT BYTE\r
21219         004544' 603440  760000          TLNE    RC,760000       ;HAVE WE FINISHED WORD?\r
21220         004545' 254000  004540'         JRST    ASC30           ;NO,GET NEXT CHARACTER\r
21221         004546' 260740  002664'         PUSHJ   PP,STOWZ        ;YES, STOW IT\r
21222         004547' 254000  004534'         JRST    ASC20           ;GET NEXT WORD\r
21223 \r
21224         004550' 634400  000010  ASC55:  TDZA    CS,CS           ;ZERO CS IN CASE NESTED\r
21225         004551' 634440  000003  ASC50:  TDZA    RC,SDEL         ;TEST FOR ASCIIZ\r
21226         004552' 664600  040000          TROA    ER,ERRA         ;SIXBIT ERROR EXIT\r
21227         004553' 260740  004452' ASC60:  PUSHJ   PP,BYPAS1       ;POLISH OFF TERMINATOR\r
21228         004554' 402000  013274'         SETZM INTXT     ;WE ARE OUT OF IT\r
21229                                 IFN IIISW,<TLNN SDEL,100000     ;NO EXTRA WORDS FOR ASCID>\r
21230         004555' 420440  013104'         ANDCM   RC,STPX         ;STORE AT LEAST ONE WORD\r
21231         004556' 607140  200000          TLNN SDEL,200000        ;GET OUT WITHOUT STORING\r
21232         004557' 325440  002664'         JUMPGE  RC,STOWZ        ;STOW\r
21233         004560' 263740  000000          POPJ    PP,             ;ASCII, NO BYTES STORED, SO EXIT\r
21234 \r\fMACRO V.10                     PAGE 86\r
21235         PSEUDO-OP HANDLERS\r
21236 \r
21237         004561'                 POINT0:\r
21238         004561' 261740  000011          PUSH    PP,RC           ;STACK REGISTERS\r
21239         004562' 261740  000000          PUSH    PP,AC0\r
21240         004563' 260740  003745'         PUSHJ   PP,EVAL10       ;EVALUATE RADIX 10\r
21241         004564' 137000  014233'         DPB     AC0,[POINT 6,0(PP),11]  ;STORE BYTE SIZE\r
21242         004565' 325400  004574'         JUMPNC  POINT2\r
21243         004566' 260740  001070'         PUSHJ   PP,EVALEX       ;NO, GET ADDRESS\r
21244         004567' 260740  004403'         PUSHJ   PP,EVADR        ;EVALUATE STANDARD ADDRESS\r
21245         004570' 325400  004574'         JUMPNC  POINT2\r
21246         004571' 260740  003745'         PUSHJ   PP,EVAL10       ;EVALUATE RADIX 10\r
21247         004572' 603600  020000          TLNE    IO,NUMSW        ;IF NUMERIC\r
21248         004573' 654000  014062'         TDCA    AC0,[-1]        ;POSITION=D35-RHB\r
21249         004574' 201000  000000  POINT2: MOVEI   AC0,0           ;OTHERWISE SET TO D36\r
21250         004575' 271000  000044          ADDI    AC0,^D36\r
21251         004576' 242000  000036          LSH     AC0,^D30\r
21252         004577' 272017  000000          ADDM    AC0,0(PP)       ;UPDATE VALUE\r
21253         004600' 254000  004375'         JRST    OP3\r
21254 \r\fMACRO V.10                     PAGE 87\r
21255         PSEUDO-OP HANDLERS\r
21256 \r
21257         004601'                 XWD0:\r
21258         004601' 261740  000011          PUSH    PP,RC\r
21259         004602' 261740  000000          PUSH    PP,AC0          ;STORE ZERO ON STACK\r
21260         004603' 260740  001070'         PUSHJ   PP,EVALEX       ;EVALUATE EXPRESSION\r
21261         004604' 325400  004374'         JUMPNC  OP2\r
21262         004605' 336017  000000  XWD5:   SKIPN   (PP)            ;ANY CODE YET?\r
21263         004606' 254000  004613'         JRST    XWD10           ;NO,USE VALUE IN AC0\r
21264         004607' 322000  004611'         JUMPE   AC0,.+2         ;ANYTHING IN AC0?\r
21265         004610' 660600  200000          TRO     ER,ERRQ         ;YES,FLAG "Q"ERROR\r
21266         004611' 200017  000000          MOVE    AC0,(PP)        ;USE PREVIOUS VALUE\r
21267         004612' 200457  777777          MOVE    RC,-1(PP)       ;AND RELOCATION\r
21268         004613' 516017  000000  XWD10:  HRLZM   AC0,0(PP)       ;SET LEFT HALF\r
21269         004614' 516457  777777          HRLZM   RC,-1(PP)\r
21270         004615' 207000  013270'         MOVSS EXTPNT    ;WFW\r
21271         004616' 254000  004373'         JRST    OP1A            ;EXIT THROUGH OP\r
21272 \r
21273         004617' 260740  003757' IOWD0:  PUSHJ   PP,EVALXQ       ;EVALUATE AND TEST FOR EXTERNAL\r
21274         004620' 302340  000014          CAIE    C,14            ;","?\r
21275                                         JRST    [SKIPN  AC0     ;IF NZERO AND NO "," SEEN\r
21276                                                 TRO ER,ERRQ     ;TREAT AS Q ERROR\r
21277         004621' 254000  014234'                 SOJA AC0,STOW]  ;NO, TREAT AS RIGHT HALF\r
21278         004622' 261740  000000          PUSH    PP,AC0          ;YES, STACK LEFT HALF\r
21279         004623' 260740  001070'         PUSHJ   PP,EVALEX       ;WFW\r
21280         004624' 275000  000001          SUBI    AC0,1\r
21281         004625' 262740  000001          POP     PP,AC1          ;RETRIEVE LEFT HALF\r
21282         004626' 213000  000001          MOVNS   AC1\r
21283         004627' 504000  000001          HRL     AC0,AC1\r
21284         004630' 254000  002665'         JRST    STOW            ;STOW CODE AND EXIT\r
21285 \r\fMACRO V.10                     PAGE 88\r
21286         PSEUDO-OP HANDLERS\r
21287 \r
21288         004631' 260740  004452' BYTE0:  PUSHJ   PP,BYPASS       ;GET FIRST NON-BLANK\r
21289         004632' 302340  000010          CAIE    C,10            ;"("?\r
21290         004633' 254000  003311'         JRST    ERRAX           ;NO, FLAG ERROR AND EXIT\r
21291         004634' 261740  000011          PUSH    PP,RC\r
21292         004635' 261740  000000          PUSH    PP,AC0          ;INITIALIZE STACK TO ZERO\r
21293         004636' 205240  447717          MOVSI   ARG,(POINT -1,(PP))\r
21294 \r
21295         004637' 261740  000005  BYTE1:  PUSH    PP,ARG\r
21296         004640' 260740  003745'         PUSHJ   PP,EVAL10       ;EVALUATE RADIX 10\r
21297         004641' 262740  000005          POP     PP,ARG\r
21298         004642' 307000  000044          CAIG    AC0,^D36        ;TEST SIZE\r
21299         004643' 325000  004645'         JUMPGE  AC0,.+2\r
21300         004644' 660600  040000          TRO     ER,ERRA\r
21301         004645' 137000  014237'         DPB     AC0,[POINT 6,ARG,11]    ;STORE BYTE SIZE\r
21302 \r
21303         004646' 133000  000005  BYTE2:  IBP     ARG             ;INCREMENT BYTE\r
21304         004647' 626240  777777          TRZN    ARG,-1          ;OVERFLOW?\r
21305         004650' 254000  004655'         JRST    BYTE3           ;NO\r
21306         004651' 403000  000011          SETZB   AC0,RC          ;YES\r
21307         004652' 250017  000000          EXCH    AC0,0(PP)       ;GET CURRENT VALUES\r
21308         004653' 250457  777777          EXCH    RC,-1(PP)       ;AND STACK ZEROS\r
21309         004654' 260740  002665'         PUSHJ   PP,STOW         ;STOW FULL WORD\r
21310 \r
21311         004655' 261740  000005  BYTE3:  PUSH    PP,ARG\r
21312         004656' 260740  001070'         PUSHJ   PP,EVALEX       ;COMPUTE NEXT BYTE\r
21313         004657' 262740  000005          POP     PP,ARG\r
21314         004660' 137000  000005          DPB     AC0,ARG         ;STORE BYTE\r
21315         004661' 520000  000005          HLLO    AC0,ARG\r
21316         004662' 137440  000000          DPB     RC,AC0          ;STORE RELOCATION\r
21317 \r
21318         004663' 321400  004646'         JUMPCM  BYTE2\r
21319         004664' 306340  000010          CAIN    C,10            ;"("?\r
21320         004665' 254000  004637'         JRST    BYTE1           ;YES, GET NEW BYTE SIZE\r
21321         004666' 254000  004375'         JRST    OP3             ;NO, EXIT\r
21322 \r\fMACRO V.10                     PAGE 89\r
21323         PSEUDO-OP HANDLERS\r
21324 \r
21325         004667' 260740  001070' RADX50: PUSHJ   PP,EVALEX       ;EVALUATE CODE\r
21326         004670' 326440  003311'         JUMPN   RC,ERRAX                ;ERROR IF NOT ABSOLUTE\r
21327         004671' 200240  000000          MOVE    ARG,AC0\r
21328         004672' 325400  003311'         JUMPNC  ERRAX\r
21329         004673' 260740  001034'         PUSHJ   PP,GETSYM       ;YES, GET SYMBOL\r
21330         004674' 620600  040000          TRZ     ER,ERRA         ;CLEAR ERROR\r
21331         004675' 260740  004677'         PUSHJ   PP,SQOZE        ;SQUOZE SIXBIT AND ADD CODE\r
21332         004676' 254000  002665'         JRST    STOW            ;STOW CODE AND EXIT\r
21333 \r
21334 \r
21335         004677' 200100  000000  SQOZE:  MOVE    AC1+1,AC0       ;PUT SIXBIT IN AC1+1\r
21336         004700' 201000  000000          MOVEI   AC0,0           ;CLEAR RESULT\r
21337         004701' 201040  000000  SQOZ1:  MOVEI   AC1,0\r
21338         004702' 246040  000006          LSHC    AC1,6           ;PUT 6-BIT CHARACTER IN AC1\r
21339         004703' 135040  014240'         LDB     AC1,[POINT 6,CSTAT(AC1),23]     ;CONVERT TO RADIX50\r
21340         004704' 221000  000050          IMULI   AC0,50          ;MULTIPLY PREVIOUS RESULT\r
21341         004705' 270000  000001          ADD     AC0,AC1         ;ADD NEW CHARACTER\r
21342         004706' 326100  004701'         JUMPN   AC1+1,SQOZ1     ;TEST FOR END\r
21343         004707' 242240  000036          LSH     ARG,^D30        ;LEFT-JUSTIFY CODE\r
21344         004710' 434000  000005          IOR     AC0,ARG         ;MERGE WITH RESULT\r
21345         004711' 263740  000000          POPJ    PP,\r
21346 \r
21347 \r\fMACRO V.10                     PAGE 90\r
21348         PSEUDO-OP HANDLERS\r
21349 \r
21350                                 ; PSEUDO-END STATEMENT FOR MULTI-FILE CAPABILITY\r
21351 \r
21352                                 ; HERE IF PRGEND (PASS 1)\r
21353         004712' 661600  000010  PSEND0: TLO     IO,MFLSW        ;PSEND SEEN\r
21354         004713' 260740  003037'         PUSHJ   PP,END0         ;AS IF END STATEMENT\r
21355         004714' 513000  000014          HLLZS   IO              ;CLEAR ER(RH)\r
21356         004715' 402000  012726'         SETZM   ERRCNT          ;CLEAR ERROR COUNT FOR EACH PROG.\r
21357         004716' 325640  004724'         JUMP2   PSEND2          ;DIFFERENT ON PASS2\r
21358                                 IFN UNIVR,<SKIPE        UNIVSN          ;SEEN A UNIVERSAL\r
21359                                         PUSHJ   PP,UNISYM       ;YES, STORE SYMBOLS>\r
21360         004717' 260740  004734'         PUSHJ   PP,PSEND4       ;SAVE SYMBOLS, POINTERS AND TITLE\r
21361         004720' 621600  000002          TLZ     IO,IOTLSN       ;CLEAR TITLE SEEN FLAG\r
21362         004721' 621600  000010  PSEND1: TLZ     IO,MFLSW         ;FOR NEXT FILE\r
21363                                 IFN UNIVR,<SETZM        UNISCH          ;CLEAR UNIVERSAL SEARCH TABLE\r
21364                                         MOVE    AC0,[UNISCH,,UNISCH+1]\r
21365                                         BLT     AC0,UNISCH+.UNIV-1\r
21366                                         PUSHJ   PP,OUTFF        ;RESET PAGE COUNT>\r
21367         004722' 205000  000001          MOVSI   AC0,1           ;SET SO RELOC 0 WORKS\r
21368         004723' 254000  004133'         JRST    LOC10           ;FOR RELOC 0\r
21369 \r
21370                                 ; HERE IF PRGEND (PASS 2)\r
21371         004724' 402000  013057' PSEND2: SETZM   SBUF            ;SO SUBTTL IS NOT WRONG\r
21372         004725' 260740  005016'         PUSHJ   PP,PSEND5       ;PUT TITLE BACK\r
21373         004726' 260740  004721'         PUSHJ   PP,PSEND1       ;COMMON  CODE\r
21374         004727' 254000  003066'         JRST    PASS20          ;OUTPUT THE ENTRIES\r
21375 \r
21376                                 ; HERE IF END (PASS 1)\r
21377         004730' 260740  004734' PSEND3: PUSHJ   PP,PSEND4       ;SAVE LAST PROGRAM \r
21378         004731' 547000  013260'         HLRS    PRGPTR          ;REINITIALIZE POINTER\r
21379         004732' 260740  005016'         PUSHJ   PP,PSEND5       ;READ BACK FIRST PROGRAM\r
21380         004733' 254000  003066'         JRST    PASS20\r
21381 \r\fMACRO V.10                     PAGE 91\r
21382         PSEUDO-OP HANDLERS\r
21383 \r
21384                                 ;HERE TO SAVE AND RESTORE SYMBOL TABLE, TITLE AND OTHER USEFUL LOCATIONS\r
21385                         000004          XTRA==4                 ;NUMBER OF OTHER LOCATIONS TO SAVE\r
21386 \r
21387         004734' 200300  012727' PSEND4: MOVE    V,FREE          ;GET  NEXT FREE LOCATION\r
21388         004735' 271300  000030          ADDI    V,LENGTH+.TBUF/5+XTRA\r
21389         004736' 311300  013102'         CAML    V,SYMBOL        ;WILL WORST CASE FIT?\r
21390         004737' 260740  010015'         PUSHJ   PP,XCEED        ;NO, EXPAND\r
21391         004740' 204300  012727'         MOVS    V,FREE\r
21392         004741' 540300  013260'         HRR     V,PRGPTR        ;LAST PRGEND BLOCK\r
21393         004742' 546306  000000          HLRM    V,(V)           ;LINK THIS BLOCK\r
21394         004743' 336000  013260'         SKIPN   PRGPTR          ;IF FIRST TIME\r
21395         004744' 512300  013260'         HLLZM   V,PRGPTR        ;SET LINK TO START OF CHAIN\r
21396         004745' 546300  013260'         HLRM    V,PRGPTR        ;POINTER TO IT\r
21397         004746' 402020  012727'         SETZM   @FREE           ;CLEAR LINK WORD\r
21398         004747' 350000  012727'         AOS     FREE            ;THIS LOCATION USED NOW\r
21399         004750' 204000  013102'         MOVS    AC0,SYMBOL      ;BOTTOM OF SYMBOL TABLE\r
21400         004751' 540000  012727'         HRR     AC0,FREE        ;FREE SPACE\r
21401         004752' 200320  013102'         MOVE    V,@SYMBOL       ;GET NUMBER OF SYMBOLS\r
21402         004753' 240300  000001          ASH     V,1             ;TWO WORDS PER SYMBOL\r
21403         004754' 271300  000001          ADDI    V,1             ;ONE MORE FOR COUNT\r
21404         004755' 273300  012727'         ADDB    V,FREE          ;END OF TABLE WHEN MOVED\r
21405         004756' 251006  000000          BLT     AC0,(V)         ;MOVE TABLE\r
21406         004757' 550000  003227*         HRRZ    AC0,JOBREL      ;TOP OF CORE\r
21407         004760' 275000  000001          SUBI    AC0,1\r
21408         004761' 202000  013103'         MOVEM   AC0,SYMTOP      ;FOR NEXT SYMBOL TABLE\r
21409         004762' 275000  000004          SUBI    AC0,LENGTH      ;LENGTH OF INITIAL SYMBOLS\r
21410         004763' 202000  013102'         MOVEM   AC0,SYMBOL      ;SET POINTER TO COUNT OF SYMBOLS\r
21411         004764' 505000  011713'         HRLI    AC0,SYMNUM      ;BLT POINTER\r
21412         004765' 251020  013103'         BLT     AC0,@SYMTOP     ;SET UP INITIAL SYMBOL TABLE\r
21413         004766' 260740  012455'         PUSHJ   PP,SRCHI        ;SET UP SEARCH POINTER\r
21414         004767' 201000  000120          MOVEI   AC0,.TBUF       ;MAX NUMBER OF CHARS. IN TITLE\r
21415         004770' 274000  013227'         SUB     AC0,TCNT        ;ACTUAL NUMBER\r
21416         004771' 231000  000005          IDIVI   AC0,5           ;NUMBER OF WORDS\r
21417         004772' 332000  000001          SKIPE   AC1             ;REMAINDER?\r
21418         004773' 271000  000001          ADDI    AC0,1           ;YES\r
21419         004774' 202020  012727'         MOVEM   AC0,@FREE       ;STORE COUNT\r
21420         004775' 350000  012727'         AOS     FREE            ;THIS LOCATION USED NOW\r
21421         004776' 250000  012727'         EXCH    AC0,FREE        ;SET UP AC0 FOR BLT\r
21422         004777' 272000  012727'         ADDM    AC0,FREE        ;WILL BE AFTER TITLE MOVES\r
21423         005000' 505000  013230'         HRLI    AC0,TBUF        ;BLT POINTER\r
21424         005001' 251020  012727'         BLT     AC0,@FREE       ;MOVE TITLE\r
21425         005002' 200100  013035'         MOVE    AC2,LITHDX      ;POINTER TO LIT INFO.\r
21426         005003' 200002  777777          MOVE    AC0,-1(AC2)     ;SIZE OF PASS1 LOCO\r
21427         005004' 260740  005061'         PUSHJ   PP,STORIT       ;SAVE IT IN SYMBOL TABLE\r
21428         005005' 200100  013030'         MOVE    AC2,VARHDX      ;SAME FOR VARS\r
21429         005006' 200002  777777          MOVE    AC0,-1(AC2)\r
21430         005007' 260740  005061'         PUSHJ   PP,STORIT\r
21431                                 IFN RENTSW,<\r
21432                                         MOVE    AC0,HISNSW      ;GET TWOSEG/HISEG FLAG\r
21433                                         HRR     AC0,HIGH1       ;AND PASS1 BREAK\r
21434                                         PUSHJ   PP,STORIT\r
21435                                         JUMPGE  AC0,PSEND6      ;NOT TWOSEG\r
21436                                         MOVE    AC0,SVTYP3      ;HIGH SEGMENT OFFSET\r
21437 \r\fMACRO V.10                     PAGE 91-1\r
21438         PSEUDO-OP HANDLERS\r
21439 \r
21440                                         PUSHJ   PP,STORIT       ;SAVE IT ALSO>\r
21441         005010' 200000  012727' PSEND6: MOVE    AC0,FREE        ;GET NEXT FREE LOCATION\r
21442         005011' 275000  000001          SUBI    AC0,1           ;LAST ONE USED\r
21443         005012' 550300  013260'         HRRZ    V,PRGPTR        ;POINTER TO START OF DATA BLOCK\r
21444         005013' 506006  000000          HRLM    AC0,(V)         ;LINK TO END OF BLOCK\r
21445         005014' 263740  000000          POPJ    PP,             ;RETURN\r
21446 \r
21447 \r\fMACRO V.10                     PAGE 92\r
21448         PSEUDO-OP HANDLERS\r
21449 \r
21450         005015' 260740  010015' PSENDX: PUSHJ   PP,XCEED        ;NEED TO EXPAND CORE FIRST\r
21451         005016' 550000  004757* PSEND5: HRRZ    AC0,JOBREL      ;GET TOP OF CORE\r
21452         005017' 275000  000001          SUBI    AC0,1\r
21453         005020' 202000  013103'         MOVEM   AC0,SYMTOP      ;TOP OF NEW SYMBOL TABLE\r
21454         005021' 550300  013260'         HRRZ    V,PRGPTR        ;ADDRESS OF THIS BLOCK\r
21455         005022' 322300  005066'         JUMPE   V,PSNDER        ;ERROR LINK NOT SET UP\r
21456         005023' 200046  000000          MOVE    AC1,(V)         ;NEXT LINK\r
21457         005024' 200306  000001          MOVE    V,1(V)          ;GET ITS SYMBOL COUNT\r
21458         005025' 240300  000001          ASH     V,1             ;NUMBER OF WORDS\r
21459         005026' 271300  000001          ADDI    V,1             ;PLUS ONE FOR COUNT\r
21460         005027' 275006  000000          SUBI    AC0,(V)         ;START OF NEW SYMBOL TABLE\r
21461         005030' 317000  012727'         CAMG    AC0,FREE        ;WILL IT FIT\r
21462         005031' 254000  005015'         JRST    PSENDX          ;NO, NEED TO EXPAND AND RESET AC0\r
21463         005032' 270300  013260'         ADD     V,PRGPTR        ;POINT TO END OF SYMBOL TABLE\r
21464         005033' 201306  000001          MOVEI   V,1(V)          ;THEN TO BEG OF TITLE\r
21465         005034' 202000  013102'         MOVEM   AC0,SYMBOL      ;BOTTOM OF NEW TABLE\r
21466         005035' 504000  013260'         HRL     AC0,PRGPTR      ;ADDRESS OF FIRST WORD OF BLOCK\r
21467         005036' 270000  014241'         ADD     AC0,[1,,0]      ;MAKE BLT POINTER\r
21468         005037' 542040  013260'         HRRM    AC1,PRGPTR      ;POINT TO NEXT BLOCK\r
21469         005040' 251020  013103'         BLT     AC0,@SYMTOP     ;MOVE TABLE\r
21470         005041' 260740  012455'         PUSHJ   PP,SRCHI        ;SET UP POINTER\r
21471         005042' 200046  000000          MOVE    AC1,(V)         ;NUMBER OF WORDS OF TITLE\r
21472         005043' 201006  000001          MOVEI   AC0,1(V)        ;START OF STORED TITLE\r
21473         005044' 270300  000001          ADD     V,AC1           ;INCREMENT PAST TITLE\r
21474         005045' 271040  013227'         ADDI    AC1,TBUF-1      ;END OF TITLE\r
21475         005046' 505000  013230'         HRLI    AC0,TBUF        ;WHERE TO PUT IT\r
21476         005047' 207000  000000          MOVSS   AC0             ;BLT POINTER\r
21477         005050' 251001  000000          BLT     AC0,(AC1)       ;MOVE TITLE\r
21478         005051' 661600  000002          TLO     IO,IOTLSN       ;SET AS IF TITLE SEEN\r
21479         005052' 200100  013035'         MOVE    AC2,LITHDX      ;INVERSE OF ABOVE\r
21480         005053' 260740  005064'         PUSHJ   PP,GETIT\r
21481         005054' 202002  777777          MOVEM   AC0,-1(AC2)\r
21482         005055' 200100  013030'         MOVE    AC2,VARHDX      ;SAME FOR VARS\r
21483         005056' 260740  005064'         PUSHJ   PP,GETIT\r
21484         005057' 202002  777777          MOVEM   AC0,-1(AC2)\r
21485                                 IFN RENTSW,<\r
21486                                         PUSHJ   PP,GETIT        ;GET TWO HALF WORDS\r
21487                                         HRRZM   AC0,HIGH1       ;PASS1 BREAK\r
21488                                         HLLEM   AC0,HISNSW      ;TWOSEG/HISEG FLAG\r
21489                                         JUMPGE  AC0,CPOPJ       ;NOT TWOSEG\r
21490                                         PUSHJ   PP,GETIT\r
21491                                         MOVEM   AC0,SVTYP3      ;BLOCK 3 WORD>\r
21492         005060' 263740  000000          POPJ    PP,\r
21493 \r
21494         005061' 202020  012727' STORIT: MOVEM   AC0,@FREE       ;STORE IT IN DATA BLOCK\r
21495         005062' 350000  012727'         AOS     FREE            ;ADVANCE POINTER\r
21496         005063' 263740  000000          POPJ    PP,\r
21497 \r
21498         005064' 200006  000001  GETIT:  MOVE    AC0,1(V)        ;FILL AC0 OUT OF PRGEND BLOCK\r
21499         005065' 344300  003360'         AOJA    V,CPOPJ         ;INCREMENT AND RETURN\r
21500 \r
21501         005066' 561440  014242' PSNDER: HRROI   RC,[SIXBIT      /PRGEND ERROR @/]\r
21502         005067' 254000  007714'         JRST    ERRFIN\r
21503 \r\fMACRO V.10                     PAGE 93\r
21504         PSEUDO-OP HANDLERS\r
21505 \r
21506                                 ;MULTIPLE SYMBOL TABLE FEATURE PSEUDO-OPS\r
21507 \r
21508                                 IFN UNIVR,<\r
21509                                 UNIV0:  JUMP2   TITLE0          ;DO IT ALL ON PASS 1\r
21510                                         HRRZ    SX,UNIVNO       ;GET NUMBER OF UNIVERSALS SEEN\r
21511                                         CAIL    SX,.UNIV        ;ALLOW ONE MORE?\r
21512                                         JRST    UNVERR          ;NO, GIVE FATAL ERROR\r
21513                                         AOS     UNIVNO          ;ONE MORE NOW\r
21514                                         SETOM   UNIVSN          ;AND SET SEEN A UNIVERSAL\r
21515                                         JRST    TITLE0          ;CONTINUE AS IF TITLE\r
21516                                 \r
21517                                 \r
21518                                 ADDUNV: PUSH    PP,RC           ;AN AC TO USE\r
21519                                         PUSHJ   PP,NOUT         ;CONVERT TO SIXBIT\r
21520                                         HRRZ    RC,UNIVNO       ;GET ENTRY INDEX\r
21521                                         MOVEM   AC0,UNITBL(RC)  ;STORE SIXBIT NAME IN TABLE\r
21522                                         HRRZS   UNIVSN          ;ONLY DO IT ONCE\r
21523                                         POP     PP,RC           ;RESTORE RC\r
21524                                         POPJ    PP,             ;AND RETURN\r
21525                                 \r
21526                                 UNVERR: HRROI   RC,[SIXBIT /TOO MANY UNIVERSALS@/]\r
21527                                         JRST    ERRFIN\r
21528                                 \r
21529                                 UNISYM: HRRZ    AC0,FREE        ;GET HIGHEST FREE LOCATION\r
21530                                         MOVEM   AC0,JOBFF       ;INTO JOBFF\r
21531                                         PUSHJ   PP,SUPRSA       ;TURN ON SUPPRESS BIT\r
21532                                         PUSH    PP,SYMBOL       ;NEED TO SAVE INCASE PRGEND\r
21533                                         MOVE    AC0,SYMTOP      ;TOP OF TABLE\r
21534                                         SUB     AC0,SYMBOL      ;GET LENGTH OF TABLE\r
21535                                         HRL     ARG,SYMBOL      ;BOTTOM OF TABLE\r
21536                                         HRR     ARG,JOBFF       ;WHERE TO GO\r
21537                                         HRRZ    RC,UNIVNO       ;GET TABLE INDEX\r
21538                                         HRRM    ARG,SYMBOL      ;WILL BE THERE SOON\r
21539                                         HRRZM   ARG,UNIPTR(RC)  ;STORE IN CORRESPONDING PLACE\r
21540                                         ADDB    AC0,JOBFF       ;WHERE TO END\r
21541                                         HRLM    AC0,UNIPTR(RC)  ;SAVE NEW SYMTOP\r
21542                                         BLT     ARG,@JOBFF      ;MOVE TABLE\r
21543                                         HRRZM   AC0,UNITOP      ;SAVE TOP OF TABLES+1\r
21544                                         CAMLE   AC0,MACSIZ      ;IN CASE OVER A K BOUND\r
21545                                         MOVEM   AC0,MACSIZ      ;DON'T REDUCE SO FAR NOW\r
21546                                         MOVEM   AC0,FREE        ;JUST IN CASE IN MACRO\r
21547                                         MOVE    AC0,SRCHX       ;SAVE OLD SEARCH POINTER\r
21548                                         PUSHJ   PP,SRCHI        ;GET SEARCH POINTER\r
21549                                         EXCH    AC0,SRCHX\r
21550                                         MOVEM   AC0,UNISHX(RC)  ;SAVE IT\r
21551                                         SETZM   UNIVSN          ;CLEAR FLAG INCASE PRGEND\r
21552                                         POP     PP,SYMBOL       ;RESTORE OLD VALUE\r
21553                                         POPJ    PP,             ;RETURN\r
21554                                 \r
21555                                 \r\fMACRO V.10                     PAGE 94\r
21556         PSEUDO-OP HANDLERS\r
21557 \r
21558                                 SERCH0: PUSHJ   PP,GETSYM       ;GET A SYMBOL\r
21559                                         JRST    ERRAX           ;ERROR IF NOT VALID\r
21560                                         MOVEI   RC,1            ;START AT ENTRY ONE\r
21561                                         CAIL    RC,.UNIV        ;CHECK FOR CONSISTENCY ERROR\r
21562                                         JRST    SCHERR          ;CANNOT FIND THIS ONE\r
21563                                         CAME    AC0,UNITBL(RC)  ;LOOK FOR MATCH\r
21564                                         AOJA    RC,.-3          ;NOT FOUND YET\r
21565                                         MOVE    AC0,RC          ;STORE TABLE ENTRY NUMBER\r
21566                                         MOVEI   RC,1            ;START AT ENTRY ONE\r
21567                                         CAIL    RC,.UNIV        ;CHECK FOR CONSISTENCY ERROR\r
21568                                         JRST    SCHERR          ;SHOULD NEVER HAPPEN!!\r
21569                                         SKIPE   UNISCH(RC)      ;LOOK FOR AN EMPTY SLOT\r
21570                                         AOJA    RC,.-3          ;NOT FOUND YET\r
21571                                         MOVEM   AC0,UNISCH(RC)  ;STORE INDEX IN TABLE\r
21572                                         JUMPCM  SERCH0          ;LOOK FOR MORE NAMES\r
21573                                         POPJ    PP,             ;FINISHED\r
21574                                 \r
21575                                 SCHERR: MOVSI   RC,[SIXBIT /CANNOT FIND UNIVERSAL@/]\r
21576                                         JRST    ERRFIN          ;NAME IN AC0\r
21577                                 \r
21578                                 ;MESSAGE FOR CASE WHERE FILES AFTER UNIVERSAL USED MORE BUFFER SPACE THAN FIRST UNIVERS\r
21579                                 AL\r
21580                                 UNIERR: HRROI   RC,[SIXBIT /UNIVERSAL PROGRAM(S) MUST HAVE SAME OUTPUT SPECIFICATION AS\r
21581                                  OTHER FILES@/]\r
21582                                         JRST    ERRFIN\r
21583                                 >\r
21584 \r\fMACRO V.10                     PAGE 95\r
21585         MACRO/REPEAT HANDLERS\r
21586 \r
21587                                 SUBTTL  MACRO/REPEAT HANDLERS\r
21588 \r
21589         005070' 260740  003757' REPEA0: PUSHJ   PP,EVALXQ       ;EVALUATE REPEAT EXP, EXTERNS ARE ILL.\r
21590         005071' 325400  003311'         JUMPNC  ERRAX\r
21591 \r
21592         005072' 323000  005152' REPEA1: JUMPLE  AC0,REPZ        ;PASS THE EXP., DONT PROCESS\r
21593         005073' 362000  005171'         SOJE    AC0,REPO        ;REPEAT ONCE\r
21594         005074' 260740  006254' REPEA2: PUSHJ   PP,GCHARQ       ;GET STARTING "<"\r
21595         005075' 302340  000074          CAIE    C,"<"\r
21596         005076' 254000  005074'         JRST    REPEA2\r
21597         005077' 260740  006217'         PUSHJ   PP,SKELI1       ;INITIALIZE SKELETON\r
21598         005100' 261700  013346'         PUSH    MP,REPEXP\r
21599         005101' 202000  013346'         MOVEM   AC0,REPEXP\r
21600         005102' 261700  013347'         PUSH    MP,REPPNT       ;STACK PREVIOUS REPEAT POINTER\r
21601         005103' 202240  013347'         MOVEM   ARG,REPPNT      ;STORE NEW POINTER\r
21602         005104' 634140  000003          TDZA    SDEL,SDEL       ;YES, INITIALIZE BRACKET COUNT AND SKIP\r
21603 \r
21604         005105' 260740  006262' REPEA4: PUSHJ   PP,WCHARQ       ;WRITE A CHARACTER\r
21605         005106' 260740  006254'         PUSHJ   PP,GCHARQ       ;GET A CHARACTER\r
21606         005107' 306340  000074          CAIN    C,"<"           ;"<"?\r
21607         005110' 344140  005105'         AOJA    SDEL,REPEA4     ;YES, INCREMENT AND WRITE\r
21608         005111' 302340  000076          CAIE    C,">"           ;">"?\r
21609         005112' 254000  005105'         JRST    REPEA4          ;NO, WRITE THE CHARACTER\r
21610         005113' 365140  005105'         SOJGE   SDEL,REPEA4     ;YES, WRITE IF NON-NEGATIVE COUNT\r
21611         005114' 205400  774060          MOVSI   CS,(BYTE (7) 177,3)     ;SET "REPEAT" END\r
21612         005115' 260740  006272'         PUSHJ   PP,WWRXE        ;WRITE END\r
21613         005116' 336000  013321'         SKIPN   LITLVL          ;LITERAL MIGHT END ON LINE\r
21614         005117' 332000  013406'         SKIPE   MACLVL          ;IF IN MACRO DARE NOT PROCESS\r
21615         005120' 254000  005123'         JRST    .+3             ;REST OF LINE SINCE MACRO MIGHT END ON IT\r
21616         005121' 260740  004452'         PUSHJ   PP,BYPASS       ;BYPASS\r
21617         005122' 260740  000227'         PUSHJ   PP,STOUTS       ;POLISH OF LINE BEFORE PROCESSING REPEAT\r
21618         005123' 261700  000013          PUSH    MP,MRP          ;STACK PREVIOUS READ POINTER\r
21619         005124' 261700  013411'         PUSH    MP,RCOUNT       ;SAVE WORD COUNT\r
21620         005125' 550540  013347'         HRRZ    MRP,REPPNT      ;SET UP READ POINTER\r
21621         005126' 336000  013406'         SKIPN   MACLVL          ;IF IN MACRO GIVE CR-LF FIRST\r
21622         005127' 332000  013321'         SKIPE   LITLVL          ;SAME FOR LITERAL\r
21623         005130' 254000  005132'         JRST    REPEA7\r
21624         005131' 344540  000446'         AOJA    MRP,POPOUT      ;BYPASS ARG COUNT\r
21625 \r
21626         005132' 550540  013347' REPEA7: HRRZ    MRP,REPPNT      ;SET UP READ POINTER\r
21627         005133' 271540  000001          ADDI    MRP,1           ;BYPASS ARG COUNT\r
21628         005134' 201340  000015  REPEA8: MOVEI   C,CR\r
21629         005135' 254000  001412'         JRST    RSW1\r
21630 \r
21631         005136' 371000  013346' REPEND: SOSL    REPEXP\r
21632         005137' 254000  005132'         JRST    REPEA7\r
21633         005140' 550300  013347'         HRRZ    V,REPPNT        ;GET START OF TREE\r
21634         005141' 260740  006352'         PUSHJ   PP,REFDEC       ;DECREMENT REFERENCE\r
21635         005142' 262700  013411'         POP     MP,RCOUNT\r
21636         005143' 262700  000013          POP     MP,MRP\r
21637         005144' 262700  013347'         POP     MP,REPPNT\r
21638         005145' 262700  013346'         POP     MP,REPEXP\r
21639         005146' 336000  013321'         SKIPN   LITLVL          ;IF IN LITERAL OR\r
21640 \r\fMACRO V.10                     PAGE 95-1\r
21641         MACRO/REPEAT HANDLERS\r
21642 \r
21643         005147' 332000  013406'         SKIPE   MACLVL          ;IF IN MACRO\r
21644         005150' 254000  001410'         JRST    RSW0            ;FINISH OF LINE NOW\r
21645         005151' 254000  005134'         JRST    REPEA8\r
21646 \r
21647 \r\fMACRO V.10                     PAGE 96\r
21648         MACRO/REPEAT HANDLERS\r
21649 \r
21650         005152' 200140  013415' REPZ:   MOVE SDEL,SEQNO2        ;SAVE IN CASE OF END OF FILE\r
21651         005153' 202140  013306'         MOVEM SDEL,REPSEQ\r
21652         005154' 200140  013414'         MOVE SDEL,PAGENO\r
21653         005155' 202140  013305'         MOVEM SDEL,REPPG\r
21654         005156' 476000  013272'         SETOM INREP\r
21655         005157' 201140  000000          MOVEI SDEL,0    ;SET COUNT\r
21656         005160' 260740  006255' REPZ1:  PUSHJ   PP,GCHAR        ;GET NEXT CHARACTER\r
21657         005161' 306340  000074          CAIN    C,"<"           ;"<"?\r
21658         005162' 344140  005160'         AOJA    SDEL,REPZ1      ;YES, INCREMENT COUNT\r
21659         005163' 306340  000076          CAIN    C,">"           ;">"?\r
21660         005164' 363140  005166'         SOJLE   SDEL,REPZ2      ;YES, EXIT IF MATCHING\r
21661         005165' 254000  005160'         JRST    REPZ1           ;NO, RECYCLE\r
21662         005166' 402000  013272' REPZ2:  SETZM   INREP   ;FLAG OUT OF IT\r
21663         005167' 402000  013275'         SETZM   INCND   ;AND CONDITIONAL ALSO\r
21664         005170' 254000  000125'         JRST    STMNT   ;AND EXIT\r
21665 \r
21666         005171' 260740  006255' REPO:   PUSHJ   PP,GCHAR        ;GET "<"\r
21667         005172' 302340  000074          CAIE    C,"<"\r
21668         005173' 254000  005171'         JRST    REPO\r
21669         005174' 332000  013350'         SKIPE   RPOLVL          ;ARE WE NESTED?\r
21670         005175' 350000  013350'         AOS     RPOLVL          ;YES, DECREMENT CURRENT\r
21671         005176' 261700  013350'         PUSH    MP,RPOLVL\r
21672         005177' 476000  013350'         SETOM   RPOLVL\r
21673         005200' 254000  000125'         JRST    STMNT\r
21674 \r
21675         005201' 306340  000074  REPO1:  CAIN    C,"<"\r
21676         005202' 370000  013350'         SOS     RPOLVL\r
21677         005203' 306340  000076          CAIN    C,">"\r
21678         005204' 352000  013350'         AOSE    RPOLVL\r
21679         005205' 254000  001414'         JRST    RSW2\r
21680         005206' 262700  013350'         POP     MP,RPOLVL\r
21681         005207' 260740  001414'         PUSHJ   PP,RSW2\r
21682         005210' 254000  001410'         JRST    RSW0\r
21683 \r\fMACRO V.10                     PAGE 97\r
21684         MACRO/REPEAT HANDLERS\r
21685 \r
21686         005211' 260740  001034' DEFIN0: PUSHJ   PP,GETSYM       ;GET MACRO NAME\r
21687         005212' 254000  003311'         JRST    ERRAX           ;EXIT ON ERROR\r
21688         005213' 202740  013343'         MOVEM   PP,PPTMP1       ;SAVE POINTER\r
21689         005214' 202000  013344'         MOVEM   AC0,PPTMP2      ;SAVE NAME\r
21690         005215' 661600  000004          TLO     IO,IORPTC\r
21691         005216' 200200  013415'         MOVE SX,SEQNO2  ;SAVE IN CASE OF EOF\r
21692         005217' 202200  013302'         MOVEM SX,DEFSEQ\r
21693         005220' 200200  013414'         MOVE SX,PAGENO\r
21694         005221' 202200  013301'         MOVEM SX,DEFPG\r
21695         005222' 476000  013273'         SETOM INDEF     ;AND FLAG IN DEFINE\r
21696                                         SYN     .TEMP,COMSW     ;SAVE SPACE\r
21697         005223' 403200  013402'         SETZB   SX,COMSW        ;SET ARGUMENT AND REFERENCE COUNT AND COMMENT SWITCH\r
21698         005224' 260740  006255' DEF02:  PUSHJ   PP,GCHAR        ;SEARCH FOR "(" OR "<"\r
21699         005225' 307340  000014          CAIG    C,FF            ;SEARCH FOR END OF LINE\r
21700         005226' 305340  000012          CAIGE   C,LF            ;LF,VT, OR FF\r
21701         005227' 254000  005231'         JRST    .+2             ;WASN'T ANY OF THEM\r
21702         005230' 402000  013402'         SETZM   COMSW           ;RESET COMMENT SWITCH\r
21703         005231' 306340  000073          CAIN    C,";"           ;COMMENT?\r
21704         005232' 476000  013402'         SETOM   COMSW           ;YES, SET COMMENT SWITCH\r
21705         005233' 332000  013402'         SKIPE   COMSW           ;INSIDE A COMMENT?\r
21706         005234' 254000  005224'         JRST    DEF02           ;YES, IGNORE CHARACTER\r
21707         005235' 306340  000074          CAIN    C,"<"           ;"<"?\r
21708         005236' 254000  005254'         JRST    DEF20           ;YES\r
21709         005237' 302340  000050          CAIE    C,"("           ;"("?\r
21710         005240' 254000  005224'         JRST    DEF02           ;NO\r
21711         005241' 260740  001034' DEF10:  PUSHJ   PP,GETSYM       ;YES, GET DUMMY SYMBOL\r
21712         005242' 660600  040000          TRO     ER,ERRA         ;FLAG ERROR\r
21713         005243' 271200  000001          ADDI    SX,1            ;INCREMENT ARG COUNT\r
21714         005244' 261740  000000          PUSH    PP,AC0          ;STACK IT\r
21715         005245' 306340  000034          CAIN    C,'<'           ;A DEFAULT ARGUMENT COMING UP?\r
21716         005246' 254000  005467'         JRST    DEF80           ;YES, STORE IT AWAY\r
21717         005247' 302340  000011          CAIE    C,11            ;")"?\r
21718         005250' 254000  005241'         JRST    DEF10           ;NO, GET NEXT DUMMY SYMBOL\r
21719         005251' 260740  006255' DEF12:  PUSHJ   PP,GCHAR\r
21720         005252' 302340  000074          CAIE    C,"<"           ;"<"?\r
21721         005253' 254000  005251'         JRST    DEF12           ;NO\r
21722         005254' 261740  014100' DEF20:  PUSH    PP,[0]          ;YES, MARK THE LIST\r
21723         005255' 242200  000011          LSH     SX,9            ;SHIFT ARG COUNT\r
21724         005256' 350240  000004          AOS     ARG,SX\r
21725         005257' 260740  006220'         PUSHJ   PP,SKELI        ;INITIALIZE MACRO SKELETON\r
21726         005260' 200000  013344'         MOVE    AC0,PPTMP2      ;GET NAME\r
21727         005261' 661600  000040          TLO IO,DEFCRS\r
21728         005262' 260740  012173'         PUSHJ   PP,MSRCH        ;SEARCH THE TABLE\r
21729         005263' 254000  005267'         JRST    DEF24           ;NOT FOUND\r
21730         005264' 607240  020000          TLNN    ARG,MACF        ;FOUND, IS IT A MACRO?\r
21731         005265' 664600  100000          TROA    ER,ERRX         ;NO, FLAG ERROR AND SKIP\r
21732         005266' 260740  006352'         PUSHJ   PP,REFDEC       ;YES, DECREMENT THE REFERENCE\r
21733         005267' 550300  013410' DEF24:  HRRZ    V,WWRXX         ;GET START OF TREE\r
21734         005270' 336000  013402'         SKIPN   .TEMP           ;ANY DEFAULT ARGUMENTS TO TAKE CARE OF?\r
21735         005271' 254000  005317'         JRST    DEF25           ;NO\r
21736         005272' 550346  000001          HRRZ    C,1(V)          ;GET SHIFTED ARG COUNT\r
21737         005273' 242340  777767          LSH     C,-9            ;GET ARG COUNT BACK\r
21738         005274' 271340  000001          ADDI    C,1             ;ONE MORE FOR TERMINAL ZERO\r
21739 \r\fMACRO V.10                     PAGE 97-1\r
21740         MACRO/REPEAT HANDLERS\r
21741 \r
21742         005275' 270340  013402'         ADD     C,.TEMP         ;NUMBER OF ITEMS IN STACK\r
21743         005276' 507000  000007          HRLS    C               ;MAKE XWD\r
21744         005277' 274740  000007          SUB     PP,C            ;BACK UP STACK\r
21745         005300' 200140  013402'         MOVE    SDEL,.TEMP      ;NUMBER OF WORDS NEEDED\r
21746         005301' 273140  012727'         ADDB    SDEL,FREE       ;FROM FREE CORE\r
21747         005302' 311140  013102'         CAML    SDEL,SYMBOL     ;MORE CORE NEEDED\r
21748         005303' 260740  010014'         PUSHJ   PP,XCEEDS       ;YES, TRY TO GET IT\r
21749         005304' 274140  013402'         SUB     SDEL,.TEMP      ;FORM POINTER\r
21750         005305' 506146  000001          HRLM    SDEL,1(V)       ;STORE IT WITH ARG COUNT IN MACRO\r
21751         005306' 275140  000001          SUBI    SDEL,1          ;TO USE FOR PUSHING POINTER INTO STORAGE\r
21752         005307' 201357  000001          MOVEI   C,1(PP)         ;POINT TO START OF STACK\r
21753         005310' 200247  000000  DEF26:  MOVE    ARG,(C)         ;GET AN ITEM OFF STACK\r
21754         005311' 607240  777740          TLNN    ARG,-40         ;A POINTER?\r
21755                                         JUMPN   ARG,[PUSH SDEL,ARG      ;YES, STORE IT\r
21756                                 \r\fMACRO V.10                     PAGE 98\r
21757         MACRO/REPEAT HANDLERS\r
21758 \r
21759         005312' 326240  014245'                 AOJA    C,DEF26]        ;GET NEXT\r
21760         005313' 261740  000005          PUSH    PP,ARG          ;RESTACK ARGUMENT\r
21761         005314' 332000  000005          SKIPE   ARG             ;FINISHED IF ZERO\r
21762         005315' 344340  005310'         AOJA    C,DEF26 ;GET NEXT\r
21763         005316' 261140  000005          PUSH    SDEL,ARG        ;STORE ZERO IN DEFAULT LIST ALSO\r
21764 \r\fMACRO V.10                     PAGE 99\r
21765         MACRO/REPEAT HANDLERS\r
21766 \r
21767         005317' 205240  020000  DEF25:  MOVSI   ARG,MACF\r
21768         005320' 202740  013344'         MOVEM   PP,PPTMP2       ;STORE TEMP STORAGE POINTER\r
21769         005321' 260740  012366'         PUSHJ   PP,INSERT       ;INSERT/UPDATE\r
21770         005322' 621600  000040          TLZ IO,DEFCRS   ;JUST IN CASE\r
21771         005323' 402000  013404'         SETZM   ARGF            ;NO ARGUMENT SEEN\r
21772         005324' 402000  013403'         SETZM   SQFLG           ;AND NO ' SEEN\r
21773         005325' 634140  000003          TDZA    SDEL,SDEL       ;CLEAR BRACKET COUNT\r
21774         005326' 260740  006262' DEF30:  PUSHJ   PP,WCHAR        ;WRITE CHARACTER\r
21775         005327' 260740  006255' DEF31:  PUSHJ   PP,GCHAR        ;GET A CHARACTER\r
21776         005330' 200400  000007  DEF32:  MOVE    CS,C            ;GET A COPY\r
21777         005331' 306340  000073          CAIN    C,";"           ;IS IT A COMMENT\r
21778         005332' 254000  005371'         JRST    CPEEK           ;YES CHECK FOR ;;\r
21779         005333' 307400  000172  DEF33:  CAIG CS,"Z"+40          ;CONVERT LOWER CASE\r
21780         005334' 305400  000141          CAIGE CS,"A"+40\r
21781         005335' 254000  005337'         JRST    .+2\r
21782         005336' 275400  000040          SUBI CS,40\r
21783 \r\fMACRO V.10                     PAGE 100\r
21784         MACRO/REPEAT HANDLERS\r
21785 \r
21786         005337' 305400  000040          CAIGE CS,40             ;TEST FOR CONTROL CHAR.\r
21787                                         JRST    [SKIPN  SQFLG   ;HAS SINGLE QUOTE BEEN SEEN?\r
21788                                                 JRST    DEF30   ;NO, OUTPUT THIS CHAR.\r
21789                                                 PUSH    PP,C    ;YES, SAVE CURRENT CHAR\r
21790                                                 MOVEI   C,47    ;SET UP QUOTE\r
21791                                                 PUSHJ   PP,WCHAR;WRITE IT\r
21792                                                 POP     PP,C    ;GET BACK CURRENT CHAR.\r
21793                                                 SETZM   SQFLG   ;RESET FLAG\r
21794         005340' 254000  014247'                 JRST    DEF30]  ;AND CONTINUE \r
21795         005341' 303400  000137          CAILE CS,77+40\r
21796         005342' 254000  005326'         JRST    DEF30           ;TEST FOR SPECIAL\r
21797         005343' 200410  001407'         MOVE    CS,CSTAT-40(CS) ;GET STATUS BITS\r
21798 \r\fMACRO V.10                     PAGE 101\r
21799         MACRO/REPEAT HANDLERS\r
21800 \r
21801         005344' 603400  000006          TLNE    CS,6            ;ALPHA-NUMERIC?\r
21802         005345' 254000  005406'         JRST    DEF40           ;YES\r
21803         005346' 336000  013403'         SKIPN   SQFLG           ;WAS A ' SEEN?\r
21804         005347' 254000  005355'         JRST    DEF36           ;NO, PROCESH\r
21805         005350' 261740  000007          PUSH    PP,C            ;YES, SAVE CURRENT CHARACTER\r
21806         005351' 201340  000047          MOVEI   C,47            ;AND PUT IN A '\r
21807         005352' 260740  006262'         PUSHJ   PP,WCHAR        ;...\r
21808         005353' 262740  000007          POP     PP,C            ;RESTORE CURRENT CHARACTER\r
21809         005354' 402000  013403'         SETZM   SQFLG           ;AND RESET FLAG\r
21810         005355' 302340  000047  DEF36:  CAIE    C,47            ;IS THIS A '?\r
21811         005356' 254000  005363'         JRST    DEF35           ;NOPE\r
21812         005357' 336000  013404'         SKIPN   ARGF            ;YES, WAS LAST THING SEEN AN ARG?\r
21813         005360' 476000  013403'         SETOM   SQFLG           ;IF NOT, SET SNGL QUOT FLAG\r
21814         005361' 402000  013404'         SETZM   ARGF            ;BUT NOT ARGUMENT IN ANY CASE\r
21815         005362' 254000  005327'         JRST    DEF31           ;GO GET NEXT CHARACTER\r
21816 \r\fMACRO V.10                     PAGE 102\r
21817         MACRO/REPEAT HANDLERS\r
21818 \r
21819         005363' 402000  013404' DEF35:  SETZM   ARGF            ;THIS IS NOT AN ARGUMENT\r
21820         005364' 306340  000074          CAIN    C,"<"           ;"<"?\r
21821         005365' 344140  005326'         AOJA    SDEL,DEF30      ;YES, INCREMENT COUNT AND WRITE\r
21822         005366' 306340  000076          CAIN    C,">"           ;">"?\r
21823         005367' 361140  005462'         SOJL    SDEL,DEF70      ;YES, TEST FOR END\r
21824         005370' 254000  005326'         JRST    DEF30           ;NO, WRITE IT\r
21825 \r
21826         005371' 607600  004000  CPEEK:  TLNN    IO,IOPALL       ;IF LALL IS ON\r
21827         005372' 254000  005333'         JRST    DEF33           ;JUST RETURN\r
21828         005373' 260740  006335'         PUSHJ   PP,PEEK         ;LOOK AT NEXT CHAR.\r
21829         005374' 306340  000073          CAIN    C,";"           ;IS IT ;;?\r
21830         005375' 254000  005400'         JRST    CPEEK1          ;YES\r
21831         005376' 200340  000010          MOVE    C,CS            ;RESTORE C\r
21832         005377' 254000  005333'         JRST    DEF33           ;AND RETURN\r
21833 \r
21834         005400' 260740  006255' CPEEK1: PUSHJ   PP,GCHAR        ;GET THE CHAR.\r
21835         005401' 302340  000076          CAIE    C,">"           ;RETURN IF END OF MACRO\r
21836         005402' 307340  000015          CAIG    C,CR            ;IS CHAR ONE OF\r
21837         005403' 305340  000012          CAIGE   C,LF            ;LF,VT,FF,CR\r
21838         005404' 254000  005400'         JRST    CPEEK1          ;NO,SO GET NEXT CHAR.\r
21839         005405' 254000  005330'         JRST    DEF32           ;YES,RETURN AND STORE\r
21840 \r\fMACRO V.10                     PAGE 103\r
21841         MACRO/REPEAT HANDLERS\r
21842 \r
21843         005406' 201000  000000  DEF40:  MOVEI   AC0,0           ;CLEAR ATOM\r
21844         005407' 205040  440600          MOVSI   AC1,(POINT 6,AC0)       ;SET POINTER\r
21845         005410' 261740  000007  DEF42:  PUSH    PP,C            ;STACK CHARACTER\r
21846         005411' 603040  770000          TLNE    AC1,770000      ;HAVE WE STORED 6?\r
21847         005412' 136400  000001          IDPB    CS,AC1          ;NO, STORE IN ATOM\r
21848         005413' 260740  006255'         PUSHJ   PP,GCHAR        ;GET NEXT CHARACTER\r
21849         005414' 200400  000007          MOVE    CS,C\r
21850         005415' 307400  000172          CAIG CS,"Z"+40\r
21851         005416' 305400  000141          CAIGE CS,"A"+40\r
21852         005417' 254000  005421'         JRST    .+2\r
21853         005420' 275400  000040          SUBI CS,40              ;CONVERT LOWER TO UPPER\r
21854         005421' 301400  000040          CAIL CS,40\r
21855         005422' 303400  000137          CAILE CS,77+40\r
21856         005423' 254000  005427'         JRST    DEF44           ;TEST SPECIAL\r
21857         005424' 200410  001407'         MOVE    CS,CSTAT-40(CS) ;GET STATUS\r
21858         005425' 603400  000006          TLNE    CS,6            ;ALPHA-NUMERIC?\r
21859         005426' 254000  005410'         JRST    DEF42           ;YES, GET ANOTHER\r
21860         005427' 261740  014100' DEF44:  PUSH    PP,[0]          ;NO, MARK THE LIST\r
21861         005430' 200200  013343'         MOVE    SX,PPTMP1       ;GET POINTER TO TOP\r
21862 \r
21863         005431' 336004  000001  DEF46:  SKIPN   1(SX)           ;END OF LIST?\r
21864         005432' 254000  005451'         JRST    DEF50           ;YES\r
21865         005433' 312004  000001          CAME    AC0,1(SX)       ;NO, DO THEY COMPARE?\r
21866         005434' 344200  005431'         AOJA    SX,DEF46        ;NO, TRY AGAIN\r
21867         005435' 274200  013343'         SUB     SX,PPTMP1       ;YES, GET DUMMY SYMBOL NUMBER\r
21868         005436' 242200  000004          LSH SX,4\r
21869         005437' 205404  776020          MOVSI   CS,<(BYTE (7) 177,101)>(SX)     ;SET ESCAPE CODE MACEND\r
21870         005440' 242000  777742          LSH     AC0,-^D30\r
21871         005441' 306000  000005          CAIN    AC0,5           ;"%"?\r
21872         005442' 661400  001000          TLO     CS,1000         ;YES, SET CRESYM FLAG\r
21873         005443' 260740  006266'         PUSHJ   PP,WWORD        ;WRITE THE WORD\r
21874         005444' 476000  013404'         SETOM ARGF              ;SET ARGUMENT SEEN FLAG\r
21875         005445' 402000  013403'         SETZM SQFLG             ;AND IGNORE ANY ' WAITING TO GET INTO STRING\r
21876         005446' 200740  013344' DEF48:  MOVE    PP,PPTMP2       ;RESET PUSHDOWN POINTER\r
21877         005447' 661600  000004          TLO     IO,IORPTC       ;ECHO LAST CHARACTER\r
21878         005450' 254000  005327'         JRST    DEF31           ;RECYCLE\r
21879 \r
21880         005451'                 DEF50:\r
21881         005451' 336000  013403'         SKIPN   SQFLG           ;HAVE WE SEEN A '?\r
21882         005452' 254000  005456'         JRST    DEF51           ;NOPE\r
21883         005453' 201340  000047          MOVEI   C,47            ;YES, PUT IT IN\r
21884         005454' 260740  006262'         PUSHJ   PP,WCHAR        ;...\r
21885         005455' 402000  013403'         SETZM   SQFLG           ;AND CLEAR FLAG\r
21886         005456' 200344  000002  DEF51:  MOVE    C,2(SX)         ;GET CHARACTER\r
21887         005457' 322340  005446'         JUMPE   C,DEF48         ;CLEAN UP IF END\r
21888         005460' 260740  006262'         PUSHJ   PP,WCHAR        ;WRITE THE CHARACTER\r
21889         005461' 344200  005456'         AOJA    SX,DEF51        ;GET NEXT\r
21890 \r
21891         005462' 200740  013343' DEF70:  MOVE    PP,PPTMP1       ;RESTORE PUSHDOWN POINTER\r
21892         005463' 205400  774020          MOVSI   CS,(BYTE (7) 177,1)\r
21893         005464' 260740  006272'         PUSHJ   PP,WWRXE        ;WRITE END\r
21894         005465' 402000  013273'         SETZM INDEF     ;OUT OF IT\r
21895         005466' 254000  004452'         JRST    BYPASS\r
21896 \r\fMACRO V.10                     PAGE 104\r
21897         MACRO/REPEAT HANDLERS\r
21898 \r
21899                                 ; HERE TO STORE DEFAULT ARGUMENTS\r
21900 \r
21901         005467' 350000  013402' DEF80:  AOS     .TEMP           ;COUNT ONE MORE\r
21902         005470' 260740  006217'         PUSHJ   PP,SKELI1       ;INITIALIZE SKELETON\r
21903         005471' 504300  000004          HRL     V,SX            ;SYMBOL NUMBER\r
21904         005472' 261740  000006          PUSH    PP,V            ;STORE POINTER\r
21905         005473' 634140  000003          TDZA    SDEL,SDEL       ;ZERO BRACKET COUNT\r
21906         005474' 260740  006262' DEF81:  PUSHJ   PP,WCHARQ       ;WRITE A CHARACTER\r
21907         005475' 260740  006254'         PUSHJ   PP,GCHARQ       ;GET A CHARACTER\r
21908         005476' 306340  000074          CAIN    C,"<"           ;ANOTHER "<"?\r
21909         005477' 344140  005474'         AOJA    SDEL,DEF81      ;YES, INCREMENT AND WRITE\r
21910         005500' 302340  000076          CAIE    C,">"           ;CLOSING ANGLE?\r
21911         005501' 254000  005474'         JRST    DEF81           ;NO, JUST WRITE THE CHAR.\r
21912         005502' 365140  005474'         SOJGE   SDEL,DEF81      ;YES, WRITE IF NOT END\r
21913         005503' 205400  774040          MOVSI   CS,(BYTE (7) 177,2)\r
21914         005504' 260740  006272'         PUSHJ   PP,WWRXE        ;WRITE END OF DUMMY ARGUMENT\r
21915         005505' 260740  006255'         PUSHJ   PP,GCHAR        ;READ AT NEXT CHAR.\r
21916         005506' 302340  000051          CAIE    C,")"           ;END OF ARGUMENT LIST?\r
21917         005507' 254000  005241'         JRST    DEF10           ;NO, GET NEXT SYMBOL\r
21918         005510' 254000  005251'         JRST    DEF12           ;YES, LOOK FOR "<"\r
21919 \r\fMACRO V.10                     PAGE 105\r
21920         MACRO CALL PROCESSOR\r
21921 \r
21922                                 SUBTTL  MACRO CALL PROCESSOR\r
21923         005511' 335000  013405' CALLM:  SKIPGE  MACENL          ;ARE WE TRYING TO RE-ENTER?\r
21924         005512' 254000  003311'         JRST    ERRAX           ;YES, BOMB OUT WITH ERROR\r
21925         005513' 563000  013405'         HRROS   MACENL          ;FLAG "CALLM IN PROGRESS"\r
21926         005514' 250700  012600'         EXCH    MP,RP\r
21927         005515' 261700  000006          PUSH    MP,V            ;STACK FOR REFDEC\r
21928         005516' 250700  012600'         EXCH    MP,RP\r
21929         005517' 202000  013276'         MOVEM   AC0,CALNAM      ;SAVE MACRO NAME INCASE OF ERROR\r
21930         005520' 200140  013415'         MOVE SDEL,SEQNO2        ;SAVE IN CASE OF EOF\r
21931         005521' 202140  013300'         MOVEM SDEL,CALSEQ\r
21932         005522' 200140  013414'         MOVE SDEL,PAGENO\r
21933         005523' 202140  013277'         MOVEM SDEL,CALPG\r
21934         005524' 271300  000001          ADDI    V,1             ;POINT TO DUMMY SYMBOL COUNT\r
21935         005525' 350146  000000          AOS     SDEL,0(V)       ;INCREMENT ARG COUNT\r
21936         005526' 512140  013402'         HLLZM   SDEL,.TEMP      ;DEFAULT ARG POINTER IF NON-ZERO\r
21937         005527' 246140  777723          LSHC    SDEL,-^D<9+36>  ;ZERO SDEL, GET ARG COUNT IN SX\r
21938         005530' 405200  000777          ANDI    SX,777          ;MASK\r
21939         005531' 332000  013402'         SKIPE   .TEMP           ;IF AT LEAST ONE DEFAULT ARG\r
21940         005532' 542200  013402'         HRRM    SX,.TEMP        ;STORE COUNT OF ARGS\r
21941         005533' 261740  000006          PUSH    PP,V            ;STACK FOR MRP\r
21942         005534' 261740  012600'         PUSH    PP,RP           ;STACK FOR MACPNT\r
21943         005535' 322200  005602'         JUMPE   SX,MAC20        ;TEST FOR NO ARGS\r
21944         005536' 260740  001406'         PUSHJ   PP,CHARAC\r
21945         005537' 302340  000050          CAIE    C,"("           ;"("\r
21946         005540' 664140  777777          TROA    SDEL,-1         ;NO, FUDGE PAREN COUNT AND SKIP\r
21947 \r
21948         005541' 260740  006255' MAC10:  PUSHJ   PP,GCHAR        ;GET A CHARACTER, LOOK FOR AN ARG\r
21949         005542' 307340  000015          CAIG C,CR\r
21950         005543' 305340  000012          CAIGE C,LF\r
21951         005544' 306340  000073          CAIN    C,";"           ;";"?\r
21952         005545' 254000  005604'         JRST    MAC21           ;YES, END OF ARGUMENT STRING\r
21953 \r
21954         005546' 260740  006217'         PUSHJ   PP,SKELI1       ;NO, INITIALIZE SKELETON\r
21955         005547' 306340  000074          CAIN    C,"<"           ;"<"?\r
21956         005550' 254000  005677'         JRST    MAC30           ;YES, PROCESS AS SPECIAL\r
21957         005551' 302340  000176          CAIE C,176\r
21958         005552' 306340  000134          CAIN    C,134           ;"\"\r
21959         005553' 254000  005707'         JRST    MAC40           ;YES, PROCESS SYMBOL\r
21960 \r
21961         005554' 306340  000054  MAC14:  CAIN    C,","           ;","?\r
21962         005555' 254000  005573'         JRST    MAC16           ;YES; NULL SYMBOL\r
21963         005556' 306340  000050          CAIN    C,"("           ;"("?\r
21964         005557' 271140  000001          ADDI    SDEL,1          ;YES, INCREMENT COUNT\r
21965         005560' 306340  000051          CAIN    C,")"           ;")"?\r
21966         005561' 361140  005573'         SOJL    SDEL,MAC16      ;YES, TEST FOR END\r
21967         005562' 260740  006262'         PUSHJ   PP,WCHAR        ;WRITE INTO SKELETON\r
21968         005563' 260740  001406' MAC14A: PUSHJ   PP,CHARAC       ;GET NEXT CHARACTER\r
21969         005564' 307340  000015          CAIG C,CR\r
21970         005565' 305340  000012          CAIGE C,LF\r
21971         005566' 254000  005570'         JRST    .+2\r
21972         005567' 254000  005572'         JRST    MAC15           ;TEST FOR END OF LINE\r
21973         005570' 302340  000073          CAIE    C,";"           ;";"?\r
21974         005571' 254000  005554'         JRST    MAC14           ;YES, END OF LINE\r
21975 \r\fMACRO V.10                     PAGE 105-1\r
21976         MACRO CALL PROCESSOR\r
21977 \r
21978 \r
21979         005572' 661600  000004  MAC15:  TLO     IO,IORPTC\r
21980         005573' 205400  774040  MAC16:  MOVSI   CS,(BYTE (7) 177,2)\r
21981         005574' 260740  006272'         PUSHJ   PP,WWRXE        ;WRITE END\r
21982         005575' 250700  012600'         EXCH    MP,RP\r
21983         005576' 261700  013410'         PUSH    MP,WWRXX\r
21984         005577' 250700  012600'         EXCH    MP,RP\r
21985         005600' 363200  005602'         SOJLE   SX,MAC20        ;BRANCH IF NO MORE ARGS\r
21986         005601' 325140  005541'         JUMPGE  SDEL,MAC10      ;HAVEN'T SEEN TERMINAL ")" YET\r
21987 \r\fMACRO V.10                     PAGE 106\r
21988         MACRO CALL PROCESSOR\r
21989 \r
21990         005602' 627600  000004  MAC20:  TLZN    IO,IORPTC\r
21991         005603' 260740  001406'         PUSHJ   PP,CHARAC\r
21992         005604' 250700  012600' MAC21:  EXCH    MP,RP\r
21993         005605' 322200  005627'         JUMPE   SX,MAC21B       ;NO MISSING ARGS\r
21994         005606' 261700  014062' MAC21A: PUSH    MP,[-1]         ;FILL IN MISSING ARGS\r
21995         005607' 336000  013402'         SKIPN   .TEMP           ;ANY DEFAULT ARGS?\r
21996         005610' 254000  005626'         JRST    MAC21C          ;NO\r
21997         005611' 550340  013402'         HRRZ    C,.TEMP         ;GET ARG COUNT\r
21998         005612' 275344  777777          SUBI    C,-1(SX)        ;ACCOUNT FOR THOSE GIVEN\r
21999         005613' 517000  000007          HRLZS   C               ;PUT IN LEFT HALF\r
22000         005614' 554140  013402'         HLRZ    SDEL,.TEMP      ;ADDRESS OF TABLE\r
22001         005615' 336003  000000  MAC21D: SKIPN   (SDEL)          ;END OF LIST\r
22002         005616' 254000  005626'         JRST    MAC21C          ;YES\r
22003         005617' 430343  000000          XOR     C,(SDEL)        ;TEST FOR CORRECT ARG\r
22004         005620' 607340  777777          TLNN    C,-1            ;WAS IT?\r
22005         005621' 254000  005624'         JRST    MAC21E          ;YES\r
22006         005622' 430343  000000          XOR     C,(SDEL)        ;BACK THE WAY IT WAS\r
22007         005623' 344140  005615'         AOJA    SDEL,MAC21D     ;AND TRY AGAIN\r
22008 \r
22009         005624' 202356  000000  MAC21E: MOVEM   C,(MP)          ;REPLACE -1 WITH TREE POINTER\r
22010         005625' 350007  000001          AOS     1(C)            ;INCREMENT REFERENCE\r
22011         005626' 367200  005606' MAC21C: SOJG    SX,MAC21A\r
22012         005627' 261700  014100' MAC21B: PUSH    MP,[0]          ;SET TERMINAL\r
22013         005630' 550340  013002'         HRRZ    C,LIMBO\r
22014         005631' 607600  000001          TLNN    IO,IOSALL       ;SUPPRESSING ALL?\r
22015         005632' 254000  005651'         JRST    MAC23           ;NO\r
22016         005633' 326540  005647'         JUMPN   MRP,MAC27       ;IN MACRO?\r
22017         005634' 302340  000073          CAIE    C,";"           ;NO,IN COMMENT?\r
22018         005635' 254000  005642'         JRST    MAC26           ;NO\r
22019         005636' 260740  001406' MAC22:  PUSHJ   PP,CHARAC       ;YES,GET IT INTO THE LBUF\r
22020         005637' 307340  000015          CAIG    C,CR            ;LESS THAN CR?\r
22021         005640' 305340  000012          CAIGE   C,LF            ;AND GREATER THAN LF?\r
22022         005641' 254000  005636'         JRST    MAC22           ;NO GET ANOTHER\r
22023         005642' 515200  070000  MAC26:  HRLZI   SX,70000        ;DECREMENT BYTE POINTER\r
22024         005643' 273200  013003'         ADDB    SX,LBUFP\r
22025         005644' 325200  005647'         JUMPGE  SX,MAC27\r
22026         005645' 525200  347777          HRLOI   SX,347777\r
22027         005646' 272200  013003'         ADDM    SX,LBUFP\r
22028         005647' 505340  777777  MAC27:  HRLI    C,-1            ;SET FLAG\r
22029         005650' 254000  005664'         JRST    MAC25\r
22030 \r
22031         005651' 201200  000136  MAC23:  MOVEI   SX,"^"\r
22032         005652' 321600  005663'         JUMPAD  MAC24           ;BRANCH IF ADDRESS FIELD\r
22033         005653' 306340  000073          CAIN    C,";"           ;IF SEMI-COLON\r
22034         005654' 332000  013321'         SKIPE   LITLVL          ;AND NOT IN A LITERAL\r
22035         005655' 254000  005663'         JRST    MAC24           ;NOT BOTH TRUE\r
22036         005656' 326540  005663'         JUMPN   MRP,MAC24       ;OR IN A MACRO\r
22037         005657' 260740  000230'         PUSHJ   PP,STOUT        ;LIST COMMENT OR CR-LF\r
22038         005660' 603600  004000          TLNE    IO,IOPALL       ;MACRO EXPANSION SUPPRESSION?\r
22039         005661' 661600  010000          TLO     IO,IOMAC        ;  NO, SET TEMP BIT\r
22040         005662' 674340  014062'         TDOA    C,[-1]          ;FLAG LAST CHARACTER\r
22041         005663' 137200  013003' MAC24:  DPB     SX,LBUFP        ;SET ^ INTO LINE BUFFER\r
22042         005664' 261700  013407' MAC25:  PUSH    MP,MACPNT\r
22043 \r\fMACRO V.10                     PAGE 106-1\r
22044         MACRO CALL PROCESSOR\r
22045 \r
22046         005665' 262740  013407'         POP     PP,MACPNT\r
22047         005666' 261700  000007          PUSH    MP,C\r
22048         005667' 261700  013411'         PUSH    MP,RCOUNT       ;STACK WORD COUNT\r
22049         005670' 261700  000013          PUSH    MP,MRP          ;STACK MACRO POINTER\r
22050         005671' 262740  000013          POP     PP,MRP          ;SET NEW READ POINTER\r
22051         005672' 250700  012600'         EXCH    MP,RP\r
22052         005673' 350000  013406'         AOS     MACLVL\r
22053         005674' 553000  013405'         HRRZS   MACENL          ;RESET "CALLM IN PROGRESS"\r
22054         005675' 325600  000130'         JUMPOC  STMNT2          ;OP-CODE FIELD\r
22055         005676' 254000  001073'         JRST    EVATOM          ;ADDRESS FIELD\r
22056 \r
22057 \r\fMACRO V.10                     PAGE 107\r
22058         MACRO CALL PROCESSOR\r
22059 \r
22060         005677' 201000  000000  MAC30:  MOVEI   AC0,0           ;INITIALIZE BRACKET COUNTER\r
22061         005700' 260740  006255' MAC31:  PUSHJ   PP,GCHAR        ;GET A CHARACTER\r
22062         005701' 306340  000074          CAIN    C,"<"           ;"<"?\r
22063         005702' 271000  000001          ADDI    AC0,1           ;YES, INCREMENT COUNT\r
22064         005703' 306340  000076          CAIN    C,">"           ;">"?\r
22065         005704' 361000  005563'         SOJL    AC0,MAC14A      ;YES, EXIT IF MATCHING\r
22066         005705' 260740  006262'         PUSHJ   PP,WCHAR        ;WRITE INTO SKELETON\r
22067         005706' 254000  005700'         JRST    MAC31           ;GO BACK FOR ANOTHER\r
22068 \r
22069         005707' 261740  000004  MAC40:  PUSH    PP,SX           ;STACK REGISTERS\r
22070         005710' 261740  000003          PUSH    PP,SDEL\r
22071         005711' 502600  013377'         HLLM    IO,TAGINC       ;SAVE IO FLAGS\r
22072         005712' 260740  000354'         PUSHJ   PP,CELL         ;GET AN ATOM\r
22073         005713' 200300  000000          MOVE    V,AC0           ;ASSUME NUMERIC\r
22074         005714' 603600  020000          TLNE    IO,NUMSW        ;GOOD GUESS?\r
22075         005715' 254000  005720'         JRST    MAC41           ;YES\r
22076         005716' 260740  012210'         PUSHJ   PP,SSRCH        ;SEARCH THE SYMBOL TABLE\r
22077         005717' 664600  100000          TROA    ER,ERRX         ;NOT FOUND, ERROR\r
22078         005720' 260740  005726' MAC41:  PUSHJ   PP,MAC42        ;FORM ASCII STRING\r
22079         005721' 500600  013377'         HLL     IO,TAGINC       ;RESTORE IO FLAGS\r
22080         005722' 262740  000003          POP     PP,SDEL\r
22081         005723' 262740  000004          POP     PP,SX\r
22082         005724' 661600  000004          TLO     IO,IORPTC       ;REPEAT LAST CHARACTER\r
22083         005725' 254000  005563'         JRST    MAC14A          ;RETURN TO MAIN SCAN\r
22084 \r
22085         005726' 200340  000006  MAC42:  MOVE    C,V\r
22086         005727' 246340  777735  MAC44:  LSHC    C,-^D35\r
22087         005730' 242400  777777          LSH     CS,-1\r
22088         005731' 235355  000000          DIVI    C,0(RX)         ;DIVIDE BY CURRENT RADIX\r
22089         005732' 506417  000000          HRLM    CS,0(PP)\r
22090         005733' 322340  005735'         JUMPE   C,.+2           ;TEST FOR END\r
22091         005734' 260740  005727'         PUSHJ   PP,MAC44\r
22092         005735' 554357  000000          HLRZ    C,0(PP)\r
22093         005736' 271340  000060          ADDI    C,"0"           ;FORM TEXT\r
22094         005737' 254000  006262'         JRST    WCHAR           ;WRITE INTO SKELETON\r
22095 \r\fMACRO V.10                     PAGE 108\r
22096         MACRO CALL PROCESSOR\r
22097 \r
22098         005740' 370000  013405' MACEN0: SOS     MACENL\r
22099         005741' 335340  013405' MACEND: SKIPGE  C,MACENL        ;TEST "CALLM IN PROGRESS"\r
22100         005742' 350000  013405'         AOS     MACENL          ;INCREMENT END LEVEL AND EXIT\r
22101         005743' 321340  005134'         JUMPL   C,REPEA8\r
22102         005744' 250700  012600'         EXCH    MP,RP\r
22103         005745' 262700  000013          POP     MP,MRP          ;RETRIEVE READ POINTER\r
22104         005746' 262700  013411'         POP     MP,RCOUNT       ;AND WORD COUNT\r
22105         005747' 201340  000136          MOVEI   C,"^"\r
22106         005750' 331016  000000          SKIPL   0(MP)           ;TEST FLAG\r
22107         005751' 260740  001414'         PUSHJ   PP,RSW2         ;MARK END OF SUBSTITUTION\r
22108         005752' 262700  000007          POP     MP,C\r
22109         005753' 262700  000005          POP     MP,ARG\r
22110         005754' 334700  013407'         SKIPA   MP,MACPNT       ;RESET MP AND SKIP\r
22111         005755' 260740  006352' MACEN1: PUSHJ   PP,REFDEC       ;DECREMENT REFERENCE\r
22112         005756' 350300  013407' MACEN2: AOS     V,MACPNT        ;GET POINTER\r
22113         005757' 200306  000000          MOVE    V,0(V)\r
22114         005760' 327300  005755'         JUMPG   V,MACEN1        ;IF >0, DECREMENT REFERENCE\r
22115         005761' 321300  005756'         JUMPL   V,MACEN2        ;IF <0, BYPASS\r
22116         005762' 262700  000006          POP     MP,V            ;IF=0, RETRIEVE POINTER\r
22117         005763' 260740  006352'         PUSHJ   PP,REFDEC       ;DECREMENT REFERENCE\r
22118         005764' 202240  013407'         MOVEM   ARG,MACPNT\r
22119         005765' 250700  012600'         EXCH    MP,RP\r
22120         005766' 370000  013406'         SOS     MACLVL\r
22121         005767' 336000  013405'         SKIPN   MACENL          ;CHECK UNPROCESSED END LEVEL\r
22122         005770' 254000  005773'         JRST    MACEN3          ;NONE TO PROCESS\r
22123         005771' 606540  777777          TRNN    MRP,-1          ;MRP AT END OF TEXT\r
22124         005772' 254000  005740'         JRST    MACEN0          ;THEN POP THE MACRO STACK NOW\r
22125         005773' 606340  077400  MACEN3: TRNN    C,77400         ;SALL FLAG?\r
22126         005774' 505340  000000          HRLI    C,0             ;YES,TURN IT OFF\r
22127         005775' 321340  005134'         JUMPL   C,REPEA8        ;IF FLAG SET SUBSTITUTE\r
22128         005776' 254000  001412'         JRST    RSW1\r
22129 \r\fMACRO V.10                     PAGE 109\r
22130         MACRO CALL PROCESSOR\r
22131 \r
22132         005777' 336000  013406' IRP0:   SKIPN   MACLVL          ;ARE WE IN A MACRO?\r
22133         006000' 254000  003311'         JRST    ERRAX           ;NO, BOMB OUT\r
22134         006001' 260740  006322' IRP10:  PUSHJ   PP,MREADS       ;YES, GET DATA SPEC\r
22135         006002' 302340  000040          CAIE C,40               ;SKIP LEADING BLANKS\r
22136         006003' 306340  000050          CAIN    C,"("           ;"("?\r
22137         006004' 254000  006001'         JRST    IRP10           ;YES, BYPASS\r
22138         006005' 306340  000011          CAIN C,11\r
22139         006006' 254000  006001'         JRST IRP10\r
22140         006007' 302340  000177          CAIE    C,177           ;NO, IS IT SPECIAL?\r
22141         006010' 254000  003311'         JRST    ERRAX           ;NO, ERROR\r
22142         006011' 260740  006322'         PUSHJ   PP,MREADS       ;YES\r
22143         006012' 626340  000100          TRZN C,100              ;CREATED?\r
22144         006013' 254000  003311'         JRST ERRAX\r
22145         006014' 301340  000040          CAIL C,40               ;TOO BIG?\r
22146         006015' 254000  003311'         JRST ERRAX\r
22147         006016' 270340  013407'         ADD     C,MACPNT        ;NO, FORM POINTER TO STACK\r
22148         006017' 261700  013316'         PUSH    MP,IRPCF        ;STACK PREVIOUS POINTERS\r
22149         006020' 261700  013320'         PUSH    MP,IRPSW\r
22150         006021' 261700  013315'         PUSH    MP,IRPARP\r
22151         006022' 261700  013314'         PUSH    MP,IRPARG\r
22152         006023' 261700  013313'         PUSH    MP,IRPCNT\r
22153         006024' 261707  000000          PUSH    MP,0(C)\r
22154         006025' 261700  013317'         PUSH    MP,IRPPOI\r
22155 \r
22156         006026' 552340  013315'         HRRZM   C,IRPARP\r
22157         006027' 202000  013316'         MOVEM   AC0,IRPCF       ;IRPC FLAG FOUND IN AC0\r
22158         006030' 476000  013320'         SETOM   IRPSW           ;RESET IRP SWITCH\r
22159         006031' 200407  000000          MOVE    CS,0(C)\r
22160         006032' 202400  013314'         MOVEM   CS,IRPARG\r
22161 \r
22162         006033' 260740  006322'         PUSHJ   PP,MREADS\r
22163         006034' 302340  000074          CAIE    C,"<"           ;"<"?\r
22164         006035' 254000  006033'         JRST    .-2             ;NO, SEARCH UNTIL FOUND\r
22165         006036' 260740  006217'         PUSHJ   PP,SKELI1       ;INITIALIZE NEW STRING\r
22166         006037' 202240  013317'         MOVEM   ARG,IRPPOI      ;SET NEW POINTER\r
22167 \r
22168         006040' 634140  000003          TDZA    SDEL,SDEL       ;ZERO BRACKET COUNT AND SKIP\r
22169         006041' 260740  006262' IRP20:  PUSHJ   PP,WCHAR1\r
22170         006042' 260740  006322'         PUSHJ   PP,MREADS\r
22171         006043' 306340  000074          CAIN    C,"<"           ;"<"?\r
22172         006044' 344140  006041'         AOJA    SDEL,IRP20      ;YES, INCREMENT COUNT AND WRITE\r
22173         006045' 302340  000076          CAIE    C,">"           ;">"?\r
22174         006046' 254000  006041'         JRST    IRP20           ;NO, JUST WRITE IT\r
22175         006047' 365140  006041'         SOJGE   SDEL,IRP20      ;YES, WRITE IF NOT MATCHING\r
22176         006050' 200400  014257'         MOVE    CS,[BYTE (7) 15,177,4]\r
22177         006051' 260740  006272'         PUSHJ   PP,WWRXE        ;WRITE END\r
22178         006052' 261700  000013          PUSH    MP,MRP          ;STACK PREVIOUS READ POINTER\r
22179         006053' 261700  013411'         PUSH    MP,RCOUNT       ;AND WORD COUNT\r
22180         006054' 337400  013314'         SKIPG   CS,IRPARG\r
22181         006055' 254000  006135'         JRST    IRPPOP          ;EXIT IF NOT VALID ARGUMENT\r
22182         006056' 201350  000001          MOVEI   C,1(CS)         ;INITIALIZE POINTER\r
22183         006057' 202340  013314'         MOVEM   C,IRPARG\r
22184 \r\fMACRO V.10                     PAGE 110\r
22185         MACRO CALL PROCESSOR\r
22186 \r
22187         006060' 250540  013314' IRPSET: EXCH    MRP,IRPARG      ;SWAP READ POINTERS\r
22188         006061' 200200  013411'         MOVE    SX,RCOUNT       ;SWAP COUNT OF WORDS TO READ\r
22189         006062' 250200  013313'         EXCH    SX,IRPCNT\r
22190         006063' 202200  013411'         MOVEM   SX,RCOUNT\r
22191         006064' 260740  006217'         PUSHJ   PP,SKELI1       ;INITIALIZE SKELETON FOR DATA\r
22192         006065' 552260  013315'         HRRZM   ARG,@IRPARP     ;STORE NEW DS POINTER\r
22193         006066' 403200  000003          SETZB   SX,SDEL         ;ZERO FOUND FLAG AND BRACKET COUNT\r
22194         006067' 135340  000013          LDB     C,MRP           ;GET LAST CHAR\r
22195         006070' 306340  000054          CAIN    C,","\r
22196         006071' 332000  013316'         SKIPE   IRPCF           ;IN IRPC\r
22197         006072' 254000  006074'         JRST    IRPSE1          ;NO\r
22198         006073' 201200  000001          MOVEI   SX,1            ;FORCE ARGUMENT\r
22199         006074' 260740  006322' IRPSE1: PUSHJ   PP,MREADS\r
22200         006075' 302340  000177          CAIE    C,177           ;SPECIAL?\r
22201         006076' 344200  006103'         AOJA    SX,IRPSE2       ;NO, FLAG AS FOUND\r
22202         006077' 260740  006341'         PUSHJ   PP,PEEKM        ;LOOK AT NEXT CHARACTER\r
22203         006100' 402000  013320'         SETZM   IRPSW           ;SET IRP SWITCH\r
22204         006101' 327200  006116'         JUMPG   SX,IRPSE4       ;IF ARG FOUND, PROCESS IT\r
22205         006102' 254000  006135'         JRST    IRPPOP          ;NO, CLEAN UP AND EXIT\r
22206 \r
22207         006103' 332000  013316' IRPSE2: SKIPE   IRPCF           ;IRPC?\r
22208         006104' 254000  006113'         JRST    IRPSE3          ;YES, WRITE IT\r
22209         006105' 306340  000054          CAIN    C,","           ;NO, IS IT A COMMA?\r
22210         006106' 322140  006116'         JUMPE   SDEL,IRPSE4     ;YES, EXIT IF NOT NESTED\r
22211         006107' 306340  000074          CAIN    C,"<"           ;"<"?\r
22212         006110' 271140  000001          ADDI    SDEL,1          ;YES, INCREMENT COUNT\r
22213         006111' 306340  000076          CAIN    C,">"           ;">"?\r
22214         006112' 275140  000001          SUBI    SDEL,1          ;YES, DECREMENT COUNT\r
22215 \r
22216         006113' 260740  006262' IRPSE3: PUSHJ   PP,WCHAR\r
22217         006114' 336000  013316'         SKIPN   IRPCF           ;IRPC?\r
22218         006115' 254000  006074'         JRST    IRPSE1          ;NO, GET NEXT CHARACTER\r
22219 \r
22220         006116' 205400  774040  IRPSE4: MOVSI   CS,(BYTE (7) 177,2)\r
22221         006117' 260740  006272'         PUSHJ   PP,WWRXE        ;WRITE END\r
22222         006120' 202540  013314'         MOVEM   MRP,IRPARG      ;SAVE POINTER\r
22223         006121' 200540  013411'         MOVE    MRP,RCOUNT      ;SAVE COUNT\r
22224         006122' 202540  013313'         MOVEM   MRP,IRPCNT\r
22225         006123' 550540  013317'         HRRZ    MRP,IRPPOI      ;SET FOR NEW SCAN\r
22226         006124' 344540  005134'         AOJA    MRP,REPEA8      ;ON ARG COUNT\r
22227 \r\fMACRO V.10                     PAGE 111\r
22228         MACRO CALL PROCESSOR\r
22229 \r
22230         006125' 336000  013315' STOPI0: SKIPN   IRPARP          ;IRP IN PROGRESS?\r
22231         006126' 254000  003311'         JRST    ERRAX           ;NO, ERROR\r
22232         006127' 402000  013320'         SETZM   IRPSW           ;YES, SET SWITCH\r
22233         006130' 263740  000000          POPJ    PP,\r
22234 \r
22235         006131' 200320  013315' IRPEND: MOVE    V,@IRPARP\r
22236         006132' 260740  006352'         PUSHJ   PP,REFDEC\r
22237         006133' 332000  013320'         SKIPE   IRPSW           ;MORE TO COME?\r
22238         006134' 254000  006060'         JRST    IRPSET          ;YES\r
22239 \r
22240         006135' 200300  013317' IRPPOP: MOVE    V,IRPPOI\r
22241         006136' 260740  006352'         PUSHJ   PP,REFDEC       ;DECREMENT REFERENCE\r
22242         006137' 262700  013411'         POP     MP,RCOUNT\r
22243         006140' 262700  000013          POP     MP,MRP          ;RESTORE CELLS\r
22244         006141' 262700  013317'         POP     MP,IRPPOI\r
22245         006142' 262720  013315'         POP     MP,@IRPARP\r
22246         006143' 262700  013313'         POP     MP,IRPCNT\r
22247         006144' 262700  013314'         POP     MP,IRPARG\r
22248         006145' 262700  013315'         POP     MP,IRPARP\r
22249         006146' 262700  013320'         POP     MP,IRPSW\r
22250         006147' 262700  013316'         POP     MP,IRPCF\r
22251         006150' 254000  005134'         JRST    REPEA8\r
22252 \r\fMACRO V.10                     PAGE 112\r
22253         MACRO CALL PROCESSOR\r
22254 \r
22255         006151'                 GETDS:                          ;GET DUMMY SYMBOL NUMBER\r
22256         006151' 200400  000007          MOVE    CS,C            ;USE CS FOR WORK REGISTER\r
22257         006152' 405400  000037          ANDI    CS,37           ;MASK\r
22258         006153' 270400  013407'         ADD     CS,MACPNT       ;ADD BASE ADDRESS\r
22259         006154' 200310  000000          MOVE    V,0(CS)         ;GET POINTER FLAG\r
22260         006155' 327300  006203'         JUMPG   V,GETDS1        ;BRANCH IF POINTER\r
22261         006156' 606340  000040          TRNN    C,40            ;NOT POINTER, SHOULD WE CREATE?\r
22262         006157' 254000  001410'         JRST    RSW0            ;NO, FORGET THIS ARG\r
22263         006160' 261740  013410'         PUSH    PP,WWRXX\r
22264         006161' 261740  000012          PUSH    PP,MWP          ;STACK MACRO WRITE POINTER\r
22265         006162' 261740  013412'         PUSH    PP,WCOUNT       ;SAVE WORD  COUNT\r
22266         006163' 260740  006217'         PUSHJ   PP,SKELI1       ;INITIALIZE SKELETON\r
22267         006164' 202250  000000          MOVEM   ARG,0(CS)       ;STORE POINTER\r
22268         006165' 200400  014260'         MOVE    CS,[BYTE (7) 0,170,170,170,171] ;CREATE A SYMBOL\r
22269         006166' 270400  013413'         ADD     CS,LSTSYM               ;LSTSYM= # OF LAST CREATED\r
22270         006167' 630400  014261'         TDZ     CS,[BYTE (7) 0,170,170,170,170]\r
22271         006170' 202400  013413'         MOVEM   CS,LSTSYM\r
22272         006171' 434400  014262'         IOR     CS,[ASCII /.0000/]\r
22273         006172' 201340  000056          MOVEI C,"."\r
22274         006173' 260740  006262'         PUSHJ PP,WCHAR\r
22275         006174' 260740  006266'         PUSHJ   PP,WWORD        ;WRITE INTO SKELETON\r
22276         006175' 205400  774040          MOVSI   CS,(BYTE (7) 177,2)\r
22277         006176' 260740  006272'         PUSHJ   PP,WWRXE        ;WRITE END CODE\r
22278         006177' 262740  013412'         POP     PP,WCOUNT       ;RESTORE WORD COUNT\r
22279         006200' 262740  000012          POP     PP,MWP          ;RESTORE MACRO WRITE POINTER\r
22280         006201' 262740  013410'         POP     PP,WWRXX\r
22281         006202' 200300  000005          MOVE    V,ARG           ;SET UP FOR REFINC\r
22282 \r
22283         006203' 260740  006347' GETDS1: PUSHJ   PP,REFINC       ;INCREMENT REFERENCE\r
22284         006204' 504300  013411'         HRL     V,RCOUNT        ;SAVE WORD COUNT\r
22285         006205' 261700  000006          PUSH    MP,V            ;STACK V FOR DECREMENT\r
22286         006206' 261700  000013          PUSH    MP,MRP          ;STACK READ POINTER\r
22287         006207' 201546  000001          MOVEI   MRP,1(V)        ;FORM READ POINTER\r
22288         006210' 254000  001410'         JRST    RSW0            ;EXIT\r
22289 \r
22290         006211' 262700  000013  DSEND:  POP     MP,MRP\r
22291         006212' 262700  000006          POP     MP,V\r
22292         006213' 576300  013411'         HLREM   V,RCOUNT        ;RESTORE WORD COUNT\r
22293         006214' 553000  000006          HRRZS   V               ;CLEAR COUNT\r
22294         006215' 260740  006352'         PUSHJ   PP,REFDEC       ;DECREMENT REFERENCE\r
22295         006216' 254000  001410'         JRST    RSW0            ;EXIT\r
22296 \r\fMACRO V.10                     PAGE 113\r
22297         MACRO CALL PROCESSOR\r
22298 \r
22299         006217' 201240  000001  SKELI1: MOVEI   ARG,1           ;ENTRY FOR SINGLE ARG\r
22300         006220' 400500  000000  SKELI:  SETZ    MWP,            ;SIGNAL FIRST TIME THROUGH\r
22301         006221' 260740  006233'         PUSHJ   PP,SKELWL       ;GET POINTER WORD\r
22302         006222' 552500  013410'         HRRZM   MWP,WWRXX       ;SAVE FIRST ADDRESS\r
22303         006223' 552500  013000'         HRRZM   MWP,LADR        ;SAVE START OF LINKED LIST\r
22304         006224' 552252  000001          HRRZM   ARG,1(MWP)      ;STORE COUNT\r
22305         006225' 370000  013412'         SOS     WCOUNT          ;ACCOUNT FOR WORD\r
22306         006226' 550240  013410'         HRRZ    ARG,WWRXX       ;SET FIRST ADDRESS\r
22307         006227' 271500  000002          ADDI    MWP,2           ;BUMP POINTER\r
22308         006230' 505500  440700          HRLI    MWP,(POINT 7)   ;SET FOR 5 ASCII BYTES\r
22309                                         ;SKELW RETURNS WITH ADR OF NEXT FREE LOC IN V (RIGHT)\r
22310 \r
22311         006231' 373000  013412' SKELW:  SOSLE   WCOUNT          ;STILL SOME SPACE IN LEAF?\r
22312         006232' 263740  000000          POPJ    PP,             ;YES, RETURN\r
22313         006233' 332300  013041' SKELWL: SKIPE   V,NEXT          ;GET FIRST FREE ADDRESS\r
22314         006234' 254000  006243'         JRST    SKELW1          ;IF NON-ZERO, UPDATE FREE\r
22315         006235' 200300  012727'         MOVE    V,FREE          ;GET FREE\r
22316         006236' 271300  000004          ADDI    V,.LEAF         ;INCREMENT BY LEAF SIZE\r
22317         006237' 311300  013102'         CAML    V,SYMBOL        ;OVERFLOW?\r
22318         006240' 260740  010015'         PUSHJ   PP,XCEED        ;YES, BOMB OUT\r
22319         006241' 250300  012727'         EXCH    V,FREE          ;UPDATE FREE\r
22320         006242' 402006  000000          SETZM   (V)             ;CLEAR LINK\r
22321 \r
22322         006243' 500306  000000  SKELW1: HLL     V,0(V)          ;GET ADDRESS\r
22323         006244' 546300  013041'         HLRM    V,NEXT          ;UPDATE NEXT\r
22324         006245' 332000  000012          SKIPE   MWP             ;IF FIRST TIME\r
22325         006246' 506312  777775          HRLM    V,1-.LEAF(MWP)  ;STORE LINK IN FIRST WORD OF LEAF\r
22326         006247' 201500  000004          MOVEI   MWP,.LEAF       ;SIZE OF LEAF\r
22327         006250' 202500  013412'         MOVEM   MWP,WCOUNT      ;STORE FOR COUNT DOWN\r
22328         006251' 201506  000000          MOVEI   MWP,(V)         ;SET UP WRITE POINTER\r
22329         006252' 661500  160700          TLO     MWP,(POINT 7,,21)       ;2 ASCII CHARS\r
22330         006253' 263740  000000          POPJ    PP,\r
22331 \r
22332                                         ;WWRXX  POINTS TO END OF TREE\r
22333                                         ;MWP    IDPB POINTER TO NEXT HOLE\r
22334                                         ;NEXT   FIRST OF A LINKED PORTION THAT IS NOT BEING USED (LEAVES)\r
22335                                         ;FREE   POINTS TO FREE CORE BETWEEN TREE AND SYM-TABLE\r
22336                                         ;LADR   POINTS TO BEG OF LINKED PORTION.\r
22337 \r\fMACRO V.10                     PAGE 114\r
22338         MACRO CALL PROCESSOR\r
22339 \r
22340         006254' 326540  006322' GCHARQ: JUMPN   MRP,MREADS      ;IF GETTING CHAR. FROM TREE\r
22341         006255' 260740  001406' GCHAR:  PUSHJ   PP,CHARAC       ;GET ASCII CHARACTER\r
22342         006256' 307340  000014          CAIG    C,FF            ;TEST FOR LF, VT OR FF\r
22343         006257' 305340  000012          CAIGE   C,LF\r
22344         006260' 263740  000000          POPJ    PP,             ;NO\r
22345         006261' 254000  001736'         JRST    OUTIM1          ;YES, LIST IT\r
22346 \r
22347         006262'                 WCHARQ:\r
22348         006262'                 WCHAR:  \r
22349         006262' 607500  760000  WCHAR1: TLNN    MWP,760000      ;END OF WORD?\r
22350         006263' 260740  006231'         PUSHJ   PP,SKELW        ;YES, GET ANOTHER\r
22351         006264' 136340  000012          IDPB    C,MWP           ;STORE CHARACTER\r
22352         006265' 263740  000000          POPJ    PP,\r
22353 \r
22354         006266' 246340  000007  WWORD:  LSHC    C,7             ;MOVE ASCII INTO C\r
22355         006267' 260740  006262'         PUSHJ   PP,WCHAR1       ;STORE IT\r
22356         006270' 326400  006266'         JUMPN   CS,WWORD        ;TEST FOR END\r
22357         006271' 263740  000000          POPJ    PP,             ;YES, EXIT\r
22358 \r
22359         006272' 260740  006266' WWRXE:  PUSHJ   PP,WWORD        ;WRITE LAST WORD\r
22360         006273' 270500  013412'         ADD     MWP,WCOUNT      ;GET TO END OF LEAF\r
22361         006274' 275500  000004          SUBI    MWP,.LEAF       ;NOW POINT TO START OF IT\r
22362         006275' 553012  000000          HRRZS   (MWP)           ;ZERO LEFT HALF OF LAST LEAF\r
22363         006276' 542520  013410'         HRRM    MWP,@WWRXX      ;SET POINTER TO END\r
22364         006277' 263740  000000          POPJ    PP,\r
22365 \r\fMACRO V.10                     PAGE 115\r
22366         MACRO CALL PROCESSOR\r
22367 \r
22368         006300' 260740  006322' MREAD:  PUSHJ   PP,MREADS       ;READ ONE CHARACTER\r
22369         006301' 302340  000177          CAIE    C,177           ;SPECIAL?\r
22370         006302' 254000  001412'         JRST    RSW1            ;NO, EXIT\r
22371         006303' 260740  006322'         PUSHJ   PP,MREADS       ;YES, GET CODE WORD\r
22372         006304' 622340  000100          TRZE C,100              ;SYMBOL?\r
22373         006305' 254000  006151'         JRST GETDS              ;YES\r
22374         006306' 303340  000004          CAILE C,4               ;POSSIBLY ILLEGAL\r
22375         006307' 254000  003311'         JRST ERRAX              ;YUP\r
22376         006310' 541540  000000          HRRI    MRP,0           ;NO, SIGNAL END OF TEXT\r
22377         006311' 254007  006312'         JRST    .+1(C)\r
22378         006312' 260740  010015'         PUSHJ   PP,XCEED\r
22379         006313' 254000  005741'         JRST    MACEND          ;1; END OF MACRO\r
22380         006314' 254000  006211'         JRST    DSEND           ;2; END OF DUMMY SYMBOL\r
22381         006315' 254000  005136'         JRST    REPEND          ;3; END OF REPEAT\r
22382         006316' 254000  006131'         JRST    IRPEND          ;4; END OF IRP\r
22383 \r
22384         006317' 505540  000700  MREADI: HRLI    MRP,700         ;SET UP BYTE POINTER\r
22385         006320' 201340  000003          MOVEI   C,.LEAF-1       ;NUMBER OF WORDS\r
22386         006321' 202340  013411'         MOVEM   C,RCOUNT\r
22387         006322' 607540  777777  MREADS: TLNN    MRP,-1          ;FIRST TIME HERE?\r
22388         006323' 254000  006317'         JRST    MREADI          ;YES, SET UP MRP AND RCOUNT\r
22389         006324' 607540  760000          TLNN    MRP,760000      ;HAVE WE FINISHED WORD?\r
22390         006325' 373000  013411'         SOSLE   RCOUNT          ;YES, STILL ROOM IN LEAF?\r
22391         006326' 254000  006333'         JRST    MREADC          ;STILL CHAR. IN LEAF\r
22392         006327' 554553  777775          HLRZ    MRP,1-.LEAF(MRP);YES, GET LINK\r
22393         006330' 505540  160700          HRLI    MRP,(POINT 7,,21)       ;SET POINTER\r
22394         006331' 201340  000004          MOVEI   C,.LEAF         ;RESET COUNT\r
22395         006332' 202340  013411'         MOVEM   C,RCOUNT\r
22396         006333' 134340  000013  MREADC: ILDB    C,MRP           ;GET CHARACTER\r
22397         006334' 263740  000000          POPJ    PP,\r
22398 \r
22399         006335' 326540  006341' PEEK:   JUMPN   MRP,PEEKM       ;THIS IS A MACRO READ\r
22400         006336' 260740  001406'         PUSHJ   PP,CHARAC       ;READ AN ASCII CHAR.\r
22401         006337' 661600  000004          TLO     IO,IORPTC       ;REPEAT  FOR NEXT\r
22402         006340' 263740  000000          POPJ    PP,             ;AND RETURN\r
22403 \r
22404         006341' 261740  000013  PEEKM:  PUSH    PP,MRP          ;SAVE MACRO READ POINTER\r
22405         006342' 261740  013411'         PUSH    PP,RCOUNT       ;SAVE WORD COUNT\r
22406         006343' 260740  006322'         PUSHJ   PP,MREADS       ;READ IN A CHAR.\r
22407         006344' 262740  013411'         POP     PP,RCOUNT       ;RESTORE WORD COUNT\r
22408         006345' 262740  000013          POP     PP,MRP          ;RESET READ POINTER\r
22409         006346' 263740  000000          POPJ    PP,             ;IORPTC IS NOT SET\r
22410 \r\fMACRO V.10                     PAGE 116\r
22411         MACRO CALL PROCESSOR\r
22412 \r
22413         006347' 201406  000001  REFINC: MOVEI   CS,1(V)         ;GET POINTER TO TREE\r
22414         006350' 350010  000000          AOS     0(CS)           ;INCREMENT REFERENCE\r
22415         006351' 263740  000000          POPJ    PP,\r
22416 \r
22417         006352' 323300  006364' REFDEC: JUMPLE  V,DECERR        ;CATASTROPHIC ERROR SOMEWHERE\r
22418         006353' 201406  000001          MOVEI   CS,1(V)         ;GET POINTER TO TREE\r
22419         006354' 370410  000000          SOS     CS,0(CS)        ;DECREMENT REFERENCE\r
22420         006355' 602400  000777          TRNE    CS,000777       ;IS IT ZERO?\r
22421         006356' 263740  000000          POPJ    PP,             ;NO, EXIT\r
22422         006357' 550406  000000          HRRZ    CS,0(V)         ;YES, GET POINTER TO END\r
22423         006360' 504400  013041'         HRL     CS,NEXT         ;GET POINTER TO NEXT RE-USABLE\r
22424         006361' 502410  000000          HLLM    CS,0(CS)        ;SET LINK\r
22425         006362' 542300  013041'         HRRM    V,NEXT          ;RESET NEXT\r
22426         006363' 263740  000000          POPJ    PP,\r
22427 \r
22428         006364' 200000  013276' DECERR: MOVE    AC0,CALNAM      ;GET MACRO NAME\r
22429         006365' 205440  014263'         MOVSI   RC,[SIXBIT /ERROR WHILE EXPANDING@/]\r
22430         006366' 260740  007757'         PUSHJ   PP,TYPMSG\r
22431         006367' 254000  007656'         JRST    ERRNE2          ;COMMON MESSAGE\r
22432 \r\fMACRO V.10                     PAGE 117\r
22433         MACRO CALL PROCESSOR\r
22434 \r
22435                         000000  A==     0                       ;ASCII MODE\r
22436                         000001  AL==    1                       ;ASCII LINE MODE\r
22437                         000013  IB==    13                      ;IMAGE BINARY MODE\r
22438                         000014  B==     14                      ;BINARY MODE\r
22439                         000016  DMP==16         ;DUMP MODE\r
22440 \r
22441                         000000  CTL==   0                       ;CONTROL DEVICE NUMBER\r
22442                         000004  IFN CCLSW,<CTL2==4              ;INPUT DEV FOR CCL FILE>\r
22443                         000001  BIN==   1                       ;BINARY DEVICE NUMBER\r
22444                         000002  CHAR==  2                       ;INPUT DEVICE NUMBER\r
22445                         000003  LST==   3                       ;LISTING DEVICE NUMBER\r
22446 \r
22447                                 ;       COMMAND STRING ACCUMULATORS\r
22448 \r
22449                         000001  ACDEV== 1                       ;DEVICE\r
22450                         000002  ACFILE==2                       ;FILE\r
22451                         000003  ACEXT== 3                       ;EXTENSION\r
22452                         000004  ACPPN== 4                       ;PPN\r
22453                         000004  ACDEL== 4                       ;DELIMITER\r
22454                         000005  ACPNTR==5                       ;BYTE POINTER\r
22455 \r
22456                         000006  TIO==   6\r
22457 \r
22458                         001000  TIORW== 1000\r
22459                         002000  TIOLE== 2000\r
22460                         020000  TIOCLD==20000\r
22461 \r
22462                         000004  DIRBIT==4               ;DIRECTORY DEVICE\r
22463                         000010  TTYBIT==10              ;TTY\r
22464                         000020  MTABIT==20              ;MTA\r
22465                         000100  DTABIT==100             ;DTA\r
22466                         002000  DISBIT==2000            ;DISPLAY\r
22467                         020000  CONBIT==20000           ;CONTROLING TTY\r
22468                         040000  LPTBIT==40000           ;LPT\r
22469                         200000  DSKBIT==200000          ;DSK\r
22470 \r
22471                                 ;GETSTS ERROR BITS\r
22472 \r
22473                         400000  IOIMPM==400000          ;IMPROPER MODE (WRITE LOCK)\r
22474                         200000  IODERR==200000          ;DEVICE DATA ERROR\r
22475                         100000  IODTER==100000          ;CHECKSUM OR PARITY ERROR\r
22476                         040000  IOBKTL== 40000          ;BLOCK TOO LARGE\r
22477                         740000  ERRBIT==IOIMPM!IODERR!IODTER!IOBKTL\r
22478 \r
22479                                 SYN     .TEMP,PPN\r
22480 \r\fMACRO V.10                     PAGE 118\r
22481         I/O ROUTINES\r
22482 \r
22483                                 SUBTTL  I/O ROUTINES\r
22484         006370'                 BEG:\r
22485         006370' 625600  100000  IFN CCLSW,<TLZA IO,ARPGSW       ;DON'T ALLOW RAPID PROGRAM GENERATION\r
22486         006371' 661600  100000          TLO     IO,ARPGSW       ;ALLOW RAPID PROGRAM GENERATION>\r
22487         006372' 550540  005016*         HRRZ    MRP,JOBREL      ;GET LOWSEG SIZE\r
22488         006373' 202540  013433'         MOVEM   MRP,MACSIZ      ;SAVE CORE SIZE\r
22489                                                                 ;DECODE VERSION NUMBER\r
22490         006374' 201740  013434'         MOVEI   PP,JOBFFI       ;TEMP PUSH DOWN STACK\r
22491         006375' 261740  014100'         PUSH    PP,[0]          ;MARK BOTTOM OF STACK\r
22492         006376' 135000  014267'         LDB     0,[POINT 3,JOBVER,2]    ;GET USER BITS\r
22493         006377' 322000  006404'         JUMPE   0,GETE          ;NOT SET IF ZERO\r
22494         006400' 271000  000060          ADDI    0,"0"           ;FORM NUMBER\r
22495         006401' 261740  000000          PUSH    PP,0            ;STACK IT\r
22496         006402' 201000  000055          MOVEI   0,"-"           ;SEPARATE BY HYPHEN\r
22497         006403' 261740  000000          PUSH    PP,0            ;STACK IT ALSO\r
22498         006404' 550000  000137  GETE:   HRRZ    0,JOBVER        ;GET EDIT NUMBER\r
22499         006405' 322000  006416'         JUMPE   0,GETU          ;SKIP ALL THIS IF ZERO\r
22500         006406' 201040  000051          MOVEI   1,")"           ;ENCLOSE IN PARENS.\r
22501         006407' 261740  000001          PUSH    PP,1\r
22502         006410' 231000  000010  GETED:  IDIVI   0,8             ;GET OCTAL DIGITS\r
22503         006411' 271040  000060          ADDI    1,"0"           ;MAKE ASCII\r
22504         006412' 261740  000001          PUSH    PP,1            ;STACK IT\r
22505         006413' 326000  006410'         JUMPN   0,GETED         ;LOOP TIL DONE\r
22506         006414' 201000  000050          MOVEI   0,"("           ;OTHER PAREN.\r
22507         006415' 261740  000000          PUSH    PP,0\r
22508         006416' 135000  014270' GETU:   LDB     0,[POINT 6,JOBVER,17]   ;UPDATE NUMBER\r
22509         006417' 322000  006424'         JUMPE   0,GETV          ;SKIP IF ZERO\r
22510         006420' 231000  000010          IDIVI   0,8             ;MIGHT BE TWO DIGITS\r
22511         006421' 271040  000100          ADDI    1,"@"           ;FORM ALPHA\r
22512         006422' 261740  000001          PUSH    PP,1\r
22513         006423' 326000  006417'         JUMPN   0,GETU+1        ;LOOP IF NOT DONE\r
22514         006424' 135000  014271' GETV:   LDB     0,[POINT 9,JOBVER,11]   ;GET VERSION NUMBER\r
22515         006425' 231000  000010          IDIVI   0,8             ;GET DIGIT\r
22516         006426' 271040  000060          ADDI    1,"0"           ;TO ASCII\r
22517         006427' 261740  000001          PUSH    PP,1            ;STACK\r
22518         006430' 326000  006425'         JUMPN   0,GETV+1        ;LOOP\r
22519         006431' 200040  014272'         MOVE    1,[POINT 7,VBUF+1,13]   ;POINTER TO DEPOSIT IN VBUF\r
22520         006432' 262740  000000          POP     PP,0            ;GET CHARACTER\r
22521         006433' 136000  000001          IDPB    0,1             ;DEPOSIT IT\r
22522         006434' 326000  006432'         JUMPN   0,.-2           ;KEEP GOING IF NOT ZERO\r
22523 \r\fMACRO V.10                     PAGE 119\r
22524         I/O ROUTINES\r
22525 \r
22526                                 IFN CCLSW,<\r
22527         006435' 625600  001000          TLZA    IO,CRPGSW       ;SET TO INIT NEW COMMAND FILE\r
22528         006436' 607600  001000  M:      TLNN    IO,CRPGSW       ;CURRENTLY DOING RPG?>\r
22529                                 IFE CCLSW,<M:>\r
22530         006437' 047000  000000          RESET                   ;INITIALIZE PROGRAM\r
22531         006440' 402000  012550'         SETZM   BINDEV          ;CLEAR INCASE NOT USED NEXT TIME\r
22532         006441' 402000  012553'         SETZM   LSTDEV          ;SAME REASON\r
22533         006442' 402000  012564'         SETZM   INDEV           ;INCASE OF ERROR\r
22534         006443' 550540  013433'         HRRZ    MRP,MACSIZ      ;GET INITIAL SIZE\r
22535         006444' 047540  000011          CORE    MRP,            ;BACK TO ORIGINAL SIZ4\r
22536         006445' 255000  000000          JFCL                    ;SHOULD NEVER FAIL\r
22537         006446' 403540  012600'         SETZB   MRP,PASS1I\r
22538         006447' 200000  014273'         MOVE    [XWD PASS1I,PASS1I+1]\r
22539         006450' 251000  013415'         BLT     PASS2X-1        ;ZERO THE PASS1 AND PASS2 VARIABLES\r
22540         006451' 201740  013434'         MOVEI   PP,JOBFFI       ;SET TEMP PUSH-DOWN POINTER\r
22541                                 ;       MOVE    CS,[POINT 7,DBUF,6]     ;INITIALIZE FOR DATE\r
22542                                 ;       MSTIME  2,              ;GET TIME FROM MONITOR\r
22543                                 ;       PUSHJ   PP,TIMOUT       ;TIME FORMAT OUTPUT\r
22544                                 ;       DATE    1,              ;GET DATE\r
22545                                 ;       IBP     CS              ;PASS OVER PRESET SPACE\r
22546                                 ;       PUSHJ   PP,DATOUT       ;DATE FORMAT OUTPUT\r
22547         006452' 205640  402000          MOVSI   FR,P1!CREFSW\r
22548         006453' 603600  001000  IFN CCLSW,<TLNE IO,CRPGSW       ;RPG IN PROGRESS?\r
22549         006454' 254000  006540'         JRST    GOSET           ;YES, GO READ NEXT COMMAND\r
22550         006455' 603600  100000          TLNE    IO,ARPGSW       ;NO, RPG ALLOWED?\r
22551         006456' 254000  006501'         JRST    RPGSET          ;YES, GO TRY\r
22552         006457' 071200  000000  CTLSET: RELEASE CTL2,           ;IN CASE OF LOOKUP FAILURE>\r
22553                                 IFE CCLSW,<CTLSET:>\r
22554         006460' 205600  004000          MOVSI   IO,IOPALL       ;ZERO FLAGS\r
22555         006461' 041000  000001          INIT    CTL,AL          ;INITIALIZE USER CONSOLE\r
22556         006462' 646471  000000          SIXBIT  /TTY/\r
22557         006463' 013430' 013425'         XWD     CTOBUF,CTIBUF\r
22558         006464' 047000  000012          EXIT                    ;NO TTY, NO ASSEMBLY\r
22559         006465' 205340  646471          MOVSI   C,(SIXBIT /TTY/)\r
22560         006466' 047340  000004          DEVCHR  C,              ;GET CHARACTERISTICS\r
22561         006467' 607340  000010          TLNN    C,10            ;IS IT REALLY A TTY\r
22562         006470' 047000  000012          EXIT                    ;NO\r
22563         006471' 064000  000001          INBUF   CTL,1           ;INITIALIZE SINGLE CONTROL\r
22564         006472' 065000  000001          OUTBUF  CTL,1           ;BUFFERS\r
22565         006473' 260740  007765'         PUSHJ   PP,CRLF         ;OUTPUT CARRIAGE RETURN - LINE FEED\r
22566         006474' 201340  000052          MOVEI   C,"*"\r
22567         006475' 136340  013431'         IDPB    C,CTOBUF+1\r
22568         006476' 067000  000000          OUTPUT  CTL,\r
22569         006477' 066000  000000          INPUT   CTL,\r
22570 \r\fMACRO V.10                     PAGE 120\r
22571         I/O ROUTINES\r
22572 \r
22573         006500' 254000  006620' IFN CCLSW,<JRST BINSET          ;BEGIN WITH BINARY FILE\r
22574 \r
22575         006501'                 RPGSET:\r
22576         006501' 041200  000001          INIT    CTL2,AL         ;LOOK FOR DISK\r
22577         006502' 446353  000000          SIXBIT  /DSK/           ;...\r
22578         006503' 000000  013422'         XWD     0,CTLBLK        ;...\r
22579         006504' 254000  006457'         JRST    CTLSET          ;DSK NOT THERE\r
22580 \r
22581         006505' 515140  554143          HRLZI   3,(SIXBIT /MAC/)        ;###MAC\r
22582         006506' 201000  000003          MOVEI   3                       ;COUNT\r
22583         006507' 047040  000030          PJOB    AC1,                    ;RETURNS JOB NO. TO AC1\r
22584         006510' 231040  000012  RPGLUP: IDIVI   AC1,12                  ;CONVERT\r
22585         006511' 271100  000020          ADDI    AC2,"0"-40              ;SIXBITIZE IT\r
22586         006512' 246100  777772          LSHC    AC2,-6                  ;\r
22587         006513' 367000  006510'         SOJG    0,RPGLUP                ;3 TIMES\r
22588         006514' 202140  012601'         MOVEM   3,CTLBUF                ;###MAC\r
22589         006515' 515000  645560          HRLZI   (SIXBIT /TMP/)          ;\r
22590         006516' 202000  012602'         MOVEM   CTLBUF+1                ;TMP\r
22591         006517' 402000  012604'         SETZM   CTLBUF+3                ;PROG-PRO\r
22592         006520' 076200  012601'         LOOKUP  CTL2,CTLBUF             ;COMMAND FILE\r
22593         006521' 254000  006457'         JRST    CTLSET                  ;NOT THERE\r
22594         006522' 546000  013420'         HLRM    EXTMP                   ;SAVE THE EXTENSION\r
22595 \r
22596         006523' 064200  000001  RPGS2:  INBUF   CTL2,1          ;SINGLE BUFFERED\r
22597         006524' 041000  000001  RPGS2A: INIT    CTL,AL          ;TTY FOR CONSOLE MESSAGES\r
22598         006525' 646471  000000          SIXBIT  /TTY/           ;...\r
22599         006526' 013430' 000000          XWD     CTOBUF,0        ;...\r
22600         006527' 047000  000012          EXIT                    ;NO TTY, NO ASSEMBLY\r
22601         006530' 065000  000001          OUTBUF  CTL,1           ;SINGLE BUFFERED\r
22602         006531' 200000  000000*         MOVE    JOBFF           ;REMEMBER WHERE BINARY BUFFERS BEGIN\r
22603         006532' 202000  013421'         MOVEM   SAVFF           ;...\r
22604         006533' 550000  006372*         HRRZ    JOBREL          ;TOP OF CORE\r
22605         006534' 313000  013433'         CAMLE   MACSIZ          ;SEE IF IT HAS GROWN\r
22606         006535' 202000  013433'         MOVEM   MACSIZ          ;PREVENTS ADDRESS CHECK ON EXIT\r
22607         006536' 603600  001000          TLNE IO,CRPGSW  ;ARE WE ALREADY IN RPG MODE?\r
22608         006537' 254000  006436'         JRST M  ;MUST HAVE COME FROM @ COMMAND, RESET\r
22609 \r
22610 \r\fMACRO V.10                     PAGE 121\r
22611         I/O ROUTINES\r
22612 \r
22613         006540' 205600  005000  GOSET:  MOVSI   IO,IOPALL!CRPGSW        ;SET INITIAL FLAGS\r
22614         006541' 201400  000310          MOVEI   CS,CTLSIZ       ;MAXIMUM CHARS IN A LINE\r
22615         006542' 200040  013424'         MOVE    AC1,CTLBLK+2    ;NUMBER OF CHARACTERS\r
22616         006543' 202040  013427'         MOVEM   AC1,CTIBUF+2    ;SAVE FOR PASS 2\r
22617         006544' 200040  014274'         MOVE    AC1,[POINT 7,CTLBUF]    ;WHERE TO STASH CHARS\r
22618         006545' 202040  013426'         MOVEM   AC1,CTIBUF+1    ;...\r
22619         006546' 377000  013424' GOSET1: SOSG    CTLBLK+2        ;ANY MORE CHARS?\r
22620                                         PUSHJ   PP,[IN CTL2,            ;READ ANOTHER BUFFERFUL\r
22621                                                    POPJ PP,             ;EVERYTHING OK, RETURN\r
22622                                                    STATO CTL2,20000     ;EOF?\r
22623                                                    JRST [HRROI RC,[SIXBIT /ERROR READING COMMAND FILE@/]\r
22624                                                         JRST ERRFIN]            ;GO COMPLAIN\r
22625                                                    PUSHJ PP,DELETE      ;CMD FILE\r
22626         006547' 260740  014304'                    EXIT]                ;EOF AND FINISHED\r
22627         006550' 134340  013423'         ILDB    C,CTLBLK+1      ;GET NEXT CHAR\r
22628         006551' 200460  013423'         MOVE    RC,@CTLBLK+1    ;CHECK FOR SEQUENCE NUMBERS\r
22629         006552' 602440  000001          TRNE    RC,1            ;...\r
22630                                         JRST    [AOS    CTLBLK+1        ;SKIP OVER ANOTHER 5 CHARS\r
22631                                                 MOVNI   RC,5            ;...\r
22632                                                 ADDM    RC,CTLBLK+2     ;...\r
22633         006553' 254000  014312'                 JRST    GOSET1  ]       ;GO READ ANOTHER CHAR\r
22634         006554' 322340  006546'         JUMPE   C,GOSET1        ;IGNORE NULLS\r
22635         006555' 136340  013426'         IDPB    C,CTIBUF+1      ;STASH AWAY\r
22636         006556' 350000  013427'         AOS     CTIBUF+2        ;INCREMENT CHAR. COUNT\r
22637         006557' 302340  000012          CAIE    C,12            ;LINE FEED OR\r
22638         006560' 306340  000175          CAIN    C,175           ;ALTMODE?\r
22639         006561' 254000  006570'         JRST    GOSET2          ;YES, FINISHED WITH COMMAND\r
22640         006562' 302340  000176          CAIE    C,176\r
22641         006563' 306340  000033          CAIN    C,33\r
22642         006564' 254000  006570'         JRST    GOSET2          ;ALTMODE.\r
22643         006565' 367400  006546'         SOJG    CS,GOSET1       ;GO READ ANOTHER\r
22644         006566' 561440  014316'         HRROI   RC,[SIXBIT /COMMAND LINE TOO LONG@/]\r
22645         006567' 254000  007714'         JRST    ERRFIN          ;GO COMPLAIN\r
22646         006570' 201340  000012  GOSET2: MOVEI   C,12            ;MAKE SURE THERE'S A LF\r
22647         006571' 136340  013426'         IDPB    C,CTIBUF+1      ;...\r
22648         006572' 202040  013426'         MOVEM   AC1,CTIBUF+1    ;SET POINTER TO BEGINNING\r
22649         006573' 350000  013427'         AOS     CTIBUF+2        ;ADD I TO COUNT\r
22650         006574' 200000  013421'         MOVE    SAVFF           ;RESET JOBFF FOR NEW BINARY\r
22651         006575' 202000  006531*         MOVEM   JOBFF           ;...\r
22652         006576' 254000  006620'         JRST BINSET\r
22653 \r\fMACRO V.10                     PAGE 122\r
22654         I/O ROUTINES\r
22655 \r
22656 \r
22657         006577' 260740  000066' RPGS1:  PUSHJ   PP,DELETE       ;DELETE COMMAND FILE\r
22658         006600' 202040  012561'         MOVEM   ACDEV,RPGDEV    ;GET SET TO INIT\r
22659         006601' 050200  012560'         OPEN    CTL2,RPGINI     ;DO IT\r
22660         006602' 254000  007700'         JRST    EINIT           ;ERROR\r
22661         006603' 202100  012673'         MOVEM   ACFILE,INDIR    ;USE INPUT BLOCK\r
22662         006604' 202200  012676'         MOVEM   ACPPN,INDIR+3   ;SET PPN \r
22663         006605' 202140  012674'         MOVEM   ACEXT,INDIR+1\r
22664         006606' 076200  012673'         LOOKUP  CTL2,INDIR\r
22665                                         JRST    [JUMPN  ACEXT,RPGLOS    ;GIVE UP ,EXPLICIT EXTENSION\r
22666                                         MOVSI   ACEXT,(SIXBIT /CCL/)    ;IF BLANK TRY CCL\r
22667         006607' 254000  014322'                 JRST    .-2     ]\r
22668         006610' 546140  013420'         HLRM    ACEXT,EXTMP     ;SAVE THE EXTENSION\r
22669         006611' 554000  000062*         HLRZ    JOBSA           ;RESET JOBFF TO ORIGINAL\r
22670         006612' 202000  006575*         MOVEM   JOBFF\r
22671         006613' 661600  001000          TLO     IO,CRPGSW       ;TURN ON SWITCH SO WE RESET WORLD\r
22672         006614' 254000  006523'         JRST    RPGS2           ;AND GO\r
22673         006615' 071200  000000  RPGLOS: RELEAS  CTL2,0\r
22674         006616' 621600  001000          TLZ     IO,CRPGSW       ;STOPS IO TO UNASGD CHAN\r
22675         006617' 254000  007707'         JRST    ERRCF           ;NO FILE FOUND\r
22676                                 >\r
22677 \r\fMACRO V.10                     PAGE 123\r
22678         I/O ROUTINES\r
22679 \r
22680         006620' 260740  007215' BINSET: PUSHJ   PP,NAME1        ;GET FIRST NAME\r
22681         006621' 306340  000041  IFN CCLSW,<CAIN C,"!"           ;WAS THIS AN IMPERATIVE?\r
22682         006622' 254000  000017'         JRST    NUNSET          ;GET THEE TO A NUNNERY\r
22683         006623' 306340  000100          CAIN C,"@"      ;CHEK FOR A NEW RPG FILE\r
22684         006624' 254000  006577'         JRST RPGS1>\r
22685         006625' 607640  002000          TLNN    FR,CREFSW       ;CROSS REF REQUESTED?\r
22686         006626' 254000  006666'         JRST    LSTSE1          ;YES, SKIP BINARY\r
22687         006627' 306340  000054          CAIN    C,","           ;COMMA?\r
22688         006630' 322040  006665'         JUMPE   ACDEV,LSTSET    ;YES, SKIP BINARY IF NO DEVICE SPECIFIED\r
22689         006631' 306340  000137          CAIN    C,"_"           ;LEFT ARROW?\r
22690         006632' 322040  006666'         JUMPE   ACDEV,LSTSE1    ;YES, SKIP BINARY IF NO DEVICE SPECIFIED\r
22691         006633' 322040  006436'         JUMPE   ACDEV,M         ;IGNORE IF JUST <CR-LF>\r
22692         006634' 661640  001000          TLO     FR,PNCHSW       ;OK, SET SWITCH\r
22693         006635' 202040  012550'         MOVEM   ACDEV,BINDEV    ;STORE DEVICE NAME\r
22694         006636' 202100  012667'         MOVEM   ACFILE,BINDIR   ;STORE FILE NAME IN DIRECTORY\r
22695         006637' 326140  006641'         JUMPN   ACEXT,.+2       ;EXTENSION SPECIFIED?\r
22696         006640' 205140  624554          MOVSI   ACEXT,(SIXBIT /REL/)    ;NO, ASSUME RELOCATABLE BINARY\r
22697         006641' 202140  012670'         MOVEM   ACEXT,BINDIR+1  ;STORE IN DIRECTORY\r
22698         006642' 202200  012672'         MOVEM   ACPPN,BINDIR+3  ;SET PPN\r
22699         006643' 050040  012547'         OPEN    BIN,BININI      ;INITIALIZE BINARY\r
22700         006644' 254000  007700'         JRST    EINIT           ;ERROR\r
22701         006645' 623300  002000          TLZE TIO,TIOLE          ;SKIP TO EOT\r
22702         006646' 072040  000010          MTAPE BIN,10\r
22703         006647' 623300  001000          TLZE    TIO,TIORW       ;REWIND REQUESTED?\r
22704         006650' 072040  000001          MTAPE   BIN,1           ;YES\r
22705         006651' 325400  006657'         JUMPGE  CS,BINSE2       ;BRANCH IF NO BACK-SPACE\r
22706         006652' 072040  000017          MTAPE   BIN,17          ;BACK-SPACE A FILE\r
22707         006653' 341400  006652'         AOJL    CS,.-1          ;TEST FOR END\r
22708         006654' 072040  000000          WAIT    BIN,\r
22709         006655' 061040  004000          STATO   BIN,1B24        ;LOAD POINT?\r
22710         006656' 072040  000016          MTAPE   BIN,16          ;NO, GO FORWARD ONE\r
22711         006657' 367400  006656' BINSE2: SOJG    CS,.-1          ;TEST FORWARD SPACING\r
22712 \r
22713         006660' 603300  020000          TLNE    TIO,TIOCLD      ;DIRECTORY CLEAR REQUESTED?\r
22714         006661' 047040  000013          UTPCLR  BIN,            ;YES, CLEAR IT\r
22715         006662' 065040  000002          OUTBUF  BIN,2           ;SET UP TWO RING BUFFER\r
22716         006663' 306340  000137          CAIN    C,"_"\r
22717         006664' 254000  006740'         JRST    GETSET          ;NO LISTING\r
22718 \r\fMACRO V.10                     PAGE 124\r
22719         I/O ROUTINES\r
22720 \r
22721         006665' 260740  007215' LSTSET: PUSHJ   PP,NAME1        ;GET NEXT DEVICE\r
22722         006666' 302340  000137  LSTSE1: CAIE    C,"_"\r
22723         006667' 254000  007321'         JRST    ERRCM\r
22724         006670' 603640  002000          TLNE    FR,CREFSW       ;CROSS-REF REQUESTED?\r
22725         006671' 254000  006700'         JRST    LSTSE2          ;NO, BRANCH\r
22726         006672' 326040  006674'         JUMPN   ACDEV,.+2       ;YES, WAS DEVICE SPECIFIED?\r
22727         006673' 205040  446353          MOVSI   ACDEV,(SIXBIT /DSK/)    ;NO, ASSUME DSK\r
22728         006674' 326100  006676'         JUMPN   ACFILE,.+2\r
22729         006675' 200100  014325'         MOVE    ACFILE,[SIXBIT /CREF/]\r
22730         006676' 326140  006700'         JUMPN   ACEXT,.+2\r
22731         006677' 205140  436246  MOVSI   ACEXT,(SIXBIT /CRF/)   \r
22732         006700' 322040  006740' LSTSE2: JUMPE   ACDEV,GETSET    ;FORGET LISTING IF NO DEVICE SPECIFIED\r
22733         006701' 200000  000001          MOVE    AC0,ACDEV\r
22734         006702' 047000  000004          DEVCHR  AC0,            ;GET CHARACTERISTICS\r
22735         006703' 603000  042010          TLNE    AC0,LPTBIT!DISBIT!TTYBIT\r
22736         006704' 603640  002000          TLNE    FR,CREFSW       ; WAS CROSS-REF REQUESTED?\r
22737         006705' 354000  013042'         AOSA    OUTSW+0*TTYSW   ;NO, ASSUME TTY\r
22738         006706' 254000  007321'         JRST    ERRCM           ;YES, ERROR - CREF DEV MUST NOT BE LPT, DIS, OR TTY\r
22739         006707' 603000  020000          TLNE    AC0,CONBIT      ;CONTROLING TELETYPE LISTING?\r
22740         006710' 254000  006740'         JRST    GETSET          ;YES, BUFFER ALREADY SET\r
22741         006711' 202040  012553'         MOVEM   ACDEV,LSTDEV    ;STORE DEVICE NAME\r
22742         006712' 350000  013042'         AOS     OUTSW+0*LPTSW   ;SET FOR LPT\r
22743         006713' 202100  012663'         MOVEM   ACFILE,LSTDIR   ;STORE FILE NAME\r
22744         006714' 326140  006716'         JUMPN   ACEXT,.+2\r
22745         006715' 205140  546364          MOVSI   ACEXT,(SIXBIT /LST/)\r
22746         006716' 202140  012664'         MOVEM   ACEXT,LSTDIR+1\r
22747         006717' 202200  012666'         MOVEM   ACPPN,LSTDIR+3  ;SET PPN\r
22748         006720' 050140  012552'         OPEN    LST,LSTINI      ;INITIALIZE LISTING OUTPUT\r
22749         006721' 254000  007700'         JRST    EINIT           ;ERROR\r
22750         006722' 623300  002000          TLZE TIO,TIOLE\r
22751         006723' 072140  000010          MTAPE LST,10\r
22752         006724' 623300  001000          TLZE    TIO,TIORW       ;REWIND REQUESTED?\r
22753         006725' 072140  000001          MTAPE   LST,1           ;YES\r
22754         006726' 325400  006734'         JUMPGE  CS,LSTSE3\r
22755         006727' 072140  000017          MTAPE   LST,17\r
22756         006730' 341400  006727'         AOJL    CS,.-1\r
22757         006731' 072140  000000          WAIT    LST,\r
22758         006732' 061140  004000          STATO   LST,1B24\r
22759         006733' 072140  000016          MTAPE   LST,16\r
22760         006734' 367400  006733' LSTSE3: SOJG    CS,.-1\r
22761         006735' 603300  020000          TLNE    TIO,TIOCLD      ;DIRECTORY CLEAR REQUESTED?\r
22762         006736' 047140  000013          UTPCLR  LST,            ;YES, CLEAR IT\r
22763         006737' 065140  000002          OUTBUF  LST,2           ;SET UP A TWO RING BUFFER\r
22764 \r\fMACRO V.10                     PAGE 125\r
22765         I/O ROUTINES\r
22766 \r
22767         006740' 201140  010037' GETSET: MOVEI   3,PDPERR\r
22768         006741' 542140  000000*         HRRM    3,JOBAPR        ;SET TRAP LOCATION\r
22769         006742' 201140  200000          MOVEI   3,1B19          ;SET FOR PUSH-DOWN OVERFLOW\r
22770         006743' 047140  000016          APRENB  3,\r
22771         006744' 370140  013043'         SOS     3,PDP           ;GET PDP REQUEST MINUS 1\r
22772         006745' 221140  000062          IMULI   3,.PDP          ;COMPUTE SIZE (50*<NUMBER OF /P'S +1>)\r
22773         006746' 514700  000003          HRLZ    MP,3\r
22774         006747' 540700  006612*         HRR     MP,JOBFF        ;SET BASIC POINTER\r
22775         006750' 200740  000016          MOVE    PP,MP\r
22776         006751' 274740  000003          SUB     PP,3\r
22777         006752' 202740  012600'         MOVEM   PP,RP           ;SET RP\r
22778         006753' 274740  000003          SUB     PP,3\r
22779         006754' 240140  000001          ASH     3,1             ;DOUBLE SIZE OF BASIC POINTER\r
22780         006755' 504740  000003          HRL     PP,3\r
22781         006756' 276740  000003          SUBM    PP,3            ;COMPUTE TOP LOCATION\r
22782                                 IFN UNIVR,<SKIPN        UNITOP          ;IF ANY UNIVERSALS HAVE BEEN SEEN\r
22783                                         JRST    GETSE0          ;NO\r
22784                                         HRRZS   3               ;GET TOP OF BUFFERS AND STACKS\r
22785                                         CAMLE   3,UNISIZ        ;HOPE ITS NOT BIGGER THAN UNIVERSAL ONE\r
22786                                         JRST    UNIERR          ;IT WAS, YOU LOSE\r
22787                                         SKIPA   3,UNITOP        ;DON'T LOSE THEM\r
22788                                 GETSE0: HRRZM   3,UNISIZ        ;STORE UNTIL A UNIVERSAL IS SEEN>\r
22789         006757' 552140  013000'         HRRZM   3,LADR          ;SET START OF MACRO TREE\r
22790         006760' 552140  012727'         HRRZM   3,FREE\r
22791 \r
22792         006761' 550000  006533* GETSE1: HRRZ    JOBREL\r
22793         006762' 275000  000001          SUBI    1\r
22794         006763' 202000  013103'         MOVEM   SYMTOP          ;SET TOP OF SYMBOL TABLE\r
22795         006764' 275000  000004          SUBI    LENGTH          ;SET POINTER FOR INITIAL SYMBOLS\r
22796         006765' 313000  013000'         CAMLE   LADR            ;HAVE WE ROOM?\r
22797         006766' 254000  006774'         JRST    GETSE2          ;YES\r
22798 \r
22799         006767' 550100  006761*         HRRZ    2,JOBREL        ;NO, TRY FOR MORE CORE\r
22800         006770' 271100  002000          ADDI    2,2000\r
22801         006771' 047100  000011          CORE    2,\r
22802         006772' 254000  010035'         JRST    XCEED2  ;NO MORE, INFORM USER\r
22803         006773' 254000  006761'         JRST    GETSE1          ;TRY AGAIN\r
22804 \r
22805         006774' 202000  013102' GETSE2: MOVEM   SYMBOL          ;SET START OF SYMBOL TABLE\r
22806         006775' 505000  011713'         HRLI    SYMNUM\r
22807         006776' 251020  013103'         BLT     @SYMTOP         ;STORE SYMBOLS\r
22808         006777' 260740  012455'         PUSHJ   PP,SRCHI        ;INITIALIZE TABLE\r
22809         007000' 200000  014326'         MOVE    [XWD CTIBUF+1,CTLSAV]   ;SAVE CONTROL INPUT BUFFER\r
22810         007001' 251000  013267'         BLT     CTLS1           ;FOR RESCAN ON PASS 2\r
22811         007002' 205000  446353  IFN FTDISK,<MOVSI (SIXBIT /DSK/)        ;SET INPUT TO TAKE DSK AS DEV\r
22812         007003' 202000  013264'         MOVEM ACDEVX>\r
22813         007004' 260740  002657'         PUSHJ PP,COUTI  ;INIT OUTPUT JUST IN CASE\r
22814         007005' 260740  007027'         PUSHJ   PP,INSET        ;GET FIRST INPUT FILE\r
22815 \r
22816         007006' 603600  001000  IFN CCLSW,<TLNE IO,CRPGSW       ;BUT ONLY IF DOING RPG\r
22817         007007' 051140  014327'         TTCALL  3,[ASCIZ /MACRO: /]     ;PUBLISH COMPILER NAME>\r
22818         007010' 200400  012673'         MOVE CS,INDIR   ;SET UP NAME OF FIRST FILE\r
22819         007011' 202400  012537'         MOVEM CS,LSTFIL ;AS LAST PRINTED\r
22820 \r\fMACRO V.10                     PAGE 125-1\r
22821         I/O ROUTINES\r
22822 \r
22823         007012' 402000  013416'         SETZM   LSTPGN\r
22824         007013' 254000  000077'         JRST    ASSEMB          ;START ASSEMBLY\r
22825 \r\fMACRO V.10                     PAGE 126\r
22826         I/O ROUTINES\r
22827 \r
22828         007014' 070040  000000  FINIS:  CLOSE   BIN,            ;DUMP BUFFER\r
22829         007015' 603640  001000          TLNE    FR,PNCHSW       ;PUNCH REQUESTED?\r
22830         007016' 260740  010133'         PUSHJ   PP,TSTBIN       ;YES, TEST FOR ERRORS\r
22831         007017' 071040  000000          RELEAS  BIN,\r
22832         007020' 070140  000000          CLOSE   LST,\r
22833         007021' 373000  013042'         SOSLE   OUTSW+0*LPTSW   ;LPT TYPE OUTPUT?\r
22834         007022' 260740  010142'         PUSHJ   PP,TSTLST       ;YES, TEST FOR ERRORS\r
22835         007023' 071140  000000          RELEAS  LST,\r
22836         007024' 071100  000000          RELEAS  CHAR,\r
22837         007025' 067000  000000          OUTPUT CTL,0    ;FLUSH TTY OUTPUT\r
22838                                 IFN UNIVR,<SKIPE        UNIVSN          ;SKIP IF NOT ASSEMBLING UNIVERSAL\r
22839                                         PUSHJ   PP,UNISYM       ;STORE SYMBOLS ETC. FIRST>\r
22840         007026' 254000  006436'         JRST    M               ;RETURN FOR NEXT ASSEMBLY\r
22841 \r\fMACRO V.10                     PAGE 127\r
22842         I/O ROUTINES\r
22843 \r
22844         007027' 201000  013434' INSET:  MOVEI   JOBFFI          ;POINTER TO INPUT BUFFER\r
22845         007030' 542000  006747*         HRRM    JOBFF           ;INFORM SYSTEM OF BUFFER AREA\r
22846         007031' 260740  007216'         PUSHJ   PP,NAME2        ;GET NEXT COMMAND NAME\r
22847         007032' 322040  007633'         JUMPE   ACDEV,ERRNE     ;ERROR  IF NONE LEFT\r
22848         007033' 202040  012564'         MOVEM   ACDEV,INDEV     ;STORE DEVICE\r
22849         007034' 202100  012673'         MOVEM   ACFILE,INDIR    ;STORE FILE IN DIRECTORY\r
22850         007035' 202200  012676'         MOVEM   ACPPN,INDIR+3   ;STORE PPN BEFORE WE LOSE IT\r
22851         007036' 050100  012563'         OPEN    CHAR,INDEVI\r
22852         007037' 254000  007700'         JRST    EINIT           ;ERROR\r
22853         007040' 047040  000004          DEVCHR  ACDEV,          ;TEST CHARACTERISTICS\r
22854         007041' 607040  000020          TLNN    ACDEV,MTABIT    ;MAG TAPE?\r
22855         007042' 254000  007065'         JRST    INSET3          ;NO\r
22856         007043' 627640  000004          TLZN    FR,MTAPSW       ;FIRST MAG TAPE IN PASS 2?\r
22857         007044' 254000  007047'         JRST    INSET1          ;NO\r
22858         007045' 607300  001000          TLNN    TIO,TIORW       ;YES, REWIND REQUESTED?\r
22859         007046' 274400  013044'         SUB     CS,RECCNT       ;NO, PREPARE TO BACK-SPACE TAPE\r
22860         007047' 350000  013044' INSET1: AOS     RECCNT          ;INCREMENT FILE COUNTER\r
22861         007050' 272400  013044'         ADDM    CS,RECCNT       ;UPDATE  COUNT\r
22862         007051' 623300  002000          TLZE TIO,TIOLE\r
22863         007052' 072100  000010          MTAPE CHAR,10\r
22864         007053' 623300  001000          TLZE    TIO,TIORW       ;REWIND?\r
22865         007054' 072100  000001          MTAPE   CHAR,1          ;YES\r
22866         007055' 325400  007064'         JUMPGE  CS,INSET2\r
22867         007056' 072100  000017          MTAPE   CHAR,17\r
22868         007057' 072100  000017          MTAPE   CHAR,17\r
22869         007060' 341400  007057'         AOJL    CS,.-1\r
22870         007061' 072100  000000          WAIT    CHAR,\r
22871         007062' 061100  004000          STATO   CHAR,1B24\r
22872         007063' 072100  000016          MTAPE   CHAR,16\r
22873         007064' 365400  007063' INSET2: SOJGE   CS,.-1\r
22874 \r
22875         007065' 064100  000001  INSET3: INBUF CHAR,1\r
22876         007066' 201240  013434'         MOVEI ACPNTR,JOBFFI\r
22877         007067' 250240  007030*         EXCH ACPNTR,JOBFF\r
22878         007070' 275240  013434'         SUBI ACPNTR,JOBFFI\r
22879         007071' 201200  000407          MOVEI ACDEL,NUMBUF*203+1\r
22880         007072' 230200  000005          IDIV ACDEL,ACPNTR\r
22881         007073' 064104  000000          INBUF CHAR,(ACDEL)\r
22882         007074' 326140  007077'         JUMPN   ACEXT,INSET4    ;TAKE USER'S EXTENSION IF NON-BLANK\r
22883         007075' 205140  554143          MOVSI   ACEXT,(SIXBIT /MAC/)    ;BLANK, TRY .MAC FIRST\r
22884         007076' 260740  007143'         PUSHJ   PP,INSETI\r
22885         007077' 260740  007143' INSET4: PUSHJ   PP,INSETI\r
22886         007100' 322140  007707'         JUMPE   ACEXT,ERRCF     ;ERROR IF ZERO\r
22887         007101' 603040  000010          TLNE    ACDEV,TTYBIT    ;TELETYPE?\r
22888         007102' 060100  000001          SETSTS  CHAR,AL         ;YES, CHANGE TO ASCII LINE\r
22889 \r\fMACRO V.10                     PAGE 128\r
22890         I/O ROUTINES\r
22891 \r
22892                                                                 ;DO ALL ENTERS HERE FOR LEVEL D\r
22893         007103' 332000  013261'         SKIPE   ENTERS          ;HAVE ENTERS BEEN DONE ALREADY?\r
22894         007104' 254000  007136'         JRST    ENTRDN          ;YES, DON'T DO TWICE\r
22895         007105' 336140  012553'         SKIPN   ACEXT,LSTDEV    ;IS THERE A LIST DEVICE?\r
22896         007106' 254000  007127'         JRST    LSTSE5          ;NO SO DON'T DO ENTER\r
22897         007107' 336100  012663'         SKIPN   ACFILE,LSTDIR   ;GET FILE NAME INCASE OF ERROR\r
22898                                         JRST    [DEVCHR ACEXT,  \r
22899                                                 TLNE    ACEXT,DIRBIT    ;DOES IT HAVE A DIRECTORY?\r
22900                                                 JRST    LSTSE4          ;YES, GIVE UP BEFORE HARM IS DONE\r
22901                                                 SKIPE   ACFILE,INDIR    ;USE INPUT FILE NAME\r
22902                                                 MOVEM   ACFILE,LSTDIR   ;TOO BAD IF ZERO ALSO\r
22903         007110' 254000  014331'                 JRST    LSTSE4]\r
22904         007111' 510140  012664'         HLLZ    ACEXT,LSTDIR+1  ;EXT ALSO\r
22905         007112' 200200  012666'         MOVE    ACPPN,LSTDIR+3  ;SAVE PPN\r
22906         007113' 076140  012663'         LOOKUP  LST,LSTDIR      ;PREVIOUS ONE STILL THERE\r
22907         007114' 254000  007125'         JRST    LSTSE4          ;NO\r
22908         007115' 402000  012663'         SETZM   LSTDIR          ;YES,CLEAR NAME\r
22909         007116' 202200  012666'         MOVEM   ACPPN,LSTDIR+3  ;RESET PPN\r
22910         007117' 055140  012663'         RENAME  LST,LSTDIR\r
22911         007120' 070140  000000          CLOSE   LST,            ;IGNORE FAILURE\r
22912         007121' 202100  012663'         MOVEM   ACFILE,LSTDIR   ;RESTORE NAME\r
22913         007122' 513000  012664'         HLLZS   LSTDIR+1        ;BH 11/19/74 FOR DATE75.  CLEAR RH.\r
22914         007123' 402000  012665'         SETZM   LSTDIR+2        ;CLEAR PROTECTION AND DATE\r
22915         007124' 202200  012666'         MOVEM   ACPPN,LSTDIR+3  ;SET PPN AGAIN\r
22916         007125'                 LSTSE4: \r
22917         007125' 077140  012663'         ENTER   LST,LSTDIR      ;SET UP DIRECTORY\r
22918         007126' 254000  007702'         JRST    ERRCL           ;ERROR\r
22919         007127' 336140  012550' LSTSE5: SKIPN   ACEXT,BINDEV    ;A BINARY DEVICE THEN ?\r
22920         007130' 254000  007136'         JRST    ENTRDN          ;NO\r
22921         007131' 336100  012667'         SKIPN   ACFILE,BINDIR   ;INCASE OF ERROR\r
22922                                         JRST    [DEVCHR ACEXT,  \r
22923                                                 TLNE    ACEXT,DIRBIT    ;DOES IT HAVE A DIRECTORY?\r
22924                                                 JRST    .+1             ;YES, GIVE UP BEFORE HARM IS DONE\r
22925                                                 SKIPE   ACFILE,INDIR    ;USE INPUT FILE NAME\r
22926                                                 MOVEM   ACFILE,BINDIR   ;TOO BAD IF ZERO ALSO\r
22927         007132' 254000  014337'                 JRST    .+1]\r
22928         007133' 513140  012670'         HLLZS   ACEXT,BINDIR+1  ;BH 11/19/74 DATE75.  WAS HLLZ.\r
22929         007134' 077040  012667'         ENTER   BIN,BINDIR      ;ENTER FILE NAME\r
22930         007135' 254000  007704'         JRST    ERRCB           ;ERROR\r
22931 \r
22932         007136' 476000  013261' ENTRDN: SETOM   ENTERS          ;MAKE SURE ONLY DONE ONCE\r
22933                                 REPEAT 0,<\r
22934                                         MOVE    CS,[POINT 7,DEVBUF]\r
22935                                         PUSH    PP,1            ;SAVE THE ACCS\r
22936                                         PUSH    PP,2\r
22937                                         PUSH    PP,3\r
22938                                         SKIPN   2,INDIR         ;GET INPUT NAME\r
22939                                         JRST    FINDEV          ;FINISHED WITH DEVICE\r
22940                                         SETZ    1,              ;CLEAR FOR RECEIVING\r
22941                                         LSHC    1,6             ;SHIFT ONE CHAR. IN\r
22942                                         ADDI    1,40            ;FORM ASCII\r
22943                                         IDPB    1,CS            ;STORE CHAR.\r
22944                                         JUMPN   2,.-4           ;MORE TO DO?\r
22945 \r\fMACRO V.10                     PAGE 128-1\r
22946         I/O ROUTINES\r
22947 \r
22948                                         MOVEI   1,"     "       ;SEPARATE BY TAB\r
22949                                         IDPB    1,CS\r
22950                                         HLLZ    2,INDIR+1       ;GET EXT\r
22951                                         JUMPE   2,FINEXT        ;NO EXT\r
22952                                         SETZ    1,\r
22953                                         LSHC    1,6             ;SAME LOOP AS ABOVE\r
22954                                         ADDI    1,40\r
22955                                         IDPB    1,CS\r
22956                                         JUMPN   2,.-4\r
22957                                 FINEXT: MOVEI   1,"     "\r
22958                                         IDPB    1,CS            ;SEPARATE BY TAB\r
22959                                         LDB     1,[POINT 12,INDIR+2,35] ;GET DATE\r
22960                                         LDB     2,[POINT 3,INDIR+1,20]  ;BH 11/19/74 DATE75.\r
22961                                         DPB     2,[POINT 3,1,23]        ;BH 11/19/74 DATE75.\r
22962                                         JUMPE   1,FINDEV        ;NO DATE?\r
22963                                         PUSHJ   PP,DATOUT       ;STORE IT\r
22964                                         LDB     2,[POINT 11,INDIR+2,23] ;GET CREATION TIME\r
22965                                         JUMPE   2,FINDEV        ;NO TIME (DECTAPE)\r
22966                                         MOVEI   1," "           ;SEPARATE BY SPACE\r
22967                                         IDPB    1,CS\r
22968                                         PUSHJ   PP,TIMOU1       ;STORE TIME\r
22969                                 FINDEV: SETZ    1,\r
22970                                         MOVEI   2,"     "       ;FINAL TAB\r
22971                                         IDPB    2,CS\r
22972                                         IDPB    1,CS            ;TERMINATE FOR NOW\r
22973                                         POP     PP,3            ;RESTORE ACCS\r
22974                                         POP     PP,2\r
22975                                         POP     PP,1\r
22976                                 >\r
22977         007137' 336000  013414'         SKIPN   PAGENO          ;IF FIRST TIME THRU\r
22978         007140' 254000  010417'         JRST    OUTFF           ;START NEW PAGE\r
22979         007141' 402000  013414'         SETZM PAGENO            ;ON NEW FILE, RESET PAGES\r
22980         007142' 254000  010420'         JRST    OUTFF2          ;DON'T START NEW PAGE UNLESS FF\r
22981 \r
22982         007143' 512140  012674' INSETI: HLLZM   ACEXT,INDIR+1   ;STORE EXTENSION\r
22983         007144' 200200  012676'         MOVE    ACPPN,INDIR+3   ;SAVE PPN\r
22984         007145' 076100  012673'         LOOKUP  CHAR,INDIR\r
22985         007146' 334140  012674'         SKIPA   ACEXT,INDIR+1   ;GET ERROR CODE\r
22986         007147' 254000  003357'         JRST    CPOPJ1          ;SKIP-RETURN IF FOUND\r
22987         007150' 602140  777777          TRNE    ACEXT,-1        ;ERROR CODE OF 0 IS FILE NOT FOUND\r
22988         007151' 254000  007707'         JRST    ERRCF           ;FILE THERE BUT NOT READABLE\r
22989         007152' 400140  000000          SETZ    ACEXT,          ;CLEAR EXT AND TRY AGAIN\r
22990         007153' 202200  012676'         MOVEM   ACPPN,INDIR+3   ;RESTORE PPN\r
22991         007154' 263740  000000          POPJ    PP,\r
22992 \r\fMACRO V.10                     PAGE 129\r
22993         I/O ROUTINES\r
22994 \r
22995         007155' 204000  014326' REC2:   MOVS    [XWD CTIBUF+1,CTLSAV]   ;RESCAN CONTROL (FROM PASS1 END STMNT)\r
22996         007156' 251000  013427'         BLT     CTIBUF+2        ;INPUT BUFFER\r
22997         007157' 201000  000137          MOVEI   "_"\r
22998         007160' 506000  012677'         HRLM    ACDELX          ;FUDGE PREVIOUS DELIMITER\r
22999                                 IFN RENTSW,<MOVE HHIGH  ;GET HI-SEG BREAK\r
23000                                         MOVEM   HIGH1   ;SAVE THE ONE WE GOT ON PASS1 (FOR HISEG)>\r
23001         007161' 402000  013262'         SETZM   PASS2I\r
23002         007162' 200000  014200'         MOVE    [XWD PASS2I,PASS2I+1]\r
23003         007163' 251000  013415'         BLT     PASS2X-1                ;ZERO PASS2 VARIABLES\r
23004         007164' 661640  000024          TLO     FR,MTAPSW!LOADSW        ;SET FLAGS \r
23005 \r
23006         007165' 200000  012564' GOTEND: MOVE    INDEV           ;GET LAST DEVICE\r
23007         007166' 047000  000004          DEVCHR                  ;GET ITS CHARACTERISTICS\r
23008         007167' 603000  000004          TLNE    4               ;TEST FOR DIRECTORY (DSK OR DTA)\r
23009         007170' 254000  007176'         JRST    EOT             ;YES, SO DON'T WASTE TIME\r
23010         007171' 254000  007174'         JRST    .+3             ;NO, INPUT BUFFER BY BUFFER\r
23011         007172' 056100  000000          IN      CHAR,\r
23012         007173' 254000  007172'         JRST    .-1             ;NO ERRORS\r
23013         007174' 061100  020000          STATO   CHAR,1B22       ;TEST FOR EOF\r
23014         007175' 254000  007172'         JRST    .-3             ;IGNORE ERRORS\r
23015 \r
23016         007176' 260740  007211' EOT:    PUSHJ   PP,SAVEXS       ;SAVE REGISTERS\r
23017         007177' 260740  007027'         PUSHJ   PP,INSET        ;GET THE NEXT INPUT DEVICE\r
23018         007200' 561440  014345'         HRROI   RC,[SIXBIT /END OF PASS 1@/]    ;ASSUME END OF PASS\r
23019         007201' 627640  000020          TLZN    FR,LOADSW       ;ZERO ONLY ON END OF PASS 1\r
23020         007202' 561440  014350'         HRROI   RC,[SIXBIT /LOAD THE NEXT FILE@/]       ;NOT END OF PASS\r
23021         007203' 607040  000024          TLNN    ACDEV,(1B13!1B15)       ;WAS ALL THAT WORK NECESSARY?\r
23022         007204' 260740  007757'         PUSHJ   PP,TYPMSG       ;YES\r
23023 \r
23024         007205' 205440  013045' RSTRXS: MOVSI   RC,SAVBLK       ;SET POINTER\r
23025         007206' 251440  000010          BLT     RC,RC-1         ;RESTORE REGISTERS\r
23026         007207' 200440  013056'         MOVE    RC,SAVERC       ;RESTORE RC\r
23027         007210' 263740  000000          POPJ    PP,             ;EXIT\r
23028 \r
23029         007211' 202440  013056' SAVEXS: MOVEM   RC,SAVERC       ;SAVE RC\r
23030         007212' 201440  013045'         MOVEI   RC,SAVBLK       ;SET POINTER\r
23031         007213' 251440  013055'         BLT     RC,SAVBLK+RC-1  ;BLT ALL REGISTERS BELOW RC\r
23032         007214' 263740  000000          POPJ    PP,             ;EXIT\r
23033 \r\fMACRO V.10                     PAGE 130\r
23034         I/O ROUTINES\r
23035 \r
23036         007215' 402000  013264' NAME1:  SETZM   ACDEVX          ;ENTRY FOR DESTINATION\r
23037         007216' 403040  012675' NAME2:  SETZB   ACDEV,INDIR+2   ;ENTRY FOR SOURCE\r
23038         007217' 201100  000000          MOVEI   ACFILE,0        ;CLEAR FILE\r
23039         007220' 554200  012677'         HLRZ    ACDEL,ACDELX    ;GET PREVIOUS DELIMITER\r
23040         007221' 403300  000010          SETZB   TIO,CS\r
23041         007222' 403140  012676'         SETZB   ACEXT,INDIR+3   ;RESET EXTENSION AND PROGRAM-NUMBER PAIR\r
23042         007223' 402000  013402'         SETZM   PPN             ;CLEAR PPN\r
23043         007224' 205240  440600  NAME3:  MOVSI   ACPNTR,(POINT 6,AC0)    ;SET POINTER\r
23044         007225' 634000  000000          TDZA    AC0,AC0         ;CLEAR SYMBOL\r
23045 \r
23046         007226' 260740  007346' SLASH:  PUSHJ   PP,SW0\r
23047         007227' 260740  007614' GETIOC: PUSHJ   PP,TTYIN        ;GET INPUT CHARACTER\r
23048         007230' 306340  000057          CAIN    C,"/"\r
23049         007231' 254000  007226'         JRST    SLASH\r
23050         007232' 306340  000050          CAIN    C,"("\r
23051         007233' 254000  007342'         JRST    SWITCH\r
23052         007234' 306340  000072          CAIN    C,":"\r
23053         007235' 254000  007267'         JRST    DEVICE\r
23054         007236' 306340  000056          CAIN    C,"."\r
23055         007237' 254000  007272'         JRST    NAME\r
23056         007240' 302340  000041  IFN CCLSW,<CAIE C,"!"           ;IS CHAR AN IMPERATIVE?\r
23057         007241' 306340  000100          CAIN    C,"@"\r
23058         007242' 254000  007276'         JRST    TERM            ;YES, GO DO IT>\r
23059         007243' 302340  000033          CAIE    C,33            ;CHECK FOR THREE FLAVORS OF ALT-MODE\r
23060         007244' 306340  000176          CAIN    C,176           ;...\r
23061         007245' 254000  007276'         JRST    TERM            ;...\r
23062         007246' 307340  000015          CAIG    C,CR            ;LESS THAN CR?\r
23063         007247' 305340  000012          CAIGE   C,LF            ;AND GREATER THAN LF?\r
23064         007250' 306340  000175          CAIN    C,175           ;OR 3RD ALTMOD\r
23065         007251' 254000  007276'         JRST    TERM            ;YES\r
23066         007252' 306340  000133  IFN FTDISK,<CAIN C,"["\r
23067         007253' 254000  007323'         JRST    PROGNP          ;GET PROGRAMER NUMBER PAIR>\r
23068         007254' 306340  000075          CAIN    C,"="           ;EQUALS IS SAME AS LEFT ARROW\r
23069         007255' 644340  000142          TRCA    C,142           ;SO MAKE IT A "_" AND SKIP\r
23070         007256' 302340  000054          CAIE    C,","\r
23071         007257' 306340  000137          CAIN    C,"_"\r
23072         007260' 254000  007276'         JRST    TERM\r
23073         007261' 305340  000040          CAIGE   C,40            ;VALID AS SIXBIT?\r
23074                                         JRST    [CAIN C,"Z"-100 ;NO,IS IT ^Z\r
23075                                                 EXIT            ;YES,EXIT FOR BATCH\r
23076         007262' 254000  014354'                 JRST    GETIOC] ;JUST IGNORE\r
23077         007263' 275340  000040          SUBI    C,40            ;CONVERT TO 6-BIT\r
23078         007264' 603240  770000          TLNE    ACPNTR,770000   ;HAVE WE STORED SIX BYTES?\r
23079         007265' 136340  000005          IDPB    C,ACPNTR        ;NO, STORE IT\r
23080         007266' 254000  007227'         JRST    GETIOC          ;GET NEXT CHARACTER\r
23081 \r
23082         007267' 326040  007321' DEVICE: JUMPN   ACDEV,ERRCM     ;ERROR IF ALREADY SET\r
23083         007270' 200040  000000          MOVE    ACDEV,AC0       ;DEVICE NAME\r
23084         007271' 254000  007274'         JRST    DEVNAM          ;COMMON CODE\r
23085 \r
23086         007272' 326100  007321' NAME:   JUMPN   ACFILE,ERRCM    ;ERROR IF ALREADY SET\r
23087         007273' 200100  000000          MOVE    ACFILE,AC0      ;FILE NAME\r
23088         007274' 200200  000007  DEVNAM: MOVE    ACDEL,C         ;SET DELIMITER\r
23089 \r\fMACRO V.10                     PAGE 130-1\r
23090         I/O ROUTINES\r
23091 \r
23092         007275' 254000  007224'         JRST    NAME3           ;GET NEXT SYMBOL\r
23093 \r
23094         007276' 322200  007303' TERM:   JUMPE   ACDEL,TERM1     ;IF NO PREVIOUS TERMINATOR, THEN FILENAME\r
23095         007277' 306200  000137          CAIN    ACDEL,"_"       ;...\r
23096         007300' 254000  007303'         JRST    TERM1           ;...\r
23097         007301' 302200  000072          CAIE    ACDEL,":"       ;IF PREVIOUS DELIMITER\r
23098         007302' 306200  000054          CAIN    ACDEL,","       ;WAS COLON OR COMMA\r
23099         007303' 200100  000000  TERM1:  MOVE    ACFILE,AC0      ;SET FILE\r
23100         007304' 306200  000056          CAIN    ACDEL,"."       ;IF PERIOD,\r
23101         007305' 510140  000000          HLLZ    ACEXT,AC0       ;SET EXTENSION\r
23102         007306' 506340  012677'         HRLM    C,ACDELX        ;SAVE PREVIOUS DELIMITER\r
23103         007307' 326040  007311'         JUMPN   ACDEV,.+2       ;IF DEVICE SET USE IT\r
23104         007310' 334040  013264'         SKIPA   ACDEV,ACDEVX    ;OTHERWISE USE LAST DEVICE\r
23105         007311' 202040  013264'         MOVEM   ACDEV,ACDEVX    ;AND DEVICE\r
23106         007312' 200200  013402'         MOVE    ACPPN,PPN       ;PUT PPN IN RIGHT PLACE\r
23107         007313' 306340  000041  IFN FTDISK,<CAIN C,"!"          ;IMPERATIVE?\r
23108         007314' 263740  000000          POPJ    PP,             ;YES, DON'T ASSUME DEV\r
23109         007315' 322100  003360'         JUMPE   ACFILE,CPOPJ    ;IF THERE IS A FILE,\r
23110         007316' 326040  007320'         JUMPN   ACDEV,.+2       ;BUT NO DEVICE\r
23111         007317' 205040  446353          MOVSI   ACDEV,(SIXBIT /DSK/)    ;THEN ASSUME DISK>\r
23112         007320' 263740  000000          POPJ    PP,             ;EXIT\r
23113 \r\fMACRO V.10                     PAGE 131\r
23114         I/O ROUTINES\r
23115 \r
23116         007321' 561440  014357' ERRCM:  HRROI   RC,[SIXBIT /COMMAND ERROR@/]\r
23117         007322' 254000  007714'         JRST    ERRFIN\r
23118 \r
23119         007323'                 IFN FTDISK,<PROGNP:\r
23120         007323' 516440  013402' PROGN1: HRLZM   RC,PPN          ;COMMA, STORE LEFT HALF\r
23121         007324' 201440  000000  PROGN2: MOVEI   RC,0            ;CLEAR AC\r
23122         007325' 260740  007614' PROGN3: PUSHJ   PP,TTYIN\r
23123         007326' 306340  000054          CAIN    C,","\r
23124         007327' 254000  007323'         JRST    PROGN1          ;STORE LEFT HALF\r
23125         007330' 542440  013402'         HRRM    RC,PPN          ;ASSUME TERMINAL\r
23126         007331' 306340  000135          CAIN    C,"]"\r
23127         007332' 254000  007227'         JRST    GETIOC          ;YES, RETURN TO MAIN SCAN\r
23128         007333' 301340  000060          CAIL    C,"0"           ;CHECK FOR VALID NUMBERS\r
23129         007334' 303340  000067          CAILE   C,"7"\r
23130         007335' 254000  007321'         JRST    ERRCM           ;NOT VALID\r
23131         007336' 242440  000003          LSH     RC,3            ;SHIFT PREVIOUS RESULT\r
23132         007337' 271447  777720          ADDI    RC,-"0"(C)      ;ADD IN NEW NUMBER\r
23133         007340' 254000  007325'         JRST    PROGN3          ;GET NEXT CHARACTER>\r
23134 \r\fMACRO V.10                     PAGE 132\r
23135         I/O ROUTINES\r
23136 \r
23137         007341' 260740  007347' SWITC0: PUSHJ   PP,SW1          ;PROCESS CHARACTER\r
23138         007342' 260740  007614' SWITCH: PUSHJ   PP,TTYIN        ;GET NEXT CHARACTER\r
23139         007343' 302340  000051          CAIE    C,")"           ;END OF STRING?\r
23140         007344' 254000  007341'         JRST    SWITC0          ;NO\r
23141         007345' 254000  007227'         JRST    GETIOC          ;YES\r
23142 \r
23143         007346' 260740  007614' SW0:    PUSHJ   PP,TTYIN\r
23144         007347' 201347  777677  SW1:    MOVEI   C,-"A"(C)       ;CONVERT FROM ASCII TO NUMERIC\r
23145         007350' 303340  000031          CAILE   C,"Z"-"A"       ;WITHIN BOUNDS? (IS IT ALPHA?)\r
23146         007351' 254000  007321'         JRST    ERRCM           ;NO, ERROR\r
23147         007352' 200440  014362'         MOVE    RC,[POINT 4,BYTAB]\r
23148         007353' 133000  000011          IBP     RC\r
23149         007354' 365340  007353'         SOJGE   C,.-1           ;MOVE TO PROPER BYTE\r
23150         007355' 135340  000011          LDB     C,RC            ;PICK UP BYTE\r
23151         007356' 322340  007321'         JUMPE   C,ERRCM         ;TEST FOR VALID SWITCH\r
23152         007357' 307340  000003          CAIG    C,SWTABT-SWTAB  ;LEGAL ON SOURCE?\r
23153         007360' 321740  007321'         JUMPL   PP,ERRCM        ;NO, TEST FOR SOURCE\r
23154         007361' 135440  014363'         LDB     RC,[POINT 4,SWTAB-1(C),12]\r
23155         007362' 306440  000014          CAIN    RC,IO\r
23156         007363' 336000  013266'         SKIPN   CTLSAV          ;IF PASS2 OR IO SWITCH,\r
23157         007364' 256007  007570'         XCT     SWTAB-1(C)      ;EXECUTE INSTRUCTION\r
23158         007365' 263740  000000          POPJ    PP,             ;EXIT\r
23159         007366' 621600  000001          TLZ     IO,IOSALL       ;TAKE CARE OF /X\r
23160         007367' 263740  000000          POPJ    PP,\r
23161 \r
23162                                 DEFINE HELP (TEXT)<\r
23163                                         XLIST\r
23164                                         ASCIZ ?TEXT?\r
23165                                         LIST>\r
23166 \r
23167                                 HLPMES: HELP <\r
23168                                 Switches are :-\r
23169                                 */A advance one file\r
23170                                 */B backspace one file\r
23171                                 /C produce a cref listing\r
23172                                 */E list macro expansions (LALL)\r
23173                                 */F list in new format (.MFRMT)\r
23174                                 /G list in old format (.HWFRMT)\r
23175                                 /H type this text\r
23176                                 */L reinstate listing (LIST)\r
23177                                 /M suppress ascii in macro and repeat expansion (SALL)\r
23178                                 */N suppress error printout on tty\r
23179                                 /O set MLOFF pseudo-op\r
23180                                 /P increase size of the pushdown stack\r
23181                                 /Q suppress Q errors on the listing\r
23182                                 */S suppress listing (XLIST)\r
23183                                 */T rewind device\r
23184                                 */X suppress all macro expansions (XALL)\r
23185                                 */Z zero the directory\r
23186                                 Switches A,B,C,T,W,X, and Z must immediately follow\r
23187                                 the device or file to which they refer.\r
23188 \r\fMACRO V.10                     PAGE 133\r
23189         I/O ROUTINES\r
23190 \r
23191                                         DEFINE  SETSW   (LETTER,INSTRUCTION) <  INSTRUCTION\r
23192                                 J=      <"LETTER"-"A">-^D9*<I=<"LETTER"-"A">/^D9>\r
23193                                         SETCOD  \I,J>\r
23194 \r
23195                                         DEFINE  SETCOD          (I,J)\r
23196                                         <BYTAB'I=BYTAB'I!<.-SWTAB>B<4*J+3>>\r
23197 \r
23198                         000000  BYTAB0= 0                       ;INITIALIZE TABLE\r
23199                         000000  BYTAB1= 0\r
23200                         000000  BYTAB2= 0\r
23201 \r
23202         007571'                 SWTAB:\r
23203         007571' 661300  020000          SETSW   Z,<TLO  TIO,TIOCLD      >\r
23204         007572' 621640  002000          SETSW   C,<TLZ  FR,CREFSW       >\r
23205         007573' 370000  013043'         SETSW   P,<SOS  PDP             >\r
23206         007574'                 SWTABT:                         ;THE ABOVE SW'S ARE LEGAL ON OUTPUT ONLY\r
23207         007574' 271400  000001          SETSW   A,<ADDI CS,1            >\r
23208         007575' 275400  000001          SETSW   B,<SUBI CS,1            >\r
23209         007576' 621600  004001          SETSW   E,<TLZ  IO,IOPALL!IOSALL        >\r
23210         007577' 000000  007370'         SETSW   H,<OUTSTR       HLPMES>\r
23211         007600' 621600  200000          SETSW   L,<TLZ  IO,IOMSTR       >\r
23212         007601' 661600  004001          SETSW   M,<TLO  IO,IOPALL!IOSALL        >\r
23213         007602' 523000  013256'         SETSW   N,<HLLOS   TYPERR       >\r
23214         007603' 256000  004155'         SETSW   O,<XCT  OFFML           >\r
23215         007604' 661640  000010          SETSW   Q,<TLO  FR,ERRQSW       >\r
23216         007605' 661600  200000          SETSW   S,<TLO  IO,IOMSTR       >\r
23217         007606' 661300  002000          SETSW   T,<TLO  TIO,TIOLE       >\r
23218         007607' 661300  001000          SETSW   W,<TLO  TIO,TIORW       >\r
23219         007610' 665600  004000          SETSW   X,<TLOA IO,IOPALL       >\r
23220 \r
23221         007611'                 BYTAB:                          ;BYTAB CONTAINS AN INDEX TO SWTAB\r
23222                                                                 ;IT CONSIST OF 9 4BIT BYTES/WORD\r
23223                                                                 ;OR ONE BYTE FOR EACH LETTER\r
23224 \r
23225         007611' 212201  400160          +BYTAB0                 ;A-I    BYTE = 1 THROUGH 17 = INDEX\r
23226         007612' 001046  531700          +BYTAB1                 ;J-R    BYTE = 0 = COMMAND ERROR\r
23227         007613' 674003  600020          +BYTAB2                 ;S-Z\r
23228 \r
23229                                 IF2,<PURGE I,J,BYTAB0,BYTAB1,BYTAB2>\r
23230 \r\fMACRO V.10                     PAGE 134\r
23231         I/O ROUTINES\r
23232 \r
23233         007614' 375000  013427' TTYIN:  SOSGE   CTIBUF+2        ;ENUF CHAR.?\r
23234         007615' 254000  007631'         JRST    TTYERR          ;NO\r
23235         007616' 134340  013426'         ILDB    C,CTIBUF+1      ;GET CHARACTER\r
23236         007617' 302340  000040          CAIE    C," "           ;SKIP BLANKS\r
23237         007620' 306340  000011          CAIN    C,HT            ;AND TABS\r
23238         007621' 254000  007614'         JRST    TTYIN\r
23239         007622' 306340  000015          CAIN    C,15            ;CR?\r
23240         007623' 402000  013427'         SETZM   CTIBUF+2        ;YES,IGNORE REST OF LINE\r
23241         007624' 307340  000172          CAIG C,"Z"+40           ;CHECK FOR LOWER CASE\r
23242         007625' 305340  000141          CAIGE C,"A"+40\r
23243         007626' 263740  000000          POPJ    PP,             ;NO,EXIT\r
23244         007627' 275340  000040          SUBI C,40\r
23245         007630' 263740  000000          POPJ    PP,             ;YES, EXIT\r
23246 \r
23247         007631' 336000  012564' TTYERR: SKIPN   INDEV           ;INPUT DEVICE SEEN?\r
23248         007632' 254000  007321'         JRST    ERRCM           ;NO, SO MISSING "_"\r
23249         007633' 561440  014364' ERRNE:  HRROI   RC,[SIXBIT /?NO END STATEMENT ENCOUNTERED ON INPUT FILE@/]\r
23250         007634' 000000  000006  ERRNE0: SKPINC  V       ;SEE IF WE CAN INPUT A CHAR.\r
23251         007635' 255000  000000            JFCL          ;BUT ONLY TO DEFEAT ^O\r
23252         007636' 260740  007757'         PUSHJ PP,TYPMSG ;OUTPUT IT\r
23253         007637' 332000  013321'         SKIPE LITLVL    ;SEE IF IN LITERAL\r
23254         007640' 336000  013303'         SKIPN   LITPG   ;PAGE 0 MEANS NOT IN A LITERAL REALY\r
23255         007641' 254000  007644'         JRST ERRNE1     ;NO, TRY OTHERS\r
23256         007642' 200300  014376'         MOVE V,[XWD [SIXBIT /IN LITERAL@/],LITPG]\r
23257         007643' 260740  010041'         PUSHJ PP,PRNUM  ;GO PRINT INFORMATION\r
23258         007644' 201300  000000  ERRNE1: MOVEI V,0       ;CHECK FOR OTHER PLACES\r
23259         007645' 332000  013273'         SKIPE INDEF\r
23260         007646' 200300  014401'         MOVE V,[XWD [SIXBIT /IN DEFINE@/],DEFPG]\r
23261         007647' 332000  013274'         SKIPE INTXT\r
23262         007650' 200300  014404'         MOVE V,[XWD [SIXBIT /IN TEXT@/],TXTPG]\r
23263         007651' 332000  013272'         SKIPE INREP\r
23264         007652' 200300  014412'         MOVE V,[XWD [SIXBIT /IN CONDITIONAL OR REPEAT@/],REPPG]\r
23265         007653' 332000  013275'         SKIPE INCND\r
23266         007654' 200300  014416'         MOVE V,[XWD [SIXBIT /IN CONDITIONAL@/],CNDPG]\r
23267         007655' 335000  013405'         SKIPGE MACENL\r
23268         007656' 200300  014422' ERRNE2: MOVE V,[XWD [SIXBIT /IN MACRO CALL@/],CALPG]\r
23269         007657' 326300  007663'         JUMPN V,ERRNE3\r
23270         007660' 336000  013321'         SKIPN   LITLVL          ;HAD ONE PAGE NUMBER ALREADY\r
23271         007661' 334300  014423'         SKIPA   V,[XWD [SIXBIT /@/],PAGENO]     ;BETTER THAN NOTHING\r
23272         007662' 254000  007664'         JRST    .+2\r
23273         007663' 260740  010041' ERRNE3: PUSHJ PP,PRNUM\r
23274         007664' 561440  014353'         HRROI RC,[SIXBIT /@/]   ;WILL GET A RETURN\r
23275         007665' 254000  007714'         JRST ERRFIN\r
23276 \r
23277         007666' 004562  625762  ERRMS1: SIXBIT / ERRORS DETECTED@/\r
23278         007667' 630044  456445\r
23279         007670' 436445  444000\r
23280         007671' 372100  456262  ERRMS2: SIXBIT /?1 ERROR DETECTED@/\r
23281         007672' 576200  444564\r
23282         007673' 454364  454440\r
23283         007674' 565700  456262  ERRMS3: SIXBIT /NO ERRORS DETECTED@/\r
23284         007675' 576263  004445\r
23285         007676' 644543  644544\r
23286 \r\fMACRO V.10                     PAGE 134-1\r
23287         I/O ROUTINES\r
23288 \r
23289         007677' 400000  000000\r
23290         007700' 200440  014427' EINIT:  MOVE    RC,[XWD ACDEV,[SIXBIT /NOT AVAILABLE@/]]\r
23291         007701' 254000  007714'         JRST    ERRFIN\r
23292 \r\fMACRO V.10                     PAGE 135\r
23293         I/O ROUTINES\r
23294 \r
23295         007702' 550440  012664' ERRCL:  HRRZ    RC,LSTDIR+1     ;GET LST DEV ERROR CODE\r
23296         007703' 254000  007705'         JRST    .+2             ;GET ERROR MESSAGE\r
23297         007704' 550440  012670' ERRCB:  HRRZ    RC,BINDIR+1     ;GET BIN DEV ERROR CODE\r
23298         007705' 326440  007711'         JUMPN   RC,ERRTYP\r
23299         007706' 364440  007711'         SOJA    RC,ERRTYP       ;SPECIAL CASE IF ERROR CODE 0\r
23300 \r
23301         007707' 550440  012674' ERRCF:  HRRZ    RC,INDIR+1      ;GET INPUT DEV ERROR CODE\r
23302         007710' 510140  012674'         HLLZ    ACEXT,INDIR+1   ;SET UP EXT\r
23303 \r
23304         007711' 301440  000027  ERRTYP: CAIL    RC,TABLND-TABLE ;IS ERROR CODE LEGAL?\r
23305         007712' 334440  007756'         SKIPA   RC,TABLND       ;NO, GIVE CATCH ALL MESSAGE\r
23306         007713' 200451  007727'         MOVE    RC,TABLE(RC)    ;YES, PICK UP MESSAGE\r
23307 \r
23308         007714' 000000  000007  ERRFIN: SKPINC  C               ;SEE IN WE CAN INPUT A CHAR.\r
23309         007715' 255000  000000            JFCL                  ;BUT ONLY TO DEFEAT ^O\r
23310         007716' 260740  007765'         PUSHJ   PP,CRLF\r
23311         007717' 201340  000077          MOVEI   C,"?"\r
23312         007720' 260740  007770'         PUSHJ   PP,TYO\r
23313         007721' 260740  007760'         PUSHJ   PP,TYPMS1\r
23314         007722' 070140  000000          CLOSE   LST,            ;GIVE USER A PARTIAL LISTING\r
23315         007723' 070040  000040          CLOSE   BIN,40          ;BUT NEVER A BUM REL FILE\r
23316         007724' 350000  003150* IFN CCLSW,<AOS  JOBERR          ;RECORD ERROR SO EXECUTION DELETED>\r
23317         007725' 254000  006436'         JRST    M\r
23318 \r
23319         007726' 014430' 000002          [SIXBIT /(0) ILLEGAL FILE NAME@/],,ACFILE\r
23320         007727' 014434' 000002  TABLE:  [SIXBIT /(0) FILE WAS NOT FOUND@/],,ACFILE\r
23321         007730' 014440' 000002          [SIXBIT /(1) NO DIRECTORY FOR PROJECT-PROGRAMMER NUMBER@/],,ACFILE\r
23322         007731' 014450' 000002          [SIXBIT /(2) PROTECTION FAILURE@/],,ACFILE\r
23323         007732' 014454' 000002          [SIXBIT /(3) FILE WAS BEING MODIFIED@/],,ACFILE\r
23324         007733' 014461' 000002          [SIXBIT /(4) RENAME FILE NAME ALREADY EXISTS@/],,ACFILE\r
23325         007734' 014467' 000002          [SIXBIT /(5) ILLEGAL SEQUENCE OF UUOS@/],,ACFILE\r
23326         007735' 014474' 000002          [SIXBIT /(6) BAD UFD OR BAD RIB@/],,ACFILE\r
23327         007736' 014500' 000002          [SIXBIT /(7) NOT A SAV FILE@/],,ACFILE\r
23328         007737' 014504' 000002          [SIXBIT /(10) NOT ENOUGH CORE@/],,ACFILE\r
23329         007740' 014510' 000002          [SIXBIT /(11) DEVICE NOT AVAILABLE@/],,ACFILE\r
23330         007741' 014515' 000002          [SIXBIT /(12) NO SUCH DEVICE@/],,ACFILE\r
23331         007742' 014521' 000002          [SIXBIT /(13) NOT TWO RELOC REG. CAPABILITY@/],,ACFILE\r
23332         007743' 014527' 000002          [SIXBIT /(14) NO ROOM OR QUOTA EXCEEDED@/],,ACFILE\r
23333         007744' 014535' 000002          [SIXBIT /(15) WRITE LOCK ERROR@/],,ACFILE\r
23334         007745' 014541' 000002          [SIXBIT /(16) NOT ENOUGH MONITOR TABLE SPACE@/],,ACFILE\r
23335         007746' 014547' 000002          [SIXBIT /(17) PARTIAL ALLOCATION ONLY@/],,ACFILE\r
23336         007747' 014554' 000002          [SIXBIT /(20) BLOCK NOT FREE ON ALLOCATION@/],,ACFILE\r
23337         007750' 014562' 000002          [SIXBIT /(21) CAN'T SUPERSEDE (ENTER) AN EXISTING DIRECTORY@/],,ACFILE\r
23338         007751' 014573' 000002          [SIXBIT /(22) CAN'T DELETE (RENAME) A NON-EMPTY DIRECTORY@/],,ACFILE\r
23339         007752' 014604' 000002          [SIXBIT /(23) SFD NOT FOUND@/],,ACFILE\r
23340         007753' 014610' 000002          [SIXBIT /(24) SEARCH LIST EMPTY@/],,ACFILE\r
23341         007754' 014614' 000002          [SIXBIT /(25) SFD NESTED TOO DEEPLY@/],,ACFILE\r
23342         007755' 014621' 000002          [SIXBIT /(26) NO-CREATE ON FOR SPECIFIED PATH@/],,ACFILE\r
23343 \r
23344         007756' 014630' 000002  TABLND: [SIXBIT /(?) LOOKUP, ENTER, OR RENAME ERROR@/],,ACFILE\r
23345 \r\fMACRO V.10                     PAGE 136\r
23346         I/O ROUTINES\r
23347 \r
23348         007757' 260740  007765' TYPMSG: PUSHJ   PP,CRLF         ;MOVE TO NEXT LINE\r
23349         007760' 554400  000011  TYPMS1: HLRZ    CS,RC           ;GET FIRST MESSAGE\r
23350         007761' 302400  777777          CAIE    CS,-1           ;SKIP IF MINUS ONE\r
23351         007762' 260740  010000'         PUSHJ   PP,TYPM2        ;TYPE MESSAGE\r
23352         007763' 550400  000011          HRRZ    CS,RC           ;GET SECOND HALF\r
23353         007764' 260740  010000'         PUSHJ   PP,TYPM2\r
23354 \r
23355         007765' 201340  000015  CRLF:   MOVEI   C,CR            ;OUTPUT CARRIAGE RETURN\r
23356         007766' 260740  007770'         PUSHJ   PP,TYO\r
23357         007767' 201340  000012          MOVEI   C,LF            ;AND LINE FEED\r
23358 \r
23359         007770' 377000  013432' TYO:    SOSG    CTOBUF+2        ;BUFFER FULL?\r
23360         007771' 067000  000000          OUTPUT  CTL,0           ;YES, DUMP IT\r
23361         007772' 136340  013431'         IDPB    C,CTOBUF+1      ;STORE BYTE\r
23362         007773' 307340  000014          CAIG    C,FF            ;FORM FEED?\r
23363         007774' 305340  000012          CAIGE   C,LF            ;V TAB OR LINE FEED?\r
23364         007775' 263740  000000          POPJ    PP,             ;NO\r
23365         007776' 067000  000000          OUTPUT  CTL,0           ;YES\r
23366         007777' 263740  000000          POPJ    PP,             ;AND EXIT\r
23367 \r
23368         010000' 205340  400000  TYPM2:  MOVSI   C,(1B0)         ;ANTICIPATE REGISTER WORD\r
23369         010001' 306400  000002          CAIN    CS,ACFILE       ;FILE NAME ?\r
23370                                         JRST    [JUMPE  ACEXT,.+1       ;YES, TEST FOR EXT\r
23371                                                 LSH     ACEXT,-6        ;MAKE SPACE FOR "."\r
23372                                                 IOR     ACEXT,[SIXBIT /.   @/]\r
23373         010002' 254000  014637'                 JRST    TYPM2A]\r
23374         010003' 307400  000017          CAIG    CS,17           ;IS IT?\r
23375         010004' 202350  000001          MOVEM   C,1(CS)\r
23376         010005' 505400  440600  TYPM2A: HRLI    CS,(POINT 6,,)  ;FORM BYTE POINTER\r
23377 \r
23378         010006' 134340  000010  TYPM3:  ILDB    C,CS            ;GET A SIXBIT BYTE\r
23379         010007' 306340  000040          CAIN    C,40            ;"@"?\r
23380         010010' 254000  007770'         JRST    TYO             ;YES, TYPE SPACE AND EXIT\r
23381         010011' 271340  000040          ADDI    C,40            ;NO, FORM 7-BIT ASCII\r
23382         010012' 260740  007770'         PUSHJ   PP,TYO          ;OUTPUT CHARACTER\r
23383         010013' 254000  010006'         JRST    TYPM3\r
23384 \r
23385 \r\fMACRO V.10                     PAGE 137\r
23386         I/O ROUTINES\r
23387 \r
23388         010014' 271200  002000  XCEEDS: ADDI SX,2000            ;ADJUST SYMBOL POINTER\r
23389         010015' 260740  007211' XCEED:  PUSHJ   PP,SAVEXS       ;SAVE THE REGISTERS\r
23390         010016' 550040  006767*         HRRZ    1,JOBREL        ;GET CURRENT TOP\r
23391         010017' 201001  002000          MOVEI   0,2000(1)\r
23392         010020' 047000  000011          CORE    0,              ;REQUEST MORE CORE\r
23393         010021' 254000  010035'         JRST    XCEED2          ;ERROR, BOMB OUT\r
23394         010022' 550100  010016*         HRRZ    2,JOBREL        ;GET NEW TOP\r
23395 \r
23396         010023' 200001  000000  XCEED1: MOVE    0,0(1)          ;GET ORIGIONAL\r
23397         010024' 202002  000000          MOVEM   0,0(2)          ;STORE IN NEW LOCATION\r
23398         010025' 275100  000001          SUBI    2,1             ;DECREMENT UPPER\r
23399         010026' 313040  013102'         CAMLE   1,SYMBOL        ;HAVE WE ARRIVED?\r
23400         010027' 364040  010023'         SOJA    1,XCEED1        ;NO, GET ANOTHER\r
23401         010030' 201040  002000          MOVEI   1,2000\r
23402         010031' 272040  013102'         ADDM    1,SYMBOL\r
23403         010032' 272040  013103'         ADDM    1,SYMTOP\r
23404         010033' 260740  012455'         PUSHJ   PP,SRCHI        ;RE-INITIALIZE SYMBOL TABLE\r
23405         010034' 254000  007205'         JRST    RSTRXS          ;RESTORE REGISTERS AND EXIT\r
23406 \r
23407         010035' 561440  014643' XCEED2: HRROI   RC,[SIXBIT /INSUFFICIENT CORE@/]\r
23408         010036' 254000  007634'         JRST    ERRNE0\r
23409         010037' 561440  014646' PDPERR: HRROI   RC,[SIXBIT .PDP OVERFLOW, TRY /P@.]\r
23410         010040' 254000  007634'         JRST    ERRNE0\r
23411 \r
23412         010041' 554400  000006  PRNUM:  HLRZ CS,V       ;GET MESSAGE\r
23413         010042' 260740  010000'         PUSHJ PP,TYPM2\r
23414         010043' 201400  014652'         MOVEI   CS,[SIXBIT /ON PAGE@/]\r
23415         010044' 260740  010000'         PUSHJ   PP,TYPM2\r
23416         010045' 200006  000000          MOVE AC0,(V)    ;GET PAGE\r
23417         010046' 260740  010063'         PUSHJ PP,DP1    ;PRINT NUMBER\r
23418         010047' 201340  000040          MOVEI C,40\r
23419         010050' 260740  007770'         PUSHJ PP,TYO\r
23420         010051' 336046  000001          SKIPN AC1,1(V)  ;GET SEQ NUM IF THERE\r
23421         010052' 263740  000000          POPJ PP,        ;NO, RETURN\r
23422         010053' 202040  013337'         MOVEM AC1,OUTSQ\r
23423         010054' 201400  014654'         MOVEI   CS,[SIXBIT /LINE@/]\r
23424         010055' 260740  010000'         PUSHJ   PP,TYPM2\r
23425         010056' 201000  013337'         MOVEI AC0,OUTSQ ;PRINT IT\r
23426         010057' 067000  000000          OUTPUT CTL,0    ;TO MAKE THINGS PRINT IN RIGHT ORDER\r
23427         010060' 047000  000003          DDTOUT AC0,\r
23428         010061' 201340  000040          MOVEI C,40\r
23429         010062' 254000  007770'         JRST TYO        ;AND RETURN\r
23430 \r
23431         010063' 231000  000012  DP1:    IDIVI AC0,^D10\r
23432         010064' 506057  000000          HRLM AC1,(PP)\r
23433         010065' 322000  010067'         JUMPE   AC0,.+2\r
23434         010066' 260740  010063'         PUSHJ PP,DP1\r
23435         010067' 554357  000000          HLRZ C,(PP)\r
23436         010070' 271340  000060          ADDI C,"0"\r
23437         010071' 254000  007770'         JRST TYO\r
23438 \r\fMACRO V.10                     PAGE 138\r
23439         I/O ROUTINES\r
23440 \r
23441         010072' 670640  000000  RIM0:   TDO     FR,AC0          ;SET RIM/RIM10 FLAG\r
23442         010073' 603640  001000          TLNE    FR,PNCHSW       ;FORGET IT IF PUNCH RESET\r
23443         010074' 060040  000013          SETSTS  BIN,IB          ;SET TO IMAGE BINARY MODE\r
23444         010075' 263740  000000          POPJ    PP,\r
23445 \r
23446         010076' 250400  013376' ROUT:   EXCH CS,RIMLOC\r
23447         010077' 274740  014655'         SUB PP,[XWD 1,1]        ;CLEAR OUT STACK WFW\r
23448         010100' 603640  004000          TLNE FR,R1BSW\r
23449         010101' 254000  010207'         JRST ROUT6\r
23450         010102' 607640  000100          TLNN    FR,RIM1SW\r
23451         010103' 254000  010113'         JRST    ROUT1\r
23452         010104' 322400  010113'         JUMPE   CS,ROUT1        ;RIM10 OUTPUT\r
23453         010105' 274400  013376'         SUB     CS,RIMLOC\r
23454         010106' 322400  010113'         JUMPE   CS,ROUT1\r
23455         010107' 327400  003311'         JUMPG   CS,ERRAX\r
23456         010110' 201340  000000          MOVEI   C,0\r
23457         010111' 260740  010123'         PUSHJ   PP,PTPBIN\r
23458         010112' 341400  010111'         AOJL    CS,.-1\r
23459         010113' 205340  710440  ROUT1:  MOVSI   C,(DATAI PTR,)  ;RIM OUTPUT\r
23460         010114' 540340  013326'         HRR C,LOCO              ;GET ADDRESS\r
23461         010115' 603640  000100          TLNE    FR,RIM1SW       ;NO DATAI IF RIM10\r
23462         010116' 354000  013376'         AOSA    RIMLOC\r
23463         010117' 260740  010123'         PUSHJ   PP,PTPBIN       ;OUTPUT\r
23464         010120' 200340  000000          MOVE    C,AC0           ;CODE\r
23465         010121' 354000  013326'         AOSA    LOCO            ;INCREMENT CURRENT LOCATION\r
23466 \r
23467         010122' 607640  004500  OUTBIN: TLNN    FR,RIMSW!RIM1SW!R1BSW   ;EXIT IF RIM MODE\r
23468         010123' 607640  001000  PTPBIN: TLNN    FR,PNCHSW       ;EXIT IF PUNCH NOT REQUESTED\r
23469         010124' 263740  000000          POPJ    PP,\r
23470         010125' 377000  012657'         SOSG    BINBUF+2        ;TEST FOR BUFFER FULL\r
23471         010126' 260740  010131'         PUSHJ   PP,DMPBIN       ;YES, DUMP IT\r
23472         010127' 136340  012656'         IDPB    C,BINBUF+1      ;DEPOSIT BYTE\r
23473         010130' 263740  000000          POPJ    PP,             ;EXIT\r
23474 \r
23475 \r\fMACRO V.10                     PAGE 139\r
23476         I/O ROUTINES\r
23477 \r
23478         010131' 057040  000000  DMPBIN: OUT     BIN,0           ;DUMP THE BUFFER\r
23479         010132' 263740  000000          POPJ    PP,             ;NO ERRORS\r
23480         010133' 062040  000007  TSTBIN: GETSTS  BIN,C           ;GET STSTUS BITS\r
23481         010134' 606340  740000          TRNN    C,ERRBIT        ;ERROR?\r
23482         010135' 263740  000000          POPJ    PP,             ;NO, EXIT\r
23483         010136' 200000  012550'         MOVE    AC0,BINDEV      ;YES, GET TAG\r
23484         010137' 254000  010146'         JRST    ERRLST          ;TYPE MESSAGE AND ABORT\r
23485 \r
23486         010140' 057140  000000  DMPLST: OUT     LST,0           ;OUTPUT BUFFER\r
23487         010141' 263740  000000          POPJ    PP,             ;NO ERRORS\r
23488         010142' 062140  000007  TSTLST: GETSTS  LST,C           ;ANY ERRORS?\r
23489         010143' 606340  740000          TRNN    C,ERRBIT\r
23490         010144' 263740  000000          POPJ    PP,             ;NO, EXIT\r
23491         010145' 200000  012553'         MOVE    AC0,LSTDEV\r
23492         010146' 205440  014656' ERRLST: MOVSI   RC,[SIXBIT /OUTPUT WRITE-LOCK ERROR DEVICE@/]\r
23493         010147' 602340  400000          TRNE    C,IOIMPM        ;IMPROPER MODE?\r
23494         010150' 254000  007714'         JRST    ERRFIN          ;YES\r
23495         010151' 205440  014664'         MOVSI   RC,[SIXBIT /OUTPUT DATA ERROR DEVICE@/]\r
23496         010152' 602340  200000          TRNE    C,IODERR        ;DEVICE DATA ERROR?\r
23497         010153' 254000  007714'         JRST    ERRFIN          ;YES\r
23498         010154' 205440  014671'         MOVSI   RC,[SIXBIT /OUTPUT CHECKSUM OR PARITY ERROR DEVICE@/]\r
23499         010155' 602340  100000          TRNE    C,IODTER        ;IS IT\r
23500         010156' 254000  007714'         JRST    ERRFIN          ;YES\r
23501         010157' 200400  000000          MOVE    CS,AC0          ;GET DEVICE\r
23502         010160' 047400  000004          DEVCHR  CS,             ;FIND OUT WHAT IT IS\r
23503         010161' 205440  014700'         MOVSI   RC,[SIXBIT /OUTPUT QUOTA EXCEEDED ON DEVICE@/]\r
23504         010162' 607400  200000          TLNN    CS,DSKBIT       ;SKIP IF DSK OUTPUT\r
23505         010163' 205440  014706'         MOVSI   RC,[SIXBIT /OUTPUT BLOCK TOO LARGE DEVICE@/]\r
23506         010164' 254000  007714'         JRST    ERRFIN\r
23507 \r\fMACRO V.10                     PAGE 140\r
23508         I/O ROUTINES\r
23509 \r
23510         \r
23511         010165' 460400  013351' R1BDMP: SETCM CS,R1BCNT\r
23512         010166' 322400  010203'         JUMPE CS,R1BI\r
23513         010167' 517340  000010          HRLZS C,CS\r
23514         010170' 540340  013375'         HRR C,R1BLOC\r
23515         010171' 541347  777777          HRRI C,-1(C)\r
23516         010172' 202340  013352'         MOVEM C,R1BCHK\r
23517         010173' 260740  010123'         PUSHJ PP,PTPBIN\r
23518         010174' 541400  013353'         HRRI CS,R1BBLK\r
23519         010175' 200350  000000  R1BDM1: MOVE C,0(CS)\r
23520         010176' 272340  013352'         ADDM C,R1BCHK\r
23521         010177' 260740  010123'         PUSHJ PP,PTPBIN\r
23522         010200' 253400  010175'         AOBJN CS,R1BDM1\r
23523         010201' 200340  013352'         MOVE C,R1BCHK\r
23524         010202' 260740  010123'         PUSHJ PP,PTPBIN\r
23525         010203' 476000  013351' R1BI:   SETOM R1BCNT\r
23526         010204' 261740  013326'         PUSH PP,LOCO\r
23527         010205' 262740  013375'         POP PP,R1BLOC\r
23528         010206' 263740  000000          POPJ PP,\r
23529 \r
23530         010207' 312400  013376' ROUT6:  CAME CS,RIMLOC\r
23531         010210' 260740  010165'         PUSHJ PP,R1BDMP\r
23532         010211' 350340  013351'         AOS C,R1BCNT\r
23533         010212' 202007  013353'         MOVEM AC0,R1BBLK(C)\r
23534         010213' 350000  013326'         AOS LOCO\r
23535         010214' 306340  000021          CAIN C,.R1B-1\r
23536         010215' 260740  010165'         PUSHJ PP,R1BDMP\r
23537         010216' 350000  013376'         AOS RIMLOC\r
23538         010217' 263740  000000          POPJ PP,\r
23539         \r
23540 \r
23541 \r\fMACRO V.10                     PAGE 141\r
23542         I/O ROUTINES\r
23543 \r
23544         010220' 260740  007176' READ0:  PUSHJ   PP,EOT          ;END OF TAPE\r
23545 \r
23546         010221' 375000  012662' READ:   SOSGE   IBUF+2          ;BUFFER EMPTY?\r
23547         010222' 254000  010263'         JRST    READ3           ;YES\r
23548         010223' 134340  012661' READ1:  ILDB    C,IBUF+1        ;PLACE CHARACTER IN C\r
23549         010224' 200420  012661'         MOVE CS,@IBUF+1         ;CHECK FOR SEQUENCE NUMBER\r
23550         010225' 606400  000001          TRNN CS,1\r
23551         010226' 254000  010243'         JRST READ1A\r
23552         010227' 306400  000001          CAIN CS,1               ;CHECK FOR SPECIAL\r
23553         010230' 200400  014713'         MOVE CS,[<ASCII/     />+1]\r
23554         010231' 202400  012544'         MOVEM CS,SEQNO\r
23555         010232' 202400  013415'         MOVEM CS,SEQNO2\r
23556         010233' 211400  000004          MOVNI CS,4\r
23557         010234' 272400  012662'         ADDM CS,IBUF+2          ;ADJUST WORD COUNT\r
23558                                 REPEAT 4,<      IBP IBUF+1>     ;SKIP SEQ NO\r
23559         010235' 133000  012661'\r
23560         010236' 133000  012661'\r
23561         010237' 133000  012661'\r
23562         010240' 133000  012661'\r
23563         010241' 260740  010221'         PUSHJ PP,READ   ;AND THE TAB\r
23564         010242' 254000  010221'         JRST    READ            ;GET NEXT CHARACTER\r
23565 \r
23566         010243' 322340  010221' READ1A: JUMPE   C,READ          ;IGNORE NULL\r
23567         010244' 306340  000032          CAIN    C,32            ;IF IT'S A "^Z"\r
23568         010245' 201340  000012          MOVEI   C,LF            ;TREAT IT AS A "LF"\r
23569         010246' 302340  000037          CAIE    C,37            ;CONTROL _\r
23570         010247' 263740  000000          POPJ    PP,\r
23571         010250' 201340  000136          MOVEI   C,"^"           ;MAKE CONTROL-SHIFT _ VISIBLE\r
23572         010251' 260740  001414'         PUSHJ   PP,RSW2\r
23573         010252' 201340  000137          MOVEI   C,"_"\r
23574         010253' 260740  001414'         PUSHJ   PP,RSW2\r
23575         010254' 260740  010221' READ2:  PUSHJ   PP,READ         ;YES, TEST FOR LINE FEED\r
23576         010255' 260740  001414'         PUSHJ   PP,RSW2         ;LIST IN ANY EVENT\r
23577         010256' 307340  000014          CAIG    C,FF            ;IS IT ONE OF\r
23578         010257' 305340  000012          CAIGE   C,LF            ;LF, VT, OR FF?\r
23579         010260' 254000  010254'         JRST    READ2           ;NO\r
23580         010261' 260740  001736'         PUSHJ   PP,OUTIM1       ;YES, DUMP THE LINE\r
23581         010262' 254000  010221'         JRST    READ            ;RETURN NEXT CHARACTER\r
23582 \r
23583         010263' 056100  000000  READ3:  IN      CHAR,0          ;GET NEXT BUFFER\r
23584         010264' 254000  010221'         JRST    READ            ;NO ERRORS\r
23585         010265' 062100  000007          GETSTS  CHAR,C\r
23586         010266' 606340  742000          TRNN    C,ERRBIT!2000   ;ERRORS?\r
23587         010267' 254000  010220'         JRST    READ0           ;EOF\r
23588         010270' 200000  012564'         MOVE    AC0,INDEV\r
23589         010271' 205440  014714'         MOVSI   RC,[SIXBIT/ INPUT PHYSICAL END OF TAPE DEVICE@/]\r
23590         010272' 602340  002000          TRNE    C,2000\r
23591         010273' 254000  007714'         JRST    ERRFIN          ;E-O-T\r
23592         010274' 205440  014722'         MOVSI   RC,[SIXBIT /MONITOR DETECTED SOFTWARE INPUT ERROR DEVICE@/]\r
23593         010275' 602340  400000          TRNE    C,IOIMPM        ;IMPROPER MODE?\r
23594         010276' 254000  007714'         JRST    ERRFIN          ;YES\r
23595         010277' 205440  014732'         MOVSI   RC,[SIXBIT /INPUT DATA ERROR DEVICE@/]\r
23596         010300' 602340  200000          TRNE    C,IODERR        ;DEVICE DATA ERROR?\r
23597 \r\fMACRO V.10                     PAGE 141-1\r
23598         I/O ROUTINES\r
23599 \r
23600         010301' 254000  007714'         JRST    ERRFIN          ;YES\r
23601         010302' 205440  014736'         MOVSI   RC,[SIXBIT /INPUT CHECKSUM OR PARITY ERROR DEVICE@/]\r
23602         010303' 606340  100000          TRNN    C,IODTER\r
23603         010304' 205440  014745'         MOVSI   RC,[SIXBIT /INPUT BLOCK TOO LARGE DEVICE@/]\r
23604         010305' 254000  007714'         JRST    ERRFIN\r
23605 \r
23606 \r\fMACRO V.10                     PAGE 142\r
23607         I/O ROUTINES\r
23608 \r
23609         010306' 260740  010307' OUTAB2: PUSHJ   PP,OUTTAB       ;PRINT TWO TABS\r
23610         010307' 201340  000011  OUTTAB: MOVEI   C,HT\r
23611         010310' 302340  000015  PRINT:  CAIE    C,CR            ;IS THIS A CR?\r
23612         010311' 306340  000012          CAIN    C,LF            ;OR LF?\r
23613         010312' 254000  010316'         JRST    OUTCR           ;YES, GO PROCESS\r
23614         010313' 306340  000014          CAIN    C,FF            ;FORM FEED?\r
23615         010314' 254000  010417'         JRST    OUTFF           ;YES, FORCE NEW PAGE\r
23616         010315' 254000  010325'         JRST    OUTL\r
23617 \r
23618         010316' 606600  777763  OUTCR:  TRNN    ER,ERRORS!LPTSW!TTYSW\r
23619         010317' 263740  000000          POPJ    PP,\r
23620         010320' 201340  000015          MOVEI   C,CR            ;CARRIAGE RETURN, LINE FEED\r
23621         010321' 260740  010325'         PUSHJ   PP,OUTL\r
23622         010322' 375000  013331'         SOSGE   LPP             ;END OF PAGE?\r
23623         010323' 661600  000100          TLO     IO,IOPAGE       ;YES, SET FLAG\r
23624         010324' 644340  000007          TRCA    C,7             ;FORM LINE FEED AND SKIP\r
23625 \r
23626         010325' 627600  000100  OUTL:   TLZN    IO,IOPAGE       ;NEW PAGE REQUESTED?\r
23627         010326' 254000  010377'         JRST    OUTC            ;NO\r
23628         010327' 321640  010377'         JUMP1   OUTC            ;YES, BYPASS IF PASS ONE\r
23629         010330' 261740  000007          PUSH    PP,C            ;SAVE C AND CS\r
23630         010331' 261740  000010          PUSH    PP,CS\r
23631         010332' 261740  000014          PUSH    PP,ER\r
23632         010333' 607600  240000          TLNN    IO,IOMSTR!IOPROG\r
23633         010334' 540600  013042'         HRR     ER,OUTSW\r
23634         010335' 603600  000400          TLNE    IO,IOCREF       ;IF DOING CREF OUTPUT NOW\r
23635         010336' 603640  002000          TLNE    FR,CREFSW       ;AND CREFFING (JUST IN CASE)\r
23636         010337' 254000  010341'         JRST    .+2\r
23637         010340' 260740  012274'         PUSHJ   PP,CLSC3        ;CLOSE IT OUT\r
23638         010341' 502617  000000          HLLM    IO,(PP)         ;SAVE THIS NEW STATE OF IO\r
23639         010342' 201340  000067          MOVEI   C,.LPP\r
23640         010343' 202340  013331'         MOVEM   C,LPP           ;SET NEW COUNTER\r
23641         010344' 201340  000015          MOVEI   C,CR\r
23642         010345' 260740  010377'         PUSHJ   PP,OUTC\r
23643         010346' 201340  000014          MOVEI   C,FF\r
23644         010347' 260740  010377'         PUSHJ   PP,OUTC         ;OUTPUT FORM FEED\r
23645         010350' 201400  013230'         MOVEI   CS,TBUF\r
23646         010351' 260740  002774'         PUSHJ   PP,OUTAS0       ;OUTPUT TITLE\r
23647                                 ;       MOVEI   CS,VBUF\r
23648                                 ;       PUSHJ   PP,OUTAS0       ;OUTPUT VERSION\r
23649         010352' 201400  012566'         MOVEI   CS,DBUF\r
23650         010353' 260740  002774'         PUSHJ   PP,OUTAS0       ; AND DATE\r
23651         010354' 200340  013414'         MOVE    C,PAGENO\r
23652         010355' 260740  002765'         PUSHJ   PP,DNC          ;OUTPUT PAGE NUMBER\r
23653         010356' 357000  013341'         AOSG    PAGEN.          ;FIRST PAGE OF THIS NUMBER?\r
23654         010357' 254000  010364'         JRST    OUTL1           ;YES\r
23655         010360' 201340  000055          MOVEI   C,"-"           ;NO, PUT OUT MODIFIER\r
23656         010361' 260740  010377'         PUSHJ   PP,OUTC\r
23657         010362' 200340  013341'         MOVE    C,PAGEN.\r
23658         010363' 260740  002765'         PUSHJ   PP,DNC\r
23659         010364' 260740  010316' OUTL1:  PUSHJ   PP,OUTCR\r
23660         010365' 201400  013250'         MOVEI CS,DEVBUF\r
23661         010366' 260740  002774'         PUSHJ PP,OUTAS0\r
23662 \r\fMACRO V.10                     PAGE 142-1\r
23663         I/O ROUTINES\r
23664 \r
23665         010367' 550400  013100'         HRRZ    CS,SUBTTX       ;SWITCH FOR SUB-TITLE\r
23666         010370' 332010  000000          SKIPE   0(CS)           ;IS THERE A SUB-TITLE?\r
23667         010371' 260740  010307'         PUSHJ   PP,OUTTAB       ;YES, OUTPUT A TAB\r
23668         010372' 260740  002420'         PUSHJ   PP,SOUT20       ;OUTPUT ASCII WITH CARRIAGE RETURN\r
23669         010373' 260740  010316'         PUSHJ   PP,OUTCR\r
23670         010374' 262740  000014          POP     PP,ER\r
23671         010375' 262740  000010          POP     PP,CS           ;RESTORE REGISTERS\r
23672         010376' 262740  000007          POP     PP,C\r
23673 \r
23674         010377' 602600  777761  OUTC:   TRNE    ER,ERRORS!TTYSW\r
23675         010400' 260740  007770'         PUSHJ   PP,TYO\r
23676         010401' 606600  000002          TRNN    ER,LPTSW\r
23677         010402' 263740  000000          POPJ    PP,\r
23678         010403' 377000  012654' OUTLST: SOSG    LSTBUF+2        ;BUFFER FULL?\r
23679         010404' 260740  010140'         PUSHJ   PP,DMPLST       ;YES, DUMP IT\r
23680                                 COMMENT $ REG DOESN'T LIKE THIS FEATURE ANY MORE 9-5-72\r
23681                                 $\r
23682         010405' 136340  012653'         IDPB    C,LSTBUF+1      ;STORE BYTE\r
23683         010406' 263740  000000          POPJ    PP,             ;EXIT\r
23684 \r
23685 \r\fMACRO V.10                     PAGE 143\r
23686         I/O ROUTINES\r
23687 \r
23688         010407' 260740  000227' PAGE0:  PUSHJ   PP,STOUTS       ;PAGE PSEUDO-OP\r
23689         010410' 603600  000400  OUTFF1: TLNE    IO,IOCREF       ;CURRENTLY DOING CREF?\r
23690         010411' 603600  040000          TLNE    IO,IOPROG       ;AND NOT XLISTED?\r
23691         010412' 254000  010417'         JRST    OUTFF           ;NO\r
23692         010413' 540600  013042'         HRR     ER,OUTSW\r
23693         010414' 260740  012274'         PUSHJ   PP,CLSCRF\r
23694         010415' 260740  010316'         PUSHJ   PP,OUTCR\r
23695         010416' 541600  000000          HRRI    ER,0\r
23696         010417' 661600  000100  OUTFF:  TLO     IO,IOPAGE\r
23697         010420' 476000  013341' OUTFF2: SETOM   PAGEN.\r
23698         010421' 350000  013414'         AOS     PAGENO\r
23699         010422' 263740  000000          POPJ    PP,\r
23700 \r
23701         010423' 231100  165140  TIMOUT: IDIVI   2,^D60*^D1000\r
23702         010424' 231100  000074  TIMOU1: IDIVI   2,^D60\r
23703         010425' 261740  000003          PUSH    PP,3            ;SAVE MINUTES\r
23704         010426' 260740  010432'         PUSHJ   PP,OTOD         ;STORE HOURS\r
23705         010427' 201140  000072          MOVEI   3,":"           ;SEPARATE BY COLON\r
23706         010430' 136140  000010          IDPB    3,CS\r
23707         010431' 262740  000002          POP     PP,2            ;STORE MINUTES\r
23708         010432' 231100  000012  OTOD:   IDIVI   2,^D10\r
23709         010433' 271100  000060          ADDI    2,60            ;FORM ASCII\r
23710         010434' 136100  000010          IDPB    2,CS\r
23711         010435' 271140  000060          ADDI    3,60\r
23712         010436' 136140  000010          IDPB    3,CS\r
23713         010437' 263740  000000          POPJ    PP,\r
23714 \r
23715         010440' 231040  000037  DATOUT: IDIVI   1,^D31          ;GET DAY\r
23716         010441' 271100  000001          ADDI    2,1\r
23717         010442' 307100  000011          CAIG    2,^D9           ;TWO DIGITS?\r
23718         010443' 271100  117540          ADDI    2,7760*^D10     ;NO, PUT IN SPACE\r
23719         010444' 260740  010432'         PUSHJ   PP,OTOD         ;STORE DAY\r
23720         010445' 231040  000014          IDIVI   1,^D12          ;GET MONTH\r
23721         010446' 200102  010454'         MOVE    2,DTAB(2)       ;GET MNEMONIC\r
23722         010447' 136100  000010          IDPB    2,CS            ;DEPOSIT RIGHT MOST 7 BITS\r
23723         010450' 242100  777771          LSH     2,-7            ;SHIFT NEXT IN\r
23724         010451' 326100  010447'         JUMPN   2,.-2           ;DEPOSIT IFIT EXISTS\r
23725         010452' 201101  000100          MOVEI   2,^D64(1)       ;GET YEAR\r
23726         010453' 254000  010432'         JRST    OTOD            ;STORE IT\r
23727 \r
23728         010454' 133164  062455  DTAB:   "-NAJ-"\r
23729         010455' 133024  261455          "-BEF-"\r
23730         010456' 133224  063255          "-RAM-"\r
23731         010457' 133225  020255          "-RPA-"\r
23732         010460' 133314  063255          "-YAM-"\r
23733         010461' 133165  262455          "-NUJ-"\r
23734         010462' 133145  262455          "-LUJ-"\r
23735         010463' 133075  260255          "-GUA-"\r
23736         010464' 133204  264655          "-PES-"\r
23737         010465' 133244  163655          "-TCO-"\r
23738         010466' 133264  763455          "-VON-"\r
23739         010467' 133034  261055          "-CED-"\r
23740 \r\fMACRO V.10                     PAGE 144\r
23741         MACHINE INSTRUCTION SEARCH ROUTINES\r
23742 \r
23743                                 SUBTTL  MACHINE INSTRUCTION SEARCH ROUTINES\r
23744                                 IFE OPHSH,<\r
23745         010470' 201440  000000  OPTSCH: MOVEI   RC,0\r
23746         010471' 201240  000400          MOVEI   ARG,1B^L<OP1END-OP1TOP> ;SET UP INDEX\r
23747         010472' 201300  000200          MOVEI   V,1B^L<OP1END-OP1TOP>/2 ;SET UP INCREMENT\r
23748 \r
23749         010473' 316005  010526' OPT1A:  CAMN    AC0,OP1TOP(ARG) ;ARE WE POINTING AT SYMBOL?\r
23750         010474' 254000  010505'         JRST    OPT1D           ;YES, GET THE CODE\r
23751         010475' 322300  000446'         JUMPE   V,POPOUT        ;TEST FOR END\r
23752         010476' 311005  010526'         CAML    AC0,OP1TOP(ARG) ;NO, SHOULD WE MOVE DOWN?\r
23753         010477' 674240  000006          TDOA    ARG,V           ;NO, INCREMENT\r
23754         010500' 274240  000006  OPT1B:  SUB     ARG,V           ;YES, DECREMENT\r
23755         010501' 240300  777777          ASH     V,-1            ;HALVE INCREMENT\r
23756         010502' 307240  000766          CAIG    ARG,OP1END-OP1TOP       ;ARE WE OUT OF BOUNDS?\r
23757         010503' 254000  010473'         JRST    OPT1A           ;NO, TRY AGAIN\r
23758         010504' 254000  010500'         JRST    OPT1B           ;YES, BRING IT DOWN A PEG\r
23759                                 >\r
23760 \r
23761                                 IFN OPHSH,<\r
23762                                 OPTSCH: MOVE    ARG,AC0         ;GET SIXBIT NAME\r
23763                                         TLZ     ARG,400000      ;CLEAR SIGN BIT\r
23764                                         IDIVI   ARG,PRIME       ;REM. GOES IN V\r
23765                                         CAMN    AC0,OP1TOP(V)   ;ARE WE POINTING AT SYMBOL?\r
23766                                         JRST    OPT1D           ;YES\r
23767                                         SKIPN   OP1TOP(V)       ;TEST FOR END\r
23768                                         POPJ    PP,             ;SYMBOL NOT FOUND\r
23769                                         HLRZ    RC,ARG          ;SAVE LHS OF QUOTIENT\r
23770                                         SKIPA   ARG,RC          ;GET IT BACK\r
23771                                 OPT1A:  ADDI    ARG,(RC)        ;INCREMENT ARG\r
23772                                         ADDI    V,(ARG)         ;QUADRATIC INCREASE TO V\r
23773                                         CAIL    V,PRIME         ;V IS MODULO PRIME\r
23774                                         JRST    [SUBI   V,PRIME\r
23775                                                 JRST    .-1]\r
23776                                         CAMN    AC0,OP1TOP(V)   ;IS THIS IT?\r
23777                                         JRST    OPT1D           ;YES\r
23778                                         SKIPE   OP1TOP(V)       ;END?\r
23779                                         JRST    OPT1A           ;TRY AGAIN\r
23780                                         POPJ    PP,             ;FAILED\r
23781                                 >\r
23782         010505'                 OPT1D:\r
23783                                 IFN OPHSH,<     SETZ    RC,     ;CLEAR RELOCATION\r
23784                                         MOVE    ARG,V           ;GET INDEX IN RIGHT ACC.>\r
23785         010505' 231240  000004          IDIVI   ARG,4           ;ARG HAS INDEX USED IN OPTTAB\r
23786         010506' 135306  010523'         LDB     V,OPTTAB(V)     ;V HAS INDEX TO OPTTAB\r
23787         010507' 301300  000700          CAIL    V,700           ;PSEUDO-OP OR IO INSTRUCTION?\r
23788         010510' 254000  010516'         JRST    OPT1G           ;YES\r
23789         010511' 241300  777767          ROT     V,-^D9          ;LEFT JUSTIFY\r
23790         010512' 541300  004354'         HRRI    V,OP            ;POINT TO BASIC FORMAT\r
23791         010513' 350017  000000  OPT1F:  AOS     0(PP)           ;SET FOR SKIP EXIT\r
23792         010514' 201140  000003          MOVEI   SDEL,%OP        ;SET OP-CODE CROSS-REF FLAG\r
23793         010515' 254000  012221'         JRST    CREF            ;TEST AND OUTPUT, AC0=SYMBOL, V=VALUE\r
23794 \r
23795         010516' 327000  010521' OPT1G:  JUMPG   AC0,.+3         ;IF ".","$",OR "%" USE TABLE 1\r
23796 \r\fMACRO V.10                     PAGE 144-1\r
23797         MACHINE INSTRUCTION SEARCH ROUTINES\r
23798 \r
23799         010517' 607000  200000          TLNN    AC0,200000      ;PSEUDO-OP OR IO INST., TEST FOR PROPER TABLE\r
23800         010520' 334306  011164'         SKIPA   V,OP2TAB-700(V) ;2ND TABLE, FIRST LETTER IS "A" TO "O"\r
23801         010521' 200306  011120'         MOVE    V,OP1TAB-700(V) ;1ST TABLE, ..."P" TO "Z"\r
23802         010522' 254000  010513'         JRST    OPT1F           ;EXIT\r
23803 \r
23804         010523'                 OPTTAB:\r
23805         010523' 001105  011514' IFE OPHSH,<     POINT   9,OP1COD-1(ARG),35>\r
23806         010524' 331105  011515'         POINT   9,OP1COD  (ARG), 8\r
23807         010525' 221105  011515'         POINT   9,OP1COD  (ARG),17\r
23808         010526' 111105  011515'         POINT   9,OP1COD  (ARG),26\r
23809                                 IFN OPHSH,<     POINT   9,OP1COD  (ARG),35>\r
23810 \r
23811 \r\fMACRO V.10                     PAGE 145\r
23812         MACHINE INSTRUCTION SEARCH ROUTINES\r
23813 \r
23814                                 IFDEF .XCREF,<  .XCREF  ;DON'T CREF THIS MESS>\r
23815                                 IFE OPHSH,<\r
23816         010526'                         RELOC   .-1\r
23817         010526'                 OP1TOP:\r
23818         010527'                         RELOC\r
23819 \r
23820                                         IF1,<N1=0\r
23821                                         DEFINE  X  <N1=N1+1 ;>>\r
23822 \r
23823                                         IF2, <\r
23824                         000044          N2=^D36\r
23825                         000000          CC=0\r
23826         011515'                         RELOC   OP1COD\r
23827         010527'                         RELOC\r
23828                                 DEFINE  X (SYMBOL,CODE) \r
23829                                 <SIXBIT /SYMBOL/\r
23830                                 CC=CC+CODE_<N2=N2-9>\r
23831                                 IFE N2, <OUTLIT>>\r
23832 \r
23833                                 DEFINE  OUTLIT  <\r
23834                                         RELOC\r
23835                                         +CC\r
23836                                         RELOC\r
23837                                 N2=^D36+<CC=0>>>\r
23838                                         SYN X,XX                ;JUST THE SAME MACRO>\r
23839 \r\fMACRO V.10                     PAGE 146\r
23840         MACHINE INSTRUCTION SEARCH ROUTINES\r
23841 \r
23842 \r
23843                                 IFN OPHSH,<\r
23844                                 DEFINE XX (SB,CD)<>             ;A NUL MACRO\r
23845                                 OP1TOP: IF1,<   BLOCK PRIME>\r
23846                                 IF1,<DEFINE X (SB,CD)<>>\r
23847                                 IF2,<\r
23848                                 DEFINE OPSTOR (RM)<.$'RM=.$'RM+<OPCODE_<9*<3-R&3>>>>\r
23849                                 \r
23850                                 DEFINE X (SB,CD)<\r
23851                                 SXB=<SIXBIT /SB/>\r
23852                                 Q=SXB&-1_-1/PRIME\r
23853                                 R=SXB&-1_-1-Q*PRIME\r
23854                                 H=Q_-22&777\r
23855                                 TRY=1\r
23856                                 OPCODE=CD\r
23857                                 ITEM Q,\R\r
23858                                 IFL PRIME-TRY,<PRINTX HASH FAILURE>>\r
23859                                 \r
23860                                 DEFINE ITEM (QT,RM)<\r
23861                                 IFN .%'RM,<R=R+H\r
23862                                 IFL PRIME-R,<R=R-R/PRIME*PRIME>\r
23863                                 H=H+Q_-22&777\r
23864                                 IFGE PRIME-<TRY=TRY+1>,<ITEM Q,\R>>\r
23865                                 IFE .%'RM,<.%'RM=SXB\r
23866                                 OPSTOR \<R/4>>>>\r
23867                                 IF1,<\r
23868                                 DEFINE GETSYM (N)<.%'N=0>\r
23869                                 \r
23870                                 N=0\r
23871                                         XLIST\r
23872                                 REPEAT PRIME,<GETSYM \N\r
23873                                 N=N+1>\r
23874                                 DEFINE GETSYM (N)<.$'N=0>\r
23875                                 N=0\r
23876                                 REPEAT <PRIME/4+1>,<GETSYM \N\r
23877                                 N=N+1>\r
23878                                 >\r
23879                                         LIST>\r
23880 \r
23881 \r\fMACRO V.10                     PAGE 147\r
23882         MACHINE INSTRUCTION SEARCH ROUTINES\r
23883 \r
23884                                 IFN OPHSH,<             ;PUT THE MOST USED OP CODES FIRST\r
23885                                 X       JRST  , 254\r
23886                                 X       PUSHJ , 260\r
23887                                 X       POPJ  , 263\r
23888                                 X       PUSH  , 261\r
23889                                 X       POP   , 262\r
23890                                 X       AOS   , 350\r
23891                                 X       ASCIZ , 701\r
23892                                 X       CALLI , 047\r
23893                                 X       EXTERN, 724\r
23894                                 X       INTERN, 744\r
23895                                 X       JFCL  , 255\r
23896                                 X       JSP   , 265\r
23897                                 X       MOVE  , 200\r
23898                                 X       MOVEI , 201\r
23899                                 X       MOVEM , 202\r
23900                                 X       SETZM , 402\r
23901                                 X       SIXBIT, 717\r
23902                                 X       SOS   , 370\r
23903                                 X       TLNE  , 603\r
23904                                 X       TLNN  , 607\r
23905                                 X       TLO   , 661\r
23906                                 X       TLZ   , 621\r
23907                                 X       TLZA  , 625\r
23908                                 X       TLZE  , 623\r
23909                                 X       TLZN  , 627\r
23910                                 X       TRNE  , 602\r
23911                                 X       TRNN  , 606\r
23912                                 X       TRZ   , 620\r
23913                                 >\r
23914 \r\fMACRO V.10                     PAGE 148\r
23915         MACHINE INSTRUCTION SEARCH ROUTINES\r
23916 \r
23917         010527' 414444  000000  X       ADD   , 270\r
23918         010530' 414444  420000  X       ADDB  , 273\r
23919         010531' 414444  510000  X       ADDI  , 271\r
23920         010532' 414444  550000  X       ADDM  , 272\r
23921         011515' 270273  271272\r
23922 \r
23923         010533' 415644  000000  X       AND   , 404\r
23924         010534' 415644  420000  X       ANDB  , 407\r
23925         010535' 415644  434100  X       ANDCA , 410\r
23926         010536' 415644  434142  X       ANDCAB, 413\r
23927         011516' 404407  410413\r
23928         010537' 415644  434151  X       ANDCAI, 411\r
23929         010540' 415644  434155  X       ANDCAM, 412\r
23930         010541' 415644  434200  X       ANDCB , 440\r
23931         010542' 415644  434242  X       ANDCBB, 443\r
23932         011517' 411412  440443\r
23933         010543' 415644  434251  X       ANDCBI, 441\r
23934         010544' 415644  434255  X       ANDCBM, 442\r
23935         010545' 415644  435500  X       ANDCM , 420\r
23936         010546' 415644  435542  X       ANDCMB, 423\r
23937         011520' 441442  420423\r
23938         010547' 415644  435551  X       ANDCMI, 421\r
23939         010550' 415644  435555  X       ANDCMM, 422\r
23940         010551' 415644  510000  X       ANDI  , 405\r
23941         010552' 415644  550000  X       ANDM  , 406\r
23942         011521' 421422  405406\r
23943 \r
23944         010553' 415742  525600  X       AOBJN , 253\r
23945         010554' 415742  526000  X       AOBJP , 252\r
23946 \r
23947         010555' 415752  000000  X       AOJ   , 340\r
23948         010556' 415752  410000  X       AOJA  , 344\r
23949         011522' 253252  340344\r
23950         010557' 415752  450000  X       AOJE  , 342\r
23951         010560' 415752  470000  X       AOJG  , 347\r
23952         010561' 415752  474500  X       AOJGE , 345\r
23953         010562' 415752  540000  X       AOJL  , 341\r
23954         011523' 342347  345341\r
23955         010563' 415752  544500  X       AOJLE , 343\r
23956         010564' 415752  560000  X       AOJN  , 346\r
23957 \r
23958         010565' 415763  000000  XX      AOS   , 350\r
23959         010566' 415763  410000  X       AOSA  , 354\r
23960         011524' 343346  350354\r
23961         010567' 415763  450000  X       AOSE  , 352\r
23962         010570' 415763  470000  X       AOSG  , 357\r
23963         010571' 415763  474500  X       AOSGE , 355\r
23964         010572' 415763  540000  X       AOSL  , 351\r
23965         011525' 352357  355351\r
23966         010573' 415763  544500  X       AOSLE , 353\r
23967         010574' 415763  560000  X       AOSN  , 356\r
23968         010575' 416247  000000  X       ARG   , 320\r
23969                                 IFN IIISW,<X    ASCID , 771>\r
23970 \r\fMACRO V.10                     PAGE 148-1\r
23971         MACHINE INSTRUCTION SEARCH ROUTINES\r
23972 \r
23973         010576' 416343  515100  X       ASCII , 700\r
23974         011526' 353356  320700\r
23975         010577' 416343  517200  XX      ASCIZ , 701\r
23976 \r
23977         010600' 416350  000000  X       ASH   , 240\r
23978         010601' 416350  430000  X       ASHC  , 244\r
23979 \r
23980         010602' 416365  606062  X       ASUPPR, 705\r
23981         011527' 701240  244705\r
23982         010603' 425453  510000  X       BLKI  , 702\r
23983         010604' 425453  570000  X       BLKO  , 703\r
23984         010605' 425457  435300  X       BLOCK , 704\r
23985 \r
23986         010606' 425464  000000  X       BLT   , 251\r
23987         011530' 702703  704251\r
23988 \r
23989         010607' 427164  450000  X       BYTE  , 707\r
23990 \r
23991         010610' 434151  000000  XX      CAI   , 300\r
23992         010611' 434151  410000  X       CAIA  , 304\r
23993         010612' 434151  450000  X       CAIE  , 302\r
23994         011531' 707300  304302\r
23995         010613' 434151  470000  X       CAIG  , 307\r
23996         010614' 434151  474500  X       CAIGE , 305\r
23997         010615' 434151  540000  X       CAIL  , 301\r
23998         010616' 434151  544500  X       CAILE , 303\r
23999         011532' 307305  301303\r
24000         010617' 434151  560000  X       CAIN  , 306\r
24001 \r
24002         010620' 434154  540000  X       CALL  , 040\r
24003         010621' 434154  545100  XX      CALLI , 047\r
24004 \r
24005         010622' 434155  000000  XX      CAM   , 310\r
24006         011533' 306040  047310\r
24007         010623' 434155  410000  X       CAMA  , 314\r
24008         010624' 434155  450000  X       CAME  , 312\r
24009         010625' 434155  470000  X       CAMG  , 317\r
24010         010626' 434155  474500  X       CAMGE , 315\r
24011         011534' 314312  317315\r
24012         010627' 434155  540000  X       CAML  , 311\r
24013         010630' 434155  544500  X       CAMLE , 313\r
24014         010631' 434155  560000  X       CAMN  , 316\r
24015 \r
24016         010632' 435445  416200  XX      CLEAR , 400\r
24017         011535' 311313  316400\r
24018         010633' 435445  416242  XX      CLEARB, 403\r
24019         010634' 435445  416251  XX      CLEARI, 401\r
24020         010635' 435445  416255  XX      CLEARM, 402\r
24021 \r
24022         010636' 435457  634500  X       CLOSE , 070\r
24023         011536' 403401  402070\r
24024         010637' 435755  554556  X       COMMEN, 770\r
24025 \r
24026 \r\fMACRO V.10                     PAGE 148-2\r
24027         MACHINE INSTRUCTION SEARCH ROUTINES\r
24028 \r
24029 \r
24030         010640' 435756  510000  X       CONI  , 710\r
24031         010641' 435756  570000  X       CONO  , 711\r
24032         010642' 435756  635700  X       CONSO , 712\r
24033         011537' 770710  711712\r
24034         010643' 435756  637200  X       CONSZ , 713\r
24035 \r
24036         010644' 444164  411600  XX      DATA. , 020\r
24037 \r
24038         010645' 444164  415100  X       DATAI , 714\r
24039         010646' 444164  415700  X       DATAO , 715\r
24040         011540' 713020  714715\r
24041         010647' 444543  000000  X       DEC   , 716\r
24042         010650' 444546  515645  X       DEFINE, 717\r
24043         010651' 444560  504163  X       DEPHAS, 720\r
24044 \r
24045         010652' 444656  000000  X       DFN   , 131\r
24046         011541' 716717  720131\r
24047 \r
24048         010653' 445166  000000  X       DIV   , 234\r
24049         010654' 445166  420000  X       DIVB  , 237\r
24050         010655' 445166  510000  X       DIVI  , 235\r
24051         010656' 445166  550000  X       DIVM  , 236\r
24052         011542' 234237  235236\r
24053 \r
24054 \r
24055         010657' 446042  000000  X       DPB   , 137\r
24056         010660' 446042  510000  X       DPBI  , 136\r
24057 \r
24058         010661' 455644  000000  X       END   , 721\r
24059 \r
24060         010662' 455664  456200  X       ENTER , 077\r
24061         011543' 137136  721077\r
24062 \r
24063         010663' 455664  627100  X       ENTRY , 722\r
24064 \r
24065         010664' 456166  000000  X       EQV   , 444\r
24066         010665' 456166  420000  X       EQVB  , 447\r
24067         010666' 456166  510000  X       EQVI  , 445\r
24068         011544' 722444  447445\r
24069         010667' 456166  550000  X       EQVM  , 446\r
24070 \r
24071         010670' 457043  500000  X       EXCH  , 250\r
24072 \r
24073         010671' 457060  000000  X       EXP   , 723\r
24074         010672' 457064  456256  XX      EXTERN, 724\r
24075         011545' 446250  723724\r
24076 \r
24077         010673' 464144  000000  X       FAD   , 140\r
24078         010674' 464144  420000  X       FADB  , 143\r
24079         010675' 464144  540000  X       FADL  , 141\r
24080         010676' 464144  550000  X       FADM  , 142\r
24081         011546' 140143  141142\r
24082 \r\fMACRO V.10                     PAGE 148-3\r
24083         MACHINE INSTRUCTION SEARCH ROUTINES\r
24084 \r
24085 \r
24086         010677' 464144  620000  X       FADR  , 144\r
24087         010700' 464144  624200  X       FADRB , 147\r
24088         010701' 464144  625100  X       FADRI , 145\r
24089         010702' 464144  625500  X       FADRM , 146\r
24090         011547' 144147  145146\r
24091 \r
24092         010703' 464466  000000  X       FDV   , 170\r
24093         010704' 464466  420000  X       FDVB  , 173\r
24094         010705' 464466  540000  X       FDVL  , 171\r
24095         010706' 464466  550000  X       FDVM  , 172\r
24096         011550' 170173  171172\r
24097 \r
24098         010707' 464466  620000  X       FDVR  , 174\r
24099         010710' 464466  624200  X       FDVRB , 177\r
24100         010711' 464466  625100  X       FDVRI , 175\r
24101         010712' 464466  625500  X       FDVRM , 176\r
24102         011551' 174177  175176\r
24103 \r
24104         010713' 465156  160000  XX      FIN.  , 021\r
24105 \r
24106 \r
24107         010714' 465560  000000  X       FMP   , 160\r
24108         010715' 465560  420000  X       FMPB  , 163\r
24109         010716' 465560  540000  X       FMPL  , 161\r
24110         011552' 021160  163161\r
24111         010717' 465560  550000  X       FMPM  , 162\r
24112 \r
24113 \r\fMACRO V.10                     PAGE 149\r
24114         MACHINE INSTRUCTION SEARCH ROUTINES\r
24115 \r
24116         010720' 465560  620000  X       FMPR  , 164\r
24117         010721' 465560  624200  X       FMPRB , 167\r
24118         010722' 465560  625100  X       FMPRI , 165\r
24119         011553' 162164  167165\r
24120         010723' 465560  625500  X       FMPRM , 166\r
24121 \r
24122         010724' 466342  000000  X       FSB   , 150\r
24123         010725' 466342  420000  X       FSBB  , 153\r
24124         010726' 466342  540000  X       FSBL  , 151\r
24125         011554' 166150  153151\r
24126         010727' 466342  550000  X       FSBM  , 152\r
24127 \r
24128         010730' 466342  620000  X       FSBR  , 154\r
24129         010731' 466342  624200  X       FSBRB , 157\r
24130         010732' 466342  625100  X       FSBRI , 155\r
24131         011555' 152154  157155\r
24132         010733' 466342  625500  X       FSBRM , 156\r
24133 \r
24134         010734' 466343  000000  X       FSC   , 132\r
24135 \r
24136         010735' 474564  636463  X       GETSTS, 062\r
24137 \r
24138 \r\fMACRO V.10                     PAGE 150\r
24139         MACHINE INSTRUCTION SEARCH ROUTINES\r
24140 \r
24141         010736' 504154  640000  X       HALT  , 725\r
24142         011556' 156132  062725\r
24143         010737' 505163  454700  X       HISEG , 706\r
24144 \r
24145         010740' 505454  000000  X       HLL   , 500\r
24146         010741' 505454  450000  X       HLLE  , 530\r
24147         010742' 505454  455100  X       HLLEI , 531\r
24148         011557' 706500  530531\r
24149         010743' 505454  455500  X       HLLEM , 532\r
24150         010744' 505454  456300  X       HLLES , 533\r
24151         010745' 505454  510000  X       HLLI  , 501\r
24152         010746' 505454  550000  X       HLLM  , 502\r
24153         011560' 532533  501502\r
24154         010747' 505454  570000  X       HLLO  , 520\r
24155         010750' 505454  575100  X       HLLOI , 521\r
24156         010751' 505454  575500  X       HLLOM , 522\r
24157         010752' 505454  576300  X       HLLOS , 523\r
24158         011561' 520521  522523\r
24159         010753' 505454  630000  X       HLLS  , 503\r
24160         010754' 505454  720000  X       HLLZ  , 510\r
24161         010755' 505454  725100  X       HLLZI , 511\r
24162         010756' 505454  725500  X       HLLZM , 512\r
24163         011562' 503510  511512\r
24164         010757' 505454  726300  X       HLLZS , 513\r
24165 \r
24166         010760' 505462  000000  X       HLR   , 544\r
24167         010761' 505462  450000  X       HLRE  , 574\r
24168         010762' 505462  455100  X       HLREI , 575\r
24169         011563' 513544  574575\r
24170         010763' 505462  455500  X       HLREM , 576\r
24171         010764' 505462  456300  X       HLRES , 577\r
24172         010765' 505462  510000  X       HLRI  , 545\r
24173         010766' 505462  550000  X       HLRM  , 546\r
24174         011564' 576577  545546\r
24175         010767' 505462  570000  X       HLRO  , 564\r
24176         010770' 505462  575100  X       HLROI , 565\r
24177         010771' 505462  575500  X       HLROM , 566\r
24178         010772' 505462  576300  X       HLROS , 567\r
24179         011565' 564565  566567\r
24180         010773' 505462  630000  X       HLRS  , 547\r
24181         010774' 505462  720000  X       HLRZ  , 554\r
24182         010775' 505462  725100  X       HLRZI , 555\r
24183         010776' 505462  725500  X       HLRZM , 556\r
24184         011566' 547554  555556\r
24185         010777' 505462  726300  X       HLRZS , 557\r
24186 \r
24187 \r\fMACRO V.10                     PAGE 151\r
24188         MACHINE INSTRUCTION SEARCH ROUTINES\r
24189 \r
24190         011000' 506254  000000  X       HRL   , 504\r
24191         011001' 506254  450000  X       HRLE  , 534\r
24192         011002' 506254  455100  X       HRLEI , 535\r
24193         011567' 557504  534535\r
24194         011003' 506254  455500  X       HRLEM , 536\r
24195         011004' 506254  456300  X       HRLES , 537\r
24196         011005' 506254  510000  X       HRLI  , 505\r
24197         011006' 506254  550000  X       HRLM  , 506\r
24198         011570' 536537  505506\r
24199         011007' 506254  570000  X       HRLO  , 524\r
24200         011010' 506254  575100  X       HRLOI , 525\r
24201         011011' 506254  575500  X       HRLOM , 526\r
24202         011012' 506254  576300  X       HRLOS , 527\r
24203         011571' 524525  526527\r
24204         011013' 506254  630000  X       HRLS  , 507\r
24205         011014' 506254  720000  X       HRLZ  , 514\r
24206         011015' 506254  725100  X       HRLZI , 515\r
24207         011016' 506254  725500  X       HRLZM , 516\r
24208         011572' 507514  515516\r
24209         011017' 506254  726300  X       HRLZS , 517\r
24210 \r
24211         011020' 506262  000000  X       HRR   , 540\r
24212         011021' 506262  450000  X       HRRE  , 570\r
24213         011022' 506262  455100  X       HRREI , 571\r
24214         011573' 517540  570571\r
24215         011023' 506262  455500  X       HRREM , 572\r
24216         011024' 506262  456300  X       HRRES , 573\r
24217         011025' 506262  510000  X       HRRI  , 541\r
24218         011026' 506262  550000  X       HRRM  , 542\r
24219         011574' 572573  541542\r
24220         011027' 506262  570000  X       HRRO  , 560\r
24221         011030' 506262  575100  X       HRROI , 561\r
24222         011031' 506262  575500  X       HRROM , 562\r
24223         011032' 506262  576300  X       HRROS , 563\r
24224         011575' 560561  562563\r
24225         011033' 506262  630000  X       HRRS  , 543\r
24226         011034' 506262  720000  X       HRRZ  , 550\r
24227         011035' 506262  725100  X       HRRZI , 551\r
24228         011036' 506262  725500  X       HRRZM , 552\r
24229         011576' 543550  551552\r
24230         011037' 506262  726300  X       HRRZS , 553\r
24231 \r
24232         011040' 514260  000000  X       IBP   , 133\r
24233 \r
24234         011041' 514451  660000  X       IDIV  , 230\r
24235         011042' 514451  664200  X       IDIVB , 233\r
24236         011577' 553133  230233\r
24237         011043' 514451  665100  X       IDIVI , 231\r
24238         011044' 514451  665500  X       IDIVM , 232\r
24239 \r
24240         011045' 514460  420000  X       IDPB  , 136\r
24241 \r
24242         011046' 514621  000000  X       IF1   , 726\r
24243 \r\fMACRO V.10                     PAGE 151-1\r
24244         MACHINE INSTRUCTION SEARCH ROUTINES\r
24245 \r
24246         011600' 231232  136726\r
24247         011047' 514622  000000  X       IF2   , 727\r
24248         011050' 514642  000000  X       IFB   , 730\r
24249         011051' 514644  454600  X       IFDEF , 731\r
24250         011052' 514644  514600  X       IFDIF , 732\r
24251         011601' 727730  731732\r
24252         011053' 514645  000000  X       IFE   , 733\r
24253         011054' 514647  000000  X       IFG   , 734\r
24254         011055' 514647  450000  X       IFGE  , 735\r
24255         011056' 514651  445600  X       IFIDN , 736\r
24256         011602' 733734  735736\r
24257         011057' 514654  000000  X       IFL   , 737\r
24258         011060' 514654  450000  X       IFLE  , 740\r
24259         011061' 514656  000000  X       IFN   , 741\r
24260         011062' 514656  420000  X       IFNB  , 742\r
24261         011603' 737740  741742\r
24262         011063' 514656  444546  X       IFNDEF, 743\r
24263 \r
24264         011064' 515444  420000  X       ILDB  , 134\r
24265 \r
24266         011065' 515565  540000  X       IMUL  , 220\r
24267         011066' 515565  544200  X       IMULB , 223\r
24268         011604' 743134  220223\r
24269         011067' 515565  545100  X       IMULI , 221\r
24270         011070' 515565  545500  X       IMULM , 222\r
24271 \r
24272         011071' 515600  000000  X       IN    , 056\r
24273         011072' 515616  000000  XX      IN.   , 016\r
24274         011605' 221222  056016\r
24275         011073' 515642  654600  X       INBUF , 064\r
24276         011074' 515646  160000  XX      INF.  , 026\r
24277         011075' 515651  640000  X       INIT  , 041\r
24278         011076' 515660  656400  X       INPUT , 066\r
24279         011606' 064026  041066\r
24280 \r
24281         011077' 515664  456256  XX      INTERN, 744\r
24282 \r
24283         011100' 515762  000000  X       IOR   , 434\r
24284         011101' 515762  420000  X       IORB  , 437\r
24285         011102' 515762  510000  X       IORI  , 435\r
24286         011607' 744434  437435\r
24287         011103' 515762  550000  X       IORM  , 436\r
24288 \r
24289 \r
24290         011104' 515767  440000  X       IOWD  , 745\r
24291         011105' 516260  000000  X       IRP   , 746\r
24292         011106' 516260  430000  X       IRPC  , 747\r
24293         011610' 436745  746747\r
24294         011107' 524362  710000  X       JCRY  , 750\r
24295         011110' 524362  712000  X       JCRY0 , 751\r
24296         011111' 524362  712100  X       JCRY1 , 752\r
24297         011112' 524556  000000  X       JEN   , 753\r
24298         011611' 750751  752753\r
24299 \r\fMACRO V.10                     PAGE 151-2\r
24300         MACHINE INSTRUCTION SEARCH ROUTINES\r
24301 \r
24302 \r
24303         011113' 524643  540000  XX      JFCL  , 255\r
24304 \r
24305         011114' 524646  570000  X       JFFO  , 243\r
24306         011115' 524657  660000  X       JFOV  , 765\r
24307         011116' 525766  000000  X       JOV   , 754\r
24308         011612' 255243  765754\r
24309 \r
24310         011117' 526241  000000  X       JRA   , 267\r
24311         011120' 526263  640000  XX      JRST  , 254\r
24312 \r
24313         011121' 526263  644600  X       JRSTF , 755\r
24314 \r
24315         011122' 526341  000000  X       JSA   , 266\r
24316         011613' 267254  755266\r
24317         011123' 526360  000000  XX      JSP   , 265\r
24318         011124' 526362  000000  X       JSR   , 264\r
24319 \r
24320         011125' 526555  600000  XX      JUMP  , 320\r
24321         011126' 526555  604100  XX      JUMPA , 324\r
24322         011614' 265264  320324\r
24323         011127' 526555  604500  X       JUMPE , 322\r
24324         011130' 526555  604700  X       JUMPG , 327\r
24325         011131' 526555  604745  X       JUMPGE, 325\r
24326         011132' 526555  605400  X       JUMPL , 321\r
24327         011615' 322327  325321\r
24328         011133' 526555  605445  X       JUMPLE, 323\r
24329         011134' 526555  605600  X       JUMPN , 326\r
24330 \r
24331         011135' 544154  540000  X       LALL  , 756\r
24332 \r
24333         011136' 544442  000000  X       LDB   , 135\r
24334         011616' 323326  756135\r
24335         011137' 544442  510000  X       LDBI  , 134\r
24336 \r
24337 \r
24338         011140' 545163  640000  X       LIST  , 757\r
24339         011141' 545164  000000  X       LIT   , 760\r
24340         011142' 545743  000000  X       LOC   , 761\r
24341         011617' 134757  760761\r
24342 \r
24343         011143' 545757  536560  X       LOOKUP, 076\r
24344 \r
24345         011144' 546350  000000  X       LSH   , 242\r
24346         011145' 546350  430000  X       LSHC  , 246\r
24347         011146' 555457  464600  X       MLOFF , 767\r
24348         011620' 076242  246767\r
24349         011147' 555457  560000  X       MLON  , 766\r
24350         011150' 555766  450000  XX      MOVE  , 200\r
24351         011151' 555766  455100  XX      MOVEI , 201\r
24352         011152' 555766  455500  XX      MOVEM , 202\r
24353         011621' 766200  201202\r
24354         011153' 555766  456300  X       MOVES , 203\r
24355 \r\fMACRO V.10                     PAGE 151-3\r
24356         MACHINE INSTRUCTION SEARCH ROUTINES\r
24357 \r
24358         011154' 555766  550000  X       MOVM  , 214\r
24359         011155' 555766  555100  X       MOVMI , 215\r
24360         011156' 555766  555500  X       MOVMM , 216\r
24361         011622' 203214  215216\r
24362         011157' 555766  556300  X       MOVMS , 217\r
24363         011160' 555766  560000  X       MOVN  , 210\r
24364         011161' 555766  565100  X       MOVNI , 211\r
24365         011162' 555766  565500  X       MOVNM , 212\r
24366         011623' 217210  211212\r
24367         011163' 555766  566300  X       MOVNS , 213\r
24368         011164' 555766  630000  X       MOVS  , 204\r
24369         011165' 555766  635100  X       MOVSI , 205\r
24370         011166' 555766  635500  X       MOVSM , 206\r
24371         011624' 213204  205206\r
24372         011167' 555766  636300  X       MOVSS , 207\r
24373 \r
24374 \r
24375         011170' 556441  604500  X       MTAPE , 072\r
24376         011171' 556457  601600  XX      MTOP. , 024\r
24377 \r
24378         011172' 556554  000000  X       MUL   , 224\r
24379         011625' 207072  024224\r
24380         011173' 556554  420000  X       MULB  , 227\r
24381         011174' 556554  510000  X       MULI  , 225\r
24382         011175' 556554  550000  X       MULM  , 226\r
24383         011176' 565451  160000  XX      NLI.  , 031\r
24384         011626' 227225  226031\r
24385         011177' 565457  160000  XX      NLO.  , 032\r
24386 \r
24387         011200' 565763  715500  X       NOSYM , 762\r
24388 \r
24389 \r\fMACRO V.10                     PAGE 152\r
24390         MACHINE INSTRUCTION SEARCH ROUTINES\r
24391 \r
24392         011201' 574364  000000  X       OCT   , 763\r
24393         011202' 576044  454600  X       OPDEF , 764\r
24394         011627' 032762  763764\r
24395 \r
24396         011203' 576045  560000  X       OPEN  , 050\r
24397 \r
24398         011204' 576200  000000  X       OR    , 434\r
24399         011205' 576242  000000  X       ORB   , 437\r
24400         011206' 576243  410000  X       ORCA  , 454\r
24401         011630' 050434  437454\r
24402         011207' 576243  414200  X       ORCAB , 457\r
24403         011210' 576243  415100  X       ORCAI , 455\r
24404         011211' 576243  415500  X       ORCAM , 456\r
24405         011212' 576243  420000  X       ORCB  , 470\r
24406         011631' 457455  456470\r
24407         011213' 576243  424200  X       ORCBB , 473\r
24408 \r
24409         011214' 576243  425100  X       ORCBI , 471\r
24410         011215' 576243  425500  X       ORCBM , 472\r
24411         011216' 576243  550000  X       ORCM  , 464\r
24412         011632' 473471  472464\r
24413         011217' 576243  554200  X       ORCMB , 467\r
24414         011220' 576243  555100  X       ORCMI , 465\r
24415         011221' 576243  555500  X       ORCMM , 466\r
24416         011222' 576251  000000  X       ORI   , 435\r
24417         011633' 467465  466435\r
24418         011223' 576255  000000  X       ORM   , 436\r
24419 \r
24420         011224' 576564  000000  X       OUT   , 057\r
24421         011225' 576564  160000  XX      OUT.  , 017\r
24422         011226' 576564  426546  X       OUTBUF, 065\r
24423         011634' 436057  017065\r
24424         011227' 576564  461600  XX      OUTF. , 027\r
24425         011230' 576564  606564  X       OUTPUT, 067\r
24426 \r
24427 \r\fMACRO V.10                     PAGE 153\r
24428         MACHINE INSTRUCTION SEARCH ROUTINES\r
24429 \r
24430         011231' 604147  450000  X       PAGE  , 700\r
24431         011232' 604163  632200  X       PASS2 , 701\r
24432         011635' 027067  700701\r
24433         011233' 605041  634500  X       PHASE , 702\r
24434         011234' 605751  566400  X       POINT , 703\r
24435 \r
24436         011235' 605760  000000  XX      POP   , 262\r
24437         011236' 605760  520000  XX      POPJ  , 263\r
24438         011636' 702703  262263\r
24439 \r
24440         011237' 606247  455644  X       PRGEND, 714\r
24441         011240' 606251  566470  X       PRINTX, 704\r
24442         011241' 606562  474500  X       PURGE , 705\r
24443 \r
24444         011242' 606563  500000  XX      PUSH  , 261\r
24445         011637' 714704  705261\r
24446         011243' 606563  505200  XX      PUSHJ , 260\r
24447 \r
24448         011244' 624144  517000  X       RADIX , 706\r
24449         011245' 624144  517025  X       RADIX5, 707\r
24450 \r
24451         011246' 624554  454163  X       RELEAS, 071\r
24452         011640' 260706  707071\r
24453 \r
24454         011247' 624554  574300  X       RELOC , 710\r
24455         011250' 624555  416253  X       REMARK, 711\r
24456 \r
24457         011251' 624556  415545  X       RENAME, 055\r
24458 \r
24459         011252' 624560  454164  X       REPEAT, 712\r
24460         011641' 710711  055712\r
24461 \r
24462         011253' 624563  456416  XX      RESET., 015\r
24463         011254' 625155  000000  X       RIM   , 715\r
24464         011255' 625155  212000  X       RIM10 , 735\r
24465         011256' 625155  212042  X       RIM10B, 736\r
24466         011642' 015715  735736\r
24467 \r
24468         011257' 625764  000000  X       ROT   , 241\r
24469         011260' 625764  430000  X       ROTC  , 245\r
24470 \r
24471         011261' 626367  000000  X       RSW   , 716\r
24472         011262' 626442  160000  XX      RTB.  , 022\r
24473         011643' 241245  716022\r
24474         011263' 634154  540000  X       SALL  , 720\r
24475                                 IFN UNIVR,<X    SEARCH, 721>\r
24476 \r
24477         011264' 634564  410000  X       SETA  , 424\r
24478         011265' 634564  414200  X       SETAB , 427\r
24479         011266' 634564  415100  X       SETAI , 425\r
24480         011644' 720424  427425\r
24481         011267' 634564  415500  X       SETAM , 426\r
24482         011270' 634564  434100  X       SETCA , 450\r
24483 \r\fMACRO V.10                     PAGE 153-1\r
24484         MACHINE INSTRUCTION SEARCH ROUTINES\r
24485 \r
24486         011271' 634564  434142  X       SETCAB, 453\r
24487         011272' 634564  434151  X       SETCAI, 451\r
24488         011645' 426450  453451\r
24489         011273' 634564  434155  X       SETCAM, 452\r
24490         011274' 634564  435500  X       SETCM , 460\r
24491         011275' 634564  435542  X       SETCMB, 463\r
24492         011276' 634564  435551  X       SETCMI, 461\r
24493         011646' 452460  463461\r
24494         011277' 634564  435555  X       SETCMM, 462\r
24495         011300' 634564  550000  X       SETM  , 414\r
24496         011301' 634564  554200  X       SETMB , 417\r
24497         011302' 634564  555100  X       SETMI , 415\r
24498         011647' 462414  417415\r
24499         011303' 634564  555500  X       SETMM , 416\r
24500         011304' 634564  570000  X       SETO  , 474\r
24501         011305' 634564  574200  X       SETOB , 477\r
24502         011306' 634564  575100  X       SETOI , 475\r
24503         011650' 416474  477475\r
24504         011307' 634564  575500  X       SETOM , 476\r
24505         011310' 634564  636463  X       SETSTS, 060\r
24506         011311' 634564  720000  X       SETZ  , 400\r
24507         011312' 634564  724200  X       SETZB , 403\r
24508         011651' 476060  400403\r
24509         011313' 634564  725100  X       SETZI , 401\r
24510         011314' 634564  725500  XX      SETZM , 402\r
24511 \r
24512         011315' 635170  425164  XX      SIXBIT, 717\r
24513 \r
24514         011316' 635351  600000  XX      SKIP  , 330\r
24515         011652' 401402  717330\r
24516         011317' 635351  604100  X       SKIPA , 334\r
24517         011320' 635351  604500  X       SKIPE , 332\r
24518         011321' 635351  604700  X       SKIPG , 337\r
24519         011322' 635351  604745  X       SKIPGE, 335\r
24520         011653' 334332  337335\r
24521         011323' 635351  605400  X       SKIPL , 331\r
24522         011324' 635351  605445  X       SKIPLE, 333\r
24523         011325' 635351  605600  X       SKIPN , 336\r
24524 \r
24525         011326' 635451  636416  XX      SLIST., 025\r
24526         011654' 331333  336025\r
24527 \r
24528         011327' 635752  000000  X       SOJ   , 360\r
24529         011330' 635752  410000  X       SOJA  , 364\r
24530         011331' 635752  450000  X       SOJE  , 362\r
24531         011332' 635752  470000  X       SOJG  , 367\r
24532         011655' 360364  362367\r
24533         011333' 635752  474500  X       SOJGE , 365\r
24534         011334' 635752  540000  X       SOJL  , 361\r
24535         011335' 635752  544500  X       SOJLE , 363\r
24536         011336' 635752  560000  X       SOJN  , 366\r
24537         011656' 365361  363366\r
24538 \r
24539 \r\fMACRO V.10                     PAGE 153-2\r
24540         MACHINE INSTRUCTION SEARCH ROUTINES\r
24541 \r
24542         011337' 635763  000000  XX      SOS   , 370\r
24543         011340' 635763  410000  X       SOSA  , 374\r
24544         011341' 635763  450000  X       SOSE  , 372\r
24545         011342' 635763  470000  X       SOSG  , 377\r
24546         011657' 370374  372377\r
24547         011343' 635763  474500  X       SOSGE , 375\r
24548         011344' 635763  540000  X       SOSL  , 371\r
24549         011345' 635763  544500  X       SOSLE , 373\r
24550         011346' 635763  560000  X       SOSN  , 376\r
24551         011660' 375371  373376\r
24552 \r
24553         011347' 636165  577245  X       SQUOZE, 707\r
24554 \r
24555         011350' 636441  645700  X       STATO , 061\r
24556         011351' 636441  646563  X       STATUS, 062\r
24557         011352' 636441  647200  X       STATZ , 063\r
24558         011661' 707061  062063\r
24559 \r
24560         011353' 636457  605100  X       STOPI , 722\r
24561 \r
24562         011354' 636542  000000  X       SUB   , 274\r
24563         011355' 636542  420000  X       SUBB  , 277\r
24564         011356' 636542  510000  X       SUBI  , 275\r
24565         011662' 722274  277275\r
24566         011357' 636542  550000  X       SUBM  , 276\r
24567 \r
24568                                 IF2,<IFE OPHSH,<SUBTL:>>\r
24569         011360' 636542  646454  X       SUBTTL, 723\r
24570         011361' 636560  606245  X       SUPPRE, 713\r
24571         011362' 637156  000000  X       SYN   , 724\r
24572         011663' 276723  713724\r
24573         011363' 644160  450000  X       TAPE  , 725\r
24574 \r
24575 \r\fMACRO V.10                     PAGE 154\r
24576         MACHINE INSTRUCTION SEARCH ROUTINES\r
24577 \r
24578         011364' 644443  000000  X       TDC   , 650\r
24579         011365' 644443  410000  X       TDCA  , 654\r
24580         011366' 644443  450000  X       TDCE  , 652\r
24581         011664' 725650  654652\r
24582         011367' 644443  560000  X       TDCN  , 656\r
24583         011370' 644456  000000  X       TDN   , 610\r
24584         011371' 644456  410000  X       TDNA  , 614\r
24585         011372' 644456  450000  X       TDNE  , 612\r
24586         011665' 656610  614612\r
24587         011373' 644456  560000  X       TDNN  , 616\r
24588         011374' 644457  000000  X       TDO   , 670\r
24589         011375' 644457  410000  X       TDOA  , 674\r
24590         011376' 644457  450000  X       TDOE  , 672\r
24591         011666' 616670  674672\r
24592         011377' 644457  560000  X       TDON  , 676\r
24593         011400' 644472  000000  X       TDZ   , 630\r
24594         011401' 644472  410000  X       TDZA  , 634\r
24595         011402' 644472  450000  X       TDZE  , 632\r
24596         011667' 676630  634632\r
24597         011403' 644472  560000  X       TDZN  , 636\r
24598 \r
24599         011404' 645164  544500  X       TITLE , 726\r
24600 \r
24601         011405' 645443  000000  X       TLC   , 641\r
24602         011406' 645443  410000  X       TLCA  , 645\r
24603         011670' 636726  641645\r
24604         011407' 645443  450000  X       TLCE  , 643\r
24605         011410' 645443  560000  X       TLCN  , 647\r
24606         011411' 645456  000000  X       TLN   , 601\r
24607         011412' 645456  410000  X       TLNA  , 605\r
24608         011671' 643647  601605\r
24609         011413' 645456  450000  XX      TLNE  , 603\r
24610         011414' 645456  560000  XX      TLNN  , 607\r
24611         011415' 645457  000000  XX      TLO   , 661\r
24612         011416' 645457  410000  X       TLOA  , 665\r
24613         011672' 603607  661665\r
24614         011417' 645457  450000  X       TLOE  , 663\r
24615         011420' 645457  560000  X       TLON  , 667\r
24616         011421' 645472  000000  XX      TLZ   , 621\r
24617         011422' 645472  410000  XX      TLZA  , 625\r
24618         011673' 663667  621625\r
24619         011423' 645472  450000  XX      TLZE  , 623\r
24620         011424' 645472  560000  XX      TLZN  , 627\r
24621 \r
24622 \r\fMACRO V.10                     PAGE 155\r
24623         MACHINE INSTRUCTION SEARCH ROUTINES\r
24624 \r
24625         011425' 646243  000000  X       TRC   , 640\r
24626         011426' 646243  410000  X       TRCA  , 644\r
24627         011674' 623627  640644\r
24628         011427' 646243  450000  X       TRCE  , 642\r
24629         011430' 646243  560000  X       TRCN  , 646\r
24630         011431' 646256  000000  X       TRN   , 600\r
24631         011432' 646256  410000  X       TRNA  , 604\r
24632         011675' 642646  600604\r
24633         011433' 646256  450000  XX      TRNE  , 602\r
24634         011434' 646256  560000  XX      TRNN  , 606\r
24635         011435' 646257  000000  X       TRO   , 660\r
24636         011436' 646257  410000  X       TROA  , 664\r
24637         011676' 602606  660664\r
24638         011437' 646257  450000  X       TROE  , 662\r
24639         011440' 646257  560000  X       TRON  , 666\r
24640         011441' 646272  000000  XX      TRZ   , 620\r
24641         011442' 646272  410000  X       TRZA  , 624\r
24642         011677' 662666  620624\r
24643         011443' 646272  450000  X       TRZE  , 622\r
24644         011444' 646272  560000  X       TRZN  , 626\r
24645 \r
24646         011445' 646343  000000  X       TSC   , 651\r
24647         011446' 646343  410000  X       TSCA  , 655\r
24648         011700' 622626  651655\r
24649         011447' 646343  450000  X       TSCE  , 653\r
24650         011450' 646343  560000  X       TSCN  , 657\r
24651         011451' 646356  000000  X       TSN   , 611\r
24652         011452' 646356  410000  X       TSNA  , 615\r
24653         011701' 653657  611615\r
24654         011453' 646356  450000  X       TSNE  , 613\r
24655 \r
24656         011454' 646356  560000  X       TSNN  , 617\r
24657         011455' 646357  000000  X       TSO   , 671\r
24658         011456' 646357  410000  X       TSOA  , 675\r
24659         011702' 613617  671675\r
24660         011457' 646357  450000  X       TSOE  , 673\r
24661         011460' 646357  560000  X       TSON  , 677\r
24662         011461' 646372  000000  X       TSZ   , 631\r
24663         011462' 646372  410000  X       TSZA  , 635\r
24664         011703' 673677  631635\r
24665         011463' 646372  450000  X       TSZE  , 633\r
24666         011464' 646372  560000  X       TSZN  , 637\r
24667         011465' 646443  415454  X       TTCALL, 051\r
24668         011466' 646757  634547  X       TWOSEG, 731\r
24669         011704' 633637  051731\r
24670         011467' 654641  000000  X       UFA   , 130\r
24671         011470' 654745  644600  X       UGETF , 073\r
24672         011471' 655245  560000  X       UJEN  , 100\r
24673                                 IFN UNIVR,<X    UNIVER, 737>\r
24674         011472' 656345  645100  X       USETI , 074\r
24675         011705' 130073  100074\r
24676         011473' 656345  645700  X       USETO , 075\r
24677 \r
24678 \r\fMACRO V.10                     PAGE 155-1\r
24679         MACHINE INSTRUCTION SEARCH ROUTINES\r
24680 \r
24681         011474' 664162  000000  X       VAR   , 727\r
24682 \r
24683         011475' 676442  160000  XX      WTB.  , 023\r
24684 \r
24685         011476' 704154  540000  X       XALL  , 732\r
24686         011706' 075727  023732\r
24687 \r
24688         011477' 704364  000000  X       XCT   , 256\r
24689 \r
24690         011500' 705451  636400  X       XLIST , 733\r
24691 \r
24692         011501' 705762  000000  X       XOR   , 430\r
24693         011502' 705762  420000  X       XORB  , 433\r
24694         011707' 256733  430433\r
24695         011503' 705762  510000  X       XORI  , 431\r
24696         011504' 705762  550000  X       XORM  , 432\r
24697 \r
24698         011505' 706065  564745  X       XPUNGE, 730\r
24699         011506' 706744  000000  X       XWD   , 734\r
24700         011710' 431432  730734\r
24701 \r
24702         011507' 720000  000000  X       Z     , 000\r
24703 \r
24704         011510' 164362  454600  X       .CREF , 740\r
24705         011511' 165067  466255  X       .HWFRM, 742\r
24706         011512' 165546  625564  X       .MFRMT, 743\r
24707         011711' 000740  742743\r
24708         011513' 167043  624546  X       .XCREF, 741\r
24709 \r
24710 \r
24711 \r\fMACRO V.10                     PAGE 156\r
24712         MACHINE INSTRUCTION SEARCH ROUTINES\r
24713 \r
24714                                 IFN OPHSH,<             ;NO-OPS, OLD MNEMONICS,F4 UUOS\r
24715                                 X       CAI   , 300\r
24716                                 X       CAM   , 310\r
24717                                 X       CLEAR , 400\r
24718                                 X       CLEARB, 403\r
24719                                 X       CLEARI, 401\r
24720                                 X       CLEARM, 402\r
24721                                 X       JUMP  , 320\r
24722                                 X       JUMPA , 324\r
24723                                 X       SKIP  , 330\r
24724                                 X       RESET., 015\r
24725                                 X       IN.   , 016\r
24726                                 X       OUT.  , 017\r
24727                                 X       DATA. , 020\r
24728                                 X       FIN.  , 021\r
24729                                 X       RTB.  , 022\r
24730                                 X       WTB.  , 023\r
24731                                 X       MTOP. , 024\r
24732                                 X       SLIST., 025\r
24733                                 X       INF.  , 026\r
24734                                 X       OUTF. , 027\r
24735                                 X       NLI.  , 031\r
24736                                 X       NLO.  , 032\r
24737                                 >\r
24738 \r\fMACRO V.10                     PAGE 157\r
24739         MACHINE INSTRUCTION SEARCH ROUTINES\r
24740 \r
24741                                 IFE OPHSH,<\r
24742                                 IF1, <  BLOCK   N1>\r
24743         011514' 377777  777777  OP1END: -1B36\r
24744         011515'                 OP1COD: BLOCK   N1/4\r
24745         011712' 000000  000000          CC>\r
24746                                 IFN OPHSH,<\r
24747                                 IF2,<\r
24748                                 DEFINE SETVAL (N)<EXP   .%'N\r
24749                                 PURGE .%'N>\r
24750                                 N=0\r
24751                                 XLIST\r
24752                                 REPEAT PRIME,<SETVAL \N\r
24753                                 N=N+1>\r
24754                                 LIST\r
24755                                 >\r
24756                                 OP1COD: IF1,<   BLOCK <PRIME/4+1>>\r
24757                                 IF2,<\r
24758                                 DEFINE SETVAL (N)<EXP   .$'N\r
24759                                 PURGE .$'N>\r
24760                                 N=0\r
24761                                 XLIST\r
24762                                 REPEAT <PRIME/4+1>,<SETVAL      \N\r
24763                                 N=N+1>\r
24764                                 >\r
24765                                 LIST>\r
24766 \r
24767                                 IFDEF .CREF,<   .CREF   ;START CREFFING AGAIN>\r
24768 \r\fMACRO V.10                     PAGE 158\r
24769         PERMANENT SYMBOLS\r
24770 \r
24771                                 SUBTTL  PERMANENT SYMBOLS\r
24772         011713' 000000  000002  SYMNUM: EXP     LENGTH/2        ;NUMBER OF PERMANENT SYMBOLS\r
24773                                 DEFINE  P       (A,B)<\r
24774                                         SIXBIT  /A/\r
24775                                         XWD     SYMF!NOOUTF,B>\r
24776 \r
24777         011714' 400000  000000  P       @,      0(SUPRBT)\r
24778         011715' 500004  000000\r
24779         011716' 373737  373737  P       ??????, 0(SUPRBT)\r
24780         011717' 500004  000000\r
24781 \r
24782                         000004  LENGTH= .-SYMNUM-1                      ;LENGTH OF INITIAL SYMBOLS\r
24783 \r
24784         011720'                 PRMTBL:                 ;PERMANENT SYMBOLS\r
24785         011720' 414443  000000  P       ADC,    24\r
24786         011721' 500000  000024\r
24787         011722' 416062  000000  P       APR,    0\r
24788         011723' 500000  000000\r
24789         011724' 434351  000000  P       CCI,    14\r
24790         011725' 500000  000014\r
24791         011726' 434460  000000  P       CDP,    110\r
24792         011727' 500000  000110\r
24793         011730' 434462  000000  P       CDR,    114\r
24794         011731' 500000  000114\r
24795         011732' 436041  000000  P       CPA,    0\r
24796         011733' 500000  000000\r
24797         011734' 436200  000000  P       CR,     150\r
24798         011735' 500000  000150\r
24799         011736' 444300  000000  P       DC,     200\r
24800         011737' 500000  000200\r
24801         011740' 444363  410000  P       DCSA,   300\r
24802         011741' 500000  000300\r
24803         011742' 444363  420000  P       DCSB,   304\r
24804         011743' 500000  000304\r
24805         011744' 444600  000000  P       DF,     270\r
24806         011745' 500000  000270\r
24807         011746' 445163  000000  P       DIS,    130\r
24808         011747' 500000  000130\r
24809         011750' 445463  000000  P       DLS,    240\r
24810         011751' 500000  000240\r
24811         011752' 446043  000000  P       DPC,    250\r
24812         011753' 500000  000250\r
24813         011754' 446353  000000  P       DSK,    170\r
24814         011755' 500000  000170\r
24815         011756' 446443  000000  P       DTC,    320\r
24816         011757' 500000  000320\r
24817         011760' 446463  000000  P       DTS,    324\r
24818         011761' 500000  000324\r
24819         011762' 546064  000000  P       LPT,    124\r
24820         011763' 500000  000124\r
24821         011764' 554446  000000  P       MDF,    260\r
24822         011765' 500000  000260\r
24823         011766' 556443  000000  P       MTC,    220\r
24824 \r\fMACRO V.10                     PAGE 158-1\r
24825         PERMANENT SYMBOLS\r
24826 \r
24827         011767' 500000  000220\r
24828         011770' 556455  000000  P       MTM,    230\r
24829         011771' 500000  000230\r
24830         011772' 556463  000000  P       MTS,    224\r
24831         011773' 500000  000224\r
24832         011774' 604147  000000  P       PAG,    10\r
24833         011775' 500000  000010\r
24834         011776' 605100  000000  P       PI,     4\r
24835         011777' 500000  000004\r
24836         012000' 605464  000000  P       PLT,    140\r
24837         012001' 500000  000140\r
24838         012002' 606460  000000  P       PTP,    100\r
24839         012003' 500000  000100\r
24840         012004' 606462  000000  P       PTR,    104\r
24841         012005' 500000  000104\r
24842 \r
24843         012006' 645543  000000  P       TMC,    340\r
24844         012007' 500000  000340\r
24845         012010' 645563  000000  P       TMS,    344\r
24846         012011' 500000  000344\r
24847         012012' 646471  000000  P       TTY,    120\r
24848         012013' 500000  000120\r
24849         012014' 656443  000000  P       UTC,    210\r
24850         012015' 500000  000210\r
24851         012016' 656463  000000  P       UTS,    214\r
24852         012017' 500000  000214\r
24853                                 IFE LNSSW,<     XLIST   >\r
24854                                         LIST\r
24855         012020'                 PRMEND:                         ;END OF PERMANENT SYMBOLS\r
24856 \r
24857 \r\fMACRO V.10                     PAGE 159\r
24858         PERMANENT SYMBOLS\r
24859 \r
24860                                         OPDEF   ZL      [Z      LITF]   ;INVALID IN LITERALS\r
24861                                         OPDEF   ZA      [Z      ADDF]   ;INVALID IN ADDRESSES\r
24862                                         OPDEF   ZAL     [Z      ADDF!LITF]\r
24863 \r
24864         012020'                 OP1TAB:\r
24865 \r
24866         012020' 000000  110407'         ZA      PAGE0                   ;PAGE\r
24867         012021' 000000  303066'         ZAL     PASS20                  ;PASS2\r
24868         012022' 000000  304017'         ZAL     PHASE0                  ;PHASE\r
24869         012023' 000000  004561'         Z       POINT0                  ;POINT\r
24870         012024' 000000  103342'         ZA      PRNTX0                  ;PRINTX\r
24871         012025' 000000  104317'         ZA      PURGE0                  ;PURGE\r
24872         012026' 000000  103306'         ZA      RADIX0                  ;RADIX\r
24873         012027' 000000  004667'         Z       RADX50                  ;RADIX50,SQUOZE\r
24874         012030' 000001  304114'         ZAL     LOC0    (1)             ;RELOC\r
24875         012031' 000000  303361'         ZAL     REMAR0                  ;REMARK\r
24876         012032' 000000  105070'         ZA      REPEA0                  ;REPEAT\r
24877         012033' 000000  104161'         ZA      SUPRE0                  ;SUPRESS\r
24878         012034' 000000  304712'         ZAL     PSEND0                  ;PRGEND\r
24879         012035' 000400  310072'         ZAL     RIM0    (RIMSW)         ;RIM\r
24880         012036' 700040  004352'         DATAI   0,IOP                   ;RSW\r
24881         012037' 000001  004515'         Z       ASCII0  (1)             ;SIXBIT\r
24882         012040' 004001  303315'         ZAL     IOSET   (IOPALL!IOSALL) ;SALL\r
24883                                 IFN UNIVR,<     ZAL     SERCH0                  ;SEARCH>\r
24884         012041' 000000  000000  IFE UNIVR,<     Z       0>\r
24885         012042' 000000  106125'         ZA      STOPI0                  ;STOPI\r
24886         012043' 440700  104220'         ZA      SUBTT0  (Z (POINT 7,,)) ;SUBTTL\r
24887         012044' 000000  104261'         ZA      SYN0                    ;SYN\r
24888         012045' 000000  303304'         ZAL     TAPE0                   ;TAPE\r
24889         012046' 440700  104207'         ZA      TITLE0  (Z (POINT 7,,)) ;TITLE\r
24890         012047' 000000  303457'         ZAL     VAR0                    ;VAR\r
24891 \r
24892         012050' 000000  004177'         Z       XPUNG0                  ;XPUNGE\r
24893         012051' 000000  303360'         ZAL     TWSEG0                  ;TWOSEGMENTS\r
24894         012052' 004000  303314'         ZAL     XALL0   (IOPALL)        ;XALL\r
24895         012053' 040000  303315'         ZAL     IOSET   (IOPROG)        ;XLIST\r
24896         012054' 000000  004601'         Z       XWD0                    ;XWD\r
24897         012055' 000100  310072'         ZAL     RIM0    (RIM1SW)        ;RIM10\r
24898         012056' 004000  310072'         ZAL     RIM0    (R1BSW)         ;RIM10B\r
24899                                 IFN UNIVR,<     ZA      UNIV0   (Z (POINT 7,,)) ;UNIVERSAL>\r
24900         012057' 000000  000000  IFE UNIVR,<     Z       0       ;UNIVERSAL>\r
24901         012060' 002000  303322'         ZAL     IORSET  (IONCRF)        ;.CREF\r
24902         012061' 002000  303315'         ZAL     IOSET   (IONCRF)        ;.XCREF\r
24903         012062' 000000  103360'         ZA      OFFORM                  ;.HWFRMT\r
24904         012063' 000000  103360'         ZA      ONFORM                  ;.MFRMT\r
24905 \r\fMACRO V.10                     PAGE 160\r
24906         PERMANENT SYMBOLS\r
24907 \r
24908         012064'                 OP2TAB:\r
24909 \r
24910         012064' 000000  004515'         Z       ASCII0  (0)             ;ASCII\r
24911         012065' 400000  004515'         Z       ASCII0  (1B18)          ;ASCIZ\r
24912         012066' 700000  004352'         BLKI    IOP                     ;BLKI\r
24913         012067' 700100  004352'         BLKO    IOP                     ;BLKO\r
24914         012070' 000000  303326'         ZAL     BLOCK0                  ;BLOCK\r
24915         012071' 000000  104172'         ZA      SUPRSA                  ;ASUPPRESS\r
24916         012072' 000000  303360'         ZAL     HISEG0                  ;HISEG\r
24917         012073' 000000  004631'         Z       BYTE0                   ;BYTE\r
24918         012074' 700240  004352'         CONI    IOP                     ;CONI\r
24919         012075' 700200  004352'         CONO    IOP                     ;CONO\r
24920         012076' 700340  004352'         CONSO   IOP                     ;CONSO\r
24921         012077' 700300  004352'         CONSZ   IOP                     ;CONSZ\r
24922         012100' 700040  004352'         DATAI   IOP                     ;DATAI\r
24923         012101' 700140  004352'         DATAO   IOP                     ;DATAO\r
24924         012102' 000012  004466'         Z       OCT0    (^D10)          ;DEC\r
24925         012103' 000000  105211'         ZA      DEFIN0                  ;DEFINE\r
24926 \r
24927         012104' 000000  304015'         ZAL     DEPHA0                  ;DEPHASE\r
24928         012105' 000000  303037'         ZAL     END0                    ;END\r
24929         012106' 000600  103677'         ZA      INTER0  (INTF!ENTF)     ;ENTRY\r
24930         012107' 000000  004465'         Z       EXPRES                  ;EXP\r
24931         012110' 000000  103715'         ZA      EXTER0                  ;EXTERN\r
24932         012111' 254200  004354'         JRST    4,OP                    ;HALT\r
24933         012112' 607640  003540'         TLNN    FR,IFPASS               ;IF1\r
24934         012113' 603640  003540'         TLNE    FR,IFPASS               ;IF2\r
24935 \r
24936         012114' 602000  003543'         TRNE    AC0,IFB0                ;IFB\r
24937         012115' 603240  003600'         TLNE    ARG,IFDEF0              ;IFDEF\r
24938         012116' 000000  003610'         Z       IFIDN0  (0)             ;IFDIF\r
24939         012117' 332000  003512'         SKIPE   IF                      ;IFE\r
24940         012120' 337000  003512'         SKIPG   IF                      ;IFG\r
24941         012121' 335000  003512'         SKIPGE  IF                      ;IFGE\r
24942         012122' 000001  003610'         Z       IFIDN0  (1)             ;IFIDN\r
24943         012123' 331000  003512'         SKIPL   IF                      ;IFL\r
24944 \r
24945         012124' 333000  003512'         SKIPLE  IF                      ;IFLE\r
24946         012125' 336000  003512'         SKIPN   IF                      ;IFN\r
24947         012126' 606000  003543'         TRNN    AC0,IFB0                ;IFNB\r
24948         012127' 607240  003600'         TLNN    ARG,IFDEF0              ;IFNDEF\r
24949         012130' 000400  103677'         ZA      INTER0  (INTF)          ;INTERN\r
24950         012131' 000000  004617'         Z       IOWD0                   ;IOWD\r
24951         012132' 000000  005777'         Z       IRP0    (0)             ;IRP\r
24952         012133' 400000  005777'         Z       IRP0    (400000)        ;IRPC\r
24953 \r
24954         012134' 255300  004354'         JFCL    6,OP                    ;JCRY\r
24955         012135' 255200  004354'         JFCL    4,OP                    ;JCRY0\r
24956         012136' 255100  004354'         JFCL    2,OP                    ;JCRY1\r
24957         012137' 254500  004354'         JRST    12,OP                   ;JEN\r
24958         012140' 255400  004354'         JFCL    10,OP                   ;JOV\r
24959         012141' 254100  004354'         JRST    2,OP                    ;JRSTF\r
24960         012142' 004001  303322'         ZAL     IORSET  (IOPALL!IOSALL) ;LALL\r
24961 \r\fMACRO V.10                     PAGE 160-1\r
24962         PERMANENT SYMBOLS\r
24963 \r
24964         012143' 040000  303322'         ZAL     IORSET  (IOPROG)        ;LIST\r
24965         012144' 000000  303365'         ZAL     LIT0                    ;LIT\r
24966         012145' 000000  304114'         ZAL     LOC0    (0)             ;LOC\r
24967         012146' 000000  104157'         ZA      OFFSYM                  ;NOSYM\r
24968         012147' 000010  004466'         Z       OCT0    (^D8)           ;OCT\r
24969         012150' 000000  103764'         ZA      OPDEF0                  ;OPDEF\r
24970         012151' 255040  004354'         JFCL    1,OP                    ;JFOV\r
24971         012152' 000000  104154'         ZA      ONML                    ;MLON\r
24972         012153' 000000  104155'         ZA      OFFML                   ;MLOFF\r
24973         012154' 600000  004515'         Z       ASCII0  (3B19)          ;COMMENT\r
24974                                 IFN IIISW,<\r
24975                                         Z       ASCII0  (5B20)          ;ASCID>\r
24976 \r\fMACRO V.10                     PAGE 161\r
24977         PERMANENT SYMBOLS\r
24978 \r
24979 \r
24980                                 REPEAT 0,<CALTBL:\r
24981                                                                 ;USER DEFINED CALLI'S GO HERE\r
24982                                         SIXBIT  /LIGHTS/        ;-1\r
24983                                 CALLI0: SIXBIT  /RESET/         ; 0\r
24984                                         SIXBIT  /DDTIN/         ; 1\r
24985                                         SIXBIT  /SETDDT/        ; 2\r
24986                                         SIXBIT  /DDTOUT/        ; 3\r
24987                                         SIXBIT  /DEVCHR/        ; 4\r
24988                                         SIXBIT  /DDTGT/         ; 5\r
24989                                         SIXBIT  /GETCHR/        ; 6\r
24990                                         SIXBIT  /DDTRL/         ; 7\r
24991                                         SIXBIT  /WAIT/          ;10\r
24992                                         SIXBIT  /CORE/          ;11\r
24993                                         SIXBIT  /EXIT/          ;12\r
24994                                         SIXBIT  /UTPCLR/        ;13\r
24995                                         SIXBIT  /DATE/          ;14\r
24996                                         SIXBIT  /LOGIN/         ;15\r
24997                                         SIXBIT  /APRENB/        ;16\r
24998                                         SIXBIT  /LOGOUT/        ;17\r
24999                                         SIXBIT  /SWITCH/        ;20\r
25000                                         SIXBIT  /REASSI/        ;21\r
25001                                         SIXBIT  /TIMER/         ;22\r
25002                                         SIXBIT  /MSTIME/        ;23\r
25003                                         SIXBIT  /GETPPN/        ;24\r
25004                                         SIXBIT  /TRPSET/        ;25\r
25005                                         SIXBIT  /TRPJEN/        ;26\r
25006                                         SIXBIT  /RUNTIM/        ;27\r
25007                                         SIXBIT  /PJOB/          ;30\r
25008                                         SIXBIT  /SLEEP/         ;31\r
25009                                         SIXBIT  /SETPOV/        ;32\r
25010                                         SIXBIT  /PEEK/          ;33\r
25011                                         SIXBIT  /GETLIN/        ;34\r
25012                                         SIXBIT  /RUN/           ;35\r
25013                                         SIXBIT  /SETUWP/        ;36\r
25014                                         SIXBIT  /REMAP/         ;37\r
25015                                         SIXBIT  /GETSEG/        ;40\r
25016                                         SIXBIT  /GETTAB/        ;41\r
25017                                         SIXBIT  /SPY/           ;42\r
25018                                         SIXBIT  /SETNAM/        ;43\r
25019                                         SIXBIT  /TMPCOR/        ;44\r
25020                                         SIXBIT  /DSKCHR/        ;45\r
25021                                         SIXBIT  /SYSSTR/        ;46\r
25022                                         SIXBIT  /JOBSTR/        ;47\r
25023                                         SIXBIT  /STRUUO/        ;50\r
25024                                         SIXBIT  /SYSPHY/        ;51\r
25025                                         SIXBIT  /FRECHN/        ;52\r
25026                                         SIXBIT  /DEVTYP/        ;53\r
25027                                         SIXBIT  /DEVSTS/        ;54\r
25028                                         SIXBIT  /DEVPPN/        ;55\r
25029                                         SIXBIT  /SEEK/          ;56\r
25030                                         SIXBIT  /RTTRP/         ;57\r
25031                                         SIXBIT  /LOCK/          ;60\r
25032 \r\fMACRO V.10                     PAGE 161-1\r
25033         PERMANENT SYMBOLS\r
25034 \r
25035                                         SIXBIT  /JOBSTS/        ;61\r
25036                                         SIXBIT  /LOCATE/        ;62\r
25037                                         SIXBIT  /WHERE/         ;63\r
25038                                         SIXBIT  /DEVNAM/        ;64\r
25039                                         SIXBIT  /CTLJOB/        ;65\r
25040                                         SIXBIT  /GOBSTR/        ;66\r
25041                                         0                       ;67\r
25042                                         0                       ;70\r
25043                                         SIXBIT  /HPQ/           ;71\r
25044                                         SIXBIT  /HIBER/         ;72\r
25045                                         SIXBIT  /WAKE/          ;73\r
25046                                         SIXBIT  /CHGPPN/        ;74\r
25047                                         SIXBIT  /SETUUO/        ;75\r
25048                                         SIXBIT  /DEVGEN/        ;76\r
25049                                         SIXBIT  /OTHUSR/        ;77\r
25050                                         SIXBIT  /CHKACC/        ;100\r
25051                                         SIXBIT  /DEVSIZ/        ;101\r
25052                                         SIXBIT  /DAEMON/        ;102\r
25053                                         SIXBIT  /JOBPEK/        ;103\r
25054                                         SIXBIT  /ATTACH/        ;104\r
25055                                         SIXBIT  /DAEFIN/        ;105\r
25056                                         SIXBIT  /FRCUUO/        ;106\r
25057                                         SIXBIT  /DEVLNM/        ;107\r
25058                                         SIXBIT  /PATH./         ;110\r
25059                                 \r
25060                                 CALNTH==.-CALTBL\r
25061                                 NEGCAL==CALLI0-CALTBL           ;NUMBER OF NEGATIVE CALLI'S\r
25062                                 >\r
25063         012155' 515643  506267  TTCTBL: SIXBIT  /INCHRW/        ; 0     INPUT A CHAR. AND WAIT\r
25064         012156' 576564  435062          SIXBIT  /OUTCHR/        ; 1     OUTPUT A CHAR.\r
25065         012157' 515643  506263          SIXBIT  /INCHRS/        ; 2     INPUT A CHAR. AND SKIP\r
25066         012160' 576564  636462          SIXBIT  /OUTSTR/        ; 3     OUTPUT A STRING\r
25067         012161' 515643  506754          SIXBIT  /INCHWL/        ; 4     INPUT CHAR., WAIT, LINE MODE\r
25068         012162' 515643  506354          SIXBIT  /INCHSL/        ; 5     INPUT CHAR., SKIP, LINE MODE\r
25069         012163' 474564  544350          SIXBIT  /GETLCH/        ; 6     GET LINE CHARACTERISTICS\r
25070         012164' 634564  544350          SIXBIT  /SETLCH/        ; 7     SET LINE CHARACTERISTICS\r
25071         012165' 624563  434156          SIXBIT  /RESCAN/        ;10     RESET INPUT STREAM TO COMMAND\r
25072         012166' 435462  424651          SIXBIT  /CLRBFI/        ;11     CLEAR TYPEIN BUFFER\r
25073         012167' 435462  424657          SIXBIT  /CLRBFO/        ;12     CLEAR TYPEOUT BUFFER\r
25074         012170' 635360  515643          SIXBIT  /SKPINC/        ;13     SKIPS IF A CHAR. CAN BE INPUT\r
25075         012171' 635360  515654          SIXBIT  /SKPINL/        ;14     SKIPS IF A LINE CAN BE INPUT\r
25076         012172' 515756  455765          SIXBIT  /IONEOU/        ;15     OUTPUT AS AN IMAGE CHAR.\r
25077 \r
25078                         000016  TTCLTH==.-TTCTBL\r
25079                                         SUBTTL  USER-DEFINED SYMBOL SEARCH ROUTINES\r
25080         012173' 260740  012313' MSRCH:  PUSHJ   PP,SEARCH       ;PERFORM GENERAL SEARCH\r
25081         012174' 263740  000000          POPJ    PP,             ;NOT FOUND, EXIT\r
25082         012175' 327240  012202'         JUMPG   ARG,MSRCH2      ;SKIP-EXIT AND CROSS-REF IF FOUND\r
25083         012176' 312004  000001          CAME    AC0,1(SX)       ;WE ARE LOOKING AT SYMBOL, TRY ONE ABOVE\r
25084         012177' 263740  000000          POPJ    PP,             ;NO, EXIT\r
25085         012200' 271200  000002          ADDI    SX,2            ;YES, POINT TO IT\r
25086         012201' 260740  012336'         PUSHJ   PP,SRCH5        ;LOAD REGISTERS\r
25087         012202' 354017  000000  MSRCH2: AOSA    0(PP)           ;SET SKIP-EXIT\r
25088 \r\fMACRO V.10                     PAGE 161-2\r
25089         USER-DEFINED SYMBOL SEARCH ROUTINES\r
25090 \r
25091         012203' 321240  012220' QSRCH:  JUMPL   ARG,SSRCH3      ;BRANCH IF OPERAND\r
25092         012204' 201140  000005          MOVEI   SDEL,%MAC       ;SET OPERATOR FLAG\r
25093         012205' 623600  000040          TLZE IO,DEFCRS  ;IS IT A DEFINITION?\r
25094         012206' 201140  000006          MOVEI SDEL,%DMAC        ;YES\r
25095         012207' 254000  012221'         JRST    CREF            ;CROSS-REF AND EXIT\r
25096 \r
25097         012210' 260740  012313' SSRCH:  PUSHJ   PP,SEARCH       ;PERFORM GENERAL SEARCH\r
25098         012211' 263740  000000          POPJ    PP,             ;NOT FOUND, EXIT\r
25099         012212' 321240  012217'         JUMPL   ARG,SSRCH2      ;SKIP-EXIT AND CROSS-REF IF FOUND\r
25100         012213' 312004  777775  SSRCH1: CAME    AC0,-3(SX)      ;WE ARE LOOKING AT MACRO, LOOK ONE SLOT BELOW\r
25101         012214' 263740  000000          POPJ    PP,             ;NO DICE, EXIT\r
25102         012215' 275200  000002          SUBI    SX,2            ;YES, POINT TO IT\r
25103         012216' 260740  012336'         PUSHJ   PP,SRCH5        ;LOAD REGISTERS\r
25104         012217' 350017  000000  SSRCH2: AOS     0(PP)           ;SET FOR SKIP-EXIT\r
25105         012220' 201140  000001  SSRCH3: MOVEI   SDEL,%SYM       ;SET OPERAND FLAG\r
25106 \r
25107         012221' 607600  002000  CREF:   TLNN    IO,IONCRF       ;NO CREFFING FOR THIS SYMBOL?\r
25108         012222' 603640  402000          TLNE    FR,P1!CREFSW    ;PASS ONE OR CROSS-REF SUPPRESSION?\r
25109         012223' 263740  000000          POPJ    PP,             ;YES, EXIT\r
25110         012224' 250140  000007          EXCH    SDEL,C          ;PUT FLAG IN C, SACE C\r
25111         012225' 261740  000010          PUSH    PP,CS\r
25112         012226' 603600  000400          TLNE IO,IOCREF          ;HAVE WE PUT OUT THE 177,102\r
25113         012227' 254000  012241'         JRST CREF3              ;YES\r
25114         012230' 261740  000007          PUSH PP,C               ;START OF CREF DATA\r
25115 \r
25116 \r\fMACRO V.10                     PAGE 162\r
25117         USER-DEFINED SYMBOL SEARCH ROUTINES\r
25118 \r
25119                                 REPEAT 0,<      ;NEEDS CHANGE TO CREF\r
25120                                         MOVEI C,177\r
25121                                         PUSHJ PP,OUTLST\r
25122                                         MOVEI C,102\r
25123                                         PUSHJ PP,OUTLST\r
25124                                         TLO IO,IOCREF   ;WE NOW ARE IN THAT STATE\r
25125                                         POP PP,C        ;WE HAVE NOW\r
25126                                 CREF3:  JUMPE C,NOFLG           ;JUST CLOSE IT\r
25127                                         PUSHJ   PP,OUTLST       ;TYPE OF SYMBOL (%MAC,%DMAC,%SYM)\r
25128                                         MOVSI CS,770000         ;COUNT CHRS\r
25129                                         TDZA C,C        ;STARTING AT 0\r
25130                                         LSH CS,-6       ;TRY NEXT\r
25131                                         TDNE AC0,CS     ;IS THAT ONE THERE?\r
25132                                         AOJA C,.-2      ;YES\r
25133                                         PUSHJ PP,OUTLST         ;PRINT NUMBER OF SYMBOL CONSTITUENTS\r
25134                                         MOVE    CS,AC0\r
25135                                 \r
25136                                 CREF2:  MOVEI   C,0\r
25137                                         LSHC    C,6\r
25138                                         ADDI    C,40\r
25139                                         PUSHJ   PP,OUTLST       ;THE ASCII SYMBOL\r
25140                                         JUMPN   CS,CREF2\r
25141                                         MOVEI   C,%DSYM\r
25142                                         TLZE    IO,DEFCRS\r
25143                                         PUSHJ   PP,OUTLST       ;MARK IT AS A DEFINING OCCURENCE\r
25144                                 NOFLG:  MOVE    C,SDEL\r
25145                                         POP     PP,CS\r
25146                                         POPJ    PP,\r
25147                                 \r
25148                                 CLSCRF: TRNN ER,LPTSW\r
25149                                         POPJ PP,        ;LEAVE IF WE SHOULD NOT BE PRINTING\r
25150                                 CLSCR2: MOVEI C,177\r
25151                                         PUSHJ PP,PRINT\r
25152                                         TLZE IO,IOCREF  ;WAS IT OPEN?\r
25153                                         JRST CLSCR1     ;YES, JUST CLOSE IT\r
25154                                         MOVEI C,102     ;NO, OPEN IT FIRST\r
25155                                         PUSHJ PP,OUTLST         ;MARK BEGINNING OF CREF DATA\r
25156                                         MOVEI C,177\r
25157                                         PUSHJ PP,OUTLST\r
25158                                 CLSCR1: MOVEI C,103\r
25159                                         JRST OUTLST             ;MARK END OF CREF DATA\r
25160                                 \r
25161                                 CLSC3:  TLZ IO,IOCREF\r
25162                                         MOVEI C,177\r
25163                                         PUSHJ PP,OUTLST\r
25164                                         MOVEI C,104\r
25165                                         JRST OUTLST     ;177,104 CLOSES IT FOR NOW\r
25166                                 >       ;END OF REPEAT 0\r
25167 \r\fMACRO V.10                     PAGE 163\r
25168         USER-DEFINED SYMBOL SEARCH ROUTINES\r
25169 \r
25170                                 REPEAT 1,<                      ;WORKS WITH EXISTING CREF\r
25171         012231' 603600  000100          TLNE IO,IOPAGE\r
25172         012232' 260740  012264'         PUSHJ PP,CRFHDR         ;GET CORRECT SUBTTL\r
25173         012233' 201340  000177          MOVEI C,177\r
25174         012234' 260740  010403'         PUSHJ PP,OUTLST\r
25175         012235' 201340  000102          MOVEI C,102\r
25176         012236' 260740  010403'         PUSHJ PP,OUTLST\r
25177         012237' 661600  000400          TLO IO,IOCREF   ;WE NOW ARE IN THAT STATE\r
25178         012240' 262740  000007          POP PP,C        ;WE HAVE NOW\r
25179         012241' 260740  010403' CREF3:  PUSHJ   PP,OUTLST       ;TYPE OF SYMBOL (%MAC,%DMAC,%SYM)\r
25180         012242' 205400  770000          MOVSI CS,770000         ;COUNT CHRS\r
25181         012243' 634340  000007          TDZA C,C        ;STARTING AT 0\r
25182         012244' 242400  777772          LSH CS,-6       ;TRY NEXT\r
25183         012245' 612000  000010          TDNE AC0,CS     ;IS THAT ONE THERE?\r
25184         012246' 344340  012244'         AOJA C,.-2      ;YES\r
25185         012247' 260740  010403'         PUSHJ PP,OUTLST         ;PRINT NUMBER OF SYMBOL CONSTITUENTS\r
25186         012250' 200400  000000          MOVE    CS,AC0\r
25187 \r
25188         012251' 201340  000000  CREF2:  MOVEI   C,0\r
25189         012252' 246340  000006          LSHC    C,6\r
25190         012253' 271340  000040          ADDI    C,40\r
25191         012254' 260740  010403'         PUSHJ   PP,OUTLST       ;THE ASCII SYMBOL\r
25192         012255' 326400  012251'         JUMPN   CS,CREF2\r
25193         012256' 201340  000002          MOVEI   C,%DSYM\r
25194         012257' 623600  000040          TLZE    IO,DEFCRS\r
25195         012260' 260740  010403'         PUSHJ   PP,OUTLST       ;MARK IT AS A DEFINING OCCURENCE\r
25196         012261' 200340  000003          MOVE    C,SDEL\r
25197         012262' 262740  000010          POP     PP,CS\r
25198         012263' 263740  000000          POPJ    PP,\r
25199 \r
25200                                 IFN OPHSH,<\r
25201                                 SUBTL:  SIXBIT  /SUBTTL/>\r
25202         012264' 312000  011360' CRFHDR: CAME    AC0,SUBTL       ;IS FIRST SYMBOL "SUBTTL"\r
25203         012265' 254000  012272'         JRST    CRFHD1          ;NO\r
25204         012266' 510000  000006          HLLZ    AC0,V\r
25205         012267' 260740  004220'         PUSHJ   PP,SUBTT0       ;UPDATE SUBTTL\r
25206         012270' 200000  011360'         MOVE    AC0,SUBTL       ;RESTORE ARG.\r
25207         012271' 201300  003360'         MOVEI   V,CPOPJ\r
25208         012272' 201340  000000  CRFHD1: MOVEI   C,0\r
25209         012273' 254000  010325'         JRST    OUTL\r
25210 \r
25211         012274'                 CLSC3:\r
25212         012274' 606600  000002  CLSCRF: TRNN ER,LPTSW\r
25213         012275' 263740  000000          POPJ PP,        ;LEAVE IF WE SHOULD NOT BE PRINTING\r
25214         012276' 623600  000400  CLSCR2: TLZE IO,IOCREF  ;FINISH UP LINE\r
25215         012277' 254000  012307'         JRST CLSCR1\r
25216         012300' 201340  000000          MOVEI   C,0\r
25217         012301' 603600  000100          TLNE    IO,IOPAGE       ;NEW PAGE?\r
25218         012302' 260740  010325'         PUSHJ   PP,OUTL         ;YES,GIVE IT A ROUSING SENDOFF!\r
25219         012303' 201340  000177          MOVEI C,177\r
25220         012304' 260740  010403'         PUSHJ PP,OUTLST\r
25221         012305' 201340  000102          MOVEI C,102\r
25222         012306' 260740  010403'         PUSHJ PP,OUTLST         ;MARK BEGINNING OF CREF DATA\r
25223 \r\fMACRO V.10                     PAGE 163-1\r
25224         USER-DEFINED SYMBOL SEARCH ROUTINES\r
25225 \r
25226         012307' 201340  000177  CLSCR1: MOVEI C,177\r
25227         012310' 260740  010403'         PUSHJ PP,OUTLST\r
25228         012311' 201340  000103          MOVEI C,103\r
25229         012312' 254000  010403'         JRST OUTLST             ;MARK END OF CREF DATA\r
25230                                 >       ;END OF REPEAT 1\r
25231 \r\fMACRO V.10                     PAGE 164\r
25232         USER-DEFINED SYMBOL SEARCH ROUTINES\r
25233 \r
25234         012313' 554200  013077' SEARCH: HLRZ    SX,SRCHX\r
25235         012314' 550140  013077'         HRRZ    SDEL,SRCHX\r
25236 \r
25237         012315' 311004  777777  SRCH1:  CAML    AC0,-1(SX)\r
25238         012316' 254000  012325'         JRST    SRCH3\r
25239         012317' 274200  000003  SRCH2:  SUB     SX,SDEL\r
25240         012320' 242140  777777          LSH     SDEL,-1\r
25241         012321' 317200  013103'         CAMG    SX,SYMTOP\r
25242         012322' 326140  012315'         JUMPN   SDEL,SRCH1\r
25243         012323' 326140  012317'         JUMPN   SDEL,SRCH2\r
25244         012324' 364200  012361'         SOJA    SX,SRCHNO       ;NOT FOUND\r
25245 \r
25246         012325' 316004  777777  SRCH3:  CAMN    AC0,-1(SX)\r
25247         012326' 254000  012335'         JRST    SRCH4           ;NORMAL / FOUND EXIT\r
25248         012327' 270200  000003          ADD     SX,SDEL\r
25249         012330' 242140  777777          LSH     SDEL,-1\r
25250         012331' 317200  013103'         CAMG    SX,SYMTOP\r
25251         012332' 326140  012315'         JUMPN   SDEL,SRCH1\r
25252         012333' 326140  012317'         JUMPN   SDEL,SRCH2\r
25253         012334' 364200  012361'         SOJA    SX,SRCHNO       ;NOT FOUND\r
25254 \r
25255         012335' 350017  000000  SRCH4:  AOS     0(PP)           ;SET FOR SKIP EXIT\r
25256         012336' 205240  000004  SRCH5:  MOVSI ARG,SUPRBT        ;HE IS USING IT, TURN OFF BIT\r
25257         012337' 412244  000000          ANDCAM ARG,(SX) ; IN THE TABLE\r
25258         012340' 200244  000000  SRCH7:  MOVE ARG,0(SX)          ;FLAG AND VALUE TO ARG\r
25259         012341' 135440  003303'         LDB     RC,RCPNTR       ;POINT 1,ARG,17\r
25260         012342' 603240  000002          TLNE ARG,LELF   ;CHECK LEFT RELOCATE\r
25261         012343' 661440  000001          TLO RC,1\r
25262         012344' 550300  000005          HRRZ    V,ARG\r
25263         012345' 603240  000010          TLNE ARG,SPTR   ;CHECK SPECIAL EXTESN POINTER\r
25264         012346' 254000  012352'         JRST SRCH6\r
25265         012347' 603240  004000          TLNE    ARG,PNTF\r
25266         012350' 200305  000000          MOVE    V,0(ARG)                ;36BIT VALUE TO V\r
25267         012351' 254000  012363'         JRST    SRCHOK\r
25268         \r
25269         012352' 200305  000000  SRCH6:  MOVE V,0(ARG)   ;VALUE\r
25270         012353' 200445  000001          MOVE RC,1(ARG)  ;AND RELOC\r
25271         012354' 603440  777776          TLNE RC,-2      ;CHECK AND SET EXTPNT\r
25272         012355' 502440  013270'         HLLM RC,EXTPNT\r
25273         012356' 602440  777776          TRNE RC,-2      \r
25274         012357' 542440  013270'         HRRM RC,EXTPNT\r
25275         012360' 254000  012363'         JRST    SRCHOK\r
25276         012361'                 SRCHNO:IFN UNIVR,<SKIPN UNISCH+1        ;ALLOWED TO SEARCH OTHER TABLES>\r
25277         012361' 263740  000000          POPJ    PP,             ;NO, JUST RETURN\r
25278                                 IFN UNIVR,<AOS  V,UNISCH        ;GET NEXT INDEX TO TABLE\r
25279                                         CAIE    V,1             ;FIRST TIME IN\r
25280                                         JRST    SRCHN1          ;YES, SAVE SYMBOL INFO\r
25281                                         HRLM    SX,UNISCH       ;SAVE SX AND SET FLAG\r
25282                                         MOVE    ARG,SRCHX       ;SEARCH POINTER\r
25283                                         MOVEM   ARG,UNISHX      ;TO A SAFE PLACE\r
25284                                         HRR     ARG,SYMBOL\r
25285                                         HRL     ARG,SYMTOP\r
25286                                         MOVEM   ARG,UNIPTR      ;STORE ALSO\r
25287 \r\fMACRO V.10                     PAGE 164-1\r
25288         USER-DEFINED SYMBOL SEARCH ROUTINES\r
25289 \r
25290                                 SRCHN1: MOVE    V,UNISCH(V)     ;GET TRUE INDEX\r
25291                                         JUMPE   V,SRCHKO        ;IF ZERO ALL TABLE SCANNED\r
25292                                         MOVE    ARG,UNISHX(V)   ;NEW SRCHX\r
25293                                         MOVEM   ARG,SRCHX       ;SET IT UP\r
25294                                         MOVE    ARG,UNIPTR(V)   ;SYMTOP,,SYMBOL\r
25295                                         HRRZM   ARG,SYMBOL\r
25296                                         HLRZM   ARG,SYMTOP\r
25297                                         JRST    SEARCH          ;TRY AGAIN>\r
25298 \r
25299         012362' 400240  000000  SRCHKO: SETZ    ARG,            ;CLEAR ARG SO ZERO STORED\r
25300         012363'                 SRCHOK: IFN UNIVR,<SKIPN        UNISCH          ;HAVE WE SEARCH OTHER TABLES>\r
25301         012363' 263740  000000          POPJ    PP,             ;NO, JUST RETURN\r
25302                                 IFN UNIVR,<\r
25303                                 SYMBCK: HLRZ    SX,UNISCH       ;RESTORE SX\r
25304                                         SETZM   UNISCH          ;CLEAR SYMBCK FLAG\r
25305                                         PUSH    PP,V            ;SAVE AN AC\r
25306                                         MOVE    V,UNISHX        ;SRCHX\r
25307                                         MOVEM   V,SRCHX         ;RESTORE ORIGINAL\r
25308                                         MOVE    V,UNIPTR        ;SYMTOP,,SYMBOL\r
25309                                         HRRZM   V,SYMBOL\r
25310                                         HLRZM   V,SYMTOP\r
25311                                         JUMPE   ARG,SRCHK2      ;TOTALLY UNDEFINED\r
25312                                         PUSH    PP,RC           ;SAVE SOME ACCS\r
25313                                         PUSH    PP,ARG\r
25314                                         PUSH    PP,EXTPNT\r
25315                                         SETZB   ARG,EXTPNT      ;CLEAR ALL SYMBOL DATA\r
25316                                         SETZB   RC,V\r
25317                                         PUSHJ   PP,INSERT       ;INSERT SYMBOL IN TABLE\r
25318                                         POP     PP,EXTPNT       ;RESTORE ACCS ETC.\r
25319                                         POP     PP,ARG\r
25320                                         POP     PP,RC\r
25321                                         MOVEM   ARG,(SX)        ;SET FLAGS AND VALUE AS IT SHOULD BE\r
25322                                 SRCHK2: POP     PP,V\r
25323                                         POPJ    PP,             ;RETURN>\r
25324 \r
25325 \r\fMACRO V.10                     PAGE 165\r
25326         USER-DEFINED SYMBOL SEARCH ROUTINES\r
25327 \r
25328         012364' 603240  002100  INSERQ: TLNE    ARG,UNDF!VARF\r
25329         012365' 403440  000006  INSERZ: SETZB   RC,V\r
25330         012366' 312004  777777  INSERT: CAME    AC0,-1(SX)      ;ARE WE LOOKING AT MATCHING MNEMONIC?\r
25331         012367' 254000  012377'         JRST    INSRT2          ;NO, JUST INSERT\r
25332         012370' 321240  012374'         JUMPL   ARG,INSRT1      ;YES, BRANCH IF OPERAND\r
25333         012371' 331004  000000          SKIPL   0(SX)           ;OPERATOR, ARE WE LOOKING AT ONE?\r
25334         012372' 254000  012467'         JRST    UPDATE          ;YES, UPDATE\r
25335         012373' 254000  012377'         JRST    INSRT2          ;NO, INSERT\r
25336 \r
25337         012374' 337004  000000  INSRT1: SKIPG   0(SX)           ;OPERAND, ARE WE LOOKING AT ONE?\r
25338         012375' 254000  012467'         JRST    UPDATE          ;YES, UPDATE\r
25339         012376' 275200  000002          SUBI    SX,2            ;NO, MOVE UNDER OPERATOR AND INSERT\r
25340         012377' 200140  013102' INSRT2: MOVE    SDEL,SYMBOL\r
25341         012400' 275140  000002          SUBI    SDEL,2\r
25342         012401' 313140  012727'         CAMLE   SDEL,FREE\r
25343         012402' 254000  012405'         JRST    INSRT3\r
25344         012403' 260740  010014'         PUSHJ   PP,XCEEDS\r
25345         012404' 271140  002000          ADDI    SDEL,2000\r
25346         012405' 202140  013102' INSRT3: MOVEM   SDEL,SYMBOL     ;MAKE ROOM FOR A TWO WORD ENTRY\r
25347         012406' 505143  000002          HRLI    SDEL,2(SDEL)\r
25348         012407' 251144  777776          BLT     SDEL,-2(SX)     ;PUSH EVERYONE DOWN TWO LOACTIONS\r
25349         012410' 350020  013102'         AOS     @SYMBOL         ;INCREMENT THE SYMBOL COUNT\r
25350         012411' 607440  777776          TLNN RC,-2      ;NEED SPECIAL?\r
25351         012412' 602440  777776          TRNE RC,-2      ;LEFT OR RIGHT EXTERNAL?\r
25352         012413' 254000  012434'         JRST INSRT5     ;YES, JUMP\r
25353         012414' 607300  777777          TLNN    V,-1            ;SKIP IF V IS A 36BIT VALUE\r
25354         012415' 254000  012424'         JRST    INSRT4          ;JUMP, ITS A 18BIT VALUE\r
25355         012416' 350140  012727'         AOS     SDEL,FREE       ;36BIT, SO GET A CELL FROM FREE CORE\r
25356         012417' 311140  013102'         CAML    SDEL,SYMBOL     ;MORE CORE NEEDED?\r
25357         012420' 260740  010014'         PUSHJ   PP,XCEEDS       ;YES\r
25358         012421' 541243  777777          HRRI    ARG,-1(SDEL)    ;POINTER TO ARG\r
25359         012422' 202305  000000          MOVEM   V,0(ARG)        ;36BIT VALUE TO FREE CORE\r
25360         012423' 665240  004000          TLOA    ARG,PNTF        ;NOTE THAT ARG IS APOINTER, NOT A 18BIT VALUE\r
25361 \r
25362         012424' 540240  000006  INSRT4: HRR     ARG,V           ;18BIT VALUE TO ARG\r
25363         012425' 137440  003303'         DPB     RC,RCPNTR       ;FIX RIGHT RELOCATION\r
25364         012426' 603440  000001          TLNE RC,1\r
25365         012427' 661240  000002          TLO ARG,LELF    ;FIX LEFT RELOCATION\r
25366         012430' 202244  000000  INSRT6: MOVEM   ARG,0(SX)       ;INSERT FLAGS AND VALUE.\r
25367         012431' 202004  777777          MOVEM   AC0,-1(SX)      ;INSERT SYMBOL NAME.\r
25368         012432' 260740  012455'         PUSHJ   PP,SRCHI        ;INITILIAZE SRCHX\r
25369         012433' 254000  012203'         JRST    QSRCH           ;EXIT THROUGH CREF\r
25370         \r
25371         012434' 201140  000002  INSRT5: MOVEI SDEL,2    ;GET TWO CELLS FROM FREE CORE\r
25372         012435' 273140  012727'         ADDB SDEL,FREE\r
25373         012436' 311140  013102'         CAML SDEL,SYMBOL;MORE CORE NEEDED?\r
25374         012437' 260740  010014'         PUSHJ PP,XCEEDS ;YES\r
25375         012440' 202443  777777          MOVEM RC,-1(SDEL)\r
25376         012441' 541243  777776          HRRI ARG,-2(SDEL)       ;POINTER TO ARG\r
25377         012442' 202305  000000          MOVEM V,0(ARG)\r
25378         012443' 661240  000010          TLO ARG,SPTR    ;SET SPECIAL POINTER, POINTS TO TWO CELLS\r
25379         012444' 254000  012430'         JRST INSRT6\r
25380 \r\fMACRO V.10                     PAGE 166\r
25381         USER-DEFINED SYMBOL SEARCH ROUTINES\r
25382 \r
25383         012445' 275200  000002  REMOVE: SUBI    SX,2            ;MOVE EVERYONE UP TWO LOCATIONS\r
25384         012446' 200004  000000  REMOV1: MOVE    0(SX)\r
25385         012447' 202004  000002          MOVEM   2(SX)           ;OVERWRITE THE DELETED SYMBOL\r
25386         012450' 312200  013102'         CAME    SX,SYMBOL       ;SKIP WHEN DONE\r
25387         012451' 364200  012446'         SOJA    SX,REMOV1\r
25388         012452' 271200  000002          ADDI    SX,2\r
25389         012453' 202200  013102'         MOVEM   SX,SYMBOL\r
25390         012454' 370004  000000          SOS     0(SX)           ;DECREMENT THE SYMBOL COUNT\r
25391 \r
25392         012455' 201100  000000  SRCHI:  MOVEI   AC2,0           ;THIS CODE SETS UP SRCHX\r
25393         012456' 140120  013102'         FAD     AC2,@SYMBOL\r
25394         012457' 242100  777745          LSH     AC2,-^D27\r
25395         012460' 201040  001000          MOVEI   AC1,1000\r
25396         012461' 242042  777421          LSH     AC1,-357(AC2)\r
25397         012462' 542040  013077'         HRRM    AC1,SRCHX\r
25398         012463' 242040  000001          LSH     AC1,1\r
25399         012464' 270040  013102'         ADD     AC1,SYMBOL\r
25400         012465' 506040  013077'         HRLM    AC1,SRCHX\r
25401         012466' 263740  000000          POPJ    PP,             ;SRCHX=XWD <SYMTBL+LENGTH/2>,LENGTH/4\r
25402 \r
25403 \r\fMACRO V.10                     PAGE 167\r
25404         USER-DEFINED SYMBOL SEARCH ROUTINES\r
25405 \r
25406         012467' 137440  003303' UPDATE: DPB     RC,RCPNTR       ;FIX RIGHT RELOCATION\r
25407         012470' 603240  000010          TLNE ARG,SPTR   ;SKIP IF THERE IS NO SPECIAL POINTER\r
25408         012471' 254000  012521'         JRST UPDAT4     ;YES, USE THE TWO CELLS\r
25409         012472' 607440  777776          TLNN RC,-2      ;NEED TO CHANGE\r
25410         012473' 602440  777776          TRNE RC,-2      ;ANY CURRENT EXTERNS?\r
25411         012474' 254000  012525'         JRST UPDAT5     ;YES ,JUMP\r
25412         012475' 621240  000002          TLZ ARG,LELF    ;CLEAR LELF\r
25413         012476' 603440  000001          TLNE RC,1       ;LEFT RELOCATABLE?\r
25414         012477' 661240  000002          TLO ARG,LELF    ;YES, SET THE FLAG\r
25415         012500' 603240  004000          TLNE    ARG,PNTF        ;WAS THERE A 36BIT VALUE?\r
25416         012501' 254000  012514'         JRST    UPDAT2          ;YES, USE IT.\r
25417         012502' 603300  777777          TLNE    V,-1            ;NO,IS THERE A 36BIT VALUE?\r
25418         012503' 254000  012507'         JRST    UPDAT1          ;YES, GET A CELL\r
25419         012504' 540240  000006          HRR     ARG,V           ;NO, USE RH OF ARG\r
25420         012505' 202244  000000  UPDAT3: MOVEM   ARG,0(SX)       ;OVERWRITE THE ONE IN THE TABLE\r
25421         012506' 263740  000000          POPJ    PP,             ;AND EXIT\r
25422 \r
25423         012507' 350140  012727' UPDAT1: AOS     SDEL,FREE       ;GET ONE CELL\r
25424         012510' 311140  013102'         CAML    SDEL,SYMBOL     ;NEED MORE CORE?\r
25425         012511' 260740  010014'         PUSHJ   PP,XCEEDS       ;YES\r
25426         012512' 541243  777777          HRRI    ARG,-1(SDEL)    ;POINTER TO ARG\r
25427         012513' 661240  004000          TLO     ARG,PNTF        ;AND NOTE IT.\r
25428         012514' 603240  001000  UPDAT2: TLNE ARG,EXTF   ;IS THERE A EXTERNAL?\r
25429         012515' 254000  012505'         JRST UPDAT3             ;YES, - JUST SAVE A LOCATION\r
25430         012516' 202244  000000          MOVEM   ARG,0(SX)       ;NO, OVERWRITE THE POINTER IN THE TABLE\r
25431         012517' 202305  000000          MOVEM   V,0(ARG)        ;STORE VALUE AS A 36BIT VALUE\r
25432         012520' 263740  000000          POPJ    PP,             ;AND EXIT\r
25433         \r
25434         012521' 202244  000000  UPDAT4: MOVEM ARG,0(SX) ;WE HAVE TWO CELLS, WE USE THEM\r
25435         012522' 202305  000000          MOVEM V,0(ARG)  ;SAVE AS 36BIT VALUE\r
25436         012523' 202445  000001          MOVEM RC,1(ARG) ;SAVE RELOCATION BITS\r
25437         012524' 263740  000000          POPJ PP,                ;AND EXIT\r
25438 \r
25439         012525' 201140  000002  UPDAT5: MOVEI SDEL,2            ;THERE IS A EXTERNAL\r
25440         012526' 273140  012727'         ADDB SDEL,FREE          ;SO WE NEED TWO LOACTIONS\r
25441         012527' 311140  013102'         CAML SDEL,SYMBOL        ;NEED MORE CORE?\r
25442         012530' 260740  010014'         PUSHJ PP,XCEEDS         ;YES\r
25443         012531' 202443  777777          MOVEM RC,-1(SDEL)       ;SAVE RELOCATION BITS\r
25444         012532' 541243  777776          HRRI ARG,-2(SDEL)       ;SAVE THE POINTER IN ARG\r
25445         012533' 202305  000000          MOVEM V,0(ARG)          ;SAVE A 36BIT VALUE\r
25446         012534' 661240  000010          TLO ARG,SPTR            ;SET SPECIAL PNTR FLAG\r
25447         012535' 621240  004000          TLZ ARG,PNTF            ;CLEAR POINTER FLAG\r
25448         012536' 254000  012505'         JRST UPDAT3             ;SAVE THE POINTER AND EXIT\r
25449 \r
25450 \r\fMACRO V.10                     PAGE 168\r
25451         CONSTANTS\r
25452 \r
25453                                         SUBTTL  CONSTANTS\r
25454 \r
25455 \r
25456 \r\fMACRO V.10                     PAGE 169\r
25457         PHASED CODE\r
25458 \r
25459                                         SUBTTL PHASED CODE\r
25460                                       SUBTTL PHASED CODE\r
25461         012537'                 LSTFIL: BLOCK 1\r
25462         012540' 400000  000000          SIXBIT /@/      ;SYMBOL TO STOP PRINTING\r
25463         012541'                 TAG:    BLOCK   1\r
25464         012542' 001300  400000          SIXBIT  / + @/\r
25465         012543'                 TABI:\r
25466         012543' 000221  104422          BYTE    (7) 0, 11, 11, 11, 11\r
25467         012544'                 SEQNO:  BLOCK   1\r
25468         012545' 201004  020100          ASCIZ   /       /\r
25469         012546' 201000  000000\r
25470         012547' 000000  000014  BININI: EXP     B\r
25471         012550'                 BINDEV: BLOCK   1\r
25472         012551' 012655' 000000          XWD     BINBUF,0\r
25473         012552' 000000  000001  LSTINI: EXP     AL\r
25474         012553'                 LSTDEV: BLOCK   1\r
25475         012554' 012652' 000000          XWD     LSTBUF,0\r
25476                                 IFN CCLSW,<\r
25477         012555' 000000  000016  NUNINI: EXP     DMP\r
25478         012556'                 NUNDEV: BLOCK   1\r
25479         012557' 000000  000000          XWD     0,0\r
25480         012560' 000000  000001  RPGINI: EXP     AL\r
25481         012561'                 RPGDEV: BLOCK 1\r
25482         012562' 000000  013422'         XWD 0,CTLBLK\r
25483                                 >\r
25484         012563' 000000  000000  INDEVI: EXP     A\r
25485         012564'                 INDEV:  BLOCK   1\r
25486         012565' 000000  012660'         XWD     0,IBUF\r
25487         012566' 201004  020100  DBUF:   ASCIZ   /                 PAGE /\r
25488         012567' 201004  020100\r
25489         012570' 201004  020100\r
25490         012571' 201012  040616\r
25491         012572' 425000  000000\r
25492         012573' 046330  141644  VBUF:   ASCIZ   /       MACRO / ;MUST BE LAST LOCATIONS IN BLOCK\r
25493         012574' 475000  000000\r
25494         012575'                         BLOCK   3       ;ALLOW FOR LONG TITLE\r
25495 \r
25496 \r\fMACRO V.10                     PAGE 170\r
25497         STORAGE CELLS\r
25498 \r
25499                                 SUBTTL  STORAGE CELLS\r
25500 \r
25501         012600'                 PASS1I:\r
25502 \r
25503         012600'                 RP:     BLOCK   1\r
25504 \r
25505                                 IFE CCLSW,<CTIBUF:      BLOCK   3\r
25506                                 CTOBUF: BLOCK   3\r
25507                                 >\r
25508         012601'                 IFN CCLSW,<CTLBUF:      BLOCK   <CTLSIZ+5>/5\r
25509                                 >\r
25510         012652'                 LSTBUF: BLOCK   3\r
25511         012655'                 BINBUF: BLOCK   3\r
25512         012660'                 IBUF:   BLOCK   3\r
25513         012663'                 IFN CCLSW,<NUNDIR:>\r
25514         012663'                 LSTDIR: BLOCK   4\r
25515         012667'                 BINDIR: BLOCK   4\r
25516         012673'                 INDIR:  BLOCK   4\r
25517 \r
25518         012677'                 ACDELX:                         ;LEFT HALF\r
25519         012677'                 BLKTYP: BLOCK   1               ;RIGHT HALF\r
25520 \r
25521         012700'                 COUTX:  BLOCK   1\r
25522         012701'                 COUTY:  BLOCK   1\r
25523         012702'                 COUTP:  BLOCK   1\r
25524         012703'                 COUTRB: BLOCK   1\r
25525         012704'                 COUTDB: BLOCK   ^D18\r
25526 \r
25527         012726'                 ERRCNT: BLOCK   1\r
25528         012727'                 FREE:   BLOCK   1\r
25529                                 IFN RENTSW,<HIGH1:      BLOCK 1\r
25530                                 HISNSW: BLOCK   1\r
25531                                 SVTYP3: BLOCK   1\r
25532                                 HMIN:   BLOCK   1       ;START OF HIGH SEG. IN TWO SEG. PROG.>\r
25533         012730'                 IFBLK:  BLOCK   .IFBLK\r
25534         012754'                 IFBLKA: BLOCK   .IFBLK\r
25535         013000'                 LADR:   BLOCK   1\r
25536         013001'                 NCOLLS: BLOCK   1\r
25537         013002'                 LIMBO:  BLOCK   1\r
25538         013003'                 LBUFP:  BLOCK   1\r
25539         013004'                 LBUF:   BLOCK   <.CPL+5>/5\r
25540         013026'                         BLOCK 1\r
25541         013027'                 VARHD:  BLOCK   1\r
25542         013030'                 VARHDX: BLOCK   1\r
25543 \r
25544         013031'                 LITAB:  BLOCK   1\r
25545         013032'                 LITABX: BLOCK   1\r
25546         013033'                         BLOCK   1\r
25547         013034'                 LITHD:  BLOCK   1\r
25548         013035'                 LITHDX: BLOCK   1\r
25549         013036'                 LITCNT: BLOCK   1\r
25550         013037'                 LITNUM: BLOCK   1\r
25551 \r
25552 \r\fMACRO V.10                     PAGE 170-1\r
25553         STORAGE CELLS\r
25554 \r
25555         013040'                 LOOKX:  BLOCK   1\r
25556         013041'                 NEXT:   BLOCK   1\r
25557         013042'                 OUTSW:  BLOCK   1\r
25558         013043'                 PDP:    BLOCK   1\r
25559         013044'                 RECCNT: BLOCK   1\r
25560         013045'                 SAVBLK: BLOCK   RC\r
25561         013056'                 SAVERC: BLOCK   1\r
25562         013057'                 SBUF:   BLOCK   .SBUF/5\r
25563         013077'                 SRCHX:  BLOCK   1\r
25564         013100'                 SUBTTX: BLOCK   1\r
25565         013101'                 SVSYM:  BLOCK   1\r
25566         013102'                 SYMBOL: BLOCK   1\r
25567         013103'                 SYMTOP: BLOCK   1\r
25568 \r
25569         013104'                 STPX:   BLOCK   1\r
25570         013105'                 STPY:   BLOCK   1\r
25571         013106'                 STCODE: BLOCK   .STP\r
25572         013156'                 STOWRC: BLOCK   .STP\r
25573 \r
25574         013226'                 TABP:   BLOCK   1\r
25575         013227'                 TCNT:   BLOCK   1               ;COUNT OF CHARS. LEFT IN TBUF\r
25576         013230'                 TBUF:   BLOCK   .TBUF/5\r
25577         013250'                 DEVBUF: BLOCK   6               ;STORE NAME.EXT CREATION DATE AND TIME\r
25578         013256'                 TYPERR: BLOCK   1\r
25579         013257'                 IONSYM: BLOCK   1       ;-1 SUPRESS LISTING OF SYMBOLS\r
25580         013260'                 PRGPTR: BLOCK   1       ;POINTER TO CHAIN OF PRGEND BLOCKS\r
25581         013261'                 ENTERS: BLOCK   1       ;-1 WHEN ENTERS HAVE BEEN DONE\r
25582                                 IFN UNIVR,<UNIVSN:      BLOCK   1       ;-1 WHEN A UNIVERSAL SEEN>\r
25583 \r
25584 \r\fMACRO V.10                     PAGE 171\r
25585         STORAGE CELLS\r
25586 \r
25587         013262'                 PASS2I:\r
25588 \r
25589         013262'                 ABSHI:  BLOCK 1\r
25590         013263'                 HIGH:   BLOCK   1\r
25591                                 IFN RENTSW,<HHIGH: BLOCK 1      ;SAVE BREAK OF HIGH SEG. IN TWO SEG PROG.>\r
25592         013264'                 ACDEVX: BLOCK   1\r
25593         013265'                 CPL:    BLOCK   1\r
25594         013266'                 CTLSAV: BLOCK   1\r
25595         013267'                 CTLS1:  BLOCK   1\r
25596         013270'                 EXTPNT: BLOCK   1\r
25597         013271'                 INTENT: BLOCK   1\r
25598         013272'                 INREP:  BLOCK 1\r
25599         013273'                 INDEF:  BLOCK 1\r
25600         013274'                 INTXT:  BLOCK 1\r
25601         013275'                 INCND:  BLOCK   1\r
25602         013276'                 CALNAM: BLOCK   1\r
25603         013277'                 CALPG:  BLOCK 1\r
25604         013300'                 CALSEQ: BLOCK 1\r
25605         013301'                 DEFPG:  BLOCK 1\r
25606         013302'                 DEFSEQ: BLOCK 1\r
25607         013303'                 LITPG:  BLOCK 1\r
25608         013304'                 LITSEQ: BLOCK 1\r
25609         013305'                 REPPG:  BLOCK 1\r
25610         013306'                 REPSEQ: BLOCK 1\r
25611         013307'                 TXTPG:  BLOCK 1\r
25612         013310'                 TXTSEQ: BLOCK 1\r
25613         013311'                 CNDPG:  BLOCK   1\r
25614         013312'                 CNDSEQ: BLOCK   1\r
25615         013313'                 IRPCNT: BLOCK   1\r
25616         013314'                 IRPARG: BLOCK   1\r
25617         013315'                 IRPARP: BLOCK   1\r
25618         013316'                 IRPCF:  BLOCK   1\r
25619         013317'                 IRPPOI: BLOCK   1\r
25620         013320'                 IRPSW:  BLOCK   1\r
25621         013321'                 LITLVL: BLOCK   1\r
25622         013322'                 LITLBL: BLOCK   1               ;NAME OF LABEL DEFINED INSIDE A LITERAL\r
25623 \r
25624         013323'                 ASGBLK: BLOCK   1\r
25625         013324'                 LOCBLK: BLOCK   1\r
25626 \r
25627         013325'                 LOCA:   BLOCK   1\r
25628         013326'                 LOCO:   BLOCK   1\r
25629         013327'                 RELLOC: BLOCK   1\r
25630         013330'                 ABSLOC: BLOCK   1\r
25631         013331'                 LPP:    BLOCK   1\r
25632         013332'                 MODA:   BLOCK   1\r
25633         013333'                 MODLOC: BLOCK   1\r
25634         013334'                 MODO:   BLOCK   1\r
25635         013335'                 IFN CCLSW,<OTBUF:       BLOCK 2>\r
25636         013337'                 OUTSQ:  BLOCK 2\r
25637         013341'                 PAGEN.: BLOCK   1\r
25638         013342'                 PPTEMP: BLOCK   1\r
25639         013343'                 PPTMP1: BLOCK   1\r
25640 \r\fMACRO V.10                     PAGE 171-1\r
25641         STORAGE CELLS\r
25642 \r
25643         013344'                 PPTMP2: BLOCK   1\r
25644 \r
25645         013345'                 REPCNT: BLOCK   1\r
25646         013346'                 REPEXP: BLOCK   1\r
25647         013347'                 REPPNT: BLOCK   1\r
25648         013350'                 RPOLVL: BLOCK   1\r
25649         013351'                 R1BCNT: BLOCK 1\r
25650         013352'                 R1BCHK: BLOCK 1\r
25651         013353'                 R1BBLK: BLOCK .R1B\r
25652         013375'                 R1BLOC: BLOCK 1\r
25653         013376'                 RIMLOC: BLOCK   1\r
25654         013377'                 TAGINC: BLOCK   1\r
25655         013400'                 VECREL: BLOCK   1\r
25656         013401'                 VECTOR: BLOCK   1\r
25657         013402'                 .TEMP:  BLOCK   1               ;TEMPORARY STORAGE\r
25658                                 IFN UNIVR,<UNISCH:      BLOCK   .UNIV           ;SEARCH TABLE FOR UNIVERSALS>\r
25659         013403'                 SQFLG:  BLOCK 1\r
25660         013404'                 ARGF:   BLOCK   1\r
25661         013405'                 MACENL: BLOCK   1\r
25662         013406'                 MACLVL: BLOCK   1\r
25663         013407'                 MACPNT: BLOCK   1\r
25664         013410'                 WWRXX:  BLOCK   1\r
25665         013411'                 RCOUNT: BLOCK   1               ;COUNT OF WORDS STILL TO READ IN LEAF\r
25666         013412'                 WCOUNT: BLOCK   1               ;COUNT OF WORDS STILL FREE IN LEAF\r
25667         013413'                 PASS2Z:                         ;ONLY CLEAR TO HERE ON PRGEND\r
25668         013413'                 LSTSYM: BLOCK   1\r
25669         013414'                 PAGENO: BLOCK   1\r
25670         013415'                 SEQNO2: BLOCK 1\r
25671         013416'                 PASS2X:\r
25672 \r
25673 \r\fMACRO V.10                     PAGE 172\r
25674         MULTI-ASSEMBLY STORAGE CELLS\r
25675 \r
25676                                 SUBTTL  MULTI-ASSEMBLY STORAGE CELLS\r
25677 \r
25678         013416'                 LSTPGN: BLOCK 1\r
25679         013417'                 HDAS:   BLOCK 1\r
25680         013420'                 IFN CCLSW,<EXTMP:       BLOCK 1 ;HOLDS EXT OF COMMAND FILE (RH)\r
25681         013421'                 SAVFF:  BLOCK   1\r
25682         013422'                 CTLBLK: BLOCK   3\r
25683         013425'                 CTIBUF: BLOCK   3\r
25684         013430'                 CTOBUF: BLOCK   3>\r
25685         013433'                 MACSIZ: BLOCK   1               ;INITIAL SIZE OF LOW SEG\r
25686                                 IFN UNIVR,<\r
25687                                 UNISIZ: BLOCK   1               ;TOP OF BUFFERS AND STACKS\r
25688                                 UNITOP: BLOCK   1               ;TOP OF UNIVERSAL SYMBOL TABLE\r
25689                                 UNIVNO: BLOCK   1               ;NUMBER OF UNIVERSALS SEEN\r
25690                                 UNITBL: BLOCK   .UNIV           ;TABLE OF UNIVERSAL NAMES\r
25691                                 UNIPTR: BLOCK   .UNIV           ;TABLE OF SYMBOL POINTERS\r
25692                                 UNISHX: BLOCK   .UNIV           ;TABLE OF SRCHX POINTERS>\r
25693         013434'                         VAR                     ;CLEAR VARIABLES\r
25694 \r
25695         013434'                 JOBFFI: BLOCK   203*NUMBUF+1            ;INPUT BUFFER PLUS ONE\r
25696 \r
25697                         006370'         END     BEG\r
25698         014043' 554140  012664'\r
25699         014044' 302140  634166\r
25700         014045' 254000  007707'\r
25701         014046' 205140  445560\r
25702         014047' 254000  000027'\r
25703         014050' 565764  004556\r
25704         014051' 654600  435762\r
25705         014052' 450046  576200\r
25706         014053' 545156  534147\r
25707         014054' 454000  000000\r
25708         014055' 561440  014050'\r
25709         014056' 254000  007714'\r
25710         014057' 272330  144634\r
25711         014060' 360300  000005\r
25712         014061' 250407  001447'\r
25713         014062' 777777  777777\r
25714         014063' 260740  006335'\r
25715         014064' 261740  000007\r
25716         014065' 260740  000354'\r
25717         014066' 262740  000007\r
25718         014067' 306300  000004\r
25719         014070' 254000  000750'\r
25720         014071' 306340  000074\r
25721         014072' 254000  000750'\r
25722         014073' 336000  000000\r
25723         014074' 664600  200000\r
25724         014075' 476000  000011\r
25725         014076' 254000  000750'\r
25726         014077' 204500  000000\r
25727         014100' 000000  000000\r
25728         014101' 200000  000000\r
25729 \r\fMACRO V.10                     PAGE 172-1\r
25730         MULTI-ASSEMBLY STORAGE CELLS\r
25731 \r
25732         014102' 660600  002000\r
25733         014103' 321640  001170'\r
25734         014104' 254000  001154'\r
25735         014105' 060300  000003\r
25736         014106' 350700  013004'\r
25737         014107' 202400  012537'\r
25738         014110' 201400  012537'\r
25739         014111' 260740  003001'\r
25740         014112' 201340  000040\r
25741         014113' 260740  010325'\r
25742         014114' 200400  013414'\r
25743         014115' 254000  001723'\r
25744         014116' 502030  742500\r
25745         014117' 000000  000000\r
25746         014120' 202400  013416'\r
25747         014121' 201400  014116'\r
25748         014122' 260740  002774'\r
25749         014123' 200340  013414'\r
25750         014124' 260740  002765'\r
25751         014125' 260740  010316'\r
25752         014126' 254000  001724'\r
25753         014127' 202433  040610\r
25754         014130' 462452  553234\r
25755         014131' 476410  546400\r
25756         014132' 440700  014127'\r
25757         014133' 440700  013004'\r
25758         014134' 350700  012543'\r
25759         014135' 655641  636351\r
25760         014136' 475645  441400\r
25761         014137' 444546  515645\r
25762         014140' 440041  630051\r
25763         014141' 460045  706445\r
25764         014142' 625641  540040\r
25765         014143' 516631  541236\r
25766         014144' 461012  440604\r
25767         014145' 462120  000000\r
25768         014146' 202200  012730'\r
25769         014147' 254000  002300'\r
25770         014150' 440700  013230'\r
25771         014151' 440200  012703'\r
25772         014152' 777761  003110'\r
25773         014153' 316000  013262'\r
25774         014154' 552100  013262'\r
25775         014155' 254000  003135'\r
25776         014156' 000000  007666'\r
25777         014157' 502451  743644\r
25778         014160' 406321  100000\r
25779         014161' 201400  014157'\r
25780         014162' 260740  002774'\r
25781         014163' 201400  013230'\r
25782         014164' 260740  002774'\r
25783         014165' 254000  010316'\r
25784         014166' 606257  476241\r
25785 \r\fMACRO V.10                     PAGE 172-2\r
25786         MULTI-ASSEMBLY STORAGE CELLS\r
25787 \r
25788         014167' 550042  624541\r
25789         014170' 530051  630040\r
25790         014171' 524400  013263'\r
25791         014172' 254000  003220'\r
25792         014173' 414263  546564\r
25793         014174' 450042  624541\r
25794         014175' 530051  630040\r
25795         014176' 530043  576245\r
25796         014177' 006563  454440\r
25797         014200' 013262' 013263'\r
25798         014201' 260740  010470'\r
25799         014202' 661240  002000\r
25800         014203' 254000  003606'\r
25801         014204' 321640  003743'\r
25802         014205' 627240  002000\r
25803         014206' 254000  003743'\r
25804         014207' 406244  000000\r
25805         014210' 254000  003726'\r
25806         014211' 550000  013326'\r
25807         014212' 250000  013330'\r
25808         014213' 254000  004125'\r
25809         014214' 550000  013326'\r
25810         014215' 250000  013327'\r
25811         014216' 254000  004125'\r
25812         014217' 313300  013262'\r
25813         014220' 202300  013262'\r
25814         014221' 263740  000000\r
25815         014222' 440700  013335'\r
25816         014223' 064240  000000\r
25817         014224' 620600  040000\r
25818         014225' 263740  000000\r
25819         014226' 250017  777777\r
25820         014227' 603000  777000\r
25821         014230' 660600  200000\r
25822         014231' 250017  777777\r
25823         014232' 254000  004446'\r
25824         014233' 300617  000000\r
25825         014234' 336000  000000\r
25826         014235' 660600  200000\r
25827         014236' 364000  002665'\r
25828         014237' 300600  000005\r
25829         014240' 140601  001447'\r
25830         014241' 000001  000000\r
25831         014242' 606247  455644\r
25832         014243' 004562  625762\r
25833         014244' 004000  000000\r
25834         014245' 261140  000005\r
25835         014246' 344340  005310'\r
25836         014247' 336000  013403'\r
25837         014250' 254000  005326'\r
25838         014251' 261740  000007\r
25839         014252' 201340  000047\r
25840         014253' 260740  006262'\r
25841 \r\fMACRO V.10                     PAGE 172-3\r
25842         MULTI-ASSEMBLY STORAGE CELLS\r
25843 \r
25844         014254' 262740  000007\r
25845         014255' 402000  013403'\r
25846         014256' 254000  005326'\r
25847         014257' 067760  400000\r
25848         014260' 003617  074362\r
25849         014261' 003617  074360\r
25850         014262' 271406  030140\r
25851         014263' 456262  576200\r
25852         014264' 675051  544500\r
25853         014265' 457060  415644\r
25854         014266' 515647  400000\r
25855         014267' 410300  000137\r
25856         014270' 220600  000137\r
25857         014271' 301100  000137\r
25858         014272' 260700  012574'\r
25859         014273' 012600' 012601'\r
25860         014274' 440700  012601'\r
25861         014275' 456262  576200\r
25862         014276' 624541  445156\r
25863         014277' 470043  575555\r
25864         014300' 415644  004651\r
25865         014301' 544540  000000\r
25866         014302' 561440  014275'\r
25867         014303' 254000  007714'\r
25868         014304' 056200  000000\r
25869         014305' 263740  000000\r
25870         014306' 061200  020000\r
25871         014307' 254000  014302'\r
25872         014310' 260740  000066'\r
25873         014311' 047000  000012\r
25874         014312' 350000  013423'\r
25875         014313' 211440  000005\r
25876         014314' 272440  013424'\r
25877         014315' 254000  006546'\r
25878         014316' 435755  554156\r
25879         014317' 440054  515645\r
25880         014320' 006457  570054\r
25881         014321' 575647  400000\r
25882         014322' 326140  006615'\r
25883         014323' 205140  434354\r
25884         014324' 254000  006605'\r
25885         014325' 436245  460000\r
25886         014326' 013426' 013266'\r
25887         014327' 466030  351236\r
25888         014330' 351000  000000\r
25889         014331' 047140  000004\r
25890         014332' 603140  000004\r
25891         014333' 254000  007125'\r
25892         014334' 332100  012673'\r
25893         014335' 202100  012663'\r
25894         014336' 254000  007125'\r
25895         014337' 047140  000004\r
25896         014340' 603140  000004\r
25897 \r\fMACRO V.10                     PAGE 172-4\r
25898         MULTI-ASSEMBLY STORAGE CELLS\r
25899 \r
25900         014341' 254000  007133'\r
25901         014342' 332100  012673'\r
25902         014343' 202100  012667'\r
25903         014344' 254000  007133'\r
25904         014345' 455644  005746\r
25905         014346' 006041  636300\r
25906         014347' 214000  000000\r
25907         014350' 545741  440064\r
25908         014351' 504500  564570\r
25909         014352' 640046  515445\r
25910         014353' 400000  000000\r
25911         014354' 306340  000032\r
25912         014355' 047000  000012\r
25913         014356' 254000  007227'\r
25914         014357' 435755  554156\r
25915         014360' 440045  626257\r
25916         014361' 624000  000000\r
25917         014362' 440400  007611'\r
25918         014363' 270407  007570'\r
25919         014364' 375657  004556\r
25920         014365' 440063  644164\r
25921         014366' 455545  566400\r
25922         014367' 455643  576556\r
25923         014370' 644562  454400\r
25924         014371' 575600  515660\r
25925         014372' 656400  465154\r
25926         014373' 454000  000000\r
25927         014374' 515600  545164\r
25928         014375' 456241  544000\r
25929         014376' 014374' 013303'\r
25930         014377' 515600  444546\r
25931         014400' 515645  400000\r
25932         014401' 014377' 013301'\r
25933         014402' 515600  644570\r
25934         014403' 644000  000000\r
25935         014404' 014402' 013307'\r
25936         014405' 515600  435756\r
25937         014406' 445164  515756\r
25938         014407' 415400  576200\r
25939         014410' 624560  454164\r
25940         014411' 400000  000000\r
25941         014412' 014405' 013305'\r
25942         014413' 515600  435756\r
25943         014414' 445164  515756\r
25944         014415' 415440  000000\r
25945         014416' 014413' 013311'\r
25946         014417' 515600  554143\r
25947         014420' 625700  434154\r
25948         014421' 544000  000000\r
25949         014422' 014417' 013277'\r
25950         014423' 014353' 013414'\r
25951         014424' 565764  004166\r
25952         014425' 415154  414254\r
25953 \r\fMACRO V.10                     PAGE 172-5\r
25954         MULTI-ASSEMBLY STORAGE CELLS\r
25955 \r
25956         014426' 454000  000000\r
25957         014427' 000001  014424'\r
25958         014430' 102011  005154\r
25959         014431' 544547  415400\r
25960         014432' 465154  450056\r
25961         014433' 415545  400000\r
25962         014434' 102011  004651\r
25963         014435' 544500  674163\r
25964         014436' 005657  640046\r
25965         014437' 576556  444000\r
25966         014440' 102111  005657\r
25967         014441' 004451  624543\r
25968         014442' 645762  710046\r
25969         014443' 576200  606257\r
25970         014444' 524543  641560\r
25971         014445' 625747  624155\r
25972         014446' 554562  005665\r
25973         014447' 554245  624000\r
25974         014450' 102211  006062\r
25975         014451' 576445  436451\r
25976         014452' 575600  464151\r
25977         014453' 546562  454000\r
25978         014454' 102311  004651\r
25979         014455' 544500  674163\r
25980         014456' 004245  515647\r
25981         014457' 005557  445146\r
25982         014460' 514544  400000\r
25983         014461' 102411  006245\r
25984         014462' 564155  450046\r
25985         014463' 515445  005641\r
25986         014464' 554500  415462\r
25987         014465' 454144  710045\r
25988         014466' 705163  646340\r
25989         014467' 102511  005154\r
25990         014470' 544547  415400\r
25991         014471' 634561  654556\r
25992         014472' 434500  574600\r
25993         014473' 656557  634000\r
25994         014474' 102611  004241\r
25995         014475' 440065  464400\r
25996         014476' 576200  424144\r
25997         014477' 006251  424000\r
25998         014500' 102711  005657\r
25999         014501' 640041  006341\r
26000         014502' 660046  515445\r
26001         014503' 400000  000000\r
26002         014504' 102120  110056\r
26003         014505' 576400  455657\r
26004         014506' 654750  004357\r
26005         014507' 624540  000000\r
26006         014510' 102121  110044\r
26007         014511' 456651  434500\r
26008         014512' 565764  004166\r
26009 \r\fMACRO V.10                     PAGE 172-6\r
26010         MULTI-ASSEMBLY STORAGE CELLS\r
26011 \r
26012         014513' 415154  414254\r
26013         014514' 454000  000000\r
26014         014515' 102122  110056\r
26015         014516' 570063  654350\r
26016         014517' 004445  665143\r
26017         014520' 454000  000000\r
26018         014521' 102123  110056\r
26019         014522' 576400  646757\r
26020         014523' 006245  545743\r
26021         014524' 006245  471600\r
26022         014525' 434160  414251\r
26023         014526' 545164  714000\r
26024         014527' 102124  110056\r
26025         014530' 570062  575755\r
26026         014531' 005762  006165\r
26027         014532' 576441  004570\r
26028         014533' 434545  444544\r
26029         014534' 400000  000000\r
26030         014535' 102125  110067\r
26031         014536' 625164  450054\r
26032         014537' 574353  004562\r
26033         014540' 625762  400000\r
26034         014541' 102126  110056\r
26035         014542' 576400  455657\r
26036         014543' 654750  005557\r
26037         014544' 565164  576200\r
26038         014545' 644142  544500\r
26039         014546' 636041  434540\r
26040         014547' 102127  110060\r
26041         014550' 416264  514154\r
26042         014551' 004154  545743\r
26043         014552' 416451  575600\r
26044         014553' 575654  714000\r
26045         014554' 102220  110042\r
26046         014555' 545743  530056\r
26047         014556' 576400  466245\r
26048         014557' 450057  560041\r
26049         014560' 545457  434164\r
26050         014561' 515756  400000\r
26051         014562' 102221  110043\r
26052         014563' 415607  640063\r
26053         014564' 656045  626345\r
26054         014565' 444500  104556\r
26055         014566' 644562  110041\r
26056         014567' 560045  705163\r
26057         014570' 645156  470044\r
26058         014571' 516245  436457\r
26059         014572' 627140  000000\r
26060         014573' 102222  110043\r
26061         014574' 415607  640044\r
26062         014575' 455445  644500\r
26063         014576' 106245  564155\r
26064         014577' 451100  410056\r
26065 \r\fMACRO V.10                     PAGE 172-7\r
26066         MULTI-ASSEMBLY STORAGE CELLS\r
26067 \r
26068         014600' 575615  455560\r
26069         014601' 647100  445162\r
26070         014602' 454364  576271\r
26071         014603' 400000  000000\r
26072         014604' 102223  110063\r
26073         014605' 464400  565764\r
26074         014606' 004657  655644\r
26075         014607' 400000  000000\r
26076         014610' 102224  110063\r
26077         014611' 454162  435000\r
26078         014612' 545163  640045\r
26079         014613' 556064  714000\r
26080         014614' 102225  110063\r
26081         014615' 464400  564563\r
26082         014616' 644544  006457\r
26083         014617' 570044  454560\r
26084         014620' 547140  000000\r
26085         014621' 102226  110056\r
26086         014622' 571543  624541\r
26087         014623' 644500  575600\r
26088         014624' 465762  006360\r
26089         014625' 454351  465145\r
26090         014626' 440060  416450\r
26091         014627' 400000  000000\r
26092         014630' 103711  005457\r
26093         014631' 575365  601400\r
26094         014632' 455664  456214\r
26095         014633' 005762  006245\r
26096         014634' 564155  450045\r
26097         014635' 626257  624000\r
26098         014636' 160000  004000\r
26099         014637' 322140  010003'\r
26100         014640' 242140  777772\r
26101         014641' 434140  014636'\r
26102         014642' 254000  010005'\r
26103         014643' 515663  654646\r
26104         014644' 514351  455664\r
26105         014645' 004357  624540\r
26106         014646' 604460  005766\r
26107         014647' 456246  545767\r
26108         014650' 140064  627100\r
26109         014651' 176040  000000\r
26110         014652' 575600  604147\r
26111         014653' 454000  000000\r
26112         014654' 545156  454000\r
26113         014655' 000001  000001\r
26114         014656' 576564  606564\r
26115         014657' 006762  516445\r
26116         014660' 155457  435300\r
26117         014661' 456262  576200\r
26118         014662' 444566  514345\r
26119         014663' 400000  000000\r
26120         014664' 576564  606564\r
26121 \r\fMACRO V.10                     PAGE 172-8\r
26122         MULTI-ASSEMBLY STORAGE CELLS\r
26123 \r
26124         014665' 004441  644100\r
26125         014666' 456262  576200\r
26126         014667' 444566  514345\r
26127         014670' 400000  000000\r
26128         014671' 576564  606564\r
26129         014672' 004350  454353\r
26130         014673' 636555  005762\r
26131         014674' 006041  625164\r
26132         014675' 710045  626257\r
26133         014676' 620044  456651\r
26134         014677' 434540  000000\r
26135         014700' 576564  606564\r
26136         014701' 006165  576441\r
26137         014702' 004570  434545\r
26138         014703' 444544  005756\r
26139         014704' 004445  665143\r
26140         014705' 454000  000000\r
26141         014706' 576564  606564\r
26142         014707' 004254  574353\r
26143         014710' 006457  570054\r
26144         014711' 416247  450044\r
26145         014712' 456651  434540\r
26146         014713' 201004  020101\r
26147         014714' 005156  606564\r
26148         014715' 006050  716351\r
26149         014716' 434154  004556\r
26150         014717' 440057  460064\r
26151         014720' 416045  004445\r
26152         014721' 665143  454000\r
26153         014722' 555756  516457\r
26154         014723' 620044  456445\r
26155         014724' 436445  440063\r
26156         014725' 574664  674162\r
26157         014726' 450051  566065\r
26158         014727' 640045  626257\r
26159         014730' 620044  456651\r
26160         014731' 434540  000000\r
26161         014732' 515660  656400\r
26162         014733' 444164  410045\r
26163         014734' 626257  620044\r
26164         014735' 456651  434540\r
26165         014736' 515660  656400\r
26166         014737' 435045  435363\r
26167         014740' 655500  576200\r
26168         014741' 604162  516471\r
26169         014742' 004562  625762\r
26170         014743' 004445  665143\r
26171         014744' 454000  000000\r
26172         014745' 515660  656400\r
26173         014746' 425457  435300\r
26174         014747' 645757  005441\r
26175         014750' 624745  004445\r
26176         014751' 665143  454000\r
26177 \r\fMACRO V.10                     PAGE 172-9\r
26178         MULTI-ASSEMBLY STORAGE CELLS\r
26179 \r
26180 \r
26181 NO ERRORS DETECTED\r
26182 \r
26183 PROGRAM BREAK IS 014752\r
26184 \r
26185 12K CORE USED\r
26186 \r\fMACRO V.10                     PAGE 173\r
26187         SYMBOL TABLE\r
26188 \r
26189 M               002115  \r
26190 A               000000  SPD\r
26191 ABSHI           013262' \r
26192 ABSLOC          013330' \r
26193 AC0             000000  SPD\r
26194 AC1             000001  \r
26195 AC2             000002  \r
26196 ACDEL           000004  SPD\r
26197 ACDELX          012677' \r
26198 ACDEV           000001  SPD\r
26199 ACDEVX          013264' \r
26200 ACEXT           000003  SPD\r
26201 ACFILE          000002  SPD\r
26202 ACPNTR          000005  SPD\r
26203 ACPPN           000004  SPD\r
26204 ADDF            100000  SPD\r
26205 AL              000001  SPD\r
26206 ANGLB           000653' \r
26207 ANGLB1          000664' \r
26208 ANGLB2          000665' \r
26209 APRENB  047000  000016  \r
26210 ARG             000005  \r
26211 ARGF            013404' \r
26212 ARPGSW          100000  SPD\r
26213 ASC10           004516' \r
26214 ASC20           004534' \r
26215 ASC30           004540' \r
26216 ASC50           004551' \r
26217 ASC55           004550' \r
26218 ASC60           004553' \r
26219 ASCII0          004515' \r
26220 ASGBLK          013323' \r
26221 ASSEM1          000104' \r
26222 ASSEM2          000115' \r
26223 ASSEMB          000077' \r
26224 ASSIG1          004037' \r
26225 ASSIG2          004065' \r
26226 ASSIG3          004073' \r
26227 ASSIG5          004047' \r
26228 ASSIG6          004053' \r
26229 ASSIG7          004027' \r
26230 ASSIGN          004023' \r
26231 ATOM            000325' \r
26232 ATOM1           000327' \r
26233 B               000014  SPD\r
26234 BEG             006370' \r
26235 BIN             000001  SPD\r
26236 BINBUF          012655' \r
26237 BINDEV          012550' \r
26238 BINDIR          012667' \r
26239 BININI          012547' \r
26240 BINSE2          006657' \r
26241 BINSET          006620' \r
26242 \r\fMACRO V.10                     PAGE 173-1\r
26243         SYMBOL TABLE\r
26244 \r
26245 BLKTYP          012677' \r
26246 BLOCK0          003326' \r
26247 BLOCK1          003333' \r
26248 BLOCK2          003335' \r
26249 BOUT            002434' \r
26250 BOUT20          002454' \r
26251 BOUT30          002470' \r
26252 BOUT3I          002511' \r
26253 BOUT40          002530' \r
26254 BOUT50          002555' \r
26255 BOUT60          002575' \r
26256 BOUT70          002564' \r
26257 BOUT80          002577' \r
26258 BYPAS1          004452' \r
26259 BYPAS2          004453' \r
26260 BYPASS          004452' \r
26261 BYTAB           007611' \r
26262 BYTE0           004631' \r
26263 BYTE1           004637' \r
26264 BYTE2           004646' \r
26265 BYTE3           004655' \r
26266 C               000007  \r
26267 CALLM           005511' \r
26268 CALNAM          013276' \r
26269 CALPG           013277' \r
26270 CALSEQ          013300' \r
26271 CC      741000  000000  \r
26272 CC              000000  \r
26273 CCLSW           000001  SPD\r
26274 CELL            000354' \r
26275 CELL1           000361' \r
26276 CELLSF          000353' \r
26277 CHAR            000002  SPD\r
26278 CHARAC          001406' \r
26279 CHARAX          001434' \r
26280 CHARL           001436' \r
26281 CHARL1          001444' \r
26282 CLSC3           012274' \r
26283 CLSCR1          012307' \r
26284 CLSCR2          012276' \r
26285 CLSCRF          012274' \r
26286 CNDPG           013311' \r
26287 CNDSEQ          013312' \r
26288 COMSW           013402' \r
26289 CONBIT          020000  SPD\r
26290 CORE    047000  000011  \r
26291 COUT            002640' \r
26292 COUTD           002645' \r
26293 COUTD2          002652' \r
26294 COUTDB          012704' \r
26295 COUTI           002657' \r
26296 COUTP           012702' \r
26297 COUTRB          012703' \r
26298 \r\fMACRO V.10                     PAGE 173-2\r
26299         SYMBOL TABLE\r
26300 \r
26301 COUTX           012700' \r
26302 COUTY           012701' \r
26303 CPEEK           005371' \r
26304 CPEEK1          005400' \r
26305 CPL             013265' \r
26306 CPOPJ           003360' \r
26307 CPOPJ1          003357' \r
26308 CR              000015  SPD\r
26309 CREF            012221' \r
26310 CREF2           012251' \r
26311 CREF3           012241' \r
26312 CREFSW          002000  SPD\r
26313 CRFHD1          012272' \r
26314 CRFHDR          012264' \r
26315 CRLF            007765' \r
26316 CRPGSW          001000  SPD\r
26317 CS              000010  \r
26318 CSTAT           001447' \r
26319 CTIBUF          013425' \r
26320 CTL             000000  SPD\r
26321 CTL2            000004  SPD\r
26322 CTLBLK          013422' \r
26323 CTLBUF          012601' \r
26324 CTLS1           013267' \r
26325 CTLSAV          013266' \r
26326 CTLSET          006457' \r
26327 CTLSIZ          000310  SPD\r
26328 CTOBUF          013430' \r
26329 CV              000000  SPD\r
26330 DATE    047000  000014  \r
26331 DATOUT          010440' \r
26332 DBUF            012566' \r
26333 DCFSW           000040  SPD\r
26334 DDTOUT  047000  000003  \r
26335 DECERR          006364' \r
26336 DEF02           005224' \r
26337 DEF10           005241' \r
26338 DEF12           005251' \r
26339 DEF20           005254' \r
26340 DEF24           005267' \r
26341 DEF25           005317' \r
26342 DEF26           005310' \r
26343 DEF30           005326' \r
26344 DEF31           005327' \r
26345 DEF32           005330' \r
26346 DEF33           005333' \r
26347 DEF35           005363' \r
26348 DEF36           005355' \r
26349 DEF40           005406' \r
26350 DEF42           005410' \r
26351 DEF44           005427' \r
26352 DEF46           005431' \r
26353 DEF48           005446' \r
26354 \r\fMACRO V.10                     PAGE 173-3\r
26355         SYMBOL TABLE\r
26356 \r
26357 DEF50           005451' \r
26358 DEF51           005456' \r
26359 DEF70           005462' \r
26360 DEF80           005467' \r
26361 DEF81           005474' \r
26362 DEFCRS          000040  SPD\r
26363 DEFIN0          005211' \r
26364 DEFPG           013301' \r
26365 DEFSEQ          013302' \r
26366 DELETE          000066' \r
26367 DEPHA0          004015' \r
26368 DEVBUF          013250' \r
26369 DEVCHR  047000  000004  \r
26370 DEVICE          007267' \r
26371 DEVNAM          007274' \r
26372 DIRBIT          000004  SPD\r
26373 DISBIT          002000  SPD\r
26374 DMP             000016  SPD\r
26375 DMPBIN          010131' \r
26376 DMPLST          010140' \r
26377 DNC             002765' \r
26378 DP1             010063' \r
26379 DSEND           006211' \r
26380 DSKBIT          200000  SPD\r
26381 DSTOW           002712' \r
26382 DTAB            010454' \r
26383 DTABIT          000100  SPD\r
26384 EINIT           007700' \r
26385 END0            003037' \r
26386 ENDP2           003127' \r
26387 ENDP2A          003173' \r
26388 ENDP2B          003220' \r
26389 ENDP2D          003201' \r
26390 ENDP2Q          003137' \r
26391 ENDP2W          003135' \r
26392 ENTERS          013261' \r
26393 ENTF            000200  SPD\r
26394 ENTRDN          007136' \r
26395 EOL             000033  SPD\r
26396 EOT             007176' \r
26397 EOUT            002121' \r
26398 EOUT1           002124' \r
26399 EOUT2           002132' \r
26400 EOUT3           002141' \r
26401 EOUT4           002151' \r
26402 ER              000014  SPD\r
26403 ERRA            040000  SPD\r
26404 ERRAX           003311' \r
26405 ERRBIT          740000  SPD\r
26406 ERRCB           007704' \r
26407 ERRCF           007707' \r
26408 ERRCL           007702' \r
26409 ERRCM           007321' \r
26410 \r\fMACRO V.10                     PAGE 173-4\r
26411         SYMBOL TABLE\r
26412 \r
26413 ERRCNT          012726' \r
26414 ERRD            020000  SPD\r
26415 ERRE            000040  SPD\r
26416 ERRFIN          007714' \r
26417 ERRL            010000  SPD\r
26418 ERRLST          010146' \r
26419 ERRM            000020  SPD\r
26420 ERRMS1          007666' \r
26421 ERRMS2          007671' \r
26422 ERRMS3          007674' \r
26423 ERRN            000400  SPD\r
26424 ERRNE           007633' \r
26425 ERRNE0          007634' \r
26426 ERRNE1          007644' \r
26427 ERRNE2          007656' \r
26428 ERRNE3          007663' \r
26429 ERRO            000200  SPD\r
26430 ERRORS          777760  SPD\r
26431 ERRP            000100  SPD\r
26432 ERRQ            200000  SPD\r
26433 ERRQSW          000010  SPD\r
26434 ERRR            004000  SPD\r
26435 ERRTYP          007711' \r
26436 ERRU            002000  SPD\r
26437 ERRV            001000  SPD\r
26438 ERRX            100000  SPD\r
26439 EVADR           004403' \r
26440 EVAL10          003745' \r
26441 EVALC3          001064' \r
26442 EVALCM          001057' \r
26443 EVALEX          001070' \r
26444 EVALHA          001056' \r
26445 EVALXQ          003757' \r
26446 EVATOM          001073' \r
26447 EVERRU          001150' \r
26448 EVERRZ          001147' \r
26449 EVGETD          001170' \r
26450 EVMAC           001107' \r
26451 EVNUM           001175' \r
26452 EVOP            001122' \r
26453 EVOPD           001132' \r
26454 EVOPS           001126' \r
26455 EVOPX           001145' \r
26456 EVPUSH          001205' \r
26457 EVTSTR          001164' \r
26458 EVTSTS          001152' \r
26459 EVXCT           001212' \r
26460 EVXCT1          001227' \r
26461 EXIT    047000  000012  \r
26462 EXPRES          004465' \r
26463 EXTER0          003715' \r
26464 EXTER1          003717' \r
26465 EXTER2          003726' \r
26466 \r\fMACRO V.10                     PAGE 173-5\r
26467         SYMBOL TABLE\r
26468 \r
26469 EXTER3          003743' \r
26470 EXTER4          003741' \r
26471 EXTF            001000  SPD\r
26472 EXTMP           013420' \r
26473 EXTPNT          013270' \r
26474 FF              000014  SPD\r
26475 FINIS           007014' \r
26476 FLDSW           400000  SPD\r
26477 FR              000015  \r
26478 FREE            012727' \r
26479 FSNSW           100000  SPD\r
26480 FTDISK          000001  SPD\r
26481 GCHAR           006255' \r
26482 GCHARQ          006254' \r
26483 GETCHR          001354' \r
26484 GETCS           001375' \r
26485 GETCS1          001377' \r
26486 GETCS2          001374' \r
26487 GETDE1          000434' \r
26488 GETDE2          000444' \r
26489 GETDE3          000436' \r
26490 GETDEL          000433' \r
26491 GETDS           006151' \r
26492 GETDS1          006203' \r
26493 GETE            006404' \r
26494 GETED           006410' \r
26495 GETIOC          007227' \r
26496 GETIT           005064' \r
26497 GETSE1          006761' \r
26498 GETSE2          006774' \r
26499 GETSET          006740' \r
26500 GETSY1          001046' \r
26501 GETSY2          001047' \r
26502 GETSY3          001050' \r
26503 GETSYM          001034' \r
26504 GETTOP          003444' \r
26505 GETU            006416' \r
26506 GETV            006424' \r
26507 GOSET           006540' \r
26508 GOSET1          006546' \r
26509 GOSET2          006570' \r
26510 GOTEND          007165' \r
26511 GTSTOW          002731' \r
26512 HDAS            013417' \r
26513 HIGH            013263' \r
26514 HIGHQ           004146' \r
26515 HIGHQ1          004146' \r
26516 HISEG0          003360' \r
26517 HLPMES          007370' \r
26518 HOUT            002626' \r
26519 HT              000011  SPD\r
26520 IB              000013  SPD\r
26521 IBUF            012660' \r
26522 \r\fMACRO V.10                     PAGE 173-6\r
26523         SYMBOL TABLE\r
26524 \r
26525 IF              003512' \r
26526 IFB0            003543' \r
26527 IFB1            003544' \r
26528 IFB2            003564' \r
26529 IFB3            003563' \r
26530 IFBLK           012730' \r
26531 IFBLKA          012754' \r
26532 IFCL            003630' \r
26533 IFCLR           003647' \r
26534 IFCLR1          003656' \r
26535 IFDEF0          003600' \r
26536 IFEX1           003526' \r
26537 IFEX2           003664' \r
26538 IFEXIT          003525' \r
26539 IFIDN0          003610' \r
26540 IFPASS          003540' \r
26541 IFPOP           003520' \r
26542 IFSET           003521' \r
26543 IFXCT           003522' \r
26544 IIISW           000000  SPD\r
26545 INCND           013275' \r
26546 INDEF           013273' \r
26547 INDEV           012564' \r
26548 INDEVI          012563' \r
26549 INDIR           012673' \r
26550 INDSW           020000  SPD\r
26551 INHERE          000017' \r
26552 INREP           013272' \r
26553 INSERQ          012364' \r
26554 INSERT          012366' \r
26555 INSERZ          012365' \r
26556 INSET           007027' \r
26557 INSET1          007047' \r
26558 INSET2          007064' \r
26559 INSET3          007065' \r
26560 INSET4          007077' \r
26561 INSETI          007143' \r
26562 INSRT1          012374' \r
26563 INSRT2          012377' \r
26564 INSRT3          012405' \r
26565 INSRT4          012424' \r
26566 INSRT5          012434' \r
26567 INSRT6          012430' \r
26568 INTENT          013271' \r
26569 INTER0          003677' \r
26570 INTER1          003700' \r
26571 INTER3          003710' \r
26572 INTF            000400  SPD\r
26573 INTXT           013274' \r
26574 INZ             003267' \r
26575 IO              000014  \r
26576 IOBKTL          040000  SPD\r
26577 IOCREF          000400  SPD\r
26578 \r\fMACRO V.10                     PAGE 173-7\r
26579         SYMBOL TABLE\r
26580 \r
26581 IODERR          200000  SPD\r
26582 IODTER          100000  SPD\r
26583 IOENDL          000200  SPD\r
26584 IOIMPM          400000  SPD\r
26585 IOIOPF          000020  SPD\r
26586 IOMAC           010000  SPD\r
26587 IOMSTR          200000  SPD\r
26588 IONCRF          002000  SPD\r
26589 IONSYM          013257' \r
26590 IOP             004352' \r
26591 IOPAGE          000100  SPD\r
26592 IOPALL          004000  SPD\r
26593 IOPROG          040000  SPD\r
26594 IORPTC          000004  SPD\r
26595 IORSET          003322' \r
26596 IOSALL          000001  SPD\r
26597 IOSCR           000001  SPD\r
26598 IOSET           003315' \r
26599 IOTLSN          000002  SPD\r
26600 IOWD0           004617' \r
26601 IRP0            005777' \r
26602 IRP10           006001' \r
26603 IRP20           006041' \r
26604 IRPARG          013314' \r
26605 IRPARP          013315' \r
26606 IRPCF           013316' \r
26607 IRPCNT          013313' \r
26608 IRPEND          006131' \r
26609 IRPPOI          013317' \r
26610 IRPPOP          006135' \r
26611 IRPSE1          006074' \r
26612 IRPSE2          006103' \r
26613 IRPSE3          006113' \r
26614 IRPSE4          006116' \r
26615 IRPSET          006060' \r
26616 IRPSW           013320' \r
26617 JOB41           000057' EXT\r
26618 JOBAPR          006741' EXT\r
26619 JOBDDT          000000  EXT\r
26620 JOBERR          007724' EXT\r
26621 JOBFF           007067' EXT\r
26622 JOBFFI          013434' \r
26623 JOBREL          010022' EXT\r
26624 JOBS41          000122  INT\r
26625 JOBSA           006611' EXT\r
26626 JOBSYM          000000  EXT\r
26627 JOBVER          000137  SPD\r
26628 JUMP1   321640  000000  \r
26629 JUMP2   325640  000000  \r
26630 JUMPAD  321600  000000  \r
26631 JUMPCM  321400  000000  \r
26632 JUMPNC  325400  000000  \r
26633 JUMPOC  325600  000000  \r
26634 \r\fMACRO V.10                     PAGE 173-8\r
26635         SYMBOL TABLE\r
26636 \r
26637 LABEL           000244' \r
26638 LABEL0          000257' \r
26639 LABEL1          000272' \r
26640 LABEL2          000301' \r
26641 LABEL3          000304' \r
26642 LABEL4          000310' \r
26643 LABEL5          000312' \r
26644 LABEL6          000276' \r
26645 LABEL7          000314' \r
26646 LADR            013000' \r
26647 LBUF            013004' \r
26648 LBUFP           013003' \r
26649 LELF            000002  SPD\r
26650 LENGTH          000004  \r
26651 LETTE1          000401' \r
26652 LETTE2          000405' \r
26653 LETTE3          000407' \r
26654 LETTE4          000426' \r
26655 LETTER          000400' \r
26656 LF              000012  SPD\r
26657 LIMBO           013002' \r
26658 LIT0            003365' \r
26659 LIT1            003367' \r
26660 LIT20           003377' \r
26661 LIT20A          003407' \r
26662 LIT21           003410' \r
26663 LIT22           003422' \r
26664 LIT24           003433' \r
26665 LITAB           013031' \r
26666 LITABX          013032' \r
26667 LITCNT          013036' \r
26668 LITF            200000  SPD\r
26669 LITHD           013034' \r
26670 LITHDX          013035' \r
26671 LITI            003437' \r
26672 LITLBL          013322' \r
26673 LITLVL          013321' \r
26674 LITNUM          013037' \r
26675 LITPG           013303' \r
26676 LITSEQ          013304' \r
26677 LLUKP1          002272' \r
26678 LLUKP2          002267' \r
26679 LLUKP3          002301' \r
26680 LLUKP4          002311' \r
26681 LLUKP6          002306' \r
26682 LLUKP7          002300' \r
26683 LLUKUP          002263' \r
26684 LNSSW           000000  SPD\r
26685 LOADSW          000020  SPD\r
26686 LOC0            004114' \r
26687 LOC01           004125' \r
26688 LOC10           004133' \r
26689 LOCA            013325' \r
26690 \r\fMACRO V.10                     PAGE 173-9\r
26691         SYMBOL TABLE\r
26692 \r
26693 LOCBLK          013324' \r
26694 LOCO            013326' \r
26695 LOOKL           003030' \r
26696 LOOKUP          003025' \r
26697 LOOKX           013040' \r
26698 LOUT1           002166' \r
26699 LOUT10          002211' \r
26700 LOUT11          002252' \r
26701 LOUT15          002222' \r
26702 LOUT30          002253' \r
26703 LOUT60          002260' \r
26704 LOUT64          002262' \r
26705 LPP             013331' \r
26706 LPTBIT          040000  SPD\r
26707 LPTSW           000002  SPD\r
26708 LPTWID          000170  SPD\r
26709 LST             000003  SPD\r
26710 LSTBUF          012652' \r
26711 LSTDEV          012553' \r
26712 LSTDIR          012663' \r
26713 LSTFIL          012537' \r
26714 LSTINI          012552' \r
26715 LSTPGN          013416' \r
26716 LSTSE1          006666' \r
26717 LSTSE2          006700' \r
26718 LSTSE3          006734' \r
26719 LSTSE4          007125' \r
26720 LSTSE5          007127' \r
26721 LSTSET          006665' \r
26722 LSTSYM          013413' \r
26723 M               006436' \r
26724 MAC10           005541' \r
26725 MAC14           005554' \r
26726 MAC14A          005563' \r
26727 MAC15           005572' \r
26728 MAC16           005573' \r
26729 MAC20           005602' \r
26730 MAC21           005604' \r
26731 MAC21A          005606' \r
26732 MAC21B          005627' \r
26733 MAC21C          005626' \r
26734 MAC21D          005615' \r
26735 MAC21E          005624' \r
26736 MAC22           005636' \r
26737 MAC23           005651' \r
26738 MAC24           005663' \r
26739 MAC25           005664' \r
26740 MAC26           005642' \r
26741 MAC27           005647' \r
26742 MAC30           005677' \r
26743 MAC31           005700' \r
26744 MAC40           005707' \r
26745 MAC41           005720' \r
26746 \r\fMACRO V.10                     PAGE 173-10\r
26747         SYMBOL TABLE\r
26748 \r
26749 MAC42           005726' \r
26750 MAC44           005727' \r
26751 MACEN0          005740' \r
26752 MACEN1          005755' \r
26753 MACEN2          005756' \r
26754 MACEN3          005773' \r
26755 MACEND          005741' \r
26756 MACENL          013405' \r
26757 MACF            020000  SPD\r
26758 MACLVL          013406' \r
26759 MACPNT          013407' \r
26760 MACSIZ          013433' \r
26761 MDFF            000020  SPD\r
26762 MFLSW           000010  SPD\r
26763 MODA            013332' \r
26764 MODLOC          013333' \r
26765 MODO            013334' \r
26766 MP              000016  \r
26767 MREAD           006300' \r
26768 MREADC          006333' \r
26769 MREADI          006317' \r
26770 MREADS          006322' \r
26771 MRP             000013  \r
26772 MSRCH           012173' \r
26773 MSRCH2          012202' \r
26774 MSTIME  047000  000023  \r
26775 MTABIT          000020  SPD\r
26776 MTAPSW          000004  SPD\r
26777 MWLFLG          200000  SPD\r
26778 MWP             000012  \r
26779 N1              000765  \r
26780 N2              000033  \r
26781 NAME            007272' \r
26782 NAME1           007215' \r
26783 NAME2           007216' \r
26784 NAME3           007224' \r
26785 NCOLLS          013001' \r
26786 NCOLS           000001  SPD\r
26787 NEGSW           000200  SPD\r
26788 NEXT            013041' \r
26789 NOERW           003165' \r
26790 NOOUTF          100000  SPD\r
26791 NOUT            002602' \r
26792 NOUT1           002605' \r
26793 NOUT2           002624' \r
26794 NOUT3           002621' \r
26795 NUM             000705' \r
26796 NUM1            000710' \r
26797 NUM10           000720' \r
26798 NUM30           000732' \r
26799 NUM31           000733' \r
26800 NUM32           000736' \r
26801 NUM40           000741' \r
26802 \r\fMACRO V.10                     PAGE 173-11\r
26803         SYMBOL TABLE\r
26804 \r
26805 NUM50           000765' \r
26806 NUM52           000773' \r
26807 NUM60           001004' \r
26808 NUM62           001011' \r
26809 NUMBUF          000002  SPD\r
26810 NUMDF           000704' \r
26811 NUMDN           001026' \r
26812 NUMER1          000431' \r
26813 NUMER2          000432' \r
26814 NUMSW           020000  SPD\r
26815 NUMUP           001020' \r
26816 NUNAC           000054' \r
26817 NUNAOS          000006  \r
26818 NUNBLT          000004  \r
26819 NUNCOM          000000' \r
26820 NUNDEV          012556' \r
26821 NUNDIR          012663' \r
26822 NUNERM          000006' \r
26823 NUNERR          000004' \r
26824 NUNGO2          000002' \r
26825 NUNGO3          000011' \r
26826 NUNGO4          000000  \r
26827 NUNINI          012555' \r
26828 NUNLAC          000012  \r
26829 NUNPNT          000010  \r
26830 NUNSET          000017' \r
26831 NUNTOP          000011  \r
26832 OCT0            004466' \r
26833 OCT1            004470' \r
26834 OFFML           004155' \r
26835 OFFORM          003360' \r
26836 OFFSYM          004157' \r
26837 ONC             002747' \r
26838 ONC1            002751' \r
26839 ONC2            002763' \r
26840 ONERW           003162' \r
26841 ONERW1          003163' \r
26842 ONFORM          003360' \r
26843 ONML            004154' \r
26844 OP              004354' \r
26845 OP1A            004373' \r
26846 OP1B            004363' \r
26847 OP1COD          011515' \r
26848 OP1END          011514' \r
26849 OP1TAB          012020' \r
26850 OP1TOP          010526' \r
26851 OP2             004374' \r
26852 OP2A            004442' \r
26853 OP2A1           004455' \r
26854 OP2A2           004463' \r
26855 OP2TAB          012064' \r
26856 OP3             004375' \r
26857 OPD             004350' \r
26858 \r\fMACRO V.10                     PAGE 173-12\r
26859         SYMBOL TABLE\r
26860 \r
26861 OPD1            004346' \r
26862 OPDEF0          003764' \r
26863 OPDF            010000  SPD\r
26864 OPHSH           000000  SPD\r
26865 OPT1A           010473' \r
26866 OPT1B           010500' \r
26867 OPT1D           010505' \r
26868 OPT1F           010513' \r
26869 OPT1G           010516' \r
26870 OPTSCH          010470' \r
26871 OPTTAB          010523' \r
26872 OTBUF           013335' \r
26873 OTOD            010432' \r
26874 OUTAB2          010306' \r
26875 OUTAS0          002774' \r
26876 OUTASC          002775' \r
26877 OUTBIN          010122' \r
26878 OUTC            010377' \r
26879 OUTCR           010316' \r
26880 OUTFF           010417' \r
26881 OUTFF1          010410' \r
26882 OUTFF2          010420' \r
26883 OUTIM           001737' \r
26884 OUTIM1          001736' \r
26885 OUTIM2          001752' \r
26886 OUTIML          002011' \r
26887 OUTL            010325' \r
26888 OUTL01          001565' \r
26889 OUTL02          001567' \r
26890 OUTL03          001566' \r
26891 OUTL1           010364' \r
26892 OUTL20          001577' \r
26893 OUTL22          001621' \r
26894 OUTL23          001625' \r
26895 OUTL24          001630' \r
26896 OUTL25          001636' \r
26897 OUTL26          001642' \r
26898 OUTL27          001646' \r
26899 OUTL30          001665' \r
26900 OUTL32          001675' \r
26901 OUTLE2          001727' \r
26902 OUTLE4          001733' \r
26903 OUTLE8          001723' \r
26904 OUTLER          001712' \r
26905 OUTLI           001765' \r
26906 OUTLI1          001773' \r
26907 OUTLI2          001774' \r
26908 OUTLI3          001772' \r
26909 OUTLIN          001547' \r
26910 OUTLST          010403' \r
26911 OUTML1          002036' \r
26912 OUTPL           001650' \r
26913 OUTSET          003017' \r
26914 \r\fMACRO V.10                     PAGE 173-13\r
26915         SYMBOL TABLE\r
26916 \r
26917 OUTSIX          003001' \r
26918 OUTSQ           013337' \r
26919 OUTSTR          000000  \r
26920 OUTSW           013042' \r
26921 OUTSY1          003011' \r
26922 OUTSYM          003010' \r
26923 OUTTAB          010307' \r
26924 P1              400000  SPD\r
26925 PAGE0           010407' \r
26926 PAGEN.          013341' \r
26927 PAGENO          013414' \r
26928 PASS1I          012600' \r
26929 PASS20          003066' \r
26930 PASS2I          013262' \r
26931 PASS2X          013416' \r
26932 PASS2Z          013413' \r
26933 PDP             013043' \r
26934 PDPERR          010037' \r
26935 PEEK            006335' \r
26936 PEEKM           006341' \r
26937 PERIOD          000671' \r
26938 PERNUM          000677' \r
26939 PHASE0          004017' \r
26940 PJOB    047000  000030  \r
26941 PN1             004244' \r
26942 PN2             004252' \r
26943 PNCHSW          001000  SPD\r
26944 PNTF            004000  SPD\r
26945 POINT0          004561' \r
26946 POINT2          004574' \r
26947 POPOUT          000446' \r
26948 PP              000017  \r
26949 PPN             013402' \r
26950 PPTEMP          013342' \r
26951 PPTMP1          013343' \r
26952 PPTMP2          013344' \r
26953 PR              000002  SPD\r
26954 PRGPTR          013260' \r
26955 PRINT           010310' \r
26956 PRMEND          012020' \r
26957 PRMTBL          011720' \r
26958 PRNAM           004235' \r
26959 PRNTX0          003342' \r
26960 PRNTX2          003345' \r
26961 PRNTX4          003350' \r
26962 PRNUM           010041' \r
26963 PROGN1          007323' \r
26964 PROGN2          007324' \r
26965 PROGN3          007325' \r
26966 PROGNP          007323' \r
26967 PS              000003  SPD\r
26968 PSEND0          004712' \r
26969 PSEND1          004721' \r
26970 \r\fMACRO V.10                     PAGE 173-14\r
26971         SYMBOL TABLE\r
26972 \r
26973 PSEND2          004724' \r
26974 PSEND3          004730' \r
26975 PSEND4          004734' \r
26976 PSEND5          005016' \r
26977 PSEND6          005010' \r
26978 PSENDX          005015' \r
26979 PSNDER          005066' \r
26980 PTPBIN          010123' \r
26981 PTR             000104  SPD\r
26982 PURGE0          004317' \r
26983 PURGE2          004330' \r
26984 PURGE3          004342' \r
26985 PURGE4          004343' \r
26986 PURGE5          004344' \r
26987 PV              000001  SPD\r
26988 QEXT            003752' \r
26989 QSRCH           012203' \r
26990 QUAL            000514' \r
26991 QUAL2           000531' \r
26992 QUAL2A          000535' \r
26993 QUAL8           000530' \r
26994 QUALL           000541' \r
26995 QUOTE           000456' \r
26996 QUOTE0          000452' \r
26997 QUOTE1          000473' \r
26998 QUOTE2          000472' \r
26999 QUOTES          000447' \r
27000 R1BBLK          013353' \r
27001 R1BCHK          013352' \r
27002 R1BCNT          013351' \r
27003 R1BDM1          010175' \r
27004 R1BDMP          010165' \r
27005 R1BI            010203' \r
27006 R1BLDR          003110' \r
27007 R1BLOC          013375' \r
27008 R1BSW           004000  SPD\r
27009 RADIX0          003306' \r
27010 RADX50          004667' \r
27011 RADXSW          040000  SPD\r
27012 RC              000011  SPD\r
27013 RCOUNT          013411' \r
27014 RCPNTR          003303' \r
27015 READ            010221' \r
27016 READ0           010220' \r
27017 READ1           010223' \r
27018 READ1A          010243' \r
27019 READ2           010254' \r
27020 READ3           010263' \r
27021 REC2            007155' \r
27022 RECCNT          013044' \r
27023 REFDEC          006352' \r
27024 REFINC          006347' \r
27025 RELBL1          000650' \r
27026 \r\fMACRO V.10                     PAGE 173-15\r
27027         SYMBOL TABLE\r
27028 \r
27029 RELBLE          000632' \r
27030 RELF            000001  SPD\r
27031 RELLOC          013327' \r
27032 RELOC0          004140' \r
27033 REMAR0          003361' \r
27034 REMOV1          012446' \r
27035 REMOVE          012445' \r
27036 RENTSW          000000  SPD\r
27037 REPCNT          013345' \r
27038 REPEA0          005070' \r
27039 REPEA1          005072' \r
27040 REPEA2          005074' \r
27041 REPEA4          005105' \r
27042 REPEA7          005132' \r
27043 REPEA8          005134' \r
27044 REPEND          005136' \r
27045 REPEXP          013346' \r
27046 REPO            005171' \r
27047 REPO1           005201' \r
27048 REPPG           013305' \r
27049 REPPNT          013347' \r
27050 REPSEQ          013306' \r
27051 REPZ            005152' \r
27052 REPZ1           005160' \r
27053 REPZ2           005166' \r
27054 RESET   047000  000000  \r
27055 RIM0            010072' \r
27056 RIM1SW          000100  SPD\r
27057 RIMFIN          003256' \r
27058 RIMLOC          013376' \r
27059 RIMSW           000400  SPD\r
27060 ROUT            010076' \r
27061 ROUT1           010113' \r
27062 ROUT6           010207' \r
27063 RP              012600' \r
27064 RPGDEV          012561' \r
27065 RPGINI          012560' \r
27066 RPGLOS          006615' \r
27067 RPGLUP          006510' \r
27068 RPGS1           006577' \r
27069 RPGS2           006523' \r
27070 RPGS2A          006524' \r
27071 RPGSET          006501' \r
27072 RPOLVL          013350' \r
27073 RSTRXS          007205' \r
27074 RSW0            001410' \r
27075 RSW1            001412' \r
27076 RSW2            001414' \r
27077 RSW3            001423' \r
27078 RUN     047000  000035  \r
27079 RX              000015  SPD\r
27080 SAVBLK          013045' \r
27081 SAVERC          013056' \r
27082 \r\fMACRO V.10                     PAGE 173-16\r
27083         SYMBOL TABLE\r
27084 \r
27085 SAVEXS          007211' \r
27086 SAVFF           013421' \r
27087 SBUF            013057' \r
27088 SDEL            000003  \r
27089 SEARCH          012313' \r
27090 SEQNO           012544' \r
27091 SEQNO2          013415' \r
27092 SETDDT  047000  000002  \r
27093 SIXB10          004475' \r
27094 SIXB20          004477' \r
27095 SKELI           006220' \r
27096 SKELI1          006217' \r
27097 SKELW           006231' \r
27098 SKELW1          006243' \r
27099 SKELWL          006233' \r
27100 SKPINC          000000  \r
27101 SLASH           007226' \r
27102 SOUT            002156' \r
27103 SOUT1           002314' \r
27104 SOUT10          002336' \r
27105 SOUT15          002345' \r
27106 SOUT20          002420' \r
27107 SOUT50          002404' \r
27108 SOUT60          002417' \r
27109 SOUTC           002427' \r
27110 SPTR            000010  SPD\r
27111 SQB1            000620' \r
27112 SQB2            000621' \r
27113 SQB3            000562' \r
27114 SQB4            000574' \r
27115 SQB4A           000606' \r
27116 SQB5            000561' \r
27117 SQB6            000613' \r
27118 SQBRK           000550' \r
27119 SQFLG           013403' \r
27120 SQOZ1           004701' \r
27121 SQOZE           004677' \r
27122 SQUOT0          000474' \r
27123 SQUOTE          000500' \r
27124 SRCH1           012315' \r
27125 SRCH2           012317' \r
27126 SRCH3           012325' \r
27127 SRCH4           012335' \r
27128 SRCH5           012336' \r
27129 SRCH6           012352' \r
27130 SRCH7           012340' \r
27131 SRCHI           012455' \r
27132 SRCHKO          012362' \r
27133 SRCHNO          012361' \r
27134 SRCHOK          012363' \r
27135 SRCHX           013077' \r
27136 SSRCH           012210' \r
27137 SSRCH1          012213' \r
27138 \r\fMACRO V.10                     PAGE 173-17\r
27139         SYMBOL TABLE\r
27140 \r
27141 SSRCH2          012217' \r
27142 SSRCH3          012220' \r
27143 STCODE          013106' \r
27144 STMN2A          000146' \r
27145 STMN8A          000222' \r
27146 STMN8B          000210' \r
27147 STMN8C          000212' \r
27148 STMN8D          000207' \r
27149 STMNT           000125' \r
27150 STMNT1          000127' \r
27151 STMNT2          000130' \r
27152 STMNT3          000157' \r
27153 STMNT4          000161' \r
27154 STMNT5          000167' \r
27155 STMNT7          000200' \r
27156 STMNT8          000207' \r
27157 STMNT9          000201' \r
27158 STOL06          001274' \r
27159 STOL08          001301' \r
27160 STOL10          001302' \r
27161 STOL12          001314' \r
27162 STOL14          001326' \r
27163 STOL22          001333' \r
27164 STOL23          001334' \r
27165 STOL24          001335' \r
27166 STOL26          001346' \r
27167 STOLER          001261' \r
27168 STOLIT          001264' \r
27169 STOPI0          006125' \r
27170 STORIT          005061' \r
27171 STOUT           000230' \r
27172 STOUT1          000237' \r
27173 STOUTS          000227' \r
27174 STOW            002665' \r
27175 STOW10          002675' \r
27176 STOW20          002677' \r
27177 STOWI           002717' \r
27178 STOWRC          013156' \r
27179 STOWT           002735' \r
27180 STOWT1          002742' \r
27181 STOWZ           002664' \r
27182 STOWZ1          002664' \r
27183 STPX            013104' \r
27184 STPY            013105' \r
27185 SUBTL           011360' \r
27186 SUBTT0          004220' \r
27187 SUBTT1          004224' \r
27188 SUBTT3          004226' \r
27189 SUBTTX          013100' \r
27190 SUPRBT          000004  SPD\r
27191 SUPRE0          004161' \r
27192 SUPRE1          004166' \r
27193 SUPRS1          004175' \r
27194 \r\fMACRO V.10                     PAGE 173-18\r
27195         SYMBOL TABLE\r
27196 \r
27197 SUPRSA          004172' \r
27198 SVSTOW          002723' \r
27199 SVSYM           013101' \r
27200 SW0             007346' \r
27201 SW1             007347' \r
27202 SWITC0          007341' \r
27203 SWITCH          007342' \r
27204 SWTAB           007571' \r
27205 SWTABT          007574' \r
27206 SX              000004  \r
27207 SYMBLK          012730' \r
27208 SYMBOL          013102' \r
27209 SYMF            400000  SPD\r
27210 SYMNUM          011713' \r
27211 SYMTOP          013103' \r
27212 SYN0            004261' \r
27213 SYN1            004265' \r
27214 SYN2            004266' \r
27215 SYN3            004302' \r
27216 SYN4            004313' \r
27217 SYNF            040000  SPD\r
27218 TABI            012543' \r
27219 TABLE           007727' \r
27220 TABLND          007756' \r
27221 TABP            013226' \r
27222 TAG             012541' \r
27223 TAGF            200000  SPD\r
27224 TAGINC          013377' \r
27225 TAPE0           003304' \r
27226 TBUF            013230' \r
27227 TCNT            013227' \r
27228 TERM            007276' \r
27229 TERM1           007303' \r
27230 TIMOU1          010424' \r
27231 TIMOUT          010423' \r
27232 TIO             000006  SPD\r
27233 TIOCLD          020000  SPD\r
27234 TIOLE           002000  SPD\r
27235 TIORW           001000  SPD\r
27236 TITLE0          004207' \r
27237 TMPCOR  047000  000044  \r
27238 TMPSW           010000  SPD\r
27239 TNODE           200000  SPD\r
27240 TSTBIN          010133' \r
27241 TSTLST          010142' \r
27242 TTCLTH          000016  SPD\r
27243 TTCTBL          012155' \r
27244 TTYBIT          000010  SPD\r
27245 TTYERR          007631' \r
27246 TTYIN           007614' \r
27247 TTYSW           000001  SPD\r
27248 TWSEG0          003360' \r
27249 TXTPG           013307' \r
27250 \r\fMACRO V.10                     PAGE 173-19\r
27251         SYMBOL TABLE\r
27252 \r
27253 TXTSEQ          013310' \r
27254 TYO             007770' \r
27255 TYPERR          013256' \r
27256 TYPM2           010000' \r
27257 TYPM2A          010005' \r
27258 TYPM3           010006' \r
27259 TYPMS1          007760' \r
27260 TYPMSG          007757' \r
27261 UNDF            002000  SPD\r
27262 UNIVR           000000  SPD\r
27263 UOUT            002065' \r
27264 UOUT1           002075' \r
27265 UOUT10          002113' \r
27266 UOUT12          002103' \r
27267 UOUT13          002107' \r
27268 UOUT2           002102' \r
27269 UOUT30          002117' \r
27270 UPDAT1          012507' \r
27271 UPDAT2          012514' \r
27272 UPDAT3          012505' \r
27273 UPDAT4          012521' \r
27274 UPDAT5          012525' \r
27275 UPDATE          012467' \r
27276 UTPCLR  047000  000013  \r
27277 V               000006  \r
27278 VAR0            003457' \r
27279 VARA            003462' \r
27280 VARB            003467' \r
27281 VARF            000100  SPD\r
27282 VARHD           013027' \r
27283 VARHDX          013030' \r
27284 VBUF            012573' \r
27285 VCUSTO          000000  SPD\r
27286 VECREL          013400' \r
27287 VECTOR          013401' \r
27288 VEDIT           000000  SPD\r
27289 VMACRO          000010  SPD\r
27290 VOUT            002633' \r
27291 VT              000013  SPD\r
27292 VUPDAT          000000  SPD\r
27293 WAIT    072000  000000  \r
27294 WCHAR           006262' \r
27295 WCHAR1          006262' \r
27296 WCHARQ          006262' \r
27297 WCOUNT          013412' \r
27298 WWORD           006266' \r
27299 WWRXE           006272' \r
27300 WWRXX           013410' \r
27301 XADD            001235' \r
27302 XALL0           003314' \r
27303 XCEED           010015' \r
27304 XCEED1          010023' \r
27305 XCEED2          010035' \r
27306 \r\fMACRO V.10                     PAGE 173-20\r
27307         SYMBOL TABLE\r
27308 \r
27309 XCEEDS          010014' \r
27310 XDIV            001240' \r
27311 XDIV1           001242' \r
27312 XLRW            001255' \r
27313 XMUL            001244' \r
27314 XMUL1           001247' \r
27315 XPUNG0          004177' \r
27316 XSUB            001232' \r
27317 XTRA            000004  SPD\r
27318 XWD0            004601' \r
27319 XWD10           004613' \r
27320 XWD5            004605' \r
27321 ZA              100000  \r
27322 ZAL             300000  \r
27323 ZL              200000  \r
27324 %DMAC           000006  SPD\r
27325 %DSYM           000002  SPD\r
27326 %MAC            000005  SPD\r
27327 %OP             000003  SPD\r
27328 %SYM            000001  SPD\r
27329 .CPL            000130  SPD\r
27330 .IFBLK          000024  SPD\r
27331 .LEAF           000004  SPD\r
27332 .LPP            000067  SPD\r
27333 .LPTWD          000170  SPD\r
27334 .PDP            000062  SPD\r
27335 .R1B            000022  SPD\r
27336 .SBUF           000120  SPD\r
27337 .STP            000050  SPD\r
27338 .TBUF           000120  SPD\r
27339 .TEMP           013402' \r
27340 .UNIV           000012  SPD\r
27341 \fEEEEEEEEEEEEEEE      DDDDDDDDDDDD         DDDDDDDDDDDD         TTTTTTTTTTTTTTT                                          \r
27342 EEEEEEEEEEEEEEE      DDDDDDDDDDDD         DDDDDDDDDDDD         TTTTTTTTTTTTTTT                                          \r
27343 EEEEEEEEEEEEEEE      DDDDDDDDDDDD         DDDDDDDDDDDD         TTTTTTTTTTTTTTT                                          \r
27344 EEE                  DDD         DDD      DDD         DDD            TTT                                                \r
27345 EEE                  DDD         DDD      DDD         DDD            TTT                                                \r
27346 EEE                  DDD         DDD      DDD         DDD            TTT                                                \r
27347 EEE                  DDD         DDD      DDD         DDD            TTT                                                \r
27348 EEE                  DDD         DDD      DDD         DDD            TTT                                                \r
27349 EEE                  DDD         DDD      DDD         DDD            TTT                                                \r
27350 EEEEEEEEEEEE         DDD         DDD      DDD         DDD            TTT                                                \r
27351 EEEEEEEEEEEE         DDD         DDD      DDD         DDD            TTT                                                \r
27352 EEEEEEEEEEEE         DDD         DDD      DDD         DDD            TTT                                                \r
27353 EEE                  DDD         DDD      DDD         DDD            TTT                                                \r
27354 EEE                  DDD         DDD      DDD         DDD            TTT                                                \r
27355 EEE                  DDD         DDD      DDD         DDD            TTT                                                \r
27356 EEE                  DDD         DDD      DDD         DDD            TTT                                                \r
27357 EEE                  DDD         DDD      DDD         DDD            TTT                                                \r
27358 EEE                  DDD         DDD      DDD         DDD            TTT                                                \r
27359 EEEEEEEEEEEEEEE      DDDDDDDDDDDD         DDDDDDDDDDDD               TTT                                                \r
27360 EEEEEEEEEEEEEEE      DDDDDDDDDDDD         DDDDDDDDDDDD               TTT                                                \r
27361 EEEEEEEEEEEEEEE      DDDDDDDDDDDD         DDDDDDDDDDDD               TTT                                                \r
27362 \r
27363 \r
27364 \r
27365 \r
27366 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
27367 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
27368 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
27369 LLL                  SSS                        TTT                                                                     \r
27370 LLL                  SSS                        TTT                                                                     \r
27371 LLL                  SSS                        TTT                                                                     \r
27372 LLL                  SSS                        TTT                                                                     \r
27373 LLL                  SSS                        TTT                                                                     \r
27374 LLL                  SSS                        TTT                                                                     \r
27375 LLL                     SSSSSSSSS               TTT                                                                     \r
27376 LLL                     SSSSSSSSS               TTT                                                                     \r
27377 LLL                     SSSSSSSSS               TTT                                                                     \r
27378 LLL                              SSS            TTT                                                                     \r
27379 LLL                              SSS            TTT                                                                     \r
27380 LLL                              SSS            TTT                                                                     \r
27381 LLL                              SSS            TTT                                                                     \r
27382 LLL                              SSS            TTT                                                                     \r
27383 LLL                              SSS            TTT                                                                     \r
27384 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
27385 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
27386 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
27387 \r
27388 \r
27389 \r
27390 \r
27391 Request created: 24-April-1978  11:23:08\r
27392 File: DSKB1 :EDDT  .LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:28
27393 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1949 \r
27394 File will be deleted after printing\r
27395 \f\rEDDT   V.005A  - EXEC MODE VERSION                 PAGE 1\r
27396         OP DECODER\r
27397 \r
27398 \r
27399 \r
27400 \r
27401 \r
27402 \r
27403                         000003  00060   EDDT=3          ;THIS CAUSES A RELOCATABLE VERSION OF EXEC DDT WITH THE\r
27404                                 00070                   ; PAPER TAPE I/O OPTION TO BE ASSEMBLED (AS OPPOSED TO\r
27405                                 00080                   ; RELOCATABLE AND/OR ABSOLUTE VERSIONS OF USER DDT\r
27406                                 00090                   ; AND/OR NON-PAPER TAPE I/O EXEC DDT, ALL OF WHICH CAN\r
27407                                 00100                   ; BE ASSEMBLED FROM THE SAME SOURCE CODE WITH A\r
27408                                 00110                   ; DIFFERENT DEFINITION OF "EDDT").\r
27409 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 2\r
27410         OP DECODER\r
27411 \r
27412 \r
27413 \r
27414                                 00150   REPEAT 0,<\r
27415                                 00160   \r
27416                                 00170           HOW TO ASSEMBLE DDT\r
27417                                 00180   \r
27418                                 00190           THE SOURCE OF DDT WILL ASSEMBLE INTO SEVERAL DIFFERENT\r
27419                                 00200           VERSIONS; THE ASSEMBLE IS CONTROLED BY THE VALUES\r
27420                                 00210           ASSIGNED TO THE SYMBOL EDDT. THIS SYMBOL MUST BE\r
27421                                 00220           DEFINED AS A SEPARATE FILE PRECEDING THE DDT SOURCE FILE.\r
27422                                 00230           THE SYMBOL EDDT IS DECODED IN THE FOLLOWING MANNER:\r
27423                                 00240           BIT 35 A ZERO:  ASSEMBLE USER MODE DDT\r
27424                                 00250           BIT 35 A ONE:   ASSEMBLE AN EXECUTIVE MODE DDT\r
27425                                 00260           BIT 34 A ZERO:  DO NOT ASSEMBLE THE PAPER TAPE\r
27426                                 00270                           FEATURE INTO THE DDT\r
27427                                 00280           BIT 34 A ONE:   THIS IS IGNORED FOR USER DDT.\r
27428                                 00290                           FOR AN EXEC DDT, ASSEMBLE\r
27429                                 00300                           THE PAPER TAPE FEATURE\r
27430                                 00310           BITS 0-17:      IF THESE BITS ARE ALL ZERO THE\r
27431                                 00320                           ASSEMBLY WILL BE RELOCATABLE\r
27432                                 00330                           IF THEY ARE NON-ZERO, THE ASSEMBLY IS\r
27433                                 00340                           ABSOLUTE STARTING AT THE VALUE IN BITS\r
27434                                 00350                           0-17 (THE LEFT HALF)\r
27435                                 00360   \r
27436                                 00370           EXAMPLE:\r
27437                                 00380           1.) IF EDDT IS NOT DEFINED BY A PARAMETER ASSIGNMENT,\r
27438                                 00390           DDT WILL ASSIGN EDDT=0 AND A USER MODE RELOCATABLE\r
27439                                 00400           DDT WILL RESULT.\r
27440                                 00410   \r
27441                                 00420           2.) EDDT=1; A RELOCATABLE EXEC DDT WITHOUT PAPER\r
27442                                 00430           TAPE FEATURE WILL RESULT.\r
27443                                 00440   \r
27444                                 00450           3.) EDDT=3; A RELOCATABLE EXEC DDT WITH PAPER\r
27445                                 00460           TAPE FEATURE WILL RESULT\r
27446                                 00470   \r
27447                                 00480           4.) EDDT=<XWD 4000,1>; AN ABSOLUTE DDT (STARTING\r
27448                                 00490           ADRESS 4000) WITHOUT PAPER TAPE FEATURE WILL RESULT\r
27449                                 00500   \r
27450                                 00510           5.) EDDT=<XWD 4000,3>; AN ABSOLUTE DDT\r
27451                                 00520           (STARTING ADDRESS 4000) WITH ALL THE PAPER TAPE\r
27452                                 00530           FEATURES WILL RESULT.\r
27453                                 00540   >\r
27454 \r
27455 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 3\r
27456         OP DECODER\r
27457 \r
27458 \r
27459 \r
27460 \r
27461                                 00600   IFNDEF EDDT,<EDDT=0>\r
27462 \r
27463 \r
27464 \r
27465 \r
27466                                 00650   DEFINE XP (X.,Y.),<\r
27467                                 00660   IF2,<X.=Y.\r
27468                                                                         00670   INTERN X.\r
27469                                                                         00680   NSYMS=NSYMS+2>>\r
27470                         000000  00690   NSYMS=0         ;INITIAL SYMBOL COUNTER\r
27471 \r
27472         000074                  00710   LOC 74\r
27473         000074  003610' 000000' 00720   XWD DDTEND,DDT\r
27474         000000'                 00730   RELOC 0\r
27475 \r
27476                                 00750   IFN EDDT&<XWD -1,0>,<LOC <EDDT>B53>\r
27477 \r
27478                                 00770   IFN EDDT&1,<TITLE EDDT   V.005A  - EXEC MODE VERSION\r
27479                         000037  00780           JOBREL=37\r
27480                         000036  00790           JOBSYM=36\r
27481                         000040  00800           ZLOW=40\r
27482                         000000' 00810           DDTX=DDT\r
27483                                 00820           ENTRY DDTX>\r
27484 \r
27485                                 00840   IFE EDDT&1,<TITLE UDDT   V.005  - USER MODE DDT\r
27486                                 00850           EXTERN JOBREL,JOBSYM,JOBSA\r
27487                                 00860           NSYMS=NSYMS+6\r
27488                                 00870           ZLOW=140>\r
27489                         000000  00880   F=0             ;FLAGS\r
27490                         000001  00890   P=1             ;PUSH DOWN\r
27491                         000002  00900   R=2             ;POINTERS TO TABLES, CORE, ETC.\r
27492                         000003  00910   S=3\r
27493                         000004  00920   W=4             ;CONTAINS DISPATCH ADDRESS IN WORD ASSEMBLER\r
27494                         000005  00930   T=5             ;TRANSFER DATA\r
27495                         000006  00940   W1=6\r
27496                         000007  00950   W2=7\r
27497                         000010  00960   SCH=10          ;MODE CONTROL SWITCH FOR OUTPUT\r
27498                         000011  00970   AR=11           ;MODE CONTROL SWITCH FOR OUTPUT\r
27499                         000012  00980   ODF=12          ;MODE CONTROL SWITCH FOR OUTPUT - CURRENT RADIX\r
27500                         000002  00990   A=R\r
27501                         000003  01000   B=S\r
27502                         000004  01010   C=W\r
27503 \r
27504                         000004  01030   PRS=4\r
27505                         000120  01040   TTYY=120\r
27506                         000104  01050   PTRR=104\r
27507                         000100  01060   PTPP=100\r
27508 \r
27509                         000050  01080   LPDL=50         ;MAX LENGTH PUSH DOWN LIST\r
27510 \r
27511 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 4\r
27512         OP DECODER\r
27513 \r
27514                         100000  01110   TIF=100000              ;TRUNCATE TO 18 BITS -  SET BY SPACE OR COMMA\r
27515                         000100  01120   PTF=100         ; +, -, OR * HAS BEEN TYPED\r
27516                         000400  01130   CTF=400\r
27517                         000004  01140   SF=4            ;SYLLABLE FLAG\r
27518                         000001  01150   QF=1            ;QUANTITY TYPED IN TO WORD ASSEMBLER\r
27519 \r
27520                         000040  01170   CF=40           ;  TYPED\r
27521                         010000  01180   CCF=10000               ;  TYPED\r
27522                         000002  01190   MF=2            ;MINUS SIGN TYPED IN\r
27523                         000020  01200   LTF=20          ;LETTER TYPED IN TO CURRENT SYLLABLE\r
27524                         000010  01210   ROF=10          ;REGISTER OPEN FLAG\r
27525                         004000  01220   STF=4000\r
27526                         001000  01230   FAF=1000                ; < TYPED\r
27527                         002000  01240   SAF=2000                ; > TYPED\r
27528 \r
27529                         020000  01260   FPF=20000               ; . TYPED IN\r
27530                         400000  01270   FEF=400000              ; E FLAG\r
27531 \r
27532                         000200  01290   MLF=200         ;*FLAG\r
27533                         040000  01300   DVF=40000               ;DIVIDE FLAG\r
27534 \r
27535                         000000  01320   PID=0           ;=0 IF SYMBOL TABLE POINTER IS IN JOBSYM\r
27536 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 5\r
27537         OP DECODER\r
27538 \r
27539 \r
27540                                 01350   ;RIGHT HALF FLAGS\r
27541 \r
27542                         000002  01370   ITF=2   ;INSTRUCTION TYPED IF ITF=1\r
27543                         000004  01380   OUTF=4  ;OUTPUT IF OUTF=1\r
27544                         000400  01390   CF1=400         ;OUTPUT 1 REGISTER AS CONSTANT\r
27545                         002000  01400   LF1=2000                ;OUTPUT 1 REGISTER AS FORCED SYMBOLIC OR CONSTANT\r
27546                         000001  01410   Q2F=1           ;NUMBER TYPED AFTER ALT MODE \r
27547                         000020  01420   SBF=20\r
27548                         000200  01430   NAF=200         ;NEGATIVE ADDRESSES PERMISSABLE\r
27549                         004000  01440   POWF=4000               ;ARGUMENT FOR EXPONENT COMING\r
27550                         010000  01450   SLL=10000               ;STOP LOOKING FOR LOCALS\r
27551 \r
27552                         040000  01470   GLOBAL=040000           ;GLOBAL SYMBOL\r
27553                         100000  01480   LOCAL=100000\r
27554                         740000  01490   PNAME=740000            ;PROGRAM NAME\r
27555                         200000  01500   DELI=200000             ;DELETE INPUT\r
27556                         400000  01510   DELO=400000             ;DELETE OUTPUT\r
27557 \r
27558         000000'                 01530   DDT:\r
27559                                 01540   ENTRY DDT\r
27560                         000002  01550   NSYMS=NSYMS+2\r
27561 \r
27562 \r
27563                                 01580   RADIX 10\r
27564                         000010  01590   NBP=8   ;NUMBER OF BREAKPOINTS\r
27565                                 01600   DEFINE DBPNT (Z.)<XP $'Z.'B,B1ADR+3*Z.-3>\r
27566                         000000  01610   ZZ=0\r
27567                                 01620   REPEAT NBP,<DBPNT \<ZZ=ZZ+1>>\r
27568                                         DBPNT \<ZZ=ZZ+1>^XP $1B,B1ADR+3*1-3^                                    DBPNT \<ZZ=ZZ+1>^XP $2B,B1ADR+3*2-3^                                    DBPNT \<ZZ=ZZ+1>^XP $3B,B1ADR+3*3-3^                                    DBPNT \<ZZ=ZZ+1>^XP $4B,B1ADR+3*4-3^                                    DBPNT \<ZZ=ZZ+1>^XP $5B,B1ADR+3*5-3^                                    DBPNT \<ZZ=ZZ+1>^XP $6B,B1ADR+3*6-3^                                    DBPNT \<ZZ=ZZ+1>^XP $7B,B1ADR+3*7-3^                                    DBPNT \<ZZ=ZZ+1>^XP $8B,B1ADR+3*8-3^                            01630   RADIX 8\r
27569 \r
27570 \r
27571                                 01660   XP $M,MSK^\r
27572                                 01670   XP $I,SAVPI^\r
27573                                 01680   XP DDTEND,DDTEND^\r
27574 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 6\r
27575         OP DECODER\r
27576 \r
27577 \r
27578 \r
27579                                 01720   IFN EDDT&1,<\r
27580 \r
27581                                 01740   XP PI,4B11^\r
27582                                 01750   XP PTP,100B11^\r
27583                                 01760   XP PTR,104B11^\r
27584                                 01770   XP CDR,114B11^\r
27585                                 01780   XP TTY,120B11^\r
27586                                 01790   XP LPT,124B11^\r
27587                                 01800   XP DC,200B11^\r
27588                                 01810   XP DIS,130B11^\r
27589                                 01820   XP PLT,140B11^\r
27590                                 01830   XP CR,150B11^\r
27591                                 01840   XP DSK,170B11^\r
27592                                 01850   XP DTC,210B11^\r
27593                                 01860   XP DTS,214B11^\r
27594                                 01870   XP DCSA,300B11^\r
27595                                 01880   XP DCSB,304B11^\r
27596                                 01890   XP DF,270B11^\r
27597                                 01900   XP MTC,220B11^\r
27598                                 01910   XP MTS,224B11^\r
27599                                 01920   XP MTM,230B11^\r
27600                                 01930   XP DLS,240B11^\r
27601                                 01940   XP TDC,320B11^\r
27602                                 01950   XP TDS,324B11^\r
27603                                 01960   XP TMC,340B11^\r
27604                                 01970   XP TMS,344B11>^\r
27605 \r
27606                                 01990   XP JOV,2554B11^\r
27607                                 02000   XP JEN,2545B11^\r
27608                                 02010   XP HALT,2542B11^\r
27609 \r
27610 \r
27611                 777777  777661' 02040   LOW=DDT-NSYMS-1\r
27612 \r
27613 \r
27614 \r
27615 \r
27616 \r
27617 \r
27618 \r
27619 \r
27620 \r
27621 \r
27622 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 7\r
27623         OP DECODER\r
27624 \r
27625 \r
27626 \r
27627         000000' 264000  002615' 02180   DDT:    JSR SAVE\r
27628         000001' 260040  001307' 02190           PUSHJ P,REMOVB\r
27629         000002' 554240  002213' 02200           HLRZ T,ESTU\r
27630         000003' 274240  002213' 02210           SUB T,ESTU\r
27631         000004' 270260  002230' 02220           ADD T,@SYMP\r
27632         000005' 602240  777777  02230           TRNE T,-1\r
27633         000006' 254000  003022' 02240           JRST IFIX\r
27634         000007' 621000  000010  02250   DD1:    TLZ F,ROF               ;CLOSE ANY OPEN REGISTER\r
27635         000010' 260040  002657' 02260           PUSHJ P,CRF\r
27636         000011' 200240  003432' 02270   DD1.5:  MOVE T,[XWD SCHM,SCH]\r
27637         000012' 251240  000012  02280           BLT T,ODF       ;LOAD ACS\r
27638         000013' 402000  002203' 02290   DD2:    CLEARM PRNC             ;PARENTHESES COUNT\r
27639         000014' 201040  003540' 02300           MOVEI P,PS\r
27640         000015' 200240  002213' 02310   LIS:    MOVE T,ESTU\r
27641         000016' 202240  002214' 02320           MOVEM T,ESTUT           ;INIT UNDEFINED SYM ASSEM\r
27642         000017' 630000  003433' 02330           TDZ F,[XWD 777777-ROF-STF,LF1+CF1+SBF+2+Q2F]\r
27643         000020' 630000  003434' 02340   LIS0:   TDZ F,[XWD 777777-ROF-STF-FAF-SAF,NAF]\r
27644         000021' 402000  002201' 02350           CLEARM,WRD\r
27645         000022' 402000  002204' 02360   LIS1:   CLEARM,FRASE\r
27646         000023' 201240  000001  02370   LIS2:   MOVEI T,1\r
27647         000024' 202240  002210' 02380           MOVEM T,FRASE1\r
27648         000025' 621000  040200  02390           TLZ F,MLF+DVF\r
27649         000026' 621000  030044  02400   L1:     TLZ F,CF+CCF+SF+FPF             ;TURN OFF CONTROL, SYL, PERIOD FLAG\r
27650         000027' 402000  002205' 02410           CLEARM,SYL\r
27651         000030' 402000  002222' 02420   L1RPR:  CLEARM,SYM\r
27652         000031' 201240  000006  02430           MOVEI T,6\r
27653         000032' 202240  002313' 02440           MOVEM T,TEM             ;INIT SYMBOL COUNTER\r
27654         000033' 402000  002211' 02450           CLEARM,DEN\r
27655         000034' 402000  002202' 02460           CLEARM,WRD2\r
27656 \r
27657         000035' 260040  002666' 02480   L2:     PUSHJ P,TIN             ;PICK UP CHARACTER\r
27658         000036' 301240  000141  02490           CAIL T,"A"+40           ;LOWER CASE A\r
27659         000037' 303240  000172  02500           CAILE T,"Z"+40          ;LOWER CASE Z\r
27660         000040' 254000  000042' 02510           JRST .+2\r
27661         000041' 640240  000040  02520           TRC T,40                ;CHANGE LOWER CASE TO UPPER CASE\r
27662         000042' 603000  000040  02530           TLNE F,CF               ;CONTROL FLAG\r
27663         000043' 254000  000050' 02540           JRST L21\r
27664         000044' 307240  000132  02550           CAIG T,"Z"              ;Z\r
27665         000045' 305240  000101  02560           CAIGE T,"A"             ;A\r
27666         000046' 254000  000050' 02570           JRST .+2\r
27667         000047' 254000  000221' 02580           JRST LET\r
27668         000050' 200100  000005  02590   L21:    MOVE R,T\r
27669         000051' 231100  000003  02600           IDIVI R,3\r
27670         000052' 135203  002744' 02610           LDB W,BDISP(R+1)\r
27671         000053' 305200  000570  02620           CAIGE W,MULT-DDT        ;FIRST EVAL ROUTINE\r
27672         000054' 254004  000000' 02630           JRST DDT(W)\r
27673 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 8\r
27674         OP DECODER\r
27675 \r
27676 \r
27677         000055' 200240  002205' 02660   L211:   MOVE T,SYL\r
27678         000056' 627000  000020  02670           TLZN F,LTF\r
27679         000057' 254000  000271' 02680           JRST POWER\r
27680         000060' 260040  000351' 02690           PUSHJ P,EVAL\r
27681         000061' 254000  000137' 02700           JRST UND1\r
27682         000062' 623000  000002  02710   L4:     TLZE F,MF\r
27683         000063' 210240  000005  02720           MOVN T,T\r
27684         000064' 607000  000004  02730           TLNN F,SF\r
27685         000065' 302200  000577  02740           CAIE W,LPRN-DDT\r
27686         000066' 254000  000070' 02750           JRST .+2\r
27687         000067' 254000  000577' 02760           JRST LPRN\r
27688 \r
27689         000070' 250240  002210' 02780           EXCH T,FRASE1\r
27690         000071' 607000  040000  02790           TLNN F,DVF\r
27691         000072' 223240  002210' 02800           IMULB T,FRASE1\r
27692         000073' 623000  040000  02810           TLZE F,DVF\r
27693         000074' 233240  002210' 02820           IDIVB T,FRASE1\r
27694         000075' 305200  000573  02830           CAIGE W,ASSEM-DDT\r
27695         000076' 254004  000000' 02840           JRST DDT(W)             ;MULTIPLY OR DIVIDE\r
27696         000077' 273240  002204' 02850           ADDB T,FRASE\r
27697         000100' 305200  000623  02860           CAIGE W,SPACE-DDT\r
27698         000101' 254004  000000' 02870           JRST DDT(W)             ; + - @ ,\r
27699 \r
27700         000102' 270240  002201' 02890           ADD T,WRD\r
27701         000103' 603000  100000  02900           TLNE F,TIF              ;TRUNCATE INDICATOR FLAG\r
27702         000104' 500240  002201' 02910           HLL T,WRD               ;TRUNCATE\r
27703         000105' 202240  002201' 02920           MOVEM T,WRD\r
27704         000106' 607000  000001  02930           TLNN F,QF\r
27705         000107' 200240  002206' 02940           MOVE T,LWT\r
27706         000110' 402000  000002  02950           CLEARM,R\r
27707         000111' 200300  002214' 02960           MOVE W1,ESTUT\r
27708         000112' 316300  002213' 02970           CAMN W1,ESTU\r
27709         000113' 254000  000116' 02980           JRST L5\r
27710         000114' 303200  000700  02990           CAILE W,CARR-DDT\r
27711         000115' 254000  000123' 03000           JRST ERR\r
27712         000116' 307200  000627  03010   L5:     CAIG W,RPRN-DDT\r
27713         000117' 254004  000000' 03020           JRST DDT(W)\r
27714         000120' 261040  000445' 03030           PUSH P,KILRET\r
27715         000121' 336000  002203' 03040           SKIPN PRNC\r
27716         000122' 254004  000000' 03050           JRST DDT(W)\r
27717 \r
27718         000123' 201300  000077  03070   ERR:    MOVEI W1,"?"\r
27719         000124' 254000  000130' 03080           JRST WRONG1\r
27720         000125' 201300  000125  03090   UNDEF:  MOVEI W1,"U"\r
27721         000126' 254000  000130' 03100           JRST WRONG1\r
27722         000127' 200300  003435' 03110   WRONG:  MOVE W1,[ASCII /XXX/]\r
27723         000130' 201040  003540' 03120   WRONG1: MOVEI P,PS\r
27724         000131' 260040  002171' 03130           PUSHJ P,TEXT\r
27725         000132' 260040  002714' 03140   IFN EDDT&1,<PUSHJ P,LISTEN\r
27726         000133' 255000  000000  03150           JFCL>\r
27727 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 9\r
27728         OP DECODER\r
27729 \r
27730         000134' 201040  003540' 03170   RET:    MOVEI P,PS\r
27731         000135' 260040  002662' 03180           PUSHJ P,LCT             ;COMMON RETURN FOR TAB;,JRST LIS\r
27732         000136' 254000  000013' 03190           JRST DD2\r
27733 \r
27734         000137' 200100  002214' 03210   UND1:   MOVE R,ESTUT            ;UNDEFINED SYM ASSEMBLER\r
27735         000140' 574140  002214' 03220           HLRE S,ESTUT\r
27736         000141' 240140  777777  03230           ASH S,-1                ;SETUP EVAL END TEST\r
27737         000142' 260040  000357' 03240           PUSHJ P,EVAL2\r
27738         000143' 306200  000573  03250           CAIN W,ASSEM-DDT\r
27739         000144' 607000  000010  03260           TLNN F,ROF\r
27740         000145' 254000  003305' 03270           JRST OPEVAL\r
27741         000146' 332000  002203' 03280           SKIPE PRNC\r
27742         000147' 254000  003305' 03290           JRST OPEVAL\r
27743         000150' 201240  000043  03300           MOVEI T,"#"\r
27744         000151' 302200  000573  03310           CAIE W,ASSEM-DDT\r
27745         000152' 260040  002676' 03320           PUSHJ P,TOUT\r
27746 \r
27747         000153' 210100  003436' 03340           MOVN R,[XWD 2,2]\r
27748         000154' 273100  002214' 03350           ADDB R,ESTUT\r
27749         000155' 200240  002222' 03360           MOVE T,SYM\r
27750         000156' 661240  040000  03370           TLO T,GLOBAL\r
27751         000157' 202242  000000  03380           MOVEM T,(R)\r
27752         000160' 550240  002227' 03390           HRRZ T,LLOCO\r
27753         000161' 603000  000002  03400           TLNE F,MF\r
27754         000162' 661240  400000  03410           TLO T,400000\r
27755         000163' 202242  000001  03420           MOVEM T,1(R)\r
27756         000164' 201240  000000  03430           MOVEI T,0\r
27757         000165' 254000  000062' 03440           JRST L4\r
27758 \r
27759         000166' 260040  002657' 03460   QUESTN: PUSHJ P,CRF             ;LIST UNDEFINED SYMBOLS\r
27760         000167' 200100  002213' 03470           MOVE R,ESTU\r
27761         000170' 325100  000007' 03480   QUEST1: JUMPGE R,DD1\r
27762         000171' 200242  000000  03490           MOVE T, (R)\r
27763         000172' 334300  002213' 03500           SKIPA W1,ESTU\r
27764 \r
27765         000173' 270300  003436' 03520   QUEST2: ADD W1,[XWD 2,2]\r
27766         000174' 312246  000000  03530           CAME T,(W1)\r
27767         000175' 254000  000173' 03540           JRST QUEST2\r
27768 \r
27769         000176' 312100  000006  03560   QUEST3: CAME R,W1\r
27770         000177' 254000  000202' 03570           JRST QUEST4\r
27771         000200' 260040  002030' 03580           PUSHJ P,SPT\r
27772         000201' 260040  002657' 03590           PUSHJ P,CRF\r
27773         000202' 270100  003436' 03600   QUEST4: ADD R,[XWD 2,2]\r
27774         000203' 254000  000170' 03610           JRST QUEST1\r
27775 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 10\r
27776         OP DECODER\r
27777 \r
27778 \r
27779         000204' 405240  000017  03640   NUM:    ANDI T,17               ;T HOLDS CHARACTER\r
27780         000205' 603000  020040  03650           TLNE F,CF+FPF\r
27781         000206' 254000  000251' 03660           JRST NM1\r
27782         000207' 200200  002205' 03670           MOVE W,SYL\r
27783         000210' 242200  000003  03680           LSH W,3\r
27784         000211' 270200  000005  03690           ADD W,T\r
27785         000212' 202200  002205' 03700           MOVEM W,SYL\r
27786         000213' 200200  002211' 03710           MOVE W,DEN\r
27787         000214' 221200  000012  03720           IMULI W,12              ;CONVERT TO DECIMAL\r
27788         000215' 270200  000005  03730           ADD W,T\r
27789         000216' 202200  002211' 03740           MOVEM W,DEN\r
27790         000217' 344240  000235' 03750   LE1:    AOJA T,LE1A\r
27791 \r
27792         000220' 201240  000135  03770   PERC:   MOVEI T,47+101-13       ;PERCENT SIGN\r
27793         000221' 641000  020004  03780   LET:    TLC F,SF+FPF            ;EXPONENT IFF LTF'*FEF'*(T=105)*SF*FPF=1\r
27794         000222' 627000  420024  03790           TLZN F,LTF+FEF+SF+FPF\r
27795         000223' 302240  000105  03800           CAIE T,105              ; E\r
27796         000224' 665000  000020  03810           TLOA F,LTF\r
27797         000225' 665000  400000  03820           TLOA F,FEF\r
27798         000226' 254000  000234' 03830           JRST LET1\r
27799         000227' 627000  000002  03840           TLZN F,MF\r
27800         000230' 334300  002205' 03850           SKIPA W1,SYL\r
27801         000231' 210300  002205' 03860           MOVN W1,SYL\r
27802         000232' 202300  002215' 03870           MOVEM W1,FSV\r
27803         000233' 402000  002211' 03880           CLEARM DEN\r
27804         000234' 275240  000066  03890   LET1:   SUBI T,101-13           ;FORM RADIX 50 SYMBOL\r
27805         000235' 661000  000005  03900   LE1A:   TLO F,SF+QF\r
27806         000236' 200200  002222' 03910   LE2:    MOVE W,SYM\r
27807         000237' 221200  000050  03920           IMULI W,50              ;CONVERT TO RADIX 50\r
27808         000240' 270200  000005  03930           ADD W,T\r
27809         000241' 371000  002313' 03940           SOSL,TEM                ;IGNORE CHARACS AFTER 6\r
27810         000242' 202200  002222' 03950           MOVEM W,SYM\r
27811         000243' 254000  000035' 03960           JRST L2\r
27812 \r
27813         000244' 250240  002202' 03980   NUM1:   EXCH T,WRD2             ;FORM NUMBER AFTER $\r
27814         000245' 221240  000012  03990           IMULI T,12\r
27815         000246' 272240  002202' 04000           ADDM T,WRD2\r
27816         000247' 660000  000001  04010           TRO F,Q2F\r
27817         000250' 254000  000035' 04020           JRST L2\r
27818 \r
27819         000251' 603000  000040  04040   NM1:    TLNE F,CF\r
27820         000252' 254000  000244' 04050           JRST NUM1\r
27821         000253' 201300  000006  04060           MOVEI W1,6              ;FORM FLOATING POINT NUMBER\r
27822         000254' 350000  000255' 04070           AOS NM1A\r
27823         000255' 201340  000000  04080   NM1A:   MOVEI W2,0\r
27824         000256' 205100  201400  04090           MOVSI R,201400\r
27825         000257' 622340  000001  04100   NM1A1:  TRZE W2,1\r
27826         000260' 164106  002154' 04110           FMPR R,FT(W1)\r
27827         000261' 322340  000264' 04120           JUMPE W2,NM1B\r
27828         000262' 242340  777777  04130           LSH W2,-1\r
27829         000263' 367300  000257' 04140           SOJG W1,NM1A1\r
27830         000264' 205305  211000  04150   NM1B:   MOVSI W1,211000(T)\r
27831 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 10-1\r
27832         OP DECODER\r
27833 \r
27834         000265' 164100  000006  04160           FMPR    R,W1            ;COMPUTE VALUE OF NEW DIGIT\r
27835         000266' 147100  002221' 04170           FADRB   R,FH            ;ADD VALUE INTO FLOATING NO.\r
27836         000267' 202100  002205' 04180           MOVEM R,SYL\r
27837         000270' 344240  000235' 04190           AOJA T,LE1A\r
27838 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 11\r
27839         OP DECODER\r
27840 \r
27841 \r
27842         000271' 607000  400000  04220   POWER:  TLNN F,FEF\r
27843         000272' 254000  000062' 04230           JRST L4         ;NO EXPONENT\r
27844         000273' 302200  000575' 04240           CAIE W,PLUS\r
27845         000274' 306200  000574' 04250           CAIN W,MINUS\r
27846         000275' 662000  004000  04260           TROE F,POWF\r
27847         000276' 624000  004000  04270           TRZA F,POWF\r
27848         000277' 254004  000000  04280           JRST (W)                ; E+-\r
27849 \r
27850         000300' 200340  002211' 04300           MOVE W2,DEN\r
27851         000301' 402000  002204' 04310           CLEARM FRASE\r
27852         000302' 201300  002153' 04320           MOVEI W1,FT-1\r
27853         000303' 623000  000002  04330           TLZE F,MF\r
27854         000304' 201300  002162' 04340           MOVEI W1,FT01\r
27855         000305' 334240  002215' 04350           SKIPA T,FSV\r
27856         000306' 242340  777777  04360   POW2:   LSH W2,-1\r
27857         000307' 622340  000001  04370           TRZE W2,1\r
27858         000310' 164246  000000  04380           FMPR T,(W1)\r
27859         000311' 322340  000062' 04390           JUMPE W2,L4\r
27860         000312' 364300  000306' 04400           SOJA W1,POW2\r
27861 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 12\r
27862         OP DECODER\r
27863 \r
27864 \r
27865 \r
27866         000313' 200240  002226' 04440   PERIOD: MOVE T,LLOC\r
27867         000314' 603000  000004  04450           TLNE F,SF               ;SYLLABLE STARTED\r
27868         000315' 200240  002211' 04460           MOVE T,DEN\r
27869         000316' 202240  002205' 04470           MOVEM T,SYL\r
27870         000317' 603000  020000  04480           TLNE    F,FPF           ;HAS A PERIOD BEEN SEEN BEFORE?\r
27871         000320' 661000  000020  04490           TLO     F,LTF           ;YES, TWO PERIODS MAKES A SYMBOL\r
27872         000321' 667000  020005  04500           TLON F,FPF+SF+QF\r
27873         000322' 201240  000000  04510           MOVEI T,0\r
27874         000323' 231240  000400  04520           IDIVI T,400\r
27875         000324' 332000  000005  04530           SKIPE T\r
27876         000325' 641240  243000  04540           TLC T,243000\r
27877         000326' 641300  233000  04550           TLC W1,233000\r
27878         000327' 140240  003437' 04560           FAD     T,[0]           ;NORMALIZE T AND W1\r
27879         000330' 140300  003437' 04570           FAD     W1,[0]\r
27880         000331' 144240  000006  04580           FADR    T,W1\r
27881         000332' 202240  002221' 04590           MOVEM T,FH\r
27882         000333' 513000  000255' 04600           HLLZS NM1A\r
27883         000334' 201240  000045  04610           MOVEI T,45              ;RADIX 50 PERIOD\r
27884         000335' 254000  000236' 04620           JRST LE2\r
27885 \r
27886         000336' 334240  002206' 04640   QUAN:   SKIPA T,LWT             ;LAST QUANTITY TYPED\r
27887         000337' 201240  002231' 04650   PILOC:  MOVEI T, SAVPI\r
27888         000340' 202240  002205' 04660   QUAN1:  MOVEM T,SYL\r
27889         000341' 661000  000005  04670   QUAN2:  TLO F,SF+QF             ;WRD,SYL STARTED\r
27890         000342' 621000  010040  04680           TLZ F,CF+CCF\r
27891         000343' 254000  000035' 04690           JRST L2\r
27892 \r
27893         000344'                 04710   CONTRO:                         ;SOME KIND OF ALTMODE\r
27894         000344' 201240  000044  04720   IFN EDDT&1,<    MOVEI T,"$"     ;$\r
27895         000345' 260040  002676' 04730           PUSHJ P,TOUT            ;TYPE OUT $\r
27896                                 04740   >\r
27897         000346' 663000  000040  04750   DOLLAR: TLOE F,CF\r
27898         000347' 661000  010000  04760           TLO F,CCF\r
27899         000350' 254000  000035' 04770           JRST L2\r
27900 \r
27901 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 13\r
27902         OP DECODER\r
27903 \r
27904 \r
27905         000351' 200100  002212' 04810   EVAL:   MOVE R,PRGM             ;LOOK UP SYMBOL\r
27906         000352' 525300  237777  04820   EVAL0:  HRLOI W1,37777+DELI\r
27907         000353' 574160  002230' 04830           HLRE S,@SYMP\r
27908         000354' 240140  777777  04840           ASH S,-1        ;SETUP END TEST\r
27909         000355' 254000  000362' 04850           JRST EVAL3\r
27910 \r
27911         000356' 270100  003436' 04870   EVAL1:  ADD R,[XWD 2,2]\r
27912         000357' 331000  000002  04880   EVAL2:  SKIPL R\r
27913         000360' 200120  002230' 04890           MOVE R,@SYMP\r
27914         000361' 347140  000374' 04900           AOJG S,CPOPJ            ;TRNASFER IF NO SYMBOL FOUND\r
27915         000362' 200242  000000  04910   EVAL3:  MOVE T,(R)\r
27916         000363' 430240  002222' 04920           XOR T,SYM\r
27917         000364' 607240  740000  04930           TLNN T,PNAME\r
27918         000365' 665300  100000  04940           TLOA W1,LOCAL\r
27919         000366' 612240  000006  04950           TDNE T,W1\r
27920         000367' 254000  000356' 04960           JRST EVAL1\r
27921         000370' 607240  340000  04970           TLNN T,340000\r
27922         000371' 254000  000356' 04980           JRST EVAL1\r
27923         000372' 200242  000001  04990           MOVE T,1(R)\r
27924         000373' 350001  000000  05000   CPOPJ1: AOS (P)         ;FOUND SYMBOL, SKIP\r
27925         000374' 263040  000000  05010   CPOPJ:  POPJ P,\r
27926 \r
27927                                 05030   ;BIT 40 - DELETE OUTPUT\r
27928                                 05040   ; 20 - DELETE INPUT\r
27929                                 05050   ; 10 - LOCAL\r
27930                                 05060   ; 04 -GLOBAL\r
27931                                 05070   ; NO BITS - PROGRAM NAME\r
27932 \r
27933         000375' 260040  002740' 05090   TEXI:   PUSHJ P,TEXIN           ;INPUT TEXT\r
27934         000376' 202240  002205' 05100           MOVEM T,SYL\r
27935         000377' 201300  000005  05110           MOVEI W1,5\r
27936         000400' 201200  000000  05120           MOVEI T-1,0\r
27937         000401' 260040  002740' 05130           PUSHJ P,TEXIN\r
27938         000402' 306240  000033  05140           CAIN T,33               ;NEW ALT MODE, ESCAPE\r
27939         000403' 254000  000341' 05150           JRST QUAN2\r
27940         000404' 603000  000040  05160           TLNE F,CF\r
27941         000405' 254000  000422' 05170           JRST SIXBIN\r
27942         000406' 334000  000000  05180           SKIPA\r
27943         000407' 260040  002740' 05190   TEXI2:  PUSHJ P,TEXIN\r
27944         000410' 316240  002205' 05200           CAMN T,SYL\r
27945         000411' 364300  000415' 05210           SOJA W1,TEXI3\r
27946         000412' 241240  777771  05220           ROT T,-7\r
27947         000413' 246200  000007  05230           LSHC T-1,7\r
27948         000414' 364300  000407' 05240           SOJA W1,TEXI2\r
27949 \r
27950         000415' 246200  777735  05260   TEXI3:  LSHC T-1,-43\r
27951         000416' 321300  000340' 05270           JUMPL W1,QUAN1\r
27952         000417' 242240  000007  05280           LSH T,7\r
27953         000420' 364300  000416' 05290           SOJA W1,.-2\r
27954 \r
27955 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 14\r
27956         OP DECODER\r
27957 \r
27958         000421' 260040  002740' 05320   SIXBI1: PUSHJ P,TEXIN    ; INPUT TEXT (SIXBIT)\r
27959         000422' 316240  002205' 05330   SIXBIN: CAMN T,SYL\r
27960         000423' 254000  000431' 05340           JRST SIXBI2\r
27961         000424' 405240  000077  05350           ANDI T,77\r
27962         000425' 640240  000040  05360           TRC T,40\r
27963         000426' 241240  777772  05370           ROT T,-6\r
27964         000427' 246200  000006  05380           LSHC T-1,6\r
27965         000430' 364300  000421' 05390           SOJA W1,SIXBI1\r
27966         000431' 200240  000004  05400   SIXBI2: MOVE T,T-1\r
27967         000432' 321300  000340' 05410           JUMPL W1,QUAN1\r
27968         000433' 242240  000006  05420           LSH T,6\r
27969         000434' 364300  000432' 05430           SOJA W1,.-2\r
27970 \r
27971         000435' 607000  000020  05450   KILL:   TLNN F,LTF              ;DELETE SYMBOLS\r
27972         000436' 254000  000446' 05460           JRST KILLA\r
27973         000437' 260040  000351' 05470           PUSHJ P,EVAL\r
27974         000440' 254000  000462' 05480           JRST KILL1\r
27975         000441' 201240  000002  05490           MOVEI T,DELO/200000             ;DELETE OUTPUT\r
27976         000442' 603000  010000  05500           TLNE F,CCF\r
27977         000443' 201240  000001  05510           MOVEI T,DELI/200000             ;NO INPUT OR OUTPUT\r
27978         000444' 137240  003440' 05520           DPB T,[POINT 2,(R),1]   ;LEFT 2 BITS IN SYMBOL\r
27979         000445' 254000  000134' 05530   KILRET: JRST RET                ;USED AS A CONSTANT\r
27980 \r
27981         000446' 607000  000001  05550   KILLA:  TLNN F,QF\r
27982         000447' 607000  010000  05560           TLNN F,CCF\r
27983         000450' 254000  000123' 05570           JRST ERR\r
27984         000451' 200100  002200' 05580           MOVE R,KILC\r
27985         000452' 202120  002230' 05590           MOVEM R,@SYMP           ;RESTORE INIT SYMS\r
27986         000453' 552100  002213' 05600           HRRZM R,ESTU\r
27987         000454' 202100  002212' 05610           MOVEM R,PRGM\r
27988         000455' 515240  600000  05620           HRLZI T,DELO+DELI\r
27989         000456' 412242  000000  05630           ANDCAM T,(R)            ;GET RID OF DELETE BITS IN INITIAL TABLE\r
27990         000457' 253100  000460' 05640           AOBJN R,.+1\r
27991         000460' 253100  000456' 05650           AOBJN R,.-2\r
27992         000461' 254000  000134' 05660           JRST RET\r
27993 \r
27994         000462' 200100  002213' 05680   KILL1:  MOVE R,ESTU             ;REMOVE UNDEFINED SYMS\r
27995         000463' 325100  000125' 05690           JUMPGE R,UNDEF\r
27996         000464' 260040  000352' 05700   KILL2:  PUSHJ P,EVAL0\r
27997         000465' 254000  000134' 05710           JRST RET\r
27998         000466' 260040  000470' 05720           PUSHJ P,REMUN\r
27999         000467' 254000  000464' 05730           JRST KILL2\r
28000 \r
28001         000470' 200140  003436' 05750   REMUN:  MOVE S,[XWD 2,2]        ;REMOVE ONE UNDEFINED SYMBOL\r
28002         000471' 273140  002213' 05760           ADDB S,ESTU\r
28003         000472' 200203  777776  05770           MOVE W,-2(S)\r
28004         000473' 202202  000000  05780           MOVEM W,(R)\r
28005         000474' 200203  777777  05790           MOVE W,-1(S)\r
28006         000475' 202202  000001  05800           MOVEM W,1(R)\r
28007         000476' 263040  000000  05810           POPJ P,\r
28008 \r
28009 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 15\r
28010         OP DECODER\r
28011 \r
28012 \r
28013         000477' 607000  000020  05850   TAG:    TLNN F,LTF   ; NO LETTERS IS ERROR\r
28014         000500' 254000  000123' 05860           JRST ERR   ; GO SAY ERROR\r
28015         000501' 603000  001000  05870           TLNE F,FAF   ; DEFINE SYMBOLS\r
28016         000502' 254000  000507' 05880           JRST DEFIN              ;A<B:\r
28017         000503' 603000  000040  05890           TLNE F,CF               ;DEFINE SYMBOL AS OPEN REGISTER\r
28018         000504' 254000  000555' 05900           JRST SETNAM\r
28019         000505' 200200  002227' 05910           MOVE W,LLOCO\r
28020         000506' 552200  002224' 05920           HRRZM W,DEFV\r
28021 \r
28022         000507' 260040  000351' 05940   DEFIN:  PUSHJ P,EVAL\r
28023         000510' 254000  000515' 05950           JRST DEF1\r
28024         000511' 315100  002200' 05960           CAMGE R,KILC            ;INITIAL SYMBOL?\r
28025         000512' 254000  000525' 05970           JRST DEF2               ;NO, REDEFINE\r
28026         000513' 201240  000001  05980           MOVEI T,DELI/200000     ;YES, DELETE AND DEFINE NEW ONE\r
28027         000514' 137240  003440' 05990           DPB T,[POINT 2,(R),1]   ;LEFT 2 BITS OF SYMBOL\r
28028         000515' 210100  003436' 06000   DEF1:   MOVN R,[XWD 2,2]\r
28029         000516' 273120  002230' 06010           ADDB R,@SYMP    ;MOVE UNDEFINED TABLE 2 REGISTERS\r
28030         000517' 550240  002213' 06020           HRRZ T,ESTU\r
28031         000520' 275240  000002  06030           SUBI T,2\r
28032         000521' 504240  002213' 06040           HRL T,ESTU\r
28033         000522' 542240  002213' 06050           HRRM T,ESTU\r
28034         000523' 335000  002213' 06060           SKIPGE ESTU\r
28035         000524' 251242  777777  06070           BLT T,-1(R)\r
28036         000525' 200240  002224' 06080   DEF2:   MOVE T,DEFV\r
28037         000526' 202242  000001  06090           MOVEM T,1(R)            ;PUT IN NEW VALUE\r
28038         000527' 205240  040000  06100           MOVSI T,GLOBAL\r
28039         000530' 437240  002222' 06110           IORB T,SYM\r
28040         000531' 202242  000000  06120           MOVEM T,(R)             ;PUT IN NEW SYM AS GLOBAL\r
28041         000532' 200100  002213' 06130           MOVE R,ESTU\r
28042 \r
28043         000533' 325100  000134' 06150   DEF3:   JUMPGE R,RET            ;PATCH IN VALUE FOR UNDEF SYM ENTRY\r
28044         000534' 200240  002222' 06160           MOVE T,SYM\r
28045         000535' 312242  000000  06170           CAME T,(R)\r
28046         000536' 254000  000553' 06180           JRST DEF4\r
28047         000537' 200140  002224' 06190           MOVE S,DEFV\r
28048         000540' 335002  000001  06200           SKIPGE, 1(R)\r
28049         000541' 210140  000003  06210           MOVN S,S\r
28050         000542' 261040  000002  06220           PUSH P,R\r
28051         000543' 200102  000001  06230           MOVE R,1(R)\r
28052         000544' 260040  001404' 06240           PUSHJ P,FETCH\r
28053         000545' 254000  000123' 06250           JRST ERR\r
28054         000546' 270140  000005  06260           ADD S,T\r
28055         000547' 542140  000005  06270           HRRM S,T\r
28056         000550' 260040  001376' 06280           PUSHJ P,DEP\r
28057         000551' 262040  000002  06290           POP P,R\r
28058         000552' 260040  000470' 06300           PUSHJ P,REMUN\r
28059         000553' 270100  003436' 06310   DEF4:   ADD R,[XWD 2,2]         ;REMOVE THE NOW DEFINED SYMBOL\r
28060         000554' 254000  000533' 06320           JRST DEF3\r
28061 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 16\r
28062         OP DECODER\r
28063 \r
28064 \r
28065         000555' 200120  002230' 06350   SETNAM: MOVE R,@SYMP            ;SET PROGRAM NAME - DOLLAR COLON\r
28066         000556' 200200  000002  06360   SET1:   MOVE W,R\r
28067         000557' 325100  000125' 06370   SET2:   JUMPGE R,UNDEF\r
28068         000560' 200242  000000  06380           MOVE T,(R)\r
28069         000561' 270100  003436' 06390           ADD R,[XWD 2,2]\r
28070         000562' 603240  740000  06400           TLNE T,PNAME\r
28071         000563' 254000  000557' 06410           JRST SET2\r
28072         000564' 312240  002222' 06420           CAME T,SYM\r
28073         000565' 254000  000556' 06430           JRST SET1\r
28074         000566' 202200  002212' 06440           MOVEM W,PRGM\r
28075         000567' 254000  000134' 06450           JRST RET\r
28076 \r
28077         000570' 665000  000300  06470   MULT:   TLOA F,PTF+MLF          ;*\r
28078         000571' 661000  040100  06480   DIVD:   TLO F,DVF+PTF           ;SINGLE QUOTE\r
28079         000572' 254000  000026' 06490           JRST L1\r
28080 \r
28081         000573' 254000  000575' 06510   ASSEM:  JRST PLUS               ;#\r
28082         000574' 661000  000002  06520   MINUS:  TLO F,MF\r
28083         000575' 661000  000100  06530   PLUS:   TLO F,PTF\r
28084         000576' 254000  000023' 06540           JRST LIS2\r
28085 \r
28086         000577' 311040  003441' 06560   LPRN:   CAML P,[XWD LPDL-4,0]   ;LEFT PARENTHESIS\r
28087         000600' 254000  000123' 06570           JRST ERR\r
28088         000601' 261040  000000  06580           PUSH P,F                ;RECURSE FOR OPEN PAREN\r
28089         000602' 261040  002201' 06590           PUSH P,WRD\r
28090         000603' 261040  002204' 06600           PUSH P,FRASE\r
28091         000604' 261040  002210' 06610           PUSH P,FRASE1\r
28092         000605' 350000  002203' 06620           AOS,PRNC\r
28093         000606' 254000  000015' 06630           JRST LIS\r
28094 \r
28095         000607' 515200  000020  06650   INDIRECT:       HRLZI W,20              ;@\r
28096         000610' 437200  002201' 06660           IORB W,WRD\r
28097         000611' 661000  000001  06670           TLO F,QF\r
28098         000612' 254000  000023' 06680           JRST LIS2\r
28099 \r
28100         000613' 200100  000005  06700   ACCF:   MOVE R,T                ;COMMA\r
28101         000614' 513000  000005  06710           HLLZS T\r
28102         000615' 135300  003442' 06720           LDB W1,[POINT 3,WRD,2]  ;CHECK FOR IO INSTRUCTION\r
28103         000616' 231300  000007  06730           IDIVI W1,7\r
28104         000617' 242106  000027  06740           LSH R,27(W1)\r
28105         000620' 270240  000002  06750           ADD T,R\r
28106         000621' 273240  002201' 06760           ADDB T,WRD\r
28107         000622' 254000  000624' 06770           JRST SPACE+1\r
28108 \r
28109         000623' 603000  000001  06790   SPACE:  TLNE F,QF\r
28110         000624' 661000  100000  06800           TLO F,TIF\r
28111         000625' 621000  000102  06810   SPAC1:  TLZ F,MF+PTF\r
28112         000626' 254000  000022' 06820           JRST LIS1\r
28113 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 17\r
28114         OP DECODER\r
28115 \r
28116 \r
28117         000627' 607000  000001  06850   RPRN:   TLNN F,QF               ;)\r
28118         000630' 201240  000000  06860           MOVEI T,0\r
28119         000631' 204240  000005  06870           MOVS T,T\r
28120         000632' 375000  002203' 06880           SOSGE,PRNC\r
28121         000633' 254000  000123' 06890           JRST ERR\r
28122         000634' 262040  002210' 06900           POP P,FRASE1\r
28123         000635' 262040  002204' 06910           POP P,FRASE\r
28124         000636' 262040  002201' 06920           POP P,WRD\r
28125         000637' 262040  000000  06930           POP P,F\r
28126         000640' 603000  000100  06940           TLNE F,PTF\r
28127         000641' 603000  000004  06950           TLNE F,SF\r
28128         000642' 254000  000646' 06960           JRST RPRN1\r
28129         000643' 202240  002205' 06970           MOVEM T,SYL\r
28130         000644' 661000  000005  06980           TLO F,QF+SF\r
28131         000645' 254000  000030' 06990           JRST L1RPR\r
28132         000646' 273240  002201' 07000   RPRN1:  ADDB T,WRD\r
28133         000647' 661000  000001  07010           TLO F,QF\r
28134         000650' 254000  000027' 07020           JRST L1RPR-1\r
28135 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 18\r
28136         OP DECODER\r
28137 \r
28138 \r
28139                                 07050   ;REGISTER EXAMINATION LOGIC\r
28140 \r
28141         000651' 260040  000725' 07070   LINEF:  PUSHJ P,DEPRA   ;NEXT REGISTER\r
28142                                 07080   IFE EDDT&1,<PUSHJ P,CRNRB\r
28143                                 07090           JRST .+2>\r
28144         000652' 260040  002657' 07100   LI0:    PUSHJ P,CRF\r
28145         000653' 350240  002226' 07110           AOS T,LLOC\r
28146         000654' 552240  002226' 07120   LI1:    HRRZM T,LLOC\r
28147         000655' 552240  002227' 07130           HRRZM T,LLOCO\r
28148         000656' 260040  001543' 07140           PUSHJ P,PAD\r
28149         000657' 201240  000057  07150           MOVEI T,"/"\r
28150         000660' 603000  004000  07160           TLNE F,STF\r
28151         000661' 201240  000041  07170           MOVEI T,"!"\r
28152         000662' 260040  002676' 07180           PUSHJ P,TOUT\r
28153         000663' 621000  000010  07190   LI2:    TLZ F,ROF\r
28154         000664' 260040  002662' 07200           PUSHJ P,LCT\r
28155         000665' 200100  002227' 07210           MOVE R,LLOCO\r
28156         000666' 260040  001404' 07220           PUSHJ P,FETCH\r
28157         000667' 254000  000123' 07230           JRST ERR\r
28158         000670' 661000  000010  07240           TLO F,ROF\r
28159         000671' 603000  004000  07250           TLNE F,STF\r
28160         000672' 254000  000013' 07260           JRST DD2\r
28161         000673' 254000  001462' 07270           JRST CONSYM             ;RETURN IS A POPJ\r
28162 \r
28163         000674' 260040  000725' 07290   VARRW:  PUSHJ P,DEPRA           ;^\r
28164         000675' 260040  002657' 07300           PUSHJ P,CRF\r
28165         000676' 370240  002226' 07310           SOS T,LLOC\r
28166         000677' 254000  000654' 07320           JRST LI1\r
28167 \r
28168         000700' 260040  000725' 07340   CARR:   PUSHJ P,DEPRA           ;CLOSE REGISTER\r
28169         000701' 254000  000007' 07350           IFN EDDT&1,<JRST DD1>\r
28170                                 07360           IFE EDDT&1,<    PUSHJ P,TIN\r
28171                                 07370           CAIN T,15\r
28172                                 07380           JRST .-2\r
28173                                 07390           JRST DD1.5>\r
28174 \r
28175         000702' 664000  002400  07410   OCON:   TROA F,LF1+CF1          ;OPEN AS CONSTANT\r
28176         000703' 620000  000400  07420   OSYM:   TRZ F,CF1               ;OPEN SYMBOLICALLY\r
28177         000704' 664000  002000  07430           TROA F,LF1\r
28178         000705' 665000  004000  07440   SUPTYO: TLOA F,STF              ;SUPPRESS TYPEOUT\r
28179         000706' 621000  004000  07450   SLASH:  TLZ F,STF               ;TYPE OUT REGISTER\r
28180         000707' 603000  000001  07460           TLNE F,QF\r
28181         000710' 552240  002226' 07470           HRRZM T,LLOC            ;QUANTITY TYPED\r
28182         000711' 552240  002227' 07480   SLAS1:  HRRZM T,LLOCO\r
28183         000712' 254000  000663' 07490           JRST LI2\r
28184 \r
28185         000713' 607000  000010  07510   ICON:   TLNN F,ROF      ;REGISTER OPENED OR ERR\r
28186         000714' 254000  000123' 07520           JRST ERR\r
28187         000715' 260040  001371' 07530           PUSHJ P,DEPRS\r
28188         000716' 254000  000711' 07540           JRST SLAS1\r
28189 \r
28190 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 19\r
28191         OP DECODER\r
28192 \r
28193 \r
28194         000717' 260040  001371' 07580   TAB:    PUSHJ P,DEPRS   ;OPEN REGISTER OF Q\r
28195         000720' 201245  777777  07590           MOVEI T,-1(T)\r
28196         000721' 202240  002226' 07600           MOVEM T,LLOC\r
28197         000722' 561240  700000  07610           HRROI T,700000  ;3 RUBOUTS\r
28198         000723' 260040  002170' 07620           PUSHJ P,TEXTT\r
28199         000724' 254000  000652' 07630           JRST LI0\r
28200 \r
28201         000725' 603000  000010  07650   DEPRA:  TLNE F,ROF              ;IF REGISTER IS BEING CHANGED\r
28202         000726' 607000  000001  07660           TLNN F,QF               ;REMOVE ALL PREVIOUS UNDEFINED\r
28203         000727' 254000  001371' 07670           JRST DEPRS              ;SYMBOL REFERENCES TO IT\r
28204         000730' 200100  002213' 07680           MOVE R,ESTU\r
28205         000731' 202300  002213' 07690           MOVEM W1,ESTU\r
28206         000732' 325100  001371' 07700   DEPRA2: JUMPGE R,DEPRS\r
28207         000733' 550202  000001  07710           HRRZ W,1(R)\r
28208         000734' 316200  002227' 07720           CAMN W,LLOCO\r
28209         000735' 260040  000470' 07730           PUSHJ P,REMUN\r
28210         000736' 270100  003436' 07740           ADD R,[XWD 2,2]\r
28211         000737' 254000  000732' 07750           JRST DEPRA2\r
28212 \r
28213         000740' 664000  002400  07770   EQUAL:  TROA F,LF1+CF1          ;=\r
28214         000741' 620000  000400  07780   PSYM:   TRZ F,CF1               ;@\r
28215         000742' 660000  002000  07790           TRO F,LF1\r
28216         000743' 260040  001462' 07800           PUSHJ P,CONSYM\r
28217         000744' 254000  000134' 07810           JRST RET\r
28218 \r
28219         000745' 242240  777742  07830   R50PNT: LSH T,-36       ;RADIX 50 SYMBOL PRINTER\r
28220         000746' 620240  000003  07840           TRZ T,3\r
28221         000747' 260040  002003' 07850           PUSHJ P,TOC\r
28222         000750' 260040  002664' 07860           PUSHJ P,TSPC\r
28223         000751' 201300  002206' 07870           MOVEI W1,LWT    ;SETUP FOR SPT\r
28224         000752' 254000  002030' 07880           JRST SPT\r
28225 \r
28226         000753' 211340  000006  07900   SIXBP:  MOVNI W2,6              ;SIXBIT PRINTER\r
28227         000754' 200300  002206' 07910           MOVE W1,LWT\r
28228         000755' 201240  000000  07920   SIXBP1: MOVEI T,0\r
28229         000756' 245240  000006  07930           ROTC T,6\r
28230         000757' 271240  000040  07940           ADDI T,40\r
28231         000760' 260040  002676' 07950           PUSHJ P,TOUT\r
28232         000761' 341340  000755' 07960           AOJL W2,SIXBP1\r
28233         000762' 263040  000000  07970           POPJ P,\r
28234 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 20\r
28235         OP DECODER\r
28236 \r
28237 \r
28238                                 08000   ;MODE CONTROL SWITCHES\r
28239 \r
28240         000763' 201100  000432  08020   TEXO:   MOVEI R,TEXTT-HLFW      ;$T ASSUME 7 BIT ASCII\r
28241         000764' 200240  002202' 08030           MOVE T,WRD2\r
28242         000765' 306240  000006  08040           CAIN T,6                ;CHECK FOR $6T\r
28243         000766' 201100  777215  08050           MOVEI R,SIXBP-HLFW      ;SET MODE SWITCH FOR SIXBIT\r
28244         000767' 306240  000005  08060           CAIN T,5                ;CHECK FOR $5T\r
28245         000770' 201100  777207  08070           MOVEI R,R50PNT-HLFW     ;SET MODE SWITCH FOR RADIX 50\r
28246         000771' 271100  777456  08080   HWRDS:  ADDI R,HLFW-TFLOT               ;H\r
28247         000772' 271100  000371  08090   SFLOT:  ADDI R,TFLOT-PIN                ;F\r
28248         000773' 271100  777464  08100   SYMBOL: ADDI R,PIN-FTOC         ;S\r
28249         000774' 271100  002003' 08110   CON:    ADDI R,FTOC             ;C\r
28250         000775' 552100  000010  08120           HRRZM R,SCH\r
28251         000776' 254000  001011' 08130           JRST BASE1\r
28252 \r
28253         000777' 622000  000001  08150   RELA:   TRZE F,Q2F              ;CHANGE ADDRESS MODE TO RELATIE\r
28254         001000' 254000  001005' 08160           JRST BASECH\r
28255         001001' 201100  777542  08170           MOVEI R,PADSO-TOC\r
28256         001002' 271100  002003' 08180   ABSA:   ADDI R,TOC              ;A\r
28257         001003' 552100  000011  08190           HRRZM R,AR\r
28258         001004' 254000  001011' 08200           JRST BASE1\r
28259 \r
28260         001005' 200240  002202' 08220   BASECH: MOVE T,WRD2             ;$NR  CHANGE OUTPUT RADIX TO N, N>1\r
28261         001006' 305240  000002  08230           CAIGE T,2\r
28262         001007' 254000  000123' 08240           JRST ERR\r
28263         001010' 552240  000012  08250           HRRZM T,ODF\r
28264         001011' 204140  003432' 08260   BASE1:  MOVS S,[XWD SCHM,SCH]\r
28265         001012' 607000  010000  08270           TLNN F,CCF\r
28266         001013' 254000  000022' 08280           JRST LIS1\r
28267         001014' 251140  002311' 08290           BLT S,ODFM      ;WITH $$, MAKE MODES PERMANENT\r
28268         001015' 254000  000134' 08300           JRST RET\r
28269 \r
28270         001016' 202240  002206' 08320   SEMIC:  MOVEM T,LWT             ;SEMICOLON TYPES IN CURRENT MODE\r
28271         001017' 254020  000010  08330           JRST @SCH\r
28272 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 21\r
28273         OP DECODER\r
28274 \r
28275                                 08350   ;GO AND EXECUTE LOGIC\r
28276 \r
28277         001020' 505240  254000  08370   GO:     HRLI T,254000             ;G\r
28278         001021' 663000  000001  08380           TLOE F,QF\r
28279         001022' 254000  001026' 08390           JRST XEC0\r
28280         001023' 332240  002234' 08400           IFN EDDT&1,<    SKIPE T,STARTA> ;LOAD TAPE START ADDRESS\r
28281                                 08410           IFE EDDT&1,<    HRR T,JOBSA>    ;GET STARTING ADDRESS\r
28282 \r
28283         001024' 607000  000001  08430   XEC:    TLNN F,QF               ;X\r
28284         001025' 254000  000123' 08440           JRST ,ERR\r
28285         001026' 202240  002313' 08450   XEC0:   MOVEM T,TEM\r
28286         001027' 260040  002657' 08460           PUSHJ P,CRF\r
28287         001030' 260040  002732' 08470           PUSHJ P,TTYLEV\r
28288         001031' 260040  001274' 08480           PUSHJ P,INSRTB\r
28289         001032' 265240  002637' 08490           JSP T,RESTORE\r
28290         001033' 256000  002313' 08500           XCT,TEM\r
28291         001034' 254000  000000' 08510   XEC1:   JRST DDT                ;USED  AT PROC0\r
28292         001035' 264000  002615' 08520           JSR,SAVE\r
28293         001036' 260040  001307' 08530           PUSHJ P,REMOVB\r
28294         001037' 260040  002657' 08540           PUSHJ P,CRF\r
28295         001040' 254000  000007' 08550           JRST DD1\r
28296 \r
28297 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 22\r
28298         OP DECODER\r
28299 \r
28300                                 08580   ;BREAK POINT LOGIC\r
28301                                 08590   BP1:    REPEAT NBP,<    0               ;JSR TO HERE FOR BREAKPOINT\r
28302                                 08600           JSA T, BCOM\r
28303                                 08610           0               ;HOLDS INSTRUCTION WHILE BREAKPOINT IS IN PLACE\r
28304                                 08620   >\r
28305         001041' 000000  000000                  0               ;JSR TO HERE FOR BREAKPOINT\r
28306         001042' 266240  001071'                 JSA T, BCOM\r
28307         001043' 000000  000000                  0               ;HOLDS INSTRUCTION WHILE BREAKPOINT IS IN PLACE\r
28308 \r
28309         001044' 000000  000000                  0               ;JSR TO HERE FOR BREAKPOINT\r
28310         001045' 266240  001071'                 JSA T, BCOM\r
28311         001046' 000000  000000                  0               ;HOLDS INSTRUCTION WHILE BREAKPOINT IS IN PLACE\r
28312 \r
28313         001047' 000000  000000                  0               ;JSR TO HERE FOR BREAKPOINT\r
28314         001050' 266240  001071'                 JSA T, BCOM\r
28315         001051' 000000  000000                  0               ;HOLDS INSTRUCTION WHILE BREAKPOINT IS IN PLACE\r
28316 \r
28317         001052' 000000  000000                  0               ;JSR TO HERE FOR BREAKPOINT\r
28318         001053' 266240  001071'                 JSA T, BCOM\r
28319         001054' 000000  000000                  0               ;HOLDS INSTRUCTION WHILE BREAKPOINT IS IN PLACE\r
28320 \r
28321         001055' 000000  000000                  0               ;JSR TO HERE FOR BREAKPOINT\r
28322         001056' 266240  001071'                 JSA T, BCOM\r
28323         001057' 000000  000000                  0               ;HOLDS INSTRUCTION WHILE BREAKPOINT IS IN PLACE\r
28324 \r
28325         001060' 000000  000000                  0               ;JSR TO HERE FOR BREAKPOINT\r
28326         001061' 266240  001071'                 JSA T, BCOM\r
28327         001062' 000000  000000                  0               ;HOLDS INSTRUCTION WHILE BREAKPOINT IS IN PLACE\r
28328 \r
28329         001063' 000000  000000                  0               ;JSR TO HERE FOR BREAKPOINT\r
28330         001064' 266240  001071'                 JSA T, BCOM\r
28331         001065' 000000  000000                  0               ;HOLDS INSTRUCTION WHILE BREAKPOINT IS IN PLACE\r
28332 \r
28333         001066' 000000  000000                  0               ;JSR TO HERE FOR BREAKPOINT\r
28334         001067' 266240  001071'                 JSA T, BCOM\r
28335         001070' 000000  000000                  0               ;HOLDS INSTRUCTION WHILE BREAKPOINT IS IN PLACE\r
28336 \r
28337                         001043' 08640   B1INS=BP1+2\r
28338                         001066' 08650   BPN=.-3\r
28339 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 23\r
28340         OP DECODER\r
28341 \r
28342 \r
28343         001071' 000000  000000  08680   BCOM:   0\r
28344         001072' 262240  001241' 08690           POP T,LEAV              ;MOVE INSTRUCTION TO LEAV\r
28345         001073' 201245  001175  08700           MOVEI T,B1SKP-B1INS+1(T)\r
28346         001074' 542240  001103' 08710           HRRM T,BCOM3            ;CONDITIONAL BREAK SETUP\r
28347         001075' 201245  000001  08720           MOVEI T,B1CNT-B1SKP(T)\r
28348         001076' 542240  001105' 08730           HRRM T,BCOM2            ;PROCEDE COUNTER SETUP\r
28349         001077' 200245  776601  08740           MOVE T,BP1-B1CNT(T)\r
28350         001100' 621240  010000  08750   IFN EDDT&1,<    TLZ T,010000            ;TURN OFF USER MODE BIT>\r
28351         001101' 502240  001122' 08760           HLLM T,LEAV1            ;SAVE FLAGS FOR RESTORING\r
28352         001102' 250240  001071' 08770           EXCH T,BCOM\r
28353 \r
28354         001103' 332000  002237' 08790   BCOM3:  SKIPE B1SKP             ;ADDR MOD TO LOOK AT COND. INST.\r
28355         001104' 256020  001103' 08800           XCT @.-1\r
28356         001105' 377000  002240' 08810   BCOM2:  SOSG B1CNT              ;ADDR MOD TO LOOK AT PROCEED COUNTER\r
28357         001106' 254000  001123' 08820           JRST BREAK\r
28358 \r
28359         001107' 202240  002274' 08840           MOVEM T,AC0+T\r
28360         001110' 135240  003443' 08850           LDB T,[POINT 9,LEAV,8]  ;GET INSTRUCTION\r
28361         001111' 301240  000264  08860           CAIL T,264      ;JSR\r
28362         001112' 303240  000266  08870           CAILE T,266     ;JSA,JSP\r
28363         001113' 606240  000700  08880           TRNN T,700      ;UUO\r
28364         001114' 254000  001175' 08890           JRST PROC1              ;MUST BE INTERPRETED\r
28365         001115' 302240  000260  08900           CAIE T,260      ;PUSHJ\r
28366         001116' 306240  000256  08910           CAIN T,256      ;XCT\r
28367         001117' 254000  001175' 08920           JRST PROC1              ;MUST BE INTERPRETED\r
28368         001120' 200240  002274' 08930           MOVE T,AC0+T\r
28369         001121' 254120  001122' 08940           JRST 2,@LEAV1           ;RESTORE FLAGS, GO TO LEAV\r
28370 \r
28371         001122' 000000  001241' 08960   LEAV1:  XWD 0,LEAV\r
28372 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 24\r
28373         OP DECODER\r
28374 \r
28375         001123' 264000  002615' 08980   BREAK:  JSR SAVE                ;SAVE THE WORLD\r
28376         001124' 260040  001307' 08990           PUSHJ P,REMOVB          ;REMOVE BREAKPOINTS\r
28377         001125' 370240  001103' 09000           SOS T,BCOM3\r
28378         001126' 553000  000005  09010           HRRZS T                 ;GET ADDR OF BREAKPOINT JUST HIT\r
28379         001127' 260040  001545' 09020           PUSHJ P,PADSO           ;PRINT ITS NAME- $NB\r
28380         001130' 205300  370000  09030           MOVSI W1,(ASCII />/)            ;TYPE > FOR COND BREAK\r
28381         001131' 337020  001105' 09040           SKIPG @BCOM2            ;TEST PROCEED COUNTER\r
28382         001132' 205300  371740  09050           MOVSI W1,(ASCII />>/)   ;TYPE >> FOR PROCEED COUNTER BREAK\r
28383         001133' 260040  002173' 09060           PUSHJ P,TEXT2\r
28384         001134' 200240  001071' 09070           MOVE T,BCOM\r
28385         001135' 502240  002231' 09080           HLLM T, SAVPI           ;SAVE PROCESSOR FLAGS\r
28386         001136' 201245  777777  09090           MOVEI T,-1(T)\r
28387         001137' 260040  001543' 09100           PUSHJ P,PAD             ;TYPE PC AT BREAK\r
28388         001140' 550260  001103' 09110           HRRZ T,@BCOM3\r
28389         001141' 542240  001167' 09120           HRRM T,PROC0            ;SETUP ADDRESS OF BREAK\r
28390         001142' 554260  001103' 09130           HLRZ T,@BCOM3\r
28391         001143' 322240  001147' 09140           JUMPE T,BREAK1          ;TEST FOR REGISTER TO EXAMINE\r
28392         001144' 260040  002662' 09150           PUSHJ P,LCT             ;PRINT TAB\r
28393         001145' 554260  001103' 09160           HLRZ T,@BCOM3\r
28394         001146' 260040  000654' 09170           PUSHJ P,LI1             ;EXAMINE REGISTER C($NB)LEFT\r
28395         001147' 550100  001103' 09180   BREAK1: HRRZ R,BCOM3\r
28396         001150' 275100  002236' 09190           SUBI R,B1ADR\r
28397         001151' 231100  000003  09200           IDIVI R,3               ;GET BREAKPOINT NUMBER-1 INTO R\r
28398         001152' 201140  000001  09210           MOVEI S,1\r
28399         001153' 242142  000000  09220           LSH S,(R)\r
28400         001154' 260040  002714' 09230           PUSHJ P,LISTEN          ;DONT PROCEED IF TTY KEY HIT\r
28401         001155' 616140  002266' 09240           TDNN S,AUTOPI           ;DONT PROCEED IF NOT AUTOMATIC\r
28402         001156' 254000  000134' 09250           JRST RET                ;DONT PROCEED\r
28403         001157' 254000  001165' 09260           JRST PROCD1\r
28404 \r
28405         001160' 607000  000001  09280   PROCEDE: TLNN F,QF              ;N$P    ;PROCEED AT A BREAKPOINT\r
28406         001161' 201240  000001  09290           MOVEI T,1\r
28407         001162' 202260  001105' 09300           MOVEM T,@BCOM2\r
28408         001163' 550100  001103' 09310           HRRZ R,BCOM3\r
28409         001164' 260040  001361' 09320           PUSHJ P,AUTOP\r
28410         001165' 260040  002657' 09330   PROCD1: PUSHJ P,CRF\r
28411         001166' 260040  002732' 09340           PUSHJ P,TTYLEV\r
28412         001167' 551100  001034' 09350   PROC0:  HRRZI R,XEC1            ;MODIFIED TO ADDR OF BREAKPOINT\r
28413         001170' 260040  001404' 09360           PUSHJ P,FETCH\r
28414         001171' 254000  001246' 09370           JRST BPLUP1             ;ONLY GET HERE IF MEMORY SHRANK\r
28415         001172' 202240  001241' 09380           MOVEM T,LEAV\r
28416         001173' 260040  001274' 09390           PUSHJ P,INSRTB\r
28417         001174' 254000  001200' 09400           JRST PROC2\r
28418 \r
28419         001175' 200240  002274' 09420   PROC1:  MOVE T,AC0+T\r
28420         001176' 264000  002615' 09430           JSR SAVE\r
28421         001177' 255000  000000  09440           JFCL\r
28422         001200' 201200  000100  09450   PROC2:  MOVEI W,100\r
28423         001201' 202200  002314' 09460           MOVEM W,TEM1            ;SETUP MAX LOOP COUNT\r
28424         001202' 254000  001211' 09470           JRST IXCT5\r
28425 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 25\r
28426         OP DECODER\r
28427 \r
28428                                 09490   IXCT4:  IFE EDDT&1,<    SUBI T,041\r
28429                                 09500           JUMPE T,BPLUP\r
28430                                 09510           AOJGE T,IXCT6>                          ;DONT PROCEDE FOR INIT\r
28431                                 09520                                   ;DONT INTERPRET FOR SYSTEM UUOS\r
28432         001203' 202100  000040  09530           MOVEM R,40              ;INTERPRET FOR NON-SYSTEM UUOS\r
28433         001204' 201100  000041  09540           MOVEI R,41\r
28434         001205' 371000  002314' 09550   IXCT:   SOSL TEM1\r
28435         001206' 260040  001404' 09560           PUSHJ P,FETCH\r
28436         001207' 254000  001245' 09570           JRST BPLUP              ;BREAKPOINT LOOPING OR FETCH FAILED\r
28437         001210' 202240  001241' 09580           MOVEM T,LEAV\r
28438         001211'                 09590   IXCT5:  IFN EDDT&1,<\r
28439         001211' 135240  003443' 09600           LDB T,[POINT 9,LEAV,8]  ;GET INSTRUCTION\r
28440         001212' 306240  000254  09610           CAIN T,254              ;DON'T DO ANYTHING TO JRST IN EXEC MODE\r
28441         001213' 254000  001240' 09620           JRST IXCT6>\r
28442         001214' 515740  002267' 09630           HRLZI 17,AC0\r
28443         001215' 251740  000017  09640           BLT 17,17\r
28444         001216' 201260  001241' 09650           MOVEI T,@LEAV\r
28445         001217' 137240  003444' 09660           DPB T,[POINT 23,LEAV,35]        ;STORE EFFECTIVE ADDRESS\r
28446         001220' 135300  003445' 09670           LDB W1,[POINT 4,LEAV,12]        ;PICK UP AC FIELD\r
28447         001221' 135240  003443' 09680           LDB T,[POINT 9,LEAV,8]          ;PICK UP INSTRUCTION FIELD\r
28448         001222' 201040  003540' 09690           MOVEI P,PS\r
28449         001223' 306240  000260  09700           CAIN T,260\r
28450         001224' 254000  001251' 09710           JRST  IPUSHJ            ;INTERPRET PUSHJ\r
28451 \r
28452         001225' 306240  000264  09730           CAIN T,264\r
28453         001226' 254000  001261' 09740           JRST IJSR               ;INTERPRET JSR\r
28454         001227' 306240  000265  09750           CAIN T,265\r
28455         001230' 254000  001270' 09760           JRST IJSP               ;INTERPRET JSP\r
28456         001231' 306240  000266  09770           CAIN T,266\r
28457         001232' 254000  001255' 09780           JRST IJSA               ;INTERPRET JSA\r
28458         001233' 200100  001241' 09790           MOVE R,LEAV\r
28459         001234' 606240  000700  09800           TRNN T,700\r
28460         001235' 254000  001203' 09810           JRST IXCT4              ;INTERPRET UUO\r
28461         001236' 306240  000256  09820           CAIN T,256\r
28462         001237' 254000  001205' 09830           JRST IXCT               ;INTERPRET XCT\r
28463 \r
28464         001240' 265240  002637' 09850   IXCT6:  JSP T,RESTORE\r
28465         001241' 000000  000000  09860   LEAV:   0                       ;INSTRUCTION MODIFIED\r
28466         001242' 254020  001071' 09870           JRST @BCOM\r
28467         001243' 350000  001071' 09880           AOS BCOM\r
28468         001244' 254020  001071' 09890           JRST @BCOM\r
28469 \r
28470         001245' 260040  001307' 09910   BPLUP:  PUSHJ P,REMOVB          ;BREAKPOINT PROCEED ERROR\r
28471         001246' 264000  002615' 09920   BPLUP1: JSR SAVE\r
28472         001247' 255000  000000  09930           JFCL\r
28473         001250' 254000  000123' 09940           JRST ERR\r
28474 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 26\r
28475         OP DECODER\r
28476 \r
28477 \r
28478         001251' 137300  003446' 09970   IPUSHJ: DPB W1,[POINT 4,CPUSHP,12]      ;STORE AC FIELD INTO A PUSH\r
28479         001252' 402000  002210' 09980           CLEARM,TEM3\r
28480         001253' 200240  001241' 09990           MOVE T,LEAV\r
28481         001254' 254000  002640' 10000           JRST RESTR1\r
28482 \r
28483         001255' 200240  001071' 10020   IJSA:   MOVE T,BCOM             ;INTERPRET JSA\r
28484         001256' 504240  001241' 10030           HRL T,LEAV\r
28485         001257' 250246  002267' 10040           EXCH T,AC0(W1)\r
28486         001260' 254000  001263' 10050           JRST IJSR2\r
28487 \r
28488         001261' 200240  001071' 10070   IJSR:   MOVE T,BCOM             ;INTERPRET JSR\r
28489         001262' 500240  002231' 10080           HLL T,SAVPI\r
28490         001263' 200100  001241' 10090   IJSR2:  MOVE R,LEAV\r
28491         001264' 260040  001376' 10100           PUSHJ P,DEP\r
28492         001265' 354240  001241' 10110           AOSA T,LEAV\r
28493         001266' 200240  001241' 10120   IJSR3:  MOVE T,LEAV\r
28494         001267' 254000  002637' 10130           JRST RESTORE\r
28495 \r
28496         001270' 200200  001071' 10150   IJSP:   MOVE W,BCOM             ;INTERPRET JSP\r
28497         001271' 500240  002231' 10160           HLL T,SAVPI\r
28498         001272' 202206  002267' 10170           MOVEM W,AC0(W1)\r
28499         001273' 254000  001266' 10180           JRST IJSR3\r
28500 \r
28501                                 10200   ;INSERT BREAKPOINTS\r
28502 \r
28503         001274' 200140  003447' 10220   INSRTB: MOVE S,[JSR BP1]\r
28504         001275' 332103  001175  10230   INSRT1: SKIPE R,B1ADR-BP1(S)\r
28505         001276' 260040  001404' 10240           PUSHJ P,FETCH\r
28506         001277' 254000  001303' 10250           JRST INSRT3\r
28507         001300' 202243  000002  10260           MOVEM T,B1INS-BP1(S)\r
28508         001301' 200240  000003  10270           MOVE T,S\r
28509         001302' 260040  001376' 10280           PUSHJ P,DEP\r
28510         001303' 271140  000003  10290   INSRT3: ADDI S,3\r
28511         001304' 317140  003450' 10300           CAMG S,[JSR BPN]\r
28512         001305' 254000  001275' 10310           JRST INSRT1\r
28513         001306' 263040  000000  10320           POPJ P,\r
28514 \r
28515                                 10340   ;REMOVE BREAKPOINTS\r
28516 \r
28517         001307' 201140  002263' 10360   REMOVB: MOVEI S,BNADR\r
28518         001310' 200243  776605  10370   REMOV1: MOVE T,B1INS-B1ADR(S)\r
28519         001311' 332103  000000  10380           SKIPE R,(S)\r
28520         001312' 260040  001376' 10390           PUSHJ P,DEP\r
28521         001313' 275140  000003  10400   REMOV3: SUBI S,3\r
28522         001314' 301140  002236' 10410           CAIL S,B1ADR\r
28523         001315' 254000  001310' 10420           JRST REMOV1\r
28524         001316' 254000  002721' 10430           IFN EDDT&1,<JRST TTYRET>\r
28525                                 10440           IFE EDDT&1,<POPJ P,>\r
28526 \r
28527                                 10460   ;IN EXEC MODE, SAVE UP TTY STATUS\r
28528                                 10470   ;IN USER MODE, DONE BY SAVE\r
28529 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 27\r
28530         OP DECODER\r
28531 \r
28532 \r
28533                                 10500   ;ALL $B COMMANDS GET HERE IN FORM: <A>$<N>B\r
28534 \r
28535 \r
28536         001317' 623000  000001  10530   BPS:    TLZE F,QF               ;HAS <A> BEEN TYPED?\r
28537         001320' 254000  001327' 10540           JRST BPS1               ;YES\r
28538         001321' 622000  000001  10550           TRZE F,Q2F              ;NO, HAS <N> BEEN TYPED?\r
28539         001322' 254000  001333' 10560           JRST BPS2               ;YES\r
28540         001323' 200240  003451' 10570           MOVE T,[XWD B1ADR,B1ADR+1]      ;NO, COMMAND IS $B - CLEAR ALL BREAKPOINTS\r
28541         001324' 402000  002236' 10580           CLEARM B1ADR\r
28542         001325' 251240  002266' 10590           BLT T,AUTOPI            ;CLEAR OUT ALL BREAKPOINTS AND AUTO PROCEDE REGESTER\r
28543         001326' 254000  000134' 10600           JRST RET\r
28544 \r
28545         001327' 626000  000001  10620   BPS1:   TRZN F,Q2F              ;HAS <N> BEEN TYPED?\r
28546         001330' 254000  001345' 10630           JRST BPS3               ;NO\r
28547         001331' 200100  000005  10640           MOVE R,T                ;YES, PROCESS THE COMMAND A$NB\r
28548         001332' 660000  000002  10650           TRO F,2\r
28549         001333' 200240  002202' 10660   BPS2:   MOVE T,WRD2\r
28550         001334' 301240  000001  10670           CAIL T,1\r
28551         001335' 303240  000010  10680           CAILE T,NBP\r
28552         001336' 254000  000123' 10690           JRST ERR\r
28553         001337' 221240  000003  10700           IMULI T,3\r
28554         001340' 271240  002233' 10710           ADDI T,B1ADR-3\r
28555         001341' 626000  000002  10720           TRZN F,2\r
28556         001342' 254000  001615' 10730           JRST MASK2\r
28557         001343' 250100  000005  10740           EXCH R,T\r
28558         001344' 254000  001356' 10750           JRST BPS5\r
28559 \r
28560         001345' 201100  002236' 10770   BPS3:   MOVEI R,B1ADR           ;PROCESS THE COMMAND A$B\r
28561         001346' 550202  000000  10780   BPS4:   HRRZ W,(R)\r
28562         001347' 302205  000000  10790           CAIE W,(T)\r
28563         001350' 336002  000000  10800           SKIPN (R)\r
28564         001351' 254000  001356' 10810           JRST BPS5\r
28565         001352' 271100  000003  10820           ADDI R,3\r
28566         001353' 307100  002263' 10830           CAIG R,BNADR\r
28567         001354' 254000  001346' 10840           JRST BPS4\r
28568         001355' 254000  000123' 10850           JRST ERR\r
28569         001356' 202242  000000  10860   BPS5:   MOVEM T,(R)\r
28570         001357' 402002  000001  10870           CLEARM,1(R)\r
28571         001360' 402002  000002  10880           CLEARM,2(R)\r
28572 \r
28573         001361' 275100  002236' 10900   AUTOP:  SUBI R,B1ADR            ;AUTO PROCEDE SETUP SUBROUTINE\r
28574         001362' 231100  000003  10910           IDIVI R,3\r
28575         001363' 201140  000001  10920           MOVEI S,1\r
28576         001364' 242142  000000  10930           LSH S,(R)\r
28577         001365' 412140  002266' 10940           ANDCAM S,AUTOPI\r
28578         001366' 603000  010000  10950           TLNE F,CCF\r
28579         001367' 436140  002266' 10960           IORM S,AUTOPI\r
28580         001370' 263040  000000  10970           POPJ P,\r
28581 \r
28582 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 28\r
28583         OP DECODER\r
28584 \r
28585                                 11000   ;FETCH AND DEPOSIT INTO MEMORY\r
28586 \r
28587 \r
28588         001371' 202240  002206' 11030   DEPRS:  MOVEM T,LWT             ;DEPOSIT REGISTER AND SAVE AS LWT\r
28589         001372' 200100  002227' 11040   DEPR:   MOVE R,LLOCO    ;QUAN TYPED IN REGIS EXAM\r
28590         001373' 623000  000010  11050           TLZE F,ROF\r
28591         001374' 607000  000001  11060           TLNN F,QF\r
28592         001375' 263040  000000  11070           POPJ P,0\r
28593         001376' 606100  777760  11080   DEP:    TRNN R,777760\r
28594         001377' 254000  001402' 11090           JRST DEP1\r
28595                                 11100   IFE EDDT&1,<    HRRZ W,JOBREL\r
28596                                 11110           CAIL W,(R)>\r
28597 \r
28598         001400' 202242  000000  11130           MOVEM T,0(R)\r
28599         001401' 263040  000000  11140           POPJ P,0\r
28600         001402' 202242  002267' 11150   DEP1:   MOVEM T,AC0(R)\r
28601         001403' 263040  000000  11160           POPJ P,0\r
28602 \r
28603                                 11180   FETCH:  IFE EDDT&1,<HRRZ T,JOBREL\r
28604                                 11190           CAIGE T,(R)\r
28605                                 11200           POPJ P,>\r
28606         001404' 606100  777760  11210           TRNN R,777760\r
28607         001405' 334242  002267' 11220           SKIPA T,AC0(R)\r
28608         001406' 200242  000000  11230           MOVE T,(R)\r
28609         001407' 254000  000373' 11240           JRST CPOPJ1\r
28610 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 29\r
28611         OP DECODER\r
28612 \r
28613         001410' 202240  002224' 11260   FIRARG: MOVEM T,DEFV\r
28614         001411' 661000  001000  11270           TLO F,FAF\r
28615         001412' 254000  001415' 11280           JRST ULIM1\r
28616         001413' 661000  002000  11290   ULIM:   TLO F,SAF\r
28617         001414' 552240  002225' 11300           HRRZM T,ULIMIT\r
28618         001415' 607000  000001  11310   ULIM1:  TLNN F,QF\r
28619         001416' 254000  000123' 11320           JRST ERR\r
28620         001417' 254000  000020' 11330           JRST LIS0\r
28621 \r
28622 \r
28623         001420' 331100  002212' 11360   LOOK:   SKIPL R,PRGM    ;LOOK UP SYMBOL\r
28624         001421' 200120  002230' 11370           MOVE R,@SYMP\r
28625         001422' 574160  002230' 11380           HLRE S,@SYMP\r
28626         001423' 240140  777777  11390           ASH S,-1        ;SETUP COUNT FOR LENGTH OF SYM TABLE\r
28627         001424' 621000  400000  11400           TLZ F,400000\r
28628         001425' 515340  600000  11410           HRLZI W2,DELO+DELI\r
28629         001426' 202240  002313' 11420           MOVEM T,TEM\r
28630 \r
28631         001427' 612342  000000  11440   LOOK1:  TDNE W2,(R)\r
28632         001430' 254000  001452' 11450           JRST LOOK3\r
28633         001431' 200242  000000  11460           MOVE T,(R)\r
28634         001432' 607240  740000  11470           TLNN T,PNAME    ;NAME\r
28635         001433' 665340  100000  11480           TLOA W2,LOCAL\r
28636         001434' 334240  002313' 11490           SKIPA T,TEM\r
28637         001435' 254000  001452' 11500           JRST LOOK3\r
28638         001436' 200202  000001  11510           MOVE W,1(R)\r
28639         001437' 430200  000005  11520           XOR W,T\r
28640         001440' 321200  001452' 11530           JUMPL W,LOOK3\r
28641         001441' 274242  000001  11540           SUB T,1(R)\r
28642         001442' 321240  001452' 11550           JUMPL T,LOOK3\r
28643         001443' 325000  001447' 11560           JUMPGE F,LOOK2\r
28644         001444' 200202  000001  11570           MOVE W,1(R)\r
28645         001445' 274206  000001  11580           SUB W,1(W1)\r
28646         001446' 323200  001452' 11590           JUMPLE W,LOOK3\r
28647         001447' 540300  000002  11600   LOOK2:  HRR W1,R                ;POINTER BEST VALUE SO FAR\r
28648         001450' 661000  400000  11610           TLO F,400000\r
28649         001451' 322240  002027' 11620           JUMPE T,SPT0\r
28650         001452' 270100  003436' 11630   LOOK3:  ADD R,[XWD 2,2]\r
28651         001453' 331000  000002  11640           SKIPL R\r
28652         001454' 200120  002230' 11650           MOVE R, @SYMP\r
28653         001455' 343140  001427' 11660           AOJLE S,LOOK1   ;TERMINATING CONDITION\r
28654         001456' 200240  002313' 11670           MOVE T,TEM\r
28655         001457' 603000  400000  11680           TLNE F,400000\r
28656         001460' 274246  000001  11690           SUB T,1(W1)\r
28657         001461' 254000  000373' 11700           JRST CPOPJ1\r
28658 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 30\r
28659         OP DECODER\r
28660 \r
28661 \r
28662         001462' 202240  002206' 11730   CONSYM: MOVEM T,LWT\r
28663         001463' 606000  002000  11740   CONSM:  TRNN F,LF1\r
28664         001464' 254020  000010  11750   CONS1:  JRST @SCH               ;PIN OR FTOC\r
28665         001465' 602000  000400  11760           TRNE F,CF1\r
28666         001466' 254000  002003' 11770           JRST  FTOC\r
28667 \r
28668         001467'                 11790   PIN:                            ;PRINT INSTRUCTION\r
28669         001467' 641240  700000  11800           TLC T,700000\r
28670         001470' 647240  700000  11810           TLCN T,700000\r
28671         001471' 254000  001572' 11820           JRST INOUT              ;IN-OUT INSTRUCTION OR NEG NUM\r
28672         001472' 404240  003452' 11830           AND T,[XWD 777000,0]\r
28673         001473' 322240  001504' 11840           JUMPE T,PI3\r
28674         001474' 260040  003315' 11850           PUSHJ P,OPTYPE\r
28675         001475' 205240  777000  11860           MOVSI   T,777000\r
28676         001476' 404240  002206' 11870           AND     T,LWT\r
28677         001477' 606000  000002  11880           TRNN F,ITF              ;HAS INSTRUCTION BEEN TYPED?\r
28678         001500' 260040  001420' 11890           PUSHJ P,LOOK            ;NO, LOOK IN SYMBOL TABLE\r
28679         001501' 664000  000200  11900           TROA F,NAF              ;INSTRUCTION TYPED, ALOOW NEG ADDRESSES\r
28680         001502' 254000  001536' 11910           JRST HLFW               ;NOT FOUND, OUTPUT AS HALFWORDS\r
28681         001503' 260040  002664' 11920           PUSHJ P,TSPC\r
28682         001504' 135240  003453' 11930   PI3:    LDB T,[XWD 270400,LWT]  ;GET AC FIELD\r
28683         001505' 322240  001511' 11940           JUMPE T,PI4\r
28684         001506' 260040  001543' 11950           PUSHJ P,PAD\r
28685         001507' 201300  000054  11960   PI3A:   MOVEI W1,","\r
28686         001510' 260040  002171' 11970   PI3B:   PUSHJ P,TEXT\r
28687         001511' 200300  002206' 11980   PI4:    MOVE W1,LWT\r
28688         001512' 201240  000100  11990           MOVEI T,"@"\r
28689         001513' 603300  000020  12000           TLNE W1,20              ;CHECK FOR INDIRECT BIT\r
28690         001514' 260040  002676' 12010           PUSHJ P,TOUT\r
28691         001515' 550240  002206' 12020   PI5:    HRRZ T,LWT\r
28692         001516' 135300  003454' 12030           LDB W1,[XWD 331100,LWT] ;INSTRUCTION BITS\r
28693         001517' 301300  000240  12040           CAIL W1,240\r
28694         001520' 303300  000247  12050           CAILE W1,247\r
28695         001521' 254000  001534' 12060           JRST PI8\r
28696         001522' 260040  001564' 12070           PUSHJ P,PADS3A\r
28697         001523' 620000  000200  12080   PI7:    TRZ F,NAF       \r
28698         001524' 135100  003455' 12090           LDB R,[XWD 220400,LWT]  ;INDEX REGISTER CHECK\r
28699         001525' 322100  001547' 12100           JUMPE R,PADS1           ;EXIT\r
28700         001526' 201240  000050  12110           MOVEI T,"("\r
28701         001527' 260040  002676' 12120           PUSHJ P,TOUT\r
28702         001530' 200240  000002  12130           MOVE T,R\r
28703         001531' 260040  001543' 12140   PI7.1:  PUSHJ P,PAD\r
28704         001532' 201240  000051  12150           MOVEI T,")"\r
28705         001533' 254000  002676' 12160           JRST TOUT               ;EXIT\r
28706 \r
28707         001534' 260040  001543' 12180   PI8:    PUSHJ P,PAD\r
28708         001535' 254000  001523' 12190           JRST PI7\r
28709 \r
28710 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 31\r
28711         OP DECODER\r
28712 \r
28713 \r
28714         001536' 201240  000050  12230   HLFW:   MOVEI T,"("             ;PRINT AS HALF WORDS\r
28715         001537' 260040  002676' 12240           PUSHJ P,TOUT\r
28716         001540' 554240  002206' 12250           HLRZ T,LWT\r
28717         001541' 260040  001531' 12260           PUSHJ P,PI7.1\r
28718         001542' 550240  002206' 12270           HRRZ T,LWT\r
28719 \r
28720         001543' 405240  777777  12290   PAD:    ANDI T,777777           ;PRINT ADDRESS\r
28721         001544' 254020  000011  12300           JRST @AR                ;PADSO OR PAD1\r
28722         001545' 322240  002015' 12310   PADSO:  JUMPE T,TOC2+1\r
28723         001546' 260040  001420' 12320           PUSHJ P,LOOK\r
28724         001547' 263040  000000  12330   PADS1:  POPJ P,0\r
28725         001550' 200346  000001  12340           MOVE W2,1(W1)\r
28726         001551' 305240  000100  12350           CAIGE T,100\r
28727         001552' 305340  000060  12360           CAIGE W2,60\r
28728         001553' 254000  001563' 12370           JRST PADS3\r
28729         001554' 202240  002313' 12380           MOVEM T,TEM\r
28730         001555' 325000  001562' 12390           JUMPGE F,PAD1\r
28731         001556' 260040  002027' 12400           PUSHJ P,SPT0\r
28732         001557' 201240  000053  12410           MOVEI T,"+"\r
28733         001560' 260040  002676' 12420   PADS1A: PUSHJ P,TOUT\r
28734         001561' 550240  002313' 12430   PADS2:  HRRZ T,TEM\r
28735         001562' 254000  002003' 12440   PAD1:   JRST TOC                ;EXIT\r
28736 \r
28737         001563' 200240  002313' 12460   PADS3:  MOVE T,TEM\r
28738         001564' 602000  000200  12470   PADS3A: TRNE F,NAF\r
28739         001565' 305240  776000  12480           CAIGE T,776000\r
28740         001566' 254000  002003' 12490           JRST TOC\r
28741         001567' 212240  002313' 12500   PADS3B: MOVNM T,TEM\r
28742         001570' 201240  000055  12510   PADS4:  MOVEI T,"-"\r
28743         001571' 254000  001560' 12520           JRST PADS1A\r
28744 \r
28745         001572' 650240  003456' 12540   INOUT:  TDC T,[XWD -1,400000]   ;IO INSTRUCTION OR NEG NUM\r
28746         001573' 656240  003456' 12550           TDCN T,[XWD -1,400000]\r
28747         001574' 254000  001567' 12560           JRST PADS3B             ;TYPE AS NEG NUM\r
28748         001575' 135100  003457' 12570           LDB R,[POINT 3,T,12]\r
28749         001576' 137100  003460' 12580           DPB R,[POINT 6,T,8]     ;MOVE IO BITS OVER FOR OP DECODER\r
28750         001577' 260040  003315' 12590           PUSHJ P,OPTYPE\r
28751         001600' 260040  002664' 12600           PUSHJ P,TSPC\r
28752         001601' 205240  077400  12610           MOVSI T,077400\r
28753         001602' 404240  002206' 12620           AND T,LWT\r
28754         001603' 322240  001511' 12630           JUMPE T,PI4\r
28755         001604' 260040  001420' 12640           PUSHJ P,LOOK            ;LOOK FOR DEVICE NUMBER\r
28756         001605' 254000  001507' 12650           JRST PI3A\r
28757         001606' 200240  002313' 12660           MOVE T,TEM\r
28758         001607' 242240  777750  12670           LSH T,-30\r
28759         001610' 260040  002003' 12680           PUSHJ P,TOC\r
28760         001611' 254000  001507' 12690           JRST PI3A\r
28761 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 32\r
28762         OP DECODER\r
28763 \r
28764 \r
28765         001612' 603000  000001  12720   MASK:   TLNE F,QF\r
28766         001613' 254000  001620' 12730           JRST MASK1\r
28767         001614' 201240  002235' 12740           MOVEI T,MSK\r
28768         001615' 201200  000001  12750   MASK2:  MOVEI W,1\r
28769         001616' 202200  002210' 12760           MOVEM W,FRASE1\r
28770         001617' 254000  000340' 12770           JRST QUAN1\r
28771         001620' 202240  002235' 12780   MASK1:  MOVEM T,MSK\r
28772         001621' 254000  000134' 12790           JRST RET\r
28773 \r
28774         001622' 661000  000020  12810   EFFEC:  TLO F,LTF\r
28775         001623' 550240  000005  12820           HRRZ T,T\r
28776         001624' 201100  774000  12830   WORD:   MOVEI R,322000-326000   ;JUMPE-JUMPN\r
28777         001625' 271100  326240  12840   NWORD:  ADDI R,326000+40*T      ;JUMPN T,\r
28778         001626' 506100  001650' 12850           HRLM R,SEAR2\r
28779 \r
28780         001627' 627000  000001  12870   SEARC:  TLZN F,QF\r
28781         001630' 254000  000123' 12880           JRST ERR\r
28782         001631' 452240  002201' 12890           SETCAM T,WRD\r
28783         001632' 205240  777772  12900           MOVSI T,FRASE-DEN-1             ;PREVENT TYPE OUT OF DDT PARTS\r
28784         001633' 462005  002204' 12910           SETCMM FRASE(T)\r
28785         001634' 253240  001633' 12920           AOBJN T,.-1\r
28786         001635' 200240  002225' 12930           MOVE T,ULIMIT\r
28787         001636' 603000  002000  12940           TLNE F,SAF\r
28788         001637' 661000  000001  12950           TLO F,1\r
28789         001640' 260040  001723' 12960           PUSHJ P,SETUP1\r
28790         001641' 260040  002657' 12970           PUSHJ P,CRF\r
28791         001642' 260040  001404' 12980   SEAR1:  PUSHJ P,FETCH\r
28792         001643' 254000  001651' 12990           JRST SEAR2A\r
28793         001644' 603000  000020  13000           TLNE F,LTF      ;CHECK FOR EFFECTIVE ADDRESS SEARCH\r
28794         001645' 254000  001677' 13010           JRST EFFEC0\r
28795         001646' 444240  002201' 13020           EQV T,WRD\r
28796         001647' 404240  002235' 13030           AND T,MSK\r
28797         001650' 322240  001655' 13040   SEAR2:  JUMPE T,SEAR3           ;OR JUMPN T\r
28798         001651' 260040  002714' 13050   SEAR2A: PUSHJ P,LISTEN  ;QUIT ON TELETYPE\r
28799         001652' 253100  001642' 13060           AOBJN R,SEAR1\r
28800         001653' 462000  002206' 13070           SETCMM LWT\r
28801         001654' 254000  000007' 13080           JRST DD1\r
28802 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 33\r
28803         OP DECODER\r
28804 \r
28805         001655' 260040  001404' 13100   SEAR3:  PUSHJ P,FETCH\r
28806         001656' 254000  000123' 13110           JRST ERR\r
28807         001657' 202240  002206' 13120           MOVEM T,LWT\r
28808         001660' 202100  002207' 13130           MOVEM R,TEM2\r
28809         001661' 202100  000005  13140           MOVEM R,T\r
28810         001662' 552100  002226' 13150           HRRZM R,LLOC\r
28811         001663' 552100  002227' 13160           HRRZM R,LLOCO\r
28812         001664' 260040  001543' 13170           PUSHJ P,PAD\r
28813         001665' 201240  000057  13180           MOVEI T,"/"\r
28814         001666' 260040  002676' 13190           PUSHJ P,TOUT\r
28815         001667' 260040  002662' 13200           PUSHJ P,LCT\r
28816         001670' 200240  002206' 13210           MOVE T,LWT\r
28817         001671' 260040  001462' 13220           PUSHJ P,CONSYM\r
28818         001672' 260040  002657' 13230           PUSHJ P,CRF\r
28819         001673' 462000  002206' 13240           SETCMM LWT\r
28820         001674' 462000  002313' 13250           SETCMM TEM\r
28821         001675' 200100  002207' 13260   SEAR4:  MOVE R,TEM2\r
28822         001676' 254000  001651' 13270           JRST  SEAR2A\r
28823 \r
28824         001677' 202100  002207' 13290   EFFEC0: MOVEM R,TEM2\r
28825         001700' 201200  000100  13300           MOVEI W,100\r
28826         001701' 202200  002313' 13310           MOVEM W,TEM\r
28827         001702' 200200  000005  13320   EFFEC1: MOVE W,T\r
28828         001703' 135100  003461' 13330           LDB R,[POINT 4,T,17]    ;GET IR FIELD\r
28829         001704' 322100  001707' 13340           JUMPE R,EFFEC2\r
28830         001705' 550242  002267' 13350           HRRZ T,AC0(R)\r
28831         001706' 270240  000004  13360           ADD T,W\r
28832         001707' 540100  000005  13370   EFFEC2: HRR R,T\r
28833         001710' 607200  000020  13380           TLNN W,20               ;INDIRECT BIT CHECK\r
28834         001711' 254000  001716' 13390           JRST EFFEC3\r
28835         001712' 372000  002313' 13400           SOSE,TEM\r
28836         001713' 260040  001404' 13410           PUSHJ P,FETCH\r
28837         001714' 254000  001675' 13420           JRST SEAR4\r
28838         001715' 254000  001702' 13430           JRST EFFEC1\r
28839         001716' 200100  002207' 13440   EFFEC3: MOVE R,TEM2\r
28840         001717' 444240  002201' 13450           EQV T,WRD\r
28841         001720' 405240  777777  13460           ANDI T,777777\r
28842         001721' 254000  001650' 13470           JRST SEAR2\r
28843 \r
28844 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 34\r
28845         OP DECODER\r
28846 \r
28847 \r
28848         001722' 661000  000020  13510   SETUP:  TLO F,20                ;ZERO\r
28849         001723' 271240  000001  13520   SETUP1: ADDI T,1                ;YANK,VERIFY,SEARCHES\r
28850         001724' 607000  000001  13530           TLNN F,QF\r
28851         001725' 200260  002230' 13540   SETUP2: MOVE T,@SYMP\r
28852         001726' 550240  000005  13550           HRRZ T,T\r
28853         001727' 202240  002225' 13560           MOVEM T,ULIMIT\r
28854         001730' 550220  002230' 13570           HRRZ W,@SYMP\r
28855         001731' 315200  000005  13580           CAMGE W,T\r
28856         001732' 607000  000020  13590           TLNN F,20\r
28857                                 13600   IFE EDDT&1,<    CAML T,JOBREL>\r
28858         001733' 254000  001735' 13610   IFN EDDT&1,<    JRST .+2>\r
28859 \r
28860         001734' 254000  000123' 13630           JRST ERR\r
28861         001735' 550100  002224' 13640           HRRZ R,DEFV\r
28862         001736' 607000  001000  13650           TLNN F,FAF\r
28863         001737' 201100  000000  13660           MOVEI R,0\r
28864         001740' 311100  002225' 13670           CAML R,ULIMIT\r
28865         001741' 254000  000123' 13680           JRST ERR\r
28866         001742' 202100  002224' 13690           MOVEM R,DEFV\r
28867         001743' 200200  000002  13700           MOVE W,R\r
28868         001744' 274200  002225' 13710           SUB W,ULIMIT\r
28869         001745' 506200  000002  13720           HRLM W,R\r
28870         001746' 263040  000000  13730           POPJ P,0\r
28871 \r
28872         001747' 607000  010000  13750   ZERO:   TLNN F,CCF\r
28873         001750' 254000  000123' 13760           JRST ERR\r
28874         001751' 260040  001722' 13770           PUSHJ P,SETUP\r
28875         001752' 602100  777760  13780   ZERO1:  TRNE R,777760\r
28876         001753' 254000  001757' 13790           JRST ZERO2\r
28877         001754' 402002  002267' 13800           CLEARM,AC0(R)\r
28878         001755' 253100  001752' 13810           AOBJN R,ZERO1\r
28879         001756' 254000  000007' 13820           JRST DD1\r
28880         001757' 550100  000002  13830   ZERO2:  HRRZ R, R\r
28881         001760' 305100  000040  13840           CAIGE R,ZLOW\r
28882         001761' 201100  000040  13850           MOVEI R,ZLOW            ;DON'T ZERO 20-ZLOW\r
28883         001762' 550140  000005  13860           HRRZ S,T\r
28884         001763' 301140  000000' 13870           CAIL S, DDT\r
28885         001764' 201140  000000' 13880           MOVEI S, DDT \r
28886         001765' 313140  000002  13890           CAMLE S,R\r
28887         001766' 265200  001776' 13900           JSP W,ZEROR\r
28888         001767' 550100  000002  13910           HRRZ R,R\r
28889         001770' 307100  003610' 13920           CAIG R, DDTEND  ; DON'T ZERO OUT\r
28890         001771' 201100  003610' 13930           MOVEI R, DDTEND  ; DDT\r
28891         001772' 550140  000005  13940           HRRZ S,T\r
28892         001773' 313140  000002  13950           CAMLE S, R\r
28893         001774' 265200  001776' 13960           JSP W,ZEROR\r
28894         001775' 254000  000007' 13970           JRST DD1\r
28895 \r
28896         001776' 504100  000002  13990   ZEROR:  HRL R,R\r
28897         001777' 402002  000000  14000           CLEARM,(R)\r
28898         002000' 271100  000001  14010           ADDI  R, 1\r
28899         002001' 251103  777777  14020           BLT R, -1(S)\r
28900 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 34-1\r
28901         OP DECODER\r
28902 \r
28903         002002' 254004  000000  14030           JRST (W)\r
28904 \r
28905 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 35\r
28906         OP DECODER\r
28907 \r
28908 \r
28909         002003'                 14070   FTOC:           ;NUMERIC OUTPUT SUBROUTINE\r
28910         002003' 550300  000012  14080   TOC:    HRRZ W1,ODF\r
28911         002004' 306300  000012  14090           CAIN W1,12\r
28912         002005' 254000  002017' 14100           JRST  TOC4\r
28913         002006' 246240  777735  14110   TOCA:   LSHC T,-43\r
28914         002007' 242300  777777  14120           LSH W1,-1               ;W1=T+1\r
28915         002010' 235260  000012  14130   TOC1:   DIVI T,@ODF\r
28916         002011' 506301  000000  14140           HRLM W1,0(P)\r
28917         002012' 322240  002014' 14150   TOC3:   JUMPE T,TOC2\r
28918         002013' 260040  002006' 14160           PUSHJ P,TOCA\r
28919         002014' 554241  000000  14170   TOC2:   HLRZ T,0(P)\r
28920         002015' 271240  000060  14180           ADDI T,"0"\r
28921         002016' 254000  002676' 14190   CJTOUT: JRST TOUT       ;DOES POPJ TO TOC2 OR EXIT\r
28922 \r
28923         002017' 214300  000005  14210   TOC4:   MOVM W1,T\r
28924         002020' 325240  002023' 14220           JUMPGE T,TOC5\r
28925         002021' 201240  000055  14230           MOVEI T,"-"\r
28926         002022' 260040  002676' 14240           PUSHJ P,TOUT\r
28927         002023' 201240  000000  14250   TOC5:   MOVEI T,0\r
28928         002024' 260040  002010' 14260           PUSHJ P,TOC1\r
28929         002025' 201240  000056  14270   TOC6:   MOVEI T,"."\r
28930         002026' 254000  002676' 14280           JRST TOUT\r
28931 \r
28932                                 14300   ;SYMBOL OUTPUT SUBROUTINE\r
28933 \r
28934         002027' 552300  002223' 14320   SPT0:   HRRZM W1,SPSAV          ;SAVE POINTER TO TYPED SYM\r
28935         002030' 200240  002016' 14330   SPT:    MOVE T,CJTOUT           ;RADIX 50 SYMBOL PRINT\r
28936         002031' 202240  002050' 14340   SPT4:   MOVEM T,SPTX            ;SETUP OUTPUT DESTINATION\r
28937         002032' 135240  003462' 14350           LDB T,[POINT 32,0(W1),35]       ;GET SYMBOL\r
28938         002033' 231240  000050  14360   SPT1:   IDIVI T,50\r
28939         002034' 506301  000000  14370           HRLM W1,0(P)\r
28940         002035' 322240  002037' 14380           JUMPE T,SPT2\r
28941         002036' 260040  002033' 14390           PUSHJ P,SPT1\r
28942         002037' 554241  000000  14400   SPT2:   HLRZ T,0(P)\r
28943         002040' 322240  000374' 14410           JUMPE T,CPOPJ           ;FLUSH NULL CHARACTERS\r
28944         002041' 271240  000257  14420           ADDI T,260-1\r
28945         002042' 303240  000271  14430           CAILE T,271\r
28946         002043' 271240  000007  14440           ADDI T,301-272\r
28947         002044' 303240  000332  14450           CAILE T,332\r
28948         002045' 275240  000070  14460           SUBI T,334-244\r
28949         002046' 306240  000243  14470           CAIN T,243\r
28950         002047' 201240  000256  14480   SPT3:   MOVEI T,256\r
28951         002050' 000000  000000  14490   SPTX:   0               ;JRST TOUT, OR IDPB T,R FROM OPEVAL\r
28952         002051' 263040  000000  14500           POPJ P,\r
28953 \r
28954         002052' 201240  000002  14520   SYMD:   MOVEI T,DELO/200000     ;$D ;DELETE LAST SYM & PRINT NEW\r
28955         002053' 550100  002223' 14530           HRRZ R,SPSAV            ;PICK UP POINTER TO LAST SYM\r
28956         002054' 322100  000123' 14540           JUMPE R,ERR\r
28957         002055' 137240  003440' 14550           DPB T,[POINT 2,(R),1]   ;STORE SEMI-DELETE BITS IN SYMBOL\r
28958         002056' 200240  002206' 14560           MOVE T,LWT\r
28959         002057' 254000  001462' 14570           JRST CONSYM             ;PRINT OUT NEXT BEST SYMBOL\r
28960 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 36\r
28961         OP DECODER\r
28962 \r
28963 \r
28964                                 14600   ;FLOATING POINT OUTPUT\r
28965 \r
28966         002060' 200100  000005  14620   TFLOT:  MOVE A,T\r
28967         002061' 327100  002070' 14630           JUMPG A, TFLOT1\r
28968         002062' 322100  002100' 14640           JUMPE A,FP1A\r
28969         002063' 213000  000002  14650           MOVNS A\r
28970         002064' 201240  000055  14660           MOVEI T,"-"\r
28971         002065' 260040  002676' 14670           PUSHJ P,TOUT\r
28972         002066' 623100  400000  14680           TLZE A,400000\r
28973         002067' 254000  002100' 14690           JRST FP1A\r
28974         002070' 201240  000043  14700   TFLOT1: MOVEI T,"#"  ; IF UNNORMALIZED FLOATING \r
28975         002071' 607100  000400  14710           TLNN A, 400  ; POINT NUMBER, SO INDICATE \r
28976         002072' 260040  002676' 14720           PUSHJ P, TOUT ; WITH "#" BEFORE NUMBER\r
28977 \r
28978         002073' 201140  000000  14740   FP1:    MOVEI B,0\r
28979         002074' 315100  002162' 14750           CAMGE A,FT01\r
28980         002075' 254000  002120' 14760           JRST FP4\r
28981         002076' 311100  002150' 14770           CAML A,FT8\r
28982         002077' 344140  002120' 14780           AOJA B,FP4\r
28983         002100' 201200  000000  14790   FP1A:   MOVEI C,0\r
28984 \r
28985         002101' 225100  000400  14810   FP3:    MULI A,400\r
28986         002102' 244142  777535  14820           ASHC B,-243(A)\r
28987         002103' 200100  000003  14830           MOVE A,B\r
28988         002104' 402000  002314' 14840           CLEARM,TEM1\r
28989         002105' 260040  002135' 14850           PUSHJ P,FP7\r
28990         002106' 260040  002025' 14860           PUSHJ P,TOC6            ;PRINT DECIMAL POINT\r
28991         002107' 211100  000010  14870           MOVNI A,10\r
28992         002110' 270100  002314' 14880           ADD A,TEM1\r
28993         002111' 200300  000004  14890           MOVE W1,C\r
28994         002112' 200240  000006  14900   FP3A:   MOVE T,W1\r
28995         002113' 225240  000012  14910           MULI T,12\r
28996         002114' 260040  002144' 14920           PUSHJ P,FP7B\r
28997         002115' 332000  000006  14930           SKIPE,W1\r
28998         002116' 341100  002112' 14940           AOJL A,FP3A\r
28999         002117' 263040  000000  14950           POPJ P,\r
29000 \r
29001         002120' 211200  000006  14970   FP4:    MOVNI C,6\r
29002         002121' 201340  000000  14980           MOVEI W2,0\r
29003         002122' 240340  000001  14990   FP4A:   ASH W2,1\r
29004         002123' 256003  002163' 15000           XCT,FCP(B)\r
29005         002124' 254000  002127' 15010           JRST FP4B\r
29006         002125' 164123  002164' 15020           FMPR A,@FCP+1(B)\r
29007         002126' 435340  000001  15030           IORI W2,1\r
29008         002127' 346200  002122' 15040   FP4B:   AOJN C,FP4A\r
29009         002130' 261043  002166' 15050           PUSH P,FSGN(B)\r
29010         002131' 260040  002101' 15060           PUSHJ P,FP3\r
29011         002132' 262040  000006  15070           POP P,W1\r
29012         002133' 200100  000007  15080           MOVE A,W2\r
29013         002134' 260040  002171' 15090           PUSHJ P,TEXT\r
29014 \r
29015 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 37\r
29016         OP DECODER\r
29017 \r
29018         002135' 322100  002143' 15120   FP7:    JUMPE A,FP7A1\r
29019         002136' 231100  000012  15130           IDIVI A,12\r
29020         002137' 350000  002314' 15140           AOS,TEM1\r
29021         002140' 506141  000000  15150   FP7A:   HRLM B,(P)\r
29022         002141' 322100  002143' 15160           JUMPE A,FP7A1\r
29023         002142' 260040  002135' 15170           PUSHJ P,FP7\r
29024 \r
29025         002143' 554241  000000  15190   FP7A1:  HLRZ T,(P)\r
29026         002144' 271240  000260  15200   FP7B:   ADDI T,260\r
29027         002145' 254000  002676' 15210           JRST TOUT\r
29028 \r
29029         002146' 353473  426555  15230           353473426555    ;1.0E32\r
29030         002147' 266434  157116  15240           266434157116    ;1.0E16\r
29031         002150' 233575  360400  15250   FT8:    233575360400    ;1.0E8\r
29032         002151' 216470  400000  15260           216470400000    ;1.0E4\r
29033         002152' 207620  000000  15270           207620000000    ;1.0E2\r
29034         002153' 204500  000000  15280           204500000000    ;1.0E1\r
29035         002154' 201400  000000  15290   FT:     201400000000    ;1.0E0\r
29036         002155' 026637  304365  15300           026637304365    ;1.0E-32\r
29037         002156' 113715  126246  15310           113715126246    ;1.0E-16\r
29038         002157' 146527  461671  15320           146527461671    ;1.0E-8\r
29039         002160' 163643  334273  15330           163643334273    ;1.0E-4\r
29040         002161' 172507  534122  15340           172507534122    ;1.0E-2\r
29041         002162' 175631  463146  15350   FT01:   175631463146    ;1.0E-1\r
29042                         002163' 15360   FT0=FT01+1\r
29043 \r
29044         002163' 313104  002163' 15380   FCP:    CAMLE A, FT0(C)\r
29045         002164' 315104  002154' 15390           CAMGE A, FT(C)\r
29046         002165' 000004  002163' 15400           Z FT0(C)\r
29047 \r
29048         002166' 425320  000000  15420   FSGN:   ASCII .E-.\r
29049         002167' 425260  000000  15430           ASCII .E+.\r
29050 \r
29051         002170' 200300  000005  15450   TEXTT:  MOVE W1,T\r
29052         002171' 607300  774000  15460   TEXT:   TLNN W1,774000          ;LEFT JUSTIFIED UNLESS LEFT CHAR IS NULL\r
29053         002172' 242300  000035  15470           LSH W1,35\r
29054         002173' 201240  000000  15480   TEXT2:  MOVEI T,                ;7 BIT ASCII TEXT OUTPUT SUBROUTINE0\r
29055         002174' 246240  000007  15490           LSHC T,7\r
29056         002175' 260040  002676' 15500           PUSHJ P,TOUT\r
29057         002176' 326300  002173' 15510           JUMPN W1,TEXT2\r
29058         002177' 263040  000000  15520           POPJ P,\r
29059 \r
29060 \r
29061 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 38\r
29062         OP DECODER\r
29063 \r
29064 \r
29065         002200' 777662  777661' 15570   KILC:   XWD -NSYMS,LOW\r
29066 \r
29067         002201' 000000  000000  15590   WRD:    0\r
29068         002202' 000000  000000  15600   WRD2:   0\r
29069         002203' 000000  000000  15610   PRNC:   0\r
29070 \r
29071         002204' 000000  000000  15630   FRASE:  0       ;DONT CHANGE ORDER, SEE  SEARC+3\r
29072         002205' 000000  000000  15640   SYL:    0\r
29073         002206' 000000  000000  15650   LWT:    0\r
29074         002207' 000000  000000  15660   TEM2:   0\r
29075         002210'                 15670   FRASE1:\r
29076         002210' 000000  000000  15680   TEM3:   0\r
29077         002211' 000000  000000  15690   DEN:    0\r
29078 \r
29079         002212' 000000  000000  15710   PRGM:   0\r
29080         002213' 000000  000000  15720   ESTU:   0\r
29081         002214' 000000  000000  15730   ESTUT:  0\r
29082         002215' 000000  000000  15740   FSV:    0\r
29083         002216' 000000  000000  15750   FRACT:  0\r
29084         002217' 000000  000000  15760   FPWR:   0\r
29085         002220' 000000  000000  15770   FTERM:  0\r
29086         002221' 000000  000000  15780   FH:     0\r
29087         002222' 000000  000000  15790   SYM:    0\r
29088         002223' 000000  000000  15800   SPSAV:  0       ;POINTER TO LAST SYMBOL TYPED\r
29089         002224' 000000  000000  15810   DEFV:   0\r
29090         002225' 000000  000000  15820   ULIMIT: 0\r
29091         002226' 000000  000000  15830   LLOC:   0\r
29092         002227' 000000  000000  15840   LLOCO:  0\r
29093         002230' 000000  000036  15850   SYMP:   XWD PID,JOBSYM\r
29094 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 39\r
29095         OP DECODER\r
29096 \r
29097 \r
29098         002231' 000000  000000  15880   SAVPI:  0\r
29099         002232' 000000  001177  15890           1177\r
29100         002233' 000000  000000  15900   SAVTTY: 0\r
29101         002234' 000000  000000  15910   IFN EDDT&1,<STARTA:     0>      ;START ADR FROM PTR\r
29102         002235' 777777  777777  15920   MSK:    XWD -1,-1\r
29103         002236' 000000  000000  15930   B1ADR:  0\r
29104         002237' 000000  000000  15940   B1SKP:  0\r
29105         002240' 000000  000000  15950   B1CNT:  0\r
29106 \r
29107                                 15970   REPEAT NBP*3-3, <       0>\r
29108         002241' 000000  000000                  0\r
29109         002242' 000000  000000                  0\r
29110         002243' 000000  000000                  0\r
29111         002244' 000000  000000                  0\r
29112         002245' 000000  000000                  0\r
29113         002246' 000000  000000                  0\r
29114         002247' 000000  000000                  0\r
29115         002250' 000000  000000                  0\r
29116         002251' 000000  000000                  0\r
29117         002252' 000000  000000                  0\r
29118         002253' 000000  000000                  0\r
29119         002254' 000000  000000                  0\r
29120         002255' 000000  000000                  0\r
29121         002256' 000000  000000                  0\r
29122         002257' 000000  000000                  0\r
29123         002260' 000000  000000                  0\r
29124         002261' 000000  000000                  0\r
29125         002262' 000000  000000                  0\r
29126         002263' 000000  000000                  0\r
29127         002264' 000000  000000                  0\r
29128         002265' 000000  000000                  0\r
29129                         002263' 15990   BNADR=.-3\r
29130         002266' 000000  000000  16000   AUTOPI: 0\r
29131 \r
29132         002267'                 16020   AC0:    BLOCK 17\r
29133 \r
29134         002306' 000000  000000  16040   AC17:   0\r
29135 \r
29136         002307' 000000  001467' 16060   SCHM:   EXP PIN         ;DO NOT CHANGE ORDER\r
29137         002310' 000000  001545' 16070   ARM:    EXP PADSO\r
29138         002311' 000000  000010  16080   ODFM:   EXP 10\r
29139 \r
29140         002312' 000000  000000  16100   SARS:   0\r
29141         002313' 000000  000000  16110   TEM:    0\r
29142         002314' 000000  000000  16120   TEM1:   0\r
29143 \r
29144 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 40\r
29145         OP DECODER\r
29146 \r
29147 \r
29148                                 16160   IFN EDDT&1&<EDDT>B36,<\r
29149 \r
29150 \r
29151         002315' 607000  000010  16190   PSR:    TLNN F,ROF\r
29152         002316' 254000  000123' 16200           JRST ERR\r
29153         002317' 202240  002206' 16210           MOVEM T,LWT\r
29154         002320' 260040  001371' 16220           PUSHJ P,DEPRS\r
29155         002321' 552100  002224' 16230           HRRZM R,DEFV            ;R CONTAINS LLOCO\r
29156         002322' 200240  000002  16240           MOVE T,R\r
29157         002323' 254000  002327' 16250           JRST PUN2\r
29158 \r
29159         002324' 641000  001001  16270   PUNCH:  TLC F,FAF+QF\r
29160         002325' 643000  001001  16280           TLCE F,FAF+QF\r
29161         002326' 254000  000123' 16290           JRST ERR                ;ONE ARGUMENT MISSING\r
29162         002327' 271240  000001  16300   PUN2:   ADDI T,1\r
29163         002330' 552240  002314' 16310           HRRZM T,TEM1\r
29164         002331' 274240  002224' 16320           SUB T,DEFV\r
29165         002332' 323240  000123' 16330           JUMPLE T,ERR\r
29166 \r
29167         002333' 201240  000004  16350   PUN1:   MOVEI T,4               ;PUNCH 4 FEED HOLES\r
29168         002334' 260040  002450' 16360           PUSHJ P,FEED\r
29169         002335' 603000  000040  16370           TLNE F,CF               ;PUNCH NON-ZERO BLOCKS?\r
29170         002336' 254000  002365' 16380           JRST PUNZ               ;YES\r
29171         002337' 550100  002224' 16390           HRRZ R,DEFV\r
29172         002340' 435100  000037  16400           IORI R,37\r
29173         002341' 271100  000001  16410           ADDI R,1\r
29174         002342' 313100  002314' 16420           CAMLE R,TEM1\r
29175         002343' 200100  002314' 16430           MOVE R,TEM1\r
29176         002344' 250100  002224' 16440           EXCH R,DEFV\r
29177         002345' 200240  000002  16450           MOVE T,R\r
29178         002346' 274240  002224' 16460           SUB T,DEFV\r
29179         002347' 504100  000005  16470           HRL R,T\r
29180         002350' 325100  000134' 16480           JUMPGE R,RET            ;EXIT OR PUNCH\r
29181 \r
29182         002351' 200240  000002  16500   PBLK:   MOVE T,R\r
29183         002352' 370200  000005  16510           SOS W,T         ;INIT CHECKSUM\r
29184         002353' 260040  002440' 16520           PUSHJ P,PWRD\r
29185         002354' 260040  001404' 16530   PBLK1:  PUSHJ P,FETCH\r
29186         002355' 254000  000123' 16540           JRST ERR\r
29187         002356' 270200  000005  16550           ADD W,T\r
29188         002357' 260040  002440' 16560           PUSHJ P,PWRD\r
29189         002360' 253100  002354' 16570           AOBJN R,PBLK1\r
29190         002361' 200240  000004  16580           MOVE T,W\r
29191         002362' 260040  002440' 16590           PUSHJ P,PWRD\r
29192         002363' 254000  002333' 16600           JRST PUN1\r
29193 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 41\r
29194         OP DECODER\r
29195 \r
29196 \r
29197                                 16630   ;PUNCH NON-ZERO BLOCKS\r
29198 \r
29199         002364' 350000  002224' 16650   PUNZ0:  AOS DEFV                ;LOOK AT NEXT WORD\r
29200         002365' 550200  002224' 16660   PUNZ:   HRRZ W,DEFV             ;ENTER HERE - GET STARTING ADDRESS\r
29201         002366' 200100  000004  16670           MOVE R,W\r
29202         002367' 274200  002314' 16680           SUB W,TEM1              ;CALCULATE NEGATIVE LENGTH\r
29203         002370' 504100  000004  16690           HRL R,W                 ;SET UP AOBJN POINTER\r
29204         002371' 325100  000134' 16700           JUMPGE R,RET            ;FINISHED?\r
29205         002372' 317100  003463' 16710           CAMG R,[XWD -40,0]      ;BLOCK LONGER THAN 40?\r
29206         002373' 505100  777740  16720           HRLI R,-40              ;YES, FIX IT UP\r
29207         002374' 205300  400000  16730           MOVSI W1,400000         ;W1 NEGATIVE MEANS FLUSH 0 WORDS\r
29208         002375' 260040  001404' 16740   PUNZ2:  PUSHJ P,FETCH           ;GET WORD FROM MEMORY\r
29209         002376' 254000  000123' 16750           JRST ERR\r
29210         002377' 322240  003464' 16760           JUMPE T,[AOJA W1,PUNZ4] ;IF WORD IS 0, INDEX 0 WORD COUNTER\r
29211         002400' 201300  000000  16770           MOVEI W1,0              ;CLEAR 0 WORD COUNTER\r
29212         002401' 321300  002364' 16780   PUNZ4:  JUMPL W1,PUNZ0          ;FLUSH 0 WORD, GET ANOTHER\r
29213         002402' 301300  000003  16790           CAIL W1,3               ; NOSKIP FOR 3RD 0 WORD AFTER NON 0 WORD\r
29214         002403' 354000  000002  16800           AOSA R                  ;ADVANCE R TO LAST ADR+1\r
29215         002404' 253100  002375' 16810           AOBJN R,PUNZ2\r
29216         002405' 270300  002224' 16820           ADD W1,DEFV             ;CALCULATE DEFV-R+W1=-WORD COUNT\r
29217         002406' 274300  000002  16830           SUB W1,R\r
29218         002407' 506300  002224' 16840           HRLM W1,DEFV            ;PUT -WC IN LEFT HALF OF FA\r
29219         002410' 250100  002224' 16850           EXCH R,DEFV             ;SAVE ADR FOR NEXT BLOCK, GET POINTER\r
29220         002411' 254000  002351' 16860           JRST PBLK\r
29221 \r
29222                                 16880   >\r
29223 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 42\r
29224         OP DECODER\r
29225 \r
29226                                 16900   IFN EDDT&1&<EDDT>B36,<\r
29227 \r
29228 \r
29229         002412' 603000  000001  16930   LOADER: TLNE F,QF\r
29230         002413' 254000  000123' 16940           JRST ERR\r
29231         002414' 201240  000400  16950           MOVEI T,400\r
29232         002415' 260040  002450' 16960           PUSHJ P,FEED\r
29233         002416' 200100  002614' 16970           MOVE R,LOADE\r
29234         002417' 200242  000000  16980   LOAD1:  MOVE T,0(R)\r
29235         002420' 260040  002440' 16990           PUSHJ P,PWRD\r
29236         002421' 253100  002417' 17000           AOBJN R,LOAD1\r
29237         002422' 201240  000100  17010           MOVEI T,100\r
29238         002423' 260040  002450' 17020   LOAD2:  PUSHJ P,FEED\r
29239         002424' 254000  000134' 17030           JRST RET\r
29240 \r
29241         002425' 607000  000001  17050   BLKEND: TLNN F,QF               ;BLOCK END\r
29242         002426' 200240  003465' 17060           MOVE T,[JRST 4,DDT]\r
29243         002427' 661240  254000  17070           TLO T,254000            ;JRST\r
29244         002430' 261040  000005  17080           PUSH P,T\r
29245         002431' 201240  000100  17090           MOVEI T,100\r
29246         002432' 260040  002450' 17100           PUSHJ P,FEED\r
29247         002433' 262040  000005  17110           POP P,T\r
29248         002434' 260040  002440' 17120           PUSHJ P,PWRD\r
29249         002435' 260040  002440' 17130           PUSHJ P,PWRD    ;EXTRA WORD FOR READER TO STOP ON\r
29250         002436' 201240  000500  17140           MOVEI T,500\r
29251         002437' 254000  002423' 17150           JRST LOAD2\r
29252 \r
29253         002440' 201300  000006  17170   PWRD:   MOVEI W1,6\r
29254         002441' 241240  000006  17180   PWRD2:  ROT T,6\r
29255         002442' 710300  000020  17190           CONSZ PTPP,20\r
29256         002443' 254000  002442' 17200           JRST .-1\r
29257         002444' 710200  000050  17210           CONO PTPP,50\r
29258         002445' 710140  000005  17220           DATAO PTPP,T\r
29259         002446' 367300  002441' 17230           SOJG W1,PWRD2\r
29260         002447' 263040  000000  17240           POPJ P,0\r
29261 \r
29262         002450' 710300  000020  17260   FEED:   CONSZ PTPP,20\r
29263         002451' 254000  002450' 17270           JRST .-1\r
29264         002452' 710200  000010  17280           CONO PTPP,10\r
29265         002453' 710140  002455' 17290           DATAO PTPP,FEED1\r
29266         002454' 366240  002450' 17300           SOJN T,FEED\r
29267         002455' 263040  000000  17310   FEED1:  POPJ P,0        ;ADDRESS USED AS A CONSTANT\r
29268 \r
29269                                 17330   >\r
29270 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 43\r
29271         OP DECODER\r
29272 \r
29273                                 17350   IFN EDDT&1&<EDDT>B36,<\r
29274 \r
29275 \r
29276         002456' 661000  000020  17380   VERIFY: TLO F,LTF\r
29277         002457' 260040  001723' 17390   CORE:   PUSHJ P,SETUP1          ;LOAD TAPES INTO CORE\r
29278         002460' 710600  000060  17400           CONO PTRR,60\r
29279         002461' 710740  000010  17410   CORE1:  CONSO PTRR,10\r
29280         002462' 254000  002461' 17420           JRST .-1\r
29281         002463' 710440  000005  17430           DATAI PTRR,T\r
29282         002464' 312240  002613' 17440           CAME T,LOADE-1          ;JRST 1\r
29283         002465' 254000  002461' 17450           JRST CORE1\r
29284         002466' 260040  002657' 17460           PUSHJ P,CRF\r
29285         002467' 260040  002540' 17470           PUSHJ P,BLOCK\r
29286 \r
29287         002470' 260040  002532' 17490   CORE2:  PUSHJ P,GETW\r
29288         002471' 311100  002224' 17500           CAML R,DEFV\r
29289         002472' 311100  002225' 17510           CAML R,ULIMIT\r
29290         002473' 254000  002526' 17520           JRST VER3\r
29291         002474' 603000  000020  17530           TLNE F,LTF\r
29292         002475' 254000  002500' 17540           JRST VER2\r
29293         002476' 260040  001376' 17550           PUSHJ P,DEP\r
29294         002477' 254000  002526' 17560           JRST VER3\r
29295 \r
29296         002500' 202240  002207' 17580   VER2:   MOVEM T,TEM2\r
29297         002501' 260040  001404' 17590           PUSHJ P,FETCH\r
29298         002502' 254000  000123' 17600           JRST ERR\r
29299         002503' 202240  002210' 17610           MOVEM T,TEM3\r
29300         002504' 430240  002207' 17620           XOR T,TEM2\r
29301         002505' 404240  002235' 17630           AND T,MSK\r
29302         002506' 322240  002526' 17640           JUMPE T,VER3\r
29303         002507' 261040  000003  17650           PUSH P,S\r
29304         002510' 261040  000002  17660           PUSH P,R\r
29305         002511' 550240  000002  17670           HRRZ T,R\r
29306         002512' 260040  001543' 17680           PUSHJ P,PAD\r
29307         002513' 201240  000257  17690           MOVEI T,257             ;SLASH\r
29308         002514' 260040  002676' 17700           PUSHJ P,TOUT\r
29309         002515' 260040  002662' 17710           PUSHJ P,LCT\r
29310         002516' 200240  002210' 17720           MOVE T,TEM3             ;CORE CONTENTS\r
29311         002517' 260040  001462' 17730           PUSHJ P,CONSYM\r
29312         002520' 260040  002662' 17740           PUSHJ P,LCT\r
29313         002521' 200240  002207' 17750           MOVE T,TEM2             ;TAPE CONTENTS\r
29314         002522' 260040  001462' 17760           PUSHJ P,CONSYM\r
29315         002523' 260040  002657' 17770           PUSHJ P,CRF\r
29316         002524' 262040  000002  17780           POP P,R\r
29317         002525' 262040  000003  17790           POP P,S\r
29318         002526' 260040  002714' 17800   VER3:   PUSHJ P,LISTEN\r
29319         002527' 344100  002470' 17810           AOJA R,CORE2\r
29320         002530' 260040  002540' 17820   RUNEND: PUSHJ P,BLOCK\r
29321         002531' 254000  002530' 17830           JRST .-1\r
29322 \r
29323 \r
29324                                 17860   >\r
29325 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 44\r
29326         OP DECODER\r
29327 \r
29328                                 17880   IFN EDDT&1&<EDDT>B36,<\r
29329 \r
29330 \r
29331 \r
29332         002532' 321140  002534' 17920   GETW:   JUMPL S,GETW1\r
29333         002533' 260040  002540' 17930           PUSHJ P,BLOCK\r
29334         002534' 200243  000001  17940   GETW1:  MOVE T,1(S)\r
29335         002535' 252140  002536' 17950           AOBJP S,.+1\r
29336         002536' 263040  000000  17960           POPJ P,0\r
29337 \r
29338         002537' 710600  000060  17980   BLOCKS: CONO PTRR,60            ;READ DATA BLOCKS\r
29339         002540' 710740  000010  17990   BLOCK:  CONSO PTRR,10\r
29340         002541' 254000  002540' 18000           JRST .-1\r
29341         002542' 710440  000004  18010           DATAI PTRR,W\r
29342         002543' 321200  002547' 18020           JUMPL W,BLK1\r
29343         002544' 202200  002234' 18030           MOVEM W,STARTA\r
29344         002545' 710600  000000  18040           CONO PTRR,0             ;TURN OFF READER\r
29345         002546' 254000  000007' 18050           JRST DD1\r
29346         002547' 202200  000006  18060   BLK1:   MOVEM W,W1              ;INIT CHECKSUM\r
29347         002550' 641200  777740  18070           TLC W,777740\r
29348         002551' 643200  777740  18080           TLCE W,777740\r
29349         002552' 254000  000123' 18090           JRST ERR                ;BLOCK TOO BIG\r
29350         002553' 271200  000001  18100           ADDI W,1\r
29351         002554' 552200  000002  18110           HRRZM W,R\r
29352         002555' 541200  003477' 18120           HRRI W,BUFF-1\r
29353         002556' 202200  000003  18130           MOVEM W,S\r
29354         002557' 710740  000010  18140   BLK2:   CONSO PTRR,10\r
29355         002560' 254000  002557' 18150           JRST .-1\r
29356         002561' 710400  000004  18160           BLKI PTRR,W\r
29357         002562' 254000  002565' 18170           JRST BLK3\r
29358         002563' 270304  000000  18180           ADD W1,0(W)\r
29359         002564' 254000  002557' 18190           JRST BLK2\r
29360         002565' 270304  000000  18200   BLK3:   ADD W1,0(W)\r
29361         002566' 710740  000010  18210           CONSO PTRR,10\r
29362         002567' 254000  002566' 18220           JRST .-1\r
29363         002570' 710440  000004  18230           DATAI PTRR,W\r
29364         002571' 316200  000006  18240           CAMN W,W1\r
29365         002572' 263040  000000  18250           POPJ P,0\r
29366         002573' 710600  000000  18260           CONO PTRR,0             ;CHECKSUM ERROR\r
29367         002574' 254200  002537' 18270           JRST 4,BLOCKS\r
29368 \r
29369                                 18290   ;R CONTAINS RIGHT HALF OF FIRST LINE\r
29370                                 18300   ;S CONTAINS (-WC,BUFF-1)\r
29371 \r
29372 \r
29373                                 18330   >\r
29374 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 45\r
29375         OP DECODER\r
29376 \r
29377                                 18350   IFN EDDT&1&<EDDT>B36,<\r
29378 \r
29379 \r
29380         002575'                 18380   LOADB:\r
29381 \r
29382         000000                  18400   PHASE 0                 ;RIM10B CHECKSUM LOADER\r
29383         002575' 777762  000000  18410           XWD -16,0\r
29384         002576' 710600  000060  18420   BEG:    CONO PTRR,60\r
29385         002577' 541400  000004  18430           HRRI AA,RD+1\r
29386         002600' 710740  000010  18440   RD:     CONSO PTRR,10\r
29387         002601' 254000  000003  18450           JRST .-1\r
29388         002602' 710470  000007  18460           DATAI PTRR,@TBL1-RD+1(AA)\r
29389         002603' 256010  000007  18470           XCT     TBL1-RD+1(AA)\r
29390         002604' 256010  000012  18480           XCT     TBL2-RD+1(AA)\r
29391         002605' 364400  000000  18490   AA:     SOJA AA,\r
29392 \r
29393         002606' 312740  000016  18510   TBL1:   CAME CKSM,ADR\r
29394         002607' 270756  000001  18520           ADD CKSM,1(ADR)\r
29395         002610' 331740  000016  18530           SKIPL CKSM,ADR\r
29396 \r
29397         002611' 254200  000001  18550   TBL2:   JRST 4,BEG\r
29398         002612' 253700  000003  18560           AOBJN ADR,RD\r
29399         002613' 254000  000002  18570   ADR:    JRST BEG+1\r
29400                         000017  18580   CKSM=ADR+1\r
29401 \r
29402         002614'                 18600   DEPHASE\r
29403 \r
29404         002614' 777761  002575' 18620   LOADE:  XWD LOADB-.,LOADB\r
29405                                 18630   >\r
29406 \r
29407 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 46\r
29408         OP DECODER\r
29409 \r
29410 \r
29411 \r
29412         002615' 000000  000000  18680   SAVE:   0               ;SAVE THE ACS AND PI SYSTEM\r
29413         002616' 336000  002312' 18690           SKIPN SARS\r
29414         002617' 254000  002622' 18700           JRST SAV1\r
29415         002620' 350000  002615' 18710           AOS SAVE\r
29416         002621' 254000  002631' 18720           JRST SAV5\r
29417         002622'                 18730   SAV1:   IFN EDDT&1,<\r
29418         002622' 700640  002231' 18740           CONI PRS,SAVPI\r
29419         002623' 700620  002232' 18750           CONO PRS, @SAVPI+1>\r
29420         002624' 202740  002306' 18760           MOVEM 17,AC17\r
29421         002625' 551740  002267' 18770           HRRZI 17,AC0\r
29422         002626' 251740  002305' 18780           BLT 17,AC0+16\r
29423         002627' 200240  002615' 18790           MOVE T, SAVE\r
29424         002630' 502240  002231' 18800           HLLM T, SAVPI\r
29425         002631' 476000  002312' 18810   SAV5:   SETOM,SARS\r
29426         002632' 201040  003540' 18820           MOVEI P,PS\r
29427                                 18830           IFE EDDT&1,<PUSHJ P,TTYRET>     ;IN USER MODE, GET INTO DDT MODE\r
29428         002633' 201000  000000  18840           MOVEI F,0\r
29429         002634' 200240  003432' 18850           MOVE T,[XWD SCHM,SCH]\r
29430         002635' 251240  000012  18860           BLT T,ODF               ;LOAD THE ACS WITH MODE SWITCHES\r
29431         002636' 254020  002615' 18870           JRST @SAVE\r
29432 \r
29433         002637' 476000  002210' 18890   RESTORE: SETOM TEM3     ;RESTORE ACS AND PI SYSTEM\r
29434         002640' 542240  002615' 18900   RESTR1: HRRM T,SAVE\r
29435         002641' 200240  002231' 18910           MOVE T,SAVPI\r
29436         002642' 502240  002615' 18920           HLLM T, SAVE\r
29437                                 18930   IFN EDDT&1,<\r
29438         002643' 404240  002232' 18940           AND T, SAVPI+1\r
29439         002644' 435240  002000  18950           IORI T, 2000    ;TURN ON CHANNELS\r
29440         002645' 202240  002231' 18960           MOVEM T, SAVPI>\r
29441         002646' 515740  002267' 18970   RES1:   HRLZI 17,AC0\r
29442         002647' 251740  000017  18980           BLT 17,17\r
29443         002650' 402000  002312' 18990           SETZM SARS\r
29444         002651' 331000  002210' 19000           SKIPL,TEM3\r
29445         002652' 261000  001071' 19010   CPUSHP: PUSH BCOM       ;PROGRAM MODIFIED AT IPUSHJ\r
29446         002653' 700620  002231' 19020   IFN EDDT&1,<    CONO PRS,@SAVPI>\r
29447         002654' 254120  002615' 19030           JRST 2,@SAVE\r
29448 \r
29449 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 47\r
29450         OP DECODER\r
29451 \r
29452 \r
29453         002655' 201240  000015  19070   CRN:    MOVEI T,15              ;CARRIAGE RETURN\r
29454         002656' 254000  002676' 19080           JRST TOUT\r
29455 \r
29456                                 19100   IFE EDDT&1,<\r
29457                                 19110   CRNRB:  PUSHJ P,CRN\r
29458                                 19120           MOVEI T,177\r
29459                                 19130           JRST TOUT>\r
29460 \r
29461         002657' 260040  002655' 19150   CRF:    PUSHJ P,CRN\r
29462         002660' 201240  000012  19160   LF:     MOVEI T,12              ;LINE FEED\r
29463         002661' 254000  002676' 19170           JRST TOUT\r
29464 \r
29465         002662' 260040  002664' 19190   LCT:    IFN EDDT&1,<PUSHJ P,TSPC\r
29466         002663' 260040  002664' 19200           PUSHJ P,TSPC>\r
29467                                 19210           IFE EDDT&1,<MOVEI T,11\r
29468                                 19220           JRST TOUT>              ;TYPE A TAB\r
29469 \r
29470         002664' 201240  000040  19240   TSPC:   MOVEI T,40              ;SPACE\r
29471         002665' 254000  002676' 19250           JRST TOUT\r
29472 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 48\r
29473         OP DECODER\r
29474 \r
29475                                 19270   IFN EDDT&1,<    ;EXECUTIVE MODE TELETYPE I/O\r
29476 \r
29477         002666' 260040  002714' 19290   TIN:    PUSHJ P,LISTEN          ;TELETYPE CHARACTER INPUT\r
29478         002667' 254000  002666' 19300            JRST .-1\r
29479         002670' 302240  000175  19310           CAIE T,175\r
29480         002671' 306240  000176  19320           CAIN T,176\r
29481         002672' 201240  000033  19330           MOVEI T,33      ;CHANGE ALL ALT MODES TO NEW\r
29482         002673' 306240  000177  19340           CAIN T,177      ;RUBOUT?\r
29483         002674' 254000  000127' 19350           JRST WRONG      ;YES, TYPE XXX\r
29484         002675' 602240  000140  19360           TRNE T,140      ;DON'T ECHO CR,LF,ALT,TAB,BACK SPACE,ETC\r
29485         002676' 307240  000004  19370   TOUT:   CAIG T,04       ;DON'T TYPE EOT OR LOWER CHARS\r
29486         002677' 263040  000000  19380           POPJ P,\r
29487         002700' 506241  000000  19390           HRLM T,(P)\r
29488         002701' 221240  200401  19400           IMULI T,200401          ;GENERATE PARITY\r
29489         002702' 404240  003466' 19410           AND T,[11111111]\r
29490         002703' 220240  003466' 19420           IMUL T,[11111111]\r
29491         002704' 544241  000000  19430           HLR T,(P)\r
29492         002705' 603240  000010  19440           TLNE T,10\r
29493         002706' 640240  000200  19450           TRC T,200               ;MAKE PARITY EVEN\r
29494         002707' 712300  000020  19460           CONSZ TTYY,20\r
29495         002710' 254000  002707' 19470           JRST .-1\r
29496         002711' 712140  000005  19480           DATAO TTYY,T\r
29497         002712' 405240  000177  19490           ANDI T,177              ;FLUSH PARITY\r
29498         002713' 263040  000000  19500           POPJ P,0\r
29499 \r
29500         002714' 712340  000040  19520   LISTEN: CONSO TTYY,40   ;LISTEN FOR TTY\r
29501         002715' 263040  000000  19530           POPJ P,\r
29502         002716' 712040  000005  19540           DATAI TTYY,T\r
29503         002717' 405240  000177  19550           ANDI T,177\r
29504         002720' 254000  000373' 19560           JRST CPOPJ1\r
29505 \r
29506         002721' 201240  003410  19580   TTYRET: MOVEI  T,3410\r
29507         002722' 201340  040000  19590   TTY1:   MOVEI W2,40000\r
29508         002723' 712300  000120  19600           CONSZ TTYY,120\r
29509         002724' 367340  002723' 19610           SOJG W2,.-1\r
29510         002725' 712240  002233' 19620           CONI TTYY,SAVTTY\r
29511         002726' 712040  000007  19630           DATAI TTYY,W2\r
29512         002727' 506340  002233' 19640           HRLM W2,SAVTTY\r
29513         002730' 712205  000000  19650           CONO TTYY,(T)\r
29514         002731' 263040  000000  19660           POPJ P,\r
29515         002732' 200240  002233' 19670   TTYLEV: MOVE T,SAVTTY\r
29516         002733' 620240  000160  19680           TRZ T,160\r
29517         002734' 660240  003600  19690           TRO T,3600\r
29518         002735' 602240  000010  19700           TRNE T,10\r
29519         002736' 620240  000200  19710           TRZ T,200\r
29520         002737' 254000  002722' 19720           JRST TTY1\r
29521 \r
29522 \r
29523         002740' 260040  002666' 19750   TEXIN:  PUSHJ P,TIN     ;INPUT SUBROUTINE FOR TEXT MODES\r
29524         002741' 606240  000140  19760           TRNN T,140\r
29525         002742' 254000  002676' 19770           JRST TOUT       ;ECHO CHARACTERS (0-37) NOT ECHOED\r
29526         002743' 263040  000000  19780           POPJ P,\r
29527                                 19790   >\r
29528 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 49\r
29529         OP DECODER\r
29530 \r
29531                                 19810   IFE EDDT&1,<    ;USER MODE TELETYPE I/O\r
29532                                 19820   \r
29533                                 19830   \r
29534                                 19840   TIN:    MOVE T,POUTBF           ;GET NEXT CHARACTER ROUTINE\r
29535                                 19850           CAME T,[POINT 7,INBFF]\r
29536                                 19860           PUSHJ P,FINOUT\r
29537                                 19870           ILDB T,PINBFF\r
29538                                 19880           CAIN T,175\r
29539                                 19890           MOVEI T,33      ;CHANGE TO NEW ALT MODE\r
29540                                 19900           CAIN    T,177   ;RUBOUT?\r
29541                                 19910           JRST    WRONG   ;YES PRINT XXX\r
29542                                 19920           JUMPN T,CPOPJ\r
29543                                 19930           MOVE T,[POINT 7,INBFF]\r
29544                                 19940           MOVEM T,PINBFF\r
29545                                 19950           CALL T,[SIXBIT /DDTIN/]\r
29546                                 19960           JRST TIN\r
29547                                 19970   \r
29548                                 19980   TOUT:   JUMPE   T,CPOPJ ;OUT PUT A CHARACTER FLUSH NULLS\r
29549                                 19990           IDPB T,POUTBF\r
29550                                 20000           CAIE T,12\r
29551                                 20010           POPJ P,\r
29552                                 20020   FINOUT: MOVEI T,0\r
29553                                 20030           IDPB T,POUTBF\r
29554                                 20040           MOVE T,[POINT 7,INBFF]\r
29555                                 20050           MOVEM T,PINBFF\r
29556                                 20060           MOVEM T,POUTBF\r
29557                                 20070           CALL T,[SIXBIT /DDTOUT/]\r
29558                                 20080           CLEARM INBFF\r
29559                                 20090           POPJ P,\r
29560                                 20100   \r
29561                                 20110   PINBFF: POINT 7,INBFF\r
29562                                 20120   POUTBF: POINT 7,INBFF\r
29563                                 20130   \r
29564                                 20140   LISTEN=CPOPJ\r
29565                                 20150   INBFF:  BLOCK 21\r
29566                                 20160   \r
29567                                 20170   TTYRET: CALL [SIXBIT /DDTGT/]\r
29568                                 20180           MOVE T,[POINT 7,INBFF]\r
29569                                 20190           MOVEM T,POUTBF\r
29570                                 20200           MOVEM T,PINBFF\r
29571                                 20210           CLEARM INBFF\r
29572                                 20220           POPJ P,\r
29573                                 20230   \r
29574                                 20240   TTYLEV: PUSHJ P,FINOUT\r
29575                                 20250           CALL [SIXBIT /DDTRL/]\r
29576                                 20260           POPJ P,\r
29577                                 20270   \r
29578                                 20280   TEXIN=TIN       ;USE NORMAL INPUT FOR TEXT WHEN IN USER MODE\r
29579                                 20290   >\r
29580 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 50\r
29581         OP DECODER\r
29582 \r
29583 \r
29584         002744' 301402  002747' 20320   BDISP:  POINT 12,DISP(R),11\r
29585         002745' 141402  002747' 20330           POINT 12,DISP(R),23\r
29586         002746' 001402  002747' 20340           POINT 12,DISP(R),35\r
29587 \r
29588         002747'                 20360   DISP:   \r
29589                                 20370   DEFINE D (Z1,Z2,Z3)<XLIST\r
29590                                                                         20380           EXP <Z1-DDT>*1B11+<Z2-DDT>*1B23+Z3-DDT\r
29591                                                                         20390           LIST>\r
29592 \r
29593                                 20410   IFE EDDT&1&<EDDT>B36,<  PUNCH=ERR\r
29594                                 20420           BLKEND=ERR\r
29595                                 20430           LOADER=ERR\r
29596                                 20440           VERIFY=ERR\r
29597                                 20450           CORE=ERR>\r
29598 \r
29599 \r
29600 \r
29601                                 20490   D ERR,ERR,ERR^XLIST\r
29602                                 20500   D ERR,ERR,ERR^XLIST\r
29603                                 20510   D ERR,ERR,VARRW^XLIST\r
29604                                 20520   D TAB,LINEF,ERR^XLIST\r
29605                                 20530   D ERR,CARR,ERR^XLIST\r
29606                                 20540   D ERR,ERR,ERR^XLIST\r
29607                                 20550   D PUNCH,ERR,ERR^XLIST\r
29608                                 20560   D ERR,ERR,ERR^XLIST\r
29609                                 20570   D ERR,ERR,ERR^XLIST\r
29610                                 20580   D CONTROL,ERR,ERR^XLIST\r
29611                                 20590   D ERR,ERR,SPACE^XLIST\r
29612                                 20600   D SUPTYO,TEXI,ASSEM^XLIST\r
29613                                 20610   D DOLLAR,PERC,ERR^XLIST\r
29614                                 20620   D DIVD,LPRN,RPRN^XLIST\r
29615                                 20630   D MULT,PLUS,ACCF^XLIST\r
29616                                 20640   D MINUS,PERIOD,SLASH^XLIST\r
29617                                 20650   D NUM,NUM,NUM^XLIST\r
29618                                 20660   D NUM,NUM,NUM^XLIST\r
29619                                 20670   D NUM,NUM,NUM^XLIST\r
29620                                 20680   D NUM,TAG,SEMIC^XLIST\r
29621                                 20690   D FIRARG,EQUAL,ULIM^XLIST\r
29622                                 20700   D QUESTN,INDIRECT,ABSA^XLIST\r
29623                                 20710   D BPS,CON,SYMD^XLIST\r
29624                                 20720   D EFFEC,SFLOT,GO^XLIST\r
29625                                 20730   D HWRDS,PILOC,BLKEND^XLIST\r
29626                                 20740   D KILL,LOADER,MASK^XLIST\r
29627                                 20750   D NWORD,BITO,PROCEDE^XLIST\r
29628                                 20760   D QUAN,RELA,SYMBOL^XLIST\r
29629                                 20770   D TEXO,ERR,VERIFY^XLIST\r
29630                                 20780   D WORD,XEC,CORE^XLIST\r
29631                                 20790   D ZERO,OCON,ICON^XLIST\r
29632                                 20800   D OSYM,VARRW,PSYM^XLIST\r
29633 \r
29634                                 20820   REPEAT 11,<D ERR,ERR,ERR>\r
29635                                         D ERR,ERR,ERR^XLIST\r
29636                                         D ERR,ERR,ERR^XLIST\r
29637                                         D ERR,ERR,ERR^XLIST\r
29638                                         D ERR,ERR,ERR^XLIST\r
29639                                         D ERR,ERR,ERR^XLIST\r
29640                                         D ERR,ERR,ERR^XLIST\r
29641                                         D ERR,ERR,ERR^XLIST\r
29642                                         D ERR,ERR,ERR^XLIST\r
29643                                         D ERR,ERR,ERR^XLIST\r
29644                                 20840   D ERR,ERR,ERR^XLIST\r
29645                                 20850   D ERR,WRONG,DDT^XLIST\r
29646 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 51\r
29647         OP DECODER\r
29648 \r
29649 \r
29650         003022' 200120  002230' 20880   IFIX:   MOVE R,@SYMP            ;DIDDLE SYMBOL TABLE POINTERS\r
29651         003023' 552100  002213' 20890           HRRZM R,ESTU\r
29652         003024' 554260  002230' 20900           HLRZ T,@SYMP\r
29653         003025' 274260  002230' 20910           SUB T,@SYMP\r
29654         003026' 271240  000116  20920           ADDI T,NSYMS\r
29655         003027' 213000  000005  20930           MOVNS T\r
29656         003030' 542240  002200' 20940           HRRM T, KILC\r
29657         003031' 200240  002200' 20950           MOVE T, KILC\r
29658         003032' 202240  002212' 20960           MOVEM T, PRGM\r
29659         003033' 254000  000000' 20970           JRST DDT\r
29660 \r
29661         003034' 201100  003051' 20990   BITO:   MOVEI   R,BITT  ;BYTE OUTPUT SUBROUTINE\r
29662         003035' 551440  002003' 21000           HRRZI   AR,TOC\r
29663         003036' 626000  000001  21010           TRZN    F,Q2F\r
29664         003037' 254000  000123' 21020           JRST    ERR\r
29665         003040' 200240  002202' 21030           MOVE    T,WRD2\r
29666         003041' 202240  003074' 21040           MOVEM   T,SVBTS\r
29667         003042' 201240  000044  21050           MOVEI   T,^D36\r
29668         003043' 230240  002202' 21060           IDIV    T,WRD2\r
29669         003044' 332000  000006  21070           SKIPE   T+1\r
29670         003045' 271240  000001  21080           ADDI    T,1\r
29671         003046' 202240  003075' 21090           MOVEM   T,SVBTS2\r
29672         003047' 550400  000002  21100           HRRZ    SCH,R\r
29673         003050' 254000  001011' 21110           JRST    BASE1\r
29674         003051' 200240  003075' 21120   BITT:   MOVE    T,SVBTS2\r
29675         003052' 202240  003077' 21130           MOVEM   T,SVBT2\r
29676         003053' 200300  002206' 21140           MOVE    T+1,LWT\r
29677         003054' 202300  003076' 21150           MOVEM   T+1,SVBT3\r
29678         003055' 201240  000000  21160   BITT2:  MOVEI   T,0\r
29679         003056' 200340  003074' 21170           MOVE    T+2,SVBTS\r
29680         003057' 246247  000000  21180           LSHC    T,(T+2)\r
29681         003060' 202240  002206' 21190           MOVEM   T,LWT\r
29682         003061' 202300  003076' 21200           MOVEM   T+1,SVBT3\r
29683         003062' 302440  001545' 21210           CAIE    AR,PADSO\r
29684         003063' 260040  002003' 21220           PUSHJ   P,FTOC\r
29685         003064' 302440  002003' 21230           CAIE    AR,TOC\r
29686         003065' 260040  001467' 21240           PUSHJ   P,PIN\r
29687         003066' 377000  003077' 21250           SOSG    SVBT2\r
29688         003067' 263040  000000  21260           POPJ    P,\r
29689         003070' 201240  000054  21270           MOVEI   T,","\r
29690         003071' 260040  002676' 21280           PUSHJ   P,TOUT\r
29691         003072' 200300  003076' 21290           MOVE    T+1,SVBT3\r
29692         003073' 254000  003055' 21300           JRST    BITT2\r
29693         003074' 000000  000000  21310   SVBTS:  0\r
29694         003075' 000000  000000  21320   SVBTS2: 0\r
29695         003076' 000000  000000  21330   SVBT3:  0\r
29696         003077' 000000  000000  21340   SVBT2:  0\r
29697 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 52\r
29698         OP DECODER\r
29699 \r
29700 \r
29701                                 21370   ;DESCRIPTION OF OP DECODER FOR DDT:\r
29702                                 21380   ;\r
29703                                 21390   ;         THE ENTIRE INSTRUCTION SET FOR THE PDP-6 CAN BE COMPACTED INTO\r
29704                                 21400   ;A SPACE MUCH SMALLER THAN ONE REGISTER FOR EVERY SYMBOL.  THIS OCCURS\r
29705                                 21410   ;BECAUSE OF THE MACHINE ORGANIZATION AND INSTRUCTION MNEMONICS CHOSEN\r
29706                                 21420   ;FOR THE PDP-6.  FOR EXAMPLE, IF BITS (0-2) OF AN INSTRUCTION EQUAL\r
29707                                 21430   ;101(2) THE INSTRUCTION IS A HALF WORD INSTRUCTION AND AN "H" MAY\r
29708                                 21440   ;BE ASSUMED. "T" MAY BE ASSUMED FOR ALL TEST INSTRUCTIONS (WHICH\r
29709                                 21450   ;BEGIN WITH 110(2).\r
29710                                 21460   ;\r
29711                                 21470   ;       THE TABLE TBL IN DDT CONSISTS OF 9 BIT BYTES, 4 TO A WORD.\r
29712                                 21480   ;THE NUMBERS IN THE BYTES HAVE THE FOLLOWING SIGNIFICANCE:\r
29713                                 21490   ;0-37(8):       THIS IS A DISPATCH COMMAND FOR THE OP-DECODER INTERPRETER.\r
29714                                 21500   ;       LET THE RIGHT MOST TWO BITS EQUAL N; LET THE NEXT 3 BITS\r
29715                                 21510   ;       EQUAL P.\r
29716                                 21520   ;\r
29717                                 21530   ;       THE CONTENTS OF INST (INSTRUCTION) CONTAIN IN THE RIGHT\r
29718                                 21540   ;       MOST NINE BITS THE BINARY FOR THE MACHINE INSTRUCTION.\r
29719                                 21550   ;       P AND N REFER TO THE CONTENTS OF INST, AND THE OP DECODER\r
29720                                 21560   ;       WILL PRODUCE AN ANSWER D GIVEN P, N, AND THE CONTENTS\r
29721                                 21570   ;       OF INSTX N+1 GIVES THE NUMBER OF BITS IN INST; P GIVES THE\r
29722                                 21580   ;       POSITION (FROM THE RIGHT EDGE) OF THE N+1 BITS.\r
29723                                 21590   ;\r
29724                                 21600   ;       EXAMPLE: P = 6\r
29725                                 21610   ;                N = 2\r
29726                                 21620   ;\r
29727                                 21630   ;;      C(INST) = .010 101 100(2)\r
29728                                 21640   ;\r
29729                                 21650   ;       THE RESULT- D = 010(2) = 2(8)\r
29730                                 21660   ;\r
29731                                 21670   ;       D IS USED AS A DISPATCH ON THE NEXT BYTES IN THE TABLE.\r
29732                                 21680   ;       IF D = 5, 5 BYTES IN THE TABLE (DON'T COUNT THE BYTES WHICH\r
29733                                 21690   ;       PRINT TEXT, 41-72(8)) ARE SKIPPED OVER AND THE 6TH BYTE RESUMES\r
29734                                 21700   ;       THE INTERPRETATION.\r
29735                                 21710   ;\r
29736                                 21720   ;40(8)  THIS IS A STOP CODE; WHEN THIS IS REACHED INTERPRETATION\r
29737                                 21730   ;       IS FINISHED.\r
29738 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 53\r
29739         OP DECODER\r
29740 \r
29741 \r
29742                                 21760   ;41(8)-72(8)      THE ALPHABET IS ENCODED INTO THIS RANGE.\r
29743                                 21770   ;               41- A\r
29744                                 21780   ;               42- B\r
29745                                 21790   ;               72- Z\r
29746                                 21800   ;               WHEN A BYTE IN THIS RANGE IS REACHED, ITS CORRESPONDING\r
29747                                 21810   ;               LETTER IS TYPED.\r
29748                                 21820   ;\r
29749                                 21830   ;73(8)-777(8)     THIS IS A TRANSFER BYTE.  IF THE BYTE IN THIS RANGE IS\r
29750                                 21840   ;               CONSIDERED TO BE A, TRANSFER INTERPRETATION TO THE A-73(8)RD\r
29751                                 21850   ;               BYTE IN THE TABLE.\r
29752                                 21860   ;\r
29753                                 21870   ;MAROS ASSEMBLE THE TABLE TBL:\r
29754                                 21880   ; 1.   A NUMBER FOLLOWED BY ^ ASSEMBLES A DISPATCH BYTE.  THE FIRST\r
29755                                 21890   ;      DIGIT IS THE POSITION; THE SECOND DIGIT IS THE SIZE.\r
29756                                 21900   ; 2.   A POINT (.) ASSEMBLES A STOP CODE.\r
29757                                 21910   ; 3.   A NAME FOLLOWED BY A SLASH ASSEMBLES A TRANSFER TO THE\r
29758                                 21920   ;      SYMBOLICALLY NAMED BYTE.\r
29759                                 21930   ; 4.   A STRING OF LETTERS TERMINATED BY A SPACE, COMMA, OR POINT,\r
29760                                 21940   ;      ASSEMBLE INTO A STRING OF BYTES, EACH BYTE BEING ONE LETTER.\r
29761                                 21950   ;\r
29762                                 21960   ;EXAMPLE OF BINARY TO SYMBOLIC DECODING:\r
29763                                 21970   ;      THE MACHINE CODE FOR JRST IAS 254\r
29764                                 21980   ;          INST    0  1  0  1  0  1  1  0  0\r
29765                                 21990   ;      THE INTERPRETER STARTS WITH THE FIRST BYTE IN THE TABLE (63^).\r
29766                                 22000   ;      THE RESULT OF APPLYING THIS TO C(INST) GIVES 2.  SKIPPING OVER\r
29767                                 22010   ;      2 BYTES IN THE TABLE AND INTERPRETING THE THIRD RESULTS IN\r
29768                                 22020   ;      HAK/ BEING INTERPRETED.  AT HAK:, THERE IS A 33^.  APPLYING\r
29769                                 22030   ;      THIS TO C(INST) RESULTS IN 5 NON PRINTING BYTES BEING SKIPPED\r
29770                                 22040   ;      OVER:\r
29771                                 22050   ;          1.  MV/\r
29772                                 22060   ;               MOV      PRINTING TEXT\r
29773                                 22070   ;          2.  MO/\r
29774                                 22080   ;          3.  ML/\r
29775                                 22090   ;          4.  DV/\r
29776                                 22100   ;          5.  SH/\r
29777                                 22110   ;\r
29778                                 22120   ;H1/ IS THE NEXT BYTE INTERPRETER.  AT H1: 03^ IS FOUND SO\r
29779                                 22130   ;4 BYTES ARE SKIPPED OVER:\r
29780                                 22140   ;              EXC      PRINTING TEXT\r
29781                                 22150   ;          1.  S3/\r
29782                                 22160   ;              BL       PRINTING TEXT\r
29783                                 22170   ;              T        PRINTING TEXT\r
29784                                 22180   ;          2.  .\r
29785                                 22190   ;          3.  AO/\r
29786                                 22200   ;          4.  AOB/\r
29787                                 22210   ;          THE NEXT LETTERS JRS ARE TYPED OUT.  THEN T/ IS FOUND.  AT\r
29788                                 22220   ;T; A T IS TYPED OUT; THEN A "." IS FOUND AND EVERYTHING STOPS.\r
29789                                 22230   ;\r
29790                                 22240   ;          THE TABLE IS ALSO USED GOING FROM SYMBOLIC TO BINARY BUT A\r
29791 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 59\r
29792         OP DECODER\r
29793 \r
29794                                 22310   REPEAT 0,<\r
29795                                 22320   \r
29796                                 22330   DEFINE REDEF (XX)<\r
29797                                 22340   DEFINE INFO (AA,BB)<\r
29798                                 22350   AA XX'BB>>\r
29799                                 22360   \r
29800                                 22370   \r
29801                                 22380   DEFINE BYT9 (L)<\r
29802                                 22390   XLIST\r
29803                                 22400   REDEF %\r
29804                                 22410    ZZ=0\r
29805                                 22420    ZZZ=0\r
29806                                 22430    ZZM=1\r
29807                                 22440   \r
29808                                 22450    IRPC L,<\r
29809                                 22460           Z="L"\r
29810                                 22470           IFE Z-":",<INFO <>,<=CLOC>\r
29811                                 22480                   IFNDEF FIR.,<FIR.=CLOC>\r
29812                                 22490                   IFGE CLOC+73-1000-FIR.,<PRINTX OPTABLE TOO LONG>\r
29813                                 22500                   Z=0>\r
29814                                 22510           IFE Z-"/",<IF1 <OUTP 1>\r
29815                                 22520                   IF2,<INFO OUTP,+73-FIR.>\r
29816                                 22530                   Z=0>\r
29817                                 22540    IFE Z-"^",<OUTP <ZZ&70/2+ZZ&7-1>\r
29818                                 22550           Z=0>\r
29819                                 22560    IFE <Z-",">*<Z-".">*<Z-40>,<IFN ZZZ,<\r
29820                                 22570                                   REPEAT 5,<ZZ=ZZZ&77\r
29821                                 22580                                           IFN ZZ,<OUTP ZZ>\r
29822                                 22590                                           ZZZ=ZZZ/100>>\r
29823                                 22600                                   IFE Z-".",<OUTP 40>\r
29824                                 22610                                   Z=0>\r
29825                                 22620    IFN Z,<INFO REDEF,L\r
29826                                 22630           ZZ=ZZ*10+Z&7\r
29827                                 22640           ZZZ=ZZZ+<Z-40>*ZZM\r
29828                                 22650           ZZM=ZZM*100>\r
29829                                 22660    IFE Z,<REDEF %\r
29830                                 22670           ZZ=0\r
29831                                 22680           ZZZ=0\r
29832                                 22690           ZZM=1>>\r
29833                                 22700   LIST>\r
29834                                 22710   \r
29835                                 22720   DEFINE OUTP (A)<\r
29836                                 22730           BINRY=BINRY*400+BINRY*400+A\r
29837                                 22740           BINC=BINC-1\r
29838                                 22750           IFE BINC,<EXP BINRY\r
29839                                 22760                   BINRY=0\r
29840                                 22770                   BINC=4>\r
29841                                 22780           CLOC=CLOC+1>\r
29842                                 22790   \r
29843                                 22800   \r
29844                                 22810   \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 60\r
29845         OP DECODER\r
29846 \r
29847                                 22820   \r
29848                                 22830   TBL:            ;OPDECODER BYTE TABLE\r
29849                                 22840   \r
29850                                 22850   BINRY=0\r
29851                                 22860   CLOC=0          ;SET BYTE LOCATION COUNTER TO 0\r
29852                                 22870   BINC=4          ;INIT BYTES/WORD COUNTER\r
29853                                 22880   \r
29854                                 22890   BYT9 <63^UUO/FLO/HAK/ACCP/BOOLE/H HWT/T ACBM/>\r
29855                                 22900   \r
29856                                 22910   ;IO INSTRUCTIONS\r
29857                                 22920   BYT9 <21^BD/CON,11^OI/S,01^Z/O/>\r
29858                                 22930   BYT9 <BD:01^BLK,IO/DATA,IO:11^I/O/OI:01^O/I/>\r
29859                                 22940   \r
29860                                 22950   ;UUOS\r
29861                                 22960   BYT9 <UUO:51^.,32^U40/U50/U60/21^U703/11^USET/01^>\r
29862                                 22970   BYT9 <LOOKU,P/ENTE,R/USET:USET,01^I/O/>\r
29863                                 22980   BYT9 <U40:03^U47/INI T/.....,U47:CALL,01^.,I/>\r
29864                                 22990   BYT9 <U60:21^U603/01^IN,BPUT/OUT,BPUT:11^BU,F:F.,PU,T/>\r
29865                                 23000   BYT9 <U603:01^U6062/STAT,11^O:O.,Z:Z.,U6062:11^S,U62/G,U62:ETST,S/>\r
29866                                 23010   ;BYTE AND FLOATING INSTRUCTIONS\r
29867                                 23020   \r
29868                                 23030   BYT9 <FLO:51^BYTE/F 32^ AD A/SB A/MP A/DV A:>\r
29869                                 23040   BYT9 <21^LMB/R,IMB/LMB:02^.,L:L.,M:M.,B:B.,BYTE:32^...,03^UF,PA/DF,N/>\r
29870                                 23050   BYT9 <FS C/IB P:P.,I LD/LD:LD B/I DP/DP:DP B/>\r
29871                                 23060   \r
29872                                 23070   ;FWT,FIXED POINT ARITH,MISC.\r
29873                                 23080   \r
29874                                 23090   BYT9 <HAK:33^MV/MV:MOV MO/ML/DV/SH/H1/JP/>\r
29875                                 23100   BYT9 <21^ADD IMB/SU BIMB:B IMB:02^.,I:I.,M/B/MO:22^>\r
29876                                 23110   BYT9 <EIMS:E IMS/S IMS/N IMS/M IMS:02^.,I/M/S:S.,>\r
29877                                 23120   BYT9 <ML:21^I ML1/ML1:MUL IMB/DV:21^I DV1/DV1:>\r
29878                                 23130   BYT9 <DI DV2:V IMB/H1:03^EXC S3/BL T:T.,AO/AO:AOBJ,>\r
29879                                 23140   BYT9 <AOB/JRS T/JFC L/XC T/CON S/AOB:01^P/N/>\r
29880                                 23150   BYT9 <JP:03^PU/PU:PUSH PUS/PO/PO:POP POP/JS,R:R.,>\r
29881                                 23160   BYT9 <JS P/JS PA:A.,JR PA/PUS:01^J:J..,POP:>\r
29882                                 23170   BYT9 <01^.,J/SH:02^A S2/ROT S1/L S2:S S3:H S1/.,S1:21^.,C:C.,>\r
29883                                 23180   \r
29884                                 23190   ;ARITH COMP,SKIP,JUMP\r
29885                                 23200   \r
29886                                 23210   BYT9 <ACCP:42^CA CA1/SJ/A JS/S JS:O 31^>\r
29887                                 23220   BYT9 <J COMP/S COMP/CA1:31^I COMP/M COMP/>\r
29888                                 23230   BYT9 <SJ:31^JUM PSJ/SKI PSJ:P COMP:>\r
29889                                 23240   BYT9 <03^.,L/E:E.,L E/PA/G E/N:N.,G.,>\r
29890                                 23250   \r
29891                                 23260   \r
29892                                 23270   ;HALF WORDS\r
29893                                 23280   \r
29894                                 23290   BYT9 <HWT:51^HW1/21^R HW2/L HW2:R HW3/HW1:>\r
29895                                 23300   BYT9 <21^L HW4/R HW4:L HW3:32^IMS/Z IMS/O IMS/EIMS/>\r
29896                                 23310   \r
29897                                 23320   ;TEST INSTRUCTIONS\r
29898                                 23330   \r
29899                                 23340   BYT9 <ACBM:31^AC1/01^D AC2/S AC2/AC1:01^R AC2/L,>\r
29900 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 60-1\r
29901         OP DECODER\r
29902 \r
29903                                 23350   BYT9 <AC2:42^N EAN/Z EAN/C EAN/O EAN:12^.,E/PA/N/>\r
29904                                 23360   \r
29905                                 23370   \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 61\r
29906         OP DECODER\r
29907 \r
29908                                 23380   \r
29909                                 23390   ;BOOLEAN\r
29910                                 23400   \r
29911                                 23410   BYT9 <BOOLE:24^ST/AN:AND B2/AN/ST/AN/ST/>\r
29912                                 23420   BYT9 <X OR:OR B2/I OR/AN/EQ DV2/ST/OR/ST/OR/OR/>\r
29913                                 23430   BYT9 <ST:SET B2:24^Z IMB/IMB/CA:C TA/TM:M IMB/>\r
29914                                 23440   BYT9 <CM:C TM/TA:A IMB/IMB/IMB/CB:C BIMB/IMB/CA/>\r
29915                                 23450   BYT9 <CA/CM/CM/CB/O IMB/>\r
29916                                 23460   \r
29917                                 23470   ;MORE UUO'S\r
29918                                 23480   BYT9 <U50:03^OPE,N/....,RENAM,E/I,N/OU,T/>\r
29919                                 23490   BYT9 <U703:02^CLOS,E/RELEA,S/MTAP,E/UGET,F/>\r
29920                                 23500   \r
29921                                 23510   REPEAT BINC,<BINRY=BINRY*400+BINRY*400>\r
29922                                 23520   IFN BINRY,<EXP BINRY>>\r
29923 \r
29924 \r
29925 \r
29926 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 62\r
29927         OP DECODER\r
29928 \r
29929                                 23570   SUBTTL  OP DECODER\r
29930 \r
29931                                 23590   IF1,\r
29932                                 23600   <\r
29933                                 23610   \r
29934                                 23620   DEFINE  .COLON  (A) <\r
29935                                 23630   %'A==   CLOC\r
29936                                 23640   FIR.==  CLOC\r
29937                                 23650   DEFINE  .COLON  (AA) <\r
29938                                 23660   %'AA==  CLOC\r
29939                                 23670   IFGE    CLOC+73-1000-FIR., <PRINTX OPTABLE TOO LONG>>>\r
29940                                 23680   \r
29941                                 23690   DEFINE  .SLASH  <\r
29942                                 23700   CLOC=   CLOC+1 ;>\r
29943                                 23710   \r
29944                                 23720   SYN     .SLASH, .ARROW\r
29945                                 23730   \r
29946                                 23740   DEFINE  .COMMA  (A) <\r
29947                                 23750   IFNB    <A>,    <.REP5 A>>\r
29948                                 23760   \r
29949                                 23770   SYN     .COMMA, .SPACE\r
29950                                 23780   \r
29951                                 23790   DEFINE  .POINT  (A) <\r
29952                                 23800   IFNB    <A>,    <.REP5 A>\r
29953                                 23810   CLOC=   CLOC+1>\r
29954                                 23820   \r
29955                                 23830   DEFINE  .REP5   (A) <\r
29956                                 23840   IRPC    A, <CLOC==CLOC+1>>\r
29957                                 23850   \r
29958                                 23860   >\r
29959 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 63\r
29960         OP DECODER\r
29961 \r
29962                                 23880   IF2, \r
29963                                 23890   <\r
29964 \r
29965                                 23910   DEFINE  .SLASH  (A) <\r
29966                                 23920   OUTP    %'A+73-FIR.>\r
29967 \r
29968                                 23940   DEFINE  .ARROW  (A) <\r
29969                                 23950   OUTP    A&70/2+A&7-1>\r
29970 \r
29971                                 23970   DEFINE  .COMMA  (A) <\r
29972                                 23980   IFNB    <A>,    <.REP5 A>>\r
29973 \r
29974                                 24000   SYN     .COMMA, .SPACE\r
29975 \r
29976                                 24020   DEFINE  .POINT  (A) <\r
29977                                 24030   IFNB    <A>,    <.REP5 A>\r
29978                                 24040   OUTP    40>\r
29979 \r
29980                                 24060   DEFINE  .REP5   (A) <\r
29981                                 24070   IRPC    A, <OUTP "A"-40>>\r
29982 \r
29983                                 24090   DEFINE OUTP (A)<\r
29984                                 24100   BINRY== BINRY+<A>_<BINC==BINC-9>\r
29985                                 24110   IFE BINC, <\r
29986                                 24120                   +BINRY\r
29987                                                                         24130   BINRY==0\r
29988                                                                         24140   BINC==^D36>\r
29989                                 24150   CLOC==CLOC+1>\r
29990 \r
29991                                 24170   >\r
29992 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 64\r
29993         OP DECODER\r
29994 \r
29995         003100'                 24190   TBL:            ;OPDECODER BYTE TABLE\r
29996 \r
29997                         000000  24210   BINRY== 0\r
29998                         000000  24220   CLOC==  0       ;SET BYTE LOCATION COUNTER TO 0\r
29999                         000044  24230   BINC==  ^D36    ;INIT BYTES/WORD COUNTER\r
30000 \r
30001                                 24250   .ARROW  63^\r
30002                                 24260   .SLASH  UUO^\r
30003                                 24270   .SLASH  FLO^\r
30004                                 24280   .SLASH  HAK^\r
30005         003100' 032112  236325                          +BINRY\r
30006                                 24290   .SLASH  ACCP^\r
30007                                 24300   .SLASH  BOOLE^\r
30008                                 24310   .SPACE  H^\r
30009                                 24320   .SLASH  HWT^\r
30010         003101' 534662  050606                          +BINRY\r
30011                                 24330   .SPACE  T^\r
30012                                 24340   .SLASH  ACBM^\r
30013 \r
30014 \r
30015                                 24370   ;IO INSTRUCTIONS\r
30016 \r
30017                                 24390   .ARROW  21^\r
30018                                 24400   .SLASH  BD^\r
30019         003102' 064632  010073                          +BINRY\r
30020                                 24410   .COMMA  CON^\r
30021                                 24420   .ARROW  11^\r
30022         003103' 043057  056004                          +BINRY\r
30023                                 24430   .SLASH  OI^\r
30024                                 24440   .COMMA  S^\r
30025                                 24450   .ARROW  01^\r
30026                                 24460   .SLASH  Z^\r
30027         003104' 107063  000223                          +BINRY\r
30028                                 24470   .SLASH  O^\r
30029 \r
30030                                 24490   .COLON  BD^\r
30031                                 24500   .ARROW  01^\r
30032                                 24510   .COMMA  BLK^\r
30033         003105' 221000  042054                          +BINRY\r
30034                                 24520   .SLASH  IO^\r
30035                                 24530   .COMMA  DATA^\r
30036         003106' 053104  044041                          +BINRY\r
30037                                 24540   .COLON  IO^\r
30038                                 24550   .ARROW  11^\r
30039                                 24560   .SLASH  I^\r
30040         003107' 064041  004352                          +BINRY\r
30041                                 24570   .SLASH  O^\r
30042                                 24580   .COLON  OI^\r
30043                                 24590   .ARROW  01^\r
30044                                 24600   .SLASH  O^\r
30045                                 24610   .SLASH  I^\r
30046         003110' 221000  221352                          +BINRY\r
30047 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 65\r
30048         OP DECODER\r
30049 \r
30050                                 24630   ;UUOS\r
30051 \r
30052                                 24650   .COLON  UUO^\r
30053                                 24660   .ARROW  51^\r
30054                                 24670   .POINT  ^\r
30055                                 24680   .COMMA  ^\r
30056                                 24690   .ARROW  32^\r
30057                                 24700   .SLASH  U40^\r
30058         003111' 024040  015147                          +BINRY\r
30059                                 24710   .SLASH  U50^\r
30060                                 24720   .SLASH  U60^\r
30061                                 24730   .ARROW  21^\r
30062                                 24740   .SLASH  U703^\r
30063         003112' 746171  010772                          +BINRY\r
30064                                 24750   .ARROW  11^\r
30065                                 24760   .SLASH  USET^\r
30066                                 24770   .ARROW  01^\r
30067 \r
30068                                 24790   .COMMA  LOOKU^\r
30069         003113' 004140  000054                          +BINRY\r
30070         003114' 057057  053065                          +BINRY\r
30071                                 24800   .SLASH  P^\r
30072                                 24810   .COMMA  ENTE^\r
30073         003115' 311045  056064                          +BINRY\r
30074                                 24820   .SLASH  R^\r
30075                                 24830   .COLON  USET^\r
30076                                 24840   .COMMA  USET^\r
30077         003116' 045471  065063                          +BINRY\r
30078                                 24850   .ARROW  01^\r
30079                                 24860   .SLASH  I^\r
30080         003117' 045064  000352                          +BINRY\r
30081                                 24870   .SLASH  O^\r
30082 \r
30083                                 24890   .COLON  U40^\r
30084                                 24900   .ARROW  03^\r
30085                                 24910   .SLASH  U47^\r
30086                                 24920   .SPACE  INI^\r
30087         003120' 221002  162051                          +BINRY\r
30088                                 24930   .SLASH  T^\r
30089                                 24940   .POINT  ^\r
30090         003121' 056051  421040                          +BINRY\r
30091                                 24950   .POINT  ^\r
30092                                 24960   .POINT  ^\r
30093                                 24970   .POINT  ^\r
30094                                 24980   .POINT  ^\r
30095         003122' 040040  040040                          +BINRY\r
30096                                 24990   .COMMA  ^\r
30097                                 25000   .COLON  U47^\r
30098                                 25010   .COMMA  CALL^\r
30099         003123' 043041  054054                          +BINRY\r
30100                                 25020   .ARROW  01^\r
30101                                 25030   .POINT  ^\r
30102                                 25040   .COMMA  ^\r
30103 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 65-1\r
30104         OP DECODER\r
30105 \r
30106                                 25050   .SLASH  I^\r
30107 \r
30108                                 25070   .COLON  U60^\r
30109                                 25080   .ARROW  21^\r
30110         003124' 000040  352010                          +BINRY\r
30111                                 25090   .SLASH  U603^\r
30112                                 25100   .ARROW  01^\r
30113                                 25110   .COMMA  IN^\r
30114         003125' 212000  051056                          +BINRY\r
30115                                 25120   .SLASH  BPUT^\r
30116                                 25130   .COMMA  OUT^\r
30117         003126' 202057  065064                          +BINRY\r
30118                                 25140   .COLON  BPUT^\r
30119                                 25150   .ARROW  11^\r
30120                                 25160   .COMMA  BU^\r
30121                                 25170   .COLON  F^\r
30122                                 25180   .POINT  F^\r
30123         003127' 004042  065046                          +BINRY\r
30124                                 25190   .COMMA  ^\r
30125                                 25200   .COMMA  PU^\r
30126                                 25210   .SLASH  T^\r
30127         003130' 040060  065421                          +BINRY\r
30128 \r
30129                                 25230   .COLON  U603^\r
30130                                 25240   .ARROW  01^\r
30131                                 25250   .SLASH  U6062^\r
30132                                 25260   .COMMA  STAT^\r
30133         003131' 000225  063064                          +BINRY\r
30134                                 25270   .ARROW  11^\r
30135                                 25280   .COLON  O^\r
30136                                 25290   .POINT  O^\r
30137         003132' 041064  004057                          +BINRY\r
30138                                 25300   .COMMA  ^\r
30139                                 25310   .COLON  Z^\r
30140                                 25320   .POINT  Z^\r
30141                                 25330   .COMMA  ^\r
30142                                 25340   .COLON  U6062^\r
30143                                 25350   .ARROW  11^\r
30144         003133' 040072  040004                          +BINRY\r
30145                                 25360   .COMMA  S^\r
30146                                 25370   .SLASH  U62^\r
30147                                 25380   .COMMA  G^\r
30148                                 25390   .COLON  U62^\r
30149                                 25400   .COMMA  ETST^\r
30150         003134' 063231  047045                          +BINRY\r
30151                                 25410   .SLASH  S^\r
30152         003135' 064063  064372                          +BINRY\r
30153 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 66\r
30154         OP DECODER\r
30155 \r
30156                                 25430   ;BYTE AND FLOATING INSTRUCTIONS\r
30157 \r
30158                                 25450   .COLON  FLO^\r
30159                                 25460   .ARROW  51^\r
30160                                 25470   .SLASH  BYTE^\r
30161                                 25480   .SPACE  F^\r
30162                                 25490   .ARROW  32^\r
30163         003136' 024271  046015                          +BINRY\r
30164                                 25500   .SPACE  ^\r
30165                                 25510   .SPACE  AD^\r
30166                                 25520   .SLASH  A^\r
30167                                 25530   .SPACE  SB^\r
30168         003137' 041044  255063                          +BINRY\r
30169                                 25540   .SLASH  A^\r
30170                                 25550   .SPACE  MP^\r
30171         003140' 042255  055060                          +BINRY\r
30172                                 25560   .SLASH  A^\r
30173                                 25570   .SPACE  DV^\r
30174                                 25580   .COLON  A^\r
30175                                 25590   .ARROW  21^\r
30176         003141' 255044  066010                          +BINRY\r
30177                                 25600   .SLASH  LMB^\r
30178                                 25610   .COMMA  R^\r
30179                                 25620   .SLASH  IMB^\r
30180                                 25630   .COLON  LMB^\r
30181                                 25640   .ARROW  02^\r
30182         003142' 261062  350001                          +BINRY\r
30183                                 25650   .POINT  ^\r
30184                                 25660   .COMMA  ^\r
30185                                 25670   .COLON  L^\r
30186                                 25680   .POINT  L^\r
30187                                 25690   .COMMA  ^\r
30188                                 25700   .COLON  M^\r
30189                                 25710   .POINT  M^\r
30190         003143' 040054  040055                          +BINRY\r
30191                                 25720   .COMMA  ^\r
30192                                 25730   .COLON  B^\r
30193                                 25740   .POINT  B^\r
30194                                 25750   .COMMA  ^\r
30195                                 25760   .COLON  BYTE^\r
30196                                 25770   .ARROW  32^\r
30197         003144' 040042  040015                          +BINRY\r
30198                                 25780   .POINT  ^\r
30199                                 25790   .POINT  ^\r
30200                                 25800   .POINT  ^\r
30201                                 25810   .COMMA  ^\r
30202                                 25820   .ARROW  03^\r
30203         003145' 040040  040002                          +BINRY\r
30204                                 25830   .COMMA  UF^\r
30205                                 25840   .SLASH  PA^\r
30206                                 25850   .COMMA  DF^\r
30207         003146' 065046  500044                          +BINRY\r
30208                                 25860   .SLASH  N^\r
30209 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 66-1\r
30210         OP DECODER\r
30211 \r
30212 \r
30213                                 25880   .SPACE  FS^\r
30214         003147' 046602  046063                          +BINRY\r
30215                                 25890   .SLASH  C^\r
30216                                 25900   .SPACE  IB^\r
30217                                 25910   .COLON  P^\r
30218                                 25920   .POINT  P^\r
30219         003150' 532051  042060                          +BINRY\r
30220                                 25930   .COMMA  ^\r
30221                                 25940   .SPACE  I^\r
30222                                 25950   .SLASH  LD^\r
30223                                 25960   .COLON  LD^\r
30224                                 25970   .SPACE  LD^\r
30225         003151' 040051  315054                          +BINRY\r
30226                                 25980   .SLASH  B^\r
30227                                 25990   .SPACE  I^\r
30228                                 26000   .SLASH  DP^\r
30229         003152' 044267  051322                          +BINRY\r
30230                                 26010   .COLON  DP^\r
30231                                 26020   .SPACE  DP^\r
30232                                 26030   .SLASH  B^\r
30233 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 67\r
30234         OP DECODER\r
30235 \r
30236                                 26050   ;FWT,FIXED POINT ARITH,MISC\r
30237 \r
30238                                 26070   .COLON  HAK^\r
30239                                 26080   .ARROW  33^\r
30240         003153' 044060  267016                          +BINRY\r
30241                                 26090   .SLASH  MV^\r
30242                                 26100   .COLON  MV^\r
30243                                 26110   .SPACE  MOV^\r
30244         003154' 327055  057066                          +BINRY\r
30245                                 26120   .SLASH  MO^\r
30246                                 26130   .SLASH  ML^\r
30247                                 26140   .SLASH  DV^\r
30248                                 26150   .SLASH  SH^\r
30249         003155' 356374  403514                          +BINRY\r
30250                                 26160   .SLASH  H1^\r
30251                                 26170   .SLASH  JP^\r
30252 \r
30253                                 26190   .ARROW  21^\r
30254                                 26200   .SPACE  ADD^\r
30255         003156' 412453  010041                          +BINRY\r
30256                                 26210   .SLASH  IMB^\r
30257                                 26220   .SPACE  SU^\r
30258         003157' 044044  350063                          +BINRY\r
30259                                 26230   .COLON  BIMB^\r
30260                                 26240   .SPACE  B^\r
30261                                 26250   .COLON  IMB^\r
30262                                 26260   .ARROW  02^\r
30263                                 26270   .POINT  ^\r
30264         003160' 065042  001040                          +BINRY\r
30265                                 26280   .COMMA  ^\r
30266                                 26290   .COLON  I^\r
30267                                 26300   .POINT  I^\r
30268                                 26310   .COMMA  ^\r
30269                                 26320   .SLASH  M^\r
30270                                 26330   .SLASH  B^\r
30271         003161' 051040  265267                          +BINRY\r
30272                                 26340   .COLON  MO^\r
30273                                 26350   .ARROW  22^\r
30274 \r
30275                                 26370   .COLON  EIMS^\r
30276                                 26380   .SPACE  E^\r
30277                                 26390   .SLASH  IMS^\r
30278                                 26400   .SPACE  S^\r
30279         003162' 011045  366063                          +BINRY\r
30280                                 26410   .SLASH  IMS^\r
30281                                 26420   .SPACE  N^\r
30282                                 26430   .SLASH  IMS^\r
30283                                 26440   .SPACE  M^\r
30284         003163' 366056  366055                          +BINRY\r
30285                                 26450   .COLON  IMS^\r
30286                                 26460   .ARROW  02^\r
30287                                 26470   .POINT  ^\r
30288                                 26480   .COMMA  ^\r
30289 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 67-1\r
30290         OP DECODER\r
30291 \r
30292                                 26490   .SLASH  I^\r
30293                                 26500   .SLASH  M^\r
30294         003164' 001040  352265                          +BINRY\r
30295                                 26510   .COLON  S^\r
30296                                 26520   .POINT  S^\r
30297                                 26530   .COMMA  ^\r
30298 \r
30299                                 26550   .COLON  ML^\r
30300                                 26560   .ARROW  21^\r
30301                                 26570   .SPACE  I^\r
30302         003165' 063040  010051                          +BINRY\r
30303                                 26580   .SLASH  ML1^\r
30304                                 26590   .COLON  ML1^\r
30305                                 26600   .SPACE  MUL^\r
30306         003166' 377055  065054                          +BINRY\r
30307                                 26610   .SLASH  IMB^\r
30308                                 26620   .COLON  DV^\r
30309                                 26630   .ARROW  21^\r
30310                                 26640   .SPACE  I^\r
30311                                 26650   .SLASH  DV1^\r
30312         003167' 350010  051406                          +BINRY\r
30313                                 26660   .COLON  DV1^\r
30314                                 26670   .SPACE  DI^\r
30315                                 26680   .COLON  DV2^\r
30316                                 26690   .SPACE  V^\r
30317                                 26700   .SLASH  IMB^\r
30318         003170' 044051  066350                          +BINRY\r
30319                                 26710   .COLON  H1^\r
30320                                 26720   .ARROW  03^\r
30321                                 26730   .SPACE  EXC^\r
30322         003171' 002045  070043                          +BINRY\r
30323                                 26740   .SLASH  S3^\r
30324                                 26750   .SPACE  BL^\r
30325                                 26760   .COLON  T^\r
30326                                 26770   .POINT  T^\r
30327         003172' 525042  054064                          +BINRY\r
30328                                 26780   .COMMA  ^\r
30329                                 26790   .SLASH  AO^\r
30330                                 26800   .COLON  AO^\r
30331                                 26810   .COMMA  AOBJ^\r
30332         003173' 040424  041057                          +BINRY\r
30333                                 26820   .SLASH  AOB^\r
30334                                 26830   .SPACE  JRS^\r
30335         003174' 042052  450052                          +BINRY\r
30336                                 26840   .SLASH  T^\r
30337                                 26850   .SPACE  JFC^\r
30338         003175' 062063  421052                          +BINRY\r
30339                                 26860   .SLASH  L^\r
30340                                 26870   .SPACE  XC^\r
30341         003176' 046043  263070                          +BINRY\r
30342                                 26880   .SLASH  T^\r
30343                                 26890   .SPACE  CON^\r
30344         003177' 043421  043057                          +BINRY\r
30345 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 67-2\r
30346         OP DECODER\r
30347 \r
30348                                 26900   .SLASH  S^\r
30349                                 26910   .COLON  AOB^\r
30350                                 26920   .ARROW  01^\r
30351                                 26930   .SLASH  P^\r
30352         003200' 056372  000311                          +BINRY\r
30353                                 26940   .SLASH  N^\r
30354 \r
30355                                 26960   .COLON  JP^\r
30356                                 26970   .ARROW  03^\r
30357                                 26980   .SLASH  PU^\r
30358                                 26990   .COLON  PU^\r
30359                                 27000   .SPACE  PUSH^\r
30360         003201' 602002  455060                          +BINRY\r
30361                                 27010   .SLASH  PUS^\r
30362         003202' 065063  050505                          +BINRY\r
30363                                 27020   .SLASH  PO^\r
30364                                 27030   .COLON  PO^\r
30365                                 27040   .SPACE  POP^\r
30366         003203' 463060  057060                          +BINRY\r
30367                                 27050   .SLASH  POP^\r
30368                                 27060   .COMMA  JS^\r
30369                                 27070   .COLON  R^\r
30370                                 27080   .POINT  R^\r
30371         003204' 511052  063062                          +BINRY\r
30372                                 27090   .COMMA  ^\r
30373 \r
30374                                 27110   .SPACE  JS^\r
30375                                 27120   .SLASH  P^\r
30376         003205' 040052  063311                          +BINRY\r
30377                                 27130   .SPACE  JS^\r
30378                                 27140   .COLON  PA^\r
30379                                 27150   .POINT  A^\r
30380         003206' 052063  041040                          +BINRY\r
30381                                 27160   .COMMA  ^\r
30382                                 27170   .SPACE  JR^\r
30383                                 27180   .SLASH  PA^\r
30384                                 27190   .COLON  PUS^\r
30385                                 27200   .ARROW  01^\r
30386         003207' 052062  500000                          +BINRY\r
30387                                 27210   .COLON  J^\r
30388                                 27220   .POINT  J^\r
30389                                 27230   .POINT  ^\r
30390                                 27240   .COMMA  ^\r
30391                                 27250   .COLON  POP^\r
30392                                 27260   .ARROW  01^\r
30393         003210' 052040  040000                          +BINRY\r
30394                                 27270   .POINT  ^\r
30395                                 27280   .COMMA  ^\r
30396                                 27290   .SLASH  J^\r
30397                                 27300   .COLON  SH^\r
30398                                 27310   .ARROW  02^\r
30399                                 27320   .SPACE  A^\r
30400         003211' 040506  001041                          +BINRY\r
30401 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 67-3\r
30402         OP DECODER\r
30403 \r
30404                                 27330   .SLASH  S2^\r
30405                                 27340   .SPACE  ROT^\r
30406         003212' 524062  057064                          +BINRY\r
30407                                 27350   .SLASH  S1^\r
30408                                 27360   .SPACE  L^\r
30409                                 27370   .COLON  S2^\r
30410                                 27380   .SPACE  S^\r
30411                                 27390   .COLON  S3^\r
30412                                 27400   .SPACE  H^\r
30413         003213' 530054  063050                          +BINRY\r
30414                                 27410   .SLASH  S1^\r
30415                                 27420   .POINT  ^\r
30416                                 27430   .COMMA  ^\r
30417                                 27440   .COLON  S1^\r
30418                                 27450   .ARROW  21^\r
30419                                 27460   .POINT  ^\r
30420         003214' 530040  010040                          +BINRY\r
30421                                 27470   .COMMA  ^\r
30422                                 27480   .COLON  C^\r
30423                                 27490   .POINT  C^\r
30424                                 27500   .COMMA  ^\r
30425 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 68\r
30426         OP DECODER\r
30427 \r
30428                                 27520   ;ARITH COMP,SKIP,JUMP\r
30429 \r
30430                                 27540   .COLON  ACCP^\r
30431                                 27550   .ARROW  42^\r
30432                                 27560   .SPACE  CA^\r
30433         003215' 043040  021043                          +BINRY\r
30434                                 27570   .SLASH  CA1^\r
30435                                 27580   .SLASH  SJ^\r
30436                                 27590   .SPACE  A^\r
30437         003216' 041552  557041                          +BINRY\r
30438                                 27600   .SLASH  JS^\r
30439                                 27610   .SPACE  S^\r
30440                                 27620   .COLON  JS^\r
30441                                 27630   .SPACE  O^\r
30442                                 27640   .ARROW  31^\r
30443         003217' 544063  057014                          +BINRY\r
30444 \r
30445                                 27660   .SPACE  J^\r
30446                                 27670   .SLASH  COMP^\r
30447                                 27680   .SPACE  S^\r
30448                                 27690   .SLASH  COMP^\r
30449         003220' 052570  063570                          +BINRY\r
30450                                 27700   .COLON  CA1^\r
30451                                 27710   .ARROW  31^\r
30452                                 27720   .SPACE  I^\r
30453                                 27730   .SLASH  COMP^\r
30454                                 27740   .SPACE  M^\r
30455         003221' 014051  570055                          +BINRY\r
30456                                 27750   .SLASH  COMP^\r
30457 \r
30458                                 27770   .COLON  SJ^\r
30459                                 27780   .ARROW  31^\r
30460                                 27790   .SPACE  JUM^\r
30461         003222' 570014  052065                          +BINRY\r
30462                                 27800   .SLASH  PSJ^\r
30463                                 27810   .SPACE  SKI^\r
30464         003223' 055567  063053                          +BINRY\r
30465                                 27820   .COLON  PSJ^\r
30466                                 27830   .SPACE  P^\r
30467                                 27840   .COLON  COMP^\r
30468                                 27850   .ARROW  03^\r
30469                                 27860   .POINT  ^\r
30470         003224' 051060  002040                          +BINRY\r
30471                                 27870   .COMMA  ^\r
30472                                 27880   .SLASH  L^\r
30473                                 27890   .COLON  E^\r
30474                                 27900   .POINT  E^\r
30475                                 27910   .COMMA  ^\r
30476                                 27920   .SPACE  L^\r
30477         003225' 263045  040054                          +BINRY\r
30478                                 27930   .SLASH  E^\r
30479                                 27940   .SLASH  PA^\r
30480                                 27950   .SPACE  G^\r
30481 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 68-1\r
30482         OP DECODER\r
30483 \r
30484                                 27960   .SLASH  E^\r
30485         003226' 573500  047573                          +BINRY\r
30486                                 27970   .COLON  N^\r
30487                                 27980   .POINT  N^\r
30488                                 27990   .COMMA  ^\r
30489                                 28000   .POINT  G^\r
30490         003227' 056040  047040                          +BINRY\r
30491                                 28010   .COMMA  ^\r
30492 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 69\r
30493         OP DECODER\r
30494 \r
30495                                 28030   ;HALF WORDS\r
30496 \r
30497                                 28050   .COLON  HWT^\r
30498                                 28060   .ARROW  51^\r
30499                                 28070   .SLASH  HW1^\r
30500                                 28080   .ARROW  21^\r
30501                                 28090   .SPACE  R^\r
30502         003230' 024616  010062                          +BINRY\r
30503                                 28100   .SLASH  HW2^\r
30504                                 28110   .SPACE  L^\r
30505                                 28120   .COLON  HW2^\r
30506                                 28130   .SPACE  R^\r
30507                                 28140   .SLASH  HW3^\r
30508         003231' 614054  062623                          +BINRY\r
30509                                 28150   .COLON  HW1^\r
30510                                 28160   .ARROW  21^\r
30511                                 28170   .SPACE  L^\r
30512                                 28180   .SLASH  HW4^\r
30513                                 28190   .SPACE  R^\r
30514         003232' 010054  622062                          +BINRY\r
30515                                 28200   .COLON  HW4^\r
30516                                 28210   .SPACE  L^\r
30517                                 28220   .COLON  HW3^\r
30518                                 28230   .ARROW  32^\r
30519                                 28240   .SLASH  IMS^\r
30520                                 28250   .SPACE  Z^\r
30521         003233' 054015  366072                          +BINRY\r
30522                                 28260   .SLASH  IMS^\r
30523                                 28270   .SPACE  O^\r
30524                                 28280   .SLASH  IMS^\r
30525                                 28290   .SLASH  EIMS^\r
30526         003234' 366057  366357                          +BINRY\r
30527 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 70\r
30528         OP DECODER\r
30529 \r
30530                                 28310   ;TEST INSTRUCTIONS\r
30531 \r
30532                                 28330   .COLON  ACBM^\r
30533                                 28340   .ARROW  31^\r
30534                                 28350   .SLASH  AC1^\r
30535                                 28360   .ARROW  01^\r
30536                                 28370   .SPACE  D^\r
30537         003235' 014641  000044                          +BINRY\r
30538                                 28380   .SLASH  AC2^\r
30539                                 28390   .SPACE  S^\r
30540                                 28400   .SLASH  AC2^\r
30541                                 28410   .COLON  AC1^\r
30542                                 28420   .ARROW  01^\r
30543         003236' 645063  645000                          +BINRY\r
30544                                 28430   .SPACE  R^\r
30545                                 28440   .SLASH  AC2^\r
30546                                 28450   .COMMA  L^\r
30547                                 28460   .COLON  AC2^\r
30548                                 28470   .ARROW  42^\r
30549         003237' 062645  054021                          +BINRY\r
30550                                 28480   .SPACE  N^\r
30551                                 28490   .SLASH  EAN^\r
30552                                 28500   .SPACE  Z^\r
30553                                 28510   .SLASH  EAN^\r
30554         003240' 056655  072655                          +BINRY\r
30555                                 28520   .SPACE  C^\r
30556                                 28530   .SLASH  EAN^\r
30557                                 28540   .SPACE  O^\r
30558                                 28550   .COLON  EAN^\r
30559                                 28560   .ARROW  12^\r
30560         003241' 043655  057005                          +BINRY\r
30561                                 28570   .POINT  ^\r
30562                                 28580   .COMMA  ^\r
30563                                 28590   .SLASH  E^\r
30564                                 28600   .SLASH  PA^\r
30565                                 28610   .SLASH  N^\r
30566         003242' 040573  500602                          +BINRY\r
30567 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 71\r
30568         OP DECODER\r
30569 \r
30570                                 28630   ;BOOLEAN\r
30571 \r
30572                                 28650   .COLON  BOOLE^\r
30573                                 28660   .ARROW  24^\r
30574                                 28670   .SLASH  ST^\r
30575                                 28680   .COLON  AN^\r
30576                                 28690   .SPACE  AND^\r
30577         003243' 013713  041056                          +BINRY\r
30578                                 28700   .SLASH  B2^\r
30579                                 28710   .SLASH  AN^\r
30580                                 28720   .SLASH  ST^\r
30581         003244' 044716  664713                          +BINRY\r
30582                                 28730   .SLASH  AN^\r
30583                                 28740   .SLASH  ST^\r
30584 \r
30585                                 28760   .SPACE  X^\r
30586                                 28770   .COLON  OR^\r
30587                                 28780   .SPACE  OR^\r
30588         003245' 664713  070057                          +BINRY\r
30589                                 28790   .SLASH  B2^\r
30590                                 28800   .SPACE  I^\r
30591                                 28810   .SLASH  OR^\r
30592         003246' 062716  051675                          +BINRY\r
30593                                 28820   .SLASH  AN^\r
30594                                 28830   .SPACE  EQ^\r
30595                                 28840   .SLASH  DV2^\r
30596         003247' 664045  061410                          +BINRY\r
30597                                 28850   .SLASH  ST^\r
30598                                 28860   .SLASH  OR^\r
30599                                 28870   .SLASH  ST^\r
30600                                 28880   .SLASH  OR^\r
30601         003250' 713675  713675                          +BINRY\r
30602                                 28890   .SLASH  OR^\r
30603 \r
30604                                 28910   .COLON  ST^\r
30605                                 28920   .SPACE  SET^\r
30606         003251' 675063  045064                          +BINRY\r
30607                                 28930   .COLON  B2^\r
30608                                 28940   .ARROW  24^\r
30609                                 28950   .SPACE  Z^\r
30610                                 28960   .SLASH  IMB^\r
30611                                 28970   .SLASH  IMB^\r
30612         003252' 013072  350350                          +BINRY\r
30613                                 28980   .COLON  CA^\r
30614                                 28990   .SPACE  C^\r
30615                                 29000   .SLASH  TA^\r
30616                                 29010   .COLON  TM^\r
30617                                 29020   .SPACE  M^\r
30618                                 29030   .SLASH  IMB^\r
30619         003253' 043730  055350                          +BINRY\r
30620 \r
30621                                 29050   .COLON  CM^\r
30622                                 29060   .SPACE  C^\r
30623 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 71-1\r
30624         OP DECODER\r
30625 \r
30626                                 29070   .SLASH  TM^\r
30627                                 29080   .COLON  TA^\r
30628                                 29090   .SPACE  A^\r
30629                                 29100   .SLASH  IMB^\r
30630         003254' 043724  041350                          +BINRY\r
30631                                 29110   .SLASH  IMB^\r
30632                                 29120   .SLASH  IMB^\r
30633                                 29130   .COLON  CB^\r
30634                                 29140   .SPACE  C^\r
30635                                 29150   .SLASH  BIMB^\r
30636         003255' 350350  043347                          +BINRY\r
30637                                 29160   .SLASH  IMB^\r
30638                                 29170   .SLASH  CA^\r
30639 \r
30640                                 29190   .SLASH  CA^\r
30641                                 29200   .SLASH  CM^\r
30642         003256' 350722  722726                          +BINRY\r
30643                                 29210   .SLASH  CM^\r
30644                                 29220   .SLASH  CB^\r
30645                                 29230   .SPACE  O^\r
30646                                 29240   .SLASH  IMB^\r
30647         003257' 726734  057350                          +BINRY\r
30648 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 72\r
30649         OP DECODER\r
30650 \r
30651                                 29260   ;MORE UUO'S\r
30652 \r
30653                                 29280   .COLON  U50^\r
30654                                 29290   .ARROW  03^\r
30655                                 29300   .COMMA  OPE^\r
30656         003260' 002057  060045                          +BINRY\r
30657                                 29310   .SLASH  N^\r
30658                                 29320   .POINT  ^\r
30659                                 29330   .POINT  ^\r
30660                                 29340   .POINT  ^\r
30661         003261' 602040  040040                          +BINRY\r
30662                                 29350   .POINT  ^\r
30663                                 29360   .COMMA  ^\r
30664                                 29370   .COMMA  RENAM^\r
30665         003262' 040062  045056                          +BINRY\r
30666                                 29380   .SLASH  E^\r
30667                                 29390   .COMMA  I^\r
30668         003263' 041055  573051                          +BINRY\r
30669                                 29400   .SLASH  N^\r
30670                                 29410   .COMMA  OU^\r
30671                                 29420   .SLASH  T^\r
30672         003264' 602057  065421                          +BINRY\r
30673 \r
30674                                 29440   .COLON  U703^\r
30675                                 29450   .ARROW  02^\r
30676                                 29460   .COMMA  CLOS^\r
30677         003265' 001043  054057                          +BINRY\r
30678                                 29470   .SLASH  E^\r
30679                                 29480   .COMMA  RELEA^\r
30680         003266' 063573  062045                          +BINRY\r
30681                                 29490   .SLASH  S^\r
30682         003267' 054045  041372                          +BINRY\r
30683                                 29500   .COMMA  MTAP^\r
30684         003270' 055064  041060                          +BINRY\r
30685                                 29510   .SLASH  E^\r
30686                                 29520   .COMMA  UGET^\r
30687         003271' 573065  047045                          +BINRY\r
30688                                 29530   .SLASH  F^\r
30689 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 73\r
30690         OP DECODER\r
30691 \r
30692                                 29550   IF1,\r
30693                                 29560   <\r
30694                                 29570           BLOCK   <CLOC+3>/4\r
30695                                 29580   >\r
30696 \r
30697                                 29600   IF2,\r
30698                                 29610   <\r
30699                                 29620   IFN     BINC-^D36,\r
30700                                 29630   <\r
30701         003272' 064205  000000  29640                   +BINRY\r
30702                                 29650   >\r
30703                                 29660   >\r
30704 \r
30705 \r
30706 \r
30707                                 29700   IFNDEF CLOC.,<CLOC.=CLOC>\r
30708                                 29710   IFN CLOC.-CLOC,<PRINTX PHASE ERROR IN OPTABLE>\r
30709 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 74\r
30710         OP DECODER\r
30711 \r
30712 \r
30713         003273' 000000  003274' 29740   PNTR:   EXP INST        ;POINTER TO BITS IN INST\r
30714         003274' 000000  000000  29750   INST:   0               ;BINARY FOR INSTRUCTION\r
30715         003275' 000000  000000  29760   CHP:    0               ;CHAR POINTER INTO TXT, TXT+1\r
30716         003276'                 29770   TXT:    BLOCK 2         ;STORE INPUT TEXT FOR OPEVAL\r
30717         003300' 000000  000000  29780   SAVPDL: 0               ;SAVE PUSH DOWN LIST POINTER\r
30718 \r
30719         003301' 441100  003100' 29800   BTAB:   POINT 9,TBL     ;TABLE USED TO GET NEXT BYTE POINTER\r
30720         003302' 331100  003100' 29810           POINT 9,TBL,8   ;FOR TRANSFER BYTE\r
30721         003303' 221100  003100' 29820           POINT 9,TBL,17\r
30722         003304' 111100  003100' 29830           POINT 9,TBL,26\r
30723 \r
30724         003305' 200240  003312' 29850   OPEVAL: MOVE T,OPEV1            ;EVALUATE FOR AN OP CODE\r
30725         003306' 201300  002222' 29860           MOVEI W1,SYM\r
30726         003307' 200100  003467' 29870           MOVE R,[POINT 7,TXT]\r
30727         003310' 260040  002031' 29880           PUSHJ P,SPT4\r
30728         003311' 201240  000000  29890           MOVEI T,0\r
30729         003312' 136240  000002  29900   OPEV1:  IDPB T,R\r
30730         003313' 202040  003300' 29910           MOVEM P,SAVPDL\r
30731         003314' 624000  000004  29920           TRZA F,OUTF\r
30732         003315' 660000  000004  29930   OPTYPE: TRO F,OUTF              ;TYPE AN OPCODE SYMBOLICALLY\r
30733         003316' 242240  777745  29940           LSH T,-33\r
30734         003317' 202240  003274' 29950           MOVEM T,INST            ;GET OPCODE INTO RIGHT 9 BITS\r
30735         003320' 200240  003467' 29960           MOVE T,[XWD 440700,TXT]\r
30736         003321' 202240  003275' 29970           MOVEM T,CHP             ;FOR OPEVAL,SETUP POINTER TO INPUT TEXT\r
30737         003322' 620000  000002  29980   DEC:    TRZ F,ITF               ;CLEAR INSTRUCTION TYPED FLAG\r
30738         003323' 403100  000006  29990           CLEARB R,W1\r
30739         003324' 200340  003301' 30000           MOVE W2,BTAB\r
30740         003325' 134240  000007  30010   DC1:    ILDB T,W2               ;GET NEXT BYTE IN TBL\r
30741         003326' 303240  000040  30020           CAILE T,40\r
30742         003327' 301240  000073  30030           CAIL T,73\r
30743         003330' 365100  003325' 30040           SOJGE R,DC1             ;SKIP OVER # BYTES = C(R)\r
30744         003331' 327100  003325' 30050           JUMPG R,DC1             ;SKIP OVER ALPHA TEXT WITHOUT COUNTING\r
30745         003332' 275240  000040  30060           SUBI T,40\r
30746         003333' 322240  003362' 30070           JUMPE T,DECX            ;TRANSFER ON ASTOP CODE\r
30747         003334' 327240  003345' 30080           JUMPG T,DC2\r
30748         003335' 137240  003470' 30090           DPB T,[XWD 340500,PNTR] ;SETUP R ON A DISPATCH BYTE\r
30749         003336' 620240  777774  30100           TRZ T,-4\r
30750         003337' 350000  000005  30110           AOS T\r
30751         003340' 137240  003471' 30120           DPB T,[XWD 300600,PNTR]\r
30752         003341' 606000  000004  30130           TRNN F,OUTF\r
30753         003342' 254000  003401' 30140           JRST DC6                ;FOR OPEVAL ONLY\r
30754         003343' 135100  003273' 30150           LDB R,PNTR              ;GET # BYTES TO SKIP OVER\r
30755         003344' 254000  003325' 30160           JRST DC1\r
30756 \r
30757         003345' 571245  777745  30180   DC2:    HRREI T,-33(T)\r
30758         003346' 321240  003354' 30190           JUMPL T,DECT            ;TYPE OUT A LETTER\r
30759         003347' 201305  000025  30200           MOVEI W1,FIR.(T)                ;BYTE IS A TRANSFER\r
30760         003350' 231300  000004  30210           IDIVI W1,4\r
30761         003351' 200347  003301' 30220           MOVE W2,BTAB(W2)        ;CALCULATE POINTER TO NEXT BYTE\r
30762         003352' 271346  000000  30230           ADDI W2,(W1)\r
30763         003353' 254000  003325' 30240           JRST DC1\r
30764 \r
30765 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 75\r
30766         OP DECODER\r
30767 \r
30768 \r
30769         003354' 602000  000004  30280   DECT:   TRNE F,OUTF\r
30770         003355' 254000  003425' 30290           JRST DC8        ;TYPE OUT A LETTER\r
30771         003356' 134300  003275' 30300           ILDB W1,CHP     ;GET NEXT INPUT LETTER\r
30772         003357' 302305  000133  30310           CAIE W1,133(T)  ;COMPARE WITH ASSUMED NEXT LETTER\r
30773         003360' 254000  003366' 30320           JRST NOMAT      ;DOESNT MATCH\r
30774         003361' 254000  003325' 30330           JRST DC1        ;MATCHES, TRY NEXT\r
30775 \r
30776         003362' 602000  000004  30350   DECX:   TRNE F,OUTF     ;STOP (CODE 40) HAS BEEN SEEN\r
30777         003363' 263040  000000  30360           POPJ P,         ;IF FOR OUTPUT, RETURN\r
30778         003364' 134300  003275' 30370           ILDB W1,CHP     ;GET NEXT INPUT CHAR IF ANY\r
30779         003365' 322300  003415' 30380           JUMPE W1,DC7    ;DOES # OF CHARS MATCH\r
30780         003366' 262040  000002  30390   NOMAT:  POP P,R         ;NO, BACK UP AND TRY SOME MORE\r
30781         003367' 262040  000007  30400           POP P,W2\r
30782         003370' 262040  003273' 30410           POP P,PNTR\r
30783         003371' 262040  003275' 30420           POP P,CHP\r
30784         003372' 350000  000002  30430   NOMAT1: AOS R           ;ASSUME NEXT NUMBER FOR BIN VALUE\r
30785         003373' 137100  003273' 30440           DPB R,PNTR      ;STUFF INTO ANSWER\r
30786         003374' 135100  003273' 30450           LDB R,PNTR\r
30787         003375' 326100  003403' 30460           JUMPN R,DC6AA   ;IF =0, BYTE WAS TOO BIG\r
30788         003376' 312040  003300' 30470           CAME P,SAVPDL\r
30789         003377' 254000  003366' 30480           JRST NOMAT      ;NOT AT TOP LEVEL\r
30790         003400' 254000  000125' 30490           JRST UNDEF      ;UNDEFINED, FINALLY\r
30791 \r
30792         003401' 201100  000000  30510   DC6:    MOVEI R,0       ;ASSUME 0 FOR INITIAL BINARY VALUE\r
30793         003402' 137100  003273' 30520           DPB R,PNTR\r
30794         003403' 316040  003300' 30530   DC6AA:  CAMN P,SAVPDL\r
30795         003404' 254000  003410' 30540           JRST DC6BB\r
30796         003405' 135241  777776  30550           LDB T,-2(P)     ;OLD VALUE OF PNTR\r
30797         003406' 312241  000000  30560           CAME T,(P)\r
30798         003407' 254000  003372' 30570           JRST NOMAT1\r
30799         003410' 261040  003275' 30580   DC6BB:  PUSH P,CHP\r
30800         003411' 261040  003273' 30590           PUSH P,PNTR\r
30801         003412' 261040  000007  30600           PUSH P,W2\r
30802         003413' 261040  000002  30610           PUSH P,R\r
30803         003414' 254000  003325' 30620           JRST DC1\r
30804 \r
30805         003415' 200040  003300' 30640   DC7:    MOVE P,SAVPDL           ;RESTORE PUSH DOWN POINTER\r
30806         003416' 200240  003274' 30650           MOVE T,INST\r
30807         003417' 242240  000033  30660           LSH T,33                ;PUSH BINARY INTO POSITION FOR OPEVAL\r
30808         003420' 135100  003472' 30670           LDB R,[POINT 3,T,8]\r
30809         003421' 641240  700000  30680           TLC T,700000\r
30810         003422' 647240  700000  30690           TLCN T,700000\r
30811         003423' 137100  003473' 30700           DPB R,[POINT 10,T,12]   ;ONLY DONE FOR IO INSTRUCTIONS\r
30812         003424' 254000  000062' 30710           JRST L4\r
30813 \r
30814         003425' 660000  000002  30730   DC8:    TRO F,ITF               ;SET INSTRUCTION TYPED FLAG\r
30815         003426' 201245  000133  30740           MOVEI T,133(T)\r
30816         003427' 260040  002676' 30750           PUSHJ P,TOUT            ;OUTPUT A LETTER\r
30817         003430' 402000  002223' 30760           CLEARM SPSAV            ;SO $D WONT TRY TO DELETE OP CODES\r
30818         003431' 254000  003325' 30770           JRST DC1\r
30819 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 76\r
30820         OP DECODER\r
30821 \r
30822         003432'                 30790   LIT\r
30823         003432' 002307' 000010\r
30824         003433' 773767  002423\r
30825         003434' 770767  000200\r
30826         003435' 542613  000000\r
30827         003436' 000002  000002\r
30828         003437' 000000  000000\r
30829         003440' 420202  000000\r
30830         003441' 000044  000000\r
30831         003442' 410300  002201'\r
30832         003443' 331100  001241'\r
30833         003444' 002700  001241'\r
30834         003445' 270400  001241'\r
30835         003446' 270400  002652'\r
30836         003447' 264000  001041'\r
30837         003450' 264000  001066'\r
30838         003451' 002236' 002237'\r
30839         003452' 777000  000000\r
30840         003453' 270400  002206'\r
30841         003454' 331100  002206'\r
30842         003455' 220400  002206'\r
30843         003456' 777777  400000\r
30844         003457' 270300  000005\r
30845         003460' 330600  000005\r
30846         003461' 220400  000005\r
30847         003462' 004006  000000\r
30848         003463' 777740  000000\r
30849         003464' 344300  002401'\r
30850         003465' 254200  000000'\r
30851         003466' 000011  111111\r
30852         003467' 440700  003276'\r
30853         003470' 340500  003273'\r
30854         003471' 300600  003273'\r
30855         003472' 330300  000005\r
30856         003473' 271200  000005\r
30857 \r
30858 \r
30859         003500'                 30820   IFN EDDT&1&<EDDT>B36,<BUFF:     BLOCK 40>\r
30860 \r
30861         003540'                 30840   PS:     BLOCK LPDL\r
30862 \r
30863                         003610' 30860   DDTEND=.\r
30864 \r
30865                                 30880   END\r
30866 \r
30867 NO ERRORS DETECTED\r
30868 \r
30869 PROGRAM BREAK IS 003610\r
30870 \r
30871 10K CORE USED\r
30872 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 77\r
30873         SYMBOL TABLE\r
30874 \r
30875 %ACBM           001126  \r
30876 A               000002  \r
30877 AA              000010  \r
30878 ABSA            001002' \r
30879 AC0             002267' \r
30880 AC17            002306' \r
30881 ACCF            000613' \r
30882 ADR             000016  \r
30883 AR              000011  \r
30884 ARM             002310' \r
30885 ASSEM           000573' \r
30886 AUTOP           001361' \r
30887 AUTOPI          002266' \r
30888 B               000003  \r
30889 B1ADR           002236' \r
30890 B1CNT           002240' \r
30891 B1INS           001043' \r
30892 B1SKP           002237' \r
30893 BASE1           001011' \r
30894 BASECH          001005' \r
30895 BCOM            001071' \r
30896 BCOM2           001105' \r
30897 BCOM3           001103' \r
30898 BDISP           002744' \r
30899 BEG             000001  \r
30900 BINC            000022  SPD\r
30901 BINRY   064205  000000  SPD\r
30902 BITO            003034' \r
30903 BITT            003051' \r
30904 BITT2           003055' \r
30905 BLK1            002547' \r
30906 BLK2            002557' \r
30907 BLK3            002565' \r
30908 BLKEND          002425' \r
30909 BLOCK           002540' \r
30910 BLOCKS          002537' \r
30911 BNADR           002263' \r
30912 BP1             001041' \r
30913 BPLUP           001245' \r
30914 BPLUP1          001246' \r
30915 BPN             001066' \r
30916 BPS             001317' \r
30917 BPS1            001327' \r
30918 BPS2            001333' \r
30919 BPS3            001345' \r
30920 BPS4            001346' \r
30921 BPS5            001356' \r
30922 BREAK           001123' \r
30923 BREAK1          001147' \r
30924 BTAB            003301' \r
30925 BUFF            003500' \r
30926 C               000004  \r
30927 CARR            000700' \r
30928 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 77-1\r
30929         SYMBOL TABLE\r
30930 \r
30931 CCF             010000  \r
30932 CDR     011400  000000  INT\r
30933 CF              000040  \r
30934 CF1             000400  \r
30935 CHP             003275' \r
30936 CJTOUT          002016' \r
30937 CKSM            000017  \r
30938 CLOC            000752  SPD\r
30939 CLOC.           000752  \r
30940 CON             000774' \r
30941 CONS1           001464' \r
30942 CONSM           001463' \r
30943 CONSYM          001462' \r
30944 CONTRO          000344' \r
30945 CORE            002457' \r
30946 CORE1           002461' \r
30947 CORE2           002470' \r
30948 CPOPJ           000374' \r
30949 CPOPJ1          000373' \r
30950 CPUSHP          002652' \r
30951 CR      015000  000000  INT\r
30952 CRF             002657' \r
30953 CRN             002655' \r
30954 CTF             000400  \r
30955 DC      020000  000000  INT\r
30956 DC1             003325' \r
30957 DC2             003345' \r
30958 DC6             003401' \r
30959 DC6AA           003403' \r
30960 DC6BB           003410' \r
30961 DC7             003415' \r
30962 DC8             003425' \r
30963 DCSA    030000  000000  INT\r
30964 DCSB    030400  000000  INT\r
30965 DD1             000007' \r
30966 DD1.5           000011' \r
30967 DD2             000013' \r
30968 DDT             000000' ENT\r
30969 DDTEND          003610' INT\r
30970 DDTX            000000' ENT\r
30971 DEC             003322' \r
30972 DECT            003354' \r
30973 DECX            003362' \r
30974 DEF1            000515' \r
30975 DEF2            000525' \r
30976 DEF3            000533' \r
30977 DEF4            000553' \r
30978 DEFIN           000507' \r
30979 DEFV            002224' \r
30980 DELI            200000  \r
30981 DELO            400000  \r
30982 DEN             002211' \r
30983 DEP             001376' \r
30984 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 77-2\r
30985         SYMBOL TABLE\r
30986 \r
30987 DEP1            001402' \r
30988 DEPR            001372' \r
30989 DEPRA           000725' \r
30990 DEPRA2          000732' \r
30991 DEPRS           001371' \r
30992 DF      027000  000000  INT\r
30993 DIS     013000  000000  INT\r
30994 DISP            002747' \r
30995 DIVD            000571' \r
30996 DLS     024000  000000  INT\r
30997 DOLLAR          000346' \r
30998 DSK     017000  000000  INT\r
30999 DTC     021000  000000  INT\r
31000 DTS     021400  000000  INT\r
31001 DVF             040000  \r
31002 EDDT            000003  \r
31003 EFFEC           001622' \r
31004 EFFEC0          001677' \r
31005 EFFEC1          001702' \r
31006 EFFEC2          001707' \r
31007 EFFEC3          001716' \r
31008 EQUAL           000740' \r
31009 ERR             000123' \r
31010 ESTU            002213' \r
31011 ESTUT           002214' \r
31012 EVAL            000351' \r
31013 EVAL0           000352' \r
31014 EVAL1           000356' \r
31015 EVAL2           000357' \r
31016 EVAL3           000362' \r
31017 F               000000  \r
31018 FAF             001000  \r
31019 FCP             002163' \r
31020 FEED            002450' \r
31021 FEED1           002455' \r
31022 FEF             400000  \r
31023 FETCH           001404' \r
31024 FH              002221' \r
31025 FIR.            000025  SPD\r
31026 FIRARG          001410' \r
31027 FP1             002073' \r
31028 FP1A            002100' \r
31029 FP3             002101' \r
31030 FP3A            002112' \r
31031 FP4             002120' \r
31032 FP4A            002122' \r
31033 FP4B            002127' \r
31034 FP7             002135' \r
31035 FP7A            002140' \r
31036 FP7A1           002143' \r
31037 FP7B            002144' \r
31038 FPF             020000  \r
31039 FPWR            002217' \r
31040 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 77-3\r
31041         SYMBOL TABLE\r
31042 \r
31043 FRACT           002216' \r
31044 FRASE           002204' \r
31045 FRASE1          002210' \r
31046 FSGN            002166' \r
31047 FSV             002215' \r
31048 FT              002154' \r
31049 FT0             002163' \r
31050 FT01            002162' \r
31051 FT8             002150' \r
31052 FTERM           002220' \r
31053 FTOC            002003' \r
31054 GETW            002532' \r
31055 GETW1           002534' \r
31056 GLOBAL          040000  \r
31057 GO              001020' \r
31058 HALT    254200  000000  INT\r
31059 HLFW            001536' \r
31060 HWRDS           000771' \r
31061 ICON            000713' \r
31062 IFIX            003022' \r
31063 IJSA            001255' \r
31064 IJSP            001270' \r
31065 IJSR            001261' \r
31066 IJSR2           001263' \r
31067 IJSR3           001266' \r
31068 INDIRE          000607' \r
31069 INOUT           001572' \r
31070 INSRT1          001275' \r
31071 INSRT3          001303' \r
31072 INSRTB          001274' \r
31073 INST            003274' \r
31074 IPUSHJ          001251' \r
31075 ITF             000002  \r
31076 IXCT            001205' \r
31077 IXCT4           001203' \r
31078 IXCT5           001211' \r
31079 IXCT6           001240' \r
31080 JEN     254500  000000  INT\r
31081 JOBREL          000037  \r
31082 JOBSYM          000036  \r
31083 JOV     255400  000000  INT\r
31084 KILC            002200' \r
31085 KILL            000435' \r
31086 KILL1           000462' \r
31087 KILL2           000464' \r
31088 KILLA           000446' \r
31089 KILRET          000445' \r
31090 L1              000026' \r
31091 L1RPR           000030' \r
31092 L2              000035' \r
31093 L21             000050' \r
31094 L211            000055' \r
31095 L4              000062' \r
31096 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 77-4\r
31097         SYMBOL TABLE\r
31098 \r
31099 L5              000116' \r
31100 LCT             002662' \r
31101 LE1             000217' \r
31102 LE1A            000235' \r
31103 LE2             000236' \r
31104 LEAV            001241' \r
31105 LEAV1           001122' \r
31106 LET             000221' \r
31107 LET1            000234' \r
31108 LF              002660' \r
31109 LF1             002000  \r
31110 LI0             000652' \r
31111 LI1             000654' \r
31112 LI2             000663' \r
31113 LINEF           000651' \r
31114 LIS             000015' \r
31115 LIS0            000020' \r
31116 LIS1            000022' \r
31117 LIS2            000023' \r
31118 LISTEN          002714' \r
31119 LLOC            002226' \r
31120 LLOCO           002227' \r
31121 LOAD1           002417' \r
31122 LOAD2           002423' \r
31123 LOADB           002575' \r
31124 LOADE           002614' \r
31125 LOADER          002412' \r
31126 LOCAL           100000  \r
31127 LOOK            001420' \r
31128 LOOK1           001427' \r
31129 LOOK2           001447' \r
31130 LOOK3           001452' \r
31131 LOW     777777  777661' \r
31132 LPDL            000050  \r
31133 LPRN            000577' \r
31134 LPT     012400  000000  INT\r
31135 LTF             000020  \r
31136 LWT             002206' \r
31137 MASK            001612' \r
31138 MASK1           001620' \r
31139 MASK2           001615' \r
31140 MF              000002  \r
31141 MINUS           000574' \r
31142 MLF             000200  \r
31143 MSK             002235' \r
31144 MTC     022000  000000  INT\r
31145 MTM     023000  000000  INT\r
31146 MTS     022400  000000  INT\r
31147 MULT            000570' \r
31148 NAF             000200  \r
31149 NBP             000010  \r
31150 NM1             000251' \r
31151 NM1A            000255' \r
31152 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 77-5\r
31153         SYMBOL TABLE\r
31154 \r
31155 NM1A1           000257' \r
31156 NM1B            000264' \r
31157 NOMAT           003366' \r
31158 NOMAT1          003372' \r
31159 NSYMS           000116  \r
31160 NUM             000204' \r
31161 NUM1            000244' \r
31162 NWORD           001625' \r
31163 OCON            000702' \r
31164 ODF             000012  \r
31165 ODFM            002311' \r
31166 OPEV1           003312' \r
31167 OPEVAL          003305' \r
31168 OPTYPE          003315' \r
31169 OSYM            000703' \r
31170 OUTF            000004  \r
31171 P               000001  \r
31172 PAD             001543' \r
31173 PAD1            001562' \r
31174 PADS1           001547' \r
31175 PADS1A          001560' \r
31176 PADS2           001561' \r
31177 PADS3           001563' \r
31178 PADS3A          001564' \r
31179 PADS3B          001567' \r
31180 PADS4           001570' \r
31181 PADSO           001545' \r
31182 PBLK            002351' \r
31183 PBLK1           002354' \r
31184 PERC            000220' \r
31185 PERIOD          000313' \r
31186 PI      000400  000000  INT\r
31187 PI3             001504' \r
31188 PI3A            001507' \r
31189 PI3B            001510' \r
31190 PI4             001511' \r
31191 PI5             001515' \r
31192 PI7             001523' \r
31193 PI7.1           001531' \r
31194 PI8             001534' \r
31195 PID             000000  \r
31196 PILOC           000337' \r
31197 PIN             001467' \r
31198 PLT     014000  000000  INT\r
31199 PLUS            000575' \r
31200 PNAME           740000  \r
31201 PNTR            003273' \r
31202 POW2            000306' \r
31203 POWER           000271' \r
31204 POWF            004000  \r
31205 PRGM            002212' \r
31206 PRNC            002203' \r
31207 PROC0           001167' \r
31208 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 77-6\r
31209         SYMBOL TABLE\r
31210 \r
31211 PROC1           001175' \r
31212 PROC2           001200' \r
31213 PROCD1          001165' \r
31214 PROCED          001160' \r
31215 PRS             000004  \r
31216 PS              003540' \r
31217 PSR             002315' \r
31218 PSYM            000741' \r
31219 PTF             000100  \r
31220 PTP     010000  000000  INT\r
31221 PTPP            000100  \r
31222 PTR     010400  000000  INT\r
31223 PTRR            000104  \r
31224 PUN1            002333' \r
31225 PUN2            002327' \r
31226 PUNCH           002324' \r
31227 PUNZ            002365' \r
31228 PUNZ0           002364' \r
31229 PUNZ2           002375' \r
31230 PUNZ4           002401' \r
31231 PWRD            002440' \r
31232 PWRD2           002441' \r
31233 Q2F             000001  \r
31234 QF              000001  \r
31235 QUAN            000336' \r
31236 QUAN1           000340' \r
31237 QUAN2           000341' \r
31238 QUEST1          000170' \r
31239 QUEST2          000173' \r
31240 QUEST3          000176' \r
31241 QUEST4          000202' \r
31242 QUESTN          000166' \r
31243 R               000002  \r
31244 R50PNT          000745' \r
31245 RD              000003  \r
31246 RELA            000777' \r
31247 REMOV1          001310' \r
31248 REMOV3          001313' \r
31249 REMOVB          001307' \r
31250 REMUN           000470' \r
31251 RES1            002646' \r
31252 RESTOR          002637' \r
31253 RESTR1          002640' \r
31254 RET             000134' \r
31255 ROF             000010  \r
31256 RPRN            000627' \r
31257 RPRN1           000646' \r
31258 RUNEND          002530' \r
31259 S               000003  \r
31260 SAF             002000  \r
31261 SARS            002312' \r
31262 SAV1            002622' \r
31263 SAV5            002631' \r
31264 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 77-7\r
31265         SYMBOL TABLE\r
31266 \r
31267 SAVE            002615' \r
31268 SAVPDL          003300' \r
31269 SAVPI           002231' \r
31270 SAVTTY          002233' \r
31271 SBF             000020  \r
31272 SCH             000010  \r
31273 SCHM            002307' \r
31274 SEAR1           001642' \r
31275 SEAR2           001650' \r
31276 SEAR2A          001651' \r
31277 SEAR3           001655' \r
31278 SEAR4           001675' \r
31279 SEARC           001627' \r
31280 SEMIC           001016' \r
31281 SET1            000556' \r
31282 SET2            000557' \r
31283 SETNAM          000555' \r
31284 SETUP           001722' \r
31285 SETUP1          001723' \r
31286 SETUP2          001725' \r
31287 SF              000004  \r
31288 SFLOT           000772' \r
31289 SIXBI1          000421' \r
31290 SIXBI2          000431' \r
31291 SIXBIN          000422' \r
31292 SIXBP           000753' \r
31293 SIXBP1          000755' \r
31294 SLAS1           000711' \r
31295 SLASH           000706' \r
31296 SLL             010000  \r
31297 SPAC1           000625' \r
31298 SPACE           000623' \r
31299 SPSAV           002223' \r
31300 SPT             002030' \r
31301 SPT0            002027' \r
31302 SPT1            002033' \r
31303 SPT2            002037' \r
31304 SPT3            002047' \r
31305 SPT4            002031' \r
31306 SPTX            002050' \r
31307 STARTA          002234' \r
31308 STF             004000  \r
31309 SUPTYO          000705' \r
31310 SVBT2           003077' \r
31311 SVBT3           003076' \r
31312 SVBTS           003074' \r
31313 SVBTS2          003075' \r
31314 SYL             002205' \r
31315 SYM             002222' \r
31316 SYMBOL          000773' \r
31317 SYMD            002052' \r
31318 SYMP            002230' \r
31319 T               000005  \r
31320 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 77-8\r
31321         SYMBOL TABLE\r
31322 \r
31323 TAB             000717' \r
31324 TAG             000477' \r
31325 TBL             003100' \r
31326 TBL1            000011  \r
31327 TBL2            000014  \r
31328 TDC     032000  000000  INT\r
31329 TDS     032400  000000  INT\r
31330 TEM             002313' \r
31331 TEM1            002314' \r
31332 TEM2            002207' \r
31333 TEM3            002210' \r
31334 TEXI            000375' \r
31335 TEXI2           000407' \r
31336 TEXI3           000415' \r
31337 TEXIN           002740' \r
31338 TEXO            000763' \r
31339 TEXT            002171' \r
31340 TEXT2           002173' \r
31341 TEXTT           002170' \r
31342 TFLOT           002060' \r
31343 TFLOT1          002070' \r
31344 TIF             100000  \r
31345 TIN             002666' \r
31346 TMC     034000  000000  INT\r
31347 TMS     034400  000000  INT\r
31348 TOC             002003' \r
31349 TOC1            002010' \r
31350 TOC2            002014' \r
31351 TOC3            002012' \r
31352 TOC4            002017' \r
31353 TOC5            002023' \r
31354 TOC6            002025' \r
31355 TOCA            002006' \r
31356 TOUT            002676' \r
31357 TSPC            002664' \r
31358 TTY     012000  000000  INT\r
31359 TTY1            002722' \r
31360 TTYLEV          002732' \r
31361 TTYRET          002721' \r
31362 TTYY            000120  \r
31363 TXT             003276' \r
31364 ULIM            001413' \r
31365 ULIM1           001415' \r
31366 ULIMIT          002225' \r
31367 UND1            000137' \r
31368 UNDEF           000125' \r
31369 VARRW           000674' \r
31370 VER2            002500' \r
31371 VER3            002526' \r
31372 VERIFY          002456' \r
31373 W               000004  \r
31374 W1              000006  \r
31375 W2              000007  \r
31376 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 77-9\r
31377         SYMBOL TABLE\r
31378 \r
31379 WORD            001624' \r
31380 WRD             002201' \r
31381 WRD2            002202' \r
31382 WRONG           000127' \r
31383 WRONG1          000130' \r
31384 XEC             001024' \r
31385 XEC0            001026' \r
31386 XEC1            001034' \r
31387 ZERO            001747' \r
31388 ZERO1           001752' \r
31389 ZERO2           001757' \r
31390 ZEROR           001776' \r
31391 ZLOW            000040  \r
31392 ZZ              000010  \r
31393 $1B             002236' INT\r
31394 $2B             002241' INT\r
31395 $3B             002244' INT\r
31396 $4B             002247' INT\r
31397 $5B             002252' INT\r
31398 $6B             002255' INT\r
31399 $7B             002260' INT\r
31400 $8B             002263' INT\r
31401 $I              002231' INT\r
31402 $M              002235' INT\r
31403 %A              000207  SPD\r
31404 %AC1            000573  SPD\r
31405 %AC2            000577  SPD\r
31406 %ACBM           000564  SPD\r
31407 %ACCP           000466  SPD\r
31408 %AN             000616  SPD\r
31409 %AO             000356  SPD\r
31410 %AOB            000402  SPD\r
31411 %B              000221  SPD\r
31412 %B2             000650  SPD\r
31413 %BD             000025  SPD\r
31414 %BIMB           000301  SPD\r
31415 %BOOLE          000614  SPD\r
31416 %BPUT           000134  SPD\r
31417 %BYTE           000223  SPD\r
31418 %C              000464  SPD\r
31419 %CA             000654  SPD\r
31420 %CA1            000504  SPD\r
31421 %CB             000666  SPD\r
31422 %CM             000660  SPD\r
31423 %COMP           000522  SPD\r
31424 %DP             000254  SPD\r
31425 %DV             000335  SPD\r
31426 %DV1            000340  SPD\r
31427 %DV2            000342  SPD\r
31428 %E              000525  SPD\r
31429 %EAN            000607  SPD\r
31430 %EIMS           000311  SPD\r
31431 %F              000137  SPD\r
31432 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 77-10\r
31433         SYMBOL TABLE\r
31434 \r
31435 %FLO            000170  SPD\r
31436 %H1             000344  SPD\r
31437 %HAK            000257  SPD\r
31438 %HW1            000550  SPD\r
31439 %HW2            000546  SPD\r
31440 %HW3            000555  SPD\r
31441 %HW4            000554  SPD\r
31442 %HWT            000540  SPD\r
31443 %I              000304  SPD\r
31444 %IMB            000302  SPD\r
31445 %IMS            000320  SPD\r
31446 %IO             000036  SPD\r
31447 %J              000440  SPD\r
31448 %JP             000405  SPD\r
31449 %JS             000476  SPD\r
31450 %L              000215  SPD\r
31451 %LD             000247  SPD\r
31452 %LMB            000213  SPD\r
31453 %M              000217  SPD\r
31454 %ML             000326  SPD\r
31455 %ML1            000331  SPD\r
31456 %MO             000310  SPD\r
31457 %MV             000261  SPD\r
31458 %N              000534  SPD\r
31459 %O              000153  SPD\r
31460 %OI             000041  SPD\r
31461 %OR             000627  SPD\r
31462 %P              000243  SPD\r
31463 %PA             000432  SPD\r
31464 %PO             000415  SPD\r
31465 %POP            000443  SPD\r
31466 %PSJ            000521  SPD\r
31467 %PU             000407  SPD\r
31468 %PUS            000437  SPD\r
31469 %R              000423  SPD\r
31470 %S              000324  SPD\r
31471 %S1             000462  SPD\r
31472 %S2             000456  SPD\r
31473 %S3             000457  SPD\r
31474 %SH             000446  SPD\r
31475 %SJ             000511  SPD\r
31476 %ST             000645  SPD\r
31477 %T              000353  SPD\r
31478 %TA             000662  SPD\r
31479 %TM             000656  SPD\r
31480 %U40            000101  SPD\r
31481 %U47            000114  SPD\r
31482 %U50            000700  SPD\r
31483 %U60            000123  SPD\r
31484 %U603           000144  SPD\r
31485 %U6062          000157  SPD\r
31486 %U62            000163  SPD\r
31487 %U703           000724  SPD\r
31488 \r\fEDDT   V.005A  - EXEC MODE VERSION                 PAGE 77-11\r
31489         SYMBOL TABLE\r
31490 \r
31491 %USET           000072  SPD\r
31492 %UUO            000044  SPD\r
31493 %Z              000155  SPD\r
31494 \fLLL                     OOOOOOOOO            AAAAAAAAA         DDDDDDDDDDDD         EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
31495 LLL                     OOOOOOOOO            AAAAAAAAA         DDDDDDDDDDDD         EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
31496 LLL                     OOOOOOOOO            AAAAAAAAA         DDDDDDDDDDDD         EEEEEEEEEEEEEEE      RRRRRRRRRRRR   \r
31497 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR         RRR\r
31498 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR         RRR\r
31499 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR         RRR\r
31500 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR         RRR\r
31501 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR         RRR\r
31502 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR         RRR\r
31503 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEEEEEEEEEEE         RRRRRRRRRRRR   \r
31504 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEEEEEEEEEEE         RRRRRRRRRRRR   \r
31505 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEEEEEEEEEEE         RRRRRRRRRRRR   \r
31506 LLL                  OOO         OOO      AAAAAAAAAAAAAAA      DDD         DDD      EEE                  RRR   RRR      \r
31507 LLL                  OOO         OOO      AAAAAAAAAAAAAAA      DDD         DDD      EEE                  RRR   RRR      \r
31508 LLL                  OOO         OOO      AAAAAAAAAAAAAAA      DDD         DDD      EEE                  RRR   RRR      \r
31509 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR      RRR   \r
31510 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR      RRR   \r
31511 LLL                  OOO         OOO      AAA         AAA      DDD         DDD      EEE                  RRR      RRR   \r
31512 LLLLLLLLLLLLLLL         OOOOOOOOO         AAA         AAA      DDDDDDDDDDDD         EEEEEEEEEEEEEEE      RRR         RRR\r
31513 LLLLLLLLLLLLLLL         OOOOOOOOO         AAA         AAA      DDDDDDDDDDDD         EEEEEEEEEEEEEEE      RRR         RRR\r
31514 LLLLLLLLLLLLLLL         OOOOOOOOO         AAA         AAA      DDDDDDDDDDDD         EEEEEEEEEEEEEEE      RRR         RRR\r
31515 \r
31516 \r
31517 \r
31518 \r
31519 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
31520 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
31521 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
31522 LLL                  SSS                        TTT                                                                     \r
31523 LLL                  SSS                        TTT                                                                     \r
31524 LLL                  SSS                        TTT                                                                     \r
31525 LLL                  SSS                        TTT                                                                     \r
31526 LLL                  SSS                        TTT                                                                     \r
31527 LLL                  SSS                        TTT                                                                     \r
31528 LLL                     SSSSSSSSS               TTT                                                                     \r
31529 LLL                     SSSSSSSSS               TTT                                                                     \r
31530 LLL                     SSSSSSSSS               TTT                                                                     \r
31531 LLL                              SSS            TTT                                                                     \r
31532 LLL                              SSS            TTT                                                                     \r
31533 LLL                              SSS            TTT                                                                     \r
31534 LLL                              SSS            TTT                                                                     \r
31535 LLL                              SSS            TTT                                                                     \r
31536 LLL                              SSS            TTT                                                                     \r
31537 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
31538 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
31539 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
31540 \r
31541 \r
31542 \r
31543 \r
31544 Request created: 24-April-1978  11:23:08\r
31545 File: DSKB1 :LOADER.LST   [8,200] Created: 20-April-1967 11:18:00 Printed: 24-April-1978 11:22:29
31546 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1855 \r
31547 File will be deleted after printing\r
31548 \f\rLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 1\r
31549         DICK GRUEN: V25 3 AUG 68\r
31550 \r
31551                                         SUBTTL  DICK GRUEN: V25 3 AUG 68\r
31552 \r
31553 \r
31554                                 ;K=1                    ;K=1  MEANS 1KLOADER\r
31555                                 IFNDEF  K,<K=0>         ;K=0  MEANS F4 LOADER\r
31556 \r
31557                                 ;RPGSW=1                ;MEANS RPG FEATURE\r
31558                                 IFNDEF RPGSW,<RPGSW=0>\r
31559                                 ;LDAC=1                 ;MEANS LOAD CODE INTO ACS\r
31560                                 IFNDEF LDAC,<LDAC=0>\r
31561 \r
31562                                 ;BLTSYM=1               ;MOVE SYMBOL TABLE DOWN TO END OF PROG\r
31563                                 IFNDEF BLTSYM,<BLTSYM=0>\r
31564 \r
31565                                 ;EXPAND=1               ;FOR AUTOMATIC CORE EXPANSION\r
31566                                 IFNDEF EXPAND,< IFN K,<EXPAND=0>\r
31567                                                 IFE K,<EXPAND=1>>\r
31568 \r
31569                                 ;PP=1                   ;ALLOW PROJ-PROG #\r
31570                                 IFNDEF PP,<PP=0>\r
31571 \r
31572                                 ;CHN5=0                 ;IF CHAIN WHICH DOESN'T SAVES JOB41\r
31573                                 IFNDEF CHN5,<CHN5=1>\r
31574 \r
31575                                 IFE K,< TITLE   LOADER - LOADS MACROX AND SIXTRAN FOUR>\r
31576                                 IFN K,< TITLE   1KLOAD - LOADS MACROX>\r
31577 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 2\r
31578         DICK GRUEN: V25 3 AUG 68\r
31579 \r
31580                                 ;ACCUMULATOR ASSIGNMENTS\r
31581                         000000          F=0             ;FLAGS IN LH, SA IN RH\r
31582                         000001          N=1             ;PROGRAM NAME POINTER\r
31583                         000002          X=2             ;LOADER OFFSET\r
31584                         000003          H=3             ;HIGHEST LOC LOADED\r
31585                         000004          S=4             ;UNDEFINED POINTER\r
31586                         000005          R=5             ;RELOCATION CONSTANT\r
31587                         000006          B=6             ;SYMBOL TABLE POINTER\r
31588                         000007          D=7\r
31589                         000010          T=10\r
31590                         000011          V=T+1\r
31591                         000012          W=12            ;VALUE\r
31592                         000013          C=W+1           ;SYMBOL\r
31593                         000014          E=C+1           ;DATA WORD COUNTER\r
31594                         000015          Q=15            ;RELOCATION BITS\r
31595                         000016          A=Q+1           ;SYMBOL SEARCH POINTER\r
31596                         000017          P=17            ;PUSHDOWN POINTER\r
31597                                 ;FLAGS  F(0 - 17)\r
31598                         000001          CSW==1                  ;ON - COLON SEEN\r
31599                         000002          ESW==2                  ;ON - EXPLICIT EXTENSION IDENT.\r
31600                         000004          SKIPSW==4               ;ON - DO NOT LOAD THIS PROGRAM\r
31601                         000010          FSW==10                 ;ON - SCAN FORCED TO COMPLETION\r
31602                         000020          FCONSW==20              ;ON - FORCE CONSOLE OUTPUT\r
31603                         000100          ASW==100                ;ON - LEFT ARROW ILLEGAL\r
31604                         000200          FULLSW==200             ;ON - STORAGE EXCEEDED\r
31605                         000400          SLIBSW==400             ;ON - LIB SEARCH IN THIS PROG\r
31606                         001000          DSYMSW==1000            ;ON - LOAD WITH SYMBOLS FOR DDT\r
31607                         002000          REWSW==2000             ;ON - REWIND AFTER INIT\r
31608                         004000          LIBSW==4000             ;ON - LIBRARY SEARCH MODE\r
31609                         010000          F4LIB==10000            ;ON - F4 LIBRARY SEARCH LOOKUP\r
31610                         020000          ISW==20000              ;ON - DO NOT PERFORM INIT\r
31611                         040000          SYMSW==40000            ;ON - LOAD LOCAL SYMBOLS\r
31612                         100000          DSW==100000             ;ON - CHAR IN IDENTIFIER\r
31613                         200000          NSW==200000             ;ON - SUPPRESS LIBRARY SEARCH\r
31614                         400000          SSW==400000             ;ON - SWITCH MODE\r
31615                                 ;FLAGS  N(0 - 17)\r
31616                         000001          ALLFLG==1               ;ON - LIST ALL GLOBALS\r
31617                         000002          ISAFLG==2               ;ON - IGNORE STARTING ADDRESSES\r
31618                         000004          COMFLG==4               ;ON - SIZE OF COMMON SET\r
31619                         000010  IFE K,< F4SW==10                ;F4 IN PROGRESS\r
31620                         000020          RCF==20                 ;READ DATA COUNT\r
31621                         000040          SYDAT==40               ;SYMBOL IN DATA>\r
31622                         000100          SLASH==100              ;SLASH SEEN\r
31623                         000200  IFE K,< BLKD1==200              ;ON- FIRST BLOCK DATA SEEN\r
31624                         000400          PGM1==400               ;ON FIRST F4 PROG SEEN\r
31625                         001000          DZER==1000              ;ON - ZERO SECOND DATA WORD>\r
31626                         002000          EXEQSW==2000            ;IMMEDIATE EXECUTION\r
31627                         004000          DDSW==4000              ;GO TO DDT\r
31628                                 IFN RPGSW,<RPGF==10000          ;IN RPG MODE>\r
31629                         020000          AUXSWI==20000           ;ON - AUX. DEVICE INITIALIZED\r
31630                         040000          AUXSWE==40000           ;ON - AUX. DEVICE ENTERED\r
31631                                 IFN PP,<PPSW==100000            ;ON - READING PROJ-PROG #\r
31632                                         PPCSW==200000           ;ON - READING PROJ #>\r
31633 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 3\r
31634         DICK GRUEN: V25 3 AUG 68\r
31635 \r
31636         000137                  LOC     137\r
31637         000137  000000  000025  OCT 25          ;VERSION #\r
31638         000000'                 RELOC\r
31639                                         MLON\r
31640                                         SALL\r
31641 \r
31642 \r
31643 \r
31644                                 ;MONITOR LOCATIONS IN THE USER AREA\r
31645 \r
31646                         000140          JOBPRO==140             ;PROGRAM ORIGIN\r
31647                         000134          JOBBLT==134             ;BLT ORIGIN\r
31648                         000131          JOBCHN==131             ;RH = PROG BREAK OF FIRST BLOCK DATA\r
31649                                                                 ;LH = PROG BREAK OF FIRST F4 PROG\r
31650 \r
31651                                 ;CALLI DEFINITIONS\r
31652 \r
31653                         000003  CDDTOUT==3      ;CALLI DDTOUT\r
31654                         000012  CEXIT==12       ;CALLI EXIT\r
31655                         000005  CDDTGT==5       ;CALLI DDTGT\r
31656                         000002  CSETDDT==2      ;CALLI SETDDT\r
31657 \r
31658                                 ;LENGTH OF PUSHDOWN LIST FOR POLISH FIXUPS\r
31659 \r
31660                         000060  PPDL==60\r
31661 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 4\r
31662         DICK GRUEN: V25 3 AUG 68\r
31663 \r
31664                                 IFN RPGSW,<\r
31665                                 RPGSET: CALLI 0\r
31666                                         INIT 17,1       ;SET UP DSK\r
31667                                         SIXBIT /DSK/\r
31668                                         XWD 0,CTLIN\r
31669                                         JRST NUTS\r
31670                                         MOVE [SIXBIT /QQLOAD/]  ;NAME OF COMMAND FILE\r
31671                                         MOVEM CTLNAM\r
31672                                         MOVSI (SIXBIT /RPG/)    ;AND EXT\r
31673                                         MOVEM CTLNAM+1\r
31674                                         SETZM CTLNAM+3\r
31675                                         LOOKUP 17,CTLNAM        ;THERE?\r
31676                                         JRST NUTS       ;NO\r
31677                                         INIT 16,16      ;GET SET TO DELETE QQLOAD.RPG\r
31678                                         SIXBIT /DSK/\r
31679                                         0\r
31680                                         JRST LD         ;GIVE UP COMPLETELY\r
31681                                         SETZM CTLNAM+3\r
31682                                         HLLZS CTLNAM+1  ;CLEAR OUT EXTRA JUNK\r
31683                                         LOOKUP 16,CTLNAM\r
31684                                         JRST LD\r
31685                                         RENAME 16,ZEROS ;DELETE IT\r
31686                                         JFCL            ;IGNORE IF IT WILL NOT GO\r
31687                                         RELEASE 16,0    ;GET RID OF THIS DEVICE\r
31688                                         SETZM NONLOD    ;THIS IS NOT A CONTINUATION\r
31689                                 RPGS3:  MOVEI CTLBUF\r
31690                                         MOVEM JOBFF     ;SET UP BUFFER\r
31691                                         INBUF 17,1\r
31692                                         MOVEI [ASCIZ /\r
31693                                 LOADING\r
31694                                 /]              ;PRINT MESSAGE THAT WE ARE STARTING\r
31695                                         CALLI CDDTOUT\r
31696                                         SKIPE NONLOD    ;CONTINUATION?\r
31697                                         JRST RPGS2      ;YES, SPECIAL SETUP\r
31698                                         MOVSI R,F.I     ;NOW SO WE CAN SET FLAG\r
31699                                         BLT R,R\r
31700                                         TLO N,RPGF\r
31701                                         JRST CTLSET     ;SET UP TTY\r
31702                                 RPGS1:  PUSHJ P,[TLNE F,ESW     ;HERE FROM FOO* COMMAND, STORE NAME\r
31703                                                 JRST LDDT3      ;SAVE EXTENSION\r
31704                                                 TLZE F,CSW!DSW   ;OR AS NAME\r
31705                                                 MOVEM W,DTIN\r
31706                                                 POPJ P,]\r
31707                                         MOVEM 0,SVRPG#  ;SAVE 0 JUST IN CASE\r
31708                                         SETZM NONLOD#   ;DETERMINE IF CONTINUATION\r
31709                                         MOVEI 0,2(B)    ;BY SEEING IF ANY SYMBOLS LOADED\r
31710                                         CAME 0,JOBREL\r
31711                                         SETOM NONLOD    ;SET TO -1 AND SKIP CALLI\r
31712                                         MOVE 0,ILD1\r
31713                                         MOVEM 0,RPG1\r
31714                                         INIT 17,1\r
31715                                 RPG1:   0\r
31716                                         XWD 0,CTLIN\r
31717 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 4-1\r
31718         DICK GRUEN: V25 3 AUG 68\r
31719 \r
31720                                         JSP A,ILD5\r
31721                                         LOOKUP 17,DTIN  ;THE FILE NAME\r
31722                                         JRST ILD9\r
31723                                         JRST RPGS3\r
31724                                 \r
31725                                 RPGS2:  MOVSI 0,RPGF    ;SET FLAG\r
31726                                         IORM 0,F.C+N\r
31727                                         TLO N,RPGF\r
31728                                         MOVE 0,SVRPG\r
31729                                         JRST LD2Q       ;BACK TO INPUT SCANNING\r
31730                                 >\r
31731 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 5\r
31732         DICK GRUEN: V25 3 AUG 68\r
31733 \r
31734 \r
31735                                 ;MONITOR LOADER CONTROL\r
31736 \r
31737         000000'                 BEG:\r
31738                                 LD:     IFN RPGSW,<SKIPA        ;NORMAL INITIALIZE\r
31739                                         JRST RPGSET     ;SPECIAL INIT>\r
31740         000000' 513000  000042          HLLZS 42        ;GET RID OF ERROR COUNT IF NOT IN RPG MODE\r
31741         000001' 047000  000000          CALLI   0               ;INITIALIZE THIS JOB\r
31742         000002' 205240  002031' NUTS:   MOVSI     R,F.I         ;SET UP INITIAL ACCUMULATORS\r
31743         000003' 251240  000005          BLT     R,R             \r
31744         000004' 041140  000001  CTLSET: INIT    3,1             ;INITIALIZE CONSOLE\r
31745         000005' 646471  000000          SIXBIT    /TTY/\r
31746         000006' 002040' 002043'         XWD     BUFO,BUFI\r
31747         000007' 047000  000012  CALLEX: CALLI   CEXIT           ;DEVICE ERROR, FATAL TO JOB\r
31748         000010' 201600  002064'         MOVEI     E,TTY1\r
31749         000011' 202600  000000*         MOVEM     E,JOBFF\r
31750         000012' 064140  000001          INBUF     3,1\r
31751         000013' 065140  000001          OUTBUF    3,1           ;INITIALIZE OUTPUT BUFFERS\r
31752         000014' 067140  000000          OUTPUT    3,                    ;DO INITIAL REDUNDANT OUTPUT\r
31753         000015' 550300  000000*         HRRZ    B,JOBREL        ;PICK UP CORE BOUND\r
31754         000016' 332000  000000*         SKIPE   JOBDDT          ;DOES DDT EXIST?\r
31755         000017' 550300  000000*         HRRZ    B,JOBSYM        ;USED BOTTOM OF SYMBOL TABLE INSTEAD\r
31756         000020' 274300  001753'         SUB     B,SE3           ;INITIALIZE SYMBOL TABLE POINTER\r
31757         000021' 303146  000001          CAILE     H,1(B)                ;TEST CORE ALLOCATION\r
31758         000022' 047000  000012          CALLI   CEXIT           ;INSUFFICIENT CORE, FATAL TO JOB\r
31759         000023' 204600  000002          MOVS    E,X             ;SET UP BLT POINTER\r
31760         000024' 541602  000001          HRRI    E,1(X)\r
31761         000025' 402014  777777          SETZM     -1(E)                 ;ZERO FIRST WORD\r
31762         000026' 251606  000000          BLT     E,(B)           ;ZERO CORE UP TO THE SYMBOL AREA\r
31763         000027' 550200  000006          HRRZ    S,B             ;INITIALIZE UNDEF. POINTER\r
31764         000030' 540040  000006          HRR     N,B             ;INITIALIZE PROGRAM NAME POINTER\r
31765         000031' 541240  000140          HRRI    R,JOBPRO        ;INITIALIZE THE LOAD ORIGIN\r
31766         000032' 200600  001756'         MOVE    E,COMM          ;SET .COMM. AS THE FIRST PROGRAM\r
31767         000033' 202606  000001          MOVEM     E,1(B)                ;STORE IN SYMBOL TABLE\r
31768         000034' 552246  000002          HRRZM     R,2(B)                ;STORE COMMON ORIGIN\r
31769         000035' 201600  002022'         MOVEI     E,F.C         ;INITIALIZE STATE OF THE LOADER\r
31770         000036' 251600  002030'         BLT     E,B.C\r
31771         000037' 402000  001761'         SETZM   MDG             ;MULTIPLY DEFINED GLOBAL COUNT\r
31772         000040' 205500  254200          MOVSI   W,254200        ;STORE HALT IN JOB41\r
31773         000041' 202502  000000*         MOVEM   W,JOB41(X)      ;...\r
31774                                 IFN LDAC!BLTSYM,<MOVEI W,20     ;SET UP SPACE TO SAVE FOR ACS AND\r
31775                                         MOVEM W,KORSP#  ;USER DEFINITIONS WITH DDT>\r
31776 \r
31777 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 6\r
31778         DICK GRUEN: V25 3 AUG 68\r
31779 \r
31780 \r
31781                                 IFN RPGSW,<JRST LD2Q>\r
31782                                 LD2:    IFN RPGSW,<MOVSI B,RPGF ;HERE ON ERRORS, TURN OFF RPG\r
31783                                         ANDCAM B,F.C+N  ;IN CORE>\r
31784                                 ;LOADER SCAN FOR FILE NAMES\r
31785 \r
31786         000042' 205300  002022' LD2Q:   MOVSI     B,F.C         ;RESTORE ACCUMULATORS\r
31787         000043' 251300  000006          BLT     B,B\r
31788         000044' 200740  001755'         MOVE    P,PDLPT         ;INITIALIZE PUSHDOWN LIST\r
31789         000045' 402000  002045'         SETZM     BUFI2         ;CLEAR INPUT BUFFER POINTER\r
31790         000046' 402000  000616' IFE PP,<        SETZM     ILD1          ;CLEAR INPUT DEVICE NAME>\r
31791                                 IFN PP,<        MOVSI T,(SIXBIT /DSK/)  ;ASSUME DSK\r
31792                                         MOVEM T,ILD1\r
31793                                         SETZM OLDDEV#   ;TO MAKE IT GO BACK AFTER /D FOR LIBSR>\r
31794         000047' 402000  002054'         SETZM     DTIN          ;CLEAR INPUT FILE NAME\r
31795                                 IFN PP,<SETZM   PPN#            ;CLEAR INPUT PROJ-PROG #>\r
31796 \r
31797         000050' 071040  000000  LD2B:   RELEAS    1,                    ;RELEASE BINARY INPUT DEVICE\r
31798                                 IFN RPGSW,<     TLNE N,RPGF     ;NOT IF DOING RPG\r
31799                                         JRST LD2BA>\r
31800         000051' 201400  000052          MOVEI     T,"*"\r
31801         000052' 136400  002041'         IDPB    T,BUFO1         ;OUTPUT ASTERISK TO START INPUT\r
31802         000053' 067140  000000          OUTPUT    3,\r
31803         000054' 621000  022707  LD2BA:  TLZ     F,FULLSW+ASW+ISW+CSW+ESW+SKIPSW+SLIBSW+REWSW\r
31804         000055' 603000  004000          TLNE    F,LIBSW         ;WAS LIBRARY MODE ON?\r
31805         000056' 661000  000004          TLO     F,SKIPSW        ;YES, NORMAL MODE IS SKIPPING\r
31806 \r
31807                                 LD2D:   IFN PP,<SETZM PPN       ;DO NOT REMEMBER PPNS FOR NOW\r
31808                                 LD2DB:  SKIPE W,OLDDEV  ;RESET DEVICE IF NEEDED\r
31809                                         CAMN W,ILD1     ;IS IT SAME?\r
31810                                         JRST LD2DA      ;YES, FORGET IT\r
31811                                         TLZ F,ISW+DSW+FSW+REWSW\r
31812                                         MOVEM W,ILD1>\r
31813         000057'                 LD2DA:\r
31814                                 IFN RPGSW,<     SETZM DTIN1     ;CLEAR EXTENSION>\r
31815         000057' 201500  000000          MOVEI     W,0           ;INITIALIZE IDENTIFIER SCAN\r
31816         000060' 201600  000006          MOVEI     E,6           ;INITIALIZE CHARACTER COUNTER\r
31817         000061' 200440  001754'         MOVE    V,LSTPT         ;INITIALIZE BYTE POINTER TO W\r
31818         000062' 621000  500010          TLZ     F,SSW+DSW+FSW   ;LEAVE SWITCH MODE\r
31819                                 LD3:    IFN RPGSW,<TLNE N,RPGF  ;CHECK RPG FEATURE\r
31820                                         JRST RPGRD>\r
31821         000063' 377000  002045'         SOSG BUFI2      ;DECREMENT CHARACTER COUNT\r
31822         000064' 066140  000000          INPUT     3,                    ;FILL TTY BUFFER\r
31823         000065' 134400  002044'         ILDB    T,BUFI1         ;LOAD T WITH NEXT CHARACTER\r
31824         000066' 200640  000010  LD3AA:  MOVE    Q,T\r
31825         000067' 231640  000011          IDIVI     Q,11          ;TRANSLATE TO 4 BIT CODE\r
31826         000070' 135656  000561'         LDB     Q,LD8(A)                ;LOAD CLASSIFICATION CODE\r
31827         000071' 305640  000004          CAIGE     Q,4           ;MODIFY CODE IF .GE. 4\r
31828         000072' 607000  400000          TLNN    F,SSW           ;MODIFY CODE IF SWITCH MODE OFF\r
31829         000073' 271640  000004          ADDI    Q,4             ;MODIFY CLASS. CODE FOR DISPATCH\r
31830         000074' 550715  000100'         HRRZ    A,LD3A(Q)               ;LOAD RH DISPATCH ENTRY\r
31831         000075' 301640  000010          CAIL    Q,10            ;SKIP IF CORRECT DISPATCH ENTRY\r
31832         000076' 554715  000070'         HLRZ    A,LD3A-10(Q)    ;LOAD LH DISPATCH ENTRY\r
31833 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 6-1\r
31834         DICK GRUEN: V25 3 AUG 68\r
31835 \r
31836         000077' 254020  000016          JRST    @A                      ;JUMP TO INDICATED LOCATION\r
31837 \r
31838                                 ;COMMAND DISPATCH TABLE\r
31839 \r
31840         000100' 000063' 000542' LD3A:   XWD     LD3,LD7B                ;IGNORED CHAR, BAD CHAR (SWITCH)\r
31841         000101' 000461' 000466'         XWD     LD6A,LD6                ;</> OR <(>, LETTER (SWITCH)\r
31842         000102' 000115' 000524'         XWD     LD5,LD6C                ;<:>, DIGIT (SWITCH ARG.)\r
31843         000103' 000127' 000527'         XWD     LD5A,LD6D               ;<.>, ESCAPE SWITCH MODE <)>\r
31844         000104' 000145' 000533'         XWD     LD5C,LD7                ;<=> OR <L. ARROW>, BAD CHAR.\r
31845         000105' 000134' 000110'         XWD     LD5B,LD4                ;<,>, ALPHABETIC CHAR.\r
31846         000106' 000201' 000110'         XWD     LD5D,LD4                ;<CR.>, NUMERIC CHAR.\r
31847         000107' 000205' 000533'         XWD     LD5E1,LD7               ;<ALT MODE>, BAD CHAR. <)>\r
31848 \r
31849                                 IFN RPGSW,<RPGRD:       SOSG CTLIN+2    ;CHECK CHARACTER COUNT\r
31850                                         JRST    [IN 17,0\r
31851                                                 JRST .+1        ;OK\r
31852                                                 STATO 17,740000\r
31853                                                 JRST LD2\r
31854                                                 JSP A,ERRPT\r
31855                                                 SIXBIT /ERROR WHILE READING COMMAND FILE%/\r
31856                                                 JRST LD2]\r
31857                                         IBP CTLIN+1     ;ADVANCE POINTER\r
31858                                         MOVE T,@CTLIN+1 ;AND CHECK FOR LINE #\r
31859                                         TRNE T,1\r
31860                                         JRST    [MOVNI T,5\r
31861                                                 ADDM T,CTLIN+2\r
31862                                                 AOS CTLIN+1\r
31863                                                 JRST RPGRD      ];GO READ AGAIN\r
31864                                         LDB T,CTLIN+1   ;GET CHR\r
31865                                         JRST LD3AA      ;PASS IT ON>\r
31866 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 7\r
31867         DICK GRUEN: V25 3 AUG 68\r
31868 \r
31869                                 ;ALPHANUMERIC CHARACTER, NORMAL MODE\r
31870         000110' 361600  000063' LD4:    SOJL    E,LD3           ;JUMP IF NO SPACE FOR CHAR IN W\r
31871         000111' 275400  000040          SUBI    T,40            ;CONVERT FROM ASCII TO SIXBIT\r
31872         000112' 136400  000011          IDPB    T,V             ;DEPOSIT CHAR OF IDENTIFIER IN W\r
31873         000113' 661000  100000          TLO     F,DSW           ;SET IDENTIFIER FLAG\r
31874         000114' 254000  000063'         JRST    LD3             ;RETURN FOR NEXT CHARACTER\r
31875 \r
31876                                 ;DEVICE IDENTIFIER DELIMITER <:>\r
31877 \r
31878         000115' 261740  000012  LD5:    PUSH    P,W             ;SAVE W\r
31879         000116' 663000  000001          TLOE    F,CSW           ;TEST AND SET COLON FLAG\r
31880         000117' 260740  000752'         PUSHJ     P,LDF         ;FORCE LOADING\r
31881         000120' 262740  000012          POP     P,W             ;RESTORE W\r
31882         000121' 603000  000002          TLNE    F,ESW           ;TEST SYNTAX\r
31883         000122' 254000  000536'         JRST    LD7A            ;ERROR, MISSING COMMA ASSUMED\r
31884         000123' 322500  000057'         JUMPE     W,LD2D                ;JUMP IF NULL DEVICE IDENTIFIER\r
31885         000124' 202500  000616'         MOVEM     W,ILD1                ;STORE DEVICE IDENTIFIER\r
31886                                 IFN PP,<MOVEM W,OLDDEV  ;WE HAVE A NEW ONE SO IGNORE OLD>\r
31887         000125' 621000  122010          TLZ     F,ISW+DSW+FSW+REWSW     ;CLEAR OLD DEVICE FLAGS\r
31888                                 IFN PP,<SETZM   PPN             ;CLEAR OLD PP #>\r
31889         000126' 254000  000057'         JRST    LD2D            ;RETURN FOR NEXT IDENTIFIER\r
31890 \r
31891                                 ;FILE NAME EXTENSION IDENTIFIER DELIMITER <.>\r
31892 \r
31893         000127' 663000  000002  LD5A:   TLOE    F,ESW           ;TEST AND SET EXTENSION FLAG\r
31894         000130' 254000  000536'         JRST    LD7A            ;ERROR, TOO MANY PERIODS\r
31895         000131' 623000  100001          TLZE    F,CSW+DSW       ;SKIP IF NULL IDENT AND NO COLON\r
31896         000132' 202500  002054'         MOVEM     W,DTIN        ;STORE FILE IDENTIFIER\r
31897         000133' 254000  000057'         JRST    LD2D            ;RETURN FOR NEXT IDENTIFIER\r
31898 \r
31899                                 ;INPUT SPECIFICATION DELIMITER <,>\r
31900 \r
31901         000134'                 LD5B:\r
31902                                 IFN PP,<TLZE    N,PPCSW                 ;READING PP #?\r
31903                                         JRST    [\r
31904                                                 HRLM    D,PPN   ;STORE PROJ #\r
31905                                                 JRST    LD6A1]  ;GET PROG #\r
31906                                         PUSHJ   P,RBRA          ;CHECK FOR MISSING RBRA>\r
31907         000134' 627000  000010          TLZN    F,FSW           ;SKIP IF PREV. FORCED LOADING\r
31908         000135' 260740  000751'         PUSHJ     P,FSCN2               ;LOAD (FSW NOT SET)\r
31909         000136' 254000  000057'         JRST    LD2D            ;RETURN FOR NEXT IDENTIFIER\r
31910 \r
31911         000137' 603000  000002  LD5B1:  TLNE    F,ESW           ;TEST EXTENSION FLAG\r
31912         000140' 254000  000723'         JRST    LDDT3           ;EXPLICIT EXTENSION IDENTIFIER\r
31913         000141' 627000  100001          TLZN    F,CSW+DSW               ;SKIP IF IDENT. OR COLON\r
31914         000142' 263740  000000          POPJ    P,\r
31915         000143' 202500  002054'         MOVEM     W,DTIN                ;STORE FILE IDENTIFIER\r
31916         000144' 254000  000722'         JRST    LDDT2           ;ASSUME <.REL> IN DEFAULT CASE\r
31917 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 8\r
31918         DICK GRUEN: V25 3 AUG 68\r
31919 \r
31920                                 ;OUTPUT SPECIFICATION DELIMITER <=> OR <LEFT ARROW>\r
31921                                 ;OR PROJ-PROG # BRACKETS <[> AND <]>\r
31922         000145'                 LD5C:\r
31923                                 IFN RPGSW,<CAIN T,"@"   ;CHECK  FOR * COMMAND\r
31924                                         JRST RPGS1>\r
31925                                 IFN PP,<CAIN    T,"["                   ;PROJ-PROG #?\r
31926                                         JRST    [TLO    N,PPSW+PPCSW    ;SET FLAGS\r
31927                                                 MOVEM   W,PPNW#         ;SAVE W\r
31928                                                 MOVEM   E,PPNE#         ;SAVE E\r
31929                                                 MOVEM   V,PPNV#         ;SAVE V\r
31930                                                 JRST LD6A1-1]   ;READ NUMBERS AS SWITCHES \r
31931                                         CAIN    T,"]"                   ;END OF PP #?\r
31932                                         JRST    [PUSHJ  P,RBRA          ;PROCESS RIGHT BRACKET\r
31933                                                 JRST    LD3             ];READ NEXT IDENT>\r
31934         000145' 663000  000100          TLOE    F,ASW                   ;TEST AND SET LEFT ARROW FLAG\r
31935         000146' 254000  000536'         JRST    LD7A                    ;ERROR, MISPLACED LEFT ARROW\r
31936         000147' 260740  000137'         PUSHJ     P,LD5B1               ;STORE IDENTIFIER\r
31937         000150' 627000  000002          TLZN    F,ESW                   ;TEST EXTENSION FLAG\r
31938         000151' 205500  554160          MOVSI     W,554160              ;ASSUME <.MAP> IN DEFAULT CASE\r
31939         000152' 202500  002061'         MOVEM     W,DTOUT1              ;STORE FILE EXTENSION IDENTIFIER\r
31940         000153' 200500  002054'         MOVE    W,DTIN                  ;LOAD INPUT FILE IDENTIFIER\r
31941         000154' 202500  002060'         MOVEM     W,DTOUT               ;USE AS OUTPUT FILE IDENTIFIER\r
31942                                 IFN PP,<MOVE    W,PPN           ;PROJ-PROG #\r
31943                                         MOVEM   W,DTOUT+3               ;...>\r
31944         000155' 200500  000616'         MOVE    W,ILD1                  ;LOAD INPUT DEVICE IDENTIFIER\r
31945         000156' 202500  000165'         MOVEM   W,LD5C1                 ;USE AS OUTPUT DEVICE IDENTIFIER\r
31946                                 IFN PP,<        SKIPE W,OLDDEV  ;RESTORE OLD\r
31947                                         MOVEM W,ILD1>\r
31948                                 ;INITIALIZE AUXILIARY OUTPUT DEVICE\r
31949         000157' 623040  060000          TLZE    N,AUXSWI+AUXSWE         ;FLUSH CURRENT DEVICE\r
31950         000160' 071100  000000          RELEASE 2,                      ;...\r
31951         000161' 040500  004064'         CALL    W,[SIXBIT ?DEVCHR?]     ;IS DEVICE A TTY?\r
31952         000162' 603500  000010          TLNE    W,10                    ;...\r
31953         000163' 254000  000057' JRST    LD2D            ;YES, SKIP INIT\r
31954         000164' 041100  000001          INIT    2,1                     ;INIT THE AUXILIARY DEVICE\r
31955         000165' 000000  000000  LD5C1:  0               ;AUXILIARY OUTPUT DEVICE NAME\r
31956         000166' 002046' 000000          XWD     ABUF,0                  ;BUFFER HEADER\r
31957         000167' 265700  000643'         JSP     A,ILD5                  ;ERROR RETURN\r
31958         000170' 603000  002000          TLNE    F,REWSW                 ;REWIND REQUESTED?\r
31959         000171' 040100  004065'         CALL    2,[SIXBIT /UTPCLR/]             ;DECTAPE REWIND\r
31960         000172' 623000  002000          TLZE    F,REWSW                 ;SKIP IF NO REWIND REQUESTED\r
31961         000173' 072100  000001          MTAPE   2,1                     ;REWIND THE AUX DEV\r
31962         000174' 201600  002544'         MOVEI   E,AUX                   ;SET BUFFER ORIGIN\r
31963         000175' 202600  000011*         MOVEM     E,JOBFF\r
31964         000176' 065100  000001          OUTBUF  2,1                     ;INITIALIZE SINGLE BUFFER\r
31965         000177' 661040  020000          TLO     N,AUXSWI                        ;SET INITIALIZED FLAG\r
31966         000200' 254000  000057'         JRST    LD2D                    ;RETURN TO CONTINUE SCAN\r
31967 \r
31968 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 9\r
31969         DICK GRUEN: V25 3 AUG 68\r
31970 \r
31971 \r
31972                                 ;RIGHT SQUARE BRACKET (PROJ-PROG NUMBERS)\r
31973                                 IFN PP,<\r
31974                                 RBRA:   TLZN    N,PPSW          ;READING PP #?\r
31975                                         POPJ    P,              ;NOPE, RETURN\r
31976                                         TLZE    N,PPCSW         ;COMMA SEEN?\r
31977                                         JRST    LD7A            ;NOPE, INDICATE ERROR\r
31978                                         HRRM    D,PPN           ;STASH PROG NUMBER\r
31979                                         MOVE    W,PPNW#         ;PICKUP OLD IDENT\r
31980                                         MOVE    E,PPNE#         ;RESTORE CHAR COUNT\r
31981                                         MOVE    V,PPNV#         ;RESTORE BYTE PNTR\r
31982                                         POPJ    P,              ;TRA 1,4\r
31983                                 \r
31984                                 ;RIGHT JUSTIFY W\r
31985                                 \r
31986                                 RJUST:  JUMPE   W,LD7A          ;NOTHING TO RIGHT JUSTIFY\r
31987                                         TRNE    W,77            ;IS W RJUSTED YET?\r
31988                                         POPJ    P,              ;YES, TRA 1,4\r
31989                                         LSH     W,-6            ;NOPE, TRY AGAIN\r
31990                                         JRST    .-3             ;...>\r
31991 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 10\r
31992         DICK GRUEN: V25 3 AUG 68\r
31993 \r
31994 \r
31995                                 ;LINE TERMINATION <CARRIAGE RETURN>\r
31996 \r
31997         000201'                 LD5D:\r
31998                                 IFN PP,<PUSHJ   P,RBRA          ;CHECK FOR UNTERMINATED PP #>\r
31999         000201' 260740  000730'         PUSHJ     P,FSCN                ;FORCE SCAN TO COMPLETION\r
32000         000202' 254000  000050'         JRST    LD2B            ;RETURN FOR NEXT LINE\r
32001 \r
32002                                 ;TERMINATE LOADING <ALT MODE>\r
32003 \r
32004         000203' 332000  000007  LD5E:   SKIPE     D                     ;ENTER FROM G COMMAND\r
32005         000204' 540000  000007          HRR     F,D             ;USE NUMERIC STARTING ADDRESS\r
32006         000205'                 LD5E1:\r
32007         000205' 260740  001730'         PUSHJ     P,CRLF                ;START A NEW LINE\r
32008         000206' 260740  000227'         PUSHJ   P,SASYM         ;SETUP JOBSA,JOBFF,JOBSYM,JOBUSY\r
32009                                 IFN LDAC!BLTSYM,<HRRZ A,R               ;SET UP BLT OF ACS\r
32010                                         ADDI A,(X)              ;END\r
32011                                         ADD A,KORSP             ;ADD IN SPACE RESERVED\r
32012                                         CAIL A,(S)\r
32013                                 IFN EXPAND,<JRST        [PUSHJ P,XPAND>\r
32014                                                         PUSHJ   P,[\r
32015                                 IFE EXPAND,<                    JSP     A,ERRPT\r
32016                                                                 SIXBIT  /MORE CORE NEEDED#/>\r
32017                                                                 CALLI   CEXIT]\r
32018                                 IFN EXPAND,<            JRST .-1]>\r
32019                                         HRRM R,BOTACS#          ;SAVE FOR LATER\r
32020                                         HRRZ A,R                ;SET BLT\r
32021                                         ADD A,X\r
32022                                         HRL A,X\r
32023                                         MOVE Q,A\r
32024                                         BLT A,17(Q)>\r
32025                                 IFN BLTSYM,<HRRZ A,R    ;PLACE TO BLT TO\r
32026                                         ADD A,KORSP\r
32027                                         MOVE W,A        ;SAVE DEST\r
32028                                         ADDI A,(X)      ;AFTER ADJUSTMENT\r
32029                                         MOVE Q,S        ;UDEF PNTR\r
32030                                         ADD Q,B         ;TOTAL UNDEFS AND DEFS IN LEFT\r
32031                                         HLROS Q         ;NOW NEG IN RIGHT\r
32032                                         MOVNS Q ;POSITIVE\r
32033                                         ADDI Q,-1(A)    ;END OF BLT\r
32034                                         HRLI A,1(S)     ;AND GET PLACE TO BLT FROM\r
32035                                         SUBI W,1(S)     ;PREST LOC OF SYMBOL TABLE\r
32036                                         ADDM W,JOBSYM(X)\r
32037                                         ADDM W,JOBUSY(X)        ;ADJUST POINTERS\r
32038                                         BLT A,(Q)       ;MOVE IT\r
32039                                         SKIPN JOBDDT(X) ;IS DDT THERE?\r
32040                                         JRST NODDT\r
32041                                         SUBI Q,-1(X)\r
32042                                         HRRM Q,JOBFF(X) ;RESTET JOBFF IF DDT IS IN\r
32043                                         HRLM Q,JOBSA(X)\r
32044                                 NODDT:>\r
32045         000207' 200500  004066'         MOVE    W,[SIXBIT ?LOADER?]     ;FINAL MESSAGE\r
32046         000210' 260740  000251'         PUSHJ P,BLTSET          ;SETUP FOR FINAL BLT\r
32047 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 10-1\r
32048         DICK GRUEN: V25 3 AUG 68\r
32049 \r
32050         000211' 071100  000000          RELEASE 2,              ;RELEASE AUX. DEV.\r
32051                                 IFN RPGSW,<RELEASE 17,0 ;RELEASE COMMAND DEVICE>\r
32052         000212' 200500  004067' LD5E5:  MOVE    W,[BLT Q,(A)]   ;BLT OF ALL CODE\r
32053         000213' 202500  000134          MOVEM   W,JOBBLT        ;STASH IN JOB DATA AREA\r
32054         000214' 202502  000134          MOVEM   W,JOBBLT(X)     ;STASH IN RELOCATED JOBDATA AREA\r
32055         000215' 200500  000007' LD5E2:  MOVE    W,CALLEX        ;EXIT AFTER BLT\r
32056         000216' 627040  002000          TLZN    N,EXEQSW        ;IMMEDIATE EXECUTION REQUESTED?\r
32057         000217' 254000  000225'         JRST    LD5E3           ;NOPE, LET USER TYPE START HIMSELF\r
32058         000220' 550502  000000*         HRRZ    W,JOBSA(X)      ;PICKUP USUAL STARTING ADDRESS\r
32059         000221' 603040  004000          TLNE    N,DDSW          ;DDT EXECUTION?\r
32060         000222' 550502  000016*         HRRZ    W,JOBDDT(X)     ;USE DDT SA INSTEAD\r
32061         000223' 322500  000215'         JUMPE   W,LD5E2         ;IF SA=0, DON'T EXECUTE\r
32062         000224' 505500  254000          HRLI    W,(JRST)        ;INSTRUCTION TO EXECUTE\r
32063         000225'                 LD5E3:\r
32064         000225' 202502  000135  IFE LDAC,<MOVEM W,JOBBLT+1(X)   ;STASH FOR EXECUTION>\r
32065                                 IFN LDAC,<MOVEM W,JOBBLT+2(X)   ;STASH FOR EXECUTION\r
32066                                         HRLZ    17,JOBFF(X)     ;BUT FIRST BLT ACS\r
32067                                         MOVE    W,[BLT 17,17]   ;...\r
32068                                         MOVEM   W,JOBBLT+1(X)   ;...>\r
32069         000226' 254000  000134          JRST    JOBBLT          ;IF IT WERE DONE, 'TWERE BEST DONE QUICKLY\r
32070 \r
32071 \r
32072 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 11\r
32073         DICK GRUEN: V25 3 AUG 68\r
32074 \r
32075 \r
32076                                 ;SEARCH LIBRARY, PRINT UNDEFS, SETUP JOBSA,JOBFF,JOBSYM,JOBUSY\r
32077 \r
32078         000227' 607000  200000  SASYM:  TLNN    F,NSW           ;SKIP IF NO SEARCH FLAG ON\r
32079         000230' 260740  000653'         PUSHJ   P,LIBF          ;SEARCH LIBRARY FILE\r
32080         000231' 260740  000730'         PUSHJ   P,FSCN          ;FORCE SCAN TO COMPLETION\r
32081         000232' 260740  001460'         PUSHJ   P,PMS           ;PRINT UNDEFINEDS\r
32082         000233' 552002  000220*         HRRZM   F,JOBSA(X)      ;RH OF JOBSA :=STARTING ADDRESS\r
32083         000234' 550700  000003  SAS1:   HRRZ    A,H             ;COMPUTE PROG BREAK\r
32084         000235' 275702  000000          SUBI    A,(X)           ;...\r
32085         000236' 305705  000000          CAIGE   A,(R)           ;BUT NO HIGHER THAN RELOC\r
32086         000237' 550700  000005          HRRZ    A,R             ;...\r
32087         000240' 506702  000233*         HRLM    A,JOBSA(X)      ;LH OR JOBSA IS PROG BREAK\r
32088         000241' 552702  000175*         HRRZM   A,JOBFF(X)      ;RH OF JOBFF CONTAINS PROG BREAK\r
32089         000242' 200700  000006          MOVE    A,B             ;SET JOBSYM W/ SYMBOL TABLE POINTER\r
32090         000243' 350000  000016          AOS     A               ;...\r
32091         000244' 202702  000017*         MOVEM   A,JOBSYM(X)     ;...\r
32092         000245' 200700  000004          MOVE    A,S             ;SET JOBUSY W/ UNDEFINED SYMBOL POINTER\r
32093         000246' 350000  000016          AOS     A               ;...\r
32094         000247' 202702  000000*         MOVEM   A,JOBUSY(X)     ;...\r
32095         000250' 263740  000000          POPJ    P,              ;RETURN\r
32096                                 ;PRINT FINAL MESSAGE, SET UP BLT AC'S, SETDDT, RELEAS\r
32097 \r
32098         000251' 260740  001727' BLTSET: PUSHJ   P,FCRLF         ;START FINAL MESSAGE\r
32099         000252' 260740  001602'         PUSHJ   P,PWORD         ;PRINT W\r
32100         000253' 260740  001557'         PUSHJ   P,SPACE\r
32101         000254' 550640  000015*         HRRZ    Q,JOBREL        ;PUBLISH HOW MUCH CORE USED\r
32102         000255' 242640  777766          LSH     Q,-12           ;...\r
32103         000256' 271640  000001          ADDI    Q,1             ;...\r
32104         000257' 260740  001546'         PUSHJ   P,RCNUM         ;PUBLISH THE NUMBER\r
32105         000260' 200500  004070'         MOVE    W,[SIXBIT /K CORE/]     ;PUBLISH THE UNITS\r
32106         000261' 260740  001602'         PUSHJ   P,PWORD         ;...\r
32107         000262' 260740  001730'         PUSHJ   P,CRLF          ;...\r
32108         000263' 205642  000020          MOVSI   Q,20(X)         ;HOW MUCH CODE TO BLT\r
32109         000264' 541640  000020          HRRI    Q,20            ;...\r
32110         000265' 550700  000042          HRRZ A,42               ;CHECK ON ERRORS\r
32111         000266' 322700  000275'         JUMPE A,NOEX            ;NONE, GO AHEAD\r
32112         000267' 627040  002000          TLZN N,EXEQSW           ;DID HE WANT TO START EXECUTION?\r
32113         000270' 254000  000275'         JRST NOEX               ;NO\r
32114         000271' 265700  001610'         JSP A ,ERRPT            ;PRINT AN ERROR MESSAGE\r
32115         000272' 457045  436564          SIXBIT /EXECUTION DELETED@/\r
32116         000273' 515756  004445\r
32117         000274' 544564  454440\r
32118         000275' 550700  000254* NOEX:   HRRZ    A,JOBREL        ;WHEN TO STOP BLT\r
32119         000276' 552702  000275*         HRRZM   A,JOBREL(X)     ;SETUP FOR POSSIBLE IMMED. XEQ\r
32120         000277' 275702  000000          SUBI    A,(X)           ;...\r
32121         000300' 301704  000000  IFE BLTSYM,<CAIL        A,(S)           ;DON'T BLT OVER SYMBOL TABLE\r
32122         000301' 201704  000000          MOVEI   A,(S)           ;OR UNDEFINED TABLE>\r
32123         000302' 071040  000000          RELEAS  1,              ;RELEASE DEVICES\r
32124         000303' 071140  000000          RELEAS  3,              ;...\r
32125         000304' 200242  000222*         MOVE    R,JOBDDT(X)     ;SET NEW DDT\r
32126         000305' 047240  000002          CALLI   R,CSETDDT       ;...\r
32127         000306' 263740  000000          POPJ    P,              ;RETURN\r
32128 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 11-1\r
32129         DICK GRUEN: V25 3 AUG 68\r
32130 \r
32131 \r
32132 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 12\r
32133         DICK GRUEN: V25 3 AUG 68\r
32134 \r
32135 \r
32136                                 ;WRITE CHAIN FILES\r
32137 \r
32138         000307' 334702  000131  CHNC:   SKIPA   A,JOBCHN(X)     ;CHAIN FROM BREAK OF FIRST BLOCK DATA\r
32139         000310' 544702  000131  CHNR:   HLR     A,JOBCHN(X)     ;CHAIN FROM BREAK OF FIRST F4 PROG\r
32140         000311' 553000  000016          HRRZS   A               ;ONLY RIGHT HALF IS SIGNIFICANT\r
32141         000312' 322700  000546'         JUMPE   A,LD7C          ;DON'T CHAIN IF ZERO\r
32142         000313' 607040  020000          TLNN    N,AUXSWI        ;IS THERE AN AUX DEV?\r
32143         000314' 254000  000554'         JRST    LD7D            ;NO, DON'T CHAIN\r
32144         000315' 261740  000016          PUSH    P,A             ;SAVE WHEREFROM TO CHAIN\r
32145         000316' 332000  000007          SKIPE   D               ;STARTING ADDR SPECIFIED?\r
32146         000317' 540000  000007          HRR     F,D             ;USE IT\r
32147         000320' 260740  000227'         PUSHJ   P,SASYM         ;DO LIB SEARCH, SETUP JOBSA, ETC.\r
32148         000321' 262740  000016          POP     P,A             ;GET WHEREFROM\r
32149         000322' 210500  000276*         MOVN    W,JOBREL        ;CALCULATE IOWD FOR DUMP\r
32150         000323' 271516  777773          ADDI    W,-1-3-CHN5(A)  ;...\r
32151         000324' 505516  777773          HRLI    W,-4-CHN5(A)    ;...\r
32152         000325' 206500  000363'         MOVSM   W,IOWDPP        ;...\r
32153         000326' 271702  777773          ADDI    A,-4-CHN5(X)    ;ADD IN OFFSET\r
32154         000327' 261702  000244* IFN CHN5,<PUSH  A,JOBSYM(X)     ;SETUP FOUR WORD TABLE\r
32155         000330' 261702  000041*         PUSH    A,JOB41(X)      ;...>\r
32156         000331' 261702  000304*         PUSH    A,JOBDDT(X)     ;JOBDDT IN ALL CASES\r
32157                                 IFE CHN5,<PUSH  A,JOBSYM(X)     ;JOBDDT, JOBSYM, JOBSA>\r
32158         000332' 261702  000240*         PUSH    A,JOBSA(X)      ;JOBRYM ALWAYS LAST\r
32159         000333' 070100  000000          CLOSE   2,              ;INSURE END OF MAP FILE\r
32160         000334' 060100  000017          SETSTS  2,17            ;SET AUX DEV TO DUMP MODE\r
32161         000335' 205500  435056          MOVSI   W,435056        ;USE .CHN AS EXTENSION\r
32162         000336' 202500  002061'         MOVEM   W,DTOUT1        ;...\r
32163         000337' 260740  001523'         PUSHJ   P,IAD2          ;DO THE ENTER\r
32164         000340' 621040  060000          TLZ     N,AUXSWI+AUXSWE ;INSURE NO PRINTED OUTPUT\r
32165         000341' 200500  004071'         MOVE    W,[SIXBIT ?CHAIN?]      ;FINAL MESSAGE\r
32166         000342' 260740  000251'         PUSHJ   P,BLTSET                ;SETUP BLT PNTR, SETDDT, RELEAS\r
32167         000343' 047000  000005          CALLI   CDDTGT          ;START DDT MODE OUTPUT\r
32168         000344' 205600  000350'         MOVSI   CHNBLT,CHAIN3   ;BLT CHAIN3 INTO ACS\r
32169         000345' 251600  000014          BLT     CHNBLT,CHNBLT   ;...\r
32170         000346' 201740  000010          MOVEI   P,CHNERR        ;POINTER TO ERR MESS\r
32171         000347' 254000  000000          JRST    0               ;GO DO CHAIN\r
32172 \r
32173 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 13\r
32174         DICK GRUEN: V25 3 AUG 68\r
32175 \r
32176 \r
32177                                 ;THE AC SECTION OF CHAIN\r
32178 \r
32179         000350'                 CHAIN3:\r
32180         000000                          PHASE   0\r
32181         000350' 251656  000000          BLT     Q,(A)           ;USUAL LDRBLT\r
32182         000351' 067100  000013          OUTPUT  2,IOWDP         ;WRITE THE CHAIN FILE\r
32183         000352' 063100  760000          STATZ   2,IOBAD!IODEND  ;CHECK FOR ERROR OR EOF\r
32184         000353' 254000  000006          JRST    LOSEBIG         ;FOUND SAME, GO GRIPE\r
32185         000354' 070100  000000          CLOSE   2,              ;FINISH OUTPUT\r
32186         000355' 063100  760000          STATZ   2,IOBAD!IODEND  ;CHECK FOR FINAL ERROR\r
32187         000356' 047000  000003  LOSEBI: CALLI   CDDTOUT         ;GRIPE ABOUT ERROR\r
32188         000357' 047000  000012          CALLI   CEXIT           ;EXIT\r
32189         000360' 422132  644606  CHNERR: ASCIZ   ?DEVICE ERROR?  ;ERROR MESSAGE\r
32190         000361' 425010  551244\r
32191         000362' 476440  000000\r
32192         000363' 000000  000000  IOWDP:  Z                       ;STORE IOWD FOR DUMP HERE\r
32193         000014                  CHNBLT:                         ;LAST WORD OF AC CHAIN (ZERO OF I/O POINTER)\r
32194         000364'                         DEPHASE\r
32195                         000363' IOWDPP=.-1                      ;MEMORY LOC OF AC IOWDP\r
32196         000364' 000000  000000          Z                       ;TERMINATOR OF DUMP MODE LIST\r
32197 \r
32198 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 14\r
32199         DICK GRUEN: V25 3 AUG 68\r
32200 \r
32201                                 ;EXPAND CORE\r
32202 \r
32203                                 IFN EXPAND,<\r
32204         000365' 261740  000003  XPAND:  PUSH P,H        ;GET SOME REGISTERS TO USE\r
32205         000366' 261740  000002          PUSH P,X\r
32206         000367' 261740  000001          PUSH P,N\r
32207         000370' 550100  000322*         HRRZ X,JOBREL   ;WHAT WE WANT\r
32208         000371' 271100  002000          ADDI X,2000\r
32209         000372' 047100  000011          CALLI X,11       ;CORE ALLOCATOR CALLS THIS\r
32210         000373' 254000  000432'         JRST XPAND6\r
32211         000374' 550140  003402' IFE K,<         HRRZ H,MLTP     ;GET LOWEST LOCATION\r
32212         000375' 607040  000010          TLNN N,F4SW     ;IS FORTRAN LOADING>\r
32213         000376' 550140  000004          HRRZ H,S        ;NO, USE S\r
32214         000377' 550100  000370*         HRRZ X,JOBREL   ;NOW MOVE\r
32215         000400' 275100  002000          SUBI X,2000\r
32216         000401' 200042  000000  XPAND2: MOVE N,(X)\r
32217         000402' 202042  002000          MOVEM N,2000(X)\r
32218         000403' 313100  000003          CAMLE X,H       ;TEST FOR END\r
32219         000404' 364100  000401'         SOJA X,XPAND2;          HAND EYE SYSTEM MOVES TABLE\r
32220         000405' 505140  776000          HRLI H,-2000\r
32221         000406' 402003  000000          SETZM (H)       ;ZERO NEW CORE\r
32222         000407' 253140  000406'         AOBJN H,.-1\r
32223         000410' 201140  002000          MOVEI H,2000\r
32224         000411' 272140  000004          ADDM H,S\r
32225         000412' 272140  000006          ADDM H,B\r
32226         000413' 272140  000327*         ADDM H,JOBSYM\r
32227         000414' 262740  000001          POP P,N\r
32228         000415' 271040  002000          ADDI N,2000\r
32229         000416' 607040  000010  IFE K,< TLNN N,F4SW     ;F4?\r
32230         000417' 254000  000426'         JRST    XPAND3\r
32231         000420' 272140  003401'         ADDM H,PLTP\r
32232         000421' 272140  003377'         ADDM H,BITP\r
32233         000422' 272140  003404'         ADDM H,SDSTP\r
32234         000423' 272140  003402'         ADDM H,MLTP\r
32235         000424' 603040  000040          TLNE N,SYDAT\r
32236         000425' 272140  000011          ADDM H,V>\r
32237         000426'                 XPAND3:\r
32238         000426' 262740  000002          POP P,X\r
32239         000427' 262740  000003          POP P,H\r
32240         000430' 350017  000000          AOS (P)\r
32241         000431' 263740  000000          POPJ P,\r
32242         000432' 322100  000442' XPAND6: JUMPE X,XPAND4\r
32243         000433' 265700  001610'         JSP A,ERRPT\r
32244         000434' 435762  450041          SIXBIT /CORE AVAILABLE, BUT NOT TO YOU#/\r
32245         000435' 664151  544142\r
32246         000436' 544514  004265\r
32247         000437' 640056  576400\r
32248         000440' 645700  715765\r
32249         000441' 030000  000000\r
32250         000442' 265700  001610' XPAND4: JSP A,ERRPT\r
32251         000443' 555762  450043          SIXBIT /MORE CORE NEEDED#/\r
32252         000444' 576245  005645\r
32253         000445' 454445  440300\r
32254 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 14-1\r
32255         DICK GRUEN: V25 3 AUG 68\r
32256 \r
32257         000446' 262740  000001  XPAND5: POP P,N\r
32258         000447' 262740  000002          POP P,X\r
32259         000450' 262740  000003          POP P,H\r
32260         000451' 263740  000000          POPJ P,\r
32261 \r
32262         000452' 260740  000365' XPAND7: PUSHJ   P,XPAND\r
32263         000453' 254000  001257'         JRST    SFULLC\r
32264         000454' 254000  000456'         JRST    POPJM2\r
32265 \r
32266         000455' 370017  000000  POPJM3: SOS     (P)             ;POPJ TO CALL-2\r
32267         000456' 370017  000000  POPJM2: SOS     (P)             ;POPJ TO CALL-1\r
32268         000457' 370017  000000          SOS     (P)             ;SAME AS POPJ TO\r
32269         000460' 263740  000000          POPJ    P,              ;NORMAL POPJ MINUS TWO\r
32270                                         >\r
32271 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 15\r
32272         DICK GRUEN: V25 3 AUG 68\r
32273 \r
32274 \r
32275 \r
32276                                 ;ENTER SWITCH MODE\r
32277 \r
32278         000461' 306400  000057  LD6A:   CAIN    T,57            ;WAS CHAR A SLASH?\r
32279         000462' 661040  000100          TLO     N,SLASH         ;REMEBER THAT\r
32280         000463' 661000  400000          TLO     F,SSW           ;ENTER SWITCH MODE\r
32281         000464' 201340  000000  LD6A1:  MOVEI   D,0             ;ZERO THE NUBER REGISTER\r
32282         000465' 254000  000063'         JRST    LD3             ;EAT A SWITCH\r
32283 \r
32284                                 ;ALPHABETIC CHARACTER, SWITCH MODE\r
32285 \r
32286         000466' 256010  000371' LD6:    XCT     LD6B-101(T)     ;EXECUTE SWITCH FUNCTION\r
32287         000467' 623040  000100          TLZE    N,SLASH ;SWITCH MODE ENTERED W/ SLASH?\r
32288         000470' 254000  000527'         JRST    LD6D            ;LEAVE SWITCH MODE\r
32289         000471' 254000  000464'         JRST    LD6A1           ;STAY IN SWITCH MODE\r
32290 \r
32291                                 ;DISPATCH TABLE FOR SWITCHES\r
32292 \r
32293                                 ;       THE INSTRUCTION AT THE CHARACTER LOCATION IS EXECUTED\r
32294 \r
32295         000472' 661040  000001  LD6B:   TLO     N,ALLFLG        ;A - LIST ALL GLOBALS\r
32296         000473' 254000  000542'         JRST    LD7B            ;B - ERROR\r
32297         000474' 260740  000307'         PUSHJ   P,CHNC          ;C - CHAIN, START W/ COMMON\r
32298         000475' 260740  000710'         PUSHJ     P,LDDT        ;D - DEBUG OPTION, LOAD DDT\r
32299         000476' 661040  002000          TLO     N,EXEQSW        ;E - LOAD AND GO\r
32300         000477' 260740  000653'         PUSHJ     P,LIBF        ;F - LIBRARY SEARCH\r
32301         000500' 260740  000203'         PUSHJ     P,LD5E        ;G - GO INTO EXECUTION\r
32302         000501' 260740  000703'         PUSHJ P,LRAIDX          ;H - LOAD AN START RAID\r
32303         000502' 661040  000002          TLO     N,ISAFLG        ;I - IGNORE STARTING ADDRESSES\r
32304         000503' 621040  000002          TLZ     N,ISAFLG        ;J - USE STARTING ADDRESSES\r
32305         000504' 254000  000542' IFE BLTSYM,<JRST        LD7B            ;K - ERROR>\r
32306                                 IFN BLTSYM,<PUSHJ P,KORADJ      ;K - RESERVE SPACE FOR SYM DEFS>\r
32307         000505' 661000  004004          TLO     F,LIBSW+SKIPSW  ;L - ENTER LIBRARY SEARCH\r
32308         000506' 260740  001407'         PUSHJ     P,PRMAP       ;M - PRINT STORAGE MAP\r
32309         000507' 621000  004004          TLZ     F,LIBSW+SKIPSW  ;N - LEAVE LIBRARY SEARCH\r
32310         000510' 540240  000007          HRR     R,D             ;O - NEW PROGRAM ORIGIN\r
32311         000511' 661000  200000          TLO     F,NSW           ;P - PREVENT AUTO. LIB. SEARCH\r
32312         000512' 621000  200000          TLZ     F,NSW           ;Q - ALLOW AUTO. LIB. SEARCH\r
32313         000513' 260740  000310'         PUSHJ   P,CHNR          ;R - CHAIN, START W/ RESIDENT\r
32314         000514' 661000  040000          TLO     F,SYMSW         ;S - LOAD WITH SYMBOLS\r
32315         000515' 260740  000707'         PUSHJ   P,LDDTX         ;T - LOAD AND GO TO DDT\r
32316         000516' 260740  001460'         PUSHJ     P,PMS         ;U - PRINT UNDEFINED LIST\r
32317         000517' 260740  000704'         PUSHJ P,LRAID           ;V - LOAD RAID\r
32318         000520' 621000  041000          TLZ     F,SYMSW+DSYMSW  ;W - LOAD WITHOUT SYMBOLS\r
32319         000521' 621040  000001          TLZ     N,ALLFLG        ;X - DO NOT LIST ALL GLOBALS\r
32320         000522' 661000  002000          TLO     F,REWSW         ;Y - REWIND BEFORE USE\r
32321         000523' 254000  000000'         JRST    LD              ;Z - RESTART LOADER\r
32322 \r
32323 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 16\r
32324         DICK GRUEN: V25 3 AUG 68\r
32325 \r
32326 \r
32327                                 ;SWITCH MODE NUMERIC ARGUMENT\r
32328 \r
32329         000524' 242340  000003  LD6C:   LSH     D,3             ;BUILD OCTAL NUMERIC ARGUMENT\r
32330         000525' 271350  777720          ADDI    D,-60(T)\r
32331         000526' 254000  000063'         JRST    LD3\r
32332 \r
32333                                 ;EXIT FROM SWITCH MODE\r
32334 \r
32335         000527' 621000  400000  LD6D:   TLZ     F,SSW           ;CLEAR SWITCH MODE FLAG\r
32336         000530' 603000  000010          TLNE    F,FSW           ;TEST FORCED SCAN FLAG\r
32337         000531' 254000  000057'         JRST    LD2D            ;SCAN FORCED, START NEW IDENT.\r
32338         000532' 254000  000063'         JRST    LD3             ;SCAN NOT FORCED, USE PREV IDENT\r
32339                                 ;ILLEGAL CHARACTER, NORMAL MODE\r
32340 \r
32341         000533' 265700  001654' LD7:    JSP     A,ERRPT8\r
32342         000534' 435041  621605          SIXBIT    /CHAR.%/\r
32343         000535' 254000  000042'         JRST    LD2\r
32344 \r
32345                                 ;SYNTAX ERROR, NORMAL MODE\r
32346 \r
32347         000536' 265700  001654' LD7A:   JSP     A,ERRPT8\r
32348         000537' 637156  644170          SIXBIT    /SYNTAX%/\r
32349         000540' 050000  000000\r
32350         000541' 254000  000042'         JRST    LD2\r
32351 \r
32352                                 ;ILLEGAL CHARACTER, SWITCH MODE\r
32353 \r
32354         000542' 265700  001654' LD7B:   JSP     A,ERRPT8\r
32355         000543' 636751  644350          SIXBIT    /SWITCH%/\r
32356         000544' 050000  000000\r
32357         000545' 254000  000042'         JRST    LD2\r
32358 \r
32359                                 ;ATTEMPT TO CHAIN WITH SPECIFIED HALF OF JOBCHN = 0\r
32360 \r
32361         000546' 265700  001610' LD7C:   JSP     A,ERRPT         ;GRIPE\r
32362         000547' 655643  504151          SIXBIT  ?UNCHAINABLE AS LOADED@?\r
32363         000550' 564142  544500\r
32364         000551' 416300  545741\r
32365         000552' 444544  400000\r
32366         000553' 254000  000042'         JRST    LD2\r
32367 \r
32368                                 ;ATTEMP TO CHAIN WITHOUT SPECIFYING DEVICE\r
32369 \r
32370         000554' 265700  001610' LD7D:   JSP     A,ERRPT         ;GRIPE\r
32371         000555' 565700  435041          SIXBIT  ?NO CHAIN DEVICE@?\r
32372         000556' 515600  444566\r
32373         000557' 514345  400000\r
32374         000560' 254000  000042'         JRST    LD2\r
32375 \r
32376                                 IFN BLTSYM,<KORADJ:     CAMLE D,KORSP   ;IF SMALLER IGNORE\r
32377                                         MOVEM D,KORSP\r
32378                                         POPJ P,>\r
32379 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 17\r
32380         DICK GRUEN: V25 3 AUG 68\r
32381 \r
32382 \r
32383                                 ;CHARACTER CLASSIFICATION TABLE DESCRIPTION:\r
32384 \r
32385                                 ;       EACH CHARACTER HAS ASSOCIATED WITH IT A FOUR BIT BYTE\r
32386                                 ;       PACKED IN THE CHARACTER CLASSIFICATION TABLE.  THE CHARACTER\r
32387                                 ;       CLASSIFICATION CODES ARE ORDERED IN SUCH A WAY AS TO GIVE\r
32388                                 ;       DELIMITERS OF HIGHER PRECEDENCE LOWER CLASSIFICATION NUMBERS.\r
32389                                 ;       CERTAIN CHARACTERS HAVE NO EFFECT ON THE COMMAND STRING, AND\r
32390                                 ;       THEREFORE DO NOT EFFECT ORDERING OF DELIMITERS.  FOUR CODES\r
32391                                 ;       ARE RESERVED FOR ALTERNATE DISPATCHES WHILE THE SWITCH MODE IS\r
32392                                 ;       IN EFFECT.\r
32393 \r
32394 \r
32395                                 ;CLASSIFICATION BYTE CODES:\r
32396 \r
32397                                 ;       BYTE DISP CLASSIFICATION\r
32398 \r
32399                                 ;       00 - 00  ILLEGAL CHARACTER, SWITCH MODE\r
32400                                 ;       01 - 01  ALPHABETIC CHARACTER, SWITCH MODE\r
32401                                 ;       02 - 02  NUMERIC CHARACTER, SWITCH MODE\r
32402                                 ;       03 - 03  SWITCH MODE ESCAPE, SWITCH MODE\r
32403 \r
32404                                 ;       00 - 04  ILLEGAL CHARACTER, NORMAL MODE\r
32405                                 ;       01 - 05  ALPHABETIC CHARACTER, NORMAL MODE\r
32406                                 ;       02 - 06  NUMERIC CHARACTER, NORMAL MODE\r
32407                                 ;       03 - 07  SWITCH MODE ESCAPE, NORMAL MODE\r
32408 \r
32409                                 ;       04 - 10  IGNORED CHARACTER\r
32410                                 ;       05 - 11  ENTER SWITCH MODE CHARACTER\r
32411                                 ;       06 - 12  DEVICE IDENTIFIER DELIMITER\r
32412                                 ;       07 - 13  FILE EXTENSION DELIMITER\r
32413                                 ;       10 - 14  OUTPUT SPECIFICATION DELIMITER\r
32414                                 ;       11 - 15  INPUT SPECIFICATION DELIMITER\r
32415                                 ;       12 - 16  LINE TERMINATION\r
32416                                 ;       13 - 17  JOB TERMINATION\r
32417 \r
32418 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 18\r
32419         DICK GRUEN: V25 3 AUG 68\r
32420 \r
32421 \r
32422                                 ;BYTE POINTERS TO CHARACTER CLASSIFICATION TABLE\r
32423 \r
32424         000561' 400415  000572' LD8:    POINT     4,LD9(Q),3\r
32425         000562' 340415  000572'         POINT     4,LD9(Q),7\r
32426         000563' 300415  000572'         POINT     4,LD9(Q),11\r
32427         000564' 240415  000572'         POINT     4,LD9(Q),15\r
32428         000565' 200415  000572'         POINT     4,LD9(Q),19\r
32429         000566' 140415  000572'         POINT     4,LD9(Q),23\r
32430         000567' 100415  000572'         POINT     4,LD9(Q),27\r
32431         000570' 040415  000572'         POINT     4,LD9(Q),31\r
32432         000571' 000415  000572'         POINT     4,LD9(Q),35\r
32433 \r
32434                                 ;CHARACTER CLASSIFIACTION TABLE\r
32435 \r
32436         000572' 200000  000000  LD9:    BYTE    (4)4,0,0,0,0,0,0,0,0\r
32437         000573' 210422  400000          BYTE    (4)4,4,4,4,12,0,0,0,0\r
32438         000574' 000000  000000          BYTE    (4)0,0,0,0,0,0,0,0,0\r
32439         000575' 540000  040100          BYTE    (4)13,0,0,0,0,4,0,4,0\r
32440         000576' 000001  230011          BYTE    (4)0,0,0,0,5,3,0,0,11\r
32441         000577' 016510  421042          BYTE    (4)0,7,5,2,2,2,2,2,2\r
32442         000600' 104211  400200          BYTE    (4)2,2,2,2,6,0,0,10,0\r
32443         000601' 000104  210421  IFE RPGSW,<     BYTE    (4)0,0,1,1,1,1,1,1,1>\r
32444                                 IFN RPGSW,<     BYTE (4) 0,10,1,1,1,1,1,1,1>\r
32445         000602' 042104  210421          BYTE    (4)1,1,1,1,1,1,1,1,1\r
32446         000603' 042104  210421          BYTE    (4)1,1,1,1,1,1,1,1,1\r
32447         000604' 040000  100000  IFE PP,<BYTE    (4)1,0,0,0,0,10,0,0,0>\r
32448                                 IFN PP,<BYTE    (4)1,10,0,10,0,10,0,0,0>\r
32449         000605' 000000  000000          BYTE    (4)0,0,0,0,0,0,0,0,0\r
32450         000606' 000000  000000          BYTE    (4)0,0,0,0,0,0,0,0,0\r
32451         000607' 000000  000013          BYTE    (4)0,0,0,0,0,0,0,0,13\r
32452         000610' 550000  000000          BYTE    (4)13,4\r
32453 \r
32454 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 19\r
32455         DICK GRUEN: V25 3 AUG 68\r
32456 \r
32457 \r
32458                                 ;INITIALIZE LOADING OF A FILE\r
32459 \r
32460         000611' 201500  002136' ILD:    MOVEI     W,BUF1                ;LOAD BUFFER ORIGIN\r
32461         000612' 202500  000241*         MOVEM     W,JOBFF\r
32462         000613' 663000  020000          TLOE    F,ISW           ;SKIP IF INIT REQUIRED\r
32463         000614' 254000  000621'         JRST    ILD6            ;DONT DO INIT\r
32464         000615' 041040  000014          INIT    1,14\r
32465         000616' 000000  000000  ILD1:   0                               ;LOADER INPUT DEVICE\r
32466         000617' 000000  002051'         XWD     0,BUFR\r
32467         000620' 265700  000643'         JSP     A,ILD5          ;ERROR RETURN\r
32468         000621' 623000  002000  ILD6:   TLZE    F,REWSW         ;SKIP IF NO REWIND\r
32469         000622' 072040  000001          MTAPE   1,1             ;REWIND\r
32470         000623' 076040  002054' ILD2:   LOOKUP    1,DTIN                ;LOOK UP FILE FROM DIRECTORY\r
32471         000624' 254000  000631'         JRST    ILD3            ;FILE NOT IN DIRECTORY\r
32472         000625' 064040  000002  IFE K,< INBUF     1,2           ;SET UP BUFFERS>\r
32473                                 IFN K,< INBUF   1,1             ;SET UP BUFFER>\r
32474         000626' 661000  000100          TLO     F,ASW           ;SET LEFT ARROW ILLEGAL FLAG\r
32475         000627' 621000  010002          TLZ     F,ESW+F4LIB     ;CLEAR EXTENSION FLAG\r
32476         000630' 263740  000000          POPJ    P,\r
32477 \r
32478                                 ;       LOOKUP FAILURE\r
32479 \r
32480         000631' 663000  000002  ILD3:   TLOE    F,ESW           ;SKIP IF .REL WAS ASSUMED\r
32481         000632' 254000  000635'         JRST    ILD4            ;FATAL LOOKUP FAILURE\r
32482         000633' 402000  002055'         SETZM     DTIN1         ;ZERO FILE EXTENSION\r
32483         000634' 254000  000623'         JRST    ILD2            ;TRY AGAIN WITH NULL EXTENSION\r
32484 \r
32485         000635' 623000  010000  ILD4:   TLZE    F,F4LIB         ;WAS THIS A TRY FOR F40 LIBRARY?\r
32486                                         JRST    [MOVE   W,[SIXBIT /LIB4/]; YES, TRY LIB4\r
32487                                                 MOVEM   W,DTIN          ;...\r
32488                                                 PUSHJ   P,LDDT2         ;USE .REL EXTENSION\r
32489                                                 TLZ     F,ESW           ;...\r
32490         000636' 254000  004073'                 JRST    ILD2            ];GO TRY AGAIN\r
32491         000637' 265700  001610' ILD9:   JSP     A,ERRPT\r
32492         000640' 434156  565764          SIXBIT    /CANNOT FIND#/\r
32493         000641' 004651  564403\r
32494         000642' 254000  000042'         JRST    LD2\r
32495 \r
32496                                 ;       DEVICE SELECTION ERROR\r
32497 \r
32498         000643' 200516  777775  ILD5:   MOVE    W,-3(A)         ;LOAD DEVICE NAME FROM INIT\r
32499         000644' 661000  000020          TLO     F,FCONSW        ;INSURE TTY OUTPUT\r
32500         000645' 260740  001701'         PUSHJ   P,PRQ           ;START W/ ?\r
32501         000646' 260740  001602'         PUSHJ     P,PWORD               ;PRINT DEVICE NAME\r
32502         000647' 265700  001667'         JSP     A,ERRPT7\r
32503         000650' 655641  664151          SIXBIT    /UNAVAILABLE@/\r
32504         000651' 544142  544540\r
32505         000652' 254000  000042'         JRST    LD2\r
32506 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 20\r
32507         DICK GRUEN: V25 3 AUG 68\r
32508 \r
32509 \r
32510                                 ;LIBRARY SEARCH CONTROL AND LOADER CONTROL\r
32511 \r
32512                                 ;LIBF ENABLES A LIBRARY SEARCH OF <SYS:LIB4.REL>\r
32513 \r
32514         000653' 260740  000746' LIBF:   PUSHJ     P,FSCN1               ;FORCE SCAN TO COMPLETION\r
32515         000654' 260740  000660'         PUSHJ   P,LIBF1                 ;LOAD SYS:JOBDAT.REL\r
32516         000655' 661000  010000          TLO     F,F4LIB                 ;INDICATE FORTRAN LIBRARY SEARCH\r
32517         000656' 200500  004100'         MOVE    W,[SIXBIT /LIB40/]      ;FIRST TRY AT NAME\r
32518         000657' 260740  000661'         PUSHJ   P,LIBF2                 ;LOAD SYS:LIB40.REL\r
32519         000660' 200500  004101' LIBF1:  MOVE    W,[SIXBIT /JOBDAT/]     ;LOAD SYS:JOBDAT.REL\r
32520         000661' 260740  000716' LIBF2:  PUSHJ     P,LDDT1\r
32521         000662' 325200  000727'         JUMPGE    S,EOF2                ;JUMP IF NO UNDEFINED GLOBALS\r
32522         000663' 661000  000404          TLO     F,SLIBSW+SKIPSW ;ENABLE LIBRARY SEARCH\r
32523         000664' 621000  041000          TLZ     F,SYMSW+DSYMSW  ;DISABLE LOADING WITH SYMBOLS\r
32524         000665' 254000  000752'         JRST    LDF             ;INITIALIZE LOADING LIB4\r
32525 \r
32526                                 ;       LIB CONTROLS THE LIBRARY SEARCH OF ONE FILE\r
32527 \r
32528         000666' 325200  000726' LIB:    JUMPGE    S,EOF1                ;JUMP IF NO UNDEFINED GLOBALS\r
32529         000667' 661000  000004          TLO     F,SKIPSW                ;SET SKIPSW TO IGNORE MODE\r
32530         000670' 254000  000753'         JRST    LOAD            ;CONTINUE LIB. SEARCH\r
32531 \r
32532         000671' 302700  000004  LIB1:   CAIE    A,4             ;TEST FOR ENTRY BLOCK\r
32533         000672' 254000  000701'         JRST    LIB3            ;NOT AN ENTRY BLOCK, IGNORE IT\r
32534         000673' 260740  001371' LIB2:   PUSHJ     P,RWORD               ;READ ONE DATA WORD\r
32535         000674' 200540  000012          MOVE    C,W\r
32536         000675' 661540  040000          TLO     C,040000                ;SET CODE BITS FOR SEARCH\r
32537         000676' 260740  001353'         PUSHJ     P,SREQ\r
32538         000677' 625000  000004          TLZA    F,SKIPSW                ;REQUEST MATCHES ENTRY, LOAD\r
32539         000700' 254000  000673'         JRST    LIB2            ;NOT FOUND\r
32540         000701' 260740  001371' LIB3:   PUSHJ     P,RWORD               ;READ AND IGNORE ONE DATA WORD\r
32541         000702' 254000  000701'         JRST    LIB3            ;LOOP TO IGNORE INPUT\r
32542 \r
32543                                 ;LDDT LOADS <SYS:DDT.REL> AND SETS DSYMSW\r
32544 \r
32545         000703' 661040  006000  LRAIDX: TLO N,DDSW!EXEQSW       ;H - LOAD AND START RAID\r
32546         000704' 260740  000746' LRAID:  PUSHJ P,FSCN1           ;FORCE END OF SCAN\r
32547         000705' 200500  004102'         MOVE W,[SIXBIT /RAID/]\r
32548         000706' 254000  000712'         JRST LDDT0\r
32549         000707' 661040  006000  LDDTX:  TLO     N,DDSW+EXEQSW   ;T - LOAD AND GO TO DDT\r
32550         000710' 260740  000746' LDDT:   PUSHJ     P,FSCN1               ;FORCE SCAN TO COMPLETION\r
32551         000711' 205500  444464          MOVSI     W,444464              ;FILE IDENTIFIER <DDT>\r
32552         000712' 260740  000716' LDDT0:  PUSHJ     P,LDDT1\r
32553         000713' 260740  000752'         PUSHJ     P,LDF         ;LOAD <SYS:DDT.REL>\r
32554         000714' 661000  001000          TLO     F,DSYMSW                ;ENABLE LOADING WITH SYMBOLS\r
32555         000715' 263740  000000          POPJ    P,\r
32556 \r
32557         000716' 202500  002054' LDDT1:  MOVEM     W,DTIN                ;STORE FILE IDENTIFIER\r
32558                                 IFN PP,<MOVE W,ILD1     ;SAVE OLD DEV\r
32559                                         MOVEM W,OLDDEV>\r
32560         000717' 205500  637163          MOVSI     W,637163              ;DEVICE IDENTIFIER <SYS>\r
32561         000720' 202500  000616'         MOVEM     W,ILD1                ;STORE DEVICE IDENTIFIER\r
32562 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 20-1\r
32563         DICK GRUEN: V25 3 AUG 68\r
32564 \r
32565         000721' 621000  026004          TLZ     F,ISW+LIBSW+SKIPSW+REWSW        ;CLEAR OLD FLAGS\r
32566         000722' 205500  624554  LDDT2:  MOVSI     W,624554              ;EXTENSION IDENTIFIER <.REL>\r
32567         000723' 202500  002055' LDDT3:  MOVEM     W,DTIN1               ;STORE EXTENSION IDENTIFIER\r
32568                                 IFN PP,<MOVE W,PPN      ;GET PROJ-PROG #\r
32569                                         MOVEM W,DTIN+3>\r
32570         000724' 263740  000000          POPJ    P,\r
32571 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 21\r
32572         DICK GRUEN: V25 3 AUG 68\r
32573 \r
32574                                 ;EOF TERMINATES LOADING OF A FILE\r
32575 \r
32576         000725' 200740  001757' EOF:    MOVE    P,PDSAV         ;RESTORE PUSHDOWN POINTER\r
32577         000726' 621000  000404  EOF1:   TLZ     F,SLIBSW+SKIPSW ;CLEAR ONE FILE LIB. SEARCH FLAG\r
32578         000727' 263740  000000  EOF2:   POPJ    P,\r
32579 \r
32580                                 ;       FORCE SCAN TO COMPLETION, LOAD IF NECESSARY\r
32581 \r
32582         000730' 260740  000746' FSCN:   PUSHJ     P,FSCN1               ;FORCED LOAD BEFORE TEST\r
32583         000731' 607000  000200          TLNN    F,FULLSW                ;TEST FOR OVERLAP\r
32584         000732' 263740  000000          POPJ    P,                      ;NO OVERLAP, RETURN\r
32585         000733' 200500  000003          MOVE    W,H             ;FETCH CORE SIZE REQUIRED\r
32586         000734' 275504  000001          SUBI W,1(S) ; COMPUT DEFICIENCY\r
32587         000735' 321500  000727'         JUMPL     W,EOF2                ;JUMP IF NO OVERLAP\r
32588         000736' 661000  000020          TLO     F,FCONSW                ;INSURE TTY OUTPUT\r
32589         000737' 260740  001701'         PUSHJ   P,PRQ                   ;START WITH ?\r
32590         000740' 260740  001536'         PUSHJ     P,PRNUM0              ;INFORM USER\r
32591         000741' 265700  001667'         JSP     A,ERRPT7\r
32592         000742' 675762  446300          SIXBIT    /WORDS OF OVERLAP#/\r
32593         000743' 574600  576645\r
32594         000744' 625441  600300\r
32595         000745' 254000  000042'         JRST    LD2             ;ERROR RETURN\r
32596 \r
32597         000746' 667000  000010  FSCN1:  TLON    F,FSW           ;SKIP IF NOT FIRST CALL TO FSCN\r
32598         000747' 607000  100003          TLNN    F,CSW+DSW+ESW   ;TEST SCAN FOR COMPLETION\r
32599         000750' 263740  000000          POPJ    P,\r
32600         000751' 260740  000137' FSCN2:  PUSHJ     P,LD5B1               ;STORE FILE OR EXTENSION IDENT.\r
32601 \r
32602                                 ;       LOADER CONTROL, NORMAL MODE\r
32603 \r
32604         000752' 260740  000611' LDF:    PUSHJ     P,ILD         ;INITIALIZE LOADING\r
32605 \r
32606 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 22\r
32607         DICK GRUEN: V25 3 AUG 68\r
32608 \r
32609                                 ;LOAD SUBROUTINE\r
32610 \r
32611         000753' 202740  001757' LOAD:   MOVEM     P,PDSAV               ;SAVE PUSHDOWN POINTER\r
32612         000754' 200740  001757' LOAD1:  MOVE    P,PDSAV         ;RESTORE PUSHDOWN POINTER\r
32613         000755' 260740  001710' LOAD1A:   PUSHJ     P,WORD              ;INPUT BLOCK HEADER WORD\r
32614         000756' 211612  400000          MOVNI     E,400000(W)   ;WORD COUNT - FROM RH OF HEADER\r
32615         000757' 554700  000012          HLRZ    A,W             ;BLOCK TYPE - FROM LH OF HEADER\r
32616         000760' 303700  000013          CAILE     A,DISPL*2+1           ;TEST BLOCK TYPE NUMBER\r
32617         000761' 254000  001000'         JRST    LOAD4           ;ERROR, ILLEGAL BLOCK TYPE\r
32618         000762' 603000  000004          TLNE    F,SKIPSW                ;BLOCK OK - TEST LOAD STATUS\r
32619         000763' 254000  000671'         JRST    LIB1            ;RETURN TO LIB. SEARCH CONTROL\r
32620         000764' 550416  000772'         HRRZ    T,LOAD2(A)              ;LOAD RH DISPATCH ENTRY\r
32621         000765' 303700  000005          CAILE     A,DISPL               ;SKIP IF CORRECT\r
32622         000766' 554416  000764'         HLRZ    T,LOAD2-DISPL-1(A)      ;LOAD LH DISPATCH ENTRY\r
32623         000767' 603000  000200          TLNE    F,FULLSW                ;TEST CORE OVERLAP INDICATOR\r
32624         000770' 367700  001272'         SOJG    A,HIGH0         ;IGNORE BLOCK IF NOT TYPE 1\r
32625         000771' 254020  000010          JRST    @T                      ;DISPATCH TO BLOCK SUBROUTINE\r
32626 \r
32627                                 ;DISPATCH TABLE - BLOCK TYPES\r
32628 \r
32629         000772' 001311' 000755' LOAD2:  XWD NAME,LOAD1A\r
32630         000773' 001306' 001006'         XWD START,PROG\r
32631         000774' 001340' 001023'         XWD LOCD,SYM\r
32632         000775' 001002' 001002'         XWD LOAD4A,LOAD4A\r
32633         000776' 001002' 000701'         XWD LOAD4A,LIB3\r
32634         000777' 001002' 001274' LOAD3:  XWD LOAD4A,HIGH\r
32635 \r
32636                         000005          DISPL=LOAD3-LOAD2\r
32637 \r
32638                                 ;ERROR EXIT FOR BAD HEADER WORDS\r
32639 \r
32640         001000'                 LOAD4:  IFE K,<\r
32641         001000' 306700  000400          CAIN    A,400           ;FORTRAN FOUR BLOCK\r
32642         001001' 254000  002753'         JRST    F4LD>\r
32643         001002' 265700  001610' LOAD4A:   JSP   A,ERRPT         ;INCORRECT HEADER WORD\r
32644         001003' 515454  160046          SIXBIT    /ILL. FORMAT#/\r
32645         001004' 576255  416403\r
32646         001005' 254000  000042'         JRST    LD2\r
32647 \r
32648 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 23\r
32649         DICK GRUEN: V25 3 AUG 68\r
32650 \r
32651                                 ;LOAD PROGRAMS AND DATA (BLOCK TYPE 1)\r
32652 \r
32653         001006' 550440  000012  PROG:   HRRZ    V,W             ;LOAD BLOCK LENGTH\r
32654         001007' 260740  001371'         PUSHJ     P,RWORD               ;READ BLOCK ORIGIN\r
32655         001010' 270440  000012          ADD     V,W             ;COMPUTE NEW PROG. BREAK\r
32656         001011' 307160  000002          CAIG    H,@X            ;COMPARE WITH PREV. PROG. BREAK\r
32657         001012' 201160  000002          MOVEI     H,@X          ;UPDATE PROGRAM BREAK\r
32658         001013' 603000  000200                  TLNE F,FULLSW\r
32659         001014' 254000  001266'                 JRST FULLC      ;NO ERROR MESSAGE\r
32660         001015' 303144  000001          CAILE H,1(S)  ; SKIP IF SUFFICIENT CORE AVAILABLE\r
32661                                 IFN EXPAND,<    JRST    [PUSHJ P,XPAND>\r
32662                                                         JRST FULLC\r
32663         001016' 254000  004103' IFN EXPAND,<            JRST .-1]>\r
32664         001017' 200440  000012          MOVE    V,W\r
32665         001020' 260740  001371' PROG1:  PUSHJ     P,RWORD               ;READ DATA WORD\r
32666         001021' 202520  000002          MOVEM     W,@X          ;STORE DATA WORD IN PROG. AT LLC\r
32667         001022' 344440  001020'         AOJA    V,PROG1         ;ADD ONE TO LOADER LOC. COUNTER\r
32668 \r
32669                                 ;LOAD SYMBOLS (BLOCK TYPE 2)\r
32670 \r
32671         001023' 260740  001363' SYM:    PUSHJ     P,PRWORD              ;READ TWO DATA WORDS\r
32672         001024' 260740  001026'         PUSHJ   P,SYMPT;                PUT INTO TABLE\r
32673         001025' 254000  001023'         JRST    SYM\r
32674 \r
32675                                 ; WFW SYMPT:    JUMPL   C,SYM3;         JUMP IF GLOBAL REQUEST\r
32676         001026' 603540  200000  SYMPT:  TLNE C,200000   ;GLOBAL REQUEST? WFW\r
32677         001027' 321540  001106'         JUMPL C,SYM3    ;CHECK FOR 60 NOT JUST HIGH BIT WFW\r
32678         001030' 603540  100000          TLNE    C,100000\r
32679         001031' 254000  001053'         JRST    SYM1A           ;LOCAL SYMBOL\r
32680         001032' 260740  001353'         PUSHJ     P,SREQ                ;GLOBAL DEF., SEARCH FOR REQUEST\r
32681         001033' 254000  001070'         JRST    SYM2            ;REQUEST MATCHES\r
32682         001034' 260740  001355'         PUSHJ     P,SDEF                ;SEARCH FOR MULTIPLE DEFINITIONS\r
32683         001035' 254000  001037'         JRST    SYM1            ;MULTIPLY DEFINED GLOBAL\r
32684         001036' 254000  001055'         JRST    SYM1B\r
32685 \r
32686                                 ;       PROCESS MULTIPLY DEFINED GLOBAL\r
32687 \r
32688         001037' 316516  000002  SYM1:   CAMN    W,2(A)          ;COMPARE NEW AND OLD VALUE\r
32689         001040' 263740  000000          POPJ    P,;\r
32690         001041' 350000  001761'         AOS     MDG             ;COUNT MULTIPLY DEFINED GLOBALS\r
32691         001042' 260740  001701'         PUSHJ   P,PRQ           ;START W/ ?\r
32692         001043' 260740  001534'         PUSHJ     P,PRNAM               ;PRINT SYMBOL AND VALUE\r
32693         001044' 200516  000002          MOVE    W,2(A)          ;LOAD OLD VALUE\r
32694         001045' 260740  001535'         PUSHJ     P,PRNUM               ;PRINT OLD VALUE\r
32695         001046' 265700  001667'         JSP     A,ERRPT7                ;PRINT MESSAGE\r
32696         001047' 556554  160044          SIXBIT    /MUL. DEF. GLOBAL#/\r
32697         001050' 454616  004754\r
32698         001051' 574241  540300\r
32699         001052' 263740  000000          POPJ    P,;     IGNORE MUL. DEF. GLOBAL SYM\r
32700 \r
32701 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 24\r
32702         DICK GRUEN: V25 3 AUG 68\r
32703 \r
32704                                 ;       LOCAL SYMBOL\r
32705 \r
32706         001053' 607000  041000  SYM1A:  TLNN    F,SYMSW+DSYMSW  ;SKIP IF LOAD LOCALS SWITCH ON\r
32707         001054' 263740  000000          POPJ    P,;             IGNORE LOCAL SYMBOLS\r
32708         001055' 301144  000000  SYM1B:  CAIL    H,(S)           ;STORE DEFINED SYMBOL\r
32709         001056' 260740  000452' IFN EXPAND,<    PUSHJ P,XPAND7>\r
32710                                 IFE EXPAND,<    JRST SFULLC>\r
32711         001057'                 SYM1C:  IFE K,<\r
32712         001057' 603040  000010          TLNE    N,F4SW;         FORTRAN FOUR REQUIRES A BLT\r
32713         001060' 260740  001234'         PUSHJ   P,MVDWN;        OF THE TABLES>\r
32714         001061' 201704  777776          MOVEI A,-2(S)   ;LOAD A TO SAVE INST. AT SYM2\r
32715         001062' 275200  000002  SYM1D:  SUBI    S,2;            UPDATE UNDEFINED POINTER\r
32716         001063' 262316  000002          POP     B,2(A)          ;MOVE UNDEFINED VALUE POINTER\r
32717         001064' 262316  000001          POP     B,1(A)          ;MOVE UNDEFINED SYMBOL\r
32718         001065' 202506  000002          MOVEM     W,2(B)                ;STORE VALUE\r
32719         001066' 202546  000001          MOVEM     C,1(B)                ;STORE SYMBOL\r
32720         001067' 263740  000000          POPJ    P,;\r
32721 \r
32722 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 25\r
32723         DICK GRUEN: V25 3 AUG 68\r
32724 \r
32725                                 ;       GLOBAL DEFINITION MATCHES REQUEST\r
32726 \r
32727         001070' 261740  001100' SYM2:   PUSH P,SYM2C    ;NEXT MUST BE A SUBROUTINE FOR LATER. SET RETURN\r
32728         001071' 200456  000002  SYM2B:  MOVE    V,2(A)          ;LOAD REQUEST POINTER\r
32729         001072' 260740  001344'         PUSHJ P,REMSYM\r
32730         001073' 321440  001221'         JUMPL V,SYM2W   ;ADDITIVE REQUEST? WFW\r
32731         001074' 260740  001232'         PUSHJ     P,SYM4A               ;REPLACE CHAIN WITH DEFINITION\r
32732                                 ;WFW PATCH TO LOOK FOR MORE THAN ONE REQUEST\r
32733         001075' 260740  001353' SYM2W1: PUSHJ P,SREQ    ;LOOK FOR MORE REQUESTS FOR THIS SYMBOL\r
32734         001076' 254000  001071'         JRST SYM2B      ;FOUND MORE\r
32735         001077' 200700  001101'         MOVE A,SVA      ;RESTORE A\r
32736                                 ;END OF PATCH WFW\r
32737         001100' 263740  001062' SYM2C:  POPJ P,SYM1D    ;RETURN, SEE SYM2 FOR USE OF ADDRESS\r
32738         001101' 000000  000000  SVA:    0       ;A TEMP CELL WFW\r
32739 \r
32740                                 ;       REQUEST MATCHES GLOBAL DEFINITION\r
32741 \r
32742         001102' 200440  000012  SYM2A:  MOVE    V,W             ;LOAD POINTER TO CHAIN\r
32743         001103' 200516  000002          MOVE    W,2(A)          ;LOAD VALUE\r
32744         001104' 321440  001152'         JUMPL V,FIXWP   ;HANDLE ATTITIVE REQUEST WFW\r
32745         001105' 254000  001232'         JRST    SYM4A;          REPLACE CHAIN WITH DEFINITION\r
32746 \r
32747                                 ;       PROCESS GLOBAL REQUEST\r
32748 \r
32749         001106' 603540  040000  SYM3:   TLNE    C,040000;               COMMON NAME\r
32750         001107' 254000  001055'         JRST    SYM1B\r
32751         001110' 641540  640000          TLC     C,640000;               PERMUTE BITS FROM 60 TO 04\r
32752         001111' 260740  001355'         PUSHJ     P,SDEF                ;SEARCH FOR GLOBAL DEFINITION\r
32753         001112' 254000  001102'         JRST    SYM2A           ;MATCHING GLOBAL DEFINITION\r
32754         001113' 321500  001116'         JUMPL W,SYM3X1  ;ADDITIVE FIXUP WFW\r
32755         001114' 260740  001353'         PUSHJ     P,SREQ                ;SEARCH FOR EXISTING REQUEST WFW\r
32756         001115' 254000  001137'         JRST    SYM3A           ;EXISTING REQUEST FOUND WFW\r
32757         001116' 607500  100000  SYM3X1: TLNN W,100000   ;CHECK SYMBOL TABLE FIXUP\r
32758         001117' 254000  001127'         JRST SYM3X2     ;NO\r
32759         001120' 200446  000001          MOVE V,1(B)     ;MUST BE LAST SYMBOL DEFINED. GET SYMBOL\r
32760         001121' 430440  000012          XOR V,W         ;CHECK FOR IDENTITY\r
32761         001122' 612440  004106'         TDNE V,[XWD 77777,-1]   ;BUT IGNORE HIGH 3 BITS\r
32762         001123' 263740  000000          POPJ P,         ;NOT SAME, ASSUME NOT LOADED LOCAL\r
32763         001124' 541506  000002          HRRI W,2(B)     ;GET LOCATION IN RIGHT HALF\r
32764         001125' 661500  000001          TLO W,1\r
32765         001126' 274500  000377*         SUB W,JOBREL    ;AND MAKE RELATIVE\r
32766         001127' 301144  000000  SYM3X2: CAIL    H,(S)           ;STORE REQUEST IN UNDEF. TABLE WFW\r
32767         001130' 260740  000452' IFN EXPAND,<    PUSHJ P,XPAND7>\r
32768                                 IFE EXPAND,<    JRST SFULLC>\r
32769         001131'                 SYM3X:  IFE K,<\r
32770         001131' 603040  000010          TLNE    N,F4SW;         FORTRAN FOUR\r
32771         001132' 260740  001234'         PUSHJ   P,MVDWN;                ADJUST TABLES IF F4>\r
32772         001133' 274200  001753'         SUB     S,SE3           ;ADVANCE UNDEFINED POINTER\r
32773         001134' 202504  000002          MOVEM     W,2(S)                ;STORE UNDEFINED VALUE POINTER\r
32774         001135' 202544  000001          MOVEM     C,1(S)                ;STORE UNDEFINED SYMBOL\r
32775         001136' 263740  000000          POPJ    P,;\r
32776 \r
32777 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 26\r
32778         DICK GRUEN: V25 3 AUG 68\r
32779 \r
32780 \r
32781                                 ;       COMBINE TWO REQUEST CHAINS\r
32782 \r
32783         001137' 331016  000002  SYM3A:  SKIPL 2(A)      ;IS IT ADDITIVE WFW\r
32784         001140' 254000  001144'         JRST SYM3A1     ;NO, PROCESS WFW\r
32785         001141' 260740  001360'         PUSHJ P,SDEF2   ;YES, CONTINUE WFW\r
32786         001142' 254000  001137'         JRST SYM3A      ;FOUND ANOTHER WFW\r
32787         001143' 254000  001127'         JRST SYM3X2     ;REALLY NO CHAIN THERE WFW\r
32788         001144' 275702  777776  SYM3A1: SUBI A,-2(X)  ;A=A-(-2+X(18-35)); A RELATIVE TO X WFW\r
32789         001145' 550440  000016  SYM3B:  HRRZ V,A       ; SAVE CHAIN ADDRESS FOR HRRM W,@X\r
32790         001146' 550720  000002          HRRZ A,@X ; LOAD NEXT ADDRESS IN CHAIN\r
32791         001147' 326700  001145'         JUMPN A,SYM3B  ; JUMP IF NOT THE LAST ADDR. IN CHAIN\r
32792         001150' 542520  000002          HRRM    W,@X            ;COMBINE CHAINS\r
32793         001151' 263740  000000          POPJ    P,;\r
32794 \r
32795                                 ;WFW PATCH FOR ADDITIVE GLOBAL REQUESTS\r
32796 \r
32797         001152' 607440  100000  FIXWP:  TLNN V,100000   ;CHECK FOR SYMBOL TABLE FIXUP\r
32798         001153' 254000  001162'         JRST FIXW\r
32799         001154' 200406  000001          MOVE T,1(B)     ;SYMBOL FIXUP, MUST BE LAST SYMBOL DEFINED\r
32800         001155' 430400  000011          XOR T,V         ;CHECK FOR SAME\r
32801         001156' 612400  004106'         TDNE T,[XWD 77777,-1]   ;EXCEPT FOR HEGH CODE BITS\r
32802         001157' 263740  000000          POPJ P,         ;ASSUME NON-LOADED LOCAL\r
32803         001160' 541446  000002          HRRI V,2(B)     ;GET LOCATION\r
32804         001161' 275442  000000          SUBI V,(X)      ;SO WE CAN USE @X\r
32805         001162' 603440  200000  FIXW:   TLNE V,200000   ;IS IT LEFT HALF\r
32806         001163' 254000  001171'         JRST FIXWL\r
32807         001164' 200420  000002          MOVE T,@X       ;GET WORD\r
32808         001165' 270400  000012          ADD T,W         ;VALUE OF GLOBAL\r
32809         001166' 542420  000002          HRRM T,@X       ;FIX WITHOUT CARRY\r
32810         001167' 205340  200000          MOVSI D,200000  ;SET UP TO REMOVE DEFERED INTERNAL IF THERE\r
32811         001170' 254000  001174'         JRST SYMFIX\r
32812         001171' 514400  000012  FIXWL:  HRLZ    T,W             ;UPDATE VALUE OF LEFT HALF\r
32813         001172' 272420  000002          ADDM    T,@X            ;BY VALUE OF GLOBAL\r
32814         001173' 205340  400000          MOVSI D,400000  ;LEFT DEFERED INTERNAL\r
32815         001174' 607440  100000  SYMFIX: TLNN V,100000   ;CHECK FOR SYMBOL TABLE FIXUP\r
32816         001175' 263740  000000          POPJ P,         ;NO, RETURN\r
32817         001176' 271442  000000          ADDI V,(X)      ;GET THE LOCATION\r
32818         001177' 200411  777777          MOVE T,-1(V)    ;GET THE SYMBOL NAME\r
32819         001200' 607400  040000          TLNN T,40000    ;CHECK TO SEE IF INTERNAL\r
32820         001201' 263740  000000          POPJ P,         ;NO, LEAVE\r
32821         001202' 413351  777777          ANDCAB D,-1(V)  ;REMOVE PROPER BIT\r
32822         001203' 603340  600000          TLNE D,600000   ;IS IT STILL DEFERED?\r
32823         001204' 263740  000000          POPJ P,         ;YES, ALL DONE\r
32824         001205' 250540  000007          EXCH C,D        ;NO, CHECK FOR A REQUEST FOR IT\r
32825         001206' 260740  001353'         PUSHJ P,SREQ\r
32826         001207' 254000  001212'         JRST CHNSYM     ;YES, WILL HAVE TO CALL THE FIXUP ROUTINE\r
32827         001210' 200540  000007          MOVE C,D        ;GET C BACK\r
32828         001211' 263740  000000          POPJ P,\r
32829         001212' 261740  000007  CHNSYM: PUSH P,D        ;HAS THE OLD C IN IT\r
32830         001213' 261740  000012          PUSH P,W        ;WE MAY NEED IT LATER\r
32831         001214' 200511  000000          MOVE W,(V)      ;GET VALUE\r
32832         001215' 260740  001071'         PUSHJ P,SYM2B   ;CALL THE FOUND GLOBAL TO MATCH REQUEST ROUTINE\r
32833 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 26-1\r
32834         DICK GRUEN: V25 3 AUG 68\r
32835 \r
32836         001216' 262740  000012          POP P,W\r
32837         001217' 262740  000013          POP P,C         ;RESTORE FOR CALLER\r
32838         001220' 263740  000000          POPJ P,         ;AND GO AWAY\r
32839 \r
32840         001221' 607440  100000  SYM2W:  TLNN V,100000   ;SYMBOL TABLE?\r
32841         001222' 254000  001225'         JRST SYM2WA\r
32842         001223' 270440  001126*         ADD V,JOBREL    ;MAKE ABSOLUTE\r
32843         001224' 275442  000000          SUBI V,(X)      ;GET READY TO ADD X\r
32844         001225' 260740  001162'         SYM2WA: PUSHJ P,FIXW    ;DO FIXUP\r
32845         001226' 254000  001075'         JRST SYM2W1     ;AND LOOK FOR MORE REQUESTS\r
32846 \r
32847                                 ;END WFW PATCH\r
32848 \r
32849 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 27\r
32850         DICK GRUEN: V25 3 AUG 68\r
32851 \r
32852                                 ;PATCH VALUES INTO CHAINED REQUEST\r
32853         001227'                 SYM4:\r
32854         001227' 550420  000002          HRRZ    T,@X            ;LOAD NEXT ADDRESS IN CHAIN\r
32855         001230' 542520  000002          HRRM    W,@X            ;INSERT VALUE INTO PROGRAM\r
32856         001231' 200440  000010          MOVE    V,T\r
32857         001232' 326440  001227' SYM4A:  JUMPN     V,SYM4                ;JUMP IF NOT LAST ADDR. IN CHAIN\r
32858         001233' 263740  000000          POPJ    P,\r
32859 \r
32860                                 IFE     K,<\r
32861         001234' 550400  003402' MVDWN:  HRRZ T,MLTP\r
32862         001235' 275400  000002  IFN EXPAND,<    SUBI T,2>\r
32863         001236' 307420  000002          CAIG    T,@X;           ANY ROOM LEFT?\r
32864                                 IFN EXPAND,<    JRST    [PUSHJ P,XPAND>\r
32865                                                         TLOA F,FULLSW\r
32866                                 IFN EXPAND,<            JRST MVDWN\r
32867         001237' 254000  004107'                         JRST .+2]>\r
32868         001240' 603000  000204          TLNE    F,SKIPSW+FULLSW\r
32869         001241' 254000  001256'         JRST    MVABRT; ABORT BLT\r
32870         001242' 571400  777776          HRREI   T,-2\r
32871         001243' 272400  003401'         ADDM    T,PLTP;         ADJUST PROGRAMMER LABEL POINTER\r
32872         001244' 272400  003377'         ADDM    T,BITP;         AND BIT TABLE POINTER\r
32873         001245' 272400  003404'         ADDM    T,SDSTP;        FIRST DATA STATEMENT\r
32874         001246' 272400  004174'         ADDM    T,LTC\r
32875         001247' 272400  004175'         ADDM    T,ITC\r
32876         001250' 603040  000040          TLNE    N,SYDAT\r
32877         001251' 272400  000011          ADDM    T,V\r
32878         001252' 273400  003402'         ADDB    T,MLTP;         AND FINALLY TO MADE LABEL TABLE\r
32879         001253' 507000  000010          HRLS    T;              SET UP BLT POINTER\r
32880         001254' 270400  004113'         ADD     T,[XWD 2,0]\r
32881         001255' 251404  000000          BLT     T,(S)\r
32882         001256' 263740  000000  MVABRT: POPJ    P,;\r
32883                                 >\r
32884                                 ;HIGHEST RELOCATABLE POINT (BLOCK TYPE 4)\r
32885         001257' 663000  000200  SFULLC: TLOE    F,FULLSW        ;PREVIOUS OVERFLOW?\r
32886         001260' 254000  001266'         JRST    FULLC           ;YES, DON'T PRINT MESSAGE\r
32887         001261' 265700  001610'         JSP     A,ERRPT         ;NO, COMPLAIN ABT OVERFLO\r
32888         001262' 637155  425754          SIXBIT  ?SYMBOL TABLE OVERLAP#?\r
32889         001263' 006441  425445\r
32890         001264' 005766  456254\r
32891         001265' 416003  000000\r
32892         001266' 661000  000200  FULLC:  TLO     F,FULLSW        ;CORE OVERLAP ERROR RETURN\r
32893         001267' 603040  000010  IFE K,< TLNE    N,F4SW\r
32894         001270' 263740  000000          POPJ    P,>\r
32895         001271' 254000  000701'         JRST    LIB3            ;LOOK FOR MORE\r
32896 \r
32897         001272' 302700  000004  HIGH0:  CAIE A,4  ; TEST FOR END BLOCK (OVERLAP)\r
32898         001273' 254000  000701'         JRST    LIB3\r
32899         001274' 260740  001363' HIGH:   PUSHJ     P,PRWORD              ;READ TWO DATA WORDS\r
32900         001275' 540240  000013          HRR     R,C             ;SET NEW PROGRAM BREAK\r
32901         001276' 271540  000002          ADDI    C,X;    BE SURE TO RELOCATE\r
32902         001277' 303544  000001          CAILE   C,1(S)          ;TEST PROGRAM BREAK\r
32903                                 IFN EXPAND,<PUSHJ P,[   PUSHJ P,XPAND\r
32904                                                         TLOA F,FULLSW\r
32905 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 27-1\r
32906         DICK GRUEN: V25 3 AUG 68\r
32907 \r
32908                                                         JRST POPJM2\r
32909         001300' 260740  004114'                         POPJ    P,]>\r
32910                                 IFE EXPAND,<TLO F,FULLSW>\r
32911         001301' 201700  002022' HIGH3:  MOVEI   A,F.C           ;SAVE CURRENT STATE OF LOADER\r
32912         001302' 251700  002030'         BLT     A,B.C\r
32913         001303' 603000  004400          TLNE    F,SLIBSW+LIBSW  ;NORMAL MODE EXIT THROUGH LOAD1\r
32914         001304' 254000  000666'         JRST    LIB             ;LIBRARY SEARCH EXIT\r
32915         001305' 254000  000754'         JRST LOAD1\r
32916 \r
32917 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 28\r
32918         DICK GRUEN: V25 3 AUG 68\r
32919 \r
32920                                 ;STARTING ADDRESS (BLOCK TYPE 7)\r
32921 \r
32922         001306' 260740  001363' START:  PUSHJ     P,PRWORD              ;READ TWO DATA WORDS\r
32923         001307' 607040  000002          TLNN    N,ISAFLG                ;SKIP IF IGNORE SA FLAG ON\r
32924         001310' 540000  000013          HRR     F,C             ;SET STARTING ADDRESS\r
32925 \r
32926                                 ;PROGRAM NAME (BLOCK TYPE 6)\r
32927 \r
32928         001311' 260740  001363' NAME:   PUSHJ     P,PRWORD              ;READ TWO DATA WORDS\r
32929         001312' 663040  000004          TLOE    N,COMFLG                ;SKIP IF COMMON NOT PREV. SET\r
32930         001313' 254000  001317'         JRST    NAME1           ;SIZE OF COMMON PREV. SET\r
32931         001314' 202500  001760'         MOVEM     W,COMSAV              ;STORE LENGTH OF COMMON\r
32932         001315' 322500  001330'         JUMPE     W,NAME2               ;JUMP IF NO COMMON IN THIS JOB\r
32933         001316' 541260  000005          HRRI    R,@R            ;FIRST PROGRAM SET LOAD ORIGIN\r
32934         001317' 303144  777777  NAME1:  CAILE H,-1(S)           ;TEST FOR AVAIL. SYMBOL SPACE\r
32935         001320' 260740  000452' IFN EXPAND,<    PUSHJ P,XPAND7>\r
32936                                 IFE EXPAND,<    JRST SFULLC>\r
32937         001321' 275200  000002          SUBI    S,2             ;UPDATE UNDEF. TABLE POINTER\r
32938         001322' 262304  000002          POP     B,2(S)\r
32939         001323' 262304  000001          POP     B,1(S)\r
32940         001324' 550440  000001          HRRZ    V,N             ;POINTER TO PREVIOUS NAME\r
32941         001325' 276300  000011          SUBM    B,V             ;COMPUTE RELATIVE POSITIONS\r
32942         001326' 506441  000002          HRLM    V,2(N)          ;STORE FORWARD POINTER\r
32943         001327' 540040  000006          HRR     N,B             ;UPDATE NAME POINTER\r
32944         001330' 202546  000001  NAME2:  MOVEM     C,1(B)                ;STORE PROGRAM NAME\r
32945         001331' 552246  000002          HRRZM   R,2(B)          ;STORE PROGRAM ORIGIN\r
32946         001332' 317500  001760'         CAMG    W,COMSAV                ;CHECK COMMON SIZE\r
32947         001333' 254000  000701'         JRST    LIB3            ;COMMON OK\r
32948         001334' 265700  001610' ILC:    JSP     A,ERRPT\r
32949         001335' 515454  160043          SIXBIT    /ILL. COMMON#/\r
32950         001336' 575555  575603\r
32951         001337' 254000  000042'         JRST    LD2\r
32952 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 29\r
32953         DICK GRUEN: V25 3 AUG 68\r
32954 \r
32955 \r
32956                                 ;ONE PASS LOCAL DEFINITION (BLOCK TYPE 10)\r
32957 \r
32958                                                         ;PMP PATCH FOR LEFT HALF FIXUPS\r
32959                                                         ;END PMP PATCH\r
32960         001340' 260740  001371' LOCD:   PUSHJ     P,RWORD               ;READ ONE DATA WORD\r
32961         001341' 554440  000012          HLRZ    V,W             ;STORAGE POINTER IN LEFT HALF\r
32962         001342' 260740  001232'         PUSHJ     P,SYM4A               ;LINK BACK REFERENCES\r
32963         001343' 254000  001340'         JRST    LOCD\r
32964 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 30\r
32965         DICK GRUEN: V25 3 AUG 68\r
32966 \r
32967  \r
32968         001344' 200404  000001  REMSYM: MOVE T,1(S)\r
32969         001345' 202416  000001          MOVEM T,1(A)\r
32970         001346' 200404  000002          MOVE T,2(S)\r
32971         001347' 202416  000002          MOVEM T,2(A)\r
32972         001350' 270200  001753'         ADD S,SE3\r
32973         001351' 202700  001101'         MOVEM A,SVA\r
32974         001352' 263740  000000          POPJ P,\r
32975 \r
32976 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 31\r
32977         DICK GRUEN: V25 3 AUG 68\r
32978 \r
32979                                 ;SYMBOL TABLE SEARCH SUBROUTINES\r
32980 \r
32981                                 ;       ENTERED WITH SYMBOL IN C\r
32982                                 ;       RETURN IS WITH POINTER IN A IF MATCHING SYMBOL FOUND\r
32983                                 ;       OTHERWISE, A SKIP ON RETURN OCCURS\r
32984 \r
32985         001353' 325200  003423' SREQ:   JUMPGE    S,CPOPJ1              ;JUMP IF NO UNDEF. SYMBOLS\r
32986         001354' 334700  000004          SKIPA     A,S           ;LOAD REQUEST SEARCH POINTER\r
32987         001355' 200700  000006  SDEF:   MOVE    A,B             ;LOAD DEF. SYMBOL SEARCH POINTER\r
32988         001356' 316556  000001  SDEF1:  CAMN    C,1(A)\r
32989         001357' 263740  000000          POPJ    P,                      ;SYMBOLS MATCH, RETURN\r
32990         001360' 270700  001753' SDEF2:  ADD     A,SE3\r
32991         001361' 321700  001356'         JUMPL     A,SDEF1\r
32992         001362' 254000  003423' IFE K,< JRST    CPOPJ1          ;SYMBOL NOT FOUND SKIPS ON RETURN>\r
32993                                 IFN K,<\r
32994                                 CPOPJ1: AOS     (P)             ;TRA 2,4\r
32995                                         POPJ    P,              ;...>\r
32996 \r
32997                                 ;RELOCATION AND BLOCK INPUT\r
32998 \r
32999         001363' 260740  001371' PRWORD:   PUSHJ     P,RWORD             ;READ A WORD PAIR\r
33000         001364' 200540  000012          MOVE    C,W             ;LOAD C WITH FIRST DATA WORD\r
33001         001365' 602600  377777          TRNE    E,377777                ;TEST FOR END OF BLOCK\r
33002         001366' 254000  001373'         JRST    RWORD1          ;INPUT SECOND WORD OF PAIR\r
33003         001367' 201500  000000          MOVEI     W,0           ;NO SECOND WORD, ASSUME ZERO\r
33004         001370' 263740  000000          POPJ    P,\r
33005 \r
33006         001371' 606600  377777  RWORD:  TRNN    E,377777                ;TEST FOR END OF BLOCK\r
33007         001372' 254000  000754'         JRST    LOAD1           ;RETURN TO LOAD THE NEXT BLOCK\r
33008         001373' 253600  001377' RWORD1:   AOBJN     E,RWORD2            ;JUMP IF DATA WORD NEXT\r
33009         001374' 260740  001710'         PUSHJ     P,WORD                ;READ CONTROL WORD\r
33010         001375' 200640  000012          MOVE    Q,W             ;DON'T COUNT RELOCATION WORDS\r
33011         001376' 505600  777756          HRLI    E,-22           ;SET RELOCATION WORD BYTE COUNT\r
33012         001377' 260740  001710' RWORD2:   PUSHJ     P,WORD              ;READ INPUT WORD\r
33013         001400' 325640  001403'         JUMPGE    Q,RWORD3              ;TEST LH RELOCATION BIT\r
33014         001401' 514400  000005          HRLZ    T,R\r
33015         001402' 270500  000010          ADD     W,T             ;LH RELOCATION\r
33016         001403' 603640  200000  RWORD3:   TLNE  Q,200000                ;TEST RH RELOCATION BIT\r
33017         001404' 541520  000005          HRRI    W,@R            ;RH RELOCATION\r
33018         001405' 242640  000002          LSH     Q,2\r
33019         001406' 263740  000000          POPJ    P,\r
33020 \r
33021 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 32\r
33022         DICK GRUEN: V25 3 AUG 68\r
33023 \r
33024                                 ;PRINT STORAGE MAP SUBROUTINE\r
33025 \r
33026         001407' 260740  000746' PRMAP:  PUSHJ   P,FSCN1 ;LOAD OTHER FILES FIRST\r
33027         001410' 260740  001726'         PUSHJ   P,CRLFLF        ;START NEW PAGE\r
33028         001411' 550500  000005          HRRZ    W,R\r
33029         001412' 260740  001536'         PUSHJ     P,PRNUM0\r
33030         001413' 265700  001667'         JSP     A,ERRPT7\r
33031         001414' 516300  645045          SIXBIT  ?IS THE PROGRAM BREAK@?\r
33032         001415' 006062  574762\r
33033         001416' 415500  426245\r
33034         001417' 415340  000000\r
33035         001420' 260740  001730'         PUSHJ   P,CRLF          ;START STORAGE MAP\r
33036         001421' 265700  001613'         JSP     A,ERRPT0        ;PRINT HEADER\r
33037         001422' 636457  624147          SIXBIT  ?STORAGE MAP@?\r
33038         001423' 450055  416040\r
33039         001424' 574700  000006          HLRE    A,B\r
33040         001425' 213000  000016          MOVNS     A\r
33041         001426' 271706  000000          ADDI    A,(B)\r
33042         001427' 275700  000002  PRMAP1:   SUBI  A,2\r
33043         001430' 331556  000001          SKIPL     C,1(A)                ;LOAD SYMBOL, SKIP IF DELETED\r
33044         001431' 603540  300000          TLNE    C,300000                ;TEST FOR LOCAL SYMBOL\r
33045         001432' 254000  001456'         JRST    PRMAP4          ;IGNORE LOCAL SYMBOLS\r
33046         001433' 607540  040000          TLNN    C,040000\r
33047         001434' 260740  001730'         PUSHJ     P,CRLF                ;PROGRAM NAME\r
33048         001435' 260740  001533'         PUSHJ     P,PRNAM1              ;PRINT SYMBOL AND VALUE\r
33049         001436' 603540  040000          TLNE    C,040000\r
33050         001437' 254000  001455'         JRST    PRMAP3          ;GLOBAL SYMBOL\r
33051         001440' 574540  000012          HLRE    C,W             ;POINTER TO NEXT PROG. NAME\r
33052         001441' 325540  001444'         JUMPGE    C,PRMAP2              ;JUMP IF LAST PROGRAM NAME\r
33053         001442' 271556  000002          ADDI    C,2(A)          ;COMPUTE LOC. OF FOLLOWING NAME\r
33054         001443' 334420  000013          SKIPA     T,@C          ;LOAD ORIGIN OF FOLLOWING PROG.\r
33055         001444' 550400  000005  PRMAP2:   HRRZ  T,R             ;LOAD PROGRAM BREAK\r
33056         001445' 276400  000012          SUBM    T,W             ;SUBTRACT ORIGIN TO GET LENGTH\r
33057         001446' 260740  001535'         PUSHJ     P,PRNUM               ;PRINT PROGRAM LENGTH\r
33058         001447' 260740  001730'         PUSHJ     P,CRLF\r
33059         001450' 607040  000001          TLNN    N,ALLFLG                ;SKIP IF LIST ALL MODE IS ON\r
33060         001451' 602500  777777          TRNE    W,777777                ;SKIP IF ZERO LENGTH PROGRAM\r
33061         001452' 254000  001455'         JRST    PRMAP3\r
33062         001453' 322540  001460'         JUMPE     C,PRMAP5              ;JUMP IF LAST PROGRAM\r
33063         001454' 334700  000013          SKIPA     A,C           ;SKIP GLOBALS, ZERO LENGTH PROG.\r
33064         001455' 260740  001730' PRMAP3:   PUSHJ     P,CRLF\r
33065         001456' 303706  000000  PRMAP4:   CAILE     A,(B)               ;TEST FOR END OF SYMBOL TABLE\r
33066         001457' 254000  001427'         JRST    PRMAP1\r
33067         001460'                 PRMAP5:\r
33068 \r
33069 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 33\r
33070         DICK GRUEN: V25 3 AUG 68\r
33071 \r
33072                                 ;LIST UNDEFINED GLOBALS\r
33073 \r
33074         001460' 260740  000746' PMS:    PUSHJ   P,FSCN1 ;LOAD FILES FIRST\r
33075         001461' 325200  001504'         JUMPGE  S,PMS3          ;JUMP IF NO UNDEFINED GLOBALS\r
33076         001462' 523000  000042          HLLOS 42                ;SET SOME ERROR TO ABORT EXECUTION\r
33077         001463' 260740  001727'         PUSHJ   P,FCRLF         ;START THE MESSAGE\r
33078         001464' 260740  001701'         PUSHJ   P,PRQ           ;PRINT ?\r
33079         001465' 574500  000004          HLRE    W,S             ;COMPUTE NO. OF UNDEF. GLOBALS\r
33080         001466' 217000  000012          MOVMS     W\r
33081         001467' 242500  777777          LSH     W,-1            ;<LENGTH OF LIST>/2\r
33082         001470' 260740  001536'         PUSHJ     P,PRNUM0\r
33083         001471' 265700  001667'         JSP     A,ERRPT7\r
33084         001472' 655644  454651          SIXBIT    /UNDEFINED GLOBALS@/\r
33085         001473' 564544  004754\r
33086         001474' 574241  546340\r
33087         001475' 200700  000004          MOVE    A,S             ;LOAD UNDEF. POINTER\r
33088         001476' 260740  001730' PMS2:   PUSHJ     P,CRLF\r
33089         001477' 260740  001701'         PUSHJ   P,PRQ           ;PRINT ?\r
33090         001500' 260740  001532'         PUSHJ     P,PRNAM0              ;PRINT SYMBOL AND POINTER\r
33091         001501' 270700  001753'         ADD     A,SE3\r
33092         001502' 321700  001476'         JUMPL     A,PMS2\r
33093         001503' 260740  001730'         PUSHJ   P,CRLF          ;SPACE AFTER LISTING\r
33094 \r
33095                                 ;LIST NUMBER OF MULTIPLY DEFINED GLOBALS\r
33096 \r
33097         001504' 336500  001761' PMS3:   SKIPN   W,MDG           ;ANY MULTIPLY DEFINED GLOBALS\r
33098         001505' 254000  001520'         JRST    PMS4            ;NO, EXCELSIOR\r
33099         001506' 523000  000042          HLLOS 42                ;ANOTHER WAY TO LOSE\r
33100         001507' 260740  001727'         PUSHJ   P,FCRLF         ;ROOM AT THE TOP\r
33101         001510' 260740  001701'         PUSHJ   P,PRQ           ;PRINT ?\r
33102         001511' 260740  001536'         PUSHJ   P,PRNUM0        ;NUMBER OF MULTIPLES\r
33103         001512' 265700  001667'         JSP     A,ERRPT7        ;REST OF MESSAGE\r
33104         001513' 556554  645160          SIXBIT  ?MULTIPLY DEFINED GLOBALS@?\r
33105         001514' 547100  444546\r
33106         001515' 515645  440047\r
33107         001516' 545742  415463\r
33108         001517' 400000  000000\r
33109         001520' 603040  040000  PMS4:   TLNE    N,AUXSWE        ;AUXILIARY OUTPUT DEVICE?\r
33110         001521' 067100  000000          OUTPUT  2,              ;INSURE A COMPLETE BUFFER\r
33111         001522' 263740  000000          POPJ    P,              ;RETURN\r
33112 \r
33113 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 34\r
33114         DICK GRUEN: V25 3 AUG 68\r
33115 \r
33116                                 ;ENTER FILE ON AUXILIARY OUTPUT DEVICE\r
33117 \r
33118         001523' 077100  002060' IAD2:   ENTER   2,DTOUT         ;WRITE FILE NAME IN DIRECTORY\r
33119         001524' 254000  001526'         JRST    IMD3            ;NO MORE DIRECTORY SPACE\r
33120         001525' 263740  000000          POPJ    P,\r
33121 \r
33122         001526' 265700  001610' IMD3:   JSP     A,ERRPT         ;DIRECTORY FULL ERROR\r
33123         001527' 445162  160046          SIXBIT    /DIR. FULL@/\r
33124         001530' 655454  400000\r
33125         001531' 254000  000042'         JRST    LD2\r
33126 \r
33127                                 ;PRINT THE 6 DIGIT OCTAL ADDRESS IN W\r
33128 \r
33129                                 ;       ACCUMULATORS USED: D,T,V\r
33130 \r
33131         001532' 200556  000001  PRNAM0:   MOVE  C,1(A)          ;LOAD SYMBOL\r
33132         001533' 200516  000002  PRNAM1:   MOVE  W,2(A)          ;LOAD VALUE\r
33133         001534' 260740  001561' PRNAM:  PUSHJ     P,PRNAME\r
33134         001535' 260740  001555' PRNUM:  PUSHJ     P,SPACES\r
33135         001536' 200440  001545' PRNUM0:   MOVE  V,PRNUM2                ;LOAD BYTE POINTER TO RH. OF W\r
33136         001537' 211340  000006          MOVNI     D,6           ;LOAD CHAR. COUNT\r
33137         001540' 134400  000011  PRNUM1:   ILDB  T,V             ;LOAD DIGIT TO BE OUTPUT\r
33138         001541' 271400  000060          ADDI    T,60            ;CONVERT FROM BINARY TO ASCII\r
33139         001542' 260740  001734'         PUSHJ     P,TYPE2\r
33140         001543' 341340  001540'         AOJL    D,PRNUM1                ;JUMP IF MORE DIGITS REMAIN\r
33141         001544' 263740  000000          POPJ    P,\r
33142 \r
33143         001545' 220300  000012  PRNUM2:   XWD   220300,W\r
33144 \r
33145                                 ;YE OLDE RECURSIVE NUMBER PRINTER\r
33146                                 ;PRINTS Q, WITH LEADING ZEROES SUPPRESSED; USES A AND T\r
33147 \r
33148         001546' 231640  000012  RCNUM:  IDIVI Q,12              ;RADIX DECIMAL\r
33149         001547' 271700  000060          ADDI A,"0"\r
33150         001550' 506717  000000          HRLM A,(P)\r
33151         001551' 332000  000015          SKIPE Q\r
33152         001552' 260740  001546'         PUSHJ P,RCNUM\r
33153         001553' 554417  000000          HLRZ T,(P)\r
33154         001554' 254000  001734'         JRST TYPE2\r
33155 \r
33156 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 35\r
33157         DICK GRUEN: V25 3 AUG 68\r
33158 \r
33159                                 ;PRINT FOUR SPACES\r
33160 \r
33161         001555' 260740  001556' SPACES:   PUSHJ     P,SP1\r
33162         001556' 260740  001557' SP1:    PUSHJ     P,SPACE\r
33163         001557' 201400  000040  SPACE:  MOVEI     T,40\r
33164         001560' 254000  001734'         JRST    TYPE2\r
33165 \r
33166                                 ;SYMBOL PRINT - RADIX 50\r
33167 \r
33168                                 ;       ACCUMULATORS USED: D,T\r
33169 \r
33170         001561' 200400  000013  PRNAME:   MOVE  T,C             ;LOAD SYMBOL\r
33171         001562' 621400  740000          TLZ     T,740000                ;ZERO CODE BITS\r
33172         001563' 211340  000006          MOVNI     D,6           ;LOAD CHAR. COUNT\r
33173         001564' 231400  000050  SPT:    IDIVI     T,50          ;THE REMAINDER IS THE NEXT CHAR.\r
33174         001565' 506457  000000          HRLM    V,(P)           ;STORE IN LH. OF PUSHDOWN LIST\r
33175         001566' 355000  000007          AOSGE     D                     ;SKIP IF NO CHARS. REMAIN\r
33176         001567' 260740  001564'         PUSHJ     P,SPT         ;RECURSIVE CALL FOR NEXT CHAR.\r
33177         001570' 554417  000000          HLRZ    T,(P)           ;LOAD FROM LH. OF PUSHDOWN LIST\r
33178         001571' 322400  001733'         JUMPE     T,TYPE                ;BLANK\r
33179         001572' 271400  000057          ADDI    T,60-1\r
33180         001573' 303400  000071          CAILE     T,71\r
33181         001574' 271400  000007          ADDI    T,101-72\r
33182         001575' 303400  000132          CAILE     T,132\r
33183         001576' 275400  000070          SUBI    T,134-44\r
33184         001577' 306400  000043          CAIN    T,43\r
33185         001600' 201400  000056          MOVEI     T,56\r
33186         001601' 254000  001734'         JRST    TYPE2\r
33187                                 ;PRINT A WORD OF SIXBIT CHARACTERS IN AC W\r
33188 \r
33189                                 ;       ACCUMULATORS USED: Q,T,D\r
33190 \r
33191         001602' 211640  000006  PWORD:  MOVNI     Q,6           ;SET CHARACTER COUNT TO SIX\r
33192         001603' 200340  001754' PWORD1:   MOVE  D,LSTPT         ;ENTER HERE WITH Q PRESET\r
33193         001604' 134400  000007  PWORD2:   ILDB  T,D             ;LOAD NEXT CHAR. TO BE OUTPUT\r
33194         001605' 260740  001733'         PUSHJ     P,TYPE                ;OUTPUT CHARACTER\r
33195         001606' 341640  001604'         AOJL    Q,PWORD2\r
33196         001607' 263740  000000          POPJ    P,\r
33197 \r
33198 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 36\r
33199         DICK GRUEN: V25 3 AUG 68\r
33200 \r
33201                                 ;ERROR MESSAGE PRINT SUBROUTINE\r
33202 \r
33203                                 ;       FORM OF CALL:\r
33204 \r
33205                                 ;       JSP     A,ERRPT\r
33206                                 ;       SIXBIT    /<MESSAGE>/\r
33207 \r
33208                                 ;       ACCUMULATORS USED: T,V,C,W\r
33209 \r
33210         001610' 661000  000020  ERRPT:  TLO     F,FCONSW        ;INSURE TTY OUTPUT\r
33211         001611' 260740  001730'         PUSHJ   P,CRLF          ;ROOM AT THE TOP\r
33212         001612' 260740  001701'         PUSHJ   P,PRQ           ;START OFF WITH ?\r
33213         001613' 261740  000015  ERRPT0:   PUSH  P,Q             ;SAVE Q\r
33214         001614' 334440  001652'         SKIPA     V,ERRPT5\r
33215         001615' 260740  001733' ERRPT1:   PUSHJ     P,TYPE\r
33216         001616' 134400  000011          ILDB    T,V\r
33217         001617' 306400  000040          CAIN    T,40\r
33218         001620' 254000  001645'         JRST    ERRPT4\r
33219         001621' 306400  000005          CAIN    T,5\r
33220         001622' 254000  001671'         JRST    ERRPT9\r
33221         001623' 302400  000003          CAIE    T,3\r
33222         001624' 254000  001615'         JRST    ERRPT1\r
33223         001625' 336540  002054'         SKIPN     C,DTIN\r
33224         001626' 254000  001645'         JRST    ERRPT4\r
33225         001627' 211640  000014          MOVNI     Q,14\r
33226         001630' 201500  000077          MOVEI     W,77\r
33227         001631' 612540  000012  ERRPT2:   TDNE  C,W\r
33228         001632' 254000  001635'         JRST    ERRPT3\r
33229         001633' 242500  000006          LSH     W,6\r
33230         001634' 341640  001631'         AOJL    Q,ERRPT2\r
33231         001635' 200500  001653' ERRPT3:   MOVE  W,ERRPT6\r
33232         001636' 260740  001603'         PUSHJ     P,PWORD1\r
33233         001637' 336500  002055'         SKIPN     W,DTIN1\r
33234         001640' 254000  001645'         JRST    ERRPT4\r
33235         001641' 242500  777772          LSH     W,-6\r
33236         001642' 661500  160000          TLO     W,160000\r
33237         001643' 211640  000004          MOVNI     Q,4\r
33238         001644' 260740  001603'         PUSHJ     P,PWORD1\r
33239         001645' 260740  001730' ERRPT4:   PUSHJ     P,CRLF\r
33240         001646' 262740  000015  ERRP41: POP     P,Q\r
33241         001647' 621000  000020          TLZ     F,FCONSW        ;ONE ERROR PER CONSOLE\r
33242         001650' 350000  000011          AOS     V               ;PROGRAM BUMMERS BEWARE:\r
33243         001651' 254020  000011          JRST    @V              ;V HAS AN INDEX OF A\r
33244 \r
33245         001652' 440616  000000  ERRPT5:   POINT     6,0(A)\r
33246         001653' 004651  544500  ERRPT6:   SIXBIT    / FILE /\r
33247 \r
33248 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 37\r
33249         DICK GRUEN: V25 3 AUG 68\r
33250 \r
33251         001654' 661000  000020  ERRPT8: TLO     F,FCONSW        ;INSURE TTY OUTPUT\r
33252         001655' 260740  001701'         PUSHJ   P,PRQ           ;START WITH ?\r
33253         001656' 305400  000140          CAIGE   T,140           ;IS IT A NON-PRINTING CHAR?\r
33254         001657' 301400  000040          CAIL    T,40\r
33255         001660' 254000  001666'         JRST    ERRP8\r
33256         001661' 261740  000010          PUSH    P,T\r
33257         001662' 201400  000136          MOVEI     T,136         ;UP ARROW\r
33258         001663' 260740  001734'         PUSHJ     P,TYPE2\r
33259         001664' 262740  000010          POP     P,T\r
33260         001665' 271400  000100          ADDI    T,100           ;CONVERT TO PRINTING CHAR.\r
33261         001666' 260740  001734' ERRP8:  PUSHJ     P,TYPE2\r
33262         001667' 260740  001557' ERRPT7:   PUSHJ     P,SPACE\r
33263         001670' 254000  001613'         JRST    ERRPT0\r
33264 \r
33265         001671' 201460  000011  ERRPT9:   MOVEI     V,@V\r
33266         001672' 261740  000011          PUSH    P,V\r
33267         001673' 265700  001667'         JSP     A,ERRPT7\r
33268         001674' 515454  454741          SIXBIT  ?ILLEGAL -LOADER@?\r
33269         001675' 540015  545741\r
33270         001676' 444562  400000\r
33271         001677' 262740  000011          POP     P,V\r
33272         001700' 254000  001646'         JRST    ERRP41\r
33273 \r
33274                                 ;PRINT QUESTION MARK\r
33275 \r
33276         001701' 261740  000010  PRQ:    PUSH    P,T             ;SAVE\r
33277         001702' 201400  000077          MOVEI   T,"?"           ;PRINT ?\r
33278         001703' 260740  001734'         PUSHJ   P,TYPE2         ;...\r
33279         001704' 262740  000010          POP     P,T             ;RESTORE\r
33280         001705' 263740  000000          POPJ    P,              ;RETURN\r
33281 \r
33282 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 38\r
33283         DICK GRUEN: V25 3 AUG 68\r
33284 \r
33285                                 ;INPUT - OUTPUT INTERFACE\r
33286 \r
33287                                 ;BINARY INPUT SUBROUTINE - RETURNS A WORD IN W\r
33288                                 IFE K,<\r
33289         001706' 260740  001710' WORDPR: PUSHJ   P,WORD          ;GET FIRST WORD OF PAIR\r
33290         001707' 200540  000012          MOVE    C,W             ;KEEP IT HANDY>\r
33291         001710' 377000  002053' WORD:   SOSG    BUFR2           ;SKIP IF BUFFER NOT EMPTY\r
33292         001711' 254000  001714'         JRST    WORD2\r
33293         001712' 134500  002052' WORD1:  ILDB    W,BUFR1         ;PICK UP 36 BIT WORD\r
33294         001713' 263740  000000          POPJ    P,\r
33295 \r
33296         001714' 066040  000000  WORD2:  INPUT     1,                    ;GET NEXT BUFFER LOAD\r
33297         001715' 062040  000012          STATUS    1,W           ;GET DEVICE STATUS FROM MONITOR\r
33298         001716' 602500  020000          TRNE    W,IODEND                ;TEST FOR EOF\r
33299         001717' 254000  000725'         JRST    EOF             ;END OF FILE EXIT\r
33300         001720' 606500  740000          TRNN    W,IOBAD         ;TEST FOR DATA ERROR\r
33301         001721' 254000  001712'         JRST    WORD1           ;DATA OK - CONTINUE LOADING\r
33302         001722' 265700  001610'         JSP     A,ERRPT         ;DATA ERROR - PRINT MESSAGE\r
33303         001723' 515660  656400          SIXBIT    /INPUT ERROR#/\r
33304         001724' 456262  576203\r
33305         001725' 254000  000042'         JRST    LD2             ;GO TO ERROR RETURN\r
33306                                 ;TYPEOUT SUBROUTINE - THE CHARACTER SUPPLIED IN T IS CONVERTED TO ASCII\r
33307                                 ;AND IS OUTPUT ON THE CONSOLE AND/OR THE SPECIFIED LOADER MAP OUTPUT\r
33308                                 ;DEVICE\r
33309 \r
33310         001726' 260740  001730' CRLFLF:   PUSHJ     P,CRLF\r
33311         001727' 661000  000020  FCRLF:  TLO     F,FCONSW        ;INSURE TTY OUTPUT\r
33312         001730' 201400  000015  CRLF:   MOVEI     T,15          ;CARRIAGE RETURN LINE FEED\r
33313         001731' 260740  001734'         PUSHJ     P,TYPE2\r
33314         001732' 201400  777752          MOVEI     T,12-40               ;LINE FEED IN PSEUDO SIXBIT\r
33315         001733' 201410  000040  TYPE:   MOVEI     T,40(T)               ;CONVERT SIXBIT TO ASCII\r
33316         001734' 607040  020000  TYPE2:  TLNN    N,AUXSWI        ;IS THER AN AUXILIARY DEVICE?\r
33317         001735' 254000  001745'         JRST    TYPE3           ;NO, DONT OUTPUT TO IT\r
33318         001736' 667040  040000          TLON    N,AUXSWE        ;IS AUX. DEV. ENTERED?\r
33319         001737' 260740  001523'         PUSHJ   P,IAD2          ;NOPE, DO SO!\r
33320         001740' 377000  002050'         SOSG    ABUF2           ;SPACE LEFT IN BUFFER?\r
33321         001741' 067100  000000          OUTPUT  2,              ;CREATE A NEW BUFFER\r
33322         001742' 136400  002047'         IDPB    T,ABUF1         ;DEPOSIT CHARACTER\r
33323         001743' 607000  000020          TLNN    F,FCONSW        ;FORCE OUTPUT TO CONSOLE TOO?\r
33324         001744' 263740  000000          POPJ    P,              ;NOPE\r
33325         001745' 336000  002042' TYPE3:  SKIPN   BUFO2           ;END OF BUFFER\r
33326         001746' 067140  000000          OUTPUT  3,              ;FORCE OUTPUT NOW\r
33327         001747' 136400  002041'         IDPB    T,BUFO1         ;DEPOSIT CHARACTER\r
33328         001750' 306400  000012          CAIN    T,12            ;END OF LINE\r
33329         001751' 067140  000000          OUTPUT  3,              ;FORCE AN OUTPUT\r
33330         001752' 263740  000000          POPJ    P,\r
33331 \r
33332 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 39\r
33333         DICK GRUEN: V25 3 AUG 68\r
33334 \r
33335         001753' 000002  000002  SE3:    XWD     2,2             ;SYMBOL POINTER INCREMENT\r
33336         001754' 440600  000012  LSTPT:  POINT     6,W           ;CHARACTER POINTER TO W\r
33337         001755' 777737  001761' PDLPT:  XWD     -41,PDLST-1;    INITIAL PUSHDOWN POINTER\r
33338         001756' 034372  246575  COMM:   SQUOZE    0,.COMM.\r
33339         001757' 000000  000000  PDSAV:  0                               ;SAVED PUSHDOWN POINTER\r
33340         001760' 000000  000000  COMSAV:   0                             ;LENGTH OF COMMON\r
33341         001761' 000000  000000  MDG:    0                       ;COUNTER FOR MUL DEF GLOBALS\r
33342         001762'                 PDLST:  BLOCK   40\r
33343 \r
33344         002022' 000000  000000  F.C:    0\r
33345         002023' 000000  000000          0       ;STORE N HERE\r
33346         002024' 000000  000000          0       ;STORE X HERE\r
33347         002025' 000000  000000          0       ;STORE H HERE\r
33348         002026' 000000  000000          0       ;STORE S HERE\r
33349         002027' 000000  000000          0       ;STORE R HERE\r
33350         002030' 000000  000000  B.C:    0\r
33351         002031' 000000  000000  F.I:    0                       ;INITIAL F - FLAGS\r
33352         002032' 000000  000000          0                       ;INITIAL N\r
33353         002033' 000011  004203'         XWD     V,LDEND         ;INITIAL X - LOAD PROGRAM AFTER LOADER\r
33354         002034' 000000  004343'         EXP     LDEND+JOBPRO    ;INITIAL H - INITIAL PROG BREAK\r
33355         002035' 000000  000000          0                       ;INITIAL S\r
33356         002036' 000012  000140          XWD     W,JOBPRO        ;INITIAL R - INITIAL RELOC\r
33357         002037' 000000  000000          0                       ;INITIAL B\r
33358 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 40\r
33359         DICK GRUEN: V25 3 AUG 68\r
33360 \r
33361                                 ;BUFFER HEADERS AND HEADER HEADERS\r
33362 \r
33363         002040' 000000  000000  BUFO:   0                               ;CONSOLE INPUT HEADER HEADER\r
33364         002041' 000000  000000  BUFO1:  0\r
33365         002042' 000000  000000  BUFO2:  0\r
33366 \r
33367         002043' 000000  000000  BUFI:   0                               ;CONSOLE OUTPUT HEADER HEADER\r
33368         002044' 000000  000000  BUFI1:  0\r
33369         002045' 000000  000000  BUFI2:  0\r
33370 \r
33371         002046' 000000  000000  ABUF:   0                       ;AUXILIARY OUTPUT HEADER HEADER\r
33372         002047' 000000  000000  ABUF1:  0\r
33373         002050' 000000  000000  ABUF2:  0\r
33374 \r
33375         002051' 000000  000000  BUFR:   0                               ;BINARY INPUT HEADER HEADER\r
33376         002052' 000000  000000  BUFR1:  0\r
33377         002053' 000000  000000  BUFR2:  0\r
33378 \r
33379         002054' 000000  000000  DTIN:   0                               ;DECTAPE INPUT BLOCK\r
33380         002055' 000000  000000  DTIN1:  0\r
33381         002056' 000000  000000          0\r
33382         002057' 000000  000000  DTIN2:  0\r
33383 \r
33384         002060' 000000  000000  DTOUT:  0                               ;DECTAPE OUTPUT BLOCK\r
33385         002061' 000000  000000  DTOUT1:   0\r
33386         002062' 000000  000000          0\r
33387         002063' 000000  000000          0\r
33388 \r
33389                         000052          TTYL=52                 ;TWO TTY BUFFERS\r
33390                         000406  IFE K,< BUFL=406                ;TWO DTA BUFFERS FOR LOAD>\r
33391                                 IFN K,< BUFL=203                ;ONE DTA BUFFER FOR LOAD>\r
33392                         000203          ABUFL=203               ;ONE DTA BUFFER FOR AUX DEV\r
33393         002064'                 TTY1:   BLOCK     TTYL          ;TTY BUFFER AREA\r
33394         002136'                 BUF1:   BLOCK   BUFL            ;LOAD BUFFER AREA\r
33395         002544'                 AUX:    BLOCK   ABUFL           ;AUX BUFFER AREA\r
33396         002747'                 ZEROS:  REPEAT 4,<0>\r
33397         002747' 000000  000000\r
33398         002750' 000000  000000\r
33399         002751' 000000  000000\r
33400         002752' 000000  000000\r
33401 \r
33402                                 IFN RPGSW,<CTLIN:       BLOCK 3\r
33403                                 CTLNAM: BLOCK 3\r
33404                                 CTLBUF: BLOCK 203+1\r
33405                                 >\r
33406 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 41\r
33407         DICK GRUEN: V25 3 AUG 68\r
33408 \r
33409                         040000  IOBKTL=40000\r
33410                         400000  IOIMPM=400000\r
33411                         200000          IODERR=200000\r
33412                         100000          IODTER=100000\r
33413                         020000          IODEND=20000\r
33414 \r
33415                         740000  IOBAD=IODERR+IODTER+IOBKTL+IOIMPM\r
33416 \r
33417                                         INTERN    PWORD,DTIN,DTOUT,LDEND\r
33418                                         INTERN    WORD,LD,BEG,PDLST,LOAD\r
33419                                         INTERN    CRLF,TYPE,PMS,PRMAP\r
33420                                         INTERN    F,P,X,H,S,R,B,N,T,V,W,C,E,Q,A,D\r
33421 \r
33422                                         EXTERN  JOBDDT,JOBFF,JOBSA,JOBREL,JOBSYM,JOBUSY,JOB41\r
33423 \r
33424                                 ;END HERE IF 1K LOADER REQUESTED.\r
33425                                 IFN K,  <LITS:  LIT\r
33426                                         VAR\r
33427                                 LDEND:  END     LD\r
33428                                 >\r
33429 \r
33430 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 42\r
33431         DICK GRUEN: V25 3 AUG 68\r
33432 \r
33433                                 ;HERE BEGINS FORTRAN FOUR LOADER\r
33434 \r
33435         002753'                 F4LD:\r
33436         002753' 550440  000005          HRRZ    V,R;            SET PROG BREAK INTO V\r
33437         002754' 202440  003376'         MOVEM   V,LLC;          SAVE FIRST WORD ADDRESS\r
33438         002755' 201504  777776          MOVEI   W,-2(S);        GENERATE TABLES\r
33439         002756' 661040  000010          TLO     N,F4SW\r
33440         002757' 552500  003402'         HRRZM   W,MLTP;         MADE LABELS\r
33441         002760' 552500  003401'         HRRZM   W,PLTP;         PROGRAMMER LABELS\r
33442         002761' 270500  004120'         ADD     W,[POINT 1,1];  GENERATE BIT-BYTE POINTER\r
33443         002762' 202500  003377'         MOVEM   W,BITP\r
33444         002763' 202500  003404'         MOVEM   W,SDSTP;        FIRST DATA STATEMENT\r
33445         002764' 350000  003404'         AOS     SDSTP;\r
33446         002765' 200500  004121'         MOVE    W,[JRST ALLOVE] ;LAST DATA STATEMENT\r
33447         002766' 202504  000000          MOVEM   W,(S)\r
33448         002767' 571500  777734          HRREI   W,-^D36;        BITS PER WORDUM\r
33449         002770' 202500  003400'         MOVEM   W,BITC;         BIT COUNT\r
33450         002771' 260740  003062'         PUSHJ P,BITWX+1         ;MAKE SURE OF ENOUGH SPACE\r
33451 \r
33452         002772' 260740  001710' TEXTR:  PUSHJ   P,WORD;         TEXT BY DEFAULT\r
33453         002773' 554540  000012          HLRZ    C,W\r
33454         002774' 306540  777777          CAIN    C,-1\r
33455         002775' 254000  003345'         JRST    HEADER;         HEADER\r
33456         002776' 201540  000001          MOVEI   C,1;            RELOCATABLE\r
33457         002777' 260740  003037'         PUSHJ   P,BITW;         SHOVE AND STORE\r
33458         003000' 254000  002772'         JRST    TEXTR;          LOOP FOR NEXT WORD\r
33459 \r
33460         003001' 377000  003405' ABS:    SOSG    BLKSIZ; MORE TO GET\r
33461         003002' 254000  002772'         JRST    TEXTR;          NOPE\r
33462         003003' 260740  001710' ABSI:   PUSHJ   P,WORD;\r
33463         003004' 201540  000000          MOVEI   C,0;            NON-RELOCATABLE\r
33464         003005' 260740  003037'         PUSHJ   P,BITW;         TYPE 0\r
33465         003006' 254000  003001'         JRST    ABS\r
33466 \r
33467 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 43\r
33468         DICK GRUEN: V25 3 AUG 68\r
33469 \r
33470                                 ;PROCESS TABLE ENTRIES\r
33471 \r
33472         003007' 603000  000204  MDLB:   TLNE    F,FULLSW+SKIPSW;        MADE LABEL PROC\r
33473         003010' 254000  003020'         JRST    GLOBDF;         NO ROOM AT THE IN\r
33474         003011' 554540  003402'         HLRZ    C,MLTP;         GET PRESENT SIZE\r
33475         003012' 315540  003405'         CAMGE   C,BLKSIZ;       IF NEW SIZE BIGGER, STR-R-RETCH\r
33476         003013' 260740  003066'         PUSHJ   P,SMLT\r
33477         003014' 550540  003402'         HRRZ    C,MLTP;         GET BASE\r
33478         003015' 270540  003405' MLPLC:  ADD     C,BLKSIZ;       MAKE INDEX\r
33479         003016' 607000  000204          TLNN    F,FULLSW+SKIPSW;        DONT LOAD\r
33480         003017' 552453  000000          HRRZM   V,(C);          PUT AWAY DEFINITION\r
33481         003020' 260740  001710' GLOBDF: PUSHJ   P,WORD\r
33482         003021' 603000  000204          TLNE    F,FULLSW+SKIPSW ;SKIPPING THIS PROG?\r
33483         003022' 254000  002772'         JRST    TEXTR           ;YES, DON'T DEFINE\r
33484         003023' 201551  000000          MOVEI   C,(V);          AND LOC\r
33485         003024' 250500  000013          EXCH    W,C\r
33486         003025' 260740  003531'         PUSHJ   P,SYMXX;        PUT IN DDT-SYMBOL TABLE\r
33487         003026' 260740  003062'         PUSHJ   P,BITWX+1\r
33488         003027' 254000  002772'         JRST    TEXTR\r
33489 \r
33490         003030' 603000  000204  PLB:    TLNE    F,FULLSW+SKIPSW\r
33491         003031' 254000  003020'         JRST    GLOBDF\r
33492         003032' 554540  003401'         HLRZ    C,PLTP;         PRESENT SIZE\r
33493         003033' 315540  003405'         CAMGE   C,BLKSIZ\r
33494         003034' 260740  003103'         PUSHJ   P,SPLT\r
33495         003035' 550540  003401'         HRRZ    C,PLTP\r
33496         003036' 254000  003015'         JRST    MLPLC\r
33497 \r
33498 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 44\r
33499         DICK GRUEN: V25 3 AUG 68\r
33500 \r
33501                                 ;STORE WORD AND SET BIT TABLE\r
33502 \r
33503         003037' 603000  000204  BITW:   TLNE    F,FULLSW+SKIPSW;        WE DONT LOAD THIS\r
33504         003040' 263740  000000          POPJ    P,;\r
33505         003041' 202520  000002          MOVEM   W,@X;           STORE AWAY OFFSET\r
33506         003042' 136540  003377'         IDPB    C,BITP;         STORE BIT\r
33507         003043' 355000  003400'         AOSGE   BITC;           STEP BIT COUNT\r
33508         003044' 254000  003061'         JRST    BITWX;          SOME MORE ROOM LEFT\r
33509         003045' 571540  777734          HRREI   C,-^D36;        RESET COUNT\r
33510         003046' 202540  003400'         MOVEM   C,BITC\r
33511         003047' 370000  003401'         SOS     PLTP\r
33512         003050' 370000  003377'         SOS     BITP;           ALL UPDATED\r
33513                                 IFE EXPAND,<HRL C,MLTP\r
33514                                         SOS MLTP\r
33515                                         HRR     C,MLTP>\r
33516         003051' 550540  003402' IFN EXPAND,<HRRZ        C,MLTP;         TO ADDRESS\r
33517         003052' 275540  000001                  SUBI C,1\r
33518         003053' 307560  000002                  CAIG C,@X\r
33519                                                 PUSHJ P,[PUSHJ P,XPAND\r
33520                                                         POPJ P,\r
33521                                                         ADDI C,2000\r
33522         003054' 260740  004122'                         JRST POPJM2]\r
33523         003055' 370000  003402'                 SOS MLTP\r
33524         003056' 505553  000001                  HRLI C,1(C)>\r
33525         003057' 550400  003404'         HRRZ    T,SDSTP;        GET DATA POINTER\r
33526         003060' 251550  777777          BLT     C,-1(T);        MOVE DOWN LISTS\r
33527         003061' 350000  000011  BITWX:  AOS     V;              STEP LOADER LOCATION\r
33528         003062' 550400  003402'         HRRZ    T,MLTP\r
33529         003063' 307420  000002          CAIG    T,@X;           OVERFLOW CHECK\r
33530                                 IFE EXPAND,<TLO F,FULLSW>\r
33531                                 IFN EXPAND,<PUSHJ P,    [PUSHJ P,XPAND\r
33532                                                         TLOA F,FULLSW\r
33533                                                         JRST POPJM3\r
33534         003064' 260740  004126'                         POPJ P,]>\r
33535         003065' 263740  000000          POPJ    P,;\r
33536 \r
33537         003066' 274540  003405' SMLT:   SUB     C,BLKSIZ;       STRETCH\r
33538         003067' 204500  003402'         MOVS    W,MLTP          ;LEFT HALF HAS OLD BASE\r
33539         003070' 270540  003402'         ADD     C,MLTP          ;RIGHT HALF HAS NEW BASE\r
33540         003071' 553000  000013  IFN EXPAND,<    HRRZS C ;GET RID OF COUNT\r
33541         003072' 307560  000002                  CAIG C,@X\r
33542                                                 PUSHJ P,[PUSHJ P,XPAND\r
33543                                                         POPJ P,\r
33544                                                         ADD W,[XWD 2000,0]\r
33545                                                         ADDI C,2000\r
33546         003073' 260740  004133'                         JRST POPJM2]>\r
33547         003074' 542540  003402'         HRRM C,MLTP             ;PUT IN NEW MLTP\r
33548         003075' 500540  000012          HLL     C,W             ;FORM BLT POINTER\r
33549         003076' 271513  000000          ADDI    W,(C)           ;LAST ENTRY OF MLTP\r
33550         003077' 504500  003405'         HRL     W,BLKSIZ        ;NEW SIZE OF MLTP\r
33551         003100' 502500  003402'         HLLM    W,MLTP          ;...\r
33552         003101' 251552  000000  SLTC:   BLT     C,0(W);         MOVE DOWN (UP?)\r
33553         003102' 263740  000000          POPJ    P,;\r
33554 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 44-1\r
33555         DICK GRUEN: V25 3 AUG 68\r
33556 \r
33557 \r
33558         003103' 274540  003405' SPLT:   SUB     C,BLKSIZ\r
33559         003104' 204500  003402'         MOVS    W,MLTP;\r
33560         003105' 272540  003401'         ADDM    C,PLTP\r
33561         003106' 270540  003402'         ADD     C,MLTP\r
33562         003107' 553000  000013  IFN EXPAND,<    HRRZS C\r
33563         003110' 307560  000002                  CAIG C,@X\r
33564                                                 PUSHJ P,[PUSHJ P,XPAND\r
33565                                                         POPJ P,\r
33566                                                         ADD W,[XWD 2000,0]\r
33567                                                         ADDI C,2000\r
33568         003111' 260740  004133'                         JRST POPJM2]>\r
33569         003112' 542540  003402'         HRRM C,MLTP             ;PUT IN NEW MLTP\r
33570         003113' 500540  000012          HLL     C,W\r
33571         003114' 554500  003401'         HLRZ    W,PLTP          ;OLD SIZE OF PL TABLE\r
33572         003115' 270500  003401'         ADD     W,PLTP          ;NEW BASE OF PL TABLE\r
33573         003116' 504500  003405'         HRL     W,BLKSIZ        ;NEW SIZE OF PL TABLE\r
33574         003117' 502500  003401'         HLLM    W,PLTP          ;INTO POINTER\r
33575         003120' 254000  003101'         JRST    SLTC\r
33576 \r
33577         003121' 000000  000000  PT1:    0\r
33578 \r
33579 \r
33580 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 45\r
33581         DICK GRUEN: V25 3 AUG 68\r
33582 \r
33583                                 ;PROCESS END CODE WORD\r
33584 \r
33585         003122' 260740  001710' ENDS:   PUSHJ   P,WORD;         GET STARTING ADDRESS\r
33586         003123' 603000  000004          TLNE F,SKIPSW\r
33587         003124' 254000  003131'         JRST ENDS1      ;FOOBAZ!!!!!!!!\r
33588         003125' 322500  003131'         JUMPE   W,ENDS1;        NOT MAIN\r
33589         003126' 271505  000000          ADDI    W,(R);          RELOCATION OFFSET\r
33590         003127' 607040  000002          TLNN    N,ISAFLG;       IGNORE STARTING ADDRESS\r
33591         003130' 540000  000012          HRR     F,W;            SET SA\r
33592         003131' 260740  001706' ENDS1:  PUSHJ   P,WORDPR        ;DATA STORE SIZE\r
33593         003132' 552540  003373'         HRRZM   C,PTEMP         ;NUMBER OF PERMANENT TEMPS\r
33594         003133' 202440  003372'         MOVEM   V,CCON;         START OF CONSTANTS AREA\r
33595         003134' 322500  003143'         JUMPE   W,E1;           NULL\r
33596         003135' 202500  003405'         MOVEM   W,BLKSIZ        ;SAVE COUNT\r
33597         003136' 201511  000000          MOVEI   W,0(V)          ;DEFINE CONST.\r
33598         003137' 200540  003411'         MOVE    C,CNR50         ;...\r
33599         003140' 607000  000204          TLNN F,SKIPSW!FULLSW\r
33600         003141' 260740  001026'         PUSHJ   P,SYMPT         ;...\r
33601         003142' 260740  003254'         PUSHJ   P,GSWD          ;STORE CONSTANT TABLE\r
33602         003143' 201511  000000  E1:     MOVEI   W,0(V);         GET LOADER LOC\r
33603         003144' 250500  003373'         EXCH    W,PTEMP;        STORE INTO PERM TEMP POINTER\r
33604         003145' 270500  003373'         ADD     W,PTEMP;        FORM TEMP TEMP ADDRESS\r
33605         003146' 202500  003374'         MOVEM   W,TTEMP;        POINTER\r
33606         003147' 202440  003370'         MOVEM   V,GSTAB;        STORE LOADER LOC IN GLOBSUB\r
33607         003150' 200540  003407'         MOVE    C,TTR50         ;DEFINE %TEMP.\r
33608         003151' 603000  000204          TLNE F,SKIPSW!FULLSW\r
33609         003152' 254000  003160'         JRST E1A\r
33610         003153' 260740  001026'         PUSHJ   P,SYMPT         ;...\r
33611         003154' 200540  003410'         MOVE    C,PTR50         ;DEFINE (IF EXTANT) TEMP.\r
33612         003155' 201511  000000          MOVEI   W,0(V)          ;...\r
33613         003156' 312500  003374'         CAME    W,TTEMP         ;ANY PERM TEMPS?\r
33614         003157' 260740  001026'         PUSHJ   P,SYMPT         ;YES, DEFINE\r
33615         003160' 260740  001710' E1A:    PUSHJ   P,WORD;         NUMBER OF GLOBSUBS\r
33616         003161' 322500  003164'         JUMPE   W,E11\r
33617         003162' 202500  003405'         MOVEM   W,BLKSIZ        ;SIZE OF GLOBSUB\r
33618         003163' 260740  003254'         PUSHJ   P,GSWD          ;STORE GLOBSUB TABLE\r
33619         003164' 202440  003367' E11:    MOVEM   V,STAB;         SCALARS\r
33620         003165' 260740  001710'         PUSHJ   P,WORD;         HOW MANY?\r
33621         003166' 322500  003170'         JUMPE   W,E21;          NONE\r
33622         003167' 260740  003261'         PUSHJ   P,GSWDPR        ;STORE SCALAR TABLE\r
33623         003170' 202440  003366' E21:    MOVEM   V,ATAB;         ARRAY POINTER\r
33624         003171' 260740  001710'         PUSHJ   P,WORD;         COMMENTS FOR SCALARS APPLY\r
33625         003172' 322500  003174'         JUMPE   W,E31\r
33626         003173' 260740  003261'         PUSHJ   P,GSWDPR        ;STORE ARRAY TABLE\r
33627         003174' 202440  003371' E31:    MOVEM   V,AOTAB;        ARRAYS OFFSET\r
33628         003175' 260740  001710'         PUSHJ   P,WORD;         SAME COMMENTS AS ABOVE\r
33629         003176' 322500  003200'         JUMPE   W,E41\r
33630         003177' 260740  003261'         PUSHJ   P,GSWDPR        ;STORE ARRAY OFFSET TABLE\r
33631         003200' 260740  001710' E41:    PUSHJ   P,WORD;         TEMP, SCALAR, ARRAY SIZE\r
33632         003201' 603000  000204          TLNE    F,FULLSW!SKIPSW ;SKIPPING THIS PROG?\r
33633         003202' 201500  000000          MOVEI   W,0             ;DON'T ACCEPT GLOB SUBPROG REQUESTS\r
33634         003203' 202440  003365'         MOVEM   V,CTAB;         SETUP COMMON TABLE POINTER\r
33635         003204' 270500  003370'         ADD     W,GSTAB;        GLOBAL SUBPROG BASE\r
33636 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 45-1\r
33637         DICK GRUEN: V25 3 AUG 68\r
33638 \r
33639         003205' 202500  003375'         MOVEM   W,COMBAS;       START OF COMMON\r
33640         003206' 260740  001710'         PUSHJ   P,WORD;         COMMON BLOCK SIZE\r
33641         003207' 552500  003405'         HRRZM   W,BLKSIZ\r
33642         003210' 322500  003267'         JUMPE   W,PASS2;        NO COMMON\r
33643         003211' 260740  001706' COMTOP: PUSHJ   P,WORDPR        ;GET A COMMON PAIR\r
33644         003212' 260740  001355'         PUSHJ   P,SDEF;         SEARCH\r
33645         003213' 254000  003234'         JRST    COMYES;         ALREADY THERE\r
33646         003214' 507000  000012          HRLS    W\r
33647         003215' 540500  003375'         HRR     W,COMBAS;       PICK UP THIS COMMON LOC\r
33648         003216' 607000  000204          TLNN F,SKIPSW!FULLSW\r
33649         003217' 260740  003531'         PUSHJ   P,SYMXX;        DEFINE IT\r
33650         003220' 204500  000012          MOVS    W,W;            SWAP HALFS\r
33651         003221' 270500  003375'         ADD     W,COMBAS;       UPDATE COMMON LOC\r
33652         003222' 542500  003375'         HRRM    W,COMBAS;       OLD BASE PLUS NEW SIZE\r
33653         003223' 557000  000012          HLRZS   W;              RETURN ADDRESS\r
33654         003224' 621540  400000          TLZ     C,400000\r
33655         003225' 607000  000204          TLNN F,SKIPSW!FULLSW\r
33656         003226' 260740  003531'         PUSHJ   P,SYMXX\r
33657         003227' 260740  003245' COMCOM: PUSHJ   P,CWSTWX        ;STORE A WORD PAIR\r
33658         003230' 370000  003405'         SOS     BLKSIZ\r
33659         003231' 373000  003405'         SOSLE   BLKSIZ\r
33660         003232' 254000  003211'         JRST    COMTOP\r
33661         003233' 254000  003267'         JRST    PASS2\r
33662 \r
33663         003234' 603000  000004  COMYES: TLNE F,SKIPSW\r
33664         003235' 254000  003227'         JRST COMCOM     ;NO ERRORS IF SKIPPING\r
33665         003236' 554556  000002          HLRZ    C,2(A);         PICK UP DEFINITION\r
33666         003237' 313500  000013          CAMLE   W,C;            CHECK SIZE\r
33667         003240' 254000  001334'         JRST    ILC;            ILLEGAL COMMON\r
33668         003241' 200556  000001          MOVE    C,1(A);         NAME\r
33669         003242' 550516  000002          HRRZ    W,2(A); BASE\r
33670         003243' 254000  003227'         JRST    COMCOM\r
33671 \r
33672 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 46\r
33673         DICK GRUEN: V25 3 AUG 68\r
33674 \r
33675 \r
33676         003244' 260740  001706' PRSTWX: PUSHJ   P,WORDPR        ;GET A WORD PAIR\r
33677         003245' 250540  000012  CWSTWX: EXCH    C,W             ;SPACE TO STORE FIRST WORD OF PAIR?\r
33678         003246' 260740  003250'         PUSHJ   P,WSTWX         ;...\r
33679         003247' 250540  000012          EXCH    C,W             ;THERE WAS; IT'S STORED\r
33680         003250' 603000  000204  WSTWX:  TLNE    F,FULLSW!SKIPSW ;SPACE FOR ANOTHER WORD?\r
33681         003251' 263740  000000          POPJ    P,              ;NOPE, RETURN\r
33682         003252' 202520  000002          MOVEM   W,@X            ;YES, STORE IT.\r
33683         003253' 254000  003061'         JRST    BITWX           ;TELL THE TABLES ABOUT IT; THEN RETURN\r
33684 \r
33685 \r
33686         003254' 260740  001710' GSWD:   PUSHJ   P,WORD          ;GET WORD FROM TABLE\r
33687         003255' 260740  003250'         PUSHJ   P,WSTWX         ;STASH IT\r
33688         003256' 372000  003405'         SOSE    BLKSIZ          ;FINISHED?\r
33689         003257' 254000  003254'         JRST    GSWD            ;NOPE, LOOP\r
33690         003260' 263740  000000          POPJ    P,              ;TRA 1,4\r
33691 \r
33692         003261' 202500  003405' GSWDPR: MOVEM   W,BLKSIZ        ;KEEP COUNT\r
33693         003262' 260740  003244' GSWDP1: PUSHJ   P,PRSTWX        ;GET AND STASH A PAIR\r
33694         003263' 370000  003405'         SOS     BLKSIZ          ;FINISHED?\r
33695         003264' 373000  003405'         SOSLE   BLKSIZ          ;...\r
33696         003265' 254000  003262'         JRST    GSWDP1          ;NOPE, LOOP\r
33697         003266' 263740  000000          POPJ    P,              ;TRA 1,4\r
33698 \r
33699 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 47\r
33700         DICK GRUEN: V25 3 AUG 68\r
33701 \r
33702                                 ;BEGIN HERE PASS2 TEXT PROCESSING\r
33703 \r
33704         003267' 271442  000000  PASS2:  ADDI V,(X)\r
33705         003270' 202440  003364'         MOVEM V,TOPTAB  ;SAVE FOR OVERLAP CHECKING\r
33706         003271' 603000  000204          TLNE    F,FULLSW+SKIPSW;        ABORT?\r
33707         003272' 254000  003546'         JRST    ALLOVE;         YES\r
33708         003273' 200440  003376'         MOVE    V,LLC           ;PICK UP PROGRAM ORIGIN\r
33709         003274' 311440  003372'         CAML    V,CCON          ;IS THIS A PROGRAM?\r
33710         003275' 254000  003612'         JRST    FBLKD           ;NO, GO LOOK FOR FIRST BLK DATA\r
33711         003276' 663040  000400          TLOE    N,PGM1          ;YES, IS THIS FIRST F4 PROG?\r
33712         003277' 254000  003302'         JRST    NOPRG           ;NO\r
33713         003300' 540500  003375'         HRR     W,COMBAS        ;YES, PLACE PROG BREAK IN LH\r
33714         003301' 506502  000131          HRLM    W,JOBCHN(X)     ;FOR CHAIN\r
33715         003302' 550500  003401' NOPRG:  HRRZ    W,PLTP;         GET PROG TABLE BASE\r
33716         003303' 554540  003401'         HLRZ    C,PLTP;         AND SIZE\r
33717         003304' 270500  000013          ADD     W,C;            COMPUTE END OF PROG TABLE\r
33718         003305' 270500  004120'         ADD     W,[POINT 1,1];  AND BEGINNING OF BIT TABLE\r
33719         003306' 250500  003377'         EXCH    W,BITP;         SWAP POINTERS\r
33720         003307' 134540  003377' PASS2B: ILDB    C,BITP;         GET A BIT\r
33721         003310' 322540  003342'         JUMPE   C,PASS2C;       NO PASS2 PROCESSING\r
33722         003311' 260740  003314'         PUSHJ   P,PROC;         PROCESS A TAG\r
33723         003312' 254000  003307'         JRST    PASS2B;         MORE TO COME\r
33724         003313' 254000  003616'         JRST    ENDTP;\r
33725 \r
33726         003314' 135540  004140' PROC:   LDB     C,[POINT 6,@X,23];      TAG\r
33727         003315' 402000  003406'         SETZM   MODIF;          ZERO TO ADDRESS MODIFIER\r
33728         003316' 622540  000040          TRZE    C,40;\r
33729         003317' 350000  003406'         AOS     MODIF\r
33730         003320' 506540  003341'         HRLM    C,ENDTAB;       ERROR SETUP\r
33731         003321' 201500  003330'         MOVEI   W,TABDIS;       HEAD OF TABLE\r
33732         003322' 554412  000000          HLRZ    T,(W);          GET ENTRY\r
33733         003323' 312400  000013          CAME    T,C;            CHECK\r
33734         003324' 344500  003322'         AOJA    W,.-2\r
33735         003325' 550512  000000          HRRZ    W,(W);          GET DISPATCH\r
33736         003326' 135540  004141'         LDB     C,[POINT 12,@X,35]\r
33737         003327' 254012  000000          JRST    (W);            DISPATCH\r
33738 \r
33739         003330' 000011  003412' TABDIS: XWD 11,PCONS;           CONSTANTS\r
33740         003331' 000006  003500'         XWD 06,PGS;             GLOBAL SUBPROGRAMS\r
33741         003332' 000020  003426'         XWD 20,PST;             SCALARS\r
33742         003333' 000022  003425'         XWD 22,PAT;             ARRAYS\r
33743         003334' 000001  003444'         XWD 01,PATO;            ARRAYS OFFSET\r
33744         003335' 000000  003526'         XWD 00,PPLT;            PROGRAMMER LABELS\r
33745         003336' 000031  003524'         XWD 31,PMLT;            MADE LABESL\r
33746         003337' 000026  003476'         XWD 26,PPT;             PERMANENT TEMPORARYS\r
33747         003340' 000027  003474'         XWD 27,PTT;             TEMPORARY TEMPORARYS\r
33748         003341' 000000  001002' ENDTAB: XWD 00,LOAD4A;          ERRORS\r
33749 \r
33750         003342' 260740  003421' PASS2C: PUSHJ   P,PASS2A\r
33751         003343' 254000  003307'         JRST    PASS2B\r
33752         003344' 254000  003616'         JRST    ENDTP\r
33753 \r
33754 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 48\r
33755         DICK GRUEN: V25 3 AUG 68\r
33756 \r
33757                                 ;DISPATCH ON A HEADER\r
33758 \r
33759         003345' 316500  004142' HEADER: CAMN    W,[EXP -2];     END OF PASS ONE\r
33760         003346' 254000  003122'         JRST    ENDS\r
33761         003347' 135540  004143'         LDB     C,[POINT 12,W,35];      GET SIZE\r
33762         003350' 202540  003405'         MOVEM   C,BLKSIZ\r
33763         003351' 405500  770000          ANDI    W,770000\r
33764         003352' 322500  003030'         JUMPE   W,PLB;  PROGRAMMER LABEL\r
33765         003353' 306500  500000          CAIN    W,500000;       ABSOLUTE BLOCK\r
33766         003354' 254000  003003'         JRST    ABSI;\r
33767         003355' 306500  310000          CAIN    W,310000;       MADE LABEL\r
33768         003356' 254000  003007'         JRST    MDLB;           MADE LABEL\r
33769         003357' 306500  600000          CAIN    W,600000\r
33770         003360' 254000  003020'         JRST    GLOBDF\r
33771         003361' 306500  700000          CAIN    W,700000;       DATA STATEMENT\r
33772         003362' 254000  003563'         JRST    DATAS\r
33773         003363' 254000  001002'         JRST    LOAD4A;         DATA STATEMENTS WILL GO HERE\r
33774 \r
33775         003364' 000000  000000  TOPTAB: 0       ;TOP OF TABLES\r
33776         003365' 000000  000000  CTAB:   0;      COMMON\r
33777         003366' 000000  000000  ATAB:   0;      ARRAYS\r
33778         003367' 000000  000000  STAB:   0;      SCALARS\r
33779         003370' 000000  000000  GSTAB:  0;      GLOBAL SUBPROGS\r
33780         003371' 000000  000000  AOTAB:  0;      OFFSET ARRAYS\r
33781         003372' 000000  000000  CCON:   0;      CONSTANTS\r
33782         003373' 000000  000000  PTEMP:  0;      PERMANENT TEMPS\r
33783         003374' 000000  000000  TTEMP:  0;      TEMPORARY TEMPS\r
33784         003375' 000000  000000  COMBAS: 0;      BASE OF COMMON\r
33785         003376' 000000  000000  LLC:    0;      PROGRAM ORIGIN\r
33786         003377' 000000  000000  BITP:   0;      BIT POINTER\r
33787         003400' 000000  000000  BITC:   0;      BIT COUNT\r
33788         003401' 000000  000000  PLTP:   0;      PROGRAMMER LABEL TABLE\r
33789         003402' 000000  000000  MLTP:   0;      MADE LABEL TABLE\r
33790         003403' 000000  000000  SDS:    0       ;START OF DATA STATEMENTS\r
33791         003404' 000000  000000  SDSTP:  0       ;START OF DATA STATEMENTS POINTER\r
33792         003405' 000000  000000  BLKSIZ: 0;      BLOCK SIZE\r
33793         003406' 000000  000000  MODIF:  0;      ADDRESS MODIFICATION +1\r
33794         003407' 136253  114765  TTR50:  XWD     136253,114765   ;RADIX 50 %TEMP.\r
33795         003410' 100450  614765  PTR50:  XWD     100450,614765   ;RADIX 50 TEMP.\r
33796         003411' 112320  235025  CNR50:  XWD     112320,235025   ;RADIX 50 CONST.\r
33797 \r
33798 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 49\r
33799         DICK GRUEN: V25 3 AUG 68\r
33800 \r
33801                                 ;ROUTINES TO PROCESS POINTERS\r
33802 \r
33803         003412' 270540  003372' PCONS:  ADD     C,CCON;         GENERATE CONSTANT ADDRESS\r
33804         003413' 364540  003417'         SOJA    C,PCOMX         ;ADJUST FOR 1 AS FIRST ENTRY\r
33805 \r
33806         003414' 260740  003535' PSTA:   PUSHJ   P,SWAPSY        ;NON-COMMON SCALARS AND ARRAYS\r
33807         003415' 271545  000000          ADDI    C,(R);          RELOCATE\r
33808         003416' 260740  003511' PCOM1:  PUSHJ   P,SYDEF         ;...\r
33809         003417' 270540  003406' PCOMX:  ADD     C,MODIF         ;ADDR RELOC FOR DP\r
33810         003420' 542560  000002          HRRM    C,@X;           REPLACE ADDRESS\r
33811         003421' 350000  000011  PASS2A: AOS     V;              STEP READOUT POINTER\r
33812         003422' 311440  003372'         CAML    V,CCON          ;END OF PROCESSABLES?\r
33813         003423' 350017  000000  CPOPJ1: AOS     (P);            SKIP\r
33814         003424' 263740  000000          POPJ    P,;\r
33815 \r
33816         003425' 334500  003366' PAT:    SKIPA   W,ATAB          ;ARRAY TABLE BASE\r
33817         003426' 200500  003367' PST:    MOVE    W,STAB          ;SCALAR TABLE  BASE\r
33818         003427' 241540  000001          ROT     C,1             ;SCALE BY 2\r
33819         003430' 270540  000012          ADD     C,W             ;ADD IN TABLE BASE\r
33820         003431' 271542  777776          ADDI    C,-2(X);        TABLE ENTRY\r
33821         003432' 554513  000000          HLRZ    W,(C);          CHECK FOR COMMON\r
33822         003433' 322500  003414'         JUMPE   W,PSTA;         NO COMMON\r
33823         003434' 260740  003436'         PUSHJ   P,COMDID        ;PROCESS COMMON\r
33824         003435' 254000  003416'         JRST    PCOM1\r
33825 \r
33826         003436' 242500  000001  COMDID: LSH     W,1             ;PROCESS COMMON TABLE ENTRIES\r
33827         003437' 270500  003365'         ADD     W,CTAB;         COMMON TAG\r
33828         003440' 271502  777776          ADDI    W,-2(X);        OFFSET\r
33829         003441' 260740  003535'         PUSHJ   P,SWAPSY;       GET SYMBOL AND SET TO DEFINED\r
33830         003442' 270552  000001          ADD     C,1(W);         BASE OF COMMON\r
33831         003443' 263740  000000          POPJ    P,              ;RETURN\r
33832 \r
33833         003444' 241540  000001  PATO:   ROT     C,1\r
33834         003445' 270540  003371'         ADD     C,AOTAB;        ARRAY OFFSET\r
33835         003446' 271542  777776          ADDI    C,-2(X);        LOADER OFFSET\r
33836         003447' 202540  004173'         MOVEM   C,CT1;          SAVE CURRENT POINTER\r
33837         003450' 550553  000001          HRRZ    C,1(C);         PICK UP REFERENCE POINTER\r
33838         003451' 405540  007777          ANDI    C,7777; MASK TO ADDRESS\r
33839         003452' 241540  000001          ROT     C,1;            ALWAYS A ARRAY\r
33840         003453' 271542  777776          ADDI    C,-2(X)\r
33841         003454' 270540  003366'         ADD     C,ATAB\r
33842         003455' 554513  000000          HLRZ    W,(C);          COMMON CHECK\r
33843         003456' 322500  003465'         JUMPE   W,NCO\r
33844         003457' 260740  003436'         PUSHJ   P,COMDID        ;PROCESS COMMON\r
33845         003460' 260740  003511'         PUSHJ   P,SYDEF\r
33846         003461' 200540  004173'         MOVE    C,CT1\r
33847         003462' 570553  000000          HRRE    C,(C)\r
33848         003463' 270552  000001          ADD     C,1(W)\r
33849         003464' 254000  003417'         JRST    PCOMX\r
33850 \r
33851 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 50\r
33852         DICK GRUEN: V25 3 AUG 68\r
33853 \r
33854         003465' 260740  003535' NCO:    PUSHJ   P,SWAPSY;\r
33855         003466' 271545  000000          ADDI    C,(R)           ;DEFINE SYMBOL IN TRUE LOC\r
33856         003467' 260740  003511'         PUSHJ   P,SYDEF         ;...\r
33857         003470' 200540  004173'         MOVE    C,CT1\r
33858         003471' 550553  000000          HRRZ    C,(C)           ;OFFSET ADDRESS PICKUP\r
33859         003472' 271545  000000          ADDI    C,(R)           ;WHERE IT WILL BE\r
33860         003473' 254000  003417'         JRST    PCOMX           ;STASH ADDR AWAY\r
33861 \r
33862         003474' 270540  003374' PTT:    ADD     C,TTEMP;        TEMPORARY TEMPS\r
33863         003475' 364540  003417'         SOJA    C,PCOMX         ;ADJUST FOR 1 AS FIRST ENTRY\r
33864 \r
33865         003476' 270540  003373' PPT:    ADD     C,PTEMP;        PERMANENT TEMPS\r
33866         003477' 364540  003417'         SOJA    C,PCOMX         ;ADJUST FOR 1 AS FIRST ENTRY\r
33867 \r
33868         003500' 270540  003370' PGS:    ADD     C,GSTAB;        GLOBSUBS\r
33869         003501' 271542  777777          ADDI    C,-1(X);        OFFSET\r
33870         003502' 200553  000000          MOVE    C,(C)\r
33871         003503' 641540  640000          TLC     C,640000;       MAKE A REQUEST\r
33872         003504' 260740  003541'         PUSHJ P,TBLCHK          ;CHECK FOR OVERLAP\r
33873         003505' 201511  000000          MOVEI   W,(V);          THIS LOC\r
33874         003506' 546520  000002          HLRM    W,@X;           ZERO RIGHT HALF\r
33875         003507' 260740  003531'         PUSHJ   P,SYMXX\r
33876         003510' 254000  003421'         JRST    PASS2A\r
33877 \r
33878         003511' 603040  000040  SYDEF:  TLNE    N,SYDAT         ;SYMBOL WANTS DEFININITION?\r
33879         003512' 263740  000000          POPJ    P,              ;NO, GO AWAY\r
33880         003513' 261740  000013          PUSH    P,C             ;SAVE THE WORLD\r
33881         003514' 261740  000012          PUSH    P,W\r
33882         003515' 260740  003541'         PUSHJ P,TBLCHK  ;CHECK FOR OVERLAP\r
33883         003516' 200500  000013          MOVE    W,C\r
33884         003517' 332540  000010          SKIPE   C,T     ;PICKUP VALUE\r
33885         003520' 260740  003531'         PUSHJ   P,SYMXX\r
33886         003521' 262740  000012          POP     P,W\r
33887         003522' 262740  000013          POP     P,C\r
33888         003523' 263740  000000          POPJ    P,;\r
33889 \r
33890         003524' 270540  003402' PMLT:   ADD     C,MLTP\r
33891         003525' 334000  000000          SKIPA\r
33892         003526' 270540  003401' PPLT:   ADD     C,PLTP\r
33893         003527' 550553  000000          HRRZ    C,(C)\r
33894         003530' 254000  003417'         JRST    PCOMX\r
33895 \r
33896         003531' 261740  000011  SYMXX:  PUSH    P,V\r
33897         003532' 260740  001026'         PUSHJ   P,SYMPT\r
33898         003533' 262740  000011          POP     P,V\r
33899         003534' 263740  000000          POPJ    P,;\r
33900 \r
33901         003535' 201400  000000  SWAPSY: MOVEI   T,0;            SET TO EXCHANGE DEFS\r
33902         003536' 250413  000001          EXCH    T,1(C);         GET NAME\r
33903         003537' 550553  000000          HRRZ    C,(C)           ;GET VALUE\r
33904         003540' 263740  000000          POPJ    P,\r
33905         003541' 550500  003402' TBLCHK: HRRZ W,MLTP     ;GETT TOP OV TABLES\r
33906         003542' 275500  000002          SUBI W,2\r
33907 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 50-1\r
33908         DICK GRUEN: V25 3 AUG 68\r
33909 \r
33910         003543' 317500  003364'         CAMG W,TOPTAB   ;WILL IT OVERLAP\r
33911                                 IFE EXPAND,<TLO F,FULLSW>\r
33912                                 IFN EXPAND,<    JRST    [PUSHJ P,XPAND\r
33913                                                         TLOA F,FULLSW\r
33914                                                         JRST TBLCHK\r
33915         003544' 254000  004144'                         JRST .+1]>\r
33916         003545' 263740  000000          POPJ P,\r
33917 \r
33918 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 51\r
33919         DICK GRUEN: V25 3 AUG 68\r
33920 \r
33921                                 ;END OF PASS2\r
33922 \r
33923         003546' 621040  000010  ALLOVE: TLZ     N,F4SW          ;END OF F4 PROG\r
33924         003547' 603000  000204          TLNE F,FULLSW!SKIPSW\r
33925         003550' 254000  001301'         JRST HIGH3\r
33926         003551' 540240  003375'         HRR     R,COMBAS        ;TOP OF THE DATA\r
33927         003552' 540440  000005          HRR     V,R             ;IS THIS THE HIGHEST LOC YET?\r
33928         003553' 307160  000002          CAIG    H,@X            ;...\r
33929         003554' 201160  000002          MOVEI   H,@X            ;YES, TELL THE WORLD\r
33930         003555' 317140  003403'         CAMG    H,SDS           ;HIGHEST LOC GREATER THAN DATA STATEMENTS?\r
33931         003556' 254000  001301'         JRST    HIGH3           ;NO, RETURN\r
33932         003557' 271144  000001          ADDI    H,1(S)          ;YES, SET UP MEANINGFUL ERROR COMMENT\r
33933         003560' 274140  003403'         SUB     H,SDS           ;...\r
33934         003561' 661000  000200          TLO     F,FULLSW        ;INDICATE OVERFLO\r
33935         003562' 254000  001301'         JRST    HIGH3           ;RETURN\r
33936 \r
33937         003563' 603000  000204  DATAS:  TLNE    F,FULLSW+SKIPSW\r
33938         003564' 254000  003604'         JRST    DAX\r
33939         003565' 201544  000000          MOVEI   C,(S)           ;ADDR OF WORD UNDER SYMBOL TABLE\r
33940         003566' 210500  003405'         MOVN    W,BLKSIZ        ;HOW FAR DOWN TO BLT\r
33941         003567' 272500  003401'         ADDM    W,PLTP          ;UPDATE TABLE POINTERS\r
33942         003570' 272500  003377'         ADDM    W,BITP          ;...\r
33943         003571' 272500  003404'         ADDM    W,SDSTP         ;...\r
33944         003572' 270540  000012          ADD     C,W             ;RH(C):= WHEN TO STOP BLT\r
33945         003573' 504540  003402'         HRL     C,MLTP          ;SOURCE OF BLTED DATA\r
33946         003574' 270500  003402'         ADD     W,MLTP          ;UPDATE, GET DESTINATION OF BLT DATA\r
33947         003575' 553000  000012  IFN EXPAND,<    HRRZS W ;GET RID OF LEFT HALF\r
33948         003576' 307520  000002                  CAIG W,@X\r
33949                                                 PUSHJ P,[PUSHJ P,XPAND\r
33950                                                         POPJ P,\r
33951                                                         ADDI W,2000\r
33952                                                         ADD C,[XWD 2000,2000]\r
33953         003577' 260740  004151'                         JRST POPJM2]>\r
33954         003600' 542500  003402'         HRRM W,MLTP             ;NO SET THIS SO EXTRA CORE NOT ZEROED\r
33955         003601' 500500  000013          HLL     W,C             ;FORM BLT POINTER\r
33956         003602' 251513  777777          BLT     W,-1(C)         ;MOVE TABLES DOWN (BUT NOT JRST ALLOVE)\r
33957         003603' 260740  003062'         PUSHJ   P,BITWX+1\r
33958         003604' 260740  001710' DAX:    PUSHJ   P,WORD;         READ ONE WORD\r
33959         003605' 607000  000204          TLNN    F,FULLSW+SKIPSW\r
33960         003606' 202513  000000          MOVEM   W,(C)\r
33961         003607' 373000  003405'         SOSLE   BLKSIZ          ;COUNT OF DATA SEQUENCE SIZE\r
33962         003610' 344540  003604'         AOJA    C,DAX           ;INCREMENT DATA SEQUENCE DEPOSIT LOC\r
33963         003611' 254000  002772'         JRST    TEXTR;          DONE\r
33964 \r
33965 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 52\r
33966         DICK GRUEN: V25 3 AUG 68\r
33967 \r
33968         003612' 663040  000200  FBLKD:  TLOE    N,BLKD1         ;IS THIS FIRST BLOCK DATA?\r
33969         003613' 254000  003616'         JRST    ENDTP           ;NO\r
33970         003614' 540440  003375'         HRR     V,COMBAS        ;PLACE PROG BREAK IN RH FOR\r
33971         003615' 542442  000131          HRRM    V,JOBCHN(X)     ;CHAIN\r
33972         003616' 603000  000204  ENDTP:  TLNE    F,FULLSW+SKIPSW\r
33973         003617' 254000  003546'         JRST    ALLOVE\r
33974         003620' 540440  003370'         HRR     V,GSTAB\r
33975         003621' 311440  003367' ENDTP0: CAML    V,STAB;         ANY MORE GLOBSUBS\r
33976         003622' 254000  003636'         JRST    ENDTP2;         NO\r
33977         003623' 200560  000002          MOVE    C,@X;           GET SUBPROG NAME\r
33978         003624' 260740  001353'         PUSHJ   P,SREQ;         IS IT ALLREADY REQUESTED\r
33979         003625' 344440  003621'         AOJA    V,ENDTP0;       YES\r
33980         003626' 260740  001355'         PUSHJ   P,SDEF;         OR DEFINED\r
33981         003627' 344440  003621'         AOJA    V,ENDTP0;       YES\r
33982         003630' 260740  003541'         PUSHJ P,TBLCHK\r
33983         003631' 201500  000000          MOVEI W,0               ;PREPARE DUMMY LINK\r
33984         003632' 607000  000204          TLNN    F,FULLSW+SKIPSW;        ABORT\r
33985         003633' 260740  001131'         PUSHJ   P,SYM3X;        PUT IN DUMMY REQUEST\r
33986         003634' 260740  003062'         PUSHJ   P,BITWX+1;      OVERLAP CHECK\r
33987         003635' 344440  003621'         AOJA    V,ENDTP0\r
33988         003636' 402000  003121' ENDTP2: SETZM   PT1\r
33989         003637' 540440  003404'         HRR V,SDSTP\r
33990         003640' 275442  000000  IFN EXPAND,<    SUBI V,(X)\r
33991         003641' 317440  003375'                 CAMG V,COMBAS\r
33992                                                 JRST    [PUSHJ P,XPAND\r
33993                                                         TLOA F,FULLSW\r
33994                                                         JRST .-3\r
33995         003642' 254000  004156'                         JRST .+1]\r
33996         003643' 540440  003404'                 HRR V,SDSTP>\r
33997         003644' 552440  003403'         HRRZM   V,SDS           ;DATA STATEMENT LOC\r
33998         003645' 275442  000000  ENDTP1: SUBI    V,(X);          COMPENSATE FOR OFFSET\r
33999         003646' 200520  000002          MOVE    W,@X;   GET WORD\r
34000         003647' 603500  777777          TLNE    W,-1;           NO LEFT HALF IMPLIES COUNT\r
34001         003650' 254000  003774'         JRST    DODON;          DATA DONE\r
34002         003651' 270500  004162'         ADD     W,[MOVEI W,3]\r
34003         003652' 271520  000002          ADDI    W,@X\r
34004         003653' 250520  000002          EXCH    W,@X\r
34005         003654' 350000  000011          AOS     V\r
34006         003655' 270520  000002          ADD     W,@X;           ITEMS COUNT\r
34007         003656' 202500  004175'         MOVEM   W,ITC\r
34008         003657' 200500  004163'         MOVE    W,[MOVEM W,LTC]\r
34009         003660' 202520  000002          MOVEM   W,@X;           SETUP FOR DATA EXECUTION\r
34010         003661' 350000  000011          AOS     V\r
34011         003662' 200500  004164'         MOVE    W,[MOVEI W,0]\r
34012         003663' 250520  000002          EXCH    W,@X\r
34013         003664' 202500  004176'         MOVEM   W,ENC;          END COUNT\r
34014         003665' 350000  000011          AOS     V\r
34015         003666' 201520  000002          MOVEI   W,@X\r
34016         003667' 272500  004175'         ADDM    W,ITC\r
34017         003670' 200520  000002  LOOP:   MOVE    W,@X\r
34018         003671' 554400  000012          HLRZ    T,W;            LEFT HALF INST.\r
34019         003672' 405400  777000          ANDI    T,777000\r
34020         003673' 306400  254000          CAIN    T,254000        ;JRST?\r
34021 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 52-1\r
34022         DICK GRUEN: V25 3 AUG 68\r
34023 \r
34024         003674' 254000  003766'         JRST    WRAP            ;END OF DATA\r
34025         003675' 306400  260000          CAIN    T,260000        ;PUSHJ?\r
34026         003676' 254012  003731'         JRST    PJTABL(W)       ;DISPATCH VIA TABLE\r
34027         003677' 306400  200000          CAIN    T,200000;       MOVE?\r
34028         003700' 344440  003707'         AOJA    V,INNER\r
34029         003701' 306400  270000          CAIN    T,270000;       ADD?\r
34030         003702' 254000  003725'         JRST    ADDOP\r
34031         003703' 306400  221000          CAIN    T,221000;       IMULI?\r
34032         003704' 344440  003670'         AOJA    V,LOOP\r
34033         003705' 302400  220000          CAIE    T,220000;       IMUL?\r
34034         003706' 254000  001002'         JRST    LOAD4A;         NOTA\r
34035         003707' 550420  000002  INNER:  HRRZ    T,@X;           GET ADDRESS\r
34036         003710' 622400  770000          TRZE    T,770000;       ZERO TAG?\r
34037         003711' 364400  003722'         SOJA    T,CONPOL;       NO, CONSTANT POOL\r
34038         003712' 274400  003121'         SUB     T,PT1;          SUBTRACT INDUCTION NUMBER\r
34039         003713' 240400  000001          ASH     T,1\r
34040         003714' 370000  000010          SOS     T;              FORM INDUCTION POINTER\r
34041         003715' 542420  000002          HRRM    T,@X\r
34042         003716' 554420  000002          HLRZ    T,@X\r
34043         003717' 271400  000017          ADDI    T,P\r
34044         003720' 506420  000002          HRLM    T,@X\r
34045         003721' 344440  003670'         AOJA    V,LOOP\r
34046 \r
34047 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 53\r
34048         DICK GRUEN: V25 3 AUG 68\r
34049 \r
34050         003722' 270400  004175' CONPOL: ADD     T,ITC;  CONSTANT BASE\r
34051         003723' 542420  000002          HRRM    T,@X\r
34052         003724' 344440  003670'         AOJA    V,LOOP\r
34053 \r
34054         003725' 550420  000002  ADDOP:  HRRZ    T,@X\r
34055         003726' 622400  770000          TRZE    T,770000\r
34056         003727' 364400  003722'         SOJA    T,CONPOL\r
34057         003730' 344440  003670' SKIPIN: AOJA    V,LOOP\r
34058 \r
34059         003731' 254000  003740' PJTABL: JRST    DWFS            ;PUSHJ 17,0\r
34060         003732' 354000  003121'         AOSA    PT1             ;INCREMENT DO COUNT\r
34061         003733' 374000  003121'         SOSA    PT1;            DECREMENT DO COUNT\r
34062         003734' 334500  004165'         SKIPA   W,[EXP DOINT.]\r
34063         003735' 201500  003754'         MOVEI   W,DOEND.\r
34064         003736' 542520  000002          HRRM    W,@X\r
34065         003737' 344440  003730'         AOJA    V,SKIPIN        ;SKIP A WORD\r
34066 \r
34067         003740' 201500  004044' DWFS:   MOVEI   W,DWFS.\r
34068         003741' 542520  000002          HRRM    W,@X\r
34069         003742' 350000  000011          AOS     V\r
34070         003743' 661040  000040          TLO     N,SYDAT\r
34071         003744' 260740  003314'         PUSHJ   P,PROC;         PROCESS THE TAG\r
34072         003745' 254000  001002'         JRST    LOAD4A          ;DATA STATEMENT BELOW CODE TOP\r
34073         003746' 254000  003670'         JRST    LOOP            ;PROPER RETURN\r
34074 \r
34075         003747' 262740  000011  DOINT.: POP     P,V;            GET ADDRESS OF INITIAL VALUE\r
34076         003750' 261751  000000          PUSH    P,(V);          STORE INDUCTION VARIABLE\r
34077         003751' 350000  000011          AOS     V\r
34078         003752' 261740  000011          PUSH    P,V;            INITIAL ADDRESS\r
34079         003753' 254011  000000          JRST    (V)\r
34080 \r
34081         003754' 554437  000000  DOEND.: HLRZ    T,@(P)\r
34082         003755' 272417  777776          ADDM    T,-2(P);        INCREMENT\r
34083         003756' 550437  000000          HRRZ    T,@(P);         GET FINAL VALUE\r
34084         003757' 315417  777776          CAMGE   T,-2(P);        END CHECK\r
34085         003760' 254000  003763'         JRST    DODONE;         WRAP IT UP\r
34086         003761' 262757  000000          POP     P,(P);          BACK UP POINTER\r
34087         003762' 254037  000000          JRST    @(P)\r
34088 \r
34089 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 54\r
34090         DICK GRUEN: V25 3 AUG 68\r
34091 \r
34092         003763' 262757  777777  DODONE: POP     P,-1(P);        BACK UP ADDRESS\r
34093         003764' 262757  777777          POP     P,-1(P)\r
34094         003765' 254000  003423'         JRST    CPOPJ1          ;RETURN\r
34095 \r
34096         003766' 200500  004176' WRAP:   MOVE    W,ENC;          NUMBER OF CONSTANTS\r
34097         003767' 270500  004175'         ADD     W,ITC;          CONSTANT BASE\r
34098         003770' 201552  000000          MOVEI   C,(W);          CHAIN\r
34099         003771' 542560  000002          HRRM    C,@X\r
34100         003772' 201452  000000          MOVEI   V,(W);          READY TO GO\r
34101         003773' 254000  003645'         JRST    ENDTP1\r
34102 \r
34103         003774' 621040  001060  DODON:  TLZ     N,RCF!SYDAT!DZER        ;DATA STATEMENT FLAGS\r
34104         003775' 200500  003373'         MOVE    W,PTEMP         ;TOP OF PROG\r
34105         003776' 271502  000000          ADDI    W,(X)           ;+OFFSET\r
34106         003777' 200540  003375'         MOVE    C,COMBAS        ;TOP OF DATA\r
34107         004000' 271542  000000          ADDI    C,(X)           ;+OFFSET\r
34108         004001' 311500  000013  SECZER: CAML    W,C             ;ANY DATA TO ZERO?\r
34109         004002' 254020  003403'         JRST    @SDS            ;NO, DO DATA STATEMENTS\r
34110         004003' 311500  003403'         CAML    W,SDS           ;IS DATA BELOW DATA STATEMENTS?\r
34111         004004' 661000  000200          TLO     F,FULLSW        ;NO, INDICATE OVERFLO\r
34112         004005' 607000  000204          TLNN    F,FULLSW+SKIPSW ;SHOULD WE ZERO?\r
34113         004006' 402012  000000          SETZM   (W)             ;YES, DO SO\r
34114         004007' 667040  001000          TLON    N,DZER          ;GO BACK FOR MORE?\r
34115         004010' 344500  004001'         AOJA    W,SECZER        ;YES, PLEASE\r
34116         004011' 313540  003403'         CAMLE   C,SDS           ;ALL DATA BELOW DATA STATEMENTS?\r
34117         004012' 200540  003403'         MOVE    C,SDS           ;ALL ZEROED DATA MUST BE\r
34118         004013' 505512  777777          HRLI    W,-1(W)         ;SET UP BLT POINTER TO ZERO DATA\r
34119         004014' 607000  000204          TLNN    F,FULLSW+SKIPSW ;SHOULD WE ZERO?\r
34120         004015' 251513  777777          BLT     W,-1(C)         ;YES, DO SO\r
34121         004016' 254020  003403'         JRST    @SDS            ;GO DO DATA STATEMENTS\r
34122 \r
34123 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 55\r
34124         DICK GRUEN: V25 3 AUG 68\r
34125 \r
34126         004017' 603040  000020  DREAD:  TLNE    N,RCF;          NEW REPEAT COUNT NEEDED\r
34127         004020' 254000  004032'         JRST    FETCH;          NO\r
34128         004021' 200500  004174'         MOVE    W,LTC\r
34129         004022' 202500  004201'         MOVEM   W,LTCTEM\r
34130         004023' 200520  004174'         MOVE    W,@LTC;         GET A WORD\r
34131         004024' 556500  004200'         HLRZM   W,RCNT;         SET REPEAT COUNT\r
34132         004025' 552500  004177'         HRRZM   W,WCNT;         SET WORD COUNT\r
34133         004026' 262512  000000          POP     W,(W);          SUBTRACT ONE FROM BOTH HALFS\r
34134         004027' 502520  004174'         HLLM    W,@LTC;         DECREMENT REPEAT COUNT\r
34135         004030' 350500  004174'         AOS     W,LTC;          STEP READOUT\r
34136         004031' 661040  000020          TLO     N,RCF\r
34137         004032' 200520  004174' FETCH:  MOVE    W,@LTC\r
34138         004033' 350000  004174'         AOS     LTC\r
34139         004034' 372000  004177'         SOSE    WCNT\r
34140         004035' 263740  000000          POPJ    P,;\r
34141         004036' 376000  004200'         SOSN    RCNT\r
34142         004037' 254000  004042'         JRST    DOFF.\r
34143         004040' 200440  004201'         MOVE    V,LTCTEM;       RESTORE READOUT\r
34144         004041' 202440  004174'         MOVEM   V,LTC\r
34145         004042' 621040  000020  DOFF.:  TLZ     N,RCF;          RESET DATA REPEAT FLAG\r
34146         004043' 263740  000000          POPJ    P,;\r
34147 \r
34148         004044' 200417  000000  DWFS.:  MOVE    T,(P)\r
34149         004045' 350017  000000          AOS     (P)\r
34150         004046' 200410  000000          MOVE    T,(T);          GET ADDRESS\r
34151         004047' 556400  004202'         HLRZM   T,DWCT;         DATA WORD COUNT\r
34152         004050' 573000  000010          HRRES   T\r
34153         004051' 270400  000012          ADD     T,W;            OFFSET\r
34154         004052' 271402  000000          ADDI    T,(X);          LOADER OFFSET\r
34155         004053' 260740  004017' DWFS.1: PUSHJ   P,DREAD         ;GET A DATA WORD\r
34156         004054' 311400  003403'         CAML    T,SDS           ;BELOW BEGINNING OF DATA STATEMENTS\r
34157         004055' 661000  000200          TLO     F,FULLSW        ;YES, INDICATE OVERFLO\r
34158         004056' 607000  000204          TLNN    F,FULLSW+SKIPSW ;LOAD THE NEXT DATA ITEM?\r
34159         004057' 202510  000000          MOVEM   W,(T)           ;YES, STORE IT\r
34160         004060' 350000  000010          AOS     T\r
34161         004061' 372500  004202'         SOSE    W,DWCT;         STEP DOWN AND TEST\r
34162         004062' 254000  004053'         JRST    DWFS.1          ;ONE MORE TIME, MOZART BABY!\r
34163         004063' 263740  000000          POPJ    P,;\r
34164 \r
34165 \r
34166 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 56\r
34167         DICK GRUEN: V25 3 AUG 68\r
34168 \r
34169                                 ;LITERAL TABLE\r
34170 \r
34171         004064'                 LITS:   LIT\r
34172         004064' 444566  435062\r
34173         004065' 656460  435462\r
34174         004066' 545741  444562\r
34175         004067' 251656  000000\r
34176         004070' 530043  576245\r
34177         004071' 435041  515600\r
34178         004072' 545142  240000\r
34179         004073' 200500  004072'\r
34180         004074' 202500  002054'\r
34181         004075' 260740  000722'\r
34182         004076' 621000  000002\r
34183         004077' 254000  000623'\r
34184         004100' 545142  242000\r
34185         004101' 525742  444164\r
34186         004102' 624151  440000\r
34187         004103' 260740  000365'\r
34188         004104' 254000  001266'\r
34189         004105' 254000  001015'\r
34190         004106' 077777  777777\r
34191         004107' 260740  000365'\r
34192         004110' 665000  000200\r
34193         004111' 254000  001234'\r
34194         004112' 254000  001241'\r
34195         004113' 000002  000000\r
34196         004114' 260740  000365'\r
34197         004115' 665000  000200\r
34198         004116' 254000  000456'\r
34199         004117' 263740  000000\r
34200         004120' 440100  000001\r
34201         004121' 254000  003546'\r
34202         004122' 260740  000365'\r
34203         004123' 263740  000000\r
34204         004124' 271540  002000\r
34205         004125' 254000  000456'\r
34206         004126' 260740  000365'\r
34207         004127' 665000  000200\r
34208         004130' 254000  000455'\r
34209         004131' 263740  000000\r
34210         004132' 002000  000000\r
34211         004133' 260740  000365'\r
34212         004134' 263740  000000\r
34213         004135' 270500  004132'\r
34214         004136' 271540  002000\r
34215         004137' 254000  000456'\r
34216         004140' 140620  000002\r
34217         004141' 001420  000002\r
34218         004142' 777777  777776\r
34219         004143' 001400  000012\r
34220         004144' 260740  000365'\r
34221         004145' 665000  000200\r
34222 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 56-1\r
34223         DICK GRUEN: V25 3 AUG 68\r
34224 \r
34225         004146' 254000  003541'\r
34226         004147' 254000  003545'\r
34227         004150' 002000  002000\r
34228         004151' 260740  000365'\r
34229         004152' 263740  000000\r
34230         004153' 271500  002000\r
34231         004154' 270540  004150'\r
34232         004155' 254000  000456'\r
34233         004156' 260740  000365'\r
34234         004157' 665000  000200\r
34235         004160' 254000  003637'\r
34236         004161' 254000  003643'\r
34237         004162' 201500  000003\r
34238         004163' 202500  004174'\r
34239         004164' 201500  000000\r
34240         004165' 000000  003747'\r
34241         004173'                         VAR\r
34242         004173' 000000  000000  CT1:    0               ;TEMP FOR C\r
34243         004174' 000000  000000  LTC:    0\r
34244         004175' 000000  000000  ITC:    0\r
34245         004176' 000000  000000  ENC:    0\r
34246         004177' 000000  000000  WCNT:   0               ;DATA WORD COUNT\r
34247         004200' 000000  000000  RCNT:   0               ;DATA REPEAT COUNT\r
34248 \r
34249         004201' 000000  000000  LTCTEM: 0               ;TEMP FOR LTC\r
34250         004202' 000000  000000  DWCT:   0               ;DATA WORD COUNT\r
34251                         000000' LDEND:  END     LD\r
34252 \r
34253 NO ERRORS DETECTED\r
34254 \r
34255 PROGRAM BREAK IS 004203\r
34256 \r
34257 9K CORE USED\r
34258 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 57\r
34259         SYMBOL TABLE\r
34260 \r
34261                 000662  \r
34262 A               000016  INT\r
34263 ABS             003001' \r
34264 ABSI            003003' \r
34265 ABUF            002046' \r
34266 ABUF1           002047' \r
34267 ABUF2           002050' \r
34268 ABUFL           000203  \r
34269 ADDOP           003725' \r
34270 ALLFLG          000001  SPD\r
34271 ALLOVE          003546' \r
34272 AOTAB           003371' \r
34273 ASW             000100  SPD\r
34274 ATAB            003366' \r
34275 AUX             002544' \r
34276 AUXSWE          040000  SPD\r
34277 AUXSWI          020000  SPD\r
34278 B               000006  INT\r
34279 B.C             002030' \r
34280 BEG             000000' INT\r
34281 BITC            003400' \r
34282 BITP            003377' \r
34283 BITW            003037' \r
34284 BITWX           003061' \r
34285 BLKD1           000200  SPD\r
34286 BLKSIZ          003405' \r
34287 BLTSET          000251' \r
34288 BLTSYM          000000  \r
34289 BUF1            002136' \r
34290 BUFI            002043' \r
34291 BUFI1           002044' \r
34292 BUFI2           002045' \r
34293 BUFL            000406  \r
34294 BUFO            002040' \r
34295 BUFO1           002041' \r
34296 BUFO2           002042' \r
34297 BUFR            002051' \r
34298 BUFR1           002052' \r
34299 BUFR2           002053' \r
34300 C               000013  INT\r
34301 CALLEX          000007' \r
34302 CCON            003372' \r
34303 CDDTGT          000005  SPD\r
34304 CDDTOU          000003  SPD\r
34305 CEXIT           000012  SPD\r
34306 CHAIN3          000350' \r
34307 CHN5            000001  \r
34308 CHNBLT          000014  \r
34309 CHNC            000307' \r
34310 CHNERR          000010  \r
34311 CHNR            000310' \r
34312 CHNSYM          001212' \r
34313 CNR50           003411' \r
34314 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 57-1\r
34315         SYMBOL TABLE\r
34316 \r
34317 COMBAS          003375' \r
34318 COMCOM          003227' \r
34319 COMDID          003436' \r
34320 COMFLG          000004  SPD\r
34321 COMM            001756' \r
34322 COMSAV          001760' \r
34323 COMTOP          003211' \r
34324 COMYES          003234' \r
34325 CONPOL          003722' \r
34326 CPOPJ1          003423' \r
34327 CRLF            001730' INT\r
34328 CRLFLF          001726' \r
34329 CSETDD          000002  SPD\r
34330 CSW             000001  SPD\r
34331 CT1             004173' \r
34332 CTAB            003365' \r
34333 CTLSET          000004' \r
34334 CWSTWX          003245' \r
34335 D               000007  INT\r
34336 DATAS           003563' \r
34337 DAX             003604' \r
34338 DDSW            004000  SPD\r
34339 DISPL           000005  \r
34340 DODON           003774' \r
34341 DODONE          003763' \r
34342 DOEND.          003754' \r
34343 DOFF.           004042' \r
34344 DOINT.          003747' \r
34345 DREAD           004017' \r
34346 DSW             100000  SPD\r
34347 DSYMSW          001000  SPD\r
34348 DTIN            002054' INT\r
34349 DTIN1           002055' \r
34350 DTIN2           002057' \r
34351 DTOUT           002060' INT\r
34352 DTOUT1          002061' \r
34353 DWCT            004202' \r
34354 DWFS            003740' \r
34355 DWFS.           004044' \r
34356 DWFS.1          004053' \r
34357 DZER            001000  SPD\r
34358 E               000014  INT\r
34359 E1              003143' \r
34360 E11             003164' \r
34361 E1A             003160' \r
34362 E21             003170' \r
34363 E31             003174' \r
34364 E41             003200' \r
34365 ENC             004176' \r
34366 ENDS            003122' \r
34367 ENDS1           003131' \r
34368 ENDTAB          003341' \r
34369 ENDTP           003616' \r
34370 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 57-2\r
34371         SYMBOL TABLE\r
34372 \r
34373 ENDTP0          003621' \r
34374 ENDTP1          003645' \r
34375 ENDTP2          003636' \r
34376 EOF             000725' \r
34377 EOF1            000726' \r
34378 EOF2            000727' \r
34379 ERRP41          001646' \r
34380 ERRP8           001666' \r
34381 ERRPT           001610' \r
34382 ERRPT0          001613' \r
34383 ERRPT1          001615' \r
34384 ERRPT2          001631' \r
34385 ERRPT3          001635' \r
34386 ERRPT4          001645' \r
34387 ERRPT5          001652' \r
34388 ERRPT6          001653' \r
34389 ERRPT7          001667' \r
34390 ERRPT8          001654' \r
34391 ERRPT9          001671' \r
34392 ESW             000002  SPD\r
34393 EXEQSW          002000  SPD\r
34394 EXPAND          000001  \r
34395 F               000000  INT\r
34396 F.C             002022' \r
34397 F.I             002031' \r
34398 F4LD            002753' \r
34399 F4LIB           010000  SPD\r
34400 F4SW            000010  SPD\r
34401 FBLKD           003612' \r
34402 FCONSW          000020  SPD\r
34403 FCRLF           001727' \r
34404 FETCH           004032' \r
34405 FIXW            001162' \r
34406 FIXWL           001171' \r
34407 FIXWP           001152' \r
34408 FSCN            000730' \r
34409 FSCN1           000746' \r
34410 FSCN2           000751' \r
34411 FSW             000010  SPD\r
34412 FULLC           001266' \r
34413 FULLSW          000200  SPD\r
34414 GLOBDF          003020' \r
34415 GSTAB           003370' \r
34416 GSWD            003254' \r
34417 GSWDP1          003262' \r
34418 GSWDPR          003261' \r
34419 H               000003  INT\r
34420 HEADER          003345' \r
34421 HIGH            001274' \r
34422 HIGH0           001272' \r
34423 HIGH3           001301' \r
34424 IAD2            001523' \r
34425 ILC             001334' \r
34426 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 57-3\r
34427         SYMBOL TABLE\r
34428 \r
34429 ILD             000611' \r
34430 ILD1            000616' \r
34431 ILD2            000623' \r
34432 ILD3            000631' \r
34433 ILD4            000635' \r
34434 ILD5            000643' \r
34435 ILD6            000621' \r
34436 ILD9            000637' \r
34437 IMD3            001526' \r
34438 INNER           003707' \r
34439 IOBAD           740000  \r
34440 IOBKTL          040000  \r
34441 IODEND          020000  \r
34442 IODERR          200000  \r
34443 IODTER          100000  \r
34444 IOIMPM          400000  \r
34445 IOWDP           000013  \r
34446 IOWDPP          000363' \r
34447 ISAFLG          000002  SPD\r
34448 ISW             020000  SPD\r
34449 ITC             004175' \r
34450 JOB41           000330' EXT\r
34451 JOBBLT          000134  SPD\r
34452 JOBCHN          000131  SPD\r
34453 JOBDDT          000331' EXT\r
34454 JOBFF           000612' EXT\r
34455 JOBPRO          000140  SPD\r
34456 JOBREL          001223' EXT\r
34457 JOBSA           000332' EXT\r
34458 JOBSYM          000413' EXT\r
34459 JOBUSY          000247' EXT\r
34460 K               000000  \r
34461 LD              000000' INT\r
34462 LD2             000042' \r
34463 LD2B            000050' \r
34464 LD2BA           000054' \r
34465 LD2D            000057' \r
34466 LD2DA           000057' \r
34467 LD2Q            000042' \r
34468 LD3             000063' \r
34469 LD3A            000100' \r
34470 LD3AA           000066' \r
34471 LD4             000110' \r
34472 LD5             000115' \r
34473 LD5A            000127' \r
34474 LD5B            000134' \r
34475 LD5B1           000137' \r
34476 LD5C            000145' \r
34477 LD5C1           000165' \r
34478 LD5D            000201' \r
34479 LD5E            000203' \r
34480 LD5E1           000205' \r
34481 LD5E2           000215' \r
34482 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 57-4\r
34483         SYMBOL TABLE\r
34484 \r
34485 LD5E3           000225' \r
34486 LD5E5           000212' \r
34487 LD6             000466' \r
34488 LD6A            000461' \r
34489 LD6A1           000464' \r
34490 LD6B            000472' \r
34491 LD6C            000524' \r
34492 LD6D            000527' \r
34493 LD7             000533' \r
34494 LD7A            000536' \r
34495 LD7B            000542' \r
34496 LD7C            000546' \r
34497 LD7D            000554' \r
34498 LD8             000561' \r
34499 LD9             000572' \r
34500 LDAC            000000  \r
34501 LDDT            000710' \r
34502 LDDT0           000712' \r
34503 LDDT1           000716' \r
34504 LDDT2           000722' \r
34505 LDDT3           000723' \r
34506 LDDTX           000707' \r
34507 LDEND           004203' INT\r
34508 LDF             000752' \r
34509 LIB             000666' \r
34510 LIB1            000671' \r
34511 LIB2            000673' \r
34512 LIB3            000701' \r
34513 LIBF            000653' \r
34514 LIBF1           000660' \r
34515 LIBF2           000661' \r
34516 LIBSW           004000  SPD\r
34517 LITS            004064' \r
34518 LLC             003376' \r
34519 LOAD            000753' INT\r
34520 LOAD1           000754' \r
34521 LOAD1A          000755' \r
34522 LOAD2           000772' \r
34523 LOAD3           000777' \r
34524 LOAD4           001000' \r
34525 LOAD4A          001002' \r
34526 LOCD            001340' \r
34527 LOOP            003670' \r
34528 LOSEBI          000006  \r
34529 LRAID           000704' \r
34530 LRAIDX          000703' \r
34531 LSTPT           001754' \r
34532 LTC             004174' \r
34533 LTCTEM          004201' \r
34534 MDG             001761' \r
34535 MDLB            003007' \r
34536 MLPLC           003015' \r
34537 MLTP            003402' \r
34538 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 57-5\r
34539         SYMBOL TABLE\r
34540 \r
34541 MODIF           003406' \r
34542 MVABRT          001256' \r
34543 MVDWN           001234' \r
34544 N               000001  INT\r
34545 NAME            001311' \r
34546 NAME1           001317' \r
34547 NAME2           001330' \r
34548 NCO             003465' \r
34549 NOEX            000275' \r
34550 NOPRG           003302' \r
34551 NSW             200000  SPD\r
34552 NUTS            000002' \r
34553 P               000017  INT\r
34554 PASS2           003267' \r
34555 PASS2A          003421' \r
34556 PASS2B          003307' \r
34557 PASS2C          003342' \r
34558 PAT             003425' \r
34559 PATO            003444' \r
34560 PCOM1           003416' \r
34561 PCOMX           003417' \r
34562 PCONS           003412' \r
34563 PDLPT           001755' \r
34564 PDLST           001762' INT\r
34565 PDSAV           001757' \r
34566 PGM1            000400  SPD\r
34567 PGS             003500' \r
34568 PJTABL          003731' \r
34569 PLB             003030' \r
34570 PLTP            003401' \r
34571 PMLT            003524' \r
34572 PMS             001460' INT\r
34573 PMS2            001476' \r
34574 PMS3            001504' \r
34575 PMS4            001520' \r
34576 POPJM2          000456' \r
34577 POPJM3          000455' \r
34578 PP              000000  \r
34579 PPDL            000060  SPD\r
34580 PPLT            003526' \r
34581 PPT             003476' \r
34582 PRMAP           001407' INT\r
34583 PRMAP1          001427' \r
34584 PRMAP2          001444' \r
34585 PRMAP3          001455' \r
34586 PRMAP4          001456' \r
34587 PRMAP5          001460' \r
34588 PRNAM           001534' \r
34589 PRNAM0          001532' \r
34590 PRNAM1          001533' \r
34591 PRNAME          001561' \r
34592 PRNUM           001535' \r
34593 PRNUM0          001536' \r
34594 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 57-6\r
34595         SYMBOL TABLE\r
34596 \r
34597 PRNUM1          001540' \r
34598 PRNUM2          001545' \r
34599 PROC            003314' \r
34600 PROG            001006' \r
34601 PROG1           001020' \r
34602 PRQ             001701' \r
34603 PRSTWX          003244' \r
34604 PRWORD          001363' \r
34605 PST             003426' \r
34606 PSTA            003414' \r
34607 PT1             003121' \r
34608 PTEMP           003373' \r
34609 PTR50           003410' \r
34610 PTT             003474' \r
34611 PWORD           001602' INT\r
34612 PWORD1          001603' \r
34613 PWORD2          001604' \r
34614 Q               000015  INT\r
34615 R               000005  INT\r
34616 RCF             000020  SPD\r
34617 RCNT            004200' \r
34618 RCNUM           001546' \r
34619 REMSYM          001344' \r
34620 REWSW           002000  SPD\r
34621 RPGSW           000000  \r
34622 RWORD           001371' \r
34623 RWORD1          001373' \r
34624 RWORD2          001377' \r
34625 RWORD3          001403' \r
34626 S               000004  INT\r
34627 SAS1            000234' \r
34628 SASYM           000227' \r
34629 SDEF            001355' \r
34630 SDEF1           001356' \r
34631 SDEF2           001360' \r
34632 SDS             003403' \r
34633 SDSTP           003404' \r
34634 SE3             001753' \r
34635 SECZER          004001' \r
34636 SFULLC          001257' \r
34637 SKIPIN          003730' \r
34638 SKIPSW          000004  SPD\r
34639 SLASH           000100  SPD\r
34640 SLIBSW          000400  SPD\r
34641 SLTC            003101' \r
34642 SMLT            003066' \r
34643 SP1             001556' \r
34644 SPACE           001557' \r
34645 SPACES          001555' \r
34646 SPLT            003103' \r
34647 SPT             001564' \r
34648 SREQ            001353' \r
34649 SSW             400000  SPD\r
34650 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 57-7\r
34651         SYMBOL TABLE\r
34652 \r
34653 STAB            003367' \r
34654 START           001306' \r
34655 SVA             001101' \r
34656 SWAPSY          003535' \r
34657 SYDAT           000040  SPD\r
34658 SYDEF           003511' \r
34659 SYM             001023' \r
34660 SYM1            001037' \r
34661 SYM1A           001053' \r
34662 SYM1B           001055' \r
34663 SYM1C           001057' \r
34664 SYM1D           001062' \r
34665 SYM2            001070' \r
34666 SYM2A           001102' \r
34667 SYM2B           001071' \r
34668 SYM2C           001100' \r
34669 SYM2W           001221' \r
34670 SYM2W1          001075' \r
34671 SYM2WA          001225' \r
34672 SYM3            001106' \r
34673 SYM3A           001137' \r
34674 SYM3A1          001144' \r
34675 SYM3B           001145' \r
34676 SYM3X           001131' \r
34677 SYM3X1          001116' \r
34678 SYM3X2          001127' \r
34679 SYM4            001227' \r
34680 SYM4A           001232' \r
34681 SYMFIX          001174' \r
34682 SYMPT           001026' \r
34683 SYMSW           040000  SPD\r
34684 SYMXX           003531' \r
34685 T               000010  INT\r
34686 TABDIS          003330' \r
34687 TBLCHK          003541' \r
34688 TEXTR           002772' \r
34689 TOPTAB          003364' \r
34690 TTEMP           003374' \r
34691 TTR50           003407' \r
34692 TTY1            002064' \r
34693 TTYL            000052  \r
34694 TYPE            001733' INT\r
34695 TYPE2           001734' \r
34696 TYPE3           001745' \r
34697 V               000011  INT\r
34698 W               000012  INT\r
34699 WCNT            004177' \r
34700 WORD            001710' INT\r
34701 WORD1           001712' \r
34702 WORD2           001714' \r
34703 WORDPR          001706' \r
34704 WRAP            003766' \r
34705 WSTWX           003250' \r
34706 \r\fLOADER - LOADS MACROX AND SIXTRAN FOUR                 PAGE 57-8\r
34707         SYMBOL TABLE\r
34708 \r
34709 X               000002  INT\r
34710 XPAND           000365' \r
34711 XPAND2          000401' \r
34712 XPAND3          000426' \r
34713 XPAND4          000442' \r
34714 XPAND5          000446' \r
34715 XPAND6          000432' \r
34716 XPAND7          000452' \r
34717 ZEROS           002747' \r
34718 \fLLL                     OOOOOOOOO            AAAAAAAAA         DDDDDDDDDDDD               111            KKK         KKK\r
34719 LLL                     OOOOOOOOO            AAAAAAAAA         DDDDDDDDDDDD               111            KKK         KKK\r
34720 LLL                     OOOOOOOOO            AAAAAAAAA         DDDDDDDDDDDD               111            KKK         KKK\r
34721 LLL                  OOO         OOO      AAA         AAA      DDD         DDD         111111            KKK         KKK\r
34722 LLL                  OOO         OOO      AAA         AAA      DDD         DDD         111111            KKK         KKK\r
34723 LLL                  OOO         OOO      AAA         AAA      DDD         DDD         111111            KKK         KKK\r
34724 LLL                  OOO         OOO      AAA         AAA      DDD         DDD            111            KKK      KKK   \r
34725 LLL                  OOO         OOO      AAA         AAA      DDD         DDD            111            KKK      KKK   \r
34726 LLL                  OOO         OOO      AAA         AAA      DDD         DDD            111            KKK      KKK   \r
34727 LLL                  OOO         OOO      AAA         AAA      DDD         DDD            111            KKKKKKKKK      \r
34728 LLL                  OOO         OOO      AAA         AAA      DDD         DDD            111            KKKKKKKKK      \r
34729 LLL                  OOO         OOO      AAA         AAA      DDD         DDD            111            KKKKKKKKK      \r
34730 LLL                  OOO         OOO      AAAAAAAAAAAAAAA      DDD         DDD            111            KKK      KKK   \r
34731 LLL                  OOO         OOO      AAAAAAAAAAAAAAA      DDD         DDD            111            KKK      KKK   \r
34732 LLL                  OOO         OOO      AAAAAAAAAAAAAAA      DDD         DDD            111            KKK      KKK   \r
34733 LLL                  OOO         OOO      AAA         AAA      DDD         DDD            111            KKK         KKK\r
34734 LLL                  OOO         OOO      AAA         AAA      DDD         DDD            111            KKK         KKK\r
34735 LLL                  OOO         OOO      AAA         AAA      DDD         DDD            111            KKK         KKK\r
34736 LLLLLLLLLLLLLLL         OOOOOOOOO         AAA         AAA      DDDDDDDDDDDD            111111111         KKK         KKK\r
34737 LLLLLLLLLLLLLLL         OOOOOOOOO         AAA         AAA      DDDDDDDDDDDD            111111111         KKK         KKK\r
34738 LLLLLLLLLLLLLLL         OOOOOOOOO         AAA         AAA      DDDDDDDDDDDD            111111111         KKK         KKK\r
34739 \r
34740 \r
34741 \r
34742 \r
34743 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
34744 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
34745 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
34746 LLL                  SSS                        TTT                                                                     \r
34747 LLL                  SSS                        TTT                                                                     \r
34748 LLL                  SSS                        TTT                                                                     \r
34749 LLL                  SSS                        TTT                                                                     \r
34750 LLL                  SSS                        TTT                                                                     \r
34751 LLL                  SSS                        TTT                                                                     \r
34752 LLL                     SSSSSSSSS               TTT                                                                     \r
34753 LLL                     SSSSSSSSS               TTT                                                                     \r
34754 LLL                     SSSSSSSSS               TTT                                                                     \r
34755 LLL                              SSS            TTT                                                                     \r
34756 LLL                              SSS            TTT                                                                     \r
34757 LLL                              SSS            TTT                                                                     \r
34758 LLL                              SSS            TTT                                                                     \r
34759 LLL                              SSS            TTT                                                                     \r
34760 LLL                              SSS            TTT                                                                     \r
34761 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
34762 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
34763 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
34764 \r
34765 \r
34766 \r
34767 \r
34768 Request created: 24-April-1978  11:23:08\r
34769 File: DSKB1 :LOAD1K.LST   [8,200] Created: 20-April-1967 11:19:00 Printed: 24-April-1978 11:22:30
34770 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1777 \r
34771 File will be deleted after printing\r
34772 \f\r1KLOAD - LOADS MACROX                 PAGE 1\r
34773         DICK GRUEN: V25 3 AUG 68\r
34774 \r
34775                         000001  K==1\r
34776                                         SUBTTL  DICK GRUEN: V25 3 AUG 68\r
34777 \r
34778 \r
34779                                 ;K=1                    ;K=1  MEANS 1KLOADER\r
34780                                 IFNDEF  K,<K=0>         ;K=0  MEANS F4 LOADER\r
34781 \r
34782                                 ;RPGSW=1                ;MEANS RPG FEATURE\r
34783                                 IFNDEF RPGSW,<RPGSW=0>\r
34784                                 ;LDAC=1                 ;MEANS LOAD CODE INTO ACS\r
34785                                 IFNDEF LDAC,<LDAC=0>\r
34786 \r
34787                                 ;BLTSYM=1               ;MOVE SYMBOL TABLE DOWN TO END OF PROG\r
34788                                 IFNDEF BLTSYM,<BLTSYM=0>\r
34789 \r
34790                                 ;EXPAND=1               ;FOR AUTOMATIC CORE EXPANSION\r
34791                                 IFNDEF EXPAND,< IFN K,<EXPAND=0>\r
34792                                                 IFE K,<EXPAND=1>>\r
34793 \r
34794                                 ;PP=1                   ;ALLOW PROJ-PROG #\r
34795                                 IFNDEF PP,<PP=0>\r
34796 \r
34797                                 ;CHN5=0                 ;IF CHAIN WHICH DOESN'T SAVES JOB41\r
34798                                 IFNDEF CHN5,<CHN5=1>\r
34799 \r
34800                                 IFE K,< TITLE   LOADER - LOADS MACROX AND SIXTRAN FOUR>\r
34801                                 IFN K,< TITLE   1KLOAD - LOADS MACROX>\r
34802 \r\f1KLOAD - LOADS MACROX                 PAGE 2\r
34803         DICK GRUEN: V25 3 AUG 68\r
34804 \r
34805                                 ;ACCUMULATOR ASSIGNMENTS\r
34806                         000000          F=0             ;FLAGS IN LH, SA IN RH\r
34807                         000001          N=1             ;PROGRAM NAME POINTER\r
34808                         000002          X=2             ;LOADER OFFSET\r
34809                         000003          H=3             ;HIGHEST LOC LOADED\r
34810                         000004          S=4             ;UNDEFINED POINTER\r
34811                         000005          R=5             ;RELOCATION CONSTANT\r
34812                         000006          B=6             ;SYMBOL TABLE POINTER\r
34813                         000007          D=7\r
34814                         000010          T=10\r
34815                         000011          V=T+1\r
34816                         000012          W=12            ;VALUE\r
34817                         000013          C=W+1           ;SYMBOL\r
34818                         000014          E=C+1           ;DATA WORD COUNTER\r
34819                         000015          Q=15            ;RELOCATION BITS\r
34820                         000016          A=Q+1           ;SYMBOL SEARCH POINTER\r
34821                         000017          P=17            ;PUSHDOWN POINTER\r
34822                                 ;FLAGS  F(0 - 17)\r
34823                         000001          CSW==1                  ;ON - COLON SEEN\r
34824                         000002          ESW==2                  ;ON - EXPLICIT EXTENSION IDENT.\r
34825                         000004          SKIPSW==4               ;ON - DO NOT LOAD THIS PROGRAM\r
34826                         000010          FSW==10                 ;ON - SCAN FORCED TO COMPLETION\r
34827                         000020          FCONSW==20              ;ON - FORCE CONSOLE OUTPUT\r
34828                         000100          ASW==100                ;ON - LEFT ARROW ILLEGAL\r
34829                         000200          FULLSW==200             ;ON - STORAGE EXCEEDED\r
34830                         000400          SLIBSW==400             ;ON - LIB SEARCH IN THIS PROG\r
34831                         001000          DSYMSW==1000            ;ON - LOAD WITH SYMBOLS FOR DDT\r
34832                         002000          REWSW==2000             ;ON - REWIND AFTER INIT\r
34833                         004000          LIBSW==4000             ;ON - LIBRARY SEARCH MODE\r
34834                         010000          F4LIB==10000            ;ON - F4 LIBRARY SEARCH LOOKUP\r
34835                         020000          ISW==20000              ;ON - DO NOT PERFORM INIT\r
34836                         040000          SYMSW==40000            ;ON - LOAD LOCAL SYMBOLS\r
34837                         100000          DSW==100000             ;ON - CHAR IN IDENTIFIER\r
34838                         200000          NSW==200000             ;ON - SUPPRESS LIBRARY SEARCH\r
34839                         400000          SSW==400000             ;ON - SWITCH MODE\r
34840                                 ;FLAGS  N(0 - 17)\r
34841                         000001          ALLFLG==1               ;ON - LIST ALL GLOBALS\r
34842                         000002          ISAFLG==2               ;ON - IGNORE STARTING ADDRESSES\r
34843                         000004          COMFLG==4               ;ON - SIZE OF COMMON SET\r
34844                                 IFE K,< F4SW==10                ;F4 IN PROGRESS\r
34845                                         RCF==20                 ;READ DATA COUNT\r
34846                                         SYDAT==40               ;SYMBOL IN DATA>\r
34847                         000100          SLASH==100              ;SLASH SEEN\r
34848                                 IFE K,< BLKD1==200              ;ON- FIRST BLOCK DATA SEEN\r
34849                                         PGM1==400               ;ON FIRST F4 PROG SEEN\r
34850                                         DZER==1000              ;ON - ZERO SECOND DATA WORD>\r
34851                         002000          EXEQSW==2000            ;IMMEDIATE EXECUTION\r
34852                         004000          DDSW==4000              ;GO TO DDT\r
34853                                 IFN RPGSW,<RPGF==10000          ;IN RPG MODE>\r
34854                         020000          AUXSWI==20000           ;ON - AUX. DEVICE INITIALIZED\r
34855                         040000          AUXSWE==40000           ;ON - AUX. DEVICE ENTERED\r
34856                                 IFN PP,<PPSW==100000            ;ON - READING PROJ-PROG #\r
34857                                         PPCSW==200000           ;ON - READING PROJ #>\r
34858 \r\f1KLOAD - LOADS MACROX                 PAGE 3\r
34859         DICK GRUEN: V25 3 AUG 68\r
34860 \r
34861         000137                  LOC     137\r
34862         000137  000000  000025  OCT 25          ;VERSION #\r
34863         000000'                 RELOC\r
34864                                         MLON\r
34865                                         SALL\r
34866 \r
34867 \r
34868 \r
34869                                 ;MONITOR LOCATIONS IN THE USER AREA\r
34870 \r
34871                         000140          JOBPRO==140             ;PROGRAM ORIGIN\r
34872                         000134          JOBBLT==134             ;BLT ORIGIN\r
34873                         000131          JOBCHN==131             ;RH = PROG BREAK OF FIRST BLOCK DATA\r
34874                                                                 ;LH = PROG BREAK OF FIRST F4 PROG\r
34875 \r
34876                                 ;CALLI DEFINITIONS\r
34877 \r
34878                         000003  CDDTOUT==3      ;CALLI DDTOUT\r
34879                         000012  CEXIT==12       ;CALLI EXIT\r
34880                         000005  CDDTGT==5       ;CALLI DDTGT\r
34881                         000002  CSETDDT==2      ;CALLI SETDDT\r
34882 \r
34883                                 ;LENGTH OF PUSHDOWN LIST FOR POLISH FIXUPS\r
34884 \r
34885                         000060  PPDL==60\r
34886 \r\f1KLOAD - LOADS MACROX                 PAGE 4\r
34887         DICK GRUEN: V25 3 AUG 68\r
34888 \r
34889                                 IFN RPGSW,<\r
34890                                 RPGSET: CALLI 0\r
34891                                         INIT 17,1       ;SET UP DSK\r
34892                                         SIXBIT /DSK/\r
34893                                         XWD 0,CTLIN\r
34894                                         JRST NUTS\r
34895                                         MOVE [SIXBIT /QQLOAD/]  ;NAME OF COMMAND FILE\r
34896                                         MOVEM CTLNAM\r
34897                                         MOVSI (SIXBIT /RPG/)    ;AND EXT\r
34898                                         MOVEM CTLNAM+1\r
34899                                         SETZM CTLNAM+3\r
34900                                         LOOKUP 17,CTLNAM        ;THERE?\r
34901                                         JRST NUTS       ;NO\r
34902                                         INIT 16,16      ;GET SET TO DELETE QQLOAD.RPG\r
34903                                         SIXBIT /DSK/\r
34904                                         0\r
34905                                         JRST LD         ;GIVE UP COMPLETELY\r
34906                                         SETZM CTLNAM+3\r
34907                                         HLLZS CTLNAM+1  ;CLEAR OUT EXTRA JUNK\r
34908                                         LOOKUP 16,CTLNAM\r
34909                                         JRST LD\r
34910                                         RENAME 16,ZEROS ;DELETE IT\r
34911                                         JFCL            ;IGNORE IF IT WILL NOT GO\r
34912                                         RELEASE 16,0    ;GET RID OF THIS DEVICE\r
34913                                         SETZM NONLOD    ;THIS IS NOT A CONTINUATION\r
34914                                 RPGS3:  MOVEI CTLBUF\r
34915                                         MOVEM JOBFF     ;SET UP BUFFER\r
34916                                         INBUF 17,1\r
34917                                         MOVEI [ASCIZ /\r
34918                                 LOADING\r
34919                                 /]              ;PRINT MESSAGE THAT WE ARE STARTING\r
34920                                         CALLI CDDTOUT\r
34921                                         SKIPE NONLOD    ;CONTINUATION?\r
34922                                         JRST RPGS2      ;YES, SPECIAL SETUP\r
34923                                         MOVSI R,F.I     ;NOW SO WE CAN SET FLAG\r
34924                                         BLT R,R\r
34925                                         TLO N,RPGF\r
34926                                         JRST CTLSET     ;SET UP TTY\r
34927                                 RPGS1:  PUSHJ P,[TLNE F,ESW     ;HERE FROM FOO* COMMAND, STORE NAME\r
34928                                                 JRST LDDT3      ;SAVE EXTENSION\r
34929                                                 TLZE F,CSW!DSW   ;OR AS NAME\r
34930                                                 MOVEM W,DTIN\r
34931                                                 POPJ P,]\r
34932                                         MOVEM 0,SVRPG#  ;SAVE 0 JUST IN CASE\r
34933                                         SETZM NONLOD#   ;DETERMINE IF CONTINUATION\r
34934                                         MOVEI 0,2(B)    ;BY SEEING IF ANY SYMBOLS LOADED\r
34935                                         CAME 0,JOBREL\r
34936                                         SETOM NONLOD    ;SET TO -1 AND SKIP CALLI\r
34937                                         MOVE 0,ILD1\r
34938                                         MOVEM 0,RPG1\r
34939                                         INIT 17,1\r
34940                                 RPG1:   0\r
34941                                         XWD 0,CTLIN\r
34942 \r\f1KLOAD - LOADS MACROX                 PAGE 4-1\r
34943         DICK GRUEN: V25 3 AUG 68\r
34944 \r
34945                                         JSP A,ILD5\r
34946                                         LOOKUP 17,DTIN  ;THE FILE NAME\r
34947                                         JRST ILD9\r
34948                                         JRST RPGS3\r
34949                                 \r
34950                                 RPGS2:  MOVSI 0,RPGF    ;SET FLAG\r
34951                                         IORM 0,F.C+N\r
34952                                         TLO N,RPGF\r
34953                                         MOVE 0,SVRPG\r
34954                                         JRST LD2Q       ;BACK TO INPUT SCANNING\r
34955                                 >\r
34956 \r\f1KLOAD - LOADS MACROX                 PAGE 5\r
34957         DICK GRUEN: V25 3 AUG 68\r
34958 \r
34959 \r
34960                                 ;MONITOR LOADER CONTROL\r
34961 \r
34962         000000'                 BEG:\r
34963                                 LD:     IFN RPGSW,<SKIPA        ;NORMAL INITIALIZE\r
34964                                         JRST RPGSET     ;SPECIAL INIT>\r
34965         000000' 513000  000042          HLLZS 42        ;GET RID OF ERROR COUNT IF NOT IN RPG MODE\r
34966         000001' 047000  000000          CALLI   0               ;INITIALIZE THIS JOB\r
34967         000002' 205240  001701' NUTS:   MOVSI     R,F.I         ;SET UP INITIAL ACCUMULATORS\r
34968         000003' 251240  000005          BLT     R,R             \r
34969         000004' 041140  000001  CTLSET: INIT    3,1             ;INITIALIZE CONSOLE\r
34970         000005' 646471  000000          SIXBIT    /TTY/\r
34971         000006' 001710' 001713'         XWD     BUFO,BUFI\r
34972         000007' 047000  000012  CALLEX: CALLI   CEXIT           ;DEVICE ERROR, FATAL TO JOB\r
34973         000010' 201600  001734'         MOVEI     E,TTY1\r
34974         000011' 202600  000000*         MOVEM     E,JOBFF\r
34975         000012' 064140  000001          INBUF     3,1\r
34976         000013' 065140  000001          OUTBUF    3,1           ;INITIALIZE OUTPUT BUFFERS\r
34977         000014' 067140  000000          OUTPUT    3,                    ;DO INITIAL REDUNDANT OUTPUT\r
34978         000015' 550300  000000*         HRRZ    B,JOBREL        ;PICK UP CORE BOUND\r
34979         000016' 332000  000000*         SKIPE   JOBDDT          ;DOES DDT EXIST?\r
34980         000017' 550300  000000*         HRRZ    B,JOBSYM        ;USED BOTTOM OF SYMBOL TABLE INSTEAD\r
34981         000020' 274300  001623'         SUB     B,SE3           ;INITIALIZE SYMBOL TABLE POINTER\r
34982         000021' 303146  000001          CAILE     H,1(B)                ;TEST CORE ALLOCATION\r
34983         000022' 047000  000012          CALLI   CEXIT           ;INSUFFICIENT CORE, FATAL TO JOB\r
34984         000023' 204600  000002          MOVS    E,X             ;SET UP BLT POINTER\r
34985         000024' 541602  000001          HRRI    E,1(X)\r
34986         000025' 402014  777777          SETZM     -1(E)                 ;ZERO FIRST WORD\r
34987         000026' 251606  000000          BLT     E,(B)           ;ZERO CORE UP TO THE SYMBOL AREA\r
34988         000027' 550200  000006          HRRZ    S,B             ;INITIALIZE UNDEF. POINTER\r
34989         000030' 540040  000006          HRR     N,B             ;INITIALIZE PROGRAM NAME POINTER\r
34990         000031' 541240  000140          HRRI    R,JOBPRO        ;INITIALIZE THE LOAD ORIGIN\r
34991         000032' 200600  001626'         MOVE    E,COMM          ;SET .COMM. AS THE FIRST PROGRAM\r
34992         000033' 202606  000001          MOVEM     E,1(B)                ;STORE IN SYMBOL TABLE\r
34993         000034' 552246  000002          HRRZM     R,2(B)                ;STORE COMMON ORIGIN\r
34994         000035' 201600  001672'         MOVEI     E,F.C         ;INITIALIZE STATE OF THE LOADER\r
34995         000036' 251600  001700'         BLT     E,B.C\r
34996         000037' 402000  001631'         SETZM   MDG             ;MULTIPLY DEFINED GLOBAL COUNT\r
34997         000040' 205500  254200          MOVSI   W,254200        ;STORE HALT IN JOB41\r
34998         000041' 202502  000000*         MOVEM   W,JOB41(X)      ;...\r
34999                                 IFN LDAC!BLTSYM,<MOVEI W,20     ;SET UP SPACE TO SAVE FOR ACS AND\r
35000                                         MOVEM W,KORSP#  ;USER DEFINITIONS WITH DDT>\r
35001 \r
35002 \r\f1KLOAD - LOADS MACROX                 PAGE 6\r
35003         DICK GRUEN: V25 3 AUG 68\r
35004 \r
35005 \r
35006                                 IFN RPGSW,<JRST LD2Q>\r
35007                                 LD2:    IFN RPGSW,<MOVSI B,RPGF ;HERE ON ERRORS, TURN OFF RPG\r
35008                                         ANDCAM B,F.C+N  ;IN CORE>\r
35009                                 ;LOADER SCAN FOR FILE NAMES\r
35010 \r
35011         000042' 205300  001672' LD2Q:   MOVSI     B,F.C         ;RESTORE ACCUMULATORS\r
35012         000043' 251300  000006          BLT     B,B\r
35013         000044' 200740  001625'         MOVE    P,PDLPT         ;INITIALIZE PUSHDOWN LIST\r
35014         000045' 402000  001715'         SETZM     BUFI2         ;CLEAR INPUT BUFFER POINTER\r
35015         000046' 402000  000522' IFE PP,<        SETZM     ILD1          ;CLEAR INPUT DEVICE NAME>\r
35016                                 IFN PP,<        MOVSI T,(SIXBIT /DSK/)  ;ASSUME DSK\r
35017                                         MOVEM T,ILD1\r
35018                                         SETZM OLDDEV#   ;TO MAKE IT GO BACK AFTER /D FOR LIBSR>\r
35019         000047' 402000  001724'         SETZM     DTIN          ;CLEAR INPUT FILE NAME\r
35020                                 IFN PP,<SETZM   PPN#            ;CLEAR INPUT PROJ-PROG #>\r
35021 \r
35022         000050' 071040  000000  LD2B:   RELEAS    1,                    ;RELEASE BINARY INPUT DEVICE\r
35023                                 IFN RPGSW,<     TLNE N,RPGF     ;NOT IF DOING RPG\r
35024                                         JRST LD2BA>\r
35025         000051' 201400  000052          MOVEI     T,"*"\r
35026         000052' 136400  001711'         IDPB    T,BUFO1         ;OUTPUT ASTERISK TO START INPUT\r
35027         000053' 067140  000000          OUTPUT    3,\r
35028         000054' 621000  022707  LD2BA:  TLZ     F,FULLSW+ASW+ISW+CSW+ESW+SKIPSW+SLIBSW+REWSW\r
35029         000055' 603000  004000          TLNE    F,LIBSW         ;WAS LIBRARY MODE ON?\r
35030         000056' 661000  000004          TLO     F,SKIPSW        ;YES, NORMAL MODE IS SKIPPING\r
35031 \r
35032                                 LD2D:   IFN PP,<SETZM PPN       ;DO NOT REMEMBER PPNS FOR NOW\r
35033                                 LD2DB:  SKIPE W,OLDDEV  ;RESET DEVICE IF NEEDED\r
35034                                         CAMN W,ILD1     ;IS IT SAME?\r
35035                                         JRST LD2DA      ;YES, FORGET IT\r
35036                                         TLZ F,ISW+DSW+FSW+REWSW\r
35037                                         MOVEM W,ILD1>\r
35038         000057'                 LD2DA:\r
35039                                 IFN RPGSW,<     SETZM DTIN1     ;CLEAR EXTENSION>\r
35040         000057' 201500  000000          MOVEI     W,0           ;INITIALIZE IDENTIFIER SCAN\r
35041         000060' 201600  000006          MOVEI     E,6           ;INITIALIZE CHARACTER COUNTER\r
35042         000061' 200440  001624'         MOVE    V,LSTPT         ;INITIALIZE BYTE POINTER TO W\r
35043         000062' 621000  500010          TLZ     F,SSW+DSW+FSW   ;LEAVE SWITCH MODE\r
35044                                 LD3:    IFN RPGSW,<TLNE N,RPGF  ;CHECK RPG FEATURE\r
35045                                         JRST RPGRD>\r
35046         000063' 377000  001715'         SOSG BUFI2      ;DECREMENT CHARACTER COUNT\r
35047         000064' 066140  000000          INPUT     3,                    ;FILL TTY BUFFER\r
35048         000065' 134400  001714'         ILDB    T,BUFI1         ;LOAD T WITH NEXT CHARACTER\r
35049         000066' 200640  000010  LD3AA:  MOVE    Q,T\r
35050         000067' 231640  000011          IDIVI     Q,11          ;TRANSLATE TO 4 BIT CODE\r
35051         000070' 135656  000465'         LDB     Q,LD8(A)                ;LOAD CLASSIFICATION CODE\r
35052         000071' 305640  000004          CAIGE     Q,4           ;MODIFY CODE IF .GE. 4\r
35053         000072' 607000  400000          TLNN    F,SSW           ;MODIFY CODE IF SWITCH MODE OFF\r
35054         000073' 271640  000004          ADDI    Q,4             ;MODIFY CLASS. CODE FOR DISPATCH\r
35055         000074' 550715  000100'         HRRZ    A,LD3A(Q)               ;LOAD RH DISPATCH ENTRY\r
35056         000075' 301640  000010          CAIL    Q,10            ;SKIP IF CORRECT DISPATCH ENTRY\r
35057         000076' 554715  000070'         HLRZ    A,LD3A-10(Q)    ;LOAD LH DISPATCH ENTRY\r
35058 \r\f1KLOAD - LOADS MACROX                 PAGE 6-1\r
35059         DICK GRUEN: V25 3 AUG 68\r
35060 \r
35061         000077' 254020  000016          JRST    @A                      ;JUMP TO INDICATED LOCATION\r
35062 \r
35063                                 ;COMMAND DISPATCH TABLE\r
35064 \r
35065         000100' 000063' 000446' LD3A:   XWD     LD3,LD7B                ;IGNORED CHAR, BAD CHAR (SWITCH)\r
35066         000101' 000365' 000372'         XWD     LD6A,LD6                ;</> OR <(>, LETTER (SWITCH)\r
35067         000102' 000115' 000430'         XWD     LD5,LD6C                ;<:>, DIGIT (SWITCH ARG.)\r
35068         000103' 000127' 000433'         XWD     LD5A,LD6D               ;<.>, ESCAPE SWITCH MODE <)>\r
35069         000104' 000145' 000437'         XWD     LD5C,LD7                ;<=> OR <L. ARROW>, BAD CHAR.\r
35070         000105' 000134' 000110'         XWD     LD5B,LD4                ;<,>, ALPHABETIC CHAR.\r
35071         000106' 000201' 000110'         XWD     LD5D,LD4                ;<CR.>, NUMERIC CHAR.\r
35072         000107' 000205' 000437'         XWD     LD5E1,LD7               ;<ALT MODE>, BAD CHAR. <)>\r
35073 \r
35074                                 IFN RPGSW,<RPGRD:       SOSG CTLIN+2    ;CHECK CHARACTER COUNT\r
35075                                         JRST    [IN 17,0\r
35076                                                 JRST .+1        ;OK\r
35077                                                 STATO 17,740000\r
35078                                                 JRST LD2\r
35079                                                 JSP A,ERRPT\r
35080                                                 SIXBIT /ERROR WHILE READING COMMAND FILE%/\r
35081                                                 JRST LD2]\r
35082                                         IBP CTLIN+1     ;ADVANCE POINTER\r
35083                                         MOVE T,@CTLIN+1 ;AND CHECK FOR LINE #\r
35084                                         TRNE T,1\r
35085                                         JRST    [MOVNI T,5\r
35086                                                 ADDM T,CTLIN+2\r
35087                                                 AOS CTLIN+1\r
35088                                                 JRST RPGRD      ];GO READ AGAIN\r
35089                                         LDB T,CTLIN+1   ;GET CHR\r
35090                                         JRST LD3AA      ;PASS IT ON>\r
35091 \r\f1KLOAD - LOADS MACROX                 PAGE 7\r
35092         DICK GRUEN: V25 3 AUG 68\r
35093 \r
35094                                 ;ALPHANUMERIC CHARACTER, NORMAL MODE\r
35095         000110' 361600  000063' LD4:    SOJL    E,LD3           ;JUMP IF NO SPACE FOR CHAR IN W\r
35096         000111' 275400  000040          SUBI    T,40            ;CONVERT FROM ASCII TO SIXBIT\r
35097         000112' 136400  000011          IDPB    T,V             ;DEPOSIT CHAR OF IDENTIFIER IN W\r
35098         000113' 661000  100000          TLO     F,DSW           ;SET IDENTIFIER FLAG\r
35099         000114' 254000  000063'         JRST    LD3             ;RETURN FOR NEXT CHARACTER\r
35100 \r
35101                                 ;DEVICE IDENTIFIER DELIMITER <:>\r
35102 \r
35103         000115' 261740  000012  LD5:    PUSH    P,W             ;SAVE W\r
35104         000116' 663000  000001          TLOE    F,CSW           ;TEST AND SET COLON FLAG\r
35105         000117' 260740  000656'         PUSHJ     P,LDF         ;FORCE LOADING\r
35106         000120' 262740  000012          POP     P,W             ;RESTORE W\r
35107         000121' 603000  000002          TLNE    F,ESW           ;TEST SYNTAX\r
35108         000122' 254000  000442'         JRST    LD7A            ;ERROR, MISSING COMMA ASSUMED\r
35109         000123' 322500  000057'         JUMPE     W,LD2D                ;JUMP IF NULL DEVICE IDENTIFIER\r
35110         000124' 202500  000522'         MOVEM     W,ILD1                ;STORE DEVICE IDENTIFIER\r
35111                                 IFN PP,<MOVEM W,OLDDEV  ;WE HAVE A NEW ONE SO IGNORE OLD>\r
35112         000125' 621000  122010          TLZ     F,ISW+DSW+FSW+REWSW     ;CLEAR OLD DEVICE FLAGS\r
35113                                 IFN PP,<SETZM   PPN             ;CLEAR OLD PP #>\r
35114         000126' 254000  000057'         JRST    LD2D            ;RETURN FOR NEXT IDENTIFIER\r
35115 \r
35116                                 ;FILE NAME EXTENSION IDENTIFIER DELIMITER <.>\r
35117 \r
35118         000127' 663000  000002  LD5A:   TLOE    F,ESW           ;TEST AND SET EXTENSION FLAG\r
35119         000130' 254000  000442'         JRST    LD7A            ;ERROR, TOO MANY PERIODS\r
35120         000131' 623000  100001          TLZE    F,CSW+DSW       ;SKIP IF NULL IDENT AND NO COLON\r
35121         000132' 202500  001724'         MOVEM     W,DTIN        ;STORE FILE IDENTIFIER\r
35122         000133' 254000  000057'         JRST    LD2D            ;RETURN FOR NEXT IDENTIFIER\r
35123 \r
35124                                 ;INPUT SPECIFICATION DELIMITER <,>\r
35125 \r
35126         000134'                 LD5B:\r
35127                                 IFN PP,<TLZE    N,PPCSW                 ;READING PP #?\r
35128                                         JRST    [\r
35129                                                 HRLM    D,PPN   ;STORE PROJ #\r
35130                                                 JRST    LD6A1]  ;GET PROG #\r
35131                                         PUSHJ   P,RBRA          ;CHECK FOR MISSING RBRA>\r
35132         000134' 627000  000010          TLZN    F,FSW           ;SKIP IF PREV. FORCED LOADING\r
35133         000135' 260740  000655'         PUSHJ     P,FSCN2               ;LOAD (FSW NOT SET)\r
35134         000136' 254000  000057'         JRST    LD2D            ;RETURN FOR NEXT IDENTIFIER\r
35135 \r
35136         000137' 603000  000002  LD5B1:  TLNE    F,ESW           ;TEST EXTENSION FLAG\r
35137         000140' 254000  000627'         JRST    LDDT3           ;EXPLICIT EXTENSION IDENTIFIER\r
35138         000141' 627000  100001          TLZN    F,CSW+DSW               ;SKIP IF IDENT. OR COLON\r
35139         000142' 263740  000000          POPJ    P,\r
35140         000143' 202500  001724'         MOVEM     W,DTIN                ;STORE FILE IDENTIFIER\r
35141         000144' 254000  000626'         JRST    LDDT2           ;ASSUME <.REL> IN DEFAULT CASE\r
35142 \r\f1KLOAD - LOADS MACROX                 PAGE 8\r
35143         DICK GRUEN: V25 3 AUG 68\r
35144 \r
35145                                 ;OUTPUT SPECIFICATION DELIMITER <=> OR <LEFT ARROW>\r
35146                                 ;OR PROJ-PROG # BRACKETS <[> AND <]>\r
35147         000145'                 LD5C:\r
35148                                 IFN RPGSW,<CAIN T,"@"   ;CHECK  FOR * COMMAND\r
35149                                         JRST RPGS1>\r
35150                                 IFN PP,<CAIN    T,"["                   ;PROJ-PROG #?\r
35151                                         JRST    [TLO    N,PPSW+PPCSW    ;SET FLAGS\r
35152                                                 MOVEM   W,PPNW#         ;SAVE W\r
35153                                                 MOVEM   E,PPNE#         ;SAVE E\r
35154                                                 MOVEM   V,PPNV#         ;SAVE V\r
35155                                                 JRST LD6A1-1]   ;READ NUMBERS AS SWITCHES \r
35156                                         CAIN    T,"]"                   ;END OF PP #?\r
35157                                         JRST    [PUSHJ  P,RBRA          ;PROCESS RIGHT BRACKET\r
35158                                                 JRST    LD3             ];READ NEXT IDENT>\r
35159         000145' 663000  000100          TLOE    F,ASW                   ;TEST AND SET LEFT ARROW FLAG\r
35160         000146' 254000  000442'         JRST    LD7A                    ;ERROR, MISPLACED LEFT ARROW\r
35161         000147' 260740  000137'         PUSHJ     P,LD5B1               ;STORE IDENTIFIER\r
35162         000150' 627000  000002          TLZN    F,ESW                   ;TEST EXTENSION FLAG\r
35163         000151' 205500  554160          MOVSI     W,554160              ;ASSUME <.MAP> IN DEFAULT CASE\r
35164         000152' 202500  001731'         MOVEM     W,DTOUT1              ;STORE FILE EXTENSION IDENTIFIER\r
35165         000153' 200500  001724'         MOVE    W,DTIN                  ;LOAD INPUT FILE IDENTIFIER\r
35166         000154' 202500  001730'         MOVEM     W,DTOUT               ;USE AS OUTPUT FILE IDENTIFIER\r
35167                                 IFN PP,<MOVE    W,PPN           ;PROJ-PROG #\r
35168                                         MOVEM   W,DTOUT+3               ;...>\r
35169         000155' 200500  000522'         MOVE    W,ILD1                  ;LOAD INPUT DEVICE IDENTIFIER\r
35170         000156' 202500  000165'         MOVEM   W,LD5C1                 ;USE AS OUTPUT DEVICE IDENTIFIER\r
35171                                 IFN PP,<        SKIPE W,OLDDEV  ;RESTORE OLD\r
35172                                         MOVEM W,ILD1>\r
35173                                 ;INITIALIZE AUXILIARY OUTPUT DEVICE\r
35174         000157' 623040  060000          TLZE    N,AUXSWI+AUXSWE         ;FLUSH CURRENT DEVICE\r
35175         000160' 071100  000000          RELEASE 2,                      ;...\r
35176         000161' 040500  002420'         CALL    W,[SIXBIT ?DEVCHR?]     ;IS DEVICE A TTY?\r
35177         000162' 603500  000010          TLNE    W,10                    ;...\r
35178         000163' 254000  000057' JRST    LD2D            ;YES, SKIP INIT\r
35179         000164' 041100  000001          INIT    2,1                     ;INIT THE AUXILIARY DEVICE\r
35180         000165' 000000  000000  LD5C1:  0               ;AUXILIARY OUTPUT DEVICE NAME\r
35181         000166' 001716' 000000          XWD     ABUF,0                  ;BUFFER HEADER\r
35182         000167' 265700  000547'         JSP     A,ILD5                  ;ERROR RETURN\r
35183         000170' 603000  002000          TLNE    F,REWSW                 ;REWIND REQUESTED?\r
35184         000171' 040100  002421'         CALL    2,[SIXBIT /UTPCLR/]             ;DECTAPE REWIND\r
35185         000172' 623000  002000          TLZE    F,REWSW                 ;SKIP IF NO REWIND REQUESTED\r
35186         000173' 072100  000001          MTAPE   2,1                     ;REWIND THE AUX DEV\r
35187         000174' 201600  002211'         MOVEI   E,AUX                   ;SET BUFFER ORIGIN\r
35188         000175' 202600  000011*         MOVEM     E,JOBFF\r
35189         000176' 065100  000001          OUTBUF  2,1                     ;INITIALIZE SINGLE BUFFER\r
35190         000177' 661040  020000          TLO     N,AUXSWI                        ;SET INITIALIZED FLAG\r
35191         000200' 254000  000057'         JRST    LD2D                    ;RETURN TO CONTINUE SCAN\r
35192 \r
35193 \r\f1KLOAD - LOADS MACROX                 PAGE 9\r
35194         DICK GRUEN: V25 3 AUG 68\r
35195 \r
35196 \r
35197                                 ;RIGHT SQUARE BRACKET (PROJ-PROG NUMBERS)\r
35198                                 IFN PP,<\r
35199                                 RBRA:   TLZN    N,PPSW          ;READING PP #?\r
35200                                         POPJ    P,              ;NOPE, RETURN\r
35201                                         TLZE    N,PPCSW         ;COMMA SEEN?\r
35202                                         JRST    LD7A            ;NOPE, INDICATE ERROR\r
35203                                         HRRM    D,PPN           ;STASH PROG NUMBER\r
35204                                         MOVE    W,PPNW#         ;PICKUP OLD IDENT\r
35205                                         MOVE    E,PPNE#         ;RESTORE CHAR COUNT\r
35206                                         MOVE    V,PPNV#         ;RESTORE BYTE PNTR\r
35207                                         POPJ    P,              ;TRA 1,4\r
35208                                 \r
35209                                 ;RIGHT JUSTIFY W\r
35210                                 \r
35211                                 RJUST:  JUMPE   W,LD7A          ;NOTHING TO RIGHT JUSTIFY\r
35212                                         TRNE    W,77            ;IS W RJUSTED YET?\r
35213                                         POPJ    P,              ;YES, TRA 1,4\r
35214                                         LSH     W,-6            ;NOPE, TRY AGAIN\r
35215                                         JRST    .-3             ;...>\r
35216 \r\f1KLOAD - LOADS MACROX                 PAGE 10\r
35217         DICK GRUEN: V25 3 AUG 68\r
35218 \r
35219 \r
35220                                 ;LINE TERMINATION <CARRIAGE RETURN>\r
35221 \r
35222         000201'                 LD5D:\r
35223                                 IFN PP,<PUSHJ   P,RBRA          ;CHECK FOR UNTERMINATED PP #>\r
35224         000201' 260740  000634'         PUSHJ     P,FSCN                ;FORCE SCAN TO COMPLETION\r
35225         000202' 254000  000050'         JRST    LD2B            ;RETURN FOR NEXT LINE\r
35226 \r
35227                                 ;TERMINATE LOADING <ALT MODE>\r
35228 \r
35229         000203' 332000  000007  LD5E:   SKIPE     D                     ;ENTER FROM G COMMAND\r
35230         000204' 540000  000007          HRR     F,D             ;USE NUMERIC STARTING ADDRESS\r
35231         000205'                 LD5E1:\r
35232         000205' 260740  001600'         PUSHJ     P,CRLF                ;START A NEW LINE\r
35233         000206' 260740  000227'         PUSHJ   P,SASYM         ;SETUP JOBSA,JOBFF,JOBSYM,JOBUSY\r
35234                                 IFN LDAC!BLTSYM,<HRRZ A,R               ;SET UP BLT OF ACS\r
35235                                         ADDI A,(X)              ;END\r
35236                                         ADD A,KORSP             ;ADD IN SPACE RESERVED\r
35237                                         CAIL A,(S)\r
35238                                 IFN EXPAND,<JRST        [PUSHJ P,XPAND>\r
35239                                                         PUSHJ   P,[\r
35240                                 IFE EXPAND,<                    JSP     A,ERRPT\r
35241                                                                 SIXBIT  /MORE CORE NEEDED#/>\r
35242                                                                 CALLI   CEXIT]\r
35243                                 IFN EXPAND,<            JRST .-1]>\r
35244                                         HRRM R,BOTACS#          ;SAVE FOR LATER\r
35245                                         HRRZ A,R                ;SET BLT\r
35246                                         ADD A,X\r
35247                                         HRL A,X\r
35248                                         MOVE Q,A\r
35249                                         BLT A,17(Q)>\r
35250                                 IFN BLTSYM,<HRRZ A,R    ;PLACE TO BLT TO\r
35251                                         ADD A,KORSP\r
35252                                         MOVE W,A        ;SAVE DEST\r
35253                                         ADDI A,(X)      ;AFTER ADJUSTMENT\r
35254                                         MOVE Q,S        ;UDEF PNTR\r
35255                                         ADD Q,B         ;TOTAL UNDEFS AND DEFS IN LEFT\r
35256                                         HLROS Q         ;NOW NEG IN RIGHT\r
35257                                         MOVNS Q ;POSITIVE\r
35258                                         ADDI Q,-1(A)    ;END OF BLT\r
35259                                         HRLI A,1(S)     ;AND GET PLACE TO BLT FROM\r
35260                                         SUBI W,1(S)     ;PREST LOC OF SYMBOL TABLE\r
35261                                         ADDM W,JOBSYM(X)\r
35262                                         ADDM W,JOBUSY(X)        ;ADJUST POINTERS\r
35263                                         BLT A,(Q)       ;MOVE IT\r
35264                                         SKIPN JOBDDT(X) ;IS DDT THERE?\r
35265                                         JRST NODDT\r
35266                                         SUBI Q,-1(X)\r
35267                                         HRRM Q,JOBFF(X) ;RESTET JOBFF IF DDT IS IN\r
35268                                         HRLM Q,JOBSA(X)\r
35269                                 NODDT:>\r
35270         000207' 200500  002422'         MOVE    W,[SIXBIT ?LOADER?]     ;FINAL MESSAGE\r
35271         000210' 260740  000251'         PUSHJ P,BLTSET          ;SETUP FOR FINAL BLT\r
35272 \r\f1KLOAD - LOADS MACROX                 PAGE 10-1\r
35273         DICK GRUEN: V25 3 AUG 68\r
35274 \r
35275         000211' 071100  000000          RELEASE 2,              ;RELEASE AUX. DEV.\r
35276                                 IFN RPGSW,<RELEASE 17,0 ;RELEASE COMMAND DEVICE>\r
35277         000212' 200500  002423' LD5E5:  MOVE    W,[BLT Q,(A)]   ;BLT OF ALL CODE\r
35278         000213' 202500  000134          MOVEM   W,JOBBLT        ;STASH IN JOB DATA AREA\r
35279         000214' 202502  000134          MOVEM   W,JOBBLT(X)     ;STASH IN RELOCATED JOBDATA AREA\r
35280         000215' 200500  000007' LD5E2:  MOVE    W,CALLEX        ;EXIT AFTER BLT\r
35281         000216' 627040  002000          TLZN    N,EXEQSW        ;IMMEDIATE EXECUTION REQUESTED?\r
35282         000217' 254000  000225'         JRST    LD5E3           ;NOPE, LET USER TYPE START HIMSELF\r
35283         000220' 550502  000000*         HRRZ    W,JOBSA(X)      ;PICKUP USUAL STARTING ADDRESS\r
35284         000221' 603040  004000          TLNE    N,DDSW          ;DDT EXECUTION?\r
35285         000222' 550502  000016*         HRRZ    W,JOBDDT(X)     ;USE DDT SA INSTEAD\r
35286         000223' 322500  000215'         JUMPE   W,LD5E2         ;IF SA=0, DON'T EXECUTE\r
35287         000224' 505500  254000          HRLI    W,(JRST)        ;INSTRUCTION TO EXECUTE\r
35288         000225'                 LD5E3:\r
35289         000225' 202502  000135  IFE LDAC,<MOVEM W,JOBBLT+1(X)   ;STASH FOR EXECUTION>\r
35290                                 IFN LDAC,<MOVEM W,JOBBLT+2(X)   ;STASH FOR EXECUTION\r
35291                                         HRLZ    17,JOBFF(X)     ;BUT FIRST BLT ACS\r
35292                                         MOVE    W,[BLT 17,17]   ;...\r
35293                                         MOVEM   W,JOBBLT+1(X)   ;...>\r
35294         000226' 254000  000134          JRST    JOBBLT          ;IF IT WERE DONE, 'TWERE BEST DONE QUICKLY\r
35295 \r
35296 \r
35297 \r\f1KLOAD - LOADS MACROX                 PAGE 11\r
35298         DICK GRUEN: V25 3 AUG 68\r
35299 \r
35300 \r
35301                                 ;SEARCH LIBRARY, PRINT UNDEFS, SETUP JOBSA,JOBFF,JOBSYM,JOBUSY\r
35302 \r
35303         000227' 607000  200000  SASYM:  TLNN    F,NSW           ;SKIP IF NO SEARCH FLAG ON\r
35304         000230' 260740  000557'         PUSHJ   P,LIBF          ;SEARCH LIBRARY FILE\r
35305         000231' 260740  000634'         PUSHJ   P,FSCN          ;FORCE SCAN TO COMPLETION\r
35306         000232' 260740  001332'         PUSHJ   P,PMS           ;PRINT UNDEFINEDS\r
35307         000233' 552002  000220*         HRRZM   F,JOBSA(X)      ;RH OF JOBSA :=STARTING ADDRESS\r
35308         000234' 550700  000003  SAS1:   HRRZ    A,H             ;COMPUTE PROG BREAK\r
35309         000235' 275702  000000          SUBI    A,(X)           ;...\r
35310         000236' 305705  000000          CAIGE   A,(R)           ;BUT NO HIGHER THAN RELOC\r
35311         000237' 550700  000005          HRRZ    A,R             ;...\r
35312         000240' 506702  000233*         HRLM    A,JOBSA(X)      ;LH OR JOBSA IS PROG BREAK\r
35313         000241' 552702  000175*         HRRZM   A,JOBFF(X)      ;RH OF JOBFF CONTAINS PROG BREAK\r
35314         000242' 200700  000006          MOVE    A,B             ;SET JOBSYM W/ SYMBOL TABLE POINTER\r
35315         000243' 350000  000016          AOS     A               ;...\r
35316         000244' 202702  000017*         MOVEM   A,JOBSYM(X)     ;...\r
35317         000245' 200700  000004          MOVE    A,S             ;SET JOBUSY W/ UNDEFINED SYMBOL POINTER\r
35318         000246' 350000  000016          AOS     A               ;...\r
35319         000247' 202702  000000*         MOVEM   A,JOBUSY(X)     ;...\r
35320         000250' 263740  000000          POPJ    P,              ;RETURN\r
35321                                 ;PRINT FINAL MESSAGE, SET UP BLT AC'S, SETDDT, RELEAS\r
35322 \r
35323         000251' 260740  001577' BLTSET: PUSHJ   P,FCRLF         ;START FINAL MESSAGE\r
35324         000252' 260740  001454'         PUSHJ   P,PWORD         ;PRINT W\r
35325         000253' 260740  001431'         PUSHJ   P,SPACE\r
35326         000254' 550640  000015*         HRRZ    Q,JOBREL        ;PUBLISH HOW MUCH CORE USED\r
35327         000255' 242640  777766          LSH     Q,-12           ;...\r
35328         000256' 271640  000001          ADDI    Q,1             ;...\r
35329         000257' 260740  001420'         PUSHJ   P,RCNUM         ;PUBLISH THE NUMBER\r
35330         000260' 200500  002424'         MOVE    W,[SIXBIT /K CORE/]     ;PUBLISH THE UNITS\r
35331         000261' 260740  001454'         PUSHJ   P,PWORD         ;...\r
35332         000262' 260740  001600'         PUSHJ   P,CRLF          ;...\r
35333         000263' 205642  000020          MOVSI   Q,20(X)         ;HOW MUCH CODE TO BLT\r
35334         000264' 541640  000020          HRRI    Q,20            ;...\r
35335         000265' 550700  000042          HRRZ A,42               ;CHECK ON ERRORS\r
35336         000266' 322700  000275'         JUMPE A,NOEX            ;NONE, GO AHEAD\r
35337         000267' 627040  002000          TLZN N,EXEQSW           ;DID HE WANT TO START EXECUTION?\r
35338         000270' 254000  000275'         JRST NOEX               ;NO\r
35339         000271' 265700  001462'         JSP A ,ERRPT            ;PRINT AN ERROR MESSAGE\r
35340         000272' 457045  436564          SIXBIT /EXECUTION DELETED@/\r
35341         000273' 515756  004445\r
35342         000274' 544564  454440\r
35343         000275' 550700  000254* NOEX:   HRRZ    A,JOBREL        ;WHEN TO STOP BLT\r
35344         000276' 552702  000275*         HRRZM   A,JOBREL(X)     ;SETUP FOR POSSIBLE IMMED. XEQ\r
35345         000277' 275702  000000          SUBI    A,(X)           ;...\r
35346         000300' 301704  000000  IFE BLTSYM,<CAIL        A,(S)           ;DON'T BLT OVER SYMBOL TABLE\r
35347         000301' 201704  000000          MOVEI   A,(S)           ;OR UNDEFINED TABLE>\r
35348         000302' 071040  000000          RELEAS  1,              ;RELEASE DEVICES\r
35349         000303' 071140  000000          RELEAS  3,              ;...\r
35350         000304' 200242  000222*         MOVE    R,JOBDDT(X)     ;SET NEW DDT\r
35351         000305' 047240  000002          CALLI   R,CSETDDT       ;...\r
35352         000306' 263740  000000          POPJ    P,              ;RETURN\r
35353 \r\f1KLOAD - LOADS MACROX                 PAGE 11-1\r
35354         DICK GRUEN: V25 3 AUG 68\r
35355 \r
35356 \r
35357 \r\f1KLOAD - LOADS MACROX                 PAGE 12\r
35358         DICK GRUEN: V25 3 AUG 68\r
35359 \r
35360 \r
35361                                 ;WRITE CHAIN FILES\r
35362 \r
35363         000307' 334702  000131  CHNC:   SKIPA   A,JOBCHN(X)     ;CHAIN FROM BREAK OF FIRST BLOCK DATA\r
35364         000310' 544702  000131  CHNR:   HLR     A,JOBCHN(X)     ;CHAIN FROM BREAK OF FIRST F4 PROG\r
35365         000311' 553000  000016          HRRZS   A               ;ONLY RIGHT HALF IS SIGNIFICANT\r
35366         000312' 322700  000452'         JUMPE   A,LD7C          ;DON'T CHAIN IF ZERO\r
35367         000313' 607040  020000          TLNN    N,AUXSWI        ;IS THERE AN AUX DEV?\r
35368         000314' 254000  000460'         JRST    LD7D            ;NO, DON'T CHAIN\r
35369         000315' 261740  000016          PUSH    P,A             ;SAVE WHEREFROM TO CHAIN\r
35370         000316' 332000  000007          SKIPE   D               ;STARTING ADDR SPECIFIED?\r
35371         000317' 540000  000007          HRR     F,D             ;USE IT\r
35372         000320' 260740  000227'         PUSHJ   P,SASYM         ;DO LIB SEARCH, SETUP JOBSA, ETC.\r
35373         000321' 262740  000016          POP     P,A             ;GET WHEREFROM\r
35374         000322' 210500  000276*         MOVN    W,JOBREL        ;CALCULATE IOWD FOR DUMP\r
35375         000323' 271516  777773          ADDI    W,-1-3-CHN5(A)  ;...\r
35376         000324' 505516  777773          HRLI    W,-4-CHN5(A)    ;...\r
35377         000325' 206500  000363'         MOVSM   W,IOWDPP        ;...\r
35378         000326' 271702  777773          ADDI    A,-4-CHN5(X)    ;ADD IN OFFSET\r
35379         000327' 261702  000244* IFN CHN5,<PUSH  A,JOBSYM(X)     ;SETUP FOUR WORD TABLE\r
35380         000330' 261702  000041*         PUSH    A,JOB41(X)      ;...>\r
35381         000331' 261702  000304*         PUSH    A,JOBDDT(X)     ;JOBDDT IN ALL CASES\r
35382                                 IFE CHN5,<PUSH  A,JOBSYM(X)     ;JOBDDT, JOBSYM, JOBSA>\r
35383         000332' 261702  000240*         PUSH    A,JOBSA(X)      ;JOBRYM ALWAYS LAST\r
35384         000333' 070100  000000          CLOSE   2,              ;INSURE END OF MAP FILE\r
35385         000334' 060100  000017          SETSTS  2,17            ;SET AUX DEV TO DUMP MODE\r
35386         000335' 205500  435056          MOVSI   W,435056        ;USE .CHN AS EXTENSION\r
35387         000336' 202500  001731'         MOVEM   W,DTOUT1        ;...\r
35388         000337' 260740  001375'         PUSHJ   P,IAD2          ;DO THE ENTER\r
35389         000340' 621040  060000          TLZ     N,AUXSWI+AUXSWE ;INSURE NO PRINTED OUTPUT\r
35390         000341' 200500  002425'         MOVE    W,[SIXBIT ?CHAIN?]      ;FINAL MESSAGE\r
35391         000342' 260740  000251'         PUSHJ   P,BLTSET                ;SETUP BLT PNTR, SETDDT, RELEAS\r
35392         000343' 047000  000005          CALLI   CDDTGT          ;START DDT MODE OUTPUT\r
35393         000344' 205600  000350'         MOVSI   CHNBLT,CHAIN3   ;BLT CHAIN3 INTO ACS\r
35394         000345' 251600  000014          BLT     CHNBLT,CHNBLT   ;...\r
35395         000346' 201740  000010          MOVEI   P,CHNERR        ;POINTER TO ERR MESS\r
35396         000347' 254000  000000          JRST    0               ;GO DO CHAIN\r
35397 \r
35398 \r\f1KLOAD - LOADS MACROX                 PAGE 13\r
35399         DICK GRUEN: V25 3 AUG 68\r
35400 \r
35401 \r
35402                                 ;THE AC SECTION OF CHAIN\r
35403 \r
35404         000350'                 CHAIN3:\r
35405         000000                          PHASE   0\r
35406         000350' 251656  000000          BLT     Q,(A)           ;USUAL LDRBLT\r
35407         000351' 067100  000013          OUTPUT  2,IOWDP         ;WRITE THE CHAIN FILE\r
35408         000352' 063100  760000          STATZ   2,IOBAD!IODEND  ;CHECK FOR ERROR OR EOF\r
35409         000353' 254000  000006          JRST    LOSEBIG         ;FOUND SAME, GO GRIPE\r
35410         000354' 070100  000000          CLOSE   2,              ;FINISH OUTPUT\r
35411         000355' 063100  760000          STATZ   2,IOBAD!IODEND  ;CHECK FOR FINAL ERROR\r
35412         000356' 047000  000003  LOSEBI: CALLI   CDDTOUT         ;GRIPE ABOUT ERROR\r
35413         000357' 047000  000012          CALLI   CEXIT           ;EXIT\r
35414         000360' 422132  644606  CHNERR: ASCIZ   ?DEVICE ERROR?  ;ERROR MESSAGE\r
35415         000361' 425010  551244\r
35416         000362' 476440  000000\r
35417         000363' 000000  000000  IOWDP:  Z                       ;STORE IOWD FOR DUMP HERE\r
35418         000014                  CHNBLT:                         ;LAST WORD OF AC CHAIN (ZERO OF I/O POINTER)\r
35419         000364'                         DEPHASE\r
35420                         000363' IOWDPP=.-1                      ;MEMORY LOC OF AC IOWDP\r
35421         000364' 000000  000000          Z                       ;TERMINATOR OF DUMP MODE LIST\r
35422 \r
35423 \r\f1KLOAD - LOADS MACROX                 PAGE 14\r
35424         DICK GRUEN: V25 3 AUG 68\r
35425 \r
35426                                 ;EXPAND CORE\r
35427 \r
35428                                 IFN EXPAND,<\r
35429                                 XPAND:  PUSH P,H        ;GET SOME REGISTERS TO USE\r
35430                                         PUSH P,X\r
35431                                         PUSH P,N\r
35432                                         HRRZ X,JOBREL   ;WHAT WE WANT\r
35433                                         ADDI X,2000\r
35434                                         CALLI X,11       ;CORE ALLOCATOR CALLS THIS\r
35435                                         JRST XPAND6\r
35436                                 IFE K,<         HRRZ H,MLTP     ;GET LOWEST LOCATION\r
35437                                         TLNN N,F4SW     ;IS FORTRAN LOADING>\r
35438                                         HRRZ H,S        ;NO, USE S\r
35439                                         HRRZ X,JOBREL   ;NOW MOVE\r
35440                                         SUBI X,2000\r
35441                                 XPAND2: MOVE N,(X)\r
35442                                         MOVEM N,2000(X)\r
35443                                         CAMLE X,H       ;TEST FOR END\r
35444                                         SOJA X,XPAND2;          HAND EYE SYSTEM MOVES TABLE\r
35445                                         HRLI H,-2000\r
35446                                         SETZM (H)       ;ZERO NEW CORE\r
35447                                         AOBJN H,.-1\r
35448                                         MOVEI H,2000\r
35449                                         ADDM H,S\r
35450                                         ADDM H,B\r
35451                                         ADDM H,JOBSYM\r
35452                                         POP P,N\r
35453                                         ADDI N,2000\r
35454                                 IFE K,< TLNN N,F4SW     ;F4?\r
35455                                         JRST    XPAND3\r
35456                                         ADDM H,PLTP\r
35457                                         ADDM H,BITP\r
35458                                         ADDM H,SDSTP\r
35459                                         ADDM H,MLTP\r
35460                                         TLNE N,SYDAT\r
35461                                         ADDM H,V>\r
35462                                 XPAND3:\r
35463                                         POP P,X\r
35464                                         POP P,H\r
35465                                         AOS (P)\r
35466                                         POPJ P,\r
35467                                 XPAND6: JUMPE X,XPAND4\r
35468                                         JSP A,ERRPT\r
35469                                         SIXBIT /CORE AVAILABLE, BUT NOT TO YOU#/\r
35470                                 XPAND4: JSP A,ERRPT\r
35471                                         SIXBIT /MORE CORE NEEDED#/\r
35472                                 XPAND5: POP P,N\r
35473                                         POP P,X\r
35474                                         POP P,H\r
35475                                         POPJ P,\r
35476                                 \r
35477                                 XPAND7: PUSHJ   P,XPAND\r
35478                                         JRST    SFULLC\r
35479 \r\f1KLOAD - LOADS MACROX                 PAGE 14-1\r
35480         DICK GRUEN: V25 3 AUG 68\r
35481 \r
35482                                         JRST    POPJM2\r
35483                                 \r
35484                                 POPJM3: SOS     (P)             ;POPJ TO CALL-2\r
35485                                 POPJM2: SOS     (P)             ;POPJ TO CALL-1\r
35486                                         SOS     (P)             ;SAME AS POPJ TO\r
35487                                         POPJ    P,              ;NORMAL POPJ MINUS TWO\r
35488                                         >\r
35489 \r\f1KLOAD - LOADS MACROX                 PAGE 15\r
35490         DICK GRUEN: V25 3 AUG 68\r
35491 \r
35492 \r
35493 \r
35494                                 ;ENTER SWITCH MODE\r
35495 \r
35496         000365' 306400  000057  LD6A:   CAIN    T,57            ;WAS CHAR A SLASH?\r
35497         000366' 661040  000100          TLO     N,SLASH         ;REMEBER THAT\r
35498         000367' 661000  400000          TLO     F,SSW           ;ENTER SWITCH MODE\r
35499         000370' 201340  000000  LD6A1:  MOVEI   D,0             ;ZERO THE NUBER REGISTER\r
35500         000371' 254000  000063'         JRST    LD3             ;EAT A SWITCH\r
35501 \r
35502                                 ;ALPHABETIC CHARACTER, SWITCH MODE\r
35503 \r
35504         000372' 256010  000275' LD6:    XCT     LD6B-101(T)     ;EXECUTE SWITCH FUNCTION\r
35505         000373' 623040  000100          TLZE    N,SLASH ;SWITCH MODE ENTERED W/ SLASH?\r
35506         000374' 254000  000433'         JRST    LD6D            ;LEAVE SWITCH MODE\r
35507         000375' 254000  000370'         JRST    LD6A1           ;STAY IN SWITCH MODE\r
35508 \r
35509                                 ;DISPATCH TABLE FOR SWITCHES\r
35510 \r
35511                                 ;       THE INSTRUCTION AT THE CHARACTER LOCATION IS EXECUTED\r
35512 \r
35513         000376' 661040  000001  LD6B:   TLO     N,ALLFLG        ;A - LIST ALL GLOBALS\r
35514         000377' 254000  000446'         JRST    LD7B            ;B - ERROR\r
35515         000400' 260740  000307'         PUSHJ   P,CHNC          ;C - CHAIN, START W/ COMMON\r
35516         000401' 260740  000614'         PUSHJ     P,LDDT        ;D - DEBUG OPTION, LOAD DDT\r
35517         000402' 661040  002000          TLO     N,EXEQSW        ;E - LOAD AND GO\r
35518         000403' 260740  000557'         PUSHJ     P,LIBF        ;F - LIBRARY SEARCH\r
35519         000404' 260740  000203'         PUSHJ     P,LD5E        ;G - GO INTO EXECUTION\r
35520         000405' 260740  000607'         PUSHJ P,LRAIDX          ;H - LOAD AN START RAID\r
35521         000406' 661040  000002          TLO     N,ISAFLG        ;I - IGNORE STARTING ADDRESSES\r
35522         000407' 621040  000002          TLZ     N,ISAFLG        ;J - USE STARTING ADDRESSES\r
35523         000410' 254000  000446' IFE BLTSYM,<JRST        LD7B            ;K - ERROR>\r
35524                                 IFN BLTSYM,<PUSHJ P,KORADJ      ;K - RESERVE SPACE FOR SYM DEFS>\r
35525         000411' 661000  004004          TLO     F,LIBSW+SKIPSW  ;L - ENTER LIBRARY SEARCH\r
35526         000412' 260740  001261'         PUSHJ     P,PRMAP       ;M - PRINT STORAGE MAP\r
35527         000413' 621000  004004          TLZ     F,LIBSW+SKIPSW  ;N - LEAVE LIBRARY SEARCH\r
35528         000414' 540240  000007          HRR     R,D             ;O - NEW PROGRAM ORIGIN\r
35529         000415' 661000  200000          TLO     F,NSW           ;P - PREVENT AUTO. LIB. SEARCH\r
35530         000416' 621000  200000          TLZ     F,NSW           ;Q - ALLOW AUTO. LIB. SEARCH\r
35531         000417' 260740  000310'         PUSHJ   P,CHNR          ;R - CHAIN, START W/ RESIDENT\r
35532         000420' 661000  040000          TLO     F,SYMSW         ;S - LOAD WITH SYMBOLS\r
35533         000421' 260740  000613'         PUSHJ   P,LDDTX         ;T - LOAD AND GO TO DDT\r
35534         000422' 260740  001332'         PUSHJ     P,PMS         ;U - PRINT UNDEFINED LIST\r
35535         000423' 260740  000610'         PUSHJ P,LRAID           ;V - LOAD RAID\r
35536         000424' 621000  041000          TLZ     F,SYMSW+DSYMSW  ;W - LOAD WITHOUT SYMBOLS\r
35537         000425' 621040  000001          TLZ     N,ALLFLG        ;X - DO NOT LIST ALL GLOBALS\r
35538         000426' 661000  002000          TLO     F,REWSW         ;Y - REWIND BEFORE USE\r
35539         000427' 254000  000000'         JRST    LD              ;Z - RESTART LOADER\r
35540 \r
35541 \r\f1KLOAD - LOADS MACROX                 PAGE 16\r
35542         DICK GRUEN: V25 3 AUG 68\r
35543 \r
35544 \r
35545                                 ;SWITCH MODE NUMERIC ARGUMENT\r
35546 \r
35547         000430' 242340  000003  LD6C:   LSH     D,3             ;BUILD OCTAL NUMERIC ARGUMENT\r
35548         000431' 271350  777720          ADDI    D,-60(T)\r
35549         000432' 254000  000063'         JRST    LD3\r
35550 \r
35551                                 ;EXIT FROM SWITCH MODE\r
35552 \r
35553         000433' 621000  400000  LD6D:   TLZ     F,SSW           ;CLEAR SWITCH MODE FLAG\r
35554         000434' 603000  000010          TLNE    F,FSW           ;TEST FORCED SCAN FLAG\r
35555         000435' 254000  000057'         JRST    LD2D            ;SCAN FORCED, START NEW IDENT.\r
35556         000436' 254000  000063'         JRST    LD3             ;SCAN NOT FORCED, USE PREV IDENT\r
35557                                 ;ILLEGAL CHARACTER, NORMAL MODE\r
35558 \r
35559         000437' 265700  001526' LD7:    JSP     A,ERRPT8\r
35560         000440' 435041  621605          SIXBIT    /CHAR.%/\r
35561         000441' 254000  000042'         JRST    LD2\r
35562 \r
35563                                 ;SYNTAX ERROR, NORMAL MODE\r
35564 \r
35565         000442' 265700  001526' LD7A:   JSP     A,ERRPT8\r
35566         000443' 637156  644170          SIXBIT    /SYNTAX%/\r
35567         000444' 050000  000000\r
35568         000445' 254000  000042'         JRST    LD2\r
35569 \r
35570                                 ;ILLEGAL CHARACTER, SWITCH MODE\r
35571 \r
35572         000446' 265700  001526' LD7B:   JSP     A,ERRPT8\r
35573         000447' 636751  644350          SIXBIT    /SWITCH%/\r
35574         000450' 050000  000000\r
35575         000451' 254000  000042'         JRST    LD2\r
35576 \r
35577                                 ;ATTEMPT TO CHAIN WITH SPECIFIED HALF OF JOBCHN = 0\r
35578 \r
35579         000452' 265700  001462' LD7C:   JSP     A,ERRPT         ;GRIPE\r
35580         000453' 655643  504151          SIXBIT  ?UNCHAINABLE AS LOADED@?\r
35581         000454' 564142  544500\r
35582         000455' 416300  545741\r
35583         000456' 444544  400000\r
35584         000457' 254000  000042'         JRST    LD2\r
35585 \r
35586                                 ;ATTEMP TO CHAIN WITHOUT SPECIFYING DEVICE\r
35587 \r
35588         000460' 265700  001462' LD7D:   JSP     A,ERRPT         ;GRIPE\r
35589         000461' 565700  435041          SIXBIT  ?NO CHAIN DEVICE@?\r
35590         000462' 515600  444566\r
35591         000463' 514345  400000\r
35592         000464' 254000  000042'         JRST    LD2\r
35593 \r
35594                                 IFN BLTSYM,<KORADJ:     CAMLE D,KORSP   ;IF SMALLER IGNORE\r
35595                                         MOVEM D,KORSP\r
35596                                         POPJ P,>\r
35597 \r\f1KLOAD - LOADS MACROX                 PAGE 17\r
35598         DICK GRUEN: V25 3 AUG 68\r
35599 \r
35600 \r
35601                                 ;CHARACTER CLASSIFICATION TABLE DESCRIPTION:\r
35602 \r
35603                                 ;       EACH CHARACTER HAS ASSOCIATED WITH IT A FOUR BIT BYTE\r
35604                                 ;       PACKED IN THE CHARACTER CLASSIFICATION TABLE.  THE CHARACTER\r
35605                                 ;       CLASSIFICATION CODES ARE ORDERED IN SUCH A WAY AS TO GIVE\r
35606                                 ;       DELIMITERS OF HIGHER PRECEDENCE LOWER CLASSIFICATION NUMBERS.\r
35607                                 ;       CERTAIN CHARACTERS HAVE NO EFFECT ON THE COMMAND STRING, AND\r
35608                                 ;       THEREFORE DO NOT EFFECT ORDERING OF DELIMITERS.  FOUR CODES\r
35609                                 ;       ARE RESERVED FOR ALTERNATE DISPATCHES WHILE THE SWITCH MODE IS\r
35610                                 ;       IN EFFECT.\r
35611 \r
35612 \r
35613                                 ;CLASSIFICATION BYTE CODES:\r
35614 \r
35615                                 ;       BYTE DISP CLASSIFICATION\r
35616 \r
35617                                 ;       00 - 00  ILLEGAL CHARACTER, SWITCH MODE\r
35618                                 ;       01 - 01  ALPHABETIC CHARACTER, SWITCH MODE\r
35619                                 ;       02 - 02  NUMERIC CHARACTER, SWITCH MODE\r
35620                                 ;       03 - 03  SWITCH MODE ESCAPE, SWITCH MODE\r
35621 \r
35622                                 ;       00 - 04  ILLEGAL CHARACTER, NORMAL MODE\r
35623                                 ;       01 - 05  ALPHABETIC CHARACTER, NORMAL MODE\r
35624                                 ;       02 - 06  NUMERIC CHARACTER, NORMAL MODE\r
35625                                 ;       03 - 07  SWITCH MODE ESCAPE, NORMAL MODE\r
35626 \r
35627                                 ;       04 - 10  IGNORED CHARACTER\r
35628                                 ;       05 - 11  ENTER SWITCH MODE CHARACTER\r
35629                                 ;       06 - 12  DEVICE IDENTIFIER DELIMITER\r
35630                                 ;       07 - 13  FILE EXTENSION DELIMITER\r
35631                                 ;       10 - 14  OUTPUT SPECIFICATION DELIMITER\r
35632                                 ;       11 - 15  INPUT SPECIFICATION DELIMITER\r
35633                                 ;       12 - 16  LINE TERMINATION\r
35634                                 ;       13 - 17  JOB TERMINATION\r
35635 \r
35636 \r\f1KLOAD - LOADS MACROX                 PAGE 18\r
35637         DICK GRUEN: V25 3 AUG 68\r
35638 \r
35639 \r
35640                                 ;BYTE POINTERS TO CHARACTER CLASSIFICATION TABLE\r
35641 \r
35642         000465' 400415  000476' LD8:    POINT     4,LD9(Q),3\r
35643         000466' 340415  000476'         POINT     4,LD9(Q),7\r
35644         000467' 300415  000476'         POINT     4,LD9(Q),11\r
35645         000470' 240415  000476'         POINT     4,LD9(Q),15\r
35646         000471' 200415  000476'         POINT     4,LD9(Q),19\r
35647         000472' 140415  000476'         POINT     4,LD9(Q),23\r
35648         000473' 100415  000476'         POINT     4,LD9(Q),27\r
35649         000474' 040415  000476'         POINT     4,LD9(Q),31\r
35650         000475' 000415  000476'         POINT     4,LD9(Q),35\r
35651 \r
35652                                 ;CHARACTER CLASSIFIACTION TABLE\r
35653 \r
35654         000476' 200000  000000  LD9:    BYTE    (4)4,0,0,0,0,0,0,0,0\r
35655         000477' 210422  400000          BYTE    (4)4,4,4,4,12,0,0,0,0\r
35656         000500' 000000  000000          BYTE    (4)0,0,0,0,0,0,0,0,0\r
35657         000501' 540000  040100          BYTE    (4)13,0,0,0,0,4,0,4,0\r
35658         000502' 000001  230011          BYTE    (4)0,0,0,0,5,3,0,0,11\r
35659         000503' 016510  421042          BYTE    (4)0,7,5,2,2,2,2,2,2\r
35660         000504' 104211  400200          BYTE    (4)2,2,2,2,6,0,0,10,0\r
35661         000505' 000104  210421  IFE RPGSW,<     BYTE    (4)0,0,1,1,1,1,1,1,1>\r
35662                                 IFN RPGSW,<     BYTE (4) 0,10,1,1,1,1,1,1,1>\r
35663         000506' 042104  210421          BYTE    (4)1,1,1,1,1,1,1,1,1\r
35664         000507' 042104  210421          BYTE    (4)1,1,1,1,1,1,1,1,1\r
35665         000510' 040000  100000  IFE PP,<BYTE    (4)1,0,0,0,0,10,0,0,0>\r
35666                                 IFN PP,<BYTE    (4)1,10,0,10,0,10,0,0,0>\r
35667         000511' 000000  000000          BYTE    (4)0,0,0,0,0,0,0,0,0\r
35668         000512' 000000  000000          BYTE    (4)0,0,0,0,0,0,0,0,0\r
35669         000513' 000000  000013          BYTE    (4)0,0,0,0,0,0,0,0,13\r
35670         000514' 550000  000000          BYTE    (4)13,4\r
35671 \r
35672 \r\f1KLOAD - LOADS MACROX                 PAGE 19\r
35673         DICK GRUEN: V25 3 AUG 68\r
35674 \r
35675 \r
35676                                 ;INITIALIZE LOADING OF A FILE\r
35677 \r
35678         000515' 201500  002006' ILD:    MOVEI     W,BUF1                ;LOAD BUFFER ORIGIN\r
35679         000516' 202500  000241*         MOVEM     W,JOBFF\r
35680         000517' 663000  020000          TLOE    F,ISW           ;SKIP IF INIT REQUIRED\r
35681         000520' 254000  000525'         JRST    ILD6            ;DONT DO INIT\r
35682         000521' 041040  000014          INIT    1,14\r
35683         000522' 000000  000000  ILD1:   0                               ;LOADER INPUT DEVICE\r
35684         000523' 000000  001721'         XWD     0,BUFR\r
35685         000524' 265700  000547'         JSP     A,ILD5          ;ERROR RETURN\r
35686         000525' 623000  002000  ILD6:   TLZE    F,REWSW         ;SKIP IF NO REWIND\r
35687         000526' 072040  000001          MTAPE   1,1             ;REWIND\r
35688         000527' 076040  001724' ILD2:   LOOKUP    1,DTIN                ;LOOK UP FILE FROM DIRECTORY\r
35689         000530' 254000  000535'         JRST    ILD3            ;FILE NOT IN DIRECTORY\r
35690                                 IFE K,< INBUF     1,2           ;SET UP BUFFERS>\r
35691         000531' 064040  000001  IFN K,< INBUF   1,1             ;SET UP BUFFER>\r
35692         000532' 661000  000100          TLO     F,ASW           ;SET LEFT ARROW ILLEGAL FLAG\r
35693         000533' 621000  010002          TLZ     F,ESW+F4LIB     ;CLEAR EXTENSION FLAG\r
35694         000534' 263740  000000          POPJ    P,\r
35695 \r
35696                                 ;       LOOKUP FAILURE\r
35697 \r
35698         000535' 663000  000002  ILD3:   TLOE    F,ESW           ;SKIP IF .REL WAS ASSUMED\r
35699         000536' 254000  000541'         JRST    ILD4            ;FATAL LOOKUP FAILURE\r
35700         000537' 402000  001725'         SETZM     DTIN1         ;ZERO FILE EXTENSION\r
35701         000540' 254000  000527'         JRST    ILD2            ;TRY AGAIN WITH NULL EXTENSION\r
35702 \r
35703         000541' 623000  010000  ILD4:   TLZE    F,F4LIB         ;WAS THIS A TRY FOR F40 LIBRARY?\r
35704                                         JRST    [MOVE   W,[SIXBIT /LIB4/]; YES, TRY LIB4\r
35705                                                 MOVEM   W,DTIN          ;...\r
35706                                                 PUSHJ   P,LDDT2         ;USE .REL EXTENSION\r
35707                                                 TLZ     F,ESW           ;...\r
35708         000542' 254000  002427'                 JRST    ILD2            ];GO TRY AGAIN\r
35709         000543' 265700  001462' ILD9:   JSP     A,ERRPT\r
35710         000544' 434156  565764          SIXBIT    /CANNOT FIND#/\r
35711         000545' 004651  564403\r
35712         000546' 254000  000042'         JRST    LD2\r
35713 \r
35714                                 ;       DEVICE SELECTION ERROR\r
35715 \r
35716         000547' 200516  777775  ILD5:   MOVE    W,-3(A)         ;LOAD DEVICE NAME FROM INIT\r
35717         000550' 661000  000020          TLO     F,FCONSW        ;INSURE TTY OUTPUT\r
35718         000551' 260740  001553'         PUSHJ   P,PRQ           ;START W/ ?\r
35719         000552' 260740  001454'         PUSHJ     P,PWORD               ;PRINT DEVICE NAME\r
35720         000553' 265700  001541'         JSP     A,ERRPT7\r
35721         000554' 655641  664151          SIXBIT    /UNAVAILABLE@/\r
35722         000555' 544142  544540\r
35723         000556' 254000  000042'         JRST    LD2\r
35724 \r\f1KLOAD - LOADS MACROX                 PAGE 20\r
35725         DICK GRUEN: V25 3 AUG 68\r
35726 \r
35727 \r
35728                                 ;LIBRARY SEARCH CONTROL AND LOADER CONTROL\r
35729 \r
35730                                 ;LIBF ENABLES A LIBRARY SEARCH OF <SYS:LIB4.REL>\r
35731 \r
35732         000557' 260740  000652' LIBF:   PUSHJ     P,FSCN1               ;FORCE SCAN TO COMPLETION\r
35733         000560' 260740  000564'         PUSHJ   P,LIBF1                 ;LOAD SYS:JOBDAT.REL\r
35734         000561' 661000  010000          TLO     F,F4LIB                 ;INDICATE FORTRAN LIBRARY SEARCH\r
35735         000562' 200500  002434'         MOVE    W,[SIXBIT /LIB40/]      ;FIRST TRY AT NAME\r
35736         000563' 260740  000565'         PUSHJ   P,LIBF2                 ;LOAD SYS:LIB40.REL\r
35737         000564' 200500  002435' LIBF1:  MOVE    W,[SIXBIT /JOBDAT/]     ;LOAD SYS:JOBDAT.REL\r
35738         000565' 260740  000622' LIBF2:  PUSHJ     P,LDDT1\r
35739         000566' 325200  000633'         JUMPGE    S,EOF2                ;JUMP IF NO UNDEFINED GLOBALS\r
35740         000567' 661000  000404          TLO     F,SLIBSW+SKIPSW ;ENABLE LIBRARY SEARCH\r
35741         000570' 621000  041000          TLZ     F,SYMSW+DSYMSW  ;DISABLE LOADING WITH SYMBOLS\r
35742         000571' 254000  000656'         JRST    LDF             ;INITIALIZE LOADING LIB4\r
35743 \r
35744                                 ;       LIB CONTROLS THE LIBRARY SEARCH OF ONE FILE\r
35745 \r
35746         000572' 325200  000632' LIB:    JUMPGE    S,EOF1                ;JUMP IF NO UNDEFINED GLOBALS\r
35747         000573' 661000  000004          TLO     F,SKIPSW                ;SET SKIPSW TO IGNORE MODE\r
35748         000574' 254000  000657'         JRST    LOAD            ;CONTINUE LIB. SEARCH\r
35749 \r
35750         000575' 302700  000004  LIB1:   CAIE    A,4             ;TEST FOR ENTRY BLOCK\r
35751         000576' 254000  000605'         JRST    LIB3            ;NOT AN ENTRY BLOCK, IGNORE IT\r
35752         000577' 260740  001243' LIB2:   PUSHJ     P,RWORD               ;READ ONE DATA WORD\r
35753         000600' 200540  000012          MOVE    C,W\r
35754         000601' 661540  040000          TLO     C,040000                ;SET CODE BITS FOR SEARCH\r
35755         000602' 260740  001224'         PUSHJ     P,SREQ\r
35756         000603' 625000  000004          TLZA    F,SKIPSW                ;REQUEST MATCHES ENTRY, LOAD\r
35757         000604' 254000  000577'         JRST    LIB2            ;NOT FOUND\r
35758         000605' 260740  001243' LIB3:   PUSHJ     P,RWORD               ;READ AND IGNORE ONE DATA WORD\r
35759         000606' 254000  000605'         JRST    LIB3            ;LOOP TO IGNORE INPUT\r
35760 \r
35761                                 ;LDDT LOADS <SYS:DDT.REL> AND SETS DSYMSW\r
35762 \r
35763         000607' 661040  006000  LRAIDX: TLO N,DDSW!EXEQSW       ;H - LOAD AND START RAID\r
35764         000610' 260740  000652' LRAID:  PUSHJ P,FSCN1           ;FORCE END OF SCAN\r
35765         000611' 200500  002436'         MOVE W,[SIXBIT /RAID/]\r
35766         000612' 254000  000616'         JRST LDDT0\r
35767         000613' 661040  006000  LDDTX:  TLO     N,DDSW+EXEQSW   ;T - LOAD AND GO TO DDT\r
35768         000614' 260740  000652' LDDT:   PUSHJ     P,FSCN1               ;FORCE SCAN TO COMPLETION\r
35769         000615' 205500  444464          MOVSI     W,444464              ;FILE IDENTIFIER <DDT>\r
35770         000616' 260740  000622' LDDT0:  PUSHJ     P,LDDT1\r
35771         000617' 260740  000656'         PUSHJ     P,LDF         ;LOAD <SYS:DDT.REL>\r
35772         000620' 661000  001000          TLO     F,DSYMSW                ;ENABLE LOADING WITH SYMBOLS\r
35773         000621' 263740  000000          POPJ    P,\r
35774 \r
35775         000622' 202500  001724' LDDT1:  MOVEM     W,DTIN                ;STORE FILE IDENTIFIER\r
35776                                 IFN PP,<MOVE W,ILD1     ;SAVE OLD DEV\r
35777                                         MOVEM W,OLDDEV>\r
35778         000623' 205500  637163          MOVSI     W,637163              ;DEVICE IDENTIFIER <SYS>\r
35779         000624' 202500  000522'         MOVEM     W,ILD1                ;STORE DEVICE IDENTIFIER\r
35780 \r\f1KLOAD - LOADS MACROX                 PAGE 20-1\r
35781         DICK GRUEN: V25 3 AUG 68\r
35782 \r
35783         000625' 621000  026004          TLZ     F,ISW+LIBSW+SKIPSW+REWSW        ;CLEAR OLD FLAGS\r
35784         000626' 205500  624554  LDDT2:  MOVSI     W,624554              ;EXTENSION IDENTIFIER <.REL>\r
35785         000627' 202500  001725' LDDT3:  MOVEM     W,DTIN1               ;STORE EXTENSION IDENTIFIER\r
35786                                 IFN PP,<MOVE W,PPN      ;GET PROJ-PROG #\r
35787                                         MOVEM W,DTIN+3>\r
35788         000630' 263740  000000          POPJ    P,\r
35789 \r\f1KLOAD - LOADS MACROX                 PAGE 21\r
35790         DICK GRUEN: V25 3 AUG 68\r
35791 \r
35792                                 ;EOF TERMINATES LOADING OF A FILE\r
35793 \r
35794         000631' 200740  001627' EOF:    MOVE    P,PDSAV         ;RESTORE PUSHDOWN POINTER\r
35795         000632' 621000  000404  EOF1:   TLZ     F,SLIBSW+SKIPSW ;CLEAR ONE FILE LIB. SEARCH FLAG\r
35796         000633' 263740  000000  EOF2:   POPJ    P,\r
35797 \r
35798                                 ;       FORCE SCAN TO COMPLETION, LOAD IF NECESSARY\r
35799 \r
35800         000634' 260740  000652' FSCN:   PUSHJ     P,FSCN1               ;FORCED LOAD BEFORE TEST\r
35801         000635' 607000  000200          TLNN    F,FULLSW                ;TEST FOR OVERLAP\r
35802         000636' 263740  000000          POPJ    P,                      ;NO OVERLAP, RETURN\r
35803         000637' 200500  000003          MOVE    W,H             ;FETCH CORE SIZE REQUIRED\r
35804         000640' 275504  000001          SUBI W,1(S) ; COMPUT DEFICIENCY\r
35805         000641' 321500  000633'         JUMPL     W,EOF2                ;JUMP IF NO OVERLAP\r
35806         000642' 661000  000020          TLO     F,FCONSW                ;INSURE TTY OUTPUT\r
35807         000643' 260740  001553'         PUSHJ   P,PRQ                   ;START WITH ?\r
35808         000644' 260740  001410'         PUSHJ     P,PRNUM0              ;INFORM USER\r
35809         000645' 265700  001541'         JSP     A,ERRPT7\r
35810         000646' 675762  446300          SIXBIT    /WORDS OF OVERLAP#/\r
35811         000647' 574600  576645\r
35812         000650' 625441  600300\r
35813         000651' 254000  000042'         JRST    LD2             ;ERROR RETURN\r
35814 \r
35815         000652' 667000  000010  FSCN1:  TLON    F,FSW           ;SKIP IF NOT FIRST CALL TO FSCN\r
35816         000653' 607000  100003          TLNN    F,CSW+DSW+ESW   ;TEST SCAN FOR COMPLETION\r
35817         000654' 263740  000000          POPJ    P,\r
35818         000655' 260740  000137' FSCN2:  PUSHJ     P,LD5B1               ;STORE FILE OR EXTENSION IDENT.\r
35819 \r
35820                                 ;       LOADER CONTROL, NORMAL MODE\r
35821 \r
35822         000656' 260740  000515' LDF:    PUSHJ     P,ILD         ;INITIALIZE LOADING\r
35823 \r
35824 \r\f1KLOAD - LOADS MACROX                 PAGE 22\r
35825         DICK GRUEN: V25 3 AUG 68\r
35826 \r
35827                                 ;LOAD SUBROUTINE\r
35828 \r
35829         000657' 202740  001627' LOAD:   MOVEM     P,PDSAV               ;SAVE PUSHDOWN POINTER\r
35830         000660' 200740  001627' LOAD1:  MOVE    P,PDSAV         ;RESTORE PUSHDOWN POINTER\r
35831         000661' 260740  001560' LOAD1A:   PUSHJ     P,WORD              ;INPUT BLOCK HEADER WORD\r
35832         000662' 211612  400000          MOVNI     E,400000(W)   ;WORD COUNT - FROM RH OF HEADER\r
35833         000663' 554700  000012          HLRZ    A,W             ;BLOCK TYPE - FROM LH OF HEADER\r
35834         000664' 303700  000013          CAILE     A,DISPL*2+1           ;TEST BLOCK TYPE NUMBER\r
35835         000665' 254000  000704'         JRST    LOAD4           ;ERROR, ILLEGAL BLOCK TYPE\r
35836         000666' 603000  000004          TLNE    F,SKIPSW                ;BLOCK OK - TEST LOAD STATUS\r
35837         000667' 254000  000575'         JRST    LIB1            ;RETURN TO LIB. SEARCH CONTROL\r
35838         000670' 550416  000676'         HRRZ    T,LOAD2(A)              ;LOAD RH DISPATCH ENTRY\r
35839         000671' 303700  000005          CAILE     A,DISPL               ;SKIP IF CORRECT\r
35840         000672' 554416  000670'         HLRZ    T,LOAD2-DISPL-1(A)      ;LOAD LH DISPATCH ENTRY\r
35841         000673' 603000  000200          TLNE    F,FULLSW                ;TEST CORE OVERLAP INDICATOR\r
35842         000674' 367700  001143'         SOJG    A,HIGH0         ;IGNORE BLOCK IF NOT TYPE 1\r
35843         000675' 254020  000010          JRST    @T                      ;DISPATCH TO BLOCK SUBROUTINE\r
35844 \r
35845                                 ;DISPATCH TABLE - BLOCK TYPES\r
35846 \r
35847         000676' 001162' 000661' LOAD2:  XWD NAME,LOAD1A\r
35848         000677' 001157' 000710'         XWD START,PROG\r
35849         000700' 001211' 000725'         XWD LOCD,SYM\r
35850         000701' 000704' 000704'         XWD LOAD4A,LOAD4A\r
35851         000702' 000704' 000605'         XWD LOAD4A,LIB3\r
35852         000703' 000704' 001145' LOAD3:  XWD LOAD4A,HIGH\r
35853 \r
35854                         000005          DISPL=LOAD3-LOAD2\r
35855 \r
35856                                 ;ERROR EXIT FOR BAD HEADER WORDS\r
35857 \r
35858                                 LOAD4:  IFE K,<\r
35859                                         CAIN    A,400           ;FORTRAN FOUR BLOCK\r
35860                                         JRST    F4LD>\r
35861         000704' 265700  001462' LOAD4A:   JSP   A,ERRPT         ;INCORRECT HEADER WORD\r
35862         000705' 515454  160046          SIXBIT    /ILL. FORMAT#/\r
35863         000706' 576255  416403\r
35864         000707' 254000  000042'         JRST    LD2\r
35865 \r
35866 \r\f1KLOAD - LOADS MACROX                 PAGE 23\r
35867         DICK GRUEN: V25 3 AUG 68\r
35868 \r
35869                                 ;LOAD PROGRAMS AND DATA (BLOCK TYPE 1)\r
35870 \r
35871         000710' 550440  000012  PROG:   HRRZ    V,W             ;LOAD BLOCK LENGTH\r
35872         000711' 260740  001243'         PUSHJ     P,RWORD               ;READ BLOCK ORIGIN\r
35873         000712' 270440  000012          ADD     V,W             ;COMPUTE NEW PROG. BREAK\r
35874         000713' 307160  000002          CAIG    H,@X            ;COMPARE WITH PREV. PROG. BREAK\r
35875         000714' 201160  000002          MOVEI     H,@X          ;UPDATE PROGRAM BREAK\r
35876         000715' 603000  000200                  TLNE F,FULLSW\r
35877         000716' 254000  001141'                 JRST FULLC      ;NO ERROR MESSAGE\r
35878         000717' 303144  000001          CAILE H,1(S)  ; SKIP IF SUFFICIENT CORE AVAILABLE\r
35879                                 IFN EXPAND,<    JRST    [PUSHJ P,XPAND>\r
35880         000720' 254000  001141'                         JRST FULLC\r
35881                                 IFN EXPAND,<            JRST .-1]>\r
35882         000721' 200440  000012          MOVE    V,W\r
35883         000722' 260740  001243' PROG1:  PUSHJ     P,RWORD               ;READ DATA WORD\r
35884         000723' 202520  000002          MOVEM     W,@X          ;STORE DATA WORD IN PROG. AT LLC\r
35885         000724' 344440  000722'         AOJA    V,PROG1         ;ADD ONE TO LOADER LOC. COUNTER\r
35886 \r
35887                                 ;LOAD SYMBOLS (BLOCK TYPE 2)\r
35888 \r
35889         000725' 260740  001235' SYM:    PUSHJ     P,PRWORD              ;READ TWO DATA WORDS\r
35890         000726' 260740  000730'         PUSHJ   P,SYMPT;                PUT INTO TABLE\r
35891         000727' 254000  000725'         JRST    SYM\r
35892 \r
35893                                 ; WFW SYMPT:    JUMPL   C,SYM3;         JUMP IF GLOBAL REQUEST\r
35894         000730' 603540  200000  SYMPT:  TLNE C,200000   ;GLOBAL REQUEST? WFW\r
35895         000731' 321540  001006'         JUMPL C,SYM3    ;CHECK FOR 60 NOT JUST HIGH BIT WFW\r
35896         000732' 603540  100000          TLNE    C,100000\r
35897         000733' 254000  000755'         JRST    SYM1A           ;LOCAL SYMBOL\r
35898         000734' 260740  001224'         PUSHJ     P,SREQ                ;GLOBAL DEF., SEARCH FOR REQUEST\r
35899         000735' 254000  000770'         JRST    SYM2            ;REQUEST MATCHES\r
35900         000736' 260740  001226'         PUSHJ     P,SDEF                ;SEARCH FOR MULTIPLE DEFINITIONS\r
35901         000737' 254000  000741'         JRST    SYM1            ;MULTIPLY DEFINED GLOBAL\r
35902         000740' 254000  000757'         JRST    SYM1B\r
35903 \r
35904                                 ;       PROCESS MULTIPLY DEFINED GLOBAL\r
35905 \r
35906         000741' 316516  000002  SYM1:   CAMN    W,2(A)          ;COMPARE NEW AND OLD VALUE\r
35907         000742' 263740  000000          POPJ    P,;\r
35908         000743' 350000  001631'         AOS     MDG             ;COUNT MULTIPLY DEFINED GLOBALS\r
35909         000744' 260740  001553'         PUSHJ   P,PRQ           ;START W/ ?\r
35910         000745' 260740  001406'         PUSHJ     P,PRNAM               ;PRINT SYMBOL AND VALUE\r
35911         000746' 200516  000002          MOVE    W,2(A)          ;LOAD OLD VALUE\r
35912         000747' 260740  001407'         PUSHJ     P,PRNUM               ;PRINT OLD VALUE\r
35913         000750' 265700  001541'         JSP     A,ERRPT7                ;PRINT MESSAGE\r
35914         000751' 556554  160044          SIXBIT    /MUL. DEF. GLOBAL#/\r
35915         000752' 454616  004754\r
35916         000753' 574241  540300\r
35917         000754' 263740  000000          POPJ    P,;     IGNORE MUL. DEF. GLOBAL SYM\r
35918 \r
35919 \r\f1KLOAD - LOADS MACROX                 PAGE 24\r
35920         DICK GRUEN: V25 3 AUG 68\r
35921 \r
35922                                 ;       LOCAL SYMBOL\r
35923 \r
35924         000755' 607000  041000  SYM1A:  TLNN    F,SYMSW+DSYMSW  ;SKIP IF LOAD LOCALS SWITCH ON\r
35925         000756' 263740  000000          POPJ    P,;             IGNORE LOCAL SYMBOLS\r
35926         000757' 301144  000000  SYM1B:  CAIL    H,(S)           ;STORE DEFINED SYMBOL\r
35927                                 IFN EXPAND,<    PUSHJ P,XPAND7>\r
35928         000760' 254000  001132' IFE EXPAND,<    JRST SFULLC>\r
35929                                 SYM1C:  IFE K,<\r
35930                                         TLNE    N,F4SW;         FORTRAN FOUR REQUIRES A BLT\r
35931                                         PUSHJ   P,MVDWN;        OF THE TABLES>\r
35932         000761' 201704  777776          MOVEI A,-2(S)   ;LOAD A TO SAVE INST. AT SYM2\r
35933         000762' 275200  000002  SYM1D:  SUBI    S,2;            UPDATE UNDEFINED POINTER\r
35934         000763' 262316  000002          POP     B,2(A)          ;MOVE UNDEFINED VALUE POINTER\r
35935         000764' 262316  000001          POP     B,1(A)          ;MOVE UNDEFINED SYMBOL\r
35936         000765' 202506  000002          MOVEM     W,2(B)                ;STORE VALUE\r
35937         000766' 202546  000001          MOVEM     C,1(B)                ;STORE SYMBOL\r
35938         000767' 263740  000000          POPJ    P,;\r
35939 \r
35940 \r\f1KLOAD - LOADS MACROX                 PAGE 25\r
35941         DICK GRUEN: V25 3 AUG 68\r
35942 \r
35943                                 ;       GLOBAL DEFINITION MATCHES REQUEST\r
35944 \r
35945         000770' 261740  001000' SYM2:   PUSH P,SYM2C    ;NEXT MUST BE A SUBROUTINE FOR LATER. SET RETURN\r
35946         000771' 200456  000002  SYM2B:  MOVE    V,2(A)          ;LOAD REQUEST POINTER\r
35947         000772' 260740  001215'         PUSHJ P,REMSYM\r
35948         000773' 321440  001117'         JUMPL V,SYM2W   ;ADDITIVE REQUEST? WFW\r
35949         000774' 260740  001130'         PUSHJ     P,SYM4A               ;REPLACE CHAIN WITH DEFINITION\r
35950                                 ;WFW PATCH TO LOOK FOR MORE THAN ONE REQUEST\r
35951         000775' 260740  001224' SYM2W1: PUSHJ P,SREQ    ;LOOK FOR MORE REQUESTS FOR THIS SYMBOL\r
35952         000776' 254000  000771'         JRST SYM2B      ;FOUND MORE\r
35953         000777' 200700  001001'         MOVE A,SVA      ;RESTORE A\r
35954                                 ;END OF PATCH WFW\r
35955         001000' 263740  000762' SYM2C:  POPJ P,SYM1D    ;RETURN, SEE SYM2 FOR USE OF ADDRESS\r
35956         001001' 000000  000000  SVA:    0       ;A TEMP CELL WFW\r
35957 \r
35958                                 ;       REQUEST MATCHES GLOBAL DEFINITION\r
35959 \r
35960         001002' 200440  000012  SYM2A:  MOVE    V,W             ;LOAD POINTER TO CHAIN\r
35961         001003' 200516  000002          MOVE    W,2(A)          ;LOAD VALUE\r
35962         001004' 321440  001050'         JUMPL V,FIXWP   ;HANDLE ATTITIVE REQUEST WFW\r
35963         001005' 254000  001130'         JRST    SYM4A;          REPLACE CHAIN WITH DEFINITION\r
35964 \r
35965                                 ;       PROCESS GLOBAL REQUEST\r
35966 \r
35967         001006' 603540  040000  SYM3:   TLNE    C,040000;               COMMON NAME\r
35968         001007' 254000  000757'         JRST    SYM1B\r
35969         001010' 641540  640000          TLC     C,640000;               PERMUTE BITS FROM 60 TO 04\r
35970         001011' 260740  001226'         PUSHJ     P,SDEF                ;SEARCH FOR GLOBAL DEFINITION\r
35971         001012' 254000  001002'         JRST    SYM2A           ;MATCHING GLOBAL DEFINITION\r
35972         001013' 321500  001016'         JUMPL W,SYM3X1  ;ADDITIVE FIXUP WFW\r
35973         001014' 260740  001224'         PUSHJ     P,SREQ                ;SEARCH FOR EXISTING REQUEST WFW\r
35974         001015' 254000  001035'         JRST    SYM3A           ;EXISTING REQUEST FOUND WFW\r
35975         001016' 607500  100000  SYM3X1: TLNN W,100000   ;CHECK SYMBOL TABLE FIXUP\r
35976         001017' 254000  001027'         JRST SYM3X2     ;NO\r
35977         001020' 200446  000001          MOVE V,1(B)     ;MUST BE LAST SYMBOL DEFINED. GET SYMBOL\r
35978         001021' 430440  000012          XOR V,W         ;CHECK FOR IDENTITY\r
35979         001022' 612440  002437'         TDNE V,[XWD 77777,-1]   ;BUT IGNORE HIGH 3 BITS\r
35980         001023' 263740  000000          POPJ P,         ;NOT SAME, ASSUME NOT LOADED LOCAL\r
35981         001024' 541506  000002          HRRI W,2(B)     ;GET LOCATION IN RIGHT HALF\r
35982         001025' 661500  000001          TLO W,1\r
35983         001026' 274500  000322*         SUB W,JOBREL    ;AND MAKE RELATIVE\r
35984         001027' 301144  000000  SYM3X2: CAIL    H,(S)           ;STORE REQUEST IN UNDEF. TABLE WFW\r
35985                                 IFN EXPAND,<    PUSHJ P,XPAND7>\r
35986         001030' 254000  001132' IFE EXPAND,<    JRST SFULLC>\r
35987                                 SYM3X:  IFE K,<\r
35988                                         TLNE    N,F4SW;         FORTRAN FOUR\r
35989                                         PUSHJ   P,MVDWN;                ADJUST TABLES IF F4>\r
35990         001031' 274200  001623'         SUB     S,SE3           ;ADVANCE UNDEFINED POINTER\r
35991         001032' 202504  000002          MOVEM     W,2(S)                ;STORE UNDEFINED VALUE POINTER\r
35992         001033' 202544  000001          MOVEM     C,1(S)                ;STORE UNDEFINED SYMBOL\r
35993         001034' 263740  000000          POPJ    P,;\r
35994 \r
35995 \r\f1KLOAD - LOADS MACROX                 PAGE 26\r
35996         DICK GRUEN: V25 3 AUG 68\r
35997 \r
35998 \r
35999                                 ;       COMBINE TWO REQUEST CHAINS\r
36000 \r
36001         001035' 331016  000002  SYM3A:  SKIPL 2(A)      ;IS IT ADDITIVE WFW\r
36002         001036' 254000  001042'         JRST SYM3A1     ;NO, PROCESS WFW\r
36003         001037' 260740  001231'         PUSHJ P,SDEF2   ;YES, CONTINUE WFW\r
36004         001040' 254000  001035'         JRST SYM3A      ;FOUND ANOTHER WFW\r
36005         001041' 254000  001027'         JRST SYM3X2     ;REALLY NO CHAIN THERE WFW\r
36006         001042' 275702  777776  SYM3A1: SUBI A,-2(X)  ;A=A-(-2+X(18-35)); A RELATIVE TO X WFW\r
36007         001043' 550440  000016  SYM3B:  HRRZ V,A       ; SAVE CHAIN ADDRESS FOR HRRM W,@X\r
36008         001044' 550720  000002          HRRZ A,@X ; LOAD NEXT ADDRESS IN CHAIN\r
36009         001045' 326700  001043'         JUMPN A,SYM3B  ; JUMP IF NOT THE LAST ADDR. IN CHAIN\r
36010         001046' 542520  000002          HRRM    W,@X            ;COMBINE CHAINS\r
36011         001047' 263740  000000          POPJ    P,;\r
36012 \r
36013                                 ;WFW PATCH FOR ADDITIVE GLOBAL REQUESTS\r
36014 \r
36015         001050' 607440  100000  FIXWP:  TLNN V,100000   ;CHECK FOR SYMBOL TABLE FIXUP\r
36016         001051' 254000  001060'         JRST FIXW\r
36017         001052' 200406  000001          MOVE T,1(B)     ;SYMBOL FIXUP, MUST BE LAST SYMBOL DEFINED\r
36018         001053' 430400  000011          XOR T,V         ;CHECK FOR SAME\r
36019         001054' 612400  002437'         TDNE T,[XWD 77777,-1]   ;EXCEPT FOR HEGH CODE BITS\r
36020         001055' 263740  000000          POPJ P,         ;ASSUME NON-LOADED LOCAL\r
36021         001056' 541446  000002          HRRI V,2(B)     ;GET LOCATION\r
36022         001057' 275442  000000          SUBI V,(X)      ;SO WE CAN USE @X\r
36023         001060' 603440  200000  FIXW:   TLNE V,200000   ;IS IT LEFT HALF\r
36024         001061' 254000  001067'         JRST FIXWL\r
36025         001062' 200420  000002          MOVE T,@X       ;GET WORD\r
36026         001063' 270400  000012          ADD T,W         ;VALUE OF GLOBAL\r
36027         001064' 542420  000002          HRRM T,@X       ;FIX WITHOUT CARRY\r
36028         001065' 205340  200000          MOVSI D,200000  ;SET UP TO REMOVE DEFERED INTERNAL IF THERE\r
36029         001066' 254000  001072'         JRST SYMFIX\r
36030         001067' 514400  000012  FIXWL:  HRLZ    T,W             ;UPDATE VALUE OF LEFT HALF\r
36031         001070' 272420  000002          ADDM    T,@X            ;BY VALUE OF GLOBAL\r
36032         001071' 205340  400000          MOVSI D,400000  ;LEFT DEFERED INTERNAL\r
36033         001072' 607440  100000  SYMFIX: TLNN V,100000   ;CHECK FOR SYMBOL TABLE FIXUP\r
36034         001073' 263740  000000          POPJ P,         ;NO, RETURN\r
36035         001074' 271442  000000          ADDI V,(X)      ;GET THE LOCATION\r
36036         001075' 200411  777777          MOVE T,-1(V)    ;GET THE SYMBOL NAME\r
36037         001076' 607400  040000          TLNN T,40000    ;CHECK TO SEE IF INTERNAL\r
36038         001077' 263740  000000          POPJ P,         ;NO, LEAVE\r
36039         001100' 413351  777777          ANDCAB D,-1(V)  ;REMOVE PROPER BIT\r
36040         001101' 603340  600000          TLNE D,600000   ;IS IT STILL DEFERED?\r
36041         001102' 263740  000000          POPJ P,         ;YES, ALL DONE\r
36042         001103' 250540  000007          EXCH C,D        ;NO, CHECK FOR A REQUEST FOR IT\r
36043         001104' 260740  001224'         PUSHJ P,SREQ\r
36044         001105' 254000  001110'         JRST CHNSYM     ;YES, WILL HAVE TO CALL THE FIXUP ROUTINE\r
36045         001106' 200540  000007          MOVE C,D        ;GET C BACK\r
36046         001107' 263740  000000          POPJ P,\r
36047         001110' 261740  000007  CHNSYM: PUSH P,D        ;HAS THE OLD C IN IT\r
36048         001111' 261740  000012          PUSH P,W        ;WE MAY NEED IT LATER\r
36049         001112' 200511  000000          MOVE W,(V)      ;GET VALUE\r
36050         001113' 260740  000771'         PUSHJ P,SYM2B   ;CALL THE FOUND GLOBAL TO MATCH REQUEST ROUTINE\r
36051 \r\f1KLOAD - LOADS MACROX                 PAGE 26-1\r
36052         DICK GRUEN: V25 3 AUG 68\r
36053 \r
36054         001114' 262740  000012          POP P,W\r
36055         001115' 262740  000013          POP P,C         ;RESTORE FOR CALLER\r
36056         001116' 263740  000000          POPJ P,         ;AND GO AWAY\r
36057 \r
36058         001117' 607440  100000  SYM2W:  TLNN V,100000   ;SYMBOL TABLE?\r
36059         001120' 254000  001123'         JRST SYM2WA\r
36060         001121' 270440  001026*         ADD V,JOBREL    ;MAKE ABSOLUTE\r
36061         001122' 275442  000000          SUBI V,(X)      ;GET READY TO ADD X\r
36062         001123' 260740  001060'         SYM2WA: PUSHJ P,FIXW    ;DO FIXUP\r
36063         001124' 254000  000775'         JRST SYM2W1     ;AND LOOK FOR MORE REQUESTS\r
36064 \r
36065                                 ;END WFW PATCH\r
36066 \r
36067 \r\f1KLOAD - LOADS MACROX                 PAGE 27\r
36068         DICK GRUEN: V25 3 AUG 68\r
36069 \r
36070                                 ;PATCH VALUES INTO CHAINED REQUEST\r
36071         001125'                 SYM4:\r
36072         001125' 550420  000002          HRRZ    T,@X            ;LOAD NEXT ADDRESS IN CHAIN\r
36073         001126' 542520  000002          HRRM    W,@X            ;INSERT VALUE INTO PROGRAM\r
36074         001127' 200440  000010          MOVE    V,T\r
36075         001130' 326440  001125' SYM4A:  JUMPN     V,SYM4                ;JUMP IF NOT LAST ADDR. IN CHAIN\r
36076         001131' 263740  000000          POPJ    P,\r
36077 \r
36078                                 IFE     K,<\r
36079                                 MVDWN:  HRRZ T,MLTP\r
36080                                 IFN EXPAND,<    SUBI T,2>\r
36081                                         CAIG    T,@X;           ANY ROOM LEFT?\r
36082                                 IFN EXPAND,<    JRST    [PUSHJ P,XPAND>\r
36083                                                         TLOA F,FULLSW\r
36084                                 IFN EXPAND,<            JRST MVDWN\r
36085                                                         JRST .+2]>\r
36086                                         TLNE    F,SKIPSW+FULLSW\r
36087                                         JRST    MVABRT; ABORT BLT\r
36088                                         HRREI   T,-2\r
36089                                         ADDM    T,PLTP;         ADJUST PROGRAMMER LABEL POINTER\r
36090                                         ADDM    T,BITP;         AND BIT TABLE POINTER\r
36091                                         ADDM    T,SDSTP;        FIRST DATA STATEMENT\r
36092                                         ADDM    T,LTC\r
36093                                         ADDM    T,ITC\r
36094                                         TLNE    N,SYDAT\r
36095                                         ADDM    T,V\r
36096                                         ADDB    T,MLTP;         AND FINALLY TO MADE LABEL TABLE\r
36097                                         HRLS    T;              SET UP BLT POINTER\r
36098                                         ADD     T,[XWD 2,0]\r
36099                                         BLT     T,(S)\r
36100                                 MVABRT: POPJ    P,;\r
36101                                 >\r
36102                                 ;HIGHEST RELOCATABLE POINT (BLOCK TYPE 4)\r
36103         001132' 663000  000200  SFULLC: TLOE    F,FULLSW        ;PREVIOUS OVERFLOW?\r
36104         001133' 254000  001141'         JRST    FULLC           ;YES, DON'T PRINT MESSAGE\r
36105         001134' 265700  001462'         JSP     A,ERRPT         ;NO, COMPLAIN ABT OVERFLO\r
36106         001135' 637155  425754          SIXBIT  ?SYMBOL TABLE OVERLAP#?\r
36107         001136' 006441  425445\r
36108         001137' 005766  456254\r
36109         001140' 416003  000000\r
36110         001141' 661000  000200  FULLC:  TLO     F,FULLSW        ;CORE OVERLAP ERROR RETURN\r
36111                                 IFE K,< TLNE    N,F4SW\r
36112                                         POPJ    P,>\r
36113         001142' 254000  000605'         JRST    LIB3            ;LOOK FOR MORE\r
36114 \r
36115         001143' 302700  000004  HIGH0:  CAIE A,4  ; TEST FOR END BLOCK (OVERLAP)\r
36116         001144' 254000  000605'         JRST    LIB3\r
36117         001145' 260740  001235' HIGH:   PUSHJ     P,PRWORD              ;READ TWO DATA WORDS\r
36118         001146' 540240  000013          HRR     R,C             ;SET NEW PROGRAM BREAK\r
36119         001147' 271540  000002          ADDI    C,X;    BE SURE TO RELOCATE\r
36120         001150' 303544  000001          CAILE   C,1(S)          ;TEST PROGRAM BREAK\r
36121                                 IFN EXPAND,<PUSHJ P,[   PUSHJ P,XPAND\r
36122                                                         TLOA F,FULLSW\r
36123 \r\f1KLOAD - LOADS MACROX                 PAGE 27-1\r
36124         DICK GRUEN: V25 3 AUG 68\r
36125 \r
36126                                                         JRST POPJM2\r
36127                                                         POPJ    P,]>\r
36128         001151' 661000  000200  IFE EXPAND,<TLO F,FULLSW>\r
36129         001152' 201700  001672' HIGH3:  MOVEI   A,F.C           ;SAVE CURRENT STATE OF LOADER\r
36130         001153' 251700  001700'         BLT     A,B.C\r
36131         001154' 603000  004400          TLNE    F,SLIBSW+LIBSW  ;NORMAL MODE EXIT THROUGH LOAD1\r
36132         001155' 254000  000572'         JRST    LIB             ;LIBRARY SEARCH EXIT\r
36133         001156' 254000  000660'         JRST LOAD1\r
36134 \r
36135 \r\f1KLOAD - LOADS MACROX                 PAGE 28\r
36136         DICK GRUEN: V25 3 AUG 68\r
36137 \r
36138                                 ;STARTING ADDRESS (BLOCK TYPE 7)\r
36139 \r
36140         001157' 260740  001235' START:  PUSHJ     P,PRWORD              ;READ TWO DATA WORDS\r
36141         001160' 607040  000002          TLNN    N,ISAFLG                ;SKIP IF IGNORE SA FLAG ON\r
36142         001161' 540000  000013          HRR     F,C             ;SET STARTING ADDRESS\r
36143 \r
36144                                 ;PROGRAM NAME (BLOCK TYPE 6)\r
36145 \r
36146         001162' 260740  001235' NAME:   PUSHJ     P,PRWORD              ;READ TWO DATA WORDS\r
36147         001163' 663040  000004          TLOE    N,COMFLG                ;SKIP IF COMMON NOT PREV. SET\r
36148         001164' 254000  001170'         JRST    NAME1           ;SIZE OF COMMON PREV. SET\r
36149         001165' 202500  001630'         MOVEM     W,COMSAV              ;STORE LENGTH OF COMMON\r
36150         001166' 322500  001201'         JUMPE     W,NAME2               ;JUMP IF NO COMMON IN THIS JOB\r
36151         001167' 541260  000005          HRRI    R,@R            ;FIRST PROGRAM SET LOAD ORIGIN\r
36152         001170' 303144  777777  NAME1:  CAILE H,-1(S)           ;TEST FOR AVAIL. SYMBOL SPACE\r
36153                                 IFN EXPAND,<    PUSHJ P,XPAND7>\r
36154         001171' 254000  001132' IFE EXPAND,<    JRST SFULLC>\r
36155         001172' 275200  000002          SUBI    S,2             ;UPDATE UNDEF. TABLE POINTER\r
36156         001173' 262304  000002          POP     B,2(S)\r
36157         001174' 262304  000001          POP     B,1(S)\r
36158         001175' 550440  000001          HRRZ    V,N             ;POINTER TO PREVIOUS NAME\r
36159         001176' 276300  000011          SUBM    B,V             ;COMPUTE RELATIVE POSITIONS\r
36160         001177' 506441  000002          HRLM    V,2(N)          ;STORE FORWARD POINTER\r
36161         001200' 540040  000006          HRR     N,B             ;UPDATE NAME POINTER\r
36162         001201' 202546  000001  NAME2:  MOVEM     C,1(B)                ;STORE PROGRAM NAME\r
36163         001202' 552246  000002          HRRZM   R,2(B)          ;STORE PROGRAM ORIGIN\r
36164         001203' 317500  001630'         CAMG    W,COMSAV                ;CHECK COMMON SIZE\r
36165         001204' 254000  000605'         JRST    LIB3            ;COMMON OK\r
36166         001205' 265700  001462' ILC:    JSP     A,ERRPT\r
36167         001206' 515454  160043          SIXBIT    /ILL. COMMON#/\r
36168         001207' 575555  575603\r
36169         001210' 254000  000042'         JRST    LD2\r
36170 \r\f1KLOAD - LOADS MACROX                 PAGE 29\r
36171         DICK GRUEN: V25 3 AUG 68\r
36172 \r
36173 \r
36174                                 ;ONE PASS LOCAL DEFINITION (BLOCK TYPE 10)\r
36175 \r
36176                                                         ;PMP PATCH FOR LEFT HALF FIXUPS\r
36177                                                         ;END PMP PATCH\r
36178         001211' 260740  001243' LOCD:   PUSHJ     P,RWORD               ;READ ONE DATA WORD\r
36179         001212' 554440  000012          HLRZ    V,W             ;STORAGE POINTER IN LEFT HALF\r
36180         001213' 260740  001130'         PUSHJ     P,SYM4A               ;LINK BACK REFERENCES\r
36181         001214' 254000  001211'         JRST    LOCD\r
36182 \r\f1KLOAD - LOADS MACROX                 PAGE 30\r
36183         DICK GRUEN: V25 3 AUG 68\r
36184 \r
36185  \r
36186         001215' 200404  000001  REMSYM: MOVE T,1(S)\r
36187         001216' 202416  000001          MOVEM T,1(A)\r
36188         001217' 200404  000002          MOVE T,2(S)\r
36189         001220' 202416  000002          MOVEM T,2(A)\r
36190         001221' 270200  001623'         ADD S,SE3\r
36191         001222' 202700  001001'         MOVEM A,SVA\r
36192         001223' 263740  000000          POPJ P,\r
36193 \r
36194 \r\f1KLOAD - LOADS MACROX                 PAGE 31\r
36195         DICK GRUEN: V25 3 AUG 68\r
36196 \r
36197                                 ;SYMBOL TABLE SEARCH SUBROUTINES\r
36198 \r
36199                                 ;       ENTERED WITH SYMBOL IN C\r
36200                                 ;       RETURN IS WITH POINTER IN A IF MATCHING SYMBOL FOUND\r
36201                                 ;       OTHERWISE, A SKIP ON RETURN OCCURS\r
36202 \r
36203         001224' 325200  001233' SREQ:   JUMPGE    S,CPOPJ1              ;JUMP IF NO UNDEF. SYMBOLS\r
36204         001225' 334700  000004          SKIPA     A,S           ;LOAD REQUEST SEARCH POINTER\r
36205         001226' 200700  000006  SDEF:   MOVE    A,B             ;LOAD DEF. SYMBOL SEARCH POINTER\r
36206         001227' 316556  000001  SDEF1:  CAMN    C,1(A)\r
36207         001230' 263740  000000          POPJ    P,                      ;SYMBOLS MATCH, RETURN\r
36208         001231' 270700  001623' SDEF2:  ADD     A,SE3\r
36209         001232' 321700  001227'         JUMPL     A,SDEF1\r
36210                                 IFE K,< JRST    CPOPJ1          ;SYMBOL NOT FOUND SKIPS ON RETURN>\r
36211                                 IFN K,<\r
36212         001233' 350017  000000  CPOPJ1: AOS     (P)             ;TRA 2,4\r
36213         001234' 263740  000000          POPJ    P,              ;...>\r
36214 \r
36215                                 ;RELOCATION AND BLOCK INPUT\r
36216 \r
36217         001235' 260740  001243' PRWORD:   PUSHJ     P,RWORD             ;READ A WORD PAIR\r
36218         001236' 200540  000012          MOVE    C,W             ;LOAD C WITH FIRST DATA WORD\r
36219         001237' 602600  377777          TRNE    E,377777                ;TEST FOR END OF BLOCK\r
36220         001240' 254000  001245'         JRST    RWORD1          ;INPUT SECOND WORD OF PAIR\r
36221         001241' 201500  000000          MOVEI     W,0           ;NO SECOND WORD, ASSUME ZERO\r
36222         001242' 263740  000000          POPJ    P,\r
36223 \r
36224         001243' 606600  377777  RWORD:  TRNN    E,377777                ;TEST FOR END OF BLOCK\r
36225         001244' 254000  000660'         JRST    LOAD1           ;RETURN TO LOAD THE NEXT BLOCK\r
36226         001245' 253600  001251' RWORD1:   AOBJN     E,RWORD2            ;JUMP IF DATA WORD NEXT\r
36227         001246' 260740  001560'         PUSHJ     P,WORD                ;READ CONTROL WORD\r
36228         001247' 200640  000012          MOVE    Q,W             ;DON'T COUNT RELOCATION WORDS\r
36229         001250' 505600  777756          HRLI    E,-22           ;SET RELOCATION WORD BYTE COUNT\r
36230         001251' 260740  001560' RWORD2:   PUSHJ     P,WORD              ;READ INPUT WORD\r
36231         001252' 325640  001255'         JUMPGE    Q,RWORD3              ;TEST LH RELOCATION BIT\r
36232         001253' 514400  000005          HRLZ    T,R\r
36233         001254' 270500  000010          ADD     W,T             ;LH RELOCATION\r
36234         001255' 603640  200000  RWORD3:   TLNE  Q,200000                ;TEST RH RELOCATION BIT\r
36235         001256' 541520  000005          HRRI    W,@R            ;RH RELOCATION\r
36236         001257' 242640  000002          LSH     Q,2\r
36237         001260' 263740  000000          POPJ    P,\r
36238 \r
36239 \r\f1KLOAD - LOADS MACROX                 PAGE 32\r
36240         DICK GRUEN: V25 3 AUG 68\r
36241 \r
36242                                 ;PRINT STORAGE MAP SUBROUTINE\r
36243 \r
36244         001261' 260740  000652' PRMAP:  PUSHJ   P,FSCN1 ;LOAD OTHER FILES FIRST\r
36245         001262' 260740  001576'         PUSHJ   P,CRLFLF        ;START NEW PAGE\r
36246         001263' 550500  000005          HRRZ    W,R\r
36247         001264' 260740  001410'         PUSHJ     P,PRNUM0\r
36248         001265' 265700  001541'         JSP     A,ERRPT7\r
36249         001266' 516300  645045          SIXBIT  ?IS THE PROGRAM BREAK@?\r
36250         001267' 006062  574762\r
36251         001270' 415500  426245\r
36252         001271' 415340  000000\r
36253         001272' 260740  001600'         PUSHJ   P,CRLF          ;START STORAGE MAP\r
36254         001273' 265700  001465'         JSP     A,ERRPT0        ;PRINT HEADER\r
36255         001274' 636457  624147          SIXBIT  ?STORAGE MAP@?\r
36256         001275' 450055  416040\r
36257         001276' 574700  000006          HLRE    A,B\r
36258         001277' 213000  000016          MOVNS     A\r
36259         001300' 271706  000000          ADDI    A,(B)\r
36260         001301' 275700  000002  PRMAP1:   SUBI  A,2\r
36261         001302' 331556  000001          SKIPL     C,1(A)                ;LOAD SYMBOL, SKIP IF DELETED\r
36262         001303' 603540  300000          TLNE    C,300000                ;TEST FOR LOCAL SYMBOL\r
36263         001304' 254000  001330'         JRST    PRMAP4          ;IGNORE LOCAL SYMBOLS\r
36264         001305' 607540  040000          TLNN    C,040000\r
36265         001306' 260740  001600'         PUSHJ     P,CRLF                ;PROGRAM NAME\r
36266         001307' 260740  001405'         PUSHJ     P,PRNAM1              ;PRINT SYMBOL AND VALUE\r
36267         001310' 603540  040000          TLNE    C,040000\r
36268         001311' 254000  001327'         JRST    PRMAP3          ;GLOBAL SYMBOL\r
36269         001312' 574540  000012          HLRE    C,W             ;POINTER TO NEXT PROG. NAME\r
36270         001313' 325540  001316'         JUMPGE    C,PRMAP2              ;JUMP IF LAST PROGRAM NAME\r
36271         001314' 271556  000002          ADDI    C,2(A)          ;COMPUTE LOC. OF FOLLOWING NAME\r
36272         001315' 334420  000013          SKIPA     T,@C          ;LOAD ORIGIN OF FOLLOWING PROG.\r
36273         001316' 550400  000005  PRMAP2:   HRRZ  T,R             ;LOAD PROGRAM BREAK\r
36274         001317' 276400  000012          SUBM    T,W             ;SUBTRACT ORIGIN TO GET LENGTH\r
36275         001320' 260740  001407'         PUSHJ     P,PRNUM               ;PRINT PROGRAM LENGTH\r
36276         001321' 260740  001600'         PUSHJ     P,CRLF\r
36277         001322' 607040  000001          TLNN    N,ALLFLG                ;SKIP IF LIST ALL MODE IS ON\r
36278         001323' 602500  777777          TRNE    W,777777                ;SKIP IF ZERO LENGTH PROGRAM\r
36279         001324' 254000  001327'         JRST    PRMAP3\r
36280         001325' 322540  001332'         JUMPE     C,PRMAP5              ;JUMP IF LAST PROGRAM\r
36281         001326' 334700  000013          SKIPA     A,C           ;SKIP GLOBALS, ZERO LENGTH PROG.\r
36282         001327' 260740  001600' PRMAP3:   PUSHJ     P,CRLF\r
36283         001330' 303706  000000  PRMAP4:   CAILE     A,(B)               ;TEST FOR END OF SYMBOL TABLE\r
36284         001331' 254000  001301'         JRST    PRMAP1\r
36285         001332'                 PRMAP5:\r
36286 \r
36287 \r\f1KLOAD - LOADS MACROX                 PAGE 33\r
36288         DICK GRUEN: V25 3 AUG 68\r
36289 \r
36290                                 ;LIST UNDEFINED GLOBALS\r
36291 \r
36292         001332' 260740  000652' PMS:    PUSHJ   P,FSCN1 ;LOAD FILES FIRST\r
36293         001333' 325200  001356'         JUMPGE  S,PMS3          ;JUMP IF NO UNDEFINED GLOBALS\r
36294         001334' 523000  000042          HLLOS 42                ;SET SOME ERROR TO ABORT EXECUTION\r
36295         001335' 260740  001577'         PUSHJ   P,FCRLF         ;START THE MESSAGE\r
36296         001336' 260740  001553'         PUSHJ   P,PRQ           ;PRINT ?\r
36297         001337' 574500  000004          HLRE    W,S             ;COMPUTE NO. OF UNDEF. GLOBALS\r
36298         001340' 217000  000012          MOVMS     W\r
36299         001341' 242500  777777          LSH     W,-1            ;<LENGTH OF LIST>/2\r
36300         001342' 260740  001410'         PUSHJ     P,PRNUM0\r
36301         001343' 265700  001541'         JSP     A,ERRPT7\r
36302         001344' 655644  454651          SIXBIT    /UNDEFINED GLOBALS@/\r
36303         001345' 564544  004754\r
36304         001346' 574241  546340\r
36305         001347' 200700  000004          MOVE    A,S             ;LOAD UNDEF. POINTER\r
36306         001350' 260740  001600' PMS2:   PUSHJ     P,CRLF\r
36307         001351' 260740  001553'         PUSHJ   P,PRQ           ;PRINT ?\r
36308         001352' 260740  001404'         PUSHJ     P,PRNAM0              ;PRINT SYMBOL AND POINTER\r
36309         001353' 270700  001623'         ADD     A,SE3\r
36310         001354' 321700  001350'         JUMPL     A,PMS2\r
36311         001355' 260740  001600'         PUSHJ   P,CRLF          ;SPACE AFTER LISTING\r
36312 \r
36313                                 ;LIST NUMBER OF MULTIPLY DEFINED GLOBALS\r
36314 \r
36315         001356' 336500  001631' PMS3:   SKIPN   W,MDG           ;ANY MULTIPLY DEFINED GLOBALS\r
36316         001357' 254000  001372'         JRST    PMS4            ;NO, EXCELSIOR\r
36317         001360' 523000  000042          HLLOS 42                ;ANOTHER WAY TO LOSE\r
36318         001361' 260740  001577'         PUSHJ   P,FCRLF         ;ROOM AT THE TOP\r
36319         001362' 260740  001553'         PUSHJ   P,PRQ           ;PRINT ?\r
36320         001363' 260740  001410'         PUSHJ   P,PRNUM0        ;NUMBER OF MULTIPLES\r
36321         001364' 265700  001541'         JSP     A,ERRPT7        ;REST OF MESSAGE\r
36322         001365' 556554  645160          SIXBIT  ?MULTIPLY DEFINED GLOBALS@?\r
36323         001366' 547100  444546\r
36324         001367' 515645  440047\r
36325         001370' 545742  415463\r
36326         001371' 400000  000000\r
36327         001372' 603040  040000  PMS4:   TLNE    N,AUXSWE        ;AUXILIARY OUTPUT DEVICE?\r
36328         001373' 067100  000000          OUTPUT  2,              ;INSURE A COMPLETE BUFFER\r
36329         001374' 263740  000000          POPJ    P,              ;RETURN\r
36330 \r
36331 \r\f1KLOAD - LOADS MACROX                 PAGE 34\r
36332         DICK GRUEN: V25 3 AUG 68\r
36333 \r
36334                                 ;ENTER FILE ON AUXILIARY OUTPUT DEVICE\r
36335 \r
36336         001375' 077100  001730' IAD2:   ENTER   2,DTOUT         ;WRITE FILE NAME IN DIRECTORY\r
36337         001376' 254000  001400'         JRST    IMD3            ;NO MORE DIRECTORY SPACE\r
36338         001377' 263740  000000          POPJ    P,\r
36339 \r
36340         001400' 265700  001462' IMD3:   JSP     A,ERRPT         ;DIRECTORY FULL ERROR\r
36341         001401' 445162  160046          SIXBIT    /DIR. FULL@/\r
36342         001402' 655454  400000\r
36343         001403' 254000  000042'         JRST    LD2\r
36344 \r
36345                                 ;PRINT THE 6 DIGIT OCTAL ADDRESS IN W\r
36346 \r
36347                                 ;       ACCUMULATORS USED: D,T,V\r
36348 \r
36349         001404' 200556  000001  PRNAM0:   MOVE  C,1(A)          ;LOAD SYMBOL\r
36350         001405' 200516  000002  PRNAM1:   MOVE  W,2(A)          ;LOAD VALUE\r
36351         001406' 260740  001433' PRNAM:  PUSHJ     P,PRNAME\r
36352         001407' 260740  001427' PRNUM:  PUSHJ     P,SPACES\r
36353         001410' 200440  001417' PRNUM0:   MOVE  V,PRNUM2                ;LOAD BYTE POINTER TO RH. OF W\r
36354         001411' 211340  000006          MOVNI     D,6           ;LOAD CHAR. COUNT\r
36355         001412' 134400  000011  PRNUM1:   ILDB  T,V             ;LOAD DIGIT TO BE OUTPUT\r
36356         001413' 271400  000060          ADDI    T,60            ;CONVERT FROM BINARY TO ASCII\r
36357         001414' 260740  001604'         PUSHJ     P,TYPE2\r
36358         001415' 341340  001412'         AOJL    D,PRNUM1                ;JUMP IF MORE DIGITS REMAIN\r
36359         001416' 263740  000000          POPJ    P,\r
36360 \r
36361         001417' 220300  000012  PRNUM2:   XWD   220300,W\r
36362 \r
36363                                 ;YE OLDE RECURSIVE NUMBER PRINTER\r
36364                                 ;PRINTS Q, WITH LEADING ZEROES SUPPRESSED; USES A AND T\r
36365 \r
36366         001420' 231640  000012  RCNUM:  IDIVI Q,12              ;RADIX DECIMAL\r
36367         001421' 271700  000060          ADDI A,"0"\r
36368         001422' 506717  000000          HRLM A,(P)\r
36369         001423' 332000  000015          SKIPE Q\r
36370         001424' 260740  001420'         PUSHJ P,RCNUM\r
36371         001425' 554417  000000          HLRZ T,(P)\r
36372         001426' 254000  001604'         JRST TYPE2\r
36373 \r
36374 \r\f1KLOAD - LOADS MACROX                 PAGE 35\r
36375         DICK GRUEN: V25 3 AUG 68\r
36376 \r
36377                                 ;PRINT FOUR SPACES\r
36378 \r
36379         001427' 260740  001430' SPACES:   PUSHJ     P,SP1\r
36380         001430' 260740  001431' SP1:    PUSHJ     P,SPACE\r
36381         001431' 201400  000040  SPACE:  MOVEI     T,40\r
36382         001432' 254000  001604'         JRST    TYPE2\r
36383 \r
36384                                 ;SYMBOL PRINT - RADIX 50\r
36385 \r
36386                                 ;       ACCUMULATORS USED: D,T\r
36387 \r
36388         001433' 200400  000013  PRNAME:   MOVE  T,C             ;LOAD SYMBOL\r
36389         001434' 621400  740000          TLZ     T,740000                ;ZERO CODE BITS\r
36390         001435' 211340  000006          MOVNI     D,6           ;LOAD CHAR. COUNT\r
36391         001436' 231400  000050  SPT:    IDIVI     T,50          ;THE REMAINDER IS THE NEXT CHAR.\r
36392         001437' 506457  000000          HRLM    V,(P)           ;STORE IN LH. OF PUSHDOWN LIST\r
36393         001440' 355000  000007          AOSGE     D                     ;SKIP IF NO CHARS. REMAIN\r
36394         001441' 260740  001436'         PUSHJ     P,SPT         ;RECURSIVE CALL FOR NEXT CHAR.\r
36395         001442' 554417  000000          HLRZ    T,(P)           ;LOAD FROM LH. OF PUSHDOWN LIST\r
36396         001443' 322400  001603'         JUMPE     T,TYPE                ;BLANK\r
36397         001444' 271400  000057          ADDI    T,60-1\r
36398         001445' 303400  000071          CAILE     T,71\r
36399         001446' 271400  000007          ADDI    T,101-72\r
36400         001447' 303400  000132          CAILE     T,132\r
36401         001450' 275400  000070          SUBI    T,134-44\r
36402         001451' 306400  000043          CAIN    T,43\r
36403         001452' 201400  000056          MOVEI     T,56\r
36404         001453' 254000  001604'         JRST    TYPE2\r
36405                                 ;PRINT A WORD OF SIXBIT CHARACTERS IN AC W\r
36406 \r
36407                                 ;       ACCUMULATORS USED: Q,T,D\r
36408 \r
36409         001454' 211640  000006  PWORD:  MOVNI     Q,6           ;SET CHARACTER COUNT TO SIX\r
36410         001455' 200340  001624' PWORD1:   MOVE  D,LSTPT         ;ENTER HERE WITH Q PRESET\r
36411         001456' 134400  000007  PWORD2:   ILDB  T,D             ;LOAD NEXT CHAR. TO BE OUTPUT\r
36412         001457' 260740  001603'         PUSHJ     P,TYPE                ;OUTPUT CHARACTER\r
36413         001460' 341640  001456'         AOJL    Q,PWORD2\r
36414         001461' 263740  000000          POPJ    P,\r
36415 \r
36416 \r\f1KLOAD - LOADS MACROX                 PAGE 36\r
36417         DICK GRUEN: V25 3 AUG 68\r
36418 \r
36419                                 ;ERROR MESSAGE PRINT SUBROUTINE\r
36420 \r
36421                                 ;       FORM OF CALL:\r
36422 \r
36423                                 ;       JSP     A,ERRPT\r
36424                                 ;       SIXBIT    /<MESSAGE>/\r
36425 \r
36426                                 ;       ACCUMULATORS USED: T,V,C,W\r
36427 \r
36428         001462' 661000  000020  ERRPT:  TLO     F,FCONSW        ;INSURE TTY OUTPUT\r
36429         001463' 260740  001600'         PUSHJ   P,CRLF          ;ROOM AT THE TOP\r
36430         001464' 260740  001553'         PUSHJ   P,PRQ           ;START OFF WITH ?\r
36431         001465' 261740  000015  ERRPT0:   PUSH  P,Q             ;SAVE Q\r
36432         001466' 334440  001524'         SKIPA     V,ERRPT5\r
36433         001467' 260740  001603' ERRPT1:   PUSHJ     P,TYPE\r
36434         001470' 134400  000011          ILDB    T,V\r
36435         001471' 306400  000040          CAIN    T,40\r
36436         001472' 254000  001517'         JRST    ERRPT4\r
36437         001473' 306400  000005          CAIN    T,5\r
36438         001474' 254000  001543'         JRST    ERRPT9\r
36439         001475' 302400  000003          CAIE    T,3\r
36440         001476' 254000  001467'         JRST    ERRPT1\r
36441         001477' 336540  001724'         SKIPN     C,DTIN\r
36442         001500' 254000  001517'         JRST    ERRPT4\r
36443         001501' 211640  000014          MOVNI     Q,14\r
36444         001502' 201500  000077          MOVEI     W,77\r
36445         001503' 612540  000012  ERRPT2:   TDNE  C,W\r
36446         001504' 254000  001507'         JRST    ERRPT3\r
36447         001505' 242500  000006          LSH     W,6\r
36448         001506' 341640  001503'         AOJL    Q,ERRPT2\r
36449         001507' 200500  001525' ERRPT3:   MOVE  W,ERRPT6\r
36450         001510' 260740  001455'         PUSHJ     P,PWORD1\r
36451         001511' 336500  001725'         SKIPN     W,DTIN1\r
36452         001512' 254000  001517'         JRST    ERRPT4\r
36453         001513' 242500  777772          LSH     W,-6\r
36454         001514' 661500  160000          TLO     W,160000\r
36455         001515' 211640  000004          MOVNI     Q,4\r
36456         001516' 260740  001455'         PUSHJ     P,PWORD1\r
36457         001517' 260740  001600' ERRPT4:   PUSHJ     P,CRLF\r
36458         001520' 262740  000015  ERRP41: POP     P,Q\r
36459         001521' 621000  000020          TLZ     F,FCONSW        ;ONE ERROR PER CONSOLE\r
36460         001522' 350000  000011          AOS     V               ;PROGRAM BUMMERS BEWARE:\r
36461         001523' 254020  000011          JRST    @V              ;V HAS AN INDEX OF A\r
36462 \r
36463         001524' 440616  000000  ERRPT5:   POINT     6,0(A)\r
36464         001525' 004651  544500  ERRPT6:   SIXBIT    / FILE /\r
36465 \r
36466 \r\f1KLOAD - LOADS MACROX                 PAGE 37\r
36467         DICK GRUEN: V25 3 AUG 68\r
36468 \r
36469         001526' 661000  000020  ERRPT8: TLO     F,FCONSW        ;INSURE TTY OUTPUT\r
36470         001527' 260740  001553'         PUSHJ   P,PRQ           ;START WITH ?\r
36471         001530' 305400  000140          CAIGE   T,140           ;IS IT A NON-PRINTING CHAR?\r
36472         001531' 301400  000040          CAIL    T,40\r
36473         001532' 254000  001540'         JRST    ERRP8\r
36474         001533' 261740  000010          PUSH    P,T\r
36475         001534' 201400  000136          MOVEI     T,136         ;UP ARROW\r
36476         001535' 260740  001604'         PUSHJ     P,TYPE2\r
36477         001536' 262740  000010          POP     P,T\r
36478         001537' 271400  000100          ADDI    T,100           ;CONVERT TO PRINTING CHAR.\r
36479         001540' 260740  001604' ERRP8:  PUSHJ     P,TYPE2\r
36480         001541' 260740  001431' ERRPT7:   PUSHJ     P,SPACE\r
36481         001542' 254000  001465'         JRST    ERRPT0\r
36482 \r
36483         001543' 201460  000011  ERRPT9:   MOVEI     V,@V\r
36484         001544' 261740  000011          PUSH    P,V\r
36485         001545' 265700  001541'         JSP     A,ERRPT7\r
36486         001546' 515454  454741          SIXBIT  ?ILLEGAL -LOADER@?\r
36487         001547' 540015  545741\r
36488         001550' 444562  400000\r
36489         001551' 262740  000011          POP     P,V\r
36490         001552' 254000  001520'         JRST    ERRP41\r
36491 \r
36492                                 ;PRINT QUESTION MARK\r
36493 \r
36494         001553' 261740  000010  PRQ:    PUSH    P,T             ;SAVE\r
36495         001554' 201400  000077          MOVEI   T,"?"           ;PRINT ?\r
36496         001555' 260740  001604'         PUSHJ   P,TYPE2         ;...\r
36497         001556' 262740  000010          POP     P,T             ;RESTORE\r
36498         001557' 263740  000000          POPJ    P,              ;RETURN\r
36499 \r
36500 \r\f1KLOAD - LOADS MACROX                 PAGE 38\r
36501         DICK GRUEN: V25 3 AUG 68\r
36502 \r
36503                                 ;INPUT - OUTPUT INTERFACE\r
36504 \r
36505                                 ;BINARY INPUT SUBROUTINE - RETURNS A WORD IN W\r
36506                                 IFE K,<\r
36507                                 WORDPR: PUSHJ   P,WORD          ;GET FIRST WORD OF PAIR\r
36508                                         MOVE    C,W             ;KEEP IT HANDY>\r
36509         001560' 377000  001723' WORD:   SOSG    BUFR2           ;SKIP IF BUFFER NOT EMPTY\r
36510         001561' 254000  001564'         JRST    WORD2\r
36511         001562' 134500  001722' WORD1:  ILDB    W,BUFR1         ;PICK UP 36 BIT WORD\r
36512         001563' 263740  000000          POPJ    P,\r
36513 \r
36514         001564' 066040  000000  WORD2:  INPUT     1,                    ;GET NEXT BUFFER LOAD\r
36515         001565' 062040  000012          STATUS    1,W           ;GET DEVICE STATUS FROM MONITOR\r
36516         001566' 602500  020000          TRNE    W,IODEND                ;TEST FOR EOF\r
36517         001567' 254000  000631'         JRST    EOF             ;END OF FILE EXIT\r
36518         001570' 606500  740000          TRNN    W,IOBAD         ;TEST FOR DATA ERROR\r
36519         001571' 254000  001562'         JRST    WORD1           ;DATA OK - CONTINUE LOADING\r
36520         001572' 265700  001462'         JSP     A,ERRPT         ;DATA ERROR - PRINT MESSAGE\r
36521         001573' 515660  656400          SIXBIT    /INPUT ERROR#/\r
36522         001574' 456262  576203\r
36523         001575' 254000  000042'         JRST    LD2             ;GO TO ERROR RETURN\r
36524                                 ;TYPEOUT SUBROUTINE - THE CHARACTER SUPPLIED IN T IS CONVERTED TO ASCII\r
36525                                 ;AND IS OUTPUT ON THE CONSOLE AND/OR THE SPECIFIED LOADER MAP OUTPUT\r
36526                                 ;DEVICE\r
36527 \r
36528         001576' 260740  001600' CRLFLF:   PUSHJ     P,CRLF\r
36529         001577' 661000  000020  FCRLF:  TLO     F,FCONSW        ;INSURE TTY OUTPUT\r
36530         001600' 201400  000015  CRLF:   MOVEI     T,15          ;CARRIAGE RETURN LINE FEED\r
36531         001601' 260740  001604'         PUSHJ     P,TYPE2\r
36532         001602' 201400  777752          MOVEI     T,12-40               ;LINE FEED IN PSEUDO SIXBIT\r
36533         001603' 201410  000040  TYPE:   MOVEI     T,40(T)               ;CONVERT SIXBIT TO ASCII\r
36534         001604' 607040  020000  TYPE2:  TLNN    N,AUXSWI        ;IS THER AN AUXILIARY DEVICE?\r
36535         001605' 254000  001615'         JRST    TYPE3           ;NO, DONT OUTPUT TO IT\r
36536         001606' 667040  040000          TLON    N,AUXSWE        ;IS AUX. DEV. ENTERED?\r
36537         001607' 260740  001375'         PUSHJ   P,IAD2          ;NOPE, DO SO!\r
36538         001610' 377000  001720'         SOSG    ABUF2           ;SPACE LEFT IN BUFFER?\r
36539         001611' 067100  000000          OUTPUT  2,              ;CREATE A NEW BUFFER\r
36540         001612' 136400  001717'         IDPB    T,ABUF1         ;DEPOSIT CHARACTER\r
36541         001613' 607000  000020          TLNN    F,FCONSW        ;FORCE OUTPUT TO CONSOLE TOO?\r
36542         001614' 263740  000000          POPJ    P,              ;NOPE\r
36543         001615' 336000  001712' TYPE3:  SKIPN   BUFO2           ;END OF BUFFER\r
36544         001616' 067140  000000          OUTPUT  3,              ;FORCE OUTPUT NOW\r
36545         001617' 136400  001711'         IDPB    T,BUFO1         ;DEPOSIT CHARACTER\r
36546         001620' 306400  000012          CAIN    T,12            ;END OF LINE\r
36547         001621' 067140  000000          OUTPUT  3,              ;FORCE AN OUTPUT\r
36548         001622' 263740  000000          POPJ    P,\r
36549 \r
36550 \r\f1KLOAD - LOADS MACROX                 PAGE 39\r
36551         DICK GRUEN: V25 3 AUG 68\r
36552 \r
36553         001623' 000002  000002  SE3:    XWD     2,2             ;SYMBOL POINTER INCREMENT\r
36554         001624' 440600  000012  LSTPT:  POINT     6,W           ;CHARACTER POINTER TO W\r
36555         001625' 777737  001631' PDLPT:  XWD     -41,PDLST-1;    INITIAL PUSHDOWN POINTER\r
36556         001626' 034372  246575  COMM:   SQUOZE    0,.COMM.\r
36557         001627' 000000  000000  PDSAV:  0                               ;SAVED PUSHDOWN POINTER\r
36558         001630' 000000  000000  COMSAV:   0                             ;LENGTH OF COMMON\r
36559         001631' 000000  000000  MDG:    0                       ;COUNTER FOR MUL DEF GLOBALS\r
36560         001632'                 PDLST:  BLOCK   40\r
36561 \r
36562         001672' 000000  000000  F.C:    0\r
36563         001673' 000000  000000          0       ;STORE N HERE\r
36564         001674' 000000  000000          0       ;STORE X HERE\r
36565         001675' 000000  000000          0       ;STORE H HERE\r
36566         001676' 000000  000000          0       ;STORE S HERE\r
36567         001677' 000000  000000          0       ;STORE R HERE\r
36568         001700' 000000  000000  B.C:    0\r
36569         001701' 000000  000000  F.I:    0                       ;INITIAL F - FLAGS\r
36570         001702' 000000  000000          0                       ;INITIAL N\r
36571         001703' 000011  002440'         XWD     V,LDEND         ;INITIAL X - LOAD PROGRAM AFTER LOADER\r
36572         001704' 000000  002600'         EXP     LDEND+JOBPRO    ;INITIAL H - INITIAL PROG BREAK\r
36573         001705' 000000  000000          0                       ;INITIAL S\r
36574         001706' 000012  000140          XWD     W,JOBPRO        ;INITIAL R - INITIAL RELOC\r
36575         001707' 000000  000000          0                       ;INITIAL B\r
36576 \r\f1KLOAD - LOADS MACROX                 PAGE 40\r
36577         DICK GRUEN: V25 3 AUG 68\r
36578 \r
36579                                 ;BUFFER HEADERS AND HEADER HEADERS\r
36580 \r
36581         001710' 000000  000000  BUFO:   0                               ;CONSOLE INPUT HEADER HEADER\r
36582         001711' 000000  000000  BUFO1:  0\r
36583         001712' 000000  000000  BUFO2:  0\r
36584 \r
36585         001713' 000000  000000  BUFI:   0                               ;CONSOLE OUTPUT HEADER HEADER\r
36586         001714' 000000  000000  BUFI1:  0\r
36587         001715' 000000  000000  BUFI2:  0\r
36588 \r
36589         001716' 000000  000000  ABUF:   0                       ;AUXILIARY OUTPUT HEADER HEADER\r
36590         001717' 000000  000000  ABUF1:  0\r
36591         001720' 000000  000000  ABUF2:  0\r
36592 \r
36593         001721' 000000  000000  BUFR:   0                               ;BINARY INPUT HEADER HEADER\r
36594         001722' 000000  000000  BUFR1:  0\r
36595         001723' 000000  000000  BUFR2:  0\r
36596 \r
36597         001724' 000000  000000  DTIN:   0                               ;DECTAPE INPUT BLOCK\r
36598         001725' 000000  000000  DTIN1:  0\r
36599         001726' 000000  000000          0\r
36600         001727' 000000  000000  DTIN2:  0\r
36601 \r
36602         001730' 000000  000000  DTOUT:  0                               ;DECTAPE OUTPUT BLOCK\r
36603         001731' 000000  000000  DTOUT1:   0\r
36604         001732' 000000  000000          0\r
36605         001733' 000000  000000          0\r
36606 \r
36607                         000052          TTYL=52                 ;TWO TTY BUFFERS\r
36608                                 IFE K,< BUFL=406                ;TWO DTA BUFFERS FOR LOAD>\r
36609                         000203  IFN K,< BUFL=203                ;ONE DTA BUFFER FOR LOAD>\r
36610                         000203          ABUFL=203               ;ONE DTA BUFFER FOR AUX DEV\r
36611         001734'                 TTY1:   BLOCK     TTYL          ;TTY BUFFER AREA\r
36612         002006'                 BUF1:   BLOCK   BUFL            ;LOAD BUFFER AREA\r
36613         002211'                 AUX:    BLOCK   ABUFL           ;AUX BUFFER AREA\r
36614         002414'                 ZEROS:  REPEAT 4,<0>\r
36615         002414' 000000  000000\r
36616         002415' 000000  000000\r
36617         002416' 000000  000000\r
36618         002417' 000000  000000\r
36619 \r
36620                                 IFN RPGSW,<CTLIN:       BLOCK 3\r
36621                                 CTLNAM: BLOCK 3\r
36622                                 CTLBUF: BLOCK 203+1\r
36623                                 >\r
36624 \r\f1KLOAD - LOADS MACROX                 PAGE 41\r
36625         DICK GRUEN: V25 3 AUG 68\r
36626 \r
36627                         040000  IOBKTL=40000\r
36628                         400000  IOIMPM=400000\r
36629                         200000          IODERR=200000\r
36630                         100000          IODTER=100000\r
36631                         020000          IODEND=20000\r
36632 \r
36633                         740000  IOBAD=IODERR+IODTER+IOBKTL+IOIMPM\r
36634 \r
36635                                         INTERN    PWORD,DTIN,DTOUT,LDEND\r
36636                                         INTERN    WORD,LD,BEG,PDLST,LOAD\r
36637                                         INTERN    CRLF,TYPE,PMS,PRMAP\r
36638                                         INTERN    F,P,X,H,S,R,B,N,T,V,W,C,E,Q,A,D\r
36639 \r
36640                                         EXTERN  JOBDDT,JOBFF,JOBSA,JOBREL,JOBSYM,JOBUSY,JOB41\r
36641 \r
36642                                 ;END HERE IF 1K LOADER REQUESTED.\r
36643         002420'                 IFN K,  <LITS:  LIT\r
36644         002420' 444566  435062\r
36645         002421' 656460  435462\r
36646         002422' 545741  444562\r
36647         002423' 251656  000000\r
36648         002424' 530043  576245\r
36649         002425' 435041  515600\r
36650         002426' 545142  240000\r
36651         002427' 200500  002426'\r
36652         002430' 202500  001724'\r
36653         002431' 260740  000626'\r
36654         002432' 621000  000002\r
36655         002433' 254000  000527'\r
36656         002434' 545142  242000\r
36657         002435' 525742  444164\r
36658         002436' 624151  440000\r
36659         002437' 077777  777777\r
36660         002440'                         VAR\r
36661                         000000' LDEND:  END     LD\r
36662 \r
36663 NO ERRORS DETECTED\r
36664 \r
36665 PROGRAM BREAK IS 002440\r
36666 \r
36667 8K CORE USED\r
36668 \r\f1KLOAD - LOADS MACROX                 PAGE 42\r
36669         SYMBOL TABLE\r
36670 \r
36671                 000456  \r
36672 A               000016  INT\r
36673 ABUF            001716' \r
36674 ABUF1           001717' \r
36675 ABUF2           001720' \r
36676 ABUFL           000203  \r
36677 ALLFLG          000001  SPD\r
36678 ASW             000100  SPD\r
36679 AUX             002211' \r
36680 AUXSWE          040000  SPD\r
36681 AUXSWI          020000  SPD\r
36682 B               000006  INT\r
36683 B.C             001700' \r
36684 BEG             000000' INT\r
36685 BLTSET          000251' \r
36686 BLTSYM          000000  \r
36687 BUF1            002006' \r
36688 BUFI            001713' \r
36689 BUFI1           001714' \r
36690 BUFI2           001715' \r
36691 BUFL            000203  \r
36692 BUFO            001710' \r
36693 BUFO1           001711' \r
36694 BUFO2           001712' \r
36695 BUFR            001721' \r
36696 BUFR1           001722' \r
36697 BUFR2           001723' \r
36698 C               000013  INT\r
36699 CALLEX          000007' \r
36700 CDDTGT          000005  SPD\r
36701 CDDTOU          000003  SPD\r
36702 CEXIT           000012  SPD\r
36703 CHAIN3          000350' \r
36704 CHN5            000001  \r
36705 CHNBLT          000014  \r
36706 CHNC            000307' \r
36707 CHNERR          000010  \r
36708 CHNR            000310' \r
36709 CHNSYM          001110' \r
36710 COMFLG          000004  SPD\r
36711 COMM            001626' \r
36712 COMSAV          001630' \r
36713 CPOPJ1          001233' \r
36714 CRLF            001600' INT\r
36715 CRLFLF          001576' \r
36716 CSETDD          000002  SPD\r
36717 CSW             000001  SPD\r
36718 CTLSET          000004' \r
36719 D               000007  INT\r
36720 DDSW            004000  SPD\r
36721 DISPL           000005  \r
36722 DSW             100000  SPD\r
36723 DSYMSW          001000  SPD\r
36724 \r\f1KLOAD - LOADS MACROX                 PAGE 42-1\r
36725         SYMBOL TABLE\r
36726 \r
36727 DTIN            001724' INT\r
36728 DTIN1           001725' \r
36729 DTIN2           001727' \r
36730 DTOUT           001730' INT\r
36731 DTOUT1          001731' \r
36732 E               000014  INT\r
36733 EOF             000631' \r
36734 EOF1            000632' \r
36735 EOF2            000633' \r
36736 ERRP41          001520' \r
36737 ERRP8           001540' \r
36738 ERRPT           001462' \r
36739 ERRPT0          001465' \r
36740 ERRPT1          001467' \r
36741 ERRPT2          001503' \r
36742 ERRPT3          001507' \r
36743 ERRPT4          001517' \r
36744 ERRPT5          001524' \r
36745 ERRPT6          001525' \r
36746 ERRPT7          001541' \r
36747 ERRPT8          001526' \r
36748 ERRPT9          001543' \r
36749 ESW             000002  SPD\r
36750 EXEQSW          002000  SPD\r
36751 EXPAND          000000  \r
36752 F               000000  INT\r
36753 F.C             001672' \r
36754 F.I             001701' \r
36755 F4LIB           010000  SPD\r
36756 FCONSW          000020  SPD\r
36757 FCRLF           001577' \r
36758 FIXW            001060' \r
36759 FIXWL           001067' \r
36760 FIXWP           001050' \r
36761 FSCN            000634' \r
36762 FSCN1           000652' \r
36763 FSCN2           000655' \r
36764 FSW             000010  SPD\r
36765 FULLC           001141' \r
36766 FULLSW          000200  SPD\r
36767 H               000003  INT\r
36768 HIGH            001145' \r
36769 HIGH0           001143' \r
36770 HIGH3           001152' \r
36771 IAD2            001375' \r
36772 ILC             001205' \r
36773 ILD             000515' \r
36774 ILD1            000522' \r
36775 ILD2            000527' \r
36776 ILD3            000535' \r
36777 ILD4            000541' \r
36778 ILD5            000547' \r
36779 ILD6            000525' \r
36780 \r\f1KLOAD - LOADS MACROX                 PAGE 42-2\r
36781         SYMBOL TABLE\r
36782 \r
36783 ILD9            000543' \r
36784 IMD3            001400' \r
36785 IOBAD           740000  \r
36786 IOBKTL          040000  \r
36787 IODEND          020000  \r
36788 IODERR          200000  \r
36789 IODTER          100000  \r
36790 IOIMPM          400000  \r
36791 IOWDP           000013  \r
36792 IOWDPP          000363' \r
36793 ISAFLG          000002  SPD\r
36794 ISW             020000  SPD\r
36795 JOB41           000330' EXT\r
36796 JOBBLT          000134  SPD\r
36797 JOBCHN          000131  SPD\r
36798 JOBDDT          000331' EXT\r
36799 JOBFF           000516' EXT\r
36800 JOBPRO          000140  SPD\r
36801 JOBREL          001121' EXT\r
36802 JOBSA           000332' EXT\r
36803 JOBSYM          000327' EXT\r
36804 JOBUSY          000247' EXT\r
36805 K               000001  SPD\r
36806 LD              000000' INT\r
36807 LD2             000042' \r
36808 LD2B            000050' \r
36809 LD2BA           000054' \r
36810 LD2D            000057' \r
36811 LD2DA           000057' \r
36812 LD2Q            000042' \r
36813 LD3             000063' \r
36814 LD3A            000100' \r
36815 LD3AA           000066' \r
36816 LD4             000110' \r
36817 LD5             000115' \r
36818 LD5A            000127' \r
36819 LD5B            000134' \r
36820 LD5B1           000137' \r
36821 LD5C            000145' \r
36822 LD5C1           000165' \r
36823 LD5D            000201' \r
36824 LD5E            000203' \r
36825 LD5E1           000205' \r
36826 LD5E2           000215' \r
36827 LD5E3           000225' \r
36828 LD5E5           000212' \r
36829 LD6             000372' \r
36830 LD6A            000365' \r
36831 LD6A1           000370' \r
36832 LD6B            000376' \r
36833 LD6C            000430' \r
36834 LD6D            000433' \r
36835 LD7             000437' \r
36836 \r\f1KLOAD - LOADS MACROX                 PAGE 42-3\r
36837         SYMBOL TABLE\r
36838 \r
36839 LD7A            000442' \r
36840 LD7B            000446' \r
36841 LD7C            000452' \r
36842 LD7D            000460' \r
36843 LD8             000465' \r
36844 LD9             000476' \r
36845 LDAC            000000  \r
36846 LDDT            000614' \r
36847 LDDT0           000616' \r
36848 LDDT1           000622' \r
36849 LDDT2           000626' \r
36850 LDDT3           000627' \r
36851 LDDTX           000613' \r
36852 LDEND           002440' INT\r
36853 LDF             000656' \r
36854 LIB             000572' \r
36855 LIB1            000575' \r
36856 LIB2            000577' \r
36857 LIB3            000605' \r
36858 LIBF            000557' \r
36859 LIBF1           000564' \r
36860 LIBF2           000565' \r
36861 LIBSW           004000  SPD\r
36862 LITS            002420' \r
36863 LOAD            000657' INT\r
36864 LOAD1           000660' \r
36865 LOAD1A          000661' \r
36866 LOAD2           000676' \r
36867 LOAD3           000703' \r
36868 LOAD4           000704' \r
36869 LOAD4A          000704' \r
36870 LOCD            001211' \r
36871 LOSEBI          000006  \r
36872 LRAID           000610' \r
36873 LRAIDX          000607' \r
36874 LSTPT           001624' \r
36875 MDG             001631' \r
36876 N               000001  INT\r
36877 NAME            001162' \r
36878 NAME1           001170' \r
36879 NAME2           001201' \r
36880 NOEX            000275' \r
36881 NSW             200000  SPD\r
36882 NUTS            000002' \r
36883 P               000017  INT\r
36884 PDLPT           001625' \r
36885 PDLST           001632' INT\r
36886 PDSAV           001627' \r
36887 PMS             001332' INT\r
36888 PMS2            001350' \r
36889 PMS3            001356' \r
36890 PMS4            001372' \r
36891 PP              000000  \r
36892 \r\f1KLOAD - LOADS MACROX                 PAGE 42-4\r
36893         SYMBOL TABLE\r
36894 \r
36895 PPDL            000060  SPD\r
36896 PRMAP           001261' INT\r
36897 PRMAP1          001301' \r
36898 PRMAP2          001316' \r
36899 PRMAP3          001327' \r
36900 PRMAP4          001330' \r
36901 PRMAP5          001332' \r
36902 PRNAM           001406' \r
36903 PRNAM0          001404' \r
36904 PRNAM1          001405' \r
36905 PRNAME          001433' \r
36906 PRNUM           001407' \r
36907 PRNUM0          001410' \r
36908 PRNUM1          001412' \r
36909 PRNUM2          001417' \r
36910 PROG            000710' \r
36911 PROG1           000722' \r
36912 PRQ             001553' \r
36913 PRWORD          001235' \r
36914 PWORD           001454' INT\r
36915 PWORD1          001455' \r
36916 PWORD2          001456' \r
36917 Q               000015  INT\r
36918 R               000005  INT\r
36919 RCNUM           001420' \r
36920 REMSYM          001215' \r
36921 REWSW           002000  SPD\r
36922 RPGSW           000000  \r
36923 RWORD           001243' \r
36924 RWORD1          001245' \r
36925 RWORD2          001251' \r
36926 RWORD3          001255' \r
36927 S               000004  INT\r
36928 SAS1            000234' \r
36929 SASYM           000227' \r
36930 SDEF            001226' \r
36931 SDEF1           001227' \r
36932 SDEF2           001231' \r
36933 SE3             001623' \r
36934 SFULLC          001132' \r
36935 SKIPSW          000004  SPD\r
36936 SLASH           000100  SPD\r
36937 SLIBSW          000400  SPD\r
36938 SP1             001430' \r
36939 SPACE           001431' \r
36940 SPACES          001427' \r
36941 SPT             001436' \r
36942 SREQ            001224' \r
36943 SSW             400000  SPD\r
36944 START           001157' \r
36945 SVA             001001' \r
36946 SYM             000725' \r
36947 SYM1            000741' \r
36948 \r\f1KLOAD - LOADS MACROX                 PAGE 42-5\r
36949         SYMBOL TABLE\r
36950 \r
36951 SYM1A           000755' \r
36952 SYM1B           000757' \r
36953 SYM1C           000761' \r
36954 SYM1D           000762' \r
36955 SYM2            000770' \r
36956 SYM2A           001002' \r
36957 SYM2B           000771' \r
36958 SYM2C           001000' \r
36959 SYM2W           001117' \r
36960 SYM2W1          000775' \r
36961 SYM2WA          001123' \r
36962 SYM3            001006' \r
36963 SYM3A           001035' \r
36964 SYM3A1          001042' \r
36965 SYM3B           001043' \r
36966 SYM3X           001031' \r
36967 SYM3X1          001016' \r
36968 SYM3X2          001027' \r
36969 SYM4            001125' \r
36970 SYM4A           001130' \r
36971 SYMFIX          001072' \r
36972 SYMPT           000730' \r
36973 SYMSW           040000  SPD\r
36974 T               000010  INT\r
36975 TTY1            001734' \r
36976 TTYL            000052  \r
36977 TYPE            001603' INT\r
36978 TYPE2           001604' \r
36979 TYPE3           001615' \r
36980 V               000011  INT\r
36981 W               000012  INT\r
36982 WORD            001560' INT\r
36983 WORD1           001562' \r
36984 WORD2           001564' \r
36985 X               000002  INT\r
36986 ZEROS           002414' \r
36987 \fPPPPPPPPPPPP            IIIIIIIII         PPPPPPPPPPPP                                                                  \r
36988 PPPPPPPPPPPP            IIIIIIIII         PPPPPPPPPPPP                                                                  \r
36989 PPPPPPPPPPPP            IIIIIIIII         PPPPPPPPPPPP                                                                  \r
36990 PPP         PPP            III            PPP         PPP                                                               \r
36991 PPP         PPP            III            PPP         PPP                                                               \r
36992 PPP         PPP            III            PPP         PPP                                                               \r
36993 PPP         PPP            III            PPP         PPP                                                               \r
36994 PPP         PPP            III            PPP         PPP                                                               \r
36995 PPP         PPP            III            PPP         PPP                                                               \r
36996 PPPPPPPPPPPP               III            PPPPPPPPPPPP                                                                  \r
36997 PPPPPPPPPPPP               III            PPPPPPPPPPPP                                                                  \r
36998 PPPPPPPPPPPP               III            PPPPPPPPPPPP                                                                  \r
36999 PPP                        III            PPP                                                                           \r
37000 PPP                        III            PPP                                                                           \r
37001 PPP                        III            PPP                                                                           \r
37002 PPP                        III            PPP                                                                           \r
37003 PPP                        III            PPP                                                                           \r
37004 PPP                        III            PPP                                                                           \r
37005 PPP                     IIIIIIIII         PPP                                                                           \r
37006 PPP                     IIIIIIIII         PPP                                                                           \r
37007 PPP                     IIIIIIIII         PPP                                                                           \r
37008 \r
37009 \r
37010 \r
37011 \r
37012 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
37013 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
37014 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
37015 LLL                  SSS                        TTT                                                                     \r
37016 LLL                  SSS                        TTT                                                                     \r
37017 LLL                  SSS                        TTT                                                                     \r
37018 LLL                  SSS                        TTT                                                                     \r
37019 LLL                  SSS                        TTT                                                                     \r
37020 LLL                  SSS                        TTT                                                                     \r
37021 LLL                     SSSSSSSSS               TTT                                                                     \r
37022 LLL                     SSSSSSSSS               TTT                                                                     \r
37023 LLL                     SSSSSSSSS               TTT                                                                     \r
37024 LLL                              SSS            TTT                                                                     \r
37025 LLL                              SSS            TTT                                                                     \r
37026 LLL                              SSS            TTT                                                                     \r
37027 LLL                              SSS            TTT                                                                     \r
37028 LLL                              SSS            TTT                                                                     \r
37029 LLL                              SSS            TTT                                                                     \r
37030 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
37031 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
37032 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
37033 \r
37034 \r
37035 \r
37036 \r
37037 Request created: 24-April-1978  11:23:08\r
37038 File: DSKB1 :PIP   .LST   [8,200] Created: 20-April-1967 11:19:00 Printed: 24-April-1978 11:22:30
37039 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1722 \r
37040 File will be deleted after printing\r
37041 \f\rPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 1\r
37042         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37043 \r
37044                                 00010   TITLE PIP V.030 MOD SANDERS/DBP 19-AUG-71\r
37045                                 00020   SUBTTL  VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37046 \r
37047                                 00040   ;PERIPHERAL INTERCHANGE PROGRAM\r
37048                                 00050   ;"COPYRIGHT 1968, 1969, DIGITAL EQUIPMENT CORP.,MAYNARD,MASS.,U.S.A.\r
37049 \r
37050                         000030  00070   VPIP==30                ;VERSION NUMBER\r
37051                         000005  00080   SVER==5         ; SANDERS VERSION\r
37052 \r
37053 \r
37054                                 00110   ;WCH==0  PIP IS ASSEMBLED FOR PDP-10 AND ASSUMES NEW FORMAT DECTAPES.\r
37055                                 00120   ;WCH==1  PIP IS ASSEMBLED FOR PDP-6 AND ASSUMES OLD FORMAT DECTAPES.\r
37056 \r
37057                                 00140   ;DISK30==0 PIP IS ASSEMBLED TO RUN WITH 10/40, 10/50 MONITOR SYSTEMS.\r
37058                                 00150   ;DISK30==1 PIP IS ASSEMBLED TO RUN WITH 10/30 DISK SYSTEM.\r
37059 \r
37060                                 00170   ;BLOC0==0 PIP ALLOWS COPYING OF BLOCK0 (DECTAPE).\r
37061                                 00180   ;BLOC0==1 PIP WILL NOT ALLOW BLOCK0 TO BE COPIED.\r
37062 \r
37063                                 00200   ;RIMSW==0 /Y SWITCH OPTION UNAVAILABLE. (ALSO UNAVAILABLE FOR OLD FORMAT DECTAPES)\r
37064                                 00210   ;RIMSW==1 /Y SWITCH OPTION AVAILABLE.\r
37065 \r
37066                                 00230   ;FTDSK==0       NON DSK SYSTEM.NO CCL.SAVES CORE ON 10/40\r
37067                                 00240   ;FTDSK==1       10/50 DSK SYSTEM,ALSO 10/30 DSK SYSTEM\r
37068 \r
37069 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 2\r
37070         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37071 \r
37072 \r
37073                                 00280   ;CONDITIONAL ASSEMBLY SWITCH SETUP (NORMAL CONFIGURATION)\r
37074                                 00290   ;---------------------------------\r
37075 \r
37076                                 00310   IFNDEF WCH,     <WCH==0>\r
37077                                 00320   IFNDEF DISK30,  <DISK30==0>\r
37078                                 00330   IFNDEF BLOC0,   <BLOC0==0>\r
37079                                 00340   IFNDEF FTDSK,   <FTDSK==0>\r
37080                                 00350   IFN WCH,        <RIMSW==0>\r
37081                                 00360   IFNDEF RIMSW,   <RIMSW==0>\r
37082                                 00370   IFNDEF K,       <K==0>\r
37083 \r
37084 \r
37085 \r
37086 \r
37087         000124                  00420           LOC 124\r
37088         000124  000000  000000  00430           PIP1            ;SET REENTER ADDRESS\r
37089         000000'                 00440           RELOC\r
37090         000137                  00450           LOC 137\r
37091         000137  000005  000030  00460           XWD SVER,VPIP\r
37092         000000'                 00470           RELOC\r
37093 \r
37094 \r
37095                                 00500           MLON\r
37096                                 00510   IFDEF SALL,     <SALL>\r
37097 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 3\r
37098         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37099 \r
37100 \r
37101                                 00540   EXTERN JOBFF,JOBSA,JOBREL\r
37102 \r
37103                                 00560   ;FLAG ASSIGNMENTS (RIGHT HALF)\r
37104 \r
37105                         000001  00580   LINE==1         ;ASCII LINE MODE PROCESSING\r
37106                         000002  00590   BMOD==2         ;BINARY PROCESSING\r
37107                         000004  00600   TBMOD==4        ;SUPPRESS TRAILING SP, CHANGE MULTIPLE SP TO TABS\r
37108                         000010  00610   DFLG==10        ;DELETE FILES MODE\r
37109                         000020  00620   LFLG==20        ;LIST DIRECTORY\r
37110                         000040  00630   NSMOD==40       ;IGNORE INPUT SEQUENCE NUMBERS\r
37111                         000100  00640   RFLG==100       ;RENAME FILE MODE\r
37112                         000200  00650   SQMOD==200      ;GENERATE SEQUENCE NUMBERS\r
37113                         000400  00660   STS==400        ;END OF LINE SEEN, OUTPUT SEQUENCE NUMBER NEXT\r
37114                         001000  00670   SPMOD==1000     ;SUPPRESS TRAILING SPACES\r
37115                         002000  00680   XFLG==2000      ;COPY DECTAPE MODE\r
37116                         004000  00690   ZFLG==4000      ;CLEAR DECTAPE DIRECTORY\r
37117                         010000  00700   SUS==10000      ;SEQUENCE NUMBER GENERATION IN PROGRESS\r
37118                         020000  00710   SPOK==20000     ;SPACE WAS LAST CHARACTER\r
37119                         040000  00720   ESQ==40000      ;STOP OUTPUTTING SEQ NUM, RESUME OUTPUTTING DATA\r
37120                         100000  00730   SNI==100000     ;DO NOT INCREMENT SEQUENCE NUMBER\r
37121                         200000  00740   MTFLG==200000   ;MTA REQUEST RECEIVED\r
37122                         400000  00750   OSFLG==400000   ;GENERATE SEQ. NOS. INCR. BY ONE\r
37123 \r
37124                                 00770   ;FLAG ASSIGNMENTS (LEFT HALF)\r
37125 \r
37126                         000001  00790   OFLG==1         ;BLOCK 0 COPY\r
37127                         000002  00800   RIMFLG==2       ;RIM FORMAT INPUT /OUT TO DTA. ILLEG IF RIMSW==0,OR WCH==1\r
37128                         000004  00810   PFLG==4         ;FORTRAN PROGRAM OUTPUT FORMAT CONVERSION\r
37129                         000010  00820   PCONV==10       ;COLUMN 1 CONVERSION IN PROGRESS\r
37130                         000020  00830   NEWFIL==20      ;NEW FILE JUST INITIATED\r
37131                         000040  00840   CHKFLG==40      ;PARENTHESES CHECK MODE\r
37132                         000100  00850   IFLG==100       ;SELECT IMAGE MODE\r
37133                         000200  00860   GFLG==200       ;KEEP GOING IF THERE ARE I/O ERRORS\r
37134                         000400  00870   IBFLG==400      ;SELECT IMAGE BINARY MODE\r
37135                         001000  00880   JFLG==1000      ;NON-STANDARD MODE\r
37136 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 4\r
37137         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37138 \r
37139                                 00900   ;AUXFLG ASSIGNMENTS (LEFT HALF)\r
37140 \r
37141                         000001  00920   QFLG==1         ;PLEASE PRINT SWITCH SET\r
37142                         000002  00930   NSPROT==2       ;NON-STANDARD DISK OUTPUT PROTECTION\r
37143                         000004  00940   SBIN==4         ;36-BIT PR. ON REL. ETC. FILES\r
37144                         000020  00950   NOMORE==20      ;IGNORE ANY SWITCHES BUT MTA FROM NOW ON\r
37145                         000040  00960   CDRFLG==40      ;CONVERT COLS 73-80 TO SPACES + /C\r
37146                         000100  00970   INFOFL==100     ;FLAG USED BY ERR3A:\r
37147                         000200  00980   RSDCFL==200     ;USED FOR MERGING FILES, ==1 IF FILE HAS EXTENSION\r
37148                                 00990                   ;REL,SAV,DMP,CHN OR OTHERWISE == 0\r
37149                         000400  01000   FRSTIN==400     ;THIS IS THE FIRST INPUT FILE (USED IN FILE\r
37150                                 01010                   ;MERGE COMMAND) == 0 FOR FIRST INPUT\r
37151 \r
37152                                 01030   ;MTAREQ ASSIGNMENTS (RIGHT HALF)\r
37153 \r
37154                         000001  01050   MTAFLG==1       ;MTA ADVANCE ONE FILE\r
37155                         000002  01060   MTBFLG==2       ;MTA BACKSPACE ONE FILE\r
37156                         000004  01070   MTTFLG==4       ;MTA SKIP TP LOGICAL EOT\r
37157                         000010  01080   MTWFLG==10      ;MTA REWIND\r
37158                         000020  01090   MTFFLG==20      ;MTA MARK EOF\r
37159                         000040  01100   MTUFLG==40      ;MTA REWIND AND UNLOAD\r
37160                         000100  01110   MTDFLG==100     ;MTA ADVANCE ONE RECORD\r
37161                         000200  01120   MTPFLG==200     ;MTA BACKSPACE ONE RECORD\r
37162                         000400  01130   MT8FLG==400     ;MTA SET 800 B.P.I.\r
37163                         001000  01140   MT5FLG==1000    ;MTA SET 556 B.P.I.\r
37164                         002000  01150   MT2FLG==2000    ;MTA SET 200 B.P.I.\r
37165                         004000  01160   MTEFLG==4000    ;MTA SELECT EVEN PARITY\r
37166 \r
37167                                 01180   ;AUXFLG ASSIGNMENTS (RIGHT HALF)\r
37168 \r
37169                         000001  01200   REDFLG==1       ;==1 IF ANY FILES ARE INPUT (OTHER THAN DIRECTORIES)\r
37170                         000002  01210   SYSFLG==2       ;DEVICE IS SYS\r
37171                         000004  01220   SYSLST==4       ;LAST DEVICE WAS SYS\r
37172                         000010  01230   LPTOUT==10      ;LPT OUTPUT\r
37173                         000020  01240   FFLG==20        ;LIST SHORT DISK DIRECTORY\r
37174                         000040  01250   ONEOUT==40      ;ONE OUTPUT FILE INITIALIZED\r
37175                         000100  01260   CDRIN==100      ;CARDS IN\r
37176                         000200  01270   MTAOUT==200     ;OUTPUT TO MTA\r
37177                         000400  01280   MTAIN==400      ;INPUT FROM MTA\r
37178                         001000  01290   TTYIN==1000     ;INPUT FROM TTY\r
37179                         002000  01300   READ1==2000     ;LOOK FOUND NEW INPUT FILE, NO READ YET.\r
37180                         004000  01310   DTAOUT==4000    ;OUTPUT TO DTA\r
37181                         010000  01320   DSKOUT==10000   ;OUTPUT TO DSK\r
37182                         020000  01330   DTAIN==20000    ;INPUT FROM DTA\r
37183                         040000  01340   DSKIN==40000    ;INPUT FROM DSK\r
37184                         100000  01350   TTYOUT==100000  ;OUTPUT TO TTY\r
37185                         200000  01360   PPTIN==200000   ;INPUT FROM PTR\r
37186                         400000  01370   PPTOUT==400000  ;OUTPUT TO PTP\r
37187 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 5\r
37188         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37189 \r
37190                                 01390   ;CALFLG ASSIGNMENTS (RIGHT HALF) FOR DESCRIBING A BLOCK OF INFORMATION\r
37191                                 01400   ;FOUND BY THE COMMAND SCANNER.\r
37192 \r
37193                         000001  01420   FNEX==1         ;==1 WHEN FN.EX==*.*, *.EXT, FN.* (WHEN MORE\r
37194                                 01430                   ;THAN ONE FN.EX IS IMPLIED).\r
37195                         000002  01440   MATEX==2        ;FILE EXTENSIONS MUST MATCH\r
37196                         000004  01450   MATFN==4        ;FILE NAMES MUST MATCH\r
37197                         000010  01460   NEWDEV==10      ;A NEW INPUT DEVICE WAS GIVEN\r
37198                         000020  01470   NEWPP==20       ;A NEW #P-P WAS GIVEN\r
37199                         000040  01480   ASTFLG==40      ;FLAG SET WHEN FILE NAMED IN CS FOUND\r
37200                                 01490                   ;BY LOOK ROUTINE EVEN IF FN OR EXT =*\r
37201                         000100  01500   DEV==100        ;DEVICE NAME INDICATOR\r
37202                         000200  01510   DVSWTH==200     ;OUTPUT DEVICE SEEN\r
37203                         000400  01520   NSWTCH==400     ;INDICATES NULL NAME\r
37204                         001000  01530   SSWTCH==1000    ;LEFT ARROW SEEN\r
37205                         002000  01540   LISTTY==2000    ;LIST TO TTY\r
37206                         004000  01550   TMPI==4000      ;INPUT DEVICE TMPCOR SEEN\r
37207                         010000  01560   TMPO==10000     ;OUTPUT DEVICE TMPCOR\r
37208                         020000  01570   RXFLG==20000    ;(RX) SEEN\r
37209 \r
37210                         000037  01590   ALLCLF==FNEX!MATEX!MATFN!NEWDEV!NEWPP\r
37211 \r
37212                                 01610   ;DEVICE CHANNEL ASSIGNMENTS\r
37213 \r
37214                         000001  01630   CON==1          ;COMMAND INPUT CHANNEL\r
37215                         000002  01640   OUT==2          ;OUTPUT DEVICE\r
37216                         000003  01650   IN==3           ;INPUT DEVICE\r
37217                         000004  01660   TAPE==4         ;MTA POSITIONING\r
37218                         000005  01670   DIR==5          ;DISK DIR. READ\r
37219                         000006  01680   BLKIN==6        ;INPUT FOR 10/30 DISK FILES\r
37220                         000007  01690   DTDIR==7        ; DECTAPE DIR. READ(FOR PPN)\r
37221 \r
37222                                 01710   ;ACCUMULATOR ASSIGNMENTS\r
37223 \r
37224                         000001  01730   T1=1            ;GENERAL PURPOSE\r
37225                         000002  01740   T2=2            ;G.P.\r
37226                         000003  01750   T3=3            ;G.P.\r
37227                         000004  01760   CHR=4           ;INPUT CHARACTER\r
37228                         000005  01770   P=5             ;PUSHDOWN POINTER\r
37229                         000006  01780   FLAG=6          ;FLAG REGISTER\r
37230                         000007  01790   T4=7            ;G.P.\r
37231                         000010  01800   IOS=10          ;IO STATUS BITS\r
37232                         000011  01810   T5=11           ;G.P.\r
37233                         000012  01820   T6=12           ; G.P.\r
37234                         000013  01830   AUXFLG=13       ;AUXILIARY FLAG REGISTER\r
37235                         000014  01840   T7=14           ;G.P.\r
37236                         000015  01850   DOUT=15         ;DIVIDED NO. FOR OUTPUT\r
37237                         000016  01860   DOUT1=16        ;REMAINDER, DOUT+1\r
37238                         000017  01870   CALFLG=17       ;MORE FLAGS\r
37239 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 6\r
37240         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37241 \r
37242 \r
37243                                 01900   ;MISCELLANEOUS PARAMETERS\r
37244 \r
37245                         400000  01920   WRTLOK==400000  ;WRITE LOCK (DECTAPE) /IMPROPER I/O\r
37246                         040000  01930   BIGBLK==40000   ;BLOCK TOO LARGE\r
37247                         000002  01940   INBIT==2        ;DEVCHR BIT FOR DEV CAN DO INPUT\r
37248                         000001  01950   OUTBIT==1       ;DEVCHR BIT FOR DEV CAN DO OUTPUT\r
37249                         020000  01960   EOFBIT==20000   ;END OF FILE\r
37250                         002000  01970   EOTBIT==2000    ;END OF TAPE\r
37251                         000004  01980   DTABIT==4       ;DEVCHR BIT FOR DECTAPE IDENTIFICATION\r
37252                         000001  01990   INHIB==1        ;OUTPUT RELEASE INHIBIT BIT\r
37253                         000010  02000   TABSP==10       ;SPACES PER TAB\r
37254                         000200  02010   PTRBIT==200     ;DEVCHR BIT FOR PTR\r
37255                         000400  02020   PTPBIT==400     ;DEVCHR BIT FOR PTP\r
37256                         200000  02030   DSKBIT==200000  ;DEVCHR BIT FOR DSK\r
37257                         000020  02040   MTABIT==20      ;DEVCHR BIT FOR MTA\r
37258                         040000  02050   LPTBIT==40000   ;DEVCHR BIT FOR LPT\r
37259                         000010  02060   TTYBIT==10      ;DEVCHR BIT FOR TTY\r
37260                         100000  02070   CDRBIT==100000  ;DEVCHR FOR CDR\r
37261                         000200  02080   DENS2==200      ;MTA 200 BPI\r
37262                         000400  02090   DENS5==400      ;MTA 556 BPI\r
37263                         000600  02100   DENS8==600      ;MTA 800 BPI\r
37264                         001000  02110   PARE==1000      ;MTA EVEN PARITY\r
37265                         004000  02120   LDP==4000       ;MTA LOAD POINT STATUS\r
37266                         000020  02130   HPAGE==20\r
37267 \r
37268                                 02150   ;MACRO DEFINITIONS\r
37269 \r
37270                                 02170   DEFINE SKIP (J)<JRST    .+1+'J>\r
37271 \r
37272                                 02190   DEFINE  LSTLIN (Z),<\r
37273                                 02200           SKIPA   T1,[POINT 7,Z]\r
37274                                 02210           PUSHJ   P,PUT\r
37275                                 02220           ILDB    CHR,T1\r
37276                                 02230   IFN WCH,<PUSHJ  P,CCASE>\r
37277                                 02240           JUMPN   CHR,.-2>\r
37278 \r
37279                                 02260   DEFINE  ERRPNT  (X),<\r
37280                                 02270           JSP     T1,PTEXT\r
37281                                 02280           ASCIZ   X>\r
37282 \r
37283                                 02300   DEFINE  ERRPN2  (X),<\r
37284                                 02310           JSP     T1,PTEXT2\r
37285                                 02320           ASCIZ   X>\r
37286 \r
37287                                 02340   DEFINE  ERRPNX  (X),<\r
37288                                 02350           JSP     T1,PRETXT\r
37289                                 02360           ASCIZ   X>\r
37290 \r
37291 \r
37292         000000'                 02390   LOW:\r
37293 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 7\r
37294         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37295 \r
37296 \r
37297                                 02420   ;ASCII CHARACTERS\r
37298 \r
37299                         000015  02440   CR==15          ;CARRIAGE RETURN\r
37300                         000012  02450   LF==12          ;LINE FEED\r
37301                         000014  02460   FF==14          ;FORM-FEED\r
37302                         000033  02470   ALTMOD==33      ;NEWEST ALTMODE\r
37303                         000175  02480   ALT175==175     ;OLDEST ALTMODE\r
37304                         000176  02490   ALT176==176     ;OLDER ALTMODE\r
37305                         000137  02500   LA==137         ;LEFT ARROW\r
37306                         000032  02510   CZ==32          ;CONTROL Z\r
37307                         000021  02520   XON==21         ;^Q,START TTY PTR\r
37308                         000023  02530   XOFF==23        ;^S,STOP TTY PTR MODE\r
37309                         000054  02540   COMMA==54\r
37310                         000056  02550   PERIOD==56      ;PERIOD\r
37311                         000072  02560   COLON==72\r
37312                         000040  02570   SPACE==40\r
37313                         000177  02580   DEL==177        ;DELETE,RUBOUT,REPEAT MOD.35\r
37314                         000011  02590   TAB==11         ;TAB\r
37315 \r
37316 \r
37317                                 02620   ;CALLI DEFINITIONS\r
37318 \r
37319                                 02640   OPDEF   RESET   [CALLI   0]\r
37320                                 02650   OPDEF   DEVCHR  [CALLI   4]\r
37321                                 02660   OPDEF   CORE    [CALLI  11]\r
37322                                 02670   OPDEF   EXIT    [CALLI  12]\r
37323                                 02680   OPDEF   UTPCLR  [CALLI  13]\r
37324                                 02690   OPDEF   DATE    [CALLI  14]\r
37325                                 02700   OPDEF   MSTIME  [CALLI  23]\r
37326                                 02710   OPDEF   GETPPN  [CALLI  24]\r
37327                                 02720   OPDEF   PJOB    [CALLI  30]\r
37328                                 02730   OPDEF   RUN     [CALLI  35]\r
37329                                 02740   OPDEF   GETTAB  [CALLI  41]\r
37330                                 02750   OPDEF   TMPCOR  [CALLI  44]\r
37331                                 02760   OPDEF   DSKCHR  [CALLI  45]\r
37332                                 02770   OPDEF   JOBSTR  [CALLI  47]\r
37333                                 02780   OPDEF   DEVPPN  [CALLI  55]\r
37334                                 02790   OPDEF   WAIT    [MTAPE   0]\r
37335 \r
37336                                 02810   ;EXTENDED LOOKUP PARAMETERS\r
37337 \r
37338                         000005  02830   RBSIZ==5                ;WRITTEN FILE LENGTH\r
37339                         000017  02840   RIBSTS==17              ;STATUS BITS\r
37340 \r
37341 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 8\r
37342         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37343 \r
37344 \r
37345 \r
37346         000000' 200000  004665' 02890   PIP1:   MOVE    0,[LOW,,LOW+1]\r
37347         000001' 402000  000000' 02900           SETZM   LOW\r
37348         000002' 251000  004665' 02910           BLT     0,LOWTOP\r
37349         000003' 205000  637163  02920           MOVSI   (SIXBIT /SYS/)\r
37350         000004' 047000  000055  02930           DEVPPN                  ;FIND PP OF DEVICE SYS\r
37351         000005' 200000  003733' 02940           MOVE    PP13            ;ASSUME 1,,3 IF NOT LEVELD\r
37352         000006' 202000  004037' 02950           MOVEM   SYSPP           ;SAVE AS SYS PP\r
37353                                 02960   IFN FTDSK,<\r
37354                                 02970           MOVE    [XWD 17,11]     ;STATES WORD\r
37355                                 02980           GETTAB                  ;GET IT\r
37356                                 02990           SETZ                    ;ERROR RETURN\r
37357                                 03000           TLNN    (7B9)           ;TEST FOR LEVEL D\r
37358                                 03010           TDZA                    ;NOT LEVEL D\r
37359                                 03020           HRROI   -2              ;THIS IS LEVEL D\r
37360                                 03030           MOVEM   LEVEL           ;SAVE  >\r
37361         000007' 554040  000000* 03040   IFE FTDSK,<HLRZ T1,JOBSA        ;NO DSK SO USE JOBFF>\r
37362                                 03050   IFN FTDSK,<MOVEI T1,DSKDR       ;ASSUME NO DISK FOR TEST, LOC OF DSK RTNS\r
37363                                 03060           MOVSI   0,(SIXBIT /DSK/)\r
37364                                 03070           DEVCHR                  ;DEVCHR REQUEST: IS THERE A DSK \r
37365                                 03080           JUMPE   0,P1            ;0 IF NO DISK: USE DSKDR\r
37366                                 03090           MOVE    T1,JOBFF        ;DISK: PREPARE TO SAVE C(JOBFF)\r
37367                                 03100           HRRZ    T2,JOBREL       ;HIGHEST REL LOC AVAILABLE TO USER\r
37368                                 03110           CAIL    T2,6000         ;CURRENT SIZE 4K\r
37369                                 03120           JRST    P1              ;YES\r
37370                                 03130           MOVEI   T2,7777         ;NO. EXPAND TO 4K\r
37371                                 03140           HRRZM   T1,SVJBFF       ;SAVE JOBFF SO BUFFERS CAN BE CREATED\r
37372                                 03150           CORE    T2,             ;CORE UUO\r
37373                                 03160           JRST    DERR7           ;CORE UNAVAILABLE>\r
37374         000010' 552040  004016' 03170   P1:     HRRZM   T1,SVJBFF       ;SAVE JOBFF SO BUFFERS CAN BE CREATED\r
37375         000011' 254000  000012' 03180           JRST    PIP\r
37376 \r
37377                                 03200   IFN FTDSK,<\r
37378                                 03210   DERR7:  ERRPNT  </?4K needed/>\r
37379                                 03220           EXIT                    ;EXIT TO MONITOR>\r
37380 \r
37381 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 9\r
37382         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37383 \r
37384         000012' 047000  000000  03250   PIP:    RESET           ;REINITIALIZE WHEN RESTARTED MANUALLY\r
37385                                 03260                           ;NEW COMMAND STRING SCAN STARTS HERE\r
37386         000013'                 03270   PIP2:   \r
37387         000013' 265440  000541' 03280   PIP2A:  JSP T5,INICN1   ;INITIALIZE THE TTY AND PDL\r
37388         000014' 201000  000015  03290           MOVEI 0,CR      ;TYPE CR\r
37389         000015' 136000  003757' 03300           IDPB 0,TFO+1\r
37390         000016' 201000  000012  03310           MOVEI 0,LF      ;AND LF\r
37391         000017' 136000  003757' 03320           IDPB    0,TFO+1\r
37392         000020' 201000  000052  03330           MOVEI   0,"*"   ;TYPE ASTERISK******\r
37393         000021' 136000  003757' 03340           IDPB 0,TFO+1    ;READY TO ACCEPT\r
37394         000022' 067040  000000  03350           OUTPUT CON,     ;COMMAND FROM TTY\r
37395         000023' 402000  004026' 03360   PIP2B:  SETZM TOTBRK    ;CLEAR PAREN COUNTER\r
37396         000024' 201000  000010  03370           MOVEI 0,TABSP   ;SPACES PER TAB\r
37397         000025' 202000  004027' 03380           MOVEM 0,TABCT   ;INITIALIZE TAB COUNT\r
37398         000026' 200000  003721' 03390           MOVE 0,ZRO      ;ASCII /00000/\r
37399         000027' 202000  004014' 03400           MOVEM 0,SQNUM   ;INITIALIZE SEQUENCE NUMBERS\r
37400         000030' 071040  000000  03410           RELEAS CON,     ;RELEASE TTY FOR USE AS IN-OUT DEVICE\r
37401 \r
37402         000031' 403300  004040' 03430   MAINA1: SETZB FLAG,FILNAM   ;INITIALIZE FOR FIRST/NEXT COMMAND STRING\r
37403         000032' 403540  004637' 03440           SETZB AUXFLG,DEVICE\r
37404                                 03450   IFN FTDSK,<HRRZI 0,(SIXBIT /SYS/) ;SYSTEM DIRECT DEV, DSK/DTA\r
37405                                 03460           HRLZM 0,ADSK            ;PUT IN SYSTEM DEVICE>\r
37406         000033' 200000  004666' 03470           MOVE 0,[XWD FILNAM,FILNAM+1]    ;SET PROJECT, PROG NO.\r
37407         000034' 251000  004136' 03480           BLT 0,AB        ;ZERO OUT FILNAM - AB\r
37408         000035' 400740  000000  03490           SETZ    CALFLG,         ;CLEAR OTHER FLOGS\r
37409         000036' 200140  000055' 03500           MOVE T3,COMPTR  ;BYTE POINTER FOR STORING CS IN BUFFER\r
37410 \r
37411                                 03520   ;ACCUMULATE CS CHARS IN COMBUF ALLOW LONG CS ONLY FOR TTY COMMAND\r
37412 \r
37413         000037' 260240  001352' 03540   COMSTO: PUSHJ   P,GETTA         ;GET CS CHAR\r
37414         000040' 350340  004131' 03550           AOS     T4,COMCNT       ;COUNT CHARS\r
37415         000041' 303340  000310  03560           CAILE   T4,^D200        ;ALLOW UP TO 200 CHARS\r
37416         000042' 254000  002045' 03570           JRST    ERR6B           ;MORE THAN 200 CHARS\r
37417         000043' 306000  000032  03580           CAIN    0,CZ            ;CHECK FOR ^Z\r
37418         000044' 260240  001415' 03590   COMASK: PUSHJ   P,GETEN2        ;SET  ^Z IN 0\r
37419         000045' 136000  000003  03600           IDPB    0,T3            ;STORE IN COMBUF\r
37420         000046' 332000  004057' 03610           SKIPE   COMEOF          ;END-OF-FILE SET?\r
37421         000047' 254000  000056' 03620           JRST    COMPRO          ;YES, PROCESS CS IN COMBUF\r
37422         000050' 307000  000015  03630           CAIG    0,CR            ;NOT EOF\r
37423         000051' 305000  000012  03640           CAIGE   0,LF            ;LF,VT,FF,CR?\r
37424         000052' 306000  000033  03650           CAIN    0,ALTMODE       ;NO, $?\r
37425         000053' 254000  000044' 03660           JRST    COMASK          ;YES\r
37426         000054' 254000  000037' 03670           JRST    COMSTO          ;NO, KEEP STORING\r
37427 \r
37428         000055' 440700  004060' 03690   COMPTR: POINT   7,COMBUF\r
37429 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 10\r
37430         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37431 \r
37432 \r
37433                                 03720   ;********************************************************************\r
37434                                 03730   ;BEGIN SCAN OF DESTINATION PORTION OF COMMAND STRING\r
37435         000056'                 03740   COMPRO:\r
37436                                 03750   IFN FTDSK,<\r
37437                                 03760           MOVSI   0,(SIXBIT/DSK/)\r
37438                                 03770           DEVCHR                          ;IS THERE A DSK?\r
37439                                 03780           JUMPE   0,COMPRP\r
37440                                 03790           MOVSI   0,(SIXBIT /DSK/)        ;MAKE DEFAULT DEVICE\r
37441                                 03800           MOVEM   0,DEVICE                ;TENTATIVELY DSK>\r
37442 \r
37443         000056' 071040  000000  03820   COMPRP: RELEASE CON,            ;RELEASE TTY\r
37444         000057' 200000  000055' 03830           MOVE    0,COMPTR        ;INITIALIZE POINTER\r
37445         000060' 202000  004132' 03840           MOVEM 0,COMPTS          ;TO PICK UP CS FROM COMBUF\r
37446         000061' 260240  000557' 03850           PUSHJ P,NAME    ;GO SCAN DESTINATION PORTION OF COMMAND STRING\r
37447         000062' 332000  004135' 03860           SKIPE XNAME     ;NO SCAN OVERSHOOT ALLOWED\r
37448         000063' 254000  002040' 03870           JRST ERR6A\r
37449         000064' 331000  004134' 03880           SKIPL   ESWTCH  ;11/25/69  END OF CS ?\r
37450         000065' 254000  000073' 03890           JRST    MAINC   ;NO\r
37451         000066' 606740  000400  03900           TRNN    CALFLG,NSWTCH   ;NON-NULL DESTINATION\r
37452         000067' 602740  001000  03910           TRNE    CALFLG,SSWTCH   ;_ NOT SEEN?\r
37453         000070' 332000  004040' 03920           SKIPE   FILNAM          ;OR ANYTHING IN FILENAME\r
37454         000071' 254000  002040' 03930           JRST    ERR6A           ;YES, ERROR\r
37455         000072' 254000  000013' 03940           JRST    PIP2            ;NO, ALL OK\r
37456 \r
37457         000073' 200000  004637' 03960   MAINC:  MOVE 0,DEVICE   ;GET OUTPUT DEVICE NAME\r
37458         000074' 202000  004634' 03970           MOVEM 0,ODEV    ;SAVE DEVICE NAME FOR LATER USAGE\r
37459         000075' 260240  000506' 03980           PUSHJ P,DEVTST  ;SAVE DEVICE TYPE, SET XXXOUT.E.G. DTAOUT\r
37460         000076' 260240  000466' 03990           PUSHJ P,ABCHK   ;CHECK MTA BACKSPACE/ADV VALUES\r
37461         000077' 260240  000476' 04000           PUSHJ P,PROTK   ;CHECK PROTECTION\r
37462         000100' 200000  004136' 04010           MOVE 0,AB       ;MTA VALUE SWITCHES\r
37463         000101' 202000  004031' 04020           MOVEM 0,ABOUT   ;GET MTA CONTROL NUMBERS FO R OUT\r
37464         000102' 200000  004133' 04030           MOVE 0,AUX\r
37465         000103' 202000  004032' 04040           MOVEM 0,AUXOUT\r
37466         000104' 200000  004667' 04050           MOVE 0,[XWD FILNAM,DTON]\r
37467         000105' 251000  004047' 04060           BLT 0,DTON+3    ;SAVE DESTINATION FILE NAME\r
37468                                 04070   IFN FTDSK,<TRNN AUXFLG,DSKOUT   ;DISK OUTPUT?>\r
37469         000106' 402000  004047' 04080           SETZM DTON+3    ;ZERO 4TH WD OF DIRECTORY ENTRY\r
37470 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 11\r
37471         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37472 \r
37473         000107' 620740  001000  04100   M3:     TRZ     CALFLG,SSWTCH   ;TERMINATE DESTINATION FILE SCAN\r
37474         000110' 402000  004637' 04110           SETZM DEVICE    ;DONT CARRY OVER INPUT DEVICE\r
37475                                 04120   IFN FTDSK,<MOVSI 0,(SIXBIT/DSK/)\r
37476                                 04130           DEVCHR          ;IS THERE A DISK\r
37477                                 04140           JUMPE 0,M3A\r
37478                                 04150           MOVSI 0,(SIXBIT /DSK/)  ;DEFAULT CASE DSK\r
37479                                 04160           MOVEM 0,DEVICE  ;MUST NOT LET O/DEV. CARRY OVER AS I/DEV.>\r
37480         000111' 260240  000451' 04170   M3A:    PUSHJ P,DESCRP  ;GET A UNIT DESCRIPTOR (INPUT).\r
37481         000112' 607540  000001  04180           TLNN AUXFLG,QFLG;Q?     ;SCAN INPUT PORTION OF COMMAND STRING\r
37482         000113' 254000  000132' 04190           JRST M2         ;NO\r
37483         000114' 551000  637163  04200           HRRZI 0,(SIXBIT /SYS/)  ;YES MAKE INPUT DEVICE SYS\r
37484         000115' 516000  004637' 04210           HRLZM 0,DEVICE\r
37485         000116' 516000  004050' 04220           HRLZM DEVA              ;SAVE COPY OF INPUT DEVICE\r
37486         000117' 200000  003727' 04230           MOVE 0,QPIP             ;MAKE INPUT FILENAME QPIP\r
37487         000120' 202000  004040' 04240           MOVEM 0,FILNAM\r
37488         000121' 205000  120000  04250           MOVSI 0,(SIXBIT /*/)    ;DONT RESTRICT QPIP\r
37489         000122' 202000  004041' 04260           MOVEM 0,FILEX   ;EXT TO BEING NULL\r
37490         000123' 620740  000002  04270           TRZ     CALFLG,MATEX    ;DON'T MATCH EXTENSIONS\r
37491         000124' 660540  000002  04280           TRO     AUXFLG,SYSFLG   ;DEVICE IS SYS\r
37492         000125' 200000  004037' 04290           MOVE    0,SYSPP ;GET SYS PP\r
37493         000126' 202000  004043' 04300           MOVEM   0,PP    ;AND SET IT\r
37494         000127' 370000  004134' 04310           SOS ESWTCH      ;NO MORE COMMAND STRING\r
37495         000130' 620540  261500  04320           TRZ AUXFLG,DTAIN+DSKIN+CDRIN+PPTIN+TTYIN+MTAIN\r
37496         000131' 260240  002132' 04330           PUSHJ P,CHECK1  ;CHECK INPUT DEVICE\r
37497 \r
37498         000132' 661540  000020  04350   M2:     TLO AUXFLG,NOMORE       ;NO MORE SWITCHES BUT MTA ALLOWED\r
37499         000133' 603300  000001  04360           TLNE FLAG,OFLG  ;BLOCK 0 COPY?\r
37500         000134' 254000  003451' 04370           JRST BLOCK0     ;YES\r
37501         000135' 640300  002100  04380           TRC FLAG,XFLG+RFLG;(RX)\r
37502         000136' 646300  002100  04390           TRCN FLAG,XFLG+RFLG\r
37503         000137' 260240  000173' 04400           PUSHJ   P,M5    ;YES,(RX)\r
37504                                 04410   IFN RIMSW,<\r
37505                                 04420           TLNN FLAG,RIMFLG        ;RIM OUTPUT?\r
37506                                 04430           JRST M1         ;NO\r
37507                                 04440   IFE WCH,<       \r
37508                                 04450           TRNE AUXFLG,PPTOUT      ;RIM IS ONLY DTA TO PTP\r
37509                                 04460           TRNN AUXFLG,DTAIN!DSKIN!MTAIN\r
37510                                 04470           JRST ERR5B>\r
37511                                 04480   IFN WCH,<JRST RIMTB  >>\r
37512 \r
37513         000140' 201340  000001  04500   M1:     MOVEI T4,1      ;ASCII LINE MODE ASSUMED\r
37514         000141' 260240  000200' 04510           PUSHJ P,OUTLOOK ;SEE IF OUTPUT DEV MTA\r
37515         000142' 260240  000154' 04520           PUSHJ P,M4      ;NOT MTA\r
37516         000143' 603300  001000  04530           TLNE    FLAG,JFLG       ;NON STARDARD MODE ?\r
37517         000144' 660340  000100  04540           TRO     T4,100          ;TO PUNCH 029 ON CDP\r
37518         000145' 552340  004633' 04550           HRRZM T4,OMOD   ;SET MODE OF OUTPUT DEV\r
37519         000146' 201340  000001  04560           MOVEI T4,1\r
37520         000147' 260240  000204' 04570           PUSHJ P,INLOOK  ;SEE IF INPUT DEV MTA\r
37521         000150' 260240  000154' 04580           PUSHJ P,M4      ;NOT MTA\r
37522         000151' 552340  004636' 04590           HRRZM T4,ININI1 ;SET MODE OF INPUT DEV\r
37523         000152' 260240  002746' 04600           PUSHJ P,FNSET   ;NOW DEVICE, DEVA CORRECT FOR START\r
37524         000153' 254000  000251' 04610           JRST OMOD1      ;INIT OUTPUT DEVICE\r
37525 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 12\r
37526         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37527 \r
37528 \r
37529                                 04640   ;SET MODE IF /I,/B,/H,\r
37530 \r
37531         000154' 607300  000100  04660   M4:     TLNN FLAG,IFLG  ;IMAGE BINARY MODE?\r
37532         000155' 254000  000160' 04670           JRST .+3        ;NO\r
37533         000156' 660340  000010  04680           TRO T4,10       ;IM. MODE\r
37534         000157' 620340  000001  04690           TRZ T4,1        ;CLEAR ASCII LINE MODE\r
37535 \r
37536         000160' 606300  000002  04710           TRNN FLAG,BMOD  ;BINARY MODE?\r
37537         000161' 254000  000164' 04720           JRST .+3        ;NO\r
37538         000162' 660340  000014  04730           TRO T4,14       ;BIN. MODE\r
37539         000163' 620340  000001  04740           TRZ T4,1        ;CLEAR ASCII LINE MODE\r
37540 \r
37541         000164' 603300  000400  04760           TLNE FLAG,IBFLG ;ASCII TO START.  IB MODE?\r
37542         000165' 660340  000013  04770           TRO T4,13       ;YES\r
37543         000166' 602300  002000  04780           TRNE FLAG,XFLG  ;COPY MODE?\r
37544         000167' 263240  000000  04790           POPJ P,         ;YES, DON'T ALTER DATA MODE\r
37545 \r
37546         000170' 602300  000110  04810           TRNE FLAG,DFLG+RFLG     ;DELETE OR RENAME?\r
37547         000171' 660340  000020  04820           TRO T4,20       ;DIRECTORY WILL BE WRITTEN, DON'T\r
37548         000172' 263240  000000  04830           POPJ P,         ;COMPUTE WORD COUNT MODE NEEDED.\r
37549                                 04840                           ;FORCE MONITOR TO USE WORD COUNT\r
37550                                 04850                           ;IN FIRST DATA WORD OF BUFFER\r
37551 \r
37552         000173' 620300  000100  04870   M5:     TRZ     FLAG,RFLG       ;CLEAR /R FLAG\r
37553         000174' 660740  020000  04880           TRO     CALFLG,RXFLG    ;SET (RX) FLAG\r
37554         000175' 200000  004670' 04890           MOVE    0,[XWD DTON,MATCH]\r
37555         000176' 251000  004650' 04900           BLT     0,MATCH+1       ;SAVE NAME AND EXT\r
37556         000177' 263240  000000  04910           POPJ    P,              ;RETURN\r
37557 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 13\r
37558         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37559 \r
37560                                 04930   ;IF OUTPUT DEVICE IS MTA PERFORM ALL PRE-TRANSFER REQUESTS\r
37561                                 04940   ;SUCH AS REWIND.  IF OUTPUT DEVICE IS MTA, AND THERE IS NO \r
37562                                 04950   ;INPUT DEVICE, EXIT.  FOR OTHER MTA OUTPUT, PREPARE INIT\r
37563                                 04960   ;DENSITY AND PARITY.\r
37564 \r
37565         000200'                 04980   OUTLOOK:\r
37566         000200' 200140  004031' 04990           MOVE T3,ABOUT   ;AB FOR OUTPUT DEV\r
37567         000201' 200040  004032' 05000           MOVE T1,AUXOUT  ;AUX FOR OUTPUT DEV\r
37568         000202' 201500  003666' 05010           MOVEI T6,INOMTA ;SET TO INIT\r
37569         000203' 254000  003531' 05020           JRST MT1        ;MTA FOR OUTPUT\r
37570 \r
37571 \r
37572 \r
37573 \r
37574                                 05070   ;SAME FOR INPUT DEVICE.\r
37575 \r
37576         000204' 332140  004040' 05090   INLOOK: SKIPE   T3,FILNAM       ;IF NO FILENAME\r
37577         000205' 606300  002000  05100           TRNN    FLAG,XFLG       ;OR NOT /X\r
37578         000206' 254000  000217' 05110           JRST    INLUK1          ;CONTINUE\r
37579         000207' 332000  004044' 05120           SKIPE   DTON            ;IF OUTPUT NAME SET UP\r
37580         000210' 254000  000217' 05130           JRST    INLUK1          ;CONTINUE\r
37581         000211' 554040  004041' 05140           HLRZ    T1,FILEX        ;GET EXT\r
37582         000212' 302040  120000  05150           CAIE    T1,(SIXBIT /*/) ;IF EITHER IS *\r
37583         000213' 316140  003730' 05160           CAMN    T3,STAR         ;DON'T SET OUTNAME\r
37584         000214' 254000  000217' 05170           JRST    INLUK1          ;BUT JUST CONTINUE\r
37585         000215' 202140  004044' 05180           MOVEM   T3,DTON         ;SET OUT NAME\r
37586         000216' 516040  004045' 05190           HRLZM   T1,DTON+1       ;AND EXTENSION\r
37587         000217' 200140  004136' 05200   INLUK1: MOVE T3,AB      ;ADV OR BKSPACE\r
37588         000220' 200040  004133' 05210           MOVE T1,AUX     ;AUX FOR INPUT DEV\r
37589         000221' 201500  003667' 05220           MOVEI T6,INIMTA ;SET TO INIT\r
37590         000222' 254000  003531' 05230           JRST MT1        ;MTA FOR INPUT\r
37591 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 14\r
37592         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37593 \r
37594                                 05250   ;ROUTINE TO INITIALIZE OUTPUT DEVICE\r
37595 \r
37596         000223' 200040  004671' 05270   OMODE:  MOVE T1,[XWD OBF,IBF]\r
37597         000224' 202040  004635' 05280           MOVEM T1,ODEV+1\r
37598         000225' 200040  004015' 05290           MOVE T1,DTJBFF  ;JOBFF AFTER 2 TTY BUFS\r
37599         000226' 202040  000000* 05300           MOVEM T1,JOBFF  ;SET UP\r
37600 \r
37601         000227' 050100  004633' 05320           OPEN OUT,OMOD   ;INITIALIZE OUTPUT DEVICE\r
37602         000230' 254000  001767' 05330           JRST ERR1       ;UNAVAILABLE ERROR\r
37603         000231' 065100  000001  05340           OUTBUF OUT,1    ;TRY ONE OUTBUFFER FOR SIZE\r
37604         000232' 250040  000226* 05350           EXCH T1,JOBFF   ;JOBFF_DTJBFF+BUFSZ\r
37605                                 05360                           ;NOTE JOBFF RESET TO DTJBFF\r
37606         000233' 274040  004015' 05370           SUB T1,DTJBFF   ;T1=BUFSZ\r
37607         000234' 550000  000000* 05380           HRRZ 0,JOBREL   ;HIGHEST CORE AVAILABLE\r
37608         000235' 274000  004015' 05390           SUB 0,DTJBFF    ;0=TOTAL CORE AVAILABLE\r
37609         000236' 240000  777777  05400           ASH 0,-1        ;COMPUTE HOW MANY OUTPUT BUFFERS\r
37610         000237' 232000  000001  05410           IDIVM 0,T1      ;FIT IN HALF THE AVAILABLE SPACE\r
37611         000240' 201340  000223' 05420           MOVEI T4,OMODE  ;SET RETURN FROM MORCOR\r
37612         000241' 305040  000001  05430           CAIGE T1,1      ;1 OR MORE THAN 1 FIT?\r
37613         000242' 254000  000262' 05440           JRST MORCOR     ;NO, NEED MORE CORE\r
37614         000243' 065101  000000  05450           OUTBUF OUT,(T1) ;SET UP OUTPUT BUFFERS\r
37615         000244' 200000  003746' 05460           MOVE 0,OBF+1\r
37616         000245' 202000  003741' 05470           MOVEM 0,SVOBF   ;SAVE ORIGINAL MODE SETTING\r
37617         000246' 200000  000232* 05480           MOVE 0,JOBFF\r
37618         000247' 552000  004017' 05490           HRRZM 0,SVJBF1  ;PREPARE TO RECLAIM INBUFFER SPACE\r
37619         000250' 263240  000000  05500           POPJ P,\r
37620 \r
37621         000251' 260240  000223' 05520   OMOD1:  PUSHJ P,OMODE   ;GO INITIALIZE OUTPUT DEVICE\r
37622         000252' 626300  004000  05530           TRZN FLAG,ZFLG  ;Z COMMAND TYPED?\r
37623         000253' 254000  000275' 05540           JRST MAINA2     ;NO,\r
37624         000254' 260240  002212' 05550           PUSHJ P,DTCLR   ;YES, GO CLEAR DIRECTORY\r
37625         000255' 071100  000000  05560           RELEASE OUT,\r
37626         000256' 071240  000000  05570           RELEASE DIR,\r
37627         000257' 606740  000400  05580           TRNN    CALFLG,NSWTCH   ;SEE IF DEVICE WAS TYPED\r
37628         000260' 254000  000251' 05590           JRST OMOD1      ;YES\r
37629         000261' 254000  000013' 05600           JRST PIP2       ;GET NEXT COMMAND\r
37630 \r
37631         000262' 550000  000234* 05620   MORCOR: HRRZ 0,JOBREL   ;TRY TO GET\r
37632         000263' 271000  002000  05630           ADDI 0,2000     ;1K MORE OF CORE\r
37633         000264' 047000  000011  05640           CORE            ;ASK MONITOR FOR 1K CORE\r
37634         000265' 254000  000267' 05650           JRST OMODER             ;NOT AVAILABLE\r
37635         000266' 254007  000000  05660           JRST (T4)       ;GOT IT\r
37636 \r
37637         000267' 265040  002155' 05680   OMODER: ERRPNT</?Not enough core/>\r
37638         000270' 376355  772100\r
37639         000271' 627355  772716\r
37640         000272' 641014  367744\r
37641         000273' 624000  000000\r
37642         000274' 047000  000012  05690           EXIT\r
37643 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 15\r
37644         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37645 \r
37646                                 05710   ;MAIN LOOP TO PROCESS INPUT SIDE OF CS\r
37647 \r
37648 \r
37649         000275' 602300  000110  05740   MAINA2: TRNE   FLAG,RFLG+DFLG   ;RENAME OR DELETE FILE MODE?\r
37650         000276' 254000  002432' 05750           JRST   DTDELE           ;YES./D,/X,OR(DX)\r
37651                                 05760   IFN RIMSW,<\r
37652                                 05770           TLNE   FLAG,RIMFLG      ;RIM?\r
37653                                 05780           JRST   RIMTB            ;YES./Y\r
37654                                 05790           >\r
37655         000277' 602300  002000  05800           TRNE   FLAG,XFLG        ;TRANSFER EVERYTHING MODE?\r
37656         000300' 254000  002220' 05810           JRST   PRECOP           ;YES./X\r
37657                                 05820   ;LOOP TO COPY ALL FILES BEGINS HERE FROM MAIN2\r
37658         000301' 606540  000020  05830   MAINA3: TRNN   AUXFLG,FFLG      ;LIST DSK DIR SHORT?\r
37659         000302' 602300  000020  05840           TRNE   FLAG,LFLG        ;LIST DIRECTORY?\r
37660         000303' 254000  003017' 05850           JRST   DTPDIR           ;YES./F OR /L\r
37661         000304' 260240  000426' 05860           PUSHJ  P,ININIT         ;INITIALIZE INPUT FILE\r
37662         000305' 602540  020000  05870           TRNE   AUXFLG,DTAIN     ;DEC TAPE INPUT?\r
37663         000306' 260240  002701' 05880           PUSHJ  P,DTADIR         ;INIT DTA DIR\r
37664 \r
37665                                 05900   IFN FTDSK,<TRNE   AUXFLG,DSKIN  ;NO, DISK INPUT?\r
37666                                 05910           PUSHJ  P,DSKDIR         ;OR DSK>\r
37667         000307' 260240  002566' 05920   MAINA4: PUSHJ  P,LOOK           ;GET A FILE TO COPY\r
37668         000310' 254000  000323' 05930           JRST   MAINA5           ;NO MORE\r
37669         000311' 076140  004052' 05940           LOOKUP IN,ZRF\r
37670         000312' 254000  002003' 05950           JRST   ERR3             ;LOOKUP FAILURE\r
37671                                 05960   IFN WCH,<\r
37672                                 05970   MAINA6: TRNN  AUXFLG,DTAIN+DTAOUT\r
37673                                 05980           JRST  .+5\r
37674                                 05990           HLRZ  0,ZRF+1\r
37675                                 06000           CAIE  0,(SIXBIT /DMP/)\r
37676                                 06010           IFN DISK30,<CAIN 0,(SIXBIT/SVE/)>\r
37677                                 06020           IFE DISK30,<CAIN 0,(SIXBIT/SAV/)>\r
37678                                 06030           JRST  MAINA4            ;DONT COPY DMP OR SAV FILES ON DTA>\r
37679         000313' 661300  000020  06040           TLO   FLAG,NEWFIL\r
37680         000314' 260240  003353' 06050           PUSHJ P,FILTYP\r
37681         000315' 602540  000040  06060           TRNE  AUXFLG,ONEOUT\r
37682         000316' 254000  000333' 06070           JRST  PSCANA            ;OUT HAS BEEN INITIALIZED\r
37683                                 06080   IFE WCH,<\r
37684         000317' 260240  002412' 06090           PUSHJ P,OKBLKS>\r
37685         000320' 077100  004044' 06100           ENTER OUT,DTON          ;CREATE OUTPUT FILE\r
37686         000321' 254000  002024' 06110           JRST  ERR4              ;DIR. FULL OR 0 FILE NAME\r
37687         000322' 254000  000333' 06120           JRST  PSCANA\r
37688 \r
37689         000323' 626540  000001  06140   MAINA5: TRZN  AUXFLG,REDFLG\r
37690         000324' 254000  001107' 06150           JRST  IOERRN            ;NEVER READ A FILE\r
37691         000325' 254000  000411' 06160           JRST  MAIN1\r
37692 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 16\r
37693         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37694 \r
37695         000326' 602540  201500  06180   PSCANB: TRNE AUXFLG,MTAIN!CDRIN!TTYIN!PPTIN     ;ON NON-DIR DEVICE?\r
37696         000327' 620740  000037  06190           TRZ     CALFLG,ALLCLF   ;END OF THE ONE OR MANY FILES SPECIFIED\r
37697         000330' 666540  000040  06200           TRON AUXFLG,ONEOUT      ;HAS OUT JUST BEEN INIT?\r
37698         000331' 067100  000000  06210           OUTPUT OUT,     ;YES, AND FIRST FILE IS EOF ONLY, INIT OUT IN\r
37699                                 06220                           ;CASE NO MORE SOURCE FILES\r
37700         000332' 254000  000407' 06230           JRST PSCAN5     ;EMPTY FILE, CLOSE INPUT, RETURN FOR MORE\r
37701 \r
37702         000333' 660540  000001  06250   PSCANA: TRO   AUXFLG,REDFLG     ;SET FLAG FOR INPUT FILE READ\r
37703         000334' 260240  001616' 06260           PUSHJ P,INP             ;GO READ INPUT FILE\r
37704         000335' 620540  002000  06270           TRZ   AUXFLG,READ1\r
37705         000336' 260240  002376' 06280           PUSHJ P,TTYZ            ;CHECK IF INPUT IS TTY\r
37706         000337' 602400  020000  06290           TRNE IOS,EOFBIT         ;EOF FIRST DATA?\r
37707         000340' 254000  000326' 06300           JRST PSCANB\r
37708         000341' 336000  003744' 06310           SKIPN IBF+2\r
37709         000342' 254000  000333' 06320           JRST PSCANA\r
37710 \r
37711         000343' 660540  000040  06340   PSCAN:  TRO AUXFLG,ONEOUT       ;INDICATE ONE OUTPUT FILE INITED\r
37712         000344' 200000  003723' 06350           MOVE 0,OPTRA    ;PRESCAN A LINE, INITIALIZE LINE BUFFER PTR\r
37713         000345' 202000  004020' 06360           MOVEM 0,OPTR\r
37714         000346' 402000  004035' 06370           SETZM CDRCNT\r
37715         000347' 260240  000553' 06380           PUSHJ P,CLRBUF  ;CLEAR LINE BUFFER\r
37716         000350' 664300  000400  06390           TROA FLAG,STS   ;START A FRESH LINE\r
37717         000351' 260240  000756' 06400   PSCAN3: PUSHJ P,PUT     ;HERE FOR BINARY DATA\r
37718 \r
37719         000352' 260240  001462' 06420   PSCAN2: PUSHJ P,GET     ;GET CHARACTER\r
37720         000353' 254000  000376' 06430           JRST PSCAN1     ;END OF FILE RETURN\r
37721         000354' 616300  004672' 06440           TDNN FLAG,[XWD IFLG+IBFLG,BMOD] ;BIN. OR NO CHAR. PROCESSING\r
37722         000355' 603540  000004  06450           TLNE AUXFLG,SBIN\r
37723         000356' 254000  000351' 06460           JRST PSCAN3     ;YES\r
37724         000357' 200040  004020' 06470           MOVE T1,OPTR\r
37725         000360' 306200  000177  06480           CAIN CHR,DEL    ;VJC 4/16/69\r
37726         000361' 254000  000352' 06490           JRST PSCAN2     ; STR# 10-2615\r
37727         000362' 316040  003722' 06500           CAMN T1,OPTMAX  ;CHECK LENGTH OF LINE\r
37728         000363' 254000  001751' 06510           JRST ERR10      ;LINE TOO LONG\r
37729         000364' 136200  004020' 06520           IDPB CHR,OPTR   ;DEPOSIT CHAR. IN LINE BUFFER\r
37730         000365' 307200  000024  06530           CAIG CHR,24\r
37731         000366' 305200  000020  06540           CAIGE   CHR,20  ;LINE PRINTERR CONTROL CHAR\r
37732         000367' 254000  000371' 06550           SKIP    1       ;NO\r
37733         000370' 254000  000374' 06560           JRST PSCAN4     ;YES, TREAT AS END OF LINE\r
37734         000371' 307200  000014  06570           CAIG CHR,14\r
37735         000372' 305200  000012  06580           CAIGE CHR,12    ;END OF LINE CHARACTER?\r
37736         000373' 254000  000352' 06590           JRST PSCAN2     ;NO, SO CONTINUE\r
37737         000374' 260240  000707' 06600   PSCAN4: PUSHJ P,OUTLBF  ;YES, SO DUMP THE LINE BUFFER\r
37738         000375' 254000  000343' 06610           JRST PSCAN      ;SCAN THE NEXT LINE\r
37739 \r
37740         000376' 135200  004020' 06630   PSCAN1: LDB     CHR,OPTR        ;PICK UP LAST CHAR.\r
37741         000377' 306200  000032  06640           CAIN    CHR,CZ          ;IS IT ^Z\r
37742         000400' 606540  001000  06650           TRNN    AUXFLG,TTYIN    ;FROM TTY?\r
37743         000401' 254000  000404' 06660           JRST    PSCAN6          ;NO\r
37744         000402' 400200  000000  06670           SETZ    CHR,            ;YES,CLEAR CHAR.\r
37745         000403' 137200  004020' 06680           DPB     CHR,OPTR        ;AND REMOVE FROM BUFFER\r
37746         000404' 260240  000707' 06690   PSCAN6: PUSHJ P,OUTLBF  ;DUMP THE REMAINING BUFFER\r
37747         000405' 602300  002000  06700           TRNE FLAG,XFLG  ;COPY MODE?\r
37748 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 16-1\r
37749         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37750 \r
37751         000406' 254000  002311' 06710           JRST COPY2A     ;YES, GO COPY THE NEXT FILE\r
37752         000407' 070140  000000  06720   PSCAN5: CLOSE IN,\r
37753         000410' 254000  000307' 06730           JRST MAINA4\r
37754 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 17\r
37755         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37756 \r
37757                                 06750   ;COME HERE AFTER /L,/D,/R ON DISK OR THROUGH COPYING\r
37758 \r
37759         000411' 071240  000000  06770   MAIN1:  RELEAS DIR,     ;RELEASE THE DIRECTORY DEVICE\r
37760         000412' 071140  000001  06780           RELEAS IN,INHIB ;RELEASE THE INPUT DEVICE\r
37761         000413' 331340  004134' 06790           SKIPL T4,ESWTCH ;MORE COMMAND STRING TO PROCESS?\r
37762         000414' 254000  000421' 06800           JRST MAIN2      ;YES\r
37763 \r
37764                                 06820   ;COME HERE AFTER /D,/R ON DTA. ALSO FROM ABOVE\r
37765 \r
37766         000415' 070100  000000  06840   MAINB:  CLOSE OUT,      ;CLOSE THE OUTPUT FILE\r
37767         000416' 260240  000764' 06850           PUSHJ P,OUTP1   ;CHECK THE FINAL ERROR BITS\r
37768                                 06860   IFN FTDSK,<TLNE AUXFLG,NSPROT   ;NON-ST. PROT?\r
37769                                 06870           TRNN AUXFLG,DSKOUT+DTAOUT       ;DISK OUT/ OR DTA\r
37770                                 06880           JRST MAINB1     ;NO\r
37771                                 06890           LDB 0,PRPTL\r
37772                                 06900           DPB 0,PRPTD\r
37773                                 06910           RENAME OUT,DTON ;SET UP RENAME REQUEST\r
37774                                 06920           JRST DERR6      ;DISK ERROR\r
37775                                 06930   MAINB1:>\r
37776         000417' 071100  000000  06940           RELEAS OUT,     ;RELEASE THE OUTPUT DEVICE\r
37777         000420' 254000  000013' 06950           JRST PIP2       ;PROCESS THE NEXT COMMAND\r
37778 \r
37779         000421' 260240  000451' 06970   MAIN2:  PUSHJ P,DESCRP  ;GET THE NEXT INPUT FILE TO PROCESS\r
37780         000422' 260240  000204' 06980           PUSHJ P,INLOOK\r
37781         000423' 260240  000154' 06990           PUSHJ P,M4\r
37782         000424' 552340  004636' 07000           HRRZM T4,ININI1\r
37783         000425' 254000  000301' 07010           JRST MAINA3\r
37784                                 07020   ;END OF LOOP BEGINNING AT MAINA3\r
37785 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 18\r
37786         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37787 \r
37788                                 07040   ;SUBROUTINE TO INITIALIZE THE INPUT FILE\r
37789 \r
37790         000426' 200040  004017' 07060   ININIT: MOVE T1,SVJBF1  ;SVJBF1=END OF OUTPUT BUFFERS\r
37791 \r
37792         000427' 202040  000246* 07070           MOVEM T1,JOBFF  ;COMPARE OMODE CODE\r
37793         000430' 201000  003742' 07080           MOVEI 0,IBF\r
37794         000431' 202000  004640' 07090           MOVEM 0,DEVICE+1\r
37795         000432' 050140  004636' 07100           OPEN IN,ININI1\r
37796         000433' 254000  001770' 07110           JRST ERR1A      ;NOT AVAILABLE ERROR\r
37797         000434' 064140  000001  07120           INBUF IN,1      ;TRY ONE INPUT BUFFER FOR SIZE\r
37798         000435' 250040  000427* 07130           EXCH T1,JOBFF   ;HOW MANY INBUFFERS WILL FIT?\r
37799         000436' 274040  004017' 07140           SUB T1,SVJBF1\r
37800         000437' 550000  000262* 07150           HRRZ 0,JOBREL\r
37801         000440' 274000  000435* 07160           SUB 0,JOBFF     ;JOBREL-SVJBF1=TOTAL SPACE LEFT\r
37802         000441' 232000  000001  07170           IDIVM 0,T1\r
37803         000442' 201340  000426' 07180           MOVEI T4,ININIT ;RETURN FROM MORCOR IS ININIT\r
37804         000443' 305040  000001  07190           CAIGE T1,1      ;1 OR MORE THAN 1 FITS?\r
37805         000444' 254000  000262' 07200           JRST MORCOR     ;NO, GET MORE CORE\r
37806         000445' 064141  000000  07210           INBUF IN,(T1)   ;SET UP AS MANY BUFFS AS FIT\r
37807         000446' 200000  003743' 07220           MOVE 0,IBF+1    ;SAVE ORIGINAL MODE\r
37808         000447' 202000  003740' 07230           MOVEM 0,SVIBF\r
37809         000450' 263240  000000  07240           POPJ P,\r
37810 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 19\r
37811         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37812 \r
37813                                 07260   ;THIS ROUTINE GETS AN INPUT UNIT DESCRIPTOR AND, FOR\r
37814                                 07270   ;ADVANCE FILE AND BSPF ON MTA, ENSURES THE VALUE 1 IF NO\r
37815                                 07280   ;NUMBER WAS GIVEN.\r
37816 \r
37817         000451' 402000  004133' 07300   DESCRP: SETZM AUX       ;WILL GET ANY MTA REQ. GOING TO AUXFLG.\r
37818         000452' 622540  000002  07310           TRZE    AUXFLG,SYSFLG   ;IS THIS DEVICE SYS.?\r
37819         000453' 660540  000004  07320           TRO     AUXFLG,SYSLST   ;YES,SET SYS AS LAST DEVICE\r
37820         000454' 402000  004136' 07330           SETZM AB        ;MTA VALUE SWITCHES\r
37821         000455' 402000  004042' 07340           SETZM PR        ;PROTECTION\r
37822         000456' 402000  004043' 07350           SETZM PP        ;PROJ-PROG NUMBER\r
37823                                 07360   ;********************************************************************\r
37824         000457' 260240  000557' 07370           PUSHJ P,NAME    ;GO SCAN INPUT SIDE OF COMMAND STRING\r
37825         000460' 200040  004042' 07380           MOVE T1,PR      ;PROTECTION\r
37826         000461' 512040  004042' 07390           HLLZM T1,PR     ;IGNORE PR FLAG IN RHS FOR INPUT\r
37827         000462' 620540  261500  07400           TRZ AUXFLG,DTAIN+DSKIN+PPTIN+MTAIN+CDRIN+TTYIN\r
37828         000463' 260240  002132' 07410           PUSHJ P,CHECK1  ;CHECK UNIT, AND FOR _\r
37829 \r
37830                                 07430   IFN FTDSK,<TRNN AUXFLG,DSKIN    ;DSK INPUT?\r
37831                                 07440           JRST DESCR1     ;NO\r
37832                                 07450           TRNE    AUXFLG,SYSFLG   ;IS THIS DEVICE SYS?\r
37833                                 07460           JRST DESCR1     ;YES\r
37834                                 07470           TRNN    AUXFLG,SYSLST   ;WAS LAST DEVICE?\r
37835                                 07480           JRST DESCR1     ;NO\r
37836                                 07490           MOVE T2,FNPPNS  ;YES, SAVE LAST [P,P]\r
37837                                 07500           SKIPE PP        ;[P,P] ZERO?\r
37838                                 07510           JRST DESCR1\r
37839                                 07520           MOVEM T2,PP     ;YES, MAKE OLD [P,P] CURRENT [P,P]\r
37840                                 07530           MOVEM T2,FNPPN  ;RESERVE [P,P]>\r
37841         000464' 332000  004135' 07540   DESCR1: SKIPE XNAME     ;NO OVERSHOOT ALLOWED\r
37842         000465' 254000  002040' 07550           JRST ERR6A\r
37843 \r
37844         000466' 554100  004136' 07570   ABCHK:  HLRZ T2,AB      ;NO RECS/FILES TO BACKSPACE\r
37845         000467' 326100  000471' 07580           JUMPN T2,.+2    ;IF 0\r
37846         000470' 201100  000001  07590           MOVEI T2,1      ;GUARANTEE ONE\r
37847         000471' 506100  004136' 07600           HRLM T2,AB      ;SET AB LH\r
37848 \r
37849         000472' 550100  004136' 07620           HRRZ T2,AB      ;NO RECS/FILES TO ADV\r
37850         000473' 326100  002746' 07630           JUMPN T2,FNSET  ;IF 0\r
37851         000474' 350000  004136' 07640           AOS AB          ;GUARANTEE 1\r
37852         000475' 254000  002746' 07650           JRST    FNSET   ;FIND OUT DETAILS OF FILENAME\r
37853 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 20\r
37854         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37855 \r
37856 \r
37857                                 07680   ;IF A NON-STANDARD OUTPUT PROTECTION IS REQUESTED, SAVE FOR RENAME.\r
37858 \r
37859         000476' 200040  004042' 07700   PROTK:  MOVE T1,PR\r
37860         000477' 606040  000001  07710           TRNN T1,1\r
37861         000500' 254000  000504' 07720           JRST PROTK1\r
37862         000501' 512040  004033' 07730           HLLZM T1,PROTS\r
37863         000502' 512040  004042' 07740           HLLZM T1,PR\r
37864         000503' 665540  000002  07750           TLOA AUXFLG,NSPROT\r
37865         000504' 403040  004042' 07760   PROTK1: SETZB   T1,PR\r
37866         000505' 263240  000000  07770           POPJ P,\r
37867 \r
37868                                 07790   ;TEST "DEVICE" TO SEE IF DESTINATION DEVICE IS DTA, DSK, PTP, LPT, TTY, MTA\r
37869                                 07800   ;IF ANY IS TRUE, SET RELEVANT BIT IN AUXFLG.  "0" CONTAINS\r
37870                                 07810   ;"DEVICE" ON ENTRY.\r
37871 \r
37872         000506' 047000  000004  07830   DEVTST: DEVCHR          ;GET DEVICE CHARACTERISTICS\r
37873                                 07840   IFN FTDSK,<TLNN 0,DSKBIT        ;IS OUTPUT DEV DSK?\r
37874                                 07850           JRST DEVTSU     ;NO\r
37875                                 07860           TRO AUXFLG,DSKOUT       ;YES, SET BIT\r
37876                                 07870           PUSH    P,DEVICE        ;SAVE DEVICE NAME\r
37877                                 07880           POP     P,ADSK          ;PUT NAME IN DSK INIT\r
37878                                 07890           POPJ P,\r
37879                                 07900   DEVTSU:>\r
37880         000507' 322000  000525' 07910           JUMPE   0,DEVER2        ;NON-EXISTENT DEVICE\r
37881         000510' 607000  000001  07920           TLNN 0,OUTBIT   ;CAN DEV DO OUTPUT?\r
37882         000511' 254000  002040' 07930           JRST ERR6A      ;NO\r
37883 \r
37884         000512' 603000  000004  07950           TLNE 0,DTABIT   ;DECTAPE?\r
37885         000513' 660540  004000  07960           TRO AUXFLG,DTAOUT       ;YES\r
37886 \r
37887         000514' 603000  000400  07980           TLNE 0,PTPBIT   ;PAPER TAPE PUNCH?\r
37888         000515' 660540  400000  07990           TRO AUXFLG,PPTOUT\r
37889 \r
37890         000516' 603000  040000  08010           TLNE 0,LPTBIT   ;LINE PRINTER?\r
37891         000517' 660540  000010  08020           TRO AUXFLG,LPTOUT\r
37892 \r
37893         000520' 603000  000010  08040           TLNE 0,TTYBIT   ;TELETYPE?\r
37894         000521' 660540  100000  08050           TRO AUXFLG,TTYOUT\r
37895 \r
37896         000522' 603000  000020  08070           TLNE 0,MTABIT   ;MAGTAPE?\r
37897         000523' 660540  000200  08080           TRO AUXFLG,MTAOUT\r
37898 \r
37899         000524' 263240  000000  08100           POPJ P,\r
37900 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 21\r
37901         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37902 \r
37903 \r
37904                                 08130   ;ROUTINE TO CHECK IF DEVICE SYS AND SET [P,P], IF NONE GIVEN\r
37905 \r
37906                                 08150   IFN FTDSK,<\r
37907                                 08160   PSYSP:  CAME    0,[SIXBIT /SYS/];IS DEVICE SYS?\r
37908                                 08170           POPJ    P,              ;NO\r
37909                                 08180           MOVE    T1,SYSPP        ;GET SYS PP\r
37910                                 08190           MOVEM   T1,PP           ;AND SET IT\r
37911                                 08200           TRO     AUXFLG,SYSFLG   ;SET FLAG TO INDICATE\r
37912                                 08210           POPJ    P,              ;CURRENT INPUT DEVICE IS SYS>\r
37913 \r
37914         000525'                 08230   DEVER1: \r
37915         000525' 200040  004637' 08240   DEVER2: MOVE    T1,DEVICE\r
37916         000526' 202040  004641' 08250   DEVER:  MOVEM   T1,DEVERR\r
37917         000527' 265040  002155' 08260           ERRPNT  </?Device />\r
37918         000530' 376114  573322\r
37919         000531' 617124  000000\r
37920         000532' 260240  002201' 08270           PUSHJ   P,P6BIT\r
37921         000533' 000000  004641' 08280                   DEVERR\r
37922         000534' 265040  002166' 08290           ERRPN2  </does not exist!/>\r
37923         000535' 623374  571500\r
37924         000536' 673376  420312\r
37925         000537' 743236  372102\r
37926         000540' 000000  000000\r
37927                                 08300   ;ROUTINE TO INIT PDL POINTER AND TTY\r
37928 \r
37929         000541' 201240  004153' 08320   INICN1: MOVEI   P,PDL-1         ;INITIALIZE PUSHDOWN POINTER\r
37930         000542' 200000  004016' 08330   INICN2: MOVE    0,SVJBFF        ;IS INITIALIZED AT PIP1\r
37931         000543' 202000  000440* 08340           MOVEM   0,JOBFF         ;SET JOBFF TO BEGINNING OF BUFFER AREA\r
37932         000544' 260240  001410' 08350           PUSHJ   P,INICON        ;INITIALIZE THE TTY\r
37933         000545' 064040  000001  08360           INBUF   CON,1           ;ONE INBUFFER\r
37934         000546' 065040  000001  08370           OUTBUF  CON,1           ;ONE OUTBUFFER\r
37935         000547' 200000  000543* 08380           MOVE    0,JOBFF\r
37936         000550' 552000  004015' 08390           HRRZM   0,DTJBFF        ;JOBFF AFTER 2 TTY BUFFERS SET\r
37937         000551' 067040  000000  08400           OUTPUT   CON,           ;INITIALIZE BUFFER POINTERS\r
37938         000552' 254011  000000  08410           JRST    (T5)\r
37939 \r
37940                                 08430   ;ROUTINE TO CLEAR LINE BUFFER\r
37941 \r
37942         000553' 402000  004174' 08450   CLRBUF: SETZM   LBUF            ;SUBR. TO CLEAR LINE BUFFER\r
37943         000554' 200000  004673' 08460           MOVE    0,[XWD LBUF,LBUF+1]\r
37944         000555' 251000  004377' 08470           BLT     0,LBUFE\r
37945         000556' 263240  000000  08480           POPJ    P,\r
37946 \r
37947 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 22\r
37948         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37949 \r
37950                                 08510   ;COMMAND SCANNER ROUTINE\r
37951 \r
37952         000557' 606740  001000  08530   NAME:   TRNN    CALFLG,SSWTCH   ;RETURN NULL IF _ OR END-OF-LINE SEEN\r
37953         000560' 335000  004134' 08540           SKIPGE  ESWTCH\r
37954         000561' 254000  000666' 08550           JRST    NM13            ;\r
37955         000562' 620740  000400  08560           TRZ     CALFLG,NSWTCH\r
37956         000563' 332040  004135' 08570           SKIPE   T1,XNAME        ;IF COMMAND SCAN OVERSHOOT PICKED UP\r
37957                                 08580                                   ;DEVICE NAME, USE IT NOW\r
37958         000564' 254000  000640' 08590           JRST    NM7\r
37959         000565' 620740  000100  08600           TRZ     CALFLG,DEV\r
37960                                 08610   ;LOOK FOR FILE NAME, EXT\r
37961         000566' 402000  004041' 08620   NM1:    SETZM   FILEX\r
37962         000567' 402000  004040' 08630   NM2:    SETZM   FILNAM\r
37963         000570' 200040  000672' 08640           MOVE    T1,NM15\r
37964                                 08650   ;LOOP TO PICK OFF FILENAME, EXT\r
37965         000571' 260240  001175' 08660   NM3:    PUSHJ   P,GETCOM        ;GO GET 7 BIT ASCII CHAR. FROM COMMAND STRING\r
37966         000572' 302000  000052  08670           CAIE    0,"*"           ;TO ALLOW FN.EX = *.*\r
37967         000573' 301000  000101  08680           CAIL    0,"A"           ;ALPHABETIC CHARACTER?\r
37968         000574' 303000  000132  08690           CAILE   0,"Z"\r
37969         000575' 254000  000602' 08700           JRST    NM4A            ;NO\r
37970         000576' 275000  000040  08710   NM4:    SUBI    0,40            ;CONVERT TO SIXBIT\r
37971         000577' 603040  770000  08720           TLNE    T1,770000       ;6 CHARS. YET?\r
37972         000600' 136000  000001  08730           IDPB    0,T1            ;NO\r
37973         000601' 254000  000571' 08740           JRST    NM3             ;GET NEXT CHAR.\r
37974         000602' 301000  000060  08750   NM4A:   CAIL    0,"0"           ;NUMERIC?\r
37975         000603' 303000  000071  08760           CAILE   0,"9"\r
37976         000604' 254000  000606' 08770           JRST    NM5             ;NO\r
37977         000605' 254000  000576' 08780           JRST    NM4\r
37978 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 23\r
37979         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
37980 \r
37981                                 08800   ;CHARACTER NOT *,0-9,A-Z\r
37982         000606' 307000  000015  08810   NM5:    CAIG    0,CR            ;CARRIAGE RETURN\r
37983         000607' 305000  000012  08820           CAIGE   0,LF            ;LINE FEED\r
37984         000610' 306000  000033  08830           CAIN    0,ALTMOD        ;ALTMODE\r
37985         000611' 254000  000613' 08840           JRST    NM5A            ;YES\r
37986         000612' 306000  000032  08850           CAIN    0,CZ            ;END-OF-FILE(CCL)?\r
37987         000613' 374000  004134' 08860   NM5A:   SOSA    ESWTCH          ;YES, OR EOF\r
37988         000614' 306000  000054  08870           CAIN    0,COMMA         ;COMMA\r
37989         000615' 254000  000633' 08880           JRST    NM6             ;YES\r
37990         000616' 306000  000056  08890           CAIN    0,PERIOD        ;PERIOD\r
37991         000617' 254000  000654' 08900           JRST    NM10            ;YES\r
37992         000620' 306000  000072  08910           CAIN    0,COLON         ;COLON\r
37993         000621' 254000  000646' 08920           JRST    NM9             ;YES\r
37994         000622' 306000  000073  08930           CAIN    0,";"           ;IS THE REST A COMMENT?\r
37995         000623' 254000  000700' 08940           JRST    NM16            ;YES\r
37996         000624' 306000  000003  08950           CAIN    0,"C"-100       ;^C\r
37997         000625' 047000  000012  08960           EXIT                    ;IN CASE JACCT ON ???\r
37998         000626' 302000  000137  08970           CAIE    0,LA            ;LEFT ARROW\r
37999         000627' 254000  000673' 08980           JRST    NM5B            ;NO\r
38000         000630' 660740  001000  08990           TRO     CALFLG,SSWTCH   ;SET LEFT ARROW SWITCH\r
38001         000631' 602740  000100  09000           TRNE    CALFLG,DEV      ;HAS A DEVICE BEEN SEEN?\r
38002         000632' 660740  000200  09010           TRO     CALFLG,DVSWTH   ;YES-NEEDED FOR /Z/,/D\r
38003 \r
38004         000633' 336040  004041' 09030   NM6:    SKIPN   T1,FILEX        ;COMMA ROUTINE - FIGURE OUT WHAT WE HAVE\r
38005         000634' 254000  000661' 09040           JRST    NM11            ;NO FILE NAME TEMPORARILY IN FILEX\r
38006         000635' 250040  004040' 09050           EXCH    T1,FILNAM       ;PUT THE FILE NAME WHERE IT BELONGS\r
38007         000636' 512040  004041' 09060           HLLZM   T1,FILEX        ;PUT THE EXTENSION WHERE IT BELONGS\r
38008         000637' 263240  000000  09070           POPJ    P,\r
38009 \r
38010         000640' 402000  004135' 09090   NM7:    SETZM   XNAME           ;USE XNAME ONLY ONCE\r
38011         000641' 306040  000001  09100           CAIN    T1,1            ;1 FLAGS A NULL OVERSHOOT\r
38012         000642' 254000  000666' 09110           JRST    NM13            ;RETURN NULL NAME\r
38013         000643' 202040  004637' 09120   NM8:    MOVEM   T1,DEVICE       ;NEW DEVICE\r
38014         000644' 660740  000100  09130           TRO     CALFLG,DEV\r
38015         000645' 254000  000566' 09140           JRST    NM1             ;LOOK FOR A FILE NAME AND EXTENSION\r
38016 \r
38017         000646' 606740  000100  09160   NM9:    TRNN    CALFLG,DEV      ;COLON ROUTINE - IS DEVICE NAME IN YET?\r
38018         000647' 254000  000664' 09170           JRST    NM12            ;NO\r
38019         000650' 336040  004040' 09180           SKIPN   T1,FILNAM       ;SCAN OVERSHOOT - NULL OVERSHOOT?\r
38020         000651' 201040  000001  09190           MOVEI   T1,1            ;YES - FLAG NULL OVERSHOOT WITH A 1\r
38021         000652' 202040  004135' 09200           MOVEM   T1,XNAME        ;XNAME = OVERSHOOT NAME\r
38022         000653' 254000  000670' 09210           JRST    NM14\r
38023         000654' 332000  004041' 09220   NM10:   SKIPE   FILEX\r
38024         000655' 254000  002040' 09230           JRST    ERR6\r
38025         000656' 200000  004040' 09240           MOVE    0,FILNAM        ;PERIOD ROUTINE - SAVE FILE NAME\r
38026         000657' 202000  004041' 09250           MOVEM   0,FILEX         ;TEMPORARILY IN FILEX\r
38027         000660' 254000  000567' 09260           JRST    NM2             ;LOOK FOR EXTENSION\r
38028         000661' 336000  004040' 09270   NM11:   SKIPN   FILNAM          ;WAS A FILE NAME SPECIFIED?\r
38029         000662' 602740  000100  09280           TRNE    CALFLG,DEV      ;WAS ANYTHING SPECIFIED?\r
38030         000663' 263240  000000  09290           POPJ    P,              ;YES\r
38031         000664' 332040  004040' 09300   NM12:   SKIPE   T1,FILNAM       ;NULL NAME SPECIFIED?\r
38032         000665' 254000  000643' 09310           JRST    NM8             ;NO - SO REMEMBER AND LOOK FOR FILE NAME\r
38033 \r
38034 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 23-1\r
38035         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38036 \r
38037         000666' 660740  000400  09330   NM13:   TRO     CALFLG,NSWTCH   ;RETURN A NULL NAME\r
38038         000667' 402000  004041' 09340           SETZM   FILEX\r
38039         000670' 402000  004040' 09350   NM14:   SETZM   FILNAM\r
38040         000671' 263240  000000  09360           POPJ    P,\r
38041 \r
38042         000672' 440600  004040' 09380   NM15:   POINT   6,FILNAM\r
38043         000673' 307000  000137  09390   NM5B:   CAIG    0,LA            ;ALLOW ANY SIXBIT CHAR NOT CS DELIMITER\r
38044         000674' 307000  000040  09400           CAIG    0,SPACE         ;SPACES IGNORED\r
38045         000675' 254000  000571' 09410           JRST    NM3             ;IGNORE NOT LEGAL SIXBIT\r
38046         000676' 254000  000576' 09420           JRST    NM4             ;ACCEPT\r
38047 \r
38048         000677' 260240  001404' 09440           PUSHJ   P,GETBUF        ;GET NEXT ASCII CHAR.\r
38049         000700' 303000  000012  09450   NM16:   CAILE   0,LF\r
38050         000701' 307000  000015  09460           CAIG    0,CR            ;IF LF,FF,VT,OR CR\r
38051         000702' 254000  000613' 09470           JRST    NM5A            ;RETURN\r
38052         000703' 302000  000033  09480           CAIE    0,ALTMOD        ;SAME IF ALTMOD\r
38053         000704' 306000  000032  09490           CAIN    0,CZ            ;OR ^Z\r
38054         000705' 254000  000613' 09500           JRST    NM5A\r
38055         000706' 254000  000677' 09510           JRST    NM16-1          ;GET NEXT CHARACTER\r
38056 \r
38057 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 24\r
38058         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38059 \r
38060                                 09540   ;ROUTINE TO OUTPUT ONE LINE FROM LBUF\r
38061 \r
38062         000707' 602300  000001  09560   OUTLBF: TRNE FLAG,LINE\r
38063         000710' 254000  000717' 09570           JRST OUTLBA     ;OUTPUT LINE-BY-LINE\r
38064         000711' 200100  003723' 09580   OUTCH1: MOVE T2,OPTRA   ;OUTPUT CHARACTER-BY-CHARACTER\r
38065         000712' 316100  004020' 09590   OUTLB1: CAMN T2,OPTR    ;ARE ALL CHARACTERS OUT?\r
38066         000713' 263240  000000  09600           POPJ P,         ;YES\r
38067         000714' 134200  000002  09610           ILDB CHR,T2     ;NO\r
38068         000715' 260240  000756' 09620           PUSHJ P,PUT     ;GO OUTPUT CHARACTER\r
38069         000716' 254000  000712' 09630           JRST OUTLB1\r
38070         000717' 603300  000040  09640   OUTLBA: TLNE FLAG,CHKFLG;PAREN COUNTING?\r
38071         000720' 254000  003305' 09650           JRST OUTCHK     ;YES, SO DO IT\r
38072         000721' 602540  100010  09660           TRNE AUXFLG,TTYOUT+LPTOUT\r
38073         000722' 254000  000711' 09670           JRST OUTCH1     ;IF OUTPUT TO TTY OR LPT DO CHR BY CHR  \r
38074         000723' 201040  000004  09680           MOVEI T1,4      ;CLEAR UNUSED PORTION OF LAST WORD USED IN LBUF\r
38075         000724' 201100  000000  09690           MOVEI T2,0\r
38076         000725' 200140  004020' 09700           MOVE T3,OPTR\r
38077         000726' 136100  000003  09710           IDPB T2,T3\r
38078         000727' 367040  000726' 09720           SOJG T1,.-1\r
38079         000730' 201100  000005  09730           MOVEI T2,5\r
38080         000731' 550040  004020' 09740           HRRZ T1,OPTR    ;COMPUTE NUMBER OF WORDS FILLED\r
38081         000732' 275040  004173' 09750           SUBI T1,LBUF-1\r
38082         000733' 322040  000754' 09760           JUMPE T1,OUTLB3 ;DO NOTHING IF BUFFER EMPTY\r
38083         000734' 222040  000002  09770           IMULM T1,T2     ;COMPUTE CHARACTER COUNT=5 TIMES WORD CT\r
38084                                 09780   ;THIS IS WHERE OLD FORTRAN MODE WAS TESTED.\r
38085         000735' 317100  003747' 09790           CAMG T2,OBF+2   ;WILL LINE FIT IN THE OUTBUFFER?\r
38086         000736' 254000  000745' 09800           JRST OUTLB2     ;YES\r
38087         000737' 260240  000762' 09810           PUSHJ P,OUTP    ;NO, SO DUMP BUFFER AND CHECK ERROR BITS\r
38088         000740' 201500  000001  09820           MOVEI T6 ,1\r
38089         000741' 612500  004174' 09830           TDNE T6,LBUF    ;SEQUENCED?   \r
38090         000742' 606540  004000  09840           TRNN AUXFLG,DTAOUT      ;YES, ON DTA?\r
38091         000743' 254000  000745' 09850           SKIP    1       ;NO\r
38092         000744' 271100  000240  09860           ADDI T2,40*5    ;LEAVE EDITING ROOM\r
38093         000745' 213000  000002  09870   OUTLB2: MOVNS T2\r
38094         000746' 272100  003747' 09880           ADDM T2,OBF+2   ;UPDATE OUTBUFFER CHARACTER COUNT\r
38095         000747' 505100  004174' 09890           HRLI T2,LBUF\r
38096         000750' 540100  003746' 09900           HRR T2,OBF+1\r
38097         000751' 340100  000000  09910           AOJ T2,\r
38098         000752' 273040  003746' 09920           ADDB T1,OBF+1   ;UPDATE OUTBUFFER BYTE POINTER\r
38099         000753' 251101  000000  09930           BLT T2,(T1)     ;MOVE DATA TO OUTBUFFER\r
38100         000754' 263240  000000  09940   OUTLB3: POPJ P,\r
38101 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 25\r
38102         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38103 \r
38104                                 09960   ;ROUTINE TO PUT ONE CHAR INTO OUT BUFFER\r
38105 \r
38106         000755' 201200  000011  09980   TABOUT: MOVEI   CHR,TAB ;OUTPUT A TAB\r
38107         000756' 377000  003747' 09990   PUT:    SOSG OBF+2      ;SUBR. TO OUTPUT ONE CHARACTER IN AC CHR\r
38108         000757' 260240  000762' 10000           PUSHJ P,OUTP    ;IF BUFFER FULL, DUMP AND CHECK ERR BITS\r
38109         000760' 136200  003746' 10010           IDPB CHR,OBF+1  ;PUT CHARACTER IN BUFFER\r
38110         000761' 263240  000000  10020           POPJ P,\r
38111 \r
38112                                 10040   ;ROUTINE TO DUMP OUT BUFFER WHEN FULL\r
38113 \r
38114         000762' 057100  000000  10060   OUTP:   OUT OUT,        ;SUBR. TO DUMP OUTBUFFER AND CHECK ERR BITS\r
38115         000763' 254000  001710' 10070           JRST    CPOPJZ  ;NO ERRERS,BUT CLEAR IOS JUST IN CASE\r
38116         000764' 062100  000010  10080   OUTP1:  GETSTS OUT,IOS  ;HERE FOR BIT CHECKING ONLY\r
38117         000765' 260240  000770' 10090           PUSHJ P,OUTP4\r
38118         000766' 060110  000000  10100           SETSTS OUT,(IOS);ERRORS WERE DETECTED\r
38119         000767' 263240  000000  10110           POPJ P,         ;NO ERRORS\r
38120 \r
38121         000770' 606540  000200  10130   OUTP4:  TRNN AUXFLG,MTAOUT\r
38122         000771' 254000  000774' 10140           JRST .+3\r
38123         000772' 602400  002000  10150   OUTP3:  TRNE IOS,EOTBIT ;EOT?\r
38124         000773' 254000  000776' 10160           JRST .+3        ;YES\r
38125         000774' 606400  740000  10170           TRNN IOS,740000 ;ANY ERROR BITS ON?\r
38126         000775' 254000  001707' 10180           JRST CPOPJ1     ;NO\r
38127         000776' 260240  001135' 10190           PUSHJ P,COMERR  ;YES\r
38128 \r
38129         000777' 265440  000542' 10210           JSP T5,INICN2   ;INIT TTY\r
38130         001000' 260240  001652' 10220           PUSHJ P,QUEST\r
38131         001001' 265040  002166' 10230           ERRPN2  </Output device />\r
38132         001002' 477536  470352\r
38133         001003' 721014  462754\r
38134         001004' 647074  520000\r
38135         001005' 260240  002201' 10240           PUSHJ   P,P6BIT\r
38136         001006' 000000  004634' 10250                   ODEV\r
38137         001007' 336000  004044' 10260           SKIPN   DTON            ;ONLY IF THERE IS A FILE NAME\r
38138         001010' 254000  001014' 10270           JRST    .+4             ;DON'T PRINT IF NOT\r
38139         001011' 265040  002166' 10280           ERRPN2  </: file />\r
38140         001012' 351014  664730\r
38141         001013' 625000  000000\r
38142         001014' 201140  004044' 10290           MOVEI T3,DTON   ;OUTPUT FILE NAME LOC\r
38143         001015' 260240  001146' 10300           PUSHJ P,FN.EX   ;PRINT FILE NAME EXT\r
38144         001016' 200100  000013  10310           MOVE T2,AUXFLG\r
38145         001017' 405100  014200  10320           ANDI T2,MTAOUT+DSKOUT+DTAOUT\r
38146 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 26\r
38147         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38148 \r
38149 \r
38150         001020' 201040  001074' 10350   IOERR:  MOVEI T1,TXTC   ;PHYSICAL END OF TAPE\r
38151         001021' 602400  002000  10360           TRNE IOS,EOTBIT\r
38152         001022' 254000  002166' 10370           JRST PTEXT2     ;YES\r
38153 \r
38154         001023' 201040  001055' 10390           MOVEI T1,TXTD2  ;7-9 PUNCH MISSING\r
38155         001024' 606100  000100  10400           TRNN T2,CDRIN\r
38156 \r
38157                                 10420   IFN FTDSK,<\r
38158                                 10430           MOVEI   T1,TXTD3\r
38159                                 10440           TRNN    T2,DSKIN!DSKOUT>\r
38160 \r
38161         001025' 201040  001042' 10460           MOVEI T1,TXTD   ;WRITE LOCK ERROR\r
38162         001026' 606100  074600  10470           TRNN T2,DSKIN+DSKOUT+DTAIN+DTAOUT+MTAIN+MTAOUT\r
38163 \r
38164         001027' 201040  001047' 10490           MOVEI T1,TXTD1\r
38165         001030' 602400  400000  10500           TRNE IOS,WRTLOK\r
38166         001031' 254000  002166' 10510           JRST PTEXT2\r
38167 \r
38168         001032' 201040  001062' 10530           MOVEI T1,TXTA   ;DEVICE ERROR\r
38169         001033' 602400  200000  10540           TRNE IOS,200000\r
38170         001034' 254000  002166' 10550           JRST PTEXT2\r
38171 \r
38172         001035' 201040  001066' 10570           MOVEI T1,TXTB   ;CHECKSUM/PARITY ERROR\r
38173         001036' 602400  100000  10580           TRNE IOS,100000\r
38174         001037' 254000  002166' 10590           JRST PTEXT2\r
38175 \r
38176                                 10610   IFN FTDSK,<\r
38177                                 10620           HRRZ    T1,TABLE+14\r
38178                                 10630           TRNN    T2,DSKOUT       ;QUOTA EXCEDED>\r
38179 \r
38180         001040' 201040  001100' 10650           MOVEI T1,TXTC1  ;BLOCK TOO LARGE\r
38181         001041' 254000  002166' 10660           JRST PTEXT2\r
38182 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 27\r
38183         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38184 \r
38185                                 10680   ;DEVICE ERROR COMMENTS\r
38186 \r
38187         001042' 737455  172312  10700   TXTD:   ASCIZ /write (lock) error/\r
38188         001043' 201215  467706\r
38189         001044' 655224  062744\r
38190         001045' 713376  200000\r
38191         001046' 254000  001107' 10710           JRST IOERRN     ;NO RECOVERY\r
38192 \r
38193         001047' 613235  660744  10730   TXTD1:  ASCIZ /binary data incomplete/\r
38194         001050' 745014  460750\r
38195         001051' 605015  167306\r
38196         001052' 677336  066312\r
38197         001053' 723120  000000\r
38198         001054' 254000  001114' 10740           JRST IOERRG\r
38199 \r
38200         001055' 335327  120340  10760   TXTD2:  ASCIZ /7-9 punch missing/\r
38201         001056' 727354  364100\r
38202         001057' 667236  371722\r
38203         001060' 673160  000000\r
38204         001061' 254000  001114' 10770           JRST IOERRG\r
38205 \r
38206         001062' 623136  664706  10790   TXTA:   ASCIZ /device error/\r
38207         001063' 625014  571344\r
38208         001064' 677440  000000\r
38209         001065' 254000  001114' 10800           JRST IOERRG\r
38210 \r
38211         001066' 617214  561726  10820   TXTB:   ASCIZ /checksum or parity error/\r
38212         001067' 717535  520336\r
38213         001070' 711016  060744\r
38214         001071' 647517  120312\r
38215         001072' 713455  771000\r
38216         001073' 254000  001114' 10830           JRST IOERRG\r
38217 \r
38218         001074' 703217  171722  10850   TXTC:   ASCIZ /physical eot/\r
38219         001075' 617035  420312\r
38220         001076' 677500  000000\r
38221         001077' 254000  001114' 10860           JRST IOERRG\r
38222 \r
38223         001100' 613315  761726  10880   TXTC1:  ASCIZ /block or block number too large/\r
38224         001101' 203376  220304\r
38225         001102' 663374  365500\r
38226         001103' 673535  561312\r
38227         001104' 711016  467736\r
38228         001105' 203314  171316\r
38229         001106' 624000  000000\r
38230                                 10890           ;FALLS THROUGH TO IOERRN\r
38231 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 28\r
38232         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38233 \r
38234 \r
38235         001107' 071200  000000  10920   IOERRN: RELEAS TAPE,    ;NO RECOVERY ERRORS EXIT HERE\r
38236         001110' 071240  000000  10930           RELEAS DIR,\r
38237         001111' 071100  000000  10940           RELEAS OUT,\r
38238         001112' 071140  000000  10950           RELEAS IN,\r
38239                                 10960   IFN DISK30,<\r
38240                                 10970           RELEAS BLKIN,>\r
38241         001113' 254000  000013' 10980           JRST PIP2       ;GET NEXT COMMAND\r
38242 \r
38243                                 11000   IFN FTDSK,<\r
38244                                 11010   TXTD3:  ASCIZ   /monitor detected software error/>\r
38245 \r
38246                                 11030   ;TEST IF /G FLAG(IGNORE ERRORS) SET\r
38247 \r
38248         001114' 607300  000200  11050   IOERRG: TLNN FLAG,GFLG          ;PRINTED CURRENT MESSAGE\r
38249         001115' 254000  001107' 11060           JRST IOERRN             ;NO RECOVERY\r
38250 \r
38251                                 11080           ERRPN2</\r
38252         001116' 265040  002166' 11090   />                              ;PRINT CR, LF DON'T MOVE>\r
38253         001117' 064240  000000\r
38254 \r
38255         001120' 071040  000000  11110           RELEAS CON,\r
38256         001121' 602540  100000  11120           TRNE AUXFLG,TTYOUT      ;TTY OUTPUT DEVICE?\r
38257         001122' 260240  000223' 11130           PUSHJ P,OMODE           ;YES, INIT OUTPUT DEVICE\r
38258         001123' 602540  001000  11140           TRNE AUXFLG,TTYIN       ;REINIT TTYIN,TTYOUT\r
38259         001124' 260240  000426' 11150           PUSHJ P,ININIT\r
38260         001125' 620400  740000  11160           TRZ IOS,740000          ;CLEAR FILE STATUS, I/O ERRORS\r
38261         001126' 602100  000600  11170           TRNE T2,MTAIN+MTAOUT\r
38262         001127' 620400  002000  11180           TRZ IOS,EOTBIT          ;CLEAR PHYSICAL EOT I/O ERROR\r
38263         001130' 204000  004674' 11190           MOVS 0,[XWD 1,SAVAC]\r
38264         001131' 251000  000003  11200           BLT 0,3\r
38265         001132' 200440  003764' 11210           MOVE T5,SAVAC+3\r
38266         001133' 200500  003765' 11220           MOVE T6,SAVAC+4\r
38267         001134' 263240  000000  11230           POPJ P,\r
38268 \r
38269 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 29\r
38270         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38271 \r
38272         001135' 200000  004674' 11260   COMERR: MOVE 0,[XWD 1,SAVAC]    ;SAVE ACS T1,T2,T3,T5,T6\r
38273         001136' 251000  003763' 11270           BLT 0,SAVAC+2\r
38274         001137' 202440  003764' 11280           MOVEM T5,SAVAC+3\r
38275         001140' 202500  003765' 11290           MOVEM T6,SAVAC+4\r
38276         001141' 602540  100000  11300           TRNE AUXFLG,TTYOUT      ;RELEASE ANY TTYIO\r
38277         001142' 071100  000000  11310           RELEAS OUT,\r
38278         001143' 602540  001000  11320           TRNE AUXFLG,TTYIN\r
38279         001144' 071140  000000  11330           RELEAS IN,\r
38280         001145' 263240  000000  11340           POPJ P,\r
38281                                 11350   ;PRINT FILE NAME AND EXTENSION FROM (T3), 1(T3).\r
38282 \r
38283         001146' 200043  000000  11370   FN.EX:  MOVE T1,(T3)    ;T1=FILENAME\r
38284         001147' 554503  000001  11380           HLRZ T6,1(T3)   ;T6=FILE EXT\r
38285         001150' 306500  654644  11390           CAIN T6,(SIXBIT /UFD/)\r
38286         001151' 400040  000000  11400           SETZ T1,        ;UFD FILES ONLY ARE ASSUMED TO HAVE FILENAME\r
38287         001152' 202040  004642' 11410           MOVEM T1,DERR2  ;OF NUMERIC FORM (#,# P-P NUMBER).\r
38288         001153' 322500  001166' 11420           JUMPE T6,DERR2A ;FILE EXT=0?\r
38289         001154' 302500  654644  11430           CAIE T6,(SIXBIT /UFD/)\r
38290         001155' 254000  001165' 11440           JRST DERR2B     ;NO\r
38291 \r
38292         001156' 554643  000000  11460           HLRZ DOUT,(T3)  ;YES, GET PROJ. NO.\r
38293         001157' 201100  002175' 11470           MOVEI T2,PUTCON ;PRINT PROJ-PROG. NO.\r
38294         001160' 260240  003235' 11480           PUSHJ P,OUTDC1  ;CONVERT TO ASCII\r
38295 \r
38296         001161' 201200  000054  11500           MOVEI CHR,COMMA\r
38297         001162' 260240  002175' 11510           PUSHJ P,PUTCON\r
38298 \r
38299         001163' 550643  000000  11530           HRRZ DOUT,(T3)  ;GET PROG. NO.\r
38300         001164' 260240  003235' 11540           PUSHJ P,OUTDC1  ;CONVERT TO ASCII\r
38301 \r
38302         001165' 661500  000016  11560   DERR2B: TLO     T6,"."-40       ;PUT SIXBIT PERIOD\r
38303         001166' 202500  004643' 11570   DERR2A: MOVEM   T6,DERR2+1      ;INTO EXTENSION\r
38304         001167' 260240  002201' 11580           PUSHJ   P,P6BIT\r
38305         001170' 000000  004642' 11590                   DERR2\r
38306         001171' 260240  002201' 11600           PUSHJ   P,P6BIT\r
38307         001172' 000000  004643' 11610                   DERR2+1\r
38308         001173' 201200  000040  11620           MOVEI   CHR," "\r
38309         001174' 254000  002175' 11630           JRST    PUTCON\r
38310 \r
38311 \r
38312 \r
38313 \r
38314 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 30\r
38315         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38316 \r
38317                                 11690   ;THIS ROUTINE GETS A 7 BIT ASCII CHARACTER FROM THE COMMAND STRING\r
38318                                 11700   ;AND RETURNS IT TO THE COMMAND SCANNER ROUTINE (NAME) IN AC0\r
38319 \r
38320         001175' 260240  001404' 11720   GETCOM: PUSHJ P,GETBUF\r
38321         001176' 306000  000057  11730           CAIN 0,"/"      ;SINGLE CHARACTER SWITCH\r
38322         001177' 254000  001300' 11740           JRST GETT6\r
38323         001200' 306000  000050  11750           CAIN 0,"("      ;LOOK FOR (MULTI-CHAR.) SWITCH\r
38324         001201' 254000  001252' 11760           JRST GETT3\r
38325         001202' 306000  000074  11770           CAIN 0,"<"      ;GO LOOK FOR PROTECTION\r
38326         001203' 254000  001223' 11780           JRST GETT9\r
38327         001204' 302000  000133  11790           CAIE 0,"["\r
38328         001205' 263240  000000  11800           POPJ P,\r
38329 \r
38330         001206' 260240  001236' 11820   GETT10: PUSHJ P,GETDEC  ;LOOK FOR PROJECT-PROGRAMMER NUMBER\r
38331         001207' 303600  777777  11830           CAILE T7,-1     ;GREATER THAN HALF WORD?\r
38332         001210' 254000  002107' 11840           JRST ERR2A      ;YES, ERROR\r
38333         001211' 302000  000054  11850           CAIE 0,","      ;SEPARATOR?\r
38334         001212' 254000  001232' 11860           JRST GETUPJ     ;OR TERMINATOR (NON-NUMERIC)\r
38335         001213' 516600  004043' 11870           HRLZM T7,PP\r
38336         001214' 260240  001236' 11880           PUSHJ   P,GETDEC\r
38337         001215' 303600  777777  11890           CAILE   T7,-1\r
38338         001216' 254000  002107' 11900           JRST    ERR2A\r
38339 \r
38340         001217' 542600  004043' 11920   GETT11: HRRM T7,PP\r
38341         001220' 306000  000135  11930           CAIN 0,"]"      ;FORCE CORRECT TERMINATOR\r
38342         001221' 254000  001175' 11940           JRST GETCOM\r
38343         001222' 254000  002076' 11950           JRST ERR2\r
38344 \r
38345         001223' 260240  001235' 11970   GETT9:  PUSHJ P,GETOCT\r
38346         001224' 306000  000076  11980           CAIN 0,">"      ;TERMINATE ON RIGHT BRKT ONLY\r
38347         001225' 303600  000777  11990           CAILE T7,777    ;PR. IN RANGE?\r
38348         001226' 254000  002107' 12000           JRST ERR2A\r
38349         001227' 241600  777767  12010           ROT T7,-11\r
38350         001230' 522600  004042' 12020           HLLOM T7,PR     ;RHS=1'S MEANS <> SEEN (PR MAY BE 0)\r
38351         001231' 254000  001175' 12030           JRST GETCOM\r
38352 \r
38353         001232' 200440  003734' 12050   GETUPJ: MOVE    T5,UPROJ\r
38354         001233' 516440  004043' 12060           HRLZM   T5,PP\r
38355         001234' 254000  001217' 12070           JRST    GETT11\r
38356         001235' 334440  004675' 12080   GETOCT: SKIPA   T5,[EXP 10]\r
38357         001236' 201440  000012  12090   GETDEC: MOVEI   T5,12\r
38358         001237' 201600  000000  12100   GETNUM: MOVEI T7,0      ;TO PICK UP P-P NUMBER\r
38359         001240' 260240  001404' 12110   GETN1:  PUSHJ P,GETBUF  ;AND PROTECTION\r
38360         001241' 306000  000040  12120           CAIN 0," "      ;IGNORE SPACES\r
38361         001242' 254000  001240' 12130           JRST GETN1\r
38362         001243' 301000  000060  12140           CAIL 0,"0"\r
38363         001244' 301011  000060  12150           CAIL 0,"0"(T5)\r
38364         001245' 263240  000000  12160           POPJ P,         ;GOT A NON-NUMERIC\r
38365         001246' 220600  000011  12170           IMUL    T7,T5   ; MULTIPLY BY RADIX\r
38366         001247' 275000  000060  12180           SUBI    0,"0"\r
38367         001250' 270600  000000  12190           ADD     T7,0    ; ADD DIGIT\r
38368         001251' 254000  001240' 12200           JRST GETN1\r
38369 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 31\r
38370         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38371 \r
38372         001252' 260240  001320' 12220   GETT3:  PUSHJ P,GETT5   ;PROCESS SWITCH CHARACTER\r
38373         001253' 306000  000051  12230           CAIN 0,")"      ;CLOSING PAREN?\r
38374         001254' 254000  001175' 12240           JRST GETCOM     ;YES\r
38375         001255' 306000  000115  12250           CAIN 0,"M"      ;MTA FLAG?\r
38376         001256' 660300  200000  12260           TRO FLAG, MTFLG ;SET MTA, LOOK FOR MULTI CHAR. SWITCH\r
38377         001257' 302000  000043  12270           CAIE 0,"#"      ;MTA#\r
38378         001260' 254000  001252' 12280           JRST GETT3      ;NO\r
38379         001261' 606300  200000  12290           TRNN FLAG,MTFLG ;ONLY LOOK AFTER # IF MTFLG IS ON.\r
38380         001262' 254000  002040' 12300           JRST ERR6A      ;I.E. IF MT SWITCH IS IN PROGRESS.\r
38381         001263' 260240  001305' 12310           PUSHJ P,GETNUD  ;GET A NUMBER\r
38382         001264' 302000  000104  12320           CAIE 0,"D"      ;TERMINATED BY D?\r
38383         001265' 306000  000101  12330           CAIN 0,"A"      ;TERMINATED BY A?\r
38384         001266' 254000  001276' 12340           JRST GETT3A     ;YES, MARK AB UPPER\r
38385         001267' 302000  000120  12350           CAIE 0,"P"      ;ONLY A,D,P AND B CAN BE\r
38386         001270' 306000  000102  12360           CAIN 0,"B"      ;PRECEDED BY #.\r
38387         001271' 254000  001273' 12370           SKIP    1\r
38388         001272' 254000  002040' 12380           JRST ERR6A\r
38389         001273' 542600  004136' 12390           HRRM T7,AB      ;NO. FILES/RECS TO ADVANCE\r
38390                                 12400                           ;GOES IN AB (RH)\r
38391         001274' 260240  001321' 12410   GETT3B: PUSHJ P,GETT5A\r
38392         001275' 254000  001252' 12420           JRST GETT3\r
38393 \r
38394         001276' 506600  004136' 12440   GETT3A: HRLM T7,AB      ;NO. FILES/RECS TO BACK SPACE\r
38395         001277' 254000  001274' 12450           JRST GETT3B     ;GOES IN AB (LH)\r
38396 \r
38397         001300' 260240  001320' 12470   GETT6:  PUSHJ P,GETT5   ;PROCESS ONE SWITCH CHAR\r
38398         001301' 302000  000115  12480           CAIE 0,"M"\r
38399         001302' 306000  000051  12490           CAIN 0,")"      ;THESE ARE ILLEGAL 1-SWITCH CHARS.\r
38400         001303' 254000  002040' 12500           JRST ERR6A\r
38401         001304' 254000  001175' 12510           JRST GETCOM\r
38402 \r
38403         001305' 201600  000000  12530   GETNUD: MOVEI T7,0      ;GET A DECIMAL NUMBER\r
38404         001306' 260240  001404' 12540   GETN2:  PUSHJ P,GETBUF  ;GET CHAR FROM COMMAND STRING\r
38405         001307' 306000  000040  12550           CAIN 0,SPACE    ;SPACE?\r
38406         001310' 254000  001306' 12560           JRST GETN2      ;YES, IGNORE\r
38407         001311' 301000  000060  12570           CAIL 0,"0"      ;NUMBER?\r
38408         001312' 303000  000071  12580           CAILE 0,"9"\r
38409         001313' 263240  000000  12590           POPJ P,         ;NO\r
38410         001314' 221600  000012  12600           IMULI T7,^D10   ;T7*10\r
38411         001315' 405000  000017  12610           ANDI 0,17       ;ADD ON LAST DIGIT\r
38412         001316' 270600  000000  12620           ADD T7,0        ;+ LOW 4 BITS\r
38413         001317' 254000  001306' 12630           JRST GETN2\r
38414 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 32\r
38415         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38416 \r
38417 \r
38418                                 12660   ;GET NEXT COMMAND STRING CHAR(SWITCH),CHECK WITH TABLE,SET FLAGS\r
38419 \r
38420         001320' 260240  001404' 12680   GETT5:  PUSHJ P,GETBUF  ;GET CHAR FROM COMMAND STRING\r
38421         001321' 200100  004676' 12690   GETT5A: MOVE T2,[XWD 350700,DISPTB]     ;SET DISPTB NEXT SEARCH\r
38422         001322' 201500  004056' 12700           MOVEI T6,MTAREQ ;SET MTAREQ NEXT SEARCH\r
38423 \r
38424         001323' 606300  200000  12720           TRNN FLAG,MTFLG ;SET UP TABLE TO SEARCH AND FLAG TO SET.\r
38425         001324' 541100  001436' 12730           HRRI T2,DISPTA  ;PUT IN BYTE POINTER, NOT MTA REQUEST\r
38426 \r
38427                                 12750   ;SET TO LOOK AT NON-MTA LETTERS FIRST\r
38428 \r
38429         001325' 606300  200000  12770           TRNN FLAG,MTFLG ;IF MTFLG SET, START AT DISPTB AND STORE RESULT IN\r
38430         001326' 201500  000013  12780           MOVEI T6,AUXFLG ;MTAREQ, ELSE START AT DISPTA AND STORE RESULT IN\r
38431                                 12790                           ;AUXFLG OR FLAG\r
38432                                 12800   ;GET FIRST CHAR DISPTA OR DISPTB, LOOK FOR MATCH, SET SWITCH FLAGS.\r
38433 \r
38434         001327' 135140  000002  12820   GETT7:  LDB T3,T2       ;COMPARE WITH LEFT 7 BITS OF\r
38435         001330' 326140  001335' 12830           JUMPN T3,GETT8  ;TABLE ENTRIES\r
38436         001331' 620300  200000  12840           TRZ FLAG, MTFLG ;SEARCHED TABLE 1 (DISPTB) DROP MTA FLAG\r
38437         001332' 201500  000013  12850           MOVEI T6,AUXFLG ;SET AUXFLG NEXT TABLE SEARCH\r
38438         001333' 603540  000020  12860           TLNE AUXFLG,NOMORE      ;AFTER FIRST INPUT DEVICE ONLY ACCEPT MTA FLAGS\r
38439         001334' 263240  000000  12870           POPJ P,\r
38440 \r
38441         001335' 306140  000001  12890   GETT8:  CAIN T3,1       ;END OF DISPTA 1ST HALF?\r
38442         001336' 201500  000006  12900           MOVEI T6,FLAG   ;YES, SEARCH DISPTA 2ND HALF FROM NOW ON\r
38443         001337' 306140  000002  12910           CAIN T3,2       ;END OF DISPTA 2ND HALF?\r
38444         001340' 254000  002040' 12920           JRST ERR6A      ;SEARCHED TABLE 3, ERROR EXIT\r
38445         001341' 312140  000000  12930           CAME T3,0       ;MATCHING CHARACTER?\r
38446         001342' 344100  001327' 12940           AOJA T2,GETT7   ;NO, GET NEXT SWITCH IN TABLE.\r
38447 \r
38448         001343' 200442  000000  12960           MOVE T5,(T2)    ;YES, SET FLAG OR AUXFLG OR MTAREQ\r
38449         001344' 436452  000000  12970           ORM T5,(T6)     ;FLAG OR AUXFLG\r
38450         001345' 602300  200000  12980           TRNE FLAG,MTFLG\r
38451         001346' 436440  004133' 12990           ORM T5,AUX      ;MTA REQUESTS SAVED IN AUX\r
38452                                 13000   IFE RIMSW,<\r
38453         001347' 603300  000002  13010           TLNE FLAG,RIMFLG\r
38454         001350' 254000  004652' 13020           JRST RIMTB      ;NO RIM IF RIMSW=0\r
38455                                 13030           >               ;PRINT ERROR MESSAGE\r
38456         001351' 263240  000000  13040           POPJ P,         ;EXIT ON MATCHING CHAR\r
38457 \r
38458 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 33\r
38459         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38460 \r
38461 \r
38462                                 13070   ;ROUTINE TO GET ONE TTY OR CCL COMMAND STRING CHAR INTO AC 0\r
38463 \r
38464         001352'                 13090   GETTA:\r
38465 \r
38466         001352' 373000  003755' 13110           SOSLE TFI+2     ;SUBR TO GET ONE TTY CHAR IN AC 0\r
38467         001353' 254000  001371' 13120           JRST GETT2      ;BUFFER NOT EMPTY\r
38468         001354' 200000  003753' 13130           MOVE 0,TFI      ;BUFFER EMPTY, SAVE\r
38469         001355' 200440  003756' 13140           MOVE T5,TFO     ;CURRENT BUFFER LOCS\r
38470         001356' 260240  001410' 13150           PUSHJ P,INICON  ;BUFFER EMPTY SO RE-ATTACH TTY\r
38471         001357' 562000  003753' 13160           HRROM 0,TFI     ;RESTORE OLD BUFFER LOCS\r
38472         001360' 562440  003756' 13170           HRROM T5,TFO    ;USE PREVIOUSLY ASSIGNED I/O BUF. FOR TTY\r
38473         001361' 200440  004131' 13180           MOVE T5,COMCNT  ;DONT TYPE CR,LF\r
38474         001362' 307440  000105  13190           CAIG T5,^D69    ;FOR SHORT LINE\r
38475         001363' 254000  001365' 13200           JRST GETTIN\r
38476         001364' 260240  002735' 13210           PUSHJ   P,INFO2 ;TYPE CR,LF\r
38477         001365' 066040  000000  13220   GETTIN: INPUT CON,      ;GET THE NEXT LINE\r
38478         001366' 200440  003755' 13230           MOVE T5,TFI+2   ;SAVE CHAR COUNT\r
38479         001367' 071040  000000  13240           RELEAS CON,     ;LET GO OF TTY FOR USE AS IN-OUT DEVICE\r
38480         001370' 202440  003755' 13250           MOVEM T5,TFI+2  ;RESTORE CHAR COUNT LOST DURING RELEASE\r
38481         001371' 134000  003754' 13260   GETT2:  ILDB 0,TFI+1    ;FETCH CHAR\r
38482         001372' 302000  000175  13270   GETT4:  CAIE 0,ALT175   ;OLD ALTMODE?\r
38483         001373' 306000  000176  13280           CAIN 0,ALT176\r
38484         001374' 201000  000033  13290           MOVEI 0,ALTMOD  ;YES,MAKE NEW ALTMOD\r
38485         001375' 322000  001352' 13300           JUMPE   0,GETTA ;IGNORE NULL CHARS\r
38486         001376' 301000  000140  13310           CAIL 0,140      ;LOWER CASE?\r
38487         001377' 620000  000040  13320           TRZ     0,40    ;YES MAKE UPPER CASE?\r
38488         001400' 302000  000021  13330           CAIE    0,XON   ;IGNORE XON,XOFF ONLY FOR\r
38489         001401' 306000  000023  13340           CAIN    0,XOFF  ;TTY SERVICE TO SIGNAL TTY\r
38490         001402' 254000  001352' 13350           JRST    GETTA   ;PTR READ IN MODE\r
38491         001403' 263240  000000  13360           POPJ P,\r
38492 \r
38493                                 13380   ;ROUTINE TO GET ONE TTY CHAR FROM COMBUF INTO AC0\r
38494 \r
38495         001404' 375000  004131' 13400   GETBUF: SOSGE COMCNT    ;ANY CHARS LEFT?\r
38496         001405' 254000  002045' 13410           JRST ERR6B      ;NO, COMMAND ERROR\r
38497         001406' 134000  004132' 13420           ILDB 0,COMPTS   ;PICK UP CHAR FROM COMBUF\r
38498         001407' 263240  000000  13430           POPJ P,\r
38499 \r
38500                                 13450   ;ROUTINE TO INITIALIZE THE TTY, ASCII LINE MODE\r
38501 \r
38502         001410' 041040  000001  13470   INICON: INIT CON,1      ;SUBR TO INITIALIZE THE TTY\r
38503         001411' 646471  000000  13480           SIXBIT /TTY/\r
38504         001412' 003756' 003753' 13490           XWD TFO,TFI     ;TTY OUT/IN BUFFER HEADERS\r
38505         001413' 047000  000012  13500           EXIT            ;IF TTY NOT AVAILABLE,FATAL.JOB DET?\r
38506         001414' 263240  000000  13510           POPJ P,\r
38507 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 34\r
38508         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38509 \r
38510                                 13530   ;GET 7 BIT ASCII CHARACTER - INPUT FROM CCL COMMAND FILE\r
38511 \r
38512         001415' 476000  004057' 13550   GETEN2: SETOM   COMEOF          ;INDICATE END OF FILE\r
38513         001416' 201000  000032  13560           MOVEI   0,CZ            ;NEEDED TO TERM CCL CS SCAN\r
38514         001417' 263240  000000  13570           POPJ    P,\r
38515 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 35\r
38516         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38517 \r
38518                                 13590   ;TABLE OF RECOGNIZED COMMAND LETTERS AND CORRESPONDING FLAG BITS\r
38519 \r
38520                                 13610   DEFINE DISP (A,B)\r
38521                                 13620   <       XWD <"A">*4000,B>\r
38522                                 13630   ;MAGTAPE SWITCHES AND FLAG BITS. TABLE 1 (MTAREQ)\r
38523         001420' 404000  000001  13640   DISPTB: DISP A,MTAFLG\r
38524         001421' 410000  000002  13650           DISP B,MTBFLG\r
38525         001422' 520000  000004  13660           DISP T,MTTFLG\r
38526         001423' 534000  000010  13670           DISP W,MTWFLG\r
38527         001424' 340000  000400  13680           DISP 8,MT8FLG\r
38528         001425' 324000  001000  13690           DISP 5,MT5FLG\r
38529         001426' 310000  002000  13700           DISP 2,MT2FLG\r
38530         001427' 424000  004000  13710           DISP E,MTEFLG\r
38531         001430' 524000  000040  13720           DISP U,MTUFLG\r
38532         001431' 430000  000020  13730           DISP F,MTFFLG\r
38533         001432' 420000  000100  13740           DISP D,MTDFLG\r
38534         001433' 500000  000200  13750           DISP P,MTPFLG\r
38535         001434' 214000  000000  13760           DISP #,0\r
38536         001435' 000000  000000  13770           OCT 000000000000\r
38537                                 13780   ;1ST BYTE 0=END OF DISPTB\r
38538                                 13790   ;------------------------\r
38539                                 13800   ;COMMAND STRING LETTERS AND FLAG BITS. TABLE 2 (AUXFLG)\r
38540         001436' 504001  000000  13810   DISPTA:                 XWD <"Q">*4000+QFLG,0\r
38541         001437' 424040  000000  13820                           XWD <"E">*4000+CDRFLG,0\r
38542         001440' 430000  000020  13830           DISP F,FFLG\r
38543         001441' 004000  000000  13840           OCT 004000000000\r
38544                                 13850   ;1ST BYTE 1=END OF DISPTA 1ST HALF\r
38545                                 13860   ;------------------------\r
38546                                 13870   ;COMMAND STRING LETTERS AND FLAG BITS. TABLE 3 (FLAG)\r
38547         001442' 404000  000001  13880           DISP A,LINE\r
38548         001443' 410000  000002  13890           DISP B,BMOD\r
38549                                 13900   IFN,K,< DISP C,TBMOD\r
38550                                 13910           DISP D,DFLG\r
38551                                 13920           DISP L,LFLG>\r
38552         001444' 464000  000000  13930           DISP M,0\r
38553         001445' 244000  000000  13940           DISP ),0\r
38554         001446' 470000  000040  13950           DISP N,NSMOD\r
38555         001447' 474000  400640  13960           DISP O,SQMOD+NSMOD+STS+OSFLG\r
38556         001450' 500014  000000  13970                           XWD <"P">*4000+PFLG+PCONV,0\r
38557                                 13980   IFN,K<  DISP R,RFLG>\r
38558         001451' 514000  000640  13990           DISP S,SQMOD+NSMOD+STS\r
38559                                 14000   IFN,K<  DISP T,SPMOD\r
38560                                 14010                           XWD <"V">*4000+CHKFLG,LINE\r
38561                                 14020           DISP X,XFLG>\r
38562         001452' 550000  004000  14030           DISP Z,ZFLG\r
38563         001453' 524001  000000  14040                           XWD <"U">*4000+OFLG,0\r
38564         001454' 544402  000000  14050                           XWD <"Y">*4000+IBFLG+RIMFLG,0\r
38565         001455' 451000  000000  14060                           XWD <"J">*4000+JFLG,0\r
38566         001456' 444100  000000  14070                           XWD <"I">*4000+IFLG,0\r
38567         001457' 440400  000000  14080                           XWD <"H">*4000+IBFLG,0\r
38568         001460' 434200  000000  14090                           XWD <"G">*4000+GFLG,0\r
38569         001461' 010000  000000  14100           OCT 010000000000\r
38570                                 14110   ;FIRST BYTE 2=END OF DISPTA 2ND HALF\r
38571 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 36\r
38572         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38573 \r
38574                                 14130   ;SUBR TO GET NEXT CHAR INTO AC CHR\r
38575                                 14140   ;NO SKIP RETURN IS END OF FILE, SINGLE SKIP IS NORMAL RETURN\r
38576 \r
38577         001462' 607300  000020  14160   GET:    TLNN FLAG,NEWFIL        ;NEW FILE?\r
38578         001463' 627300  000030  14170           TLZN FLAG,PCONV+NEWFIL  ;NO,CONVERT THIS CHAR?\r
38579         001464' 254000  001506' 14180           JRST GETPC1     ;YES\r
38580         001465' 135200  003743' 14190           LDB CHR,IBF+1   ;GET CHAR\r
38581         001466' 306200  000040  14200           CAIN CHR," "    ;SPACE?\r
38582         001467' 254000  001544' 14210           JRST GETPC2     ;YES, CONVERT TO LINE FEED\r
38583         001470' 307200  000063  14220           CAIG CHR,"3"    ;IS THE CHAR A PROPER FORMAT CONTROL CHAR?\r
38584         001471' 305200  000052  14230           CAIGE CHR,"*"\r
38585         001472' 254000  001542' 14240           JRST GETPC3     ;NO, SO OUTPUT LINE FEED FOLLOWED BY BAD CHAR\r
38586         001473' 307200  000056  14250           CAIG CHR,"."    ;USE LEFT HALF OF TABLE?\r
38587         001474' 334204  001474' 14260           SKIPA CHR,PCHTAB-<"*">(CHR)\r
38588         001475' 204204  001467' 14270           MOVS CHR,PCHTAB-<"/">(CHR)\r
38589         001476' 137200  003743' 14280   GETPC4: DPB CHR,IBF+1   ;CLOBBER OLD CHAR, USUALLY BECOMES NULL\r
38590         001477' 242200  777771  14290           LSH CHR,-7      ;BUT OTHERWISE BECOMES ANOTHER FORMAT CHAR\r
38591         001500' 405200  000377  14300           ANDI CHR,377    ;EXTRACT THE CHAR TO BE OUTPUT\r
38592         001501' 622200  000200  14310           TRZE CHR,200    ;=1 FOR GENERATING MULTIPLE LINE FEEDS\r
38593         001502' 661300  000010  14320           TLO FLAG,PCONV  ;CONTINUE TO CONVERT\r
38594         001503' 326200  001707' 14330           JUMPN CHR,CPOPJ1;OUTPUT THE GENERATED CHAR UNLESS NULL\r
38595         001504' 262245  000000  14340           POP     P,(P)   ;IGNORE NULL CHARS\r
38596         001505' 254000  000374' 14350           JRST    PSCAN4  ;DUMP THE LINE BUFFER\r
38597         001506' 606300  010000  14360   GETPC1: TRNN FLAG,SUS   ;SUPPLYING SEQ. NUM. NOW?\r
38598         001507' 254000  001532' 14370           JRST GET2       ;NO\r
38599         001510' 134200  004036' 14380           ILDB CHR,PTRPT  ;YES, SO GET CHAR OF SEQ NUM\r
38600         001511' 326200  001707' 14390           JUMPN CHR,CPOPJ1;0 MARKS LAST CHAR\r
38601         001512' 135040  003743' 14400           LDB T1,IBF+1    ;GET FIRST CHAR OF THIS LINE\r
38602         001513' 201200  000015  14410           MOVEI CHR,15\r
38603         001514' 307040  000015  14420           CAIG T1,15      ;PREPARE TO OUTPUT A CR,LF\r
38604         001515' 305040  000012  14430           CAIGE T1,12     ;IS FIRST CHAR OF LINE AN END OF LINE CHAR?\r
38605         001516' 201200  000011  14440           MOVEI   CHR,TAB ;NO, SO OUTPUT A TAB\r
38606         001517' 620300  010000  14450           TRZ FLAG,SUS    ;TURN OFF SUS SUPPLY\r
38607         001520' 254000  001724' 14460           JRST    GETA5\r
38608         001521' 350000  003743' 14470   GET5:   AOS IBF+1       ;HERE IF A SEQ NUM FOUND IN INBUFFER\r
38609         001522' 275040  000005  14480           SUBI T1,5       ;IGNORE SEQ NUM, TAB AND DECREMENT CHAR COUNT\r
38610         001523' 202040  003744' 14490           MOVEM T1,IBF+2\r
38611         001524' 602300  000040  14500           TRNE FLAG,NSMOD ;REMOVE SEQ NUMS MODE?\r
38612         001525' 254000  001532' 14510           JRST GET2       ;YES, SO GET NEXT CHAR\r
38613         001526' 202100  004014' 14520           MOVEM T2,SQNUM  ;SEQ NUM FROM BUFFER BECOMES NEW SEQ NUM\r
38614         001527' 260240  000707' 14530           PUSHJ P,OUTLBF  ;DUMP THE LINE BUFFER (IF REQUIRED)\r
38615         001530' 666300  100400  14540           TRON FLAG,STS+SNI       ;TURN ON START OF LINE\r
38616                                 14550                           ;AND NO-INCREMENT SEQ NUM FLAG\r
38617         001531' 260240  000553' 14560           PUSHJ P,CLRBUF  ;CLEAR LBUF IF IN THE MIDDLE OF A LINE\r
38618 \r
38619         001532' 622300  040000  14580   GET2:   TRZE FLAG,ESQ   ;REPROCESS LAST CHAR?\r
38620         001533' 254000  001557' 14590           JRST GET1       ;YES\r
38621         001534' 371040  003744' 14600           SOSL T1,IBF+2   ;CHARS REMAINING IN INBUFFER?\r
38622         001535' 254000  001553' 14610           JRST GET4       ;YES\r
38623         001536' 260240  001616' 14620           PUSHJ P,INP     ;NO, SO REFILL AND CHECK ERR BITS\r
38624         001537' 602400  020000  14630           TRNE IOS,EOFBIT ;END OF FILE? IOS HAS STATUS BITS\r
38625         001540' 263240  000000  14640           POPJ P,         ;YES\r
38626         001541' 254000  001532' 14650           JRST GET2       ;NO, SO PROCESS INBUFFER\r
38627 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 36-1\r
38628         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38629 \r
38630 \r
38631         001542' 660300  040000  14670   GETPC3: TRO FLAG,ESQ    ;REPROCESS BAD CHAR\r
38632         001543' 664200  002400  14680           TROA CHR,12*200 ;PRECEED BAD CHAR WITH LINE FEED\r
38633         001544' 201200  002400  14690   GETPC2: MOVEI CHR,12*200;CHANGE SPACE TO LINE FEED\r
38634         001545' 254000  001476' 14700           JRST GETPC4\r
38635 \r
38636         001546' 005000  004656  14720   PCHTAB: XWD 24*200,23*200+"."   ;/ *\r
38637         001547' 042440  037600  14730           XWD 212*200+" ",177*200 ;0 +   VJC 4/16/49\r
38638         001550' 003000  004200  14740           XWD 14*200,21*200       ;1 ,\r
38639         001551' 004000  042460  14750           XWD 20*200,212*200+"0"  ;2 -\r
38640         001552' 002600  004400  14760           XWD 13*200,22*200       ;3 .\r
38641 \r
38642         001553' 134200  003743' 14780   GET4:   ILDB CHR,IBF+1  ;FETCH CHAR FROM INBUFFER\r
38643         001554' 616300  004672' 14790           TDNN FLAG,[XWD IFLG+IBFLG,BMOD] ;BIN, IB, I OR SBIN MODE?\r
38644         001555' 603540  000004  14800           TLNE AUXFLG,SBIN\r
38645         001556' 254000  001707' 14810           JRST CPOPJ1     ;YES, SO NO PROCESSING REQUIRED\r
38646         001557' 135200  003743' 14820   GET1:   LDB CHR,IBF+1   ;AFTER SEQ NUM, HERE FOR 1ST CHAR\r
38647         001560' 322200  001532' 14830           JUMPE CHR,GET2  ;IGNORE NULL CHARS\r
38648         001561' 306200  000012  14840           CAIN CHR,LF     ;IGNORE LINE FEED IN FORTRAN OUTPUT\r
38649         001562' 607300  000004  14850           TLNN FLAG,PFLG  ;/P SWITCH IN EFFECT?\r
38650         001563' 254000  001566' 14860           JRST GET1A      ;NO\r
38651         001564' 661300  000010  14870           TLO FLAG,PCONV  ;CONVERT THE NEXT LIVE CHAR\r
38652         001565' 254000  001532' 14880           JRST GET2       ;GET NEXT CHAR\r
38653         001566' 200120  003743' 14890   GET1A:  MOVE T2,@IBF+1  ;BIT 35 OF BUFFER SET?\r
38654         001567' 622100  000001  14900           TRZE T2,1\r
38655         001570' 254000  001521' 14910           JRST GET5       ;YES, THIS IS A SEQ NUM\r
38656         001571' 622300  000400  14920           TRZE FLAG,STS   ;START SEQ (NEW LINE) FLAG ON?\r
38657         001572' 606300  100200  14930           TRNN FLAG,SQMOD+SNI     ;YES, SEQ MODE OR SEQ COPY?\r
38658         001573' 254000  001666' 14940           JRST GET7       ;NO, SO PROCESS CHAR\r
38659         001574' 200100  004014' 14950           MOVE T2,SQNUM   ;NO, SO ADD 10. TO SEQ NUM\r
38660         001575' 200040  003724' 14960           MOVE T1,K1\r
38661         001576' 602300  400000  14970           TRNE FLAG,OSFLG ;TEST FOR INCR. BY ONE\r
38662         001577' 200040  003726' 14980           MOVE T1,K4\r
38663         001600' 270100  000001  14990           ADD T2,T1       ;ASCII INCREMENT\r
38664         001601' 404100  003725' 15000           AND T2,K3       ;MASK SIGNIFICANT DIGITS\r
38665         001602' 200040  000002  15010           MOVE T1,T2\r
38666         001603' 404040  003721' 15020           AND T1,ZRO      ;MASK CARRY BITS\r
38667         001604' 240040  777775  15030           ASH T1,-3\r
38668         001605' 274100  000001  15040           SUB T2,T1       ;ADJUST CARRIES\r
38669         001606' 434100  003721' 15050           IOR T2,ZRO\r
38670         001607' 626300  100000  15060           TRZN FLAG,SNI   ;NON-INCREMENT SEQ NUM FLAG ON?\r
38671         001610' 202100  004014' 15070           MOVEM T2,SQNUM  ;NO, SO SAVE THE RESULT\r
38672         001611' 660300  050001  15080           TRO FLAG,LINE+SUS+ESQ   ;TURN ON SUPPLY SEQ, REPROCESS\r
38673                                 15090                                   ;LAST CHAR, AND LINE-BY-LINE FLAGS\r
38674         001612' 350000  004174' 15100           AOS LBUF                ;SET BIT 35 IN LBUF TO MARK SEQ NUM\r
38675         001613' 200040  004677' 15110           MOVE T1,[POINT 7,SQNUM]\r
38676         001614' 202040  004036' 15120           MOVEM T1,PTRPT  ;INITIALIZE SEQ NUM PICK-UP POINTER\r
38677         001615' 254000  001462' 15130           JRST GET        ;GO OUTPUT FIRST CHAR OF SEQ NUM\r
38678 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 37\r
38679         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38680 \r
38681                                 15150   ;ROUTINE TO INPUT INPUT FILE\r
38682 \r
38683         001616' 056140  000000  15170   INP:    IN      IN,     ;INPUT DATA\r
38684         001617' 254000  001710' 15180           JRST    CPOPJZ  ;NO ERRORS ,BUT CLEAR IOS JUST IN CASE\r
38685         001620' 062140  000010  15190   INERR:  GETSTS IN,IOS   ;SUBR TO CHECK INPUT ERR BITS\r
38686         001621' 606540  000400  15200           TRNN AUXFLG,MTAIN       ;MTA INPUT?\r
38687         001622' 602400  740000  15210           TRNE IOS,740000 ;ANY ERROR BITS SET?\r
38688         001623' 606400  742000  15220           TRNN IOS,740000+EOTBIT  ;EOT FOR MTA?\r
38689         001624' 263240  000000  15230           POPJ P,         ;NO\r
38690 \r
38691         001625' 260240  001135' 15250           PUSHJ P,COMERR  ;SAVE AC'S RELEASE TTY\r
38692         001626' 265440  000542' 15260           JSP T5,INICN2   ;YES SO PRINT OUT COMPLETE FILE DESCRIPTOR\r
38693         001627' 260240  001652' 15270           PUSHJ P,QUEST\r
38694         001630' 265040  002166' 15280           ERRPN2  </Input device />\r
38695         001631' 447356  072750\r
38696         001632' 203114  573322\r
38697         001633' 617124  000000\r
38698         001634' 260240  002201' 15290           PUSHJ   P,P6BIT\r
38699         001635' 000000  004637' 15300                   DEVICE\r
38700         001636' 336000  004052' 15310           SKIPN   ZRF             ;IS THERE A FILE NAME\r
38701         001637' 254000  001643' 15320           JRST    .+4             ;NO,SO DON'T PRINT\r
38702         001640' 265040  002166' 15330           ERRPN2  </: file />\r
38703         001641' 351014  664730\r
38704         001642' 625000  000000\r
38705         001643' 201140  004052' 15340           MOVEI T3,ZRF    ;LOC OF INPUT FILE NAME TO T3\r
38706         001644' 260240  001146' 15350           PUSHJ P,FN.EX   ;DEPOSIT FILE NAME, EXT INTO TTY OUT BUFFER\r
38707         001645' 200100  000013  15360           MOVE T2,AUXFLG\r
38708         001646' 405100  060500  15370           ANDI T2,CDRIN+DTAIN+DSKIN+MTAIN\r
38709         001647' 260240  001020' 15380           PUSHJ P,IOERR   ;GO PRINT ERROR DESCRIPTOR\r
38710         001650' 060150  000000  15390           SETSTS IN,(IOS)\r
38711         001651' 263240  000000  15400           POPJ P,\r
38712 \r
38713                                 15420   ;ROUTINE TO TEST IF BLOCK TOO LARGE, OR WRITE LOCKED\r
38714 \r
38715         001652' 201200  000077  15440   QUEST:  MOVEI CHR,"?"   ;DEPOSIT "?" IN ERROR MSG\r
38716         001653' 607300  000200  15450           TLNN FLAG,GFLG  ;ONLY IF /G NOT ON\r
38717         001654' 254000  002175' 15460           JRST PUTCON     ;/G NOT ON, PRINT ?(FATAL) BEFORE ERR MSG\r
38718 \r
38719         001655' 606400  040000  15480           TRNN IOS,BIGBLK ;BLOCK NO. TOO LARGE?\r
38720         001656' 254000  001662' 15490           JRST QUEST2     ;NO\r
38721         001657' 606540  024000  15500           TRNN AUXFLG,DTAIN+DTAOUT        ;YES\r
38722         001660' 263240  000000  15510           POPJ P,         ;BLOCK TOO LARGE\r
38723 \r
38724         001661' 254000  002175' 15530           JRST PUTCON     ;DEPOSIT "?" FATAL EVEN IF /G ON\r
38725 \r
38726         001662' 602400  400000  15550   QUEST2: TRNE IOS,WRTLOK ;WRITE LOCKED?\r
38727         001663' 606540  034600  15560           TRNN AUXFLG,DTAIN+DTAOUT+MTAIN+MTAOUT+DSKOUT\r
38728         001664' 263240  000000  15570           POPJ P,         ;NO\r
38729         001665' 254000  002175' 15580           JRST PUTCON     ;DEPOSIT "?" FATAL EVEN IF /G ON\r
38730 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 38\r
38731         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38732 \r
38733 \r
38734         001666' 603300  000010  15610   GET7:   TLNE FLAG,PCONV ;CONVERTING FORTRAN CARRAIGE CONTROL CHAR?\r
38735         001667' 254000  001463' 15620           JRST GET+1      ;YES, GO DO IT\r
38736         001670' 350040  004035' 15630           AOS T1,CDRCNT\r
38737         001671' 603540  000040  15640           TLNE AUXFLG,CDRFLG\r
38738         001672' 254000  001712' 15650           JRST GET7B      ;CARD READER INPUT\r
38739 \r
38740         001673' 306200  000040  15670   GET7C:  CAIN CHR,SPACE  ;SPACE?\r
38741         001674' 254000  001727' 15680           JRST GETA2      ;YES\r
38742         001675' 306200  000015  15690           CAIN CHR,CR     ;CAR. RET.?\r
38743         001676' 254000  001717' 15700           JRST GETA3      ;YES\r
38744         001677' 620300  020000  15710           TRZ FLAG,SPOK   ;CHAR NOT A SPACE STOP COUNTING CONSEC. SPACES\r
38745         001700' 306200  000011  15720           CAIN CHR,TAB    ;TAB?\r
38746         001701' 254000  001724' 15730           JRST GETA5      ;KEEP TRACK OF TAB STOPS\r
38747         001702' 307200  000137  15740           CAIG CHR,137\r
38748         001703' 305200  000040  15750           CAIGE CHR,SPACE ;NON-SPACING CHARACTER?\r
38749         001704' 254000  001707' 15760           JRST CPOPJ1     ;YES, SO RETURN IMMEDIATELY\r
38750         001705' 377000  004027' 15770           SOSG TABCT      ;COUNT DOWN THE TAB STOP COUNTER\r
38751         001706' 254000  001724' 15780           JRST GETA5      ;RESET THE COUNTER IF TAB STOP IS PASSED\r
38752         001707' 354005  000000  15790   CPOPJ1: AOSA    (P)     ;SKIP RETURN\r
38753         001710' 400400  000000  15800   CPOPJZ: SETZ    IOS,    ;CLEAR IOS JUST IN CASE\r
38754         001711' 263240  000000  15810   CPOPJ:  POPJ    P,\r
38755 \r
38756 \r
38757         001712' 301040  000111  15840   GET7B:  CAIL T1,^D73    ;LT COL 73?\r
38758         001713' 303040  000120  15850           CAILE T1,^D80   ;NO, LE COL 80?\r
38759         001714' 254000  001673' 15860           JRST    GET7C   ;CANT BE A CARD SEQUENCE NUMBER\r
38760         001715' 201200  000040  15870           MOVEI CHR,SPACE ;REPLACE CARD SEQUENCE NOS. BY SPACE\r
38761         001716' 254000  001673' 15880           JRST GET7C\r
38762 \r
38763         001717' 622300  020000  15900   GETA3:  TRZE FLAG,SPOK  ;CAR. RET. SEEN, ANY TRAILING SPACES?\r
38764         001720' 606300  001004  15910           TRNN FLAG,SPMOD+TBMOD   ;YES, ARE WE FLUSHING TRAILING SPACES\r
38765         001721' 254000  001724' 15920           JRST GETA5      ;NO, RESET TAB COUNTER ONLY\r
38766         001722' 200000  004023' 15930           MOVE 0,SVPTR1\r
38767         001723' 202000  004020' 15940           MOVEM 0,OPTR    ;CLOBBER THE OUTPUT POINTER TO LBUF\r
38768         001724' 201000  000010  15950   GETA5:  MOVEI 0,TABSP\r
38769         001725' 202000  004027' 15960           MOVEM 0,TABCT   ;RESET THE TAB COUNTER\r
38770         001726' 254000  001707' 15970           JRST    CPOPJ1\r
38771 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 39\r
38772         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38773 \r
38774         001727' 662300  020000  15990   GETA2:  TROE FLAG,SPOK  ;SPACE WAS SEEN, IS THIS ONE OF A SEQUENCE?\r
38775         001730' 254000  001735' 16000           JRST GETA7      ;YES\r
38776         001731' 200000  004020' 16010           MOVE 0,OPTR     ;THIS IS THE FIRST SPACE SEEN, SAVE LBUF\r
38777                                 16020                           ;POINTER IN CASE THIS SPACE MUST BE FLUSHED\r
38778         001732' 202000  004023' 16030           MOVEM 0,SVPTR1  ;THIS POINTER FOR FLUSHING FINAL SPACES\r
38779         001733' 202000  004024' 16040           MOVEM 0,SVPTR2  ;THIS POINTER FOR CHANGING MULT. SPACES TO TABS\r
38780         001734' 402000  004030' 16050           SETZM SPCT      ;INITIALIZE THE SPACE COUNTER\r
38781         001735' 350040  004030' 16060   GETA7:  AOS T1,SPCT\r
38782         001736' 373000  004027' 16070           SOSLE TABCT     ;ARE WE AT THE NEXT TAB STOP?\r
38783         001737' 254000  001707' 16080           JRST CPOPJ1     ;NO\r
38784         001740' 301040  000002  16090           CAIL T1,2       ;DONT BOTHER CHANGING ONE SPACE TO A TAB\r
38785         001741' 606300  000004  16100           TRNN FLAG,TBMOD ;TAB GENERATING MODE?\r
38786         001742' 254000  001747' 16110           JRST GETA5A     ;NO, GO RESET TAB COUNTER\r
38787         001743' 200000  004024' 16120           MOVE 0,SVPTR2\r
38788         001744' 202000  004020' 16130           MOVEM 0,OPTR    ;BACK UP THE OUTPUT POINTER OVER THE LAST\r
38789                                 16140                           ;GROUP OF SPACES\r
38790         001745' 201200  000011  16150           MOVEI CHR,TAB   ;OUTPUT A TAB\r
38791         001746' 402000  004030' 16160           SETZM SPCT      ;RESET THE SPACE COUNTER\r
38792         001747' 133000  004024' 16170   GETA5A: IBP SVPTR2      ;UPDATE THE CHANGE-SPACES-TO-TABS POINTER\r
38793         001750' 254000  001724' 16180           JRST GETA5      ;RESET THE TAB COUNTER\r
38794 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 40\r
38795         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38796 \r
38797                                 16200   ;ERROR ROUTINES\r
38798 \r
38799                                 16220   IFE WCH,<IFN RIMSW,<\r
38800                                 16230   ERR8A:  MOVEI   T4,ERR382\r
38801                                 16240           JRST    E10B\r
38802                                 16250   ERR3B:  MOVEI   T4,ERR381\r
38803                                 16260           JRST    E10B>>\r
38804 \r
38805         001751' 201340  002053' 16280   ERR10:  MOVEI   T4,E10A\r
38806         001752' 336000  004052' 16290   E10B:   SKIPN   ZRF\r
38807         001753' 254000  001757' 16300           SKIP    3\r
38808         001754' 265040  002155' 16310           ERRPNT  </?File />\r
38809         001755' 376155  166312\r
38810         001756' 200000  000000\r
38811         001757' 201140  004052' 16320           MOVEI T3,ZRF\r
38812         001760' 260240  001146' 16330           PUSHJ P,FN.EX\r
38813         001761' 254007  000000  16340           JRST    (T4)\r
38814 \r
38815                                 16360   IFE WCH,<IFN RIMSW,<\r
38816                                 16370   ERR381: ERRPN2  </illegal extension!/>\r
38817                                 16380   \r
38818                                 16390   ERR382: ERRPN2  </illegal format!/>\r
38819                                 16400   \r
38820                                 16410   ERR5B:  ERRPN2  </? DTA to PTP only!/>>>\r
38821 \r
38822         001762' 265040  002155' 16430   ERR9:   ERRPNT  </?/>\r
38823         001763' 374000  000000\r
38824         001764' 201140  004044' 16440           MOVEI T3,DTON\r
38825         001765' 260240  001146' 16450           PUSHJ P,FN.EX\r
38826         001766' 254000  002033' 16460           JRST    ERR4B\r
38827 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 41\r
38828         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38829 \r
38830         001767' 334100  004634' 16480   ERR1:   SKIPA T2,ODEV   ;OUTPUT UNAVAILABLE\r
38831         001770' 200100  004637' 16490   ERR1A:  MOVE T2,DEVICE  ;INPUT UNAVAILABLE\r
38832         001771' 265040  002155' 16500   ERR1B:  ERRPNT  </?Device />\r
38833         001772' 376114  573322\r
38834         001773' 617124  000000\r
38835         001774' 260240  002201' 16510           PUSHJ   P,P6BIT\r
38836         001775' 000000  000002  16520                   T2\r
38837         001776' 265040  002166' 16530           ERRPN2  </ not available!/>\r
38838         001777' 203355  772100\r
38839         002000' 607554  164730\r
38840         002001' 607055  462502\r
38841         002002' 000000  000000\r
38842         002003'                 16540   ERR3:\r
38843                                 16550   IFN FTDSK,<TRNE AUXFLG,DSKIN\r
38844                                 16560           JRST DERR5      ;ERR ON DSK>\r
38845         002003' 260240  002005' 16570           PUSHJ P,ERR3A\r
38846         002004' 254000  001107' 16580           JRST IOERRN     ;EXIT\r
38847         002005' 661540  000100  16590   ERR3A:  TLO AUXFLG,INFOFL       ;SIGNAL RETURN TO ERR3AA\r
38848         002006' 254000  002711' 16600           JRST INFO\r
38849         002007' 265040  002166' 16610   ERR3AA: ERRPN2  </? No file named />\r
38850         002010' 375011  667500\r
38851         002011' 633235  462500\r
38852         002012' 673035  562710\r
38853         002013' 200000  000000\r
38854         002014' 201140  004040' 16620           MOVEI   T3,FILNAM\r
38855         002015' 260240  001146' 16630           PUSHJ   P,FN.EX ;PRINT NAME OF FILE THAT CANNOT BE FOUND\r
38856         002016' 260240  002735' 16640           PUSHJ   P,INFO2         ;OUTPUT MESS. WITH CR-LF\r
38857         002017' 606540  101000  16650           TRNN    AUXFLG,TTYIN!TTYOUT     ;WAS TTY IN USE?\r
38858         002020' 263240  000000  16660           POPJ    P,              ;NO\r
38859         002021' 602540  001000  16670           TRNE    AUXFLG,TTYIN    ;INPUT DEVICE?\r
38860         002022' 254000  000426' 16680           JRST    ININIT          ;YES ,RE-INIT\r
38861         002023' 254000  000223' 16690           JRST    OMODE           ;MUST BE OUTPUT\r
38862 \r
38863         002024' 336000  004044' 16710   ERR4:   SKIPN DTON\r
38864         002025' 254000  002033' 16720           JRST ERR4A\r
38865                                 16730   IFN FTDSK,<TRNE AUXFLG,DSKOUT   ;ERR ON DSK\r
38866                                 16740           JRST DERR6>\r
38867         002026' 265040  002155' 16750           ERRPNT  </? Directory full!/>\r
38868         002027' 375010  464744\r
38869         002030' 627076  467744\r
38870         002031' 745014  672730\r
38871         002032' 661020  000000\r
38872         002033'                 16760   ERR4A:\r
38873                                 16770   IFN FTDSK,<TRNE AUXFLG,DSKOUT\r
38874                                 16780           JRST ERR4C>\r
38875         002033' 265040  002155' 16790   ERR4B:  ERRPNT  </?Illegal file name!/>\r
38876         002034' 376235  466312\r
38877         002035' 637035  420314\r
38878         002036' 647314  520334\r
38879         002037' 607334  520400\r
38880                                 16800   IFN FTDSK,<\r
38881                                 16810   ERR4C:  ERRPNT  </?(0) Illegal file name!/>>\r
38882 \r
38883 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 41-1\r
38884         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38885 \r
38886         002040'                 16830   ERR6:\r
38887         002040' 265040  002155' 16840   ERR6A:  ERRPNT  </?PIP command error!/>\r
38888         002041' 376411  150100\r
38889         002042' 617375  566702\r
38890         002043' 673104  062744\r
38891         002044' 713376  220400\r
38892 \r
38893         002045' 265040  002155' 16860   ERR6B:  ERRPNT  </?PIP command too long!/>\r
38894         002046' 376411  150100\r
38895         002047' 617375  566702\r
38896         002050' 673104  072336\r
38897         002051' 675015  467734\r
38898         002052' 635020  000000\r
38899 \r
38900         002053' 265040  002166' 16880   E10A:   ERRPN2  </ line too long!/>\r
38901         002054' 203315  167312\r
38902         002055' 203515  767500\r
38903         002056' 663375  663502\r
38904         002057' 000000  000000\r
38905         002060' 265040  002155' 16890   ERR5A:  ERRPNT  </?Too many input devices!/>\r
38906         002061' 376515  767500\r
38907         002062' 667035  674500\r
38908         002063' 647356  072750\r
38909         002064' 203114  573322\r
38910         002065' 617136  320400\r
38911                                 16900   ;FILE MANIPULATION COMMANDS TO NON-DIRECTORY DEVICES COME HERE\r
38912 \r
38913         002066' 265040  002155' 16920   ERR5:   ERRPNT  </?Disk or DECtape input required!/>\r
38914         002067' 376115  171726\r
38915         002070' 203376  220210\r
38916         002071' 426076  460740\r
38917         002072' 625015  167340\r
38918         002073' 727504  071312\r
38919         002074' 707535  171312\r
38920         002075' 621020  000000\r
38921         002076' 265040  002155' 16930   ERR2:   ERRPNT </?Incorrect Project-Programmer number!/>\r
38922         002077' 376235  661736\r
38923         002100' 713454  561750\r
38924         002101' 202416  267724\r
38925         002102' 627076  426640\r
38926         002103' 713374  771302\r
38927         002104' 667334  571100\r
38928         002105' 673535  561312\r
38929         002106' 711020  000000\r
38930         002107' 265040  002155' 16940   ERR2A:  ERRPNX  </?Illegal protection!/>\r
38931         002110' 376235  466312\r
38932         002111' 637035  420340\r
38933         002112' 713376  462706\r
38934         002113' 723235  767102\r
38935         002114' 000000  000000\r
38936                                 16950   IFE BLOC0,<\r
38937         002115' 265040  002155' 16960   ERR7A:  ERRPNT  <Z?DECtape I/O only!Z>>\r
38938         002116' 376110  541750\r
38939 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 41-2\r
38940         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38941 \r
38942         002117' 607414  520222\r
38943         002120' 276364  067734\r
38944         002121' 663624  100000\r
38945 \r
38946         002122' 265040  002155' 16980   ERR8:   ERRPNT  </?Explicit output device required!/>\r
38947         002123' 376137  070330\r
38948         002124' 647075  172100\r
38949         002125' 677536  470352\r
38950         002126' 721014  462754\r
38951         002127' 647074  520344\r
38952         002130' 627436  564744\r
38953         002131' 627104  100000\r
38954 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 42\r
38955         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38956 \r
38957 \r
38958                                 17010   ;ROUTINE TO CHECK INPUT DEV, SET XXXIN.E.G.DTAIN\r
38959 \r
38960         002132' 200000  004637' 17030   CHECK1: MOVE 0,DEVICE   ;INPUT DEVICE NAME TO AC 0\r
38961         002133' 322000  002152' 17040           JUMPE 0,CHECK   ;IGNORE IF NO INPUT DEVICE\r
38962                                 17050   IFN FTDSK,<PUSHJ        P,PSYSP ; STR# 10-3178>\r
38963         002134' 047000  000004  17060           DEVCHR          ;GET INPUT DEVCHR\r
38964                                 17070   IFN FTDSK,<TLNN 0,DSKBIT ;INPUT DEVICE DISK?\r
38965                                 17080           JRST CHECK2     ;NO\r
38966                                 17090           TRO AUXFLG,DSKIN;INPUT DEVICE IS DSK, SET BIT\r
38967                                 17100           MOVE    T1,DEVICE\r
38968                                 17110           CAMN    T1,[SIXBIT/SYS/]        ; INIT SYS AS DSK\r
38969                                 17120           MOVSI   T1,(SIXBIT/DSK/)\r
38970                                 17130           MOVEM   T1,ADSK\r
38971                                 17140           JRST    CHECK>\r
38972 \r
38973         002135' 322000  000525' 17160   CHECK2: JUMPE 0,DEVER1  ;NON-EX. DEVICE\r
38974 \r
38975         002136' 607000  000002  17180           TLNN 0,INBIT    ;CAN DEVICE DO INPUT?\r
38976         002137' 254000  002040' 17190           JRST ERR6A      ;NO, COMMD ERROR\r
38977 \r
38978         002140' 603000  000200  17210           TLNE 0,PTRBIT   ;PAPER TAPE READER?\r
38979         002141' 660540  200000  17220           TRO AUXFLG,PPTIN;YES\r
38980 \r
38981         002142' 603000  000004  17240           TLNE 0,DTABIT   ;DECTAPE?\r
38982         002143' 660540  020000  17250           TRO AUXFLG,DTAIN\r
38983 \r
38984         002144' 603000  000020  17270           TLNE 0,MTABIT   ;MAGTAPE?\r
38985         002145' 660540  000400  17280           TRO AUXFLG, MTAIN\r
38986 \r
38987         002146' 603000  100000  17300           TLNE CDRBIT     ;CARD READER?\r
38988         002147' 660540  000100  17310           TRO AUXFLG,CDRIN\r
38989 \r
38990         002150' 603000  000010  17330           TLNE 0,TTYBIT   ;TELETYPE?\r
38991         002151' 660540  001000  17340           TRO AUXFLG,TTYIN\r
38992 \r
38993         002152' 602740  001000  17360   CHECK:  TRNE    CALFLG,SSWTCH   ;_FLAG STILL ON?\r
38994         002153' 254000  002040' 17370           JRST ERR6A      ; YES ,COMMAND ERROR\r
38995         002154' 263240  000000  17380           POPJ P,         ; NO, RETURN \r
38996 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 43\r
38997         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
38998 \r
38999                                 17400   ;SUBR TO PRINT ERROR MESSAGES\r
39000                                 17410   ;! MARKS THE END OF MESSAGE & SIGNALS GO TO PIP2\r
39001                                 17420   ;NULL IS A FLAG TO RETURN TO THE NEXT LOCATION\r
39002 \r
39003         002155'                 17440   PRETXT: \r
39004         002155' 071240  000000  17450   PTEXT:  RELEAS DIR,     ;RELEASE DIRECTORY DEVICE\r
39005 \r
39006         002156' 071200  000000  17460           RELEAS TAPE,    ;RELEASE MAGTAPE\r
39007         002157' 071100  000000  17470           RELEAS OUT,     ;LET GO OF BOTH OUTPUT AND\r
39008         002160' 071140  000000  17480           RELEAS IN,      ;INPUT DEVICES\r
39009         002161' 265440  000541' 17490           JSP T5,INICN1   ;INITIALIZE THE TTY\r
39010         002162' 201000  000015  17500           MOVEI   0,CR\r
39011         002163' 136000  003757' 17510           IDPB    0,TFO+1 ;OUTPUT A CR-LF\r
39012         002164' 201000  000012  17520           MOVEI   0,LF\r
39013         002165' 136000  003757' 17530           IDPB    0,TFO+1 ;FOR BATCH\r
39014         002166' 505040  440700  17540   PTEXT2: HRLI T1,440700  ;GET SET TO SCAN 7-BIT DATA\r
39015         002167' 134000  000001  17550   PTEXT1: ILDB 0,T1       ;GET CHAR OF ERR MESSAGE\r
39016         002170' 322001  000001  17560           JUMPE 0,1(T1)   ;RETURN ON ZERO\r
39017         002171' 306000  000041  17570           CAIN 0,"!"      ;!?\r
39018         002172' 254000  000013' 17580           JRST PIP2       ;YES, END OF MESSAGE, APPEND CAR.RET., LF\r
39019         002173' 136000  003757' 17590           IDPB 0,TFO+1    ;DEPOSIT CHAR IN OUTBUFFER\r
39020         002174' 254000  002167' 17600           JRST PTEXT1     ;GET NEXT CHAR\r
39021 \r
39022                                 17620   ;ROUTINE TO DEPOSIT CHARACTER IN TTY OUT BUFFER\r
39023 \r
39024         002175' 377000  003760' 17640   PUTCON: SOSG TFO+2      ;STORED MORE THAN BUFFER HOLDS?\r
39025         002176' 067040  000000  17650           OUTPUT CON,     ;YES\r
39026         002177' 136200  003757' 17660           IDPB CHR,TFO+1\r
39027         002200' 263240  000000  17670           POPJ P,\r
39028 \r
39029                                 17690   ;ROUTINE TO CONVERT ONE WORD OF SIXBIT\r
39030                                 17700   ;FROM ADDRESS IN LOCATION AFTER CALL AND DEPOSIT INTO TTY OUT BUFFER\r
39031 \r
39032         002201' 200065  000000  17720   P6BIT:  MOVE T1,@(P)    ;PICK UP WORD OF 6-BIT\r
39033         002202' 505040  440600  17730           HRLI T1,440600  ;SET UP POINTER\r
39034         002203' 134200  000001  17740   P6BIT1: ILDB CHR,T1\r
39035         002204' 322200  002207' 17750           JUMPE CHR,P6BIT2\r
39036         002205' 271200  000040  17760           ADDI CHR,40\r
39037         002206' 260240  002175' 17770           PUSHJ P,PUTCON  ;DEPOSIT IN TTY\r
39038         002207' 603040  770000  17780   P6BIT2: TLNE T1,770000  ;DONE SIX?\r
39039         002210' 254000  002203' 17790           JRST P6BIT1     ;NO\r
39040         002211' 254000  001707' 17800           JRST CPOPJ1     ;SKIP RETURN\r
39041 \r
39042 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 44\r
39043         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39044 \r
39045                                 17830   ;ROUTINE TO CLEAR DSK OR DTA DIRECTORY (/Z SWITCH)\r
39046 \r
39047         002212' 606740  000200  17850   DTCLR:  TRNN    CALFLG,DVSWTH   ;HAS A DEVICE BEEN SEEN?\r
39048         002213' 254000  002122' 17860           JRST    ERR8            ;NO,SO DON'T SCREW USER\r
39049                                 17870   IFN FTDSK,<TRNE AUXFLG,DSKOUT   ;CLEAR DSK OR DTA DIR.\r
39050                                 17880           JRST DSKZRO>\r
39051         002214' 606540  004000  17890           TRNN AUXFLG,DTAOUT      ;MUST BE DTA\r
39052         002215' 254000  002066' 17900           JRST ERR5\r
39053         002216' 047100  000013  17910           UTPCLR  OUT,            ;CLEAR DIRECTORY\r
39054         002217' 263240  000000  17920           POPJ P,\r
39055 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 45\r
39056         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39057 \r
39058                                 17940   ;ROUTINE TO SET UP TO COPY EVERYTHING\r
39059 \r
39060         002220' 260240  000426' 17960   PRECOP: PUSHJ   P,ININIT        ;INIT INPUT FILE\r
39061         002221' 606540  020000  17970           TRNN    AUXFLG,DTAIN    ;DECTAPE INPUT\r
39062         002222' 254000  002225' 17980           SKIP    2               ;NO\r
39063         002223' 260240  003272' 17990           PUSHJ   P,DTCH2         ;YES, GET DIRECT, SET POINTERS TO DIRECT\r
39064 \r
39065         002224' 260240  002702' 18010   DTCOPY: PUSHJ   P,DTADI1        ;START (T5)\r
39066                                 18020   IFN FTDSK,<TRNE AUXFLG,DSKIN    ;DSK INPUT. ENTER HERE FROM DTD2\r
39067                                 18030           PUSHJ   P,DSKDIR        ;YES, PREPARE TO LOOKUP FILES>\r
39068         002225' 402000  004034' 18040   COPY1A: SETZM   ZCNT            ;CLEAR COUNT FOR DSK ZERO REQUESTS\r
39069         002226' 201100  000006  18050           MOVEI   T2,6            ;FILL 0 CHARS. IN DEST-FILE\r
39070         002227' 200040  004700' 18060           MOVE    T1,[POINT 6,DTON]       ;NAME WITH X'S. THIS IS\r
39071         002230' 134000  000001  18070   XSS:    ILDB    0,T1            ;THEN THE BASE FOR GENERATED\r
39072         002231' 326000  002233' 18080           JUMPN   0,.+2           ;DESTINATION FILES FROM\r
39073         002232' 201000  000070  18090           MOVEI   0,"X"-40        ;NON-DIR. DEVICES IN /X\r
39074         002233' 137000  000001  18100           DPB     0,T1\r
39075         002234' 367100  002230' 18110           SOJG    T2,XSS          ;DON'T YET KNOW IF ONE\r
39076                                 18120                                   ;OF THE INPUT DEV. WILL\r
39077         002235' 200000  004044' 18130           MOVE    0,DTON          ;BE NON-DIR\r
39078         002236' 202000  004021' 18140           MOVEM   0,DTONSV\r
39079         002237' 200000  004045' 18150           MOVE    0,DTON+1\r
39080         002240' 202000  004022' 18160           MOVEM   0,DTONSV+1\r
39081 \r
39082         002241' 260240  002371' 18180   COPY1:  PUSHJ   P,SR2           ;SET INIT. COPYING MODE\r
39083         002242' 260240  002566' 18190           PUSHJ   P,LOOK          ;GET A FILE TO COPY\r
39084         002243' 254000  002317' 18200           JRST    CAL6            ;NO MORE\r
39085                                 18210   IFN FTDSK<PUSHJ P,XDDSK         ;GOT ONE, CHECK (XD) FROM DSK, NAMTAB\r
39086                                 18220           JRST    COPY1           ;IN LIST, DON'T COPY>\r
39087         002244' 606540  201500  18230           TRNN    AUXFLG,MTAIN+PPTIN+CDRIN+TTYIN  ;OK, COPY FILE\r
39088         002245' 254000  002250' 18240           JRST    COPY6A          ;MUST BE DIRECTORY DEVICE\r
39089         002246' 260240  002337' 18250           PUSHJ   P,MTPTCR        ;SET UP A DEST. FN.\r
39090         002247' 254000  002252' 18260           JRST    COPY6\r
39091 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 46\r
39092         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39093 \r
39094         002250' 076140  004052' 18280   COPY6A: LOOKUP  IN,ZRF          ;LOOKUP INPUT FILE NAME\r
39095         002251' 254000  002315' 18290           JRST    CAL5            ;INPUT FILE FILE PROTECTED\r
39096         002252' 260240  003353' 18300   COPY6:  PUSHJ   P,FILTYP        ;CHECK FOR DMP,SAV,REL,CHN\r
39097                                 18310   IFN WCH,<\r
39098                                 18320           TRNN    AUXFLG,DTAIN+DTAOUT\r
39099                                 18330           JRST    .+5\r
39100                                 18340           HLRZ    0,ZRF+1\r
39101                                 18350           CAIE    0,(SIXBIT /DMP/)\r
39102                                 18360   IFN DISK30,<CAIN 0,(SIXBIT/SVE/)>\r
39103                                 18370   IFE DISK30,<CAIN 0,(SIXBIT/SAV/)>\r
39104                                 18380           JRST    COPY1>\r
39105         002253' 260240  002323' 18390           PUSHJ   P,COPY3\r
39106         002254' 200000  004052' 18400   COPY6B: MOVE    0,ZRF           ;INPUT FILE NAME\r
39107         002255' 202000  004044' 18410           MOVEM   0,DTON          ;IS OUTPUT FILE NAME\r
39108         002256' 510000  004053' 18420           HLLZ    0,ZRF+1         ;LIKEWISE EXT\r
39109         002257' 512000  004045' 18430           HLLZM   0,DTON+1\r
39110 \r
39111                                 18450   ;THIS CODE OPERATES AS FOLLOWS - FOR E+2, SET = 0\r
39112                                 18460   ;TO START (ASSUMING /X)\r
39113                                 18470   ;DSK TO DSK IF EDIT SWITCHES PUT E+2 = 0 IF NO EDITS TRANSFER\r
39114                                 18480   ;       DATE, TIME, BITS 13-35\r
39115                                 18490   ;DSK TO DTA FOR EDITS E+2 = 0, NO EDITS TRANSFER 24-35 FOR\r
39116                                 18500   ;DATE, FOR"SAV" FILES TRANSLATE NO.  1K BLOCKS\r
39117                                 18510   ;DTA TO DSK FOR NO EDITS XFER BITS 24-35, ELSE E+2 = 0\r
39118                                 18520   ;DTA TO DTA ALWAYS XFER 18-23, (1K BLOCK) NO EDITS XFER 24-35(DATE)\r
39119 \r
39120         002260' 402000  004046' 18540           SETZM   DTON+2          ;CLEAR DATE. OUTPUT FILE, DSK/DTA\r
39121         002261' 135000  003717' 18550           LDB     0,DATE          ;GET DSK/DTA DATE CREATED\r
39122         002262' 616300  004701' 18560           TDNN    FLAG,[XWD PFLG,LINE+TBMOD+NSMOD+SQMOD+SPMOD]\r
39123         002263' 603540  000040  18570           TLNE    AUXFLG,CDRFLG\r
39124         002264' 254000  002266' 18580           JRST    COPY6C\r
39125         002265' 137000  003720' 18590           DPB     0,DATED         ;DEPOSIT IF NO EDITS\r
39126                                 18600   IFN FTDSK,<LDB  0,TIME\r
39127                                 18610           TRC     AUXFLG,DSKIN+DSKOUT\r
39128                                 18620           TRCN    AUXFLG,DSKIN+DSKOUT\r
39129                                 18630           DPB     0,TIMED         ;DSK TO DSK TIME>\r
39130         002266'                 18640   COPY6C: IFE WCH,<\r
39131         002266' 260240  002412' 18650           PUSHJ   P,OKBLKS        ;SETUP 1K BLOCKS>\r
39132         002267' 077100  004044' 18660           ENTER   OUT,DTON        ;GOT DATA, CREATE NEW FILE\r
39133         002270' 254000  002024' 18670           JRST    ERR4            ;DIRECTORY FULL\r
39134         002271' 200000  003721' 18680           MOVE    0,ZRO           ;GET ASCII/00000/AND\r
39135         002272' 202000  004014' 18690           MOVEM   0,SQNUM         ;RESET SEQUENCE NO.\r
39136         002273' 661300  000020  18700           TLO     FLAG,NEWFIL     ;SET NEW FILE FLAG\r
39137         002274' 402000  004026' 18710           SETZM   TOTBRK          ;CLEAR PAREN COUNTER\r
39138         002275' 607540  000044  18720           TLNN    AUXFLG,CDRFLG+SBIN      ;SPECIAL PROCESSING?\r
39139         002276' 612300  004702' 18730           TDNE    FLAG,[XWD PFLG+IFLG+IBFLG,LINE+BMOD+TBMOD+NSMOD+SQMOD+SPMOD]    \r
39140         002277' 254000  000343' 18740           JRST    PSCAN           ;YES, DO IT\r
39141         002300' 375000  003744' 18750   COPY5:  SOSGE   IBF+2           ;INPUT BUFFER EMPTY?\r
39142         002301' 254000  002305' 18760           JRST    COPY4           ;YES\r
39143         002302' 134200  003743' 18770           ILDB    CHR,IBF+1       ;GET NEXT WORD AND\r
39144         002303' 260240  000756' 18780           PUSHJ   P,PUT           ;OUTPUT IT\r
39145         002304' 254000  002300' 18790           JRST    COPY5\r
39146         002305' 260240  002323' 18800   COPY4:  PUSHJ   P,COPY3         ;GET NEXT FULL SOURCE BLOCK\r
39147 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 46-1\r
39148         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39149 \r
39150         002306' 260240  000762' 18810           PUSHJ   P,OUTP          ;OUTPUT PREV. BLOCK-DONT ALTER DATA\r
39151         002307' 350000  003747' 18820           AOS     OBF+2           ;MAKE PUT HAPPY BECAUSE OF\r
39152         002310' 254000  002300' 18830           JRST    COPY5           ;OUTPUT HERE.\r
39153         002311' 070140  000000  18840   COPY2A: CLOSE   IN,\r
39154         002312' 070100  000000  18850           CLOSE   OUT,\r
39155                                 18860   IFN FTDSK,<TLNE  AUXFLG,NSPROT  ;NON-STANDARD PROTECTION?\r
39156                                 18870           TRNN    AUXFLG,DSKOUT   ;RENAME ALL OUTPUT FILES IF\r
39157                                 18880           JRST    COPY2B          ;NON-STANDARD PROTECTION\r
39158                                 18890           MOVE    0,PROTS         ;GET NEW PROTECTION\r
39159                                 18900           MOVEM   0,DTON+2\r
39160                                 18910   \r
39161                                 18920           RENAME  OUT,DTON        ;RENAME OUTPUT FILE\r
39162                                 18930           JRST    DERR6>\r
39163         002313' 260240  000764' 18940   COPY2B: PUSHJ   P,OUTP1\r
39164         002314' 254000  002241' 18950           JRST    COPY1           ;GO GET NEXT FILE\r
39165 \r
39166         002315' 350000  004034' 18970   CAL5:   AOS     ZCNT            ;INPUT FILE READ PROT.\r
39167         002316' 254000  002241' 18980           JRST    COPY1           ;COUNT READ FAILURES\r
39168 \r
39169                                 19000   ;NO MORE FILES TO COPY\r
39170 \r
39171         002317' 621540  000002  19020   CAL6:   TLZ     AUXFLG,NSPROT\r
39172                                 19030   IFN FTDSK,<     SKIPN   ZCNT    ;FILES READ PROTECTED ?>\r
39173         002320' 254000  000411' 19040           JRST    MAIN1           ;NO\r
39174                                 19050   IFN FTDSK,<MOVSI T4,(SIXBIT /X/)        ;YES,PRINT FAILURE DURING\r
39175                                 19060           JRST    DSKZ5           ;/X REQUEST>\r
39176 \r
39177         002321' 332000  003744' 19080   COPY3B: SKIPE   IBF+2           ;EMPTY BLOCK?\r
39178         002322' 263240  000000  19090           POPJ    P,              ;NO, RETURN\r
39179 \r
39180         002323' 260240  001616' 19110   COPY3:  PUSHJ   P,INP           ;READ NEXT BLOCK\r
39181         002324' 622540  002000  19120           TRZE    AUXFLG,READ1\r
39182         002325' 260240  002376' 19130           PUSHJ   P,TTYZ          ;END OF FILE FROM TTY?\r
39183         002326' 606400  020000  19140           TRNN    IOS,EOFBIT      ;END OF FILE? IOS HAS STATUS BITS\r
39184         002327' 254000  002321' 19150           JRST    COPY3B          ;NO.\r
39185         002330' 262240  000000  19160           POP     P,0             ;FIND WHERE CALLED FROM\r
39186         002331' 553000  000000  19170           HRRZS   0\r
39187         002332' 602540  201500  19180           TRNE    AUXFLG,MTAIN+CDRIN+TTYIN+PPTIN\r
39188         002333' 302000  002254' 19190           CAIE    0,COPY6B        ;DID WE COME FROM COPY6B-1\r
39189         002334' 254000  002311' 19200           JRST    COPY2A          ;NO, EOF NOT FIRST DATA IN FILE \r
39190         002335' 620740  000037  19210           TRZ   CALFLG,ALLCLF     ;END OF INFO ON NON-DIR. DEVICE\r
39191         002336' 254000  002241' 19220           JRST    COPY1\r
39192 \r
39193 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 47\r
39194         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39195 \r
39196                                 19240   ;CREATE DESTINATION FILE NAME. RANGE IS ...001 TO ...999\r
39197 \r
39198         002337' 350040  004051' 19260   MTPTCR: AOS T1,NO.\r
39199         002340' 303040  001747  19270           CAILE T1,^D999\r
39200         002341' 254000  002350' 19280           JRST MPC2\r
39201         002342' 260240  002362' 19290           PUSHJ P,MTPTC1\r
39202         002343' 200000  004021' 19300           MOVE 0,DTONSV   ;FILNAM=DTON IS ONLY WAY TO IDENTIFY\r
39203         002344' 202000  004052' 19310           MOVEM 0,ZRF     ;INPUT FILE\r
39204         002345' 200000  004022' 19320           MOVE 0,DTONSV+1\r
39205         002346' 202000  004053' 19330           MOVEM 0,ZRF+1\r
39206         002347' 263240  000000  19340           POPJ P,\r
39207         002350' 265040  002155' 19350   MPC2:   ERRPNT <Z?Terminate /X, max. of 999 files processed!Z>\r
39208         002351' 376514  571332\r
39209         002352' 647354  172312\r
39210         002353' 201373  026100\r
39211         002354' 667037  027100\r
39212         002355' 677144  034562\r
39213         002356' 345014  664730\r
39214         002357' 627464  070344\r
39215         002360' 677074  571746\r
39216         002361' 627104  100000\r
39217 \r
39218         002362' 201641  001750  19370   MTPTC1: MOVEI DOUT,^D1000(T1)\r
39219         002363' 200040  004703' 19380           MOVE T1,[POINT 6,DTONSV,17]\r
39220         002364' 265100  003235' 19390           JSP T2,OUTDC1\r
39221         002365' 344100  001711' 19400           AOJA T2,CPOPJ\r
39222         002366' 275200  000040  19410           SUBI CHR,40\r
39223         002367' 136200  000001  19420           IDPB CHR,T1\r
39224         002370' 263240  000000  19430           POPJ P,\r
39225 \r
39226                                 19450   ;ROUTINE TO RESTORE BYTE POINTERS TO INITED MODE\r
39227                                 19460   ;FOR INPUT AND OUTPUT DEVICES\r
39228 \r
39229         002371' 200000  003740' 19480   SR2:    MOVE 0,SVIBF\r
39230         002372' 502000  003743' 19490           HLLM 0,IBF+1\r
39231         002373' 200000  003741' 19500           MOVE 0,SVOBF\r
39232         002374' 502000  003746' 19510           HLLM 0,OBF+1\r
39233         002375' 263240  000000  19520           POPJ P,\r
39234 \r
39235                                 19540   ;ROUTINE TO SEE IF ^Z FIRST CHAR ON TTY\r
39236 \r
39237         002376' 606540  001000  19560   TTYZ:   TRNN AUXFLG,TTYIN       ;SEE IF FIRST CHAR. IS ^Z\r
39238         002377' 263240  000000  19570           POPJ P,                 ;NOT TTY INPUT\r
39239         002400' 550040  003743' 19580           HRRZ T1,IBF+1           ;ON TTY\r
39240         002401' 554001  000001  19590           HLRZ 0,1(T1)            ;GET FIRST CHARACTER\r
39241         002402' 620000  003777  19600           TRZ     0,3777          ;CLEAR ANY OTHER CHAR.\r
39242         002403' 306000  150000  19610           CAIN    0,(<CZ>B6)      ;IS IT ^Z?\r
39243         002404' 664400  020000  19620           TROA    IOS,EOFBIT      ;YES,SET END OF FILE\r
39244         002405' 302000  104000  19630           CAIE    0,(<XON>B6)     ;IS IT XON "^Q"\r
39245         002406' 263240  000000  19640           POPJ    P,              ;NO\r
39246         002407' 205000  774000  19650           MOVSI   0,(<DEL>B6)     ;A RUBOUT\r
39247         002410' 436001  000001  19660           IORM    1(T1)           ;CLEAR "^Q" FROM BUFFER\r
39248         002411' 263240  000000  19670           POPJ    P,              ;AND RETURN\r
39249 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 48\r
39250         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39251 \r
39252                                 19690   IFE     WCH,<\r
39253                                 19700   ;DTA TO DTA MAINTAIN BITS 18-23 OF E+2 IF SET\r
39254                                 19710   ;DSK TO DSK NO TRANSLATION (E+2)\r
39255                                 19720   ;DSK TO DTA TRANSLATE E+3 (LHS) INTO E+2 (18-23)\r
39256                                 19730   ;DTA TO DSK NO TRANSLATION (E+2)\r
39257                                 19740   ;THIS ROUTINE ENSURES "SAVE" FILES MAINTAIN\r
39258                                 19750   ;CORRECT DATA FOR LOADING.  FOR DSK INPUT\r
39259                                 19760   ;A "SAVE" FILE IS ONE WITH THE EXTENSION\r
39260                                 19770   ;"SAV". E+3 = (-[(200XN)+NO. WDS IN LAST BLOCK]\r
39261                                 19780   ;IN LHS TRANSLATE TO NO. 1K BLOCKS NEEDED\r
39262                                 19790   ;TO LOAD FILE - BEFORE IT IS EXPANDED IN CORE.\r
39263 \r
39264         002412' 606740  020000  19810   OKBLKS: TRNN    CALFLG,RXFLG    ;(RX)?\r
39265         002413' 254000  002422' 19820           JRST    OKBLK0          ;NO\r
39266         002414' 200000  004647' 19830           MOVE    0,MATCH         ;GET FILE NAME\r
39267         002415' 554040  004650' 19840           HLRZ    T1,MATCH+1      ;AND EXT.\r
39268         002416' 312000  003730' 19850           CAME    0,STAR          ;SKIP IF NAME IS "*"\r
39269         002417' 202000  004044' 19860           MOVEM   0,DTON          ;OTHERWISE REPLACE NAME\r
39270         002420' 302040  120000  19870           CAIE    T1,(SIXBIT /*/) ;SAME FOR EXT\r
39271         002421' 506040  004045' 19880           HRLM    T1,DTON+1\r
39272         002422' 200000  004044' 19890   OKBLK0: MOVE    0,DTON          ;GET OUTPUT FILE NAME\r
39273         002423' 554040  004045' 19900           HLRZ    T1,DTON+1       ;AND EXT\r
39274         002424' 302040  120000  19910           CAIE    T1,(SIXBIT /*/) ;IS IT "*"\r
39275         002425' 316000  003730' 19920           CAMN    0,STAR          ;IS IT "*"\r
39276         002426' 254000  002033' 19930           JRST    ERR4B           ;YES, ERROR\r
39277 \r
39278                                 19950   REPEAT 0,<                      ;NEEDS FIX TO TENDMP OR MONITOR\r
39279                                 19960           TRNE    AUXFLG,DTAOUT   ;OUTPUT TO DTA?\r
39280                                 19970           CAIE    T1,(SIXBIT /SAV/) ;AND A SAV FILE?\r
39281                                 19980           SKIP    1               ;NO\r
39282                                 19990           UGETF   OUT,0           ;SET TO FIRST FREE BLOCK\r
39283                                 20000   >\r
39284 \r
39285                                 20020   IFN FTDSK,<TRC  AUXFLG,DSKIN+DSKOUT     ;DSK I/O\r
39286                                 20030           TRCN    AUXFLG,DSKIN+DSKOUT\r
39287                                 20040           POPJ    P,                      ;YES, EXIT\r
39288                                 20050           TRC     AUXFLG,DTAIN+DTAOUT     ;NO\r
39289                                 20060           TRCE    AUXFLG,DTAIN+DTAOUT     ;DTA I/O\r
39290                                 20070           JRST    OKBLK1                  ;NO>\r
39291         002427' 135000  003716' 20080           LDB     0,OKB                   ;DTA I/O - 1K BLKS\r
39292         002430' 137000  003715' 20090           DPB     0,OKBD                  ;DEPOSIT IN DTON\r
39293         002431' 263240  000000  20100           POPJ    P,\r
39294 \r
39295                                 20120   IFN FTDSK,<\r
39296                                 20130   OKBLK1: TRC     AUXFLG,DTAIN+DSKOUT     ;DTA-TO-DSK\r
39297                                 20140           TRCN    AUXFLG,DTAIN+DSKOUT\r
39298                                 20150           POPJ    P,                      ;YES\r
39299                                 20160           TRC     AUXFLG,DSKIN+DTAOUT     ;NO,DSK-TO-DTA?\r
39300                                 20170           TRCE    AUXFLG,DSKIN+DTAOUT     ;NO\r
39301                                 20180           POPJ    P,\r
39302                                 20190           HLRZ    0,ZRF+1                 ;YES DSK-TO-DTA\r
39303                                 20200   IFE DISK30,<\r
39304                                 20210           CAIE    0,(SIXBIT /SAV/)        ;GET LOOKED UP EXT,(INPUT).\r
39305 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 48-1\r
39306         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39307 \r
39308                                 20220           >\r
39309                                 20230   IFN DISK30,<CAIE 0,SIXBIT /SVE/>\r
39310                                 20240           POPJ    P,\r
39311                                 20250           HLRO    T1,ZRF+3                ;EXTENSION=SAV\r
39312                                 20260           MOVNS   T1                      ;WORD COUNT\r
39313                                 20270           IDIVI   T1,2000                 ;DIVIDE BY 1K CORE(OCTAL LOCS.)\r
39314                                 20280           JUMPN   T2,.+2\r
39315                                 20290           SOJ     T1,                     ;N-1\r
39316                                 20300           DPB     T1,OKBD\r
39317                                 20310           POPJ    P,>>\r
39318 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 49\r
39319         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39320 \r
39321 \r
39322                                 20340   IFN FTDSK,<\r
39323                                 20350   ;ARE WE DOING (XD) FROM DSK? IF NOT, EXIT.\r
39324                                 20360   ;SEE IF CURRENT FILE SELECTED IN ZRF IS IN THE\r
39325                                 20370   ;LIST OF FILES NOT TO BE COPIED. (POPJ IF IT IS)\r
39326                                 20380   \r
39327                                 20390   XDDSK:  TRC     FLAG,XFLG+DFLG          ;COMPLEMENT\r
39328                                 20400           TRCN    FLAG,XFLG+DFLG          ;RESET AND TEST\r
39329                                 20410           TRNN    AUXFLG,DSKIN            ;/X AND /D WERE SET\r
39330                                 20420           JRST    CPOPJ1                  ;NOT DSKIN SO COPY FILE\r
39331                                 20430           HRROI   T1,-12                  ;SET TO LOOP NAMTAB\r
39332                                 20440   XDDSK2: MOVE    T2,ZRF                  ;GET FILE NAME\r
39333                                 20450           SKIPN   T3,NAMTAB+12(T1)        ;END OF TABLE ENTRIES?\r
39334                                 20460           JRST    CPOPJ1                  ;YES, EXIT\r
39335                                 20470           CAME    T2,T3                   ;FN IS * OR MATCH?\r
39336                                 20480           CAMN    T3,STAR\r
39337                                 20490           SKIP    1                       ;YES, * OR MATCH?\r
39338                                 20500           JRST    XDDSK1                  ;NO MATCH\r
39339                                 20510           HLLZ    T2,ZRF+1                ;GET EXT\r
39340                                 20520           SKIPN   T3,NAMTAB+24(T1)        ;NO EXT MATCH WANTED\r
39341                                 20530           POPJ    P,                      ;EXIT THEN\r
39342                                 20540           CAME    T2,T3                   ;EXT IS * OR MATCH?\r
39343                                 20550           CAMN    T3,STAR\r
39344                                 20560           POPJ    P,                      ;FN EX MATCH, NO COPY\r
39345                                 20570   XDDSK1: AOJL    T1,XDDSK2               ;TRY ANOTHER FOR MATCH\r
39346                                 20580           JRST    CPOPJ1                  ;SEARCHED TABLE, NO MATCH>\r
39347 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 50\r
39348         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39349 \r
39350                                 20600   ;ROUTINE TO DELETE OR RENAME FILES ON DTA OR DSK OR SET UP NAMTAB\r
39351                                 20610   ;FOR (DX) (DISK ONLY)\r
39352 \r
39353         002432' 602300  002000  20630   DTDELE: TRNE    FLAG,XFLG       ;/X\r
39354         002433' 254000  002443' 20640           JRST    DELE1           ;YES\r
39355         002434' 606300  000010  20650           TRNN    FLAG,DFLG       ;/D NEED EXPLICIT DEVICE\r
39356         002435' 254000  002440' 20660           SKIP    2\r
39357         002436' 606740  000200  20670           TRNN    CALFLG,DVSWTH   ;-1 IF DEVICE SEEN\r
39358         002437' 254000  002122' 20680           JRST    ERR8            ;NO, ERROR\r
39359         002440' 200000  004634' 20690           MOVE    0,ODEV          ;OUTPUT DEVICE\r
39360         002441' 202000  004637' 20700           MOVEM   0,DEVICE        ;NO,SET DEVICE FOR INPUT\r
39361         002442' 202000  004050' 20710           MOVEM   0,DEVA\r
39362         002443' 620540  261500  20720   DELE1:  TRZ     AUXFLG,DTAIN+CDRIN+TTYIN+PPTIN+MTAIN+DSKIN\r
39363         002444' 260240  002132' 20730           PUSHJ   P,CHECK1        ;RESET INPUT DEVICE DESCRP\r
39364         002445' 201000  003766' 20740           MOVEI   0,NAMTAB        ;FOR /R GET NEW NAME\r
39365         002446' 505000  004044' 20750           HRLI    0,DTON          ;SET TO BLT OUTPUT DIRECT ENTRY\r
39366         002447' 251000  003771' 20760           BLT     0,NAMTAB+3      ;TO NAMTAB\r
39367 \r
39368         002450' 606540  060000  20780           TRNN    AUXFLG,DTAIN+DSKIN\r
39369         002451' 254000  002066' 20790           JRST    ERR5            ;NOT DTA OR DSK\r
39370         002452' 260240  002746' 20800           PUSHJ   P,FNSET         ;SET UP CALFLG CORRECTLY\r
39371         002453' 602300  002000  20810           TRNE    FLAG,XFLG       ;/X?\r
39372         002454' 254000  002456' 20820           JRST    DTD1            ;YES, (DX). RX ILLEGAL\r
39373                                 20830   IFN FTDSK,<TRNE AUXFLG,DSKOUT   ;NO, HAS TO BE /D OR /R\r
39374                                 20840           JRST    DSKDR0          ;ON DSK>\r
39375         002455' 254000  002460' 20850           JRST    DTADR           ;OR DTA\r
39376 \r
39377         002456'                 20870   DTD1:\r
39378                                 20880   IFN FTDSK,<TRNE AUXFLG,DSKIN    ;DSK INPUT?\r
39379                                 20890           JRST    DTD1A           ;YES>\r
39380         002456' 260240  003271' 20900           PUSHJ   P,DTCHECK       ;NO, HAS TO BE DTA, GET DIR\r
39381         002457' 254000  002466' 20910           JRST    DELE3           ;DELETE, FILES FROM DIR\r
39382                                 20920   IFN FTDSK,<\r
39383                                 20930   DTD1A:  SETZM   NAMTAB          ;COLLECT NAMES FOR DX, DSK SOURCE\r
39384                                 20940           MOVE    T1,[XWD NAMTAB,NAMTAB+1]\r
39385                                 20950           BLT     T1,NAMTAB+23    ;FIRST CLEAR TABLE\r
39386                                 20960           MOVEI   T1,NAMTAB       ;LOCATION OF NAMTAB\r
39387                                 20970           MOVEM   T1,LOCNAM\r
39388                                 20980   DTD4:   MOVE    0,FILNAM\r
39389                                 20990           JUMPE   0,DTD4A         ;FN=0 ILLEGAL\r
39390                                 21000           MOVE    T1,LOCNAM\r
39391                                 21010           MOVEM   0,(T1)          ;STORE FILENAME FROM CS\r
39392                                 21020           MOVE    0,FILEX         ;STORE FILE EXT\r
39393                                 21030           MOVEM   0,12(T1)        ;TABLE FULL?\r
39394                                 21040           MOVEI   T2,NAMTAB+11\r
39395                                 21050           CAMN    T2,T1\r
39396                                 21060           SOS     ESWTCH          ;YES\r
39397                                 21070           SKIPE   ESWTCH          ;NO, END OF CS SCAN?\r
39398                                 21080           JRST    DTD2            ;END OF NAME PROCESSING\r
39399                                 21090           AOS     T1,LOCNAM       ;SET TO STORE IN NEXT SLOT NAMTAB\r
39400                                 21100   DTD4B:  PUSHJ   P,DESCRP        ;NO, GET NEXT FILENAME FROM CS\r
39401                                 21110           TRNE    CALFLG,NEWPP!NEWDEV\r
39402                                 21120           JRST    ERR5A           ;ERROR, NEW DEV OR# PP\r
39403 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 50-1\r
39404         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39405 \r
39406                                 21130           JRST    DTD4\r
39407                                 21140   DTD4A:  PUSHJ   P,ERR3A\r
39408                                 21150           JRST    DTD4B\r
39409                                 21160   \r
39410                                 21170   ;END OF CS OR NAMTAB FULL\r
39411                                 21180   DTD2:   PUSHJ   P,ININIT        ;INIT INPUT FILE\r
39412                                 21190           MOVEI   T1,1            ;SET TO RETURN DTCOPY+1\r
39413                                 21200           JRST    DTD5>\r
39414 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 51\r
39415         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39416 \r
39417                                 21220   ;ROUTINE TO DELETE OR RENAME FILES ON DTA\r
39418 \r
39419         002460' 260240  003271' 21240   DTADR:  PUSHJ   P,DTCHECK       ;GO GET DTA DIRECTORY\r
39420         002461' 200040  003742' 21250           MOVE T1,IBF             ;CURRENT INPUT BUFFER\r
39421                                 21260   IFN WCH,<\r
39422                                 21270           USETO OUT,1             ;TRY TO WRITE OUTPUT TAPE\r
39423                                 21280           >                       ;DETERMINE IF WRITE LOCKED\r
39424                                 21290   IFE WCH,<\r
39425         002462' 075100  000144  21300           USETO OUT,144>          ;THIS SHOULD GIVE ERROR MSG\r
39426         002463' 067101  000000  21310           OUTPUT OUT,(T1)         ;IF DTA WRITE LOCKED\r
39427         002464' 260240  003271' 21320           PUSHJ P,DTCHECK         ;GO GET DTA DIRECTORY\r
39428 \r
39429         002465' 260240  002711' 21340           PUSHJ   P,INFO          ;WRITE "FILES DELETED/RENAME\r
39430 \r
39431                                 21360   ;*********************************************************************\r
39432 \r
39433 \r
39434                                 21390   ;LOOP TO DELETE/RENAME. FOR (DX) DELETE FILES FROM DTA DIR\r
39435                                 21400   ;THEN USE REVISED DIRECTORY TO COPY ALL REMAINING FILES\r
39436 \r
39437 \r
39438         002466' 260240  002566' 21430   DELE3:  PUSHJ   P,LOOK          ;GET FILE TO DELETE OR RENAME FROM CS\r
39439         002467' 254000  002513' 21440           JRST    DELE5           ;NO MORE FILES\r
39440         002470' 606300  002000  21450           TRNN    FLAG,XFLG       ;/X?\r
39441         002471' 260240  002743' 21460           PUSHJ   P,INFO3         ;PRINT FILENAME-EXT\r
39442         002472' 200040  004012' 21470           MOVE    T1,DIRST        ;GOT A MATCH - PROCESS IT\r
39443         002473' 602300  000100  21480           TRNE    FLAG,RFLG       ;AND IT IS AT (T5) IN (DTA) DIR\r
39444         002474' 254000  002522' 21490           JRST    DTRNAM          ;RENAME\r
39445                                 21500   IFN WCH,<\r
39446                                 21510           SKIPA   T2,T1\r
39447                                 21520           ADDI    T2,4\r
39448                                 21530           SKIPE   4(T2)\r
39449                                 21540           JRST    .-2\r
39450                                 21550           HRLS    T1\r
39451                                 21560           ADDI    T1,4            ;GET TO END OF NAMES\r
39452                                 21570           MOVSS   T1              ;BLOCK UP DIR\r
39453                                 21580           BLT     T1,-1(T2)       ;ZERO OUT LAST 4 WORDS\r
39454                                 21590           SETZM   (T2)\r
39455                                 21600           SETZM   1(T2)\r
39456                                 21610           SETZM   2(T2)\r
39457                                 21620           SETZM   3(T2)\r
39458                                 21630           MOVE    T1,DIRST1\r
39459                                 21640           MOVEM   T1,DIRST\r
39460                                 21650           JRST    DELE3>\r
39461                                 21660   IFE WCH,<\r
39462         002475' 402001  000000  21670           SETZM   (T1)            ;DELETE FILENAME IN CORE DIRECT\r
39463         002476' 402001  000026  21680           SETZM   26(T1)          ;DELETE EXT\r
39464         002477' 274040  004013' 21690           SUB     T1,DIRST1       ;GET FILE "NUMBER" (POS IN DIRECT)\r
39465         002500' 201140  001102  21700           MOVEI   T3,1102         ;TO LOOK AT ALL BLOCKS\r
39466         002501' 205100  440500  21710           MOVSI   T2,(POINT 5,0)\r
39467         002502' 540100  004013' 21720           HRR     T2,DIRST1       ;TO CALCULATE ADDRESS OF FIRST WORD\r
39468         002503' 275100  000122  21730           SUBI    T2,122          ;OF BLOCK TABLE IN DIRECTORY\r
39469         002504' 363140  002466' 21740   DELE2:  SOJLE   T3,DELE3        ;LOOK AT 1101 BLOCKS\r
39470 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 51-1\r
39471         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39472 \r
39473         002505' 134000  000002  21750           ILDB    0,T2            ;GET BLOCK NUMBER\r
39474         002506' 312000  000001  21760           CAME    0,T1            ;IS IT SAME AS FILE "NUMBER"\r
39475         002507' 254000  002504' 21770           JRST    DELE2           ;NO IGNORE\r
39476         002510' 400000  000000  21780           SETZ    0,              ;FREE THE BLOCKS OF THIS FILE\r
39477         002511' 137000  000002  21790           DPB     0,T2            ;CLEAR OUT BLOCK NUMBER\r
39478         002512' 254000  002504' 21800           JRST    DELE2>          ;LOOP ON 1102 BLOCKS\r
39479         002513' 200040  003742' 21810   DELE5:  MOVE    T1,IBF          ;LOC OF INPUT BUFFER\r
39480         002514' 602300  002000  21820           TRNE    FLAG,XFLG       ;DX SWITCH?\r
39481         002515' 254000  002543' 21830           JRST    DTD6            ;YES, NOW MUST COPY REMAINING FILES\r
39482                                 21840   IFN WCH,<\r
39483                                 21850           USETO   OUT,1>\r
39484                                 21860   IFE WCH,<\r
39485         002516' 075100  000144  21870           USETO   OUT,144>\r
39486         002517' 067101  000000  21880           OUTPUT  OUT,(T1)        ;OUTPUT DTA DIRECTORY\r
39487         002520' 071040  000000  21890           RELEAS  CON,            ;OUTPUT DELETE OR RENAME INFO TO TTY\r
39488         002521' 254000  000415' 21900           JRST    MAINB\r
39489 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 52\r
39490         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39491 \r
39492                                 21920   ;ROUTINE TO RENAME FILE ON DECTAPE\r
39493 \r
39494         002522' 260240  002553' 21940   DTRNAM: PUSHJ   P,RENAME\r
39495         002523' 402000  004046' 21950           SETZM   DTON+2          ;MAKE MONITOR SUPPLY\r
39496         002524' 402000  004047' 21960           SETZM   DTON+3          ;DATE TIME\r
39497         002525' 076100  004044' 21970           LOOKUP  OUT,DTON        ;LOOK UP FILENAME-EXT ON OUTPUT DEV\r
39498         002526' 254000  002530' 21980           SKIP    1               ;NO FILE ALREADY OF DESTINATION NAME\r
39499         002527' 254000  002536' 21990           JRST    DTRNM1\r
39500         002530' 200000  004044' 22000           MOVE    0,DTON          ;RENAME, FILENAME\r
39501         002531' 322000  002466' 22010           JUMPE   0,DELE3         ;BUT NOT IF ZERO\r
39502         002532' 202001  000000  22020           MOVEM   0,(T1)          ;PUT IN DIRECTORY\r
39503         002533' 200000  004045' 22030           MOVE    0,DTON+1        ;GET EXT\r
39504                                 22040   IFE WCH,<\r
39505         002534' 502001  000026  22050           HLLM    0,26(T1)>       ;RENAME, EXT\r
39506                                 22060   IFN WCH,<\r
39507                                 22070           HLLM    0,1(T1)>\r
39508         002535' 254000  002466' 22080           JRST    DELE3\r
39509         002536' 550100  003742' 22090   DTRNM1: HRRZ    T2,IBF  ; GET PROTECTION DIR SLOT\r
39510         002537' 135000  004704' 22100           LDB     0,[POINT 5,17(T2),14]\r
39511         002540' 302000  000036  22110           CAIE    0,36            ; FILE PROTECTION ?\r
39512         002541' 254000  001762' 22120           JRST    ERR9            ; NO,ILLEGAL FILE NAME\r
39513         002542' 254000  002466' 22130           JRST    DELE3           ; RENAME DONE AT MAINB\r
39514 \r
39515                                 22150   ;END OF LOOP\r
39516                                 22160   ;*********************************************************************\r
39517                                 22170   ;DX SWITCH ON, COPY ALL BUT SPECIFIED FILES. I.E. THOSE NOT DELETED\r
39518 \r
39519         002543' 201040  000000  22190   DTD6:   MOVEI   T1,0            ;SET TO RETURN TO DTCOPY\r
39520         002544' 205000  120000  22200   DTD5:   MOVSI   0,(SIXBIT /*/)\r
39521         002545' 202000  004040' 22210           MOVEM   0,FILNAM        ;FORCE COPY-ALL\r
39522         002546' 202000  004041' 22220           MOVEM   0,FILEX         ;BY MAKING FILE-EXT=*.*\r
39523         002547' 260240  002746' 22230           PUSHJ   P,FNSET         ;FIND DETAILS OF FILE-EXT\r
39524         002550' 602540  020000  22240           TRNE    AUXFLG,DTAIN    ;DTA INPUT\r
39525         002551' 260240  003277' 22250           PUSHJ   P,DTCH1         ;INIT DIRST,DIRST1\r
39526                                 22260   IFN RIMSW,      <\r
39527                                 22270           TLNE    FLAG,RIMFLG     ;NO\r
39528                                 22280           JRST    RIMTB\r
39529                                 22290           >\r
39530         002552' 254001  002224' 22300           JRST    DTCOPY(T1)\r
39531 \r
39532 \r
39533                                 22330   ;SET UP OUTPUT DIRECTORY ENTRY FOR RENAME\r
39534                                 22340   ;ONLY ONE FILE NAME ALLOWED, BUT MAY BE *.EXT OR FN.*\r
39535 \r
39536         002553' 331000  004134' 22360   RENAME: SKIPL   ESWTCH          ;SKIP IF CR,LF SEEN IN C.S.\r
39537         002554' 254000  002040' 22370           JRST    ERR6A           ;ONLY 1 SOURCE FILE DESCRIPTOR ALLOWED\r
39538         002555' 554000  003767' 22380           HLRZ    0,NAMTAB+1      ;GET EXT\r
39539         002556' 306000  120000  22390           CAIN    0,(SIXBIT /*/)  ;USE SPEC. EXTENSION, BUT IF\r
39540         002557' 554000  004053' 22400           HLRZ    0,ZRF+1         ;EXT.=*, USE SOURCE EXTENSION\r
39541         002560' 506000  004045' 22410           HRLM    0,DTON+1        ;USE SPECIFIED EXT\r
39542         002561' 200100  003766' 22420           MOVE    T2,NAMTAB       ;USE SPEC. FN, BUT IF\r
39543         002562' 316100  003730' 22430           CAMN    T2,STAR         ;FN=* OR 0, USE SOURCE FILENAME\r
39544         002563' 200100  004052' 22440           MOVE    T2,ZRF          ;SOURCE FILE NAME=DEST\r
39545 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 52-1\r
39546         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39547 \r
39548         002564' 202100  004044' 22450           MOVEM   T2,DTON         ;USE SPECIFIED FILENAME\r
39549         002565' 263240  000000  22460           POPJ    P,\r
39550 \r
39551 \r
39552 \r
39553 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 53\r
39554         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39555 \r
39556                                 22510   ;THIS ROUTINE GETS NEXT FILENAME.EXT FROM CS\r
39557                                 22520   ;THEN SEES IF ONE IN DIRECTORY MATCHES\r
39558                                 22530   ;IF IT DOES - EXIT IS CPOPJ1\r
39559                                 22540   ;NO-MORE-FN.EX-TO-HANDLE-EXIT IS POPJ\r
39560                                 22550   ;PREPARE ZRF FOR A "LOOKUP" ON THE NEXT REQUESTED FILE.\r
39561 \r
39562         002566' 602740  000001  22570   LOOK:   TRNE    CALFLG,FNEX     ;DOES FILNAM, FILEX CONTAIN\r
39563         002567' 254000  002572' 22580           JRST    LOOK6           ;A FILE TO THINK ABOUT? YES\r
39564         002570' 260240  002767' 22590   LOOK01: PUSHJ   P,LOOKA         ;GET ONE (NOTE: DEVICE MAY ALTER)\r
39565         002571' 263240  000000  22600           POPJ    P,              ;NONE, END OF CS\r
39566                                 22610                                   ;RETURN SKIP FROM LOOKA\r
39567         002572' 200100  004041' 22620   LOOK6:  MOVE    T2,FILEX        ;GET FILE EXT INTO T2\r
39568         002573' 336040  004040' 22630           SKIPN   T1,FILNAM       ;FILNAME AND EXT=0?\r
39569         002574' 332100  004041' 22640           SKIPE   T2,FILEX\r
39570         002575' 254000  002577' 22650           SKIP    1               ;EITHER FN OR EX N.E.0\r
39571         002576' 254000  002650' 22660           JRST    LOOK7C          ;FN.EX=0, ONE FILE COPY\r
39572         002577' 312040  003730' 22670           CAME    T1,STAR         ;FILNAME OR EXT=*?\r
39573         002600' 316100  003730' 22680           CAMN    T2,STAR\r
39574         002601' 254000  002640' 22690           JRST    LOOK7A          ;FN OR EX=*, MANY FILES \r
39575 \r
39576         002602' 602540  060000  22710           TRNE    AUXFLG,DTAIN+DSKIN      ;DONT REQUIRE FILENAME\r
39577         002603' 322040  002616' 22720           JUMPE   T1,LOOK6C       ;HERE FOR 0.EX,FN.EX OR FN.0,0.EX ILLEGAL\r
39578         002604' 620740  000001  22730   LOOK7B: TRZ     CALFLG,FNEX     ;IF HERE, ONLY ONE FILE WAS ENTAILED IN REQUEST.\r
39579         002605' 606540  060000  22740           TRNN    AUXFLG,DTAIN+DSKIN\r
39580         002606' 254000  002635' 22750           JRST    LOOK4           ;GOT A FILE TO HANDLE\r
39581 \r
39582         002607' 260240  002662' 22770   LOOK8:  PUSHJ   P,PICUP         ;GET A FILE (ANY) FROM DIRECTORY\r
39583         002610' 254000  002623' 22780           JRST    LOOK2           ;WE GOT A FILE, DOES IT MATCH?\r
39584         002611' 622740  000001  22790           TRZE    CALFLG,FNEX     ;SEE IF A PARTIC. FILE WAS REQUESTED?\r
39585         002612' 254000  002620' 22800           JRST    LOOK6D          ;NO\r
39586         002613' 254000  002616' 22810           JRST    LOOK6C          ;YES\r
39587 \r
39588         002614' 260240  002005' 22830   LOOK6A: PUSHJ   P,ERR3A\r
39589         002615' 254000  001107' 22840           JRST    IOERRN          ;NO RECOVERY\r
39590         002616' 260240  002005' 22850   LOOK6C: PUSHJ   P,ERR3A\r
39591         002617' 254000  002570' 22860           JRST    LOOK01          ;GET NEXT FILE FROM CS\r
39592 \r
39593         002620' 626740  000040  22880   LOOK6D: TRZN    CALFLG,ASTFLG   ;DID WE FIND AT LEAST ONE\r
39594         002621' 260240  002005' 22890           PUSHJ   P,ERR3A         ;NO, PRINT MSG.\r
39595         002622' 254000  002566' 22900           JRST    LOOK            ;GET NEXT FILE FROM CS\r
39596                                 22910   ;CHECK IF FILE.EXT IN DIRECTORY MATCHES FILE TO /D,/R\r
39597                                 22920   ;NOTE WE MAY HAVE *.EXT,FIL.*, OR *.*\r
39598 \r
39599 \r
39600         002623' 606740  000004  22950   LOOK2:  TRNN    CALFLG,MATFN    ;SHOULD FILENAMES MATCH\r
39601         002624' 254000  002630' 22960           JRST    LOOK3           ;NO\r
39602         002625' 200040  004040' 22970           MOVE    T1,FILNAM       ;YES\r
39603         002626' 312040  004052' 22980           CAME    T1,ZRF\r
39604         002627' 254000  002607' 22990           JRST    LOOK8           ;NO MATCH\r
39605 \r
39606         002630' 606740  000002  23010   LOOK3:  TRNN    CALFLG,MATEX    ;SHOULD EXTENSIONS MATCH\r
39607         002631' 254000  002635' 23020           JRST    LOOK5           ;NO\r
39608         002632' 200040  004041' 23030           MOVE    T1,FILEX        ;YES\r
39609 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 53-1\r
39610         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39611 \r
39612         002633' 312040  004053' 23040           CAME    T1,ZRF+1\r
39613         002634' 254000  002607' 23050           JRST    LOOK8           ;NO MATCH\r
39614                                 23060   LOOK5:  IFN DISK30,<\r
39615                                 23070           TRNN    AUXFLG,DSKIN    ;DSK INPUT?\r
39616                                 23080           JRST    LOOK4           ;NO\r
39617                                 23090           LDB     T1,UFDIN+1      ;PICKUP P-P# IN DIRECTORY\r
39618                                 23100           HRRZM   T1,T2\r
39619                                 23110           CAME    T2,MASK         ;COMPARE WITH OWN P-P#\r
39620                                 23120           JRST    LOOK8           ;NO MATCH>\r
39621         002635' 660540  002000  23130   LOOK4:  TRO     AUXFLG,READ1    ;READY FOR FIRST READ\r
39622         002636' 660740  000040  23140           TRO     CALFLG,ASTFLG   ;FOUND A FILE *.EXT, F.*,*.*\r
39623         002637' 254000  001707' 23150           JRST    CPOPJ1          ;MATCH OR NO CARES\r
39624 \r
39625                                 23170   ;FILENAME OR EXT=*\r
39626         002640' 322100  002642' 23180   LOOK7A: JUMPE   T2,.+2          ;EXT=0?\r
39627         002641' 316100  003730' 23190           CAMN    T2,STAR         ;NO,\r
39628         002642' 312040  003730' 23200           CAME    T1,STAR\r
39629         002643' 254000  002645' 23210           SKIP    1\r
39630         002644' 254000  002655' 23220           JRST    LOOK1           ;*.* ALWAYS O.K. AND *\r
39631         002645' 606540  060000  23230           TRNN    AUXFLG,DSKIN+DTAIN\r
39632         002646' 254000  002614' 23240           JRST LOOK6A     ;*.A OR * ON NON-DIRECT DEV\r
39633         002647' 254000  002607' 23250           JRST    LOOK8\r
39634 \r
39635         002650' 602540  060000  23270   LOOK7C: TRNE    AUXFLG,DSKIN+DTAIN\r
39636         002651' 254000  002616' 23280           JRST    LOOK6C          ;0.0 ON DIR DEVICE\r
39637         002652' 402000  004052' 23290           SETZM   ZRF\r
39638         002653' 402000  004053' 23300           SETZM   ZRF+1\r
39639         002654' 254000  002604' 23310           JRST    LOOK7B          ;0.0 ON NON-DIR. DEV.\r
39640 \r
39641         002655' 602540  060000  23330   LOOK1:  TRNE    AUXFLG,DTAIN+DSKIN\r
39642         002656' 254000  002607' 23340           JRST    LOOK8\r
39643         002657' 402000  004052' 23350           SETZM   ZRF\r
39644         002660' 402000  004053' 23360           SETZM   ZRF+1\r
39645         002661' 254000  002635' 23370           JRST    LOOK4\r
39646 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 54\r
39647         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39648 \r
39649                                 23390   ;ROUTINE TO GET NEXT FILE NAME FROM DIRECTORY\r
39650                                 23400   ;FILNAM, FILEX CONTAIN THE FILE NAME. EXT TO BE\r
39651                                 23410   ;MATCHED WITH DIR. NAMES. PUT SUGGESTED FILE\r
39652                                 23420   ;NAME EXT IN ZRF, ZRF+1 AND #P-P IN ZRF+3\r
39653                                 23430   ;NOTE THAT WE HAVE TO HANDLE *.EXT,FILE.*\r
39654 \r
39655         002662'                 23450   PICUP:\r
39656                                 23460   IFN FTDSK,<TRNN AUXFLG,DSKIN    ;DSK INPUT?\r
39657                                 23470           JRST    PICUP2          ;N0, DTA\r
39658                                 23480           SOSLE   UFDIN+2         ;YES\r
39659                                 23490           JRST    .+3\r
39660                                 23500   PICUP1: PUSHJ   P,UIN           ;INPUT USER'S FILE DIRECTORY\r
39661                                 23510           JRST    CPOPJ1          ;EOF ON DSK\r
39662                                 23520           ILDB    0,UFDIN+1       ;PICK UP FILENAME\r
39663                                 23530           JUMPE   0,PICUP1        ;IGNORE NULL\r
39664                                 23540           MOVEM   0,ZRF           ;SET FILE NAME\r
39665                                 23550           MOVE    0,FNPPN\r
39666                                 23560           MOVEM   0,ZRF+3         ;SET DSK #P-P\r
39667                                 23570           SOS     UFDIN+2         ;COUNT DOWN FOR NEXT TIME\r
39668                                 23580           ILDB    0,UFDIN+1       ;SET FILE EX\r
39669                                 23590           HLLZM   0,ZRF+1\r
39670                                 23600   IFN DISK30,<\r
39671                                 23610           IBP     UFDIN+1         ;INCREMENT POINTER TO GET PROJ,PROG #\r
39672                                 23620           IBP     UFDIN+1>\r
39673                                 23630           POPJ    P,>\r
39674 \r
39675         002662'                 23650   PICUP2:\r
39676                                 23660   IFN WCH,<\r
39677                                 23670           MOVE    T5,DIRST        ;DIRST=LOC 4 FIRST TIME THRU\r
39678                                 23680           ADDI    T5,4            ;CALCULATE FIRST/NEXT FILENAME\r
39679                                 23690           MOVEM   T5,DIRST\r
39680                                 23700           MOVE    0,(T5)\r
39681                                 23710           JUMPE   0,CPOPJ1                ;NO MORE FILENAMES IN DIRECTORY\r
39682                                 23720           MOVEM   0,ZRF\r
39683                                 23730           MOVE    0,1(T5)>\r
39684                                 23740   IFE WCH,<\r
39685         002662' 200140  004013' 23750           MOVE    T3,DIRST1       ;SETUP TO CHECK ALL FILENAME SLOTS\r
39686         002663' 271140  000026  23760           ADDI    T3,26           ;IN DIRECTORY (22 FILE NAMES)\r
39687         002664' 200440  004012' 23770           MOVE    T5,DIRST        ;LOC OF FIRST/NEXT FILE\r
39688         002665' 271440  000001  23780   PICUP4: ADDI    T5,1            ;\r
39689         002666' 313440  000003  23790           CAMLE   T5,T3           ;END OF FILE SLOTS?\r
39690         002667' 254000  001707' 23800           JRST    CPOPJ1          ;END OF FILE NAMES\r
39691         002670' 202440  004012' 23810           MOVEM   T5,DIRST        ;NEXT SLOT TO LOOK AT\r
39692         002671' 200011  000000  23820           MOVE    0,(T5)          ;GOT FILE NAME FROM DIRECT\r
39693         002672' 322000  002665' 23830           JUMPE   0,PICUP4        ;IGNORE IF 0\r
39694         002673' 202000  004052' 23840           MOVEM   0,ZRF\r
39695         002674' 200011  000026  23850           MOVE    0,26(T5)>       ;GET EXT ETC\r
39696         002675' 512000  004053' 23860           HLLZM   0,ZRF+1\r
39697         002676' 200000  004043' 23870           MOVE    0,PP\r
39698         002677' 202000  004055' 23880           MOVEM   0,ZRF+3\r
39699         002700' 263240  000000  23890           POPJ    P,\r
39700 \r
39701 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 55\r
39702         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39703 \r
39704                                 23910   ;READ DTA DIR. AND PREPARE T5 TO PICK UP FIRST ENTRY.\r
39705 \r
39706         002701' 260240  003272' 23930   DTADIR: PUSHJ   P,DTCH2         ;READ DTA DIR INTO INPUT BUF\r
39707         002702' 201140  004400' 23940   DTADI1: MOVEI   T3,DBUF         ;SET BLT FROM INBUF TO DBUF\r
39708         002703' 504140  000011  23950           HRL     T3,T5           ;FIRST DATA WORD OF DIRECTORY IN T5\r
39709                                 23960   IFN WCH,<\r
39710                                 23970           MOVNS   T2\r
39711                                 23980           BLT     T3,DBUF+176(T2)\r
39712                                 23990           SETZM   DBUF+177(T2)\r
39713                                 24000           MOVEI   T5,DBUF-4>\r
39714                                 24010   IFE WCH,<\r
39715         002704' 251140  004576' 24020           BLT     T3,DBUF+176     ;MOVE FROM INBUF TO DBUF\r
39716         002705' 201440  004522' 24030           MOVEI   T5,DBUF+123-1>  ;LOC OF FIRST FILE NAME\r
39717         002706' 202440  004012' 24040           MOVEM   T5,DIRST        ;T5 POINTS TO FILNAME JUST HANDLED\r
39718         002707' 202440  004013' 24050           MOVEM   T5,DIRST1       ;TO RESTORE DIRST\r
39719         002710' 263240  000000  24060           POPJ    P,              ;(IE NONE BUT NEXT WILL BE FIRST)\r
39720 \r
39721 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 56\r
39722         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39723 \r
39724 \r
39725                                 24100   ;ROUTINE TO OUTPUT FILENAMES THAT WERE DELETED OR RENAMED\r
39726                                 24110   ;PRINT "FILES DELETED:" OR "FILES RENAMED:"\r
39727                                 24120   ;ALSO USED TO PRINT "NO FILE NAMED XXX.XXX"\r
39728 \r
39729 \r
39730         002711' 200040  003756' 24150   INFO:   MOVE    T1,TFO          ;SETUP TTY FOR OUTPUT\r
39731         002712' 200100  003753' 24160           MOVE    T2,TFI          ;SAVE BUFFER LOCS\r
39732         002713' 260240  001410' 24170           PUSHJ P,INICON          ;INIT TTY\r
39733         002714' 562100  003753' 24180           HRROM   T2,TFI          ;SET BUFFER LOCS\r
39734         002715' 562040  003756' 24190           HRROM   T1,TFO\r
39735         002716' 067040  000000  24200           OUTPUT CON,\r
39736         002717' 623540  000100  24210           TLZE    AUXFLG,INFOFL   ;ERROR PRINT ONLY?\r
39737         002720' 254000  002007' 24220           JRST    ERR3AA          ;YES\r
39738         002721' 606300  000010  24230           TRNN    FLAG,DFLG       ;DELETE?\r
39739         002722' 254000  002730' 24240           JRST    INFO1           ;NO, MUST BE RENAME\r
39740         002723' 265040  002166' 24250           ERRPN2  </Files deleted:/>\r
39741         002724' 433235  462746\r
39742         002725' 203114  566312\r
39743         002726' 723134  435000\r
39744         002727' 254000  002735' 24260           JRST    INFO2\r
39745         002730' 476000  004651' 24270   INFO1:  SETOM   RENSN           ;DON'T PRINT IT TWICE\r
39746         002731' 265040  002166' 24280           ERRPN2  </Files renamed:/>      ;RENAME (/R)\r
39747         002732' 433235  462746\r
39748         002733' 203454  567302\r
39749         002734' 667134  435000\r
39750         002735' 201200  000015  24290   INFO2:  MOVEI   CHR,CR          ;OUTPUT CR/LF\r
39751         002736' 260240  002175' 24300           PUSHJ   P,PUTCON        ;ON TTY\r
39752         002737' 201200  000012  24310           MOVEI   CHR,LF\r
39753         002740' 260240  002175' 24320           PUSHJ   P,PUTCON\r
39754         002741' 067040  000000  24330           OUTPUT CON,\r
39755         002742' 263240  000000  24340           POPJ    P,\r
39756 \r
39757                                 24360   ;**********************************************************************\r
39758                                 24370   ;PRINT FILENAME.EXT OR [P,P].UFD OF FILE DELETED\r
39759 \r
39760         002743' 201140  004052' 24390   INFO3:  MOVEI   T3,ZRF          ;LOCATION OF FILENAME\r
39761         002744' 260240  001146' 24400           PUSHJ   P,FN.EX\r
39762         002745' 254000  002735' 24410           JRST    INFO2\r
39763 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 57\r
39764         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39765 \r
39766                                 24430   ;/X OR /D. FIND OUT DETAILS OF FILE NAME AND\r
39767                                 24440   ;EXTENSION (0 FN.EX=*.*) AND ANY CHANGE IN\r
39768                                 24450   ;SOURCE DEV. SET BITS IN CALFLG.\r
39769 \r
39770         002746' 620740  000037  24470   FNSET:  TRZ     CALFLG,ALLCLF   ;CLEAR FLAGS ON ENTRY\r
39771         002747' 660740  000001  24480           TRO     CALFLG,FNEX\r
39772         002750' 205000  120000  24490           MOVSI   0,(SIXBIT /*/)  ;* TO AC0\r
39773         002751' 312000  004040' 24500           CAME    0,FILNAM        ;FILNAM=* OR 0?\r
39774         002752' 336000  004040' 24510           SKIPN   FILNAM\r
39775         002753' 254000  002755' 24520           SKIP    1               ;FILENAME = * OR 0\r
39776         002754' 660740  000004  24530           TRO     CALFLG,MATFN    ;FILENAME MUST BE MATCHED\r
39777         002755' 336000  004041' 24540           SKIPN   FILEX           ;EXT=0?\r
39778         002756' 606540  201500  24550           TRNN    AUXFLG, MTAIN+CDRIN+PPTIN+TTYIN ;YES\r
39779         002757' 316000  004041' 24560           CAMN    0,FILEX         ;NO, EXT = *?\r
39780         002760' 254000  002762' 24570           SKIP    1               ;YES\r
39781         002761' 660740  000002  24580           TRO     CALFLG,MATEX    ;FILE EXTENSION MUST BE MATCHED\r
39782                                 24590   IFN FTDSK,<TRNN    AUXFLG,DSKIN\r
39783                                 24600           JRST    FNSET1\r
39784                                 24610           SKIPN   T2,PP\r
39785                                 24620           JRST    FNSET2          ;IF #P-P=0 IT IS COUNTED AS UNCHANGED\r
39786                                 24630           CAME    T2,FNPPN\r
39787                                 24640           TRO     CALFLG,NEWPP    ;CHANGE IN # P-P\r
39788                                 24650           JRST    FNSET1\r
39789                                 24660   FNSET2: MOVE    T2,FNPPN        ;IF P-P#=0, SET TO PREVIOUS VALUE\r
39790                                 24670           MOVEM   T2,PP>\r
39791         002762' 200100  004637' 24680   FNSET1: MOVE    T2,DEVICE\r
39792         002763' 312100  004050' 24690           CAME    T2,DEVA\r
39793         002764' 660740  000010  24700           TRO     CALFLG,NEWDEV   ;CHANGE IN SOURCE DEV.\r
39794         002765' 202100  004050' 24710           MOVEM   T2,DEVA         ;SET DEVA=DEVICE\r
39795         002766' 263240  000000  24720           POPJ    P,\r
39796 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 58\r
39797         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39798 \r
39799                                 24740   ;POPJ EXIT IF END OF COMMAND STRING, OTHERWISE RESET\r
39800                                 24750   ;POINTER TO START OF DIRECTORY, READING IN NEW DIR.\r
39801                                 24760   ;IF DEV OR #P-P CHANGED (EXIT CPOPJ1)\r
39802                                 24770   ;IF DIR. IS ON DSK RESET BY REINIT.\r
39803 \r
39804         002767' 332340  004134' 24790   LOOKA:  SKIPE   T4,ESWTCH               ;MORE C.S.?\r
39805         002770' 263240  000000  24800           POPJ    P,                      ;NO\r
39806         002771' 260240  000451' 24810           PUSHJ   P,DESCRP                ;YES, GET NEXT FN.EX FROM CS\r
39807         002772' 260240  000204' 24820           PUSHJ   P,INLOOK                ;CHECK FOR MTA REQUESTS, MODE\r
39808         002773' 260240  000154' 24830           PUSHJ   P,M4                    ;CHECK FOR /I,/B,/H\r
39809         002774' 552340  004636' 24840           HRRZM    T4,ININI1              ;SET MODE\r
39810         002775' 071240  000000  24850           RELEAS  DIR,\r
39811         002776' 606540  201500  24860           TRNN    AUXFLG,MTAIN+CDRIN+PPTIN+TTYIN  ;NON-DIR DEVICE?\r
39812         002777' 254000  003002' 24870           JRST    LOOKF\r
39813 \r
39814         003000' 602740  000006  24890           TRNE    CALFLG,MATEX!MATFN      ;YES, NO FN EX BUT *.* OR * ALLOWED\r
39815         003001' 254000  002040' 24900           JRST    ERR6A\r
39816 \r
39817         003002' 606300  000010  24920   LOOKF:  TRNN    FLAG,DFLG               ;FOR DELETE, ONE SOURCE FILE\r
39818         003003' 254000  003006' 24930           JRST    LOOKB                   ;...\r
39819 \r
39820         003004' 602740  000030  24950           TRNE    CALFLG,NEWDEV!NEWPP     ;ONLY IS PERMITTED\r
39821         003005' 254000  002060' 24960           JRST    ERR5A\r
39822 \r
39823         003006' 606740  000030  24980   LOOKB:  TRNN    CALFLG,NEWDEV!NEWPP     ;PREPARE TO LOOK FOR NEW FILE\r
39824         003007' 254000  003014' 24990           JRST    LOOKC                   ;NAME AT HEAD OF DIRECTORY\r
39825 \r
39826         003010' 260240  000426' 25010           PUSHJ   P,ININIT                ;INIT INPUT FILE\r
39827         003011' 606540  060000  25020           TRNN    AUXFLG,DTAIN+DSKIN\r
39828         003012' 254000  001707' 25030           JRST    CPOPJ1\r
39829                                 25040   IFN FTDSK,<TRNN AUXFLG,DTAIN            ;DTA INPUT?\r
39830                                 25050           JRST    LOOKD                   ;NO, MUST BE DSK>\r
39831         003013' 260240  002701' 25060           PUSHJ   P,DTADIR                ;YES, READ IN DTA DIRECT\r
39832 \r
39833         003014'                 25080   LOOKC:\r
39834                                 25090   IFN FTDSK,<TRNE    AUXFLG,DSKIN         ;DSK INPUT?\r
39835                                 25100           JRST    LOOKD                   ;YES>\r
39836         003014' 200440  004013' 25110           MOVE    T5,DIRST1               ;NO, RESET DIRECTORY START\r
39837         003015' 202440  004012' 25120           MOVEM   T5,DIRST\r
39838         003016' 254000  001707' 25130           JRST    CPOPJ1\r
39839 \r
39840                                 25150   IFN FTDSK,<\r
39841                                 25160   LOOKD:  PUSHJ   P,DSKDIR                ;GET USER'S FILE DIRECTORY\r
39842                                 25170           SETZM   UFDIN+2                 ;DSK DIR BUF EMPTY\r
39843                                 25180           JRST    CPOPJ1>\r
39844 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 59\r
39845         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39846 \r
39847                                 25200   ;ROUTINE TO LIST DTA OR DSK DIRECTORIES\r
39848 \r
39849 \r
39850         003017' 077100  004044' 25230   DTPDIR: ENTER   OUT,DTON        ;OUTPUT DEV,NROCT ENTRY\r
39851         003020' 254000  002024' 25240           JRST    ERR4            ;DIRECTORY FULL\r
39852                                 25250   IFN FTDSK,<TRNE    AUXFLG,FFLG  ;/F? SHORT FORM?\r
39853                                 25260           SKIPE   DEVICE          ;INPUT DEVICE SPECIFIED?\r
39854                                 25270           JRST    PDIR1A          ;YES\r
39855                                 25280           MOVSI   0,(SIXBIT/DSK/)\r
39856                                 25290           DEVCHR\r
39857                                 25300           JUMPE   0,PDIR1A        ;NO DISK\r
39858                                 25310           HRRZI   0,(SIXBIT /DSK/);ASSUME DSK IF NO DEVICE GIVEN\r
39859                                 25320           HRLZM   0,DEVICE\r
39860                                 25330           TROA   AUXFLG,DSKIN     ;SET DSK INPUT\r
39861                                 25340   PDIR1A: TRNE    AUXFLG,DSKIN    ;DSK INPUT?\r
39862                                 25350           JRST    DSKLST          ;YES, GO AND TRY TO LIST DSK>\r
39863         003021' 606540  020000  25360           TRNN    AUXFLG,DTAIN    ;DECTAPE INPUT?\r
39864         003022' 254000  002066' 25370           JRST    ERR5            ;NOT DSK OR DTA. ERROR\r
39865 \r
39866                                 25390   ;ROUTINE TO LIST DTA DIRECTORY. /L OR /F SWITCH\r
39867 \r
39868         003023' 260240  003271' 25410   DTALST: PUSHJ   P,DTCHECK       ;CHECK FOR DTA INPUT-MUST BE DECTAPE AND\r
39869                                 25420                                   ;GET DIRECTORY\r
39870         003024' 260240  003205' 25430           PUSHJ   P,CRLF          ;PRINT NO. OF FREE BLOCKS LEFT\r
39871         003025' 135040  004705' 25440           LDB     T1,[POINT 5,16(T5),14]\r
39872         003026' 302040  000036  25450           CAIE    T1,36           ; SKIP DIR HEADER IF\r
39873         003027' 254000  003070' 25460           JRST    PDIR1B          ; DECTAPE HAS NO PROTECTION\r
39874 U       003030' 334040  004706' 25470           LSTLIN  HEDL1           ; PRINT HEADER\r
39875         003031' 260240  000756'\r
39876         003032' 134200  000001\r
39877         003033' 326200  003031'\r
39878         003034' 200100  003736' 25480           MOVE    T2,DTAID\r
39879         003035' 322100  003055' 25490           JUMPE   T2,DTALS4\r
39880         003036' 201100  000005  25500           MOVEI   T2,5            ; CHARACTER COUNT\r
39881         003037' 200000  004707' 25510           MOVE    0,[POINT 6,DTAID]\r
39882         003040' 134200  000000  25520           ILDB    CHR,0           ; GET CLASSIFICATION\r
39883         003041' 302200  000023  25530           CAIE    CHR,23          ; STD (I.E.=3) ?\r
39884         003042' 344100  003052' 25540           AOJA    T2,DTALS3\r
39885         003043' 134200  000000  25550   DTALS1: ILDB    CHR,0           ; GET NEXT DIGIT\r
39886         003044' 271200  000040  25560           ADDI    CHR,40          ; CONVERT TO ASCII\r
39887         003045' 306200  000060  25570           CAIN    CHR,"0"         ; SUPPRESS LEADING ZEROS\r
39888         003046' 367100  003043' 25580           SOJG    T2,DTALS1\r
39889         003047' 260240  000756' 25590           PUSHJ   P,PUT\r
39890         003050' 363100  003055' 25600   DTALS2: SOJLE   T2,DTALS4\r
39891         003051' 134200  000000  25610           ILDB    CHR,0\r
39892         003052' 271200  000040  25620   DTALS3: ADDI    CHR,40\r
39893         003053' 260240  000756' 25630           PUSHJ   P,PUT\r
39894         003054' 254000  003050' 25640           JRST    DTALS2\r
39895         003055' 201200  000133  25650   DTALS4: MOVEI   CHR,"["\r
39896         003056' 260240  000756' 25660           PUSHJ   P,PUT\r
39897         003057' 554640  003737' 25670           HLRZ    DOUT,DIRPPN\r
39898         003060' 260240  003260' 25680           PUSHJ   P,OUTDEC\r
39899 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 59-1\r
39900         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39901 \r
39902         003061' 201200  000054  25690           MOVEI   CHR,","\r
39903         003062' 260240  000756' 25700           PUSHJ   P,PUT\r
39904         003063' 550640  003737' 25710           HRRZ    DOUT,DIRPPN\r
39905         003064' 260240  003260' 25720           PUSHJ   P,OUTDEC\r
39906         003065' 201200  000135  25730           MOVEI   CHR,"]"\r
39907         003066' 260240  000756' 25740           PUSHJ   P,PUT\r
39908         003067' 260240  003205' 25750           PUSHJ   P,CRLF\r
39909         003070'                 25760   PDIR1B:\r
39910 \r
39911                                 25780   IFN WCH,<\r
39912                                 25790           MOVE    T1,IBF\r
39913                                 25800           HLRZ    DOUT,1(T1)      ;GET FREE BLOCK POINTER\r
39914                                 25810           MOVNS   DOUT\r
39915                                 25820           ADDI    DOUT,1101       ;GET NO. OF FREE BLOCKS LESS FREE BLOCK NO.\r
39916                                 25830           PUSHJ   P,OUTDEC        ;PRINT RESULT>\r
39917                                 25840   IFE WCH,<\r
39918         003070' 400640  000000  25850           SETZ   DOUT,            ;CLEAR NO. FREE BLOCKS\r
39919         003071' 201340  001102  25860           MOVEI   T4,1102         ;OCTAL NO. OF BLOCKS ON DECTAPE\r
39920         003072' 205040  440500  25870           MOVSI   T1,(POINT 5,0)  ;5 BIT BYTES\r
39921         003073' 550440  003742' 25880           HRRZ    T5,IBF          ;CURRENT INPUT BUFFER\r
39922         003074' 271051  000001  25890           ADDI    T1,1(T5)        ;POINTER TO 1ST DATA WORD IN DIRECT\r
39923 \r
39924 \r
39925         003075' 363340  003101' 25910   PDIR8:  SOJLE   T4,PDIR1        ;ALL THROUGH?\r
39926         003076' 134140  000001  25920           ILDB    T3,T1           ;CALCULATE NO. OF FREE BLOCKS\r
39927         003077' 326140  003075' 25930           JUMPN   T3,PDIR8\r
39928 \r
39929                                 25950                                   ;THIS BLOCK FULL\r
39930         003100' 344640  003075' 25960           AOJA    DOUT,PDIR8      ;COUNT NO. WITH ZERO IN\r
39931         003101' 260240  003260' 25970   PDIR1:  PUSHJ   P,OUTDEC        ;PRINT RESULT>\r
39932         003102' 200000  004710' 25980           MOVE    0,[POINT 6,PDIR7]\r
39933         003103' 201100  000022  25990           MOVEI   T2,^D18         ;SET LOOP TO DEPOSIT 18 CHARS\r
39934         003104' 260240  003211' 26000           PUSHJ   P,PDIR2         ;PRINT "FREE BLOCKS LEFT" MESSAGE\r
39935         003105' 260240  003205' 26010           PUSHJ   P,CRLF          ;CARRIAGE RET, LINEFEED\r
39936         003106' 260240  003277' 26020           PUSHJ   P,DTCH1         ;FIX T5, TO POINT AT BEGIN OF DIR\r
39937 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 60\r
39938         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39939 \r
39940                                 26040   ;LOOP TO EXAMINE FILE NAMES DTA DIRECTORY\r
39941         003107'                 26050   PDIR4:\r
39942                                 26060   IFE WCH,<\r
39943         003107' 336011  000123  26070           SKIPN   123(T5)         ;NULL (=0) FILE NAME?\r
39944         003110' 254000  003200' 26080           JRST    PDIR6           ;YES SO LOOK FOR ANOTHER>\r
39945                                 26090   IFN WCH,<\r
39946                                 26100           SKIPN   (T5)            ;NULL (=0) FILE NAME?\r
39947                                 26110           JRST    MAIN1           ;YES, SO END OF DIR.>\r
39948         003111' 201100  000006  26120           MOVEI   T2,6            ;TRANSMIT UP TO 6 CHARACTERS\r
39949         003112' 205000  440611  26130           MOVSI   0,440600+T5     ;SET UP SOURCE BYTE POINTER\r
39950                                 26140   IFE WCH,<\r
39951         003113' 541000  000123  26150           HRRI    0,123>          ;SET TO PICK UP FILE NAME\r
39952         003114' 400340  000000  26160           SETZ   T4,\r
39953                                 26170   ;FOLLOWING CODE TO OUTPUT PROJ, PROG FILENAME\r
39954                                 26180   ;*****************************************************************\r
39955                                 26190   IFE WCH,<\r
39956         003115' 554211  000151  26200           HLRZ    CHR,151(T5)     ;GET EXT\r
39957         003116' 302200  654644  26210           CAIE    CHR,(SIXBIT/UFD/)       ;UFD?\r
39958         003117' 254000  003130' 26220           JRST    PDIR4A          ;NO\r
39959 \r
39960         003120' 554651  000123  26240           HLRZ    DOUT,123(T5)    ;PROJ NO.\r
39961         003121' 201100  000756' 26250           MOVEI   T2,PUT\r
39962         003122' 260240  003235' 26260           PUSHJ   P,OUTDC1\r
39963 \r
39964         003123' 201200  000054  26280           MOVEI   CHR,COMMA       ;COMMA\r
39965         003124' 260240  000756' 26290           PUSHJ   P,PUT\r
39966 \r
39967         003125' 550651  000123  26310           HRRZ    DOUT,123(T5)    ;PROG NO.\r
39968         003126' 260240  003235' 26320           PUSHJ   P,OUTDC1\r
39969         003127' 254000  003131' 26330           JRST    PDIR4B\r
39970                                 26340           >\r
39971                                 26350   ;*********************************************************************\r
39972         003130' 260240  003211' 26360   PDIR4A: PUSHJ   P,PDIR2         ;OUTPUT 6-BIT DATA AND INCR DIRECTORY PTR\r
39973                                 26370   IFE WCH,<\r
39974         003131' 510211  000151  26380   PDIR4B: HLLZ    CHR,151(T5)>    ;PICK UP EXTENSION\r
39975                                 26390   IFN WCH,<\r
39976                                 26400           HLLZ    CHR,(T5)>\r
39977         003132' 205000  440611  26410           MOVSI   0,440600+T5     ;SET BYTE POINTER\r
39978                                 26420   IFE WCH,<\r
39979         003133' 541000  000151  26430           HRRI    0,151>          ;PICK UP EXTENSION\r
39980         003134' 201100  000004  26440           MOVEI   T2,4            ;PRINT UP TO 4 CHRS. (PERIOD+3*EXT)\r
39981         003135' 326200  003140' 26450           JUMPN   CHR,.+3         ;EXTENSION NULL?\r
39982         003136' 260240  003214' 26460           PUSHJ   P,PDIR2A+1      ;YES\r
39983         003137' 254000  003142' 26470           SKIP    2               ;NO\r
39984         003140' 201200  000016  26480           MOVEI   CHR,PERIOD-40   ;NO, SO PRINT A PERIOD\r
39985         003141' 260240  003213' 26490   PDIR3:  PUSHJ   P,PDIR2A        ;OUTPT 6 BIT OR INCR T5\r
39986                                 26500   IFE WCH,<\r
39987         003142' 201200  000040  26510           MOVEI   CHR,SPACE       ;OUTPUT 2 SPACES\r
39988         003143' 260240  000756' 26520           PUSHJ   P,PUT\r
39989         003144' 260240  000756' 26530           PUSHJ   P,PUT\r
39990         003145' 602540  000020  26540           TRNE AUXFLG,FFLG        ;SHORT FORM DIRECT ?\r
39991         003146' 254000  003177' 26550           JRST PDIR3A             ;YES VJC 4/16/69\r
39992 \r
39993 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 60-1\r
39994         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
39995 \r
39996         003147' 400640  000000  26570           SETZ    DOUT,           ;CALCULATE NBR OF BLOCKS PER FILE\r
39997         003150' 201340  001101  26580           MOVEI   T4,1101\r
39998         003151' 205000  440500  26590           MOVSI   0,(POINT 5,0)\r
39999         003152' 550100  003742' 26600           HRRZ    T2,IBF\r
40000         003153' 271002  000001  26610           ADDI    0,1(T2)\r
40001         003154' 550600  000011  26620           HRRZ    T7,T5\r
40002         003155' 275602  000000  26630           SUBI    T7,(T2)\r
40003         003156' 134500  000000  26640           ILDB    T6,0            ;LOAD CONTENTS OF S.A.T. BLOCK\r
40004         003157' 316500  000014  26650           CAMN    T6,T7           ;COMPARE WITH FILE SLOT NBR\r
40005         003160' 271640  000001  26660           ADDI    DOUT,1          ;ADD 1 TO COUNT IF EQUAL\r
40006         003161' 367340  003156' 26670           SOJG    T4,.-3\r
40007         003162' 260240  003260' 26680           PUSHJ   P,OUTDEC        ;OUTPUT NBR OF BLOCKS PER FILE\r
40008         003163' 201200  000011  26690           MOVEI   CHR,TAB\r
40009                                 26700           >\r
40010                                 26710   IFN WCH,<\r
40011                                 26720           AOJ     T5,             ;STEP DIR. POINTER\r
40012                                 26730           MOVEI   CHR,11\r
40013                                 26740           PUSHJ   P,PUT           ;OUTPUT A TAB\r
40014                                 26750           CAIG    T4,7>\r
40015         003164' 260240  000756' 26760           PUSHJ   P,PUT\r
40016         003165' 135040  004711' 26770           LDB     T1,[POINT 5,DBUF+16,14]\r
40017         003166' 302040  000036  26780           CAIE    T1,36\r
40018         003167' 254000  003174' 26790           JRST    PDIR3B\r
40019         003170' 550040  003742' 26800           HRRZ    T1,IBF\r
40020         003171' 276440  000001  26810           SUBM    T5,T1\r
40021         003172' 135000  004712' 26820           LDB     0,[POINT 9,DBUF+200(T1),8]\r
40022 U       003173' 260240  000000* 26830           PUSHJ   P,PROTO         ; OUTPUT PROTECTION\r
40023         003174'                 26840   PDIR3B:\r
40024                                 26850   IFE WCH,<\r
40025         003174' 200011  000151  26860           MOVE    0,151(T5)       ;GET ENTRY DATE>\r
40026                                 26870   IFN WCH,<\r
40027                                 26880           MOVE    0,-1(T5)        ;GET ENTRY DATE>\r
40028         003175' 405000  007777  26890           ANDI    0,7777          ;LEFT BITS ARE IRRELEVENT\r
40029         003176' 260240  003224' 26900           PUSHJ   P,DATOUT        ;OUTPUT THE DATE\r
40030         003177' 260240  003205' 26910   PDIR3A: PUSHJ   P,CRLF          ;GIVE CR,LF 4/16/69\r
40031                                 26920   IFN WCH,<\r
40032                                 26930           AOJA    T5,PDIR4        ;PROCESS NEXT ENTRY>\r
40033                                 26940   IFE WCH,<\r
40034         003200' 550040  003742' 26950   PDIR6:  HRRZ    T1,IBF          ;PROCESS NEXT ENTRY\r
40035         003201' 276440  000001  26960           SUBM    T5,T1\r
40036         003202' 301040  000026  26970           CAIL    T1,26           ;FILE "NUMBER" OK?\r
40037         003203' 254000  000411' 26980           JRST    MAIN1           ;NO, END OF ENTRIES\r
40038         003204' 344440  003107' 26990           AOJA    T5,PDIR4        ;END OF LOOP, GET NEXT FILENAME>\r
40039 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 61\r
40040         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
40041 \r
40042 \r
40043                                 27020   IFN FTDSK,<\r
40044                                 27030   CLRF:   SOS     LIN>\r
40045         003205' 201200  000015  27040   CRLF:   MOVEI   CHR,CR          ;OUTPUT CAR. RET.\r
40046         003206' 260240  000756' 27050           PUSHJ   P,PUT\r
40047         003207' 201200  000012  27060           MOVEI   CHR,LF          ;LINE FEED\r
40048         003210' 254000  000756' 27070           JRST    PUT\r
40049 \r
40050         003211' 134200  000000  27090   PDIR2:  ILDB    CHR,0           ;ROUTINE TO OUTPUT 6-BIT DATA\r
40051         003212' 606000  777777  27100           TRNN    0,-1            ;PRINT SPACES WHEN PRINTING THE FREE BLOCKS\r
40052         003213' 322200  003220' 27110   PDIR2A: JUMPE   CHR,PDIR21      ;TERMINATE ON SPACE\r
40053         003214' 271200  000040  27120           ADDI    CHR,40          ;CONVERT TO 7 BIT\r
40054         003215' 260240  000756' 27130           PUSHJ   P,PUT           ;OUTPUT CHARACTER\r
40055         003216' 271340  000001  27140           ADDI    T4,1\r
40056         003217' 367100  003211' 27150           SOJG    T2,PDIR2        ;COUNT DOWN MAX-CHARS COUNTER\r
40057                                 27160   IFN WCH,<\r
40058                                 27170   PDIR21: AOJA    T5,CPOPJ        ;STEP AND CONTINUE>\r
40059                                 27180   IFE WCH,<\r
40060         003220' 263240  000000  27190   PDIR21: POPJ    P,              ;CONTINUE>\r
40061 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 62\r
40062         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
40063 \r
40064         003221' 160046  624545  27210   PDIR7:  SIXBIT /. FREE BLOCKS LEFT/\r
40065         003222' 004254  574353\r
40066         003223' 630054  454664\r
40067                                 27220   ;OUTPUT THE DATE FOUND IN AC 0.\r
40068 \r
40069         003224' 201100  000756' 27240   DATOUT: MOVEI T2,PUT            ;PUT CHAR IN OUT\r
40070         003225' 231000  000037  27250           IDIVI 0,^D31\r
40071         003226' 201141  000001  27260           MOVEI T3,1(1)\r
40072         003227' 231000  000014  27270           IDIVI 0,^D12\r
40073         003230' 200640  000003  27280           MOVE DOUT,T3            ;DOUT=DAY\r
40074         003231' 260240  003235' 27290           PUSHJ P,OUTDC1          ;PRINT DAY\r
40075         003232' 260240  003262' 27300           PUSHJ P,DATO2           ;PRINT -MONTH-\r
40076         003233' 200640  000000  27310           MOVE DOUT,0\r
40077         003234' 271640  000100  27320           ADDI DOUT,^D64          ;DOUT=YEAR\r
40078         003235' 334700  003731' 27330   OUTDC1: SKIPA DOUT+1,TWL        ;RADIX 10\r
40079                                 27340   ;*******************************************************************\r
40080                                 27350   ;ROUTINE TO CONVERT OCTAL TO ASCII\r
40081                                 27360   ;DOUT CONTAINS OCTAL VALUE ON ENTRY\r
40082 \r
40083         003236' 201700  000010  27380   OUTOCT: MOVEI DOUT+1,10         ;RADIX 8\r
40084         003237' 552700  000007  27390   PRNUMA: HRRZM DOUT+1,T4\r
40085         003240' 201200  000060  27400           MOVEI CHR,"0"\r
40086         003241' 315640  000016  27410           CAMGE DOUT,DOUT+1       ;PRINT AT LEAST 2 DIGITS\r
40087         003242' 260242  000000  27420           PUSHJ P,(T2)            ;PUT OR PUTCON\r
40088         003243' 231647  000000  27430   PRN:    IDIVI DOUT,(T4)         ;DIVIDE BY RADIX\r
40089         003244' 506705  000000  27440           HRLM DOUT+1,(P)         ;SAVE NO. FOR PRINT\r
40090         003245' 322640  003247' 27450           JUMPE DOUT,.+2          ;ENUF DIGITS?\r
40091         003246' 260240  003243' 27460           PUSHJ P,PRN             ;NO, GET MORE\r
40092         003247' 554205  000000  27470           HLRZ CHR,(P)            ;YES, GET LEFTMOST\r
40093         003250' 271200  000060  27480           ADDI CHR,60             ;CONVERT TO ASCII\r
40094         003251' 254002  000000  27490           JRST (T2)               ;PUT OR PUTCON\r
40095 \r
40096         003252' 201200  000040  27510   OUTDE4: MOVEI   CHR," "         ;SET UP FOR SPACES\r
40097         003253' 301640  001750  27520           CAIL    DOUT,^D1000     ;PRINT 4 CHAR.\r
40098         003254' 254000  003260' 27530           JRST    OUTDEC          ;AT LEAST 4 SEEN\r
40099         003255' 260240  000756' 27540           PUSHJ   P,PUT           ;OUTPUT ONE SPACE\r
40100         003256' 305640  000144  27550           CAIGE   DOUT,^D100      ;3 CHAR.?\r
40101         003257' 260240  000756' 27560           PUSHJ   P,PUT           ;NO,SO ANOTHER SPACE\r
40102         003260' 201100  000756' 27570   OUTDEC: MOVEI T2,PUT            ;PUT CHAR IN OUT BUF\r
40103         003261' 254000  003235' 27580           JRST OUTDC1\r
40104 \r
40105         003262' 201340  000005  27600   DATO2:  MOVEI T4,5\r
40106         003263' 200500  004153' 27610           MOVE T6,MNPT\r
40107         003264' 272040  000012  27620           ADDM 1,T6\r
40108         003265' 134200  000012  27630           ILDB CHR,T6\r
40109         003266' 260242  000000  27640           PUSHJ P,(T2)            ;PUT OR PUTCON\r
40110         003267' 367340  003265' 27650           SOJG T4,.-2\r
40111         003270' 263240  000000  27660           POPJ P,\r
40112 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 63\r
40113         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
40114 \r
40115                                 27680   ;READ DTA DIRECTORY AND INITIALIZE DIRST AND DIRST1\r
40116 \r
40117         003271' 260240  000426' 27700   DTCHECK:PUSHJ P,ININIT  ;INITIALIZE INPUT DEVICE\r
40118         003272'                 27710   DTCH2:\r
40119                                 27720   IFN WCH,<\r
40120                                 27730           USETI IN,1      ;GET DTA DIR>\r
40121                                 27740   IFE WCH,<\r
40122         003272' 074140  000144  27750           USETI IN,144    ;GET DTA DIR>\r
40123         003273' 260240  001616' 27760           PUSHJ P,INP     ;INPUT DIRECTORY\r
40124         003274' 070140  000000  27770           CLOSE   IN,\r
40125         003275' 260240  003333' 27780           PUSHJ   P,GETPPN        ; GET PPN OF DECTAPE\r
40126         003276' 260240  000426' 27790           PUSHJ   P,ININIT        ; REINITIALIZE INPUT DEVICE\r
40127                                 27800   IFN WCH,<\r
40128                                 27810   DTCH1:  MOVE T5,IBF\r
40129                                 27820           HRRZ T2,1(T5)\r
40130                                 27830           ADDI T5,1(T2)   ;GET ADD. OF FIRST ENTRY\r
40131                                 27840           MOVE 0,T5\r
40132                                 27850           SUBI 0,4>\r
40133                                 27860   IFE WCH,<\r
40134         003277' 550440  003742' 27870   DTCH1:  HRRZ T5,IBF     ;LOC. OF CURRENT BUF, 2ND WORD\r
40135         003300' 201011  000123  27880           MOVEI 0,123(T5) ;83 WORDS,7, FIVE-BIT BYTES\r
40136         003301' 271440  000001  27890           ADDI T5,1       ;COMPUTE ADD. OF DIR. START>\r
40137         003302' 202000  004012' 27900           MOVEM 0,DIRST   ;FIRST FILE NAME LOC\r
40138         003303' 202000  004013' 27910           MOVEM 0,DIRST1  ;TO RESTORE DIRST\r
40139         003304' 263240  000000  27920           POPJ P,\r
40140 \r
40141                                 27940   ;ROUTINE TO CHECK BRACKET COUNT/MATCHING\r
40142 \r
40143         003305' 403140  004025' 27960   OUTCHK: SETZB T3,TLBRKT ;COUNT <> ON THIS LINE, CLEAR THINGS\r
40144         003306' 200040  003723' 27970           MOVE T1,OPTRA   ;BYTE POINTER FOR READING OUT THE LINE\r
40145         003307' 316040  004020' 27980   OUTCH2: CAMN T1,OPTR    ;LINE DONE?\r
40146         003310' 254000  003320' 27990           JRST OUTCH3     ;YES, SO DECIDE WHETHER TO PRINT\r
40147         003311' 134100  000001  28000           ILDB T2,T1      ;GET CHAR\r
40148         003312' 306100  000074  28010           CAIN T2,"<"     ;LEFT BRACKET?\r
40149         003313' 350000  004025' 28020           AOS TLBRKT      ;YES, SO INCREMENT BRACKET COUNT\r
40150         003314' 306100  000076  28030           CAIN T2,">"     ;RIGHT BRACKET?\r
40151         003315' 371000  004025' 28040           SOSL TLBRKT     ;YES, SUBTRACT BRACKET COUNT, GONE NEG?\r
40152         003316' 254000  003307' 28050           JRST OUTCH2     ;NO, SO DO NEXT CHAR\r
40153         003317' 344140  003307' 28060           AOJA T3,OUTCH2  ;YES, SO FLAG COUNT GONE NEG.\r
40154 \r
40155         003320' 336100  004025' 28080   OUTCH3: SKIPN T2,TLBRKT ;BRACKET COUNT OFF THIS LINE?\r
40156         003321' 322140  001711' 28090           JUMPE T3,CPOPJ  ;NO, WENT NEG.?\r
40157         003322' 272100  004026' 28100           ADDM T2,TOTBRK  ;YES, SO ADD INTO CUMULATIVE COUNT\r
40158         003323' 201200  000055  28110           MOVEI CHR,"-"   ;PRINT MINUS FOR NEG TOTAL\r
40159         003324' 335000  004026' 28120           SKIPGE TOTBRK\r
40160         003325' 260240  000756' 28130           PUSHJ P,PUT\r
40161         003326' 214640  004026' 28140           MOVM DOUT,TOTBRK;PRINT MAGNITUDE OF TOTAL\r
40162         003327' 260240  003260' 28150           PUSHJ P,OUTDEC\r
40163         003330' 201200  000011  28160           MOVEI CHR,TAB   ;FOLLOW WITH TAB\r
40164         003331' 260240  000756' 28170           PUSHJ P,PUT\r
40165         003332' 254000  000711' 28180           JRST OUTCH1     ;AND PRINT THE LINE\r
40166 \r
40167         003333' 201440  000117  28200   GETPPN: MOVEI   T5,117  ; NON STD DUMP MODE\r
40168 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 63-1\r
40169         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
40170 \r
40171 U       003334' 202440  000000* 28210           MOVEM   T5,DTBLK\r
40172         003335' 200440  004637' 28220           MOVE    T5,DEVICE       ; GET INPUT DEVICE\r
40173 U       003336' 202440  000000* 28230           MOVEM   T5,DTDEV\r
40174 U       003337' 050340  003334* 28240           OPEN    DTDIR,DTBLK\r
40175         003340' 263240  000000  28250           POPJ    P,\r
40176         003341' 074340  000144  28260           USETI   DTDIR,144       ; READ BLOCK 100 AND\r
40177         003342' 200440  004713' 28270           MOVE    T5,[IOWD 227,DBUF]\r
40178         003343' 201500  000000  28280           MOVEI   T6,0\r
40179         003344' 066340  000011  28290           INPUT   DTDIR,T5        ; WORD 1 OF BLOCK 101.\r
40180         003345' 200440  004577' 28300           MOVE    T5,177+DBUF\r
40181         003346' 202440  003736' 28310           MOVEM   T5,DTAID\r
40182         003347' 200440  004600' 28320           MOVE    T5,200+DBUF\r
40183         003350' 202440  003737' 28330           MOVEM   T5,DIRPPN       ; SAVE PPN FOR LISTING\r
40184         003351' 071340  000000  28340           RELEASE DTDIR,\r
40185         003352' 263240  000000  28350           POPJ    P,\r
40186 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 64\r
40187         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
40188 \r
40189         003353' 612300  004672' 28370   FILTYP: TDNE FLAG,[XWD IFLG+IBFLG,BMOD]\r
40190         003354' 263240  000000  28380           POPJ P,                 ;BIN MODE DON'T CARE IF DMP, ETC\r
40191         003355' 606540  060400  28390           TRNN    AUXFLG,DSKIN!DTAIN!MTAIN        ;BINARY INPUT POSSIBLE?\r
40192         003356' 254000  003365' 28400           JRST    FIL11           ;NO\r
40193         003357' 606540  014200  28410           TRNN    AUXFLG,DSKOUT!DTAOUT!MTAOUT     ;BINARY OUTPUT?\r
40194         003360' 254000  003365' 28420           JRST    FIL11           ;NO\r
40195         003361' 616300  004701' 28430           TDNN    FLAG,[XWD PFLG,LINE!TBMOD!NSMOD!SQMOD!SPMOD]\r
40196         003362' 603540  000040  28440           TLNE    AUXFLG,CDRFLG   ;/E FROM DSK IS NOT BINARY\r
40197         003363' 254000  003365' 28450           JRST    FIL11           ;SO TURN OFF SBIN\r
40198         003364' 254000  003414' 28460           JRST    FIL3            ;FORCE BINARY MODE\r
40199         003365' 621540  000004  28470   FIL11:  TLZ AUXFLG,SBIN         ;IS\r
40200         003366' 554000  004053' 28480           HLRZ 0,ZRF+1            ; INPUT EXTENSION\r
40201         003367' 302000  445560  28490           CAIE 0,(SIXBIT /DMP/)   ;DMP?\r
40202         003370' 306000  634166  28500   IFE DISK30,<CAIN 0,(SIXBIT /SAV/)       ;SAV?>\r
40203                                 28510   IFN DISK30,<CAIN 0,(SIXBIT/SVE/)>\r
40204         003371' 254000  003414' 28520           JRST FIL3               ;YES\r
40205         003372' 302000  435056  28530           CAIE 0,(SIXBIT /CHN/)   ;CHN?\r
40206         003373' 306000  624554  28540           CAIN 0,(SIXBIT /REL/)   ;REL?\r
40207         003374' 254000  003414' 28550           JRST FIL3               ;YES\r
40208         003375' 302000  635062  28560           CAIE    0,(SIXBIT /SHR/)\r
40209         003376' 306000  504750  28570           CAIN    0,(SIXBIT /HGH/)\r
40210         003377' 254000  003414' 28580           JRST    FIL3\r
40211         003400' 302000  425156  28590           CAIE    0,'BIN' ; GENERAL BINARY EXTENSION?\r
40212         003401' 306000  545767  28600           CAIN    0,(SIXBIT /LOW/)\r
40213         003402' 254000  003414' 28610           JRST    FIL3\r
40214         003403' 606300  002000  28620           TRNN FLAG,XFLG          ;DO NORMAL PROCESSING ON ALL\r
40215         003404' 254000  003430' 28630           JRST FIL2               ;BUT DMP ETC FILES IF NOT /X\r
40216         003405' 607540  000040  28640           TLNN AUXFLG,CDRFLG\r
40217         003406' 612300  004701' 28650           TDNE FLAG,[XWD PFLG,LINE+TBMOD+NSMOD+SQMOD+SPMOD]\r
40218         003407' 263240  000000  28660           POPJ P,                 ;NO SIGNIFICANT SWITCHES\r
40219         003410' 515000  004400  28670   FIL1:   HRLZI 0,004400          ;FORCE 36-BIT.\r
40220         003411' 502000  003743' 28680           HLLM 0,IBF+1            ;INPUT BYTE POINTER\r
40221         003412' 502000  003746' 28690           HLLM 0,OBF+1            ;OUTPUT BYTE POINTER\r
40222         003413' 263240  000000  28700           POPJ P,                 ;CHANGE TO FORCED BINARY\r
40223         003414' 661540  000004  28710   FIL3:   TLO AUXFLG,SBIN         ;INPUT EXT = DMP,SAV,CHN,REL\r
40224         003415' 602300  002000  28720           TRNE FLAG,XFLG\r
40225         003416' 254000  003410' 28730           JRST FIL1\r
40226         003417' 667540  000400  28740           TLON AUXFLG,FRSTIN      ;NOT /X TEST FURTHER\r
40227         003420' 254000  003443' 28750           JRST FIL4               ;IS THIS FIRST SOURCE, YES\r
40228         003421' 663540  000200  28760           TLOE AUXFLG,RSDCFL      ;NOT FIRST, WAS PREVIOS FILE RSCD?\r
40229         003422' 254000  003445' 28770           JRST    FIL5            ;YES, NO CHANGE UNLESS DEVICE HAS CHANGED\r
40230         003423' 067100  000000  28780           OUTPUT OUT,             ;NO CHANGE TO 36-BIT\r
40231         003424' 200000  003747' 28790           MOVE 0,OBF+2            ;CURRENTLY 7-BIT I/O, MUST CHANGE TO 36-BIT\r
40232                                 28800                                   ;OUTPUT CURRENT BUFFER\r
40233         003425' 231000  000005  28810           IDIVI 0,5               ;DIVIDE OBF+2 BY 5 (CHAR. COUNT)\r
40234         003426' 202000  003747' 28820           MOVEM 0,OBF+2\r
40235         003427' 254000  003410' 28830           JRST FIL1\r
40236         003430' 663540  000400  28840   FIL2:   TLOE AUXFLG,FRSTIN      ;NOT A RSCD FILE\r
40237         003431' 627540  000200  28850           TLZN AUXFLG,RSDCFL      ;NO, WAS PREV. FILE RSCD?\r
40238         003432' 263240  000000  28860           POPJ P,                 ;NO, NO CHANGE\r
40239         003433' 067100  000000  28870           OUTPUT OUT,             ;YES, CHANGE 36-BIT TO 7-BIT\r
40240         003434' 201000  000005  28880           MOVEI 0,5\r
40241         003435' 222000  003747' 28890           IMULM 0,OBF+2\r
40242 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 64-1\r
40243         VJC/PMH/AK-DAG/DMN      8-JUL-70\r
40244 \r
40245         003436' 200000  003740' 28900           MOVE 0,SVIBF            ;RESTORE 7-BIT\r
40246         003437' 502000  003743' 28910           HLLM 0,IBF+1\r
40247         003440' 200000  003741' 28920           MOVE 0,SVOBF\r
40248         003441' 502000  003746' 28930           HLLM 0,OBF+1\r
40249         003442' 263240  000000  28940           POPJ P,\r
40250         003443' 661540  000200  28950   FIL4:   TLO AUXFLG,RSDCFL       ;SET REL,SAV,DMP,CHN FLAG\r
40251         003444' 254000  003410' 28960           JRST FIL1\r
40252         003445' 515000  004400  28970   FIL5:   HRLZI 0,004400          ;NEW DEVICE, SET 36-BIT INPUT\r
40253         003446' 602740  000010  28980           TRNE CALFLG,NEWDEV      ;SOURCE DEVICE CHANGED\r
40254         003447' 502000  003743' 28990           HLLM 0,IBF+1\r
40255         003450' 263240  000000  29000           POPJ P,                 ;OUTPUT ALREADY SET\r
40256 \r
40257 \r
40258 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 65\r
40259         BLOCK 0 CODE\r
40260 \r
40261                                 29040   SUBTTL BLOCK 0 CODE\r
40262 \r
40263                                 29060   IFE BLOC0,<\r
40264                                 29070   IFE WCH,<;THIS CODE COPIES BLOCK 0,1,2 ONLY. I/O MUST BE DECTAPE.>\r
40265                                 29080   IFN WCH,<;THIS CODE COPIES BLOCK 0 ONLY. I/O MUST BE DECTAPE.>\r
40266                                 29090   ;MODE SELECTED MUST BE BIT 100, 20 AND NOT DUMP MODE (134).\r
40267 \r
40268         003451' 640540  024000  29110   BLOCK0: TRC AUXFLG,DTAIN+DTAOUT\r
40269         003452' 642540  024000  29120           TRCE AUXFLG,DTAIN+DTAOUT;FORCE DTA I/O\r
40270         003453' 254000  002115' 29130           JRST ERR7A\r
40271         003454' 201000  000134  29140           MOVEI 0,134\r
40272         003455' 202000  004633' 29150           MOVEM 0,OMOD\r
40273         003456' 202000  004636' 29160           MOVEM 0,ININI1\r
40274         003457' 205000  003745' 29170           MOVSI 0,OBF\r
40275         003460' 202000  004635' 29180           MOVEM 0,ODEV+1\r
40276         003461' 201000  003742' 29190           MOVEI 0,IBF\r
40277         003462' 202000  004640' 29200           MOVEM 0,DEVICE+1\r
40278         003463' 050100  004633' 29210           OPEN OUT,OMOD\r
40279         003464' 254000  001767' 29220           JRST ERR1               ;UNAVAILABLE\r
40280         003465' 065100  000001  29230           OUTBUF  OUT,1\r
40281         003466' 067100  000000  29240           OUTPUT  OUT,\r
40282         003467' 050140  004636' 29250           OPEN IN,ININI1\r
40283         003470' 254000  001770' 29260           JRST ERR1A\r
40284         003471' 064140  000001  29270           INBUF IN,1\r
40285         003472' 403040  003735' 29280           SETZB T1,BL0CNT\r
40286         003473' 074141  000000  29290   BL4:    USETI IN,(T1)\r
40287         003474' 066140  000000  29300           INPUT IN,               ;READ\r
40288         003475' 062140  000010  29310           GETSTS IN,IOS\r
40289         003476' 606400  740000  29320           TRNN IOS,740000         ;ANY ERRORS\r
40290         003477' 254000  003515' 29330           JRST BL1                ;NO\r
40291         003500' 265440  000542' 29340           JSP T5,INICN2\r
40292         003501' 260240  001652' 29350           PUSHJ P,QUEST\r
40293         003502' 265040  002166' 29360           ERRPN2 </Input device />\r
40294         003503' 447356  072750\r
40295         003504' 203114  573322\r
40296         003505' 617124  000000\r
40297         003506' 260240  002201' 29370           PUSHJ P,P6BIT\r
40298         003507' 000000  004637' 29380                 DEVICE\r
40299         003510' 265040  002166' 29390           ERRPN2 </: />\r
40300         003511' 351000  000000\r
40301         003512' 200100  000013  29400           MOVE T2,AUXFLG          ;DECTAPE FOR ERROR MESSAGE\r
40302         003513' 405100  020000  29410           ANDI T2,DTAIN\r
40303         003514' 260240  001020' 29420           PUSHJ P,IOERR           ;PRINT ERROR TYPE\r
40304         003515' 514440  003743' 29430   BL1:    HRLZ T5,IBF+1\r
40305         003516' 540440  003746' 29440           HRR T5,OBF+1\r
40306         003517' 201351  000177  29450           MOVEI T4,177(T5)\r
40307         003520' 251447  000000  29460           BLT T5,(T4)             ;SHIFT DATA TO OUTPUT BUFFER\r
40308         003521' 075120  003735' 29470           USETO   OUT,@BL0CNT\r
40309         003522' 067100  000000  29480           OUTPUT OUT,             ;WRITE BLOCK\r
40310         003523' 260240  000764' 29490           PUSHJ P, OUTP1          ;CHECK ERRORS\r
40311                                 29500   IFE WCH,<\r
40312         003524' 350040  003735' 29510           AOS T1,BL0CNT\r
40313         003525' 305040  000003  29520           CAIGE T1,3\r
40314 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 65-1\r
40315         BLOCK 0 CODE\r
40316 \r
40317         003526' 254000  003473' 29530           JRST BL4>\r
40318         003527' 071100  000000  29540   BL3:    RELEASE OUT,            ;IF ANY, PDL IS RESET\r
40319         003530' 254000  000013' 29550           JRST PIP2>\r
40320 \r
40321                                 29570   IFN BLOC0,<\r
40322                                 29580   BLOCK0: ERRPNT  </?No block 0 copy!/>\r
40323                                 29590                   >\r
40324 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 66\r
40325         MAGTAPE ROUTINES\r
40326 \r
40327                                 29610   SUBTTL  MAGTAPE ROUTINES\r
40328 \r
40329                                 29630   ;TEST TO SEE IF MORE THAN ONE OF THE LOWEST EIGHT MTA FLAGS\r
40330                                 29640   ;HAVE BEEN SELECTED. IF SO ERROR. OTHERWISE, IMPLEMENT\r
40331                                 29650   ;REQUEST.  T1, T3, T6 SET AT ENTRY BY INLOOK OR OUTLOOK\r
40332                                 29660   ;TO EQUAL AUX/AUXOUT, AB/ABOUT,INIMTA/INOMTA\r
40333 \r
40334         003531' 550100  000001  29680   MT1:    HRRZ T2,T1              ;T1 CONTAINS REQUEST\r
40335         003532' 405102  777777  29690           ANDI T2,-1(T2)          ;KNOCK OFF RIGHT MOST 1\r
40336         003533' 602100  000377  29700           TRNE T2,377\r
40337         003534' 254000  003701' 29710           JRST MTR1               ;PRINT ERROR MESSAGE\r
40338 \r
40339         003535' 606040  000377  29730           TRNN T1,MTAFLG+MTBFLG+MTWFLG+MTTFLG+MTFFLG+MTUFLG+MTDFLG+MTPFLG\r
40340         003536' 254000  003562' 29740           JRST MTC1\r
40341         003537' 260252  000000  29750           PUSHJ P,(T6)            ;THERE IS A  REQUEST\r
40342                                 29760                                   ;GO TO INIMTA/INOMTA\r
40343 \r
40344                                 29780   ;PERFORM POSITIONING REQUESTS\r
40345         003540' 602040  000040  29790           TRNE T1,MTUFLG\r
40346         003541' 254000  003600' 29800           JRST UNLOAD\r
40347 \r
40348         003542' 602040  000010  29820           TRNE T1,MTWFLG\r
40349         003543' 254000  003602' 29830           JRST REWIND\r
40350 \r
40351         003544' 602040  000020  29850           TRNE T1,MTFFLG\r
40352         003545' 254000  003605' 29860           JRST MARKEF\r
40353 \r
40354         003546' 602040  000004  29880           TRNE T1,MTTFLG\r
40355         003547' 254000  003615' 29890           JRST SLEOT\r
40356 \r
40357         003550' 602040  000202  29910           TRNE T1,MTBFLG+MTPFLG   ;MULTIPLE REQUESTS ALLOWED\r
40358         003551' 254000  003617' 29920           JRST BSPF\r
40359 \r
40360         003552' 602040  000101  29940           TRNE T1,MTAFLG+MTDFLG   ;MULTIPLE REQUESTS ALLOWED\r
40361         003553' 254000  003653' 29950           JRST ADVF\r
40362 \r
40363 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 67\r
40364         MAGTAPE ROUTINES\r
40365 \r
40366                                 29980   ;T1=AUX,AUXOUT. T3=AB,ABOUT.  T6=INIMTA,INOMTA.\r
40367 \r
40368         003554' 071200  000000  30000   MTCONT: RELEAS TAPE,\r
40369         003555' 606040  000040  30010           TRNN T1,MTUFLG          ;UNLOAD?\r
40370         003556' 602740  000400  30020           TRNE CALFLG,NSWTCH      ;IS THERE AN INPUT DEVICE?\r
40371         003557' 302500  003666' 30030           CAIE T6,INOMTA          ;OUTPUT TAPE?\r
40372         003560' 263240  000000  30040           POPJ P,                 ;NO\r
40373         003561' 254000  000013' 30050           JRST PIP2               ;YES, END OF COMMAND\r
40374 \r
40375                                 30070   ;ROUTINE TO CHECK AND SET DENSITY FOR NEW DEVICE\r
40376 \r
40377         003562' 200340  000001  30090   MTC1:   MOVE T4,T1              ;GET AUX/AUXOUT\r
40378         003563' 405340  003400  30100           ANDI T4,MT2FLG+MT5FLG+MT8FLG\r
40379         003564' 405347  777777  30110           ANDI T4,-1(T4)          ;REMOVE RIGHT MOST 1\r
40380         003565' 326340  003701' 30120           JUMPN T4,MTR1           ;MORE THAN 1 REQ, ERROR\r
40381 \r
40382         003566' 201340  000001  30140           MOVEI T4,1              ;ASCII LINE STANDARD MODE\r
40383 \r
40384         003567' 602040  002000  30160           TRNE T1,MT2FLG\r
40385         003570' 660340  000200  30170           TRO T4,DENS2            ;SET 200 BPI\r
40386 \r
40387         003571' 602040  001000  30190           TRNE T1,MT5FLG\r
40388         003572' 660340  000400  30200           TRO T4,DENS5            ;SET 556 BPI\r
40389 \r
40390         003573' 602040  000400  30220           TRNE T1,MT8FLG\r
40391         003574' 660340  000600  30230           TRO T4,DENS8            ;SET 800 BPI\r
40392 \r
40393         003575' 602040  004000  30250           TRNE T1,MTEFLG\r
40394         003576' 660340  001000  30260           TRO T4,PARE             ;EVEN PARITY\r
40395 \r
40396         003577' 263240  000000  30280           POPJ P,\r
40397 \r
40398 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 68\r
40399         MAGTAPE ROUTINES\r
40400 \r
40401                                 30310   ;REWIND AND UNLOAD\r
40402 \r
40403         003600' 072200  000011  30330   UNLOAD: MTAPE TAPE,11\r
40404         003601' 254000  003554' 30340           JRST MTCONT\r
40405 \r
40406                                 30360   ;REWIND ONLY\r
40407 \r
40408         003602' 072200  000001  30380   REWIND: MTAPE TAPE,1\r
40409         003603' 072200  000000  30390   MTWAIT: WAIT TAPE,\r
40410         003604' 254000  003554' 30400           JRST MTCONT\r
40411 \r
40412 \r
40413 \r
40414 \r
40415                                 30450   ;MARK END OF FILE\r
40416 \r
40417         003605' 200440  004645' 30470   MARKEF: MOVE T5,MTANAM\r
40418         003606' 250440  004634' 30480           EXCH T5,ODEV\r
40419         003607' 072200  000003  30490           MTAPE TAPE,3\r
40420         003610' 062200  000010  30500           GETSTS TAPE,IOS\r
40421         003611' 260240  000772' 30510           PUSHJ P,OUTP3\r
40422         003612' 060210  000000  30520           SETSTS TAPE,(IOS)\r
40423         003613' 202440  004634' 30530           MOVEM T5,ODEV\r
40424         003614' 254000  003554' 30540           JRST MTCONT\r
40425 \r
40426 \r
40427 \r
40428 \r
40429                                 30590   ;SKIP TO LOGICAL END OF TAPE.\r
40430 \r
40431         003615' 072200  000010  30610   SLEOT:  MTAPE TAPE,10\r
40432         003616' 254000  003603' 30620           JRST MTWAIT\r
40433 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 69\r
40434         MAGTAPE ROUTINES\r
40435 \r
40436                                 30640   ;BACKSPACE MTA 1 FILE, T3=AB OR ABOUT\r
40437                                 30650   ;AB/ABOUT = INPUT/OUTPUT DEVICE\r
40438 \r
40439         003617' 550140  000003  30670   BSPF:   HRRZ T3,T3      ;T3=NO. OF FILES/RECORDS TO BACK\r
40440         003620' 072200  000000  30680   BSPF2:  WAIT TAPE,      ;WAIT\r
40441         003621' 062200  000010  30690           GETSTS TAPE,IOS\r
40442         003622' 606400  004000  30700           TRNN IOS,LDP    ;AT LOAD POINT?\r
40443         003623' 254000  003637' 30710           JRST BSPF3      ;NO LDP\r
40444         003624' 265040  002155' 30720           ERRPNT </?Load point before end of (MB) or (MP) request!/>\r
40445         003625' 376315  760710\r
40446         003626' 203415  764734\r
40447         003627' 721014  262714\r
40448         003630' 677454  520312\r
40449         003631' 673104  067714\r
40450         003632' 201211  541122\r
40451         003633' 203376  220120\r
40452         003634' 466405  120344\r
40453         003635' 627436  562746\r
40454         003636' 721020  000000\r
40455         003637' 201440  000007  30730   BSPF3:  MOVEI T5,7      ;BSPR\r
40456         003640' 606040  000200  30740           TRNN T1,MTPFLG  ;BSPR?\r
40457         003641' 201440  000017  30750           MOVEI T5,17     ;BSPF\r
40458         003642' 072211  000000  30760           MTAPE TAPE,(T5) ;BACKSPACE FILE/RECORD\r
40459         003643' 365140  003620' 30770           SOJGE T3,BSPF2  ;MORE FILES/RECORDS TO BSP?\r
40460                                 30780                           ;NO, END OF LOOP\r
40461         003644' 072200  000000  30790           WAIT TAPE,\r
40462         003645' 062200  000010  30800           GETSTS TAPE,IOS\r
40463         003646' 606040  000002  30810           TRNN T1,MTBFLG  ;BACKSPACE FILE?\r
40464         003647' 254000  003554' 30820           JRST MTCONT     ;NO\r
40465         003650' 606400  004000  30830           TRNN IOS,LDP    ;IF AT LOAD POINT\r
40466         003651' 072200  000016  30840           MTAPE TAPE,16   ;(MOVE FWD. OVER EOF)\r
40467         003652' 254000  003554' 30850           JRST MTCONT     ;DON'T SKIP A RECORD\r
40468 \r
40469 \r
40470 \r
40471                                 30890   ;ADVANCE MTA 1 FILE, T3=AB OR ABOUT\r
40472                                 30900   ;AB/ABOUT = INPUT/OUTPUT DEVICE\r
40473 \r
40474         003653' 554140  000003  30920   ADVF:   HLRZ T3,T3      ;T3=NO. FILES (OR REC) TO ADVANCE\r
40475         003654' 201440  000006  30930   ADVF2:  MOVEI T5,6      ;ADVR\r
40476         003655' 606040  000100  30940           TRNN T1,MTDFLG  ;ADVR ?\r
40477         003656' 201440  000016  30950           MOVEI T5,16     ;ADVF\r
40478         003657' 072211  000000  30960           MTAPE TAPE,(T5) ;ADVANCE FILE/RECORD\r
40479         003660' 367140  003654' 30970           SOJG T3,ADVF2   ;MORE FILES/RECORDS TO ADV?\r
40480                                 30980                           ;NO, END OF LOOP\r
40481         003661' 072200  000000  30990           WAIT TAPE,      ;WAIT...\r
40482         003662' 062200  000010  31000           GETSTS TAPE,IOS\r
40483         003663' 622400  020000  31010           TRZE IOS,EOFBIT\r
40484         003664' 060210  000000  31020           SETSTS TAPE,(IOS)       ;END OF FILE\r
40485         003665' 254000  003554' 31030           JRST MTCONT\r
40486 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 70\r
40487         MAGTAPE ROUTINES\r
40488 \r
40489                                 31050   ;ROUTINE TO INITIALIZE MAGTAPE FOR INPUT OR OUTPUT\r
40490 \r
40491         003666' 334100  004634' 31070   INOMTA: SKIPA T2,ODEV   ;INIT OUTPUT DEVICE\r
40492         003667' 200100  004637' 31080   INIMTA: MOVE T2,DEVICE  ;INIT INPUT DEVICE\r
40493         003670' 402000  004646' 31090           SETZM MTANAM+1\r
40494         003671' 202100  004645' 31100           MOVEM T2,MTANAM\r
40495         003672' 606740  000010  31110           TRNN CALFLG,NEWDEV\r
40496         003673' 254000  003676' 31120           JRST INMTA      ;SAME DEVICE\r
40497         003674' 260240  003562' 31130           PUSHJ P,MTC1    ;NEW DEVICE\r
40498         003675' 552340  004644' 31140           HRRZM   T4,INMTA1       ;SET MODE,DENSITY,PARITY\r
40499 \r
40500         003676' 050200  004644' 31160   INMTA:  OPEN TAPE,INMTA1\r
40501         003677' 254000  001771' 31170           JRST ERR1B\r
40502         003700' 263240  000000  31180           POPJ P,\r
40503 \r
40504                                 31200   ;ROUTINE TO PRINT ERROR MSG IF MORE THAN 1/8 FLAGS SET\r
40505 \r
40506         003701' 200340  004637' 31220   MTR1:   MOVE T4,DEVICE  ;TENTATIVELY SET I/DEV\r
40507 \r
40508         003702' 302500  003667' 31230           CAIE T6,INIMTA  ;INPUT DEVICE?\r
40509         003703' 200340  004634' 31240           MOVE T4,ODEV    ;NO, SET O/DEV\r
40510         003704' 265040  002155' 31250           ERRPNT </?Too many requests for />\r
40511         003705' 376515  767500\r
40512         003706' 667035  674500\r
40513         003707' 713136  172712\r
40514         003710' 717516  320314\r
40515         003711' 677444  000000\r
40516         003712' 260240  002201' 31260           PUSHJ P,P6BIT\r
40517         003713' 000000  000007  31270                   T4\r
40518         003714' 254000  000013' 31280           JRST    PIP2\r
40519 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 71\r
40520         CONSTANTS/STORAGE/VARIABLES\r
40521 \r
40522                                 31300           SUBTTL  CONSTANTS/STORAGE/VARIABLES\r
40523 \r
40524                                 31320   ;CONSTANTS\r
40525 \r
40526                                 31340   IFE WCH,<\r
40527         003715' 140600  004046' 31350   OKBD:   POINT 6,DTON+2,23       ;FOR NO. 1K BLOCKS\r
40528         003716' 140600  004054' 31360   OKB:    POINT 6,ZRF+2,23>\r
40529         003717' 001400  004054' 31370   DATE:   POINT 12,ZRF+2,35\r
40530         003720' 001400  004046' 31380   DATED:  POINT 12,DTON+2,35      ;CREATION DATE /X\r
40531         003721' 301406  030140  31390   ZRO:    ASCII /00000/\r
40532         003722' 010700  004376' 31400   OPTMAX: POINT 7,LBUFE-1,34\r
40533         003723' 000700  004173' 31410   OPTRA:  XWD 700,LBUF-1          ;INITIAL POINTER TO LINE BUFFER\r
40534         003724' 432150  643240  31420   K1:     432150643240            ;MAGIC ASCII INCREMENT BY 10\r
40535         003725' 375767  737576  31430   K3:     375767737576            ;CHARACTER MASK 077\r
40536         003726' 432150  643216  31440   K4:     432150643216            ;MAGIC ASCII INCREMENT BY 1\r
40537         003727' 616051  600000  31450   QPIP:   SIXBIT /QPIP/           ;DATA FOR Q SWITCH\r
40538         003730' 120000  000000  31460   STAR:   SIXBIT /*/              ;LOOK FOR *.* FILNAM.EXT\r
40539         003731' 000000  000012  31470   TWL:    OCT 12\r
40540         003732' 000001  000001  31480   PP11:   XWD 1,1\r
40541         003733' 000001  000003  31490   PP13:   XWD 1,3                 ; SANDERS SYS\r
40542         003734' 000000  000145  31500   UPROJ:  EXP     ^D101   ; SANDERS UNIVERSAL PROJECT\r
40543                                 31510   IFN FTDSK,<\r
40544                                 31520   PRPTL:  POINT 9,PROTS,8         ;PROTECTION FOR RENAME\r
40545                                 31530   PRPTD:  POINT 9,DTON+2,8\r
40546                                 31540   PRNM:   POINT 9,ZRF+2,8         ;PROT FOR /R\r
40547                                 31550   TIME:   POINT 11,ZRF+2,23       ;CREATE TIME /X\r
40548                                 31560   TIMED:  POINT 11,DTON+2,23      ;DEPOSIT CREATE TIME>\r
40549 \r
40550 \r
40551 \r
40552 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 72\r
40553         CONSTANTS/STORAGE/VARIABLES\r
40554 \r
40555                                 31610   ;PROGRAM STORAGE AREA\r
40556 \r
40557                                 31630   IFE BLOC0,<\r
40558         003735'                 31640   BL0CNT: BLOCK   1               ;COUNT>\r
40559         003736'                 31650   DTAID:  BLOCK 1 ; STORE DTA SERIAL NUMBER\r
40560         003737'                 31660   DIRPPN: BLOCK 1         ; STORE OWNERSHIP\r
40561         003740'                 31670   SVIBF:  BLOCK   1       ;SAVE INIT MODE (INPUT)\r
40562         003741'                 31680   SVOBF:  BLOCK   1       ;SAVE INIT MODE (OUTPUT)\r
40563         003742'                 31690   IBF:    BLOCK   3       ;INPUT BUFFER HEADER\r
40564         003745'                 31700   OBF:    BLOCK   3       ;OUTPUT BUFFER HEADER\r
40565         003750'                 31710   OBI:    BLOCK   3       ;OUTPUT BUFFER INPUT HEADER FOR DSK /Z\r
40566         003753'                 31720   TFI:    BLOCK   3       ;CONSOLE INPUT HEADER\r
40567         003756'                 31730   TFO:    BLOCK   3       ;CONSOLE OUTPUT HEADER\r
40568         003761'                 31740   SAVAC:  BLOCK   5       ;SAVE SOME ACS\r
40569         003766'                 31750   NAMTAB: BLOCK   24      ;FOR (XD) ON DSK OR RENAME\r
40570                                 31760   IFN FTDSK,<\r
40571                                 31770   LOCNAM: BLOCK   1       ;POINTER FOR NAMTAB>\r
40572         004012'                 31780   DIRST:  BLOCK   1       ;LOC. OF LAST DIR. FILE NAME REFERENCED\r
40573         004013'                 31790   DIRST1: BLOCK   1       ;SAVE INITIAL DIRST\r
40574         004014'                 31800   SQNUM:  BLOCK   1       ;CURRENT SEQUENCE NUMBER\r
40575         004015'                 31810   DTJBFF: BLOCK   1       ;VALUE OF JOBFF AFTER CONSOLE I/O BUFFERS\r
40576         004016'                 31820   SVJBFF: BLOCK   1       ;INITIAL VALUE OF JOBFF\r
40577         004017'                 31830   SVJBF1: BLOCK   1       ;VALUE OF JOBFF AFTER OUTBUF UUO\r
40578         004020'                 31840   OPTR:   BLOCK   1       ;CURRENT POINTER FOR LINE PRESCAN\r
40579         004021'                 31850   DTONSV: BLOCK   2       ;OUTPUT DIRECTORY ENTRY COPY\r
40580         004023'                 31860   SVPTR1: BLOCK   1       ;POINTER TO LAST PRINTING CHARACTER\r
40581         004024'                 31870   SVPTR2: BLOCK   1       ;POINTER TO LAST GENERATED TAB\r
40582         004025'                 31880   TLBRKT: BLOCK   1       ;TOTAL PARENS ON THIS LINE\r
40583         004026'                 31890   TOTBRK: BLOCK   1       ;TOTAL CUMULATIVE PARENS\r
40584         004027'                 31900   TABCT:  BLOCK   1       ;SPACES TO NEXT TAB STOP\r
40585         004030'                 31910   SPCT:   BLOCK   1       ;CONSECUTIVE SPACES COUNTER\r
40586         004031'                 31920   ABOUT:  BLOCK   1       ;AB FOR OUTPUT UNIT\r
40587         004032'                 31930   AUXOUT: BLOCK   1       ;AUX FOR OUTPUT UNIT\r
40588         004033'                 31940   PROTS:  BLOCK   1       ;SAVE PROTECTION\r
40589         004034'                 31950   ZCNT:   BLOCK   1       ;COUNT FOR DSK ZRO REQ.\r
40590         004035'                 31960   CDRCNT: BLOCK   1       ;COUNT CARD COLS.\r
40591         004036'                 31970   PTRPT:  BLOCK   1       ;STORE SEQ. NO. POINTER\r
40592         004037'                 31980   SYSPP:  BLOCK   1       ;PP OF DEVICE SYS\r
40593 \r
40594 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 73\r
40595         CONSTANTS/STORAGE/VARIABLES\r
40596 \r
40597                                 32010   ;THIS IS A BLOCK OF VARIABLE LOCATIONS, ZEROED AT THE START OF EACH\r
40598                                 32020   ;PIP RUN, I.E EACH TIME PIP TYPES *.\r
40599 \r
40600                                 32040   ;*****  DO NOT SPLIT THIS BLOCK *****\r
40601                                 32050   IFN FTDSK,<\r
40602                                 32060   RIBFIR: BLOCK   1       ;NUMBER OF WORDS IN LOOKUP\r
40603                                 32070   PPP:    BLOCK   1       ;PROJ-PROG FOR EXTENDED LOOKUP>\r
40604         004040'                 32080   FILNAM: BLOCK   1       ;FILE NAME FROM COMMAND SCANNER\r
40605         004041'                 32090   FILEX:  BLOCK   1       ;EXTENSION\r
40606         004042'                 32100   PR:     BLOCK   1       ;PROTECTION\r
40607         004043'                 32110   PP:     BLOCK   1       ;P-P NUMBER TYPED BY USER\r
40608                                 32120   IFN FTDSK,<BLOCK 20+RIBFIR-.>   ;TOTAL LENGTH OF LOOKUP BLOCK\r
40609                                 32130   ;*****  END OF BLOCK    *****\r
40610         004044'                 32140   DTON:   BLOCK   4       ;OUTPUT DIR. ENTRY\r
40611         004050'                 32150   DEVA:   BLOCK   1       ;SAVE INPUT DEV. NAME\r
40612         004051'                 32160   NO.:    BLOCK   1       ;GENERATE FILE NAMES\r
40613         004052'                 32170   ZRF:    BLOCK   4       ;LOOKUP FILE NAMES\r
40614         004056'                 32180   MTAREQ: BLOCK   1       ;STORE MTA REQUESTS\r
40615 \r
40616         004057'                 32200   COMEOF: BLOCK   1       ;EOF INDICATOR\r
40617         004060'                 32210   COMBUF: BLOCK   ^D41    ;COMMAND BUFFER. ALLOWS 205 CHARS.\r
40618         004131'                 32220   COMCNT: BLOCK   1       ;COMBUF CHARS COUNT\r
40619         004132'                 32230   COMPTS: BLOCK   1       ;POINTER FOR STORING/EXTRACTING CS\r
40620 \r
40621 \r
40622         004133'                 32260   AUX:    BLOCK   1       ;COPT AUXFLG (MTA)\r
40623                                 32270   IFN FTDSK,<\r
40624                                 32280   FNPPN:  BLOCK   1       ;RESERVE #P-P\r
40625                                 32290   FNPPNS: BLOCK   1       ;COPY FNPPN FOR LATEST NON-SYS #P-P>\r
40626         004134'                 32300   ESWTCH: BLOCK   1       ;-1 INDICATES END OF LINE\r
40627         004135'                 32310   XNAME:  BLOCK   1       ;-1 INDICATES SCAN OVERSHOOT WITH A NULL NAME\r
40628                                 32320                           ;0  INDICATES NO SCAN OVERSHOOT\r
40629                                 32330                           ;CONTAINS OVERSHOOT NAME IF NOT NULL\r
40630         004136'                 32340   AB:     BLOCK   1       ;MTA VALUE SWITCHES\r
40631                                 32350                           ;THIS IS THE END OF THE INIT. ZEROED BLOCK.\r
40632 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 74\r
40633         CONSTANTS/STORAGE/VARIABLES\r
40634 \r
40635         004137' 266254  167132  32370   MONTH:  ASCII /-Jan-/\r
40636         004140' 266154  561132  32380           ASCII /-Feb-/\r
40637         004141' 266334  171132  32390           ASCII /-Mar-/\r
40638         004142' 266036  071132  32400           ASCII /-Apr-/\r
40639         004143' 266334  174532  32410           ASCII /-May-/\r
40640         004144' 266256  567132  32420           ASCII /-Jun-/\r
40641         004145' 266256  566132  32430           ASCII /-Jul-/\r
40642         004146' 266036  563532  32440           ASCII /-Aug-/\r
40643         004147' 266474  570132  32450           ASCII /-Sep-/\r
40644         004150' 266374  372132  32460           ASCII /-Oct-/\r
40645         004151' 266355  773132  32470           ASCII /-Nov-/\r
40646         004152' 266114  561532  32480           ASCII /-Dec-/\r
40647 \r
40648         004153' 440700  004137' 32500   MNPT:   POINT 7,MONTH\r
40649 \r
40650         004154'                 32520   PDL:   BLOCK 20         ;PUSHDOWN LIST\r
40651 \r
40652         004174'                 32540   LBUF:  BLOCK 204        ;LINE BUFFER. ALLOW FOR FORTRAN DATA\r
40653                         004377' 32550   LBUFE==.-1\r
40654 \r
40655         004400'                 32570   DBUF:  BLOCK 204        ;DIRECTORY BUFFER\r
40656         004604'                 32580           BLOCK   27      ; ALLOW ENOUGH FOR DTA PROT.\r
40657 \r
40658         004633'                 32600   OMOD:   BLOCK 1         ;OUTPUT DEVICE MODE, STATUS\r
40659         004634'                 32610   ODEV:   BLOCK 2         ;OUTPUT DEVICE NAME\r
40660                                 32620                           ;BUFFER HEADER(S) LOC\r
40661 \r
40662         004636'                 32640   ININI1: BLOCK 1         ;INPUT DEVICE\r
40663         004637'                 32650   DEVICE: BLOCK 2\r
40664 \r
40665 \r
40666         004641'                 32680   DEVERR: BLOCK 1\r
40667         004642'                 32690   DERR2:  BLOCK 2\r
40668 \r
40669         004644'                 32710   INMTA1: BLOCK 1\r
40670         004645'                 32720   MTANAM: BLOCK 2\r
40671         004647'                 32730   MATCH:  BLOCK   2       ;NAME AND EXT FOR /L OR (RX)\r
40672         004651'                 32740   RENSN:  BLOCK   1       ;-1 IF RENAME MESSAGE SEEN\r
40673 \r
40674 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 75\r
40675         RIM LOADER\r
40676 \r
40677                                 32770   SUBTTL  RIM LOADER\r
40678                                 32780   IFE RIMSW,<\r
40679         004652' 265040  002155' 32790   RIMTB:  ERRPNT  <Z? /Y switch option not available this assembly!Z>\r
40680         004653' 375005  754500\r
40681         004654' 717575  172306\r
40682         004655' 641015  770350\r
40683         004656' 647375  620334\r
40684         004657' 677504  060754\r
40685         004660' 607235  460704\r
40686         004661' 663124  072320\r
40687         004662' 647464  060746\r
40688         004663' 717135  561330\r
40689         004664' 745020  000000\r
40690                                 32800   XLIST>\r
40691                                 35140   LIST\r
40692 \r
40693                                 35160   IFE FTDSK,<     \r
40694         004665'                 35170           VAR\r
40695         004665'                 35180   LOWTOP:\r
40696                         000000' 35190           END     PIP1>\r
40697         004665' 000000' 000001'\r
40698         004666' 004040' 004041'\r
40699         004667' 004040' 004044'\r
40700         004670' 004044' 004647'\r
40701         004671' 003745' 003742'\r
40702         004672' 000500  000002\r
40703         004673' 004174' 004175'\r
40704         004674' 000001  003761'\r
40705         004675' 000000  000010\r
40706         004676' 350700  001420'\r
40707         004677' 440700  004014'\r
40708         004700' 440600  004044'\r
40709         004701' 000004  001245\r
40710         004702' 000504  001247\r
40711         004703' 220600  004021'\r
40712         004704' 250502  000017\r
40713         004705' 250511  000016\r
40714         004706' 440700  000000*\r
40715         004707' 440600  003736'\r
40716         004710' 440600  003221'\r
40717         004711' 250500  004416'\r
40718         004712' 331101  004600'\r
40719         004713' 777551  004377'\r
40720 \r
40721 DTBLK   UNASSIGNED, DEFINED AS IF EXTERNAL \r
40722 DTDEV   UNASSIGNED, DEFINED AS IF EXTERNAL \r
40723 HEDL1   UNASSIGNED, DEFINED AS IF EXTERNAL \r
40724 PROTO   UNASSIGNED, DEFINED AS IF EXTERNAL \r
40725 ?5 ERRORS DETECTED\r
40726 \r
40727 PROGRAM BREAK IS 004714\r
40728 \r
40729 9K CORE USED\r
40730 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 81\r
40731         SYMBOL TABLE\r
40732 \r
40733 PSCAN1          001113  \r
40734 AB              004136' \r
40735 ABCHK           000466' \r
40736 ABOUT           004031' \r
40737 ADVF            003653' \r
40738 ADVF2           003654' \r
40739 ALLCLF          000037  SPD\r
40740 ALT175          000175  SPD\r
40741 ALT176          000176  SPD\r
40742 ALTMOD          000033  SPD\r
40743 ASTFLG          000040  SPD\r
40744 AUX             004133' \r
40745 AUXFLG          000013  \r
40746 AUXOUT          004032' \r
40747 BIGBLK          040000  SPD\r
40748 BL0CNT          003735' \r
40749 BL1             003515' \r
40750 BL3             003527' \r
40751 BL4             003473' \r
40752 BLKIN           000006  SPD\r
40753 BLOC0           000000  SPD\r
40754 BLOCK0          003451' \r
40755 BMOD            000002  SPD\r
40756 BSPF            003617' \r
40757 BSPF2           003620' \r
40758 BSPF3           003637' \r
40759 CAL5            002315' \r
40760 CAL6            002317' \r
40761 CALFLG          000017  \r
40762 CDRBIT          100000  SPD\r
40763 CDRCNT          004035' \r
40764 CDRFLG          000040  SPD\r
40765 CDRIN           000100  SPD\r
40766 CHECK           002152' \r
40767 CHECK1          002132' \r
40768 CHECK2          002135' \r
40769 CHKFLG          000040  SPD\r
40770 CHR             000004  \r
40771 CLRBUF          000553' \r
40772 COLON           000072  SPD\r
40773 COMASK          000044' \r
40774 COMBUF          004060' \r
40775 COMCNT          004131' \r
40776 COMEOF          004057' \r
40777 COMERR          001135' \r
40778 COMMA           000054  SPD\r
40779 COMPRO          000056' \r
40780 COMPRP          000056' \r
40781 COMPTR          000055' \r
40782 COMPTS          004132' \r
40783 COMSTO          000037' \r
40784 CON             000001  SPD\r
40785 COPY1           002241' \r
40786 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 81-1\r
40787         SYMBOL TABLE\r
40788 \r
40789 COPY1A          002225' \r
40790 COPY2A          002311' \r
40791 COPY2B          002313' \r
40792 COPY3           002323' \r
40793 COPY3B          002321' \r
40794 COPY4           002305' \r
40795 COPY5           002300' \r
40796 COPY6           002252' \r
40797 COPY6A          002250' \r
40798 COPY6B          002254' \r
40799 COPY6C          002266' \r
40800 CORE    047000  000011  \r
40801 CPOPJ           001711' \r
40802 CPOPJ1          001707' \r
40803 CPOPJZ          001710' \r
40804 CR              000015  SPD\r
40805 CRLF            003205' \r
40806 CZ              000032  SPD\r
40807 DATE            003717' \r
40808 DATE    047000  000014  \r
40809 DATED           003720' \r
40810 DATO2           003262' \r
40811 DATOUT          003224' \r
40812 DBUF            004400' \r
40813 DEL             000177  SPD\r
40814 DELE1           002443' \r
40815 DELE2           002504' \r
40816 DELE3           002466' \r
40817 DELE5           002513' \r
40818 DENS2           000200  SPD\r
40819 DENS5           000400  SPD\r
40820 DENS8           000600  SPD\r
40821 DERR2           004642' \r
40822 DERR2A          001166' \r
40823 DERR2B          001165' \r
40824 DESCR1          000464' \r
40825 DESCRP          000451' \r
40826 DEV             000100  SPD\r
40827 DEVA            004050' \r
40828 DEVCHR  047000  000004  \r
40829 DEVER           000526' \r
40830 DEVER1          000525' \r
40831 DEVER2          000525' \r
40832 DEVERR          004641' \r
40833 DEVICE          004637' \r
40834 DEVPPN  047000  000055  \r
40835 DEVTST          000506' \r
40836 DFLG            000010  SPD\r
40837 DIR             000005  SPD\r
40838 DIRPPN          003737' \r
40839 DIRST           004012' \r
40840 DIRST1          004013' \r
40841 DISK30          000000  SPD\r
40842 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 81-2\r
40843         SYMBOL TABLE\r
40844 \r
40845 DISPTA          001436' \r
40846 DISPTB          001420' \r
40847 DOUT            000015  \r
40848 DOUT1           000016  \r
40849 DSKBIT          200000  SPD\r
40850 DSKCHR  047000  000045  \r
40851 DSKIN           040000  SPD\r
40852 DSKOUT          010000  SPD\r
40853 DTABIT          000004  SPD\r
40854 DTADI1          002702' \r
40855 DTADIR          002701' \r
40856 DTADR           002460' \r
40857 DTAID           003736' \r
40858 DTAIN           020000  SPD\r
40859 DTALS1          003043' \r
40860 DTALS2          003050' \r
40861 DTALS3          003052' \r
40862 DTALS4          003055' \r
40863 DTALST          003023' \r
40864 DTAOUT          004000  SPD\r
40865 DTBLK           003337' UXT\r
40866 DTCH1           003277' \r
40867 DTCH2           003272' \r
40868 DTCHEC          003271' \r
40869 DTCLR           002212' \r
40870 DTCOPY          002224' \r
40871 DTD1            002456' \r
40872 DTD5            002544' \r
40873 DTD6            002543' \r
40874 DTDELE          002432' \r
40875 DTDEV           003336' UXT\r
40876 DTDIR           000007  SPD\r
40877 DTJBFF          004015' \r
40878 DTON            004044' \r
40879 DTONSV          004021' \r
40880 DTPDIR          003017' \r
40881 DTRNAM          002522' \r
40882 DTRNM1          002536' \r
40883 DVSWTH          000200  SPD\r
40884 E10A            002053' \r
40885 E10B            001752' \r
40886 EOFBIT          020000  SPD\r
40887 EOTBIT          002000  SPD\r
40888 ERR1            001767' \r
40889 ERR10           001751' \r
40890 ERR1A           001770' \r
40891 ERR1B           001771' \r
40892 ERR2            002076' \r
40893 ERR2A           002107' \r
40894 ERR3            002003' \r
40895 ERR3A           002005' \r
40896 ERR3AA          002007' \r
40897 ERR4            002024' \r
40898 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 81-3\r
40899         SYMBOL TABLE\r
40900 \r
40901 ERR4A           002033' \r
40902 ERR4B           002033' \r
40903 ERR5            002066' \r
40904 ERR5A           002060' \r
40905 ERR6            002040' \r
40906 ERR6A           002040' \r
40907 ERR6B           002045' \r
40908 ERR7A           002115' \r
40909 ERR8            002122' \r
40910 ERR9            001762' \r
40911 ESQ             040000  SPD\r
40912 ESWTCH          004134' \r
40913 EXIT    047000  000012  \r
40914 FF              000014  SPD\r
40915 FFLG            000020  SPD\r
40916 FIL1            003410' \r
40917 FIL11           003365' \r
40918 FIL2            003430' \r
40919 FIL3            003414' \r
40920 FIL4            003443' \r
40921 FIL5            003445' \r
40922 FILEX           004041' \r
40923 FILNAM          004040' \r
40924 FILTYP          003353' \r
40925 FLAG            000006  \r
40926 FN.EX           001146' \r
40927 FNEX            000001  SPD\r
40928 FNSET           002746' \r
40929 FNSET1          002762' \r
40930 FRSTIN          000400  SPD\r
40931 FTDSK           000000  SPD\r
40932 GET             001462' \r
40933 GET1            001557' \r
40934 GET1A           001566' \r
40935 GET2            001532' \r
40936 GET4            001553' \r
40937 GET5            001521' \r
40938 GET7            001666' \r
40939 GET7B           001712' \r
40940 GET7C           001673' \r
40941 GETA2           001727' \r
40942 GETA3           001717' \r
40943 GETA5           001724' \r
40944 GETA5A          001747' \r
40945 GETA7           001735' \r
40946 GETBUF          001404' \r
40947 GETCOM          001175' \r
40948 GETDEC          001236' \r
40949 GETEN2          001415' \r
40950 GETN1           001240' \r
40951 GETN2           001306' \r
40952 GETNUD          001305' \r
40953 GETNUM          001237' \r
40954 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 81-4\r
40955         SYMBOL TABLE\r
40956 \r
40957 GETOCT          001235' \r
40958 GETPC1          001506' \r
40959 GETPC2          001544' \r
40960 GETPC3          001542' \r
40961 GETPC4          001476' \r
40962 GETPPN          003333' \r
40963 GETPPN  047000  000024  \r
40964 GETT10          001206' \r
40965 GETT11          001217' \r
40966 GETT2           001371' \r
40967 GETT3           001252' \r
40968 GETT3A          001276' \r
40969 GETT3B          001274' \r
40970 GETT4           001372' \r
40971 GETT5           001320' \r
40972 GETT5A          001321' \r
40973 GETT6           001300' \r
40974 GETT7           001327' \r
40975 GETT8           001335' \r
40976 GETT9           001223' \r
40977 GETTA           001352' \r
40978 GETTAB  047000  000041  \r
40979 GETTIN          001365' \r
40980 GETUPJ          001232' \r
40981 GFLG            000200  SPD\r
40982 HEDL1           004706' UXT\r
40983 HPAGE           000020  SPD\r
40984 IBF             003742' \r
40985 IBFLG           000400  SPD\r
40986 IFLG            000100  SPD\r
40987 IN              000003  SPD\r
40988 INBIT           000002  SPD\r
40989 INERR           001620' \r
40990 INFO            002711' \r
40991 INFO1           002730' \r
40992 INFO2           002735' \r
40993 INFO3           002743' \r
40994 INFOFL          000100  SPD\r
40995 INHIB           000001  SPD\r
40996 INICN1          000541' \r
40997 INICN2          000542' \r
40998 INICON          001410' \r
40999 INIMTA          003667' \r
41000 ININI1          004636' \r
41001 ININIT          000426' \r
41002 INLOOK          000204' \r
41003 INLUK1          000217' \r
41004 INMTA           003676' \r
41005 INMTA1          004644' \r
41006 INOMTA          003666' \r
41007 INP             001616' \r
41008 IOERR           001020' \r
41009 IOERRG          001114' \r
41010 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 81-5\r
41011         SYMBOL TABLE\r
41012 \r
41013 IOERRN          001107' \r
41014 IOS             000010  \r
41015 JFLG            001000  SPD\r
41016 JOBFF           000547' EXT\r
41017 JOBREL          000437' EXT\r
41018 JOBSA           000007' EXT\r
41019 JOBSTR  047000  000047  \r
41020 K               000000  SPD\r
41021 K1              003724' \r
41022 K3              003725' \r
41023 K4              003726' \r
41024 LA              000137  SPD\r
41025 LBUF            004174' \r
41026 LBUFE           004377' SPD\r
41027 LDP             004000  SPD\r
41028 LF              000012  SPD\r
41029 LFLG            000020  SPD\r
41030 LINE            000001  SPD\r
41031 LISTTY          002000  SPD\r
41032 LOOK            002566' \r
41033 LOOK01          002570' \r
41034 LOOK1           002655' \r
41035 LOOK2           002623' \r
41036 LOOK3           002630' \r
41037 LOOK4           002635' \r
41038 LOOK5           002635' \r
41039 LOOK6           002572' \r
41040 LOOK6A          002614' \r
41041 LOOK6C          002616' \r
41042 LOOK6D          002620' \r
41043 LOOK7A          002640' \r
41044 LOOK7B          002604' \r
41045 LOOK7C          002650' \r
41046 LOOK8           002607' \r
41047 LOOKA           002767' \r
41048 LOOKB           003006' \r
41049 LOOKC           003014' \r
41050 LOOKF           003002' \r
41051 LOW             000000' \r
41052 LOWTOP          004665' \r
41053 LPTBIT          040000  SPD\r
41054 LPTOUT          000010  SPD\r
41055 M1              000140' \r
41056 M2              000132' \r
41057 M3              000107' \r
41058 M3A             000111' \r
41059 M4              000154' \r
41060 M5              000173' \r
41061 MAIN1           000411' \r
41062 MAIN2           000421' \r
41063 MAINA1          000031' \r
41064 MAINA2          000275' \r
41065 MAINA3          000301' \r
41066 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 81-6\r
41067         SYMBOL TABLE\r
41068 \r
41069 MAINA4          000307' \r
41070 MAINA5          000323' \r
41071 MAINB           000415' \r
41072 MAINC           000073' \r
41073 MARKEF          003605' \r
41074 MATCH           004647' \r
41075 MATEX           000002  SPD\r
41076 MATFN           000004  SPD\r
41077 MNPT            004153' \r
41078 MONTH           004137' \r
41079 MORCOR          000262' \r
41080 MPC2            002350' \r
41081 MSTIME  047000  000023  \r
41082 MT1             003531' \r
41083 MT2FLG          002000  SPD\r
41084 MT5FLG          001000  SPD\r
41085 MT8FLG          000400  SPD\r
41086 MTABIT          000020  SPD\r
41087 MTAFLG          000001  SPD\r
41088 MTAIN           000400  SPD\r
41089 MTANAM          004645' \r
41090 MTAOUT          000200  SPD\r
41091 MTAREQ          004056' \r
41092 MTBFLG          000002  SPD\r
41093 MTC1            003562' \r
41094 MTCONT          003554' \r
41095 MTDFLG          000100  SPD\r
41096 MTEFLG          004000  SPD\r
41097 MTFFLG          000020  SPD\r
41098 MTFLG           200000  SPD\r
41099 MTPFLG          000200  SPD\r
41100 MTPTC1          002362' \r
41101 MTPTCR          002337' \r
41102 MTR1            003701' \r
41103 MTTFLG          000004  SPD\r
41104 MTUFLG          000040  SPD\r
41105 MTWAIT          003603' \r
41106 MTWFLG          000010  SPD\r
41107 NAME            000557' \r
41108 NAMTAB          003766' \r
41109 NEWDEV          000010  SPD\r
41110 NEWFIL          000020  SPD\r
41111 NEWPP           000020  SPD\r
41112 NM1             000566' \r
41113 NM10            000654' \r
41114 NM11            000661' \r
41115 NM12            000664' \r
41116 NM13            000666' \r
41117 NM14            000670' \r
41118 NM15            000672' \r
41119 NM16            000700' \r
41120 NM2             000567' \r
41121 NM3             000571' \r
41122 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 81-7\r
41123         SYMBOL TABLE\r
41124 \r
41125 NM4             000576' \r
41126 NM4A            000602' \r
41127 NM5             000606' \r
41128 NM5A            000613' \r
41129 NM5B            000673' \r
41130 NM6             000633' \r
41131 NM7             000640' \r
41132 NM8             000643' \r
41133 NM9             000646' \r
41134 NO.             004051' \r
41135 NOMORE          000020  SPD\r
41136 NSMOD           000040  SPD\r
41137 NSPROT          000002  SPD\r
41138 NSWTCH          000400  SPD\r
41139 OBF             003745' \r
41140 OBI             003750' \r
41141 ODEV            004634' \r
41142 OFLG            000001  SPD\r
41143 OKB             003716' \r
41144 OKBD            003715' \r
41145 OKBLK0          002422' \r
41146 OKBLKS          002412' \r
41147 OMOD            004633' \r
41148 OMOD1           000251' \r
41149 OMODE           000223' \r
41150 OMODER          000267' \r
41151 ONEOUT          000040  SPD\r
41152 OPTMAX          003722' \r
41153 OPTR            004020' \r
41154 OPTRA           003723' \r
41155 OSFLG           400000  SPD\r
41156 OUT             000002  SPD\r
41157 OUTBIT          000001  SPD\r
41158 OUTCH1          000711' \r
41159 OUTCH2          003307' \r
41160 OUTCH3          003320' \r
41161 OUTCHK          003305' \r
41162 OUTDC1          003235' \r
41163 OUTDE4          003252' \r
41164 OUTDEC          003260' \r
41165 OUTLB1          000712' \r
41166 OUTLB2          000745' \r
41167 OUTLB3          000754' \r
41168 OUTLBA          000717' \r
41169 OUTLBF          000707' \r
41170 OUTLOO          000200' \r
41171 OUTOCT          003236' \r
41172 OUTP            000762' \r
41173 OUTP1           000764' \r
41174 OUTP3           000772' \r
41175 OUTP4           000770' \r
41176 P               000005  \r
41177 P1              000010' \r
41178 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 81-8\r
41179         SYMBOL TABLE\r
41180 \r
41181 P6BIT           002201' \r
41182 P6BIT1          002203' \r
41183 P6BIT2          002207' \r
41184 PARE            001000  SPD\r
41185 PCHTAB          001546' \r
41186 PCONV           000010  SPD\r
41187 PDIR1           003101' \r
41188 PDIR1B          003070' \r
41189 PDIR2           003211' \r
41190 PDIR21          003220' \r
41191 PDIR2A          003213' \r
41192 PDIR3           003141' \r
41193 PDIR3A          003177' \r
41194 PDIR3B          003174' \r
41195 PDIR4           003107' \r
41196 PDIR4A          003130' \r
41197 PDIR4B          003131' \r
41198 PDIR6           003200' \r
41199 PDIR7           003221' \r
41200 PDIR8           003075' \r
41201 PDL             004154' \r
41202 PERIOD          000056  SPD\r
41203 PFLG            000004  SPD\r
41204 PICUP           002662' \r
41205 PICUP2          002662' \r
41206 PICUP4          002665' \r
41207 PIP             000012' \r
41208 PIP1            000000' \r
41209 PIP1            000000  \r
41210 PIP2            000013' \r
41211 PIP2A           000013' \r
41212 PIP2B           000023' \r
41213 PJOB    047000  000030  \r
41214 PP              004043' \r
41215 PP11            003732' \r
41216 PP13            003733' \r
41217 PPTIN           200000  SPD\r
41218 PPTOUT          400000  SPD\r
41219 PR              004042' \r
41220 PRECOP          002220' \r
41221 PRETXT          002155' \r
41222 PRN             003243' \r
41223 PRNUMA          003237' \r
41224 PROTK           000476' \r
41225 PROTK1          000504' \r
41226 PROTO           003173' UXT\r
41227 PROTS           004033' \r
41228 PSCAN           000343' \r
41229 PSCAN1          000376' \r
41230 PSCAN2          000352' \r
41231 PSCAN3          000351' \r
41232 PSCAN4          000374' \r
41233 PSCAN5          000407' \r
41234 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 81-9\r
41235         SYMBOL TABLE\r
41236 \r
41237 PSCAN6          000404' \r
41238 PSCANA          000333' \r
41239 PSCANB          000326' \r
41240 PTEXT           002155' \r
41241 PTEXT1          002167' \r
41242 PTEXT2          002166' \r
41243 PTPBIT          000400  SPD\r
41244 PTRBIT          000200  SPD\r
41245 PTRPT           004036' \r
41246 PUT             000756' \r
41247 PUTCON          002175' \r
41248 QFLG            000001  SPD\r
41249 QPIP            003727' \r
41250 QUEST           001652' \r
41251 QUEST2          001662' \r
41252 RBSIZ           000005  SPD\r
41253 READ1           002000  SPD\r
41254 REDFLG          000001  SPD\r
41255 RENAME          002553' \r
41256 RENSN           004651' \r
41257 RESET   047000  000000  \r
41258 REWIND          003602' \r
41259 RFLG            000100  SPD\r
41260 RIBSTS          000017  SPD\r
41261 RIMFLG          000002  SPD\r
41262 RIMSW           000000  SPD\r
41263 RIMTB           004652' \r
41264 RSDCFL          000200  SPD\r
41265 RUN     047000  000035  \r
41266 RXFLG           020000  SPD\r
41267 SAVAC           003761' \r
41268 SBIN            000004  SPD\r
41269 SLEOT           003615' \r
41270 SNI             100000  SPD\r
41271 SPACE           000040  SPD\r
41272 SPCT            004030' \r
41273 SPMOD           001000  SPD\r
41274 SPOK            020000  SPD\r
41275 SQMOD           000200  SPD\r
41276 SQNUM           004014' \r
41277 SR2             002371' \r
41278 SSWTCH          001000  SPD\r
41279 STAR            003730' \r
41280 STS             000400  SPD\r
41281 SUS             010000  SPD\r
41282 SVER            000005  SPD\r
41283 SVIBF           003740' \r
41284 SVJBF1          004017' \r
41285 SVJBFF          004016' \r
41286 SVOBF           003741' \r
41287 SVPTR1          004023' \r
41288 SVPTR2          004024' \r
41289 SYSFLG          000002  SPD\r
41290 \r\fPIP V.030 MOD SANDERS/DBP 19-AUG-71                 PAGE 81-10\r
41291         SYMBOL TABLE\r
41292 \r
41293 SYSLST          000004  SPD\r
41294 SYSPP           004037' \r
41295 T1              000001  \r
41296 T2              000002  \r
41297 T3              000003  \r
41298 T4              000007  \r
41299 T5              000011  \r
41300 T6              000012  \r
41301 T7              000014  \r
41302 TAB             000011  SPD\r
41303 TABCT           004027' \r
41304 TABOUT          000755' \r
41305 TABSP           000010  SPD\r
41306 TAPE            000004  SPD\r
41307 TBMOD           000004  SPD\r
41308 TFI             003753' \r
41309 TFO             003756' \r
41310 TLBRKT          004025' \r
41311 TMPCOR  047000  000044  \r
41312 TMPI            004000  SPD\r
41313 TMPO            010000  SPD\r
41314 TOTBRK          004026' \r
41315 TTYBIT          000010  SPD\r
41316 TTYIN           001000  SPD\r
41317 TTYOUT          100000  SPD\r
41318 TTYZ            002376' \r
41319 TWL             003731' \r
41320 TXTA            001062' \r
41321 TXTB            001066' \r
41322 TXTC            001074' \r
41323 TXTC1           001100' \r
41324 TXTD            001042' \r
41325 TXTD1           001047' \r
41326 TXTD2           001055' \r
41327 UNLOAD          003600' \r
41328 UPROJ           003734' \r
41329 UTPCLR  047000  000013  \r
41330 VPIP            000030  SPD\r
41331 WAIT    072000  000000  \r
41332 WCH             000000  SPD\r
41333 WRTLOK          400000  SPD\r
41334 XFLG            002000  SPD\r
41335 XNAME           004135' \r
41336 XOFF            000023  SPD\r
41337 XON             000021  SPD\r
41338 XSS             002230' \r
41339 ZCNT            004034' \r
41340 ZFLG            004000  SPD\r
41341 ZRF             004052' \r
41342 ZRO             003721' \r
41343 \fEEEEEEEEEEEEEEE      DDDDDDDDDDDD            IIIIIIIII         TTTTTTTTTTTTTTT         OOOOOOOOO         RRRRRRRRRRRR   \r
41344 EEEEEEEEEEEEEEE      DDDDDDDDDDDD            IIIIIIIII         TTTTTTTTTTTTTTT         OOOOOOOOO         RRRRRRRRRRRR   \r
41345 EEEEEEEEEEEEEEE      DDDDDDDDDDDD            IIIIIIIII         TTTTTTTTTTTTTTT         OOOOOOOOO         RRRRRRRRRRRR   \r
41346 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR         RRR\r
41347 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR         RRR\r
41348 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR         RRR\r
41349 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR         RRR\r
41350 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR         RRR\r
41351 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR         RRR\r
41352 EEEEEEEEEEEE         DDD         DDD            III                  TTT            OOO         OOO      RRRRRRRRRRRR   \r
41353 EEEEEEEEEEEE         DDD         DDD            III                  TTT            OOO         OOO      RRRRRRRRRRRR   \r
41354 EEEEEEEEEEEE         DDD         DDD            III                  TTT            OOO         OOO      RRRRRRRRRRRR   \r
41355 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR   RRR      \r
41356 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR   RRR      \r
41357 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR   RRR      \r
41358 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR      RRR   \r
41359 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR      RRR   \r
41360 EEE                  DDD         DDD            III                  TTT            OOO         OOO      RRR      RRR   \r
41361 EEEEEEEEEEEEEEE      DDDDDDDDDDDD            IIIIIIIII               TTT               OOOOOOOOO         RRR         RRR\r
41362 EEEEEEEEEEEEEEE      DDDDDDDDDDDD            IIIIIIIII               TTT               OOOOOOOOO         RRR         RRR\r
41363 EEEEEEEEEEEEEEE      DDDDDDDDDDDD            IIIIIIIII               TTT               OOOOOOOOO         RRR         RRR\r
41364 \r
41365 \r
41366 \r
41367 \r
41368 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
41369 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
41370 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
41371 LLL                  SSS                        TTT                                                                     \r
41372 LLL                  SSS                        TTT                                                                     \r
41373 LLL                  SSS                        TTT                                                                     \r
41374 LLL                  SSS                        TTT                                                                     \r
41375 LLL                  SSS                        TTT                                                                     \r
41376 LLL                  SSS                        TTT                                                                     \r
41377 LLL                     SSSSSSSSS               TTT                                                                     \r
41378 LLL                     SSSSSSSSS               TTT                                                                     \r
41379 LLL                     SSSSSSSSS               TTT                                                                     \r
41380 LLL                              SSS            TTT                                                                     \r
41381 LLL                              SSS            TTT                                                                     \r
41382 LLL                              SSS            TTT                                                                     \r
41383 LLL                              SSS            TTT                                                                     \r
41384 LLL                              SSS            TTT                                                                     \r
41385 LLL                              SSS            TTT                                                                     \r
41386 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
41387 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
41388 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
41389 \r
41390 \r
41391 \r
41392 \r
41393 Request created: 24-April-1978  11:23:08\r
41394 File: DSKB0 :EDITOR.LST   [8,200] Created: 20-April-1967 11:19:00 Printed: 24-April-1978 11:22:32
41395 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1620 \r
41396 File will be deleted after printing\r
41397 \f\rEDITOR   V.003        1 APRIL 1968                 PAGE 3\r
41398         DECEDIT PARAMETERS\r
41399 \r
41400                                 00030   TITLE EDITOR   V.003    1 APRIL 1968\r
41401                                 00040   SUBTTL DECEDIT PARAMETERS\r
41402 \r
41403                                 00060   DEFINE ERR (A) <        JSR A,ERRORX>\r
41404                                 00070   DEFINE TSTRIN (A) <     EXP "A"+"A"+1>\r
41405 \r
41406                         000001  00090   S0=1\r
41407                         000002  00100   S1=2\r
41408                         000004  00110   S2=4\r
41409                         000010  00120   S3=10\r
41410                         000040  00130   S4=40\r
41411                         000020  00140   S5=20\r
41412                         000100  00150   S6=100\r
41413                         000200  00160   S7=200\r
41414                         000400  00170   S8=400\r
41415                         000003  00180   PDP=3\r
41416                         000004  00190   FL=4\r
41417                         000011  00200   INDEX=11\r
41418                         000012  00210   WC=12\r
41419                         000013  00220   C=13\r
41420                         000014  00230   COTP=14\r
41421                         000005  00240   IPT=5\r
41422                         000006  00250   TPT=6\r
41423                         000010  00260   P=10\r
41424                         000015  00270   SINDEX=15\r
41425                         000016  00280   CINDEX=16\r
41426                         000017  00290   LAST=17\r
41427                         000002  00300   TYP=2\r
41428                         000003  00310   DT=3\r
41429                                 00320   OPDEF EXIT [POPJ PDP,]\r
41430                                 00330   OPDEF CAL [PUSHJ PDP,]\r
41431                                 00340   OPDEF SAVE [PUSH PDP,]\r
41432                                 00350   OPDEF UNSAVE [POP PDP,]\r
41433                                 00360   EXTERNAL JOBFF\r
41434 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 4\r
41435         DECTAPE IO - AUGUST 25, 1965\r
41436 \r
41437                                 00380   SUBTTL DECTAPE IO - AUGUST 25, 1965\r
41438 \r
41439                         001000  00400   FOPEN=1000\r
41440                         000001  00410   AC1=1\r
41441                         000002  00420   AC2=2\r
41442                         000005  00430   AC3=5\r
41443                         000006  00440   AC4=6\r
41444 \r
41445         000000' 607200  000001  00460   FILLB:  TLNN FL,1;      IS BUFFER LOADED\r
41446         000001' 254000  000041' 00470           JRST FILLB1;    NO, SO LOAD IT\r
41447         000002' 200540  001060' 00480           MOVE C,WBC;     GET BUFFER COUNT\r
41448         000003' 307540  000177  00490           CAIG C,177;     IS IT GETTIN FULL\r
41449         000004' 263140  000000  00500   ATSALL: EXIT;   NO\r
41450         000005' 620200  000400  00510           TRZ FL,S8;      SET FIRST BLOCK FLAG TO FALSE\r
41451         000006' 660200  000010  00520           TRO FL,S3;      AND MODIFIED FLAG TO TRUE\r
41452         000007' 201100  001064' 00530           MOVEI AC2,WB;   GET WORKING BUFFER ADDRESS\r
41453         000010' 201240  000001  00540           MOVEI AC3,1;    SEQUENCE NUMBER TEST\r
41454         000011' 271100  000125  00550           ADDI AC2,125;   DUMP ABOUT 2/3 OF BUFFER\r
41455         000012' 616242  000000  00560           TDNN AC3,0(AC2);        BUT NOT A FRACTIONAL LINE\r
41456         000013' 364100  000012' 00570           SOJA AC2,.-1;   HUNT FOR BEGIN OF LINE\r
41457         000014' 550400  000135' 00580           HRRZ P,THSBLK;  UPDATE PREVIOUS BLOCK NUMBER\r
41458         000015' 073140  000136' 00590           UGETF DT,IAMTEM;        NEXT FREE BLOCK\r
41459         000016' 075150  000000  00600           USETO DT,0(P);  PREPARE TO DUMP THIS BLOCK\r
41460         000017' 200400  000136' 00610           MOVE P,IAMTEM;  AND PREPARE NEXT BLOCK\r
41461         000020' 200240  001050' 00620           MOVE AC3,DTOBUF;        SET UP BLT\r
41462         000021' 516405  000001  00630           HRLZM P,1(AC3); LINK TO NEXT DECTAPE BLOCK\r
41463         000022' 505240  001064' 00640           HRLI AC3,WB;    SOURCE\r
41464         000023' 271240  000002  00650           ADDI AC3,2;     +2\r
41465         000024' 200040  000002  00660           MOVE AC1,AC2;   LAST\r
41466         000025' 275040  001064' 00670           SUBI AC1,WB;    AND MAKE A COUNT OF IT\r
41467         000026' 274540  000001  00680           SUB C,AC1;      TOTAL REMAINING WORDS\r
41468         000027' 202540  001060' 00690           MOVEM C,WBC;    SET NEW COUNT\r
41469         000030' 271045  777777  00700           ADDI AC1,-1(AC3);       SETUP FOR BLT\r
41470         000031' 260140  000122' 00710           CAL DUMX;       TRANSFER AND DUMP BLOCK\r
41471         000032' 201240  001064' 00720           MOVEI AC3,WB;   GET DEST FOR MOVE UP\r
41472         000033' 504240  000002  00730           HRL AC3,AC2;    AND SOURCE\r
41473         000034' 200040  000005  00740           MOVE AC1,AC3;   GENERATE LAST ADDRESS\r
41474         000035' 271053  000000  00750           ADDI AC1,(C);   FROM COUNT\r
41475         000036' 251241  000000  00760           BLT AC3,(AC1);  ON TOAST\r
41476         000037' 250400  000135' 00770           EXCH P,THSBLK;  SET NEW BLOCK\r
41477         000040' 254000  000000' 00780           JRST FILLB;     GO AGAIN\r
41478 \r
41479         000041' 607200  001000  00800   FILLB1: TLNN FL,FOPEN;  IS A FILE OPEN\r
41480                                 00810           ERR 7;          NO, SO *NFO*\r
41481         000042' 264340  000162'                 JSR 7,ERRORX\r
41482         000043' 661200  000001  00820           TLO FL,1;       SET TO FILLED BUFFER\r
41483         000044' 254000  000075' 00830           JRST GETF;      AND GET THE FIRST BLOCK\r
41484 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 5\r
41485         DECTAPE IO - AUGUST 25, 1965\r
41486 \r
41487         000045' 602200  000001  00850   GET:    TRNE FL,S0;     FORWARD OR REVERSE\r
41488         000046' 254000  000073' 00860           JRST GETL;      REVERSE\r
41489 \r
41490         000047' 602200  000020  00880   GETN:   TRNE FL,S5;     IS THERE ANY MORE\r
41491         000050' 263140  000000  00890           EXIT;           NO\r
41492         000051' 554000  001063' 00900           HLRZ WBF;       GET LINK\r
41493         000052' 260140  000106' 00910           CAL DUMPB;      OUTPUT BLOCK\r
41494         000053' 200400  000135' 00920           MOVE P,THSBLK;  SAVE PREVIOUS FLOCK NUMBER\r
41495         000054' 620200  000400  00930           TRZ FL,S8;      SET FIRST BLOCK FLAG TO FALSE\r
41496         000055' 552000  000135' 00940   GET0:   HRRZM THSBLK;   SAVE CURRENT BLOCK NUMBER\r
41497         000056' 075160  000135' 00950           USETO DT,@THSBLK;       SER OUTPUT FOR PRESENT BLOCK\r
41498 \r
41499         000057' 066140  000000  00970   SLURP:  INPUT DT,0;     INPUT A NEW BLOCK\r
41500         000060' 554000  001063' 00980           HLRZ WBF;       GET LINK\r
41501         000061' 336000  000000  00990           SKIPN;          WE DONT LIKE ZERO LINKS\r
41502         000062' 660200  000020  01000           TRO FL,S5;      SO WE SET A FLAG TO REMIND US\r
41503         000063' 550000  001063' 01010           HRRZ WBF;       GET COUNT\r
41504         000064' 202000  001060' 01020           MOVEM WBC;      AND SAVE IT\r
41505         000065' 606200  000020  01030           TRNN FL,S5;     WAS IT END OF FILE\r
41506         000066' 332000  000000  01040           SKIPE;          EMPTY BLOCK\r
41507         000067' 263140  000000  01050           EXIT;           END OF FILE OR NON-EMPTY BLOCK\r
41508         000070' 554000  001063' 01060           HLRZ WBF;       EMPTY BLOCK - GET LINK\r
41509         000071' 606200  000001  01070           TRNN FL,S0;     DIRECTION CHECK\r
41510         000072' 254000  000055' 01080           JRST GET0;      FORWARD\r
41511 \r
41512         000073' 260140  000106' 01100   GETL:   CAL DUMPB;      REVERSE - GET LAST BLOCK-SAVE THIS ONE\r
41513         000074' 326400  000100' 01110           JUMPN P,GETL1;  IS LAST BLOCK AVAILABLE\r
41514         000075' 550400  001013' 01120   GETF:   HRRZ P,FBNUM;   NO, SO GET FIRST ONE\r
41515         000076' 620200  000021  01130           TRZ FL,S0+S5;   SET FORWARD AND END\r
41516         000077' 664200  000400  01140           TROA FL,S8;     SET FIRST BLOCK AND SKIP\r
41517         000100' 620200  000420  01150   GETL1:  TRZ FL,S5+S8;   SET NON-END AND NON-FIRST\r
41518         000101' 074150  000000  01160           USETI DT,(P);   ESTABLISH INPUT BLOCK NUMBER\r
41519         000102' 075150  000000  01170           USETO DT,(P);   AND OUTPUT BLOCK NUMBER\r
41520         000103' 202400  000135' 01180           MOVEM P,THSBLK; UPDATE CURRENT BLOCK NUMBER\r
41521         000104' 402000  000010  01190           SETZM P;        AND ZERO PREVIOUS BLOCK NUMBER\r
41522         000105' 254000  000057' 01200           JRST SLURP;     AND INPUT THE BLOCK\r
41523 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 6\r
41524         DECTAPE IO - AUGUST 25, 1965\r
41525 \r
41526         000106' 260140  000000' 01220   DUMPB:  CAL FILLB;      SPLIT BLOCKS IF THE OVER-RUN\r
41527         000107' 626200  000010  01230           TRZN FL,S3;     ANY MODS MADE\r
41528         000110' 263140  000000  01240           EXIT;           NO\r
41529         000111' 200100  001050' 01250           MOVE AC2,DTOBUF;        POINTER TO BUFFERS\r
41530         000112' 201242  000002  01260           MOVEI AC3,2(AC2);       FIRST WORD ADDRESS\r
41531         000113' 505240  001064' 01270           HRLI AC3,WB;    FIRST DATA WORD\r
41532         000114' 554040  001063' 01280           HLRZ AC1,WBF;   BLOCK NUMBER\r
41533         000115' 336000  000001  01290           SKIPN AC1;      LAST BLOCK\r
41534         000116' 370000  000001  01300           SOS AC1;        YES, SO EXTEND\r
41535         000117' 506042  000001  01310           HRLM AC1,1(AC2);        INTO LINK\r
41536         000120' 201042  000001  01320           MOVEI AC1,1(AC2);       PREPARE BLT\r
41537         000121' 270040  001060' 01330           ADD AC1,WBC;    SIZE OF BLT\r
41538         000122' 251241  000000  01340   DUMX:   BLT AC3,(AC1);  BLOCK UP SUBROUTINE\r
41539         000123' 542040  001051' 01350           HRRM AC1,DTOBF1;        LAST ADDRESS\r
41540         000124' 067140  000000  01360           OUTPUT DT,0;    DUMP IT\r
41541         000125' 061140  740000  01370           STATO DT,740000;        CHECK FOR DEVICE ERROR\r
41542         000126' 263140  000000  01380           EXIT;           ALL IS GOOD\r
41543         000127' 476000  000004  01390           SETOM FL     ; DDE ERROR\r
41544                                 01400           ERR 12;         *DDE*\r
41545         000130' 264500  000162'                 JSR 12,ERRORX\r
41546 \r
41547         000131' 603200  001000  01420   FINISH: TLNE FL,FOPEN;  IF A FILE IS OPEN\r
41548         000132' 260140  000106' 01430           CAL DUMPB;      DUMP IT\r
41549         000133' 071140  000000  01440   FINIS2: RELEAS DT,0;    RELEASE THE TAPE\r
41550         000134' 254000  001030' 01450           JRST INITIX;    AND GO BACK TO SETUP\r
41551 \r
41552         000135' 000000  000000  01470   THSBLK: 0;              PRESENT BLOCK NUMBER\r
41553         000136' 000000  000000  01480   IAMTEM: 0;              TEMPORARY\r
41554 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 9\r
41555         CONTROL - AUGUST 25, 1965\r
41556 \r
41557                                 01520   SUBTTL CONTROL - AUGUST 25, 1965\r
41558                                 01530                           ;MAIN LISTEN AND DISPATCH FOR EDITOR CONTROL MODE\r
41559         000137' 260140  000612' 01540   OUTTER: CAL GETCHR;     GET ONE CHARACTER\r
41560         000140' 306540  000015  01550           CAIN C,15;      INITIAL CARRIAGE RETURNS\r
41561         000141' 254000  000137' 01560           JRST OUTTER;    ARE IGNORED\r
41562         000142' 306540  000111  01570           CAIN C,"I"\r
41563         000143' 254000  000205' 01580           JRST INSE\r
41564         000144' 306540  000104  01590           CAIN C,"D"\r
41565         000145' 254000  000425' 01600           JRST DELETE\r
41566         000146' 306540  000120  01610           CAIN C,"P"\r
41567         000147' 254000  000471' 01620           JRST PRINT\r
41568         000150' 306540  000105  01630           CAIN C,"E"\r
41569         000151' 254000  000131' 01640           JRST FINISH\r
41570         000152' 302540  000033  01650           CAIE C,33;      ALTERNATE ALTMOD\r
41571         000153' 306540  000175  01660           CAIN C,175;     THE REGULAR ALTMOD\r
41572         000154' 254000  000522' 01670           JRST PNEXT\r
41573         000155' 306540  000123  01680           CAIN C,"S"\r
41574         000156' 254000  000657' 01690           JRST DECINI\r
41575                                 01700           ERR 1;          ILLEGAL COMMAND\r
41576         000157' 264040  000162'                 JSR 1,ERRORX\r
41577                                 01710   ;OUTPUT A CARRIAGE RETURN\r
41578         000160' 201440  000171' 01720   CRT:    MOVEI INDEX,CRM;        PICK UP THE POINTER\r
41579         000161' 254000  000601' 01730           JRST OTLINE;    OUTPUT CRT-LF-*\r
41580 \r
41581                                 01750   ;ERROR PRINT\r
41582         000162' 000000  000000  01760   ERRORX: 0;              CALLED BY JSR X,ERRORX\r
41583         000163' 550440  000162' 01770           HRRZ INDEX,ERRORX;      WHERE X IS THE ERROR NUMBER\r
41584         000164' 135440  000204' 01780           LDB INDEX,EPT;  EXTRACT THE X\r
41585         000165' 201451  000171' 01790           MOVEI INDEX,ERT-1(INDEX)\r
41586         000166' 201140  001304' 01800   ERROX1: MOVEI PDP,PDSTAK;       INITIALIZE PUSHDOWN\r
41587         000167' 260140  000601' 01810   ERROX2: CAL OTLINE;     OUTPUT ERROR MESSAGE\r
41588 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 10\r
41589         CONTROL - AUGUST 25, 1965\r
41590 \r
41591         000170' 254000  001035' 01830           JRST COMLEV;    AND A CARRIAGE RETURN - EXIT\r
41592                                 01840   ;ERROR MESSAGES ET.AL.  THESE MUST NOT BE MOVED ABOUT\r
41593                                 01850   ;SINCE THE PRINT ROUTINE DEPENDS ON THE BIT 35 OF THE\r
41594                                 01860   ;NEXT MESSAGE TO TERMINATE THE PRESENT ONE\r
41595 \r
41596         000171' 064245  200000  01880   CRM:    OCT 64245200000;        THE CARRIAGE RETURN-LINE FEED-*\r
41597         000172'                 01890   ERT:    TSTRIN <*ILC*>; ILLEGAL COMMAND\r
41598         000172' 252231  441525                  EXP "*ILC*"+"*ILC*"+1\r
41599                                 01900           TSTRIN <*NLN*>; NON-EXISTENT LINE\r
41600         000173' 252351  447125                  EXP "*NLN*"+"*NLN*"+1\r
41601                                 01910           TSTRIN <*ILS*>; ILLEGAL SEQUENCE\r
41602         000174' 252231  451525                  EXP "*ILS*"+"*ILS*"+1\r
41603                                 01920           TSTRIN <*ILR*>; ILLEGAL REFERENCE\r
41604         000175' 252231  451125                  EXP "*ILR*"+"*ILR*"+1\r
41605                                 01930           TSTRIN <*UNA*>; UNIT NOT AVAILABLE\r
41606         000176' 252531  640525                  EXP "*UNA*"+"*UNA*"+1\r
41607                                 01940           TSTRIN <*DCE*>; DIRECTORY CAPACITY EXCEEDED\r
41608         000177' 252110  342525                  EXP "*DCE*"+"*DCE*"+1\r
41609                                 01950           TSTRIN <*NFO*>; NO FILE OPEN\r
41610         000200' 252350  647525                  EXP "*NFO*"+"*NFO*"+1\r
41611                                 01960           TSTRIN <*FAU*>; FILE NAME ALREADY IN USE\r
41612         000201' 252150  152525                  EXP "*FAU*"+"*FAU*"+1\r
41613                                 01970           TSTRIN <*NCF*>; NOT A CURRENT FILE\r
41614         000202' 252350  343125                  EXP "*NCF*"+"*NCF*"+1\r
41615                                 01980           TSTRIN <*DDE*>; DEVICE DATA ERROR\r
41616         000203' 252110  442525                  EXP "*DDE*"+"*DDE*"+1\r
41617         000204' 270411  777777  01990   EPT:    POINT 4,-1(INDEX),12;   THE ERROR PRINT DEPENDS\r
41618                                 02000                           ;ON THE 1 IN BIT 35 HERE\r
41619                                 02010   ;COMMUNICATIONS\r
41620 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 12\r
41621         EDITOR - AUGUST 25, 1965\r
41622 \r
41623                                 02040   SUBTTL EDITOR - AUGUST 25, 1965\r
41624 \r
41625                                 02060   ;INSERT LINE(S)\r
41626         000205' 260140  000616' 02070   INSE:   CAL GETSEQ;     GET THE SEQUENCE NUMBER AND STEP\r
41627         000206' 202000  000016  02080           MOVEM CINDEX;   THIS INSTR SKIPED IF ONLY ONE ARG\r
41628         000207' 254000  000216' 02090           JRST INSE3;     PROCESS IT\r
41629         000210' 260140  000333' 02100   INSE2:  CAL FIND;       TOP OF THE LOOP - SEARCH FOR THE LINE\r
41630         000211' 316651  000000  02110           CAMN SINDEX,(INDEX);    EXACT MATCH?\r
41631                                 02120           ERR 4;          YES, *ILR*\r
41632         000212' 264200  000162'                 JSR 4,ERRORX\r
41633         000213' 260140  000252' 02130           CAL BACK1;      BACKUP TO LAST LINE\r
41634         000214' 312000  000017  02140           CAME LAST;      IS IT INDEED THE LAST ONE WE PUT IN\r
41635                                 02150           ERR 3;          NO, *ILS*\r
41636         000215' 264140  000162'                 JSR 3,ERRORX\r
41637         000216' 260140  000333' 02160   INSE3:  CAL FIND;       GET THE LINE\r
41638         000217' 260140  000541' 02170           CAL OTSEQ;      OUTPUT THE SEQUENCE NUMBER\r
41639         000220' 260140  000547' 02180           CAL GETLIN;     GET THE INPUT LINE\r
41640         000221' 254000  000137' 02190           JRST OUTTER;    ALT MODE\r
41641         000222' 260140  000227' 02200           CAL INSED;      INSERT AND DELETE\r
41642         000223' 202640  000017  02210           MOVEM SINDEX,LAST;      SAVE AWAY THIS LINE NUMBER\r
41643         000224' 202640  001056' 02220           MOVEM SINDEX,FIRST\r
41644         000225' 260140  000305' 02230           CAL ASCIA;      STEP SEQUENCE\r
41645         000226' 254000  000210' 02240           JRST INSE2;     LOOP BACK FOR NEXT LINE\r
41646 \r
41647         000227' 550000  000014  02260   INSED:  HRRZ COTP;      GET THE SIZE OF THE LINE\r
41648         000230' 201040  000000  02270           MOVEI 1,0;      SETUP DIRECTION FLAG\r
41649         000231' 311000  000012  02280           CAML WC;        IF LINE SIZE IS GREATER-EQUAL THAN NEW\r
41650         000232' 201040  000001  02290           MOVEI 1,1;      SET FLAG TO 1\r
41651         000233' 312000  000012  02300           CAME WC;        IF OLD LINE IS NON-NULL\r
41652         000234' 254000  000264' 02310           JRST INSEG;     DELETE IT\r
41653         000235' 322500  000245' 02320   INSE1:  JUMPE WC,INSE16;        NULL SIZE TO INPUT\r
41654         000236' 554440  000014  02330           HLRZ INDEX,COTP;        GET LINE ADDRESS\r
41655         000237' 270440  000012  02340           ADD INDEX,WC;   AND SIZE\r
41656         000240' 547000  000014  02350           HLRS COTP;      AND COUNT\r
41657         000241' 505600  001313' 02360           HRLI COTP,TTB;  SET SOURCE\r
41658         000242' 200040  000014  02370           MOVE 1,COTP;    READY FOR BLT\r
41659         000243' 251611  777777  02380           BLT COTP,-1(INDEX);     MOVE IN THE NEW LINE\r
41660         000244' 200600  000001  02390           MOVE COTP,1;    RESTORE COTP\r
41661         000245' 660200  000110  02400   INSE16: TRO FL,S3+S6;   SET MOD FLAGS - GENERAL EXIT\r
41662         000246' 201040  001064' 02410   CLEARE: MOVEI 1,WB;     CLEAR LAST BUFFER WORD\r
41663         000247' 270040  001060' 02420           ADD 1,WBC;      END OF BUFFER\r
41664         000250' 402001  000000  02430           SETZM (1);      SET TO ZERO\r
41665         000251' 263140  000000  02440           EXIT;           GO AWAY\r
41666 \r
41667                                 02460   ;BACK UP LINE POINTER\r
41668         000252' 302440  001064' 02470   BACK1:  CAIE INDEX,WB;  IS THIS THE FIRST LINE IN THE BUFFER\r
41669         000253' 254000  000262' 02480           JRST BACK;      NO, SO NORMAL PROCESS\r
41670         000254' 660200  000001  02490           TRO FL,S0;      WE MUST GET THE PREVIOUS BLOCK\r
41671         000255' 260140  000045' 02500           CAL GET;        INPUT IT - THIS WILL ALWAYS WORK\r
41672         000256' 270440  001060' 02510           ADD INDEX,WBC;  LAST LINE\r
41673         000257' 254000  000262' 02520           JRST BACK;      NOW WE BACK IT UP\r
41674         000260' 200011  000000  02530           MOVE (INDEX);   TOP OF LOOP - PICK UP DATA WORD\r
41675         000261' 606000  000001  02540           TRNN 1;         BIT ONE MAKES IT A SEQUENCE N\r
41676 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 12-1\r
41677         EDITOR - AUGUST 25, 1965\r
41678 \r
41679         000262' 364440  000260' 02550   BACK:   SOJA INDEX,.-2; COUNT IT BACK\r
41680         000263' 263140  000000  02560           EXIT\r
41681 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 13\r
41682         EDITOR - AUGUST 25, 1965\r
41683 \r
41684         000264' 260140  000414' 02580   INSEG:  CAL CSIZE;      COMPUTE SIZE OF XFER\r
41685         000265' 322000  000276' 02590           JUMPE INSEX;    ZERO SIZE XFER\r
41686         000266' 326040  000272' 02600           JUMPN 1,INSER;  FORWARD BLT\r
41687         000267' 507000  000000  02610           HRLS 0;         REVERSE XFER\r
41688         000270' 270440  000000  02620           ADD INDEX,0;    SET UP POINTER WORD\r
41689         000271' 553000  000000  02630           HRRZS 0;        READY TO GO\r
41690         000272' 202440  000013  02640   INSER:  MOVEM INDEX,C;  PROTECT XFER WORD\r
41691         000273' 251551  000000  02650           BLT C,(INDEX);  XFER ONE WORD\r
41692         000274' 256001  000303' 02660           XCT ITAB(1);    STEP UP OR DOWN\r
41693         000275' 365000  000272' 02670           SOJGE INSER;    IF NOT DONE, LOOP BACK\r
41694         000276' 550000  000014  02680   INSEX:  HRRZ COTP;      SETUP SIZE\r
41695         000277' 274000  000012  02690           SUB WC;         OF NEW BLOCK\r
41696         000300' 250000  001060' 02700           EXCH WBC;\r
41697         000301' 276000  001060' 02710           SUBM WBC;       NOW NEW BLOCK SIZE IS IN WBC\r
41698         000302' 254000  000235' 02720           JRST INSE1;     ALL DONE - GO BACK\r
41699 \r
41700         000303' 274440  000332' 02740   ITAB:   SUB INDEX,K5;   SHRINK\r
41701         000304' 270440  000332' 02750           ADD INDEX,K5;   GROW\r
41702 \r
41703                                 02770   ;THE ASCII ADDER\r
41704 \r
41705         000305' 261140  000016  02790   ASCIA:  SAVE CINDEX;    PROTECT THE STEP\r
41706         000306' 200340  000015  02800           MOVE 7,SINDEX\r
41707         000307' 404700  000327' 02810           AND CINDEX,K2;  MASK OUT 60S\r
41708         000310' 242700  000001  02820           LSH CINDEX,1;\r
41709         000311' 434640  000331' 02830           IOR SINDEX,K4;\r
41710         000312' 270640  000326' 02840           ADD SINDEX,K1;\r
41711         000313' 270700  000015  02850           ADD CINDEX,SINDEX;      EXCESS 166 ADDITION\r
41712         000314' 404700  000330' 02860           AND CINDEX,K3;  MASK OUT CARRY BITS\r
41713         000315' 200640  000331' 02870           MOVE SINDEX,K4;\r
41714         000316' 404640  000016  02880           AND SINDEX,CINDEX;\r
41715         000317' 240640  777775  02890           ASH SINDEX,-3;  GIVES 000 WHERE CARRY HAPPENED, 006\r
41716         000320' 276700  000015  02900           SUBM CINDEX,SINDEX;     CONVERT TO EXCESS 0 OR 60\r
41717         000321' 434640  000331' 02910           IOR SINDEX,K4;  CONVERT TO EXCESS 60\r
41718         000322' 262140  000016  02920           UNSAVE CINDEX;  RESTORE THE STEP\r
41719         000323' 311340  000015  02930           CAML 7,SINDEX;  IF 99999, DON'T GO TO 00009\r
41720         000324' 264140  000162' 02940           ERR 3^  JSR 3,ERRORX^\r
41721         000325' 263140  000000  02950           EXIT;           LEAVE\r
41722 \r
41723         000326' 432150  643214  02970   K1:     OCT 432150643214;       106\r
41724         000327' 036170  743617  02980   K2:     OCT 036170743617;       017\r
41725         000330' 375767  737576  02990   K3:     OCT 375767737576;       077\r
41726         000331' 301406  030141  03000   K4:     TSTRIN <00000>^ EXP "00000"+"00000"+1^\r
41727         000332' 000001  000001  03010   K5:     XWD 1,1;        +,- ONE TO BOTH HALVES\r
41728 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 14\r
41729         EDITOR - AUGUST 25, 1965\r
41730 \r
41731         000333' 260140  000000' 03030   FIND:   CAL FILLB;      FILL THE BUFFER\r
41732         000334' 620200  000041  03040   FIND1:  TRZ FL,S0+S4;   FORWARD SEARCH AND INITIAL SEARCH\r
41733         000335' 550000  001060' 03050   FIND2:  HRRZ WBC;       GET THE BUFFER SIZE\r
41734         000336' 322000  000360' 03060           JUMPE FINDA;    EMPTY BLOCK\r
41735         000337' 201440  001064' 03070           MOVEI INDEX,WB; GET THE DATA ADDRESS\r
41736         000340' 200000  001064' 03080           MOVE WB;        GET THE FIRST DATA WORD\r
41737         000341' 313000  000015  03090           CAMLE SINDEX;   ARE WE PAST THE LINE\r
41738         000342' 254000  000360' 03100           JRST FINDA;     YES, REVERSE\r
41739         000343' 316000  000015  03110           CAMN SINDEX;    EXACT MATCH\r
41740         000344' 254000  000402' 03120           JRST FINDEQ;    YES, BE HAPPY\r
41741         000345' 270440  001060' 03130           ADD INDEX,WBC;  FORM ADDRESS OF LAST DATA WORD\r
41742         000346' 260140  000262' 03140           CAL BACK;       FIND ITS SEQUENCE NUMBER\r
41743         000347' 313000  000015  03150           CAMLE SINDEX;   IT THE LINE IN THIS BLOCK\r
41744         000350' 254000  000372' 03160           JRST FIND3A;    YES, INVESTIGATE FURTHER\r
41745         000351' 316000  000015  03170           CAMN SINDEX;    EXACT MATCH\r
41746         000352' 254000  000402' 03180           JRST FINDEQ;    YES\r
41747         000353' 602200  000020  03190   FINDX:  TRNE FL,S5;     IS THIS LAST BLOCK\r
41748         000354' 254000  000367' 03200           JRST FINDC;     YES, SO EXIT WITH THIS ADDRESS\r
41749         000355' 660200  000040  03210           TRO FL,S4;      SCANNING HAS STARTED\r
41750         000356' 620200  000001  03220           TRZ FL,S0;      AND GO FORWARD\r
41751         000357' 254000  000365' 03230           JRST FIND4;     AWAY WE GO\r
41752 \r
41753         000360' 201440  000000  03250   FINDA:  MOVEI INDEX,0;  SETUP FOR REVERSE\r
41754         000361' 606200  000040  03260           TRNN FL,S4;     HAVE WE BEEN HERE BEFORE\r
41755         000362' 602200  000400  03270           TRNE FL,S8;     OR IS IT THE FIRST BLOCK\r
41756         000363' 254000  000370' 03280           JRST FINDR;     YES, SO USE THIS ADDRESS\r
41757         000364' 660200  000001  03290           TRO FL,S0;      OTHERWISE, GO BACK ONE BLOCK\r
41758         000365' 260140  000045' 03300   FIND4:  CAL GET;        GET THE BLOCK\r
41759         000366' 254000  000335' 03310           JRST FIND2;     SEARCH FOR IT\r
41760 \r
41761         000367' 550440  001060' 03330   FINDC:  HRRZ INDEX,WBC; TAIL OF BLOCK IF ENTERED HERE\r
41762         000370' 271440  001064' 03340   FINDR:  ADDI INDEX,WB;  HEAD OF BLOCK IF ENTERED HERE\r
41763         000371' 254000  000400' 03350           JRST FIND3;     AND RETURN\r
41764 \r
41765         000372' 201440  001060' 03370   FIND3A: MOVEI INDEX,WBC;        WE WISH TO SCAN THIS BLOCK FOR\r
41766         000373' 260140  000406' 03380           CAL FINDES;     THIS LINE - COMPUTE LINE SIZE\r
41767         000374' 316000  000015  03390           CAMN SINDEX;    EXACT MATCH\r
41768         000375' 254000  000402' 03400           JRST FINDEQ;    YES, WELL, GOOD\r
41769         000376' 317000  000015  03410           CAMG SINDEX;    HAVE WE PASSED IT\r
41770         000377' 344440  000373' 03420           AOJA INDEX,FIND3A+1;    NO, SO CONTINUE\r
41771         000400' 514600  000011  03430   FIND3:  HRLZ COTP,INDEX;        RETURN THE ADDRESS OF THE LINE\r
41772         000401' 254000  000246' 03440           JRST CLEARE;    EXIT\r
41773 \r
41774         000402' 514600  000011  03460   FINDEQ: HRLZ COTP,INDEX;        FOUND THE DESIRED LINE\r
41775         000403' 260140  000406' 03470           CAL FINDES;     COMPUTE ITS SIZE\r
41776         000404' 554440  000014  03480           HLRZ INDEX,COTP;        SET UP INDEX\r
41777         000405' 254000  000246' 03490           JRST CLEARE;    AND EXIT\r
41778 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 15\r
41779         EDITOR - AUGUST 25, 1965\r
41780 \r
41781         000406' 350000  000014  03510   FINDES: AOS COTP;       FIND SIZE OF LINE\r
41782         000407' 200011  000001  03520           MOVE 1(INDEX);  FIND NEXT SEQUENCE NUMBER\r
41783         000410' 350000  000011  03530           AOS INDEX;\r
41784         000411' 606000  000001  03540           TRNN 1;         SEQUENCE NUMBER?\r
41785         000412' 326000  000406' 03550           JUMPN FINDES;   NO, BUT ZERO ALSO DENOTES END\r
41786         000413' 263140  000000  03560           EXIT;           DONE\r
41787 \r
41788         000414' 550000  000014  03580   CSIZE:  HRRZ COTP;      COMPUTE SIZE OF TRANSFER\r
41789         000415' 554440  000014  03590           HLRZ INDEX,COTP;        SIZE OF THIS LINE\r
41790         000416' 270000  000011  03600           ADD INDEX;      AND THIS LOCATION\r
41791         000417' 270440  000012  03610           ADD INDEX,WC;   PLUS THE NEW LINE SIZE\r
41792         000420' 504440  000000  03620           HRL INDEX,0;    IN LEFT HALF IS OLD SIZE\r
41793         000421' 275000  001064' 03630           SUBI WB;        AND TURN IT INTO A COUNT\r
41794         000422' 550540  001060' 03640           HRRZ C,WBC;     FOR A SUBTRACT\r
41795         000423' 276540  000000  03650           SUBM C,0;       AND NOW ZERO HAS THE XFER SIZE\r
41796         000424' 263140  000000  03660           EXIT;\r
41797 \r
41798 \r
41799         000425' 260140  000502' 03690   DELETE: CAL GE2SEQ;     GET THE RANGE TO BE EXCISED\r
41800         000426' 550440  001060' 03700   DELOOP: HRRZ INDEX,WBC; GET THE WORD COUNT\r
41801         000427' 271440  001064' 03710           ADDI INDEX,WB;  FORM THE END ADDRESS\r
41802         000430' 260140  000262' 03720           CAL BACK;       GET THE LAST SEQUENCE IN THE BLOCK\r
41803         000431' 316000  000017  03730           CAMN LAST;      IS THE LAST LINE THE END OF THE RANGE\r
41804         000432' 254000  000447' 03740           JRST DEQ;       YES\r
41805         000433' 311000  000017  03750           CAML LAST;      DO WE WANT TO DELETE THIS ONE TOO\r
41806         000434' 254000  000451' 03760           JRST DINB;      NO,DELETE TERMINATES IN THE BUFFER\r
41807         000435' 260140  000465' 03770           CAL DREST;      ERASE THE REST OF THE BUFFER\r
41808         000436' 602200  000020  03780   EMPT:   TRNE FL,S5;     LAST BLOCK\r
41809         000437' 254000  001035' 03790           JRST COMLEV;    YES, DONE\r
41810         000440' 620200  000001  03800           TRZ FL,S0;      FORWARD\r
41811         000441' 260140  000045' 03810           CAL GET;        INPUT NEXT BLOCK\r
41812         000442' 200640  001064' 03820           MOVE SINDEX,WB; GET FIRST LINE\r
41813         000443' 606640  000001  03830           TRNN SINDEX,1;  IF NOT A ONE, BLOCK IS EMPTY\r
41814         000444' 254000  000436' 03840           JRST EMPT;      SO GET THE NEXT ONE\r
41815         000445' 260140  000333' 03850           CAL FIND;       NEW SINDEX IS THE FIRST LINE - THIS CAL\r
41816         000446' 254000  000426' 03860           JRST DELOOP;    SETS UP THE COUNTS, ETC.\r
41817 \r
41818         000447' 260140  000465' 03880   DEQ:    CAL DREST;      DELETE THE REST OF THE BUFFER\r
41819         000450' 254000  001035' 03890   DEX:    JRST COMLEV;    EXIT\r
41820 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 16\r
41821         EDITOR - AUGUST 25, 1965\r
41822 \r
41823         000451' 201440  001063' 03910   DINB:   MOVEI INDEX,WBF;        GET INITIAL ADDRESS\r
41824         000452' 260140  000406' 03920           CAL FINDES;     SCAN THE LINE\r
41825         000453' 322000  000456' 03930           JUMPE .+3;      END OF BUFFER\r
41826         000454' 317000  000017  03940           CAMG LAST;      LAST LINE DONE\r
41827         000455' 344440  000452' 03950           AOJA INDEX,DINB+1;      NO, GO AGAIN\r
41828         000456' 557000  000014  03960           HLRZS COTP;     COMPUTE TOTAL SIZE\r
41829         000457' 274440  000014  03970           SUB INDEX,COTP; THIS MUCH SMALLER\r
41830         000460' 517000  000014  03980           HRLZS COTP;     RESET LEFT HALF\r
41831         000461' 542440  000014  03990           HRRM INDEX,COTP;        AND RIGHT HALF GET DELTA SIZE\r
41832         000462' 402000  000012  04000           CLEARM WC;      SET FOR ZERO LENGTH INSERT\r
41833         000463' 260140  000227' 04010           CAL INSED;      INSERT THE NULL LINE\r
41834         000464' 254000  001035' 04020           JRST COMLEV;    AND EXIT\r
41835 \r
41836         000465' 554440  000014  04040   DREST:  HLRZ INDEX,COTP;        DELETE THE REMAINING BUFFER\r
41837         000466' 275440  001064' 04050           SUBI INDEX,WB;  JUST DECREMENT SIZE\r
41838         000467' 542440  001060' 04060           HRRM INDEX,WBC; OF THE NEW BUFFER\r
41839         000470' 254000  000245' 04070           JRST INSE16;    DONE\r
41840 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 17\r
41841         EDITOR - AUGUST 25, 1965\r
41842 \r
41843         000471' 260140  000502' 04090   PRINT:  CAL GE2SEQ;     GET THE RANGE\r
41844         000472' 200011  000000  04100   PRLOOP: MOVE (INDEX);   GET A LINE\r
41845         000473' 322000  000533' 04110           JUMPE GETNEX;   ZERO IMPLIES END OF BUFFER - GET NEXT\r
41846         000474' 313000  000017  04120           CAMLE LAST;     ARE WE STILL IN THE BALLPARK\r
41847         000475' 254000  001035' 04130           JRST COMLEV;    NO, ALL DONE\r
41848         000476' 260140  000516' 04140           CAL STEP;       PREPARE FOR NEXT HUNT\r
41849         000477' 260140  000601' 04150           CAL OTLINE;     PRINT THIS LINE\r
41850         000500' 260140  000333' 04160           CAL FIND;       FIND THE NEXT LINE\r
41851         000501' 254000  000472' 04170           JRST PRLOOP;    LOOK AT IT\r
41852 \r
41853         000502' 260140  000616' 04190   GE2SEQ: CAL GETSEQ;     GET A 2 NUMBER RANGE\r
41854         000503' 334000  000000  04200           SKIPA;          THERE WERE TWO\r
41855         000504' 254000  000507' 04210           JRST GEX;       ONLY ONE\r
41856         000505' 242000  000001  04220           LSH 1;          JUSTIFY IT\r
41857         000506' 664000  000001  04230           TROA 1;         AND FLAG IT AS A SEQUENCE NUMBER\r
41858         000507' 200000  000015  04240   GEX:    MOVE SINDEX;    DUPLICATE THE INPUT NUMBER IF JUST ONE\r
41859         000510' 202000  000017  04250           MOVEM LAST;     STORE THE END OF THE RANGE\r
41860         000511' 260140  000333' 04260           CAL FIND;       SEARCH FOR THE FIRST LINE\r
41861         000512' 316740  001056' 04270           CAMN LAST,FIRST;        BOTH THE SAME\r
41862         000513' 316651  000000  04280           CAMN SINDEX,(INDEX);    BUT NO MATCH FOUNT\r
41863         000514' 263140  000000  04290           EXIT;           WILL SKIP THIS ONE\r
41864                                 04300           ERR 2;          AND *NLN*\r
41865         000515' 264100  000162'                 JSR 2,ERRORX\r
41866 \r
41867         000516' 261140  000016  04320   STEP:   SAVE CINDEX     ;PROTECT THE STEP\r
41868         000517' 201700  000001  04330           MOVEI CINDEX,1; PREPARE TO ADD ONE TO SINDEX\r
41869         000520' 202000  000015  04340           MOVEM SINDEX;   WHICH WE LOAD FROM ZERO\r
41870 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 24\r
41871         EDITOR - AUGUST 25, 1965\r
41872 \r
41873         000521' 254000  000306' 04420           JRST ASCIA+1;   AWAY\r
41874 \r
41875         000522' 200640  001056' 04440   PNEXT:  MOVE SINDEX,FIRST;      PRINT NEXT LINE\r
41876         000523' 200000  000015  04450           MOVE SINDEX;    UPDATE THE LINE POINTER\r
41877         000524' 260140  000516' 04460           CAL STEP;       NEXT LINE\r
41878         000525' 260140  000333' 04470           CAL FIND;       WHERE IS IT\r
41879         000526' 336651  000000  04480           SKIPN SINDEX,(INDEX);   ZERO IS END, ALSO LOAD SINDEX\r
41880                                 04490           ERR 2;          *NLN*\r
41881         000527' 264100  000162'                 JSR 2,ERRORX\r
41882         000530' 202640  001056' 04500           MOVEM SINDEX,FIRST;     STEP FIRST POINTER\r
41883         000531' 260140  000601' 04510           CAL OTLINE;     PRINT THE LINE\r
41884         000532' 254000  000137' 04520           JRST OUTTER;    BACK TO CONTROL\r
41885 \r
41886         000533' 602200  000020  04540   GETNEX: TRNE FL,S5;     END OF FILE\r
41887         000534' 254000  001035' 04550           JRST COMLEV;    YES, EXIT\r
41888         000535' 620200  000001  04560           TRZ FL,S0;      FORWARD\r
41889         000536' 260140  000045' 04570           CAL GET;        INPUT IT\r
41890         000537' 201440  001064' 04580           MOVEI INDEX,WB; FIRST ADDRESS\r
41891         000540' 254000  000472' 04590           JRST PRLOOP;    RETURN TO PRINT SCAN\r
41892 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 26\r
41893         TELETYPE IO - AUGUST 25, 1965\r
41894 \r
41895                                 04620   SUBTTL TELETYPE IO - AUGUST 25, 1965\r
41896 \r
41897                                 04640   ;OUTPUT SEQUENCE NUMBER\r
41898         000541' 350000  001043' 04650   OTSEQ:  AOS TYOBF1;     STEP THE WORD POINTER\r
41899 \r
41900 \r
41901         000542' 202660  001043' 04660           MOVEM SINDEX,@TYOBF1;   PUT THE SEQUENCE NO.\r
41902         000543' 201040  000211  04670           MOVEI 1,211;    AND A TAB\r
41903         000544' 136040  001043' 04680           IDPB 1,TYOBF1;  INTO THE OUTPUT BUFFER\r
41904         000545' 067100  000000  04690   OTSEQ4: OUTPUT TYP,0;   OUTPUT THE TELETYPE BUFFER\r
41905         000546' 263140  000000  04700           EXIT\r
41906 \r
41907                                 04720   ;INPUT ONE LINE FROM TELETYPE AND CONVERT TO SEQUENCED\r
41908 \r
41909         000547' 066100  000000  04740   GETLIN: INPUT TYP,0;    READ THE LINE\r
41910         000550' 201040  001314' 04750           MOVEI 1,TTB1;   PREEPARE TO BLOCK IT UP\r
41911         000551' 505040  001313' 04760           HRLI 1,TTB;     DESTINATION\r
41912         000552' 402000  001313' 04770           CLEARM TTB\r
41913         000553' 251040  001336' 04780           BLT 1,TTB16;    BLOCK IT UP\r
41914         000554' 200300  000600' 04790           MOVE TPT,KKK1;  PREPARE THE CONVERSION POINTER\r
41915         000555' 200240  001046' 04800           MOVE IPT,TYIBF1;        AND READ POINTER\r
41916         000556' 200100  001047' 04810           MOVE 2,TYIBF2;  AND THE COUNT\r
41917         000557' 202646  000000  04820           MOVEM SINDEX,(TPT);     PUT IN THE SEQUENCE\r
41918         000560' 201040  000211  04830           MOVEI 1,211;    TAB\r
41919         000561' 344300  000564' 04840           AOJA TPT,EOMLOP+2;      START CONVERSION\r
41920 \r
41921         000562' 361100  000571' 04860   EOMLOP: SOJL 2,EOMOUT;  IF ALL OUT OF CHARACTERS\r
41922         000563' 134040  000005  04870           ILDB 1,IPT;     READ ONE\r
41923         000564' 136040  000006  04880           IDPB 1,TPT;     WRITE ONE\r
41924         000565' 302040  000033  04890           CAIE 1,33;      ALTERNATE ALTMOD\r
41925         000566' 306040  000175  04900           CAIN 1,175;     REGULAR ALTMOD\r
41926         000567' 254000  000160' 04910           JRST CRT;               MAKE EXIT\r
41927         000570' 254000  000562' 04920           JRST EOMLOP;    GET MORE\r
41928 \r
41929         000571' 200500  000006  04940   EOMOUT: MOVE WC,TPT;    FORM WORD COUNT\r
41930         000572' 274500  000600' 04950           SUB WC,KKK1;    INITIAL VALUE\r
41931         000573' 553000  000012  04960           HRRZS WC;               CLEAR LEFT\r
41932         000574' 306040  000012  04970           CAIN 1,12;      LINE FEED\r
41933         000575' 271500  000001  04980           ADDI WC,1;      MEANS STEP COUNT\r
41934         000576' 350003  000000  04990   STEPEX: AOS (PDP);      SKIP EXIT\r
41935         000577' 263140  000000  05000           EXIT\r
41936         000600' 440700  001313' 05010   KKK1:   POINT 7,TTB;    INITIAL POINTER\r
41937 \r
41938                                 05030   ;OUTPUT ONE LINE OF TEXT\r
41939 \r
41940         000601' 200011  000000  05050   OTLINE: MOVE (INDEX);   FIRST WORD\r
41941         000602' 254000  000607' 05060           JRST OTL1\r
41942         000603' 200011  000000  05070           MOVE (INDEX);   SUBSEQUENT WORDS\r
41943         000604' 322000  000545' 05080           JUMPE OTSEQ4;   ZERO IMPLIES THE END OF THE WORLD\r
41944         000605' 602000  000001  05090           TRNE 1;         ONE IMPLIES THE END OF THE LINE\r
41945         000606' 254000  000545' 05100           JRST OTSEQ4\r
41946         000607' 350000  001043' 05110   OTL1:   AOS TYOBF1;     PUT IT IN THE OUTPUT BUFFER\r
41947         000610' 202020  001043' 05120           MOVEM @TYOBF1\r
41948 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 26-1\r
41949         TELETYPE IO - AUGUST 25, 1965\r
41950 \r
41951         000611' 344440  000603' 05130           AOJA INDEX,OTLINE+2;    GO FOR MORE\r
41952 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 27\r
41953         TELETYPE IO - AUGUST 25, 1965\r
41954 \r
41955                                 05150   ;GET ONE CHARACTER\r
41956 \r
41957         000612' 066100  000000  05170   GETCHR: INPUT TYP,0;    GET A LINE\r
41958         000613' 200240  001046' 05180           MOVE IPT,TYIBF1;        PREPARE INPUT POINTER\r
41959         000614' 134540  000005  05190           ILDB C,IPT;     LOAD THE FIRST CHARACTER\r
41960         000615' 263140  000000  05200           EXIT\r
41961 \r
41962                                 05220   ;GET A SEQUENCE PAIR\r
41963 \r
41964         000616' 403000  000015  05240   GETSEQ: CLEARB 0,SINDEX;        MAKE BOTH ZERO\r
41965         000617' 134540  000005  05250           ILDB C,IPT;     GET A CHARACTER\r
41966         000620' 301540  000060  05260           CAIL C,60;      IT MUST BE A NUMBER\r
41967         000621' 303540  000071  05270           CAILE C,71\r
41968         000622' 254000  000626' 05280           JRST ETEST;     OR A DELIMITER\r
41969         000623' 242640  000007  05290           LSH SINDEX,7;   NUMBER\r
41970         000624' 270640  000013  05300           ADD SINDEX,C;   NEW ONE\r
41971         000625' 254000  000617' 05310           JRST GETSEQ+1\r
41972 \r
41973         000626' 306540  000056  05330   ETEST:  CAIN C,56;      POINT?\r
41974         000627' 254000  000652' 05340           JRST PER\r
41975         000630' 306540  000054  05350           CAIN C,54;      COMMA?\r
41976         000631' 254000  000645' 05360           JRST CMMA\r
41977         000632' 332000  000015  05370           SKIPE SINDEX;   IF NOTHING INPUT YET\r
41978         000633' 302540  000015  05380           CAIE C,15;      OR NOT A CARRET\r
41979         000634'                 05390   COMERR: ERR 1;          ILLEGAL COMMAND\r
41980         000634' 264040  000162'                 JSR 1,ERRORX\r
41981         000635' 434640  000656' 05400           IOR SINDEX,KK4; MAKE IT AN ASCII THING\r
41982         000636' 332000  000000  05410           SKIPE 0;                IF TWO ARGS\r
41983         000637' 250640  000000  05420           EXCH SINDEX,0;  SWAP EM BACK\r
41984         000640' 242640  000001  05430           LSH SINDEX,1;   LEFT JUSTIFY\r
41985         000641' 660640  000001  05440           TRO SINDEX,1;   AND FLAG IT\r
41986         000642' 202640  001056' 05450           MOVEM SINDEX,FIRST;     SAVE IT FOR .\r
41987         000643' 322000  000576' 05460           JUMPE STEPEX;   ONLY ONE ARG\r
41988         000644' 263140  000000  05470           EXIT;           TWO ARGS\r
41989 \r
41990         000645' 322640  000634' 05490   CMMA:   JUMPE SINDEX,COMERR;    THREE ARGS?\r
41991         000646' 326000  000634' 05500           JUMPN COMERR;   ONE ARG\r
41992         000647' 434640  000656' 05510           IOR SINDEX,KK4; ASCII-IZE IT\r
41993         000650' 250640  000000  05520           EXCH SINDEX,0;  SWAP EM\r
41994         000651' 254000  000617' 05530           JRST GETSEQ+1\r
41995 \r
41996         000652' 326640  000634' 05550   PER:    JUMPN SINDEX,COMERR;    CANT BE THIRD ARG\r
41997         000653' 200640  001056' 05560           MOVE SINDEX,FIRST;      RETREIVE POINT\r
41998         000654' 242640  777777  05570           LSH SINDEX,-1;  RIGHT JUSTIFY\r
41999         000655' 254000  000617' 05580           JRST GETSEQ+1\r
42000 \r
42001         000656' 140603  014060  05600   KK4:    OCT 140603014060;       00000\r
42002 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 28\r
42003         DECSET - AUGUST 25, 1965\r
42004 \r
42005                                 05620   SUBTTL DECSET - AUGUST 25, 1965\r
42006 \r
42007                         001000  05640   FOPEN=1000\r
42008 \r
42009                                 05660   ;SET FILE OPEN (*SN,NAME)\r
42010 \r
42011         000657' 603200  001000  05680   DECINI: TLNE FL,FOPEN;  IF A FILE IS NOT ALREADY OPEN\r
42012                                 05690                           ;       THEN GOTO NORMAL PROCESS\r
42013                                 05700           ERR 1 ; IF FILE OPEN ,MUST CLOSE W. E\r
42014         000660' 264040  000162'                 JSR 1 ,ERRORX\r
42015         000661' 403200  001060' 05710   DECIN1: SETZB FL,WBC;   ZERO FLAGS AND WORD COUNT\r
42016         000662' 402000  001012' 05720           CLEARM DTNAME;  FILE NAME\r
42017         000663' 402000  001013' 05730           CLEARM DTNAME+1;        AND EXTENSION\r
42018         000664' 402000  001014' 05740           CLEARM DTNAME+2;        AND DATE\r
42019         000665' 260140  000710' 05750           CAL GTCHAR;     GET UNIT NUMBER\r
42020         000666' 301000  000060  05760           CAIL 60;                IT MUST BE A NUMBER\r
42021         000667' 303000  000070  05770           CAILE 70;\r
42022         000670' 254000  000665' 05780           JRST .-3;               IGNORE ANYTHING ELSE\r
42023         000671' 137000  001337' 05790           DPB [POINT 5,PLUNK,23]; DUMP INTO INIT COMMAND\r
42024         000672' 260140  000710' 05800           CAL GTCHAR;     NEXT CHARACTER\r
42025         000673' 302000  000054  05810           CAIE 54;                COMMA?\r
42026         000674' 254000  000672' 05820           JRST .-2;               IGNORE ALL ELSE\r
42027         000675' 200040  001340' 05830   LOOP0:  MOVE 1,[POINT 6,DTNAME];        INITIALIZE NAME POINTER\r
42028         000676' 201540  000006  05840           MOVEI C,6;      MAX NAME LENGTH\r
42029         000677' 260140  000710' 05850   LOOP:   CAL GTCHAR;     GET A CHARACTER\r
42030         000700' 301000  000060  05860           CAIL "0";               NUMBERS AND LETTERS ONLY COME HERE\r
42031         000701' 303000  000071  05870           CAILE "9";      SO HERE FILTER NUMBERS\r
42032         000702' 254000  001000' 05880           JRST LOOP1;     IT IS A LETTER\r
42033         000703' 640000  000040  05890   LOOP2:  TRC 40; NUMBER - MAKE IT SIXBIT\r
42034         000704' 136000  000001  05900           IDPB 1;         STORE INTO NAME (OR EXTENSION)\r
42035         000705' 367540  000677' 05910           SOJG C,LOOP;    COUNT DOWN FOR SIZE\r
42036         000706' 260140  000710' 05920           CAL GTCHAR;     NEXT CHARACTER\r
42037         000707' 254000  000706' 05930           JRST .-1;\r
42038 \r
42039 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 29\r
42040         DECSET - AUGUST 25, 1965\r
42041 \r
42042         000710' 134000  000005  05960   GTCHAR: ILDB IPT;               LOAD ONE CHARACTER\r
42043         000711' 306000  000015  05970           CAIN 15;                CRT\r
42044         000712' 254000  000727' 05980           JRST GET1;      SNEAK EXIT\r
42045         000713' 306000  000056  05990           CAIN ".";       AN EXTENSION IS COMMING\r
42046         000714' 254000  001004' 06000           JRST GET2;      FIX IT UP\r
42047         000715' 302000  000033  06010           CAIE 33;                THE FUNNY ALTMODE\r
42048         000716' 306000  000175  06020           CAIN 175;               AND THE REAL ONE\r
42049         000717' 254000  000726' 06030           JRST    GET11   ;CAUSE EXIT TO OCCUR\r
42050         000720' 306000  000012  06040           CAIN    0,12    ;LF CHAR?\r
42051         000721' 254000  000727' 06050           JRST GET1       ; YES TREAT AS CR\r
42052         000722' 302000  000001  06060           CAIE 1;         CONTROL A\r
42053         000723' 263140  000000  06070           EXIT;           NOTA SO EXIT HAPPY\r
42054         000724' 661200  000100  06080           TLO FL,100;     SET CONTROL A FLAG\r
42055         000725' 254000  000710' 06090           JRST GTCHAR;    GET ANOTHER CHARACTER\r
42056         000726' 661200  000002  06100   GET11:  TLO     FL,2    ;NEW FILE FLAG\r
42057 \r
42058         000727' 262140  000000  06120   GET1:   UNSAVE; POP OFF EXIT\r
42059         000730' 201000  001050' 06130   GO:     MOVEI DTOBUF;   THESE TWO INSTRUCTIONS REQUIRED\r
42060         000731' 506000  000736' 06140           HRLM PLUNK+1;   REQUIRED TO LINK LEFT HALF\r
42061         000732' 200000  001057' 06150           MOVE SJOBFF;    RESET JOB AREA\r
42062         000733' 202000  000000* 06160           MOVEM JOBFF;    TO PREVENT STORAGE EAT-UP\r
42063         000734' 041140  000000  06170           INIT DT,0;      INITIALIZE DECTAPE\r
42064         000735' 446441  000000  06180   PLUNK:  SIXBIT /DTA/;   RIGHT HALF SET ABOVE\r
42065         000736' 000000  001053' 06190           XWD 0,DTIBUF;   LEFT HALF SET ABOVE\r
42066                                 06200           ERR 5;          UNIT NOT AVAILABLE\r
42067         000737' 264240  000162'                 JSR 5,ERRORX\r
42068         000740' 205000  400000  06210           MOVSI 400000;   USE BIT\r
42069         000741' 412000  001062' 06220           ANDCAM DTB;     CLEAR IT\r
42070         000742' 541000  001062' 06230           HRRI DTB;               HEAD OF BUFFER\r
42071         000743' 202000  001053' 06240           MOVEM DTIBUF;   SETUP IN HEADER\r
42072         000744' 065140  000001  06250           OUTBUF DT,1;    SET UP SINGLE BUFFER\r
42073         000745' 623200  000100  06260           TLZE FL,100;    NEW DIRECTORY?\r
42074         000746' 047140  000013  06270           CALLI DT,13;    YES, ZONK IT (UTPCLR)\r
42075         000747' 336000  001012' 06280           SKIPN DTNAME;   NO NAME MEANS JUST CLEAR, PROB\r
42076         000750' 254000  000133' 06290           JRST FINIS2;    SO EXIT AND CLOSE FILE\r
42077         000751' 076140  001012' 06300           LOOKUP DT,DTNAME;       IS THE NAME ALRRADY THERE\r
42078         000752' 254000  000772' 06310           JRST NEWFIL;    NO, SO WE ENTER IT\r
42079         000753' 603200  000002  06320           TLNE FL,2;      ARE WE ASKING FOR A NEW FILE\r
42080                                 06330           ERR 10;         YES, FAU\r
42081         000754' 264400  000162'                 JSR 10,ERRORX\r
42082 \r
42083         000755' 200100  001013' 06350   DOIT:   MOVE 2,DTNAME+1;        GET LINK\r
42084         000756' 074142  000000  06360           USETI DT,(2);   SET IT UP\r
42085         000757' 067140  000000  06370           OUTPUT DT,;     MAKE SYSTEM HAPPY\r
42086         000760' 075142  000000  06380           USETO DT,(2);   SET UP OUTPUT ALSO\r
42087         000761' 627200  000010  06390           TLZN FL,10;     NEW FILE?\r
42088         000762' 254000  000767' 06400           JRST DOIT1;     NO, ALMOST DONE\r
42089         000763' 402000  001063' 06410           SETZM WBF;      WE MUST FORCE AN EMPTY BLOCK\r
42090         000764' 661200  000001  06420           TLO FL,1;               SET BUFFER FULL FLAG\r
42091         000765' 402000  001060' 06430           SETZM WBC;      ZERO LENGTH\r
42092         000766' 660200  000530  06440           TRO FL,S3+S5+S6+S8;     INITIAL STATE, FIRST BLOCK MODIFIED\r
42093         000767' 202100  000135' 06450   DOIT1:  MOVEM 2,THSBLK; SETUP CURRENT BLOCK NUMBER\r
42094         000770' 661200  001000  06460           TLO FL,FOPEN;   SET FILE STATUS TO OPEN\r
42095 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 29-1\r
42096         DECSET - AUGUST 25, 1965\r
42097 \r
42098         000771' 254000  001035' 06470           JRST COMLEV;    ALL DONE\r
42099 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 30\r
42100         DECSET - AUGUST 25, 1965\r
42101 \r
42102         000772' 607200  000002  06490   NEWFIL: TLNN FL,2;      WAS ALTMOD STRUCK\r
42103                                 06500           ERR 11;         NO, NCF\r
42104         000773' 264440  000162'                 JSR 11,ERRORX\r
42105         000774' 077140  001012' 06510           ENTER DT,DTNAME;        PUT IN DI\r
42106                                 06520           ERR 6;          DCE\r
42107         000775' 264300  000162'                 JSR 6,ERRORX\r
42108         000776' 661200  000010  06530           TLO FL,10;      SET NEW FILE FLAG\r
42109         000777' 254000  000755' 06540           JRST DOIT;\r
42110 \r
42111         001000' 301000  000101  06560   LOOP1:  CAIL "A";       LETTER CHECK\r
42112         001001' 303000  000132  06570           CAILE "Z";      IT MUST VERILY BE A LETTER\r
42113         001002' 254000  000677' 06580           JRST LOOP;      WE IGNORE IT\r
42114         001003' 254000  000703' 06590           JRST LOOP2;     WE PROCESS IT\r
42115 \r
42116         001004' 332000  001013' 06610   GET2:   SKIPE DTEXTN;   EXTENSION?\r
42117                                 06620           ERR 1;          ALREADY GOT ONE, CANT HAVE TWO\r
42118         001005' 264040  000162'                 JSR 1,ERRORX\r
42119         001006' 621040  770000  06630           TLZ 1,770000;   MAGIC TO BYTE POINTER TO POINT TO NEXT\r
42120         001007' 201540  000003  06640           MOVEI C,3;      ONLY 3 LETTERS IN EXTENSION\r
42121         001010' 262140  000000  06650           UNSAVE;         POP OF SOME GARBAGE\r
42122         001011' 254000  000677' 06660           JRST LOOP;      RETURN TO LISTEN\r
42123 \r
42124         001012' 000000  000000  06680   DTNAME: 0;      FILE NAME\r
42125         001013' 000000  000000  06690   DTEXTN: 0;      FILE EXTENSION\r
42126         001014' 000000  000000  06700   DTDATE: 0;      DATE\r
42127         001015' 000000  000000  06710           0;              DUMMY\r
42128 \r
42129                         001013' 06730   FBNUM=DTEXTN\r
42130 \r
42131 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 31\r
42132         INITIA - AUGUST 25, 1965\r
42133 \r
42134                                 06760   SUBTTL INITIA - AUGUST 25, 1965\r
42135                         000001  06770   AL=1\r
42136         001016' 047000  000000  06780   INITIA: CALLI 0,0;      RESET SYSTEM\r
42137         001017' 041100  000001  06790           INIT TYP,AL;    RESET CONCOLE\r
42138         001020' 646471  000000  06800           SIXBIT /TTY/\r
42139         001021' 001042' 001045' 06810           XWD TYOBUF,TYIBUF\r
42140         001022' 254200  000000  06820           HALT\r
42141         001023' 064100  000001  06830           INBUF TYP,1;    SET UP ONE INPUT BUFFER\r
42142         001024' 065100  000002  06840           OUTBUF TYP,2;   AND TWO OUTPUT BUFFERS\r
42143         001025' 200000  000733* 06850           MOVE JOBFF;     SAVE FIRST FREE\r
42144         001026' 202000  001057' 06860           MOVEM SJOBFF;   FOR LATER RESTART\r
42145         001027' 067100  000000  06870           OUTPUT TYP,0;   MAKE SYSTEM HAPPY\r
42146         001030' 200700  001041' 06880   INITIX: MOVE CINDEX,KK1;        INITIALIZE STEP TO 10\r
42147         001031' 201140  001303' 06890           MOVEI PDP,PDSTAK-1;     INITIALIZE PUSHDOWN POINTER\r
42148         001032' 403640  000004  06900           CLEARB SINDEX,FL;       FLAGS AND SEQUENCE INDEX\r
42149         001033' 211400  000001  06910           MOVNI P,1;      AND FIRST BLOCK POINTER\r
42150         001034' 402000  001060' 06920           CLEARM WBC;     WORD COUNT\r
42151         001035' 260140  000160' 06930   COMLEV: CAL CRT;        A COMMON RETURN\r
42152         001036' 301200  000000  06940           CAIL FL,0 ; DDE ERROR\r
42153         001037' 254000  000137' 06950           JRST OUTTER    ; NO, SO OFF TO LISTEN CONTROL\r
42154         001040' 254000  001016' 06960           JRST INITIA   ; YES GO RESET WORLD\r
42155 \r
42156                                 06980   ;BUFFERS, ET. AL.\r
42157         001041' 140603  014260  06990   KK1:    OCT 140603014260;       00010\r
42158         001042'                 07000   TYOBUF: BLOCK 3\r
42159         001045'                 07010   TYIBUF: BLOCK 3\r
42160 \r
42161         001050'                 07030   DTOBUF: BLOCK 3\r
42162         001053' 000000  000000  07040   DTIBUF: 0\r
42163         001054' 000700  000000  07050           XWD 700,0;      SELF ASSIGNED BUFFERS, ETC.\r
42164         001055' 000000  000000  07060           0\r
42165 \r
42166         001056' 000000  000000  07080   FIRST:  0\r
42167         001057' 000000  000000  07090   SJOBFF: 0\r
42168 \r
42169         001060' 000000  000000  07110   WBC:    0;              WORKING BUFFER COUNT\r
42170         001061' 000000  000000  07120           0\r
42171         001062' 000200  001062' 07130   DTB:    XWD 200,DTB;    DECTAPE HEADER\r
42172         001063' 000000  000000  07140   WBF:    0\r
42173         001064'                 07150   WB:     BLOCK 217;      THE WORKING BUFFER\r
42174         001303' 624563  456400  07160   RESTT:  SIXBIT .RESET.\r
42175 \r
42176         001304'                 07180   PDSTAK: BLOCK 7;        PUSHDOWN STAK\r
42177         001313'                 07190   TTB:    BLOCK 23;       TELETYPE BUFFER-BUFFER\r
42178         001336' 000000  000000  07200   TTB16:  0\r
42179 \r
42180                         001314' 07220   TTB1=TTB+1\r
42181                         001046' 07230   TYIBF1=TYIBUF+1\r
42182                         001047' 07240   TYIBF2=TYIBUF+2\r
42183                         001043' 07250   TYOBF1=TYOBUF+1\r
42184                         001051' 07260   DTOBF1=DTOBUF+1\r
42185 \r
42186                                 07280   EXTERNAL JOBFF\r
42187 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 31-1\r
42188         INITIA - AUGUST 25, 1965\r
42189 \r
42190         001337'                 07290   EDEND:\r
42191 \r
42192                         001016' 07310   END INITIA\r
42193         001337' 140500  000735'\r
42194         001340' 440600  001012'\r
42195 \r
42196 NO ERRORS DETECTED\r
42197 \r
42198 PROGRAM BREAK IS 001341\r
42199 \r
42200 8K CORE USED\r
42201 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 32\r
42202         SYMBOL TABLE\r
42203 \r
42204                 000247  \r
42205 AC1             000001  \r
42206 AC2             000002  \r
42207 AC3             000005  \r
42208 AC4             000006  \r
42209 AL              000001  \r
42210 ASCIA           000305' \r
42211 ATSALL          000004' \r
42212 BACK            000262' \r
42213 BACK1           000252' \r
42214 C               000013  \r
42215 CAL     260140  000000  \r
42216 CINDEX          000016  \r
42217 CLEARE          000246' \r
42218 CMMA            000645' \r
42219 COMERR          000634' \r
42220 COMLEV          001035' \r
42221 COTP            000014  \r
42222 CRM             000171' \r
42223 CRT             000160' \r
42224 CSIZE           000414' \r
42225 DECIN1          000661' \r
42226 DECINI          000657' \r
42227 DELETE          000425' \r
42228 DELOOP          000426' \r
42229 DEQ             000447' \r
42230 DEX             000450' \r
42231 DINB            000451' \r
42232 DOIT            000755' \r
42233 DOIT1           000767' \r
42234 DREST           000465' \r
42235 DT              000003  \r
42236 DTB             001062' \r
42237 DTDATE          001014' \r
42238 DTEXTN          001013' \r
42239 DTIBUF          001053' \r
42240 DTNAME          001012' \r
42241 DTOBF1          001051' \r
42242 DTOBUF          001050' \r
42243 DUMPB           000106' \r
42244 DUMX            000122' \r
42245 EDEND           001337' \r
42246 EMPT            000436' \r
42247 EOMLOP          000562' \r
42248 EOMOUT          000571' \r
42249 EPT             000204' \r
42250 ERRORX          000162' \r
42251 ERROX1          000166' \r
42252 ERROX2          000167' \r
42253 ERT             000172' \r
42254 ETEST           000626' \r
42255 EXIT    263140  000000  \r
42256 FBNUM           001013' \r
42257 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 32-1\r
42258         SYMBOL TABLE\r
42259 \r
42260 FILLB           000000' \r
42261 FILLB1          000041' \r
42262 FIND            000333' \r
42263 FIND1           000334' \r
42264 FIND2           000335' \r
42265 FIND3           000400' \r
42266 FIND3A          000372' \r
42267 FIND4           000365' \r
42268 FINDA           000360' \r
42269 FINDC           000367' \r
42270 FINDEQ          000402' \r
42271 FINDES          000406' \r
42272 FINDR           000370' \r
42273 FINDX           000353' \r
42274 FINIS2          000133' \r
42275 FINISH          000131' \r
42276 FIRST           001056' \r
42277 FL              000004  \r
42278 FOPEN           001000  \r
42279 GE2SEQ          000502' \r
42280 GET             000045' \r
42281 GET0            000055' \r
42282 GET1            000727' \r
42283 GET11           000726' \r
42284 GET2            001004' \r
42285 GETCHR          000612' \r
42286 GETF            000075' \r
42287 GETL            000073' \r
42288 GETL1           000100' \r
42289 GETLIN          000547' \r
42290 GETN            000047' \r
42291 GETNEX          000533' \r
42292 GETSEQ          000616' \r
42293 GEX             000507' \r
42294 GO              000730' \r
42295 GTCHAR          000710' \r
42296 IAMTEM          000136' \r
42297 INDEX           000011  \r
42298 INITIA          001016' \r
42299 INITIX          001030' \r
42300 INSE            000205' \r
42301 INSE1           000235' \r
42302 INSE16          000245' \r
42303 INSE2           000210' \r
42304 INSE3           000216' \r
42305 INSED           000227' \r
42306 INSEG           000264' \r
42307 INSER           000272' \r
42308 INSEX           000276' \r
42309 IPT             000005  \r
42310 ITAB            000303' \r
42311 JOBFF           001025' EXT\r
42312 K1              000326' \r
42313 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 32-2\r
42314         SYMBOL TABLE\r
42315 \r
42316 K2              000327' \r
42317 K3              000330' \r
42318 K4              000331' \r
42319 K5              000332' \r
42320 KK1             001041' \r
42321 KK4             000656' \r
42322 KKK1            000600' \r
42323 LAST            000017  \r
42324 LOOP            000677' \r
42325 LOOP0           000675' \r
42326 LOOP1           001000' \r
42327 LOOP2           000703' \r
42328 NEWFIL          000772' \r
42329 OTL1            000607' \r
42330 OTLINE          000601' \r
42331 OTSEQ           000541' \r
42332 OTSEQ4          000545' \r
42333 OUTTER          000137' \r
42334 P               000010  \r
42335 PDP             000003  \r
42336 PDSTAK          001304' \r
42337 PER             000652' \r
42338 PLUNK           000735' \r
42339 PNEXT           000522' \r
42340 PRINT           000471' \r
42341 PRLOOP          000472' \r
42342 RESTT           001303' \r
42343 S0              000001  \r
42344 S1              000002  \r
42345 S2              000004  \r
42346 S3              000010  \r
42347 S4              000040  \r
42348 S5              000020  \r
42349 S6              000100  \r
42350 S7              000200  \r
42351 S8              000400  \r
42352 SAVE    261140  000000  \r
42353 SINDEX          000015  \r
42354 SJOBFF          001057' \r
42355 SLURP           000057' \r
42356 STEP            000516' \r
42357 STEPEX          000576' \r
42358 THSBLK          000135' \r
42359 TPT             000006  \r
42360 TTB             001313' \r
42361 TTB1            001314' \r
42362 TTB16           001336' \r
42363 TYIBF1          001046' \r
42364 TYIBF2          001047' \r
42365 TYIBUF          001045' \r
42366 TYOBF1          001043' \r
42367 TYOBUF          001042' \r
42368 TYP             000002  \r
42369 \r\fEDITOR   V.003        1 APRIL 1968                 PAGE 32-3\r
42370         SYMBOL TABLE\r
42371 \r
42372 UNSAVE  262140  000000  \r
42373 WB              001064' \r
42374 WBC             001060' \r
42375 WBF             001063' \r
42376 WC              000012  \r
42377 \fFFFFFFFFFFFFFFF      UUU         UUU      DDDDDDDDDDDD            GGGGGGGGGGGG      EEEEEEEEEEEEEEE         222222222   \r
42378 FFFFFFFFFFFFFFF      UUU         UUU      DDDDDDDDDDDD            GGGGGGGGGGGG      EEEEEEEEEEEEEEE         222222222   \r
42379 FFFFFFFFFFFFFFF      UUU         UUU      DDDDDDDDDDDD            GGGGGGGGGGGG      EEEEEEEEEEEEEEE         222222222   \r
42380 FFF                  UUU         UUU      DDD         DDD      GGG                  EEE                  222         222\r
42381 FFF                  UUU         UUU      DDD         DDD      GGG                  EEE                  222         222\r
42382 FFF                  UUU         UUU      DDD         DDD      GGG                  EEE                  222         222\r
42383 FFF                  UUU         UUU      DDD         DDD      GGG                  EEE                              222\r
42384 FFF                  UUU         UUU      DDD         DDD      GGG                  EEE                              222\r
42385 FFF                  UUU         UUU      DDD         DDD      GGG                  EEE                              222\r
42386 FFFFFFFFFFFF         UUU         UUU      DDD         DDD      GGG                  EEEEEEEEEEEE                  222   \r
42387 FFFFFFFFFFFF         UUU         UUU      DDD         DDD      GGG                  EEEEEEEEEEEE                  222   \r
42388 FFFFFFFFFFFF         UUU         UUU      DDD         DDD      GGG                  EEEEEEEEEEEE                  222   \r
42389 FFF                  UUU         UUU      DDD         DDD      GGG   GGGGGGGGG      EEE                        222      \r
42390 FFF                  UUU         UUU      DDD         DDD      GGG   GGGGGGGGG      EEE                        222      \r
42391 FFF                  UUU         UUU      DDD         DDD      GGG   GGGGGGGGG      EEE                        222      \r
42392 FFF                  UUU         UUU      DDD         DDD      GGG         GGG      EEE                     222         \r
42393 FFF                  UUU         UUU      DDD         DDD      GGG         GGG      EEE                     222         \r
42394 FFF                  UUU         UUU      DDD         DDD      GGG         GGG      EEE                     222         \r
42395 FFF                  UUUUUUUUUUUUUUU      DDDDDDDDDDDD            GGGGGGGGG         EEEEEEEEEEEEEEE      222222222222222\r
42396 FFF                  UUUUUUUUUUUUUUU      DDDDDDDDDDDD            GGGGGGGGG         EEEEEEEEEEEEEEE      222222222222222\r
42397 FFF                  UUUUUUUUUUUUUUU      DDDDDDDDDDDD            GGGGGGGGG         EEEEEEEEEEEEEEE      222222222222222\r
42398 \r
42399 \r
42400 \r
42401 \r
42402 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
42403 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
42404 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
42405 LLL                  SSS                        TTT                                                                     \r
42406 LLL                  SSS                        TTT                                                                     \r
42407 LLL                  SSS                        TTT                                                                     \r
42408 LLL                  SSS                        TTT                                                                     \r
42409 LLL                  SSS                        TTT                                                                     \r
42410 LLL                  SSS                        TTT                                                                     \r
42411 LLL                     SSSSSSSSS               TTT                                                                     \r
42412 LLL                     SSSSSSSSS               TTT                                                                     \r
42413 LLL                     SSSSSSSSS               TTT                                                                     \r
42414 LLL                              SSS            TTT                                                                     \r
42415 LLL                              SSS            TTT                                                                     \r
42416 LLL                              SSS            TTT                                                                     \r
42417 LLL                              SSS            TTT                                                                     \r
42418 LLL                              SSS            TTT                                                                     \r
42419 LLL                              SSS            TTT                                                                     \r
42420 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
42421 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
42422 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
42423 \r
42424 \r
42425 \r
42426 \r
42427 Request created: 24-April-1978  11:23:08\r
42428 File: DSKB0 :FUDGE2.LST   [8,200] Created: 20-April-1967 11:20:00 Printed: 24-April-1978 11:22:32
42429 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1593 \r
42430 File will be deleted after printing\r
42431 \f\rFUDGE2  V.011                 PAGE 1\r
42432         2-OCT-70        ED YOURDON/VJC/DMN\r
42433 \r
42434                                 00010   TITLE   FUDGE2  V.011\r
42435                                 00020   SUBTTL  2-OCT-70        ED YOURDON/VJC/DMN\r
42436                                 00030   ;FILE UPDATE GENERATOR\r
42437                                 00040   ;"COPYRIGHT 1968,1969,DIGITAL EQUIPMENT CORP. MAYNARD,MASS. U.S.A."\r
42438 \r
42439                         000011  00060           VFUDGE==11              ;VERSION NUMBER\r
42440                         000000  00070           VPATCH==0               ;DEC PATCH LEVEL\r
42441                         000000  00080           VCUSTOM==0              ;NON-DEC PATCH LEVEL\r
42442 \r
42443                         000137  00100           JOBVER==137\r
42444         000137                  00110           LOC     JOBVER\r
42445         000137  000000  000011  00120           XWD VCUSTOM,VFUDGE+VPATCH*1000\r
42446         000000'                 00130           RELOC\r
42447                                 00140           MLON\r
42448 \r
42449                                 00160   ;FUDGE ACCUMULATOR DEFINITIONS\r
42450 \r
42451                         000001  00180           A=      1               ;GENERAL COMMUNICATION AC\r
42452                         000002  00190           B=      2               ;SCRATCH ACCUMULATOR\r
42453                         000003  00200           T=      3               ;USED IN /C AND /X ONLY\r
42454                         000004  00210           C=      4               ;SCRATCH ACCUMULATOR\r
42455                         000005  00220           D=      5               ;IO DEVICE NUMBER ACCUMULATOR\r
42456                         000006  00230           E=      6               ;SCRATCH ACCUMULATOR\r
42457                         000007  00240           F=      7               ;FLAG ACCUMULATOR\r
42458                         000010  00250           G=      10              ;DEVICE CHARACTERISTICS AC\r
42459                         000011  00260           H=      11              ;USED IN GETCHR AND GETCMN\r
42460                         000012  00270           P=      12              ;PUSHDOWN POINTER AC\r
42461                         000013  00280           R=      13              ;PROGRAM NAME-USED IN READ,WRITE\r
42462                         000014  00290           S=      14              ;SIXBIT SYMBOL ACCUMULATOR\r
42463                         000015  00300           DIS=    15              ;DISPATCH ACCUMULATOR\r
42464                         000016  00310           EXT=    16              ;FILE NAME EXTENSION ACCUMULATOR\r
42465                         000017  00320           SW=     17              ;SWITCH UUO AC\r
42466 \r
42467 \r\fFUDGE2  V.011                 PAGE 2\r
42468         2-OCT-70        ED YOURDON/VJC/DMN\r
42469 \r
42470                                 00350   ;FUDGE FLAG DEFINITIONS (RIGHT HALF OF ACCUMULATOR F)\r
42471 \r
42472                         000001  00370           DESTB== 1               ;1-DESTINATION DEVICE SEEN\r
42473                         000002  00380           SAVEB== 2               ;1-SWITCH SEEN,BUT NOT EXECUTED\r
42474                         000004  00390           SWTB==  4               ;1-SWITCH MODE ENTERED IN GETCHR\r
42475                         000010  00400           SLSHB== 10              ;1-SWITCH MODE ENTERED WITH </>\r
42476                         000020  00410           TTYOB== 20              ;1-NON-TTY OUTPUT;USED BY IO\r
42477                         000040  00420           TTYCB== 40              ;1-NON-TTY OUTPUT;USED BY COMMAND\r
42478                         000100  00430           PROGB== 100             ;1-PROGRAM NAME SEEN IN SPECIFICATION\r
42479                         000200  00440           NOLOCB==200             ;1-DELETE LOCAL SYMBOLS ***VJC\r
42480                         000400  00450           DEVB==  400             ;1-DEVICE NAME SEEN IN SPEC.\r
42481                         001000  00460           EXTB==  1000            ;1-EXPLICIT FILE NAME EXTENSION\r
42482                         002000  00470           ERRB==  2000            ;1-ERROR IN ENTRY BLOCK CHECK\r
42483                         004000  00480           INFOB== 4000            ;1-VALID INFORMATION IN COMMAND\r
42484                         010000  00490           CONB==  10000           ;1-CONTEXT OF <.> IS PROGRAM NAME\r
42485                                 00500                                   ;0-CONTEXT OF <.> IS FILE NAME\r
42486                         020000  00510           F4IB==  20000           ;1-IGNORE F4 OUTPUT\r
42487                         040000  00520           CRLFTY==40000           ;1-CR,LF TYPED (FOR ERROR MSG)\r
42488                         100000  00530           POPBAK==100000          ;1-XCT POPJ P,  ;TO RETURN TO CALLING SEQ.\r
42489                         200000  00540           XFLG==  200000          ;1-INDEX THIS FILE\r
42490                         400000  00550           DTAFLG==400000          ;1-OUTPUT DEVICE IS DTA (SPECIAL INDEX)\r
42491 \r\fFUDGE2  V.011                 PAGE 3\r
42492         2-OCT-70        ED YOURDON/VJC/DMN\r
42493 \r
42494 \r
42495 \r
42496 \r
42497                                 00600   ;HANDY BITS FOR CALLS TO DEVCHR FOR DEVICE CHARACTERISTICS\r
42498                         000001  00610           OUTBIT==1               ;1-DEVICE CAN DO OUTPUT\r
42499                         000002  00620           INBIT== 2               ;1-DEVICE CAN DO INPUT\r
42500                         000004  00630           DRCTRB==4               ;1-DEVICE HAS A DIRECTORY\r
42501                         000010  00640           TTYBIT==10              ;1-DEVICE IS A TTY\r
42502                         000100  00650           DTABIT==100             ;1-DEVICE IS A DTA\r
42503                         040000  00660           LPTBIT==40000           ;1-DEVICE IS LPT\r
42504                         200000  00670           DSKBIT==200000          ;1-DEVICE IS DSK\r
42505 \r
42506                                 00690   ;OTHER USEFUL PARAMETER ASSIGNMENTS\r
42507                         000200  00700           N==     200             ;SIZE OF MASTER AND TRAN BUFFERS\r
42508                         000020  00710           XP==    20              ;SIZE OF PUSHDOWN LIST\r
42509                         000500  00720           SIZE==  500             ;SIZE OF PURE ENTRY BLOCK\r
42510                         000505  00730           X==     SIZE+5          ;SIZE OF ENTRY AND SAVE BLOCKS\r
42511                         020000  00740           IOEOF== 20000           ;1-END-OF-FILE HAS BEEN SEEN\r
42512                         040000  00750           IOBKTL==40000           ;1-BLOCK-TOO-LARGE ERROR\r
42513                         100000  00760           IODATA==100000          ;1-DATA ERROR\r
42514                         200000  00770           IODEV== 200000          ;1-DEVICE ERROR\r
42515                         004000  00780           IOBOT== 4000            ;1-MAG TAPE IS AT BEGINNING OF TAPE\r
42516 \r
42517                         000011  00800           RIBALC==11              ;NUMBER OF BLOCKS ALLOCATED\r
42518 \r
42519                                 00820   ;EXTERNAL SYMBOLS\r
42520                                 00830           EXTERN  JOBFF, JOBREL, JOBSYM, JOBSA\r
42521 \r
42522                                 00850   OPDEF   JSR     [PUSHJ  P,]     ;PURE FOR RE-ENTRANT FUDGE\r
42523 \r
42524 \r\fFUDGE2  V.011                 PAGE 4\r
42525         INITIALIZE AND SETUP OF FUDGE2\r
42526 \r
42527                                 00880   SUBTTL INITIALIZE AND SETUP OF FUDGE2\r
42528                                 00890   ;THIS SECTION OF CODING DOES THE FOLLOWING THINGS\r
42529                                 00900   ;       1.RESETS ALL IO DEVICES BY CALLING [SIXBIT /RESET/]\r
42530                                 00910   ;       2.INITIALIZES THE TELETYPE IN ASCII-LINE MODE\r
42531                                 00920   ;       3.TYPES A * TO SIGNIFY READINESS FOR INPUT FROM USER\r
42532                                 00930   ;       4.SETS UP A PUSHDOWN LIST\r
42533                                 00940   ;       5.INITIALIZES VARIOUS ACCUMULATORS, CLEARS THE FLAGS,\r
42534                                 00950   ;         AND INITIALIZES THE MSTBUF AND TRNBUF COUNTERS\r
42535 \r
42536         000000' 255000  000000  00970   FUDGE2: JFCL                    ;INCASE OF CCL ENTRY\r
42537         000001' 000000  000000  00980           RESET                   ;RESET I/O DEVICES   \r
42538         000002' 200000  005126' 00990           MOVE    [XWD LOW,LOW+1]\r
42539         000003' 402000  002515' 01000           SETZM   LOW             ;CLEAR DATA AREA\r
42540         000004' 251000  005116' 01010           BLT     LOWTOP-1\r
42541         000005' 200000  005127' 01020           MOVE    [XWD 17,11]     ;TEST FOR LEVEL D\r
42542         000006' 400000  000000  01030           SETZ                    ;FAILED, NOT LEVEL D\r
42543         000007' 607000  003400  01040           TLNN    (7B9)           ;IS IT LEVEL D OR LATER?\r
42544         000010' 634000  000000  01050           TDZA                    ;NO\r
42545         000011' 561000  777776  01060           HRROI   -2              ;THIS IS LEVEL D\r
42546         000012' 202000  005111' 01070           MOVEM   LEVEL           ;STORE STATE\r
42547         000013' 400000  000000  01080           SETZ                    ;CLEAR ACC'S\r
42548         000014' 201740  000001  01090           MOVEI   17,1            ;WITH A BLT OF ZERO\r
42549         000015' 251740  000017  01100           BLT     17,17           ;FROM 0-17\r
42550         000016' 041000  000001  01110           INIT    0,1             ;INITIALIZE TTY, CHANNEL 0\r
42551         000017' 646471  000000  01120           SIXBIT  /TTY/           ;TTY\r
42552         000020' 004602' 004610' 01130           XWD     OBUF, IBUF      ;ADDRESSES FOR BUFFER HEADERS\r
42553         000021' 254200  000021' 01140           HALT    .               ;ILLEGAL INSTRUCTION IF NO TTY\r
42554         000022' 067000  000000  01150           OUTPUT  0,              ;DUMMY OUTPUT ON TTY\r
42555         000023' 201040  000052  01160           MOVEI   A, "*"          ;PICK UP A <*>\r
42556         000024' 136040  004603' 01170           IDPB    A, OBUF+1       ;TYPE IT OUT\r
42557         000025' 067000  000000  01180           OUTPUT  0,              ;EMPTY THE BUFFER\r
42558         000026' 200500  005125' 01190           MOVE    P, XPDLST       ;SET UP A PUSHDOWN POINTER\r
42559         000027' 561240  000001  01200           HRROI   D,1             ;INITIALIZE DEVICE BUFFER\r
42560         000030' 202240  003324' 01210           MOVEM   D, DEVBUF       ;...\r
42561         000031' 205040  777600  01220           MOVSI   A, -N           ;GET COUNT OF MSTBUF AND TRNBUF\r
42562         000032' 541040  002525' 01230           HRRI    A, FILBUF+1     ;INITIALIZE POINTER IN FILBUF\r
42563         000033' 202040  002524' 01240           MOVEM   A, FILBUF       ;SET UP COUNT IN FILE BUFFER\r
42564         000034' 541040  002725' 01250           HRRI    A, PRGBUF+1     ;INITIALIZE POINTER IN PRGBUF\r
42565         000035' 202040  002724' 01260           MOVEM   A, PRGBUF       ;...\r
42566         000036' 541040  003124' 01270           HRRI    A,PPNBUF        ;INITIAL POINTER IN PPNBUF\r
42567         000037' 202040  003124' 01280           MOVEM   A,PPNBUF\r
42568 \r\fFUDGE2  V.011                 PAGE 5\r
42569         FUDGE2 COMMAND STRING DISPATCHING\r
42570 \r
42571                                 01300   SUBTTL FUDGE2 COMMAND STRING DISPATCHING\r
42572                                 01310   ;THIS ROUTINE PICKS UP CHARACTERS FROM THE TELETYPE BUFFER AND\r
42573                                 01320   ;DISPATCHES TO THE PROPER ROUTINE DEPENDING ON THE TYPE OF\r
42574                                 01330   ;CHARACTER.A TABLE OF BYTES AND BYTE POINTERS ALLOWS EACH\r
42575                                 01340   ;CHARACTER IN THE ASCII SET TO BE TREATED INDIVIDUALLY. THE\r
42576                                 01350   ;ROUTINE MAY BE ENTERED AT GETCHR IF IT IS DESIRED TO ACCUMULATE\r
42577                                 01360   ;A 6-LETTER SIXBIT SYMBOL IN AC S. SYMBOLS OF DIFFERENT LENGTHS\r
42578                                 01370   ;MAY BE ACCUMULATED IN DIFFERENT REGISTERS BY SETTING THE CONTENTS\r
42579                                 01380   ;OF AC B TO THE DESIRED LENGTH, AND PUTTING A BYTE POINTER IN E\r
42580                                 01390   ;AND ENTERING THE ROUTINE AT GETCHR+4.\r
42581 \r
42582         000040' 622340  100000  01410   GETCHR: TRZE    F,POPBAK        ;IMMEDIATE RETURN?\r
42583         000041' 263500  000000  01420           POPJ    P,              ;YES\r
42584         000042' 201100  000006  01430           MOVEI   B, 6            ;SET COUNT OF SYMBOL TO 6\r
42585         000043' 200300  005117' 01440           MOVE    E, SYMPTR       ;SET UP A BYTE POINTER FOR AC S\r
42586         000044' 201600  000000  01450           MOVEI   S, 0            ;INITIALIZE SYMBOL ACCUMULATOR\r
42587         000045' 377000  004612' 01460   GETCMN: SOSG    IBUF+2          ;IS TTY BUFFER EMPTY?\r
42588         000046' 066000  000000  01470           INPUT   0,              ;YES, FILL IT UP\r
42589         000047' 134040  004611' 01480           ILDB    A, IBUF+1       ;GET A CHARACTER\r
42590         000050' 200400  000001  01490           MOVE    G, A            ;GET A COPY OF IT IN AC G\r
42591         000051' 200000  005100' 01500           MOVE    0, CURCHR       ;SAVE PREVIOUS CHAR\r
42592         000052' 202000  005101' 01510           MOVEM   0, LSTCHR       ;AS LAST CHAR\r
42593         000053' 202040  005100' 01520           MOVEM   A, CURCHR       ;SAVE CURRENT CHAR\r
42594         000054' 231400  000011  01530           IDIVI   G, 11           ;TRANSLATE TO 4-BIT CODE\r
42595         000055' 135411  000077' 01540           LDB     G, TABLE(H)     ;USE PROPER BYTE POINTER\r
42596         000056' 305400  000004  01550           CAIGE   G, 4            ;MODIFY CODE IF .GE. 4\r
42597         000057' 606340  000004  01560           TRNN    F, SWTB         ;MODIFY CODE IF IN SWITCH MODE\r
42598         000060' 271400  000004  01570           ADDI    G, 4            ;CHANGE DISPATCH BY ADDING 4\r
42599         000061' 550450  000065' 01580           HRRZ    H, DSPTCH(G)    ;GET PROPER DISPATCH ADDRESS\r
42600         000062' 301400  000010  01590           CAIL    G, 10           ;BUT CHANGE IF NOT CORRECT\r
42601         000063' 554450  000055' 01600           HLRZ    H, DSPTCH-10(G) ;TO A LEFT HALF DISPATCH\r
42602         000064' 254011  000000  01610           JRST    (H)             ;EXIT TO APPROPRIATE ROUTINE\r
42603 \r
42604 \r\fFUDGE2  V.011                 PAGE 6\r
42605         COMMAND DISPATCH TABLE AND BYTE POINTERS\r
42606 \r
42607                                 01640   SUBTTL COMMAND DISPATCH TABLE AND BYTE POINTERS\r
42608         000065' 000045' 002136' 01650   DSPTCH: XWD     GETCMN,ERR16    ;IGNORED CHAR, BAD CHAR(SWITCH)\r
42609         000066' 000145' 000135' 01660           XWD     SWTCH, SWTCHA   ;<(>, LETTER(SWITCH MODE)\r
42610         000067' 000317' 002136' 01670           XWD     COLON, ERR16    ;<:>, NUMBER(SWITCH MODE)\r
42611         000070' 000257' 000146' 01680           XWD     PERIOD,SWTCHE   ;<.>, <)>ESCAPE SWITCH MODE\r
42612         000071' 000156' 002147' 01690           XWD     LFTARW,ERR17    ;<?>OR<=>, BAD CHAR (NORMAL MODE)\r
42613         000072' 000310' 000127' 01700           XWD     COMMA, STORE    ;<,>, ALPHABETIC CHARACTER(NORMAL)\r
42614         000073' 000521' 000127' 01710           XWD     ALTMOD,STORE    ;<$>,NUMERIC CHARACTER(NORMAL)\r
42615         000074' 000144' 002147' 01720           XWD     SLASH, ERR17    ;</>, <)> ILLEGAL ESCAPE\r
42616         000075' 000265' 000000  01730           XWD     LBRACK, 0       ;LEFT ANGLE BRACKET, OR "["\r
42617         000076' 000303' 000000  01740           XWD     RBRACK, 0       ;RIGHT ANGLE BRACKET\r
42618 \r
42619         000077' 400410  000110' 01760   TABLE:  POINT   4, BITE(G), 3\r
42620         000100' 340410  000110' 01770           POINT   4, BITE(G), 7\r
42621         000101' 300410  000110' 01780           POINT   4, BITE(G), 11\r
42622         000102' 240410  000110' 01790           POINT   4, BITE(G), 15\r
42623         000103' 200410  000110' 01800           POINT   4, BITE(G), 19\r
42624         000104' 140410  000110' 01810           POINT   4, BITE(G), 23\r
42625         000105' 100410  000110' 01820           POINT   4, BITE(G), 27\r
42626         000106' 040410  000110' 01830           POINT   4, BITE(G), 31\r
42627         000107' 000410  000110' 01840           POINT   4, BITE(G), 35\r
42628 \r\fFUDGE2  V.011                 PAGE 7\r
42629         BYTE TABLE FOR DISPATCHING\r
42630 \r
42631                                 01860    SUBTTL BYTE TABLE FOR DISPATCHING\r
42632                                 01870   ;CLASSIFICATION BYTE CODES\r
42633                                 01880   ;       BYTE    DISP    CLASSIFICATION\r
42634 \r
42635                                 01900   ;       00      00      ILLEGAL CHARACTER, SWITCH MODE\r
42636                                 01910   ;       01      01      ALPHABETIC CHARACTER, SWITCH MODE\r
42637                                 01920   ;       02      02      NUMERIC CHARACTER, SWITCH MODE\r
42638                                 01930   ;       03      03      SWITCH MODE ESCAPE, SWITCH MODE\r
42639 \r
42640                                 01950   ;       00      04      ILLEGAL CHARACTER, NORMAL MODE\r
42641                                 01960   ;       01      05      ALPHABETIC CHARACTER, NORMAL MODE\r
42642                                 01970   ;       02      06      NUMERIC CHARACTER, NORMAL MODE\r
42643                                 01980   ;       03      07      SWITCH MODE ESCAPE, SWITCH MODE\r
42644 \r
42645                                 02000   ;       04      10      IGNORED CHARACTER\r
42646                                 02010   ;       05      11      ENTER SWITCH MODE WITH A <(>\r
42647                                 02020   ;       06      12      DEVICE DELIMITER, <:>\r
42648                                 02030   ;       07      13      FILE EXTENSION DELIMITER, <.>\r
42649                                 02040   ;                       (CAN ALSO BE PART OF A PROGRAM NAME)\r
42650                                 02050   ;       10      14      OUTPUT SPECIFICATION, <LFT ARW> OR <=>\r
42651                                 02060   ;       11      15      FILE DELIMITER, <,>\r
42652                                 02070   ;       12      16      COMMAND TERMINATOR, <ALT MODE>=33,175,176\r
42653                                 02080   ;       13      17      ENTER SWITCH MODE WITH A </>\r
42654                                 02090   ;       14      20      CHANGE CONTEXT OF PERIOD TO PROG NAME, <<> ,OR "["\r
42655                                 02100   ;       15      21      CHANGE CONTEXT OF PERIOD TO FILE NAME, <>>\r
42656 \r
42657                                 02120   ;BYTE TABLE CORRESPONDING TO 128 ASCII CHARS\r
42658 \r
42659         000110' 200000  000000  02140   BITE:   BYTE    (4)     4,0,0,0,0,0,0,0,0       ;NUL\r
42660         000111' 210421  000000  02150           BYTE    (4)     4,4,4,4,4,0,0,0,0\r
42661         000112' 000000  000012  02160           BYTE    (4)     0,0,0,0,0,0,0,0,12      ;?Z=$\r
42662         000113' 500000  110100  02170           BYTE    (4)     12,0,0,0,0,11,0,4,0     ;$\r
42663         000114' 000001  230411  02180           BYTE    (4)     0,0,0,0,5,3,1,0,11      ;***DMN\r
42664         000115' 017310  421042  02190           BYTE    (4)     0,7,13,2,2,2,2,2,2      ;-,.,/,0,1,2,3,4,5\r
42665         000116' 104211  406215  02200           BYTE    (4)     2,2,2,2,6,0,14,10,15    ;6,7,8,9,:,;,<,=,>\r
42666         000117' 000104  210421  02210           BYTE    (4)     0,0,1,1,1,1,1,1,1       ; , , ,B,C,D,E,F,G\r
42667         000120' 042104  210421  02220           BYTE    (4)     1,1,1,1,1,1,1,1,1       ;H,I,J,K,L,M,N,O,P\r
42668         000121' 042104  210421  02230           BYTE    (4)     1,1,1,1,1,1,1,1,1       ;Q,R,S,T,U,V,W,X,Y\r
42669         000122' 070000  100021  02240           BYTE    (4)     1,14,0,0,0,10,0,1,1     ;Z,[, ,], ,?, ,A,B\r
42670         000123' 042104  210421  02250           BYTE    (4)     1,1,1,1,1,1,1,1,1       ;C,D,E,F,G,H,I,J,K\r
42671         000124' 042104  210421  02260           BYTE    (4)     1,1,1,1,1,1,1,1,1       ;L,M,N,O,P,Q,R,S,T\r
42672         000125' 042104  210012  02270           BYTE    (4)     1,1,1,1,1,1,0,0,12      ;U,V,W,X,Y,Z, , ,$\r
42673         000126' 510000  000000  02280           BYTE    (4)     12,4                    ;$,DEL\r
42674 \r
42675 \r\fFUDGE2  V.011                 PAGE 8\r
42676         ROUTINES TO HANDLE 0-9,A-Z,. CHARACTERS\r
42677 \r
42678                                 02310   SUBTTL ROUTINES TO HANDLE 0-9,A-Z,. CHARACTERS\r
42679                                 02320   ;IN THE COMMAND STRING. IN NORMAL MODE, THE CHARACTER IS\r
42680                                 02330   ;DEPOSITED TO FORM A SIXBIT SYMBOL. NOTE THAT "." IS LEGAL IN A PROGRAM NAME.\r
42681                                 02340   ;E.G. <EXP.1,ALLIO.>, IF ENCLOSED IN< >. IN SWITCH MODE, THE PROPER\r
42682                                 02350   ;INSTRUCTION IS EXECUTED WITH THE AID OF A DISPATCH TABLE.\r
42683                                 02360   ;THEN, IF SWITCH MODE WAS ENTERED WITH A SLASH, FUDGE2 EXITS\r
42684                                 02370   ;FROM SWITCH MODE.\r
42685 \r
42686         000127' 660340  004000  02390   STORE:  TRO     F,INFOB         ; INDICATE VALID INFO SEEN\r
42687         000130' 361100  000045' 02400           SOJL    B, GETCMN       ; JUMP IF NO ROOM FOR CHARACTER\r
42688         000131' 305040  000141  02410           CAIGE   A,141           ;WORRY ABOUT LOWER CASE LETTERS\r
42689         000132' 275040  000040  02420           SUBI    A, 40           ;CONVERT FROM ASCII TO SIXBIT\r
42690         000133' 136040  000006  02430           IDPB    A, E            ;STORE CHARACTER ACCORDING TO BYTE\r
42691         000134' 254000  000045' 02440           JRST    GETCMN          ;RETURN FOR NEXT CHARACTER\r
42692 \r
42693         000135' 205740  072000  02460   SWTCHA: MOVSI   SW, 072000      ;GET AN MTAPE OPCODE\r
42694         000136' 301040  000141  02470           CAIL    A,141           ;ACCEPT LOWER CASE SWITCHES\r
42695         000137' 275040  000040  02480           SUBI    A,40\r
42696         000140' 256001  000115' 02490           XCT     SLIST-101(A)    ;EXECUTE PROPER SWITCH INSTRUCTION\r
42697         000141' 622340  000010  02500           TRZE    F, SLSHB        ;SWITCH MODE ENTERED WITH A </>?\r
42698         000142' 620340  000004  02510           TRZ     F, SWTB         ;YES, EXIT FROM SWITCH MODE\r
42699         000143' 254000  000045' 02520           JRST    GETCMN          ;RETURN FOR MORE CHARACTERS\r
42700 \r
42701 \r
42702                                 02550   ;THE FOLLOWING THREE ROUTINES HANDLE THE CONTROL CHARACTERS IN\r
42703                                 02560   ;THE COMMAND STRING WHICH CAUSE FUDGE2 TO ENTER INTO AND EXIT\r
42704                                 02570   ;FROM SWITCH MODE. THERE ARE TWO TYPES OF SWITCH MODE, DEPENDING\r
42705                                 02580   ;ON WHETHER THE IT IS ENTERED WITH A </> OR A <(>.\r
42706 \r
42707         000144' 660340  000010  02600   SLASH:  TRO     F, SLSHB        ;ENTER SWITCH MODE WITH A </>\r
42708         000145' 664340  000004  02610   SWTCH:  TROA    F, SWTB         ;ENTER SWITCH MODE WITH A <(>\r
42709         000146' 620340  000004  02620   SWTCHE: TRZ     F, SWTB         ;EXIT FROM SWITCH MODE WITH A <)>\r
42710         000147' 254000  000045' 02630           JRST    GETCMN          ;RETURN FOR MORE CHARACTERS\r
42711 \r
42712 \r\fFUDGE2  V.011                 PAGE 9\r
42713         LEFT ARROW PROCESSOR\r
42714 \r
42715                                 02660   SUBTTL LEFT ARROW PROCESSOR\r
42716                                 02670   ;THE LEFT ARROW PROCESSOR IS ENTERED BY A DISPATCH FROM THE\r
42717                                 02680   ;COMMAND STRING. IT SIGNALS THE END OF THE DESTINGATION DEVICE\r
42718                                 02690   ;SPECIFICATION. IF THE SIXBIT SYMBOL ACCUMULATOR S IS NON-\r
42719                                 02700   ;ZERO, IT ASSUMES THAT THE USER HAS OMITTED THE FILE NAME DE-\r
42720                                 02710   ;LIMITER, AND CALLS THE FILE NAME ROUTINE. A PROGRAM NAME \r
42721                                 02720   ;SPECIFICATION IN THE OUTPUT DEVICE IS ILLEGAL.\r
42722                                 02730   ;FLAG SETTINGS: THE DESTINATION FLAG (DESTB) IS SET TO ONE,\r
42723                                 02740   ;THE DEVICE FLAG IS SET TO ZERO, AND THE PROGR?M NAME FLAG (PROGB)\r
42724                                 02750   ;IS SET TO ONE SO THAT THE FIRST DEVICE AFTER THE LEFT ARROW\r
42725                                 02760   ;WILL NOT RESULT IN A CALL TO PUTDEV.\r
42726                                 02770   ;IF NO OUTPUT DEVICE IS SEEN DSK IS ASSUMED.\r
42727                                 02780   ;POPBAK IS SET SO CONTROL RETURNS FRON COLON VIA GETCHR\r
42728 \r
42729         000150' 261500  000014  02800   NODEV:  PUSH    P,S             ;SAVE FILE NAME\r
42730         000151' 205600  446353  02810           MOVSI   S,(SIXBIT /DSK/);DSK IS DEFAULT DEVICE\r
42731         000152' 660340  100000  02820           TRO     F,POPBAK        ;RETURN FROM GETCHR\r
42732         000153' 260500  000317' 02830           PUSHJ   P,COLON         ;FAKE A DEVICE SEEN\r
42733         000154' 262500  000014  02840           POP     P,S             ;RESTORE FILE NAME\r
42734         000155' 263500  000000  02850           POPJ    P,              ;RETURN\r
42735 \r
42736 \r
42737         000156' 260500  000407' 02880   LFTARW: PUSHJ   P, SEMICP       ;DO A LOOKUP IF NECESSARY\r
42738         000157' 620340  000400  02890           TRZ     F, DEVB         ;SET THE DEVICE FLAG TO ZERO\r
42739         000160' 660340  000101  02900           TRO     F, PROGB+DESTB  ;SET PROGRAM AND DESTINATION FLAGS\r
42740         000161' 254000  000040' 02910           JRST    GETCHR          ;RETURN FOR NEXT SYMBOL\r
42741 \r
42742 \r
42743 \r\fFUDGE2  V.011                 PAGE 10\r
42744         THIS CODE PROCESSES PROJECT-PROGRAMMER NUMBERS\r
42745 \r
42746                                 02950   SUBTTL  THIS CODE PROCESSES PROJECT-PROGRAMMER NUMBERS\r
42747 \r
42748         000162' 400140  000000  02970   LSQB:   SETZ    T,              ;START WITH ZERO\r
42749         000163' 261500  000003  02980           PUSH    P,T             ;AND STORE IT\r
42750         000164' 260500  000210' 02990   LSQB1:  PUSHJ   P,TTYIN         ;GET NEXT CHAR.\r
42751         000165' 306040  000135  03000           CAIN    A,"]"           ;MATCHING SQB.?\r
42752         000166' 254000  000202' 03010           JRST    RSQB            ;YES\r
42753         000167' 306040  000054  03020           CAIN    A,","           ;COMMA?\r
42754         000170' 254000  000177' 03030           JRST    SQBCMA          ;YES,SORT OUT XWD\r
42755         000171' 301040  000060  03040           CAIL    A,"0"           ;IS IT AN OCTAL NUMBER?\r
42756         000172' 303040  000071  03050           CAILE   A,"9"           ;...\r
42757         000173' 254000  000214' 03060           JRST    ERRISQ          ;NO,ERROR\r
42758         000174' 242140  000003  03070           LSH     T,3             ;MAKE SPACE FOR NEXT CHAR.\r
42759         000175' 271141  777720  03080           ADDI    T,-60(A)        ;ADDI IN NEW DIGIT\r
42760 \r
42761 \r
42762         000176' 254000  000164' 03110           JRST    LSQB1           ;BACK FOR MORE\r
42763 \r
42764         000177' 516152  000000  03130   SQBCMA: HRLZM   T,(P)           ;STORE LEFT HALF ON STACK\r
42765         000200' 400140  000000  03140           SETZ    T,              ;START AFRESH\r
42766         000201' 254000  000164' 03150           JRST    LSQB1           ;AND GET RIGHT HALF\r
42767 \r
42768         000202' 542152  000000  03170   RSQB:   HRRM    T,(P)           ;PUT RIGHT HALF ON STACK\r
42769         000203' 262500  000003  03180           POP     P,T             ;AND POP XWD OFF\r
42770         000204' 202140  005113' 03190           MOVEM   T,PRJPRG        ;SAVE DEFAULT PROJ-PROG\r
42771         000205' 326600  000045' 03200           JUMPN   S,GETCMN        ;AFTER A FILE NAME IS ONLY TEMP.\r
42772         000206' 202140  005112' 03210           MOVEM   T,DEFPPN        ;PERMANENT DEFAULT PPN\r
42773         000207' 254000  000045' 03220           JRST    GETCMN          ;GET NEXT CHAR.\r
42774 \r
42775         000210' 377000  004612' 03240   TTYIN:  SOSG    IBUF+2          ;BUFFER EMPTY\r
42776         000211' 066000  000000  03250           INPUT   0,              ;YES, FILL IT UP\r
42777         000212' 134040  004611' 03260           ILDB    A,IBUF+1        ;GET A CHARACTER\r
42778         000213' 263500  000000  03270           POPJ    P,              ;AND RETURN\r
42779 \r
42780         000214' 201100  005130' 03290   ERRISQ: MOVEI   B,[ASCIZ /?Illegal project-programmer number/]\r
42781         000215' 254000  002247' 03300           JRST    ERROR\r
42782 \r\fFUDGE2  V.011                 PAGE 11\r
42783         DISPATCH TABLE FOR SWITCHES\r
42784 \r
42785                                 03320   SUBTTL DISPATCH TABLE FOR SWITCHES\r
42786 \r
42787         000216' 201640  000711' 03340   SLIST:  MOVEI   DIS, APPEND     ;A - APPEND INSTRUCTION\r
42788         000217' 260500  000250' 03350           PUSHJ   P, BSWTCH       ;B - BACKSPACE ONE FILE\r
42789         000220' 201640  000730' 03360           MOVEI   DIS, DELCPY     ;C - COPY AND DELETE LOCAL SYMBOLS ***VJC\r
42790         000221' 201640  000701' 03370           MOVEI   DIS, DELETE     ;D - DELETE INSTRUCTION\r
42791         000222' 201640  000660' 03380           MOVEI   DIS, EXTRCT     ;E - EXTRACT INSTRUCTION\r
42792         000223' 254000  002136' 03390           JRST    ERR16           ;F - ERROR\r
42793         000224' 254000  002136' 03400           JRST    ERR16           ;G - ERROR\r
42794         000225' 254000  002136' 03410           JRST    ERR16           ;H - ERROR\r
42795         000226' 201640  000632' 03420           MOVEI   DIS, INSERT     ;I - INSERT INSTRUCTION\r
42796         000227' 254000  002136' 03430           JRST    ERR16           ;J - ERROR\r
42797         000230' 260500  000251' 03440           PUSHJ   P, KSWTCH       ;K - SKIPFILE\r
42798         000231' 201640  000600' 03450           MOVEI   DIS, LIST       ;L - LIST COMMAND\r
42799         000232' 254000  002136' 03460           JRST    ERR16           ;M - ERROR\r
42800         000233' 254000  002136' 03470           JRST    ERR16           ;N - ERROR\r
42801         000234' 254000  002136' 03480           JRST    ERR16           ;O - ERROR\r
42802         000235' 254000  002136' 03490           JRST    ERR16           ;P - ERROR\r
42803         000236' 254000  002136' 03500           JRST    ERR16           ;Q - ERROR\r
42804         000237' 201640  000621' 03510           MOVEI   DIS, REPLCE     ;R - REPLACE INSTRUCTION\r
42805         000240' 254000  002136' 03520           JRST    ERR16           ;S - ERROR\r
42806         000241' 260500  000252' 03530           PUSHJ   P, TSWTCH       ;T - SKIP TO LOGICAL END OF TAPE\r
42807         000242' 254000  002136' 03540           JRST    ERR16           ;U - ERROR\r
42808         000243' 254000  002136' 03550           JRST    ERR16           ;V - ERROR\r
42809         000244' 260500  000253' 03560           PUSHJ   P, WSWTCH       ;W - REWIND MAG TAPE\r
42810         000245' 201640  000722' 03570           MOVEI   DIS,INDEX       ;X - INDEX THIS LIBRARY\r
42811         000246' 254000  002136' 03580           JRST    ERR16           ;Y - ERROR\r
42812         000247' 260500  000254' 03590           PUSHJ   P, ZSWTCH       ;Z - CLEAR DIRECTORY ON DECTAPE\r
42813 \r
42814 \r
42815                                 03620   ;MAGTAPE AND DECTAPE DEVICE SWITCH HANDLERS\r
42816                                 03630   ;THE FOLLOWING ROUTINES HANDLE THE B,K,T,W, AND Z SWITCHES\r
42817                                 03640   ;BY ASSEMBLING THE PROPER CALL OR UUO INSTRUCTION. IF A \r
42818                                 03650   ;DEVICE HAS ALREADY BEEN SEEN, THE CHANNEL NUMBER IS LOADED\r
42819                                 03660   ;INTO THE COMMAND, AND THE INSTRUCTION IS EXECUTED. OTHER-\r
42820                                 03670   ;WISE, EXECUTION IS DEFERRED BY SETTING A FLAG AND STORING\r
42821                                 03680   ;THE PARTIALLY ASSEMBLED INSTRUCTION. THE INSTRUCTION IS\r
42822                                 03690   ;EXECUTED LATER, AFTER THE DEVICE HAS BEEN SEEN.\r
42823 \r
42824         000250' 271740  000001  03710   BSWTCH: ADDI    SW, 1           ;CODE FOR BACKSPACE IS 17\r
42825         000251' 271740  000006  03720   KSWTCH: ADDI    SW, 6           ;CODE FOR SKIPFILE IS 16\r
42826         000252' 271740  000007  03730   TSWTCH: ADDI    SW, 7           ;CODE FOR SKIP TO L.E.O.T. IS 10\r
42827         000253' 344740  000255' 03740   WSWTCH: AOJA    SW,.+2          ;CODE FOR REWIND IS 1\r
42828         000254' 200740  005123' 03750   ZSWTCH: MOVE    SW, DTCLR       ;DIFFERENT UUO FOR /Z\r
42829         000255' 660340  000002  03760           TRO     F, SAVEB        ;TURN ON THE SWITCH BIT\r
42830         000256' 263500  000000  03770           POPJ    P,              ;EXIT\r
42831 \r\fFUDGE2  V.011                 PAGE 12\r
42832         PERIOD PROCESSOR\r
42833 \r
42834                                 03790   SUBTTL PERIOD PROCESSOR\r
42835                                 03800   ;THE PERIOD PROCESSOR IS CALLED BY A DISPATCH FROM GETCHR. IT \r
42836                                 03810   ;PRECEDES A FILE NAME EXTENSION, UNLESS THE CONTEXT BIT CONB IS\r
42837                                 03820   ;A ONE (CONB=1), IN WHICH CASE, THE PERIOD WAS FOUND INSIDE AN\r
42838                                 03830   ;ANGLE BRACKET, INDICATING THAT IT IS PART OF A PROGRAM NAME.\r
42839                                 03840   ;THE EXTENSION NAME IS GOTTEN BY ENTERING THE GETCHR ROUTINE\r
42840                                 03850   ;WITH THE LENGTH SET TO THREE CHARACTERS, AND A BYTE POINTER\r
42841                                 03860   ;SET TO STORE THE SYMOL IN ACCUMULATOR EXT. THE EXTENSION\r
42842                                 03870   ;FLAG IS SET BY THIS ROUTINE.\r
42843 \r
42844         000257' 602340  010000  03890   PERIOD: TRNE    F, CONB         ;IS PERIOD PART OF A PROGRAM NAME?\r
42845         000260' 254000  000127' 03900           JRST    STORE           ;YES, STORE IT IN SYMBOL\r
42846         000261' 660340  001000  03910           TRO     F, EXTB         ;NO, SET EXTENSION FLAG\r
42847         000262' 200300  005120' 03920           MOVE    E, EXTPTR       ;GET ANOTHER BYTE POINTER\r
42848         000263' 201100  000003  03930           MOVEI   B, 3            ;ASSEMBLE A 3-CHARACTER WORD\r
42849         000264' 254000  000045' 03940           JRST    GETCMN          ;BUT DONT DESTROY S\r
42850 \r
42851 \r\fFUDGE2  V.011                 PAGE 13\r
42852         ROUTINES TO PROCESS ANGLE BRACKETS\r
42853 \r
42854                                 03970   SUBTTL ROUTINES TO PROCESS ANGLE BRACKETS\r
42855                                 03980   ;THE FOLLOWING ROUTINES PROCESS THE LEFT ANGLE BRACKET "<"\r
42856                                 03990   ;AND RIGHT ANGLE BRACKET ">" CHARACTERS. THEY ARE ENTERED BY\r
42857                                 04000   ;A DISPATCH FROM THE GETCHR ROUTINE. THE ANGLE BRACKETS\r
42858                                 04010   ;CAN ACT AS FILE NAME OR PROGRAM NAME DELIMITERS, SO A CHECK\r
42859                                 04020   ;IS MADE TO SEE IF THE SYMBOL ACCUMULATOR IS NON-ZERO. THE\r
42860                                 04030   ;MAIN FUNCTION OF THE ROUTINES IS TO SET OR CLEAR THE CONTEXT\r
42861                                 04040   ;BIT CONB, WHOSE INTERPRETATION IS AS FOLLOWS:\r
42862                                 04050   ;SETTING OF BIT MEANING\r
42863                                 04060   ;       0               COMMAS DELIMIT FILE NAMES, AND PERIODS\r
42864                                 04070   ;                       DELIMIT FILE NAME EXTENSIONS\r
42865                                 04080   ;       1               COMMAS DELIMIT PROGRAM NAMES, AND PERIODS\r
42866                                 04090   ;                       ARE PART OF A PROGRAM NAME\r
42867 \r
42868         000265' 606340  000001  04110   LBRACK: TRNN    F, DESTB        ;IS THIS THE OUTPUT DEVICE?\r
42869         000266' 254000  002007' 04120           JRST    ERROR1          ;YES, SYNTAX ERROR\r
42870         000267' 306040  000133  04130           CAIN    A,"["           ;PROJECT-PROGRAMMER PAIR?\r
42871         000270' 254000  000162' 04140           JRST    LSQB            ;YES, HANDLE IT\r
42872         000271' 200000  005102' 04150           MOVE    0,SDEVCHR       ;GET SAVED DEV CHRSTCS\r
42873         000272' 607000  200100  04160           TLNN    0,DTABIT+DSKBIT ;LAST DEVICE DSK OR DTA?\r
42874         000273' 254000  000277' 04170           JRST    LBRACA          ;NO\r
42875         000274' 200000  005101' 04180           MOVE    0,LSTCHR        ;GET LAST CHAR\r
42876         000275' 306000  000072  04190           CAIN    0,72            ;WAS IT COLON?\r
42877         000276' 254000  002007' 04200           JRST    ERROR1          ;YES,:< ILLEGAL\r
42878         000277'                 04210   LBRACA:                         ;NO CONTINUE\r
42879         000277' 260500  000407' 04220           PUSHJ   P, SEMICP       ;PROCESS THE FILE NAME\r
42880         000300' 660340  010000  04230           TRO     F, CONB         ;SET CONTEXT TO PROGRAM NAMES\r
42881         000301' 350000  005077' 04240           AOS     MATCH           ;ADD ONE FOR EACH LEFT < ***VJC\r
42882         000302' 254000  000040' 04250           JRST    GETCHR          ;RETURN FOR MORE CHARACTERS\r
42883 \r
42884         000303' 322600  000305' 04270   RBRACK: JUMPE   S,.+2           ;IS THERE A SYMBOL TO HANDLE?\r
42885         000304' 260500  000470' 04280           PUSHJ   P,COMMAP        ;YES,PROCESS THE FILE NAME\r
42886         000305' 620340  010000  04290           TRZ     F,CONB          ;SET CONTEXT TO FILE NAMES\r
42887         000306' 370000  005077' 04300           SOS     MATCH           ;SUBTRACT ONE FOR EACH RIGHT > ***VJC\r
42888         000307' 254000  000040' 04310           JRST    GETCHR          ;RETURN FOR MORE CHARACTERS\r
42889 \r
42890 \r\fFUDGE2  V.011                 PAGE 14\r
42891         COMMA PROCESSOR\r
42892 \r
42893                                 04340   SUBTTL COMMA PROCESSOR\r
42894                                 04350   ;THE COMMA ROUTINE IS ENTERED BY A DISPATCH FROM GETCHR.\r
42895                                 04360   ;IT DETERMINES WHETHER THE COMMA DELIMITS A FILE NAME OR A\r
42896                                 04370   ;PROGRAM NAME, AND TRANSFERS CONTROL EITHER TO SEMICP OR TO\r
42897                                 04380   ;COMMAP.\r
42898 \r
42899         000310' 606340  010000  04400   COMMA:  TRNN    F, CONB         ;FILE NAME OR PRGRAM NAME?\r
42900         000311' 254000  000314' 04410           JRST    COMMAX          ;FILE NAME\r
42901         000312' 260500  000470' 04420           PUSHJ   P, COMMAP       ;PROGRAM NAME\r
42902         000313' 254000  000040' 04430           JRST    GETCHR          ;RETURN FOR MORE CHARACTERS\r
42903 \r
42904         000314' 260500  000407' 04450   COMMAX: PUSHJ   P, SEMICP       ;FILE NAME, DO A LOOKUP\r
42905         000315' 402000  005113' 04460           SETZM   PRJPRG          ;CLEAR TEMP. PPN\r
42906         000316' 254000  000040' 04470           JRST    GETCHR          ;RETURN FOR MORE CHARACTERS\r
42907 \r
42908 \r\fFUDGE2  V.011                 PAGE 15\r
42909         COLON PROCESSOR\r
42910 \r
42911                                 04500   SUBTTL COLON PROCESSOR\r
42912                                 04510   ;THIS ROUTINE IS ENTERED BY A DISPATCH FROM THE GETCHR\r
42913                                 04520   ;ITS PURPOSE IS TO INITIALIZE DEVICES USED BY FUDGE2 AND\r
42914                                 04530   ;ASSIGN THEM A CHANNEL NUMBER. IF THE DEVICE IS THE TTY, THE\r
42915                                 04540   ;ROUTINE EXITS IMMEDIATELY, SINCE THE TTY HAS ALREADY BEEN\r
42916                                 04550   ;INITIALIZED. IF A PROGRAM WAS NOT SEEN IN THE PREVIOUS DEVICE\r
42917                                 04560   ;SPECIFICATION, THEN THE PRECEDING FILE HAD NO PROGRAMS\r
42918                                 04570   ;FOLLOWING IT, AND A ZERO IS PLACED IN THE LIST STRUCTURE IN\r
42919                                 04580   ;THE 3-WORD FILE BLOCK, SO THAT THE GETDEV ROUTINE WILL\r
42920                                 04590   ;KNOW THAT THE ENTIRE FILE IS DESIRED. IF THE COLON ROUTINE\r
42921                                 04600   ;IS CALLED WITH 0 IN ACCUMULATOR S, THE ROUTINE ASSUMES\r
42922                                 04610   ;THAT SOMETHING LIKE "DTA3:FOO?DTA4:BAR<X,Y,Z>,MTA0:::/R"\r
42923                                 04620   ;WAS TYPED, AND IT PUTS A PHONY FILE NAME IN FILBUF TO KEEP\r
42924                                 04630   ;THE BOOK-KEEPING STRAIGHT.\r
42925 \r
42926         000317' 660340  000400  04650   COLON:  TRO     F, DEVB         ;DEVICE WAS SEEN IN THIS SPEC.\r
42927         000320' 602340  100000  04660           TRNE    F,POPBAK        ;DEFAULT "DSK" BEING SET\r
42928         000321' 254000  000324' 04670           JRST    .+3             ;SO DON'T CLEAR PROJ-PROG\r
42929         000322' 402000  005112' 04680           SETZM   DEFPPN          ;CLEAR PERMANENT PPN\r
42930         000323' 402000  005113' 04690           SETZM   PRJPRG          ;AND TEMP. ALSO\r
42931         000324' 322600  000373' 04700           JUMPE   S, COLONC       ;NULL S IMPLIES FILES ON MTA,PTR\r
42932         000325' 202600  002522' 04710           MOVEM   S, COLON2       ;SAVE DEVICE FOR INIT\r
42933         000326' 200400  000014  04720           MOVE    G, S            ;GET A COPY OF THE DEVICE NAME\r
42934         000327' 000400  000000  04730           DEVCHR  G,              ;GET ITS CHARACTERISTICS\r
42935         000330' 202400  005102' 04740           MOVEM   G,SDEVCHR       ;SAVE DEV CHRSTCS ***VJC\r
42936         000331' 603400  040010  04750           TLNE    G,TTYBIT!LPTBIT ;IF EITHER TTY OR LPT\r
42937         000332' 402000  005111' 04760           SETZM   LEVEL           ;DON'T DO EXTENDED LOOKUPS EVER\r
42938         000333' 603400  000010  04770           TLNE    G, TTYBIT       ;IS THE DEVICE A TTY?\r
42939         000334' 254000  000040' 04780           JRST    GETCHR          ;YES, RETURN IMMEDIATELY\r
42940         000335' 606340  000001  04790           TRNN    F, DESTB        ;IS THIS THE OUTPUT DEVICE?\r
42941         000336' 254000  000375' 04800           JRST    COLON4          ;YES, GO CHECK SEPARATE THINGS\r
42942         000337' 200240  003324' 04810           MOVE    D, DEVBUF       ;GET POINTER TO DEVICE NAME TABLE\r
42943         000340' 252240  000344' 04820   COLON6: AOBJP   D, COLON7       ;MORE DEVICES TO CHECK?\r
42944         000341' 316605  003324' 04830           CAMN    S, DEVBUF(D)    ;HAS DEVICE ALREADY BEEN INITTED?\r
42945         000342' 254000  000040' 04840           JRST    GETCHR          ;YES, DON'T RE-INIT IT\r
42946         000343' 254000  000340' 04850           JRST    COLON6          ;CHECK SOME MORE\r
42947 \r\fFUDGE2  V.011                 PAGE 16\r
42948         COLON PROCESSOR\r
42949 \r
42950 \r
42951         000344' 202605  003324' 04880   COLON7: MOVEM   S, DEVBUF(D)    ;STORE THE NEW DEVICE NAME\r
42952         000345' 205040  777777  04890           MOVSI   A, -1           ;FIX UP THE COUNT IN THE BUFFER\r
42953         000346' 272040  003324' 04900           ADDM    A, DEVBUF       ;...\r
42954         000347' 607400  000002  04910           TLNN    G, INBIT        ;CAN DEVICE DO INPUT?\r
42955         000350' 254000  002015' 04920           JRST    ERROR4          ;NO, ERROR\r
42956         000351' 201600  000000  04930           MOVEI   S, 0            ;CLEAR OUT THE SYMBOL WORD\r
42957         000352' 666340  000100  04940           TRON    F, PROGB        ;WAS A PROGRAM NAME SEEN?\r
42958         000353' 260500  000444' 04950           PUSHJ   P, STNULL       ;NO, STORE A NULL IN FILE BLOCK\r
42959         000354' 200040  000005  04960           MOVE    A, D            ;CALCULATE BUFFER HEADER POSITION\r
42960         000355' 221040  000003  04970           IMULI   A, 3            ;3 WORDS PER BUFFER HEADER\r
42961         000356' 271040  004610' 04980           ADDI    A, IBUF         ;ALL BUFFER HEADERS IN IBUF BLOCK\r
42962         000357' 350000  005103' 04990   COLON8: AOS     NUMDEV          ;ONE MORE DEVICE SEEN\r
42963         000360' 202040  002523' 05000           MOVEM   A, COLON3       ;SAVE WORD FOR INIT\r
42964         000361' 201040  000014  05010           MOVEI   A, 14           ;SET MODE TO BINARY\r
42965         000362' 603400  040000  05020           TLNE    G,LPTBIT        ;IS DEVICE THE LPT?\r
42966         000363' 201040  000000  05030           MOVEI   A, 0            ;YES, RESTORE MODE TO ASCII\r
42967         000364' 542040  002521' 05040           HRRM    A, COLON0       ;SAVE MODE FOR INIT\r
42968         000365' 137240  005137' 05050           DPB     D, [POINT 4,COLON1,12]\r
42969         000366' 256000  002462' 05060           XCT     COLON1          ;DO OPEN ON DEVICE\r
42970         000367' 254000  002061' 05070           JRST    ERROR9          ;DEVICE NOT AVAILABLE\r
42971         000370' 606340  000001  05080           TRNN    F, DESTB        ;IS THIS THE OUTPUT DEVICE?\r
42972         000371' 254000  000040' 05090           JRST    GETCHR          ;YES, NO MORE CHECKING - EXIT\r
42973         000372' 607400  000004  05100           TLNN    G, DRCTRB       ;DOES DEVICE HAVE A DIRECTORY?\r
42974         000373' 260500  000406' 05110   COLONC: PUSHJ   P, COLONB       ;NO, GIVE IT A PHONY FILE NAME\r
42975         000374' 254000  000040' 05120           JRST    GETCHR          ;RETURN FOR MORE CHARACTERS\r
42976 \r
42977                                 05140   ;OUTPUT DEVICE ONLY\r
42978 \r
42979         000375' 202600  003325' 05160   COLON4: MOVEM   S, DEVBUF+1     ;SAVE THE DEVICE NAME\r
42980         000376' 201240  000001  05170           MOVEI   D, 1            ;SET DEVICE NUMBER TO 1\r
42981         000377' 607400  000001  05180           TLNN    G, OUTBIT       ;CAN DEVICE DO OUTPUT?\r
42982         000400' 254000  002015' 05190           JRST    ERROR4          ;NO, ERROR\r
42983         000401' 603400  000100  05200           TLNE    G,DTABIT        ;IS DEVICE DTA?\r
42984         000402' 660340  400000  05210           TRO     F,DTAFLG        ;YES, SET IN CASE INDEXING\r
42985         000403' 205040  004605' 05220           MOVSI   A, OBUF+3       ;CALCULATE BUFFER HEADER ADDRESS\r
42986         000404' 660340  000040  05230           TRO     F, TTYCB        ;INDICATE NON-TTY IO\r
42987         000405' 254000  000357' 05240           JRST    COLON8          ;ENTER MAIN PROCESSING LOOP\r
42988 \r
42989         000406' 201600  465757  05260   COLONB: MOVEI   S, 465757       ;FILE NAME OF "FOO"\r
42990                                 05270                                   ;FALLS THROUGH TO SEMICP ROUTINE\r
42991 \r\fFUDGE2  V.011                 PAGE 17\r
42992         FILE NAME PROCESSOR\r
42993 \r
42994                                 05290   SUBTTL FILE NAME PROCESSOR\r
42995                                 05300   ;THIS ROUTINE IS CALLED BY THE COMMA ROUTINE WHEN IT HAS\r
42996                                 05310   ;BEEN DETERMINED THAT THE CONTEXT OF THE COMMA IS THAT OF A\r
42997                                 05320   ;FILE NAME. NULL FILES ARE IGNORED BY THE ROUTINE, AND CAUSE\r
42998                                 05330   ;AN IMMEDIATE RETURN TO GETCHR. FOR OUTPUT DEVICES, AN ENTER\r
42999                                 05340   ;IS PERFORMED, WHILE FOR INPUT DEVICES, THE FLOW OF CONTROL IS\r
43000                                 05350   ;AS FOLLOWS:\r
43001                                 05360   ;       1. IF THE PREVIOUS FILE HAD NO PROGRAMS, A ZERO IS\r
43002                                 05370   ;          STORED IN THE 3RD WORD OF THE FILE BLOCK OF THAT\r
43003                                 05380   ;          FILE - THE WORD THAT ORDINARILY POINTS TO THE \r
43004                                 05390   ;          PROGRAM SUBLIST.\r
43005                                 05400   ;       2. THE PROGRAM LIST FOR THE PREVIOUS FILE IS TERMINATED\r
43006                                 05410   ;          BY PUTTING A ZERO IN THE PROGRAM BUFFER, AND PUTTING\r
43007                                 05420   ;          A POINTER TO THE ZERO IN THE 3RD WORD OF THIS FILE\r
43008                                 05430   ;          BLOCK (NOT THE PREVIOUS BLOCK)\r
43009                                 05440   ;       3. THE FILE NAME AND FILE NAME EXTENSION AND THE DEVICE\r
43010                                 05450   ;          CHANNEL NUMBER OF THE CURRENT FILE ARE STORED.\r
43011 \r
43012         000407' 606340  000400  05470   SEMICP: TRNN    F,DEVB          ;HAS A DEVICE BEEN SEEN?\r
43013         000410' 260500  000150' 05480           PUSHJ   P,NODEV         ;NO, SO ASSUME "DSK"\r
43014         000411' 312740  005123' 05490           CAME    SW,DTCLR        ;Z SWITCH? YES, OPERATE ON OUTPUT ONLY\r
43015         000412' 137240  005140' 05500           DPB     D, [POINT 4,SW,12]\r
43016         000413' 622340  000002  05510           TRZE    F, SAVEB        ;IS THERE A SWITCH TO PROCESS?\r
43017         000414' 256000  000017  05520           XCT     SW              ;YES, EXECUTE IT\r
43018         000415' 322600  000462' 05530           JUMPE   S, SEMIC3       ;IGNORE NULL FILES\r
43019 \r
43020         000416' 626340  001000  05550   SEMICA: TRZN    F, EXTB         ;EXPLICIT EXTENSION SEEN?\r
43021         000417' 505700  624554  05560           HRLI    EXT, 624554     ;NO, REPLACE WITH REL"\r
43022         000420' 606340  000001  05570           TRNN    F, DESTB        ;OUTPUT DEVICE?\r
43023         000421' 254000  000447' 05580           JRST    SEMIC2          ;YES, PROCESS SEPARATELY\r
43024         000422' 261500  000014  05590           PUSH    P, S            ;SAVE FILE NAME\r
43025         000423' 201600  000000  05600           MOVEI   S, 0            ;PUT IN A ZERO\r
43026         000424' 626340  000100  05610           TRZN    F, PROGB        ;WAS A PROGRAM SEEN IN PREVIOUS?\r
43027         000425' 260500  000444' 05620           PUSHJ   P, STNULL       ;NO, CLOSE OUT PREVIOUS FILE\r
43028         000426' 260500  001144' 05630           PUSHJ   P, PUTPRG       ;YES, CLOSE OUT PREVIOUS PRGLST\r
43029         000427' 262500  000014  05640   SEMIC4: POP     P, S            ;RESTORE FILE NAME\r
43030         000430' 316600  005141' 05650           CAMN    S,[12B5]        ;IS IT * ?***DMN\r
43031         000431' 254000  001675' 05660           JRST    ASTRSK          ;YES ***DMN\r
43032         000432' 260500  001137' 05670           PUSHJ   P, PUTFIL       ;NO, STORE FILENAME\r
43033         000433' 200600  005112' 05680           MOVE    S,DEFPPN        ;GET GLOBAL PPN\r
43034         000434' 260500  001151' 05690           PUSHJ   P,PUTPPN        ;SAVE IT\r
43035         000435' 200600  000016  05700           MOVE    S, EXT          ;GET FILE NAME EXTENSION\r
43036         000436' 260500  001137' 05710           PUSHJ   P, PUTFIL       ;STORE IT\r
43037         000437' 542241  000000  05720           HRRM    D, (A)          ;STORE CHANNEL NUMBER, ALSO\r
43038         000440' 200600  005113' 05730           MOVE    S,PRJPRG        ;GET TEMP. PPN\r
43039         000441' 260500  001151' 05740           PUSHJ   P,PUTPPN        ;SAVE IT ALSO\r
43040         000442' 550600  002724' 05750           HRRZ    S, PRGBUF       ;GET A POINTER TO PROGRAM LIST\r
43041         000443' 254000  001137' 05760           JRST    PUTFIL          ;STORE IT AND EXIT\r
43042 \r
43043         000444' 550040  002524' 05780   STNULL: HRRZ    A, FILBUF       ;GET ADDRESS OF CURRENT BLOCK\r
43044         000445' 402001  000000  05790           SETZM   (A)             ;CLOSE OUT THE FILE\r
43045         000446' 263500  000000  05800           POPJ    P,              ;EXIT\r
43046 \r
43047 \r\fFUDGE2  V.011                 PAGE 18\r
43048         ENTER ON OUTPUT DEVICE DIRECTORY\r
43049 \r
43050                                 05830   SUBTTL ENTER ON OUTPUT DEVICE DIRECTORY\r
43051 \r
43052         000447' 202600  004572' 05850   SEMIC2: MOVEM   S, EBLOCK       ;SAVE FILE NAME FOR ENTER\r
43053         000450' 202700  004573' 05860           MOVEM   EXT, EBLOCK+1   ;SAVE FILE NAME EXTENSION\r
43054         000451' 137240  005142' 05870           DPB     D, [POINT 4,SEMIC1,12]\r
43055         000452' 402000  004574' 05880           SETZM   EBLOCK+2        ;CLEAR DATA AND PROTECTION\r
43056         000453' 200140  005102' 05890           MOVE    T,SDEVCHR       ;GET CHARACTERISTICS\r
43057         000454' 607140  200000  05900           TLNN    T,DSKBIT        ;IF NOT A DSK\r
43058         000455' 402000  005111' 05910           SETZM   LEVEL           ;CLEAR LEVEL D FLAG\r
43059         000456' 332140  005111' 05920           SKIPE   T,LEVEL         ;EITHER -2 OR 0\r
43060         000457' 254000  000463' 05930           JRST    DEFENT          ;SAVE ENTRY BLOCK\r
43061         000460' 256000  002463' 05940           XCT     SEMIC1          ;DO AN ENTER ON THE OUTPUT DEVICE\r
43062         000461' 254000  002076' 05950           JRST    ERR14           ;DIRECTORY FULL\r
43063         000462' 263500  000000  05960   SEMIC3: POPJ    P,              ;EXIT\r
43064 \r
43065         000463' 200140  005143' 05980   DEFENT: MOVE    T,[XWD EBLOCK,SVENTR]\r
43066         000464' 251140  005115' 05990           BLT     T,SVENTR+1      ;SAVE EBLOCK\r
43067         000465' 201140  000011  06000           MOVEI   T,RIBALC        ;SET FOR 11 WORD LOOKUP\r
43068         000466' 202140  004570' 06010           MOVEM   T,EBLOCK-2      ;IN EXTENDED LOOKUP\r
43069         000467' 254000  000462' 06020           JRST    SEMIC3          ;DEFER ENTRY TIL AFTER LOOKUP\r
43070 \r\fFUDGE2  V.011                 PAGE 19\r
43071         THE PROGRAM NAME PROCESSOR\r
43072 \r
43073                                 06040   SUBTTL THE PROGRAM NAME PROCESSOR\r
43074                                 06050   ;THE COMMAP ROUTINE IS ENTERED BY A CALL FROM THE COMMA\r
43075                                 06060   ;ROUTINE WHEN THE CONTEXT OF A COMMA IS THAT OF A PROGRAM NAME\r
43076                                 06070   ;DELIMITER. ITS PURPOSE IS TO SAVE UP THE PROGRAM NAMES IT SEES\r
43077                                 06080   ;IN THE PROGRAM BUFFER PRGBUF. THE PROGRAM NAMES ARE CONVERTED\r
43078                                 06090   ;TO RADIX 50 REPRESENTATION, AND A CALL TO PUTPRG STORES THE\r
43079                                 06100   ;PROGRAM NAME FOR LATER REFERENCE BY THE VARIOUS FUDGE SUBROUTINES\r
43080                                 06110   ;------------------------------------------------------------------\r
43081                                 06120   ;RADIX50 - SIXBIT CODE CONVERSION TABLE\r
43082 \r
43083                                 06140   ;CHARACTER      SIXBIT          RADIX50\r
43084 \r
43085                                 06160   ;0-9            20-31           01-12\r
43086                                 06170   ;A-Z            41-72           13-44\r
43087                                 06180   ;BLANK          00              00\r
43088                                 06190   ;PERIOD         16              45\r
43089                                 06200   ;$              04              46\r
43090                                 06210   ;-------------------------------------------------------------------\r
43091                                 06220   ;THE SYMBOL IS ASSUMED TO LEFT-JUSTIFIED UPON ENTERING, AND\r
43092                                 06230   ;IS RIGHT-JUSTIFIED BEFORE CONVERSION TO RADIX 50.\r
43093 \r
43094                                 06250   ;FLAG SETTINGS: THE PROGRAM BIT PROGB IS SET TO 1, AND THE FILE\r
43095                                 06260   ;BIT FILEB IS SET TO 0.\r
43096         000470' 660340  000100  06270   COMMAP: TRO     F, PROGB        ;SET PROGRAM BIT\r
43097         000471' 606340  000001  06280           TRNN    F, DESTB        ;IS THIS THE OUTPUT DEVICE?\r
43098         000472' 254000  002007' 06290           JRST    ERROR1          ;YES, SYNTAX ERROR\r
43099         000473' 200300  005117' 06300           MOVE    E, SYMPTR       ;SET UP A BYTE POINTER TO S\r
43100         000474' 201100  000006  06310           MOVEI   B, 6            ;SET COUNTER TO SIX\r
43101         000475' 201200  000000  06320           MOVEI   C, 0\r
43102         000476' 322600  000503' 06330           JUMPE   S, COMMA1       ;NULL SYMBOL?\r
43103         000477' 602600  000077  06340   COMMA3: TRNE    S, 77           ;IS SYMBOL RIGHT-JUSTIFIED YET?\r
43104         000500' 254000  000503' 06350           JRST    COMMA1          ;YES, GO CONVERT TO RADIX 50\r
43105         000501' 241600  777772  06360           ROT     S, -6           ;NO, SHIFT IT ONE PLACE RIGHT\r
43106         000502' 254000  000477' 06370           JRST    COMMA3          ;CHECK AGAIN\r
43107         000503' 221200  000050  06380   COMMA1: IMULI   C, 50           ;CONVERT TO RADIX50\r
43108         000504' 134040  000006  06390           ILDB    A, E            ;PICK UP NEXT CHARACTER IN S\r
43109         000505' 322040  000516' 06400           JUMPE   A, COMMA4       ;A BLANK IS A BLANK IS A BLANK!\r
43110         000506' 306040  000004  06410           CAIN    A, 4            ;IS IT A <$>?\r
43111         000507' 271040  000070  06420           ADDI    A, 70           ;YES, COMPENSATE FOR SUBTRACTION\r
43112         000510' 306040  000016  06430           CAIN    A, 16           ;IS IT A <.>?\r
43113         000511' 271040  000055  06440           ADDI    A, 55           ;YES, COMPENSATE FOR SUBTRACTION\r
43114         000512' 303040  000031  06450           CAILE   A, 31           ;TRANSLATE TO RADIX 50 CODE\r
43115         000513' 275040  000007  06460           SUBI    A, 7            ;LETTER - SUBTRACT 26\r
43116         000514' 275040  000017  06470           SUBI    A, 17           ;NUMBER - SUBTRACT 17\r
43117         000515' 270200  000001  06480           ADD     C, A            ;COMBINE WITH PARTIAL WORD\r
43118         000516' 367100  000503' 06490   COMMA4: SOJG    B, COMMA1       ;LOOP FOR SIX CHARACTERS\r
43119         000517' 200600  000004  06500           MOVE    S, C            ;PUT SYMBOL BACK IN S\r
43120         000520' 254000  001144' 06510           JRST    PUTPRG          ;STORE IT AND EXIT\r
43121 \r
43122 \r\fFUDGE2  V.011                 PAGE 20\r
43123         THE ALTMODE PROCESSOR\r
43124 \r
43125                                 06540   SUBTTL THE ALTMODE PROCESSOR\r
43126                                 06550   ;THE ALTMODE SUBROUTINE IS CALLED BY A DISPATCH FROM THE\r
43127                                 06560   ;GETCHR ROUTINE WHEN A $ IS SEEN IN THE COMMAND STRING. IT SIGNALS\r
43128                                 06570   ;THE END OF THE COMMAND STRING. A CHECK IS MADE ON THE SYNTAX\r
43129                                 06580   ;OF THE COMMAND STRING, TO SEE IF AN OUTPUT DEVICE WAS SPEC-\r
43130                                 06590   ;IFIED, AND TO SEE IF A COMMAND WAS GIVEN. THE LIST\r
43131                                 06600   ;STRUCTURE FOR THE FILE NAMES AND PROGRAM NAMES IS TERMINATED\r
43132                                 06610   ;BY TWO CALLS TO SEMICP, THE LAST OF WHICH HAS A FILE NAME OF 0.\r
43133                                 06620   ;THE POINTERS AT THE TOP OF THE FILBUF,PRGBUF AND DEVBUF BUFFERS\r
43134                                 06630   ;ARE RESET FOR LATER USER BY THE VARIOUS SUBROUTINES.\r
43135 \r
43136         000521' 606340  004000  06650   ALTMOD: TRNN    F,INFOB         ; IS THERE A COMMAND?\r
43137         000522' 254000  000000' 06660           JRST    FUDGE2          ; NO, RESTART\r
43138         000523' 260500  002243' 06670           PUSHJ   P,CRLF          ; ACKNOWLEDGE WITH A CR LF\r
43139         000524' 660340  040000  06680           TRO     F,CRLFTY        ;INDICATE CR,LF TYPED\r
43140         000525' 260500  000407' 06690           PUSHJ   P, SEMICP       ;STORE THIS FILE NAME\r
43141         000526' 201600  000000  06700           MOVEI   S, 0            ;MAKE A NULL FILE NAME\r
43142         000527' 260500  000416' 06710           PUSHJ   P, SEMICA       ;TERMINATE THE LIST STRUCTURE\r
43143         000530' 200040  005124' 06720           MOVE    A, FILXWD       ;SET UP A BLT POINTER TO FIX\r
43144         000531' 251040  002527' 06730           BLT     A, FILBUF+3     ;THE MASTER FILE PART,1ST WORD OF\r
43145         000532' 402000  002530' 06740           SETZM   FILBUF+4        ;FILBUF WAS JUNK,NOW 4TH WORD=0\r
43146         000533' 201040  002531' 06750           MOVEI   A, FILBUF+5     ;RESET POINTER TO TRANS. FILES\r
43147         000534' 202040  002524' 06760           MOVEM   A, FILBUF       ;...\r
43148         000535' 201040  003125' 06770           MOVEI   A,PPNBUF+1      ;RESET PPNBUF\r
43149         000536' 202040  003124' 06780           MOVEM   A,PPNBUF        ;AS IT WAS AT START\r
43150         000537' 322640  002007' 06790           JUMPE   DIS, ERROR1     ;NO COMMAND SEEN?\r
43151         000540' 606340  000001  06800           TRNN    F, DESTB        ;NO OUTPUT FILE MENTIONED?\r
43152         000541' 254000  002007' 06810           JRST    ERROR1          ;SYNTAX ERROR\r
43153         000542' 332000  005077' 06820           SKIPE   MATCH           ;LEFT < EQU RIGHT > ?***VJC\r
43154         000543' 254000  002007' 06830           JRST    ERROR1          ;SYNTAX ERROR ***VJC\r
43155         000544' 602340  000040  06840           TRNE    F, TTYCB        ;CHANGE OUTPUT IF ON TTY\r
43156         000545' 660340  000020  06850           TRO     F, TTYOB        ;...\r
43157                                 06860                                   ;AND FALL INTO INBUF0\r
43158 \r
43159 \r\fFUDGE2  V.011                 PAGE 21\r
43160         THE ALTMODE PROCESSOR\r
43161 \r
43162 \r
43163                                 06900   ;SEE HOW MANY 204(8) WORD BLOCKS FIT IN JOBREL-JOBFF.\r
43164                                 06910   ;DIVIDE THIS NUMBER BY THE NUMBER OF DEVICES\r
43165                                 06920   ;IN DEVBUF TABLE. THIS GIVES THE NO. OF BLOCKS\r
43166                                 06930   ;THAT CAN BE ASSIGNED TO EACH DEVICE, IF ZERO,\r
43167                                 06940   ;NEED MORE CORE. THE REMAINDER OF THE DIVISION\r
43168                                 06950   ;INDICATES EXTRA BLOCKS THAT MAY BE\r
43169                                 06960   ;ALLOCATED TO OUTPUT OR INPUT DEVICES\r
43170 \r
43171         000546' 550040  000000* 06980   INBUF0: HRRZ    A, JOBREL       ;GET TOP OF JOB AREA\r
43172         000547' 274040  000000* 06990           SUB     A,JOBFF         ;BUFFER AREA AVAILABLE\r
43173         000550' 231040  000204  07000           IDIVI   A, 204          ;NUMBER OF DECTAPE BLOCKS\r
43174         000551' 230040  005103' 07010           IDIV    A,NUMDEV        ;DIVIDED BY NUMBER OF DEVICES\r
43175         000552' 322040  000573' 07020           JUMPE   A,INBUFG        ;NOT ENOUGH CORE\r
43176         000553' 201300  000002  07030           MOVEI   E,2             ;START INBUFS ON DEVICE #2\r
43177         000554' 602340  000040  07040           TRNE    F, TTYCB        ;IS OUTPUT ON TTY?\r
43178         000555' 254000  000566' 07050           JRST    INBUF1          ;NO, DO AN OUTBUF\r
43179         000556' 200200  000001  07060   INBUF2: MOVE    C, A            ;PICK UP NUMBER OF BLOCKS\r
43180         000557' 361100  000561' 07070           SOJL    A+1,.+2         ;ANY EXTRA BLOCKS? (REMAINDER)\r
43181         000560' 340200  000000  07080           AOJ     C,              ;YES, USE THEM\r
43182         000561' 137300  005144' 07090           DPB     E, [POINT 4, INBUF3,12]\r
43183         000562' 256000  002464' 07100           XCT     INBUF3          ;PERFORM THE INBUF\r
43184         000563' 315300  000005  07110           CAMGE   E, D            ;MORE DEVICES TO TAKE CARE OF?\r
43185         000564' 344300  000556' 07120           AOJA    E, INBUF2       ;YES, PROCESS THEM\r
43186         000565' 254015  000000  07130           JRST    (DIS)           ;NO, GO TO APPROPRIATE SUBROUTINE\r
43187 \r
43188 \r
43189         000566' 200200  000001  07160   INBUF1: MOVE    C, A            ;PICK UP NUMBER OF BLOCKS\r
43190         000567' 361100  000571' 07170           SOJL    A+1,.+2         ;ANY EXTRA BLOCKS?\r
43191         000570' 340200  000000  07180           AOJ     C,              ;YES, GIVE ONE TO OUTPUT\r
43192         000571' 065044  000000  07190   INBUF4: OUTBUF  1,(C)           ;OUTBUF ON DEVICE #1\r
43193         000572' 254000  000556' 07200           JRST    INBUF2          ;GO DO SOME INBUFS\r
43194                                 07210   ;ASK FOR MORE CORE\r
43195 \r
43196         000573' 550040  000546* 07230   INBUFG: HRRZ    A,JOBREL        ;GET ANOTHER K OF CORE\r
43197         000574' 271040  002000  07240           ADDI    A,2000\r
43198         000575' 000040  000000  07250           CORE    A,\r
43199         000576' 254000  002170' 07260           JRST    ERR22           ;NOT AVAILABLE\r
43200         000577' 254000  000546' 07270           JRST    INBUF0          ;TRY TO SET UP BUFFERS\r
43201 \r\fFUDGE2  V.011                 PAGE 22\r
43202         FUDGE2 COMMAND PROCESSORS\r
43203 \r
43204                                 07290   SUBTTL  FUDGE2 COMMAND PROCESSORS\r
43205 \r
43206                                 07310   ;LIST PROCESSOR\r
43207                                 07320   ;THIS ROUTINE PROCESSES THE L COMMAND IN FUDGE2. BINARY\r
43208                                 07330   ;PROGRAMS ARE READ, AND THEIR NAMES OUTPUT, UNTIL AN END\r
43209                                 07340   ;OF FILE IS REACHED.\r
43210 \r
43211         000600' 606340  000020  07360   LIST:   TRNN    F,TTYOB         ;OUTPUT TO TTY?\r
43212         000601' 254000  000610' 07370           JRST    LIST1           ;MODE MUST BE ASCII\r
43213         000602' 062040  000003  07380           GETSTS  1,T             ;GET STATUS\r
43214         000603' 626140  000014  07390           TRZN    T,14            ;BINARY MODE SET?\r
43215         000604' 254000  000610' 07400           JRST    LIST1           ;NO, MUST BE ASCII\r
43216         000605' 060043  000000  07410           SETSTS  1,(T)           ;CHANGE MODE TO ASCII\r
43217         000606' 205140  000700  07420           MOVSI   T,700           ;SET UP NEW BYTE POINTER\r
43218         000607' 202140  004606' 07430           MOVEM   T,OBUF+4        ;SO WORD COUNT WILL BE CORRECT\r
43219         000610' 260500  000772' 07440   LIST1:  PUSHJ   P, MSTGET       ;GET THE MASTER DEVICE\r
43220         000611' 254000  002024' 07450           JRST    ERROR6          ;NOT ENOUGH ARGUMENTS\r
43221         000612' 476000  005116' 07460           SETOM   NOWARN          ;DON'T GIVE WARNING MESSAGE IF INDEX SEEN\r
43222         000613' 260500  001156' 07470   LIST2:  PUSHJ   P, READ         ;READ A PROGRAM NAME\r
43223         000614' 254000  002257' 07480           JRST    EXIT            ;ALL DONE\r
43224         000615' 200100  000001  07490           MOVE    B, A            ;GET THE PROGRAM NAME IN B\r
43225         000616' 260500  002220' 07500           PUSHJ   P, PTYPO        ;TYPE IT OUT\r
43226         000617' 260500  002243' 07510           PUSHJ   P, CRLF         ;TYPE A CRLF\r
43227         000620' 254000  000613' 07520           JRST    LIST2           ;RETURN FOR MORE PROGRAM NAMES\r
43228 \r
43229 \r
43230                                 07550   ;REPLACE PROCESSOR\r
43231                                 07560   ;THIS ROUTINE PROCESSES THE R COMMAND IN FUDGE2. THE TOTAL\r
43232                                 07570   ;COMMAND STRING IS BROKEN INTO A LIST OF PROGRAMS FOR THE MASTER\r
43233                                 07580   ;DEVICE, AND A LIST OF PROGRAMS FOR THE TRANSACTION DEVICES.\r
43234                                 07590   ;THE ROUTINE READS THE MASTER FILE UNTIL ONE OF THE DESIRED\r
43235                                 07600   ;REPLACEMENT PROGRAMS IS REACHED, THEN SWITCHES TO THE \r
43236                                 07610   ;TRANSACTION DEVICE TO FIND THE PROGRAM WHICH IS TO REPLACE THE\r
43237                                 07620   ;PROGRAM IN THE MASTER FILE. AFTER THE REPLACEMENT HAS BEEN\r
43238                                 07630   ;EFFECTED, RESET IS CALLED TO RESTORE THE MASTER DEVICE TO ITS\r
43239                                 07640   ;OLD POSITION.\r
43240 \r
43241         000621' 260500  000772' 07660   REPLCE: PUSHJ   P, MSTGET       ;GET A PROGRAM FROM MASTER DEVICE\r
43242         000622' 254000  000656' 07670           JRST    IPROC7          ;NO MORE, COPY REST OF MASTER\r
43243         000623' 260500  000743' 07680           PUSHJ   P, COPYTO       ;COPY UP TO THE PROGRAM NAME\r
43244         000624' 260500  000777' 07690           PUSHJ   P, TRNGET       ;GET A PROGRAM FROM TRANSACTION\r
43245         000625' 254000  002022' 07700           JRST    ERROR5          ;USER DID NOT SUPPLY ENOUGH\r
43246         000626' 260500  000751' 07710           PUSHJ   P, FINDCP       ;FIND THE PROGRAM AND COPY IT\r
43247         000627' 306240  000002  07720           CAIN    D, 2            ;HAS THE MASTER DEVICE BEEN MOVED?\r
43248         000630' 260500  001002' 07730           PUSHJ   P, RESET        ;YES, RESET IT\r
43249         000631' 254000  000621' 07740           JRST    REPLCE          ;LOOK FOR MORE REPLACEMENTS\r
43250 \r\fFUDGE2  V.011                 PAGE 23\r
43251         INSERT PROCESSOR\r
43252 \r
43253                                 07760   SUBTTL INSERT PROCESSOR\r
43254                                 07770   ;THIS SUBROUTINE PROCESSES THE I COMMAND IN FUDGE. IT READS AND\r
43255                                 07780   ;WRITES PROGRAMS FROM THE MASTER FILE UNTIL IT FINDS THE\r
43256                                 07790   ;PROGRAM NAME CURRENTLY POINTED TO, AT WHICH TIME IT STARTS READING\r
43257                                 07800   ;FROM THE TRANSACTION DEVICE, MAKING AN INSERTION AT THE\r
43258                                 07810   ;PROPER PLACE.\r
43259 \r
43260         000632' 260500  000772' 07830   INSERT: PUSHJ   P, MSTGET       ;GET A PROGRAM FROM MASTER FILE\r
43261         000633' 254000  000656' 07840           JRST    IPROC7          ;NO MORE, COPY REST OF MASTER\r
43262         000634' 260500  000743' 07850           PUSHJ   P, COPYTO       ;COPY UP TO A PROGRAM NAME\r
43263         000635' 202200  002517' 07860           MOVEM   C, SAVEAC       ;SAVE SPECIAL ACCUMULATOR\r
43264         000636' 200240  005145' 07870           MOVE    D, [XWD ENTBLK,SVEBLK]\r
43265         000637' 251244  000506  07880           BLT     D, X+1(C)       ;MOVE ENTRY BLOCK INTO SAFE PLACE\r
43266         000640' 260500  000777' 07890           PUSHJ   P, TRNGET       ;GET NEXT TRANSACTION FILE\r
43267         000641' 254000  002022' 07900           JRST    ERROR5          ;NOT ENOUGH TRANSACTION FILES\r
43268         000642' 260500  000751' 07910           PUSHJ   P, FINDCP       ;FIND TRANSACTION FILE AND COPY\r
43269         000643' 302240  000002  07920           CAIE    D, 2            ;HAS MASTER FILE BEEN JIGGLED?\r
43270         000644' 254000  000647' 07930           JRST    FIXUP           ;NO, RESTORE THE ENTRY BLOCK\r
43271         000645' 260500  001002' 07940           PUSHJ   P, RESET        ;YES, RESET IT\r
43272         000646' 254000  000654' 07950           JRST    INSER1          ;WRITE OUTGO BACK FOR MORE INSERTIONS\r
43273 \r
43274         000647' 200200  002517' 07970   FIXUP:  MOVE    C, SAVEAC       ;RESTORE SPECIAL AC\r
43275         000650' 204240  005145' 07980           MOVS    D, [XWD ENTBLK,SVEBLK]\r
43276         000651' 251244  000000  07990           BLT     D, (C)          ;RESTORE ENTRY BLOCK\r
43277         000652' 201240  000002  08000           MOVEI   D, 2            ;SET UP CHANNEL AC\r
43278         000653' 201640  000006  08010           MOVEI   DIS, 6          ;SET UP BUFFER HEADER INDEX\r
43279         000654' 260500  001305' 08020   INSER1: PUSHJ   P, WRITE        ;WRITE OUT THE CURRENT FILE\r
43280         000655' 254000  000632' 08030           JRST    INSERT          ;GO BACK FOR MORE INSERTIONS\r
43281 \r
43282         000656' 260500  000737' 08050   IPROC7: PUSHJ   P, COPY         ;COPY REST OF MASTER FILE\r
43283         000657' 254000  002257' 08060           JRST    EXIT            ;EXIT\r
43284 \r\fFUDGE2  V.011                 PAGE 24\r
43285         EXTRACT PROCESSOR\r
43286 \r
43287                                 08080    SUBTTL EXTRACT PROCESSOR\r
43288                                 08090   ;THIS ROUTINE PROCESSES THE E COMMAND IN FUDGE. RATHER THAN\r
43289                                 08100   ;ONE MASTER AND SEVERAL TRANSACTION FILES, ALL FILES ARE\r
43290                                 08110   ;TREATED THE SAME. AFTER A CALL TO EITHER MSTGET OR TRNGET\r
43291                                 08120   ;PROGRAMS ARE SEARCHED FOR AND WRITTEN ON THE OUTPUT DEVICE.\r
43292 \r
43293         000660' 476000  005116' 08140   EXTRCT: SETOM   NOWARN          ;NO WARNING MESSAGE\r
43294         000661' 260500  000772' 08150           PUSHJ   P, MSTGET       ;GET A PROGRAM FROM MASTER DEVICE\r
43295         000662' 254000  000670' 08160           JRST    EPROC1          ;ALL DONE WITH MASTER DEVICE\r
43296         000663' 326540  000666' 08170           JUMPN   R,.+3           ;ANY PROGRAMS THIS FILE? **VJC\r
43297         000664' 260500  000737' 08180           PUSHJ   P,COPY          ;NO, COPY ENTIRE FILE ***VJC\r
43298         000665' 254000  000670' 08190           JRST    EPROC1          ; ***VJC\r
43299         000666' 260500  000751' 08200           PUSHJ   P, FINDCP       ;FIND THE PROGRAM AND COPY IT\r
43300         000667' 254000  000660' 08210           JRST    EXTRCT          ;RETURN FOR MORE MASTER PROGRAMS\r
43301         000670' 201040  002531' 08220   EPROC1: MOVEI   A, FILBUF+5     ;GET PROGRAM FROM TRANS BUFFER\r
43302         000671' 202040  002524' 08230           MOVEM   A, FILBUF       ;INITIALIZE POINTER FIRST\r
43303         000672' 260500  001031' 08240   EPROC2: PUSHJ   P, GETDEV       ;...\r
43304         000673' 254000  002257' 08250           JRST    EXIT            ;ALL DONE\r
43305         000674' 326540  000677' 08260           JUMPN   R,.+3           ;ANY PROGRAMS THIS FILE?  ***VJC\r
43306         000675' 260500  000737' 08270           PUSHJ   P,COPY          ;NO, COPY ENTIRE FILE ***VJC\r
43307         000676' 254000  000672' 08280           JRST    EPROC2          ; ***VJC\r
43308         000677' 260500  000751' 08290           PUSHJ   P, FINDCP       ;FIND THE PROGRAM AND COPY IT\r
43309         000700' 254000  000672' 08300           JRST    EPROC2          ;RETURN FOR MORE TRANS FILES\r
43310 \r\fFUDGE2  V.011                 PAGE 25\r
43311         DELETE PROCESSOR\r
43312 \r
43313                                 08320   SUBTTL DELETE PROCESSOR\r
43314                                 08330   ;THIS ROUTINE PROCESSES THE D COMMAND IN FUDGE2.  ONLY ONE\r
43315                                 08340   ;INPUT FILE WILL BE READ, AND THE PROGRAM NAMES ASSOCIATED\r
43316                                 08350   ;WITH ITS LIST WILL BE DELETED.\r
43317 \r
43318         000701' 260500  000772' 08370   DELETE: PUSHJ   P, MSTGET       ;GET A PROGRAM TO BE DELETED\r
43319         000702' 254000  000656' 08380           JRST    IPROC7          ;FINISH OFF THE MASTER FILE\r
43320         000703' 260500  001156' 08390   DPROC1: PUSHJ   P, READ         ;READ A PROGRAM\r
43321         000704' 254000  002026' 08400           JRST    ERROR7          ;EOF - CANT FIND IT\r
43322         000705' 316540  000001  08410           CAMN    R, A            ;CORRECT PROGRAM?\r
43323         000706' 254000  000701' 08420           JRST    DELETE          ;YES, GET THE NEXT ONE\r
43324         000707' 260500  001305' 08430           PUSHJ   P, WRITE        ;NO, WRITE THIS ONE OUT\r
43325         000710' 254000  000703' 08440           JRST    DPROC1          ;TRY AGAIN\r
43326 \r
43327                                 08460   ;APPEND PROCESSOR\r
43328                                 08470   ;THIS ROUTINE HANDLES THE A COMMAND IN FUDGE2. IT WILL COPY\r
43329                                 08480   ;THE ENTIRE MASTER FILE, THEN START OBTAINING TRANSACTION\r
43330                                 08490   ;DEVICES WITH CALLS TO TRNGET, APPENDING ONE OR MORE\r
43331                                 08500   ;PROGRAMS FROM EACH FILE.\r
43332 \r
43333         000711' 260500  000772' 08520   APPEND: PUSHJ   P, MSTGET       ;GET A PROGRAM FROM MASTER FILE\r
43334         000712' 254000  002024' 08530           JRST    ERROR6          ;NOT ENOUGH ARGUMENTS\r
43335         000713' 260500  000737' 08540           PUSHJ   P, COPY         ;COPY ENTIRE FILE\r
43336         000714' 201040  002531' 08550           MOVEI   A, FILBUF+5     ;INITIALIZE POINTER FOR TRANS\r
43337         000715' 202040  002524' 08560           MOVEM   A, FILBUF       ;...\r
43338         000716' 260500  001031' 08570   APROC3: PUSHJ   P, GETDEV       ;GET A PROGRAM NAME\r
43339         000717' 254000  002257' 08580           JRST    EXIT            ;ALL DONE\r
43340         000720' 260500  000751' 08590           PUSHJ   P, FINDCP       ;FIND THE PROGRAM AND COPY IT\r
43341         000721' 254000  000716' 08600           JRST    APROC3          ;GET NEXT APPENDATION\r
43342 \r\fFUDGE2  V.011                 PAGE 26\r
43343         DELETE PROCESSOR\r
43344 \r
43345 \r
43346                                 08630   ;THIS ROUTINE PROCESSES THE X COMMAND (INDEX LIBRARY)\r
43347                                 08640   ;AND FALLS INTO DELETE LOCAL SYMBOLS CODE.\r
43348                                 08650   ;IF NOT DESIRED SKIP TO DELCPY+1\r
43349 \r
43350         000722' 200040  003325' 08670   INDEX:  MOVE    A,DEVBUF+1      ;GET OUTPUT DEVICE\r
43351         000723' 000040  000000  08680           DEVCHR  A,              ;GET ITS CHARACTERISTICS\r
43352         000724' 607040  200100  08690           TLNN    A,DSKBIT!DTABIT ;ONLY ALLOW DSK AND DTA AS LIBRARY DEVICES\r
43353         000725' 254000  002172' 08700           JRST    ERR23           ;GIVE ERROR MESSAGE\r
43354         000726' 476000  005116' 08710           SETOM   NOWARN          ;NO WARNING MESSAGE IF /X\r
43355         000727' 660340  200000  08720           TRO     F,XFLG          ;SET INDEX FLAG\r
43356                                 08730   ;       TROA    F,XFLG          ;SET /X BUT NOT /C\r
43357 \r
43358                                 08750   ;DELETE LOCAL SYMBOLS AND COPY PROCESSOR\r
43359                                 08760   ;THIS ROUTINE PROCESSES THE C COMMAND\r
43360                                 08770   ;ONLY THE MASTER FILE IS HANDLED\r
43361 \r
43362         000730' 660340  000200  08790   DELCPY: TRO     F, NOLOCB       ;SET FLAG TO DELETE LOCAL SYMBOLS\r
43363         000731' 260500  000772' 08800           PUSHJ   P, MSTGET       ;GET A PROGRAM FROM MASTER FILE\r
43364         000732' 254000  002024' 08810           JRST    ERROR6          ;NOT ENOUGH ARGUMENTS\r
43365         000733' 260500  000737' 08820           PUSHJ   P, COPY         ;COPY ENTIRE FILE\r
43366         000734' 606340  200000  08830           TRNN    F,XFLG          ;INDEX FLAG ON?\r
43367         000735' 254000  002257' 08840           JRST    EXIT            ;ALL DONE\r
43368         000736' 254000  001571' 08850           JRST    INDEX3          ;YES DO PASS 2\r
43369 \r\fFUDGE2  V.011                 PAGE 27\r
43370         FUDGE2 IO SUBROUTINES\r
43371 \r
43372                                 08870   SUBTTL  FUDGE2 IO SUBROUTINES\r
43373 \r
43374                                 08890   ;ROUTINES TO COPY FILES, COPY UP TO A GIVEN PROGRAM IN A FILE\r
43375                                 08900   ;AND TO FIND A GIVEN PROGRAM IN A FILE AND COPY IT.\r
43376 \r
43377                                 08920   ;THE COPY ROUTINE WILL COPY BINARY PROGRAMS FROM WHEREVER THE\r
43378                                 08930   ;INPUT DEVICE HAPPENS TO BE WHEN IT IS CALLED, UP TO THE\r
43379                                 08940   ;END OF FILE. SINCE COPY IS CALLED WITH A PUSHJ, THE END-OF-\r
43380                                 08950   ;FILE EXIT IN INGET WILL EXIT TO THE PLACE THAT CALLED COPY.\r
43381 \r
43382         000737' 260500  001156' 08970   COPY:   PUSHJ   P, READ         ;READ A PROGRAM\r
43383         000740' 263500  000000  08980           POPJ    P,              ;EXIT WHEN ALL THROUGH FILE\r
43384         000741' 260500  001305' 08990           PUSHJ   P, WRITE        ;WRITE OUT THE PROGRAM\r
43385         000742' 254000  000737' 09000           JRST    COPY            ;RETURN FOR MORE PROGRAMS\r
43386 \r
43387                                 09020   ;THE COPYTO ROUTINE WILL READ AND WRITE PROGRAMS FROM THE\r
43388                                 09030   ;INPUT DEVICE UNTIL THE PROGRAM WHOSE NAME IS IN ACCUMULATOR\r
43389                                 09040   ;R IS FOUND, AT WHICH TIME IT EXITS\r
43390 \r
43391         000743' 260500  001156' 09060   COPYTO: PUSHJ   P, READ         ;READ A PROGRAM\r
43392         000744' 254000  002026' 09070           JRST    ERROR7          ;EOF - CANT FIND IT\r
43393         000745' 316540  000001  09080           CAMN    R, A            ;IS IT THE CORRECT PROGRAM?\r
43394         000746' 263500  000000  09090           POPJ    P,              ;YES, EXIT\r
43395         000747' 260500  001305' 09100           PUSHJ   P, WRITE        ;NO, WRITE IT OUT\r
43396         000750' 254000  000743' 09110           JRST    COPYTO          ;READ SOME MORE PROGRAMS\r
43397 \r\fFUDGE2  V.011                 PAGE 28\r
43398         FUDGE2 IO SUBROUTINES\r
43399 \r
43400 \r
43401                                 09140   ;THE FINDCP ROUTINE WILL SEARCH THE INPUT FILE FOR A PROGRAM\r
43402                                 09150   ;WHOSE NAME IS IN ACCUMULATOR R, AND HAVING FOUND IT, WILL\r
43403                                 09160   ;WRITE IT OUT. IF THE CONTENTS OF AC R ARE ZERO, THE ENTIRE\r
43404                                 09170   ;FILE IS COPIED.\r
43405 \r
43406         000751' 322540  000737' 09190   FINDCP: JUMPE   R, COPY         ;COPY ENTIRE FILE?\r
43407         000752' 260500  001156' 09200   FIND1:  PUSHJ   P, READ         ;READ A PROGRAM FROM INPUT FILE\r
43408         000753' 254000  000757' 09210           JRST    FIND2           ;EOF, TRY REWINDING AND TRYING AGAIN\r
43409         000754' 312540  000001  09220           CAME    R, A            ;IS THIS THE RIGHT ONE?\r
43410         000755' 254000  000752' 09230           JRST    FIND1           ;NO, TRY AGAIN\r
43411         000756' 254000  001305' 09240           JRST    WRITE           ;YES, WRITE IT OUT AND EXIT\r
43412 \r
43413         000757' 322040  002026' 09260   FIND2:  JUMPE   A,ERROR7        ;V3 IF EOF OUTPUT ERROR MESSAGE\r
43414         000760' 260500  001024' 09270           PUSHJ   P, BACKSP       ;BACKSPACE THE MAG TAPE\r
43415         000761' 550040  002524' 09280           HRRZ    A, FILBUF       ;PICK UP THE FILE POINTER\r
43416         000762' 502041  000003  09290           HLLM    A, 3(A)         ;CLEAR THE LOOKUP FLAG FOR DECTAPE\r
43417         000763' 260500  001031' 09300           PUSHJ   P, GETDEV       ;SET UP THE PROGRAM AGAIN\r
43418         000764' 254000  002013' 09310           JRST    ERROR3          ;IMPOSSIBLE ERROR RETURN\r
43419         000765' 260500  001156' 09320   FIND3:  PUSHJ   P, READ         ;READ A PROGRAM FROM INPUT FILE\r
43420         000766' 254000  002026' 09330           JRST    ERROR7          ;EOF - REALLY CANT FIND IT\r
43421         000767' 312540  000001  09340           CAME    R, A            ;IS THIS THE RIGHT ONE?\r
43422         000770' 254000  000765' 09350           JRST    FIND3           ;NO, TRY AGAIN\r
43423         000771' 254000  001305' 09360           JRST    WRITE           ;YES, WRITE IT OUT AND EXIT\r
43424 \r\fFUDGE2  V.011                 PAGE 29\r
43425         FUDGE2 IO SUBROUTINES\r
43426 \r
43427                                 09380   ;ROUTINE MSTGET RETRIEVES A PROGRAM NAME FROM THE MASTER\r
43428                                 09390   ;DEVICE SPECIFICATIONS. IT SAVES THE POINTER IN FILBUF, \r
43429                                 09400   ;CHANGES IT TO POINT TO ITS OWN BLOCK, THEN CALLS GETDEV\r
43430 \r
43431         000772' 200040  002524' 09420   MSTGET: MOVE    A, FILBUF       ;GET THE POINTER TO CURRENT FILE\r
43432         000773' 202040  002515' 09430           MOVEM   A, FILSAV       ;SAVE THE CURRENT POINTER\r
43433         000774' 201040  002525' 09440           MOVEI   A, FILBUF+1     ;CHANGE IT TO POINT TO MASTER\r
43434         000775' 202040  002524' 09450           MOVEM   A, FILBUF       ;...\r
43435         000776' 254000  001031' 09460           JRST    GETDEV          ;CALL COMMON ROUTINE\r
43436 \r
43437 \r
43438                                 09490   ;ROUTINE TRNGET RETRIEVES A PROGRAM NAME FROM THE TRANSACTION\r
43439                                 09500   ;FILES. IT RESETS THE POINTER THAT MSTGET WIPED OUT, AND CALLS\r
43440                                 09510   ;THE COMMON PROGRAM RETRIEVAL PROGRAM GETDEV.\r
43441 \r
43442         000777' 200040  002515' 09530   TRNGET: MOVE    A, FILSAV       ;GET SAVED POINTER\r
43443         001000' 202040  002524' 09540           MOVEM   A, FILBUF       ;RESTORE IT TO ITS PLACE\r
43444         001001' 254000  001031' 09550           JRST    GETDEV          ;CALL COMMON ROUTINE\r
43445 \r
43446                                 09570   ;ROUTINE RESET RESTORES THE STATE OF THE MASTER DEVICE TO\r
43447                                 09580   ;WHAT IT WAS JUST AFTER THE LAST TIME MSTGET WAS CALLED. IT\r
43448                                 09590   ;SETS THE POINTER OF THE MASTER FILE BACK TO THE PREVIOUS\r
43449                                 09600   ;PROGRAM, CALLS MSTGET, AND FINDS THE PROGRAM AGAIN\r
43450 \r
43451         001002' 201040  002531' 09620   RESET:  MOVEI   A,FILBUF+5      ;START OF TRANSACTION LIST  ***DMN\r
43452         001003' 502040  002527' 09630           HLLM    A, FILBUF+3     ;NOW CLEAR LOOKUP FLAG ON MASTER\r
43453         001004' 370000  002527' 09640           SOS     FILBUF+3        ;MOVE POINTER BACK ONE PROGRAM\r
43454         001005' 336001  000000  09650   RESET2: SKIPN   (A)             ;ANY TRANSACTION FILES ?    ***DMN\r
43455         001006' 254000  001012' 09660           JRST    RESET3          ;NO-ALL DONE                ***DMN\r
43456         001007' 502041  000002  09670           HLLM    A,2(A)          ;CLEAR LOOKUP FLAG ON IT    ***DMN\r
43457         001010' 271040  000003  09680           ADDI    A,3             ;NEXT FILE                  ***DMN\r
43458         001011' 254000  001005' 09690           JRST    RESET2          ;GO BACK FOR MORE           ***DMN\r
43459         001012' 260500  000772' 09700   RESET3: PUSHJ   P, MSTGET       ;SET UP THE MASTER DEVICE\r
43460         001013' 254000  002013' 09710           JRST    ERROR3          ;FUDGE ERROR-NO MASTER!\r
43461         001014' 260500  001024' 09720           PUSHJ   P, BACKSP       ;BACKSPACE IN CASE ITS A MAG TAPE\r
43462         001015' 200040  002515' 09730           MOVE    A, FILSAV       ;DIDDLE THE POINTERS, BECAUSE MSTGET\r
43463         001016' 202040  002524' 09740           MOVEM   A, FILBUF       ;WILL BE CALLED AGAIN IMMEDIATELY\r
43464         001017' 260500  001156' 09750   RESET1: PUSHJ   P, READ         ;READ A PROGRAM FROM MASTER FILE\r
43465         001020' 254000  002013' 09760           JRST    ERROR3          ;FUDGE ERROR-CANT FIND PROGRAM\r
43466         001021' 312540  000001  09770           CAME    R, A            ;IS IT THE RIGHT PROGRAM NAME?\r
43467         001022' 254000  001017' 09780           JRST    RESET1          ;NO, LOOK AGAIN\r
43468         001023' 263500  000000  09790           POPJ    P,              ;YES, EXIT\r
43469         001024' 137240  005146' 09800   BACKSP: DPB     D, [POINT 4, BACK0,12]\r
43470         001025' 137240  005147' 09810           DPB     D, [POINT 4, BACK1, 12]\r
43471         001026' 137240  005150' 09820           DPB     D, [POINT 4, BACK2,12]\r
43472         001027' 137240  005151' 09830           DPB     D, [POINT 4,BACK3,12]\r
43473         001030' 254000  002465' 09840           JRST    BACK0           ;GO TO POSITION MAGTAPE\r
43474 \r\fFUDGE2  V.011                 PAGE 30\r
43475         COMMON PROGRAM RETRIEVAL PROGRAM GETDEV.\r
43476 \r
43477                                 09860   SUBTTL COMMON PROGRAM RETRIEVAL PROGRAM GETDEV.\r
43478                                 09870   ;THIS PROGRAM USES VARIOUS POINTERS AND BITS OF INFORMATION\r
43479                                 09880   ;IN FILBUF AND PRG BUF TO RETURN TO THE USER A RADIX 50\r
43480                                 09890   ;PROGRAM NAME AS SEEN IN THE COMMAND STRING. THE STRUCTURE\r
43481                                 09900   ;OF INFORMATION IN THESE TWO BUFFERS IS AS FOLLOWS:\r
43482 \r
43483                                 09920   ;FILBUF IS A LIST OF 3-WORD BLOCKS OF DATA ABOUT EACH FILE.\r
43484                                 09930   ;THE FIRST WORD IN FILBUF IS A POINTER WHICH POINTS TO THE\r
43485                                 09940   ;FIRST WORD OF THE BLOCK CURRENTLY BEING WORKED ON BY\r
43486                                 09950   ;THE VARIOUS SUBROUTINES OF FUDGE. WHEN THE COMMAND STRING\r
43487                                 09960   ;IS BEING PROCESSED AND INFORMATION IS BEING STORED IN FILBUF,\r
43488                                 09970   ;THIS POINTER IS IN THE FORM OF AN AOBJN WORD SO THAT A CHECK\r
43489                                 09980   ;CAN BE MADE FOR BUFFER OVERFLOW. THE CONTENTS OF THE 3-WORD\r
43490                                 09990   ;FILE BLOCK IS AS FOLLOWS:\r
43491                                 10000   ;       1ST WORD - SIXBIT FILE NAME, OR ZERO IF THIS IS THE\r
43492                                 10010   ;                  END OF THE LIST .\r
43493                                 10020   ;       2ND WORD - LEFT HALF CONTAINS A SIXBIT FILE NAME EXTENSION\r
43494                                 10030   ;                  RIGHT HALF CONTAINS THE CHANNEL NUMBER FOR\r
43495                                 10040   ;                  THIS FILE.\r
43496                                 10050   ;       3RD WORD - LEFT HALF IS ZERO IS A LOOKUP HAS NOT BEEN\r
43497                                 10060   ;                  DONE ON THIS FILE NAME, AND -1 IF IT HAS. A\r
43498                                 10070   ;                  LOOKUP CAN THUS BE FORECED BY ZEROING OUT THE\r
43499                                 10080   ;                  LEFT HALF OF THE WORD.\r
43500                                 10090   ;                  RIGHT HALF CONTAINS A POINTER TO THE LAST\r
43501                                 10100   ;                  PROGRAM NAME IN PRGBUF THAT WAS REFERENCED. THE\r
43502                                 10110   ;                  RIGHT HALF IS ZERO IF THERE ARE NO PROGRAM\r
43503                                 10120   ;                  NAMES ASSOCIATED WITH THE FILE.\r
43504 \r
43505                                 10140   ;PRGBUF IS A LIST OF PROGRAM NAMES USED BY THE FILES IN FILBUF.\r
43506                                 10150   ;THE FIRST WORD OF PRGBUF IS A POINTER WORD WHOSE USE IS THE\r
43507                                 10160   ;SAME AS THE FIRST WORD OF FILBUF.THE ENTRIES IN PRGBUF CONSIST\r
43508                                 10170   ;OF A LIST OF RADIX50 SYMBOLS, ONE TO A WORD, TERMINATED BY\r
43509                                 10180   ;A ZERO WORD.\r
43510 \r
43511                                 10200   ;FUDGE2 WORKS WITH FILBUF AND PRGBUF IN TWO DISTINCTLY \r
43512                                 10210   ;DIFFERENT WAYS: ONCE WHEN IT IS PROCESSING THE COMMAND STRING\r
43513                                 10220   ;AND STORING THE VARIOUS FILE NAMES AND PROGRAM NAMES, AND\r
43514                                 10230   ;ONCE WHEN IT IS USING THE INFORMATION IN THE FILES TO PROCESS\r
43515                                 10240   ;A FUDGE COMMAND. WHEN A FILE NAME IS SEEN IN THE COMMAND STRING,\r
43516                                 10250   ;THE STATUS OF THE PREVIOUS FILE IS CHECKED. IF THE PREVIOUS\r
43517                                 10260   ;FILE HAD NO PROGRAM NAMES, THEN ITS POINTER WORD (3RD WORD) IS\r
43518                                 10270   ;ZEROED OUT TO INDICATE THE ABSCENCE OF ANY PROGRAMS IN PRGBUF.\r
43519                                 10280   ;OTHERWISE, PROCESSING BEGINS ON THE CURRENT FILE: THE FILE\r
43520                                 10290   ;NAME, FILE NAME EXTENSION, AND CHANNEL NUMBER ARE STORED. THE\r
43521                                 10300   ;CONTENTS OF THE POINTER WORD IN PRGBUF ARE STORED IN THE\r
43522                                 10310   ;POINTER WORD OF THE FILE BLOCK\r
43523                                 10320   ;ROOM IS LEFT IN FILBUF SO THAT WHEN THE CARRIAGE RETURN IS\r
43524                                 10330   ;SEEN, FUDGE2 CAN SHUFFLE THE FIRST FILE BLOCK UP ONE WORD AND\r
43525                                 10340   ;INSERT ANOTHER NULL. THE EFFECT OF THIS KLUDGE IS THAT WE NOW\r
43526                                 10350   ;HAVE TWO SEPARATE LISTS IN FILBUF, A MASTER LIST, AND A \r
43527                                 10360   ;TRANSACTION LIST.\r
43528 \r\fFUDGE2  V.011                 PAGE 31\r
43529         COMMON PROGRAM RETRIEVAL PROGRAM GETDEV.\r
43530 \r
43531         001031' 200100  002524' 10380   GETDEV: MOVE    B, FILBUF       ;GET POINTER TO FILE BLOCK\r
43532         001032' 336002  000000  10390           SKIPN   (B)             ;END OF LIST? (ZERO TERMINATES)\r
43533         001033' 263500  000000  10400           POPJ    P,              ;YES, EXIT\r
43534         001034' 200040  003124' 10410           MOVE    A,PPNBUF        ;GET POINTER TO PPN'S\r
43535         001035' 200241  000000  10420           MOVE    D,(A)           ;GET GLOBAL PPN\r
43536         001036' 202240  005112' 10430           MOVEM   D,DEFPPN        ;SAVE AS DEFAULT PPN\r
43537         001037' 200241  000001  10440           MOVE    D,1(A)          ;GET TEMP. PPN\r
43538         001040' 202240  005113' 10450           MOVEM   D,PRJPRG        ;SAVE AS TEMP. PPN\r
43539         001041' 271040  000002  10460           ADDI    A,2             ;INCREMENT POINTER\r
43540         001042' 202040  003124' 10470           MOVEM   A,PPNBUF        ;SAVE NEW POINTER\r
43541         001043' 550242  000001  10480           HRRZ    D, 1(B)         ;GET DEVICE NUMBER FOR THIS DEVICE\r
43542         001044' 331002  000002  10490           SKIPL   2(B)            ;HAS A LOOKUUP BEEN DONE?\r
43543         001045' 254000  001066' 10500           JRST    GET3            ;NO, GO DO LOOKUP\r
43544         001046' 201640  000003  10510   GET0:   MOVEI   DIS, 3          ;SET UP AC DIS\r
43545         001047' 220640  000005  10520           IMUL    DIS, D          ;C(DIS) = 3*C(D)\r
43546         001050' 550042  000002  10530           HRRZ    A, 2(B)         ;GET  POINTER TO  PROGRAM NAMES\r
43547         001051' 322040  001060' 10540           JUMPE   A, GET1         ;NULL PROGRAM LIST (NO POINTER)?\r
43548         001052' 350042  000002  10550           AOS     A, 2(B)         ;NO, INCREMENT POINTER BY ONE\r
43549         001053' 200541  000000  10560           MOVE    R, (A)          ;GET A PROGRAM NAME\r
43550         001054' 326540  001063' 10570           JUMPN   R, CPOPJ1       ;END OF PROGRAM LIST?\r
43551         001055' 271100  000003  10580           ADDI    B, 3            ;YES, INCREMENT FILBUF POINTER\r
43552         001056' 202100  002524' 10590           MOVEM   B, FILBUF       ;SAVE NEW POINTER\r
43553         001057' 254000  001031' 10600           JRST    GETDEV          ;TRY NEXT FILE BLOCK\r
43554 \r
43555         001060' 201540  000000  10620   GET1:   MOVEI   R, 0            ;NO PROGRAMS, RETURN ZERO\r
43556         001061' 271100  000003  10630           ADDI    B, 3            ;MOVE FILBUF POINTER TO NEXT BLOCK\r
43557         001062' 202100  002524' 10640           MOVEM   B, FILBUF       ;SAVE THE POINTER\r
43558         001063' 354012  000000  10650   CPOPJ1: AOSA    (P)             ;GOOD RETURN\r
43559         001064' 262512  000000  10660   POPOUT: POP     P,(P)           ;POP UP ONE LEVEL\r
43560         001065' 263500  000000  10670   CPOPJ:  POPJ    P,              ;EXIT\r
43561 \r\fFUDGE2  V.011                 PAGE 32\r
43562         COMMON PROGRAM RETRIEVAL PROGRAM GETDEV.\r
43563 \r
43564 \r
43565         001066' 137240  005152' 10700   GET3:   DPB     D, [POINT 4,GET3A,12]\r
43566         001067' 256000  002472' 10710           XCT     GET3A           ;CLOSE CURRENT FILE BEFORE DOING...\r
43567         001070' 200042  000000  10720           MOVE    A, (B)          ;GET FILE NAME OF NEXT FILE\r
43568         001071' 202040  004572' 10730           MOVEM   A, EBLOCK       ;SET UP FOR LOOKUP\r
43569         001072' 510042  000001  10740           HLLZ    A, 1(B)         ;GET FILE NAME EXTENSION\r
43570         001073' 202040  004573' 10750           MOVEM   A, EBLOCK+1     ;SAVE IT FOR LOOKUP\r
43571         001074' 563042  000002  10760           HRROS   A, 2(B)         ;SET FLAG IN LEFT HALF OF 3RD WORD\r
43572         001075' 137240  005153' 10770           DPB     D, [POINT 4,GET4A,12]\r
43573         001076' 336040  005113' 10780           SKIPN   A,PRJPRG        ;GET TEMP. PPN\r
43574         001077' 200040  005112' 10790           MOVE    A,DEFPPN        ;USE PERMANENT IF NO TEMP.\r
43575         001100' 202040  004575' 10800           MOVEM   A,EBLOCK+3      ;SAVE IT\r
43576         001101' 202040  004571' 10810           MOVEM   A,EBLOCK-1      ;FOR LEVEL D ALSO\r
43577         001102' 200045  003324' 10820           MOVE    A,DEVBUF(D)     ;GET DEVICE\r
43578         001103' 000040  000000  10830           DEVCHR  A,              ;GET ITS CHARACTERISTICS\r
43579         001104' 607040  200000  10840           TLNN    A,DSKBIT        ;IF NOT A DSK\r
43580         001105' 634140  000003  10850           TDZA    T,T             ;NO EXTENDED LOOKUP\r
43581         001106' 200140  005111' 10860           MOVE    T,LEVEL         ;GET LEVEL\r
43582         001107' 256000  002473' 10870   GET4:   XCT     GET4A           ;DO A LOOKUP ON NEW FILE\r
43583         001110' 254000  001113' 10880           JRST    .+3             ;NOT FOUND, TRY WITH BLANKS EXT.\r
43584         001111' 402000  004575' 10890           SETZM   EBLOCK+3        ;CLEAR PROJ-PROG\r
43585         001112' 254000  001121' 10900           JRST    DOENTR          ;SUCCESSFUL RETURN FROM LOOKUP\r
43586         001113' 554042  000001  10910           HLRZ    A, 1(B)         ;GET THE FILE NAME EXTENSION\r
43587         001114' 302040  624554  10920           CAIE    A, 624554       ;IS IT "REL" ?\r
43588         001115' 254000  002043' 10930           JRST    ERROR8          ;NO,  DON'T GIVE HIM ANOTHER CHANCE\r
43589         001116' 502042  000001  10940           HLLM    A, 1(B)         ;YES, TRY LOOKUP WITH 0 EXTENSION\r
43590         001117' 402000  004573' 10950           SETZM   EBLOCK+1        ;CLEAR EXTENSION IN LOOKUP BLOCK\r
43591         001120' 254000  001107' 10960           JRST    GET4            ;TRY AGAIN\r
43592 \r
43593         001121' 336000  005111' 10980   DOENTR: SKIPN   LEVEL           ;IF NOT LEVEL D\r
43594         001122' 254000  001134' 10990           JRST    DOXSWT          ;ENTER DONE ALREADY\r
43595         001123' 204140  005143' 11000           MOVS    T,[XWD EBLOCK,SVENTR]\r
43596         001124' 251140  004573' 11010           BLT     T,EBLOCK+1      ;RESTORE EBLOCK\r
43597         001125' 205140  777000  11020           MOVSI   T,777000        ;MASK FOR PROTECTION\r
43598         001126' 406140  004574' 11030           ANDM    T,EBLOCK+2      ;CLEAR DATE AND TIME\r
43599         001127' 402000  004571' 11040           SETZM   EBLOCK-1        ;CLEAR PPN\r
43600         001130' 200140  005111' 11050           MOVE    T,LEVEL\r
43601         001131' 256000  002463' 11060           XCT     SEMIC1          ;DO ENTER\r
43602                                 11070           JRST    [HRRZ T,EBLOCK+1 ;GET ERROR CODE\r
43603                                 11080                   CAIN    T,17    ;PARTIAL ALLOCATION ONLY?\r
43604                                 11090                   JRST    .+1     ;YES, JUST CONTINUE\r
43605         001132' 254000  005154' 11100                   JRST    ERR14]  ;ERROR\r
43606         001133' 402000  005111' 11110           SETZM   LEVEL           ;NEVER AGAIN\r
43607         001134' 602340  200000  11120   DOXSWT: TRNE    F,XFLG          ;INDEX FLAG ON?\r
43608         001135' 260500  001467' 11130           PUSHJ   P,INDEX0        ;YES, SET UP POINTERS AND CORE\r
43609         001136' 254000  001046' 11140           JRST    GET0            ;AND CONTINUE\r
43610 \r\fFUDGE2  V.011                 PAGE 33\r
43611         COMMON PROGRAM RETRIEVAL PROGRAM GETDEV.\r
43612 \r
43613 \r
43614                                 11170   ;SHORT ROUTINES TO STORE WORDS IN THE FILE BUFFER AND PROGRAM\r
43615                                 11180   ;BUFFER\r
43616                                 11190   ;ROUTINE PUTFIL STORES THE CONTENTS OF ACCUMULATOR S IN THE\r
43617                                 11200   ;NEXT FREE LOCATION IN FILBUF. IT CHECKS FOR OVERFLOW.\r
43618 \r
43619         001137' 200040  002524' 11220   PUTFIL: MOVE    A, FILBUF       ;GET POINTER WORD FOR FILBUF\r
43620         001140' 252040  002011' 11230           AOBJP   A, ERROR2       ;INCREMENT, CHECK FOR OVERFLOW\r
43621         001141' 202040  002524' 11240           MOVEM   A, FILBUF       ;SAVE NEW POINTER\r
43622         001142' 202601  000000  11250           MOVEM   S, (A)          ;SAVE FILE NAME ENTRY\r
43623         001143' 263500  000000  11260           POPJ    P,              ;EXIT\r
43624 \r
43625 \r
43626                                 11290   ;ROUTINE PUTPRG STORES THE CONENTS OF ACCUMULATOR S IN THE\r
43627                                 11300   ;NEXT FREE LOCATION IN PRGBUF. IT CHECKS FOR OVERFLOW.\r
43628 \r
43629         001144' 200040  002724' 11320   PUTPRG: MOVE    A, PRGBUF       ;GET POINTER WORD FOR BUFFER\r
43630         001145' 252040  002011' 11330           AOBJP   A, ERROR2       ;INCREMENT, CHECK FOR OVERFLOW\r
43631         001146' 202040  002724' 11340           MOVEM   A, PRGBUF       ;SAVE NEW POINTER WORD\r
43632         001147' 202601  000000  11350           MOVEM   S, (A)          ;SAVE PROGRAM NAME\r
43633         001150' 263500  000000  11360           POPJ    P,              ;EXIT\r
43634 \r
43635                                 11380   ;ROUTINE PUTPPN STORE THE TWO PPPN NUMBER IN PPNBUF\r
43636 \r
43637         001151' 200040  003124' 11400   PUTPPN: MOVE    A,PPNBUF        ;GET POINTER WORD FOR BUFFER\r
43638         001152' 252040  002011' 11410           AOBJP   A,ERROR2\r
43639         001153' 202040  003124' 11420           MOVEM   A,PPNBUF        ;SAVE NEW POINTER WORD\r
43640         001154' 202601  000000  11430           MOVEM   S,(A)           ;SAVE PPN\r
43641         001155' 263500  000000  11440           POPJ    P,              ;EXIT\r
43642 \r\fFUDGE2  V.011                 PAGE 34\r
43643         ROUTINE TO INPUT ONE PROGRAM AT A TIME\r
43644 \r
43645                                 11460   SUBTTL ROUTINE TO INPUT ONE PROGRAM AT A TIME\r
43646                                 11470   ;THE FIRST WORD THAT THE PROGRAM READS WILL BE A BLOCK HEADER.\r
43647                                 11480   ;BLOCKS ARE READ UNTIL AN ENTRY BLOCK IS FOUND, AND THE ENTIRE\r
43648                                 11490   ;ENTRY BLOCK IS STORED IN AN INTERNAL BUFFER,SIZE PERMITTING.\r
43649                                 11500   ;FOLLOWING THAT, THE NAME BLOCK IS READ, AND THE NAME OF THE \r
43650                                 11510   ;PROGRAM IS RETURNED IN ACCUMULATOR A. PROVISION IS MADE FOR\r
43651                                 11520   ;BLOCKS OF WORD COUNT ZERO. THE SECTION OF CODING AROUND READ2\r
43652                                 11530   ;DELIBERATELY OMITS THIS CHECK IN ORDER TO READ IN THE NEXT\r
43653                                 11540   ;BLOCK HEADER WITH A MINIMUM OF INSTRUCTIONS. ORDINARILY, EACH\r
43654                                 11550   ;PROGRAM WILL BEGIN WITH AN ENTRY BLOCK, BUT THE ROUTINE WILL\r
43655                                 11560   ;ALSO ALLOW THE PROGRAM TO BEGIN WITH A NAME BLOCK IF NO\r
43656                                 11570   ;ENTRY BLOCK IS SEEN.\r
43657 \r
43658         001156' 201200  003334' 11590   READ:   MOVEI   C, ENTBLK       ;SET UP POINTER TO BUFFER\r
43659         001157' 260500  001647' 11600   READ6:  JSR     GETIN           ;GET A BLOCK HEADER\r
43660         001160' 554100  000001  11610           HLRZ    B, A            ;GET THE BLOCK CODE\r
43661         001161' 306100  000014  11620           CAIN    B,14            ;IS IT AN INDEX BLOCK?\r
43662         001162' 254000  001276' 11630           JRST    READX           ;YES, GET RID OF IT\r
43663         001163' 306100  000004  11640           CAIN    B, 4            ;IS IT AN ENTRY BLOCK?\r
43664         001164' 254000  001206' 11650           JRST    READ1           ;YES, PROCESS IT\r
43665         001165' 306100  000006  11660           CAIN    B, 6            ;IS IT A NAME BLOCK?\r
43666         001166' 254000  001266' 11670           JRST    READ7           ;YES, PROCESS IT\r
43667         001167' 306100  000400  11680           CAIN    B,400           ;F4 SIGNAL WORD?\r
43668         001170' 254000  001270' 11690           JRST    F4I             ;YES, PROCESS F4 BLOCKS\r
43669         001171' 260500  001337' 11700           PUSHJ   P, COUNT        ;CALCULATE SIZE OF BLOCK\r
43670         001172' 322100  001157' 11710           JUMPE   B, READ6        ;WORD COUNT OF ZERO?\r
43671         001173' 311115  004612' 11720   READ6A: CAML    B, IBUF+2(DIS)  ;DOES BLOCK OVERLAP IO BUFFERS?\r
43672         001174' 254000  001202' 11730           JRST    READ6B          ;ADJUST B AND GET ANOTHER BUFFER\r
43673         001175' 200055  004612' 11740           MOVE    A, IBUF+2(DIS)  ;NO, DIDDLE BUFFER HEADER COUNT\r
43674         001176' 274040  000002  11750           SUB     A, B            ;ELIMINATE BLOCK OF LENGTH C(B)\r
43675         001177' 202055  004612' 11760           MOVEM   A, IBUF+2(DIS)  ;PUT NEW WORD COUNT BACK\r
43676         001200' 272115  004611' 11770           ADDM    B, IBUF+1(DIS)  ;MOVE BYTE POINTER PAST BLOCK\r
43677         001201' 254000  001157' 11780           JRST    READ6           ;GET NEXT BLOCK\r
43678         001202' 274115  004612' 11790   READ6B: SUB     B, IBUF+2(DIS)  ;ACCOUNT FOR REST OF THIS BUFFER\r
43679         001203' 402015  004612' 11800           SETZM   IBUF+2(DIS)     ;FORCE ANOTHER INBUF\r
43680         001204' 260500  001647' 11810           JSR     GETIN           ;GET ANOTHER BUFFER OF INPUT\r
43681         001205' 254000  001173' 11820           JRST    READ6A          ;CHECK AGAIN\r
43682 \r
43683 \r
43684                                 11850   ; THIS CODE MODIFIED 3-21-71 BY DCS (STANFORD) TO HANDLE\r
43685                                 11860   ;  MORE THAN ONE ENTRY BLOCK (FAIL AND SAIL BOTH ISSUE\r
43686                                 11870   ;  MULTIPLE ENTRY BLOCKS).\r
43687 \r
43688                         000452  11890   SIZZ==SIZE-<<SIZE+21>/22>-4     ;ACCOUNT FOR HDR BLKS, RELOC WRDS, PROGNAME\r
43689         001206' 402000  003334' 11900   READ1:  SETZM   ENTBLK          ;SAME AS (C) AT PRESENT\r
43690         001207' 505200  777777  11910           HRLI    C,-1            ;AOBJN WILL OVERFLOW FIRST TIME\r
43691 \r
43692                                 11930   ; BACK HERE FOR EACH NEW ENTRY BLOCK\r
43693 \r
43694         001210' 211101  400000  11950   READ2:  MOVNI   B,400000(A)     ;-1 IN LH, 377777-CT IN RH\r
43695         001211' 553000  000001  11960           HRRZS   A\r
43696         001212' 270040  003334' 11970           ADD     A,ENTBLK        ;NEW COUNT IF IT FITS\r
43697         001213' 303040  000452  11980           CAILE   A,SIZZ          ;TOO MUCH NOW?\r
43698 \r\fFUDGE2  V.011                 PAGE 34-1\r
43699         ROUTINE TO INPUT ONE PROGRAM AT A TIME\r
43700 \r
43701         001214' 664340  002000  11990            TROA    F,ERRB         ; YES, MARK ENTRY BLOCK TOO BIG\r
43702         001215' 202040  003334' 12000           MOVEM   A,ENTBLK        ;NO, UPDATE USED COUNT\r
43703                                 12010   ; HERE FOR EACH NEW WORD\r
43704         001216' 606100  377777  12020   READ23: TRNN    B,377777        ;END THIS LOADER BLOCK?\r
43705         001217' 254000  001233' 12030            JRST    READ55         ; YES, CHECK NEXT\r
43706         001220' 253100  001223' 12040           AOBJN   B,NXTWRD        ;TIME FOR SOME RELOC BITS?\r
43707         001221' 260500  001647' 12050           JSR     GETIN           ;YES, GET THEM AND TOSS THEM\r
43708         001222' 505100  777756  12060           HRLI    B,-22           ;AND RESET COUNT\r
43709         001223' 260500  001647' 12070   NXTWRD: JSR     GETIN           ;GET A DATA WORD\r
43710                                 12080   ; (ROUTINE COURTESY OF DEC LOADER)\r
43711 \r
43712         001224' 253200  001230' 12100           AOBJN   C,READ22        ;NEED TO INSERT RELOC WORD?\r
43713         001225' 606340  002000  12110           TRNN    F,ERRB          ;YES, UNLESS NOT INSERTING\r
43714         001226' 402004  000000  12120            SETZM   (C)            ; ALL ENTRY RELOCS ARE 0\r
43715         001227' 270200  005160' 12130           ADD     C,[XWD -22,1]   ;LH 0 BEFORE ADD, SET UP NEXT\r
43716         001230' 606340  002000  12140   READ22: TRNN    F,ERRB          ;ARE WE INSERTING?\r
43717         001231' 202044  000000  12150            MOVEM   A,(C)          ; YES, PUT IT AWAY\r
43718         001232' 254000  001216' 12160           JRST    READ23          ;LOOP\r
43719 \r
43720 \r
43721         001233' 260500  001647' 12190   READ55: JSR     GETIN           ;GET NEXT HEADER WORD\r
43722         001234' 554100  000001  12200           HLRZ    B,A             ;TYPE\r
43723         001235' 306100  000004  12210           CAIN    B,4             ;ANOTHER ENTRY?\r
43724         001236' 254000  001210' 12220            JRST    READ2          ; YES, STORE IT\r
43725 \r
43726                                 12240   ; PROGRAM NAME -- FINISH ENTRY BLOCK OUT\r
43727         001237' 201100  000004  12250           MOVEI   B,4             ;ENTRY BLOCK TYPE\r
43728         001240' 506100  003334' 12260           HRLM    B,ENTBLK        ;NOW CORRECT TYPE,,COUNT\r
43729         001241' 505200  000000  12270           HRLI    C,0             ;CLEAR LH COUNT\r
43730         001242' 344200  001266' 12280           AOJA    C,READ7         ;STORE NAME BLOCK HEADER AND CONTINUE\r
43731                                 12290   ; END OF DCS PATCH 3-21-71\r
43732 \r\fFUDGE2  V.011                 PAGE 35\r
43733         ROUTINE TO INPUT ONE PROGRAM AT A TIME\r
43734 \r
43735         001243' 260500  001337' 12310   READ5:  PUSHJ   P, COUNT        ;CALCULATE SIZE OF BLOCK\r
43736         001244' 322100  001261' 12320           JUMPE   B, READ9        ;WORD COUNT OF ZERO?\r
43737         001245' 260500  001647' 12330   READ3:  JSR     GETIN           ;GET A WORD\r
43738         001246' 202044  000000  12340           MOVEM   A, (C)          ;STORE IT\r
43739         001247' 340200  000000  12350           AOJ     C,              ;INCREMENT BUFFER POINTER\r
43740         001250' 367100  001245' 12360           SOJG    B, READ3        ;DONE READING YET?\r
43741         001251' 306440  000002  12370           CAIN    G+1, 2          ;IS THERE A COMMON WORD?\r
43742         001252' 200044  777776  12380           MOVE    A, -2(C)        ;GET PROGRAM NAME IN A\r
43743         001253' 322040  001261' 12390           JUMPE   A, READ9        ;IGNORE WORD OF ZERO\r
43744         001254' 200100  000001  12400           MOVE    B, A            ;GET RID OF EXTRA BLANKS\r
43745         001255' 231100  000050  12410   READ8:  IDIVI   B, 50           ;TRY DIVIDING IT BY 50\r
43746         001256' 326140  001261' 12420           JUMPN   B+1, READ9      ;FILTERED OUT ALL THE BLANKS?\r
43747         001257' 200040  000002  12430           MOVE    A, B            ;NO, STORE SYMBOL AGAIN\r
43748         001260' 254000  001255' 12440           JRST    READ8           ;TRY ANOTHER DIVISION\r
43749 \r
43750         001261' 602340  002000  12460   READ9:  TRNE    F, ERRB         ;ERROR CONDITION?\r
43751         001262' 254000  002064' 12470           JRST    ERR10           ;YES\r
43752         001263' 606340  200000  12480           TRNN    F,XFLG          ;INDEX FLAG ON?\r
43753         001264' 254000  001063' 12490           JRST    CPOPJ1          ;NO, SKIP EXIT\r
43754         001265' 254000  001514' 12500           JRST    INDEX1          ;YES SAVE ENTRIES\r
43755 \r
43756         001266' 202044  000000  12520   READ7:  MOVEM   A, (C)          ;STORE NAME BLOCK HEADER\r
43757         001267' 344200  001243' 12530           AOJA    C, READ5        ;GO READ NAME BLOCK\r
43758 \r
43759         001270' 660340  020000  12550   F4I:    TRO     F,F4IB          ;DONT OUTPUT DURING F4 SEARCH\r
43760         001271' 261500  000004  12560           PUSH    P,C             ;SAVE ENTRY BLOCK\r
43761         001272' 260500  001346' 12570           PUSHJ   P,F4            ;PASS F4 BLOCKS\r
43762         001273' 262500  000004  12580           POP     P,C             ;RESTORE ENTRY BLOCK\r
43763         001274' 620340  020000  12590           TRZ     F,F4IB          ;TURN OFF IGNORE BIT\r
43764         001275' 254000  001157' 12600           JRST    READ6           ;GO PROCESS NEXT PROGRAM\r
43765 \r
43766         001276' 336000  005116' 12620   READX:  SKIPN   NOWARN          ;DO WE WANT A MESSAGE?\r
43767                                 12630           TTCALL  3,[ASCIZ /WARNING NO INDEX ON OUTPUT FILE - CONTINUING\r
43768         001277' 051140  005161' 12640   /]\r
43769         001300' 476000  005116' 12650           SETOM   NOWARN          ;ONCE IS ENOUGH\r
43770         001301' 402015  004612' 12660           SETZM   IBUF+2(DIS)     ;FORCE ANOTHER INBUF\r
43771         001302' 260500  001647' 12670           JSR     GETIN           ;INPUT THE NEXT BLOCK\r
43772         001303' 370015  004612' 12680           SOS     IBUF+2(DIS)     ;WORD COUNT OUT BY ONE\r
43773         001304' 254000  001160' 12690           JRST    READ6+1         ;AND RETURN TO CODE\r
43774 \r\fFUDGE2  V.011                 PAGE 36\r
43775         ROUTINE TO OUTPUT ONE PROGRAM AT A TIME\r
43776 \r
43777                                 12710   SUBTTL ROUTINE TO OUTPUT ONE PROGRAM AT A TIME\r
43778                                 12720   ;THE WRITE SUBROUTINE WILL OUTPUT AN ENTIRE BINARY RE-\r
43779                                 12730   ;LOCATABLE PROGRAM AS WRITTEN BY MACRO6. IT ASSUMES THAT THE\r
43780                                 12740   ;ENTRY BLOCK AND NAME BLOCK FOR THE PROGRAM ARE IN THE\r
43781                                 12750   ;INTERNAL BUFFER ENTBLK, AND OUTPUTS THESE BEFORE PICKING UP\r
43782                                 12760   ;MORE BLOCKS FROM THE CURRENT INPUT DEVICE. BLOCKS ARE READ\r
43783                                 12770   ;AND WRITTEN UNTIL THE END BLOCK HAS BEEN PROCESSED. PROVISION I\r
43784                                 12780   ;IS MADE FOR BLOCKS WITH A WORD COUNT OF ZERO.\r
43785 \r
43786         001305' 275200  003334' 12800   WRITE:  SUBI    C, ENTBLK       ;GET COUNT OF ENTRY BLOCK\r
43787         001306' 322200  001314' 12810           JUMPE   C, WRITE3       ;NOTHING TO OUTPUT?\r
43788         001307' 201100  003334' 12820           MOVEI   B, ENTBLK       ;GET A POINTER IN B\r
43789         001310' 200042  000000  12830   WRITE2: MOVE    A, (B)          ;GET A BINARY WORD\r
43790         001311' 260500  001656' 12840           PUSHJ   P, OUT          ;OUTPUT IT\r
43791         001312' 340100  000000  12850           AOJ     B,              ;INCREMENT POINTER\r
43792         001313' 367200  001310' 12860           SOJG    C, WRITE2       ;KEEP GOING UNTIL BUFFER EMPTY\r
43793         001314' 260500  001647' 12870   WRITE3: JSR     GETIN           ;GET A BLOCK HEADER\r
43794         001315' 554100  000001  12880           HLRZ    B,A             ;GET THE BLOCK TYPE CODE ***VJC\r
43795         001316' 606340  000200  12890           TRNN    F,NOLOCB        ;DELETE LOCAL SYMBOLS? ***VJC\r
43796         001317' 254000  001322' 12900           JRST    .+3             ;NO\r
43797         001320' 306100  000002  12910           CAIN    B,2             ;IS IT A SYMBOL BLOCK? ***VJC\r
43798         001321' 254000  001410' 12920           JRST    DELLOC          ;GO DELETE LOCAL SYMBOL ***VJC\r
43799                                 12930                                   ;COME BACK TO WRITE3 ***VJC\r
43800                                 12940                                   ;UNLESS EXIT ON END-OF-FILE ***VJC\r
43801 \r
43802         001322' 260500  001656' 12960           PUSHJ   P, OUT          ;OUTPUT IT\r
43803         001323' 306100  000400  12970           CAIN    B, 400          ;IS THIS A FORTRAN IV SIGNAL WORD?\r
43804         001324' 254000  001346' 12980           JRST    F4              ;YES, PROCESS F4 OUTPUT\r
43805         001325' 202100  002520' 12990           MOVEM   B, SAVEBT       ;SAVE THE BLOCK TYPE\r
43806         001326' 260500  001337' 13000           PUSHJ   P, COUNT        ;NO, GET SIZE OF BLOCK\r
43807         001327' 322100  001314' 13010           JUMPE   B, WRITE3       ;WORD COUNT OF ZERO?\r
43808         001330' 260500  001647' 13020   WRITE4: JSR     GETIN           ;OUTPUT THE BLOCK\r
43809         001331' 260500  001656' 13030           PUSHJ   P, OUT          ;...\r
43810         001332' 367100  001330' 13040           SOJG    B, WRITE4       ;LOOP BACK UNTIL DONE\r
43811         001333' 200040  002520' 13050           MOVE    A, SAVEBT       ;RETRIEVE THE BLOCK TYPE\r
43812         001334' 302040  000005  13060           CAIE    A, 5            ;WAS IT AN END BLOCK?\r
43813         001335' 254000  001314' 13070           JRST    WRITE3          ;NO, RETURN FOR MORE BLOCKS\r
43814         001336' 263500  000000  13080           POPJ    P,              ;YES, EXIT\r
43815 \r\fFUDGE2  V.011                 PAGE 37\r
43816         ROUTINE TO OUTPUT ONE PROGRAM AT A TIME\r
43817 \r
43818 \r
43819                                 13110   ;THE COUNT SUBROUTINE CALCULATES THE LENGTH OF THE VARIOUS \r
43820                                 13120   ;BLOCKS READ BY THE WRITE AND READ SUBROUTINES. THE POSITIVE\r
43821                                 13130   ;WORD COUNT IS FOUND IN THE RIGHT HALF OF THE ENTRY BLOCK \r
43822                                 13140   ;HEADER, WHICH IS ASSUMED TO BE IN AC A UPON ENTERING. THE\r
43823                                 13150   ;LENGTH WILL BE RETURNED IN AC B, AND INCLUDES THE DATA WORDS\r
43824                                 13160   ;(SYMBOLS, ENTRY WORDS, ETC.) AND THE SUBHEADERS, OF WHICH\r
43825                                 13170   ;THERE IS ONE FOR EVERY 18 (DECIMIAL) DATA WORDS. THE BLOCK\r
43826                                 13180   ;HEADER IS DESTROYED, AND IS NOT INCLUDED IN THE LENGTH.\r
43827 \r
43828         001337' 550400  000001  13200   COUNT:  HRRZ    G, A            ;GET NUMBER OF WORDS\r
43829         001340' 231400  000022  13210           IDIVI   G, 22           ;1SUBHEADER/18 DATA WORDS\r
43830         001341' 271401  000000  13220           ADDI    G,(A)           ;ADD INTO WORD COUNT\r
43831         001342' 322440  001344' 13230           JUMPE   G+1,.+2         ;1 EXTRA SUBHEADER FOR\r
43832         001343' 340400  000000  13240           AOJ     G,              ;STRAY ONES\r
43833         001344' 200100  000010  13250           MOVE    B, G            ;RESULTS IN AC B\r
43834         001345' 263500  000000  13260           POPJ    P,              ;EXIT\r
43835 \r\fFUDGE2  V.011                 PAGE 38\r
43836         ROUTINE TO HANDLE FORTRAN OUTPUT\r
43837 \r
43838                                 13280   SUBTTL ROUTINE TO HANDLE FORTRAN OUTPUT\r
43839 \r
43840                                 13300   ;SUBSECTION OF THE WRITE ROUTINE TO HANDLE OUTPUT FROM THE\r
43841                                 13310   ;FORTRAN IV COMPILER. THE MAIN OBJECT OF THE ROUTINE IS TO\r
43842                                 13320   ;LOOK FOR THE END BLOCK. OTHER BLOCKS ARE MERELY COPIED OUT.\r
43843                                 13330   ;THE BLOCK TYPES ARE GIVEN BY THE FOLLOWING TABLE\r
43844                                 13340   ;----------------------------------------------------------------\r
43845                                 13350           ;BITS 0-17      BITS18-23       BITS 24-35              TYPE\r
43846 \r
43847                                 13370   ;777777         70              N                  DATA STATEMENT\r
43848                                 13380   ;777777         50              N           ABSOLUTE MACHINE CODE\r
43849                                 13390   ;777777         0               -           PROGRAMMER LABELS\r
43850                                 13400   ;777777         31              -           MADE LABELS\r
43851                                 13410   ;777777         60              -           ENTRY LABELS\r
43852                                 13420   ;777777                 777776              END BLOCK\r
43853                                 13430   ;-----------------------------------------------------------------\r
43854         001346' 260500  001647' 13440   F4:     JSR     GETIN           ;GET A FORTRAN IV BLOCK HEADER\r
43855         001347' 260500  001405' 13450           PUSHJ   P, OUT4         ;OUTPUT IT\r
43856         001350' 641040  777777  13460           TLC     A, -1           ;TURN ONES TO ZEROES IN LEFT HALF\r
43857         001351' 603040  777777  13470           TLNE    A, -1           ;NO, WAS LEFT HALF ALL ONES?\r
43858         001352' 254000  001346' 13480           JRST    F4              ;NO, IT WAS CALCULATED MACHINE CODE\r
43859         001353' 306040  777776  13490           CAIN    A, -2           ;YES, IS RIGHT HALF = 777776?\r
43860         001354' 254000  001372' 13500           JRST    ENDST           ;YES, PROCESS F4 END BLOCK\r
43861         001355' 135100  005173' 13510           LDB     B, [POINT 6,A,23];GET CODE BITS FROM BITS 18-23\r
43862         001356' 620040  770000  13520           TRZ     A, 770000       ;THEN WIPE THEM OUT\r
43863         001357' 302100  000070  13530           CAIE    B, 70           ;IS IT A DATA STATEMENT?\r
43864         001360' 306100  000050  13540           CAIN    B, 50           ;IS IT ABSOLUTE MACHINE CODE?\r
43865         001361' 254000  001365' 13550           JRST    MACHCD          ;YES, TREAT IT LIKE DATA STATEMENTS\r
43866         001362' 260500  001647' 13560           JSR     GETIN           ;NO, ITS A LABEL OF SOME SORT\r
43867         001363' 260500  001405' 13570           PUSHJ   P, OUT4         ;WHICH CONSISTS OF ONE WORD\r
43868         001364' 254000  001346' 13580           JRST    F4              ;LOOK FOR NEXT BLOCK HEADER\r
43869 \r
43870         001365' 550100  000001  13600   MACHCD: HRRZ    B, A            ;GET THE WORD COUNT IN AC B\r
43871         001366' 260500  001647' 13610           JSR     GETIN           ;INPUT A WORD\r
43872         001367' 260500  001405' 13620           PUSHJ   P, OUT4         ;OUTPUT IT\r
43873         001370' 367100  001365' 13630           SOJG    B, MACHCD       ;LOOP BACK FOR REST OF THE BLOCK\r
43874         001371' 254000  001346' 13640           JRST    F4              ;GO LOOK FOR NEXT BLOCK\r
43875 \r
43876         001372' 201100  000001  13660   ENDST:  MOVEI   B,1             ;TWO WORDS, FIVE TABLES, ONE WORD, ONE TABLE\r
43877         001373' 201200  000006  13670           MOVEI   C,6             ;TO GO\r
43878         001374' 260500  001647' 13680   F4LUP1: JSR     GETIN           ;GET TABLE MEMBER\r
43879         001375' 260500  001405' 13690   F4LUP3: PUSHJ   P,OUT4          ;OUTPUT WORD\r
43880         001376' 365100  001374' 13700           SOJGE   B,F4LUP1        ;LOOP WITHIN A TABLE\r
43881         001377' 321200  001065' 13710           JUMPL   C,CPOPJ         ;LAST TABLE - RETURN\r
43882         001400' 367200  001402' 13720           SOJG    C,F4LUP2        ;FIRST TWO WORDS AND FIVE TABLES\r
43883         001401' 322200  001374' 13730           JUMPE   C,F4LUP1        ;COMMON LENGTH WORD\r
43884         001402' 260500  001647' 13740   F4LUP2: JSR     GETIN           ;READ HEADER WORD\r
43885         001403' 200100  000001  13750           MOVE    B,A             ;COUNT TO COUNTER\r
43886         001404' 254000  001375' 13760           JRST    F4LUP3          ;STASH\r
43887 \r
43888         001405' 606340  020000  13780   OUT4:   TRNN    F,F4IB          ;DONT DO OUTPUT?\r
43889         001406' 260500  001656' 13790           PUSHJ   P,OUT           ;YES, DO OUTPUT\r
43890         001407' 263500  000000  13800           POPJ    P,              ;RETURN\r
43891 \r\fFUDGE2  V.011                 PAGE 39\r
43892         ROUTINE TO DELETE LOCAL SYMBOLS FROM SYMBOL BLOCK\r
43893 \r
43894                                 13820   SUBTTL ROUTINE TO DELETE LOCAL SYMBOLS FROM SYMBOL BLOCK\r
43895 \r
43896                                 13840   ;ALL LOCAL AND SUPPRESSED LOCAL SYMBOLS ARE DELETED\r
43897                                 13850   ;EXTERNALS,INTERNAL AND SUPPRESSED INTERNALS ARE NOT DELETED.\r
43898 \r
43899         001410' 552040  005047' 13870   DELLOC: HRRZM   A,BSZ           ;SIZE OF SYMBOL BBLE\r
43900         001411' 260500  001461' 13880           PUSHJ   P,DELINI        ;CLEAR NEW HEADER & RELOC WORDS\r
43901                                 13890                                   ;SET PB = SYMBLK+2\r
43902         001412' 260500  001647' 13900   DELGTR: JSR     GETIN           ;GET RELOCATION WORD\r
43903         001413' 202040  005052' 13910           MOVEM   A,RELOCS        ;SAVE IT\r
43904         001414' 200040  005122' 13920           MOVE    A,PTGR          ;INIT POINTER TO GET\r
43905         001415' 202040  005050' 13930           MOVEM   A,PTGRS         ;RELOCATION WORD\r
43906 \r
43907         001416' 260500  001647' 13950   DELGT1: JSR     GETIN           ;GET FIRST WORD OF PAIR\r
43908         001417' 134000  005050' 13960           ILDB    0,PTGRS         ;GET RELOCATION BITS & HOLD\r
43909         001420' 603040  100000  13970           TLNE    A,(1B2)         ;IS SYMBOL  LOCAL?\r
43910         001421' 254000  001435' 13980           JRST    DELDEC          ;YES, DON'T COPY\r
43911         001422' 202043  000000  13990           MOVEM   A,0(T)          ;STORE FIRST WORD\r
43912         001423' 260500  001647' 14000           JSR     GETIN           ;GET SECOND WORD INTO A\r
43913         001424' 202043  000001  14010           MOVEM   A,1(T)          ;STORE SECOND WORD\r
43914         001425' 136000  005051' 14020           IDPB    0,PTSRS         ;STORE RELOCATION BITS\r
43915         001426' 201040  000002  14030           MOVEI   A,2             ;COUNT WORDS STORED\r
43916         001427' 272040  005053' 14040           ADDM    A,SYMBLK        ;I.E. UPDATE WORD COUNT\r
43917         001430' 271140  000002  14050           ADDI    T,2             ;UPDATE NEXT LOCATION TO STORE\r
43918         001431' 200040  005051' 14060           MOVE    A,PTSRS         ;HAVE WE STORED 9\r
43919         001432' 607040  770000  14070           TLNN    A,770000        ;SYMBOL PAIRS?\r
43920         001433' 260500  001447' 14080           PUSHJ   P,DELWRT        ;YES, WRITE IT OUT\r
43921         001434' 254000  001436' 14090           JRST    DELDEC+1        ;ALREADY HAVE 2ND WORD\r
43922 \r
43923         001435' 260500  001647' 14110   DELDEC: JSR     GETIN           ;GET SECOND WORD INTO A\r
43924         001436' 370000  005047' 14120           SOS     BSZ             ;HAVE WE EXHAUSTED\r
43925         001437' 377000  005047' 14130           SOSG    BSZ             ;ALL WORDS IN BLOCK?\r
43926         001440' 254000  001445' 14140           JRST    DELFIN          ;YES, NONE LEFT\r
43927         001441' 200040  005050' 14150           MOVE    A,PTGRS         ;HAVE WE GOT 9\r
43928         001442' 603040  770000  14160           TLNE    A,770000        ;SYMBOL PAIRS YET?\r
43929         001443' 254000  001416' 14170           JRST    DELGT1          ;NO, GET NEXT PAIR\r
43930         001444' 254000  001412' 14180           JRST    DELGTR          ;YES, GET RELOCATION\r
43931 \r
43932         001445' 260500  001447' 14200   DELFIN: PUSHJ   P,DELWRT        ;ORIGINAL BLOCK EMPTY NOW\r
43933         001446' 254000  001314' 14210           JRST    WRITE3          ;GET NEXT BLOCK\r
43934 \r
43935 \r
43936 \r\fFUDGE2  V.011                 PAGE 40\r
43937         ROUTINE TO WRITE OUT NEW SYMBOL BBLE\r
43938 \r
43939                                 14250   SUBTTL ROUTINE TO WRITE OUT NEW SYMBOL BBLE\r
43940 \r
43941         001447' 336040  005053' 14270   DELWRT: SKIPN   A,SYMBLK        ;ANYTHING TO WRITE\r
43942         001450' 254000  001461' 14280           JRST    DELINI          ;NO, CAN LEAVE\r
43943         001451' 550000  000001  14290           HRRZ    0,A             ;GET WORD COUNT\r
43944         001452' 505040  000002  14300           HRLI    A,2             ;PUT IN BLOCK TYPE\r
43945         001453' 260500  001656' 14310           PUSHJ   P,OUT           ;WRITE BLOCK HEADER\r
43946         001454' 201100  005053' 14320           MOVEI   B,SYMBLK        ;LOC OF FIRST WORD\r
43947         001455' 271100  000001  14330   DELWRU: ADDI    B,1             ;LOC OF RELOC WORD\r
43948         001456' 200042  000000  14340           MOVE    A,0(B)          ;GET WORD\r
43949         001457' 260500  001656' 14350           PUSHJ   P,OUT           ;OUTPUT\r
43950         001460' 365000  001455' 14360           SOJGE   0,DELWRU        ;ALL THROUGH?\r
43951 \r
43952                                 14380   ;ROUTINE TO INITIALIZE NEW SYMBOL BBLE\r
43953         001461' 402000  005053' 14390   DELINI: SETZM   SYMBLK          ;YES, CLEAR COUNT\r
43954         001462' 402000  005054' 14400           SETZM   SYMBLK+1        ;CLEAR RELOCATION\r
43955         001463' 200040  005121' 14410           MOVE    A,PTSR          ;INIT POINTER\r
43956         001464' 202040  005051' 14420           MOVEM   A,PTSRS         ;FOR STORING NEW RELOC\r
43957         001465' 201140  005055' 14430           MOVEI   T,SYMBLK+2      ;SET TO STORE FIRST GLOBAL\r
43958         001466' 263500  000000  14440           POPJ    P,\r
43959 \r\fFUDGE2  V.011                 PAGE 41\r
43960         ROUTINES TO INDEX THE LIBRARY\r
43961 \r
43962                                 14460   SUBTTL ROUTINES TO INDEX THE LIBRARY\r
43963 \r
43964                                 14480   COMMENT *       THE INDEXING OF LIBRARY FILES IS DONE IN TWO PASSES.\r
43965                                 14490           ON PASS 1 THE LIBRARY FILE IS COPIED AND ALL ENTRIES STORED\r
43966                                 14500           IN CORE ALLONG WITH A POINTER TO THE BEGINING OF THE BLOCK.\r
43967                                 14510           A DUMMY INDEX BLOCK (TYPE 14) IS OUTPUT AT THE BEGINING OF THE\r
43968                                 14520           NEW LIBRARY AND ONE IS OUTPUT WHENEVER THE CURRENT INDEX BLOCK\r
43969                                 14530           FILLS A BUFFER.\r
43970                                 14540           ON PASS 2 THE DUMMY INDEX BLOCKS ARE REPLACED BY REAL ONES.\r
43971                                 14550           FUDGE2 USED USETO'S AND DUMP MODE.\r
43972                                 14560           IF THE OUTPUT DEVICE IS DTA FUDGE2 USES UGETF UUO'S TO FIND\r
43973                                 14570           THE NEXT BLOCK AND NON-STANDARD DUMP MODE TO WRITE THE INDICES.\r
43974                                 14580           DESIGN AND CODING BY D.M.NIXON JULY 1970\r
43975                                 14590   *\r
43976 \r
43977         001467' 200040  001646' 14610   INDEX0: MOVE    A,INDEXH        ;BLOCK HEADER\r
43978         001470' 350000  002516' 14620           AOS     BLKCNT          ;START ON BLOCK #1\r
43979         001471' 260500  001660' 14630           PUSHJ   P,OUT1          ;OUTPUT IT\r
43980         001472' 067040  000000  14640           OUTPUT  1,              ;FORCE OUTPUT\r
43981         001473' 200140  004607' 14650           MOVE    T,OBUF+5        ;BUFFER SIZE\r
43982         001474' 202140  005104' 14660           MOVEM   T,XCOUNT\r
43983         001475' 202140  005106' 14670           MOVEM   T,BUFSIZ        ;SAVE IT AWAY\r
43984         001476' 350140  000573* 14680           AOS     T,JOBREL        ;TO GET 1K MORE\r
43985         001477' 202140  005105' 14690           MOVEM   T,XPNTR\r
43986         001500' 202140  005107' 14700           MOVEM   T,XBEG          ;START OF INDEX BUFFERS\r
43987         001501' 000140  000000  14710           CORE    T,\r
43988         001502' 254000  002170' 14720           JRST    ERR22           ;NOT ENUF CORE\r
43989         001503' 201040  000001  14730           MOVEI   A,1             ;START ON BLOCK #1 (IF DSK)\r
43990         001504' 202060  005105' 14740           MOVEM   A,@XPNTR        ;STORE FIRST BLOCK #\r
43991         001505' 350000  005105' 14750           AOS     XPNTR\r
43992         001506' 200040  001646' 14760           MOVE    A,INDEXH\r
43993         001507' 202060  005105' 14770           MOVEM   A,@XPNTR\r
43994         001510' 350000  005105' 14780           AOS     XPNTR\r
43995         001511' 370000  005104' 14790           SOS     XCOUNT\r
43996         001512' 370000  005104' 14800           SOS     XCOUNT          ;RESERVE SPACE FOR NEXT LINK WORD\r
43997         001513' 263500  000000  14810           POPJ    P,              ;RETURN\r
43998 \r\fFUDGE2  V.011                 PAGE 42\r
43999         ROUTINES TO INDEX THE LIBRARY\r
44000 \r
44001                                 14830   ;HERE ON PASS 1 TO STORE ENTRIES AND POINTERS.\r
44002 \r
44003         001514' 350012  000000  14850   INDEX1: AOS     (P)             ;SET SKIP RETURN\r
44004         001515' 550140  003334' 14860           HRRZ    T,ENTBLK        ;GET SIZE OF BLOCK\r
44005         001516' 210040  000003  14870           MOVN    A,T\r
44006         001517' 271140  000001  14880           ADDI    T,1             ;WORD OF INFO\r
44007         001520' 311140  005104' 14890           CAML    T,XCOUNT        ;ENUF ROOM IN BLOCK?\r
44008         001521' 254000  001546' 14900           JRST    NOROOM          ;NO\r
44009         001522' 200140  003334' 14910           MOVE    T,ENTBLK        ;GET HEADER WORD\r
44010         001523' 202160  005105' 14920           MOVEM   T,@XPNTR\r
44011         001524' 350000  005105' 14930           AOS     XPNTR\r
44012         001525' 370000  005104' 14940           SOS     XCOUNT\r
44013         001526' 507000  000001  14950           HRLS    A\r
44014         001527' 541040  003335' 14960           HRRI    A,ENTBLK+1\r
44015         001530' 336141  000000  14970   INDEXA: SKIPN   T,(A)\r
44016         001531' 344040  001530' 14980           AOJA    A,.-1\r
44017         001532' 202160  005105' 14990           MOVEM   T,@XPNTR\r
44018         001533' 370000  005104' 15000           SOS     XCOUNT\r
44019         001534' 350000  005105' 15010           AOS     XPNTR\r
44020         001535' 253040  001530' 15020           AOBJN   A,INDEXA\r
44021         001536' 200140  005106' 15030   INDEX2: MOVE    T,BUFSIZ\r
44022         001537' 274140  004607' 15040           SUB     T,OBUF+5\r
44023         001540' 207000  000003  15050           MOVSS   T\r
44024         001541' 540140  002516' 15060           HRR     T,BLKCNT\r
44025         001542' 202160  005105' 15070           MOVEM   T,@XPNTR\r
44026         001543' 370000  005104' 15080           SOS     XCOUNT\r
44027         001544' 350000  005105' 15090           AOS     XPNTR\r
44028         001545' 263500  000000  15100           POPJ    P,\r
44029 \r
44030                                 15120   ;HERE WHEN CURRENT INDEX BLOCK IS FULL.\r
44031 \r
44032         001546' 200040  001646' 15140   NOROOM: MOVE    A,INDEXH        ;HEADER BLOCK OF INDEX FOR LOADER\r
44033         001547' 260500  001664' 15150           PUSHJ   P,OUTGO\r
44034         001550' 067040  000000  15160           OUTPUT  1,\r
44035         001551' 200140  002516' 15170           MOVE    T,BLKCNT        ;GET INDEX BLOCK #\r
44036         001552' 562160  005105' 15180           HRROM   T,@XPNTR        ;STORE IT WITH -1 IN LEFT HALF\r
44037         001553' 200040  005104' 15190           MOVE    A,XCOUNT\r
44038         001554' 272040  005105' 15200           ADDM    A,XPNTR\r
44039         001555' 200040  005106' 15210           MOVE    A,BUFSIZ\r
44040         001556' 202040  005104' 15220           MOVEM   A,XCOUNT\r
44041                                 15230                                   ;MARK IT AS AN INDEX INCASE BLOCK FULL\r
44042         001557' 562160  005105' 15240           HRROM   T,@XPNTR        ;SAVE BLOCK # FOR PASS 2\r
44043         001560' 350000  005105' 15250           AOS     XPNTR\r
44044         001561' 606340  400000  15260           TRNN    F,DTAFLG        ;NOT IF DTA\r
44045         001562' 350000  002516' 15270           AOS     BLKCNT          ;ONE FOR OUTPUT\r
44046         001563' 200040  001646' 15280           MOVE    A,INDEXH\r
44047         001564' 202060  005105' 15290           MOVEM   A,@XPNTR\r
44048         001565' 350000  005105' 15300           AOS     XPNTR\r
44049         001566' 370000  005104' 15310           SOS     XCOUNT\r
44050         001567' 370000  005104' 15320           SOS     XCOUNT          ;SPACE FOR LINK WORD TO NEXT INDEX\r
44051         001570' 254000  001515' 15330           JRST    INDEX1+1\r
44052 \r
44053 \r\fFUDGE2  V.011                 PAGE 43\r
44054         ROUTINES TO INDEX THE LIBRARY\r
44055 \r
44056                                 15360   ;HERE FOR PASS 2. WRITE OUT THE INDEX BLOCKS\r
44057 \r
44058         001571' 476020  005105' 15380   INDEX3: SETOM   @XPNTR          ;TERMINATE WITH END OF INDEX MARKER\r
44059         001572' 067040  000000  15390           OUTPUT  1,              ;SO LAST BLOCK IS WRITTEN\r
44060         001573' 602340  400000  15400           TRNE    F,DTAFLG        ;IS IT DTA?\r
44061         001574' 254000  001614' 15410           JRST    INDEX5          ;YES, TREAT DIFFERENTLY\r
44062         001575' 060040  000016  15420           SETSTS  1,16\r
44063         001576' 211040  000200  15430           MOVNI   A,200\r
44064         001577' 506040  005107' 15440           HRLM    A,XBEG\r
44065         001600' 402000  005110' 15450   INDEX4: SETZM   XBEG+1\r
44066         001601' 200060  005107' 15460           MOVE    A,@XBEG\r
44067         001602' 075041  000000  15470           USETO   1,(A)\r
44068         001603' 067040  005107' 15480           OUTPUT  1,XBEG\r
44069         001604' 063040  760000  15490           STATZ   1,760000\r
44070         001605' 254000  002132' 15500           JRST    ERR15\r
44071         001606' 201040  000200  15510           MOVEI   A,200\r
44072         001607' 273040  005107' 15520           ADDB    A,XBEG\r
44073         001610' 553000  000001  15530           HRRZS   A\r
44074         001611' 317040  005105' 15540           CAMG    A,XPNTR\r
44075         001612' 254000  001600' 15550           JRST    INDEX4\r
44076         001613' 254000  002257' 15560           JRST    EXIT\r
44077 \r
44078         001614' 070040  000000  15580   INDEX5: CLOSE   1,              ;AND A SEPARATE EOF BLOCK\r
44079         001615' 060040  000116  15590           SETSTS  1,116           ;NONE STANDARD MODE\r
44080         001616' 211040  000200  15600           MOVNI   A,200           ;IOWD COUNT\r
44081         001617' 506040  005107' 15610           HRLM    A,XBEG          ;SET IT UP FOR OUTPUT\r
44082         001620' 074060  002516' 15620           USETI   1,@BLKCNT       ;SET ON LAST BLOCK\r
44083         001621' 066040  002513' 15630           INPUT   1,DIRIOW        ;READ IT IN\r
44084         001622' 135040  005174' 15640           LDB     A,[POINT 10,DIRBLK,27]  ;GET FIRST BLOCK #\r
44085         001623' 542060  005107' 15650           HRRM    A,@XBEG         ;STORE IT FOR COMMON LOOP\r
44086         001624' 402000  005110' 15660           SETZM   XBEG+1          ;MAKE SURE IT'S ZERO\r
44087         001625' 200060  005107' 15670   INDEX6: MOVE    A,@XBEG         ;GET BLOCK NUMBER\r
44088         001626' 074041  000000  15680           USETI   1,(A)           ;SET FOR INPUT\r
44089         001627' 066040  002513' 15690           INPUT   1,DIRIOW        ;INPUT BLOCK\r
44090         001630' 200140  004647' 15700           MOVE    T,DIRBLK        ;TO FIND LINK WORD\r
44091         001631' 250160  005107' 15710           EXCH    T,@XBEG         ;PUT IT IN OUTPUT BLOCK\r
44092         001632' 370000  005107' 15720           SOS     XBEG            ;BACK UP POINTER\r
44093         001633' 075041  000000  15730           USETO   1,(A)           ;NOW FOR OUTPUT\r
44094         001634' 067040  005107' 15740           OUTPUT  1,XBEG          ;OUT IT GOES\r
44095         001635' 063040  760000  15750           STATZ   1,760000        ;UNLESS IN ERROR\r
44096         001636' 254000  002132' 15760           JRST    ERR15           ;DEVICE ERROR\r
44097         001637' 201040  000200  15770           MOVEI   A,200           ;GET TO NEXT DUMP BLOCK\r
44098         001640' 273040  005107' 15780           ADDB    A,XBEG          ;ADVANCE POINTER\r
44099         001641' 553000  000001  15790           HRRZS   A               ;JUST WORD LOCATION\r
44100         001642' 317040  005105' 15800           CAMG    A,XPNTR         ;ALL DONE?\r
44101         001643' 254000  001625' 15810           JRST    INDEX6          ;NO, LOOP\r
44102         001644' 060040  000016  15820           SETSTS  1,16            ;BACK TO STANDARD MODE TO UPDATE DIR.\r
44103         001645' 254000  002257' 15830           JRST    EXIT            ;YES, FINISH UP\r
44104 \r
44105         001646' 000014  000177  15850   INDEXH: XWD     14,177          ;USED TO SIGNAL INDEX BLOCK TO LOADER\r
44106 \r
44107 \r\fFUDGE2  V.011                 PAGE 44\r
44108         INPUT SERVICE ROUTINE\r
44109 \r
44110                                 15880   SUBTTL INPUT SERVICE ROUTINE\r
44111                                 15890   ;THE INPUT ROUTINE GETS CHARACTERS FROM THE DEVICE WHOSE\r
44112                                 15900   ;CHANNEL NUMBER IS IN ACCUMULATOR D. IT CALCULATES THE POSITION\r
44113                                 15910   ;OF THE BUFFER HEADER OF THE DEVICE, THEN EITHER LOADS AC A\r
44114                                 15920   ;FROM THE BYTE POINTER, OR DOES AN INPUT. IF AN END OF FILE\r
44115                                 15930   ;IS FOUND, THE ROUTINE EXITS WITH A POPJ, SINCE THE READ ROUTINE\r
44116                                 15940   ;IS CALLED WITH A PUSHJ, FOLLOWED BY AN EOF RETURN. THE NORMAL\r
44117                                 15950   ;EXIT FROM GETIN IS BY A JRST @GETIN.\r
44118 \r
44119         001647' 377015  004612' 15970   GETIN:  SOSG    IBUF+2(DIS)     ;IS APPROPRIATE BUFFER EMPTY?\r
44120         001650' 254000  001653' 15980           JRST    INGET           ;YES, GET ANOTHER BUFFER\r
44121         001651' 134055  004611' 15990   GETIN1: ILDB    A, IBUF+1(DIS)  ;LOAD AC A WITH A CHARACTER\r
44122         001652' 263500  000000  16000           POPJ    P,\r
44123 \r
44124         001653' 137240  005175' 16020   INGET:  DPB     D,[POINT 4,INGET2,12]\r
44125         001654' 137240  005176' 16030           DPB     D,[POINT 4,INGET3,12]\r
44126         001655' 254000  002474' 16040           JRST    INGET2          ;INPUT A BUFFER OF DATA\r
44127 \r
44128 \r
44129                                 16070   ;OUTPUT SERVICE ROUTINE\r
44130                                 16080   ;THE OUT ROUTINE CHECKS THE TTYOB FLAG TO SEE IF THE OUTPUT\r
44131                                 16090   ;SHOULD BE ON THE TTY. IF SO, IT TRANSFERS CONTROL IMMEDIATELY.\r
44132                                 16100   ;OTHERWISE, IT ASSUMES OUTPUT IS ON DEVICE #1.\r
44133 \r
44134         001656' 606340  000020  16120   OUT:    TRNN    F, TTYOB        ;SHOULD OUTPUT BE ON TTY?\r
44135         001657' 254000  002237' 16130           JRST    TYPO            ;YES\r
44136         001660' 377000  004607' 16140   OUT1:   SOSG    OBUF+5          ;IS OUTPUT BUFFER EMPTY?\r
44137         001661' 254000  001664' 16150           JRST    OUTGO           ;YES, OUTPUT A BUFFER\r
44138         001662' 136040  004606' 16160   OUT2:   IDPB    A, OBUF+4       ;DEPOSIT CHARACTER\r
44139         001663' 263500  000000  16170           POPJ    P,              ;EXIT\r
44140 \r
44141         001664' 606340  200000  16190   OUTGO:  TRNN    F,XFLG          ;IF NOT INDEXING\r
44142         001665' 254000  001671' 16200           JRST    OUTG            ;DON'T WASTE TIME\r
44143         001666' 606340  400000  16210           TRNN    F,DTAFLG        ;IF DTA SKIP\r
44144         001667' 354000  002516' 16220           AOSA    BLKCNT          ;INCR. COUNT IF DSK\r
44145         001670' 073040  002516' 16230           UGETF   1,BLKCNT        ;GET NEXT BLOCK IF DTA\r
44146         001671' 057040  000000  16240   OUTG:   OUT     1,              ;OUTPUT A BUFFER\r
44147         001672' 254000  001662' 16250           JRST    OUT2            ;NO ERRORS\r
44148         001673' 201240  000001  16260           MOVEI   D, 1            ;YES, SET CHANNEL TO OUTPUT\r
44149         001674' 254000  002132' 16270           JRST    ERR15           ;GO TO ERROR ROUTINE\r
44150 \r
44151 \r\fFUDGE2  V.011                 PAGE 45\r
44152         ROUTINE TO HANDLE ASTERISK FILE NAME *.EXT\r
44153 \r
44154                                 16300   SUBTTL ROUTINE TO HANDLE ASTERISK FILE NAME *.EXT\r
44155                                 16310   ;THE DIRECTORY IS SEARCHED FOR FILE NAMES WITH GIVEN EXTENSION OR\r
44156                                 16320   ;EXTENSION REL IF NONE SPECIFIED. THESE ARE STORED IN FILBUF\r
44157                                 16330   ;ENTERED BY JRST FROM SEMICP\r
44158                                 16340   ;EXIT BY POPJ\r
44159                                 16350   ;DMN 23 MAY 1969\r
44160 \r
44161 \r
44162         001675' 200100  002522' 16380   ASTRSK: MOVE    B,COLON2        ;GET DEVICE LAST SEEN\r
44163         001676' 202100  002511' 16390           MOVEM   B,DSKINI+1      ;SAVE IT IN CASE DSK\r
44164         001677' 000100  000000  16400           DEVCHR  B,              ;GET ITS CHARACTERISTICS\r
44165         001700' 603100  000100  16410           TLNE    B,DTABIT        ;IS IT A DTA\r
44166         001701' 254000  001760' 16420           JRST    DTAAST          ;YES\r
44167         001702' 607100  200000  16430           TLNN    B,DSKBIT        ;IS IT THE DSK?\r
44168         001703' 254000  002160' 16440           JRST    ERR18           ;MUST BE ONE OR THE OTHER\r
44169                                 16450                                   ;FALL INTO DSKAST IF OK\r
44170 \r
44171         001704' 261500  000547* 16470   DSKAST: PUSH    P,JOBFF         ;SAVE OLD JOBFF\r
44172         001705' 201100  004645' 16480           MOVEI   B,DSKHDR        ;WHERE BUFFER WILL GO\r
44173         001706' 202100  001704* 16490           MOVEM   B,JOBFF         ;SET IT UP\r
44174 \r
44175         001707' 050440  002510' 16510           OPEN    11,DSKINI       ;11 IS SAFE CH.NO.\r
44176         001710' 254000  002162' 16520           JRST    ERR19           ;CONNOT INIT DSK\r
44177         001711' 064440  000001  16530           INBUF   11,1            ;FORCE SINGLE BUFFERING\r
44178         001712' 200100  002522' 16540           MOVE    B,COLON2        ;GET DEVICE\r
44179         001713' 000100  000000  16550           DEVPPN  B,              ;GET PROJ-PROG INCASE SYS: ETC.\r
44180         001714' 000100  000000  16560           GETPPN  B,              ;FAILED, GET USER PROJ,PROG PAIR\r
44181         001715' 202100  004572' 16570           MOVEM   B,EBLOCK        ;SAVE IT FOR LOOKUP OF UFD\r
44182         001716' 205100  654644  16580           MOVSI   B,(SIXBIT/UFD/) ;EXTENSION\r
44183         001717' 202100  004573' 16590           MOVEM   B,EBLOCK+1\r
44184         001720' 200100  005177' 16600           MOVE    B,[XWD 1,1]     ;TO GET UFD ***VJC\r
44185         001721' 202100  004575' 16610           MOVEM   B,EBLOCK+3      ;ENTRY BLOCK SET UP\r
44186         001722' 076440  004572' 16620           LOOKUP  11,EBLOCK       ;DO LOOKUP\r
44187         001723' 254000  002164' 16630           JRST    ERR20           ;CANNOT DO IT\r
44188 \r
44189         001724' 260500  001745' 16650   DSKLUP: PUSHJ   P,DSKINP        ;INPUT A WORD\r
44190         001725' 202600  004640' 16660           MOVEM   S,SAVNAM        ;SAVE NAME FOR LATER\r
44191         001726' 260500  001745' 16670           PUSHJ   P,DSKINP        ;GET EXT AS WELL\r
44192         001727' 512600  004641' 16680           HLLZM   S,SAVEXT        ;SAVE EXT, CLEAR RH ***VJC\r
44193         001730' 336000  004640' 16690           SKIPN   SAVNAM          ;IS THERE A NAME\r
44194         001731' 254000  001724' 16700           JRST    DSKLUP          ;NO GET NEXT PAIR\r
44195         001732' 312700  004641' 16710           CAME    EXT,SAVEXT      ;EXTENSIONS MATCH\r
44196         001733' 254000  001724' 16720           JRST    DSKLUP          ;NO GET NEXT PAIR\r
44197         001734' 260500  000444' 16730           PUSHJ   P,STNULL        ;CLOSE OUT OLD FILE\r
44198         001735' 200600  004640' 16740           MOVE    S,SAVNAM        ;RECALL NAME\r
44199         001736' 260500  001137' 16750           PUSHJ   P,PUTFIL        ;STORE IT IN FILBUF\r
44200         001737' 200600  004641' 16760           MOVE    S,SAVEXT        ;RECALL EXTENSION\r
44201         001740' 260500  001137' 16770           PUSHJ   P,PUTFIL\r
44202         001741' 542241  000000  16780           HRRM    D,(A)           ;GET CHANNEL\r
44203         001742' 550600  002724' 16790           HRRZ    S,PRGBUF        ;POINTER TO PRGBUF\r
44204         001743' 260500  001137' 16800           PUSHJ   P,PUTFIL        ;SAVE IT AS 3RD WORD\r
44205         001744' 254000  001724' 16810           JRST    DSKLUP          ;GO LOOP ROUND ALL\r
44206 \r
44207 \r\fFUDGE2  V.011                 PAGE 46\r
44208         ROUTINE TO HANDLE ASTERISK FILE NAME *.EXT\r
44209 \r
44210                                 16840   ;ROUTINE TO GET NEXT WORD FROM UFD\r
44211 \r
44212         001745' 375000  004644' 16860   DSKINP: SOSGE   DIRBUF+2        ;USUAL INPUT ROUTINE\r
44213         001746' 254000  001751' 16870           JRST    DSKIN1          ;GET ANOTHER BUFFER\r
44214         001747' 134600  004643' 16880           ILDB    S,DIRBUF+1      ;GET A WORD \r
44215         001750' 263500  000000  16890           POPJ    P,              ;RETURN\r
44216 \r
44217         001751' 056440  000000  16910   DSKIN1: IN      11,0            ;DO INPUT\r
44218         001752' 254000  001745' 16920           JRST    DSKINP          ;NO ERRORS\r
44219         001753' 061440  020000  16930           STATO   11,20000        ;END OF FILE?\r
44220         001754' 254000  002166' 16940           JRST    ERR21           ;NO, READ ERROR\r
44221 \r
44222         001755' 262500  001706* 16960   FIN:    POP     P,JOBFF         ;POP UP ONE LEVEL\r
44223         001756' 262500  001755* 16970           POP     P,JOBFF         ;RESTORE JOBFF\r
44224         001757' 263500  000000  16980           POPJ    P,              ;RETURN TO COMMAND SCAN\r
44225 \r
44226 \r
44227         001760' 135100  005137' 17010   DTAAST: LDB     B,[POINT 4,COLON1,12]   ;GET CHANNEL\r
44228         001761' 137100  005200' 17020           DPB     B,[POINT 4,DP+0,12]     ;DEPOSIT IT\r
44229         001762' 137100  005201' 17030           DPB     B,[POINT 4,DP+1,12]\r
44230         001763' 137100  005202' 17040           DPB     B,[POINT 4,DP+2,12]\r
44231         001764' 137100  005203' 17050           DPB     B,[POINT 4,DP+3,12]\r
44232         001765' 137100  005204' 17060           DPB     B,[POINT 4,DP+5,12]\r
44233         001766' 400100  000000  17070           SETZ    B,              ;INITIAL CONDITION\r
44234         001767' 254000  002501' 17080           JRST    DP              ;INPUT DIRECTORY\r
44235 \r
44236         001770' 301100  000026  17100   DTALUP: CAIL    B,26            ;END OF DIRECTORY\r
44237         001771' 263500  000000  17110           POPJ    P,              ;YES- FINISHED\r
44238         001772' 510602  005020' 17120           HLLZ    S,DIREXT(B)     ;GET EXTENSION\r
44239         001773' 332002  004772' 17130           SKIPE   DIRNAM(B)       ;IF NAME ZERO DON'T BOTHER\r
44240         001774' 312600  000016  17140           CAME    S,EXT           ;IS EXTENSION SAME\r
44241         001775' 344100  001770' 17150           AOJA    B,DTALUP        ;NO GET NEXT ENTRY\r
44242         001776' 260500  000444' 17160           PUSHJ   P,STNULL        ;TERMINATE LAST ENTRY\r
44243         001777' 200602  004772' 17170           MOVE    S,DIRNAM(B)     ;GET NAME\r
44244         002000' 260500  001137' 17180           PUSHJ   P,PUTFIL        ;STORE IT IN FILBUF\r
44245         002001' 510602  005020' 17190           HLLZ    S,DIREXT(B)     ;AND EXTENSION\r
44246         002002' 260500  001137' 17200           PUSHJ   P,PUTFIL        ;STORE IT\r
44247         002003' 542241  000000  17210           HRRM    D,(A)           ;SAVECH.\r
44248         002004' 550600  002724' 17220           HRRZ    S,PRGBUF        ;SAVE PRGBUF POINTER\r
44249         002005' 260500  001137' 17230           PUSHJ   P,PUTFIL        ;STORE IT\r
44250         002006' 344100  001770' 17240           AOJA    B,DTALUP        ;GET NEXT ENTRY\r
44251 \r
44252 \r\fFUDGE2  V.011                 PAGE 47\r
44253         ERROR ROUTINES\r
44254 \r
44255                                 17270   SUBTTL ERROR ROUTINES\r
44256 \r
44257         002007' 201100  002261' 17290   ERROR1: MOVEI   B, EMES1        ;FUDGE COMMAND ERROR\r
44258         002010' 254000  002247' 17300           JRST    ERROR           ;TYPE IT AND EXIT\r
44259 \r
44260         002011' 201100  002266' 17320   ERROR2: MOVEI   B, EMES2        ;TOO MANY PROGRAM NAMES\r
44261         002012' 254000  002247' 17330           JRST    ERROR           ;TYPE IT AND EXIT\r
44262 \r
44263         002013' 201100  002276' 17350   ERROR3: MOVEI   B, EMES3        ;FUDGE SYSTEM ERROR\r
44264         002014' 254000  002247' 17360           JRST    ERROR           ;TYPE A MESSAGE AND EXIT\r
44265 \r
44266         002015' 260500  002201' 17380   ERROR4: PUSHJ   P, DTYPOQ       ;TYPE DEVICE NAME\r
44267         002016' 201100  002307' 17390           MOVEI   B, EMES4        ;"CANNOT DO IO AS REQUESTED"\r
44268         002017' 326400  002247' 17400           JUMPN   G,ERROR         ;TYPE IT\r
44269         002020' 201100  002456' 17410           MOVEI   B,EMES24        ;NO SUCH DEVICE IF G=0\r
44270         002021' 254000  002247' 17420           JRST    ERROR           ;TYPE IT AND EXIT\r
44271 \r
44272         002022' 201100  002315' 17440   ERROR5: MOVEI   B, EMES5        ;UNEQUAL NUMBER OF MASTER AND TR.\r
44273         002023' 254000  002247' 17450           JRST    ERROR           ;TYPE IT AND EXIT\r
44274 \r
44275         002024' 201100  002330' 17470   ERROR6: MOVEI   B, EMES6        ;NOT ENOUGH ARGUMENTS\r
44276         002025' 254000  002247' 17480           JRST    ERROR           ;TYPE IT AND EXIT\r
44277 \r
44278         002026' 260500  002201' 17500   ERROR7: PUSHJ   P, DTYPOQ       ;TYPE OUT THE DEVICE NAME\r
44279         002027' 201040  000072  17510           MOVEI   A, 72           ;ASCII COLON\r
44280         002030' 260500  002237' 17520           PUSHJ   P, TYPO         ;TYPE IT OUT\r
44281         002031' 260500  002216' 17530           PUSHJ   P, FTYPO        ;TYPE  OUT THE FILE NAME\r
44282         002032' 201040  000074  17540           MOVEI   A, 74           ;ASCII LEFT ANGLE BRACKET\r
44283         002033' 260500  002237' 17550           PUSHJ   P, TYPO         ;TYPE IT  OUT\r
44284         002034' 200100  000013  17560           MOVE    B, R            ;GET PROGRAM NAME\r
44285         002035' 620340  000020  17570           TRZ     F, TTYOB        ;SET IO BACK TO TTY\r
44286         002036' 260500  002220' 17580           PUSHJ   P, PTYPO        ;TYPE  OUT THE PROGRAM NAME\r
44287         002037' 201040  000076  17590           MOVEI   A, 76           ;ASCII RIGHT ANGLE BRACKET\r
44288         002040' 260500  002237' 17600           PUSHJ   P, TYPO         ;TYPE IT OUT\r
44289         002041' 201100  002335' 17610           MOVEI   B, EMES7        ;GET AN ERROR MESSAGE\r
44290         002042' 254000  002247' 17620           JRST    ERROR           ;TYPE IT OUT AND EXIT\r
44291 \r
44292         002043' 260500  002201' 17640   ERROR8: PUSHJ   P, DTYPOQ       ;TYPE OUT THE DEVICE NAME\r
44293         002044' 201040  000072  17650           MOVEI   A, 72           ;ASCII COLON\r
44294         002045' 260500  002237' 17660           PUSHJ   P, TYPO         ;TYPE IT OUT\r
44295         002046' 260500  002216' 17670           PUSHJ   P, FTYPO        ;TYPE  OUT FILE NAME\r
44296         002047' 201040  000056  17680           MOVEI   A, 56           ;ASCII PERIOD\r
44297         002050' 260500  002237' 17690           PUSHJ   P, TYPO         ;TYPE IT OUT\r
44298         002051' 550040  002524' 17700           HRRZ    A, FILBUF       ;GET THE POINTER TO CURRENT FILE\r
44299         002052' 554601  000001  17710           HLRZ    S, 1(A)         ;GET FILE NAME EXTENSION\r
44300         002053' 260500  002206' 17720           PUSHJ   P, DTYPO1       ;TYPE IT OUT\r
44301         002054' 200140  005102' 17730           MOVE    T,SDEVCHR       ;GET CHARACTERISTICS\r
44302         002055' 603140  200000  17740           TLNE    T,DSKBIT        ;IS IT A DSK?\r
44303         002056' 254000  002103' 17750           JRST    ERR8A           ;YES\r
44304         002057' 201100  002335' 17760           MOVEI   B, EMES7        ;GET ERROR MESSAGE "NOT FOUND"\r
44305         002060' 254000  002247' 17770           JRST    ERROR           ;TYPE IT OUT AND EXIT\r
44306 \r\fFUDGE2  V.011                 PAGE 48\r
44307         ERROR ROUTINES\r
44308 \r
44309         002061' 260500  002201' 17790   ERROR9: PUSHJ   P, DTYPOQ       ;TYPE DEVICE NAME\r
44310         002062' 201100  002340' 17800           MOVEI   B, EMES9B       ;GET REMAINDER OF MESSAGE\r
44311         002063' 254000  002247' 17810           JRST    ERROR           ;TYPE IT AND EXIT\r
44312 \r
44313         002064' 200200  000001  17830   ERR10:  MOVE    C, A            ;SAVE PROGRAM NAME IN C\r
44314         002065' 201100  002343' 17840           MOVEI   B, EMES10       ;"ENTRY BLOCK TOO LARGE, PROGRAM"\r
44315         002066' 260500  002174' 17850           PUSHJ   P, ETYPO        ;TYPE BEGINNING OF MESSAGE\r
44316         002067' 200100  000004  17860           MOVE    B, C            ;GET PROGRAM NAME IN B\r
44317         002070' 260500  002220' 17870           PUSHJ   P, PTYPO        ;TYPE IT OUT\r
44318         002071' 254000  002253' 17880           JRST    EXIT1           ;EXIT\r
44319 \r
44320         002072' 201100  002352' 17900   ERR11:  MOVEI   B, EMES11       ;TRANSMISSION ERROR ON INPUT\r
44321         002073' 260500  002174' 17910           PUSHJ   P, ETYPO        ;TYPE THE MESSAGE\r
44322         002074' 260500  002205' 17920           PUSHJ   P, DTYPO        ;TYPE NAME OF OFFENDIN DEVICE\r
44323         002075' 254000  002253' 17930           JRST    EXIT1           ;EXIT\r
44324 \r
44325         002076' 200140  005102' 17950   ERR14:  MOVE    T,SDEVCHR       ;GET DEVICE CHARACTERISTICS\r
44326         002077' 603140  200000  17960           TLNE    T,DSKBIT        ;IS IT A DSK\r
44327         002100' 254000  002043' 17970           JRST    ERROR8          ;YES\r
44328         002101' 201100  002362' 17980           MOVEI   B, EMES14       ;DIRECTORY FULL ON OUTPUT\r
44329         002102' 254000  002247' 17990           JRST    ERROR           ;TYPE IT AND EXIT\r
44330 \r
44331         002103' 550140  004573' 18010   ERR8A:  HRRZ    T,EBLOCK+1      ;GET ERROR CODE\r
44332         002104' 301140  000021  18020           CAIL    T,TABLND-ETABLE ;LEGAL ERROR?\r
44333         002105' 334100  002131' 18030           SKIPA   B,TABLND        ;NO, USE CATCH ALL MESSAGE\r
44334         002106' 200103  002110' 18040           MOVE    B,ETABLE(T)     ;PICK UP MESSAGE\r
44335         002107' 254000  002247' 18050           JRST    ERROR\r
44336 \r
44337 \r\fFUDGE2  V.011                 PAGE 49\r
44338         ERROR ROUTINES\r
44339 \r
44340         002110' 000000  005205' 18080   ETABLE: [ASCIZ /(0) file was not found/]\r
44341         002111' 000000  005212' 18090           [ASCIZ /(1) no such project-programmer number/]\r
44342         002112' 000000  005222' 18100           [ASCIZ /(2) protection failure/]\r
44343         002113' 000000  005227' 18110           [ASCIZ /(3) file was being modified/]\r
44344         002114' 000000  005235' 18120           [ASCIZ /(4) rename file name already exists/]\r
44345         002115' 000000  005245' 18130           [ASCIZ /(5) illegal sequence of UUOs/]\r
44346         002116' 000000  005253' 18140           [ASCIZ /(6) bad UFD or bad RIB/]\r
44347         002117' 000000  005260' 18150           [ASCIZ /(7) not a SAV file/]\r
44348         002120' 000000  005264' 18160           [ASCIZ /(10) not enough core/]\r
44349         002121' 000000  005271' 18170           [ASCIZ /(11) device not available/]\r
44350         002122' 000000  005277' 18180           [ASCIZ /(12) no such device/]\r
44351         002123' 000000  005303' 18190           [ASCIZ /(13) not two reloc reg. capability/]\r
44352         002124' 000000  005312' 18200           [ASCIZ /(14) no room or quota exceeded/]\r
44353         002125' 000000  005321' 18210           [ASCIZ /(15) write lock error/]\r
44354         002126' 000000  005326' 18220           [ASCIZ /(16) not enough monitor table space/]\r
44355         002127' 000000  005336' 18230           [ASCIZ /(17) partial allocation only/]\r
44356         002130' 000000  005344' 18240           [ASCIZ /(20) block not free on allocation/]\r
44357 \r
44358         002131' 000000  005353' 18260   TABLND: [ASCIZ /(?) lookup,enter,or rename error/]\r
44359 \r\fFUDGE2  V.011                 PAGE 50\r
44360         ERROR ROUTINES\r
44361 \r
44362         002132' 201100  002371' 18280   ERR15:  MOVEI   B, EMES15       ;DEVICE ERROR ON OUTPUT\r
44363         002133' 260500  002174' 18290           PUSHJ   P, ETYPO        ;TYPE THE MESSAGE\r
44364         002134' 260500  002205' 18300           PUSHJ   P, DTYPO        ;TYPE NAME OF OFFENDING DEVICE\r
44365         002135' 254000  002253' 18310           JRST    EXIT1           ;GO AWAY\r
44366 \r
44367         002136' 200100  000001  18330   ERR16:  MOVE    B,A             ;SAVE OFFENDING LETTER\r
44368         002137' 260500  002243' 18340           PUSHJ   P,CRLF\r
44369         002140' 201040  000077  18350           MOVEI   A,77            ;TYPE OUT "?"\r
44370         002141' 260500  001656' 18360           PUSHJ   P, OUT\r
44371         002142' 200040  000002  18370           MOVE    A, B            ;GET BACK OFFENDING LETTER\r
44372         002143' 260500  001656' 18380           PUSHJ   P, OUT          ;TYPE OFFENDING LETTER\r
44373         002144' 201100  002400' 18390           MOVEI   B, EMES16       ;"X" IS AN ILLEGAL SWITCH\r
44374         002145' 660340  040000  18400           TRO     F,CRLFTY\r
44375         002146' 254000  002247' 18410           JRST    ERROR           ;TYPE IT AND EXIT\r
44376 \r
44377         002147' 200100  000001  18430   ERR17:  MOVE    B, A\r
44378         002150' 260500  002243' 18440           PUSHJ   P,CRLF\r
44379         002151' 201040  000077  18450           MOVEI   A, 77\r
44380         002152' 260500  001656' 18460           PUSHJ   P, OUT\r
44381         002153' 200040  000002  18470           MOVE    A, B\r
44382         002154' 260500  001656' 18480           PUSHJ   P, OUT          ;TYPE OFFENDING LETTER\r
44383         002155' 201100  002405' 18490           MOVEI   B, EMES17       ;"X" IS AN ILLEGAL CHARACTER\r
44384         002156' 660340  040000  18500           TRO     F,CRLFTY\r
44385         002157' 254000  002247' 18510           JRST    ERROR           ;TYPE IT AND EXIT\r
44386 \r
44387         002160' 201100  002412' 18530   ERR18:  MOVEI   B,EMES18\r
44388         002161' 254000  002247' 18540           JRST    ERROR\r
44389 \r
44390         002162' 201100  002423' 18560   ERR19:  MOVEI   B,EMES19\r
44391         002163' 254000  002247' 18570           JRST    ERROR\r
44392 \r
44393         002164' 201100  002427' 18590   ERR20:  MOVEI   B,EMES20\r
44394         002165' 254000  002247' 18600           JRST    ERROR\r
44395 \r
44396         002166' 201100  002434' 18620   ERR21:  MOVEI   B,EMES21\r
44397         002167' 254000  002247' 18630           JRST    ERROR\r
44398 \r
44399         002170' 201100  002441' 18650   ERR22:  MOVEI   B,EMES22\r
44400         002171' 254000  002247' 18660           JRST    ERROR\r
44401 \r
44402         002172' 201100  002447' 18680   ERR23:  MOVEI   B,EMES23\r
44403         002173' 254000  002247' 18690           JRST    ERROR\r
44404 \r\fFUDGE2  V.011                 PAGE 51\r
44405         VARIOUS ERROR ROUTINES AND SMALL TYPE-OUT ROUTINES\r
44406 \r
44407                                 18710   SUBTTL VARIOUS ERROR ROUTINES AND SMALL TYPE-OUT ROUTINES\r
44408 \r
44409         002174' 505100  440700  18730   ETYPO:  HRLI    B, 440700       ;MAKE A BYTE POINTER\r
44410         002175' 134040  000002  18740   ETYPO2: ILDB    A, B            ;GET A CHARACTER\r
44411         002176' 322040  001065' 18750           JUMPE   A,CPOPJ         ;EXIT IF NULL\r
44412         002177' 260500  002237' 18760           PUSHJ   P, TYPO         ;NO, TYPE IT\r
44413         002200' 254000  002175' 18770           JRST    ETYPO2          ;RETURN FOR MORE CHARACTERS\r
44414 \r
44415         002201' 666340  040000  18790   DTYPOQ: TRON    F,CRLFTY        ;IS CR,LF TYPED OUT?\r
44416         002202' 260500  002243' 18800           PUSHJ   P,CRLF          ;YES\r
44417         002203' 201040  000077  18810           MOVEI   A,77            ;TYPE OUT ? FOR BATCH\r
44418         002204' 260500  002237' 18820           PUSHJ   P,TYPO\r
44419 \r
44420 \r
44421         002205' 200605  003324' 18850   DTYPO:  MOVE    S, DEVBUF(D)    ;GET DEVICE NAME FROM BUFFER\r
44422         002206' 200200  005117' 18860   DTYPO1: MOVE    C, SYMPTR       ;BYTE POINTER TO SYMBOL NAME\r
44423         002207' 201100  000006  18870           MOVEI   B, 6            ;LOOP COUNTER FOR 6 CHARACTERS\r
44424         002210' 134040  000004  18880   DTYPO2: ILDB    A, C            ;GET A CHARACTER\r
44425         002211' 322040  002214' 18890           JUMPE   A, DTYPO3       ;IGNORE BLANKS\r
44426         002212' 271040  000040  18900           ADDI    A, 40           ;CONVERT TO 7-BIT ASCII\r
44427         002213' 260500  002237' 18910           PUSHJ   P, TYPO         ;TYPE IT\r
44428         002214' 367100  002210' 18920   DTYPO3: SOJG    B, DTYPO2       ;ALL DONE?\r
44429         002215' 263500  000000  18930           POPJ    P,              ;EXIT\r
44430 \r
44431         002216' 200620  002524' 18950   FTYPO:  MOVE    S, @FILBUF      ;PICK UP THE FILE NAME\r
44432         002217' 254000  002206' 18960           JRST    DTYPO1          ;JUMP INTO DTYPO ROUTINE\r
44433 \r
44434         002220' 201040  000006  18980   PTYPO:  MOVEI   A, 6            ;SIX CHARACTERS TO GET\r
44435         002221' 231100  000050  18990   PTYPO2: IDIVI   B, 50           ;CONVERT TO SIXBIT CODE\r
44436         002222' 506152  000000  19000           HRLM    B+1, (P)        ;STORE CHARACTER ON PD LIST\r
44437         002223' 363040  002225' 19010           SOJLE   A,.+2           ;ALL DONE?\r
44438         002224' 260500  002221' 19020           PUSHJ   P, PTYPO2       ;NO, DIVIDE SOME MORE\r
44439         002225' 554052  000000  19030           HLRZ    A, (P)          ;POP CHARACTERS OFF STACK\r
44440         002226' 322040  001065' 19040           JUMPE   A, CPOPJ        ;IGNORE BLANKS\r
44441         002227' 303040  000012  19050           CAILE   A, 12           ;LETTER OR NUMBER?\r
44442         002230' 271040  000007  19060           ADDI    A, 7            ;LETTER - ADD 66\r
44443         002231' 271040  000057  19070           ADDI    A, 57           ;NUMBER - ADD 57\r
44444         002232' 306040  000134  19080           CAIN    A, 134          ;DOLLAR SIGN?\r
44445         002233' 275040  000070  19090           SUBI    A, 70           ;YES, SPECIAL CASE\r
44446         002234' 306040  000133  19100           CAIN    A, 133          ;PERIOD?\r
44447         002235' 275040  000055  19110           SUBI    A, 55           ;YES, SPECIAL CASE\r
44448         002236' 254000  001656' 19120           JRST    OUT             ;RECURSIVE EXIT FOR MORE CHARS\r
44449 \r
44450         002237' 136040  004603' 19140   TYPO:   IDPB    A, OBUF+1       ;STORE CHARACTER IN BUFFER\r
44451         002240' 306040  000012  19150           CAIN    A, 12           ;LINE FEED?\r
44452         002241' 067000  000000  19160           OUTPUT  0,              ;YES, EMPTY BUFFER\r
44453         002242' 263500  000000  19170           POPJ    P,              ;EXIT\r
44454 \r\fFUDGE2  V.011                 PAGE 52\r
44455         VARIOUS ERROR ROUTINES AND SMALL TYPE-OUT ROUTINES\r
44456 \r
44457         002243' 201040  000015  19190   CRLF:   MOVEI   A, 15           ;CARRIAGE RETURN\r
44458         002244' 260500  001656' 19200           PUSHJ   P, OUT          ;OUTPUT IT\r
44459         002245' 201040  000012  19210           MOVEI   A, 12           ;LINE FEED\r
44460         002246' 254000  001656' 19220           JRST    OUT             ;OUTPUT IT AND EXIT\r
44461 \r
44462         002247' 620340  000020  19240   ERROR:  TRZ     F,TTYOB         ;JUST IN CASE , SET OUTPUT TO TTY\r
44463         002250' 666340  040000  19250           TRON    F,CRLFTY\r
44464         002251' 260500  002243' 19260           PUSHJ   P,CRLF\r
44465         002252' 260500  002174' 19270           PUSHJ   P, ETYPO        ;TYPE LAST MESSAGE OF ERROR\r
44466         002253' 620340  000020  19280   EXIT1:  TRZ     F,TTYOB         ;ENSURE TTY OUTPUT OF CR-LF\r
44467         002254' 260500  002243' 19290           PUSHJ   P,CRLF          ;FINISH WITH CR-LF\r
44468         002255' 070000  000000  19300           CLOSE   0,              ;FORCE OUTPUT OF LAST LINE\r
44469         002256' 254000  000000' 19310           JRST    FUDGE2          ;START AGAIN\r
44470 \r
44471         002257' 070040  000000  19330   EXIT:   CLOSE   1,              ;CLOSE OUT THE OUTPUT CHANNEL\r
44472         002260' 254000  000000' 19340           JRST    FUDGE2          ;RESTART\r
44473 \r
44474 \r\fFUDGE2  V.011                 PAGE 53\r
44475         ERROR MESSAGES\r
44476 \r
44477                                 19370   SUBTTL ERROR MESSAGES\r
44478         002261' 376152  542216  19380   EMES1:  ASCIZ   "?FUDGE2 SYNTAX ERROR"\r
44479         002262' 425444  051662\r
44480         002263' 472510  154100\r
44481         002264' 426452  247644\r
44482         002265' 000000  000000\r
44483         002266' 376511  747500  19390   EMES2:  ASCIZ   "?TOO MANY FILE NAMES OR PROGRAM NAMES"\r
44484         002267' 466031  654500\r
44485         002270' 432231  442500\r
44486         002271' 472031  542646\r
44487         002272' 202372  220240\r
44488         002273' 512370  751202\r
44489         002274' 465011  640632\r
44490         002275' 426460  000000\r
44491         002276' 376412  247616  19400   EMES3:  ASCIZ   "?PROGRAM ERROR WHILE RESETTING MASTER DEVICE"\r
44492         002277' 512031  520212\r
44493         002300' 512451  751100\r
44494         002301' 536211  146212\r
44495         002302' 202450  551612\r
44496         002303' 522511  147216\r
44497         002304' 202330  151650\r
44498         002305' 426444  042212\r
44499         002306' 532230  342400\r
44500         002307' 202070  147234  19410   EMES4:  ASCIZ   " CANNOT DO IO AS REQUESTED"\r
44501         002310' 476504  042236\r
44502         002311' 202231  720202\r
44503         002312' 515012  242642\r
44504         002313' 526132  352212\r
44505         002314' 420000  000000\r
44506         002315' 376531  642642  19420   EMES5:  ASCIZ   "?UNEQUAL NUMBER OF MASTER AND TRANSACTION PROGRAMS"\r
44507         002316' 526031  420234\r
44508         002317' 526330  242644\r
44509         002320' 202370  620232\r
44510         002321' 406472  442644\r
44511         002322' 202031  642100\r
44512         002323' 522450  147246\r
44513         002324' 406072  444636\r
44514         002325' 471012  051236\r
44515         002326' 436450  146646\r
44516         002327' 000000  000000\r
44517         002330' 376351  752100  19430   EMES6:  ASCIZ   "?NOT ENOUGH ARGUMENTS"\r
44518         002331' 426351  752616\r
44519         002332' 441010  151216\r
44520         002333' 526330  547250\r
44521         002334' 514000  000000\r
44522         002335' 202351  752100  19440   EMES7:  ASCIZ   " NOT FOUND"\r
44523         002336' 432372  547210\r
44524         002337' 000000  000000\r
44525         002340' 202351  752100  19450   EMES9B: ASCIZ   " NOT AVAILABLE"\r
44526         002341' 406550  144630\r
44527         002342' 406051  442400\r
44528         002343' 376131  652244  19460   EMES10: ASCIZ   "?ENTRY BLOCK TOO LARGE, PROGRAM "\r
44529         002344' 545010  246236\r
44530 \r\fFUDGE2  V.011                 PAGE 53-1\r
44531         ERROR MESSAGES\r
44532 \r
44533         002345' 416264  052236\r
44534         002346' 475011  440644\r
44535         002347' 436125  420240\r
44536         002350' 512370  751202\r
44537         002351' 465000  000000\r
44538         002352' 376512  240634  19470   EMES11: ASCIZ   "?TRANSMISSION ERROR ON INPUT DEVICE "\r
44539         002353' 516331  151646\r
44540         002354' 446371  620212\r
44541         002355' 512451  751100\r
44542         002356' 476344  044634\r
44543         002357' 502532  420210\r
44544         002360' 426551  141612\r
44545         002361' 200000  000000\r
44546         002362' 376111  151212  19480   EMES14: ASCIZ   "?DIRECTORY FULL ON OUTPUT DEVICE "\r
44547         002363' 416511  751262\r
44548         002364' 202152  546230\r
44549         002365' 202371  620236\r
44550         002366' 526512  052650\r
44551         002367' 202110  553222\r
44552         002370' 416124  000000\r
44553         002371' 376110  553222  19490   EMES15: ASCIZ   "?DEVICE ERROR ON OUTPUT DEVICE "\r
44554         002372' 416124  042644\r
44555         002373' 512372  220236\r
44556         002374' 471011  752650\r
44557         002375' 502532  420210\r
44558         002376' 426551  141612\r
44559         002377' 200000  000000\r
44560         002400' 202232  320202  19500   EMES16: ASCIZ   " IS AN ILLEGAL SWITCH"\r
44561         002401' 471011  146230\r
44562         002402' 426170  146100\r
44563         002403' 516571  152206\r
44564         002404' 440000  000000\r
44565         002405' 202232  320202  19510   EMES17: ASCIZ   " IS AN ILLEGAL CHARACTER"\r
44566         002406' 471011  146230\r
44567         002407' 426170  146100\r
44568         002410' 416210  151202\r
44569         002411' 416510  551000\r
44570         002412' 376110  553222  19520   EMES18: ASCIZ "?DEVICE FOR * COMMAND MUST BE DSK OR DTA"\r
44571         002413' 416124  043236\r
44572         002414' 511005  220206\r
44573         002415' 476331  540634\r
44574         002416' 421011  552646\r
44575         002417' 521010  242500\r
44576         002420' 422471  320236\r
44577         002421' 511010  452202\r
44578         002422' 000000  000000\r
44579         002423' 376070  147234  19530   EMES19: ASCIZ "?CANNOT INIT DSK"\r
44580         002424' 476504  044634\r
44581         002425' 446504  042246\r
44582         002426' 454000  000000\r
44583         002427' 376311  747626  19540   EMES20: ASCIZ "?LOOKUP FAILURE ON DSK"\r
44584         002430' 526404  043202\r
44585         002431' 446312  551212\r
44586 \r\fFUDGE2  V.011                 PAGE 53-2\r
44587         ERROR MESSAGES\r
44588 \r
44589         002432' 202371  620210\r
44590         002433' 516260  000000\r
44591         002434' 376132  251236  19550   EMES21: ASCIZ "?ERROR WHILE READING UFD"\r
44592         002435' 511012  744222\r
44593         002436' 462124  051212\r
44594         002437' 406111  147216\r
44595         002440' 202530  642000\r
44596         002441' 376351  752100  19560   EMES22: ASCIZ "?NOT ENOUGH CORE AVAILABLE "\r
44597         002442' 426351  752616\r
44598         002443' 441010  347644\r
44599         002444' 425010  153202\r
44600         002445' 446310  141230\r
44601         002446' 425000  000000\r
44602         002447' 376372  552240  19570   EMES23: ASCIZ   "?OUTPUT DEVICE MUST BE DSK OR DTA"\r
44603         002450' 526504  042212\r
44604         002451' 532230  342500\r
44605         002452' 466532  352100\r
44606         002453' 412124  042246\r
44607         002454' 455011  751100\r
44608         002455' 422510  100000\r
44609         002456' 202111  742646  19580   EMES24: ASCIZ   " DOES NOT EXIST"\r
44610         002457' 202351  752100\r
44611         002460' 426611  151650\r
44612         002461' 000000  000000\r
44613 \r\fFUDGE2  V.011                 PAGE 54\r
44614         IMPURE CODE\r
44615 \r
44616                                 19600   SUBTTL IMPURE CODE\r
44617 \r
44618 \r
44619         002462' 050000  002521' 19630   COLON1: OPEN    ,COLON0         ;INITIALIZATION SEQUENCE\r
44620         002463' 077003  004572' 19640   SEMIC1: ENTER   , EBLOCK(T)\r
44621         002464' 064004  000000  19650   INBUF3: INBUF   ,(C)\r
44622 \r
44623         002465' 072000  000017  19670   BACK0:  MTAPE   , 17            ;BACKSPACE MAG TAPE ONE FILE\r
44624         002466' 072000  000000  19680   BACK3:  MTAPE   ,0              ;WAIT FOR BACKSPACE TO FIN.\r
44625         002467' 061000  004000  19690   BACK1:  STATO   , IOBOT         ;ARE WE AT BEGINNING OF TAPE\r
44626         002470' 072000  000016  19700   BACK2:  MTAPE   , 16            ;NO, SKIP FILE\r
44627         002471' 263500  000000  19710           POPJ    P,              ;EXIT\r
44628 \r
44629         002472' 070000  000000  19730   GET3A:  CLOSE   ,\r
44630         002473' 076003  004572' 19740   GET4A:  LOOKUP  , EBLOCK(T)\r
44631 \r
44632         002474' 056000  000000  19760   INGET2: IN      0,              ;INPUT A BUFFER OF DATA\r
44633         002475' 254000  001651' 19770           JRST    GETIN1          ;NO ERRORS\r
44634         002476' 063000  020000  19780   INGET3: STATZ   , IOEOF         ;END OF FILE?\r
44635         002477' 254000  001064' 19790           JRST    POPOUT          ;YES, HIGH LEVEL EXIT\r
44636         002500' 254000  002072' 19800           JRST    ERR11           ;ERROR\r
44637 \r
44638         002501' 060000  000117  19820   DP:     SETSTS  ,117            ;DUMP MODE NON-STANDARD\r
44639         002502' 074000  000144  19830           USETI   ,144            ;DIRECTORY BLOCK\r
44640         002503' 066000  002513' 19840           INPUT   ,DIRIOW         ;ONE BLOCK ONLY\r
44641         002504' 063000  760000  19850           STATZ   ,760000         ;CHECK ERRORS\r
44642         002505' 254000  002501' 19860           JRST    DP              ;TRY AGAIN\r
44643         002506' 060000  000014  19870           SETSTS  ,14             ;BACK TO BINARY\r
44644         002507' 254000  001770' 19880           JRST    DTALUP\r
44645 \r
44646         002510' 000000  000014  19900   DSKINI: EXP     14\r
44647         002511' 446353  000000  19910           SIXBIT  /DSK/           ;MAY GET MODIFIED\r
44648         002512' 000000  004642' 19920           EXP     DIRBUF\r
44649 \r
44650         002513' 777600  004646' 19940   DIRIOW: IOWD    200,DIRBLK      ;IOWD FOR DIRECTORY INPUT\r
44651         002514' 000000  000000  19950           0                       ;MUST BE IN LOW SEGMENT\r
44652 \r
44653 \r\fFUDGE2  V.011                 PAGE 55\r
44654         STORAGE AND BUFFERS\r
44655 \r
44656                                 19980   SUBTTL STORAGE AND BUFFERS\r
44657 \r
44658         002515'                 20000   LOW:\r
44659 \r
44660         002515'                 20020   FILSAV: BLOCK   1\r
44661         002516'                 20030   BLKCNT: BLOCK   1               ;NUMBER OF BUFFERS OUTPUT\r
44662         002517'                 20040   SAVEAC: BLOCK   1\r
44663         002520'                 20050   SAVEBT: BLOCK   1\r
44664         002521'                 20060   COLON0: BLOCK   1               ;MODE\r
44665         002522'                 20070   COLON2: BLOCK   1               ;DEVICE NAME\r
44666         002523'                 20080   COLON3: BLOCK   1               ;BUFFER HEADER\r
44667         002524'                 20090   FILBUF: BLOCK   N\r
44668         002724'                 20100   PRGBUF: BLOCK   N\r
44669         003124'                 20110   PPNBUF: BLOCK   N\r
44670         003324'                 20120   DEVBUF: BLOCK   10\r
44671         003334'                 20130   ENTBLK: BLOCK   X+1\r
44672         004042'                 20140   SVEBLK: BLOCK   X+1\r
44673         004550'                 20150   PDLIST: BLOCK   XP\r
44674         004570'                 20160           BLOCK   2               ;FOR EXTENDED LOOKUP AND ENTERS\r
44675         004572'                 20170   EBLOCK: BLOCK   4\r
44676         004576'                 20180           BLOCK   <RIBALC-6+1>    ;MORE EXTENDED STUFF\r
44677         004602'                 20190   OBUF:   BLOCK   6               ;TTY:, OUTPUT DEV:\r
44678         004610'                 20200   IBUF:   BLOCK   30              ;INPUT DEVICES (10)\r
44679 \r
44680         004640'                 20220   SAVNAM: BLOCK   1       ;SAVED FILE NAME FROM UFD\r
44681         004641'                 20230   SAVEXT: BLOCK   1       ;SAVED EXT NAME FROM UFD\r
44682         004642'                 20240   DIRBUF: BLOCK 3         ;DIRECTORY BUFFER HEADER\r
44683         004645'                 20250   DSKHDR: BLOCK N+2       ;TWO WORDS OF OVERHEAD [P,P]+EXT\r
44684                         004647' 20260   DIRBLK=DSKHDR+2\r
44685                         004772' 20270   DIRNAM=DIRBLK+123       ;FILENAMES IN DTA DIRECTORY START HERE\r
44686                         005020' 20280   DIREXT=DIRNAM+26        ;EXTENSIONS IN DTA DIRECTORY START HERE\r
44687 \r
44688         005047'                 20300   BSZ:    BLOCK   1               ;SIZE OF OLD SYMBOL BLOCK\r
44689         005050'                 20310   PTGRS:  BLOCK   1               ;PTGR SAVED\r
44690         005051'                 20320   PTSRS:  BLOCK   1               ;PTSR SAVED\r
44691         005052'                 20330   RELOCS: BLOCK   1               ;ORIGINAL RELOC\r
44692         005053'                 20340   SYMBLK: BLOCK   ^D20            ;NEW SYMBOL BLOCK\r
44693 \r
44694         005077'                 20360   MATCH:  BLOCK   1               ;COUNT OF <'S - >'S ***VJC\r
44695 \r
44696         005100'                 20380   CURCHR: BLOCK   1               ;SAVED CURRENT CHAR OF CS\r
44697         005101'                 20390   LSTCHR: BLOCK   1               ;SAVED LAST CHAR OF CS\r
44698         005102'                 20400   SDEVCH: BLOCK   1       ;SAVED DEVICE CHARACTERS\r
44699         005103'                 20410   NUMDEV: BLOCK   1       ;NUMBER OF DEVICES\r
44700         005104'                 20420   XCOUNT: BLOCK   1\r
44701         005105'                 20430   XPNTR:  BLOCK   1\r
44702         005106'                 20440   BUFSIZ: BLOCK   1\r
44703         005107'                 20450   XBEG:   BLOCK   2\r
44704         005111'                 20460   LEVEL:  BLOCK   1       ;-2 IF LEVEL D\r
44705         005112'                 20470   DEFPPN: BLOCK   1       ;DEFAULT PROJ-PROG\r
44706         005113'                 20480   PRJPRG: BLOCK   1       ;TEMP. PROJ-PROG\r
44707         005114'                 20490   SVENTR: BLOCK   2       ;PLACE TO SAVE EBLOCK,+1\r
44708         005116'                 20500   NOWARN: BLOCK   1       ;SIGNAL TO PRINT MESSAGE ABOUT INDEX\r
44709 \r\fFUDGE2  V.011                 PAGE 55-1\r
44710         STORAGE AND BUFFERS\r
44711 \r
44712         005117'                 20510           VAR             ;JUST IN CASE\r
44713 \r
44714         005117'                 20530   LOWTOP:\r
44715 \r\fFUDGE2  V.011                 PAGE 56\r
44716         CONSTANTS,POINTERS AND LITERALS\r
44717 \r
44718                                 20550   SUBTTL CONSTANTS,POINTERS AND LITERALS\r
44719 \r
44720         005117' 440600  000014  20570   SYMPTR: POINT   6, S\r
44721         005120' 440600  000016  20580   EXTPTR: POINT   6, EXT\r
44722         005121' 440400  005054' 20590   PTSR:   POINT   4,SYMBLK+1      ;TO STORE RELOCATION\r
44723         005122' 440400  005052' 20600   PTGR:   POINT   4,RELOCS        ;TO GET RELOCATION\r
44724         005123' 000040  000000  20610   DTCLR:  UTPCLR  1,\r
44725         005124' 002526' 002525' 20620   FILXWD: XWD     FILBUF+2, FILBUF+1\r
44726         005125' 777760  004547' 20630   XPDLST: XWD     -XP,PDLIST-1\r
44727 \r
44728                         000000' 20650           END     FUDGE2\r
44729         005126' 002515' 002516'\r
44730         005127' 000017  000011\r
44731         005130' 376235  466312\r
44732         005131' 637035  420340\r
44733         005132' 713375  262706\r
44734         005133' 721336  071336\r
44735         005134' 637454  166732\r
44736         005135' 627444  067352\r
44737         005136' 667054  571000\r
44738         005137' 270400  002462'\r
44739         005140' 270400  000017\r
44740         005141' 120000  000000\r
44741         005142' 270400  002463'\r
44742         005143' 004572' 005114'\r
44743         005144' 270400  002464'\r
44744         005145' 003334' 004042'\r
44745         005146' 270400  002465'\r
44746         005147' 270400  002467'\r
44747         005150' 270400  002470'\r
44748         005151' 270400  002466'\r
44749         005152' 270400  002472'\r
44750         005153' 270400  002473'\r
44751         005154' 550140  004573'\r
44752         005155' 306140  000017\r
44753         005156' 254000  001133'\r
44754         005157' 254000  002076'\r
44755         005160' 777756  000001\r
44756         005161' 536032  247222\r
44757         005162' 472164  047236\r
44758         005163' 202231  642212\r
44759         005164' 541011  747100\r
44760         005165' 476532  450252\r
44761         005166' 521010  644630\r
44762         005167' 425005  520206\r
44763         005170' 476352  444634\r
44764         005171' 526231  643432\r
44765         005172' 050000  000000\r
44766         005173' 140600  000001\r
44767         005174' 101200  004647'\r
44768         005175' 270400  002474'\r
44769         005176' 270400  002476'\r
44770         005177' 000001  000001\r
44771 \r\fFUDGE2  V.011                 PAGE 56-1\r
44772         CONSTANTS,POINTERS AND LITERALS\r
44773 \r
44774         005200' 270400  002501'\r
44775         005201' 270400  002502'\r
44776         005202' 270400  002503'\r
44777         005203' 270400  002504'\r
44778         005204' 270400  002506'\r
44779         005205' 241405  120314\r
44780         005206' 647314  520356\r
44781         005207' 607464  067336\r
44782         005210' 721014  667752\r
44783         005211' 673100  000000\r
44784         005212' 241425  120334\r
44785         005213' 675016  372706\r
44786         005214' 641016  071336\r
44787         005215' 653134  372132\r
44788         005216' 703455  763744\r
44789         005217' 607335  562744\r
44790         005220' 203356  566704\r
44791         005221' 627440  000000\r
44792         005222' 241445  120340\r
44793         005223' 713376  462706\r
44794         005224' 723235  767100\r
44795         005225' 633035  166352\r
44796         005226' 713120  000000\r
44797         005227' 241465  120314\r
44798         005230' 647314  520356\r
44799         005231' 607464  061312\r
44800         005232' 647354  720332\r
44801         005233' 677115  163322\r
44802         005234' 627100  000000\r
44803         005235' 241505  120344\r
44804         005236' 627354  166712\r
44805         005237' 203155  166312\r
44806         005240' 203354  166712\r
44807         005241' 203035  471312\r
44808         005242' 607117  120312\r
44809         005243' 743236  372346\r
44810         005244' 000000  000000\r
44811         005245' 241525  120322\r
44812         005246' 663314  563702\r
44813         005247' 661016  362742\r
44814         005250' 727135  661712\r
44815         005251' 203374  620252\r
44816         005252' 526376  300000\r
44817         005253' 241545  120304\r
44818         005254' 607104  052614\r
44819         005255' 421015  771100\r
44820         005256' 613034  420244\r
44821         005257' 446040  000000\r
44822         005260' 241565  120334\r
44823         005261' 677504  060500\r
44824         005262' 516032  620314\r
44825         005263' 647314  500000\r
44826         005264' 241426  024500\r
44827 \r\fFUDGE2  V.011                 PAGE 56-2\r
44828         CONSTANTS,POINTERS AND LITERALS\r
44829 \r
44830         005265' 673376  420312\r
44831         005266' 673376  563720\r
44832         005267' 203075  771312\r
44833         005270' 000000  000000\r
44834         005271' 241426  124500\r
44835         005272' 623136  664706\r
44836         005273' 625015  667750\r
44837         005274' 203036  660722\r
44838         005275' 663034  266312\r
44839         005276' 000000  000000\r
44840         005277' 241426  224500\r
44841         005300' 673364  071752\r
44842         005301' 617204  062312\r
44843         005302' 733234  362400\r
44844         005303' 241426  324500\r
44845         005304' 673376  420350\r
44846         005305' 737364  071312\r
44847         005306' 663374  320344\r
44848         005307' 627165  620306\r
44849         005310' 607414  161322\r
44850         005311' 663236  474400\r
44851         005312' 241426  424500\r
44852         005313' 673364  071336\r
44853         005314' 677324  067744\r
44854         005315' 203436  567750\r
44855         005316' 605014  574306\r
44856         005317' 627134  462710\r
44857         005320' 000000  000000\r
44858         005321' 241426  524500\r
44859         005322' 737455  172312\r
44860         005323' 203315  761726\r
44861         005324' 203136  271336\r
44862         005325' 710000  000000\r
44863         005326' 241426  624500\r
44864         005327' 673376  420312\r
44865         005330' 673376  563720\r
44866         005331' 203335  767322\r
44867         005332' 723376  220350\r
44868         005333' 607055  462500\r
44869         005334' 717414  161712\r
44870         005335' 000000  000000\r
44871         005336' 241426  724500\r
44872         005337' 703036  272322\r
44873         005340' 607304  060730\r
44874         005341' 663374  360750\r
44875         005342' 647375  620336\r
44876         005343' 673317  100000\r
44877         005344' 241446  024500\r
44878         005345' 613315  761726\r
44879         005346' 203355  772100\r
44880         005347' 633454  562500\r
44881         005350' 677344  060730\r
44882         005351' 663374  360750\r
44883 \r\fFUDGE2  V.011                 PAGE 56-3\r
44884         CONSTANTS,POINTERS AND LITERALS\r
44885 \r
44886         005352' 647375  600000\r
44887         005353' 241765  120330\r
44888         005354' 677375  372740\r
44889         005355' 263135  672312\r
44890         005356' 711315  771100\r
44891         005357' 713135  660732\r
44892         005360' 625014  571344\r
44893         005361' 677440  000000\r
44894 \r
44895 NO ERRORS DETECTED\r
44896 \r
44897 PROGRAM BREAK IS 005362\r
44898 \r
44899 9K CORE USED\r
44900 \r\fFUDGE2  V.011                 PAGE 57\r
44901         SYMBOL TABLE\r
44902 \r
44903                 000543  \r
44904 A               000001  \r
44905 ALTMOD          000521' \r
44906 APPEND          000711' \r
44907 APROC3          000716' \r
44908 ASTRSK          001675' \r
44909 B               000002  \r
44910 BACK0           002465' \r
44911 BACK1           002467' \r
44912 BACK2           002470' \r
44913 BACK3           002466' \r
44914 BACKSP          001024' \r
44915 BITE            000110' \r
44916 BLKCNT          002516' \r
44917 BSWTCH          000250' \r
44918 BSZ             005047' \r
44919 BUFSIZ          005106' \r
44920 C               000004  \r
44921 COLON           000317' \r
44922 COLON0          002521' \r
44923 COLON1          002462' \r
44924 COLON2          002522' \r
44925 COLON3          002523' \r
44926 COLON4          000375' \r
44927 COLON6          000340' \r
44928 COLON7          000344' \r
44929 COLON8          000357' \r
44930 COLONB          000406' \r
44931 COLONC          000373' \r
44932 COMMA           000310' \r
44933 COMMA1          000503' \r
44934 COMMA3          000477' \r
44935 COMMA4          000516' \r
44936 COMMAP          000470' \r
44937 COMMAX          000314' \r
44938 CONB            010000  SPD\r
44939 COPY            000737' \r
44940 COPYTO          000743' \r
44941 CORE            000000  \r
44942 COUNT           001337' \r
44943 CPOPJ           001065' \r
44944 CPOPJ1          001063' \r
44945 CRLF            002243' \r
44946 CRLFTY          040000  SPD\r
44947 CURCHR          005100' \r
44948 D               000005  \r
44949 DEFENT          000463' \r
44950 DEFPPN          005112' \r
44951 DELCPY          000730' \r
44952 DELDEC          001435' \r
44953 DELETE          000701' \r
44954 DELFIN          001445' \r
44955 DELGT1          001416' \r
44956 \r\fFUDGE2  V.011                 PAGE 57-1\r
44957         SYMBOL TABLE\r
44958 \r
44959 DELGTR          001412' \r
44960 DELINI          001461' \r
44961 DELLOC          001410' \r
44962 DELWRT          001447' \r
44963 DELWRU          001455' \r
44964 DESTB           000001  SPD\r
44965 DEVB            000400  SPD\r
44966 DEVBUF          003324' \r
44967 DEVCHR          000000  \r
44968 DEVPPN          000000  \r
44969 DIRBLK          004647' \r
44970 DIRBUF          004642' \r
44971 DIREXT          005020' \r
44972 DIRIOW          002513' \r
44973 DIRNAM          004772' \r
44974 DIS             000015  \r
44975 DOENTR          001121' \r
44976 DOXSWT          001134' \r
44977 DP              002501' \r
44978 DPROC1          000703' \r
44979 DRCTRB          000004  SPD\r
44980 DSKAST          001704' \r
44981 DSKBIT          200000  SPD\r
44982 DSKHDR          004645' \r
44983 DSKIN1          001751' \r
44984 DSKINI          002510' \r
44985 DSKINP          001745' \r
44986 DSKLUP          001724' \r
44987 DSPTCH          000065' \r
44988 DTAAST          001760' \r
44989 DTABIT          000100  SPD\r
44990 DTAFLG          400000  SPD\r
44991 DTALUP          001770' \r
44992 DTCLR           005123' \r
44993 DTYPO           002205' \r
44994 DTYPO1          002206' \r
44995 DTYPO2          002210' \r
44996 DTYPO3          002214' \r
44997 DTYPOQ          002201' \r
44998 E               000006  \r
44999 EBLOCK          004572' \r
45000 EMES1           002261' \r
45001 EMES10          002343' \r
45002 EMES11          002352' \r
45003 EMES14          002362' \r
45004 EMES15          002371' \r
45005 EMES16          002400' \r
45006 EMES17          002405' \r
45007 EMES18          002412' \r
45008 EMES19          002423' \r
45009 EMES2           002266' \r
45010 EMES20          002427' \r
45011 EMES21          002434' \r
45012 \r\fFUDGE2  V.011                 PAGE 57-2\r
45013         SYMBOL TABLE\r
45014 \r
45015 EMES22          002441' \r
45016 EMES23          002447' \r
45017 EMES24          002456' \r
45018 EMES3           002276' \r
45019 EMES4           002307' \r
45020 EMES5           002315' \r
45021 EMES6           002330' \r
45022 EMES7           002335' \r
45023 EMES9B          002340' \r
45024 ENDST           001372' \r
45025 ENTBLK          003334' \r
45026 EPROC1          000670' \r
45027 EPROC2          000672' \r
45028 ERR10           002064' \r
45029 ERR11           002072' \r
45030 ERR14           002076' \r
45031 ERR15           002132' \r
45032 ERR16           002136' \r
45033 ERR17           002147' \r
45034 ERR18           002160' \r
45035 ERR19           002162' \r
45036 ERR20           002164' \r
45037 ERR21           002166' \r
45038 ERR22           002170' \r
45039 ERR23           002172' \r
45040 ERR8A           002103' \r
45041 ERRB            002000  SPD\r
45042 ERRISQ          000214' \r
45043 ERROR           002247' \r
45044 ERROR1          002007' \r
45045 ERROR2          002011' \r
45046 ERROR3          002013' \r
45047 ERROR4          002015' \r
45048 ERROR5          002022' \r
45049 ERROR6          002024' \r
45050 ERROR7          002026' \r
45051 ERROR8          002043' \r
45052 ERROR9          002061' \r
45053 ETABLE          002110' \r
45054 ETYPO           002174' \r
45055 ETYPO2          002175' \r
45056 EXIT            002257' \r
45057 EXIT1           002253' \r
45058 EXT             000016  \r
45059 EXTB            001000  SPD\r
45060 EXTPTR          005120' \r
45061 EXTRCT          000660' \r
45062 F               000007  \r
45063 F4              001346' \r
45064 F4I             001270' \r
45065 F4IB            020000  SPD\r
45066 F4LUP1          001374' \r
45067 F4LUP2          001402' \r
45068 \r\fFUDGE2  V.011                 PAGE 57-3\r
45069         SYMBOL TABLE\r
45070 \r
45071 F4LUP3          001375' \r
45072 FILBUF          002524' \r
45073 FILSAV          002515' \r
45074 FILXWD          005124' \r
45075 FIN             001755' \r
45076 FIND1           000752' \r
45077 FIND2           000757' \r
45078 FIND3           000765' \r
45079 FINDCP          000751' \r
45080 FIXUP           000647' \r
45081 FTYPO           002216' \r
45082 FUDGE2          000000' \r
45083 G               000010  \r
45084 GET0            001046' \r
45085 GET1            001060' \r
45086 GET3            001066' \r
45087 GET3A           002472' \r
45088 GET4            001107' \r
45089 GET4A           002473' \r
45090 GETCHR          000040' \r
45091 GETCMN          000045' \r
45092 GETDEV          001031' \r
45093 GETIN           001647' \r
45094 GETIN1          001651' \r
45095 GETPPN          000000  \r
45096 H               000011  \r
45097 IBUF            004610' \r
45098 INBIT           000002  SPD\r
45099 INBUF0          000546' \r
45100 INBUF1          000566' \r
45101 INBUF2          000556' \r
45102 INBUF3          002464' \r
45103 INBUF4          000571' \r
45104 INBUFG          000573' \r
45105 INDEX           000722' \r
45106 INDEX0          001467' \r
45107 INDEX1          001514' \r
45108 INDEX2          001536' \r
45109 INDEX3          001571' \r
45110 INDEX4          001600' \r
45111 INDEX5          001614' \r
45112 INDEX6          001625' \r
45113 INDEXA          001530' \r
45114 INDEXH          001646' \r
45115 INFOB           004000  SPD\r
45116 INGET           001653' \r
45117 INGET2          002474' \r
45118 INGET3          002476' \r
45119 INSER1          000654' \r
45120 INSERT          000632' \r
45121 IOBKTL          040000  SPD\r
45122 IOBOT           004000  SPD\r
45123 IODATA          100000  SPD\r
45124 \r\fFUDGE2  V.011                 PAGE 57-4\r
45125         SYMBOL TABLE\r
45126 \r
45127 IODEV           200000  SPD\r
45128 IOEOF           020000  SPD\r
45129 IPROC7          000656' \r
45130 JOBFF           001756' EXT\r
45131 JOBREL          001476' EXT\r
45132 JOBSA           000000  EXT\r
45133 JOBSYM          000000  EXT\r
45134 JOBVER          000137  SPD\r
45135 JSR     260500  000000  \r
45136 KSWTCH          000251' \r
45137 LBRACA          000277' \r
45138 LBRACK          000265' \r
45139 LEVEL           005111' \r
45140 LFTARW          000156' \r
45141 LIST            000600' \r
45142 LIST1           000610' \r
45143 LIST2           000613' \r
45144 LOW             002515' \r
45145 LOWTOP          005117' \r
45146 LPTBIT          040000  SPD\r
45147 LSQB            000162' \r
45148 LSQB1           000164' \r
45149 LSTCHR          005101' \r
45150 MACHCD          001365' \r
45151 MATCH           005077' \r
45152 MSTGET          000772' \r
45153 N               000200  SPD\r
45154 NODEV           000150' \r
45155 NOLOCB          000200  SPD\r
45156 NOROOM          001546' \r
45157 NOWARN          005116' \r
45158 NUMDEV          005103' \r
45159 NXTWRD          001223' \r
45160 OBUF            004602' \r
45161 OUT             001656' \r
45162 OUT1            001660' \r
45163 OUT2            001662' \r
45164 OUT4            001405' \r
45165 OUTBIT          000001  SPD\r
45166 OUTG            001671' \r
45167 OUTGO           001664' \r
45168 P               000012  \r
45169 PDLIST          004550' \r
45170 PERIOD          000257' \r
45171 POPBAK          100000  SPD\r
45172 POPOUT          001064' \r
45173 PPNBUF          003124' \r
45174 PRGBUF          002724' \r
45175 PRJPRG          005113' \r
45176 PROGB           000100  SPD\r
45177 PTGR            005122' \r
45178 PTGRS           005050' \r
45179 PTSR            005121' \r
45180 \r\fFUDGE2  V.011                 PAGE 57-5\r
45181         SYMBOL TABLE\r
45182 \r
45183 PTSRS           005051' \r
45184 PTYPO           002220' \r
45185 PTYPO2          002221' \r
45186 PUTFIL          001137' \r
45187 PUTPPN          001151' \r
45188 PUTPRG          001144' \r
45189 R               000013  \r
45190 RBRACK          000303' \r
45191 READ            001156' \r
45192 READ1           001206' \r
45193 READ2           001210' \r
45194 READ22          001230' \r
45195 READ23          001216' \r
45196 READ3           001245' \r
45197 READ5           001243' \r
45198 READ55          001233' \r
45199 READ6           001157' \r
45200 READ6A          001173' \r
45201 READ6B          001202' \r
45202 READ7           001266' \r
45203 READ8           001255' \r
45204 READ9           001261' \r
45205 READX           001276' \r
45206 RELOCS          005052' \r
45207 REPLCE          000621' \r
45208 RESET           001002' \r
45209 RESET           000000  \r
45210 RESET1          001017' \r
45211 RESET2          001005' \r
45212 RESET3          001012' \r
45213 RIBALC          000011  SPD\r
45214 RSQB            000202' \r
45215 S               000014  \r
45216 SAVEAC          002517' \r
45217 SAVEB           000002  SPD\r
45218 SAVEBT          002520' \r
45219 SAVEXT          004641' \r
45220 SAVNAM          004640' \r
45221 SDEVCH          005102' \r
45222 SEMIC1          002463' \r
45223 SEMIC2          000447' \r
45224 SEMIC3          000462' \r
45225 SEMIC4          000427' \r
45226 SEMICA          000416' \r
45227 SEMICP          000407' \r
45228 SIZE            000500  SPD\r
45229 SIZZ            000452  SPD\r
45230 SLASH           000144' \r
45231 SLIST           000216' \r
45232 SLSHB           000010  SPD\r
45233 SQBCMA          000177' \r
45234 STNULL          000444' \r
45235 STORE           000127' \r
45236 \r\fFUDGE2  V.011                 PAGE 57-6\r
45237         SYMBOL TABLE\r
45238 \r
45239 SVEBLK          004042' \r
45240 SVENTR          005114' \r
45241 SW              000017  \r
45242 SWTB            000004  SPD\r
45243 SWTCH           000145' \r
45244 SWTCHA          000135' \r
45245 SWTCHE          000146' \r
45246 SYMBLK          005053' \r
45247 SYMPTR          005117' \r
45248 T               000003  \r
45249 TABLE           000077' \r
45250 TABLND          002131' \r
45251 TRNGET          000777' \r
45252 TSWTCH          000252' \r
45253 TTYBIT          000010  SPD\r
45254 TTYCB           000040  SPD\r
45255 TTYIN           000210' \r
45256 TTYOB           000020  SPD\r
45257 TYPO            002237' \r
45258 UTPCLR          000000  \r
45259 VCUSTO          000000  SPD\r
45260 VFUDGE          000011  SPD\r
45261 VPATCH          000000  SPD\r
45262 WRITE           001305' \r
45263 WRITE2          001310' \r
45264 WRITE3          001314' \r
45265 WRITE4          001330' \r
45266 WSWTCH          000253' \r
45267 X               000505  SPD\r
45268 XBEG            005107' \r
45269 XCOUNT          005104' \r
45270 XFLG            200000  SPD\r
45271 XP              000020  SPD\r
45272 XPDLST          005125' \r
45273 XPNTR           005105' \r
45274 ZSWTCH          000254' \r
45275 \fTTTTTTTTTTTTTTT      EEEEEEEEEEEEEEE      NNN         NNN      DDDDDDDDDDDD         MMM         MMM      PPPPPPPPPPPP   \r
45276 TTTTTTTTTTTTTTT      EEEEEEEEEEEEEEE      NNN         NNN      DDDDDDDDDDDD         MMM         MMM      PPPPPPPPPPPP   \r
45277 TTTTTTTTTTTTTTT      EEEEEEEEEEEEEEE      NNN         NNN      DDDDDDDDDDDD         MMM         MMM      PPPPPPPPPPPP   \r
45278       TTT            EEE                  NNN         NNN      DDD         DDD      MMMMMM   MMMMMM      PPP         PPP\r
45279       TTT            EEE                  NNN         NNN      DDD         DDD      MMMMMM   MMMMMM      PPP         PPP\r
45280       TTT            EEE                  NNN         NNN      DDD         DDD      MMMMMM   MMMMMM      PPP         PPP\r
45281       TTT            EEE                  NNNNNN      NNN      DDD         DDD      MMM   MMM   MMM      PPP         PPP\r
45282       TTT            EEE                  NNNNNN      NNN      DDD         DDD      MMM   MMM   MMM      PPP         PPP\r
45283       TTT            EEE                  NNNNNN      NNN      DDD         DDD      MMM   MMM   MMM      PPP         PPP\r
45284       TTT            EEEEEEEEEEEE         NNN   NNN   NNN      DDD         DDD      MMM         MMM      PPPPPPPPPPPP   \r
45285       TTT            EEEEEEEEEEEE         NNN   NNN   NNN      DDD         DDD      MMM         MMM      PPPPPPPPPPPP   \r
45286       TTT            EEEEEEEEEEEE         NNN   NNN   NNN      DDD         DDD      MMM         MMM      PPPPPPPPPPPP   \r
45287       TTT            EEE                  NNN      NNNNNN      DDD         DDD      MMM         MMM      PPP            \r
45288       TTT            EEE                  NNN      NNNNNN      DDD         DDD      MMM         MMM      PPP            \r
45289       TTT            EEE                  NNN      NNNNNN      DDD         DDD      MMM         MMM      PPP            \r
45290       TTT            EEE                  NNN         NNN      DDD         DDD      MMM         MMM      PPP            \r
45291       TTT            EEE                  NNN         NNN      DDD         DDD      MMM         MMM      PPP            \r
45292       TTT            EEE                  NNN         NNN      DDD         DDD      MMM         MMM      PPP            \r
45293       TTT            EEEEEEEEEEEEEEE      NNN         NNN      DDDDDDDDDDDD         MMM         MMM      PPP            \r
45294       TTT            EEEEEEEEEEEEEEE      NNN         NNN      DDDDDDDDDDDD         MMM         MMM      PPP            \r
45295       TTT            EEEEEEEEEEEEEEE      NNN         NNN      DDDDDDDDDDDD         MMM         MMM      PPP            \r
45296 \r
45297 \r
45298 \r
45299 \r
45300 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
45301 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
45302 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
45303 LLL                  SSS                        TTT                                                                     \r
45304 LLL                  SSS                        TTT                                                                     \r
45305 LLL                  SSS                        TTT                                                                     \r
45306 LLL                  SSS                        TTT                                                                     \r
45307 LLL                  SSS                        TTT                                                                     \r
45308 LLL                  SSS                        TTT                                                                     \r
45309 LLL                     SSSSSSSSS               TTT                                                                     \r
45310 LLL                     SSSSSSSSS               TTT                                                                     \r
45311 LLL                     SSSSSSSSS               TTT                                                                     \r
45312 LLL                              SSS            TTT                                                                     \r
45313 LLL                              SSS            TTT                                                                     \r
45314 LLL                              SSS            TTT                                                                     \r
45315 LLL                              SSS            TTT                                                                     \r
45316 LLL                              SSS            TTT                                                                     \r
45317 LLL                              SSS            TTT                                                                     \r
45318 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
45319 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
45320 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
45321 \r
45322 \r
45323 \r
45324 \r
45325 Request created: 24-April-1978  11:23:08\r
45326 File: DSKB0 :TENDMP.LST   [8,200] Created: 20-April-1967 11:20:00 Printed: 24-April-1978 11:22:33
45327 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1523 \r
45328 File will be deleted after printing\r
45329 \f\rTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 1\r
45330         TD10 VERSION\r
45331 \r
45332                                 00010   TITLE TENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032\r
45333                                 00020           IFNDEF REL,<REL=0>      ;0 PAPER TAPE, 1 RELOCATABLE BINARY\r
45334                                 00030           IFNDEF MAGT,<MAGT=0>    ;0 DTAPE, 1 MTAPE\r
45335                                 00040           IFN MAGT,<\r
45336                                 00050   ; MAGTAPE UTILITY ROUTINE - COURTSEY DATALINE SYSTEMS J HANCOCK\r
45337                                 00060           >\r
45338                                 00070           IFNDEF MODE,<MODE=0>    ;0 IS TD10, 1 IS 551/136\r
45339                                 00080           IFNDEF CORE,<CORE=4>    ;NUMBER OF 8K MEMORY BLOCKS\r
45340 \r
45341                                 00100           IFE MODE,<SUBTTL TD10 VERSION>\r
45342                                 00110           IFN MODE,<SUBTTL 551/136 VERSION>\r
45343 \r
45344                                 00130   IFE REL,<\r
45345                                 00140   IFE MAGT,<RIM10B>\r
45346                                 00150   IFN MAGT,<RIM10>>\r
45347                         000210  00160           UTC=210\r
45348                         000214  00170           UTS=214\r
45349                         000200  00180           DC=200\r
45350                         000320  00190           DTC=320\r
45351                         000324  00200           DTS=324\r
45352 \r
45353                         000000  00220   F=0     ;MUST BE 0. USED BY JRA'S\r
45354                         000002  00230   A=2     ;MISC TEMP. HOLDS 136 CONO INDEX IN UWAIT\r
45355                         000001  00240   B=1     ;TEMP. HOLDS BLOCK # COMPUTATION IN SEARCH\r
45356                         000003  00250   C=3     ;HOLDS BITS FOR DECTAPE CONO DURING I/O\r
45357                         000004  00260   D=4     ;HOLDS POINTERS FOR AOBJN'S THROUGH CORE\r
45358                         000005  00270   E=5     ;HOLDS COUNT OF WORDS IN CURRENT DT BLOCK\r
45359                         000006  00280   P=6     ;PC FOR JSP'S\r
45360                         000007  00290   CKS=7   ;HAD BEEN CHECKSUM IN MACDMP\r
45361                         000010  00300   FILN=10 ;NUMBER OF FILE IN DIRECTORY, 1 TO 26 OCTAL\r
45362                         000011  00310   BLKNO=11        ;BLOCK NUMBER SEARCHED FOR ON TAPE\r
45363                         000012  00320   WRITE=12        ;MULTI-STATE FLAG FOR DEFINING I/O OPERATION\r
45364                                 00330                   ;1=D 0=K -1=ELSE\r
45365                         000013  00340   PNTR=13 ;POINTER TO BYTE TABLE IN DIRECTORY\r
45366                         000014  00350   CH=14   ;HOLDS 6BIT CHARACTER OF COMMAND, OR -1\r
45367                         000015  00360   Q=15    ;ANOTHER JSP AC\r
45368                         000016  00370   G=16    ;RARELY USED VERY TEMP\r
45369                         000017  00380   CT=17   ;COUNT OF WORDS TO DUMP\r
45370 \r
45371                         077777  00400   COMPTR=BEGR+377 ;COMMAND POINTER, IF SUPPLIED\r
45372                         077175  00410           LOZAD=BEGR-203  ;WHEN CORE IS CLEARED, IT\r
45373                                 00420                           ;IS FROM 40 THRU LOZAD\r
45374                         000020  00430           LOW=20  ;FIRST LOCATION CONSIDERED FOR DUMPING\r
45375                         077175  00440           HIGH=BEGR-203   ;LAST LOCATION CONSIDERED FOR DUMPING\r
45376                                 00450                           ;ZEROED AT BEG THESE DAYS\r
45377                         077176  00460           FOOF=BEGR-202   ;NEEDED FOR ZERO CORE SEARCH, ZEROED AT BEG1\r
45378                         077177  00470   TAB=BEGR-201            ;FILE DIRECTORY\r
45379                         077377  00480   LINK=BEGR-1             ;0-17=LINK, 18-27=FBN, 29-35=WC\r
45380         077400                  00490   IFE REL,<IFE MAGT,<LOC 17400+<<CORE-1>*20000>>\r
45381                                 00500            IFN MAGT,<LOC 17377+<<CORE-1>*20000>\r
45382                                 00510           IOWD    LAST-BEGR+1,BEGR>>\r
45383 \r\fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 2\r
45384         TD10 VERSION\r
45385 \r
45386                                 00530   ;INITIAL ENTRY IS AT BEGR, UNLESS A COMMAND POINTER IS\r
45387                                 00540   ;SUPPLIED IN COMPTR. IN THAT CASE, ENTRY IS AT BEGR+1\r
45388 \r
45389         077400  402000  077777  00560   BEGR:   SETZM COMPTR    ;CLEAR ANY JUNK IN COMMAND POINTER\r
45390         077401  700200  635550  00570           CONO 635550     ;I/O RESET, ETC.\r
45391         077402  265300  077467  00580   BEG:    JSP P,CRR       ;TYPE A CR-LF\r
45392         077403  201200  077750  00590           MOVEI D,SPNT-2  ;PREPARE TO REMOVE AOBJN POINTERS\r
45393         077404  403100  077176  00600   BEG1:   SETZB A,FOOF    ;CLEAR A TO PUT IN CORE, CLEAR\r
45394                                 00610                           ;FOOF FOR  THE NEXT ZERO CORE SEARCH\r
45395         077405  250104  000002  00620           EXCH A,2(D)     ;REMOVE HEADER LIST\r
45396         077406  253100  077406  00630           AOBJN A,.       ;COUNT THROUGH TO NEXT HEADER\r
45397         077407  201202  777777  00640           MOVEI D,-1(A)   ;ACCOUNT FOR OVERSHOOT IN AOBJN\r
45398         077410  326200  077404  00650           JUMPN D,BEG1    ;IF WE DIDNT AOBJN A 0, GO FOR NEXT HDR\r
45399         077411  200540  077753  00660           MOVE PNTR,[XWD 500,TAB-1]       ;5 BIT BYTES IN DIRECTORY\r
45400         077412  403600  000000  00670           SETZB CH,F\r
45401         077413  475500  000215  00680   CRCH:   SETOI WRITE,215 ;USED FOR CARRET TYPEOUT\r
45402         077414  403140  077175  00690   TYI:    SETZB C,HIGH    ;HOPEFULLY HIGH IS TEMPORARY\r
45403         077415  403040  000005  00700           SETZB B,E       ;NAME INITIALIZING\r
45404         077416  665040  400000  00710           TLOA B,400000   ;NULL NAME IS "@. "\r
45405         077417  201240  000002  00720   SPACE:  MOVEI E,C-1     ;EXTENSION INTO C\r
45406         077420  505240  020600  00730           HRLI E,20600    ;FAKE OUT END TEST OF BYTE PTR\r
45407                                 00740   ;STOP TAPE DRIVE\r
45408                                 00750   IFN MODE,<CONO UTC,0>\r
45409         077421  732200  400000  00760   IFE MODE,<CONO DTC,400000>\r
45410         077422  134120  077400  00770   NEXT:   ILDB A,@BEGR    ;GIVES A 0 UNLESS COMMAND POINTER SUPPLIED\r
45411                                 00780                           ;RH OF NEXT IS USED AS A CONSTANT\r
45412         077423  475400  000207  00790   BELL:   SETOI FILN,207  ;INITIALIZATION FOR SEARCH\r
45413         077424  403440  000017  00800           SETZB BLKNO,CT  ; "\r
45414         077425  402000  077377  00810           SETZM LINK\r
45415         077426  326100  077433  00820           JUMPN A,RCH     ;JUMP IF COMMAND READ FROM CORE\r
45416         077427  712340  000040  00830           CONSO TTY,40    ;TYPEIN FLAG?\r
45417         077430  254000  077427  00840           JRST .-1        ;NO,WAIT\r
45418         077431  712040  000002  00850           DATAI TTY,A     ;GET TYPED IN CHARACTER\r
45419         077432  265300  077471  00860           JSP P,TYO       ;ECHO IT (WITH PARITY)\r
45420         077433  405100  000177  00870   RCH:    ANDI A,177      ;STRIP OFF PARITY\r
45421         077434  306100  000177  00880           CAIN A,177      ;RUBOUT?\r
45422         077435  254000  077400  00890           JRST BEGR       ;YES. RESTART TENDMP\r
45423         077436  302100  000033  00900           CAIE A,33       ;NEW ALTMODE?\r
45424         077437  301100  000175  00910           CAIL A,175      ;OR 175 OR 176 ALTMODES?\r
45425         077440  254000  077501  00920           JRST ALTTST     ;YES, SOME ALTMODE.\r
45426         077441  301100  000140  00930           CAIL A,140      ;LOWER CASE CHARACTER?\r
45427         077442  620100  000040  00940           TRZ A,40        ;YES. CHANGE TO UPPER CASE\r
45428         077443  275100  000040  00950           SUBI A,40       ;CONVERT TO SIXBIT\r
45429         077444  321100  077504  00960           JUMPL A,CARRET  ;ANY CONTROL CHARACTER\r
45430         077445  322100  077417  00970           JUMPE A,SPACE   ;CHAR WAS 40\r
45431         077446  603240  770000  00980   NEXT1:  TLNE E,770000   ;NO MORE THAN SIX CHARS\r
45432         077447  136100  000005  00990           IDPB A,E        ;GOES INTO AC1 = B\r
45433         077450  254000  077422  01000           JRST NEXT       ;GET ANOTHER CHARACTER\r
45434 \r
45435 \r\fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 3\r
45436         TD10 VERSION\r
45437 \r
45438 \r
45439                                 01040   ;HERE ON JUMP BLOCK DURING LOADS, OR NUMBER>7 ALT\r
45440         077451                  01050   JBLK:\r
45441                                 01060   ;STOP TAPE DRIVE\r
45442                                 01070   IFN MODE,<CONO UTC,0>\r
45443         077451  732200  400000  01080   IFE MODE,<CONO DTC,400000>\r
45444         077452  542200  077454  01090           HRRM D,SADR     ;SAVE STARTING ADDRESS\r
45445         077453  326600  077402  01100           JUMPN CH,BEG    ;IF NOT LOADGO COMMAND\r
45446         077454  254000  077402  01110   SADR:   JRST BEG        ;CURRENT S.A.\r
45447         077455                  01120   LOADS:                  ;HERE TO LOAD TAPE TO CORE\r
45448         077455  201200  077176  01130           MOVEI D,LOZAD+1 ;FIRST LOC NOT TO ZERO\r
45449         077456  402000  000040  01140           SETZM 40        ;A "FEATURE"\r
45450         077457  200140  077754  01150           MOVE C,[XWD 40,41]      ;PREPARE TO CLEAR CORE.\r
45451         077460  606600  000003  01160           TRNN CH,3       ;SKIP ON M,N   NOT ON L,T,@\r
45452         077461  251144  777777  01170           BLT C,-1(D)     ;ZERO CORE\r
45453         077462  265640  077557  01180   LOAD:   JSP Q,LODUMP    ;START READING FILE. LODUMP PROCESSES\r
45454                                 01190                           ;ONE HEADER AND ITS DATA\r
45455         077463  254000  077462  01200           JRST LOAD       ;IF OK, GET NEXT BLOCK.(IF NONE, \r
45456                                 01210                           ;LODUMP RETURNS TO JBLK.)\r
45457         077464  336240  000012  01220   DELE:   SKIPN E,WRITE   ;SKIP IF NOT IN THE K PHASE OF A D COMMAND.\r
45458                                 01230                           ;OR A K COMMAND\r
45459                                 01240                           ;ALSO, SET E =0, SO SEARCH HAPPENS IN RBLK\r
45460         077465  344500  077713  01250   CLS1:   AOJA WRITE,CLSTP        ; 0 TO 1. GO DUMP OUT DIRECTORY.\r
45461         077466  334300  077422  01260   ERR:    SKIPA P,NEXT    ;SET TO RETURN TO BEGR\r
45462         077467  334100  077413  01270   CRR:    SKIPA A,CRCH    ;LIKE HRROI A,215 AND SKIPA\r
45463         077470  334100  077423  01280           SKIPA A,BELL    ;GET A BELL CHARACTER\r
45464         077471  336000  077777  01290   TYO:    SKIPN COMPTR    ;DONT TYO IF NO TYI, UNLESS ERR\r
45465         077472  712140  000002  01300           DATAO TTY,A     ;TYPE OUT\r
45466         077473  712300  000020  01310           CONSZ TTY,20    ;WAIT FOR TTY TO FINISH\r
45467         077474  254000  077473  01320           JRST .-1        ;NOT YET\r
45468         077475  302100  000215  01330           CAIE A,215      ;IF CR TYPED IN,\r
45469         077476  325106  000000  01340           JUMPGE A,(P)    ;OR SIGN BIT OF CHAR ON,(SEE CRR)\r
45470         077477  201100  000012  01350           MOVEI A,12      ;APPEND A LINEFEED\r
45471         077500  254000  077471  01360           JRST TYO        ;GO TYPE LF\r
45472 \r
45473 \r\fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 4\r
45474         TD10 VERSION\r
45475 \r
45476         077501  607040  004040  01390   ALTTST: TLNN B,4040     ;IF ALPHA CHARACTERS, DONT GET CH\r
45477         077502  135600  000005  01400           LDB CH,E        ;LAST CH BEFORE ALT, -40\r
45478         077503  326600  077667  01410           JUMPN CH,ALTMD  ;IF CH NOT NULL, GOT PROCESS ALTMODE\r
45479         077504  205400  777752  01420   CARRET: MOVSI FILN,-26  ;FILE NAME SPECIFIED. FIRST THING TO\r
45480                                 01430                           ;DO IS LOOK IT UP IN DIRECTORY\r
45481         077505  336010  077322  01440   LUP:    SKIPN TAB+123(FILN)     ;SEARCH FOR FREE FILE\r
45482         077506  332450  077350  01450           SKIPE BLKNO,TAB+151(FILN)       ;CHECK BOTH WORDS\r
45483         077507  634440  000011  01460           TDZA BLKNO,BLKNO        ;ENSURE CLEAR BLOCK NUMBER\r
45484         077510  542400  077517  01470           HRRM FILN,FREE  ;SAVE NUMBER OF A FREE FILE\r
45485         077511  510710  077350  01480           HLLZ G,TAB+151(FILN)    ;ONLY CHECK LEFT OF 2ND WD\r
45486         077512  316050  077322  01490           CAMN B,TAB+123(FILN)    ;SEARCH FOR TYPED-IN FILE\r
45487         077513  312140  000016  01500           CAME C,G                ;BOTH WORDS\r
45488         077514  253400  077505  01510           AOBJN FILN,LUP  ;NOT THIS ONE. KEEP LOOKING\r
45489         077515  321400  077522  01520           JUMPL FILN,BEG69        ;IF FILE FOUND, JUMP\r
45490         077516  323500  077466  01530           JUMPLE WRITE,ERR        ;IF NOT FOUND, BETTER BE DUMP\r
45491         077517  201400  077517  01540   FREE:   MOVEI FILN,.    ;DUMP & NOT FOUND, MAKE ENTRY WHERE FREE\r
45492                                 01550                           ;(ADDRESS MODIFIED ABOVE)\r
45493         077520  332010  077322  01560           SKIPE TAB+123(FILN)     ;MAKE SURE HOLE AVAILABLE\r
45494         077521  254000  077466  01570           JRST ERR        ;NO FREE SLOTS\r
45495 \r
45496         077522  201410  000001  01590   BEG69:  MOVEI FILN,1(FILN)      ;FILN IS FILE #+1; CLR LH\r
45497         077523  321500  077455  01600           JUMPL WRITE,LOADS       ;ALL LOAD INSTRUCTIONS\r
45498                                 01610   IFE MAGT,<\r
45499         077524  336000  000012  01620           SKIPN WRITE     ;DELETE? (K COMMAND)\r
45500         077525  403040  000003  01630           SETZB B,C       ;YES, KILL FILE\r
45501         077526  202050  077321  01640           MOVEM B,TAB+122(FILN)   ;CLEAR IF DELE, ENTER IF NEW DUMP\r
45502         077527  512150  077347  01650           HLLZM C,TAB+150(FILN)   ;BOTH WORDS\r
45503                                 01660                                   ;FALL INTO DUMP ROUTINE\r
45504                                 01670                                   ;WHICH IS A NO-OP FOR K\r
45505 \r
45506 \r\fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 5\r
45507         TD10 VERSION\r
45508 \r
45509 \r
45510                                 01710   ;DUMP WRITES OUT CORE ONTO TAPE\r
45511 \r
45512                                 01730   ;DUMP THRU DUMP2-1 SETS UP POINTERS TO NON-ZERO CORE AREAS. THESE\r
45513                                 01740   ;AOBJN POINTERS ARE CALLED  "HEADERS", AND PRECEDE THE DATA WHEN\r
45514                                 01750   ;THE TAPE IS WRITTEN.\r
45515                                 01760   ;THE FIRST HEADER IS KEPT IN SPNT. SUCCESIVE HEADERS GO INTO THE FIRST\r
45516                                 01770   ;ZERO WORD FOLLOWING THE BLOCK CORRESPONDING TO THE PREVIOUS HEADER.\r
45517                                 01780   ;AFTER THE LAST NON-ZERO BLOCK IS (BY DEFINITION) A ZERO, WHICH\r
45518                                 01790   ;TERMINATES THE HEADER LIST. THIS WORD MAY BE LOCATION FOOF (37176) IF\r
45519                                 01800   ;CORE WAS FILLED UP TO THE BASE OF TENDMP.\r
45520 \r
45521         077530                  01820   DUMP:                   ;HERE ON D,K. (BLKN)=0, FILN SET UP\r
45522         077530  210100  077755  01830           MOVN A,[XWD HIGH-LOW-1,-LOW+1]  ;COUNTER TO EXAMINE \r
45523                                 01840                                           ;CORE FOR BLOCKS OF 0\r
45524         077531  201340  077751  01850           MOVEI CKS,SPNT-1        ;FIRST HEADER GOES INTO SPNT\r
45525         077532  336002  000001  01860   DMP1:   SKIPN 1(A)      ;FIND SOME NON-ZERO CORE\r
45526         077533  253100  077532  01870           AOBJN A,.-1     ;ZERO. KEEP LOOKING.\r
45527         077534  202100  000004  01880           MOVEM A,D       ;SAVE ADR\r
45528         077535  336002  000001  01890           SKIPN 1(A)      ;FIND SOME ZERO CORE\r
45529         077536  332002  000002  01900           SKIPE 2(A)      ;DON'T MAKE NEW BLOCK FOR 1 ZERO\r
45530         077537  253100  077535  01910           AOBJN A,.-2     ;NON-ZERO. KEEP LOOKING\r
45531         077540  274200  000002  01920           SUB D,A         ;GET -COUNT IN BOTH HALVES OF D\r
45532         077541  275744  777777  01930           SUBI CT,-1(D)   ;COUNT N WORDS DATA, 1 HDR\r
45533         077542  271202  000000  01940           ADDI D,(A)      ;GET F.A.-1 IN RH OF D\r
45534         077543  202207  000001  01950           MOVEM D,1(CKS)  ;SAVE HEADER\r
45535         077544  325200  077546  01960           JUMPGE D,.+2    ;ON DATA GROUPS,\r
45536         077545  200340  000002  01970           MOVE CKS,A      ;GET THE HEADER\r
45537                                 01980                           ;F.A.+W.C. IS ADR OF NEXT HEADER\r
45538                                 01990                           ;I.E., FIRST 0 AFTER NON-ZERO BLOCK\r
45539         077546  321100  077532  02000           JUMPL A,DMP1    ;LOOP IF MORE CORE\r
45540         077547  242340  000002  02010           LSH CKS,2       ;SHIFT CORE SIZ FOR DIR\r
45541         077550  333000  000012  02020           SKIPLE WRITE    ;IF DUMPING, SET JOBREL\r
45542         077551  542350  077347  02030           HRRM CKS,TAB+150(FILN)  ;PUT IN DIR\r
45543         077552  201200  077751  02040   DMP2:   MOVEI D,SPNT-1  ;SET UP TO FOLLOW THE HEADERS.\r
45544         077553  201757  000001  02050           MOVEI CT,1(CT)  ;CLR LH, COUNT JBLK\r
45545         077554  200204  000001  02060   DMP3:   MOVE D,1(D)     ;GET HEADER\r
45546         077555  325200  077566  02070           JUMPGE D,THRU   ;IF NULL HEADER FOUND\r
45547         077556  201640  077554  02080           MOVEI Q,DMP3    ;Q:= DMP3 AS A RETURN AFTER AOBJN\r
45548                                 02090           >\r
45549 \r
45550                                 02110   IFN MAGT,<\r
45551                                 02120           JRST    ERR             ;HOW DID WE GET HERE?  DLS***\r
45552                                 02130   ;DUMP WRITES OUT CORE ONTO MAGNETIC TAPE\r
45553                                 02140   ;DUMP WRITES OUT A CORE IMAGE ON MAGNETIC TAPE WITHOUT\r
45554                                 02150   ;ZERO COMPRESSION. THE RECORDS ARE 200(OCTAL) WORDS IN LENGTH\r
45555                                 02160   ;AND BEGIN WITH WORD ZERO. BEFORE STARTING THE TAPE IS REWOUND.\r
45556                                 02170   ;IT ASSUMES MTA0, AT LEAST FOR NOW.\r
45557                                 02180    \r
45558                                 02190           MTC=    340\r
45559                                 02200           MTS=    344\r
45560                                 02210   DUMP:   CONO    MTC,1000        ;REWIND\r
45561                                 02220           CONSO   MTS,300000      ;WAIT FOR BOT OR REWINDING\r
45562 \r\fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 5-1\r
45563         TD10 VERSION\r
45564 \r
45565                                 02230           JRST    .-1\r
45566                                 02240           CONSO   MTS,40          ;TRANSPORT READY?\r
45567                                 02250           JRST    .-1\r
45568                                 02260           SETZ    A,\r
45569                                 02270   DUMP1:  HRLI    A,-200          ;WORDS PER BLOCK\r
45570                                 02280           CONO    MTC,64100       ;START WRITE OPERATION\r
45571                                 02290   DUMP2:  CONSO   MTS,1           ;TD10 READY FOR DATA?\r
45572                                 02300           JRST    .-1\r
45573                                 02310           DATAO   MTC,(A)         ;SEND OUT DATA\r
45574                                 02320           AOBJN   A,DUMP2         ;POINT TO NEXT WORD AND LOOP\r
45575                                 02330           CONO    MTS,1           ;STOP THE DRIVE\r
45576                                 02340           CONSO   MTS,100         ;WAIT TILL STOPPED\r
45577                                 02350           JRST    .-1\r
45578                                 02360           CONSZ   MTS,464610      ;ANY ERRORS?\r
45579                                 02370           JRST    ERR             ;YES, GO RING BELL\r
45580                                 02380           AOSE    [-CORE*20000/200+2]     ;ALL CORE DUMPED?\r
45581                                 02390           JRST    DUMP1           ;NO\r
45582                                 02400           CONO    MTC,65100       ;WRITE END OF FILE\r
45583                                 02410           CONSO   MTS,100         ;DONE?\r
45584                                 02420           JRST    .-1\r
45585                                 02430           CONO    MTC,65100\r
45586                                 02440           CONSO   MTS,100\r
45587                                 02450           JRST    .-1\r
45588                                 02460           JRST    BEGR            ;ALL DONE\r
45589                                 02470           >\r
45590 \r
45591 \r
45592         077557  265300  077572  02500   LODUMP: JSP P,UWAIT\r
45593         077560  255000  000004  02510           JFCL D          ;IN/OUTPUT HEADER\r
45594         077561  325200  077451  02520           JUMPGE D,JBLK   ;IF JRST BLOCK READ. CANT HAPPEN ON WRITE\r
45595         077562  265300  077572  02530   DMP5:   JSP P,UWAIT\r
45596         077563  255004  000001  02540           JFCL 1(D)       ;IN/OUTPUT DATA WORD\r
45597         077564  253200  077562  02550           AOBJN D,DMP5    ;COUNT DOWN THE HEADER\r
45598         077565  254015  000000  02560           JRST (Q)        ;END OF HEADER. TO DMP3 OR LOAD+1\r
45599                                 02570   ;WRITE:  1=D  0=K  -1=ELSE\r
45600 \r
45601         077566  265300  077572  02590   THRU:   JSP P,UWAIT     ;WRITE OUT JRST BLOCK\r
45602         077567  255000  077454  02600           JFCL SADR       ;FROM LOC SADR\r
45603         077570  341240  077627  02610   IFE MODE,<      AOJL E,UWAIT1   ;FILL OUT BLOCK, TO GET CKSM OUT>\r
45604         077571  624500  777777  02620           TRZA WRITE,-1   ;THEN SET WRITE TO 0, AND GO CLOBBER\r
45605                                 02630                           ;ANY FURTHER BLOCKS WITH THIS FILN\r
45606         077572  341240  077627  02640   UWAIT:  AOJL E,UWAIT1   ;RETURN ADDR = (P)      DATA ADDR = @(P)\r
45607                                 02650                           ;E IS -WD COUNT IN BLOCK OR POSITIVE\r
45608                                 02660                           ;BYTE POINTER FIRST TIME THRU\r
45609         077573  554440  077377  02670           HLRZ BLKNO,LINK         ;SET TO FOLLOW LINK\r
45610         077574  325500  077576  02680   MNLUP0: JUMPGE WRITE,MNLUP      ;WRITING OR DELETING\r
45611         077575  326440  077620  02690           JUMPN BLKNO,RBLK\r
45612         077576  354000  000011  02700   MNLUP:  AOSA BLKNO      ;NEXT BLOCK IN THE DIRECTORY\r
45613         077577  137040  000013  02710   MNLUP1: DPB B,PNTR      ;FOR DELETE, 0 FILE NAME AND NUMBER\r
45614         077600  134100  000013  02720           ILDB A,PNTR     ;SEARCH FILE DIR\r
45615         077601  306100  000037  02730           CAIN A,37\r
45616         077602  254000  077464  02740           JRST DELE       ;END OF TAB MARKER, DELE GOES TO\r
45617                                 02750                           ;CLSTP ON A "D" TO DUMP DIRECTORY\r
45618 \r\fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 5-2\r
45619         TD10 VERSION\r
45620 \r
45621         077603  661112  777777  02760           TLO A,-1(WRITE) ;0 ON D, -1 ON K OR K PHASE OF D\r
45622         077604  302402  000000  02770           CAIE FILN,(A)   ;IS THIS BLOCK ASSIGNED TO CURRENT FILE?\r
45623         077605  326100  077576  02780           JUMPN A,MNLUP   ;OR MAYBE FREE? JUMP IF IN USE BY\r
45624                                 02790                           ;ANOTHER FILE.\r
45625         077606  137400  000013  02800           DPB FILN,PNTR   ;SMASH AWAY WRITE BLOCK ON D OR K. BUT\r
45626                                 02810                           ;SEE MNLUP1 ON K.\r
45627         077607  322500  077577  02820           JUMPE WRITE,MNLUP1      ;K COMMAND\r
45628         077610  336140  077377  02830           SKIPN C,LINK            ;HAS LINK BEEN SET UP?\r
45629         077611  137440  077756  02840           DPB BLKNO,[XWD 101200,LINK]     ;NO. PUT BLOCK IN AS FIRST BLK NO\r
45630         077612  506440  077377  02850           HRLM BLKNO,LINK ;PUT BLOCK IN AS LINK\r
45631         077613  322140  077574  02860           JUMPE C,MNLUP0          ;JUMP IF THIS IS THE FIRST PASS THRU DIRECTORY\r
45632         077614  554440  000003  02870           HLRZ BLKNO,C            ;GET LINKED BLOCK CHOSEN BEFORE\r
45633         077615  201140  000177  02880           MOVEI C,177             ;PUT IN A WORD COUNT FOR PIP\r
45634         077616  436140  077377  02890           IORM C,LINK             ;AND PUT ALL THAT INTO LINK WORD\r
45635         077617  275740  000177  02900           SUBI CT,177             ;DECREMENT WORDS LEFT TO GO\r
45636 \r
45637 \r\fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 6\r
45638         TD10 VERSION\r
45639 \r
45640 \r
45641                                 02940   ;RBLK SEARCHES FOR THE BLOCK IN BLKNO, ENTERS IT GOING FORWARD,\r
45642                                 02950   ;AND THEN READS INTO CORE, DUMPS CORE, OR COMPARES CORE AS\r
45643                                 02960   ;DETERMINED BY CONTENTS OF WRITE.\r
45644 \r
45645         077620  560140  077744  02980   RBLK:   HRRO C,TAPENO   ;CURRENT TAPE NO.\r
45646                                 02990                           ;SET LH TO  PREPARE FOR JUMPN IN DELE\r
45647                                 03000   IFE MODE,<\r
45648         077621  660040  777777  03010           TRO B,-1        ;ENSURE GOING FORWARD WHEN FIRST SEARCH\r
45649         077622  732340  300000  03020           CONSO DTC,300000        ;IS A DIRECTION ASSERTED?\r
45650         077623  660140  210000  03030           TRO C,210000    ;NO. GO FORWARD\r
45651         077624  606040  400001  03040   RB1:    TRNN B,400001   ;DECIDE WHETHER TO TURN AROUND\r
45652         077625  660140  300000  03050           TRO C,300000    ;TURN AROUND\r
45653         077626  732203  020200  03060   RBG:    CONO DTC,20200(C)       ;ISSUE THE COMMAND TO TD10.\r
45654                                 03070                                   ;200=SEARCH, 300=READ, 700=WRITE.\r
45655         077627  732700  672700  03080   UWAIT1: CONSZ DTS,672700        ;ANY ERRORS?\r
45656         077630  254000  077466  03090           JRST ERR        ;YES. GO DING AND THEN TYI\r
45657         077631  732740  000001  03100           CONSO DTS,1     ;DATA READY?\r
45658         077632  254000  077627  03110           JRST .-3        ;NO. GO WAIT SOME MORE\r
45659         077633  321252  077660  03120           JUMPL E,INOUT(WRITE)    ;IF IN MIDST OF A DT BLOCK, DISPATCH\r
45660         077634  732040  000001  03130           DATAI DTC,B     ;NO. SEARCHING. GET BLOCK NO.\r
45661         077635  620140  310000  03140           TRZ C,310000    ;CLOBBER DIRECTION BITS IN CONO\r
45662         077636  275051  000000  03150           SUBI B,(BLKNO)  ;COMPARE WITH DESIRED BLOCK\r
45663         077637  732300  100000  03160           CONSZ DTC,100000        ;COMPLEMENT DECISION IF GOING REVERSE\r
45664         077640  640040  777776  03170           TRC B,-2        ;BIT 35 IS FOR  TURNAROUND SPACE.\r
45665                                 03180   >\r
45666 \r\fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 7\r
45667         TD10 VERSION\r
45668 \r
45669 \r
45670                                 03210   IFN MODE,<\r
45671                                 03220           SETOB A,B       ;GO FORWARD, SET DC FOR SEARCH\r
45672                                 03230           CONSZ UTS,40    ;IS CHECKSUM BEING WRITTEN?\r
45673                                 03240           JRST .-1        ;WAIT\r
45674                                 03250   RB1:    TRNN B,400001   ;DECIDE WHETHER TO TURN AROUND\r
45675                                 03260           TRCA C,10000    ;CHANGE DIRECTION AND DELAY\r
45676                                 03270           CONSO UTC,200000        ;UNIT SELECTED?\r
45677                                 03280           TRO C,2000      ;INVOKE STARTUP DELAY\r
45678                                 03290   RBG:    CONO UTC,220200(C)      ;COMMAND TO THE  551.\r
45679                                 03300                                   ;200=SEARCH, 300=READ, 700=WRITE.\r
45680                                 03310           CONO DC,4011(A) ;COMMAND TO THE 136.\r
45681                                 03320   UWAIT1: CONSZ UTS,6     ;ANY ERRORS?\r
45682                                 03330           JRST ERR        ;YES. GO DING AND THEN TYI\r
45683                                 03340           CONSO DC,1000   ;DATA READY?\r
45684                                 03350           JRST .-3        ;NO. WAIT SOME MORE\r
45685                                 03360           JUMPL E,INOUT(WRITE)    ;IF IN MIDST OF A DT BLOCK, DISPATCH\r
45686                                 03370           DATAI DC,B      ;NO. SEARCHING. GET BLOCK NUMBER\r
45687                                 03380           TRZ C,2000      ;DONT DELAY ANY MORE\r
45688                                 03390           SUBI B,(BLKNO)  ;COMPARE WITH DESIRED BLOCK\r
45689                                 03400           TRNE C,10000    ;COMPLEMENT IF GOING REVERSE\r
45690                                 03410           TRC B,-2        ;BIT 35 IS FOR TURNAROUND SPACE.\r
45691                                 03420   >\r
45692         077641  326040  077624  03430           JUMPN B,RB1     ;JUMP IF NOT GOING FORWARD INTO (BLKNO)\r
45693         077642  211240  000200  03440           MOVNI E,200     ;WORDS PER BLOCK\r
45694         077643  202300  000000  03450           MOVEM P,F       ;SAVE RETURN IN AC0\r
45695         077644  660140  000100  03460           TRO C,100       ;READ COMMAND, MAYBE\r
45696         077645  323500  077652  03470           JUMPLE WRITE,RB2        ;JUMP IF READ\r
45697         077646  660140  000400  03480           TRO C,400       ;CHANGE TO WRITE COMMAND\r
45698                                 03490   IFN MODE,<MOVNI A,401   ;SET 136 TO OUTPUT>\r
45699         077647  327740  077652  03500           JUMPG CT,.+3\r
45700         077650  553000  077377  03510           HRRZS LINK      ;IF LAST BLK, KILL LINK\r
45701         077651  137240  000013  03520           DPB E,PNTR              ;AND THE DIR BYTE ? 0\r
45702         077652  302440  000144  03530   RB2:    CAIE BLKNO,^D100        ;IF NOT DIRECTORY BLOCK\r
45703         077653  201300  077655  03540           MOVEI P,.+2     ;SETUP NEW RETURN\r
45704         077654  254000  077626  03550           JRST RBG\r
45705         077655  340240  077377  03560           AOJ E,LINK      ;IN/OUTPUT LINK\r
45706         077656  267300  077627  03570           JRA P,UWAIT1    ;RESTORE CALLER ADR\r
45707                                 03580                           ;AND PROCESS DATA WORDS\r
45708 \r\fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 8\r
45709         TD10 VERSION\r
45710 \r
45711 \r
45712                                 03610   IFE MODE,<\r
45713         077657  732066  000000  03620           DATAI DTC,@(P)  ;READ COMMANDS. GET WORD TO CORE\r
45714         077660  254000  077662  03630   INOUT:  JRST UWAIT2     ;INOUT-1 TO INOUT +1 ARE DISPATCHED TO.\r
45715         077661  732166  000000  03640           DATAO DTC,@(P)  ;OUTPUT TO TAPE\r
45716         077662  346240  077666  03650   UWAIT2: AOJN E,UWAIT3   ;WAS THAT THE LAST WORD IN THE DT BLOCK?\r
45717         077663  732600  000001  03660           CONO DTS,1      ;YES. GIVE FUNCTION STOP TO TD10\r
45718         077664  732740  100000  03670           CONSO DTS,100000        ;AND WAIT FOR CHECKSUM TO BE DONE\r
45719         077665  254000  077664  03680           JRST .-1        ;NOT YET. WAIT\r
45720         077666  364246  000000  03690   UWAIT3: SOJA E,0(P)     ;DONE. COMPENSATE FOR THE AOJN ABOVE, AND\r
45721                                 03700                           ;RETURN TO CALLER OF UWAIT OR RBLK\r
45722                                 03710   >\r
45723 \r
45724                                 03730   IFN MODE,<\r
45725                                 03740           DATAI DC,@(P)   ;READ COMMANDS. GET WORD TO CORE\r
45726                                 03750   INOUT:  JRST UWAIT2     ;INOUT-1 THRU INOUT+1 ARE DISPATCHED TO.\r
45727                                 03760           DATAO DC,@(P)   ;OUTPUT TO TAPE\r
45728                                 03770   UWAIT2: JRST 0(P)       ;RETURN TO CALLER OF UWAIT OR RBLK.\r
45729                                 03780   >\r
45730 \r\fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 9\r
45731         TD10 VERSION\r
45732 \r
45733 \r
45734         077667  201100  000044  03810   ALTMD:  MOVEI A,"$"\r
45735         077670  265300  077471  03820           JSP P,TYO       ;ALTMODE IS PRINTED AS "$"\r
45736 \r
45737                                 03840   IFE MAGT,<\r
45738         077671  302600  000053  03850           CAIE CH,"K"-40  ;FOR K, WRITE := 0\r
45739         077672  306600  000044  03860           CAIN CH,"D"-40  ;FOR D, WRITE :=1\r
45740         077673  343500  077672  03870           AOJLE WRITE,.-1 ;COUNT (WRITE)\r
45741                                 03880           >\r
45742 \r
45743                                 03900   IFN MAGT,<\r
45744                                 03910           CAIN CH,"D"-40  ;FOR D, WRITE :=1\r
45745                                 03920           AOJLE WRITE,.-1 ;COUNT (WRITE)\r
45746                                 03930           JUMPG WRITE,DUMP        ;D MEANS GO DUMP ON MAG TAPE\r
45747                                 03940           >\r
45748 \r
45749         077674  306600  000047  03960           CAIN CH,"G"-40  ;GO TO PROGRAM?\r
45750         077675  254020  077454  03970           JRST @SADR      ;YES. JUMP OUT\r
45751         077676  306600  000046  03980           CAIN CH,"F"-40  ;FILE DIR PRINT?\r
45752         077677  254000  077732  03990           JRST FDIR       ;YES. PRINT FILE DIR OF THIS TAPE\r
45753         077700  306600  000072  04000           CAIN CH,"Z"-40  ;ZERO DIRECTORY?\r
45754         077701  254000  077721  04010           JRST ZDIR       ;DISPATCH\r
45755         077702  303600  000027  04020           CAILE CH,27     ;SKIP IF OCTAL NUMBER\r
45756         077703  254000  077414  04030           JRST TYI        ;NO. GO PROCESS FILE NAME\r
45757         077704  242040  000003  04040           LSH B,3 ;CONVERT SIXBIT TO OCTAL\r
45758         077705  246000  000003  04050           LSHC F,3        ;F+1=B\r
45759         077706  326040  077704  04060           JUMPN B,.-2     ;MAY BE MORE THAN 1 DIGIT (START ADR)\r
45760         077707  303000  000007  04070           CAILE F,7       ;SKIP IF ONE DIGIT\r
45761         077710  267200  077451  04080           JRA D,JBLK      ;D:=SADR. DISPATCH TO JBLK WHICH SAVES SADR.\r
45762         077711                  04090   OPNTP:                  ;SHIFT UNIT NUMBER LEFT FOR CONO\r
45763         077711  242000  000011  04100   IFE MODE,<LSH F,11>\r
45764                                 04110   IFN MODE,<LSH F,3>\r
45765         077712  542000  077744  04120           HRRM F,TAPENO   ;SAVE IN CORE\r
45766         077713  201440  000144  04130   CLSTP:  MOVEI BLKNO,^D100       ;BLK NO OF FILE DIR\r
45767         077714  401540  000000  04140           SETZI PNTR,0    ;DONT CLOBBER DIRECTORY BYTE\r
45768         077715  265300  077620  04150           JSP P,RBLK      ;MOVE TO BLOCK 100\r
45769         077716  255005  077377  04160           JFCL TAB+200(E) ;READ OR WRITE DIR TAB AS DETERMINED BY WRITE\r
45770         077717  341240  077627  04170           AOJL E,UWAIT1   ;COUNT THE 200 WORDS\r
45771         077720  254000  077402  04180           JRST BEG        ;GO ASK FOR NEXT COMMAND\r
45772 \r
45773         077721  200100  077757  04200   ZDIR:   MOVE A,[XWD FOOF,TAB]   ;FOOF IS CLEAR\r
45774         077722  251100  077375  04210           BLT A,TAB+176   ;CLEAR DIRECTORY, EXCEPT LAST WORD FOR ID\r
45775         077723  205100  757000  04220           MOVSI A,(36B4+36B9)     ;RESERVE BLOCKS 1 & 2\r
45776         077724  202100  077177  04230           MOVEM A,TAB     ;IN DIRECTORY\r
45777         077725  205100  017000  04240           MOVSI A,(36B9)\r
45778         077726  202100  077215  04250           MOVEM A,TAB+16  ;BLK 100 (DIR) IS RESERVED TOO\r
45779         077727  525100  000007  04260           HRLOI A,7       ;AND BLOCKS >1100 ARE EOT\r
45780         077730  202100  077321  04270           MOVEM A,TAB+122 ;END OF BYTE TAB\r
45781         077731  344500  077465  04280           AOJA WRITE,CLS1 ;SET WRITE TO OUTPUT\r
45782                                 04290                                   ;AND DUMP BLK 100.\r
45783 \r\fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 10\r
45784         TD10 VERSION\r
45785 \r
45786         077732  211400  000026  04310   FDIR:   MOVNI FILN,26   ;26 FILES (OCTAL)\r
45787         077733  265300  077467  04320   FD2:    JSP P,CRR       ;CR-LF\r
45788         077734  336150  077350  04330   FD3:    SKIPN C,TAB+123+26(FILN)        ;FIRST WORD OF NAME. IS IT BLANK?\r
45789         077735  344140  077741  04340           AOJA C,FD1      ;YES. SET C=1 AND LOOP\r
45790         077736  265700  077743  04350           JSP G,SIXBP     ;PRINT FIRST WORD AND A SPACE\r
45791         077737  510150  077376  04360           HLLZ C,TAB+151+26(FILN) ;SECOND WORD OF FILE NAME\r
45792         077740  265700  077743  04370           JSP G,SIXBP     ;PRINT AND CLEAR C\r
45793         077741  341403  077733  04380   FD1:    AOJL FILN,FD2(C)        ;CAN JUMP TO FD2 OR FD3. COUNT FILES.\r
45794         077742  254000  077402  04390           JRST BEG        ;ALL FILES PRINTED OR BLANK. RETURN.\r
45795 \r
45796         077743  201040  000007  04410   SIXBP:  MOVEI B,7       ;SIXBP PRINTS C(C) IN 6BIT\r
45797                                 04420                           ;AND ADDS A TRAILING SPACE\r
45798                                 04430                           ;AND LEAVES (C)=0\r
45799 \r
45800         077744                  04450   TAPENO:                 ;USE ADR AS TEMP FOR CURRENT UNIT\r
45801         077744  401100  000000  04460   SIXBP1: SETZI A,.-.     ;CLEAR A\r
45802         077745  246100  000006  04470           LSHC A,6\r
45803         077746  271100  000040  04480           ADDI A,40       ;SIXBIT TO ASCII\r
45804         077747  265300  077471  04490           JSP P,TYO       ;TYPE OUT CHARACTER\r
45805         077750  367040  077744  04500           SOJG B,SIXBP1   ;LOOP IF MORE CHARACTERS\r
45806         077751  254016  000000  04510           JRST 0(G)       ;RETURN\r
45807 \r
45808         077752  000000  000000  04530   SPNT:   0               ;POINTER TO HEADERS IN CORE.\r
45809 \r
45810         077753                  04550           LIT\r
45811         077753  000500  077176\r
45812         077754  000040  000041\r
45813         077755  077154  777761\r
45814         077756  101200  077377\r
45815         077757  077176  077177\r
45816 \r
45817 \r
45818                                 04580   IFN MAGT,<\r
45819                                 04590   SLOP:   MOVE    .+3\r
45820                                 04600           MOVEM   COMPTR\r
45821                                 04610           JRST    BEGR+1\r
45822                                 04620           XWD     440700,.+1\r
45823                                 04630           BYTE    (7) "0",33,177\r
45824                                 04640   LAST:   JRST    SLOP\r
45825                                 04650           >\r
45826                                 04660   IFE MAGT,<\r
45827                         000000  04670           SLOP=COMPTR-17-.        ;THIS MANY WORDS BEFORE RESERVED AREA\r
45828                                 04680                                   ;FOR COMMAND STRINGS.\r
45829                                 04690   ;!!!!!  NOTE: ABOVE PARAMETER MUST COME OUT POSITIVE IN\r
45830                                 04700   ;       ORDER TO MEET THE DOCUMENTATION OF RESERVED COMMAND STRING AREA.\r
45831                                 04710   ;\r
45832                                 04720   ;       THIS MEANS ANY CODE ADDED MUST BE COMPENSATED FOR BY\r
45833                                 04730   ;       A CORRESPONDING TIGHTENING SOMEWHERE. GOOD LUCK.\r
45834                                 04740   ;       TENDMP IS VERY TIGHT ALREADY.\r
45835                                 04750           >\r
45836 \r
45837                         077400  04770           END BEGR\r
45838 \r
45839 \r\fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 10-1\r
45840         TD10 VERSION\r
45841 \r
45842 NO ERRORS DETECTED\r
45843 \r
45844 PROGRAM BREAK IS 000000\r
45845 ABSLUTE BREAK IS 077760\r
45846 \r
45847 8K CORE USED\r
45848 \r\fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 11\r
45849         SYMBOL TABLE\r
45850 \r
45851                 000133  \r
45852 A               000002  \r
45853 ALTMD           077667  \r
45854 ALTTST          077501  \r
45855 B               000001  \r
45856 BEG             077402  \r
45857 BEG1            077404  \r
45858 BEG69           077522  \r
45859 BEGR            077400  \r
45860 BELL            077423  \r
45861 BLKNO           000011  \r
45862 C               000003  \r
45863 CARRET          077504  \r
45864 CH              000014  \r
45865 CKS             000007  \r
45866 CLS1            077465  \r
45867 CLSTP           077713  \r
45868 COMPTR          077777  \r
45869 CORE            000004  \r
45870 CRCH            077413  \r
45871 CRR             077467  \r
45872 CT              000017  \r
45873 D               000004  \r
45874 DC              000200  \r
45875 DELE            077464  \r
45876 DMP1            077532  \r
45877 DMP2            077552  \r
45878 DMP3            077554  \r
45879 DMP5            077562  \r
45880 DTC             000320  \r
45881 DTS             000324  \r
45882 DUMP            077530  \r
45883 E               000005  \r
45884 ERR             077466  \r
45885 F               000000  \r
45886 FD1             077741  \r
45887 FD2             077733  \r
45888 FD3             077734  \r
45889 FDIR            077732  \r
45890 FILN            000010  \r
45891 FOOF            077176  \r
45892 FREE            077517  \r
45893 G               000016  \r
45894 HIGH            077175  \r
45895 INOUT           077660  \r
45896 JBLK            077451  \r
45897 LINK            077377  \r
45898 LOAD            077462  \r
45899 LOADS           077455  \r
45900 LODUMP          077557  \r
45901 LOW             000020  \r
45902 LOZAD           077175  \r
45903 LUP             077505  \r
45904 \r\fTENDMP - DTAPE/MTAPE UTILITY - R CLEMENTS/GBH/RH/RD/RCC/JEF 6 APR 71 - V032                 PAGE 11-1\r
45905         SYMBOL TABLE\r
45906 \r
45907 MAGT            000000  \r
45908 MNLUP           077576  \r
45909 MNLUP0          077574  \r
45910 MNLUP1          077577  \r
45911 MODE            000000  \r
45912 NEXT            077422  \r
45913 NEXT1           077446  \r
45914 OPNTP           077711  \r
45915 P               000006  \r
45916 PNTR            000013  \r
45917 Q               000015  \r
45918 RB1             077624  \r
45919 RB2             077652  \r
45920 RBG             077626  \r
45921 RBLK            077620  \r
45922 RCH             077433  \r
45923 REL             000000  \r
45924 SADR            077454  \r
45925 SIXBP           077743  \r
45926 SIXBP1          077744  \r
45927 SLOP            000000  \r
45928 SPACE           077417  \r
45929 SPNT            077752  \r
45930 TAB             077177  \r
45931 TAPENO          077744  \r
45932 THRU            077566  \r
45933 TTY             000120  SPD\r
45934 TYI             077414  \r
45935 TYO             077471  \r
45936 UTC             000210  \r
45937 UTS             000214  \r
45938 UWAIT           077572  \r
45939 UWAIT1          077627  \r
45940 UWAIT2          077662  \r
45941 UWAIT3          077666  \r
45942 WRITE           000012  \r
45943 ZDIR            077721  \r
45944 \fRRRRRRRRRRRR            IIIIIIIII         MMM         MMM            111               000000000         BBBBBBBBBBBB   \r
45945 RRRRRRRRRRRR            IIIIIIIII         MMM         MMM            111               000000000         BBBBBBBBBBBB   \r
45946 RRRRRRRRRRRR            IIIIIIIII         MMM         MMM            111               000000000         BBBBBBBBBBBB   \r
45947 RRR         RRR            III            MMMMMM   MMMMMM         111111            000         000      BBB         BBB\r
45948 RRR         RRR            III            MMMMMM   MMMMMM         111111            000         000      BBB         BBB\r
45949 RRR         RRR            III            MMMMMM   MMMMMM         111111            000         000      BBB         BBB\r
45950 RRR         RRR            III            MMM   MMM   MMM            111            000      000000      BBB         BBB\r
45951 RRR         RRR            III            MMM   MMM   MMM            111            000      000000      BBB         BBB\r
45952 RRR         RRR            III            MMM   MMM   MMM            111            000      000000      BBB         BBB\r
45953 RRRRRRRRRRRR               III            MMM         MMM            111            000   000   000      BBBBBBBBBBBB   \r
45954 RRRRRRRRRRRR               III            MMM         MMM            111            000   000   000      BBBBBBBBBBBB   \r
45955 RRRRRRRRRRRR               III            MMM         MMM            111            000   000   000      BBBBBBBBBBBB   \r
45956 RRR   RRR                  III            MMM         MMM            111            000000      000      BBB         BBB\r
45957 RRR   RRR                  III            MMM         MMM            111            000000      000      BBB         BBB\r
45958 RRR   RRR                  III            MMM         MMM            111            000000      000      BBB         BBB\r
45959 RRR      RRR               III            MMM         MMM            111            000         000      BBB         BBB\r
45960 RRR      RRR               III            MMM         MMM            111            000         000      BBB         BBB\r
45961 RRR      RRR               III            MMM         MMM            111            000         000      BBB         BBB\r
45962 RRR         RRR         IIIIIIIII         MMM         MMM         111111111            000000000         BBBBBBBBBBBB   \r
45963 RRR         RRR         IIIIIIIII         MMM         MMM         111111111            000000000         BBBBBBBBBBBB   \r
45964 RRR         RRR         IIIIIIIII         MMM         MMM         111111111            000000000         BBBBBBBBBBBB   \r
45965 \r
45966 \r
45967 \r
45968 \r
45969 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
45970 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
45971 LLL                     SSSSSSSSSSSS      TTTTTTTTTTTTTTT                                                               \r
45972 LLL                  SSS                        TTT                                                                     \r
45973 LLL                  SSS                        TTT                                                                     \r
45974 LLL                  SSS                        TTT                                                                     \r
45975 LLL                  SSS                        TTT                                                                     \r
45976 LLL                  SSS                        TTT                                                                     \r
45977 LLL                  SSS                        TTT                                                                     \r
45978 LLL                     SSSSSSSSS               TTT                                                                     \r
45979 LLL                     SSSSSSSSS               TTT                                                                     \r
45980 LLL                     SSSSSSSSS               TTT                                                                     \r
45981 LLL                              SSS            TTT                                                                     \r
45982 LLL                              SSS            TTT                                                                     \r
45983 LLL                              SSS            TTT                                                                     \r
45984 LLL                              SSS            TTT                                                                     \r
45985 LLL                              SSS            TTT                                                                     \r
45986 LLL                              SSS            TTT                                                                     \r
45987 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
45988 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
45989 LLLLLLLLLLLLLLL      SSSSSSSSSSSS               TTT                                                                     \r
45990 \r
45991 \r
45992 \r
45993 \r
45994 Request created: 24-April-1978  11:23:08\r
45995 File: DSKB0 :RIM10B.LST   [8,200] Created: 20-April-1967 11:21:00 Printed: 24-April-1978 11:22:33
45996 QUEUE Switches:  /PRINT:ARROW  /FILE:ASCII  /COPIES:1 /SPACING:1 /LIMIT:1508 \r
45997 File will be deleted after printing\r
45998 \f\rRIMIO                 PAGE 2\r
45999 \r
46000 \r
46001                                 00020           TITLE   RIMIO\r
46002 \r
46003                                 00040   ;CONVERTS RIM10B PAPER TAPES TO DMP FILES AND VICE-VERSA\r
46004 \r
46005                                 00060   EXTERN JOBSA,JOBREL,JOBSYM,JOBS41\r
46006 \r
46007                         000001  00080   A=1\r
46008                         000002  00090   B=2\r
46009                         000003  00100   C=3\r
46010                         000004  00110   D=4\r
46011                         000013  00120   CHK=13\r
46012                         000014  00130   BLK=14\r
46013                         000015  00140   LNG=15\r
46014                         000016  00150   R=16\r
46015                         000017  00160   P=17\r
46016 \r
46017                         000040  00180   PDLEN==40\r
46018 \r
46019         000000'                 00200   PDLIST: BLOCK   PDLEN\r
46020 \r
46021         000040'                 00220   OFILE:  BLOCK   5                       ;OFILE+4 IS THE DEVICE.\r
46022         000045'                 00230   IFILE:  BLOCK   5                       ;IFILE+4 IS THE DEVICE\r
46023         000052'                 00240   OBUF:   BLOCK   3\r
46024         000055'                 00250   IBUF:   BLOCK   3\r
46025 \r
46026         000060'                 00270   DMPBUF: BLOCK   200                     ;RANDOM ACCESS DUMP IO BUFFER.\r
46027         000260' 000000  000000  00280   HILOC:  0\r
46028 \r\fRIMIO                 PAGE 3\r
46029 \r
46030 \r
46031                                 00300   ;ERRORS:\r
46032 \r
46033                                 00320   NOENT:  OUTSTR  [ASCIZ/Enter to create output file failed.\r
46034         000261' 000000  000551' 00330   /]\r
46035         000262' 254000  000273' 00340           JRST    BEGIN\r
46036 \r
46037                                 00360   NOLALT: OUTSTR  [ASCIZ/Lookup to read-alter the output file failed.\r
46038         000263' 000000  000561' 00370   /]\r
46039         000264' 254000  000273' 00380           JRST    BEGIN\r
46040 \r
46041                                 00400   NOALT:  OUTSTR  [ASCIZ/Enter to read-alter the output file failed.\r
46042         000265' 000000  000573' 00410   /]\r
46043         000266' 254000  000273' 00420           JRST    BEGIN\r
46044 \r
46045                                 00440   NOPTR:  OUTSTR  [ASCIZ/OPEN of device PTR: failed.\r
46046         000267' 000000  000605' 00450   /]\r
46047         000270' 254000  000273' 00460           JRST    BEGIN\r
46048 \r
46049                                 00480   NOOPEN: OUTSTR  [ASCIZ/OPEN failed\r
46050         000271' 000000  000613' 00490   /]\r
46051         000272' 254000  000273' 00500           JRST    BEGIN\r
46052 \r
46053 \r\fRIMIO                 PAGE 4\r
46054 \r
46055 \r
46056                                 00530   ;INITIALIZATION, DISPATCH\r
46057 \r
46058         000273' 000000  000000  00550   BEGIN:  RESET\r
46059         000274' 200740  000616' 00560           MOVE    P,[IOWD PDLEN,PDLIST]\r
46060         000275' 000000  000617' 00570   RORP:   OUTSTR  [ASCIZ/Read tape or Punch tape?  (Type R or P)  /]\r
46061         000276' 000000  000001  00580           INCHWL  A\r
46062         000277' 260740  000307' 00590           PUSHJ   P,CLRIN\r
46063         000300' 620040  000040  00600           TRZ     A,40                    ;MAKE SURE IT'S UPPERCASE\r
46064         000301' 306040  000122  00610           CAIN    A,"R"\r
46065         000302' 254000  000334' 00620           JRST    RTAPE\r
46066         000303' 306040  000120  00630           CAIN    A,"P"\r
46067         000304' 254000  000547' 00640           JRST    PTAPE\r
46068                                 00650           OUTSTR  [ASCIZ/?\r
46069         000305' 000000  000630' 00660   /]\r
46070         000306' 254000  000275' 00670           JRST    RORP\r
46071 \r
46072         000307' 261740  000001  00690   CLRIN:  PUSH    P,A\r
46073         000310' 302040  000175  00700   CLRIN1: CAIE    A,175\r
46074         000311' 306040  000012  00710           CAIN    A,12\r
46075         000312' 254000  000533' 00720           JRST    APOPJ\r
46076         000313' 000000  000001  00730           INCHWL  A\r
46077         000314' 254000  000310' 00740           JRST    CLRIN1\r
46078 \r
46079                                 00760   ;HERE'S HOW THE RIM10B LOADER LOOKS ON THE TAPE:\r
46080                         000104  00770   PTR==104\r
46081                                 00780   ;AC 10 CONTAINS (WHEN 5 IS EXECUTED):\r
46082                                 00790   ;       SOJA    10,4 - INITIAL POINTER OR JRST WORD\r
46083                                 00800   ;       SOJA    10,3 - MIDDLE OF DATA BLOCK\r
46084                                 00810   ;       SOJA    10,2 - WHEN READING THE CHECKSUM WORD\r
46085                                 00820   ;\r
46086         000315' 777762  000000  00830   RIM10B: -16,,0                          ; 0  INITIAL BLKI WORD\r
46087         000316' 710600  000060  00840           CONO    PTR,60                  ; 1  START PTR IN BINARY MODE\r
46088         000317' 541400  000004  00850           HRRI    10,4                    ; 2  INITIALIZE 10 (FOR INDEX AND JUMP ADDR)\r
46089         000320' 710740  000010  00860           CONSO   PTR,10                  ; 3  SKIP IF DONE\r
46090         000321' 254000  000003  00870           JRST    3                       ; 4  WAIT FOR DONE\r
46091         000322' 710470  000007  00880           DATAI   PTR,@7(10)              ; 5  STORE DATA INDIRECT (13 OR 12 OR 11)\r
46092         000323' 256010  000007  00890           XCT     7(10)                   ; 6  EXECUTES 13 OR 12 OR 11\r
46093         000324' 256010  000012  00900           XCT     12(10)                  ; 7  EXECUTES 16 OR 15 OR 14\r
46094         000325' 364400  000000  00910           SOJA    10,0                    ;10  RH IS CLOBBERED TO 4 OR 3 OR 1\r
46095         000326' 312740  000016  00920           CAME    17,16                   ;11  XCTED TO CHECK CHECKSUM\r
46096         000327' 270756  000001  00930           ADD     17,1(16)                ;12  XCTED TO COMPUTE CHECKSUM\r
46097         000330' 331740  000016  00940           SKIPL   17,16                   ;13  XCT TO INITIALIZE CHECKSUM AND\r
46098                                 00950                                           ;    SKIP IF THIS IS AN AOBJN WORD\r
46099         000331' 254200  000001  00960           JRST    4,1                     ;14  XCT TO HALT IF CHECKSUM FAILS\r
46100         000332' 253700  000003  00970           AOBJN   16,3                    ;15  XCT WHILE READING MIDDLE OF DATA BLOCK\r
46101         000333' 254000  000002  00980           JRST    2                       ;16  XCTED BY READIN MODE. XCT TO START PRGM\r
46102                                 00990                                           ;17  CHECKSUM IS STORED HERE.\r
46103 \r
46104 Q       000334'                 01010   RIMPTR: RIM10B-.,,RIM10B-1              ;IOWD POINTER TO THE RIM10B LOADER\r
46105 \r\fRIMIO                 PAGE 5\r
46106 \r
46107 \r
46108                                 01030   ;RTAPE\r
46109 \r
46110         000334' 000000  000631' 01050   RTAPE:  OUTSTR  [ASCIZ/Output file name: /]\r
46111         000335' 201700  000040' 01060           MOVEI   R,OFILE\r
46112         000336' 200040  000635' 01070           MOVE    A,[OFILE,,OFILE+1]\r
46113         000337' 402000  000040' 01080           SETZM   OFILE\r
46114         000340' 251040  000044' 01090           BLT     A,OFILE+4\r
46115         000341' 205040  445560  01100           MOVSI   A,'DMP'\r
46116         000342' 202040  000041' 01110           MOVEM   A,OFILE+1\r
46117         000343' 260740  000543' 01120           PUSHJ   P,GETFIL                        ;READ FILE NAME FROM USER.\r
46118 \r
46119         000344' 201040  000017  01140           MOVEI   A,17                            ;OPEN CHANNEL\r
46120         000345' 336100  000044' 01150           SKIPN   B,OFILE+4\r
46121         000346' 205100  446353  01160           MOVSI   B,'DSK'\r
46122         000347' 201140  000000  01170           MOVEI   C,0\r
46123         000350' 050040  000001  01180           OPEN    1,A\r
46124         000351' 254000  000271' 01190           JRST    NOOPEN\r
46125         000352' 200200  000636' 01200           MOVE    D,[OFILE,,A]\r
46126         000353' 251200  000004  01210           BLT     D,D\r
46127         000354' 077040  000001  01220           ENTER   1,A                             ;SELECT OUTPUT FILE.\r
46128         000355' 254000  000261' 01230           JRST    NOENT   \r
46129         000356' 070040  000000  01240           CLOSE   1,                              ;WRITE 0 LENGTH FILE.\r
46130         000357' 071040  000000  01250           RELEAS  1,\r
46131         000360' 201040  000017  01260           MOVEI   A,17                            ;RE-OPEN CHANNEL\r
46132         000361' 336100  000044' 01270           SKIPN   B,OFILE+4\r
46133         000362' 205100  446353  01280           MOVSI   B,'DSK'\r
46134         000363' 201140  000000  01290           MOVEI   C,0\r
46135         000364' 050040  000001  01300           OPEN    1,A\r
46136         000365' 254000  000271' 01310           JRST    NOOPEN\r
46137         000366' 200200  000636' 01320           MOVE    D,[OFILE,,A]\r
46138         000367' 251200  000004  01330           BLT     D,D\r
46139         000370' 076040  000001  01340           LOOKUP  1,A                             ;SEEK FILE WE JUST WROTE\r
46140         000371' 254000  000263' 01350           JRST    NOLALT                          ;I JUST WROTE ONE. WHERE IS IT?\r
46141         000372' 200200  000636' 01360           MOVE    D,[OFILE,,A]\r
46142         000373' 251200  000004  01370           BLT     D,D\r
46143         000374' 077040  000001  01380           ENTER   1,A                             ;ENTER READ-ALTER MODE\r
46144         000375' 254000  000265' 01390           JRST    NOALT   \r
46145 \r
46146         000376' 041000  000013  01410           INIT    0,13                            ;PTR IN BINARY MODE.\r
46147         000377' 606462  000000  01420           'PTR   '\r
46148         000400' 000000  000055' 01430           IBUF\r
46149         000401' 254000  000267' 01440           JRST    NOPTR\r
46150 \r
46151                                 01460           OUTSTR  [ASCIZ/Mount paper tape and type return when ready:\r
46152         000402' 000000  000637' 01470   /]\r
46153         000403' 201040  000000  01480           MOVEI   A,0\r
46154         000404' 260740  000307' 01490           PUSHJ   P,CLRIN\r
46155 \r
46156         000405' 200100  000334' 01510           MOVE    B,RIMPTR\r
46157         000406' 260740  000462' 01520           PUSHJ   P,TREAD                         ;READ IOWD FOR TAPE'S LOADER\r
46158         000407' 313042  000001  01530           CAMLE   A,1(B)                          ;OK IF TAPE'S LOADER IS LONGER\r
46159         000410' 254000  000454' 01540           JRST    BADRIM                          ;BUT NOT IF SHORTER.\r
46160         000411' 200140  000001  01550           MOVE    C,A                             ;IOWD FOR TAPE'S LOADER\r
46161 \r\fRIMIO                 PAGE 5-1\r
46162 \r
46163 \r
46164         000412' 270100  000651' 01560           ADD     B,[1,,1]\r
46165         000413' 260740  000462' 01570   RIMCHK: PUSHJ   P,TREAD                         ;\r
46166         000414' 312042  000001  01580           CAME    A,1(B)\r
46167         000415' 254000  000454' 01590           JRST    BADRIM                          ;TAPE ISN'T IN RIM FORMAT.\r
46168         000416' 270140  000651' 01600           ADD     C,[1,,1]\r
46169         000417' 253100  000413' 01610           AOBJN   B,RIMCHK                        ;LOOP, GOBBLING THE RIM10B LOADER.\r
46170         000420' 327140  000423' 01620           JUMPG   C,RIMOK                         ;JUMP IF TAPE'S IOWD IS COUNTED OUT\r
46171         000421' 260740  000462' 01630           PUSHJ   P,TREAD                         ;READ AND THROW OUT EXTRA WORDS\r
46172         000422' 253140  000421' 01640           AOBJN   C,.-1                           ;FROM THE TAPE'S LOADER.\r
46173         000423' 260740  000524' 01650   RIMOK:  PUSHJ   P,FILINI\r
46174         000424' 260740  000462' 01660   GETBLK: PUSHJ   P,TREAD\r
46175         000425' 331100  000001  01670           SKIPL   B,A                             ;SKIP IF THIS IS A POINTER WORD\r
46176         000426' 254000  000443' 01680           JRST    SSTART                          ;SET STARTING ADDRESS\r
46177         000427' 200540  000002  01690           MOVE    CHK,B                           ;INITIALIZE CHECKSUM\r
46178         000430' 260740  000462' 01700   RIMLP:  PUSHJ   P,TREAD\r
46179         000431' 270540  000001  01710           ADD     CHK,A\r
46180         000432' 260740  000473' 01720           PUSHJ   P,FILSTR                        ;STORE IN FILE. DATA A IN LOC 1(B)\r
46181         000433' 253100  000430' 01730           AOBJN   B,RIMLP                         ;LOOP\r
46182         000434' 260740  000462' 01740           PUSHJ   P,TREAD                         ;READ CHECKSUM WORD\r
46183         000435' 316040  000013  01750           CAMN    A,CHK\r
46184         000436' 254000  000424' 01760           JRST    GETBLK                          ;GET ANOTHER IOWD.\r
46185                                 01770           OUTSTR  [ASCIZ/Checksum failure.\r
46186         000437' 000000  000652' 01780   /]\r
46187         000440' 254200  000424' 01790           HALT    GETBLK\r
46188 \r
46189                                 01810   UNEOF:  OUTSTR  [ASCIZ/Unexpected End of File from PTR:\r
46190         000441' 000000  000656' 01820   /]\r
46191         000442' 201040  000000  01830           MOVEI   A,0                             ;STORE ZERO FOR THE STARTING ADDRE.\r
46192         000443' 200100  000260' 01840   SSTART: MOVE    B,HILOC                         ;GET HIGHEST LOC LOADED.\r
46193         000444' 505042  000001  01850           HRLI    A,1(B)                          ;ONE BEYOND IS INITIAL JOBFF\r
46194         000445' 201100  777777* 01860           MOVEI   B,JOBSA-1\r
46195         000446' 260740  000473' 01870           PUSHJ   P,FILSTR\r
46196         000447' 260740  000535' 01880           PUSHJ   P,FILFRC\r
46197         000450' 070040  000000  01890           CLOSE   1,\r
46198         000451' 071040  000000  01900           RELEAS  1,\r
46199         000452' 071000  000000  01910           RELEAS  0,\r
46200         000453' 254000  000273' 01920           JRST    BEGIN\r
46201 \r
46202                                 01940   BADRIM: OUTSTR  [ASCIZ/Bad format RIM10B loader at the front of the tape?\r
46203         000454' 000000  000665' 01950   /]\r
46204         000455' 254000  000273' 01960           JRST    BEGIN\r
46205 \r
46206                                 01980   PTRERR: OUTSTR  [ASCIZ/PTR input error\r
46207         000456' 000000  000700' 01990   /]\r
46208         000457' 062000  000001  02000           GETSTS  0,A\r
46209         000460' 254200  000461' 02010           HALT    .+1\r
46210         000461' 060000  000010  02020           SETSTS  0,10\r
46211         000462' 373000  000057' 02030   TREAD:  SOSLE   IBUF+2\r
46212         000463' 254000  000471' 02040           JRST    TRED1\r
46213         000464' 066000  000000  02050           INPUT   0,\r
46214         000465' 063000  020000  02060           STATZ   0,20000\r
46215                                 02070           JRST    [POP P,(P)\r
46216         000466' 254000  000704' 02080                   JRST UNEOF]\r
46217 \r\fRIMIO                 PAGE 5-2\r
46218 \r
46219 \r
46220         000467' 063000  740000  02090           STATZ   0,740000\r
46221         000470' 254000  000456' 02100           JRST    PTRERR\r
46222         000471' 134040  000056' 02110   TRED1:  ILDB    A,IBUF+1\r
46223         000472' 263740  000000  02120           POPJ    P,\r
46224 \r
46225         000473' 201142  000001  02140   FILSTR: MOVEI   C,1(B)                  ;C?ABSOLUTE ADDRESS.\r
46226         000474' 306140  000036  02150           CAIN    C,36                    ;EXEC MODE JOBSYM?\r
46227         000475' 201140  000000* 02160           MOVEI   C,JOBSYM\r
46228         000476' 306140  000041  02170           CAIN    C,41                    ;UUO TRAP?\r
46229         000477' 201140  000000* 02180           MOVEI   C,JOBS41                ;YES.  HERE'S WHERE IT BELONGS IN DMP FORMAT\r
46230         000500' 313140  000260' 02190           CAMLE   C,HILOC                 ;IS THIS HIGHEST LOC LOADED THUS FAR?\r
46231         000501' 202140  000260' 02200           MOVEM   C,HILOC                 ;YES.  SAVE HIGHEST LOC LOADED.\r
46232         000502' 275140  000074  02210           SUBI    C,74                    ;OFFSET TO DMP FILE ORIGIN=WORD # IN FILE.\r
46233         000503' 321140  000534' 02220           JUMPL   C,CPOPJ                 ;RETURN IF OFF THE FRONT.\r
46234         000504' 231140  000200  02230           IDIVI   C,200                   ;BLOCK NUMBER-1 IN C, WORD NUMBER IN D.\r
46235         000505' 271140  000001  02240           ADDI    C,1                     ;THIS IS THE USET POINTER\r
46236         000506' 306154  000000  02250           CAIN    C,(BLK)                 ;SAME AS WHAT'S IN CORE?\r
46237         000507' 254000  000522' 02260           JRST    FILST2                  ;YES. - THIS IS THE EASY CASE.\r
46238         000510' 260740  000535' 02270   FILST0: PUSHJ   P,FILFRC                ;FORCE CURRENT RECORD OUT.  ADVANCE TO NEXT\r
46239         000511' 307155  000000  02280           CAIG    C,(LNG)                 ;IS DESIRED RECORD WITHIN EXISTING FILE?\r
46240         000512' 254000  000515' 02290           JRST    FILST1                  ;YES.  READ IT (UNLESS THE LAST RECORD)\r
46241         000513' 201615  000000  02300           MOVEI   BLK,(LNG)               ;SET TO APPEND A ZERO RECORD TO THE FILE.\r
46242         000514' 254000  000510' 02310           JRST    FILST0\r
46243 \r
46244         000515' 201603  000000  02330   FILST1: MOVEI   BLK,(C)                 ;MAKE DESIRED RECORD THE CURRENT RECORD\r
46245         000516' 301615  000000  02340           CAIL    BLK,(LNG)               ;IS THIS THE NON-EX RECORD AT END OF FILE?\r
46246         000517' 254000  000522' 02350           JRST    FILST2                  ;YES.  WE CAN'T (AND DON'T NEED TO) READ IT.\r
46247         000520' 074054  000000  02360           USETI   1,(BLK)\r
46248                                 02370           INPUT   1,[-200,,DMPBUF-1\r
46249         000521' 066040  000706' 02380                   0]\r
46250         000522' 202044  000060' 02390   FILST2: MOVEM   A,DMPBUF(D)             ;STORE DATA\r
46251         000523' 263740  000000  02400           POPJ    P,\r
46252 \r
46253         000524' 201600  000001  02420   FILINI: MOVEI   BLK,1                           ;REC # THAT IS "IN CORE".\r
46254         000525' 201640  000001  02430           MOVEI   LNG,1                           ;RECORD NUMBER OF EOF\r
46255         000526' 402000  000260' 02440           SETZM   HILOC                           ;HIGHEST LOCATION LOADED\r
46256         000527' 402000  000060' 02450   FILCLR: SETZM   DMPBUF\r
46257         000530' 261740  000001  02460           PUSH    P,A\r
46258         000531' 200040  000710' 02470           MOVE    A,[DMPBUF,,DMPBUF+1]\r
46259         000532' 251040  000257' 02480           BLT     A,DMPBUF+177\r
46260         000533' 262740  000001  02490   APOPJ:  POP     P,A\r
46261         000534' 263740  000000  02500   CPOPJ:  POPJ    P,\r
46262 \r
46263         000535' 075054  000000  02520   FILFRC: USETO   1,(BLK)                         ;SELECT OUTPUT RECORD ALWAYS\r
46264                                 02530           OUTPUT  1,[-200,,DMPBUF-1               ;WRITE CURRENT RECORD.\r
46265         000536' 067040  000706' 02540                           0]\r
46266         000537' 271600  000001  02550           ADDI    BLK,1\r
46267         000540' 315640  000014  02560           CAMGE   LNG,BLK \r
46268         000541' 200640  000014  02570           MOVE    LNG,BLK                         ;INCREASE LNG IF INCREASING FILE.\r
46269         000542' 254000  000527' 02580           JRST    FILCLR                          ;NEXT RECORD NUMBER\r
46270 \r\fRIMIO                 PAGE 6\r
46271 \r
46272 \r
46273                                 02600   ;THINGS TO WRITE LATER:\r
46274 \r
46275         000543' 200040  000711' 02620   GETFIL: MOVE    A,['RIMOUT']\r
46276         000544' 202056  000000  02630           MOVEM   A,(R)\r
46277                                 02640           OUTSTR  [ASCIZ/RIMOUT.DMP\r
46278         000545' 000000  000712' 02650   /]\r
46279         000546' 263740  000000  02660           POPJ    P,\r
46280 \r
46281                                 02680   PTAPE:  OUTSTR  [ASCIZ/Not ready.\r
46282         000547' 000000  000715' 02690   /]\r
46283         000550' 254000  000273' 02700           jrst    begin\r
46284 \r
46285                         000273' 02720   END BEGIN\r
46286         000551' 427356  462744\r
46287         000552' 203515  720306\r
46288         000553' 713134  172312\r
46289         000554' 203376  572340\r
46290         000555' 727504  063322\r
46291         000556' 663124  063302\r
46292         000557' 647314  562134\r
46293         000560' 064240  000000\r
46294         000561' 463375  765752\r
46295         000562' 701016  467500\r
46296         000563' 713134  162132\r
46297         000564' 607316  462744\r
46298         000565' 203515  062500\r
46299         000566' 677536  470352\r
46300         000567' 721014  664730\r
46301         000570' 625014  660722\r
46302         000571' 663134  427032\r
46303         000572' 050000  000000\r
46304         000573' 427356  462744\r
46305         000574' 203515  720344\r
46306         000575' 627034  426702\r
46307         000576' 663514  571100\r
46308         000577' 723214  520336\r
46309         000600' 727516  072750\r
46310         000601' 203155  166312\r
46311         000602' 203154  164730\r
46312         000603' 627105  606424\r
46313         000604' 000000  000000\r
46314         000605' 476410  547100\r
46315         000606' 677144  062312\r
46316         000607' 733234  362500\r
46317         000610' 502512  235100\r
46318         000611' 633035  166312\r
46319         000612' 621341  505000\r
46320         000613' 476410  547100\r
46321         000614' 633035  166312\r
46322         000615' 620321  200000\r
46323         000616' 777740  777777'\r
46324         000617' 513134  162100\r
46325         000620' 723036  062500\r
46326 \r\fRIMIO                 PAGE 6-1\r
46327 \r
46328 \r
46329         000621' 677444  050352\r
46330         000622' 673075  020350\r
46331         000623' 607414  537500\r
46332         000624' 201212  474740\r
46333         000625' 625012  220336\r
46334         000626' 711012  024500\r
46335         000627' 200000  000000\r
46336         000630' 374321  200000\r
46337         000631' 477536  470352\r
46338         000632' 721014  664730\r
46339         000633' 625015  660732\r
46340         000634' 625644  000000\r
46341         000635' 000040' 000041'\r
46342         000636' 000040' 000001\r
46343         000637' 467376  567350\r
46344         000640' 203414  170312\r
46345         000641' 711016  460740\r
46346         000642' 625014  167310\r
46347         000643' 203517  170312\r
46348         000644' 203454  572352\r
46349         000645' 713344  073720\r
46350         000646' 627344  071312\r
46351         000647' 607117  135032\r
46352         000650' 050000  000000\r
46353         000651' 000001  000001\r
46354         000652' 417214  561726\r
46355         000653' 717535  520314\r
46356         000654' 607235  472744\r
46357         000655' 625341  505000\r
46358         000656' 527354  574340\r
46359         000657' 627076  462710\r
46360         000660' 202135  662100\r
46361         000661' 677144  043322\r
46362         000662' 663124  063344\r
46363         000663' 677324  050250\r
46364         000664' 511641  505000\r
46365         000665' 413034  420314\r
46366 \fSpooler runtime 0 Seconds, 0 KCS, 2734 disk reads, 85 disk writes, 1132 pages\r
46367  ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13 ***END*** Name: M310         Address: **** UNKNOWN ****  CDRSER-157 24-April-1978 11:22:34 Address: **** UNKNOWN ****    \r\13   \r\13   \r\13   \r\13\f