-
Notifications
You must be signed in to change notification settings - Fork 7
/
SOURCE.alg_m
10173 lines (10173 loc) · 904 KB
/
SOURCE.alg_m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
B 6 5 0 0 I M P L E M E N T A T I O N L A N G U A G E 00001000
C O M P I L E R 00002000
1/68 00003000
DIRECTORY BY SECTION: 00004000
0 COMMENTARY & ERROR MESSAGE CODES. 00005000
1 NON-PROCEDURAL DECLARATIONS 00006000
2 STREAM PROCEDURES AND FORWARD DECLARATIONS. 00007000
3 THE SCANNER 00008000
4 THE EMITTERS & SERVICE ROUTINES 00009000
5 GENERAL COMPONENTS & EXPRESSIONS 00010000
6 STATEMENTS 00011000
7 DECLARATIONS 00012000
8 SYNTAX CONTROLLERS (BLOCK & STATEMENT) 00013000
9 INITIALIZATION AND WRAPUP 00014000
ERROR NUMBERS (USUALLY) HAVE THE NUMBER OF THE SECTION IN WHICH 00015000
DETECTED AS THE FIRST DIGIT. 00016000
100 UNKNOWN IDENTIFIER. 00100000
101 STATEMENT SCANNER SCREWED UP. 00101000
102 PRIMARY SCANNER SCREWED UP 00102000
103 BOOPRIM SCANNER SCREWED UP. 00103000
199 PROCEDURE HAS NOT YET BEEN CODED 00199000
300 SCAN IDENTIFIER OR NUMBER OF > 63 CHARACTERS. 00300000
301 TABLE ILLEGAL CONSTRUCT. 00301000
302 HOOK TOO MUCH NESTING OF DEFINES AND THINGS. 00302000
303 TABLE NUMBER IS TOO LARGE. 00303000
304 UNHOOK EXTRANEOUS CROSSHATCH OR SOMETHING LIKE THAT. 00304000
305 ASSOCIATE MISSING "(" OR "[". 00305000
306 ASSOCIATE MISSING ")" OR "]" OR TOO MANY PARAMETERS. 00306000
307 GOBBLE INVALID STRING CHARACTER. 00307000
308 GOBBLE INVALID STRING CODE OR ILLEGAL STRING SYNTAX. 00308000
400 EMITTERS TOO MUCH CODE IN THIS SEGMENT 00400000
401 EMITV/N DISPLACEMENT TOO BIG 00401000
402 SUBSCRIBER MISSING BRACKET OR SUBSCRIPT. 00402000
403 DOTTER EXPRESSION NOT ARITHMETIC. 00403000
404 DOTIT "." PERIOD NOT FOLLOWED BY FIELD IDENTIFIER. 00404000
405 PURGE LABEL DECLARED FORWARD NOT SEEN 00405000
406 PURGE PROCEDURE DECLARED FORWARD NOT SEEN 00406000
407 GETSPACE ILLEGAL ADDRESS-PART VALUE. 00407000
408 GETSPACE ILLEGAL ADDRESS-PART SYNTAX. 00408000
410 GETSPACE TOO MANY STACK CELLS AT THIS LEVEL. 00410000
415 GETSTACK TOO MANY TEMPORARIES IN USE AT ONE TIME 00415000
501 IFCLAUSE MISSING "THEN". 00501000
502 CASEHEAD EXPRESSION NOT ARITHMETIC. 00502000
503 CASEHEAD MISSING "OF". 00503000
504 IFEXP MISSING "ELSE". 00504000
505 EXPRESSION EXPRESSION IS NOT OF REQUIRED TYPE. 00505000
506 CASEXP MISSING "(". 00506000
507 CASEXP MISSING ")". 00507000
508 RELATION THIS EXPRESSION MAY NOT APPEAR IN A RELATION. 00508000
509 RELATION THIS RELATION MAY USE ONLY "=" OR "!". 00509000
510 RELATION MISSING "FOR" IN STRING RELATION. 00510000
511 RELATION ILLEGAL EXPRESSION TYPE. 00511000
512 BEXP EXPRESSION NOT BOOLEAN TYPE. 00512000
513 AEXP IF EXPRESSION NOT ARITHMETIC TYPE. 00513000
514 SIMPARITH ARRAY EXPRESSION MAY NOT BE SIGNED. 00514000
515 TERM ARRAY AND WORD EXPRESSIONS MAY NOT BE OPERATED UPON 00515000
516 BOOSEC CANT NEGATE AN EXPR UNLESS ITS BOOLEAN. 00516000
517 BOOCOMP EXPRESSION NOT BOOLEAN. 00517000
518 REXP VARIABLE NOT REFERENCE TYPE. 00518000
519 REXP NOT ENOUGH SUBSCRIPTS ON REFERENCE ARRAY. 00519000
520 REXP REF EXPR CANT START WITH THIS TYPE IDENTIFIER. 00520000
521 REXP EXPRESSION NOT OF TYPE REFERENCE. 00521000
522 REXP MISSING ")". 00522000
523 REXP CASE EXPR NOT OF TYPE REFERENCE. 00523000
524 REXP IF EXPRESSION NOT OF TYPE REFERENCE. 00524000
525 REXP REF EXPR CANT START WITH THIS QUANTITY. 00525000
526 REXP MISSING "(". 00526000
527 REXP CANT TRANSFER THIS TO TYPE REFERENCE. 00527000
528 REXP NOT ENOUGH SUBSCRIPTS. 00528000
529 VARIABLE REGISTER ASSIGNMENT MUST BE LEFT-MOST ASSIGNMENT. 00529000
530 VARIABLE LEFT BRACKET DOES NOT FOLLOW ARRAY IDENTIFIER. 00530000
531 VARIABLE FIELD DESIGNATOR IS NOT LEFT-MOST IN LEFT-PART LIST. 00531000
532 VARIABLE A PROCEDURE IDENTIFIER IS USED OUTSIDE OF ITS SCOPE. 00532000
533 LAYITOUT "&" NOT FOLLOWED BY LAYOUT. 00533000
534 LAYITOUT MISSING "(". 00534000
535 LAYITOUT MISSING ")". 00535000
537 ENTRYEXP NOT YET CODED 00537000
538 VARIABLE A VARIABLE IS NOT FOLLOWED BY A REPLACEMENT OPERATOR.00538000
539 VARIABLE A READ ONLY ARRAY MAY NOT BE STORED INTO. 00539000
540 PEXP EXPRESSION NOT POINTER TYPE. 00540000
541 PTRCOMP SKIP PART NOT INTEGER OR REAL EXPRESSION. 00541000
542 ITEMREFERENCE INCORRECT SYNTAX FOR AN ITEM REFERENCE 00542000
543 ENTRYEXPR INCORRECT SYNTAX FOR ENTRY EXPRESSION 00543000
544 LAYITOUT EXPRESSION NOT OF REQUIRED TYPE. 00544000
545 VARIABLE POINTER IDENTIFIER MAY NOT BE SUBSCRIPTED. 00545000
546 SETVARIABLE CANNOT MIX SETS OF VARYING SIZES IN SAME EXP 00546000
547 SETVARIABLE MISSING REPLACEMENT OPERATOR 00547000
548 VARIABLE REGISTERS MAY NOT BE PARTIAL FIELDED. 00548000
549 ARRAYROW MISSING LEFT BRACKET. 00549000
550 ARRAYROW ARRAY ROW MUST HAVE 1 ASTERISK. 00550000
551 LONGSTRING TOO MANY STRING CHARACTERS OR MISSING QUOTE. 00551000
552 STRINGSOURCE STRING MUST BE 4-, 6- OR 8-BIT CHARACTERS. 00552000
553 ARITHCOMP DOUBLE EXPRESSION MAY NOT BE DOTTED. 00553000
554 TERM SIMPARITH WORD EXPRESSIONS CONSIST OF WORD PRIMARY ONLY 00554000
567 VARIABLE EVENTS MAY NOT BE PARTIAL FIELDED 00567000
573 REPLACESTMT UPDATE ON ARITHMETIC SOURCE VALID ONLY FOR UNITS=DIGI00573000
574 SUBSCRIBER ACTUAL SUBSCRIPT(S) MUST PRECEDE ROW DESIGNATOR(S). 00574000
575 VARIABLE FIELDS MAY NOT BE DUPLICATED AND LOADED. 00575000
576 BITFIDDLE MISSING "(". 00576000
577 BITFIDDLE MISSING ",". 00577000
578 BITFIDDLE BAD BIT NUMBER. 00578000
579 BITFIDDLE MISSING ")". 00579000
600 CASESTMT MISSING ":". 00600000
601 CASESTMT MISSING "BEGIN". 00601000
602 CASESTMT TOO MANY STATEMENTS. 00602000
603 PROCALL ILLEGAL USE OF PROCEDURE IDENTIFIER 00603000
604 PROCALL EITHER ACTUAL AND FORMAL PARAMETERS DO NOT AGREE AS 00604000
TO NUMBER OR EXTRA RIGHT PARENTHESIS 00604500
605 ACTUALPARAPART ACTUAL AND FORMAL ARRAYS DO NOT HAVE SAME NUMBER OF 00605000
DIMENSIONS 00605500
607 ACTUALPARAPART NO ACTUAL PARAMETERS MAY START WITH A QUANTITY OF 00607000
THIS TYPE 00607500
608 FORSTMT IMPROPER FOR INDEX VARIABLE 00608000
609 FORSTMT MISSING UNTIL OR WHILE IN STEP ELEMENT 00609000
610 FORSTMT MISSING DO IN FOR CLAUSE 00610000
611 FORSTMT MISSING LEFT ARROW FOLLOWING INDEX VARIABLE 00611000
612 LABELR MISSING COLON 00612000
613 LABELR THE LABEL WAS NOT DECLARED IN THIS BLOCK 00613000
614 LABELR THE LABEL HAS ALREADY OCCURED 00614000
615 GOSTMT LABEL OR CASE DOES NOT FOLLOW GO TO 00615000
616 GOSTMT IMPROPER GO TO WITH CASE 00616000
617 GOSTMT MISSING "(" 00617000
618 GOSTMT ONLY A LABEL MAY APPEAR IN THE LIST 00618000
619 GOSTMT MISSING ")" 00619000
620 ACTUALPARAPART ACTUAL PARAMETER IS INTRINSIC PROCEDURE (NOT ERROR) 00620000
621 ACTUALPARAPART TEMPORARY ABSENCE OF CODE FOR THIS (NOT ERROR) 00621000
622 ACTUALPARAPART THE ACTUAL AND FORMAL PARAMETERS DO NOT AGREE AS TO 00622000
TYPE 00622500
623 ACTUALPARAPART ILLEGAL PARAMETER DELIMETER 00623000
624 COMPOUNDTAIL MISSING SEMICOLON OR END. 00624000
625 COMPOUNDTAIL EXTRA END. 00625000
626 COMPOUNDTAIL MISSING END. 00626000
628 QALGORITHM THIS ALGORITHM IS NOT VALID FOR THIS QUEUE 00628000
629 QALGORITHM MISSING ACTUAL PARAMETER PART IN EXPLICIT CALL 00629000
630 QALGORITHM FIRST ACTUAL PARAMETER OF QALGORITHM IS ILLEGAL 00630000
631 FORSTMT ILLEGAL FOR CLAUSE 00631000
632 FORSTMT ILLEGAL EXPRESSION TYPE 00632000
633 QALGORITHM TOO MANY ACTUAL PARAMETERS 00633000
634 QALGORITHM ILLEGAL PARAMETER DELIMETER (IN THE BROAD SENSE) 00634000
635 QALGORITHM TOO MANY ACTUAL PARAMETERS OR SOMETHING 00635000
636 REPLACESTMT POINTER IDENTIFIER REQUIRED. 00636000
637 REPLACESTMT MISSING KEY WORD "BY". 00637000
638 REPLACESTMT SIMPLE ARITHMETIC VARIABLE REQUIRED. 00638000
639 REPLACESTMT MISSING WHILE OR UNTIL CLAUSE. 00639000
640 REPLACESTMT RELATIONAL OPERATOR OR IN EXPECTED. 00640000
641 REPLACESTMT SET IDENTIFIER REQUIRED. 00641000
642 REPLACESTMT PICTURE IDENTIFIER REQUIRED. 00642000
643 SCANSTMT POINTER IDENTIFIER REQUIRED. 00643000
644 SCANSTMT SIMPLE ARITHMETIC VARIABLE REQUIRED. 00644000
645 SCANSTMT CONDITION MISSING. 00645000
646 SCANSTMT RELATIONAL OPERATOR OR IN EXPECTED. 00646000
647 SCANSTMT SET IDENTIFIER REQUIRED. 00647000
648 QALGORITHM BUSY AND SIZE MUST BE USED AS PRIMARIES 00648000
649 QALGORITHM INCORRECT USAGE OF UNTYPED QUEUE ALGORITHM 00649000
651 REPLACESTMT NUMBER OF CHARACTERS IN THE STRING EXCEEDS LENGTH OF 00650000
THE ARRAY. 00651000
652 REPLACESTMT MISSING LEFT BRACKET. 00652000
653 REPLACESTMT SHOULD BE A ROW 00653000
654 REPLACESTMT POINTER CANNOT BE UPDATED BY SUBCRIPTED VARIABLE. 00654000
655 REPLACESTMT MUST BE A PICTURE ID. 00655000
656 FILLSTMT TOO MANY WORDS OF INITIAL VALUES. 00656000
657 FILLSTMT INITIAL VALUE MUST BE NUMBER OR STRING. 00657000
658 FILLSTMT MISSING RIGHT PARENTHESIS. 00658000
659 FILLSTMT ARRAY ROW REQUIRED. 00659000
660 FILLSTMT MISSING "WITH". 00660000
661 SWAPSTMT MISSING LEFT PARENTHESIS. 00661000
662 SWAPSTMT ARRAYID OR SUBARRAY DESIGNATOR REQUIRED. 00662000
663 SWAPSTMT MISSING COMMA. 00663000
664 SWAPSTMT MISSING RIGHT PARENTHESIS. 00664000
665 SWAPSTMT NUMBER OF UNSPECIFIED SUBSCRIPTS MUST AGREE. 00665000
666 THRUSTMT MISSING DO IN A THRU CLAUSE 00666000
667 FORSTMT MISSING UNTIL FOLLOWING A BY ELEMENT 00667000
668 FORSTMT CONTROL VARIABLE IS NOT SIMPLE IN BY ELEMENT LIST 00668000
669 QALGORITHM BUZZ IS UNTYPED 00669000
670 EVENTINTRINSIC THE PARAMETER MUST BE AN EVENT DESIGNATOR 00670000
671 EVENTINTRINSIC THE PARAMETER MUST BE AN INTERRUPT ID 00671000
672 EVENTINTRINSIC MISSING LEFT OR RIGHT PARENTHESIS 00672000
680 EVENTINTRINSIC SECONDWORD EXPECTS EVENT OR DP PARAMETER 00680000
700 IDLIST THIS ID ALREADY DECLARED IN THIS BLOCK. 00700000
701 MERRIMAC PARENTHESES PROBLEM. 00701000
702 MERRIMAC INCORRECT TYPE OF PROCEDURE OR MONITORED ITEM. 00702000
703 FIELDPART INCORRECT "FIELD PART". 00703000
704 FIELDER INCORRECT "FIELD" - VALUE OR SYNTAX. 00704000
705 LAYOUTDEC INCORRECT "LAYOUT PART" 00705000
706 LAYOUTDEC "FIELD VALUE" IS NOT UNSIGNED INTEGER 00706000
707 LAYOUTDEC ILLEGAL LAYOUT PART 00707000
708 PUTOGETHER TOTAL ALPHA LONGER THAN 2047 CHARACTERS 00708000
709 00709000
710 DEFINEDEC MISSING EQUAL 00710000
711 QUEUEDEC ILLEGAL MULTIPLE USE 0F IDENTIFIER 00711000
712 QUEUEDEC MISSING ENTRY DESCRIPTION 00712000
713 QUEUEDEC MULTIPLE USE 0F SAME ALGORITHM ID IN QUEUE DEC 00713000
714 QUEUEDEC INCORRECT USAGE OF STANDARD QUEUE ALGORITHM 00714000
715 QUEUEDEC THIS CONSTRUCT NOT CODED AS YET (NOT ERROR) 00715000
717 ARRAYDEC THIS CONSTRUCT NOT CODED AS YET (NOT ERROR) 00717000
718 READONLYARRAYDEC ARRAY WORD MISSING. 00718000
719 READONLYARRAYDEC IDENTIFIER DECLARED BEFORE. 00719000
720 INITIALIZEARRAY MISSING LEFT PARANTHESIS. 00720000
721 INITIALIZEARRAY NOT A NUMBER OR A LOGICAL VALUE. 00721000
722 INITIALIZEARRAY TOO BIG AN INTEGER. 00722000
723 INITIALIZEARRAY MISSING RIGHT PARANTHESIS. 00723000
724 ARRAYDEC IDENTIFIER DECLARED BEFORE. 00724000
725 ARRAYDEC MORE THAN ONE IDENTIFIER DECLARED BEFORE +. 00725000
726 ARRAYDEC MISSING LEFT BRACKET. 00726000
727 ARRAYDEC IF YOU KNOW WHAT IT MEANS IMPLEMENT IT. 00727000
728 ARRAYDEC MISSING RIGHT BRACKET. 00728000
729 ARRAYDEC MISSING SEMICOLON. 00729000
730 PROCEDUREDEC PROCEDURE TYPE DIFFERS FROM FORWARD DECLARATION. 00730000
731 PROCEDUREDEC PROCEDURE IDENTIFIER ALREADY USED IN THIS BLOCK. 00731000
732 PROCEDUREDEC A PARAMETER WAS NOT SPECIFIED. 00732000
733 PROCEDUREDEC NUMBER OF PARAMETERS DIFFERS FROM FORWARD DEC. 00733000
734 PROCEDUREDEC SPECTEICATION DIFFERS FROM FORWARD DECLARATION. 00734000
735 PROCEDUREDEC THIS PROCEDURE WAS ALREAOY DECLARED FORWARD. 00735000
736 PROCEDUREDEC MISSING ";" OR "(" AFTER PROCEDURE IDENTIFIER. 00736000
737 FMLPARAPART ILLEGAL PAPAMETER DELIMITER. 00737000
738 FMLPARAPART MISSING "; " AFTER FORMAL PARAMETER LIST. 00738000
739 FMLPARAPART NOT VALID PARAMETER IDENTIFIER. 00739000
740 FMLPARAPART MISSING ";" IN SPECIFICATION PART. 00740000
741 FMLPARAPART ILLEGAL SPECIFIER OR COMBINATION OF SPECIFIERS. 00741000
742 FMLPARAPART TOO MANY ":"S. 00742000
743 FMLPARAPART ID NOT FORMAL, OR ALREADY SPECIFIED. 00743000
744 FMLPARAPART MISSING "[" IN ARRAY SPECIFICATION. 00744000
745 FMLPARAPART ILLEGAL BOUND SPECIFIER. 00745000
746 FMLPARAPART MISSING "]" IN ARRAY SPECIFICATION. 00746000
747 DEFINEDEC FUNNY PARAMETER. 00747000
748 DEFINEDEC MORE THAN 9 DEFINE PARAMETERS. 00748000
749 DEFINEDEC MISSING "(". 00749000
750 QUEUEDEC MORE THAN 32767 ITEMS 00750000
751 QUEUEDEC INCORRECT SYNTAX FOR LOCKING SPECIFICATION 00751000
752 QUEUEDEC MISSING RIGHT BRACKET IN SIZE SPECIFICATION 00752000
753 QUEUEDEC ILLEGAL SYNTAX FOR QUEUE ARRAY BOUND 00753000
756 PICTUREDEC ILLEGAL REPEAT PART VALUE. 00756000
757 PICTUREDEC MISSING ")" IN REPEAT PART. 00757000
758 PICTUREDEC PICTURE ID ALREADY USED IN THIS BLOCK. 00758000
759 PICTUREDEC MISSING "(" AFTER PICTURE ID. 00759000
760 PICTUREDEC ILLEGAL PICTURE CHARACTER. 00760000
783 IDLIST EVENT MAY NOT HAVE INITIAL VALUE 00783000
784 FMLPARAPART THIS ID HAS APPEARRED IN THE VALUE PART. 00784000
785 INTERRUPTDEC MISSING EVENT DESIGNATOR 00785000
786 INTERRUPTDE C MISSING "ON" OR COLON 00786000
787 INTERRUPTDEC MISSING COMMA 00787000
788 PROCEDUREDEC PROCEDURE FOR SEPARATED COMPILING CANNOT BE EXTERNAL.00788000
789 PROCEDUREDEC PROCEDURE FOR SEPARATED COMPILING CANNOT BE FORWARD. 00789000
790 PROCEDUREDEC GLOBAL PROCEDURE SHOULDNT HAVE A BODY. 00790000
791 PROCEDUREDEC TOO MANY GLOBAL DECLARATIONS. 00791000
800 DECLARATIONS MISSING ";" AFTER DECLARATION. 00800000
801 DECLARATIONS ILLEGAL COMBINATION OF DECLARATORS. 00801000
802 DECLARATIONS "SAVE" MAY NOT BE USED THIS WAY. 00802000
803 DECLARATIONS "OWN" MAY NOT BE USED THIS WAY. 00803000
804 STATEMENT UNRECOGNIZABLE STATEMENT STARTER. 00804000
805 STATEMENT DECLARATIONS SHOULD PRECEDE STATEMENTS. 00805000
806 STATEMENT MISSING "UNTIL" IN DO STATEMENT. 00806000
807 STATEMENT MISSING "DO" IN WHILE STATEMENT. 00807000
808 PRIMARY NO PRIMARY MAY START THIS WAY. 00808000
809 PRIMARY MISSING ")". 00809000
810 PRIMARY SOMEBODY GOOFED, SOMEWHERE. 00810000
811 PRIMARY ILLEGAL TRANSFER TYPE. 00811000
812 PRIMARY MISSING "(". 00812000
813 PRIMARY ILLEGAL EXPR TYPE IN TRANSFER FUNCTION. 00813000
814 PRIMARY ILLEGAL SECOND EXPRESSION IN TRANSFER FUNCTION. 00814000
815 PRIMARY TIMER AND XSIGN MAY NOT BE READ/ MISSING "+". 00815000
816 PRIMARY WRONG TYPE EXPRESSION IN REGISTER ASSIGNMENT. 00816000
817 BOOPRIM NO PRIMARY STARTS LIKE THIS. 00817000
818 BOOPRIM SOMEBODY GOOFED. 00818000
819 BOOPRIM MISSING ")". 00819000
820 BOOPRIM MISSING "(". 00820000
821 BOOPRIM ILLEGAL EXPRESSION TYPE IN TRANSFER FUNCTION. 00821000
822 PTRPRIM COMPILER ERROR. 00822000
823 PTRPRIM MISSING ")". 00823000
824 PTRPRIM CASE EXPRESSION NOT POINTER TYPE. 00824000
825 PTRPRIM POINTER PRIMARY CANNOT START WITH THIS. 00825000
826 MAKEPOINTER MISSING "(" 00826000
827 MAKEPOINTER MUST BE ARRAY IDENTIFIER. 00827000
828 MAKEPOINTER MUST BE ARRAY ROW. 00828000
829 MAKEPOINTER MUST BE ONE-DIMENSIONAL ARRAY. 00829000
830 MAKEPOINTER MISSING ")" 00830000
831 SETPRIM MISSING RIGHT PARENTHESIS 00831000
833 MAKEPOINTER CHARACTER SIZE MUST BE LITERAL 4, 6 OR 8. 00833000
834 BOOPRIM EXPRESSION BEFORE "IN" MUST BE POINTER OR SINGLE 00834000
835 BOOPRIM SET IDENTIFIER REQUIRED AFTER "IN". 00835000
836 STATEMENT HAPPENED AND AVAILABLE ARE BOOLEAN INTRINSICS 00836000
837 BOOPRIM THIS EVENT INTRINSIC IS UNTYPED 00837000
838 DECLARATIONS NOTHING BUT PROCEDURES CAN BE SEPARATELY COMPILED. 00838000
839 DECLARATIONS NO SAVE PROCEDURE CAN BE SEPARATELY COMPILED 00839000
840 DECLARATIONS NO "OWN" DEC IS PERMITTED IN SEPAR. COMPILATION 00840000
841 DECLARATIONS NO "VALUE" DEC IS PERMITTED IN SEPAR. COMPILATION 00841000
850 GLOBALDECLARATIONS ILLEGAL GLOBAL DECLARATION FOR SEPARATED COMPILE00850000
851 GLOBALDECLARATIONS MISSING SEMICOLON ON GLOBAL DECLARATION. 00851000
852 GLOBALDECLARATIONS ARRAY ID ALREADY DECLARED OR MISSING. 00852000
853 GLOBALDECLARATIONS MISSING "[" IN ARRAY DECLARATION. 00853000
854 GLOBALDECLARATIONS ILLEGAL BOUND SPECIFIER. 00854000
855 GLOBALDECLARATIONS MISSING "]" IN ARRAY DECLARATION. 00855000
856 GLOBALDECLARATIONS GLOBAL ID ALREADY DECLARED OR MISSING. 00856000
857 GLOBALDECLARATIONS TOO MANY GLOBAL DECLARATIONS. 00857000
858 SEPARATEDCOMPILING MISSING SEMICOLON AFTER LAST "END" OF PROCEDURE.00858000
900 QUEUEDEC MISSING SPECIFICATION IN FORMAL ITEM LIST. 00900000
921 GENMICRO REPEAT } 65535. 00921000
922 PICTUREDEC EXTRANEOUS ( IN PICTURE (INVALID REPEAT PART). 00922000
923 REPLACESTMT MISSING ")". 00923000
924 PICTUREGEN MISSING ",". 00924000
925 PICTUREGEN MISSING EXPRESSION. 00925000
926 PICTUREGEN MISSING ")". 00926000
COMMENT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 10003000
NON-PROCEDURAL DECLARATIONS 10004000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *;10005000
BEGIN 10006000
INTEGER ERRORCOUNT; % NUMBER OF ERROR MESSAGES GIVEN. 10007000
BOOLEAN DONSBUG; % PRT 26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10008000
REAL PRT27; COMMENT SEQUENCE NUMBER%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%; 10008100
FILE IN CARD (5,10); % CARD INPUT 10009000
FILE IN TAPE DISK SERIAL (2,10,150); 10010000
SAVE FILE NEWTAPE DISK SERIAL [20:3000] 10011000
(2,10,150,SAVE 10);% NEW SRCE10012000
SAVE FILE CODE DISK [20:1250 ] (4,30,SAVE 100);%FINAL 10013000
FILE TEMP DISK SERIAL[20:200]"TEMP""CODE"(2,30,150,SAVE 100); 10014000
FILE LINE 4 "6500MCP" "LISTING" (3,17); 10015000
SAVE FILE INFOUT DISK SERIAL[4:128]"MCP""GLOBALS"(2,256,SAVE 10); 10015100
FILE INFIN DISK SERIAL "MCP""GLOBALS"(2,256); 10015200
FILE DECK "ESPOL""DECK" (2,20,SAVE 10); 10015900
% SCANNER VARIABLES 10016000
INTEGER NCR, % POINTS TO NEXT CHAR TO BE SCANNED. 10017000
FCR, % POINTS TO FIRST CHAR CURRENT ID OR NR. 10018000
LCR, % POINTS TO SEQ NR CURRENT RECORD, 10019000
CLCR, % POINTS TO SEQ NR CURRENT CARD RECORD. 10020000
TLCR, % POINTS TO SEQ NR CURRENT TAPE RECORD. 10021000
CONTEXT, % USED BY THE COMPILER TO TELL THE SCANNER 10022000
% WHAT TO DO: 10023000
%0=DECLARATIONS (GLOBAL IDS UNKNOWN) 10024000
%1=SPECIFICATIONS 10025000
%2=STATEMENTS & EXPRESSIONS 10026000
%3=END COMMENTARY 10027000
SCRAM, % SCRAMBLE INDEX OF LAST THING SEEN. 10028000
COUNT, % SIZE OF LAST THING SCANNED. 10029000
I, % SCAN POINTER FOR CURRENT ITEM. 10030000
NXTELBT, % NEXT AVAILABLE WORD IN ELBAT. 10031000
ELCLASS, % ELBAT[I].CLASS 10032000
RESULT, % WHAT SCAN FOUND OR IS TO LOOK FOR. 10033000
LASTUSED, % REMEMBERS WHERE THE LAST RECORD COME FROM10034000
%1=CARD (ONLY) 10035000
%2=CARD (INSERT WITH TAPE) 10036000
%3=CARD PATCHING TAPE 10037000
%4=TAPE WITH CARD WAITING. 10038000
%5=TAPE-RAN OUT OF CARDS. 10039000
% >5 IS INFO INDEX OF DEFINED STUFF. 10040000
CARDCOUNT, % JUST WHAT IT SAYS. 10041000
SCANCOUNT, % NUMBER OF CALLS ON TABLE 10042000
DEFINECTR, % LEVEL OF DEFINE DFCL NESTING. 10043000
DEFINEINDEX, % TOP OF DEFINEARRAY. 10044000
TCOUNT, % PREVIDUS COUNT, SOMETIMES. 10045000
LASTSEQUENCE; % ADDRESS OF LAST SEQUENCE NUMBER SEEN. 10046000
% +1 IS VOID SEQ NR. 10047000
% +2 IS ERROR SEQ NR. 10048000
REAL C, % VALUE OF LAST CONSTANT. 10049000
T, % TEMP FOR NUMBER CONVERSION. 10050000
THI, 10051000
TLO, 10052000
NHI, 10053000
NLO, 10054000
SPEC, % "SPECIAL" WORD FOR CURRENT CHARACTER 10055000
SEQNUMBER, % CURRENT SEQUENCE NUMBER. 10056000
VOIDNUMBER, % VOID SEQUENCE NUMBER. 10057000
ERRSEQNUMBER; % ERROR SEQUENCE NUMBER. 10058000
ARRAY SPECIAL[0:63], % SPECIAL-CHARACTER INFO. 10059000
INFO[0:127,0:255], % ALL WE KNOW ABOUT EVERYTHING 10060000
ADDL[0:127,0:255], % IS IN INFO AND ADDL 10061000
STACKHEAD[0:124], % ASSORTED LIST HEADS. 10062000
ELBAT[0:75]; % THE WINDOW BETWEEN THE SCANNER & COMPILER10063000
BOOLEAN LISTOG,SEQ, % SUNDRY OUTPUT TOGGLES 10064000
DECKTOG, 10064100
VOIDING, % --AND INPUT TYPES, TOO. 10065000
PRTOG,RESEQTOG, 10066000
SEPARATOG, % SEPARATED COMPILATION OF PROCEDURES. 10066100
% <0: AVAILABLE FOR SETTING BY $-CARD 10066101
% =2: GLOBAL DECLARATION TIME 10066102
% =1: SEPARATED PROCEDURE COMPILING TIME 10066103
% =0: REGULAR COMPILING 10066104
% =4: INSIDE SEPARATED PROCEDURE COMPILING 10066105
SVINFOTOG, % INFO & ADDL TO BE SAVED ON CODE FILE 10066200
% <0: AVAILABLE FOR SETTING BY $-CARD 10066201
% =0: RESET, INFO & ADDL NOT SAVED GENERALY10066202
% =1: SET, INFO & ADDL SAVED UNCONDITIONAL 10066203
DEBUGTOG, 10067000
DUMPTOG, 10068000
NOJUMPTOG, 10068500
ENDTOG, 10069000
INFOTOG,SAVETOG, 10069100
LISTING, 10069200
POOLTOG, 10069300
NEWTOG; 10070000
ALPHA Q; % ACCUM[1] OF LAST ID-TYPE THING. 10071000
INTEGER ACCUMSTART, % ABS ADDRESS OF ACCUM[1].[18:6] 10072000
ACCUMINX, % ABS ADDRESS OF END OF ACCUMED BLOB 10073000
BUMPCHAR, % CONSTANT 32768 , @100000 10074000
BUMPWORD; % CONSTANT 229375, @677777 10075000
INTEGER CSZ; COMMENT STRING CHARACTER SIZE; 10075100
INTEGER MAXCSZ; COMMENT MAX STRING CHAR SIZE IN CURRENT STRING; 10075200
BOOLEAN LEFTY; COMMENT TRUE IFF STRING IS LEFT JUSTIFIED; 10075300
BOOLEAN LITERALS; % TO KEEP PEOPLE HONEST ON IN LINE FIELDS, ETC. 10075350
DEFINE DEFAULTSIZE = 6#; %DEFAULT STRING SIZE -- NOT ALL REFERENCES****10075400
SAVE ARRAY ACCUM[0:10]; % WHAT THE SCANNER FOUND 10076000
ALPHA CHR; % USUALLY THE NEXT CHARACTER TO BE SCANNED 10077000
DEFINE STEPNCR=NCR~(IF NCR<BUMPWORD THEN BUMPCHAR ELSE -BUMPWORD)+NCR#;10078000
% NCR IS AN ABSOLUTE ADDRESS WITH THE 10079000
% CHARACTER POINTER IN 30:3. STEPNCR BUMPS 10080000
% NCR BY ONE CHAR. 10081000
DEFINE BUMPNCR= IF STEPNCR=LCR THEN NCR~READACARD#; 10082000
% IN ADDITION, BUMPNCR SWITCHES TO A NEW 10083000
% CARD WHEN NECESSARY 10084000
INTEGER RCOUNT, % USUALLY 63-COUNT. 10085000
GTI1, % JUNK CELL, USUALLY TO INTEGERIZE THINGS. 10086000
L, % SYLLABLE COUNTER, USED BY THE EMITTERS: 10087000
% INCLUDED HERE BECAUSE IT GETS ON LISTING 10088000
SEGNO, % CURRENT PROGRAM-SEGMENT NUMBER. 10089000
RESEQNR, % NEXT SEQ NR WHEN BESEQUENCING. 10090000
RESEQINC; % INCREMENT WHEN RESEQUENCING. 10091000
SAVE ARRAY CBUFF, % CARD IMAGE FROM CARD READER. 10092000
TBUFF[0:9]; % CARD IMAGE FROM TAPE FILE. 10093000
ARRAY 10094000
STACKMASK, % MAX DISP IN [18:15], LL IN[33:15] 10095000
STACKTOP, % CURRENT ASSIGNMENT FOR EACH LEVEL 10096000
MAXSTACK[0:31], % MAX STACK SIZE FOR EACH ADDR LEVEL 10097000
LBUFF[0:16]; % FOR BUILDING PRINT IMAGES. 10098000
DEFINE MAXDISPF = [18:15]#, 10099000
LLMASKF = [33:15]#; 10100000
INTEGER TIME1, TIME2; % THE TIME WHEN WE BEGAN 10101000
INTEGER SETSIZE; % NUMBER OF WORDS IN SET 10101100
REAL FIRSTINFO; 10101200
% THESE ARE THE FIELDS IN ELBAT WORDS, INFO ENTRIES, ETC. 10102000
DEFINE MONF =[ 1: 1]# % =1 IF MONITORED 10103000
,ADDRESS =[ 2:19]# % 10104000
, LVEL =[ 3: 6]# % ADDRESSING OR LEXICOGRAPHIC LEVEL 10105000
, DISP =[ 9:12]# % DISPLACEMENT WITHIN LEVEL 10106000
,CLASS =[21: 7]# % 10107000
,RSVD =[28: 1]# % =1 IF RESERVED NAME 10108000
,TYPE =[29: 4]# % 10109000
,LINK =[33:15]# % POINTER TO ADDL OR INFO 10114000
, LINKR =[33: 7]# % ROW 10115000
, LINKC =[40: 8]# % COLUMN 10116000
,EBCDF =[32: 8]# % EBCDIC REPRESENTATION OF CHARACTER-- 10116100
,ASCF =[ 1: 8]# % ASCII -- APPEAR IN "SPECIAL" ONLY 10116200
,CONL =[ 3:15]# % CONGRUENCY LINK 10117000
,CONR =[ 3: 7]# % -- ROW 10118000
,CONC =[10:8]# % -- COLUMN 10119000
,CHRCNT =[18: 6]# 10120000
,ALFA =[24:24]# 10121000
,ALFACNT =[18:30]# 10122000
,FIRSTCHR =[24: 6]# 10123000
,CF = 33:15 # 10124000
,FF = 18:15 # 10125000
,NOPAR =[40:8]# % NUMBER OF PARAMETERS FOR A PROCEDURE 10126000
,NODIM =[40:8]# % NUMBER OF DIMENSIONS FOR AN ARRAY 10127000
,PARTALFA= [18:30]# % CHRCNT PLUS ALFA 10128000
,ALGNOF = CLASS# % FIELD FOR NO OF ALGORITHMS 10129000
,QLINK = ADDRESS# % IN ITEM ADDL,POINTING TO Q INFO10130000
,ITMNOF =LINKR# %FIELD FOR NUMBER OF ITEMS 10131000
,SIZEF =LINKC# %FIELD FOR SIZE OF ENTRY 10131300
,ALGNO = [33:13]# %FIELD FOR ALGORITHM KEY 10132000
,PARADESC= [46:2]# %FIELD FOR PARAMETER DESCRIPIION 10133000
,QINDEXF =[2:10]# 10133100
,ITMQAINDXF =[12:9]# 10133150
,STANDF = ADDRESS# % =0 STANDARD,=1 NON STANDARD ALG10133500
,ALLBUTLINK = [1:32]# %ALL ELBAT EXCEPT LINK 10133520
,KIND = [40:8]# %WHICH EVENT INTRINSIC 10133540
; 10134000
DEFINE BOUND (BOUND1) = 10135000
IF (BOUND1).CLASS<REGID THEN IF (BOUND1).CLASS>PTRID THEN 10136000
GIT(TAKE(BOUND1)).NODIM ELSE 0 ELSE 0#; 10136100
COMMENT THESE ARE THE FIELDS IN ADDL ENTRIES THAT ARE USED BY DEFINE, 10137000
FIELD AND LAYOUT. ;10138000
DEFINE LAYINIT =[ 7: 1]# % IF = 1, NEXT ADDL ENTRY IS INITIAL VALUE 10139000
,LAYCODE =[ 8: 8]# % FIELDV OR TAGV (LAYOUT ONLY) 10140000
,LAYAEXP =[16:16]# % EXP FOR STARTING BIT 10141000
, LAYLTA=[16: 1]# % IF = 1 LAYLNA IS THE LITERAL OTHERWISE 10142000
% LAYLNA POINTS TO TEXT FOR ARITH EXP 10143000
, LAYLNA=[17:15]# 10144000
,LAYBEXP =[32:16]# % EXP FOR NUMBER OF BITS 10145000
, LAYLTB=[32: 1]# % SEE LAYLTA 10146000
, LAYLNB=[33:15]# 10147000
,STARTBIT =[ 9: 6]#%STARTING BIT FOR BIT OPERATORS - INFO.DISP 10148000
,NOOFBITS =[15: 6]#%NUMBER OF BITS FOR BIT OPERATORS - INFO.DISP10149000
; 10150000
REAL KLASSF, % CLASS IN LOW ORDER 7 BITS 10151000
TYPEF, % TYPE IN LOW ORDER 3 BITS 10152000
ADDRSF; % ADDRESS IN LOW ORDER 19 BITS 10153000
BOOLEAN FORMALF, % FML BIT OF ELBAT WORD 10154000
ITEMF, % QBIT OF ELBAT WORD 10154100
VONF; % VAL BIT OF ELBAT WORD 10155000
SAVE ARRAY DEFINEARRAY [0:47]; % FOR SCANNING DEFINDIDS 10156000
BOOLEAN MACRO; COMMENT - FALSE IF SCANNING ACTUAL SYMBOL LIST.; 10157000
ARRAY DEFINFO [0:89]; % DEFINE PARAMETER IDS ETC. NO. IDS{9 10158000
% ALPHA TEXT TO ADDL VARIABLES 10159000
INTEGER NEXTCHAR, % NEXT AVAILABLE CHAR IN ADDL 10160000
% 30:15 ADDL INDEX 10161000
% 45: 3 CHARACTER WITHIN ADDL INDEX 10162000
REMCOUNT, % NUMBER OF 6-BIT CHARACTER POSITIONS IN AN ADDL10163000
% ROW 10164000
CHARCOUNT; % TOTAL NUMBER OF CHARACTERS INSERTED IN ADDL 10165000
% BY A GIVEN CALL ON TEXT. 10166000
BOOLEAN BADSTUFF; % ALPHA LONGER THAN 2047 CHARACTERS (TOTAL) 10167000
COMMENT DEFINES FOR PARAMETERS TO TEXT 10168000
DEFINEV ;10169000
DEFINE FIELDEXPA = DEFINEV + 1#, 10170000
LAYEXPA = FIELDEXPA #, 10171000
FIELDEXPB = DEFINEV + 2#, 10172000
LAYEXPB = DEFINEV + 3#; 10173000
INTEGER N; % SCRATCH 10174000
REAL GT1,GT2,GT3,GT4,GT5; % SCRATCH 10175000
REAL QGT1; %USED IN QUEUEDEC TO REPLACE GT1 10175500
BOOLEAN TB1; % SCRATCH 10176000
BOOLEAN ERRORTOG; 10177000
BOOLEAN ARRAYDECTOG; %ARRAYDEC IN BLOCK 10177400
DEFINE BLOCKEXITPCW=10#; %PCW FOR BLOCKEXIT IN (0,12) 10177600
DEFINE GOTOSOLVERPCW=11#; % PCW FOR GOTOSOLVER IN (0,13) 10177700
BOOLEAN DONE, SAVED; 10178000
BOOLEAN FLAGS; 10179000
DEFINE DPTOG = FLAGS.[45:1]#, 10179100
STRINGSOURCEFLAG = FLAGS.[46:1]#, 10179110
DEFINESFLAG = FLAGS.[44:1]#, 10179120
THIFLAG = FLAGS.[46:1]#, 10179200
TLOFLAG = FLAGS.[47:1]#; 10179300
DEFINE WRITELBUFF=WRITE(LINE[DBL],17,LBUFF[*])#; 10180000
INTEGER DEFINEADDR; % ADDRESS OF DEFINEARRAY[0] 10181000
ARRAY TEN[0:68]; % POWERS OF TEN 10182000
DEFINE BUMPL= L~L+3#; 10183000
DEFINE INDXCHK=IF LASTINDEX=L-1 THEN IF GET(L~L-1)=NXLV THEN EMIT(INDX)10183300
ELSE L~L+1 ELSE#; 10183500
COMMENT VARIABLE SOMETIMES ISSUES NXLV RATHER THAN INDX; 10183510
DEFINE STUFF = EMIT(STFF)#; 10183540
DEFINE ANEVENT = EVENTID AND (GT1~ELBAT[I]).TYPE! 10183560
FORMALNAMEQ#; 10183580
ARRAY EDOC[0:31,0:255]; % CODE ACCUMULATED FOR CURRENT SEG 10184000
ARRAY INZCODE[0:31,0:255]; COMMENT EDOC FOR "SAVE 1" PROCEDURES; 10184100
INTEGER SAVEL; COMMENT L FOR INZCODE; 10184200
INTEGER CURRENT, % CURRENT ADDRESSING LEVEL 10185000
STATE, 10186000
MAXDISP , % MAXIMUM DISPLACEMENT FOR CURRENT LEVEL 10187000
LLMASK; % INVERTED ADDRESSING-LEVEL, FOR VALC,ETC10188000
INTEGER MODE; 10189000
INTEGER CSTATE; 10190000
DEFINE S0 = 128#; % INITIAL SIZE OF D0 - STACK 10190050
%%%%%%%%%%%%%%%%%%%%%% FOR SEPARATED COMPILATION %%%%%%%%%%%%%%%%%%%%%%%10190100
FILE SEPF DISK SERIAL[20:300](2,30,150); 10190110
ARRAY SEPA[0:29] % SEPARATED COMPILING INFORMATION (2-WDS/LEVEL) 10190120
,SEPSTR[0:12] % INFORMATION STORAGE IN BETWEEN SEP. PROCEDURES10190130
,AY[0:29] % SRATCH ARRAY. 10190140
; 10190150
REAL GLOBLCNT % COUNT OF GLOBALS IN A SEPARATED COMPILATION 10190160
,GINFO % STARTING INFO INDEX OF GLOBALS 10190170
,GADDL % STARTING ADDL INDEX OF GLOBALS 10190180
,PCW % PCW WHICH JUST HAS BEEN EMITED BY "EMITPCW" 10190190
,SEPAX % CURRENT SEPA[*] INDEX 10190200
,SEPFX % CURRENT SEPF-RECORD INDEX 10190210
,TOTALSEGSIZE % TOTAL SEGMENT SIZE 10190213
,CORESIZE % THIS IS NOT FOR SEPARATED COMPILING ONLY 10190217
; 10190220
DEFINE ENTERSEPA(ENTERSEPA1,ENTERSEPA2,ENTERSEPA3) = 10190230
IF REAL(SEPARATOG)=4 THEN 10190240
IF ERRORCOUNT=0 THEN 10190250
BEGIN 10190260
SEPA[SEPAX ]~PCW&SEGNO[01:37:11]; 10190270
SEPA[SEPAX+1]~ENTERSEPA1&ENTERSEPA2[19:32:16]& 10190280
ENTERSEPA3[03:32:16]; 10190290
IF SEPAX~SEPAX+2}30 THEN 10190300
BEGIN 10190310
WRITE(SEPF,30,SEPA[*]); 10190320
SEPFX~SEPFX+15; 10190330
SEPAX~0; 10190340
END; 10190350
END#; 10190360
DEFINE DKADDR=TEMPADDR#; % TEMP DISK FILE ADDRESS 10190365
DEFINE SEPLEVEL=3#; % RUNNING LEVEL OF OUTER MOST BLOCK OF PROCEDURE10190380
FORMAT GFMT(X4,"GLOBAL=(02,0",A4,")"); 10190390
DEFINE GLOBALINDEX = IF PRTOG THEN WRITE(LINE[DBL],GFMT,O(GLOBLCNT))#;10190400
%%%%%%%%%%%%%%%%%%% END OF FOR SEPARATED COMPILATION %%%%%%%%%%%%%%%%%%%10190498
% 10190499
%%%%%%%%%%%%%%%%%%%%%%%% FOR EXTERNAL PROCEDURE %%%%%%%%%%%%%%%%%%%%%%%%10190600
FILE INFF DISK SERIAL[20:1500](2,30,150); % SAVE INFO FILE 10190610
ARRAY INFD[0:15,0:255] % SAVE INFO DIRECTORY 10190620
; 10190630
REAL STARTINFO % STARTINFO INFO INDEX OF THE PROGRAM 10190640
,STARTADDL % ARTINFO ADDL INDEX OF THE PROGRAM 10190650
,EXTRNLCNT % EXTERNAL PROCEDURE COUNT 10190660
,LASTEXT % INDEX OF INFO[*] OF THE LAST EXTERNAL PROC 10190661
,INFFX % RECORD INDEX OF INFF FILE 10190662
,INFDX % WORD INDEX OF INFO[*] 10190664
; 10190670
BOOLEAN SVINFO % INFO & ADDL TO BE SAVED FOR THIS CURRENT LEVEL10190680
,XTRNL % EXTERNAL PROCEDURE 10190682
; 10190690
%%%%%%%%%%%%%%%%%%%% END OF FOR EXTERNAL PROCEDURE %%%%%%%%%%%%%%%%%%%%%10190998
% 10190999
REAL COUNTQALG, % COUNT OF NO. OF NON STANDARD Q ALGORITMS ENCOUNT- 10191000
% ERED AT A GIVEN LEVEL. INITIALISED TO STARTNSQ AT 10192000
% BLOCK ENTRY AND UPDATED BY 1 EACH TIME NON STANDARD10193000
% ALGORITHM ENCOUNTERED. UNIQUE IDENTIFICATION OF 10194000
% Q ALGORITHM ID AT ANY LEVEL 10195000
PCL, 10195500
INVISIBLE; % POINTS TO INFO ENTRY OF FIRST INVISIBLE ITEM AFTER 10196000
% SPECPART HAS PROCESSED Q ENTRY DESCRIPTION 10197000
BOOLEAN FIXCALL % FALSE IF FIX CALLED FROM STATEMENT. 10197200
% ALTERNATIVE IS TO PASS PARAMETER TO 10197220
% EVENT INTRINSIC 10197240
; 10197260
DEFINE STARTNSQ = 511#;%UPPER LIMIT ON NUMBER OF STANDARD Q ALGORITHMS10197300
ARRAY QALGORYTHM [0:19]; % DO NOT EXPAND BOUND BEYOND 62 10198000
COMMENT ONE ENTRY OF ONE OR TWO WORDS PER STANDARD Q ALGORITHM WITH 10199000
FIRST WORD HAVING FOLLOWING FIELDS; 10200000
DEFINE ALGKEY = [6:6]#, % FIELD FOR ALGORITHM IDENT 10201000
ALGTIPE = [12:3]#, % FIELD FOR ALGORITHM TYPE 10202000
ALGPD = [15:3]#, % FIELD FOR PARAMETER DESCRIPTION10203000
NOWORDS = [4:1]#; % NUMBER OF WORDS IN THIS ENTRY 10204000
DEFINE MAXQALG= 19#; % NUMBER OF ENTRIES IN QALGORYTHM 10205000
ALPHA ARRAY OPS[0:768]; % OPERATOR MNEMONICS FOR BUGOUT 10206000
DEFINE VALC= 63#,NAMC=127#,ADD =128#,SUBT=129#,MULT=130#,DIVD=131#,10207000
IDIV=132#,RDIV=133#,NTIA=134#,NTGR=135#,LESS=136#,GREQ=137#,GRTR=138#,10208000
LSEQ=139#,EQUL=140#,NEQL=141#,CHSN=142#,MULX=143#,LAND=144#,LOR =145#,10209000
LNOT=146#,LEQV=147#,SAME=148#,VARI=149#,BSET=150#,DBST=151#,FLTR=152#,10210000
DFTR=153#,ISOL=154#,DISO=155#,INSR=156#,DINS=157#,BRST=158#,DBRS=159#,10211000
BRFL=160#,BRTR=161#,BRUN=162#,EXIT=163#,STBR=164#,NXLN=165#,INDX=166#,10212000
RETN=167#,DBFL=168#,DBTR=169#,DBUN=170#,ENTR=171#,EVAL=172#,NXLV=173#,10213000
MKST=174#,STFF=175#,ZERO=176#,ONE =177#,LT8 =178#,LT16=179#,PUSH=180#,10214000
DLET=181#,EXCH=182#,DUPL=183#,STOD=184#,STON=185#,OVRD=186#,OVRN=187#,10215000
LOAD=189#,LT48=190#,MPCW=191#,SCLF=192#,DSLF=193#,SCRT=194#,DSRT=195#,10216000
SCRS=196#,DSRS=197#,SCRF=198#,DSRF=199#,SCRR=200#,DSRR=201#,ICVD=202#,10217000
ICVU=203#,SNGT=204#,SNGL=205#,XTND=206#,IMKS=207#,TEED=208#,PACD=209#,10218000
EXSD=210#,TWSD=211#,TWOD=212#,SISO=213#,SXSN=214#,ROFF=215#,TEEU=216#,10219000
PACU=217#,EXSU=218#,TWSU=219#,TWOU=220#,EXPU=221#,RTFF=222#,HALT=223#,10220000
TLSD=224#,TGED=225#,TGTD=226#,TLED=227#,TEQD=228#,TNED=229#,TUND=230#,10221000
TLSU=232#,TGEU=233#,TGTU=234#,TLEU=235#,TEQU=236#,TNEU=237#,TUNU=238#,10222000
CLSD=240#,CGEQ=241#,CGTD=242#,CLED=243#,CEQD=244#,CNED=245#,CLSU=248#,10223000
CGEU=249#,CGTU=250#,CLEU=251#,CEQU=252#,CNEU=253#,NOOP=254#,NVLD=255#,10224000
JOIN=322#,SPLT=323#,IDLE=324#,SINT=325#,EEXI=326#,DEXI=327#,SCNI=330#,10225000
SCNO=331#,WHOI=334#,HEYU=335#,NTGD=385#,OCRX=389#,LOG2=395#,IRWL=429#,10226000
PCWL=430#,MVST=431#,STAG=436#,RTAG=437#,RSUP=438#,RSDN=439#,RPRR=440#,10227000
SPRR=441#,RDLK=442#,CBON=443#,LODT=444#,LLLU=445#,SRCH=446#,USND=464#,10228000
UABD=465#,TWFD=466#,TWTD=467#,SWFD=468#,SWTD=469#,TRNS=471#,USNU=472#,10229000
UABU=473#,TWFU=474#,TWTU=475#,SWFU=476#,SWTU=477#,SLSD=496#,SGED=497#,10230000
SGTD=498#,SLED=499#,SEQD=500#,SNED=501#,SLSU=504#,SGEU=505#,SGTU=506#,10231000
SLEU=507#,SEQU=508#,SNEU=509#,MINS=720#,MFLT=721#,SFSC=722#,SRSC=723#,10232000
RSTF=724#,ENDF=725#,MVNU=726#,MCHR=727#,INOP=728#,INSG=729#,SFDC=730#,10233000
SRDC=731#,INSU=732#,INSC=733#,ENDE=734#; 10234000
DEFINE UNKNOWNID = 0#, 10235000
FORMALID = 1#, 10236000
FIELDID = 2#, 10237000
EVENTID = 3#, 10238000
LAYOUTID = 4#, 10239000
PROCID = 5#, 10240000
LABELID = 6#, 10241000
DEFINDID = 7#, 10242000
BOOPROCID = 8#, 10243000
DPPROCID = 9#, 10244000
REALPROCID = 10#, 10245000
INTPROCID = 11#, 10246000
REFPROCID = 12#, 10247000
WORDPROCID = 13#, 10248000
PTRPROCID = 14#, 10249000
BOOID = 15#, 10250000
DPID = 16#, 10251000
REALID = 17#, 10252000
INTID = 18#, 10253000
REFID = 19#, 10254000
WORDID = 20#, 10255000
PTRID = 21#, 10256000
BOOARRAYID = 22#, 10257000
DPARRAYID = 23#, 10258000
REALARRAYID = 24#, 10259000
INTARRAYID = 25#, 10260000
REFARRAYID = 26#, 10261000
WORDARRAYID = 27#, 10262000
PCID = 28#, 10263000
BOOROAID = 29#, 10264000
DPROAID = 30#, 10265000
REALROAID = 31#, 10266000
INTROAID = 32#, 10267000
EVENTARRAYID = 33#, 10268000
QUEUEARRAYID = 34#, 10269000
REGID = 35#, 10270000
QUEUEID = 36#, 10271000
NULLV = 37#, 10272000
TRUTHV = 38#, 10273000
NUMBER = 39#, 10274000
STRNGCON = 40#, 10275000
QALGID = 42#, 10277000
INTERRUPTID = 43#, 10278000
INTRINSICEVENT = 44#, 10279000
WORDV = 45#, 10280000
LOCKEDV = 46#, 10281000
STRING = 47#, 10282000
LFTPRN = 48#, 10283000
CASEV = 49#, 10284000
BEGINV = 50#, 10285000
ONV = 51#, 10286000
DOV = 52#, 10287000
IFV = 53#, 10288000
GOV = 54#, 10289000
THRUV = 55#, 10290000
FORV = 56#, 10291000
WHILEV = 57#, 10292000
SCANV = 58#, 10293000
REPLACEV = 59#, 10294000
FILLV = 60#, 10295000
SWAPV = 61#, 10296000
SEMICOLON = 62#, 10297000
ENDV = 63#, 10298000
UNTILV = 64#, 10299000
ELSEV = 65#, 10300000
DOLLAR = 66#, 10301000
COMMENTV = 67#, 10302000
ADDOP = 68#, 10303000
TYPEV = 69#, 10304000
FIELDV = 70#, 10305000
ARRAYV = 71#, 10306000
OWNV = 72#, 10307000
DEFINEV = 73#, 10308000
LABELV = 74#, 10309000
PROCV = 75#, 10310000
SAVEV = 76#, 10311000
LAYV = 77#, 10312000
EVENTV = 78#, 10313000
QUEUEV = 79#, 10314000
ENTERRUPT = 80#, 10315000
PITCHER = 81#, 10316000
MONITORV = 83#, 10318000
VALUEV = 84#, 10319000
INV = 85#, 10320000
CROSSHATCH = 86#, 10321000
ATSIGN = 87#, 10322000
PERCENT = 88#, 10323000
PERIODV = 89#, 10324000
STEPV = 90#, 10325000
TOV = 91#, 10326000
BYV = 92#, 10327000
OVERITE = 93#, 10328000
WITHV = 94#, 10329000
USING = 95#, 10330000
TAGV = 96#, 10331000
FACTOP = 97#, 10332000
LFTBRKT = 98#, 10333000
QUESTIONMK = 99#, 10334000
COMMA = 100#, 10335000
RTPARN = 101#, 10336000
RTBRKT = 102#, 10337000
COLON = 103#, 10338000
THENV = 104#, 10339000
EXTERNALV = 105#, 10340000
FORWARDV = 106#, 10341000
OFV = 107#, 10342000
NOTOP = 108#, 10343000
ASSNOP = 109#, 10344000
AMPERSAND = 110#, 10345000
LOGOP = 111#, 10346000
RELOP = 112#, 10347000
MULOP = 113#, 10348000
DEFINEP = 114#; 10349000
DEFINE DIGIT = 0#, 10350000
LETTER = 1#, 10351000
SPASE = 2#, 10352000
BOOV = 0#, 10353000
DPV = 1#, 10354000
REALV = 2#, 10355000
INTV = 3#, 10356000
REFV = 4#, 10357000
WDV = 5#, 10358000
PTRV = 6#; 10359000
DEFINE FS=0#, % CALLS ON VARIABLE: STATEMENT 11000000
FP=1#, % PRIMARY 11001000
FL=2#, % ACTUAL PARAPART 11002000
FR=3#; % FOR STATEMENTRT 11003000
DEFINE INCR = 7 #, 11003300
INCRTWICE = 14 #; 11003600
% TYPE FIELD VALUES 11004000
DEFINE FORMALNAMEP = 2#, 11005000
FORMALNAMEQ = 6#, 11006000
FORMALVALUEP= 3#, 11007000
FORMALVALUEQ= 7#, 11008000
LOCALTYPE = 0#, 11009000
WITHINBODY = 1#, 11010000
F0RWARD = 4#, 11011000
INTRINSIC = 5#; 11012000
DEFINE IDMAX = QUEUEID #; 11013000
DEFINE MINDEC = TYPEV#, MAXDEC = VALUEV#; 11014000
INTEGER NEXTINFO, % POINTS TO NEXT HOLE IN INFO 11015000
NINFOO, % POINTS TO START OF INFO ENTRIES FOR 11016000
% CURRENT BLOCK. 11017000
NEXTADDL, % POINTS TO NEXT SPOT IN ADDL. 11018000
LASTADDL, 11018100
RSVDX, %%%%%%%%%%%%%%%%%%%% KLUDGE%%%%%%%%%%%%%%% 11019000
LASTINFO; % POINTS TO LAST ENTRY IN INFO. 11020000
DEFINE GLOBAL=0#; % OUTERMOST ADDRESSING LEVEL. 11021000
BOOLEAN GTB1; % TEMP FREE-FOR-ALL 11022000
INTEGER LASTNOT; % USUALLY POINTS JUST BEYOND LAST LNOT 11023000
% OR RELOP. USED BY EMITNOT TO 11024000
% OPTIMISER A LITTLE. 11025000
INTEGER LASTINDEX; % USUALLY POINTS AT TWE LAST SUBSCRIPTING 11026000
% OPERATOR, SO THE ACTUALPARAPART CAN CALL 11027000
% THINGS BY NAME. 11028000
INTEGER BEGINCTR; 11029000
DEFINE DTYPE = ETYPE#; 11030000
DEFINE EVENTINTRINSICID = INTRINSICEVENT#, 11030300
INTERRUPTV = ENTERRUPT#; 11030800
INTEGER ADRCPL; % SCRATCH FOR EMITTERS. 11031000
DEFINE ATYPE = REALV#, % TYPES OF EXPRESSIONS: S.P. ARITH-REAL 11032000
BTYPE = BOOV#, % BOOLEAN 11033000
ITYPE = INTV#, % INTEGER 11034000
ETYPE = DPV#, % D.P. ARITH 11035000
RTYPE = REFV#, % REFERENCE 11036000
PTYPE = PTRV#, % POINTER 11037000
WTYPE = WDV#, 11037500
XTYPE = 0#; % ARRAY 11038000
COMMENT NOTE THAT AN ARRAY EXPRESSION IS GIVEN BY A TYPE < XTYPE. 11039000
THE VALUE OF TYPE IS -(NUMBER OF DIMENSIONS LEFT) - 11040000
(TYPE OF ARRAY) |32768; 11041000
DEFINE PROCD = 6# 11042000
; 11043000
DEFINE ARAYTPE = [30:3]#, % TYPE FIELD FOR EXPRSS VALUE FOR ARRAYS 11044000
ARAYDIM = [33:15]#; % NO OF DIMENSIONS ASSOCIATED WITH ARAYTYPE 11045000
DEFINE EMITLINK = EMIT3#; 11046000
DEFINE EMITO = EMIT#; 11047000
DEFINE ENABLEKEY = 20# 11047100
, DISABLEKEY= 21# 11047200
, SETKEY = 10# 11047300
, RESETKEY = 11# 11047400
, CAUSEKEY = 0# 11047500
, WAITKEY = 1# 11047600
, FIXKEY = 14# 11047700
, FREEKEY = 15# 11047800
, HAPPENEDKEY= 30# 11047900
, AVAILABLEKEY= 31# 11047950
,SECONDWORDKEY=40# 11047960
, STOREITEMKEY= 50# 11047970
; 11047980
DEFINE INSERTKEY =0# % KEY FOR INSERT ALGORITHM 11048000
,ALLOCATEKEY =3#; % KEY FOR ALLOCATE ALGORITHM 11049000
DEFINE SIZEKEY =15# % KEY FOR SIZE ALGORITHM/PROPERTY 11049100
,LOCKKEY =16# % KEY FOR LOCKED ALGORITHM/PROPERTY 11049200
,BUSYKEY =17# % KEY FOR BUSY ALGORITHM/PROPERTY 11049300
,BUZZKEY =18# % KEY FOR BUZZ ALGORITHM 11049330
,BUZZCONTROLKEY=20# % 11049360
,UNLOCKKEY =21# % KEY FOR UNLOCK ALGORITHM/PROPERTY 11049400
; 11049450
INTEGER LASTX, % L OF LAST EXECUTABLE CODE BEFORE THE 11050000
% CURRENT NON-EXEC: -1 IF CURRENT IS 11051000
% EXECUTABLE. 11052000
FIRSTX, % L OF FIRST EXECUTABLE CODE IN THE SEGMEMT11053000
% -1 IF NONE YET. 11054000
11055000
FIRSTMT; % L OF FIRST STATEMENT OF CURRENT BLOCK. 11056000
ARRAY PDPRT[0:15,0:255]; 11057000
INTEGER PDINX; 11058000
DEFINE PPINX=PDINX.[36:4],PDINX.[40:8]#; 11059000
COMMENT PDPRT TS USED AT THE END OF COMPILATION TO BUILD THE LEVEL-ZERO11060000
STACK FOR THE PROGRAM. PDINX IS THE INDEX OF THE NEXT SLOT 11061000
IN PDPRT. ENTRIES IN PDPRT CONTAIN THE FOLLOWING FIELDS: 11062000
[36:12] MOM ADDRESS. THE DISPLACEMENT RELATIVE TO D[0]. 11063000
NOTICE THAT PDINX BEARS NO RELATIONSHIP TO THIS VALUE11064000
(OR TO ANY OTHER, FOR THAT MATTER). 11065000
[23:13] RELATIVE DISK ADDRESS OF THE RELEVENT SEGMENT, IF 11066000
THERE IS ONE. THIS ADDRESS REFERS TO THE TEMPORARY 11067000
CODE FILE, AND IS CONVERTED TO A CORE ADDRESS, FOR 11068000
SAVE STUFF, OR A DISK ADDRESS. THIS FIELD IS 11069000
APPLICABLE TO DATA AND SEGMENT-DESCRIPTOR ENTRIES. 11070000
[24:12] SEGMENT DESCRIPTOR ADDRESS, APPLICABLE TO PCWS ONLY. 11071000
[10:13] SIZE, FOR DATA AND SEGMENT DESCRIPTORS. 11072000
[ 7:17] L, FOR PCW ENTRIES. 11073000
[ 6: 1] NCSF FOR PCW (1 => CONTROL STATE). 11074000
[ 4: 3] OPERAND-SIZE FIELD FOR DATA DESCRIPTOR. 11075000
1 = PCW OF EXTERNAL PROCEDURE 11075500
[ 8: 1] PRESENCE BIT, FOR SEGMENT AND DATA DESCRIPTORS. 11076000
IF ON, THE SEGMENT WILL BE LOADED AT H/L. 11077000
[ 2: 3] TYPE OF ENTRY: 11078500
0 = DATA DESC. 11079000
1 = DATA DESC ALSO. 11079500
2 = DOUBLE-PRECISION VARIABLE. 11080000
3 = POINTER VARIABLE. 11081000
4 = SEGMENT DESC OF EXTERNAL PROCEDURE 11081500
6 = SEGMENT DESC. 11082000
7 = PROG CTL WORD. 11083000
[ 7, 1] READ-ONLY BIT FOR DATA DESC. 11084000
; 11085000
DEFINE PDPRTDISPF=[36:12]# 11085200
,PDPRTSIZEF=[10:13]# 11085400
; 11085600
INTEGER TEMPADDR; COMMENT REL ADDR INTO TEMP CODE FILE; 11086000
DEFINE ERROR(ERROR1) = BEGIN ERR(ERROR1); GO TO EXIT END#; 11086010
LABEL ENDOFITALL; 11087000
DEFINE USINGV= USING#; 11087500
DEFINE LFTPARN=LFTPRN#; 11087550
INTEGER SAVESIZE; % AMOUNT OF SAVE ARRAYS DECLARED 11088000
DEFINE POOLMAX = 511#; 11100000
ALPHA ARRAY POOL[0:7, 0:255]; 11101000
INTEGER POOLMOM, POOLX; 11102000
ALPHA ARRAY TA [0:POOLMAX]; 11103000
INTEGER TAX; 11104000
DEFINE DEL=DLET#; 11104300
DEFINE BRSET=BRST#; 11104500
DEFINE CONTROLBUZZKEY=BUZZCONTROLKEY#; 11104800
DEFINE MAXTEMP = 39#; 11105000
ARRAY TEMPSTACK[0:MAXTEMP]; 11106000
BOOLEAN FIGS; COMMENT SHOULD BE TRUE IFF EMITTING FIXUP CODE; 11106100
DEFINE EVNTV = 100# % ANALOGOUS TO REALV,ATYPE,BOOV, 11107000
, EVTYPE = EVNTV # % BTYPE BUT USED IN MORE RESTRIC-11108000
; % TED WAY FOR EVENTS 11109000
COMMENT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 20000000
STREAM PROCEDURE DECLARATIONS 20001000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *;20002000
INTEGER STREAM PROCEDURE EXAMINE(PTR); VALUE PTR; 20003000
BEGIN SI~PTR; DI~LOC PTR; DI~DI-1; DS~CHR END; 20004000
INTEGER STREAM PROCEDURE SKIPFORWARD(PTR,BY); VALUE PTR,BY; 20005000
BEGIN SI~PTR; SI~SI+BY; SKIPFORWARD~SI END; 20006000
INTEGER STREAM PROCEDURE MKABS(X); 20007000
BEGIN SI~X; MKABS~SI END; 20008000
INTEGER STREAM PROCEDURE MOVECHRS(N,F,T); VALUE N,F,T; 20009000
BEGIN SI~F; DI~T; DS~N CHR ; MOVECHRS~DI END MOVECHRS; 20010000
BOOLEAN STREAM PROCEDURE EQUAL(A,B); VALUE A,B; 20011000
BEGIN SI~A; DI~B; IF 8 SC=DC THEN TALLY~1; EQUAL~TALLY END; 20012000
BOOLEAN STREAM PROCEDURE GREATER(A,B); VALUE A,B; 20013000
BEGIN SI~A; DI~B; IF 8 SC>DC THEN TALLY~1; GREATER~TALLY END; 20014000
STREAM PROCEDURE MOVEIT(F,T); VALUE T; 20015000
BEGIN SI~F; DI~T; DS~WDS END MOVEIT; 20016000
STREAM PROCEDURE SEQERR(S,B); VALUE S; 20017000
BEGIN DI~B; DS~12 LIT" SEQERR"; SI~S; DS~8 CHR END SEQERR; 20018000
STREAM PROCEDURE BLANKOUT(N,D); VALUE N; 20019000
BEGIN DI~D; DS~8 LIT " "; SI~D; DS~N WDS END BLANKOUT; 20020000
STREAM PROCEDURE CONVERTOUT(N,D); VALUE N,D; 20021000
BEGIN DI~D; SI~LOC N; DS~8 DEC END CONVERTOUT; 20022000
STREAM PROCEDURE EDITLINE(FCR,LST,V,SEG,C,L,BUF); 20023000
VALUE FCR,LST,V,SEG,C,L ; 20024000
BEGIN LABEL B, C, T, P, L; 20025000
DI~BUF; DS~16 LIT" "; SI~FCR; DS~9 WDS; DS~8 LIT" "; BUF~DI; 20026000
DS~WDS; DS~8 LIT" "; 20027000
V(DI~DI-6; SI~LOC SEG; DS~3 DEC; DS~LIT":"; DS~4 DEC; 20028000
DS~LIT":"; DS~DEC); 20029000
DI~BUF; DI~DI-2; CI~CI+LST; GO B; GO B; GO C; GO P; GO T; 20030000
GO T; GO L; 20030100
T:DS~LIT"T"; GO B; 20031000
C:DS~LIT"C"; GO B; 20032000
P:DS~LIT"P"; GO B; 20033000
L:DS~LIT"L"; 20033100
B: 20034000
END EDITLINE; 20035000
STREAM PROCEDURE ZOT(C,AT); VALUE C, AT; 20036000
BEGIN SI~LOC AT; SI~SI-1; DI~AT; DS~CHR; END ZOT; 20037000
STREAM PROCEDURE MOVECHARACTERS(N,F,FS,T,TS); VALUE N,FS,TS; 20038000
BEGIN SI~F; SI~SI+FS; DI~T; DI~DI+TS; DS~N CHR END; 20039000
STREAM PROCEDURE MOVECHARACTERACCUM(N,F,FS,T,TS); VALUE N,FS,TS; 20040000
BEGIN SI ~ F; SI ~ SI+FS; SI~SI+4; DI~T; DI~DI+TS; DS ~ N CHR END; 20041000
BOOLEAN STREAM PROCEDURE OCTALCONVERT(A,C,S,T); VALUE A,C,S; 20042000
BEGIN SI~A; DI~T; 3(DS~S RESET); 20043000
C(IF SC<"0" THEN TALLY~1 ELSE IF SC>"7" THEN TALLY~1; 20044000
SKIP 3 SB; 20045000
3(IF SB THEN DS~SET ELSE DS~RESET; SKIP SB)); 20046000
OCTALCONVERT~TALLY 20047000
END OCTALCONVERT; 20048000
INTEGER STREAM PROCEDURE INPUTCONVERT(A,S,C); VALUE S,C; 20049000
BEGIN SI~A; SI~SI+S; DI~LOC INPUTCONVERT; DS~C OCT END ICV; 20050000
INTEGER STREAM PROCEDURE SEQCONVERT(LCR); VALUE LCR; 20050100
BEGIN SI ~ LCR; DI ~ LOC SEQCONVERT; DS ~ 8 OCT; END SEQ CONVERT; 20050200
BOOLEAN STREAM PROCEDURE CMPCHRNEQL(N,A,B); VALUE N; 20051000
BEGIN SI~A; DI~B; IF N SC!DC THEN TALLY~1; CMPCHRNEQL~TALLY END; 20052000
STREAM PROCEDURE MOVE(N,F,T); VALUE N; 20053000
BEGIN LOCAL M; SI~LOC N; SI~SI+4; SI~SC; M~SI; 20054000
SI~F; DI~T; DS~N WDS; M(DS~32 WDS; DS~32 WDS) 20055000
END SUPER MOVE; 20056000
STREAM PROCEDURE MOVE8BITS(FROM,SK,T0); VALUE SK; 20057000
BEGIN SI ~ FROM; SK(SKIP 8 SB); DI ~ T0; DI ~ DI + 6; SKIP 4 DB; 20058000
8(IF SB THEN DS ~ SET ELSE DS ~ RESET; SKIP SB); 20059000
END MOVE 8 BITS; 20060000
BOOLEAN STREAM PROCEDURE CMPCHREQL(N,A,B); VALUE N; 20061000
BEGIN SI~A; DI~B; IF N SC=DC THEN TALLY~1; CMPCHREQL~TALLY END; 20062000
STREAM PROCEDURE INSERT(N,STUFF,AT,PLUS); VALUE N,STUFF,PLUS; 20063000
BEGIN SI ~ LOC AT; SI ~ SI - N; DI ~ AT; DI ~ DI + PLUS; DS~N CHR 20064000
END INSERT; 20065000
STREAM PROCEDURE ZN9N(OC,N,ZS,AT,PLUS); VALUE OC,N,ZS,PLUS; 20066000
BEGIN SI~LOC OC; DI~AT; DI~DI+PLUS; AT~DI; 20067000
DS~N DEC; DI~AT; DS~ZS FILL 20068000
END ZN9N; 20069000
REAL STREAM PROCEDURE REEL(P,N); VALUE P,N; 20070000
BEGIN DI ~ LOC P; DI ~ DI - N; SI ~ P; DS ~ N CHR END; 20071000
STREAM PROCEDURE FLOG(F,V,T); VALUE F,V; 20072000
BEGIN DI ~ LOC V; DS ~ F SET; DI ~ T; SI ~ LOC V; DS ~ WDS END; 20073000
STREAM PROCEDURE MOVEBITS(FROM,NR,SSK,T,DSK); VALUE NR,SSK, DSK; 20074000
BEGIN SI ~ FROM; SKIP SSK SB; 20075000
DI ~ T; SKIP DSK DB; NR(IF SB THEN DS ~ SET ELSE DS ~ RESET; 20076000
SKIP SB) 20077000
END BIT MOVER; 20078000
BOOLEAN STREAM PROCEDURE FLAGBIT(A); 20079000
BEGIN 20080000
SI ~ A; 20081000
IF SB THEN 20082000
BEGIN TALLY ~ 1; DI ~ A; DS ~ RESET END; 20083000
FLAGBIT ~ TALLY; 20084000
END FLAGBIT; 20085000
BOOLEAN STREAM PROCEDURE BIT(N)" OF "(WORD); VALUE N,WORD; 20086000
BEGIN SI ~ LOC WORD; SKIP N SB; IF SB THEN TALLY ~ 1; BIT ~ TALLY; 20087000
END BIT RETREIVER; 20088000
STREAM PROCEDURE LABELINE(A,N,L); VALUE N; 20100000
BEGIN SI ~ A; DI ~ L; SI ~ SI + 4; DS ~ N CHR; 20101000
DS ~ 21LIT " SEEMS TO BE A LABEL." 20102000
END LABELINE; 20103000
PROCEDURE DUMPIT(A); ARRAY A[0]; 24000000