A large commit.
[pdp8.git] / sw / os8 / v3d / sources / fortran / dectapes / dectape2 / pass3.pa
CommitLineData
81e70d48
PH
1/3 OS/8 FORTRAN (PASS THREE)
2/
3/ VERSION 4A PT 16-MAY-77
4/
5/ OS/8 FORTRAN IV COMPILER-PASS 3
6/
7/ BY: HANK MAURER
8/ UPDATED BY: R. LARY + M. HURLEY
9/
10/
11/COPYRIGHT (C) 1974,1975 BY DIGITAL EQUIPMENT CORPORATION
12/
13/
14/
15/
16/
17/
18/
19/
20/
21/
22/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
23/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
24/CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
25/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
26/
27/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
28/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
29/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
30/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
31/
32/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
33/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
34/DIGITAL.
35/
36/
37/
38VERSON=4
39\f/ PAGE ZERO STUFF
40 OUDEVH=7000 /PUT OUDEVH AND OUBUF IN DIFFERENT
41 INDEVH=6400
42 INBUF=6000
43 OUBUF=5400 /SEGMENTS, STAN KNOWS WHY
44 X10=10
45 X11=11
46 X12=12
47 NCHARS=20
48 CHAR=21
49 TEMP=22
50 FILDEV=6
51 FILBLK=7
52 DEV1CE=173 /THROUGH 177
53 DEVH=23
54 LINENO=24
55 SEVCHR=25 /THROUGH 33
56
57
58/ OS/8 V3C MAINTENANCE RELEASE FIXES:
59
60/1. EXTENDED RANGE OF PAGE NUMBERS TO 99
61/2 INTERCHANGED CR/LF FOR HASSINGER
62/3 CHANGED VERSION NO. TO 305
63/5. ADDED 'I' TO JMP (OFOO3
64/
65/
66/ CHANGES FOR OS/8 V3D AND OS/78 BY P.T.
67/ .CHANGED VERSION NUMBER TO 4A
68/ .PUT IN NEW DATE ALGORITHM
69/
70/
71\f/START OF PASS 3
72 *400 /DON'T LOAD INTO 0-377
73SPASS3, CDF 10
74 TAD I (7666 /GET DATE
75 DCA TEMP
76 TAD I LSTFIL /COPY FILE NAME
77 CDF
78 DCA I FILLST
79 ISZ LSTFIL
80 ISZ FILLST
81 ISZ OFSIZE
82 JMP SPASS3
83 TAD DEV1CE /FETCH HANDLER FOR OUTPUT FILE
84 CIF 10
85 JMS I (200 /USR IS IN CORE
86 1
87OH, OUDEVH+1 /TWO PAGE HANDLER IS OK
88 JMP I (OFOO3
89 CIF 10
90 TAD DEV1CE /OPEN THE LISTING FILE
91 JMS I (200
92 3
93OB, DEV1CE+1
94OS, 0
95 JMP I (OFOO3
96 TAD OB /SAVE BLOCK NUMBER
97 DCA OBLOCK
98 TAD OS
99 DCA OSIZE /AND SIZE OF HOLE
100 TAD OH /SAVE HANDLER ADDRESS
101 DCA DEVH
102 TAD (NUMS-1 /SET UP NUMBER POINTER
103 DCA I (NUM
104 TAD TEMP /GET THE DATE--FOR YEAR ROUTINE
105 SNA
106 JMP I (PAJE /NO DATE
107 AND (7 /MASK OUT ALL BUT YEAR OFFSET BITS
108 DCA YRTEMP /INCREMENT FROM THE BASE YEAR
109 DCA TEMP1 /HOLDS THE FIRST DIGIT OF THE YEAR
110 TAD I (7777 /GET THE DATE EXTENSION BITS
111 AND (600 /MASK TO GET THE EXTENSION BITS
112 CLL RTR /ROTATE THEM INTO BIT
113 RTR /POSITIONS 7 AND 8
114 TAD (106 /ADD IN 70---OLD BASE YEAR
115 TAD YRTEMP /ADD IN THE YEAR OFFSET BITS
116 /TO FIND THE NEW BASE YEAR
117CONVYR, CLL /FIND THE YEAR IN DECIMAL
118 TAD (-12 /KEEP SUBTRACTING 12
119 SNL /ALMOST DONE
120 JMP SECDIG /FIND THE SECOND DIGIT OF THE YEAR
121 ISZ TEMP1 /FIND THE FIRST DIGIT OF THE YEAR
122 JMP CONVYR /TRY AGAIN
123SECDIG, TAD (72 /GET THE SECOND DIGIT OF THE YEAR
124 RTL /AND MAKE IT SIXBIT
125 RTL
126 RTL
127 DCA I (YEAR+1 /PUT IT IN THE PRINT LINE
128 TAD TEMP1 /GET THE FIRST DIGIT
129 TAD (5560 /MAKE IT SIXBIT
130 DCA I (YEAR /PRINT IT
131 TAD TEMP /GET THE DATE--NOW FIND THE MONTH/DAY
132 CLL RTR
133 RAR
134 AND (777
135 DCA TEMP
136SIMPLE, TAD TEMP /GET THE DAY
137 AND (37
138 TAD (DAYS-1 /THIS IS THE LAZY WAY
139 DCA NCHARS
140 TAD I NCHARS
141 DCA I (DAY
142 TAD TEMP /GET THE MONTH
143 CLL RTR
144 RTR
145 AND (36
146 TAD (MONTHS-3
147 DCA X10
148 TAD I X10
149 DCA I (MONTH
150 TAD I X10
151 DCA I (MONTH+1
152 JMP I (PAJE /WE GOT THE DATE
153LSTFIL, 7605
154FILLST, DEV1CE
155OFSIZE, -5
156YRTEMP, 0
157TEMP1, 0
158\f PAGE
159PAJE, JMP I (PRHDR /PRINT THE FIRST HEADING
160 CLL CML RTL /INITIALIZE LINE NUMBER
161 DCA LINENO
162 DCA TABCNT /**
163RDLUPE, TAD (SEVCHR-1 /SEVEN CHAR BUFFER
164 DCA X10
165 TAD (-6
166 DCA NCHARS
167RDLOOP, JMS I (ICHAR
168 JMP RDACHO /ECHO & IGNORE SHORT LINES
169 TAD (-211 /IS IT A TAB ?
170 SZA CLA
171 JMP NOTAB /NO
172 TAD (-2
173 DCA TABCNT /SET POINTER TO DO EXTRA SPACES LATER**
174 TAD (240
175 DCA I X10 /DO A TAB
176 ISZ NCHARS
177 JMP .-3
178 JMP WHAT /GO LOOK AT THE LINE
179NOTAB, TAD CHAR
180 DCA I X10 /SAVE THE CHAR
181 ISZ NCHARS
182 JMP RDLOOP
183WHAT, TAD SEVCHR /IS IT A COMMNET
184 TAD (-303
185 SNA CLA
186 JMP NOISN /YES, NO INTERNAL STMT NUMBER
187 TAD SEVCHR+5 /IS IT A CONTINUATION ?
188 TAD (-240
189 SZA CLA
190 JMP NOISN /YES, NO ISN
191 TAD LINENO /NEITHER OF THESE
192 JMS I (ONUMBR /PRINT ISN
193 TAD LINENO /2.01/ PUT LINE NUM
194 7421 /2.01/ INTO MQ
195 CLA /2.01/ CLA IF NO EAE
196 ISZ LINENO /BUMP LINE NUMBER
197NOISN, TAD (211 /TAB
198 JMS I (OCHAR
199 TAD (SEVCHR-1 /PRINT FIRST SEVEN
200 DCA X10
201 TAD (-6
202 DCA NCHARS
203 TAD I X10
204 JMS I (OCHAR
205 ISZ NCHARS
206 JMP .-3
207 TAD TABCNT /SEE IF A TAB WAS 1ST
208 SMA CLA /IF YES,NEED 2 MORE SPACES
209 JMP NOTTAB
210 DCA TABCNT /WAS A TAB
211 TAD (240
212 JMS I (OCHAR
213 TAD (240
214 JMS I (OCHAR
215NOTTAB, JMS I (ICHAR /PRINT REST OF LINE
216 JMP ENDLIN
217 JMS I (OCHAR
218 JMP .-3
219ENDLIN, JMS I (CRLF /END LINE
220 JMS I (ERRCHK /CHECK ERROR LIST
221 JMP RDLUPE /DO NEXT LINE
222TABCNT, 0
223
224HEADER, TEXT ' FORTRAN IV 4AAAA '
225 *.-1
226DAY, 4040
227MONTH, 4040;4040
228YEAR, TEXT ' PAGE '
229 *.-1
230PAGENO, TEXT 'ONE'
231 ZBLOCK 7 /V3C ROOM FOR LARGE PAGE NUMBERS
232RDACHO, TAD (211
233 JMS I (OCHAR
234 JMP I (RDECHO
235 PAGE
236\f TEXT " "
237LOS, TEXT "ONE "
238NUMS,/ 2427;1740;4040
239/ 2410;2205;0540
240/ 0617;2522;4040
241/ 0611;2605;4040
242/ 2311;3040;4040
243/ 2305;2605;1640
244/ 0511;0710;2440
245/ 1611;1605;4040
246/ 2405;1640;4040
247/ 0514;0526;0516
248/ 2427;0514;2605
249 TEXT "TWO@@@@@"
250 TEXT "THREE@@@"
251 TEXT "FOUR@@@@"
252 TEXT "FIVE@@@@"
253 TEXT "SIX@@@@@"
254 TEXT "SEVEN@@@"
255 TEXT "EIGHT@@@"
256 TEXT "NINE@@@@"
257 TEXT "TEN@@@@@"
258 TEXT "ELEVEN@@"
259 TEXT "TWELVE@@"
260 TEXT "THIRTEEN"
261 TEXT "FOURTEEN"
262 TEXT "FIFTEEN@"
263 TEXT "SIXTEEN@"
264 TEXT "SEVENTEEN"
265 TEXT "EIGHTEEN"
266 TEXT "NINETEEN"
267HIS, TEXT " TWENTY "
268 *.-1
269 TEXT " THIRTY "
270 *.-1
271 TEXT " FORTY "
272 *.-1
273 TEXT " FIFTY "
274 *.-1
275 TEXT " SIXTY "
276 *.-1
277 TEXT "SEVENTY "
278 *.-1
279 TEXT " EIGHTY "
280 *.-1
281 TEXT " NINETY "
282 *.-1
283 TEXT "HUNDRED "
284 *.-1
285DAYS, 4061;4062;4063;4064;4065;4066;4067;4070;4071
286 6160;6161;6162;6163;6164;6165;6166;6167;6170;6171
287 6260;6261;6262;6263;6264;6265;6266;6267;6270;6271
288 6360;6361
289MONTHS, 5512;0116 /-JAN
290 5506;0502 /-FEB
291 5515;0122 /-MAR
292 5501;2022 /-APR
293 5515;0131 /-MAY
294 5512;2516 /-JUN
295 5512;2514 /-JUL
296 5501;2507 /-AUG
297 5523;0520 /-SEP
298 5517;0324 /-OCT
299 5516;1726 /-NOV
300 5504;0503 /-DEC
301 IFZERO .&100 <PAGE>
302\fENDX, TAD (-601 /2.02/ CLEAR END OF BUFFER
303 DCA LINENO /2.01/ FOR TV: REASONS
304 TAD X232 /2.01/ OUTPUT ^Z
305 JMS I (OCHAR /2.01/
306 ISZ LINENO /2.01/
307 JMP .-3 /2.01/
308 CIF 10 /CLOSE THE OUTPUT FILE
309 TAD DEV1CE
310 JMS I (200
311 4
312 DEV1CE+1
313FILSIZ, 0
314 JMP (OFOO3
315 CDF 10 /LOOK AT OPTIONS
316 TAD I X7643
317 CDF
318M70, SPA CLA
319 JMP I (7605 //A MEANS DON'T CHAIN TO RALF
320 CIF CDF 10
321 TAD FILDEV /SET UP RALF INPUT LIST
322 DCA I (7617 /FILE SIZE AND DEVICE CODE
323 ISZ (7617
324 TAD FILBLK /FILE START
325 DCA I (7617
326 ISZ (7617 /ZERO END OF LIST
327 DCA I (7617
328 TAD I X7643 /IS IT /F (FULL LIST) ?
329 AND (100
330 CIF 0
331 SZA CLA /**
332 JMP LISTIT
333 CIF 10
334 TAD I (7644
335 AND (20 /LET /T SWITCH THRU ALSO
336 SNA CLA
337 DCA I (7605 /NO, INHIBIT RALF LISTING
338LISTIT, CIF 10
339 CLA IAC
340 CDF
341 JMS I (200 /LOOKUP RALF.SV
342 2
343 RALFNM
344X7643, 7643
345 JMP (OFOO3
346 TAD .-3
347 DCA .+4
348 CIF 10 /CHAIN TO RALF
349 JMS I (200
350 6
351X232, 232
352NCNT, 0
353ONUMBR, 0
354 DCA TEMP /OUTPUT ISN IN OCTAL
355 TAD (-4
356 DCA NCNT
357OLOOP, TAD TEMP
358 CLL RTL /ANYONE WHO CAN'T FOLLOW THIS
359 RAL /SHOULDN'T BE A PROGRAMMER
360 DCA TEMP
361 TAD TEMP
362 RAL
363 AND (7
364 TAD (260
365 JMS I (OCHAR
366 ISZ NCNT
367 JMP OLOOP
368 JMP I ONUMBR
369CONVRT, 0 /CONVERT TO ASCII AND PRINT
370 AND (77
371 SZA
372 TAD (-40
373 SPA
374 TAD (100
375 TAD (240
376 JMS I (OCHAR
377 JMP I CONVRT
378LINECT, -1 /EJECT FIRST TIME
379CRLF, PAJE+1
380 TAD (215 /CR LF
381 JMS I (OCHAR
382 TAD (212
383 JMS I (OCHAR
384 ISZ LINECT
385 JMP I CRLF
386 TAD (214
387 JMS I (OCHAR
388PRHDR, TAD M70 /RESET COUNT
389 DCA LINECT
390 TAD (HEADER /COPY HEADER OUT
391 DCA TEMP
392OHDR, TAD I TEMP
393 CLL RTR
394 CLL RTR
395 CLL RTR
396 JMS CONVRT
397 TAD I TEMP
398 JMS CONVRT
399 TAD I TEMP /END YET ?
400 ISZ TEMP
401 AND (77
402 SZA CLA
403 JMP OHDR
404 TAD (215 /V3C SKIP EXTRA LINE AFTER TITLE
405 JMS I (OCHAR
406 TAD (212 /V3C
407 JMS I (OCHAR /FOR CENTRONICS
408 JMP PUTNUM /GET NEW PAGE NUMBER
409\f/ OS/8 FILE INPUT ROUTINES
410 PAGE
411ICHAR, 0 /READ CHAR FROM INPUT FILE
412 ISZ INJMP /BUMP THREE WAY UNPACK SWITCH
413 ISZ INCHCT
414INJMPP, JMP INJMP
415 TAD INEOF /DID LAST READ YEILD END OF FILE ?
416 SNA CLA
417 JMP INGBUF /NO, DO ANOTHER READ
418GETNEW, JMS INNEWF /OPEN A NEW INPUT FILE
419 JMP I (ENDX /NO FILE TO OPEN
420INGBUF, TAD INCTR /BUMP RECORD COUNTER
421 CLL IAC
422 SNL
423 DCA INCTR /RESTORE IF IT HASN'T OVERFLOWED
424 SZL
425 ISZ INEOF /SET END OF FILE SWITCH
426 JMS I INHNDL /DO THE READ
427INCALL, 200
428INBUFP, INBUF
429INREC, 0
430 JMP INERR /HANDLER ERROR
431INBREC, ISZ INREC /BUMP RECORD NUMBER
432 TAD (-601 /SET CHAR COUNT
433 DCA INCHCT
434 TAD INJMPP /RESET THREE WAY JUMP SWITCH
435 DCA INJMP
436 TAD INBUFP /RESET BUFFER POINTER
437 DCA INPTR
438 JMP ICHAR+1 /GO AGAIN
439INERR, ISZ INEOF /EITHER EOF OR BADDIE
440 SMA CLA
441 JMP INBREC /END OF FILE, DO NEXT FILE
442 JMP OFOO3
443INJMP, HLT /3 WAY CHARACTER UUPACK SWITCH
444 JMP ICHAR1
445 JMP ICHAR2
446ICHAR3, TAD INJMPP /RESET JUMP SWITCH
447 DCA INJMP
448 TAD I INPTR
449 AND (7400 /COMBINE THE HIGH ORDER BITS
450 CLL RTR /OF THE TWO WORDS
451 RTR
452 TAD INTMP /TO FORM THE THIRD CHAR
453 RTR
454 RTR
455 ISZ INPTR /BUMP WORD POINTER
456 JMP ICHAR1+1 /DO SOME COMMON STUFF
457ICHAR2, TAD I INPTR /SAVE THE HIGH ORDER BITS
458 AND (7400
459 DCA INTMP /FOR THE THIRD CHAR
460 ISZ INPTR /GO TO THE SECOND WORD
461ICHAR1, TAD I INPTR /GET THE LOW 8 BITS
462 AND (377 /AND I MEAN ONLY 8 !!
463 DCA CHAR
464 TAD CHAR
465 TAD (-232 /IS IT ^Z (END OF FILE)
466 SNA
467 JMP GETNEW /YES, LOOK FOR THE NEXT FILE
468 TAD (232-212
469 SNA
470 JMP ICHAR+1 /IGNORE LINE FEEDS
471 TAD (212-215
472 SNA
473 JMP I ICHAR /RETURN ON CARRIAGE RETURN
474 IAC
475 SNA CLA
476 JMP ICHAR+1 /IGNORE FORM FEEDS
477 TAD CHAR
478 ISZ ICHAR
479 JMP I ICHAR /RETURN TO THE CALLING WORLD
480INTMP, 0
481INFPTR, 7617 /POINTER TO INPUT FILE LIST
482INEOF, 1
483INCHCT,
484INNEWF, -1 /FETCH HANDLER FOR NEXT FILE
485 TAD (INDEVH+1 /THIS IS WHERE IT GOES
486 DCA INHNDL
487 CDF 10
488 TAD I INFPTR /GET NEXT INPUT FILE INFO
489 CDF
490 SNA
491 JMP I INNEWF /NO MORE FILES
492 CIF 10
493 JMS I INCALL /CALL MONITOR
494 1 /FETCH HANDLER
495INHNDL, 0 /ENTRY ADDR GOES HERE
496 JMP OFOO3
497 CDF 10
498 TAD I INFPTR /GET LENGTH
499 AND (7760
500 SZA /A ZERO HERE MEANS >=256 BLOCKS
501 TAD (17 /PUT IN SOME MORE BITS
502 CLL CML RTR
503 RTR
504 DCA INCTR /STORE LENGTH OF FILE
505 ISZ INFPTR
506 TAD I INFPTR /GET STARTING RECORD NUMBER
507 DCA INREC
508 ISZ INFPTR
509 DCA INEOF /CLEAR EOF FLAG
510 ISZ INNEWF
511 CDF
512 JMP I INNEWF
513INCTR, 0
514INPTR, 0
515/PUTNUM, TAD (PAGENO-1 /COPY THE NEW NUMBER
516/ DCA X10
517/ TAD I NUM
518/ ISZ NUM
519/ DCA I X10
520/ TAD I NUM
521/ ISZ NUM
522/ DCA I X10
523/ TAD I NUM
524/ ISZ NUM
525/ DCA I X10
526/ JMP CRLF+1
527RDECHO, /KEEP LINES WITH L.T. 6 CHARS OUT OF ISN COLUMN
528 TAD (SEVCHR-1
529 DCA X12
530RDECLP, TAD X12
531 CIA
532 TAD X10
533 SNA CLA
534 JMP ENDLIN /ONLY ECHO WHAT YOU READ
535 TAD I X12
536 JMS I (OCHAR
537 JMP RDECLP
538\f PAGE
539OUDUMP, 0 /BUMP THE DUFFER
540 TAD OSIZE /ANY ROOM LEFT ?
541 IAC
542 SNA
543 JMP OFOO3
544 DCA OSIZE /YES, ITS OK
545 JMS I DEVH /WRITE
546 4200 /CONTROL WORD
547 OUBUF /BUFFER POINTER
548OBLOCK, 0 /BLOCK NUMBER
549 JMP OFOO3
550 ISZ OBLOCK /INCREMENT BLOCK NUMBER
551 ISZ FILSIZ /AND FILE SIZE
552 TAD OBLOCK-1 /SET BUFFER POINTER
553 DCA OUPTR
554 TAD (-200 /SET DOUBLE WORD COUNT
555 DCA OUWDCT
556 JMP I OUDUMP
557OCHAR, 0 /OUTPUT A CHAR TO THE RALF INPUT FILE
558 AND (377
559 DCA OUTEMP /SAVE CHAR
560 KSF /^C TEST
561 JMP NOSTOP
562 KRB
563 AND (177
564 TAD (-3
565 SNA CLA
566 JMP I (7605 /YES
567NOSTOP, ISZ OUJUMP /BUMP 3 WAY SWITCH
568OUJUMP, JMP .
569 JMP CHAR1
570 JMP CHAR2
571 TAD OUTEMP /HIGH FOUR BITS GO INTO
572 CLL RTL /THE HIGH ORDER BITS OF THE
573 RTL /FIRST WORD OF THE TWO WORD PAIR
574 AND (7400 /SEE NOTE * BELOW
575 TAD I OUPOLD /COMBINE WITH OTHER BITS
576 DCA I OUPOLD
577 TAD OUTEMP /THE OTHER FOUR BITS OF THIS CHAR
578 CLL RTR /GO INTO THE HIGH ORDER FOUR
579 RTR /BITS OF THE SECOND WORD OF THE PAIR
580 RAR
581 AND (7400
582 TAD I OUPTR
583 DCA I OUPTR
584 TAD OUJMP /RESET 3 WAY BRANCH
585 DCA OUJUMP
586 ISZ OUPTR /BUMP BUFFER POINTER
587 ISZ OUWDCT /AND DOUBLE WORD COUNTER
588 JMP I OCHAR /BUFFER NOT FULL
589 JMS OUDUMP /DUMP IT
590 JMP I OCHAR
591CHAR2, TAD OUPTR /SAVE FIRST WORD POINTER
592 DCA OUPOLD
593 ISZ OUPTR /GO TO SECOND WORD
594CHAR1, TAD OUTEMP /STORE CHAR 1 OR 2
595 DCA I OUPTR
596 JMP I OCHAR
597OUTEMP, 0
598OUPOLD, 0
599OUPTR, OUBUF
600OUJMP, JMP OUJUMP
601OUWDCT, -200
602OSIZE, 0
603ERRPTR, 5000
604ERRCHK, 0
605 CDF 10
606 TAD I ERRPTR /ANY ERRORS FOR THIS LINE
607 CDF
608 CMA
609 TAD LINENO
610 SZA CLA
611 JMP I ERRCHK /NO
612 CLL CMA RAL /BACK UP POINTER
613 TAD ERRPTR
614 DCA ERRPTR
615 TAD ERRPTR
616 IAC
617 DCA TEMP
618 CDF 10
619 TAD I TEMP /GET CODE
620 CDF
621 CIA
622 DCA TEMP /SAVE NEGATIVE
623 TAD (ERRLST-1
624 DCA X10
625FIND, TAD I X10 /LOOK FOR ERROR MESSAGE
626 SZA
627 TAD TEMP
628 SNA CLA
629 JMP .+3
630 ISZ X10
631 JMP FIND /SKIP POINTER WORD
632 CLA CMA
633 TAD I X10
634 DCA X10 /POINTER TO MESSAGE
635PMLOOP, TAD I X10 /GET TWO CHARS
636 DCA TEMP
637 TAD TEMP
638 RTR
639 RTR
640 RTR
641 JMS CONVRT /PRINT FIRST
642 TAD TEMP
643 JMS CONVRT /PRINT SECOND
644 TAD TEMP
645 AND (77 /END OF MESSAGE ?
646 SZA CLA
647 JMP PMLOOP /NO, LOOP
648 JMS I (CRLF
649 JMP ERRCHK+1 /SEE IF ANY MORE FOR THIS LINE
650RALFNM, FILENAME RALF.SV
651\f PAGE
652X304, 304
653X305, 305
654X7605, 7605
655OFOO3, TAD X304 /FATAL ERROR IN PASS 3
656 JMS TTY
657 TAD X305
658 JMS TTY
659 JMP I X7605
660TTY, 0 /PRINT ON TTY
661 TLS
662 TSF
663 JMP .-1
664 CLA
665 JMP I TTY
666/ERROR MESSAGES
667ERRLST, 0724;GT
668 1124;IT
669 0504;ED
670 2227;RW
671 0317;CO
672 0530;EX
673 2123;QS
674 2114;QL
675 1106;IF
676 0417;DO
677 2316;SN
678 2404;TD
679 0204;BD
680 2224;RT
681 2204;RD
682 2324;ST
683 0314;CL
684 1517;MO
685 1017;HO
686 1515;MM
687 2323;SS
688 1720;OP
689 0123;AS
690 0401;DA
691 0410;DH
692 1514;ML
693 0405;DE
694 0223;BS
695 1424;LT
696 1105;IE
697 2010;PH
698 1513;MK
699 1724;OT
700 2004;PD
701 1524;MT
702 0726;GV
703 1411;LI
704 0420;DP
705 0414;DL
706 0101;AA
707 2306;SF
708 0406;DF
709 1111;II
710 0;SYSERR
711SYSERR, TEXT 'UNDEFINED ERROR'
712II, TEXT 'ILLEGAL USE OF IF'
713GT, TEXT 'BAD GOTO STATEMENT'
714RW, TEXT 'BAD READ OR WRITE STATEMENT'
715CO, TEXT 'ARGS IN COMMON OR VAR IN TWO COMMONS OR SYNTAX BAD'
716IT, TEXT 'BAD IO LIST ELEMENT'
717EX, TEXT 'BAD EXTERNAL STMT'
718QS, TEXT 'SYNTAX ERROR IN EQUIVALENCE'
719QL, TEXT 'VARIABLE IS EQUIVALENCED MORE THAN ONCE'
720IF, TEXT 'THIS KIND OF STATEMENT NOT LEGAL AFTER LOGICAL IF'
721DO, TEXT 'BAD SYNTAX IN DO OR IMPLIED DO'
722SN, TEXT 'NOT LEGAL AS SUBROUTINE NAME'
723TD, TEXT 'SYNTAX ERROR IN TYPE STATEMENT'
724BD, TEXT 'DIMENSIONS TOO BIG, OR SYNTAX ERROR IN DIMENSION LIST'
725ED, TEXT 'ILLEGAL AS DO ENDING STATEMENT'
726RT, TEXT 'ATTEMPT TO RE-TYPE A VARIABLE'
727RD, TEXT 'ATTEMPT TO RE-DIMENSION A VARIABLE'
728ST, TEXT 'INTERNAL COMPILER ABORT NUMBER ONE'
729CL, TEXT 'ERROR IN COMPLEX LITERAL'
730MO, TEXT 'OPERAND EXPECTED, NONE PRESENT'
731HO, TEXT 'HOLLERITH COUNT WRONG, OR MISSING QUOTES'
732MM, TEXT 'MISMATCHED PARENTHESIS'
733SS, TEXT 'SUBSCRIPT OR ARGUMENT LIST ERROR'
734OP, TEXT 'ILLEGAL OPERATOR'
735AS, TEXT 'ASSIGN ???'
736DA, TEXT 'DATA STATEMENT ?'
737DH, TEXT 'HOLLERITH COUNT OR QUOTE ERROR IN DATA STATEMENT'
738ML, TEXT 'THIS LINE NUMBER IS ALREADY DEFINED'
739DE, TEXT "WRONG WAY TO END A DO LOOP"
740BS, TEXT 'ILLEGAL IN BLOCK DATA'
741LT, TEXT 'LINE TOO BIG'
742IE, TEXT 'INPUT FILE ERROR, TAKEN AS END STATEMENT'
743PH, TEXT 'THIS FUNCTION / SUBROUTINE STATEMENT IS UNACCEPTABLE'
744MK, TEXT 'YOU MISPELED A KEYWURD'
745OT, TEXT 'ILLEGAL OPERAND TYPE FOR THIS OPERATOR'
746PD, TEXT 'INTERNAL COMPILER ABORT NUMBER TWO'
747MT, TEXT "ILLEGAL VARIABLE TYPE MIXING"
748GV, TEXT 'VARIABLE IN ASSIGNED OR COMPUTED GOTO MUST BE INTEGER OR REAL'
749LI, TEXT 'EXPRESSION IN LOGICAL IF IS NOT TYPED LOGICAL'
750DP, TEXT 'DO PARAMETERS MUST BE INTEGER OR REAL'
751DL, TEXT "YOUR DATA AND VARIABLE LISTS ARE OF DIFFERENT LENGTHS"
752AA, TEXT 'SUBROUTINES MAY ONLY HAVE SIX ARGUMENTS THAT ARE DIMENSIONED'
753SF, TEXT 'BAD STATEMENT FUNCTION'
754DF, TEXT 'BAD DEFINE FILE'
755\fPAGEN, 1
756
757PUTNUM, ISZ PAGEN /BUMP PAGE NUMBER
758 TAD PAGEN
759 TAD (-24 /LT 20?
760 SMA CLA
761 JMP OVER19 /YES
762 TAD (-5 /NO
763 JMS MOVE /MOVE IN NUMBER
764NUM, 0
765 PAGENO-1
766 TAD NUM
767 TAD (5
768 DCA NUM /PT TO NEXT ONE
769 JMP I (CRLF+1
770
771TENS, 0
772ONES, 0
773KNT, 0
774
775OVER19, DCA TENS /CONVERT
776 TAD PAGEN /PAGE NUMBER TO ONES AND TENS
777O1, TAD (-12 /DIVIDE BY TEN
778 SPA
779 JMP .+3
780 ISZ TENS
781 JMP O1
782 TAD (12
783 DCA ONES
784 TAD TENS
785 CLL RTL
786 TAD (HIS-10-1
787 DCA HIP /POINT TO HIGH PART
788 TAD ONES
789 CLL RTL
790 TAD ONES
791 TAD (LOS-5-1
792 DCA LOP
793 TAD (-4
794 JMS MOVE
795HIP, 0
796 PAGENO-1
797 TAD (-5
798 JMS MOVE
799LOP, 0
800 PAGENO+4-1
801 JMP I (CRLF+1
802\fMOVE, 0
803 DCA KNT
804 TAD I MOVE
805 DCA X11
806 ISZ MOVE
807 TAD I MOVE
808 DCA X12
809 ISZ MOVE
810 TAD I X11
811 DCA I X12
812 ISZ KNT
813 JMP .-3
814 JMP I MOVE
815 $
816\f