-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathautocoder3.s
More file actions
2035 lines (2035 loc) · 80.1 KB
/
autocoder3.s
File metadata and controls
2035 lines (2035 loc) · 80.1 KB
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
101 003 job 1401 autocoder-pass 3-translator-initial -version 3 3731l
102 ctl 630 1
103 *
104 *equates
105 *
106 intape equ %u6
107 outape equ %u4
108 systap equ %u1
109 initap equ %u0
110 xxxx equ 0000
111 print equ 200
112 librn equ 000
113 *
114 *tape redundancy routine
115 *
116 org rtend&1
117 tperr sbr xl3
118 sbr redxt&3
119 mz &9,xl3
120 mcw 4000-10&x3,tpins&7 bring in instruction
121 mn tpins&3,bsp1&3 that caused
122 mcw tpins&7,inst2&7 redundancy
123 bsp1 bsp initap backspace tape
124 bce wrtrd,tpins&7,w q. write redundancy
125 mcw &9,rdct#1 initialize counter
126 tpins rt initap,xxxx re-read
127 ber rderr q. redundancy again
128 redxt b xxxx exit
129 rderr mn tpins&3,bsp2&3
130 bsp2 bsp initap backspace again
131 s &1,rdct reduce counter
132 bwz tpins,rdct,b q. 10 successive reads
133 mn tpins&3,tphlt&6
134 tphlt h xxxx,390 halt
135 mcw tpins&7,*&8
136 rt initap,xxxx re-read
137 bss bsp1,e determine option
138 h xxxx,302 halt again
139 b redxt exit
140 wrtrd skp systap erase tape
141 bce sbctr,wrtcr-1,5 q. fifty skips
142 a &1,wrtcr#2 increase counter
143 inst2 wt initap,xxxx re-write
144 ber bsp1 q. redundancy again
145 b redxt
146 sbctr s wrtcr reset counter
147 mn tpins&3,*&7
148 h xxxx,360 halt
149 b inst2
150 *
151 * noise record routine
152 *
153 noise sbr xl3
154 sbr nsxt&3
155 mz &9,xl3
156 n2 bce 4000-12&x3, xxxx, } scan for group mark
157 chain12
158 nsxt b 0
159 objcor dcw @3@ object core size code
160 hival dcw @ 999@ highest object address
161 manam dcw @#@ equals # or A
162 ltorg*
163 *
164 *begin of main line
165 *
166 begin rwd intape rewind input tape
167 rwd 5 rewind 5
168 cs 3999 clear input area
169 rtw systap,001 read lower half
170 nop 0 pass 3
171 ber tperr
172 sw gmk1,gmk2 initialize group marks
173 cw sysmk2
174 cs 080 clear read area
175 sw eqvadd initialize to undef
176 rwd outape rwd output tape
177 mcw &free&13,n2&6
178 mcw @n@,n3 cripple test for noise
179 mcw @n@,n4
180 rt 5,free&1 read in macro factor
181 b noise which is
182 ber tperr passed in from pass 2
183 rwd 5 and save value
184 mcw free&3,joblbl#3
185 za @101@,altrno reset alter number
186 *
187 * process job card
188 *
189 b get get first record
190 bce genjob,free&6,* q. comments card
191 c free&18,@job@ q. job card
192 bu genjob
193 codjob mcw joblbl,free&8 pickup factoor
194 wt outape,free&1 put job card
195 nop 0
196 ber tperr
197 a &1,altrno
198 b get get next record
199 mcw @b@,n3 reset noise routine
200 mcw @m@,n4
201 *
202 *process control card
203 *
204 c free&18,@ctl@ q. control card
205 bu chnad
206 cs 0
207 sbr clear&3
208 sbr svsz#3
209 bwz prosz,clear&3,2
210 clear cs 15999
211 sbr clear&3 clear above 4k
212 c clear&3,@i99@ q. end of clearing
213 bu clear
214 prosz mcw @6@,phold#1
215 bwz csz,svsz,b
216 mcw @5@,phold
217 bwz csz,svsz,k
218 mcw @4@,phold
219 bwz csz,svsz,s
220 mcw @3@,phold
221 csz c free&21,phold
222 be inobj
223 * messg@incorrect processor machine size specified@,42
02 cs 332
03 cs
04 mcw @incorrect processor machine size specified@,42&200
05 w
07 bcv *&5
08 b *&3
09 cc 1
224 mcw phold,free&21
225 inobj mcw free&22,objcor save object machine code
226 za objcor,xl1
227 s &30,xl1&1
228 a xl1 code -hival-
229 mcw objtbl&x1,hival-3
230 c free&22,@3@ q. object core gt 4k
231 bl getmn
232 bce sethi,free&24,1 q. ma hardware
233 b is4k
234 genjob bsp intape
235 mcw free&74,free&73
236 mcw @job @,free&20 generate job card
237 mcw
238 mcw free&74,free&15 blank area
239 mcw
240 b codjob
241 chnad mcw &subxl,intxt&3 initialize exit
242 is4k mcw @a@,manam
243 sethi mcw @03@,hival-3
244 b getmn
245 objtbl dcw @03@
246 dcw @07@
247 dcw @11@
248 dcw @15@
249 ltorg2918 *
250 sysmk2 dcw @}@ system group mark
251 xfr 000
252 job 1401 autocoder-pass 3 left main line -version 3 3732l
253 *
254 *initialization of index registers
255 *
256 * xinitxl1,xl2,xl3
01 xl1 equ 089
02 089 dcw 000
04 091 dc 00
05 xl2 equ 094
06 094 dcw 000
08 096 dc 00
09 xl3 equ 099
10 099 dcw 000
12 100 dc 0
257 *
258 *free form input area
259 *
260 org 101
261 free equ 100
262 da 1x86
263 1,1
264 19,19
265 16,16
266 6,6
267 21,21
268 altrno 81,84
269 85,89
270 gmk2 dc @}@
271 *
272 *fixed form input area
273 *
274 org 333
275 input equ *
276 da 1x86
277 40,40
278 17,17
279 28,28
280 39,39
281 76,76
282 *
283 * get upper half of pass 3
284 *
285 getmn rtw systap,begin
286 nop 0
287 ber tperr
288 mcw manam,masym-3
289 rtw systap,ovl2
290 nop 0
291 ber tperr
292 intxt b nurec
293 *
294 * get fixed form overlay
295 *
296 gtfix rtw systap,ovl2
297 nop 0
298 ber tperr
299 bsp systap
300 bsp systap
301 bw profix,freesw
302 b rstmod
303 *
304 * get free form overlay
305 *
306 gtfre rtw systap,ovl2
307 nop 0
308 ber tperr
309 b pstnu
310 *
311 *get routine
312 *
313 get sbr getxt&3
314 b rdtap
315 mcw inarea&79,free&80
316 chain4
317 mcw inarea&85,free&86
318 getxt b xxxx
319 rdtap sbr rdxt&3 read tape
320 n4 mcw &inarea&12,n2&6
321 rt intape,inarea
322 n3 b noise check for noise
323 ber tperr
324 rdxt b xxxx
325 *
326 *put routine
327 *
328 put sbr putxt&3
329 cw free&21
330 wt outape,free&1
331 nop 0
332 ber tperr
333 sw free&21
334 a &1,altrno increase alter number
335 putxt b xxxx
336 ovl2 dcw 0
337 dcw @}@ system group mark
338 xfr 0
339 job 1401 autocoder-pass 3 process free form -version 3 3734l
340 *
341 *beginning of new free form record analysis
342 *
343 org ovl2
344 nurec b put
345 pstnu b get
346 subxl sw modesw
347 cw freesw
348 bce nurec,free&6,*
349 bce reg,free&75,
350 bce reg,free&75,l
351 bce nurec,free&75,s
352 bce nurec,free&75,z
353 bce nurec,free&85,r
354 c free&18,@cha@
355 bce ckchn,free&75,c
356 bce ckchn,free&75,y
357 bu nurec
358 b prchn
359 ckchn bu reg
360 prchn za free&22,warea2
361 bce *&5,warea2,&
362 b *&8
363 za warea2-1,warea2
364 bce *&5,free&75,c
365 b *&8
366 mcw @s@,free&75
367 bce *&5,free&75,y
368 b *&8
369 mcw @z@,free&75
370 b put
371 c warea2,&00 account for chain 00
372 bl *&5
373 b pstnu
374 mcw free&75,hldcd#1
375 mcw @c@,free&75
376 bce blnkx,hldcd,r rew: bce wmmchk,hldcd,r
377 bce blnkx,hldcd,s res: bce wmmchk,hldcd,s
378 mcw @y@,free&75
379 blnkx mcw blnk2,free&74
380 mcw free&74
381 mcw savop
382 mcw
383 mcw
384 mcw free&74,free&5 blank page/line
385 chnlp b put
386 mcw free&74,free&11 blank label field
387 s &1,warea2
388 c warea2,&00
389 bl chnlp
390 b pstnu
391 genps mcw @&1 @,free&15
392 b put
393 mcw free&73,free&72 to highest address of
394 mcw @c@,free&75 object core
395 mcw hival,free&25
396 mcw @equ @
397 mcw
398 mcw @$hival &p @
399 mcw free&73
400 mcw &nurec,genps&3
401 mcw @b@,ishiv
402 b nurec
403 ishiv nop pstnu
404 mcw hival,free&25 set new highest value
405 mcw @b@,pssw2
406 b tstre
407 reg s xl3&1
408 s
409 s
410 c free&18,@ @
411 bu svup3
412 bce tstre,free&19,
413 svup3 mcw free&20,savop#9
414 mcw
415 c free&11, @$hival@ hival equate present
416 be ishiv
417 pssw2 nop tstre
418 c free&10,@$p @ q. arith macro present
419 be genps
420 tstre bce isrea,free&85,r
421 b tluop lookup mnemonic
422 stfun mcw free&15,savop-5
423 bw nurec,eqvadd q. instruction
424 c free&15,@3 @
425 be eoj
426 b nurec
427 isrea sw free&12
428 lca free&15,eqvadd
429 cw free&12
430 bce typcl,free&15,&
431 chain3
432 b stfun
433 typcl sw eqvadd-2
434 bce stfun,free&12,&
435 sw eqvadd-1
436 bce stfun,free&13,&
437 sw eqvadd
438 b stfun
439 dcw 0
440 dcw @}@ system group mark
441 xfr 0
442 job 1401 autocoder-pass 3 process fix form -version 3 3735l
443 org ovl2
444 *
445 *beginning of new fixed form record analysis
446 *
447 entsps b put put last record
448 bw gtfre,freesw q. free done in fixed
449 rstmod cw modesw#1,absw reset switches
450 b rdtap get a record
451 mcw inarea&79,input&80 move to fixed form
452 chain5
453 profix mcw input&80,free&80 move identification
454 mcw blank,free&75 set operand portion
455 mcw free&75 of -free- to blanks
456 mcw free&75,free&20 set balance to blank
457 mcw
458 mcw
459 mcw input&82,free&86 blank code positions
460 mcw input&13,free&11 move lane and pg/line
461 mcw input&5 no to -free-
462 bce comcrd,input&8,* q. comments card
463 bce lberr,free&11,, check for invalid
464 chain4 characters in labels
465 bce lberr,free&10,-
466 chain4
467 bce lberr,free&10,#
468 chain4
469 bce lberr,free&10,&
470 chain4
471 bce lberr,free&10,'
472 chain4
473 b bck1
474 lberr cs 332
475 cs
476 mcw @illegal label - sequence number@,231
477 mcs altrno,236
478 w
479 bck1 c input&15,blnk2 q. actual op code
480 be absfix present in fixed form
481 mcw blnk2,savop
482 mcw input&16
483 mcw input&16,free&18 move mnemonic to free
484 tlufix s xl3&1 reset index locations
485 s to zero
486 s
487 b tluop lookup mnemonic
488 bw fixins,eqvadd q. instruction
489 bce found,eqvadd, q. control op
490 *
491 * process instruction
492 *
493 fixins bce lknop,input&17, q. a operand
494 bce fixalf,input&17,@ q. alpha literal
495 b scan scan a operand
496 ckb bce ckmod,input&28, q. b operand
497 a &1,xl2 move comma to free
498 mcw @,@,free&21&x2 to separate operands
499 a &1,xl2
500 mcw @011@,xl1
501 bce fixalf,input&28,@ q. alpha literal
502 b scan scan b operand
503 ckop c input&16,@b @ q. branch instruction
504 be makbce
505 c input&16,@ b@ q. actual branch inst
506 be movmod
507 b lknop
508 ckmod c input&16,@b @ q. branch instruction
509 be altrop
510 c input&16,@ b@ q. actual branch inst
511 be altrop
512 lknop c input&16,@nop@ q. nop instruction
513 be cknop
514 bw pickup,absw q. actual op code
515 bce pickup,input&39, q. d character
516 ismod bce movmod,free&15, q. illegal op
517 bwz iotyp,free&15,2 q. i/o instruction
518 movmod mcw input&39,free&23&x2 move d character to
519 mcw @,@ free area
520 pickup mcw input&55,free&72 pickup comments
521 b endfix
522 makbce mcw @bce@,free&18 move -bce- mnemonic
523 b ismod to operation field
524 altrop bce pickup,input&39, q. d character, i.e.,
525 mcw @bin@,free&18 unconditional branch
526 mcw @& b@,free&15 set five char branch
527 s xl1&1
528 mcw blnk2,free&20
529 tlubin c bintbl&x1,input&39 search 5-character
530 be binfnd branch table for
531 bce movmod,bintbl&5&x1, appropriate unique
532 a &5,xl1 mnemonic, if not
533 b tlubin present leave
534 binfnd mcw bintbl-1&x1,free&19 mnemonic -bin-
535 mcw
536 c free&18,@bss@ q. branch sense switch
537 be movmod
538 mcw input&39,free&14 pickup de character
539 b pickup
540 cknop bce pickup,input&39,
541 iotyp mcw input&39,free&14 code i/o instruction
542 mcw @&@ in actual in
543 mcw input&39,free&20 operation field
544 mcw free&15
545 mcw blank3
546 b pickup
547 fixalf bce endalf,input&27&x1,@ scan for at sign
548 chain8
549 value a &1,xl2 process statement as
550 mcw @$$@,free&21&x2 unprocessable alpha
551 b whchop literal illegal opnd
552 endalf sbr warea3 pickup literal and
553 s &value&2,warea3 move to free form
554 zs warea3 area
555 a warea3,xl1
556 a warea3,xl2
557 mcw input&17&x1,free&21&x2
558 whchop c xl1,@011@ exit on basis of which
559 bh ckb operand acting upon
560 b ckop
561 absfix bce samfix,input&16, print out message only
562 mcw input&16,free&19 once that actual ops
563 mcw input&39,free&20 are present in fixed
564 sw1 nop setabs form images
565 cs 332 this accounts for
566 cs the possibility that
567 mcw @actual op codes present in fixed form images@,270
568 cc 1 the user forgot to
569 w use an enter
570 cc 1 autocoder statement
571 mcw @b@,sw1 when returning to
572 setabs sw absw#1 free form
573 b tlufix
574 samfix mcw savop,free&20 process same op code
575 mcw
576 b tlufix
577 *
578 * beginning of process control and declarative operation codes
579 *
580 found bw fixins,eqvadd determine type of
581 s xl3&1 control op and go to
582 mn eqvadd-1,xl3 appropriate routine
583 a xl3
584 a xl3
585 b *&1&x3
586 b badop da illegal in fixed form
587 b dcwstm go to constant routine
588 b erhlt should never occur
589 b oneop end, ex, xfr
590 b oneop go to suffix rtn
591 b erhlt should never occur
592 b cklor go to origin routine
593 b dstyp go to ds, equ routine
594 b inspc go to special routine
595 mcw input&55,free&59
596 mcw to free form area
597 mcw
598 mcw
599 b endfix
600 inspc bce nopnd,input&17, process
601 mcw @b@,free&18 cc and ccb and ss
602 mcw eqvadd-2,eqvadd and ssb
603 lca blank
604 mcw eqvadd,free&15
605 mcw @ &@
606 b fixins
607 nopnd mcw input&39,free&21 process two character
608 b endfix instructions
609 erhlt h 0,301 system error halt
610 b erhlt
611 *
612 *process dcw, dc statements
613 *
614 dcwstm bce dcwtyp,input&17,* q. dcw*
615 a blank,input&17 assure not blank
616 mcw free&18,warea6#6 generate equate
617 mcw
618 mcw @equ@,free&18
619 mcw @&p @
620 mcw input&21,free&25
621 b put
622 mcw free&74,free&73
623 mcw input&22,free&11 generate free form
624 mcw warea6,free&18 dcw actual
625 mcw
626 dcwtyp cw input&40,input&39 remove word marks
627 cw input&28
628 bce dsartn,free&14,j q. dsa statement
629 bce known,input&23,& q. is the length of
630 bce known,input&23,- the constant to be
631 bce known,input&23,@ computed by the
632 mn input&7,xl1 processor
633 mn
634 a blank,xl1
635 c xl1,@032@ q. count gt 32 or
636 bl corerr lt zero. if
637 c xl1,@000@ error attempt to
638 be corerr process record anyway
639 rtndcw mcw input&23&x1,free&21&x1 constant to free form
640 mcw @@@,free&21 enclose dcw within
641 mcw @@@,free&22&x1 at signs
642 rstwm sw input&40,input&39 reset word marks
643 sw input&28
644 b endfix
645 known mcw input&55,free&53 pickup entire dcw area
646 b rstwm
647 corerr s xl1&1
648 lperr bce rtndcw,input&24&x1, scan for first blank
649 a &1,xl1 in attempt to correct
650 c xl1,@52@ q) end of record
651 be rtndcw
652 b lperr
653 *
654 * process dsa statements
655 *
656 dsartn s xl2&2 pickup fixed form dsa
657 mcw @011@,xl1 and place in free for
658 b scan form area
659 mcw free&72,free&73 if unsigned make sign
660 mcw @&@ plus
661 bce rstwm,input&27, q. no sign
662 mcw input&27,free&21 sign address constant
663 b rstwm
664 oneop b *&5,input&17, process those
665 b scan instructions
666 c @3 @,eqvadd that only have one op
667 be preoj if end card go to eoj
668 b endfix
669 *
670 * process ds, equ statements
671 *
672 dstyp bce dsact,input&17,* if ds is really an
673 bce *&5,input&17, equ change op
674 b *&8 code, assure
675 nop blank,input&17 operand not blank
676 doequ mcw @equ@,free&18
677 mcw @p@,free&14
678 b oneop
679 dsact sw input&6 process ds actual
680 a blank,input&7
681 cw input&6
682 c input&7,@00@ q. no count
683 be doequ
684 mcw input&7,free&22
685 b endfix
686 *
687 *process comments cards
688 *
689 comcrd mcw input&55,free&53 process comments cards
690 chain7
691 b entsps
692 *
693 * processs origin, ltorg statements
694 *
695 cklor bce oneop,free&16,o change mnemonic to
696 mcw @ltorg@,free&20 -ltorg- if literal
697 mcw org statement
698 b oneop
699 *
700 *scan routine which converts fixed form into free form
701 *
702 scan sbr scnxt&3
703 s xl3&1 reset index 3
704 loop1 bce ck1bk,input&18&x1, q. blank character
705 cxl1 c xl3,@05@ q. end of address
706 be ndopd
707 a &1,xl1 increase all index
708 a &1,xl2 registers
709 a &1,xl3
710 b loop1
711 ck1bk c xl3,@04@ tolerate one blank
712 be ndopd
713 bce *&5,input&19&x1,
714 b cxl1
715 ndopd mcw input&17&x1,free&21&x2 move address portion
716 c xl1,@011@ to free form area
717 s xl1&2
718 bh *&8
719 mcw @011@,xl1
720 bce cklit2,input&23&x1, q. no character adjust
721 bwz mkmin,input&23&x1,k assure character adj
722 mcw @&@,input&23&x1 & or -
723 rtn2 sw input&24&x1,input&23&x1 process character
724 a blank,input&26&x1 adjustment
725 a &4,xl2
726 mcw input&26&x1,free&21&x2
727 mcw
728 cw input&24&x1,input&23&x1
729 noadj bce fixlit,input&17&x1,& q. literal
730 bce fixlit,input&17&x1,-
731 bce scnxt,input&27&x1, q. indexing
732 a &3,xl2 process indexing
733 mn input&27&x1,free&21&x2
734 mcw @&x@
735 scnxt b xxxx exit
736 mkmin mcw @-@,input&23&x1 set char adj sign
737 b rtn2 to minus
738 fixlit bce not11,input&27&x1, process remainder of
739 a &1,xl2 fixed form numeric
740 mn input&27&x1,free&21&x2 literal
741 b scnxt
742 not11 bce subt,input&26&x1,
743 b scnxt
744 subt a @i99@,xl1
745 a @i99@,xl2
746 b not11
747 cklit2 bce scnxt,input&17&x1,& q. literal
748 bce scnxt,input&17&x1,-
749 b noadj
750 dcw 0
751 sysmk1 dcw @}@ system group mark
752 xfr 0
753 rtend equ *
754 job 1401 autocoder-pass 3 right main line -version 3 3733l
755 *
756 *table lookup of mnemonic op code
757 *
758 org begin
759 tluop sbr tluxt&3
760 c free&18,blank3#3 q. actual
761 be abscod op code
762 mlc free&18,xl2
763 a free&18,xl2-1
764 a free&18,xl2-2
765 a free&16,xl2 table lookup
766 sub1 s &5500,xl2&1 uses address
767 bwz sub1,xl2&1,b conversion technique
768 mlcwaopnd-549&x2,eqvadd#9
769 sar getop&3
770 s xl2&2
771 getop mlcwaxxxx,eqvadd search table for
772 sar getop&3 mnemonic
773 bce badop,eqvadd,@ q. op not in table
774 c eqvadd,free&18 q. op code found
775 bu getop
776 lca eqvadd-3,eqvadd shift table function
777 c @n @,eqvadd q. enter card
778 be enter
779 c eqvadd,@b @ q. mlc, mlcwa type
780 be specin
781 c eqvadd,@2 @ q. ramac instn
782 be specin
783 savcod mcw eqvadd,free&15 place table function
784 sbr xl3 on record preceded by
785 c xl3,&free&11 a plus sign
786 be *&8
787 mcw @&@,000&x3
788 tluxt b xxxx exit
789 enter c free&23,@sps@ determine type of
790 be gtfix enter card and
791 c input&20,@auto@ go to appropriate
792 be gtfre routine
793 bw pstnu,modesw
794 b rstmod
795 specin bwz mlctyp,eqvadd-1,b q. mlc type
796 lca eqvadd-2,eqvadd
797 ckel bce savcod,free&19, q. should op be -l-
798 mcw @l@,eqvadd make op code -l-
799 b savcod
800 mlctyp lca @m@,eqvadd make op code -m-
801 b ckel
802 *
803 * process illegal operation code
804 *
805 badop lca blank,eqvadd make op blank
806 bw savcod,freesw q. in free form mode
807 bw ckff,modesw q. in free form mode
808 b savcod
809 abscod bce savcod,free&19, rew: bce opblk,free&19,
810 lca blank,eqvadd process actual op
811 mcw free&19,eqvadd codes
812 bce savcod,free&20,
813 cw eqvadd
814 sw
815 mcw free&20,eqvadd-1
816 b savcod
817 ckff bce savcod,free&14, if record appears to b
818 mcw free&80,input&80 be fixed form record
819 chain9
820 cs 332
821 cs
822 mcw free&80,print&80
823 chain4
824 mcw @processing as fixed form record@,332
825 w
826 sw freesw
827 bcv restr
828 b gtfix
829 restr ccb gtfix,1
830 *
831 * end of job procedure
832 *
833 preoj rtw systap,ovl2 skip past overlay
834 eoj b put put end card
835 wtm outape write tape mark
836 * messg@pass 3 completed@,60,k,1
01 cc k
02 cs 332
03 cs
04 mcw @pass 3 completed@,60&200
05 w
06 cc 1
837 cw sysmk1 clear group mk w/ wm
838 cw gmk1,gmk2
839 rtw systap,ovl2
840 rtw systap,085 read in pass 4
841 nop 0
842 ber tperr
843 b passb2 go to next pass
844 ltorg*
845 *
846 *table of mnemonic operation codes
847 *
848 org 3253
849 dcw @@@
850 dcw #4
851 dcw #2
852 dcw @nnop@
853 dcw @c xfr@
854 dcw @o lor@
855 dcw @i job@
856 dcw @/cs @
857 dcw @0 da @
858 dcw @s2wss@
859 masym dcw @#ma @
860 dcw @3 end@
861 dcw @pmcm@
862 dcw @n ent@
863 dcw @brmrtb@
864 dcw @abblc@
865 dcw @ @
866 dcw @bmmbc@
867 dcw @%d @
868 dcw @f3wm2 wdc@
869 dcw @ fccb@
870 dcw @s1dudcr@
871 dcw @ymlz@
872 dcw @@m @
873 dcw @ueuskp@
874 dcw @o org@
875 dcw @hsbr@
876 dcw @k8 ss @
877 dcw @ymz @
878 dcw @ @
879 dcw @)cw @
880 dcw @uwlwtw@
881 dcw @b mlc@
882 dcw @zmcs@
883 dcw @uwmwt @
884 dcw @mmcw@
885 dcw @f2wm2 wdt@
886 dcw @qsar@
887 dcw @r6wrf@
888 dcw @s1euecr@
889 dcw @8srf@
890 dcw @)2wm @
891 dcw @1vbw @
892 dcw @9bbc9@
893 dcw @1r @
894 dcw @urlrtw@
895 dcw @f1rmrd @
896 dcw @f1rlrdw@
897 dcw @mmu @
898 dcw @vbwz@
899 dcw @,sw @
900 dcw @rbbpc@
901 dcw @cc @
902 dcw @c4pcb@
903 dcw @dmln@
904 dcw @umuwtm@
905 dcw @emce@
906 dcw @c ex @
907 dcw @ ucu @
908 dcw @zbbav@
909 dcw @5rp @
910 dcw @.h @
911 dcw @llu @
912 dcw @bwmwtb@
913 dcw @ kssb@
914 dcw @kbbef@
915 dcw @pmrc@
916 dcw @ububsp@
917 dcw @urmrt @
918 dcw @sbbe @
919 dcw @3wr @
920 dcw @ss @
921 dcw @bb @
922 dcw @1 dcw@
923 dcw @wbbe@
924 dcw @j dsa@
925 dcw @llca@
926 dcw @a dc @
927 dcw @f1wlwdw@
928 dcw @7wrp@
929 dcw @ bbin@
930 dcw @kvbm @
931 dcw @pbbpb@
932 dcw @9spf@
933 dcw @m sfx@
934 dcw @4p @
935 dcw @f0rmsd @
936 dcw @@bbcv@
937 dcw @!zs @
938 dcw @o lto@
939 dcw @p equ@
940 dcw @ bbss@
941 dcw @f8 cc @
942 dcw @aa @
943 dcw @lbber@
944 dcw @/bbu @
945 dcw @bbce@
946 dcw @ubbh @
947 dcw @tbbl @
948 dcw @x ds @
949 dcw @f2rm2 rdt@
950 dcw @ammbd@
951 dcw @2w @
952 dcw @f1wmwd @
953 dcw @dmn @
954 dcw @c1rcb@
955 dcw @6wp @
956 dcw @xmiz@
957 dcw #9
958 dcw #3
959 dcw @?za @
960 dcw #1
961 dcw @uuurwu@
962 dcw @ururwd@
963 dcw @r4rf @
964 opnd dcw #1
965 *
966 * constants and tables
967 *
968 freesw dc 0
969 bintbl dcw @bav z@
970 dcw @bc9 9@
971 dcw @bu /@
972 dcw @bcv @@
973 dcw @be s@
974 dcw @bef k@
975 dcw @ber l@
976 dcw @bh u@
977 dcw @bl t@
978 dcw @blc a@
979 dcw @bpb p@
980 dcw @bpcbr@
981 dcw @bss b@
982 dcw @bss c@
983 dcw @bss d@
984 dcw @bss e@
985 dcw @bss f@
986 dcw @bss g@
987 *
988 *tape input area
989 *
990 ds 3
991 inarea da 1x86,g
992 gmk1 equ *
993 *
994 * equates
995 *
996 blank equ blank3-2
997 blnk2 equ blank3-1
998 endfix equ entsps
999 warea3 equ warea6-3
1000 warea2 equ warea6-4
1001 ex librn
1002 job 1401 autocoder-pass 4-left main line -version 3 3741l
1003 sfx z
1004 *
1005 * initialization of index locations
1006 *
1007 org 85
1008 grpmk1 dc @}@
1009 dc 0
1010 xl1 dcw 000
1011 dc 00
1012 xl2 dcw 000
1013 dc 00
1014 xl3 dcw 000
1015 ds 1
1016 *
1017 *fixed form image area
1018 *
1019 image equ *
1020 ds 84
1021 grpmk4 dc @}@
1022 zone dcw @2skb@
1023 exovfl dcw 99 constants used in
1024 exnumb dcw 00 making in literal labels
1025 procor dcw #1
1026 totlbl dcw &0000
1027 jobsw dcw 0
1028 *
1029 * read in control card overlay
1030 *
1031 passb2 rtw systap,doprog
1032 nop 0
1033 ber tperr
1034 b start
1035 *
1036 *tape redundancy routine
1037 *
1038 tperr sbr xl3
1039 sbr redxt&3
1040 mz &9,xl3
1041 mcw 4000-10&x3,tpins&7 bring in instruction
1042 mn tpins&3,bsp1&3 that caused
1043 mcw tpins&7,inst2&7 redundancy
1044 bsp1 bsp initap backspace tape
1045 bce wrtrd,tpins&7,w q. write redundancy
1046 mcw &9,rdct#1 initialize counter
1047 tpins rt initap,xxxx re-read
1048 ber rderr q. redundancy
1049 redxt b xxxx exit
1050 rderr mn tpins&3,bsp2&3
1051 bsp2 bsp initap backspace again
1052 s &1,rdct reduce counter
1053 bwz tpins,rdct,b q. 10 successive retries
1054 mn tpins&3,tphlt&6
1055 tphlt h xxxx,490 halt
1056 mcw tpins&7,*&8
1057 rt initap,xxxx re-read
1058 bss bsp1,e determine option
1059 h xxxx,402 halt again
1060 b redxt exit
1061 wrtrd skp systap erase tape
1062 bce sbctr,wrtcr-1,5 q. fifty skips
1063 a &1,wrtcr#2 increase count
1064 inst2 wt initap,xxxx re-write
1065 ber bsp1 q. redundancy again
1066 b redxt
1067 sbctr s wrtcr reset counter
1068 mn tpins&3,*&7
1069 h xxxx,460 halt
1070 b inst2
1071 *
1072 * noise record routine
1073 *
1074 noise sbr xl3
1075 sbr nsxt&3
1076 mz &9,xl3
1077 n2 bce 4000-12&x3,xxxx,} scan for group mark
1078 chain12