faae1561 |
1 | * C210-001-6601 (FRTN) 3C NO.180463000 REV. D |
2 | * |
3 | * TAPE 1 OF 5 - BEGIN |
4 | * |
5 | * |
6 | * COMPUTER. DDP-116,516 |
7 | * |
8 | * |
9 | * |
10 | * |
11 | * PROGRAM CATEGORY- COMPILER |
12 | * |
13 | * |
14 | * |
15 | * |
16 | * PROGRAM TITLE. FRTN |
17 | * EXPANDED FORTRAN IV COMPILER |
18 | * FOR DDP-116,516 |
19 | * |
20 | * |
21 | * |
22 | * |
23 | * |
24 | * |
25 | * |
26 | * APPROVAL DATE |
27 | * |
28 | * |
29 | * PROG--------------------- ------------ |
30 | * |
31 | * |
32 | * SUPR---------------------- ------------ |
33 | * |
34 | * |
35 | * QUAL---------------------- ------------ |
36 | * |
37 | * |
38 | * NO. OF PAGES ------------ |
39 | * |
40 | * REVISIONS |
41 | * |
42 | * REV. D ECO 5249 |
43 | * REV. C ECO 3824 10-31-66 |
44 | * REV. B ECO 3476 09-19-66 |
45 | * REV. A 06-08-66 |
46 | * |
47 | * AUTHOR |
48 | * |
49 | * HONEYWELL. INC. - COMPUTER CONTROL DIVISION |
50 | * |
51 | * |
52 | * PURPOSE |
53 | * |
54 | * THIS PROGRAM IS DESIGNED TO COMPILE ASA STANDARD FORTRAN IV |
55 | * PROGRAMS IN ONE PASS, GENERATING OPTIMUM OBJECT CODE FOR THE |
56 | * DDP-116 OR DDP-516. |
57 | * |
58 | * |
59 | * RESTRICTIONS |
60 | * |
61 | * MINIMUM 8K CORE STORAGE |
62 | * |
63 | * |
64 | * STORAGE |
65 | * |
66 | * 6682 (DECIMAL) |
67 | * 15034 (OCTAL) |
68 | * |
69 | * |
70 | * USE |
71 | * |
72 | * |
73 | * ******************************** |
74 | * |
75 | * *FORTRAN-IV OPERATING PROCEDURE* |
76 | * ******************************** |
77 | * |
78 | * 1. LOAD THE COMPILER SYSTEM TAPE USING STANDARD 'LOAD-MODE' |
79 | * (DDP-116), OR "PAL-MODE (DDP-516) LOADING PROCEDURES |
80 | * |
81 | * 2. SET THE (A) REGISTER FOR THE DESIRED INPUT/OUTPUT DEVICE |
82 | * SELECTION AS DESCRIBED BELOW, SET (P) TO '1000, SET THE |
83 | * SENSE SWITCHES AS DESCRIBED BELOW, AND PRESS START. |
84 | * |
85 | * 3. INPUT/OUTPUT DEVICE SELECTION (BITS SET IN (A) ON ENTRY)..... |
86 | * 1......IF SET, CERTAIN ERROR CHECKS ARE NOT MADE. THIS |
87 | * OPTION IS USED WHEN COMPILING THOSE PARTS OF THE |
88 | * LIBRARY WRITTEN IN FORTRAN LANGUAGE AND IT ALLOWS THE |
89 | * LIBRARY TO TAKE ADVANTAGE OF THE COMPILER'S LOGIC TO |
90 | * GENERATE SPECIAL CODING. |
91 | * |
92 | * 2-7....NOT ASSIGNED |
93 | * |
94 | * 8-10...INPUT DEVICE SELECTION |
95 | * 1 = ASR-33/35 KEYBOARD (OR ITS PAPER TAPE READER) |
96 | * 2 = NCR CARD READER |
97 | * 3 = DIGITRONICS PAPER TAPE READER |
98 | * 4 = MAGNETIC TAPE ( UNIT 1 ) |
99 | * 5-7 = (SPARES) |
100 | * |
101 | * 11-13..SYMBOLIC LISTING SELECTION |
102 | * 0. SUPPRESS ALL SYMBOLIC LISTINGS |
103 | * 1. ASR-33/35 TYPEWRITER |
104 | * 2. LINE PRINTER |
105 | * 3 = ( SPARE ) |
106 | * 4 = LISTING ON MAGNETIC TAPE UNIT 2 |
107 | * 5-7 = (SPARES) |
108 | * |
109 | * 14-16..BINARY OUTPUT SELECTION |
110 | * 0. SUPPRESS BINARY OUTPUT. |
111 | * 1. BRPE HIGH SPEED PAPER TAPE PUNCH |
112 | * 2. ASR BINARY OUTPUT ASR/33 |
113 | * 3. ASR BINARY OUTPUT ASR/35 |
114 | * 4 = MAGNETIC TAPE OUTPUT |
115 | * 5-7 (SPARES) |
116 | * |
117 | * |
118 | * 4. SENSE SWITCH SETTINGS AND MEANINGS....... |
119 | * 1......EXPAND THE SYMBOLIC LISTING TO INCLUDE |
120 | * SIDE-BY-SIDE OCTAL INFORMATION. |
121 | * 2......INHIBIT SYMBOLIC LISTING (AS LONG AS SSW-1 NOT SET). |
122 | * 3......PAUSE BEFORE INPUT OF THE NEXT RECORD. DURING |
123 | * THIS PAUSE, THE (A) REGISTER WILL DISPLAY THE CURRENT |
124 | * STATUS OF THE I/O KEYBOARD, IT MAY BE |
125 | * CHANGED AT THIS TIME IF DESIRED BEFORE RESETTING |
126 | * SSW-3 AND PRESSING START TO CONTINUE. |
127 | * 4......CAUSE TRACE COUPLING INFORMATION TO BE INCLUDED |
128 | * IN THE OBJECT CODING BEING GENERATED REGARDLESS OF |
129 | * ANY TRACE STATEMENTS WITHIN THE PROGRAM (OPERATOR |
130 | * OVERRIDE). |
131 | * |
132 | * 5. WHEN BINARY TAPE IS BEING GENERATED, THE COMPILER |
133 | * AUTOMATICALLY TURNS ON THE TAPE PUNCH AND PUNCHES OUT A |
134 | * LENGTH OF LEADER. AFTER THE END-OF-JOB IS TYPED, A LENGTH OF |
135 | * TRAILER IS PUNCHED BEFORE TURNING OFF THE PUNCH, AND THE LINE |
136 | * PRINTER IS ADVANCED TO THE NEXT PAPER SEAM. PRESS 'START' |
137 | * TO PROCESS THE NEXT PROGRAM (BATCH COMPILING). |
138 | * |
139 | * FOR ASR BINARY OUTPUT, NO LEADER OR TRAILER IS |
140 | * PROVIDED, AND THE BINARY PUNCH IS LEFT ON THROUGHOUT |
141 | * THE COMPILATION. |
142 | * |
143 | * |
144 | * ERRORS |
145 | * |
146 | * THE ERROR MESSAGES OUTPUT BY THIS COMPILER ARE LISTED ON A |
147 | * SEPERATE DOCUMENT FOR EASE OF DISTRIBUTION. |
148 | * ************************* |
149 | * *DATA POOL ENTRY FORMATS* |
150 | * ************************* |
151 | * |
152 | * THE DATA POOL CONSISTS OF FOUR FORMS OF INFORMATION |
153 | * 1. THE ASSIGNMENT TABLE CONSISTS OF 5 WORDS, STARTS |
154 | * AT THE END OF THE COMPILER AND EXTENDS TOWARD THE |
155 | * END OF MEMORY. |
156 | * |
157 | * TDCCCCCCCCCCCCCC....DP(A+4) |
158 | * CCCCCCCCCCCCCCCC....DP(A+3) |
159 | * CCCCCCCCCCCCCCCC....DP(A+2) |
160 | * IIAAAAAAAAAAAAAA....DP(A+1) |
161 | * NRRRMMMLLLLLLLLL....DP(A) |
162 | * |
163 | * T = TRACE TAG |
164 | * D = DATA TAG |
165 | * C = SIX 8-BIT CHAR. OR BINARY CONSTANT |
166 | * I = ITEM USAGE (IU) |
167 | * 0 = NO USAGE 2 = VAR/CONSTAN^ |
168 | * 1 = SUBPROGRAM 3 = ARRAY |
169 | * A = ASSIGNMENT ADDRESS |
170 | * N = NAME TAG (NT) |
171 | * 0 = NAME 1 = CONSTANT |
172 | * R = ADDRESS TYPE (AT) |
173 | * 0 = ABSOLUTE 3 = STRING-REL |
174 | * 1 = RELATIVE 4 = COMMON |
175 | * 2 = STRING-ABS 5 = DUMMT |
176 | * M = ITEM MODE (IM) |
177 | * 1 = INTEGER 5 = COMPLEX |
178 | * 2 = REAL 6 = DOUBLE |
179 | * 3 = LOGICAL |
180 | * 4=COM/EQU LINK |
181 | * 2. THE DO TABLE 'FLOATS' ON TOP OF THE ASSIGNMENT |
182 | * TABLE AND CONTAINS THE INFORMATION NEEDED TO CLOSE-OUT |
183 | * A DO-LOOP, EACH ENTRY IS 5 WORDS. |
184 | * 00IIIIIIIIIIIII |
185 | * 00TTTITTTTTTTTT |
186 | * 00XXXXXXXXXXXXX |
187 | * 00UUUUUUUUUUUUUU |
188 | * 00NNNNNNNNNNNNNN |
189 | * I = INITIAL VALUE/OR RPL |
190 | * T = TERMINAL VALUE |
191 | * X = INDEX |
192 | * U = INCREMENT |
193 | * N = STATEMENT NUMBER |
194 | * |
195 | * 3. THE EXPRESSION TABLE (A0I TABLE) 'FLOATS' ON TOP |
196 | * THE DO TABLE AND CONSISTS OF 2 WORD ENTRIES. |
197 | * |
198 | * NOOOOOOOOIIIIIII.....DP(I+1) |
199 | * 00AAAAAAAAAAAAAAAA...DP(I) |
200 | * N = NEGATION INDICATOR |
201 | * O = OPERATOR |
202 | * I = INDEX (OPERATOR LEVEL) |
203 | * A = ASSIGNMENT TABLE REFERENCE |
204 | * 4. THE TRIAD TABLE IS USED TO OPTIMIZE EXPRESSIONS AND |
205 | * IS AT THE END OF MEMORY EXTENDING DOWN TOWARDS THE |
206 | * COMPILER. EACH ENTRY IS THREE WORDS LONG. |
207 | * |
208 | * S000000000PPPPPP.....DP(L+2) |
209 | * 0011111111111111.....DP(L+1) |
210 | * 0022222222222222.....DP(L) |
211 | * S = TEMP STORAGE INDICATOR |
212 | * P = OPERATOR |
213 | * 1 = FIRST OPERAND ADDRESS |
214 | * 2 = SECOND OPERAND ADDRESS |
215 | ABS |
216 | ORG '100 |
217 | * |
218 | * ************************************ |
219 | * * DIRECTORY OF FORTRAN IV COMPILER * |
220 | * ************************************ |
221 | * |
222 | * |
223 | * |
224 | *..............ENTRANCE GROUP |
225 | DAC A3 (ENG1) COMPILER ENTRANCE/INITIALIZE |
226 | DAC DP DATA POOL START |
227 | * |
228 | *..............INPUT GROUP |
229 | DAC IC00 (IPG1) INPUT COLUMN |
230 | DAC UC00 (IPG2) UNINPUT COLUMN |
231 | DAC CH00 (IPG3) INPUT CHARACTER |
232 | DAC ID00 (IPG4) INPUT DIGIT |
233 | DAC IA00 (IPG5) INPUT (A) CHARACTERS |
234 | DAC FN00 (IPG6) FINISH OPERATOR |
235 | DAC DN00 (IPG7) INPUT DNA |
236 | DAC II00 (IPG8) INPUT ITEM |
237 | DAC OP00 (IPG9) INPUT OPERAND |
238 | DAC NA00 (IPG10) INPUT NAME |
239 | DAC IG00 (IPG11) INPUT INTEGER |
240 | DAC IV00 (IPG12) INPUT INTEGER VARIABLE/CONSTANT |
241 | DAC IR00 (IPG13) INPUT INTEGER VARIABLE |
242 | DAC IS00 (IPG14) INPUT STATEMENT NUMBER |
243 | DAC XN00 (IPG15) EXAMINE NEXT CHARACTER |
244 | DAC SY00 INPUT STMBOL |
245 | * |
246 | *..............TEST GROUP |
247 | DAC TS00 (TSG1) ALL CHARACTER TEST (EXCEPT C/R) |
248 | DAC IP00 (TSG2) )-INPUT OPERATOR |
249 | DAC A1 (TSG3) C/R TEST |
250 | DAC B1 (TSG4) , OR C/R TEST |
251 | DAC NU00 (TSG5) NO USAGE TEST |
252 | DAC NC00 (TSG6) NON CONSTANT TEST |
253 | DAC NS00 (TSG7) NON SUBPROGRAM TEST |
254 | DAC AT00 (TSG8) ARRAY TEST |
255 | DAC IT00 (TSG9) INTEGER TEST |
256 | DAC NR00 (TSG10) NON REL TEST |
257 | * |
258 | *..............ASSIGNMENT GROUP |
259 | DAC AS00 (ASG1) ASSIGN ITEM |
260 | DAC TG00 (ASG2) TAG SUBPROGRAM |
261 | DAC TV00 (ASG3) TAG VARIABLE |
262 | DAC FA00 (ASG4) FETCH ASSIGN |
263 | DAC FL00 (ASG5) FETCH LINK |
264 | DAC KT00 (ASG6) D(0)= SIZE OF ARRAY DEFLECTION |
265 | DAC DM00 (ASG7) DEFINE IM |
266 | DAC DA00 (ASG8) DEFINE AF |
267 | DAC AF00 (ASG9) DEFINE AFT |
268 | DAC LO00 (ASG10) DEFINE LOCATION |
269 | DAC AI00 (ASG11) ASSIGN INTEGER CONSTANT |
270 | DAC AA00 (ASG12) ASSIGN SPECIAL |
271 | DAC NXT GET NEXT ENTRY FROM ASSGN TABLE |
272 | DAC BUD BUILD ASSIGNMENT TABLE ENTRT |
273 | * |
274 | *..............CONTROL GROUP |
275 | DAC B6 (CNG1) JUMP |
276 | DAC C5 ILL TERM |
277 | DAC C6 (CNG2) CONTINUE |
278 | DAC C7 (CNG3) STATEMENT INPUT |
279 | DAC C8 (CNG4) STATEMENT SCAN |
280 | DAC A9 (CNG5) STATEMENT IDENTIFICATION |
281 | DAC NP00 (CNG6) FIRST NON-SPEC CHECK |
282 | * |
283 | *..............SPECIFICATIONS GROUP |
284 | DAC EL00 (SPG1) EXCHANGE LINKS |
285 | DAC NM00 (SPG2) NON COMM0N TEST |
286 | DAC ND00 (SPG3) NON DUMMY OR SUBPROGRAM TEST |
287 | DAC SC00 (SPG4) INPUT SUBSCRIPT |
288 | DAC IL00 (SPG5) INPUT LIST ELEMENT |
289 | DAC R1 (SPG6) FUNCTION |
290 | DAC R2 SUBROUTINE |
291 | DAC A3 (SPG7) INTEGER |
292 | DAC A4 REAL |
293 | DAC A5 DOUBLE PRECISION |
294 | DAC A6 COMPLEX |
295 | DAC A7 LOGICAL |
296 | DAC B2 (SPG8) EXTERNAL |
297 | DAC B3 (SPG9) DIMENSION |
298 | DAC B7 INPUT DIMENSION |
299 | DAC B4 (SPG10) COMMON |
300 | DAC B5 (SPG11) EQUIVALENCE |
301 | DAC C2 (SPG12) RELATE COMMON ITEMS |
302 | DAC C3 (SPG13) GROUP EOUIVALENCE |
303 | DAC C4 (SPG14) ASSIGN SPECIFICATIONS |
304 | DAC W4 (SPG15) DATA |
305 | DAC R3 (SPG16) BLOCK DATA |
306 | DAC TRAC (SPG17) TRACE |
307 | * |
308 | *..............PROCESSOR GROUP |
309 | DAC V3 (PRG1) IF |
310 | DAC R7 (PRG2) GO TO |
311 | DAC IB00 INPUT BRANCH LIST |
312 | DAC W3 (PRG3) ASSIGN |
313 | DAC C9 (PRG5) DO |
314 | DAC V7 (PRG6) END FILE |
315 | DAC V6 BACKSPACE |
316 | DAC V8 REWIND |
317 | DAC V5 (PRG7) READ |
318 | DAC V4 WRITE |
319 | DAC V2 (PRG8) FORMAT |
320 | DAC SI00 INPUT FORMAT STRING |
321 | DAC IN00 INPUT NUMERIC FORMAT STRING |
322 | DAC NZ00 NON ZERO STRING TEST |
323 | DAC W8 (PRG9) PAUSE |
324 | DAC W7 STOP |
325 | DAC R8 (PRG10) CALL |
326 | DAC G2 ASSIGNMENT STATEMENT |
327 | DAC R9 (PRG11) RETURN |
328 | DAC G1 (PRG12) STATEMENT FUNCTION |
329 | DAC W5 (PRG13) END |
330 | * |
331 | *..............PROCESSOR SUBROUTINES GROUP |
332 | DAC PO00 (PSG1) INPUT CHAR AND OUTPUT PACK |
333 | DAC HS00 (PSG2) TRANSMIT HOLLERITH STRING |
334 | DAC DP00 (PSG3) DO INPUT |
335 | DAC DS00 (PSG4) DO INITIALIZE |
336 | DAC DQ00 (PSG5) DO TERMINATION |
337 | DAC EX00 (PSG6) EXPRESSION |
338 | DAC CA00 (PSG7) SCAN |
339 | DAC ST00 TRIAD SEARCH |
340 | DAC TC00 TEMP STORE CHECK |
341 | DAC ET00 (PSG8) ENTER TRIAD |
342 | DAC GE00 (PSG9) GENERATE SUBPROGRAM ENTRANCE |
343 | * |
344 | *..............OUTPUT GROUP |
345 | DAC OL00 (OPG1) OUTPUT OBJECT LINK |
346 | DAC OI00 (OPG2) OUTPUT I/O LINK |
347 | DAC CN00 (OPG3) CALL NAME |
348 | DAC OK00 (OPG4) OUTPUT PACK |
349 | DAC OB00 (OPG5) OUTPUT OA |
350 | DAC OT00 (OPG6) OUTPUT TRIADS |
351 | DAC OM00 (OPG7) OUTPUT ITEM |
352 | DAC OR00 (OPG8) OUTPUT REL |
353 | DAC OA00 OUTPUT ABS |
354 | DAC OS00 OUTPUT STRING |
355 | DAC OW00 (OPG9) OUTPUT WORD |
356 | DAC PU00 PICKUP |
357 | DAC FS00 (OPG10) FLUSH |
358 | DAC TRSE (OPG11) OUTPUT TRACE COUPLING |
359 | DAC PRSP SET BUFFER TO SPACES |
360 | * |
361 | *..............MISC. GROUP |
362 | DAC AD3 ADD TWO 3 WORD INTEGERS |
363 | DAC IM00 MULTIPLY (A) BY (B) |
364 | DAC STXA SET A INTO INDEX |
365 | DAC STXI SET I INTO INDEX |
366 | DAC NF00 SET FS INTO NAMF |
367 | DAC BLNK SET AREA TO ZEROS |
368 | DAC MOV3 MOVE 3 WORDS TO TEMP STORAGE |
369 | DAC CIB COMPARE IBUF TO A CONSTANT |
370 | DAC SAV SAVE INDEX IN PUSH-DOWN STACK |
371 | DAC RST RESET INDEX FROM PUSH-DOWN STACK |
372 | DAC PACK |
373 | DAC ER00 ERROR OUTPUT |
374 | DAC SRT SHIFT RIGHT 1 (TRIPLE PRES.) |
375 | DAC SFT SHIFT LEFT 1 (TRIPLE PRES.) |
376 | DAC LIST |
377 | * |
378 | * |
379 | * **************************** |
380 | * *CONSTANT AND VARIABLE POOL* |
381 | * **************************** |
382 | * |
383 | XR EQU 0 INDEX REGISTER |
384 | * THE FOLLOWING 62 VARIABLES ARE SET TO ZERO DURING |
385 | * PROGRAM INITIALIZATION |
386 | A EQU '40 ASSIGNMENT TABLE INDEX |
387 | I EQU A+1 EXPRESSION TABLE INDEX |
388 | C EQU A+2 |
389 | ASAV EQU A+3 |
390 | L EQU A+4 |
391 | MFL EQU A+5 MODE FLAG |
392 | SFF EQU A+6 FUNCTION FLAG |
393 | SBF EQU A+7 SUBFUNCTION FLAG |
394 | SXF EQU A+8 POSSIBLE CPX FLAG |
395 | SPF EQU A+9 PEC. FLAG |
396 | TCF EQU A+10 TEMP STORE COUNT |
397 | IFF EQU A+11 |
398 | ABAR EQU A+12 BASE OF ASSIGN TABLE |
399 | XST EQU A+13 FIRST EXECUTABLE STMNT. |
400 | CFL EQU A+14 MON FLAG |
401 | D EQU A+15 DO INDEX |
402 | RPL EQU A+16 RELATE PROGRAM LOCATION |
403 | BDF EQU A+17 LOCK DATA FLAG |
404 | SLST EQU A+18 SOURCE LIST |
405 | OBLS EQU A+19 OUTPUT BINARY LIST |
406 | BNOT EQU A+20 BINART OUTPUT FLAG |
407 | TRF EQU A+21 TRACE FLAG (END TRACE STATEMENT NO.) |
408 | TRFA EQU A+22 POINTER TO FIRST VAR, 0R ARRAY NAME IN |
409 | * AN EXPRESSION (FOR USE BY TRACE). |
410 | SOF EQU A+23 SUBSCRIPT CONSTANT FLAG (NON-ZERO IF SET) |
411 | LIF EQU A+24 LOGICAL IF FLAG |
412 | LSTN EQU A+25 LAST STATEMENT NO. |
413 | LSTF EQU A+26 LAST STATEMENT FLAG |
414 | LSTP EQU A+27 LAST STATEMENT STOP |
415 | SDSW EQU A+28 STATEMENT I0 SWITCH |
416 | * |
417 | NAMF EQU '570 NAME FUNCTION |
418 | ND EQU NAMF+1 NO OF DIMENSIONS |
419 | NS EQU '572 NO OF SUBSCRIPTS |
420 | NT EQU NS+1 NAME TAG |
421 | NTF EQU NS+2 NAME TAG FLAG |
422 | NTID EQU NS+3 NO. WORDS IN TID |
423 | O1 EQU NS+4 OPERATOR 1 |
424 | O2 EQU NS+5 OPERATOR 2 |
425 | P EQU NS+6 |
426 | PCNT EQU NS+7 |
427 | OCNT EQU NS+8 OUTPUT COUNT |
428 | S0 EQU NS+9 |
429 | S1 EQU NS+10 SUBSCRIPT NO.1 |
430 | S2 EQU NS+11 SUBSCRIPT NO.2 |
431 | S3 EQU NS+12 SUBSCRIPT NO.3 |
432 | TC EQU NS+13 TERMINAL CHAR |
433 | TT EQU NS+14 |
434 | TYPE EQU NS+15 |
435 | X EQU NS+16 ARRAY INDICES |
436 | X1 EQU NS+17 |
437 | X2 EQU NS+18 |
438 | X3 EQU NS+19 |
439 | X4 EQU NS+20 |
440 | NTA EQU NS+21 UNPACKED ASSIGNMENT ITEMS |
441 | ATA EQU NS+22 |
442 | IMA EQU NS+23 |
443 | CLA EQU NS+24 |
444 | IUA EQU NS+25 |
445 | DTA EQU NS+26 |
446 | TTA EQU NS+27 |
447 | *..........ADJUST THIS ORG IF THE SIZE OF THE CONSTAST POOL IS MODIFIED |
448 | ORG '630 |
449 | AF PZE 0 ADDRESS FIELD |
450 | GF EQU AF |
451 | AT PZE 0 ADDRESS TYPE |
452 | CODE PZE 0 OUTPUT CODE |
453 | D0 PZE 0 DIMENSIONS |
454 | D1 PZE 0 |
455 | D2 PZE 0 |
456 | D3 PZE 0 |
457 | D4 PZE 0 |
458 | DF PZE 0 DATA FLAG |
459 | NF PZE 0 |
460 | B PZE 0 |
461 | DFL PZE 0 DELIMITER FLAG |
462 | E OCT 0 EQUIVALENCE INDEX |
463 | EP PZE 0 E-PRIME |
464 | E0 PZE 0 E-ZERO |
465 | FTOP PZE 0 OUTPUT COMMAND |
466 | GFA PZE 0 |
467 | ICSW PZE 1 INPUT CONTROL SWITCH |
468 | IFLG PZE 0 I-FLAG |
469 | IM PZE 0 ITEM MODE |
470 | IOF PZE 0 I-0 FLAG |
471 | IU PZE 0 ITEM USAGE |
472 | KBAR PZE 0 TEM STORE |
473 | KPRM PZE 0 TEM STORE |
474 | EBAR OCT -1 E-BAR |
475 | DO OCT 17 DO TABLE INDEX(FLOATS ABOVE ASSIGNMENT) |
476 | CC PZE '111 CARD COLUMN COUNTER |
477 | DCT PZE 0 DUMMY ARGUMENT COUNT |
478 | F PZE 0 TRIAD TABLE INDEX |
479 | CL PZE 0 ASSIGNMENT ITEMS UNPACKED |
480 | DT PZE 0 |
481 | FLT1 PZE 0 FETCH LINK CL POINTER LOCATION |
482 | LIBF PZE 0 SPECIAL LIBRARY FLAG (NON-ZERO IF SET) |
483 | *..........CONSTANTS USED BY THE COMPILER |
484 | K4 OCT 251 0) |
485 | K5 OCT 254 0, |
486 | K8 OCT 240 0-SPACE |
487 | K9 OCT 257 0/ |
488 | K10 OCT 256 0. |
489 | K12 OCT 255 0- |
490 | K13 OCT 253 0+ |
491 | K15 OCT 244 0$ |
492 | K16X OCT 16 |
493 | K17 OCT 250 0( |
494 | K18 OCT 275 0= |
495 | K19 BCI 1,DO DO |
496 | K34 OCT 324 0T |
497 | K35 OCT 317 0O |
498 | K40 BCI 1,WN |
499 | K41 BCI 1,RN RN |
500 | K42 BCI 1,CB |
501 | K43 OCT 311 0I |
502 | K44 OCT 321 0Q |
503 | K45 EQU K34 0T |
504 | K57 OCT 252 0* |
505 | K60 OCT 260 00 (BCI ZERO) |
506 | K61 OCT 271 09 |
507 | K68 EQU K19 |
508 | K101 OCT 1 |
509 | K102 OCT 2 |
510 | K103 OCT 3 |
511 | K104 OCT 4 |
512 | K105 OCT 5 |
513 | K106 OCT 6 |
514 | K107 OCT 7 |
515 | K109 DEC 16 |
516 | K100 OCT 377 |
517 | K111 OCT 37777 |
518 | K110 DEC -17 |
519 | K115 OCT 170777 |
520 | K116 OCT 177400 |
521 | K117 DEC -27 |
522 | K118 OCT 777 |
523 | K119 OCT 177000 |
524 | K120 DEC -15 |
525 | K122 OCT 040000 |
526 | K123 DEC -1 |
527 | K124 DEC 9 |
528 | K125 DEC 8 |
529 | K126 DEC 10 |
530 | K127 DEC 11 |
531 | K128 DEC 12 |
532 | K129 DEC 13 |
533 | K131 DEC -14 |
534 | K132 OCT 22 |
535 | K134 OCT 17 |
536 | K137 OCT 24002 |
537 | K138 OCT 25 |
538 | K139 OCT 24 |
539 | CRET OCT 215 0 C/R |
540 | ZERO OCT 0 |
541 | HBIT OCT 140000 HIGH BITS FOR ALPHA DATA |
542 | KAEQ BCI 1,EQ EQUIVALENCE ERROR MESSAGE ATTACHMENT |
543 | MIN2 DEC -2 -2 |
544 | HC2 OCT 340 |
545 | K357 OCT 357 |
546 | * |
547 | * |
548 | DP EQU '15400 DUMMY START OF DATA POOL (ACTUALLY SET |
549 | * BY THE FORTRAN IOS SUBROUTINE.) |
550 | L0 EQU '113 DUMMY END OF DATA POOL (MINUS 3 WORDS) |
551 | * THE FOLLOWING INSTRUCTIONS CAUSE THE LOADER |
552 | * TO ASSIGN ALL REFERENCES TO THE DATA POOL IN WORDS |
553 | * 100 TO 112 OF THE ZERO SECTOR, FORTRAN IOS WILL |
554 | * CAUSE THESE CELLS TO BE SET TO THE ACTUAL DATA POOL |
555 | * LOCATIONS WHICH WILL BE DETERMINED BY COMPUTER |
556 | * CONFIGURATION. |
557 | ORG '1000 |
558 | PZE DP-4,1 (100) |
559 | PZE DP-3,1 (101) DATA POOL REFERENCES |
560 | PZE DP-2,1 (102) |
561 | PZE DP-1,1 (103) |
562 | PZE DP,1 (104) |
563 | PZE DP+1,1 (105) |
564 | PZE DP+2,1 (106) |
565 | PZE DP+3,1 (107) |
566 | PZE DP+4,1 (108) |
567 | PZE DP+9,1 (111) |
568 | PZE DP+6,1 (112) |
569 | PZE DP+7 (113) NO WDS IN DATA POOL SET BY IOS |
570 | * |
571 | * |
572 | ORG 1 |
573 | JST ER00 THIS INSTRUCTION REACHED ONLY IF THE |
574 | BCI 1,CG COMPILER JUMPED TO ZERO BY MISTAKE. |
575 | * |
576 | * |
577 | * |
578 | * |
579 | * ******************* |
580 | * *START OF COMPILER* |
581 | * ******************* |
582 | * |
583 | ORG '1000 |
584 | * |
585 | * |
586 | * |
587 | * - A0 COMP ENT EMPTY BUFFERS |
588 | LRL 15 |
589 | STA LIBF SET SPECIAL LIBRARY FLAG |
590 | LLL 15 (BIT 1 ON INHIBITS CERTAIN ERROR CHECKS) |
591 | A0 CALL F4$INT INITIALIZE I/O DEVICES |
592 | LDA K108 |
593 | STA CC CC = 73 |
594 | JST IC00 INPUT COLUMN |
595 | A051 LDA A090 |
596 | STA XR |
597 | LDA A092 LOC, OF INDEX PUSH-DOWN BUFFER |
598 | STA SAV9 INITIALIZE PUSH-DOWN BUFR, |
599 | CRA |
600 | STA A+M,1 SET M VARIABLES TO ZERO |
601 | STA NAMF+M,1 |
602 | IRS XR |
603 | JMP *-3 |
604 | STA IFLG |
605 | STA PKF |
606 | JST FS00 INITIALIZE OUTPUT BUFFER |
607 | CMA |
608 | STA LSTF LSTF NOT EQ 0 |
609 | STA LSTP LSTP NOT EQ 0 |
610 | STA EBAR EBAR SET NEGATIVE |
611 | LDA L0 |
612 | STA ICSW |
613 | STA E0 INITIALIZE EQUIVALENCE TABLE |
614 | STA L INITIALIZE TRIAD TABLE POINTER |
615 | JST PRSP SET PRINT BUFFER TO SPACES |
616 | LDA K134 |
617 | STA DO INITIALIZE DO TABLE POINTER |
618 | SUB K138 |
619 | STA A091 |
620 | CRA |
621 | STA ID |
622 | A055 IRS ID ESTABLISH CONSTANTS |
623 | JST AI00 |
624 | IRS A091 |
625 | JMP A055 |
626 | LDA K81 |
627 | STA ID |
628 | STA ID+1 |
629 | STA ID+2 |
630 | CRA |
631 | LRL 32 (B)=0 IM=NO USAGE |
632 | LDA K101 (A)=1 IU=SUBR |
633 | JST AA00 ASSIGN (SPECIAL) |
634 | JST STXA SET POINTER A INTO INDEX AND (A) |
635 | STA CFL CFL=A (LOCATION OF FIRST COMMON BLOCK) |
636 | ADD K122 ='40000 (IU=SUBR) |
637 | STA DP+1,1 GF(A)=A (IN CASE NO BLANK COMMON IS SPECIFI |
638 | JMP C7 GO TO STMNT INPUT |
639 | M EQU 30 |
640 | A090 DAC* -M,1 |
641 | A091 PZE 0 |
642 | A092 DAC SAVX START OF INDEX PUSH-DOWN BUFFER |
643 | * |
644 | * |
645 | * |
646 | * ************** |
647 | * *INPUT COLUMN* |
648 | * ************** |
649 | * |
650 | * INPUT NEXT CHARACTER |
651 | * IGNORE BLANKS |
652 | * CHECK FOR COMMENTS |
653 | * IC02 SET AS FOLLOWS - |
654 | * NORMAL - ICIP |
655 | * INITIAL SCAN -ICSR |
656 | IC00 DAC ** LINK STORE |
657 | JST SAV SAVE INDEX |
658 | LDA CC IF CC = 73, GO TO IC 10 |
659 | SUB K108 |
660 | SZE |
661 | JMP IC19 ELSE, GO TO IC |
662 | IC10 LDA ICSW IF ICSW. GO TO IC12 |
663 | SNZ |
664 | JMP IC24 ELSE, GO TO IC24 |
665 | IC12 CALL F4$IN INPUT SYMBOLIC CARD IMAGE |
666 | DAC CI |
667 | LDA CI |
668 | LGR 8 GO 70 IC 14 |
669 | CAS K16 =(C) |
670 | JMP *+2 |
671 | JMP IC30 COMMENT CARD (IGNORE) |
672 | SUB K15 =($) |
673 | SNZ |
674 | JMP IC18 CONTROL CARD (IGNORE COLUMN 6) |
675 | LDA K357 IF CARD COL, SIX IS |
676 | ANA CI+2 ZERO OR BLANK, GO TO IC18 |
677 | SUB K8 |
678 | SZE |
679 | JMP IC26 ELSE, GO TO IC26 |
680 | IC18 STA CC CC = 0. |
681 | LDA CI+2 CI(6) = SPECIAL |
682 | ANA K116 |
683 | ADD HC2 ='340 |
684 | STA CI+2 |
685 | LDA CRET |
686 | JMP IC20 TC = C.R. |
687 | IC19 LDA CC TC = CI(CC) |
688 | SUB K101 |
689 | LGR 1 |
690 | STA XR |
691 | LDA CI,1 |
692 | SSC |
693 | LGR 8 |
694 | ANA K100 |
695 | IC20 STA TC |
696 | IRS CC CC = CC+1 |
697 | IC22 JST RST RESTORE INDEX |
698 | JMP* IC00 RETURN |
699 | IC24 LDA K9 TC = /, END OF LINE - STATEMENT SCAN |
700 | STA TC |
701 | JMP IC22 GO TO IC22 |
702 | IC26 JST LIST LIST, CONTINUATION CARD |
703 | LDA K107 CC = 7. IGNORE STATEMENT NO. |
704 | STA CC |
705 | JMP IC19 G0 TO IC19 |
706 | IC30 JST LIST PRINT CARD IMAGE |
707 | JMP IC12 READ IN NEW CARD |
708 | K16 OCT 303 0C |
709 | K108 DEC 73 |
710 | KASP BCI 1, (SP)(SP) MUST PRECEDE CARD IMAGE BUFFER |
711 | CI BSS 40 |
712 | BCI 20, |
713 | * |
714 | * |
715 | * |
716 | * **************** |
717 | * *UNINPUT COLUMN* |
718 | * **************** |
719 | * BACK UP ONE COLUMN |
720 | * |
721 | UC00 DAC ** |
722 | IMA CC CC= CC-1 |
723 | SUB K101 RETAIN (A) |
724 | IMA CC |
725 | JMP* UC00 |
726 | * |
727 | * |
728 | * ***************** |
729 | * *INPUT CHARACTER* |
730 | * ***************** |
731 | * INPUT ONE CHARACTER FROM EITHER |
732 | * 1, INPUT BUFFER (EBAR POSITIVE) OR |
733 | * 2, EQUIVALENCE BUFFER (EBAR NEGATIVE) |
734 | * |
735 | CH00 DAC ** |
736 | LDA EBAR IF EBAR 7 0, |
737 | SMI |
738 | JMP CH10 G0 10 CH10 |
739 | CH03 JST IC00 INPUT COLUMN |
740 | SUB K8 IF BLANK, REPEAT |
741 | SNZ |
742 | JMP CH03 |
743 | LDA TC ELSE, |
744 | * |
745 | CH04 CAS CH13 ='301 |
746 | NOP |
747 | JMP CH06 |
748 | CAS K61 ='271 |
749 | JMP CH05 |
750 | NOP |
751 | CAS K15 ='244 |
752 | JMP *+2 |
753 | JMP CH05-1 |
754 | CAS K60 ='260 |
755 | NOP |
756 | CRA ALPHA NUMERIC CHARACTER |
757 | CH05 STA DFL DELIMITER ENTRY |
758 | LDA TC EXIT WITH TC IN A |
759 | JMP* CH00 |
760 | CH06 CAS K63 ='332 |
761 | JMP CH05 |
762 | NOP |
763 | JMP CH05-1 |
764 | CH08 STA DFL |
765 | JMP* CH00 |
766 | CH10 LDA E IF E = EBAR |
767 | CAS EBAR |
768 | JMP *+2 |
769 | JMP CH12 GO TO CH12 |
770 | STA 0 SET E INTO INDEX |
771 | LLL 16 SET (B) TO ZERO |
772 | LDA DP,1 CURRENT CHARACTER WORD |
773 | LLR 8 |
774 | STA DP,1 SAVE REMAINING CHARACTER IF ANY |
775 | IAB |
776 | STA TC TC=LEFTMOST CHARACTER |
777 | SZE SKIP IF NEW CHARACTER WORD NEEDED |
778 | JMP CH04 |
779 | LDA E E=E-1 |
780 | SUB K101 =1 |
781 | STA E |
782 | JMP CH10 PICK UP NEXT CHARACTER WORD |
783 | CH12 SSM MAKE E MINUS |
784 | STA EBAR |
785 | JMP C4 GO TO ASSIGN SPEC |
786 | K63 OCT 332 0Z |
787 | CH13 OCT 301 |
788 | * |
789 | * |
790 | * ************* |
791 | * *INPUT DIGIT* |
792 | * ************* |
793 | * A IS ZERO IF NOT DIGIT |
794 | * |
795 | ID00 DAC ** INPUT DIGIT |
796 | JST CH00 INPUT A CHAR |
797 | CAS K61 ='271 (9) |
798 | JMP* ID00 (A) = TC |
799 | JMP ID10 ELSE, (A) = 0 |
800 | CAS K60 RETURN |
801 | NOP |
802 | JMP *+2 |
803 | JMP* ID00 |
804 | ID10 CRA |
805 | JMP* ID00 |
806 | * |
807 | * |
808 | * ********************** |
809 | * *INPUT (A) CHARACTERS* |
810 | * ********************** |
811 | * CHAR COUNT IN XR, TERMINATES WITH EITHER |
812 | * 1, CHAR COUNT -1 = ZERO OR |
813 | * 2, LAST CHAR IS A DELIMITER |
814 | * |
815 | IA00 DAC ** |
816 | TCA SET COUNTER |
817 | STA IA99 |
818 | JST IA50 EXCHANGE IBUF AND ID |
819 | CRA |
820 | STA NTID NTID = 0 |
821 | IA10 JST CH00 INPUT A CHARACTER |
822 | JST PACK |
823 | LDA DFL IF DFL NOT ZERO, |
824 | SZE CONTINUE |
825 | JMP IA20 ELSE, |
826 | IRS IA99 TEST COUNTER |
827 | JMP IA10 MORE CHARACTERS TO INPUT |
828 | IA20 JST IA50 EXCHANGE ID AND IBUF |
829 | JMP* IA00 RETURN |
830 | IA50 DAC ** EXCHANGE IBUF AND ID |
831 | JST SAV SAVE INDEX |
832 | LDA IA90 |
833 | STA XR |
834 | LDA IBUF+3,1 |
835 | IMA ID+3,1 |
836 | STA IBUF+3,1 |
837 | IRS XR |
838 | JMP *-4 |
839 | JST RST RESTORE INDEX |
840 | LDA NTID |
841 | JMP* IA50 |
842 | IA90 OCT -3 |
843 | IA99 PZE 0 |
844 | * |
845 | * |
846 | * ***************** |
847 | * *FINISH OPERATOR* |
848 | * ***************** |
849 | * WRAP UP LOGICAL/RELATIONAL OPERATORS |
850 | * |
851 | FN00 DAC ** |
852 | LDA DFL IF DFL NOT . , |
853 | STA IBUF |
854 | SUB K10 |
855 | SZE |
856 | JMP FN05 GO TO FN05 |
857 | LDA K104 |
858 | JST IA00 |
859 | FN05 LDA K110 USE TABLE TO CONVERT |
860 | STA XR OPERATOR |
861 | FN10 LDA FN90+17,1 |
862 | CAS IBUF |
863 | JMP *+2 |
864 | JMP FN20 |
865 | IRS XR |
866 | JMP FN10 |
867 | LDA TC |
868 | JMP* FN00 |
869 | FN20 LDA FN91+17,1 FOUND A LOGICAL OPERATOR |
870 | STA TC SET INTO TC |
871 | JMP* FN00 |
872 | FN90 OCT 253,255,252,257 +-*/ |
873 | BCI 9,NOANORLTLEEQGEGTNE |
874 | OCT 275,254 =, |
875 | FN91 OCT 1,2,3,4,5,6,7,10,11,12,13,14,15,16,17 |
876 | * |
877 | * |
878 | * *********** |
879 | * *INPUT DNA* |
880 | * *********** |
881 | * BASIC INPUT ROUTINE, HANDLES FOLLOWING - |
882 | * CONSTANT CONVERSION |
883 | * MODE TYPING (CONSTANTS, IMPLIED/VARIABLES) |
884 | * ALL OPERATORS (TERMINATE ITEM) |
885 | * |
886 | ID BSS 4 |
887 | TID EQU ID TEMP STORE FOR ID |
888 | IBUF BSS 3 3-WORD BUF |
889 | TIDN PZE 0 |
890 | K155 OCT 177727 -41 |
891 | K156 OCT 024000 1085 |
892 | K157 OCT 007777 |
893 | K158 OCT 074000 |
894 | F1 PZE 0 SIGN FLAG |
895 | F2 PZE 0 |
896 | F3 PZE 0 INPUT EXPONENT |
897 | F4 PZE 0 NO, FRAC. POSITIONS |
898 | F5 PZE 0 TEMP DELIMITER STORE |
899 | F6 PZE 0 |
900 | L4 PZE 0 |
901 | HOLF PZE 0 HOLLERITH FLAG |
902 | DN00 DAC ** |
903 | DN01 CRA |
904 | STA HOLF SET HOLF =0 |
905 | STA F4 F4 = 0 |
906 | STA IU |
907 | STA NT IU=NT=NTID=0 |
908 | STA NTID |
909 | JST BLNK CLEAR OUT TID = ID |
910 | DAC TID |
911 | JST BLNK |
912 | DAC F1 F1,F2,F3 = 0 |
913 | DN06 CRA |
914 | STA IM |
915 | STA DNX2 |
916 | DN07 JST ID00 INPUT DIGIT |
917 | SZE |
918 | JMP DN14 (A) NON-ZERO, G0 T0 DN14 |
919 | DN10 LDA TID+2 CHECK FOR OVERFLOW AND ADJUST |
920 | ANA K158 POSITION COUNT IF NECESSARY, |
921 | SZE |
922 | JMP SKIP |
923 | ADD IM |
924 | ARS 1 |
925 | ADD F4 F4 = F4+1 IF NO OVERFLOW |
926 | STA F4 AND IM ALREADY SET TO REAL |
927 | LDA K101 |
928 | STA NT NT=1 |
929 | ADD K101 |
930 | STA IU IU = VAR/COD |
931 | JST SFT SHIFT ID LEFT |
932 | DAC ID |
933 | JST MOV3 MOVE TO TEMP STORE |
934 | JST SFT |
935 | DAC ID |
936 | JST SFT |
937 | DAC ID |
938 | JST AD3 ID = 10*ID+TC |
939 | JST BLNK |
940 | DAC DNX1 |
941 | LDA TC |
942 | SUB K60 |
943 | STA DNX1 |
944 | JST AD3 |
945 | JMP DN07 |
946 | SKIP LDA MIN2 |
947 | ADD IM |
948 | ARS 1 |
949 | ADD F4 |
950 | STA F4 |
951 | JMP DN07 |
952 | DN14 LDA IM IM = REAL |
953 | SUB K102 |
954 | SZE |
955 | JMP DN50 NO, GO TO DN50 |
956 | DN16 LDA K10 YES, |
957 | DN17 STA F5 F5 = '.' |
958 | LDA DFL IF DFL =0, GO SO DN20 (5) |
959 | SZE |
960 | JMP DN90 ELSE GO TO DN90 (9) |
961 | DN20 LDA TC IF TC = D, GO TO DN26 |
962 | SUB K11 |
963 | SNZ |
964 | JMP DN26 |
965 | SUB K101 ELSE, IF TC = E, GO TO DN22 |
966 | SNZ |
967 | JMP DN22 TERMINATOR = E |
968 | JST UC00 |
969 | LDA K10 ='256 (,) |
970 | STA DFL SET DELIMITER FLAG |
971 | LDA K101 =1 |
972 | STA IM SET ITEM MODE TO INTEGER |
973 | JMP DN67 FINISH OPERATOR AND EXIT |
974 | * |
975 | DN22 JST ID00 INPUT DIGIT |
976 | SNZ IF (A) = 0, GO TO DN30 |
977 | JMP DN30 |
978 | LDA TC IF TC = -, GO TO DN28 |
979 | SUB K12 |
980 | SNZ |
981 | JMP DN28 |
982 | ADD K102 |
983 | SNZ |
984 | JMP DN29 |
985 | LDA F5 |
986 | STA DFL |
987 | JST UC00 UN-INPUT COL |
988 | DN24 JST FN00 FINISH OPERATOR |
989 | DN25 LDA K101 IM = INT |
990 | STA IM |
991 | LDA ID+1 IF ID IS TOO BIG TO |
992 | SZE BE AN INTEGER (>L2), |
993 | JMP DN69 GO TO DN69 (20) |
994 | LDA ID+2 |
995 | SZE |
996 | JMP DN69 |
997 | JMP DN84 OTHERWISE, GO TO DN84(12) |
998 | DN26 LDA K106 IM = DBL |
999 | STA IM |
1000 | JMP DN22 |
1001 | DN28 LDA K101 F2 = 1 |
1002 | STA F2 |
1003 | DN29 JST ID00 INPUT DIGIT |
1004 | SZE IF (A) = 0, GO TO DN30 (8.5) |
1005 | JMP DN69 ELSE, GO TO DN69 (20) |
1006 | DN30 LDA F3 F3 = 10 * F3 |
1007 | ALS 3 |
1008 | IMA F3 F3 = F3 +TC |
1009 | ALS 1 |
1010 | ADD F3 |
1011 | ADD TC INPUT DIGIT |
1012 | SUB K60 |
1013 | STA F3 IF (A) = 0, GO TO DN30 (8.5) |
1014 | JST ID00 ELSE, GO TO DN90 (9) |
1015 | SZE |
1016 | JMP DN90 |
1017 | JMP DN30 |
1018 | DN50 LDA K102 IM=REA |
1019 | STA IM |
1020 | LDA TC IF TC = ., GO TO DN54 |
1021 | SUB K10 |
1022 | SNZ |
1023 | JMP DN54 ELSE, |
1024 | LDA NT |
1025 | SNZ IF NT = 0, GO TO DN72 |
1026 | JMP DN72 |
1027 | LDA TC IF TC = H, GO TO DN9H (22) |
1028 | SUB K14 |
1029 | SNZ |
1030 | JMP DN9H |
1031 | LDA DFL IF DFL = 0, |
1032 | SZE GO TO DN16 (4.9) |
1033 | JMP DN25 ELSE, GO TO DN25 |
1034 | JMP DN16 |
1035 | DN54 JST ID00 INPUT DIGIT |
1036 | SNZ |
1037 | JMP DN10 IF (A) = 0, GO TO DN10 (3) |
1038 | LDA NT |
1039 | SNZ IF NT = 0, GO TO DN56 |
1040 | JMP DN56 |
1041 | LDA TC F5 = TC |
1042 | JMP DN16 GO TO DN16 (4) |
1043 | DN56 CRA |
1044 | STA TC TC = ) |
1045 | DN58 JST UC00 UN-INPUT A COLUMN, |
1046 | LDA F1 IF F1 = 0, GO TO DN60 |
1047 | SZE |
1048 | JMP DN63 ELSE, GO TO DN63 (15) |
1049 | DN60 LDA K106 |
1050 | JST IA00 INPUT (6) CHARS |
1051 | JST CIB IF IBUF = TRUE., |
1052 | DAC K1+3,1 |
1053 | JMP DN64 |
1054 | JST CIB IF IBUF = FALSE., |
1055 | DAC K2+3,1 GO TO DN66 (16) |
1056 | JMP DN66 |
1057 | JST CIB CHECK FOR .NOT. OPERATOR |
1058 | DAC KNOT+3,1 CHECK FOR .NOT. OPERATOR |
1059 | JMP DN9N OPERATOR IS .NOT. |
1060 | * |
1061 | * TAPE 1 OF 5 - END |
1062 | MOR |