.4dz; 9@= @|@@.@t!@t!@!@"W@>.,v@-`@49%@79@79@@.<9@<9@@>9@>9@J9@.uL`;@vL8"@{L}@iYy@/d@@.pp@|~.4dzR}@zd}@(N&9.; 9h= hH|@hhDt!h^i.t!h!hT"Wh,vh-`hLY.49%h79h79@h<9h<9@h.>9h>9hJ9huL`;hZvL8"hn.{L}hiY(v(v)4dzw*(v q܎)~2ձ%.ѱc*Lv,D9>9"<9@,lKn,n+n$^.<979@79 yh/d@hbpph|~KhP*h(,2lH^7 V2H^,$(f&R f^(,H'kdw. Qɕ ?  ,lH^7 7{k7    ,7 $7 "78\2 7ww r@ [q`"Y*wOX S!AP@@:*ws: 42}\!` h*w%@   !*w ; * x@@P@ @a*Dx@@t@ov@o6*hx@e@ 0! P! @! *xv@ @ @ @Y *x@ @ @J D x` @  TO CONSERVE ON SYMBOL TABLE SPACE. ; ;THE OVERLAY VERSION OF THE ASSEMBLER IS SELF CONTAINED ;IN THAT IT IS ITS OWN OVERLAY BUILDER. ; ;WHEN THE SYMBOL "OVRBLD" IS DEFINED, THE ;RESULTING OBJECT MODULE IS THE BUILDER. ; ;WHEN THE SYMBOL "OVRBLD" IS NOT DEFINED, THE ;RESULTING OBJECT MODULE IS THE RESIDENT ASSEMBLER ; ;WHEN LINKED, THE BUILDER'S TOP SHOULD BE XXX474. ;EXECUTING THE BUILDER'S LOAD MODULE ;VIA THE MONITOR COMMAND RUN ;CAUSES THE CREATION OF THE ;CONTIGUOUS FILE OF OVERLAYS ;( 49%&-`6,8"ޯp!ׯ}֯x֯5& ,v"W!"t!,%i};.t!-`|@&= z,;1} d`Yz ; 9,  z www, w;ww s0ss,Dr r@ [q`"Y),hOX S!AP@8, @\ &  @,ww~A \7   ,7j7+ & w  & , \ w(\70 0@(&0U,D\7N & w^,h R,,R &D,R7 <f(f,*xl*|@|7 V*y ҉f&R f^S**y'kdw. Qɕ ?@*NyH^7 7{k7 \*ry7 $7 "7|\2 7wwG*y "|\ & *yww~A|\7 g*y7j7+ & w|*z\ w |\70 |4*&z\7N & w^*JzPAL11R.OVR) ON DISK WITH LOGIN UIC. ; ;WHEN LINKED WITH THE PERMANENT SYMBOL TABLE, THE ;RESIDENT ASSEMBLER'S TOP SHOULD ALSO BE XXX474. ;AT RUN TIME, THE RESIDENT ASSEMBLER ;REQUIRES THE OVERLAYS TO BE ON DISK ;WITH FILE NAME PAL11R.OVR AND LOGIN OR [1,1]UIC. ; .GLOBL SYMTBB,SYMTBT ;EXTERNAL REFERENCES .GLOBL ASCII,ASECT,BYTE,CSECT,END,EOT,EVEN ;ENTRY POINTS. .GLOBL GLOBL,LIMIT,RAD50,TITLE,WORD .GLOBL IFG,IFL,IFNZ,IFGE,ENDC .GLOBL IFLE,IFZ,IFDF,IFNDF .GLOBL LIST,NLIST,GEE@:A,s: 42}\!` ,%@   !E, ;,@@P@ @,@@t@ov@o,@@e@ 0! P! @! ,dv@ @ @ @Y ,@ @ @J D V` @ sR<(,7 wB!e77j, E ! ! ! ! wVwT,w>|7 zw< ww7 -,&7 7 z-~ 7 vf/,@5& wl B  E,d u @> ,e "$" ,"PA"TA  ĭ+7,%"37#<^R^ , 4z,*nz47 f {fj*z7 wB!e77*z E ! ! ! ! wVwT*zw>|7 zw< ww7 -*z&7 7 z-~ 7 vf/*"{5& wl B  E`*F{ u @> /*j{e "$"*{"PA"TA  ĭ+76*{%"37S ; COMPUTER  PDP-11 ; CONFIGURATION  DISK OPERATING SYSTEM ;   REQUIREMENTS ;    ;    ; PROGRAM NAME  PAL-11R ;VERSION  VERSION LEVEL 4 ;   PATCH LEVEL A ;DESCRIPTION  SPECIFICATION DOCUMENTS #130-390-008-01 ;      #130-390-011-00 AND -01 ;      #130-390-012-00 AND -01 ;      #130-390-014-00 ;      #130-390-023-00 ;   MULTI-PASS, RELOCATABLE, SYMBOLIC ASSEMBLER ; AUTHOR  J. MURPHY ;DATE    APRIL, 1971 ;   COPYRIGHT 1971, DIGI<R"T.fffb^^2^(I b"2(((^w^b Nzf.  b",:<4dR4d PAL11R V004C 9<  R^ # / j|,j77   , w w7 7 Õ .c, 7& #^4^b ,{fffD^v^^ ,&{^wb^D Nvĉz*|4d44d PAL11R V004C @| # *L|77   *p| w w7 7 Õ . *| 7& w_D H*|  j X R 7 ~ 7 R *|d : %_  .  z*}, 5   7 7 7 TAL EQUIPMENT CORP., ;   MAYNARD, MASSACHUSETTS ; STANDARD PROCESSOR WIDE REGISTER ASSIGNMENTS R0  =  %0 R1  =  %1 R2  =  %2 R3  =  %3 R4  =  %4 R5  =  %5 R6  =  %6 SP = %6 ; PAL R7  =  %7 PC = %6 ; PAL ; PAL .CSECT .IFDF NOSEG OVRBLD=1   ;PORTIONS GEPA . . LEAB TOFM TOOT;B  R5NSBI BR  EDCEEXD ULWOH RCEA;S  R0 LRC 4 SRINBI BH  T.MILIM TOOT BTHWIE ARMPCO; 3 ,RR4 MPC . SEBAW NE= S RDWO4 -RYNT EISTH; 2 ,RR4 OVM: R7NSBI Y.TRENE DLID MNDFIO TSTJUAD; 4 ,R10#B SU  R7NSBI EQB E BLTAD REDEORN IERGHHIL BOYM;S  10,#R0 ITB: R6NSBI R4NSBI BR  E.BLTAD REDEORN IEROW LOLMBSY; 3 ,RR4 OVM 6 SRINBO BL 2:SRIN B3 SRINBR B Y TRENF OSSREDD;A EXNDHI4,RV MO  D.UNFOE ATICND ITO0 N-NO; 0 R|w}D f)}&f,  j X R 7 ~ 7 R Z,d : %_  .  ,, 5   7 7 7 m,B- 6 4    Hwc,f7  *   5 [,  h 7  7,  x  wl, 5 P wRL ,@ 8*$}- 6 4    Hw *H}7  *   5 *l}  h 7  7Q*}  x  wlX*} 5 P wRL Ն*}@ 8 |   .}hw@ , P  _<*$~D6 D 2 @  w܉  *H~ JH w  @2 *l~r, 2 OF BUILD SECTION ARE NEEDED. O01=0    ;SET ALL SYMBOLS USED O02=0    ;IN ADJUSTING ADDRESSES O03=0    ;TO WORK IN OVERLAY O04=0    ;ENVIRONMENT TO 0. O05=0 BEGO01=0 BEGO02=0 BEGO03=0 BEGO04=0 BEGO05=0 BEGOVR=0 .ENDC ; PAL ;***** OVERLAY PROCEDURES ***** ; ; THE NUMBER OF WORDS ALLOCATED FOR THE OVERLAY AREA IS: PAL OVRWRD = 1200 ; 576 DECIMAL WORDS C IN  IDT ECCS .ND AGSLA;F GSLATF4,@R OVM L BOYM SOFE LUVA;Y ITNTUA,Q4)(R-2 OVM S HETCMAD IATRD 2N; . CHAT MNO; 2 SRINBE BN  1)(R,24)(R-4 MPC S HETCMAD IATRT 1S; . CHAT MNO; 2 SRINBE BN  CHAT MOR FSTTE;1 @R),R46(-P CM  ETFSOF- E AS BLEAB;T  R40,RB SU  R42,RV MO  ONTIGAPARO;P      GNSIT ENEVPRD ANS RDWO4 F OLEIPLTMUE URSS;A  R07,0000#1 ICB: R1NSBI NGTIES TUEINNTCO; N URET;R  R7 TSR S DECON IOITNDCOT SE; 0 RT TS 3:SRIN BS ESDRADY TRENE BLTAL BOYM |   H0w@ , P  }G*},BD6 D 2 @  w  ] ,f JH w  @2 q,r, 2 I,bf  A, F    HH,P N b f@Xʵ Zb*~bbڊf *~ F    HH*~P N D H@Xʵ Zt*~> ?  C!$@A_* (CH׭, )NF  D H6*D̕`XZ *h    EHN* FN F   HN&*@ACBEH׭ )*NF` j 6 T  w * PAL ; PAL ; THE NUMBER OF BYTES ALLOCATED FOR THE OVERLAY AREA IS: PAL OVRSIZ = OVRWRD+OVRWRD ; 1152 DECIMAL BYTES PAL ; ;IF THE SYMBOL "OVRBLD" IS DEFINED (VIA A ;PARAMETER ASSIGNMENT) THE RESULTING OBJECT ;MODULE WILL CONSIST OF: ;  OVERLAY BUILDER ;  OVERLAY #1 ;  OVERLAY #2 ;   . ;   . ;   . ;  OVERLAY #N ;  OVERLAY AREA ;  RESIDENT PAL-11R ; ;THE;S EXNDHI3,RV MO  IDCTCSD ANS AGFL TTO0 ; S AGFLTR CL  TYTIANQUO T;0 TYTIANQU LRC: R5NSBI NDOU FCHAT MNO; 1 SRINBE BN  2.E/IZ SLEAB TNSAINTCO0 ;R  R0 SRA: R4NSBI E.BLTAW LOBES ESDRADE RE FST;1  R03,RB SU  USIN MSEBAE BLTA; 0 ,RR2 OVM: 39BRSU H:RCNSBI ;;  D.RETEALE AR4 RND AR3, R2; D TISC CND A  ;  GSLATF, TYTIANQUO T 0) 3;  S)ESDRADR HEIG(HX DEIN HTOD RETEENE B  ;  LDOUSHL BOYM SREHE WSSREDD A) 2;  0ESOD CONTIDION CND AR0 1) ; : CHAT MNOF I"f,> ?  C!$@A,>(CH׭, )NF  b fB b&f,b̕`XZ 4,    EHNN, FN F   HN&,@ACBEH׭ ),NF` j 6 T  w $,V   7W ? ,:  ' P ?! 5#V   7W ? *  ' P ?! 5 w.@?  Ã$؊ͭͭ DK,hf^ͭ FNڊb* ^H  ͭ% E*7 vwͭ ĉb7"*ր^w VT8 , Bo*>& *w A*wv  END &*B7 e    *fD!$ RUN TIME TRANSFER ADDRESS WILL BE ;"STARTB" IN THE OVERLAY BUILDER ; ;"SYMTBB" AND "SYMTBT" WILL BE DEFINED IN ;THE OVERLAY BUILDER IN LIEU OF IN THE ;PERMANENT SYMBOL TABLE OBJECT MODULE ;WHICH WILL NOT BE LINKED FOR THE ;BUILD RUN. ; ;IF THE SYMBOL"OVRBLD" IS NOT DEFINED ;THE RESULTING OBJECT MODULE WILL ;CONSIST OF: ;  OVERLAY AREA ;  RESIDENT PAL-11R ; ;THE RUN TIME TRANSFER ADDRESS WILL ;BE "STARTA" IN RESIDENT PAL-11R  .IFDF OVRBLD .IFNDF NOSEG .TITLE PALOB SYMTB;  ; ) TEBY (IDCTCSO TIDN IOCTSEL RONTCO 5) ; ) TEBY (GSLATFO TGSLA FOLMBSY 4) ; Y ITNTUA QTOL BOYM SOFE LUVA 3) ; X DEIN HTOY TRENF OSSREDD AERGHHI 2) ; ) VETISIPO ( 0ON NESOD CONTIDION CND AR0 1) ; : NDOU FCHAT MIFT PUUT;O  ; 3 RINE BLTAL BOYM S  ;  HE TOWEL BSSREDD AEEFRT 1SE TH 3) ; 2 RINE BLTAL BOYM SHE T  ;  OFS ESDRAD) ERGHHI (NGTIARSTE TH 2) ; 1 RINL BOYM S0) 4LODUMO (RDWO ; 2 E THF OSSREDD AR)WELO (SEBAE TH 1) UTNP;I  E.BLTA; L BO& 0^?   $ͭͭ b *b2. f^ͭ FN $(, ^H 2 ͭ%  2,7 wͭ b7" /,^w VT8 , <B  $<,>& Hw  2H" &'Bͽ%( w*w  v`*wwwJ7&V*ҁf"e  ͵ R*͵%͵ɕ= C͵͵*@G**D`*>$ D!!e $͵@/*bG*ew(w$E* e8 fQ$H * R q   .΂  ~(B=.  ;IN LIEU OF LINKING SYMTBT=.  ;WITH PERMANENT SYMBOL TABLE ; ;THE FOLLOWING TABLE CONTAINS THE ;STARTING CORE ADDRESS OF EACH OVERLAY ;IN THE ORDER OF ASCENDING LOCATIONS. ;A 0 WORD TERMINATES THE ENTRIES. ;AS NEW OVERLAYS ARE CREATED THEIR ;POINTERS MUST BE ADDED TO THE END ;OF THE TABLE AND THE OVERLAY ITSELF ;PUT IN THE SAME POSITION ;RELATIVE TO THE OTHER OVERLAYS. ; OVRTAB: .WORD BEGO01  ;OVERLAY #1 .WORD BEGO02  ;OVERLAY #2 .WORD BEGO03  ;OVERLAY #3 .WORD YM SRYNT EER PRDWO4 D REDEOR; N AEROVH RCEA SRYNABIA S RMFOER;P  CHARSEE BLTAL BOYM SRYNABIE INUTROUB;S L PA E AG.P RNTURE; 7 RS RT  0)(R,-+1YMPSTM OVM . OTSLD IEIFECSP;) R0-(3,M+SYMPTV MO  INY TREN;) R0-(T,ULESRV MO  RDWO4 E ACPL;0 @RS,AGFLTV MO  R0X,DEINHV MO 0:R4UB S. EDAYRLVE OBEO TRYNT EOLMBSYF IRYNTE: AYRLOV ;S ERSTGIREE ORSTRE; G REETSP RAT: R2TEEN R3TEEN ISBH  S.RDWO4 S RDWAWNDO; 0 ,RR2 MP*2Y,<2wv  END & 2,`7 e    l,D!Bͽ%( w:,w  ` .,wwwh7&V ha,f"e  ͵ R+, ͵%͵ɕ= C͵͵ ,8 @G**D`+lw8 R *l^a^Q *e      q<p*>  7*b & *w  wB `.7  ERRORS _^*҃@z X> J*ßDå U ʐ 0ï,}ï$"y @ h*4Le <,BEGO04  ;OVERLAY #4 .WORD BEGO05  ;OVERLAY #5 .WORD 0 ; ;OVERLAY DEVICE OUTPUT TRAN BLOCK ; OVRTBO: .WORD 0  ;DEVICE BLOCK NUMBER OVROSA: .WORD 0  ;MEMORY START ADDRESS .WORD OVRWRD  ;WORD COUNT OVRERR: .WORD 2  ;FUNCTION (WRITE) .WORD 0  ;NUMBER OF WORDS NOT TRAN'D. ; ;RESTART ADDRESS OF OVERLAY BUILDER --- ;RELEASE OVERLAY DEVICE IF STILL INIT'D. AGAIN: TST OVRLB  ;IS DATA SET INIT'D BEQ STARTB  ;NO MOV #OVRLB,-(R6) ;YES -- RELEASE IT EMT C E BLTAL BOYM SSTJUAD;+ 1)(R+,0)(R OVM: R3TEEN PCERUS4,RB SU  D.VEMOE BTOS ;I PCERUS,HR4 UBS T IIFY TRENC PERUS; 3 ERNTEO BL  TOS ERNTOI PNTMEREEC;D PCERUS,HR2 MPC . EDEDNET ENTMUSDJ ANO; 2 ERNTEQ BE  R.FENSRA TTOS RDWOF OO.;N  R20,RP CM  R2X,DEINHV MO  R.PT. EG REEFRT 1SD IEIFOD MVESA;P TOSR,UR1 OVM: R1TEEN )+R6(T TS  41 MTE ) R6-(2,10#V MO  ORITON MOFN IOCTRUSTDE ;T ENEVPRO TONTIRAPE OMYUM;D OTKBST4,RB SU  R4TEEN LOB T BOTK,SR2 MPC T BOTK S.,\ $ D!!e $͵@, G*ew(wBE $By,  e8 fQ$H  ,  R q     0   ~lw8 R , s *, , l^a^Q ,8 e      qZ ! $Z h,\   0 7/w*X O +. &J6*|& J*H*C=*Ą=% zP<*d  xP?6 n. c* >w 4Fßנ0נ9,*0å$ å.å  *TנAנZ נaנz  E.x m _D`O,(70RLS ; ;STARTING ADDRESS OF OVERLAY BUILDER STARTB: MOV #OVRTAB,R6 ;INITIALIZE THE STACK START=STARTB  ;SET UP TRANSFER ADRESS ;SET UP RESTART ADDRESS MOV #AGAIN,-(R6) MOV #2,-(R6) EMT 41 MOV #OVRLB,R1 ;LINK BLOCK CLR @R1  ;FOR ^C BEGIN MOV #OVRFB,R2 ;FILE BLOCK MOV #OVRTBO,R3 ;OUTPUT TRAN BLOCK ;.INIT OVERLAY DEVICE MOV R1,-(R6) ;LINK BLOCK EMT INCMD ;OBTAIN DEVICE STATUS MOV R1,-(R6) ;LINK BLOCK EMT 13 CMP (R6)+,(R6)+ ;CORRECT STACKSTJUADO LS;A )+R3,()+R2(V MO 4:ERNT E. DSOR W 4WNDO; 3 ,RR6 OVM K ACSTE OV MCKTA;S  R64,RB SU  TOINN RUD ULWOT US; 2 ,RR6 OVM . ONSILIOL CNO; 1 ERNTES HIB K ACSTH IT WONSILIOL COR FCKHE;C OTKBST1,RP CM  S.RDWO4 Y BERNTOI;P  R14,RB SU  ERSTGIREE RE FST 1SEEACRDE; 1 ,RR0 OVM E USR TELAR FO; 4 ,R10#V MO  R0P,TOSRUV MO  S.ERSTGIREE AV;S  EGVRSA APTR 6:R0UB S. EDIRQURET ENTMUSDJ ALEAB TIFY TREN R:TEEN ;. ESRINT ETHBOT AEDOYTRES DIS0 ;R  E.AD MIST ENTMUSDJ A2 0 ,  & C, w  wB `60 7  ERRORS }^q (}:, @z X> Jn , ßDå U 2ʐ 0ï,}ï$^ 2$8 y @ uR ,R je 2<wj3B D*ƅV l ? (J7 7 RN*V< 40 0 b*C Z:V7G(7 "7 _*27 8w7 7 P&RD*V 7x*z wf *Q_ε9m*†X%,0xw6*wɵELHA* G%B4/d\4.    ;PHYSICAL BLOCK SIZE MOV @R6,R4  ;(IN WORDS) OF OVERLAY DEVICE MOV #OVRWRD,-(R6) JSR R7,DIVIDE MOV (R6)+,R5 ;NUMBER OF PHYSICAL    ;BLOCKS PER OVERLAY CLR -(R6) MOV #OVRTAB,R0 BLDR01: TST (R0)+  ;TOP OF STACK BEQ BLDR02  ;CONTAINS TOTAL ADD R5,@R6  ;NUMBER OF PHYSICAL BR BLDR01  ;BLOCKS REQUIRED. BLDR02: MOV #64.,-(R6) ;DIVIDE PHYSICAL BLOCK MOV R4,-(R6) ;SIZE BY 64(DECIMAL) JSR R7,DIVIDE ;QUOTIENT ON STACK. MOV (R6)+,R0 LEABT;  OLMBSYO NE.OVAB) 3EPST UTTPOU; E OVABS AMESA UTNP;I  AYRLOVP RA;T  X.DEIN HIN ;  SSREDD AHE TATG INRTTA S  ;  EDORSTY TRENL BOYM SEW N) 3;  OPRTUSO TS)RDWO (-4OPRTUS 2) ; . DSOR W 4DSARNWOW DEDSTDU AOPRTUS ; O TEXNDHIM RO FLSBOYM SLL A) 1;  S.RDWOR OU FWNDOD VEMOS ICKTAS;  CKTA SOFM TOOT BTHWIE IDLLCO ; D ULWOE BLTAL BOYM SEDNDPAEXF IT PUUT;O  GSLATF ; T ULES R  ;  +3YMPSTM ; 1 M+SYMP T  ;  INY TREND OR W 4HE T) 262,v O +. &J, & J#, H*C, =% zP<, d  xP?6 n.< c "<~,* >w 4Fßנ0נ9,N å$ å.å  ,r נAנZ נaנz  E0  m }D~7*.  p,RV@@@<L&xP ܉ẋ X2* S̕:* #(׭DO׭<K*H   ^Vj*EP )&X*(˕  S,H*L ˕7 t7 nN*pNSbw#%4 )%G;NUMBER OF 64'S IN    ;PHYSICAL BLOCK MOV @R6,R4  ;TOTAL NUMBER OF    ;PHYSICAL BLOCKS REQUIRED BLDR03: DEC R0  BEQ BLDR08  ;TOTAL NUMBER OF ADD R4,@R6  ;64 (DECIMAL) WORD BLOCKS BR BLDR03  ;REQUIRED ON TOP OF    ;STACK ;DELETE FILE IF ALREADY EXISTING BLDR08: MOV #BLDR04,-4(R2) ;ERROR RETURN MOV R2,-(R6) ;FILE BLOCK MOV R1,-(R6) ;LINK BLOCK EMT DLT BLDR04: CLR -4(R2)  ;ERRORS TO MONITOR ;ALLOCATE THE NECESSARY SPACE FOR ONE ;CONTIGU ; X DEIN HINT LO SHE TOF) SSREDD ASTHEIG(HS ESDRADE AS BHE T) 1T PUIN; R TEENP RA;T  S:NTOI PRYNT E 2RE AREHE;T E.BLTAL BOYM S AINT LO SEDFICIPE;S ATOINY TRENL BOYM SRDWO4 A R TEENO TNETIOUBRSU ; AL P GEPA . . NETIOU RNGLIAL CITEX; 7 RS RT  RSTEISEG RET;S  EGTRSE APTR  EGPRPOM RO FRNTURED ARSCDI; + 6)(R STT: 45BRSU G:REOP;P E.INUTROG INLLCAT XI END A; S ERSTGIREP POO TNETIOUBRSU;  RNTURE;    5 RREE[$}*~. <(7B b<(b, V l ? (J7 7 R, V< 40 0 ,, C Z:V7G(7 "7 ,P 7 8w7 7 P&R,t  7x4,  wf W, Q_ε9, XF*744$*hwN X  T@7{*܈wTw LPQARDMBI*NTU,EEGxr*$Hx\M*HM8f#*lxM&W*4d&W4d&W 7*&W N&Wz%p:*؉(( PAGE XXXXX MM-8""DDDDDDD """""""""""@DDDDDD13333ADD+B C4dz^4d[q^%4d[qK4d[qP4qu%$Da ͋,L w:B8 ` 5 &  E >w   f5eU@  [*   & * G &( 8L'4e Q$ BBB"   U@ U e  "U%Gef. U U Bb 0 * B.&0 M &0 & I%,0xw6,wɵELHAG,(G%B4/d\,L  .pV@@@Zj"$Z(j(n x>v.P.n >v. P"a, S̕:h, #(׭DO׭<K,JDD-YY HH:MM:SS:XX G* P[*8x(vm*\䐬fhj2:Βv8^^PИ`t0~p|4Z~{&ЊȒȐ  V KPR*erw7 l\,7 ~7 KOUS FILE. MOV R2,-(R6) ;FILE BLOCK MOV R1,-(R6) ;LINK BLOCK EMT 15 TST (R6)+ BLT BLDR09  ;SPACE AVAILABLE? CLR -(R6)  ;NO. MOV #ERR9,-(R6) ;FATAL ERROR. BR BLDR10 ; ;DETERMINE THE PHYSICAL STARTING BLOCK ;OF THE CONTIGUOUS FILE AND PLACE IT ;IN THE 1ST WORD OF THE OUTPUT TRAN BLOCK. BLDR09: MOV R2,-(R6) ;FILE BLOCK CLR -(R6) MOV R1,-(R6) ;LINK BLOCK EMT 14  ;.LOOK MOV (R6)+,@R3 ;STARTING BLOCK. CMP (R6)+,(R6)+ ;CORRECT STACK ;THE ONETOES R ;  R5  S RT 4 RRETOES R ; R4+,6)(R  V MO 3 RRETOES R ; R3+,6)(R  V MO 2 RRETOES R ; R2+,6)(R  V MO 1 RRETOES R ; R1+,6)(R  V MO S ESDRADN URET RHE TESAV SR5;  5 ,R)+R6 ( OV M: 16BRSU G:REET;S ERSTGIREE ID W -ORSSCERO PLETILAVOA S IR0;   S ERSTGIRET SEE INUTROUB S ;  RNTURE;  7 R TS R  R5K ACST;  ) R62(,1R5  V MO S ESDRADN URET RHE TCKTA S ; ) R6-(),R60( 1 OV M  R1K ACST;  ) MH   ^V,"EP )&,F˕  S,,j ˕7 t7 n,NSbw#%R ) Rt,74R0R$,hwN X  T@7,wTw LPQARDMBIH,NTU,EN7 7 7 D7 87 @*،!& !wLF׭pu*hLw,&w&7 * 717,777777X*D%&R @w|*h{ĕ Q$BB`@ K* wʥ m2229*d   /Je;*ԍrwv w&&* fL֋wn*O CONTIGUOUS FILE WILL CONTAIN ;N OVERLAYS WITH EACH BEGINNING AT THE ;START OF A PHYSICAL BLOCK ON THE DEVICE ; MOV #OVRTAB,R0 BLDR07: MOV (R0)+,OVROSA ;MEMORY START ADDRESS BEQ BLDR05 ;TRAN OUT AN OVERLAY. ; MOV R3,-(R6) ;TRAN BLOCK MOV R1,-(R6) ;LINK BLOCK EMT 10 ;WAIT FOR COMPLETION OF TRANSFER ; MOV R1,-(R6) ;LINK BLOCK EMT WTCMD ;CHECK FOR ERROR ON TRANSFER ; BIT #140000,OVRERR BEQ BLDR06 ;ERROR ON TRANSFER MOV OVRERR,-(R6) ;PUSH STATUS BYTE R6-(1, R OV M  R2K ACST;  ) R6-(2, R OV M  R3K ACST;  ) R6-(3, R OV M  R4K ACST;  ) R6-(4, R OV M: 14BRSU G:REAV;S ERSTGIREE ID W -ORSSCERO PLETILAVOA S IR0;   S ERSTGIREE AV SNETIOUBRSU;  AL P GEPA . N URET RND ARSTEISEG RET SLLCA; EGPRPO  P RA T  NGKIAC PTERATEEI RE,OP N ; 00D4MO  E BL ? +6YMPSTM> 5 RIS; +6YMPSTM,#R5  P CM 3 5+ R =R5;  5 ,R#3  QEGx,BHx\M,fM8fy,xM&W,4d&W4d&W ,&W N&Wz%p:,(( PAGE XXXXX MM-DD-YY HH:MM:SS:XX  2,2 P,V R-28 ׭*@/4  S*dV׭b ɵ*ɵ-w*e / *Ў~wDl-^j~*-V~ LPw\ *ww"wwVw\* + ) # "     $ 44Z 7 H7 ^7 ^7!* $Q   6 ,:>%%’ K^*`*-  7 U*7  '*&_" ɋ 5 E*̑ ^0^ ɋD R*PT wcd `UBĝT * E7P* T *8  %å   w*\w׽@׽[OV #TITLBF-BEGO01+BEGOVR,-(R6) MOV R2,-(R6) ;PRINT # EMT WRCMD CLR IDENT-O01 ;DON'T PRINT TITLE OR .INIT OVERLAY DEV. MOV R2,-(R6) EMT WTCMD MOV #CILB,-(R6) ;INIT COMMAND MOV @R6,R1  ;#CILB EMT INCMD  ;INPUT DEVICE MOV #CIFB,-(R6) ;OPEN COMMAND MOV R1,-(R6) ;INPUT FILE EMT OPN ;SET UP COMMAND INPUT BUFFER MOV #SIBUF2,R0 MOV R0,-(R6) MOV #SRCMAX,(R0)+ ;72(10) DATA BYTES. CLR (R0)+  ;FORMATTED ASCII ;READ COMMAND STRING MOV R1,-(  LGFFDE,#GSLATF TBBI  ET SOT NAGFLL OBGL;.  HIRCSE EQB G FLLB#GS,AGFLTB ITB: HKRCSE HIRCSE BR  ADRI TND;2 Y2BSGL),R1(V MO  ADRI TST;1 Y1BSGL+,1)(R OVM: HLRCSE D.OR WNE ONTMERENC;I  )+R1(T TS  8)D)(I-(E AS;B  R13,RB SU  LEAB TCTSE.CF OSEBA;1 ,ROPRTPE OVM ;  R3 SLA ;  R3 SLA S TEBY8 ) ID;(  R3 SLA L BOYM SEDINEF DLYIPLTMU; K CHERSQ BE  R3G,LADF#M PBCM  TELUSOABR OEDINEFND;U  HKRCSE EQB . GNSIE ATAGOPPRT N'DO;3 ,RIDCTCS SBBI  R3 LRC] nh nr pf po + *,ew7 l  .7 ~7 7 7 7 D7 87 @< (,!& !wLF׭p&  %,hLw,&w&7 :,>717,777777,b%&R @w,^&b` m, B`E   eeW!e*`&fv  (*ʒ*&Zw P  B[*7<B! w.  7[*7l *@"4.\*6 7 7 " E - *Z1- 77 70*~!ׂ &< 7j* & ע. W._ *Ɠ0wtw2_R6) EMT RDCMD ;WAIT FOR INPUT WITH CLOSE AND RELEASE TRAP CLEAN BITB #47,SIBUF2+3-O01 BEQ CSIOKJ  ;TRANSFER ERROR? MOV SIBUF2+2-O01,-(R6) ;YES JMP ERRO3-O01 ;CALL COMMAND STRING INTERPRETER CSIOKJ: MOV #CMDBUF,-(R6) EMT 56 MOV (R6)+,R1 ;ADDR. OF DATA BYTE WHERE SCAN ENDED. BEQ CSIOK1  ;COMMAND SYNTACTICALLY CORRECT. CMPB (R1)+,(R1)+ ;INCREMENT BY TWO MOVB #13,@R1  ;VERTICAL TAB MOVB #77,-(R1) ;QUESTION MARK SUB R0,R1  ;PRINT COMMAND UP T  ST UINH TCMA; 0 RR CL J:CHER ST USN INDOU FCHAT;M  NDOU FOT NTECADIIN; I CHERSR B O TVETIGANEE AK;M  R0 ECD T USN INDOU FOT NCHAT;M  NDOU FCHAT;M  HJRCSE NEB H RCEA SRYNABI; H RCNSBI APTR  LEAB TOWEL BSSREDD AST;1 R3P,TOSRUV MO  SEBAE BLTA;2 ,ROPNTCO OVM: HERCSE E.BLTAL BOYM SERUSH RCEA;S  E.BLTAL BOYM;S  ERUSE THH RCEA STOE ER HESOM COLTRON;C  D,KEAC PDYEALR A+3YMPSTM, +1YMPSTMN IOLMBSY; E THH IT WCHARSEO TLLCAD ONEC S AON; . OLMBSYE ETPLOM CTHWI; a{ĕ Q$BB`@ K", wʥ m222,d   /Je,rwv w&&;, j֋wnj,:-28 ׭T,^/4  ,V׭b ɵ/,ɵ-w,b*<  @0w2D*WW µ  *2  7*V0. 2}*z. W"µ@6µw *µwµi *”͵&# 7ztP*N-F׭^3 8/0Kx* H7E47 780VK*."%$oDaJHcO  ;ERROR DATA BYTE FOLLOWED BY ? VT. MOV R1,@R0 MOV #SIBUF2,-(R6) MOV R2,-(R6) EMT WRCMD BR CSIOK2  ;PRINT # AGAIN. ;CLOSE AND RELEASE COMMAND ;OUTPUT DEVICE CSIOK1: MOV R2,R1 TRAP CLEAN CLR COFLAG-O01 ;FOR ^C BEGIN & RESTART CLRB FRCABS-O01 ;DON'T FORCE @#A FOR A MOVB #2,MAXPASS-O01 ;DEFAULT # OF PASSES. ;SOURCE INPUT ONE CLR CMDBUF-O01 ;INPUT FILE CLR SIFB2-O01 ;DEFAULT CLR SIFB2+2-O01 ;FILENAME. CLRB SICNT-O01 ;ONE INPUT. MOV   T US& T PSH RCEA-S--ES;Y  HHRCSE NEB ? EDBLNA EMDTCBYS ;I  R5@T TS G:CHER ST PSN INDOU FOT NCHAT;M  R7 TSR 0 RT TS  EGTRSE APTR I:CHER S. EXND ISSLA;C SSLAIC4,RB OVM N IOCTRUSTINE AV;S R41,7477#1 ICB 4 RR AS  R4 SRA 4 RR AS  R4S,AGFLTB OVM: HFRCSE ORATICND ITEBYT SE;Y ITNTUA,Q000010#S BI  NO; 3 CHERSQ BE  D?LEABENE YT BICONEMMN;S AGFL,TLGTFBY#B ITB 0 D=CMYT;B  R5@R CL  T.ANSTON C40OD MVETIECFF;E     HE+TD2IATR2=ADRI;T     'BD TELEDEee / J,~wDl-^/ &,,-V LPw\ f  4,6ww"wwVw,Zwwm,~Q$Q$Q$Q$Q$w6Q$wjww,FwTww7 .,@7Gwf5 , )7&H*f*RJH*v ĝډe *4 5G󷊮0׭*3* .7z7 T7 R *wEՇעעע* & עע Š **Հ L   *N7   &4*r77  LP>7 7~{* 74u\ YRg#BLOCK4-BEGO01+BEGOVR,R1 ;CSI BLOCK ADDRESS TRAP CSICHK BEQ CSIOKD  ;NUL FIELD BGT CSIOKA CLR R4  ;NOT PARAMETER FILE. CSIOKA: MOVB R4,PAPASS-O01 ;NON-0 INDICATES PAR. FILE. MOV R5,SITAP1-O01 ;# OF TAPES. MOV R5,SITAPE-O01 TST R3 BEQ CSIOKB  ;ANOTHER INPUT FILE. CSIOKG: MOV SIFB1-O01,SIFB2-O01 ;FOR CSICHK DEFAULT MOV SIFB1+2-O01,SIFB2+2-O01 ;FILENAME BR CSIOKC ;SOURCE INPUT TWO CSIOKB: MOV #BLOCK5-BEGO01+BEGOVR,R1 TRAP CSICHK BEQ CSE THE ACPLRE;3 M+SYMP,TR5@D AD H:CHER SO ;N  HFRCSE EQB ? EDBLNA EMDTCBYS ;I  R5@T TS  ST PIND UNFOH TCMA; D UNFOT NOH TCMA; G CHERSQ BE  CHARSEY ARIN;B  CHSRINBP RAT E BLTAW LOBES ESDRADT 1S;3 ,ROPRTPE OVM E AS BLEAB;T R2T,BOERPV MO 3:CHER SE BLTAL BOYM SNTNEMAER PCHARSE; S ESDRAD) (0YMPSTM= 1 R ;  R1  C IN : 04D4MO HBRCSE  P RA T  04D4MO  Q BE  ?0 = ) (0YMPSTMS I ;  R1 @ TBTS : 40OD MS ESDRADY OREM MDD O  ;    ANT ABEi?.y͟Fׯ@` 6?.j (jM,4B "b F Bb"?,X @ @fEw@E,|B K&|,&$&` 227 2"2)0~`mv 7 n ff (,ff3 f&}wB k j*Xe2e9ee, ef*ޖ e6  ̞ * E 7V *6 .*&55 6  *J*I*n* *qUQU@ ,6& xܗ*ܗFz|*b !*@JIB=I*kIOKG  ;NULL FIELD TST R3   BNE CSIOKH  ;TOO MANY INPUTS? CLR -(R6)  ;YES MOV #ERR6,-(R6) JMP ERROUT-O01 CSIOKH: MOV R5,SITAP2-O01 ;# OF TAPES INCB SICNT-O01  ;TWO SOURCE FILES ;BINARY OUTPUT CSIOKC: MOV #2,CMDBUF-O01 ;GET OUTPUT SPEC. MOV #BLOCK1-BEGO01+BEGOVR,R1 ;CSI BLOCK ADDRESS TRAP CSICHK BGE CSIOK3  ;>0=PASS SPECIFIED. MOV #2,R4  ;PASS 2 DEFAULT CSIOK3: MOVB R4,BOPASS-O01 ;0=NO BINARY TST R3 BEQ CSIOK4  ;MORE OUTPUT FILET US M0)M(SYMP T  ;    ADRI TNDCOSE= ) ,4(3YMPSTM  ;    D IATR STIR F =2)1,M(SYMP T  ;    0 +0)M(SYMP TT PUUT O ;    NGKIAC PIDVO AENTH  ;    0 = ) (0YMPSTMF I  ;    SSREDD A0)M(SYMP T =R1 T PUIN;    6 ARCH+ 0 *4R5HA C +*20**4R4HA C =  ;   3 ARCH+ 0 *4R2HA C +*20**4R1HA C =EDCKPA;   R KEAC P40OD MNETIOUBRSUN PE O ; : H1RCSE NTTANSCO' 'B0 D4MO;     E IVCTFEEFE TH= D CMYT B ; 5 @Rm}D,  7n 7 H7 ^7 ^7, \,4 $Q   6   .X>% % ’ K   ( h,~*-   7   ," 7   " ,&}@ ɋ 5 Q }@, |0| 4ɋD Rn$A:&  4@. c$ *H@# *l7  S  **AwL C*Qw_*  E_U,ؘ*/#@% ()"'+-!&; ,:=87s-*p 8 ̋נ0נ9 å.f*"Հ& EEEE e*F ` e ` EС&EU*jp̵wV/},8 נ*0oS. CLRB LOPASS-O01 ;NO MORE OUTPUT FILES. CSIOK6: CLRB STPASS-O01  ;ZEROING THEIR PASS BR CSIOK8  ;BYTE PROHIBITS OUTPUT ;1ST INPUT FIELD WAS NULL. CSIOKD: TST R3 BNE CSIOKE  ;OK IF NO MORE INPUTS CSIOKF: CLR -(R6) MOV #ERR7,-(R6) ;INPUT FILE MISSING JMP ERROUT-O01 CSIOKE: MOV #2,CMDBUF-O01 ;CHECK OUTPUTS. MOV #BLOCK1-BEGO01+BEGOVR,R1 TRAP CSICHK BNE CSIOKF  ;ERROR IF OUTPUT EXISTS. TST R3 BEQ CSIOKF  ;ERROR IF OUTPUT EXISTS. JMP RCSI ),R0N(COYT B OV M  *2R0= 0 R ;  R0  L AS . ARCHT AS LHE TUT ONKLA B ; ) R01(M-SYMP T RBCL D ANMMCOE YT B ALYALTIENOT PS,YE;    D LEABIS DNDMAOM CTEBY, PENO;  1 CHER S NE B  ?B' ' AR.HA CSTLAS I ; #2),R01(M-SYMP T PBCM D LEABIS DNDMAOM CTEBY, PENO;  1 CHER S LE B  ?S.ARCH3 N HA TREMOE ERTHE AR;  3 ,#R0  B MP C  EDBLSADID ANMMCOE YT BE,OP N ; H1RCSE  E BG ? . RSHA C 6ANTHS ES LREHE TRE A ; #60, R PBCMq( ||4S,PT wcd `UBĝT ,2 E7P* T U,V  %å   w ,zw׽@׽&~ y $~. B`E   eeW!O (4,`&fv  ~,*&Zw P  B, 7<B! w.  7rנ98 å$ å.*נAנZ נaנz jE*֙T P*7&&jnx*ß@≇#0 E S*&wRU%f -$*Օ !*B fe*"wD *f  D! *`reC ]*-$܉eCE y*Қ v$ | lf( ˕ *e˕s ;PRINT # AGAIN. CSIOK4: ;LISTING OUTPUT MOV #BLOCK2-BEGO01+BEGOVR,R1 ;CSI BLOCK ADDRESS TRAP CSICHK BGE CSIOK5 MOV #2,R4  ;PASS 2 DEFAULT CSIOK5: MOVB R4,LOPASS-O01 TST R3 BNE CSIOK6  ;NO MORE OUTPUT FILES. ;SYMBOL TABLE OUTPUT MOV #BLOCK3-BEGO01+BEGOVR,R1 ;CSI BLOCK ADDRESS. TRAP CSICHK BGE CSIOK7 MOV #1,R4  ;PASS 1 DEFAULT CSIOK7: MOVB R4,STPASS-O01 TST R3 BNE CSIOK8 CLR -(R6)  ;TOO MANY OUTPUT FILES. MOV #ERR5,-(R6) JMP  T UNCO. ARCHS L'BOYM S =R0;  0 ,RARCHNT C VBMO 0:CHER SN IOATOGRRTEIND ANMMCOE YT B ;    ST UOFG INCHARSEE ATTINI I ; HERCSE  R B  R1T ENEMCRIN;   1 R NC I  EDCKPAY ADREAL;     T YED KEAC POT N ; H0RCSE  E BN ? 0 =0)M(SYMP TIS;     ? EDCKPAY ADREALL BOYM SIS;   1 @R  B ST T  0 =MDTCBY;   5 @R  R CL S ESDRADD CMYT B =R5;  5 ,RMDTCBY # OV M  SSREDD A0)M(SYMP T =R1;  1 ,RYMPSu,07l *@"4.,T 7 7 " E - &,x1- 77 70G,!ׂ &Z 72vZ&2, & ע. W._ ,0wtw2g,<  @0w2D,,WW µ a,P  v w8 ˕ ,*\ "  $ D*>b L W Ջ.bM u e ͕'  Dg*- "˥*0ӕ  7 D!C   v*қKw  w <w .w C!   *e e& 5 c| es*B%m  e:7g*f1e0wERROUT-O01 ;INITIALIZE UNDEF SYMBOL PASS TO 1 ;AND ERROR PASS TO 0 CSIOK8: MOV #400,OPTIONS-O01 ;ERROR LINES TO COMMAND OUTPUT ;DEVICE DURING FINAL PASS IF ;NO LISTING PASS. TSTB LOPASS-O01 BNE CSIOK9 MOVB MAXPASS-O01,ERPASS-O01 ;NO LST PASS. CSIOK9: MOVB #1,PASS-O01 ;EFFECTIVE PASS=1 ;IS THERE A 2ND INPUT DATA SET TSTB SICNT-O01 BEQ FREE  ;NO ;.INIT SOURCE INPUT DEVICE TWO MOV #SILB2,-(R6) EMT INCMD ;OPEN SOURCE INPUT FILE TWO MOV #MISS1-TM # OV M  RSTEISEG RVESAL AL C ; G REAV S APTR 4:R0UB S: CHARSE ;0 = D TISCC  ;  0 =GSLATF   ; 0 = Y ITNTUAQ  ;  EDERNT EBED ULHO S    ; L BOYM SREWHY TREN    ;  OFS ESDRADT ESGHHI= X DEINH  ;  D:UNFOT NOF I  ;  EXND IPETYN IOCTRUNT I =SSLAIC   ; T PSN INDOU FIF   ; N IOCTSEL RONTCO= 2 SYLBG  ;  'SOLMBSYF OMENA0 D4MO= 1 SYLBG  ;  LEABATOCEL REDINEF DND AST UIND UNFOF I  ;  BLLO.GL NAERXT E =Y2BSGL   ; F OMENA0 D4MO= y7(,t0. 2}#,. W"µ@6µwc,µwµi i,͵&# 7ztP#,N-F׭^3 8/0K,(H7E47 780V,L"%$oDaJH,pJH], ĝe =z7 Ɯ~0Z C p* C`B `&2"Dԝԝ*0102030405*Ҝ060708091011121314151617181920212223D*242526272829303170717273747576777879,8081828384858687888990DF*@77  7 xtQ*de7`&܉ * ".΋4΋/%*M*W H%&:w.%TZ*Нbڊbb{BEGO01+BEGOVR,SIFB2-4-O01 ;SET UP ERROR RETURN. MISS2: MOV #SIFB2,-(R6) MOV #SILB2,-(R6) EMT OPN CLR SIFB2-4-O01 ;GET MONITOR HANDLE ERRORS. ;.INIT SOURCE INPUT DEVICE ONE FREE: MOV #SILB1,R1 MOV R1,-(R6) EMT INCMD ;.OPEN SOURCE INPUT FILE ONE MOV #MISS3-BEGO01+BEGOVR,SIFB1-4-O01 ;SET UP ERROR RETURN MISS4: MOV #SIFB1,-(R6) MOV @R6,SIFB-O01 ;PROCESS FILE ONE FIRST MOV R1,-(R6) EMT OPN CLR SIFB1-4-O01 ;LET MONITOR HANDLE ERRORS ;PROCESS FILE ON1 SYLBG  ;  BLLO.GD NEFIDEUND ANT USN INDOU FIF   ; E YT BIDN IOCTSEL RONTCO= D TISCC  ;  TEBYG LA F =GSLATF   ; E LUVA= Y ITNTUAQ  ;  RYNT EOFS ESDRADT ESGHHI= X DEINH  ;  D:UNFOF I   ;  NDOU FOT N0 0<R  ;  ST UIND UNFO =0R0   ; T PSN INDOU F0 0>R  ;  ESOD CONTIDION CHE TTSSE0 R: UTTPOU  ; E BLTAL BOYM SP.EMT: UTNPI ;  ; . CHSRIN BNGZILITI UEDCHARSE; S ILYONT USE TH, OLMBSYD KEAC PDYEALR;A  ANR FOH RCEA STOY TREND 2NE THN ;O } ,42 5G󷊮0׭ 2,3* .7z7 T7 R_,wEՇעעע,$ & עע Š ,HՀ L   q,l7   &,77  jn\7 7~jn\E, 74u\ Y,%hN@d*q:, ` &e*&R3`&ŝ awt*<eX U`E*`@w&J&*ՀH`Rbb.P lF*О5P K*Kceba7+&b ɒ DeHE FIRST MOV R1,SILB-O01 ;OBTAIN 1ST FREE ADDRESS ABOVE ;FULL MONITOR MOV #102,-(R6) EMT 41 ADD #STKSIZ,@R6 ;ADD STACK SIZE MOV (R6)+,R6 ;TO IT AND RESET MOV R6,STKBOT-O01 ;STACK POINTER AND BASE CLRB CNSTLV-O01 ;CLEAR CONDITIONAL ASSEMBLY COUNTERS CLRB DNTACT-O01 .PAGE PAL ;SYMBOL TABLE INITIALIZATION ;CLEAR ALL HAS BEEN RE-DEFINED FLAGS ;(BIT 1 OF HIGHEST WORD OF THE ENTRY) ;IN THE PE PAL  ; SUBROUTINE SYNTAX ANALYSIS   ; THIS SUBROUTINE TRANSLATES SOURCE CODED ADDRESSING   ; FIELDS TO MDR FORMATTED OBJECT FIELDS. UPON   ; RETURNING, THE CALLING ROUTINE MAY ASSUME   ; THAT THE COMMENTS FIELD HAS APPEARED.    ; INPUT NONE    ; OUTPUT BYTES ALLOCATED TO THE COMMAND    ;  CONDITION CODED RESULTS    ;  < 0, NO FIELDS FOUND    ;  = 0, ONE FIELD FO,Xe2e9ee, e, e6  ̞ ,  E 7V *6 Є,D55 6  .,h*,* O,qUQU@ .6& x (,d|*b Y.ARSSCENEF IST UHE TENTHD ANT PS; E THG INCHARSET RSFI, LYALRMNOS ESOCPR, OLMBSYE YP TB' ' AOT NIF; AL P ;E OVAB. 1ASS ESOCPRN HE TOT NIF B.; . RNTURED ANY ITNTUA QINT BI ; R TOCADIINE YT BHE TET SENTH, ET SIF A.; . AGFLG INBLNA ETEBYS L'BOYM S ;  HE TCKHE CENTH, ST PHE TIN ; D UNFOS IOLMBSYD TEIAEVBRABE THF I. ;2  T.USE THY ARSSCENEF IND AST P ;  E THH RCEA SSTIR F. OLMBSYL TATO ; E THR FOG RMANENT SYMBOL TABLE. ; STINIT: MOV PERBOT-O01,R0 ;ADDRESS (HIGHEST) OF 1ST ENTRY. MOV PERTOP-O01,R1 ;ADDRESS OF 1ST (LOWER) FREE REGISTER. STINI1: CMP R0,R1 BEQ STINI0  ;DONE WHEN MATCH. BIC #REDEF,@R0 ;CLEAR RE-DEFINED BIT. SUB #10,R0  ;DECREMENT POINTER BY 4 WORDS. BR STINI1 ;INITIALIZE THE 1ST CONTROL SECTION ENTRY: ;THE ENTRY IS 4 WORDS OF 0 (THE UNNAMED ;CONTROL SECTION). ;CONTOP=C(PERTOP)-4 (WORDS) STINI0: CLR @R1  ;CLEAR CLR -(R1)  ;FOUR UND    ;  > 0, TWO FIELDS FOUND     ; IF MORE THAN TWO FIELDS     ; ARE FOUND, I QUIT !    ; COMPUTER ADDRESSING MODES REGMODE =  00   ; REGISTER INCMODE =  20   ; AUTO-INCREMENT DECMODE =  40   ; AUTO-DECREMENT INDMODE =  60   ; INDEX    ; SOFTWARE IMPLEMENTED MODES AINCR7  =  27   ; IMMEDIATE INDR7  =  67   ; DIRECT MEMORY    ; SYNTAX DIRECT ASSIGNMENTS DEFER !Fd  ,@JIB=I,BA:&  4@. c$v,f@# K,7  S  *,AwL C*Qw_,  E_U].*/#@% ()"'+-!&; ,:=87s  ( , p 8 ̋נ0נ9INCHARSEE ATTINI IND A ;  K ACEP RR,TEACARCH' 'BE THE ACPLRE ; N HE TD,UNFOT NOS IOLMBSYS HI TIF .);1  OLMBSYD TEIAEVBRAB; S HI TOR FST PHE TCHARSE; N HE TB' 'HE TUTHOIT WRSTEACARCHK AC;P  S.URCC ONGSIESOCPRL IAECSP; N HE TB' ' AISR TEACARCHT AS LHE TIFD AN; S ERCTRAHA C 5OR4 S SEESSSPOL BOYM SHE TIF; : CELA PESAK TNGWILOOL FHE TL,BOYM;S  AOR FCHARSEO TRYNT EST 1HE TON; ;  H.RCNSBIE INUTROUB;S  EDOSCLE THY BEDRMFOER PUEIQCNTE; H RCEA SRYNABIE THG INIZILUT; D HERCEA CLR -(R1)  ;WORD CLR -(R1)  ;ENTRY. CLR -(R1)  ;JUST TO DECREMENT R1 MOV R1,CONTOP-O01 ; ;INITIALIZE TOP OF UST TO TOP OF CONTROL ;SECTION AREA. MOV R1,USRTOP-O01 ; ;ENTER THE USER PC SYMBOL . INTO ;THE UST. MOV R1,HINDEX-O01 ;HIGHEST ADDRESS OF SLOT. MOV #127400,TMPSYM+1-O01 ;1ST TRIAD CLR TMPSYM+3-O01 ;2ND TRIAD TRAP ENTER MOV R1,HUSERPC-O01 ;HIGHEST ADDRESS OF USER PC ENTRY TST -(R1)  ;ADDRESS OF VALUE WORD MOV R1,USERPC-O01 D  =  10   ; DEFERD ADDRESSING BIT PSEEN  =  200   ; PARENTHESES SEEN BIT ASEEN  =  100   ; ADDRESS SEEN BIT OPSEEN  =  040   ; OPERATOR SEEN BIT AUTOINC =  020   ; AUTO-INCREMENT BIT AUTODEC =  010   ; AUTO-DECREMENT BIT INCDEC  =  030   ; INCREMENT-DECREMENT BITS ;SYNTAX: SUBR07: TRAP  SAVREG ; CALL SAVE REGISTERS  MOV  #COMAND,R5  ; R5 = COMAND ADDRESS  CLR  @R5   ; COMAND = 0 å.,@ Հ& EEEE ,d ` e ` EС&EUA, p̵wV/},8 נ\, 0נ98 å$ å., נAנZ נaנz jE, T P*7&&"&o,!ß@#0 E   ,fƋ&R f^v*py'SLw. Qɕ ?'*yHƋ^7 7i[7 2*y7 7 7w`|\2 7ww~'*y h|\ & *zwwl/H|\7~ D*$z7X7+ & wtH|*Hz\ wP|\7 X|t*lz\7< & wB*zSEBA;  0 E1AS B LR C  0 =08SEBA;  8 E0AS B LR C  0 =TYTIANQU;  Y ITNTUA Q LR C  DECOR BEUM NIDAL V =PETY I ;  R3 @ RBCL S ESDRADS PETYM TE I =R3;  3 ,RPETY#I  V MO 0 = R HATCCN;  R HATCCN  B LR C  NETIOU RONTICAFITIENID;     R TEACARCHT RSFIE THO NT I ;     SSREDD ANTOI PRYNT E =R4;  4 ,RARCH#F  V MO S ESDRAD) (6YMPSTM= 5 R ;     NKLA B =5) (YMPSTM;  + 5)(R  B LR C  KSANBL= V ONE .WORD SILB1 .WORD SIFB1 .RAD50 /PAL/  ;DEFAULT EXT ; PAL BLOCK5: .WORD CMDBUF  ;SOURCE INPUT TWO .WORD SILB2 .WORD SIFB2 .RAD50 /PAL/ .EVEN .PAGE PAL TITLBUF: .WORD 20 ;MAX BC .WORD 0  ;FORMATTED ASCII  .WORD 20 ;BC .BYTE CR,LF .ASCII /PAL11R V004C/ ; TITLE LINE FOR PAL PAL .BRETURN  TRAP  FLDEND ; DETERMINE FIELD TERMINATION  BGE  SYNT0B  ; THE FIELD HAS TERMINATED     ; ACTUAL MODE YET UNKNOWN  TRAP  NEXTERM ; CALL FOR THE NEXT TERMINATOR  CLR  R0   ; R0 = 0  TRAP  EXPE1 ; CALL EXPRESSION EVALUATION  BGT  SYNT08  ; EXPRESSION WAS NON-VOID  INCB  QERROR  ; EXPRESSION WAS VOID SYNT08: TRAP  PARSEP ; CALL PARENTHESES SEPARATOR     ; THE FIELD HAS TERMINATED    ytp h>{Ή%*zh7 RfP{fy*z7 wB!et77z4*zx E ! ! ! ! wDwB* {w.l7 jw, w|w7 -*D{&7 7 h-l 7 df/*h{5& wP B  E6*{ u .,  *{e "$"p*{"PA"TA  ĭ7*{"37) ,4(3YMPSTM;  + 5)(R  R CL S NKLA B =2)1,M(SYMP T ; )+R5 ( LR C  NKLA B =0)M(SYMP T ; )+R5 ( RBCL S ESDRAD) (0YMPSTM= L BOYM S ; OLMBSY5, R OV M  SSREDD A0)M(SYMP T =R5;  5 ,RYMPSTM # OV M  KSANBLH IT WERFFBUM SYMP TLLFI;    S ERSTGIREE AV SLLCA; EGVRSA  P RA T: 03BRSU M:TE;I ERNTOU CERCTRAHA=CR0  ;    L BOYM SEDORRR E-1<  ;    R BEUM NEDORRR E-1=  ;    R BEUM N0 =  ;  RYTE 13  ;VERTICAL TAB .EVEN ; PAL TITLBF: .WORD 5  ;MAX BC .WORD 0  ;FORMATTED ASCII .WORD 5  ;BC .BYTE CR,LF,LF,43,13 ;CR,LF,LF,#,VT .EVEN .IFNDF NOSEG ENDO01: SIZO01=ENDO01-BEGO01 ; .PAGE PAL ;***** OVERLAY #2 ***** O02=BEGOVR-BEGO02  ;COMPUTE OFFSET FROM    ;RUN TIME BEGO02: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVE ; ACTUAL MODE YET UNKNOWN  BLT  SYNT09  ; RIGHT  BGT  SYNT18  ; LEFT  TRAP  RFORCE  BISB  R0,R2  BR  SYNT15 SYNT18: INCB  QERROR SYNT09: TRAP  RFORCE ; CALL FORCE REGISTER EXPRESSION  BISB  R0,R2  ; SAVE INDEX REGISTER  TRAP  NEXTERM ; POSITION CURBYTE AT THE NEXT NON-     ; BLANK OR TAB CHARACTER  MOVB  @R3,R1  ; SAVE THE CURRENT TERMINATOR SYNT0A:   ; INSURE FIELD TERMINATOR  CLR  R^h^ ,|f܉ffx^^H^>&B|^w܉^x Nzh*b|R4dhΉ4d PAL11R V004C | # *|7 7   *| e wz7 7 Õ z .K*| z 7& wD ~*| t X X B 7 l 7 @ $*"}T * %O v   *F} 5   7 7 7 5    OLMBSY 0 >  ;    UEAL VEDOD=CPETY I  ;    UEAL VEDOD CI.RMTEM=ERVTSAT PUUT O ;    NENOT PUIN;    . EDSSCERO PNGEI BEMITT ENRRCUE THO T  ;   VETILARER TEUNCOR TEACARCHA S INTAINMAM TE I  ;   M.ERVTSAO NT IUEAL VEDOD C  ;   HE TCELA PND AERCTRAHA CORATINRMTE  ;   D RETEUNCOENY ANE ODNC END AFYTIENID) 3. ;   . TYTIANQUN IOATOC LINM HE TVESA  ;   D ANS ERMBNUL MACIDER OALCT ORTVEON C.) 2  ;   S.OLNRLAY. ; JMP RCSECT  ;ENTRY1 JMP RASECT  ;ENTRY2 JMP RGLOBL  ;ENTRY3 JMP RTITLE  ;ENTRY4 JMP RLIMIT  ;ENTRY5 JMP SUBR41  ;ENTRY6 JMP SUBR35  ;ENTRY7 JMP SUBR42  ;ENTRY8 .ENDC .PAGE PAL ;.CSECT ;THIS PART HANDLES THE ;.CSECT DIRECTIVE ; ;    ;CSECT HANDLER RCSECT: CLRB SIZE-O02 NEGB BINOUT-O02 ;REQUEST BINARY OUTPUT MOVB SAVTERM-O02,R0 ;TERMINATING CHARACTER: CMP R0   ; R0 = 0  TRAP  EXPE2 ; CALL EXPRESSION EVALUATION    ; , ; CR RETURN REQUESTED  BLE  SYNT07  ; CHECK FOR AUTO MODES  MOV  RESULT,@R6  ; STACK EXPRESSION'S RESULT  CMPB  R1,#TCCIMM  ; WAS THE SAVED TERMINATOR     ; AN # ?  BEQ  IMMMDR  ; YES, IMMEDIATE ADDRESSING  BR  SYNT02  ; PROCESS AS INDEX MODE SYNT0B:   ; DETERMINE ADDRESSING MODE FOR     ; FIELDS CONTAINING ANY   *j} & $   Hw)*}7    5 4*}  V 7  7p*}r  h  wJt*} # @ w0< դ*~@z ( l   .B~w@  @  *j~D& 2 " . w  *~ JH w  @2 *~r, 2| MBSYR FOR FEUF BYMPSTM  ;   E THN IRSTEACARCHI CIASX SIO TUPE AV S.) 1  ;   S:CEVIER SNGWILOOL FHE TDEVIRO P  ;   ESINUTRON IOATICIFNTDE IERCTRAHA CHE T  ;   S.ERMBNUR O  ;   LSBOYM SERTHEIE BTOD NEFIDEE ARS EMIT ;   . ORATINRMTED DECOEN ;   S ITH IT WERTHGETOM TE ICHEA, NETIOU R ;   NGLIAL CHE TTO, NGTIENESPRD ANS EMIT ;   L CATIACNTSYF ONGNIFIDEE THS IONTINCFUS M'TE I ;   EMITE INUTROUB S ;   L PA JB #-4,R0  ;CARRIAGE RETURN BEQ CSECT1  ;UNNAMED .CSECT CMPB #-5,R0  ;SEMI COLON BEQ CSECT1  ;UNNAMED .CSECT TRAP CBTABS  ;FLUSH BLANKS OR DEC CURBYTE-O02  ;TABS. TRAP ITEM  ;GET NEXT ITEM TSTB CNTCHAR-O02 ;ANY CHARACTERS FOUND? BLE CSECT1  ;NO. UNNAMED .CSECT TSTB ITYPE-O02 ;LEGAL SYMBOL? BGT CSECT5  ;YES INCB QERROR-O02 ;Q ERROR FLAG CSECT4: JMP MAIN1E-O02 ;UNNAMED .CSECT CSECT1: CLR TMPSYM+1-O02 ;PACKED MOD40 SYMBOL CLR TMP  ; PARENTHESES     ; SEPARATE MAX. CASE FIRST  BITB  #ASEEN,R2  ; WAS AN ADDRESS SEEN ?  BNE  INDMDR  ; YES, INDEX MODE ADDRESSING  BITB  #AUTOINC,R2  ; WAS A + OPERATOR SEEN ?  BEQ  SYNT0D  JMP  INCMDR  ; YES, AUTO-INCREMENT MODE SYNT0D:  BITB  #AUTODEC,R2  ; WAS A - OPERATOR SEEN ?  BEQ  SYNT0E  JMP  DECMDR  ; YES, AUTO-DECREMENT MODE SYNT0E:  BITB  #PSEEN,R2  ; WERE PARENTHESES SEEN*~܉bf *~p F    HH*> < z ~@Xʵ Z*B. /  C!$@AJ*f(CH׭ )NF  z ~*̕`XZ *    EHN* FN F   HN&*@ACBEH׭h )^*NF` X & B  g *> E AG.P RNTURE; 7 RS RT  ENOP;.  PNOT EM  CKLO BNKLI;) R6-(1,RV MO  CKLO BLEFI;) R6-(3,RV MO  RSROERE DLAN HORITON MET;L  3)(R-4 LRC: INNTCO N.KETAS WA" INNTCO;" RNTURER ROERE TH, STXI EOT NID DLEFIE THF ;I Y.LLMAOR NEDRNTURES WAL RONTCO ;D AND TELEDES WAT ID,TEISEXY ADREALE IL FHE TIF ;E ETEL;D  LTDT EM  CKLO BNKLI;) R6-(1,RV MO  CKLO BLEFI;) R6-(3,RV MO  ITIN;.  MDNCIT EM  CKLO BNKLI;) R6-(1,RV MO  RNTURER ROERP UET;S FSYM+3-O02 MOVB #1,R3  ;ID NUMBER 1 MOV PERTOP-O02,HINDEX-O02 BR CSECT6 ;PREVIOUS SECTION .ASECT CSECT2: MOV @USERPC-O02,ABSPC-O02 BISB #RELFLG,@HUSERPC-O02 ;SET RELOCATABLE ;FLAG BIT IN DOT SYMBOL ENTRY BR CSECT7 ;MORE THAN 376(8) .CSECT'S CSECTE: CLR -(R6)  ;ERROR MOV #ERR1,-(R6) ;ANNOUNCEMENT JMP ERROUT-O02 ;PACK THE CHARACTERS IN BYTES TMPSYM (0) TO TMPSYM (5) ;INTO PACKED MODULO 40 REPRESENTATION IN WORDS ;TMPSYM+1 AND TMPSYM+3 CSECT5: MOV #TMPSYM ?  BEQ  IMMMDR  ; NO, IMMEDIATE ADDRESSING  MOV  #DEFERD,-(R6) ; STACK THE DEFERD MASK  BITB  @R6,@R5  ; HAS AN @-SIGN APPEARED ?  BNE  SYNT0C  ; YES, USE INDEX ADDRESSING  BISB  (R6)+,@R5  ; NO, USE REGISTER DEFERRED  BR  REGMDR  ; REGISTER MODE SYNT0C: BISB  (R6)+,@R5  ; SET COMAND'S DEFERRED BIT  CLR  @R6   ; ZERO THE STACKED ADDRESS  BR  INDMDR  ; INDEX MODE ;*** DIRECT MEMORY ADDRESF   7G @& |*b)  8 ?! 5* ?  $ͭͭ(*xf^ͭ FN*΀ ^H H* ͭ 7 wͭ @*b7"^w >< *:  R*&v*^w HHwT  END* &7e  *D!3)(R-4N,TION#C OVM: 47BRSU T:OUEL;D L PA E AG.P UTLODEP RAT; R3O TCKLO BLEFIF OSSREDDA; R1O TCKLO BNKLIF OSSREDDA; E:NCUEEQ SNGLIAL;C ;E IL FUTTPOUN PE.O  ;G INSTXI EDYEALR AIFE IL FUTTPOUE ETEL.D  ;T SEA AT DUTTPOUT NI.IO TNETIOUBRSU ;7 RS RT 1:ANLE CS RL MTE T SEA AT DSEEAEL;R 6)(R,-R1 OVM S CL MTE E IL FSELO;C 6)(R,-R1 OVM O ;N  N1EACL EQB D T'NI IET STADAS ;I  R1@T TS 4:R4UB S: ANLE;C CKLOB,R1 ;ADDRESS OF 1ST BYTE TRAP SERCHB  ;MODULO 40 PACKER INC R1  ;TMPSYM+1 TO R1 MOV #WORD3,R4 ;NO 3RD WORD CLR @R4  ;MATCH; JUST SYMBOL MOV PERTOP-O02,R2 ;PERFORM LINEAR MOV CONTOP-O02,R3 ;SEARCH OVER CONTROL TRAP LINSRCH  ;SECTION TABLE BNE CSECT3  ;MATCH FOUND ;THIS CONTROL SECTION NAME NOT IN TABLE ;ENTER A NEW CONTROL SECTION ENTRY. MOV R3,HINDEX-O02 ;BASE ADDRESS OF ENTRY    ;IS CURRENT TOP OF    ;THE CONTROL SECTION    ;TABLESING *** DIRMDR: ;IF THE FRCABS SWITCH IS NON-0 ;AS A RESULT OF THE CSI SWITCH ;/37 HAVING BEEN ENCOUNTERED ;FORCE @#A FOR A BITB #DEFERD,@R5 ;IS MODE @A BNE DIRMD1  ;YES --- NORMAL TSTB FRCABS  ;FORCE @#A? BEQ DIRMD1  ;NO BISB #DEFERD,@R5 ;YES   ; *** IMMEDIATE ADDRESSING *** IMMMDR: BISB  #AINCR7,@R5 INDXDR:  TST  (R4)+  MOVB  R4,VARLTH  TSTB  RSLMOD  BEQ  DIREC0  BLT  IMMEXT  MOVB  #RLD2.1,RLDIR ;INTERNAL RELOCATIONBͽ%( w*ʁw  `*www7&L*f"e  ͵ R*6͵%͵ɕ= C͵͵s*Z@G**D`?*~$ D!!e $͵@*G*ew(wZE*Ƃ e8 fQ$H * R q   }.z v r BNKLIF OSSREDD=AR1 ; : UTNP;I  ;. EDASLERET SE ;A AT DHE TND AEDOSCLS ILEFIE TH, 'DITINN EE;B AS HET STADAD IEIFECSPF I-- -ANLE CNETIOUBRSU ; AL P GEPA . N URET R ; R7  S RT S ESOCPRE THE NUTION CS,YE;  0 B0LK B HI B  ?) (0STLIUR C >R0S I ; STLIUR,CR0  P CM K ANBLI CIAS= ) R0R(FEUF B ; 0)(R,-' # VBMO 0:B0LK B0 R NC I  SSREDD ASEBAS ERFFBUG INSTLI;     E IVCTFEEFE >. CLR RESULT-O02 ;0 TO CURRENT CLR TFLAGS-O02 ;AND MAXIMUM PC TRAP ENTER SUB #10,CONTOP-O02 ;ADJUST BOTTOM OF UST ;MATCH FOUND---COMPUTE CONTROL SECTION ID CSECT3: MOV PERTOP-O02,R3 ;ADDRESS OF 1ST ENTRY SUB HINDEX-O02,R3 ;ADDRESS OF THIS ENTRY ASR R3  ;DIVIDED BY 4 ASR R3  ASR R3  ;XTRA SHIFT FOR BYTE BIT INC R3  ;+1=CONTROL SECTION CMP #376,R3  ;ID NUMBER BLT CSECTE  ;TOO BIG IF >376(8) CSECT6: TSTB SECMOD-O02 BEQ CSECT2  ;PREVIO (CODE 1) BR IMPR2 IMMEXT:  MOV  #RLD2.5,RLDIR  ;GLB ADDITIVE RELOCATION (CODE 5) CMPB RSLMOD,#-2 BNE DIRECD MOV #RLD4.3,RLDIR  ;.CSECT ADDITIVE RELOCATION BR DIRECD   ; *** INDEX MODE *** INDMDR: BISB  #INDMODE,@R5  MOVB  RSL2MD,RSLMOD  CLRB  RSL2MD  TRAP  INSERT  BR  INDXDR   ; *** DIRECT MEMORY ADDRESSING *** DIRMD1: BISB  #INDR7,@R5  TST  (R4)+  MOVB  R4,VARLTH CMPB #-1,RSLMOD  BEQ  DIRECB ;.GLOBLbw R N*6bTa^Q q*Ze      q|*~  R7*& w h*ƃ wH Z7 #ꃔ ERRORS *X@t R>*, Dß>å U Jʐ *ï&}(Pïy @ *peJ<TH+ R0= 0 R ; R0T,ISRLCU  D AD 1:R0UB S: UFKBBL ;E ON NT PUUT O ;    K.ANBLA H IT WEDLLFIE BTO  ;    N IOITOS PERFFBUT AS LHE TOF  ;    T IPCRBSSUE TH= 0 R UTNP I ;    0)R(FEUF BTO) R0R(FEUF BOMFR ;   . KSANBLI CIAS ;   H IT WERFFBUG INSTLIE IVCTFEEFE THL IL F ;   RSTEACARCHR FEUF BNGTIIS LNKLA BNETIOUBRSU;  AL P GEPA . N URET RND ARSTEISEG RET SLLCA; EGPRPO:US SECTION ABS ;PREVIOUS SECTION RELOCATABLE. MOV @USERPC-O02,R1 ;SAVE CURRENT PC FOR MOV R1,@RELPC-O02 ;PREVIOUS SECTION CMP R1,@HIRPC-O02 BLOS CSECT7 BIT #1,R1  ;EVEN OFF MAX. PC BEQ CSECT8 INC R1 CSECT8: MOV R1,@HIRPC-O02 CSECT7: MOV HINDEX-O02,R0 ;BASE OF NEW CSECT ENTRY MOV R0,HIRPC-O02 ;ADDRESS OF MAX. PC TST -(R0) MOV R0,RELPC-O02 ;ADDRESS OF PC MOV @R0,TBBUF-O02 ;PC OF NEW .CSECT MOVB R3,SECMOD-O02 ;NEW .CSECT ID TO SECMOD MOV T EXPRESSION BPL DIRECC  ;ANOTHER .CSECT  SUB  @USERPC,@R6  SUB  R4,@R6  TSTB  RSLMOD  ;BRANCH IF NOT  BNE  DIRECX  ;PROCESSING  TSTB  SECMOD  ;FOR ABS SYMBOL  BEQ  DIREC0  ;IF ABS SYMBOL FROM ABS SECTION  ADD  @USERPC,@R6  ;ABS SYMBOL FROM REL SECTION  ADD  R4,@R6 MOV #RLD2.3,RLDIR  ;REL SECT PROCES,INIT RLD DIRECTIVE IMPR2:  MOV  @R6,R1 TRAP RELREF  MOV  #4,R4 TRAP RLDFIL  BR  IMPR1 DIRECC: MOVB w* O +. &J*& J*܄~H~*;#*5% |t P<^*$^  rP?0 h(B c*H8w .Fßנ0נ9#*lå$ å.å  p*נAנZ נaנz  EZ. e D,܅B 7  P RA T  AGFLO CARLE C ; AGFLCO  R CL : T1LSCO ONTILEMPCO;D CMWT MTE T PUUT ONDMAOM COR FITWA;) R6-(B,OL#C OVM ; ;D CMWR MTE T PUUT ONDMAOM CCEVIER;S 6)(R,-LBCO#V MO  R.TEINPOK ACSTE THE ORSTRE;      F. LHE TERFT ALLNUA R FEUF B; + 6)(R @ RBCL T UNCOE YT BNTREUR CNTMERENC I; ) R0-(  C IN E YT BTADAT RSFIS R'FEUF B;    O LHE TOFS ESDRADE THD AD;  R6,@R0  D AD T CNE YT BNTREUR C'SLOK ACST;  6)(R,-)+R0 ( OV M  +4R0= 0 R; + 0)6MPSYM+1-O02,R1 MOV TMPSYM+3-O02,R2 CSECT9:   ;NEW PROGRAM SECTION ID TO DOT ID MOV HUSERPC-O02,R3 MOVB SECMOD-O02,1(R3) MOVB #RLD3.1,R0 ;LOCATION COUNTER DEFINITION MOV TBBUF-O02,R3 ;DISPLACEMENT FROM SECTION BASE MOV #10,R4  ;# OF BYTES TO RLD TRAP RLDFIL JMP EXIT-O02 .PAGE PAL ;.ASECT ;THIS PART HANDLES THE ;.ASECT DIRECTIVE ; RASECT:    ;ASECT HANDLER NEGB BINOUT-O02 ;REQUEST BINARY#RLD4.4,RLDIR ;.CSECT ADDITIVE DISPLACED RELOCATION BR DIRECD DIRECB:  MOVB  #RLD2.6,RLDIR ;.GLOBL EXPRESSION DIRECD: TRAP RELREF  MOV  @R6,R3  MOV  #10,R4  MOV  R2,TSTORE  MOV  GLBSY1,R1  ;.GLOBL OR .CSECT NAME MOV GLBSY2,R2 TRAP RLDFIL MOV TSTORE,R2 IMPR1:  INC  RLDFLG DIRECX:  MOVB  VARLTH,R4 DIREC0: MOV  @R6,TBBUF-2(R4)  ADD  #2,SIZE  BR  RETURN   ; *** REGISTER MODE *** REGMDR:; BISB  #REGMODE,@R5  BR  BB |xy* P f ? (D7 7 L;*&P6 .( 0 ?*J= R:N7A 7 7 O*n7 w7 7 H&R7*t w5*f Q_8*چε9Z*%,0zw&wɵJ*"ELHAI%DQ*F4/d\(R+,0)(R  P CM S ESDRADR FEUF BCKTA;S  6)(R,-R0 OVM R DEEA HERFFBUN AIBT OS,YE; R06,#2  B SU E OP N ;  1 STOL C EQ B  ?EDSTUEEQ RUTTPOUD ANMMCO;   0 ,RAGFLCO  OV M  RSTEISEG RVESAL AL C;G REAV S APTR 7:R2UB S: STLICO ; AL P GEPA . N URET R ; R7  S RT R DD AEDCKTA S =3)2,S(DRHA B ; 2 S+DRHA,B)+R6 ( OV M  3)2,S(DRHA B =1)0,S(DRHA B ; 2)(R,-R2 @ OV M  1)0,S(DRHA BCKTA S2 OUTPUT TSTB SECMOD-O02 BEQ ASECT1  ;ALREDY IN .ASECT ;PREVIOUS SECTION .CSECT MOV @USERPC-O02,R1 ;SAVE CURRENT PC FOR MOV R1,@RELPC-O02 ;PREVIOUS SECTION CMP R1,@HIRPC-O02 BLOS ASECT1 BIT #1,R1  ;EVEN OFF NEW MAX. PC. BEQ ASECT2 INC R1 ASECT2: MOV R1,@HIRPC-O02 ASECT1: MOV ABSPC-O02,TBBUF-O02 BICB #RELFLG,@HUSERPC-O02 ;CLEAR RELOCATABLE    ;FLAG BIT IN DOT SYMBOL ENTRY CLRB SECMOD-O02 ;.ASECT ID MOV #ABS1,R1 ;'.(SPACE)A MOV #ABS2UILD   ; *** AUTO-INCREMENT MODE *** INCMDR: BISB  #INCMODE,@R5  BR  BUILD   ; *** AUTO-DECREMENT MODE *** DECMDR: BISB  #DECMODE,@R5 BUILD:  TRAP  INSERT ;  .PAGE RETURN:  MOV  #SAVTERM,R3 TST  (R6)+  ; RESTORE THE STACK POINTER  BIT  #177400,R2  ; PARENTHESES COUNTER ZERO ?  BEQ  RETUR0  ; YES, VALID COUNTER  INCB  QERROR  ; NO, QUESTIONABLE SYNTAX RETUR0: INCB  FLDCNT  ; INCREMENT FIELD COUNTER *j  u.V@@@r *xTḊf S̕*ڇ: # *(׭FO׭>KH  *" `XEP 7*F)&˕ *j S,* ˕7 t7 nNSbwJ*#%h )9 ; 6)(R,-)+R2 ( OV M  ESSSREDD AERADHER FEUF B/O ITETARO;    S ESDRADS ERADHER FEUF BSI;     S ERFFBUE BLLAAIAV= 0 R ; R02,@R  V MO R FEUF BNGTIIS LNKLA BLLCA; UFKBBL  P RA T  ERNTOI PSTLIUR CET S ; R3,@R1  V MO T UNCOE YT BRSFEUF BROZE;  + 1)(R  R CL E OD MRSFEUF BZELIIAITIN; + 1)(RE,ODOM#L  V MO X MAS ERFFBUE IZALTINI I ; )+R1,(R0  V MO T UNCOE YT BAX MLO= 0 R ; R0C,MBLO # OV M  SSREDD AERAD.,R2 ;'BS. BR CSECT9 .PAGE PAL ;.GLOBL THIS SECTION HANDLES GLOBAL STATEMENTS RGLOBL:  MOVB  #-1,SIZE-O02 CLRB  SAVTERM-O02 TRAP  CBTABS GLOBL1:  DEC  CURBYTE-O02 GLOBL2:  MOVB  SAVTERM-O02,R0  CMPB  #-4,R0 ;CARRIAGE RETURN  BEQ  GLOBLX  CMPB  #-5,R0 ;SEMI COLON  BEQ  GLOBLX  TRAP  ITEM  ;GETS THE NEXT SYMBOL  TSTB  CNTCHAR-O02  ;;ANY CHARACTERS FOUND   TRAP  FLDEND ; DETERMINE STATEMENT TERMINATOR  BLE  RETUR1  ; STATEMENT TERMINATED  CMPB  FLDCNT,#2  ; MORE THAN TWO FIELDS ?  BLT  RETUR2  ; NOPE  INCB  QERROR  ; YES, QUESTIONABLE SYNTAX RETUR1: TRAP  SETREG ; CALL SET REGISTERS  DECB  FLDCNT  ; SET THE CONDITION CODES  RTS  R7  ; RETURN RETUR2: ASL  @R5   ; SHIFT COMAND SIX BITS LEFT  ASL  @R5  ASL  @R5  ASL  @R5  ASL  @R5 *ֈ6hΉh*w> X  VB7wT*wLPQARDMBINTU,*BEEGx^*fHx\MM*8fx*M&W4d&W*҉4d&W &W N5*&Wz%p:*** PAGE XXXXX MM-DD-YY HH:MMHEO LRSFEUF B ;     VETIECFF E.,221- R =R1;  1 ,R26 # UB S: T2TARO ?EDSTUEEQ RUTTPOUD ANMMCO; STLICO  P RA T 1:ATOT RT OURREP JM  6)(R,-R3ER#V MO  CEVIDET PUUT;O  R6@B WAS N OOD;E R6,@77#3 ICB: O3RR E) R6-(),R11(T-TAOSLV MO  GSLA FHE TARLE CS,YE; 1)(RATSTLOF,EO # CBBI E NUTION CE,OP N; 1 ATOT R EQ B  ?UTTPOUD TEIS LONF EO; 1)(RATSTLOF,EO # TBBI H NCRA B -NO;1 ATOTRQ BE  S?ESGRRO PING INTHNY AAS;W R0 STT: T4TARO SSREOGPRN ING*BGT  GLOBLA  ;YES THEN BRANCH GLOBLX:  JMP  EXIT-O02  ;ABORT GLOBLA:  TSTB  ITYPE-O02  ;IF ITEM WAS LEGAL  BGT  GLOBL4  ;THE BRANCH IF SYMBOL  INCB  QERROR-O02  ;ELSE FLAG  CMPB  #-3,SAVTERM-O02 ;IF LAST TERMINATOR  BEQ  GLOBL2  ;WAS , THEN BRANCH  JMP  MAIN1E-O02 GLOBL7: BISB #REDEF,@HINDEX-O02 ;SET PERMANENT SYMBOL REDEFINED FLAG. GLOBL4: TRAP SEARCH  ;SEARCH SYMBOL TABLE BGT GLOBL7  ;IF PST THEN REPEAT BEQ  ASL  @R5  TRAP  NEXTERM ; CALL FOR NEXT TERMINATOR  CLRB  RSLMOD  CLR  GLBSY1  CLR  GLBSY2  JMP  SYNT00 .PAGE PAL  ; SUBROUTINE INSERT   ; THIS SUBROUTINE INSERTS THE THREE BIT   ; REGISTER FIELD FOUND IN R2 INTO THE   ; COMMAND BEING BUILT.    ; INPUT R2 CONTAINS A 3-BIT FIELD    ; OUTPUT NONE ;INSERT: SUBR20: MOVB  R2,-(R6)  ; STACK LOWER BYTE>:SS:XX *J P%*n&ynv6ƋH*Ɛ.ʑ72PX쒬 0, IMPLIES ,    ;  = 0, IMPLIES ; CR    7 7 N7 7 Pʌ*!& !w\V׭*$xLw<6w87 7CL*H7>77707777*l&R @w&<*ĕ Q$BB`@ K *wʥ e<222v*؍   ?\er*w w&& g* ֋w~b*D =R1;  1 ,RR2 @ OV M  ESSSREDD ARSDEEA H ;     ERFFBUT PUINE THG ININTAON C ;     LEAB THE TOFS ESDRAD= 2 R ; R2S,DRHA#B  V MO 2:R0UB S: TETARO ;D YEROSTDEE AR3 RRUTH0 R  ;    SSREDD ARSDEEA H  ;    R FEUF BUTNP ICEURSO   ;    RSFEUF BLEABILVA A =R0 UTTPOU;    E ON N UTNP I ;    ONTISIPOE BLLAAIAVE THO NT IERFFBUS TETARO ;   S NKLA BTOA AT DRSFEUF BISTHS ZELIIAITIN ;   R DEEA HLOS ERFFBUS " PAL ;TITLE DIRECTIVE HANDLER RTITLE:  TRAP  CBTABS  ;THIS PART  DEC  CURBYTE-O02  ;GETS  TRAP  ITEM  TSTB  ITYPE-O02  ;THE FIRST ITEM  BGT  TITLE3  ;AND CHECKS  INCB  QERROR-O02  ;FOR SYMBOL  BR  TITLEX TITLE3:  MOV  #TMPSYM,R1  TRAP  SERCHB  MOV  TMPSYM+1-O02,TITLEA-O02  MOV  TMPSYM+3-O02,TITLEB-O02 TITLEX:  DECB  SIZE-O02 ;SPACE WAS FOUND ASSU ;  < 0, IMPLIES OTHER ;FLDEND: SUBR18: MOV  #1,-(R6)  ; STACK A ONE  CMPB  @R3,#TCCCOM  ; IS THE TERMINATOR A, ?  BEQ  FLDEN1  ; YES  CMPB  @R3,#TCCSMC  ; IS THE TERMINATOR A ; ?  BEQ  FLDEN0  ; YES  CMPB  @R3,#TCCCRE  ; IS THE TERMINATOR A CR ?  BEQ  FLDEN0  ; YES  DEC  @R6   ; RETURN NEGATIVE FLDEN0: DEC  @R6   ; RETURN ZERO FLDEN1: TST  (R6)+  ; RETURN POSITIVE -D8 ׭*h/D  y*V׭t ɵN*ɵ-w*Ԏe / .w\~-n-f*  \bwl +*DwwDw>wxw(ww6*he<(Q$Q$Q$*Q$Q$wZQ$wwwfwtww7 *HI TESIZALTINI I ;   RYSAESEC NIF, ONTINAMIER TLOS IEIFER V ;   S:SKTAG INOWLLFOE THS RMFOER PNETIOUBRSUS HI T ;   RSFEUF BUTTPOUT/PUINE ATOT RNETIOUBRSU;  AL P GEPA . , RNTURE;  7 R TS R 1:NTRI PR TEACARBH' '?E UTITSTUB S ; E YTRBCU,@'? # VBMO 0:NTRI PT MILIR WELO 40S EDCEEX;  1 NTRI P LE B  TEBYUR@C0,#4  B MP C  ITIM LERPP U40 1DSEEXC E ; T0INPR  T BG 0 14,#TEBYUR@C  ME DEFAULT  JMP  EXIT-O02 .PAGE PAL ;LIMIT HANDLER ; ; RLIMIT:  MOV  #TBBUF,R5  ;RESERVE  CLR  (R5)+  ;TWO  CLR  (R5)+  ;WORDS  MOV  #2,R4  ;WORDS  MOV  #RLD3.3,RLDIR-O02  ;AND TELL  TRAP  RELREF  ;THE LOADER  TRAP  RLDFIL  MOV  #4,SIZE-O02  ;TO FILL SPACE  JMP  EXIT-O02 .PAGE     ; SET THE CONDITION CODES  RTS  R7  ; RETURN .PAGE PAL  ; SUBROUTINE PARENTHESIS SEPERATOR   ; THIS SUBROUTINE SEPERATES RIGHT AND LEFT   ; PARENTHESES FROM OTHER TERMINATORS. IT ALSO   ; SETS THE PARENTHESIS SEEN FLAG BIT AND   ; MAINTAINS THE PARENTHESIS COUNTER.    ; INPUT R2 DEDICATED REGISTER    ; OUTPUT CONDITION CODED RESULTS    ;  ) @7_w*ԏn45 $A7&{*H*͟`ׯZ`. P?HZ :x*D ^ @ @*hfEwNB @*K&&$&`* HH7 `m 7 2*Ԑ ffff3 *.f&wZ  7X* 7 ^7 t7 t PBCM 5:R2UB S: NTRI;P IDALNV IESLIMP IT..G  ;    D LIVAS IEPLIM. LE .  ;    TSULES REDOD CONTIDION CT:PUUT O ;    TYLIBITAINPRE INUTROUB S ;  L PA E AG.P RNTURE;  7 R TS R  RNTURE;  7 R TS R0:CHET;G N.IOATINRMTEE URNS I ; R3E,YTRBCU @ VBMO ; 0 % %*j’ K *-*  7 "7 *  &X *֑ɋ 5  0* LɋD jhT wc| *xUXĝl E7h* *B T   =å*f   ww׽@׽*&   R ROER Q CBIN ; ITEXO SSECAD LIVA, NO;  0 CHET G NE B  ;? T RER-CAA R TEACARCHS HI T ; E YTRBCU,@CR # PBCM ; D.TENAMIER TIS;     E IVCTREDIE THD ANE OD C ;     ORRR EQ' ' ATHWID TEINPRS I ;     NELIK ANBLA , ARPEAPS OE D ;     NE OIF T.ENEMATSTI CIAS . ;     ANN HIIT WEDTTMIER PEREV N ;     ISR TEACARCHT RER-CAA T HA T ;     ESURNS IDECOD PE-ONOS HI T ;     ERCTRAHA CF.EF= M ERVTSA; AT THE ; BYTE NOT BE INCLUDED IN THE ; MATCHING PROCESS. ONLY BITS IN ; THE FLAG BYTE THAT ARE ON WILL ; BE MATCHED IN THE SEARCH. ; 3) THE STARTING (HIGHER) ADDRESS OF ;  THE SYMBOL TABLE IN R2 ; 4) THE 1ST FREE ADDRESS BELOW THE ;  SYMBOL TABLE IN R3 ; ;OUTPUT ; IF MATCH FOUND ; 1) R0 AND CONDITION CODES NON 0 (POSITIVE) ; 2) ADDRESS OF ENTRY TO HINDEX (HIGHER ADDRESS) AND R2 ; IF NO MATCH ; 1) R0 AND CONDITION CODES 0 ; 2) R2 DEARSE1 PARSE0: INC  @R6   ; INCREMENT STACKED ZERO  INCB  R2   ; INCREMENT PCOUNT BYTE PARSE1: SWAB  R2   ; RESTORE R2 FORMAT  BISB  #PSEEN,R2  ; SET PSEEN BIT PARSE2: TST  (R6)+  ; SET THE CONDITION CODES  RTS  R7  ; RETURN .PAGE PAL  ; SUBROUTINE REGISTER CHECK   ; THIS SUBROUTINE DETERMINES, FINALLY, IF   ; A VALUE IS TO BE TYPED AS REGISTER. B`E  *  eeW!`&f*Ғv  *&p*w f  X7RB! P*wD0  6707 **>X8LF 7 &7 :*b E - 1- 7*7 70!ׂ *&r 7J & ע*Γ. W._ 0wd*݊w)2<  R5,@TEBYUR@C  B OV M: 11BRSU R:HATCGE ;R TEACARCHT GEE INUTROUB S ;  L PA E AG.P RNTURE;  7 R TS R: 01ENEV UTNOBI1, # VBMO F BUEB  P RA T  EGTRSE  P RA T  ILDFRL  P RA T  R44, # OV M  N.IOATICIFOD;M R1C,RPSE@U  V MO R TEUNCON IOATOC;L R02,3.LD#R  B OV M  EGVRSA  P RA T  UTTPOUY ARIN BSTUEEQ R ; UTNOBI  B EG N  ORRR ENGDIUNBOE THT SE;  R ROER B CBIN F BUTB  STROYED ;LINSRCH: SUBR41: LINSR3: CMP R2,R3  ;COMPARE TABLE LIMITS. BNE LINSR1  ;STILL MORE ENTRIES. CLR R0  ;NO MATCH. RTS R7  ;RETURN LINSR1: MOV @R1,R0  ;1ST TRIAD BEQ LINSR6  ;DON'T COMPARE IF 0 CMP R0,-6(R2) BNE LINSR4  ;NO MATCH; TRY NEXT ENTRY. CMP 2(R1),-4(R2) ;2ND TRIAD BNE LINSR4  ;NO MATCH; TRY NEXT ENTRY. LINSR6: MOVB @R4,R0  ;FLAG BYTE BICB (R2),R0  ;ALL BITS IN DST SHOULD BNE LINSR4  ;BE CLEARED IF MATCH MOVB 1(R  ; IF NOT, THE SUBROUTINE RETURNS   ; IMMEDIATELY. IF THE VALUE IS TYPED AS   ; REGISTER, THEN INSURE THE VALUE IS   ; PROPERLY BOUNDED AND IF NOT, FORCE   ; REGISTER ZERO.    ; INPUT R0 CONTAINS REGISTER    ;  TYPING INFORMATION    ; OUTPUT CONDITION CODED RESULTS    ;  NOT NEGATIVE IMPLIES    ;  R0 CONTAINS A VALID    ;  REGISTER NAME    ;  NEGATIVE IMPLIES    @0*w2DWE*:W µ  . *^('70. |*2. *W"µ@6µwµwµ*ʔi ͵&-#* 7Pf-^׭*v3 P/0c`7]47e*6 7PHl:%3$o*ZZa JHC IN . PCS R'SE UNTMERENC I, NO;  C RPSE@U  C IN T XI ES,YE;  1 N0VE E EQ B  ?ENEVR TEUNCON IOATOC L ; PCERUS,@#1  T BI F BUTBC,RPSE@U  V MO 6:R2UB S: PCENEV ;R TEUNCON IOATOC LHE TENEVE INUTROUB S ;   NGSIESOCPRE ETPLOM C ; T XI E MP J  ORRRBE  B LR C  ERNTOU CONTICALOE THN VE ELLCA; PCENEV  P RA T  T.OUD CEOR F ;    YSWAALS IERFFBUT PUUT ORYNABIE TH;    , REFOREHE TD,RETEALY LLNAIOITNDCOUN;    S IERNT4),R0 ;CONTROL SECTION ID BYTE BEQ LINSR8 CMPB R0,1(R2) BEQ LINSR8 LINSR4: SUB #10,R2  ;SUBTRACT 4 WORDS FROM POINTER BR LINSR3  ;TRY NEXT ENTRY. LINSR8: MOV R2,HINDEX-O02 ;MATCH--ADDRESS OF MOV #1,R0  ;ENTRY TO HINDEX; RTS R7  ;POSITIVE VALUE TO R0. .PAGE PAL ;GSDTAB THIS SUBR CONSTRUCTS THE GSD TABLE IMMEDIATELY ;AFTER THE .END STATEMENT PRECEDING THE BINARY PASS ; SUBR35: MOV #BOLB,R1 ;   1) NOT TYPED AS REGISTER    ;   2) INVALID REGISTER NAME    ;   WAS FOUND, RESULT    ;   SET TO ZERO, R0'S    ;   LOW BYTE EQUALS ZERO ;RCHECK: SUBR2A: CLR  R0  BISB  REGTYPE,R0  ; IS RESULT TYPED REGISTERS ?  BEQ  RCHE01  ; NOPE, RETURN NEGATIVE ;RFORCE: SUBR2B: MOV  RESULT,R0  ; R0 = RESULT  CMP  R0,#7  ; IS R0 > 7 ?  BGT  RCHE00  ; YES, FORCE REGISTER ZERO  TSTB  RSL,~J0H" ĝE*e 4J 5c*ȕ]0׭I* * .77 l7 jwEՇ7*עעע & עG*4ע Š Հ br*X$ $ 7 ,|  &77  *t7 7 74*Ɩu\ Ype2e9eOU CONTICALOY BLEMSS AHE T ;    NGSIESOCPRE IVCTREDIY BLEMSS AENEV;   : ENEV ITEX BR  AGFLS EE.GT SE;Y KESTLI7,RV MO S:EE G; L.NAIOATEROPN-NOE ARS VETIECIR D  ; STLI.ND ANT IS.LN HE TT,ENESPRF I -VETIECIR DESGE . ;; ITEX BR  EYTKIS,L-1#V MO  AGFLT IS LSSREPPSUT SE;N TOIS,LR7 OVM: STLI NE OD CEDBLEMSS-AON NOFUTTOINPRE RCOU SSSREPPSU- E IVCTREDIT ISNL . ;; ITEX BR  EYTKIS,L-1#V MO  ONSTLI LRC: STLI ;E OD CEDBLEMSS-AON NOFT OUNTRI PCEURSOE UMES R -VETIECIR D MOV #BOFB,R3 TRAP DELOUT  ;.INIT, .DELETE, .OPEN, BINARY DATA SET. ; DUMP LEADER GSD999: MOV #20.,R0 ;SET COUNT GSD06: MOV #TRLBUF,-(R6) MOV R1,-(R6) EMT WRCMD DEC R0  ;DONE? BGE GSD06  MOV  #GSDCMD,DIRCMD-O02 ; GSD DECLARATION.  TRAP  RLDINT  MOV  TITLEA-O02,R0 ; OBJECT MODULE NAME.  MOV  TITLEB-O02,R1  CLR  R2  ; 0 TO FLAGS.  CLR  R3  MOV  #10,R4  TRAP  RLDFIL  MOV  #ABS1,R0  MOV  #ABS2,R1  MOV  #MOD  BNE  RCHE00  TST  R0   ; IS R0 < 0 ?  BGE  RCHE02  ; NOPE, RETURN NOT NEGATIVE RCHE00: INCB  RERROR ; FORCE  SET REGISTER ERROR  CLR  RESULT  ; RESULT = 0  RTS  R7  ; RETURN, CONDITION CODE 'Z' IS SET RCHE01: MOV  #100000,R0  ; SET ONLY R0 SIGN BIT     ; CONDITION CODES ARE SET RCHE02: RTS  R7  ; RETURN .PAGE PAL  ; SUBROUTINE NEXT*e, e e1*6  ̞  [ 7n *2*6 55 6q*V $a*z ** !*U*—gU@ *6& xdƘޘ* *z !@bI-*.Z=a Y:>  *STLI . ;; DCEN. 1 D1EN MPJ G SENO DFIF. C ND.E  Y2TREN MPJ 3 #AYRLVE;O  3D OR.W  RLNTCO APTR  EGOSNF NDIF.: NDMESI VETIECIR DND.EE ATULIM;S ;C ND.E  TEBYRP JM  EGOSNF FD.I  DCEN. 4 RYNTEP JM  4D OR.W  RLNTCO APTR  EGOSNF NDIF.: TEBY ERDLAN HVETIECIR DTEBY .OFN IORTPOT ENIDES;R ;C ND.E  IISCRA MPJ G SENO DFIF. C ND.E  Y2TREN MPJ 4 RDWO. L TRONCP RAT G SENO DFFN.I I:CIAS ERDLAN HVETIECIR DIISC.AF OONTIOR PNTDESIRE ;; DCEN. 0 ASCFLG,R2  ;ENTER ASECT (PROG. SECTION, DEFINED)  TRAP  RLDFIL ;SEARCH UST FOR ALL .GLOBL'S ASSOCIATED WITH ;THE ABSOLUTE SECTION. ; MOV CONTOP-O02,R2 ;THE STARTING ADDRESS OF UST MOV USRTOP-O02,R3 ;1ST FREE LOCATION BELOW UST MOV #WORD1,R1 ;ADDRESS CONTAINING .GLOBL NAME CLR @R1  ;ACCEPT ANY NAME. MOV #WORD3,R4 ;3RD WORD OF MATCH. MOV #GLBFLG,@R4 ;.GLOBL GSD05: TRAP LINSRCH BEQ GSD01  ;NO MATCH BITB #RELFLG,@R2 ;ADDRESS OF MATCH IN R2 & HINDEX  TERMINATOR   ; THIS SUBROUTINE SIMPLY MOVES THE CURBYTE   ; POINTER TO THE NEXT NON-BLANK OR   ; NON-TAB CHARACTER. THEN THIS CHARACTER   ; IS EXAMINED TO DETERMINE IF IT IS A   ; TERMINATOR. SAVTERM REFLECTS THE RESULTS.    ; INPUT NONE    ; OUTPUT NONE ;NEXTERM: SUBR17: TRAP  CBTABS ; CALL CHECK FOR BLANKS AND TABS  JSR  R7,TERMIN ; CALL TERMINATOR IDENTIFICATION  RTS  R7  ; RETURN .PAGE R4@. c$6@#*v 7  S*  *AwL C*8*gw_  [_*5U*/#@% ()"'+-!*&; ,:=874s p 8 ̋Y**נ0נ9 å.Հ& D*NEEEE  ` e *r` Eз&EUp̵u*wV/,8 נ0נ9*8D5RARP JM  EGOSNF FD.I  DCEN. 1 RYNTEP JM  4D OR.W  #4Y LAEROVN ILLCA; L TRONCP RAT G SENO DFFN.I 0:D5RA ERDLAN HVETIECIR D50AD.RF OONTIOR PNTDESIRE ;; DCEN. C NDRE MPJ G SENO DFIF. C ND.E  Y7TREN MPJ 3 RDWO. L TRONCP RAT G SENO DFFN.I C:ND EC ND.E  O2PRIF MPJ G SENO DFIF. C ND.E  Y6TREN MPJ 3 RDWO. Y TRENF NDIF;.  RLNTCO APTR  EGOSNF NDIF.: DFFN IY TRENF FD.I;+ 1)(R+,1)(R MPC: DFIF DCEN. O PRIF MPJ G SENO DFIF. C ND.E  BNE GSD04  ;RELOCATABLE .GLOBL TRAP ENTRGL  ;ENTER SYMBOL IN RLD BUFFER GSD04: SUB #10,R2  ;HINDEX-4 WORDS. BR GSD05  ;CONTINUE LINEAR SEARCH. ;ENTER ALL RELOCATABLE PROGRAM SECTIONS ;AND ASSOCIATED .GLOBL SYMBOLS. GSD01: MOV PERTOP-O02,R5 ;BOTTOM OF .CSECT AREA MOVB #1,WORD3+1-O02 ;UNNAMED .CSECT ID GSD10: MOV CONTOP-O02,R3 ;TOP OF .CSECT AREA MOV #10,R4 CMP R5,R3 BEQ GSD11  ;DONE, NO MORE .CSECT'S MOV -6(R5),R0 ;1ST TRIAD MOV -4(R5),R1 ;2ND TRI PAL  ; SUBROUTINE EXPRESSION   ; THIS SUBROUTINE EVALUATES AN EXPRESSION UNTIL   ; THE RETURNING TERMINATOR HIERARCHY IS SATISFIED   ; THE TERMINATOR HIERARCHY IS AS FOLLOWS:   ;  (FROM LEAST TO MOST IMPORTANT)   ;  PARENTHESES     -1   ;  COMMAS     0   ;  SEMICOLONS AND CARRIAGE-RETURNS  +1   ; IF A TERMINATOR IS ENCOUNTERED POSSESSING   ;  MORE SIGNIFICANCE THEN THE REQUESTED    å$ å.נAנZ *ޙנaנz El h*7_*&&ßX#*&0 E &w<U%fx*J -:@Օ  $(feu*n"wD  " V*D! :`e*C -$eCV*ښE $  *F ˕ e8˕ w*" & Y5TREN MPJ 3 RDWO. L TRONCP RAT G SENO DFFN.I Z:IF )+R1,()+R1(P CM E:FL I+ 1)(R+,1)(R MPC: FL I) 00F0(IE BLTAH NCRA BTOIN;+ 1)(R+,1)(R MPC: GEIF NTMECELASPDIR PERO PET;S )+R1,()+R1(P CM G:IF )+R1,()+R1(P CM Z:FN I; ;" INMA "EE-S--CEANTRENN O=01)(R;C ;R LENDHAS VETIECIR DALONTIDION COFN IORTPOT ENIDES;R ;T XIER B D OR WESIN LX.MAN IUEAL VRETO;S ESINXLMAY,ITNTUAQV MO: OKNELI ;T XIER B . SK TK,TS; R ROERNB NCI K EOINLQ BE  UEAL VODGOA S ITE UR SKEMA; E AD MOV #CSCFLG,R2 ;RELOCATABLE, DEFINED PROG. SECTION MOV (R5),R3  ;MAXIMUM PC (SIZE) TRAP RLDFIL  ;ENTER INTO RLD BUFFER CMPB RLDCNT-O02,#51 BLT GSD07 TRAP OUTBIN  ;NO MORE ROOM; OUTPUT TRAP RLDINT  ;AND REFRESH RLD BUFFER. GSD07: MOV CONTOP-O02,R2 ;THE STARTING ADDRRSS OF UST MOV USRTOP-O02,R3 ;1ST FREE LOCATION BELOW UST MOV #WORD1,R1 ;ADDRESS CONTAINING SYMBOLIC NAME CLR @R1  ;ACCEPT ANY NAME MOV #WORD3,R4 ;.CSECT ID ALREADY SETUP MOVB   ;  TERMINATOR, THEN THE SUBROUTINE WILL RETURN.   ; EXPRESSIONS ARE EVALUATED FROM LEFT TO RIGHT AND   ; PARENTHETICAL GROUPING IS NOT PERMITTED.    ; INPUT R0 MUST EQUAL ZERO    ; OUTPUT CONDITION CODED RESULTS ARE    ;  RELATIVE TO THE ITEM COUNTER    ; RSLMOD:    ; +1 = RELOCATABLE EXPRESSION,    ; CURRENT .CSECT    ; 0 = ABSOLUTE EXPRESSION    ; -1 = .GLOBL EXPRESSION    ; -2 = RELOCATABLE  ˕ L >*F . @xbW Ջ.jM u e ͕'  x*-)")˥0ӕ*  7 D!C   K*ڛw 9 w <<w ?w B*C!    e*" e& 5 c| e%*Fm  e:7*j1e07 Ȝ0Z C * C`B `&YPIT TBTS  NOFE LUVAT GE; M TEIP RAT: ESIN LS NELI BLLO.G  ;N ESIN.L  ;; NGSIESOCPRE IVCTREDIE AG PER PESIN LOFR BEUM NNEFIDE  ;; ;T XIER B T ECEJE AG PCEOR FTOR TEUNCOE IN LOWFLEROV;G INAG,P0.#6 DDA: GEPA GEPA BLLO.G GEPA BLLO.G  ;E AG P ACTJE E -ERDLAN HGEPA .NTDESIRE ;; DCEN. D ENRP JM  EGOSNF FD.I  DCEN. 1 RYNTEP JM  3D OR.W  #3Y LAEROVN ILLCA; L TRONCP RAT G SENO DFFN.I D:EN ERDLAN HVETIECIR DND.EF OONTIOR PNTDESIRE ;; DCEN. T MI#GLBFLG!RELFLG,@R4 ;RELOCATABLE .GLOBL GSD08: TRAP LINSRCH BEQ GSD09  ;NO MATCH TRAP ENTRGL  ;ENTER SYMBOL IN RLD BUFFER SUB #10,R2 BR GSD08 GSD09: SUB #10,R5  ;LOOK FOR NEXT .CSECT INCB WORD3+1-O02 ;INCREMENT .CSECT ID BR GSD10 ;ENTER THE TRANSFER ADDRESS GSD11: MOV #TRNCMD!DEFFLG,R2 ;DEFINED, TRANSFER ADDRESS SPEC. MOV #ABS1,R0 ;NAME OF 6 BLANKS MOV #ABS2,R1 TSTB RSLMOD-O02;TYPE OF EXPRESSION BEQ GSD02  ;ABSOLUTE ;RELOCATABLE .END  EXPRESSION,    ; NOT CURRENT .CSECT    ; (OR .ASECT) ; TERMINATOR TABLE ENTRY ORDER ; = : , CR ; ! & - + ' " ) ( TAB BLANK % @ #  -1 ... -18 ;  TERMINATOR ANALYSIS DIAGRAM ; TERMINATORS CLASS  PAREN COMMAS  CR ;    -1  0  +1 ; ^ & - + ' " 1  PROCESS PROCESS PROCESS ; ; CR  2  RETURN RETURN  RETURN ; : = TAB BLK # @  QERROR QERROR  QERROR ; ) (  4  RETURN Q RESTART Q RE4"DԝԝK*010203040506*֜070809101112131415161718192021222324@*252627282930317071727374757677787980*81828384858687888990xC*B7(7 : @7 :M*fe7`& * ".΋4΋/%*a,W r%&:w.%~@*ԝ,%N@r,p, ` LIRP JM  EGOSNF FD.I  DCEN. 5 RYNTEP JM  2 RDWO. L TRONCP RAT G SENO DFFN.I T:MILI ERDLAN HVETIECIR DITIM.LF OONTIOR PNTDESIRE ;; ITEX BR  ZESI CBDE T:EO ERDLAN HVETIECIR DOT;E ;C ND.E  LEITRT MPJ G SENO DFIF. C ND.E  Y4TREN MPJ 2 RDWO. L TRONCP RAT G SENO DFFN.I E:TLTI ERDLAN HVETIECIR DLEIT.TF OONTIOR PNTDESIRE ;; DCEN. L OBGLRP JM  EGOSNF FD.I  DCEN. 3 RYNTEP JM  2D OR.W  RLNTCO APTR  EGOSNF NDIF.: BLLO GR LENDHAE IVCTREDIL MOV GLBSY1-O02,R0 ;.CSECT NAME OF MOV GLBSY2-O02,R1 ;.END EXPRESSION BISB #RELFLG,R2 ;RELOCATABLE FLAG. GSD02: MOV JMPADR-O02,R3 ;TRANSFER ADDRESS.  BIC  #RSTFLG,R2  TRAP  RLDFIL  TRAP  OUTBIN  ;START NEW BUFFER  MOV  #GSDEND,DIRCMD-O02 ;GSD TERMINATION.  TRAP  RLDINT  TRAP  OUTBIN  MOV  #RLDCMD,DIRCMD-O02 ;RLD BLOCK DECLARATION  TRAP  RLDINT  CLR  R1  ;UNNAMED .CSECT  CLR  R2  MOVB  #RLD3.1,R0  ;ENTER INITIAL CLR START ; ,   5  RETURN RETURN  Q RESTART ;EXPE1:  ; EXPRESSION'S ENTRY POINT 1 SUBR1A:   ; PARENTHESES MINIMAL TERMINATOR  DEC  R0   ; RETURN CLASS = -1 ;EXPE2:  ; EXPRESSION'S ENTRY POINT 2 SUBR1B:   ; COMMA MINIMAL TERMINATOR  DEC  R0   ; RETURN CLASS = 0 ;EXPE3:  ; EXPRESSION'S ENTRY POINT 3 SUBR1C:   ; SEMICOLON MINIMAL TERMINATOR  INC  R0   ; RETURN CLASS = +1  TRAP  SAVREG ; CALL SAVE REGI&e&|*3>`&ŝJawDe)*B U`@ *fw&J*ՀH`|F*LHFz F@*Ҟ5P KKc*ebDa7a\b ɒX& "xeΌOBGL .OFN IORTPOT ENIDES;R ;C ND.E  CTSERA MPJ G SENO DFIF. C ND.E  Y2TREN MPJ 2 RDWO. L TRONCP RAT G SENO DFFN.I T:ECAS ERDLAN HVETIECIR DCTSE.AF OONTIOR PNTDESIRE ;; DCEN. T ECCSRP JM  EGOSNF FD.I  DCEN. T ITOL RONTCOE IV;G  Y1TREN MPJ 2 RDWO. 2 #AYRLVE OINL AL;C  RLNTCO APTR  EGOSNF NDIF.: CTSE CR LENDHAE IVCTREDIT ECCS .OFN IORTPOT ENIDES;R ;E IN LCEURSOO TRNTURE;  C SRET S MP J  NGSIESOCPRE IN LND ELLCA; E INDLEN  P RA T T:XIR3   ;IMPLICIT RLD. (LOCATION COUNTER MOV #10,R4   ;DEFINITION) TRAP RLDFIL TRAP OUTBIN RTS R7 .PAGE PAL ;SUBROUTINE TO ENTER A GLOBAL SYMBOL ;POINTED TO BY R2 INTO THE RLD BUFFER. ; ;ENTRGL: SUBR42: TRAP SAVREG  ;SAVE REGISTERS MOV R2,R5  ;ADDRESS OF ENTRY MOV -6(R5),R0 ;1ST TRIAD MOV -4(R5),R1 ;2ND TRIAD MOV -2(R5),R3 ;VALUE MOV #10,R4  ;BYTE COUNT MOV #SYMDIR,R2 ;SYMBOL DESTERS  MOV  R0,R1  ; R1 HIGH ORDER BYTE CONTAINS  SWAB  R1   ; THE RETURN CLASS CODE  CLRB  ICOUNT  ; ZERO THE ITEM COUNTER  CLRB  REGTYPE  ; ZERO REGISTER TYPED FLAG  CLR  R2   ; R2 HIGH ORDER BYTE CONTAINS     ; THE GENERAL ERROR FLAG     ; CLEAR THE ERROR FLAG  MOV  #RESULT,R5  ; R5 = RESULT'S ADDRESS  MOV  #QUANTITY,R4 ; R4 = QUANTITY'S ADDRESS  MOV  #CURBYTE,R3  ; R3 = CURnvnv)Ό4dz7~nv q)~Vձ%Rѱ,hy|7 F>fƋ&R f^'SLw. Qɕ ?HƋ^7 7i[7 \~y7 7 7w`|\2 7w  DCEN. E ODPCOP JM  EGOSNF FD.I  DCEN. 1 RYNTEP JM  5D OR.W  RLNTCO APTR  EGOSNF NDIF. H NCRA B -NO; A 20MN GTB ? NELIS HI TLEMBSEAS; T ACNTDB STT D MEORRFPEG INSSLA CICONEMMN;   5:N2AI MR LENDHAE IVCTREDI;     E ATRIOPPRAPE THO TMPJU;  Y ITNTUA@Q  P JM E ACRFTEINY BLEMSS AALONTIDION COR;F R1 LRC: 4AN2 MA 20MN GTB H NCRA B -NO;C ND#EY,ITNTUAQP CM  ??????-?--IF .ISTHS ;I 0AN2MT BL  NZIF,#TYTIANQU MPC H NCRA B -ES;Y 4AN2MMPUTE OFFSET FROM    ;RUN TIME OVERLAY AREA BEGO03: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVERLAY. ; JMP REND  ;ENTRY1 JMP END11  ;ENTRY2 JMP SUBR12  ;ENTRY3 JMP SUBR15  ;ENTRY4 JMP IFPRO  ;ENTRY5 JMP IFPRO2  ;ENTRY6 JMP RENDC  ;ENTRY7 JMP SUBR38  ;ENTRY8 .ENDC .PAGE PAL REND:   ; .END ASSEMBLY DIRECTIVE PROCESSOR TRAP EXPE1  ;EVALUATE EXPRESSION MOV RESULT-O03,JMP   ; HOW IS THIS ITEM TYPED ?  BLE  EXPR16  ; NUMBERS, ERRORS, AND ASCII DATA     ; SYMBOLS PROCESSED  INCB  ICOUNT  ; INCREMENT THE ITEM COUNTER  TSTB  TMPSYM  ; HAS THIS SYMBOL BEEN PACKED ?  BEQ  EXPR0G  ; YES, PROCESS PENDING ITEM  BR  EXPR0C  ; NO, PROCESS THE PENDING ITEM EXPR01:  ; INITIAL ITEM ACQUIRED  DEC  @R3   ; DECREMENT CURBYTE POINTER EXPR02:  ; CYCLING ITEM ACQUISITION  TRAP  IT!w~ h|\ & wwl/H|\7~ 7X7(~.z+ & wtH|\ wP|\7 X|\7< & wBytp ~zh>{Ήh7 RfP{f7 wB!et77zx E ! ! ! ! wDw~{Bw.l7 jw, w|w7 -&7 7 h-l 7 df/5& wP B  E u LEB ? NELIS HI TLEMBSEAS; T ACNTDB STT S VETIECIR DLYMBSEAS;     G INSSLA CICONEMMN;  5 N2AI M EQ B  ?R.DI. SM AORC NIMONE M ; S AGFL,TIRMDAS # TBBI 4:N2AI MC ND.E  RDWORP JM  EGOSNF FD.I  DCEN. 3 RYNTEP JM  4D OR.W  RLNTCO APTR  EGOSNF NDIF.: RDWO ERDLAN HVETIECIR DRDWO .OFN IORTPOT ENIDES;R ;H NCRA B -NO;A 20MN GTB ? NELIS HI TLEMBSEAS;T ACNTDB STT: 23INMA AGFLG INNDPEM TE IET;S  INEMIT CBIN  CHANBR- O ;N 0AN2MT BG  E?IN L#ADR-O03 ;INCREMENT TAPE COUNT IN ;CASE TAPE STILL IN READER MOV SILB-O03,R4 INC 14(R4) ;TAPE COUNT TSTB ERROR-O03 BNE END00 TSTB ICOUNT-O03 BLE END00 CMPB #-1,RSLMOD-O03 BNE END01 INCB AERROR-O03 ;.GLOBL IN .END EXPRESSION END00: MOV #1,JMPADR-O03 END01: MOV JMPADR-O03,TBBUF-O03 CLRB BINOUT-O03 MOVB #100,PAGING-O03 TSTB CNSTLV-O03 ;STILL IN A NEST OF CONDITIONALS? BEQ END01A  ;NO - BRANCH INCB QERROR-O03 ;QUESTIONABLE SYNTAX END01A: T$EM ; CALL ITEM SUBROUTINE  BGT  EXPR0C  ; NON-VOID ITEM ENCOUNTERED   ; VOID ITEM ENCOUNTERED AND PROCESSED EXPR12: MOVB  SAVTERM,R0  ; R0 = ENCODED TERMINATOR  ADD  #3,R0  ; R0 = R0+3  BGT  EXPR04 ; = : TERMINATORS IDENTIFIED  BEQ  EXPR09 ; , TERMINATOR IDENTIFIED  ADD  #2,R0  ; R0 = R0+2  BGE  EXPR0B ; CR ; TERMINATORS IDENTIFIED  ADD  #6,R0  ; R0 = R0+6  BGE  EXPR05 ; ! & - + %~{ ., e "$""PA"TA  ĭ7"37R^~|h^ f܉ffx^^H^>^w܉^x NzR4dhΉ4d PAL11R V004C I~| # 7 7    e wz7 7 Õ z . z 7& wD ~~| t X X B 7 l 7 @ T * %O v    5   7 7 7ISTHE BLEMSS;A  CTTADN TBTS 2:N2AI M. .T.S PHE TIND UNFOL BOYM S ; 24INMA  T BG E BLTAL BOYM SNTNEMAER PCHARSEL AL C ; H RCEA S APTR G INNDPES IEMITS HI T ; 22INMA  E BL ? E YP TMSTE INEMIERET D ; PETY I TBTS 1:N2AI MT XI E BR G INSTLIE THT MAOR F ;     TOD SE UIS1 - =ZESI;      !EDITEXD AND IEIFNTDE I;    . CRD ANN LOCOMISE;  ZESI CBDE A:20MN 23INMA  T BL  +2R0 =R0;  0 ,R#2  D AD D IEIFNTDE IMAOM C ; 'RAP ENDLINE END11: ;SYMBOL TABLE IS FIXED SO ;ALL OF FREE CORE TO STACK. MOV USRTOP-O03,R6 MOV R6,STKBOT-O03 TSTB SECMOD-O03  ;.ASECT BEQ END20 MOV @USERPC-O03,R4 ;CURRENT PC CMP R4,@HIRPC-O03 ;TO MAX. PC BLOS END20  ;IF THE BIT #1,R4  ;FORMER IS HIGHER BEQ END24  ;EVEN. INC R4  ;MAKE EVEN END24: MOV R4,@HIRPC-O03 END20: MOV ERRSUM-O03,R4 MOV #ERRMSG+16-BEGO03+BEGOVR,R3 MOV #6,R2 TRAP BINASC  ;CALL BIN TO ASCII CONVERTER MO(' "    ;  TERMINATORS IDENTIFIED  ADD  #2,R0  ; R0 = R0+2  BGE  EXPR0A ; ) ( TERMINATORS IDENTIFIED CMP R0,#-6  ;CHECK FOR * AND / TERMINATORS BGT EXPRGO ADD #13.,R0 BR EXPR05 ; EXPRGO:  ADD  #3,R0  ; R0 = R0+3  BNE  EXPR04 ; TAB BLANK @ #    ;  TERMINATORS IDENTIFIED    ; % TERMINATOR IDENTIFIED  MOVB  #REGFLG,REGTYPE ; TYPE EXPRESSION AS REGISTER  BR  EXPR02  ; ACQUI)  & $ ~v}  Hw7    5   V 7  7r  h ~} wJ # @ w0< @z ( l   w@  @  >~f~D& 2 " . w   JH w  @2 r, 2| ~~܉bf p F    HH> < z 23INMA  Q BE 1 0+ R =R0;   0 R CBIN R VENE: = S ORATINRMTE;     D SEESOCPRS EMITD OI VO, N ;    ES Y ; 21INMA  T BG ? D UNFOS ERCTRAHA CNY AREWE;  R HATCCN  B ST T  ARLE CAGFLG INNDPEM TE I ;   : 20INMA ISYSALANX TAYN SALTINI I; LDIE FHE TNGHIUSFLE NUTION C ; 10INMA  P JM O:N1AI MR ROERE ASPH, PENO;  I N1AI M NE B  ?C. P'SERUS= E LUVAS L'BOYM S ; C RPSE@UY,ITNTUA Q MP C  ORRR EEDINEF DLYIPLTMU, ES+V #PASS,R5 CMPB LOPASS-O03,@R5 ;IS THIS THE LISTING PASS? BEQ END21  ;YES - BRANCH CMPB BOPASS-O03,@R5 ;IS THE BIN OUT PASS? BEQ END21A  ;YES - BRANCH BR END21B END21: MOV #LOLB,R1 ;.CLOSE AND .RELEASE ;ERROR COUNT TO LISTING DEVICE MOV #ERRMSG-BEGO03+BEGOVR,-(R6) MOV R1,-(R6) EMT WRCMD TRAP CLEAN  ;LISTING FILE. END21A: CMPB BOPASS-O03,@R5 ;IS THIS THE BIN OUT PASS? BNE END21B  ;NO - BRANCH MOV #OBJEND,DIRCMD-O03 TRAP RLDINT TRAP O,RE THE NEXT ITEM EXPR04:  ; CLASS 3 TERMINATORS PROCESSED  TRAP  SETERR ; CALL SET ERRORS  BR  EXPR02  ; ACQUIRE THE NEXT ITEM EXPR05:  ; CLASS 1 TERMINATORS PROCESSED  (OPERATORS)  DEC  R0   ; R0 = R0-1  BGT  EXPR07  ; SEPARATE OPERATORS ! & - +  INC  @R3   ; INCREMENT CURBYTE POINTER  CLR  @R4   ; QUANTITY = 0  MOVB  @0(R3),@R4  ; PLACE THE FIRST ASCII CHAR.     ; INTO QUANTITY LOW BYTE -~@Xʵ Z. /  ~VC!$@A(CH׭ )NF  z ~̕`XZ     EHN~ FN F   HN&@ACBEH׭h )NF` X & B  g F ~F  7G @& )  8 ?! 5 ?  $ͭͭxf^~ͭ FN ^H H Y ; 1MINMA  Q BE ? D NEFIDEY PLTIUL MOLMBSYS I ; 1)(R,1AGFLMD # PBCM R ROERE ASPH, PENO;  I N1AI M EQ B  T?SEY ADREALG LA FELAB LIS;  1 @RG,FLAB#L  B IT B  SSPAT RSFIT NO, NDOU F ;  : 1NINMA LEAB TOLMBSYS R'SE UTOIN;     N IOATRMFOINS HI TERNT E ; 1KINMA  R B  UEAL V'SOLMBSYE AV SLLCA ; L VAAV S APTR D NEFIDE;     Y PLTIUL MASL BOYM SAGFL;  ) R11(G,LADF#M  B IS B: 1MINMA ERNT ES,ONTIESQUH OT BTOO /UTBIN MOV #20.,R4  ;DUMP TRAILER END25: MOV #TRLBUF,-(R6) MOV #BOLB,-(R6) MOV @R6,R1  ;FOR CLEAN EMT WRCMD DEC R4 BGE END25    ;.CLOSE AND .RELEASE TRAP CLEAN  ;BINARY FILE. END21B: MOVB #DEFFLG!GLBFLG,STMASK-O03 MOV #COLB,R2 MOV R2,STLLS1+2 TST @R2  ;INIT BNE END13  ;COMMAND OUT IF MOV R2,-(R6) ;NOT ALREADY DONE. EMT INCMD  ;.INIT END13: CMPB USPASS-O03,@R5 ;IS THE UNDEF SYM PASS? BEQ END02  ;YES - BRANCH END12: CLRB0  TST  R0   ; WAS THE TERMINATOR ' ?  BEQ  EXPR06  ; YES, SERVICE THE OPERATION  INC  @R3   ; INCREMENT CURBYTE POINTER  MOVB  @0(R3),QUANTITY+1 ; PLACE THE SECOND ASCII CHAR.     ; INTO QUANTITY HIGH BYTE EXPR06: INC  @R3   ; INCREMENT CURBYTE POINTER EXPR16:  CLRB  ITYPE  CLR  R0  BR  EXPR0C  ; SERVICE THE OPERATION EXPR07: TSTB  R1   ; CHECK THE OPERATOR COUNTER  BLE  EXPR08  ; FIR1 ͭ 7 wͭ b7"^w >~6<   R*&vw HHwT  END &7e  D!~Bͽ%( ww  `www7&Lf"e 1~& ͵ R͵%͵ɕ= C͵͵@G**D`$ D!!e $͵~@G*e N ; 1JINMA  E BN ? EDINEF D; ) R11(G,LADF#M PBCM  LYIPLTMUY ADREALL BOYM SHE TIS S.YEF ICHANBR; M N1AIME BN  ?ET SDYEALR AAGFLL BELAS I ;1 @RG,FLAB#L  B IT B  SSPAT RSFI, NDOU F ;    SSPAT RSFIE THT NO;  N N1AI M GT B  ?SSREOGPRN IISS AS PCHHI W ; #1S,AS P PBCM L:N1AI MD ELFIE THG INSHLU FUEINNTCO;  O N1AI M BR E BLTAL BOYM S'SERUSY LAEROVL AL C ; AYRLOV  P RA T  AGFLD NEFIDES L'BOYM SET S ; R1,@LGFFDE # SBBI : 3 STMASK-O03 MOV #SLLB,R1 MOV R1,STLLS1+2 CMPB STPASS-O03,@R5 ;IS THIS SYM LST PASS? BNE END22  ;NO - BRANCH MOV #SLFB,R3 ;.INIT,.DELETE,.OPEN TRAP DELOUT  ;SYMBOL TABLE DATA SET CLRB STPASS-O03 END02: TRAP STLIST  ;LIST SYMBOLS MOV R2,-(R6) ;WAIT FOR UNDEFINED SYMBOLS EMT WTCMD BR END12    ;CLOSE AND END22: TRAP CLEAN  ;RELEASE SYM.    ;TABLE FILE. END22A: INCB @R5  ;INCREASE PASS NUMBER CMPB @R5,MAXPASS-O03 BGT END23 MO4ST OPERATOR IS VALID  TRAP  SETERR ; CALL SET ERRORS  CLRB  R2   ; ZERO THE EFFECTIVE OPERATOR EXPR08: CLRB  R1  INCB  R1   ; INCREMENT OPERATOR COUNTER  DEC  R0   ; ENCODE OPERATOR SUCH THAT     ; ADDITION IS ENCODED AS ZERO  BISB  R0,R2  ; SET THE EFFECTIVE OPERATOR  BR  EXPR02  ; PROCESS THE NEXT ITEM EXPR09:  ; CLASS 5 TERMINATORS PROCESSED  BIT  #177400,R1  ; ARE COMMAS VALIDATED ?  BL5w(wZE e8 fQ$H  R q   z M~v rbw R NbTa^Q e      q|  ~R7& w  wH Z7  ERRORS ~X@t R> Dß>å U Jʐ *ï&}ïy @ e1PINMA IDT ECCS; ) R11(D,MOECSB OVM G LA FEDINEF;D   1PINMA EQB Y PLTIUL MDERIEROVT ON;D  1)(R,1AGFLMD#B MPC 1 @RG,FLEL#R  B IS B  1PINMA  Q BE D MOEC S TBTS G LA FELAB L'SOLMBSYT SE;  1 @RG,FLAB#L  B IS B: 1KINMA ERNTOU CONTICALO;     Y BLEMSS AHE T =LTSURE;  3 @RC,RPSE@U  V MO S AS PSTIR FD,UNFOT NO;   J:N1AI MD ELFIE THG INSHLU FUEINNTCO;  O N1AI M BR R ROERE ASPHE THT SE;  R ROER P CBIN I:N1AI MS AS PSTIR7V SILB-O03,-(R6) ;CLOSE SOURCE EMT CLS  ;INPUT MOV SITAP2-O03,SITAPE-O03 ;# OF TAPES TST SILB1-O03  ;ONE WAS BEQ END26  ;PARAMETER FILE MOV #SILB1,SILB-O03 ;BACK TO MOV #SIFB1,SIFB-O03 ;DATA SET ONE MOV SITAP1-O03,SITAPE-O03 ;# OF TAPES END26: MOV #EOTBUF-BEGO03+BEGOVR,-(R6) ;PRINT MOV R2,-(R6)   ;"END" EMT WRCMD MOV R2,-(R6) EMT WTCMD JMP SETPASS-O03 END23: MOV #ERRMSG-BEGO03+BEGOVR,-(R6) ;ERROR LINE COUNT MOV #COLB,-(R6) ;TO COM8E  EXPR0B  ; YES, PREPARE TO RETURN EXPR0A:  ; CLASS 4 TERMINATORS PROCESSED  BIT  #177400,R1  ; ARE PARENTHESES VALIDATED ?  BLT  EXPR0B  ; YES, PREPARE TO RETURN     ; NO, ABORT THE EXPRESSION  CLR  @R5   ; RESULT = 0  TRAP  SETERR ; CALL SET ERRORS  INC  @R3   ; INCREMENT CURBYTE POINTER  BR  EXPR00  ; RESTART EXPRESSION EVALUATION EXPR0B:  ; CLASS 2 TERMINATORS PROCESSED  SWAB  R2   9~~J<w O +. &J& J~H~*~;5% |t P<^  rP?0 h(B c8w .Fßנ0נ9~nå$ å.å  נAנZ נaנz  E e DB~ 7B |x P f ? (D7 7 LP6 .( 0 = FOT ND,UNFOT NO;    S ESGRRO PINS ISSPAT RSFI;  J N1AI M EQ B  ?SSREOGPRN IISS AS PCHHI W ; #1S,AS P PBCM . .T.S UIND UNFOS WAL BOYM S ; 1LINMA  Q BE ? D UNFOL BOYM SHE TAS W ;  R0  T TS H:N1AI MD ELFIE THG INSHLU FUEINNTCO;  O N1AI M BR X TAYN SLEABONTIESQUY ELITINEF D ; ORRRQE  B NC I  ONTIUAIT SIDAL VE,OP N ; 1HINMA  E BN ? R TEUNCON IOATOC L ;     LYMBSEASE THL BOYM SHE TIS; 007412,#+1YMPSTM;MAND OUTPUT DEVICE EMT WRCMD MOV #COLB,-(R6) EMT WTCMD JMP RESTART-O03 EOTBUF: .WORD 10  ;MESSAGE AT END .WORD 0  ;OF ALL PASSES .WORD 10  ;EXCEPT THE LAST .BYTE CR,LF .ASCII / END/ .BYTE CR,LF .EVEN .PAGE PAL  ; SECTION SYMBOL TABLE LISTING   ; GENERATE AN ALPHABETIZED LISTING OF THE   ; USERS SYMBOL TABLE.   ; 1) ENTIRE SYMBOL TABLE IF STMASK CONTAINS 0.   ; TH< ; GENERAL ERROR FLAG =  MOVB  R2,ERROR  ; R2 HIGH ORDER BYTE  CMPB  #1,RSLMOD  BGE  EXPR0R  INCB  AERROR EXPR0R: TSTB PRGSEC BEQ EXPR0P  ;NO .CSECT CMPB PRGSEC,SECMOD BEQ EXPR0P  ;CURRENT .CSECT MOVB #-2,RSLMOD ;NOT CURRENT. EXPR0P:  TRAP  SETREG ; CALL SET REGISTERS  TSTB  ICOUNT  ; SET THE CONDITION CODES  RTS  R7  ; RETURN EXPR0C:  ; NON-VOID ITEM ENCOUNTERED AND PROCESSED  INCB  ICOUNT  ; INCR= R:N7_~^A 7 7 7 w7 7 H&R7t wf QY~ֆ_ε9Z%,0zw&wɵELHAI%D4~N/d\  V@@@r xTDI~Ƈ̇f S̕: #(׭FO׭>K  P CM G:N1AI M. EDINEF DLYIPLTMU;     G INBES AOLMBSYS HI TAGFL; ) R11(G,LADF#M  B IS B  ORRR EERSTGIREE THT SE;  R ROER R CBIN N IOATTUSID LIVA, PENO;  G N1AI M EQ B  ?ERSTGIRED PETYL BOYM SIS;  1 @R2, R TBBI F:N1AI MD ELFI;     L BELAE THG INSHLU FUEINNTCOT PUUT O ;     ONTIUAIT SALCIPE SUTNP I ;     D.REROERD AND TEECET D ;   RE AREHES CEANARPEAPR TEUNCON IOATOC LLYMBSEAS;   R TEISEG RASD PETY?IS INCLUDES .CSECT TABLE.   ; 2) UNDEFINED ENTRIES ONLY IF STMASK CONTAINS DEFFLG!GLBFLG   ; LINEARLY SEARCH THE TABLE WHICH IS ORDERED. ;NOTE: ;ALL ENTRIES ARE ENCODED 16-BIT UNSIGNED, ;POSITIVE, INTEGERS. ;STLIST: SUBR12: TRAP SAVREG  ;SAVE REGISTERS MOV CONTOP-O03,R5 ;BOTTOM OF UST MOV USRTOP-O03,R4 ;TOP OF UST CLRB LCSECT-O03  ;NOT CSECT'S ADD #10,R5  ;NULLIFY SUBTRACT AT STLST1 STLST0: TRAP ROTATE  ;CALL ROTATE I/O BUFFERS SUB #11,R0  ;R0=BHADRS@EMENT ITEM COUNTER  TSTB  ITYPE  ; HOW IS THE ITEM TYPED ?  BLE  EXPR0I ; NUMBERS, ERRORS, AND ASCII DATA   ; SYMBOLS PROCESSED  TRAP  SEARCH ; CALL SEARCH THE SYMBOL TABLE  BLT  EXPR0F  ; NOT FOUND IN THE TABLE AT ALL  BEQ  EXPR0G  ; FOUND AS A USER'S SYMBOL    ; FOUND AS A PERMANENT SYMBOL BITB #REDEF,TFLAGS ;HAS PERMANENT SYMBOL BEEN REDEFINED? BNE EXPR0M  ; YES MOVB #DEFFLG,TFLAGS ; MAKE LINE USER SYMBOL BR EXAH   `XE~>P )&˕  S, ˕7 t7 nNSbw~#%h )96hΉhw> X  VB7wTwLPQARD~.MBINTU,EEGxHx\MM8f~xM&W4d&WE BEREVT NOAN CLSBELA;   . EXNDHIN IESIDES RSSREDD ALEAB T ;   OLMBSYE IVCTFEEFE THE INUTROUB SISTHG INERNT EONUP;   S NTMEGNSIASL BELAL ALS IEIFER VE,INUTROUB SISTH;  G INSSCERO PELAB L ;4 N1AIMR B T PSN IAGFLD INEFED RET;S  EXNDHI,@EFED#R SBBI 0:N4AI MC ND.E  GNSIAS MPJ G SENO DFIF. C ND.E  Y7TREN MPJ 4 #AYRLVE;O   4D OR.W  RLNTCO APTR  NTMEGNSIAST ECIR;D   EGOSNF NDIF. L BELAA S ASSCERO PS,YE;  F N1AI M EQ B  ?ONOL C AORATINRMTEC(2,3)-17. MOV R0,@R3  ;CURLIST=R0,SECOND DATA BYTE MOVB #-2,LISTSC-O03 ;LIST SYMBOL COUNTER = -3 STLST1: SUB #10,R5  ;MOVE FLAG WORD POINTER. CMP R5,R4 BEQ STLST2  ;END OF TABLE. TSTB LCSECT-O03 BNE STLST4  ;.CSECT TABLE MOV R5,R2  ;FOR DECODE BITB STMASK-O03,@R5 ;IGNORE DEFINED SYMBOLS BNE STLST1  ;IF STMASK CONTAINS DEFFLG!GLBFLG ; CMP HUSERPC-O03,R5 ; ;BEQ STLST1  ;IGNORE USER'S PC BR DECODE STLST2:  TRAP  STLLST ; CALL SYMBOLDPR0I EXPR0M:  TRAP  SEARCH ; CALL SEARCH THE SYMBOL TABLE  BR  EXPR0G  ; FOUND AS A USERS SYMBOL EXPR0F: TRAP ENTER   ; ENTER SYMBOL INTO THE SYMBOL TABLE EXPR0L:  INCB  UERROR  ; UNDEFINED SYMBOL ERROR  BIS  #000400,R2  ; SET THE GENERAL ERROR  BR  EXPR12  ; PROCESS THE NEXT OPERATOR     ; CHECK THE TERMINATOR EXPR0G:  ; CHECK SYMBOLS FLAGS  MOVB  TFLAGS+1,R0  ; R0 = MULTIPLY DEFINED BYTE  CMPB  #MDFLAG,E4d&W &W N&Wz%p:**~ PAGE XXXXX MM-DD-YY HH:MM:SS:XX P&ynv6ƋO~Ɛ.ʑ2PX쒬7770777ZTES OLMBSYS HI TCKTA S ; 6)(R,-R0  V MO 3:N1AI MT ENNMIGSS ACTREDIS HI TRTBO A ; 1EINMA  P JM N LOCOA S WAR TONAMIER T ; 10INMA  E BL ? ORATINRMTEE THS WAT HA W ;  R0  T TS X TAYN SLEABONTIESQUS A ;     EDERIDNSCOS EMITR HEOTL AL;  R ROER Q CBIN L BOYM SEDORRR-EUNN AAS WEMIT;  3 N1AI M GT B  PETYS M'TE IHE TCKHE C ; PETY I TBTS 1:N1AI M. NGSIESOCPRR FOS ERSTGIREE THE IZALTINI I ;   ND AERNTOU CONTICALOY KTLSTE:  TRAP POPREG  ; RETURN AFTER POPPING REGISTERS. STLST4: INCB WORD4+1-O03  ;START WITH 002 MOV -6(R5),WORD1-O03 MOV -4(R5),WORD2-O03 MOV @R5,WORD3-O03 ;SIZE OF .CSECT MOV #WORD4,R2 CLRB LISTSC-O03  ;1 SYMBOL PER LINE.   ; DECODE A 2-WORD MOD40 PACKED SYMBOL TO   ; STANDARD ASCII ENCODED CHARACTERS DECODE: TRAP SAVREG  ; CALL SAVE REGISTERS MOV R2,R5  MOV  CURLIST-O03,R1  ; R1 = CUR. LIST. BUF. ADDRESS SUB #6,R2  ;ADDRESS OF 1ST LSION     ; AS REGISTER EXPR0I:  ; DECODE THE EFFECTIVE OPERATION    ; CAUTION, HANDLERS SIZE LIMITED.  TSTB  R1   ; WERE ANY OPERATORS SEEN ?  BGE  EXPR1I  ; YES, OR VALID SITUATION  TRAP  SETERR ; CALL SET ERRORS EXPR1I:  TRAP  SAVREG  MOVB  R2,R0  MOVB  TFLAGS,R1 EXPR0T:  ASL  R0  JMP  @EXJTAB(R0) EXJTAB:  .WORD  EXPR0J  ;THIS ENABLES A  .WORD  EXPR0S  ;JMP TO  .WORD  EXPRL0  ;THE AM~f7&R @w&ĕ Q$BB`@ K wʥ e<222v ~ލ  ?\erw w&& ֋w~-D~V8 ׭/D  V׭t ɵɵ-w~Ύe / w\~-n-f \bwlBLEMSS AHE TFYTIENID ;   , ORATINRMTEE THG INEDECPRL BOYM SHE TSSCERO P ;   TSENNMIGSS ACTREDID ANS ELAB LOR FNGSIESOCPRL IAITIN;  H NCRA B -NO;0 N1AIMT BG  L?BELAS HI TE"BLEMSS"A;T ACNTDB STT: 06INMA LDIE FORATEROPS ESOCPR- O ;N 20INMA MPJ H NCRA B -ES;Y    2)(-? :" "ORATINRMTES ;I 06INMA EQB: 04INMA ITEXO G -NO;A 20MN BR  CHANBR- S YE;1 N1AIM LEB ? NELIS HI TLEMBSEAS; T ACNTDB STT H NCRA B -NO;4 N0AIME BL  1)(-? =" "ORATINRMTES ;I R02,#D AD  ORATOTRIAD MOV #2,R0  ;TWO TRIAD COUNTER. DECOD0: MOV (R2)+,-(R6) ;BINARY WORD MOV R1,-(R6) ;ADDRESS OF BYTE STRING MOV #1,-(R6) ;RAD50 CODE EMT 42 ADD #3,R1  ;MOVE BYTE STRING POINTER DEC R0  ;COUNTER FOR 2 PASSES BNE DECOD0 INC R1    ; FORMAT THE LISTED OUPTUT  BITB  #RELFLG,@R5  ;ENABLES A SUFIX OF R WITHTHE  BEQ  DECODF  ;OUTPUT OF SYMBOL TABLE FOR  MOVB  #'R,10(R1)  ;RELOCATABLE SYMBOLS  BR  DECOD8 DECODF:  BITB PPPROPRIATE  .WORD  EXPRLA  ;OPERATOR HANDLER .WORD EXPMUL      % .WORD EXPDIV      %     ; OPERATION EXPR0J:  ; PERFORM THE REQUESTED OPERATION  TSTB  ITYPE  BEQ  EXPR0N    ; ADDITION  TSTB  RSLMOD  ;BRANCH IF  BLT  EXP2A  BITB  #RELFLG,R1  ;RSL IS GLB OR HF QTX IS RDL  BNE  EXP2C  BITB  #DEFFLG,R1  ;IF ABS THEN BR  BNE  EXPR0N  BITB  #GLBFLG,R1  BEQ  EXPR0N  TSTB  RSLMQ ~FwwDw>wxw(wwe<(Q$Q$Q$Q$Q$wZQ$wwwfwtww7 ~@7_wn45 $A7&H*͟`ׯZ` P?H~6Z :x ^ @ @fEwNB K&&$&~` HH7 `m 7 fffINRMTED DECOEN= ) R0C(;0 ,RRMTEAVSB OVM M TE ILLCA; EMIT  P RA T: 10INMA T.ENEMATSTT ENNMIGSS ACTREDIA E ATAREP S ;  Y,LLIANTTEPO, ND ATSENNTCOS D'ELFIL BELAE THH USFL;  T ENEMATSTE RCOU SALDUVIDIINH AC EOFN IOATLUVA ETEIAITIN; 5:L0ET GT GHAU CERCTRAHA CALEGLL I; R ROER Q CBIN N IOATTUSID LIVA, ES Y; 5 L0ET G EQ B  .?CRT AS LHE TISTHS I; 2 ,RR0  P CM R TEINPOE THP KUAC BS,YE;   R0  C DE N CA SHE TUEINNTCO, PENO;  04TLGE  E BN ? R. C AERCTRAHA CS #REGFLG,@R5  ; SYMBOL A REGISTER ?  BEQ  DECOD8  ; NOPE  MOVB  #'%,1(R1)  ; YES, REGISTER DECOD8: BITB  #LABFLG,@R5  ; IS THIS SYMBOL A LABEL ?  BNE  DECOD9  ; YES  MOVB  #'=,@R1  ; NO, DIRECT ASSIGNMENT DECOD9: TST  (R1)+  ; R1 = R1+2 MOV R1,R3  BITB  #DEFFLG,@R5  ; IS SYMBOL UNDEFINED ?  BNE  DECODA  ; NOPE  BITB  #GLBFLG,@R5  ;THIS PORTION ENABLES OUTPUT  BEQ  DECODH  TOD  ;IF GLB THEN IF RSL IS REL  BNE  EXPERR  ;THEN ERRR  MOVB  #-1,RSLMOD  ;ELSE SET GLB MOD  BR  EXPR0K EXP2C:  TSTB  PRGSEC  ;PREVIOUS RELOCATABLE SYMBOL  BNE  EXP2D  ;YES  MOVB  CSCTID,PRGSEC ;SAVE THIS ID  BR  EXP2B EXP2D:  CMPB  CSCTID,PRGSEC ;SAME .CSECT  BNE  EXPERR  ;NO-A ERROR EXP2B:  INCB  RSLMOD  BR  EXPR0N EXP2A:  BITB  #RELFLG,R1  ;ERRR IF REL  BNE  EXPERR  BITB  #DEFFLG,R1 Uf3 f&wZ  7 7 ^~&7 t7 t7 <i  ( N >% %’ K *-  Z~7 "7  &X ɋ 5  0 LɋD jhT ~ wc| xUXĝl E7h* T   =å   ww׽@׽ ~&  B`E   eISTHS I; 4 ,R)+R0 ( PBCM 4:L0ET G. CRT AS LOF. DRAD= 2 R;  2 R EC D  ORATINRMTEE IN LESAGIM;     E RCOU SVETIECFF EHE T ;     OFS ESDRADE TH= N CISR;  N CISR2, R OV M  RNTUREE-AGRIAR C ;     ATHWIS ORATINRMTEE IN L ;     LL AILRA TLYALONTIDIONNC U ; 2)(R+14, R VBMO : 03TLGE ORATINRMTEE THG INEDECPR;  ) R21(,-R4  B OV M  RNTUREE-AGRIAR C ARTSEIN;  2 @R+,2)(R  B OV M  ONTIUAIT SIDAL VS,YE;  3 W ;OF 0 IN CASE OF AN UNDEFINED  MOVB  #'G,7(R1) DECODH:  MOV  #"**,-(R6)  ; YES, VALUE = ASTERISKS DECODG:  MOV  @R6,@R1  MOV  @R6,2(R1)  MOV  (R6)+,4(R1)  BR  DECODJ  ; CHECK AVAILABLE SPACE DECODA:  MOV  -2(R5),R4  ; R4 = EFFECTIVE VALUE  MOV  #6,R2  ; R2 = 6, ITERATIONS  ADD  R2,R3  ; R3 = R3+6  TRAP  BINASC ; CALL FOR BINARY TO ASCII CONVERSION DECODJ: CLR R4 BISB 1(R5),R4 ;CONTROL SECTION IX ;OR GLB  BNE  EXPR0N  BITB  #GLBFLG,R1  BNE  EXPERR EXPR0N:  ADD  @R4,@R5  ; RESULT = RESULT+QUANTITY  BR  EXPR0K  ; PROCESS THE NEXT OPERATOR    ; SUBTRACTION EXPR0S:  TSTB  ITYPE  BEQ  EXP3N  BITB  #DEFFLG,R1  BNE  EXP3A  BITB  #GLBFLG,R1  BNE   EXPERR EXP3A: BITB  #RELFLG,R1  BEQ  EXP3N  CMPB  PRGSEC,CSCTID ;SAME .CSECT AS PREVIOUS SYMBOL.  BNE  EXPERR  ;NO-AERROR  TSTB  RSLYeW!`&fv  *&pw f ~ X7RB! wD0  6707 *X8LF 7 &7 : E - 1-p~~ 77 70!ׂ &r 7J & ע. W._ 0w݊/~w)2<  @0w2DWW µ  . ('9~n70. L0ET G EQ B  ?ORATINRMTES DECERE PCR;  ) R21(,-R4  B MP C: 02TLGE ATRMFOR TONAMIER TERFFBUR PERO PRESUIN;    R TEUNCOE AG POWFLEROV, ES Y ; NGGIPA.,60 # DD A  ERCTRAHA CEDFEE-IN L A ;     ;E OP N ; 02TLGE  E BN ? D EE-FRMFOA R TONAMIER T ; R2,@FF # PBCM R TEINPOE YTRBCUE IZALTINI I ; TEBYUR,CR1  V MO K ANBLS AYLW AERCTRAHA CALTINI I ; 1)(R,-' # VBMO 3 @R4,#3 B SU R TEINPOT ISRLCUE IZALTINI I ; R3[D. CMP R4,#1  ;DON'T OUTPUT .ASECT OR BLE DECODI  ;UNNAMED .CSECT ID CMP R4,#MDFLAG ;DON'T OUTPUT BEQ DECODI  ;MULDEF FLAG MOV #3,R2  ;3 DIGIT NUMBER ADD #13,R3  ;COLUMN AFTER RIGHTMOST DIGIT TRAP BINASC  ;BINARY TO ASCII CONVERSION DECODI:  BITB  #GLBFLG,@R5  ;SUFFIX G  BEQ  DECODB  MOVB  #'G,7(R1) DECODB: TRAP SETREG  ADD  #26,CURLIST-O03  ; SYMBOL FIELD =22(10) CHARS.  INCB  LISTSC-O03  ; INCREMENT SYMBOL COUN\MOD  BLE  EXPERR  DECB  RSLMOD  BNE  EXP3N  ;CLEAR PREVIOUS .CSCET ID  CLRB  PRGSEC  ;IF EXPRESSION GOES ABSOLUTE. EXP3N:  SUB  @R4,@R5  ; RESULT = RESULT-QUANTITY  BR  EXPR0K  ; PROCESS THE NEXT OPERATOR    ; INCLUSIVE OR EXPRL0:  BIS  @R4,@R5  ; RESULT = RESULT .IOR. QUANTITY EXPRL1:  TSTB  ITYPE  BEQ  EXPR0K  BITB  #DEFFLG,R1  BEQ  EXPERR  BITB  #RELFLG,R1  BNE  EXPERR EXPROK: EXPR0K:  TRAP ]2. W"µ@6µwµwµi ͵&~-# 7Pf-^׭v3 P/0c`7]47 7PHl:%3$oZab~^ JHJ0H" ĝe 4J 5]0׭[~֕I* .77 l7 jwEՇעעע & עע Š Հ ,@R1  V MO 2 R EC D  R01, R OV M  SSREDD ARSTONAMIER TNELI= 2 R ; R21, R DD A  NTOU CTEBY= 2 R, +2R1= 1 R ; R2+,1)(R  V MO 4 1+ R =R1;  + 1)(R+,1)(R  P CM R BEUM NNELIE RCOU SNTMERENC I ; NONELI  C IN N URET-RGEIARRCAI CIAS= 4 R ; R4R,#C  B OV M: 12TLGE ORRR EL' 'ET SS,YE;  R ROER L CBIN E OP N ; 2 L1ET G R B ?ONTICAUNTRE IN LNGLO; ) R13(E,INGLON#L  B IT B 6:L0ET GC ND.E  LGFFEO _TER  BGT  DECODC  ; LO BUFFER FULL, OUTPUT  JMP  STLST1  ; PROCESS THE NEXT SYMBOL DECODC:  TRAP  STLLST ; CALL SYMBOL TABLE LISTED OUTPUT  JMP  STLST0 .PAGE PAL  ; SUBROUTINE SYMBOL TABLE LISTED OUTPUT ;STLLST: SUBR15: MOV  #CURLIST,R0  BIC  #1,@R0  MOV  #005015,@0(R0)  ADD  #2,@R0  CLR  @0(R0)  MOV  BHADRS+2-O03,R1  SUB  #26,R1 MOV R1,-(R6) ;STACK` SETREG CLRB  R1   ; SET OPERATOR COUNTER  COMB  R1   ; BYTE = -1  JMP  EXPR00  ; PROCESS THE NEXT OPERATION    ;;AND EXPRLA:  COM  @R4  BIC  @R4,@R5  BR  EXPRL1 EXPERR:  TRAP  SETREG  INCB  AERROR  JMP  EXPR12 ; ; ; DIVISOR = 177300 AC = 177302 MQ = 177304 MULTIPLY= 177306 ; ; ; ; THESE TWO SECTIONS (EXPMUL AND EXPDIV) PERFORM THE ASSEMBLER ; MULTIPLY (*) AND DIVIDE (/) FUNCTIONS. LEFT TO Ra~N b$ $ 7   &77  t7 7 74P~Ɩu\ Ype2e9ee, e e6  ̞  [ 7n *6~> 55 6 $ ** U~gU@ 6& xdƘޘ*zMPJ G SENO DFIF. C ND.E  Y2TREN MPJ 5 RDWO. L TRONCP RAT G SENO DFFN.I  UEINNTCOE,OP;N   06TLGE EQB ? UTNP IONM EOF!EO; ) R13(F,EO#B ITB N IOITOS P1)0,S(DRHA BHE TTOIN;    D TETARON EE BAS HS,ESDRADR DEEA H ;    ERFFBUT PUINE RCOU SVETIECFF E ;    HE TR,TEINPOR FEUF BRYMARI PHE T ;    NGSIESOCPRL IAITINR FEUF BUTNP ICEURSOT ENRRCU;   R FEUF BUTNP ICEURSO;     S OUVIRE PHE TNGSI U ;     NGSIESOCPRD EA RUSIOEVPR; c BUFFER ADDRESS  CMP  (R1)+,(R1)+  SUB  R1,@R0  MOV  @R0,@R1 STLLS1: MOV #0,-(R6) ;OUTPUT SYMBOL TABLE    ;NOT RE-ENTRANT EMT WRCMD  RTS  R7 .PAGE PAL ;ARITHMETIC CONDITIONAL ASSEMBLY PROCESSORS ; ;FORM --- .IF??? EXPRESSION ;.IFZ IF EQ 0 ;.IFG IF GT 0 ;.IFGE IF GE 0 ;.IFL IF LT 0 ;.IFLE IF LE 0 ;.IFNZ IF NE 0 IFPRO: CLR R0 ;PRIME COND TO EVALUATE TRAP COND ;THEdIGHT ONLY, ; PARENTHESES NOT PERMITTED. ; EXPMUL: MOV (R4),@#MQ ;MOVE IN RESULT (PREVIOUS VALUE) MOV (R5),@#MULTIPLY ;MULTIPLY IT BY QUANTITY (NEW VALUE) MOV @#MQ,(R5) ;STORE RESULTANT PRODUCT TST @#AC  ;TEST FOR > THAN 16 BIT PRODUCT BEQ EXPROK TGOOF: INC TERROR  ;TRUNCATION ERROR BR EXPROK ; EXPDIV: MOV (R5),@#MQ ;MOVE IN PREVIOUS VALUE MOV (R4),@#DIVISOR ;DIVIDE IT BY NEW VALUE BEQ TGOOF  ;BRANCH IF DIVISOR = 0 MOV @#MQ,(R5) ;STORE QUOTIENe !@bI~.Z=a Y:>  4@. c$6@# 7  S :~ *AwL C*gw_  [_5U*/#@% ()"'+-!&; ,:=874s pf~ 8 ̋נ0נ9 å.Հ& EEEE  ` e ` Eз&EUp̵~wV/,8 נ0נ98 å$ å.נA     E THO TVETILAREE ER H ;     ITWAD IEPLIMN AISE ERTH;     D CMRD MTE ) R6-(B,ILSV MO  CEENQUSEG INLLCA;     T ESQUREG INICRVSEO I/T PUINE RCOU S* **;   T UNCOE YT BUTNP I ;     NTREUR CRSDEEA HHE TROZE;   0 @R  R CL S TEBYE OD MND AUSATST;     T PUINS ERADHEE THT SE; + 0)(RE,ODIM#S  V MO T UNCOE YT BUTNP I ;     UMIMAX MRSDEEA HHE TET S ; + 0)(RC,MBSI # OV M  CKLO BERADHET PUINg EXPRESSION TST RESULT-O03 ;TEST THE RESULT JMP IF000-BEGO03+BEGOVR(R1) IF000: BNE IF020     ;IFZ BR IF010 BGT IF020 ;THE CONDITIONAL BRANCH IS ;IFLE BR IF010 ;TAKEN WHEN THE REQUESTED BGE IF020 ;CONDITION IS NOT SATISFIED ;IFL BR IF010 BLT IF020     ;IFGE BR IF010 BLE IF020     ;IFG BR IF010 BNE IF010     ;IFNZ IF020: INCB DNTACT-O03 ;CONDITION NOT SATISFIED TST LISTON-O03 ;LISTING SUPPRESSES? BEQ IF010  ;BRANCH IhT - IGNORE REMAINDER BR EXPROK .PAGE PAL  ; SUBROUTINE SET ERRORS   ; UTILITY SUBROUTINE FOR EXPRESSION ;SETERR: SUBR21: INCB  QERROR  ; QUESTIONABLE SYNTAX ERROR  BIS  #000400,R2  ; SET THE GENERAL ERROR  RTS  R7  ; RETURN  ; SECTION: CHARACTER IDENTIFICATION    ; INPUT R0 MUST BE FREE    ; OUTPUT R0=SFLAG'S VALUE ;  NUMBERS R0=1  CONVERTED AND PACKEDiנZ נaנz El h*7&&w~ßX#0 E &w<U%f -:@Օ  $(fe"wD  ~" D! :`eC -$eCE $  ~F ˕ e8˕ w & ˕ L > . @xbW ՋM u W~ve ͕'  x-;     E RCOU SRSFEUF BEDASLERE;     E THF OSSREDD A =R0;     E NCUEEQ SNGLIAL C ;     SSREDD AERFFBUK ACST;) R6-(0,RV MO  R12,@R  V MO S ERFFBUO I/E ATOT RLLCA; TETARO  P RA T  E:INTLGE CEENQUSES HI TTOD DEENPP A  ;   RE AY,LLNAIOPT OS,ERCTRAHA CEDFEM-OR F  ;   E.NCUEEQ SLFR- C ATHWI, LYALONTIDIONNC U  ;   E,ATINRMTEL IL WRSFEUF BUTNP ILL A  ;   ATRMFOR PERO P ;   RESUIND ANR FEUF BUTNP INGDICERE PHE TANSC; kF NO INC LISTKEY-O03 ;INCREMENT .IF NESTED COUNTER ;INCREMENT DON'T ASSEMBLE COUNTER. IF010: MOVB #-1,SIZE-O03 ;LISTING FORMAT CONTROL JMP EXIT-O03 ;EXIT IFPRO2: MOV #2,R0  ;PRIME COND TRAP COND  ;NOT TO EVALUATE THE EXPR. MOV R0,R4  ;SETUP R4 FOR "OR" CONDITION CLR R2  ;FINAL RESULT GOES IN R2 IFDF00: MOV #IFDF25-BEGO03+BEGOVR,-(R6) ;STACK THE "OR" OPERATOR IFDF05: TRAP ITEM  ;GET NEXT ITEM TSTB ITYPE-O03  ;IS THIS AN OK SYMBOL? IFDF12: TRAP SEARCl ;  SYMBOLS R0=2 OR 3  MOD40 AND SAVED ; NOT FOUND SITUATIONS: ;  TERMIS R0<0  R0=SFLAG IS CODED ; FOUND SITUATIONS: ;  TERMIS R0=0  CHARACTER WAS NOT A TERMI. ; R0 RETURNED VALUE   INTERPRETATION ;  NUMBERS R0< OR = 1  DEFAULTED TO TERMIS SEARCH ;  SYMBOLS R0< OR = 1  DEFAULTED TO NUMBER SEARCH ;  = 3   NTH CHARACTER'S ENTRY RESULT ;    NOT (0-9) . DEFAULTS TO FCHAR ;  = 2   NTH CHARACTER'S ENTRY RESULm)")˥0ӕ  7 D!C   Kw 9 w <~<w ?w BC!    e e& 5 c| e%m  e:7~f1e07 Ȝ0Z C  C`B `&4"Dԝԝ01020304050607080910,~ޜ111213141516171819202122232425262728293031707172737475767778798081828384858687888990x7(7 : @7 :~V  . NGSIESOCPR  ;   OR FDYEA RND ALLFUS IERFFBUT PUIN  ;   NGDICERE PHE TS,UEINNTCON IOUTECEXF I;   T HA TESUMSS AERBLEMSS AHE T. SSREOGPRN I;   Y TLENESPRS INDMAOM CADREA F IOLTRONC;   N IOUTECEXN AIET RSTMUR SOESOCPRO I/E TH ;   * **E OT N** * ;  1)0,S(DRHA B ;   BYD IEIFECSPY TLENRRCUR FEUF BUTNP IHE T ;   OFG INBLEMSS AHE TOR FRSTEINPOE IZALTINI I ;   R.FEUF BUTNP IALCIENQUSET EX NHE TTOS NTOI P ;   1)0,S(DRHA BATTHO SLEAB TRSoH  ;YES--SEARCH SYMBOL TABLE BGT IFDF12  ;FOUND IN P.S.T--IGNORE BNE IFDF10  ;NOT FOUND IN U.S.T. IFDF15: BITB #DEFFLG,TFLAGS-O03 ;IS SYMBOL DEFINED? BNE IFDF20  ;YES--BRANCH IFDF10: ADD R4,@R6  ;NOT FOUND OR UNDEFINED IN U.S.T. IFDF20: JMP @(R6)+  ;PROCESS & HOUSEKEEP THE STACK IFDF25: BIS R4,R2  ;LAST TERM="OR", SYMBOL DEFINED BR IFDF35  ;LAST TERM="OR", SYMBOL UNDEFINED IFDF30: BR IFDF35  ;LAST TERM="AND", SYMBOL DEFINED CLR R2  ;LAST TERM="AND", pT ;    DEFAULTS TO NUMBER ;    1ST CHARACTER'S ENTRY RESULT ;    WAS (0-9) .DEFAULTS TO FCHAR ;  = 1   NUMBER'S ENTRY RESULT ;    DEFAULTS TO TERMINATOR SEARCH ;  < 0   CHARACTER WAS A TERMINATOR ;  = 0   CHARACTER NOT A TERMINATOR ; TERMINATORS ENCODED AS FOLLOWS: ;  #  -18 ;  @  -17 ;  %  -16 ;  BLANK  -15 ;  TAB  -14 ;  (  -13 ;  )  -12 ;  "  -11  QUOTATION ;  '  -10  APOSTROPHE ;  +  -9qe7`&  ".΋4΋/%*W r%&:w.%~:~Ν@,%N@p, ` &e&|3>`&ŝJawDe~F U`@w&JՀH`|LHF9~z F@5P KKcebDa7a\b ɒ& "xeADBHE THE ATOT RENTH;   D ANMMCOD EA RHE TUESS IENTH ;   D TELEMPCON EE BAS H ;   1)0,S(DRHA BBYD IEIFECSPY TLENRRCUR FEUF B ;   HE TEROVN IOATEROPT PUUT OHE TATTHY IFER V ;   NELIE RCOU SET GNETIOUBRSUN PE O ;  AGFLT OUIN BZELIIAITIN;  T OUIN,B#1  B OV M  0 =ORRR E ; ORRR E RBCL R ROER Q RBCL R ROER U RBCL X DIRA  B LR C  ORRRIE  B LR C  ORRRAE  B LR C  ODLMRS  B LR C  MDL2RS  B LR C  0 =0)F(BUTB;  F BUTB sSYMBOL UNDEFINED IFDF35: MOVB SAVTERM-O03,R0 ;GET THIS TERMINATOR ADD #4,R0  ;IS IT "CR"? BEQ IFDF50  ;YES--BRANCH INC R0  ;IS IT ";"? BEQ IFDF50  ;YES--BRANCH INC R0  ;IS IT "&"? BEQ IFDF60  ;YES--BRANCH INC R0  ;IS IT "!"? BEQ IFDF65  ;YES--BRANCH BR IFDF45  ;ERROR--ILLEGAL TERMINATOR IFDF40: TST (R6)+  ;REMOVE STACKED OPERATOR IFDF45: INCB QERROR-O03  ;ERRORED SYMBOL OR ILLEGAL CLR R2  ;TERMINATOR (DEFAULT=UNDEFINED) IFDF50: TSt ;  -  -8 ;  !  -7 ;  &  -6 ;  ;  -5 ;  CR  -4 ;  ,  -3 ;  :  -2 ;  =  -1 .PAGE PAL ;  TERMINATOR CHARACTER TABLE TCHART: TCHARS = TCHART+24 TCAMUL: .BYTE  '* TCCMUL = TCAMUL-TCHARS TCADIV: .BYTE '/ TCCDIV = TCADIV-TCHARS TCAIMM: .BYTE  '#   ; IMMEDIATE TCCIMM  =  TCAIMM-TCHARS TCADEF: .BYTE  '@   ; DEFFERD TCCDEF  =  ~6Ÿ)eL x  N N Ê <%! ,c ѐhˋÜ`E $vX  P   LwZ ɋr pΌ R CL : RCTSSE L PA E AG.P DCEN. 4 TPSERP JM  EGOSNF FD.I  DCEN. 6 RYNTEP JM  4D OR.W  RLNTCO APTR  EGOSNF NDIF.: P4ET S. LEFI; N OP MTE T PUIN;) R6-(B,ILSV MO  CEURSON PE;O 6)(R,-FBSI OVM: P0ET SE NUTION CTOT INPOY TRENT EO;. DCEN. 2 TPSERP JM  EGOSNF FD.I  DCEN. 5 RYNTEP JM  4D OR.W  #4Y LAEROVN ILLCA;  L TRONCP RAT G SENO DFFN.I 2:TPSE S.AS PUTTPOUY ARIN;B  ABDTGS APTR wT R2  ;CHECK RESULT JMP IFDF55-BEGO03+BEGOVR(R1) IFDF55: BEQ IF010  ;.IFNDF SATISFIED BR IF020  ;.IFNDF NOT SATISFIED BEQ IF020  ;.IFDF NOT SATISFIED BR IF010  ;.IFDF SATISFIED ;OR OPERATOR ENCOUNTERED IFDF65: TST R1  ;PERFORM AND BEQ IFDF70  ;OPERATION IF .IFNDF BR IFDF00 ;AND OPERATOR ENCOUNTERED IFDF60: TST R1  ;PERFORM INCLUSIVE OR BEQ IFDF00  ;OPERATION IF .IFNDF IFDF70: MOV #IFDF30-BEGO03+BEGOVR,-(R6) ;STACK "AND" OPERATOR BR IFDF05 x TCADEF-TCHARS TCAREG: .BYTE  '%   ; REGISTER TCCREG  =  TCAREG-TCHARS TCABLK: .BYTE  '   ; BLANK TCCBLK  =  TCABLK-TCHARS TCATAB: .BYTE  011   ; TAB TCCTAB  =  TCATAB-TCHARS TCALPA: .BYTE  '(   ; LEFT PARENTHESIS TCCLPA  =  TCALPA-TCHARS TCARPA: .BYTE  ')   ; RIGHT PARENTHESIS TCCRPA  =  TCARPA-TCHARS TCAQUO: .BYTE  '"   ; QUOTATION TCCQUO  =  TCAQUO-TCHARS TCAAPO: .BYTE  ''   ; APOSTy.4dzR}@zd}@(&&a.; 9h= h>|@hh:t!hT.t!h!hJ"Wh,vh-`hB.49%h79hx79@hz<9h|<9@h~<.>9h>9hvJ9huL`;hPvL8"h`.{L}hiY DCEN. 2 D OR.W  #2Y LAEROVN ILLCA;  L TRONCP RAT G SENO DFFN.I  P2ET S NE B  SSPAS,ASOP B PBCM 2 TPSE  E BL . 1SSPAG INUR DRYNABIO ;N #1S,ASOPBB MPC: P5ET SN OP MTE E IL FUTNP;I 6)(R,-LBSI OVM E RCOU SENOP;) R6-(B,IFSV MO: SSPAET SC ND.E  SIRC MPJ G SENO DFIF. C ND.E  1) #AYRLVE(OT ITOL RONTCOE IV;G  Y1TREN MPJ 1 RDWO. 1 #AYRLVE OINL AL;C  RLNTCO APTR 1:N0RU AYRLVE OER PKSOCBLY ;B  02UNRR B # K OCBLE ASRENC I. RYNT;E  R45,RD { .PAGE PAL ;.ENDC PROCESSOR RENDC: DECB CNSTLV-O03 ;DECREMENT NESTED LEVEL COUNTER BGE ENDC01 ;TOO MANY .ENDC'S? INCB QERROR-O03 ;YES - SET QUESTIONABLE SYNTAX CLRB CNSTLV-O03 ;AND CLEAR NEST LEVEL COUNTER ENDC01: TSTB DNTACT-O03 BEQ IF010 ;IN DON'T ASSEMBLE STATE? DECB DNTACT-O03 ;YES - DECREMENT THE COUNTER BNE IF010 MOV #-1,LISTKEY-O03 BR IF010 ;EXIT .PAGE |ROPHE TCCAPO  =  TCAAPO-TCHARS TCAADD: .BYTE  '+   ; ADDITION TCCADD  =  TCAADD-TCHARS TCASUB: .BYTE  '-   ; SUBTRACTION TCCSUB  =  TCASUB-TCHARS TCAEXC: .BYTE  '!   ; EXCLAMATION TCCEXC  =  TCAEXC-TCHARS TCAAND: .BYTE  '&   ; AND TCCAND  =  TCAAND-TCHARS TCASMC: .BYTE  ';   ; SEMICOLON TCCSMC  =  TCASMC-TCHARS TCACRE: .BYTE  015   ; CARRIAGE-RETURN TCCCRE  =  TCACRE-TCHARS TCACOM: .BYTE  }yh/d@hXpph|~KhF *h(,&bH^7 L &H^,$f&R f^,H'aZw. Qɕ ?! *,lH^7 7oa7 A  (,7 7 7}8\2 7ww@ AD  TO# K OCBLG INRTTA S. ES;Y )+R2,(R4 OVM ? YSLAEROVE OR;M  01UNRT BL  R32,#B SU 2:N0RU *2S AYRLVE OOFR BEUM;N R3+,2)(R OVM 2 ,RABNTRU#V MO  ;. CYENIDES-RON NOR F 0TOT SET BIN IG S. RYNT;E ABNTRUE IVCTPEES RIRHE TINY LAEROVH AC;E OFR BEUM NCKLO BALICYSPHG INRTTA SCELA;P ;. CKTA SCTREOR;C )+R6,()+R6(P CM 3:N0RU ORRR EALAT;F  PNOT EM  CEOR FTOC ENOP .RMFOER;P 6)(R,-R1 OVM . NTSERE POT NVR.O1RL1PA;) R6-(B,RFOV#V MO 4:N0RU 05UNRR B ] ,1[1Y TR;D RISE,U01#4 OVM PAL ;CONDITIONALS FRONT END PROCESSOR (.IF...)  ;IF R0 = 0 ON ENTRY, THEN EVALUATE  ;THE EXPRESSION. AN ERRORED EXPRESSION  ;IS SET TO ZERO BY DEFAULT AS IS A NULL EXPR. SUBR38: INCB CNSTLV-O03 ;INCREMENT NEST LEVEL BGT COND00  ;TOO DEEP?    ;NO - BRANCH CLR -(R6) MOV #ERR2,-(R6) JMP ERROUT-O03 COND00: TSTB DNTACT-O03 ;IN DON'T ASSEMBLE STATE? BEQ COND01 ;NO INCB DNTACT-O03 ;YES - INCREASE COUNT TST (R6)+ ;HOUSE',   ; COMMA TCCCOM  =  TCACOM-TCHARS TCACOL: .BYTE  ':   ; COLON TCCCOL  =  TCACOL-TCHARS TCAEQU: .BYTE  '=   ; EQUALS TCCEQU  =  TCAEQU-TCHARS TCTSIZE =  TCHARS-TCHART  .EVEN .PAGE PAL TERMIN: TRAP  SETUP1 ; CALL SECTION INITIALIZATION TERM0:  MOV  #-TCTSIZE,R0 ; R0 = -TCHARS TABLE SIZE TERM1:  MOV  R0,SAVTERM  ; SAVTERM = R0  BGE  SECRTN  8, @\ &  @,wwr5 \7 P  ,7^7+ & w  & , \ w(\7$ 0L(&0U,D\7B & wT,hzv F zF &\,F7 0f(fu  E.ON DLL;A  04UNRQ BE  01#4D,RISEUP CM  CKTA SCTREOR;C )+R6,()+R6(P CM  T?ISEXE IL FESDO; 3 N0RU NEB K OCBLG INRTTA;S R4+,6)(R OVM K OO.L; 4 1T EM  CKLO BNKLI;) R6-(1,RV MO  6)(R-R CL  CKLO BLEFI;) R6-(B,RFOV#V MO 5:N0RU E.IL FUSUOIGNTCOE THF ;O CKLO BNGTIARSTL CASIHY PHE TNEMIERET;D ;Y LAEROVR PES CKLO;B R5+,6)(R OVM E IDIV,DR7 SRJ E IZ SAYRLVE;O 6)(R,-RDRWOV#V MO  Y.LAEROVR PES CKLO BOFR BEUM NNEMIERET;D TOE IZ SAYRLVE OTOINE IZ SCKLO BDEVIDI ;K ACKEEP THE STACK JMP IF010 ;LISTING FORMAT CONTROL COND01: TST R0 ;IF C(R0)=0, THEN EVALUATE THE BNE COND04 ;EXPRESSION AND CHECK FOR ERRORS COND02: TRAP EXPE3 ;EXPRESSION EVALUATION TSTB ERROR-O03 ;WAS THERE AN ERROR? BNE COND03 ;YES TSTB ICOUNT-O03 ;IF EXPRESSION WAS NULL, THEN BNE COND04 ;RESULT = 0 BY DEFAULT COND03: CLR RESULT-O03 ;YES - RESULT = 0 BY DEFAULT COND04: RTS R7 ;RETURN TO CALLER  .EVEN ERRMSG: .WORD  23  ; PASS ERROR COUNT MESSAGE  ; TERMINATE IF NOT NEGATIVE  CMPB  TCHARS(R0),R3 ; IS TCHARS(R0) = CHARACTER ?  BEQ  SECRTN  ; YES, TERMINATOR IDENTIFIED  INC  R0   ; R0 = R0+1  BR  TERM1  ; CONTINUE THE SEARCH ? ;  .PAGE NUMBER: TRAP  SETUP1 ; CALL SECTION INITIALIZATION NUM0:  CLR  R5   ; R5 = 0  TSTB  @R4   ; DECIMAL POINT SEEN YET ?  BLT  TERM0  ; YES, PERMIT ONLY TERMINATOR  MOV  #1,R0  ; R0 = 1  CMPB  R3,#'0F0(',7 wB!ez77,~ E ! ! ! ! wJwH6,w4r7 pw2 ww7 -(,&7 7 n-r 7 jf/P,@5& wb B  E,d u 42 ,e "$" ,"PA"TA  ĭ!7,"370^F^t fSTF OOP TON) DSOR(WE IZ SCKLO BALICYSPH; K ACSTT ECRRCO;+ 6)(R+,6)(R MPC 3 1T EM  CKLO BNKLI;) R6-(1,RV MO  USATSTE ICEV DINTAOB ;D CMIN MTE K OCBLK IN;L 6)(R,-R1 OVM E ICEV DAYRLVE OITIN;. CKLO BNKLI;1 ,RLBVR#O OVM O ;N     P? UET;S  01UNRQ BE  LL AYSLAEROV; T NIOINB STT ; ****S*AYRLVE OOR FUPT SE****;* EGOSNF NDIF. 1 4T EM  6)(R,-#1 OVM ) R6-( LRC ) R6-(4,P3RA#T OVM 4 3ONTICALOP UET;S  41 MTE ) R6-(2,#V MO  6)(R,-RTTAES#R OVM S ES  .WORD  0  ;FORMATTED ASCII  .WORD  23  .BYTE  CR,LF,' ,0  .WORD  0,0  .BYTE  '  .ASCII /ERRORS/  .BYTE  CR,LF,LF,0 .EVEN .IFNDF NOSEG ENDO03: SIZO03=ENDO03-BEGO03 .PAGE PAL ;***** OVERLAY #4 ***** O04=BEGOVR-BEGO04  ;COMPUTE OFFSET FROM    ;RUN TIME OVERLAY AREA BEGO04: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVERLAY. ; JMP RRAD50  ;ENTRY1 JMP RASCII  ;ENTRY2   ; IS CHARACTER AN ASCII 0  BLT  NUM1  ; NOPE  CMPB  R3,#'9  ; IS CHARACTER AN ASCII 9  BLE  NUM2  ; JUMP IF PROPERLY BOUNDED NUM1:  CMPB  #'.,R3  ; CHARACTER A DECIMAL POINT ?  BNE  TERM0  ; NO, DEFAULT TO TERMINATOR  BISB  #200,@R4  ; YES, SET DECNUM'S SIGN BIT     ; DECIMAL POINT HAS BEEN SEEN  BICB  #10,NERROR  ; CLEAR THE IMPLIED DECIMAL     ; BIT IN THE NERROR FLAG  CLR  0F"tx.fffV^^&^ V"&(,(^wt^V Nz.  tV"#,:04dF4d PAL11R V004C s0  F^ # / j|,j7 7    3, k w7 7 Õ ., 7& DRADT ARSTREP UET;S  LBCO LRC R BEUM NNELIR LEMBSEASR EACL; NONELI R CL LBCI LRC B LLSR CL  LBLO LRC B OLBR CL  B2ILSR CL  B1ILSR CL  INEG B^CF OSECA ;N IKSOCBLK IN LLL AARLE;C DCEN. A RTTA=SRTTA SG SENO DFIF. C ND.E  S.ESDRADR FENSRA TUPT SE;  A RTTA=SRTTA SD BLVROF NDIF. 6 ,ROPRTPE OVM: TCARST T.PSE TH; W LOBET US JTOK ACSTE THE IZALTINI;I DCEN. N GIBEC ^IF; B RLOV LRC G SENO DFFN.I  T.SEA AT DAYRLVE;O     ZELIIAITIN;T ~JMP RWORD  ;ENTRY3 JMP RBYTE  ;ENTRY4 JMP RSETP2  ;ENTRY5 JMP RSETP4  ;ENTRY6 JMP ASSIGN  ;ENTRY7 JMP SUBR24  ;ENTRY8 .ENDC .PAGE PAL ;RAD50 HANDLER ; ; RRAD50:  MOV  #TMPSYM,SYMBOL-O04  TRAP EVENPC  INCB  RADIX-O04  MOV  #3,CNTCHAR-O04 .PAGE PAL RASCII:   ;ASCII HANDLER ASCII2:  MOV  #SUBR1 -(R6)  ; STACK A VOID OVERFLOW VALUE  BR  NUM3  ; COMPLETE NUMBER PROCESSING NUM2:  BIC  #177760,R3  ; CONVERT ASCII DIGIT TO BINARY  MOV  @R1,R5  ; R5 = BASE08'S CURRENT VALUE  MOV  @R2,-(R6)  ; STACK BASE10'S VALUE  BIC  #017777,R5  ; DETECT BASE08'S OVERFLOW  BIC  #017777,@R6  ; DETECT BASE10'S OVERFLOW  ASL  @R1   ; BASE08 = BASE08 * 2  ASL  @R2   ; BASE10 = BASE10 * 2  MOV  @R2,-(R6wsD \is&\, z ^ X H 7 r 7 F ,Z 0 %U | $  ," 5   7 7 7 ,B# , *    Hw,f7    5 ,  \ 7  7,x  n  wb, ) F wHB ,@ .NIOI,N77#3 VBMO  A:RTTA S. E.IM TINEG B^CD ANE IM TADLOT AREHES MECOL RONTCO ; AL P GEPA . C ND.E  RTSTRR MPJ G SENO DFIF. C ND.E  #1Y LAEROV3 RYNT;E  Y3TREN MPJ 1 RDWO. 1 #AYRLVE OINL AL;C  RLNTCO APTR  EGOSNF NDIF .T:ARSTRE E.ICEV DUTTPOUT/PUIND ANMMCOE THN OEDYP TIS ; D ANMMCOT ARSTRER TONIMOE THN HE WOR B); Y BLEMSS AANF OND EHE T) ;A  ATE ER HESOM COLTRON;C S.GESAES MORRR EUTTPOUO TREHES MECOz1,R4  ; R4 = PROCESSORS ADDRESS  DEC  CURBYTE-O04  ; DECREMENT CURBYTE POINTER  TRAP  CBTABS  ; ON ENTERING CURBYTE POINTS TO THE ! ASCII0: TRAP  PRINT ; CALL PRINTABILITY  BLE  ASCII1  ; CHARACTER IS PRINTABLE  INCB  IERROR-O04  ; ILLEGAL CHARACTER  INC  CURBYTE-O04  ; REJECT THIS CHARACTER  BR  ASCII0  ; TRY THE NEXT CHARACTER ASCII1: MOVB  @CURBYTE-O04,R3  ; R3 = VARIABLE TERMINATOR  CMPB  #40,R3 )  ; STACK BASE10'S PARTIAL SUM  ASL  @R1   ; BASE08 = BASE08 * 4  ASL  @R1  ADD  R3,@R1  ; BASE08 = BASE08 + DIGIT  ASL  @R2   ; BASE10 = BASE10 * 4  ASL  @R2  ADD  (R6)+,@R2  ; BASE10 = BASE10 + PARTIAL  ROR  @R6   ; MAINTAIN BASE10'S OVERFLOW  ADD  R3,@R2  ; BASE10 = BASE10 + DIGIT  ROR  @R6   ; MAINTAIN BASE10'S OVERFLOW  BIC  #7,R3  ; RETAIN THE BIT POSITION     ; r   }0|w @ " F  s|*s,BD, 8 ( 4  w   ,f JH w  @2 ,r, 2 S,tbf ! tc,v F    HH,D B X \@Xʵ ZXL RONTCO;  T IO T:OURR EE INUTROUB SEDSTUEEQ RTO;     ) EXND(ILEABJTU HR TMPJU;  7 ,R)+R6@(  V MO X DEINE BLTAP UM JTELACUAL C ; 6 @RP,RA-TLEABJT # DD A  ONTIUCTRNS IEDPPRA TCKTA S ; ) R6-(+,6)(R @ OV M  USATSTD KEACSTF OOP TON;     6 @R2, # UB S  SSREDD ARNTUREE THK ACST ; 6)(R,2R6 @ OV M 4:P3RA T4 3ONTICALOR FOR LENDHAP RA T ;    L PA E AG.P L PA v  BEQ  ASCII3  BIS  #006400,R3  ; R3 = CAR-RET TERMINATOR  MOV  #SAVTERM,R2  ; R2 = EFF. VALUES ADDRESS  MOVB  R3,@R2  ; SAVTERM = INITIAL TERMINATOR  INC  CURBYTE-O04  ; INCREMENT CURBYTE POINTER  CMPB  @CURBYTE-O04,R3 ASCII3:  BEQ  ASCIIX  SWAB  R3  CMPB  @CURBYTE-O04,R3  BEQ  ASCIIX  SWAB  R3  MOV  #177000,R1  ; R1 = 177000  BR  BYTE1  ; COMPLETE INITIALIZATION RWORD:   ; WORD ASSE WHICH IMPLIES DECIMAL.  BISB  R3,NERROR  ; SET THIS BIT INTO NERROR     ; (IE., ASSUME DECIMAL NUMBERS     ; ARE VIOLATIONS UNTIL THE     ; DECIMAL POINT IS SEEN.)  BISB  R3,@R4  ; SET THIS BIT INTO DECNUM NUM3:  MOVB  @R4,-(R6)  ; STACK THE DECNUM BYTE  BIC  #177617,@R6  ; OBTAIN CUMULATIVE OVERFLOW  BIS  (R6)+,@R6  ; MAINTAIN BASE10'S OVERFLOW  BEQ  NUM30  ; BASE10 HAS NOT OVERFLOWED  B\,4 5  C!$@A,>(CH׭" )NF  X \x X&\,b̕`XZ >,    EHNv, FN F   HN&,@ACBEH׭z ),NF` ^ , H m \,L   7M @, ,:/  > ?!  N VE.E CEPA SERFFBUD RL ;  6 C+DBRL.+  = .  6 F+BULD R  = RTSTRL +2 .  = NTDCRL 0 RDWO . F:BULD RN VE.E 3 =6  C DBRL +6+1ZESIBB  =  C MBBO TEBYM SUCKHE C AVEERES R ;   0 TEBY .  SSREDD AERFFBUY ARIN BX.MA;    A:BBAX MS TEBYA AT DZESIBBE RVSERE;  E IZBS+B .  =  .S ESDRADD OA LKSOCBLY ARIN B ;   0 RDWO .  NTOU CTEBYS CKLO BRYNABI;   0  D OR.W R IEIFNTDE IrMBLY DIRECTIVE HANDLER  MOV  #177401,R1  ; R1 = -1/+1  TRAP  EVENPC ; CALL EVEN THE LOCATION COUNTER  BR  BYTE0  ; COMPLETE INITIALIZATION .PAGE PAL RBYTE:   ; BYTE ASSEMBLY DIRECTIVE HANDLER  CLR  R1   ; R1 = 0 BYTE0:  MOV  #SUBR1B,R4  ; R4 = PROCESSORS ADDRESS  MOV  #0,R3  ; R3 = THE FOLLOWING TWO .  =  .-2   ; ENCODED TERMINATORS:  .BYTE  ISB  #160,@R4  ; MAINTAIN DECNUM'S OVERFLOW NUM30:  BITB  #210,@R4  ; OCTAL OR DECIMAL ?  BEQ  NUM4  ; OCTAL NUMBERS EXITED.     ; DECIMAL NUMBERS PROCESSED  MOV  @R6,R5  ; R5 = BASE10'S OVERFLOW DATA  MOV  R2,R1  ; R1 = BASE10'S ADDRESS NUM4:  MOV  @R1,QUANTITY ; QUANTITY = EFFECTIVE VALUE NUM5:  MOV  R5,(R6)+  ; THE EFFECTIVE OVERFLOW DATA     ; SETS THE CONDITION CODES,     ; MAINTA5K,^ ?   $ͭͭ ,V f^ͭ FNP V ,t ^H & t"&, ͭ 7 wͭ &/,b7"^w DB&,  00,N 0Nf,6w  &&KSOCBLY ARIN B ;   0 RDWO .  NTOU CTEBYT ENRRCUO B ;   0 RDWO .  10F+BUIN=BNTNCBI ESYT BDEMOS-TUTA SBO;   0  D OR.W T UNCOE YT BUMIMAX MBO;   0  D OR.W F:BUIN BR DEEA HUTTPOUY ARIN B ;  ENEV .  ERFFBUT PUUT ORYNABIE YT B46;   . 46  =  E IZBS B. NOE IN LOR FOMROE AVLE;   14.+ = .S ERFFBU;  14.+  =  . ONSIENXT ENGTIIS LCTJEOB;  12.+  =  . ERFFBUA AT DERCTRAHA C ; AXCMSR.+  =  . nTCCCRE,TCCSMC ; CAR-RET, SEMICOLON  MOV  #RESULT,R2  ; R2 = EFF. VALUES ADDRESS  MOV  R3,R0 BYTE1:  ADD  #000401,R1  ; R1 = R1 + +1/+1  DECB  SIZE-O04 .PAGE PAL  ; SUBROUTINE DATA ACQUISITION   ; THIS SUBROUTINE SUPPORTS THE DATA GATHERING   ; REQUIREMENTS OF THE THREE PRECEDING   ; ASSEMBLY DIRECTIVE HANDLERS.    ; INPUT INITIALIZED REGISTERS    ; OUTIN THE STACK POINTER  BEQ  SECRTN  ; EXIT, NO OVERFLOW DETECTED  INCB  TERROR  ; SET TRUNCATION ERROR  BR  SECRTN  ; EXIT, OVERFLOW DETECTED NCHAR:  TRAP  SETUP1 ; CALL SECTION INITIALIZATION  INC  R0   ; R0 = 2  CMPB  R3,#'0  ; IS CHARACTER ASCII 0 ?  BLT  CHAR01  ; NOPE  CMPB  R3,#'9  ; IS CHARACTER ASCII 9 ?  BGT  CHAR01  ; NOPE CHAR00: SUB  #22,R3  ; BOUNDED, START TRANSLATIONwf  END &&~,Z &7 e  ,~D!Bͽ%( wP,w  ` :,www^7&R ^k,f"e  ͵ R1, ͵%͵ɕ= C͵͵,2 @G**D`,V $ D!! NTOU CTEBYT ENRRCUI S ;     ESYT BDEMOS-TUTA SSI;     I CSR FO; 162-UFIB S = UFDBCM NTOU CTEBYM MUXIMAI S ; 6 .- = 2 UFIB SO TWK OCBLR DEEA HUTNP ICEURSO;    D ELFIG INSTLIK ANBL;   1 .+  =  . LDIE FNGTIIS LCTJEOB;   6 .+  =  . LDIE FNGTIIS LNKLA B ;  +1 .  =  .D ELFIG INSTLIN IOATOC L ;  +6 .  =  .D ELFIG INSTLIR ROER;   2 .+  =  . ERMBNUE IN L ; +6jPUT COMPLETE HANDLER HANDLING    ;  RETURN IS TO SETSRC DATA:  MOV  #SAVTERM,R5  ; R5 = SAVTERM ADDRESS  TRAP  DATERM ; CALL DATA TERMINATION  BNE  DAT00 ;NOT DATA TERMINATOR.  TSTB  ITEMIN-O04  ; IS AN ITEM PENDING ?  BNE  DAT00  ; YES DAT0:  INCB  QERROR-O04  ; NO, QUESTIONABLE SYNTAX  JMP  EXIT-O04  ; EXIT VIA THE MAIN PROGRAM DAT00:  JSR  R1,@R7 ; ITERATION RANGE    ;(R1=DAT00+2, OLD R1 TO S  BR  CHAR03  ; COMPLETE THE TRANSLATION FCHAR:  TRAP  SETUP1 ; CALL SECTION INITIALIZATION  INC  R0   ; R0 = 2 CHAR01: CMPB  #'$,R3  ; IS CHARACTER ASCII $ ?  BNE  CHAR02  ; NOPE  SUB  #11,R3  ; YES, INITIATE TRANSLATION  BR  CHAR03  ; COMPLETE THE TRANSLATION CHAR02: CMPB  #'.,R3  ; IS CHARACTER ASCII . ?  BEQ  CHAR00  ; YES, START TRANSLATION  CMPB  R3,#'A  ; IS CHARACTER ASCII e $͵@,z G*ew(w8E $8,  e8 fQ$H ,  R q     0  | xhw4 R &  *& , hZa^Q ,2 e      qT 3 $T n,V   * 7 * , . = . NTOU CTEBYT ENRRCUO L ;   0 RDWO .  ESYT BDEMOS-TUTA SLO;   0  D OR.W T UNCOE YT BUMIMAX MLO;   0  D OR.W 2:UFOB LO TWK OCBLR DEEA HUTTPOUD TEIS L ;    ENEV .  -6F1BULO.-  =  C MBLO O. NNELIR FOM OO RVEEA L; 4 +1 .  =  .S ERFFBU;  14.+  =  . ONSIENXT ENGTIIS LCTJEOB;  12.+  =  . ERFFBUA AT DERCTRAHA C ; AXCMSR.+  =  . NTOU CTEBYT ENRRCUI S ;     ESYT BDEMOS-TUTA SSI; fTACK)  CLR  R0   ; R0 = 0  JSR  R7,@R4 ; CALL THE EFFECTIVE PROCESSOR DATB0:  SWAB  @R6   ; WORD DIRECTIVE ?  BNE  DATB7  ;NO  TSTB  RSLMOD-O04  ;YES (0 IN LOW ORDER BYTE)  BEQ  DATA00  ;ABSOLUTE EXPRESSION BLT DATB14  ;.GLOBL OR EXTERNAL    ;.CSECT EXPRESSION ;RELOCATABLE EXPRESSION CURRENT .CSECT TRAP SAVREG MOV #2,R4 MOV #RLD2.1,RLDIR-O04 ;INTERNAL RELOCATION TRAP RELREF MOV RESULT-O04,R1 MOV #4,R4 A ?  BLT  NUM0  ; NOPE  CMPB  R3,#'Z  ; IS CHARACTER ASCII Z ?  BLE  CHAR03  ; CHARACTER IS BOUNDED     ; CHECK FOR LOWER CASE  CMPB  R3,#141  ; IS CHAR. LOWER CASE A ?  BLT  NUM0  ; CHARACTER NOT BOUNDED  CMPB  R3,#172  ; IS CHAR. LOWER CASE Z ?  BGT  NUM0  ; CHARACTER NOT BOUNDED  BICB  #040,R3  ; INTERNALLY CONVERT ALL     ; LOWER CASE TO UPPER CASE.  MOVB  R3,@CURBz & w ,  wH `7 ;%  ERRORS j  , s^@z X> s2, JßDå U (ʐ 0ï,} (*( ï$y @ v0 vH ,H ^e (<w^(&,l O +.    T UNCOE YT BUMIMAX MSI;   6 .- = 1 UFIB SE ONK OCBLR DEEA HUTNP ICEURSO;    D ELFIG INSTLIK ANBL;   1 .+  =  . LDIE FNGTIIS LCTJEOB;   6 .+  =  . LDIE FNGTIIS LNKLA B ;  +1 .  =  .D ELFIG INSTLIN IOATOC L ;  +6 .  =  .D ELFIG INSTLIR ROER;   2 .+  =  . ERMBNUE IN L ; +6 . = . NTOU CTEBYT ENRRCUO L ;   0 RDWO .  ESYT BDEMOS-TUTA SLO;   0  D OR.W T UNCObBR DATB13 ;.GLOBL OR EXTERNAL .CSECT EXPRESSION DATB14: TRAP SAVREG MOV #RLD2.5,RLDIR-O04 ;GLOBL ADDITIVE RELOCATION CMPB #-1,RSLMOD-O04 BEQ DATB15  ;GLOBL EXPRESSION MOV #RLD4.3,RLDIR-O04 ;.CSECT ADDITIVE RELOCATION DATB15: MOV #2,R4 TRAP RELREF MOV RESULT-O04,R3 MOV #10,R4 MOV GLBSY1-O04,R1 ;.GLOBL OR MOV GLBSY2-O04,R2 ;.CSECT NAME DATB13:  TRAP  RLDFIL  INCB  RLDFLG-O04  TRAP  SETREG  BR  DATA00 DATB7:  MOVB  +1(R2),TERRORYTE  ; EXTERNALLY CONVERT ALL     ; LOWER CASE TO UPPER CASE CHAR03: BIC  #177700,R3  ; COMPLETE THE TRANSLATION  MOVB  R3,@SYMBOL  ; SAVE CHARACTER IN TMPSYM  INC  SYMBOL  ; SYMBOL = SYMBOL+1 SECRTN: TRAP  SETREG ; CALL SET REGISTERS  MOVB  R0,SFLAG  ; SFLAG = R0  RTS  R7  ; RETURN .PAGE PAL ;SETUP1: SUBR22: MOV  (R6)+,R0  ; SAVE THE RET &J, & J/, H*A, ;% zP<, d  xP?6 n.2 c "2, >w 4Fßנ0נ9,D å$ å.å   ,h נAנZ נaנz  E0  k sDt{$sE YT BUMIMAX MLO;   0  D OR.W 1:UFOB LE ONK OCBLR DEEA HUTTPOUD TEIS L ;    0 RDWO .  0 RDWO .  0 RDWO .  0 RDWO .  0 RDWO .  12  D OR.W 3  D OR.W K AC PILRA;T  0 4 RDWO . F:BURL TX MARCS= BCIM S AL PF)+LCRD+AR C(1 2.=8ERFFBUE RCOU SAX M ; 2. 8 =X MARC SE ONR FEUF B ;     CKLO BERADHEO I/N ABYD DECERE P  ;    LYTEIAEDMM IISR FEUF BALDUVIDIINH AC E ;    ERFFBUT PUUT OHE TINTHWID DEEDMB E ^-O04 ; TERROR = HIGH ORDER BYTE  BEQ  DATA00  ; ZERO VALID VALUE  INCB  TERROR-O04  ; TERROR = TERROR+1     ; NEGATIVE ONE VALID VALUE DATA00: SWAB @R6   ; RESTORE STACKED VALUE CMP #401,@R6 BNE DATB8 TSTB RSLMOD-O04  ;.BYTE DIRECTIVE BEQ DATB8 CMPB #-1,RSLMOD-O04 BEQ DATB10   ;.GLOBL INCB AERROR-O04 BR DATB8 DATB10: TRAP RLDBYT DATB8: MOV R3,R0   ; DIRECTIVE TERMINATED? DATA8: TRAP DATERM   ; CALL DATA TURN ADDRESS  TRAP  SAVREG ; CALL SAVE REGISTERS  MOV  R0,-(R6)  MOV  #1,R0  ; R0 = 1  MOV  #BASE08,R1  ; R1 = BASE08 ADDRESS  MOV  #BASE10,R2  ; R2 = BASE10 ADDRESS  MOVB  @CURBYTE,R3  ; R3 = EFFECTIVE CHARACTER  MOV  #DECNUM,R4  ; R4 = DECNUM ADDRESS  RTS  R7  ; RETURN .PAGE PAL   ; SUBROUTINE BINARY TO ASCII CONVERTER    ; INPUT R4 *t. 2&7B V2(V,  V l ? (J7 7 R, V< 4. 0 ," C X:T7G&7 7 ,F 7 8w7 7 P&R,j 7z,  wf , Q_ε9Z, %,0zw ;    LYTELEMPCOS IERFFBUT PUINE TH;    E ON ZNGRIFEUF BUTTPOUT-PUIN;   N VE.E S AS PUMIMAX M ;   0 TEBY .S:ASXPMA SSPAE IVCTFEEF;   0  E YT.B : SSPA SSPAS L'BOYM SEDINEFND U ;   0 TEBY .: SSPAUS ONTIOPS AS PNGTIIS LORRR E ;   0 TEBY .: SSPAER NSIOPT OLYMBSEAS;   : NSIOPT OS ONTINCFUS AS PLYMBSEAS;   S:SEAS P AL P GEPA . T PUUT OOR FENOP; 7 R4UBSD ORZERMINATION BNE DATA1   ; NOPE DATB1: TSTB RADIX-O04  ;RADIX HANDLING BEQ DATA0   ;NO THEN BRANCH DATB2: TST CNTCHAR-O04 BEQ DATB3 DATB5: CLRB @SYMBOL-O04 DEC CNTCHAR-O04 INCB SYMBOL-O04 BR DATB2 DATA0: MOV #SETSRC+2,R1  ; R1 = SETSRC ADDRESS TST @R6   ; ASCII DIRECTIVE? BLT DATA2   ; YES, EXIT.     ; THIS NO-OPED CODE INSURES BR DATA1 ASCIIX: DECB SIZE-O04 INCB QERROR-O04 JMP EXIT-O04     ; THAT ALL .ASCII STATEMENT'S = BINARY NUMBER    ;  R3 = DESTINATION END ADDRESS    ;  R2 = ITERATION LENGTH ;BINASC: SUBR13: MOVB  R4,-(R3)  ; MOVE THE EFF. OCTAL DIGIT     ; INTO LSTBUF(R3) BYTE  BICB  #370,@R3  ; ZERO EFF. BYTES HIGH 5 BITS  BISB  #060,@R3  ; SET THE OCTAL 60 BITS  ASR  R4   ; SHIFT R4 RIGHT 3 BITS  BIC  #100000,R4  ; PREVENT SIGN PROPAGATION  ASR  R4  ASR  R4  DEC  R2   ; R2 = R28wy, ɵELHAI,%D4/d\\,B  ,fV@@@P^"P&^(d x2j"D4.d 2j" D", S̕:p, #(׭FO׭>K,H   `X.W  TOR IOPRE IL FUTTPOUE ETEL;D LEABJT.- =T OUEL DC ND.E  46BRSU RDWO. R DEOA LAYRLVE;O  LEABJT.- =L TRON CG SENO DFFN.I  R7S RTA VIT XI;E  45BRSU RDWO. D ANS ERSTGIREP PO;E BLTA-J.= EGPRPO 'DITIN .IF; 4 R4UBSD OR.W  ET STADAE ASLERE .ND ASELO.C;E BLTA-J.= ANLE CC ND.E  43BRSU RDWO. G SENO DFIF. C ND.E  #1Y LAEROV2 RYNT;E  Y2TREN RDWO. G SENO DFFN.I  TADAE ATIDAL V2,SI CLLCA;E BLTA-J.= HKICCS DCEN .  42BRSU RDWO .  EGOSNF FD.I C ND.E V     ; TRAILING TERMINATOR IS     ; FOLLOWED BY EITHER A CAR-RET     ; OR A SEMICOLON. IF NOT, A     ; BLANK LINE IS PRINTED WITH     ; A'Q' ERROR CODE AND THE     ; DIRECTIVE IS TERMINATED. ; BGE DATA1   ; NO, AVOID CHECK ; TRAP CBTABS   ; CALL CHECK FOR BLANKS AND TABS ; CMPB #CR,@CURBYTE-O04 ; THIS CHARACTER A CAR-RET? ; BEQ DATA2   ; YES, VALID CASE SO EXIT ; CMPB #';,@CURBYTE-O04 ; THIS CHARACTER A SEMICOLON? ; BEQ DATA2   ; -1  BGT  SUBR13  ; ITERATE THE PROCESS  RTS  R7  ; RETURN .PAGE PAL  ; SUBROUTINE END LINE   ; THIS SUBROUTINE COMPLETELY FORMATS THE LISTED   ; OUTPUT BUFFERS AND DRIVES THE BINARY   ; OUTPUT SUBROUTINE.   ; *** NOTE ***   ; EBBUF INCREMENTS THE USERS'S PROGRAM COUNTER ;ENDLINE: SUBR08: TRAP  SAVREG ; CALL SAVE REGISTERS  MOV  CURLIST,R5  ; R5 = THE CURRENT B,EP )&,:˕  S,,^ ˕7 t7 n,NSbw#%F ) F,96FPF$,hwP X  VB7,wTw"LPQARDMBIV,NTU,EEGx,62 #AYRLVE OY8TREN; 8 RYNTED OR.W G SENO DFFN.I R FEUF BLD RTOINL OBGL .ERNT;E LEABJT.-  = GLTREN DCEN. 1 R4UBSD OR.W  EGOSNF FD.I  DCEN. 2 #AYRLVE OY6TREN; 6 RYNTED OR.W G SENO DFFN.I  NETIOUBRSUH RCEA SARNELI;E BLTA-J.= CHSRIN L0 R4UBSD OR.W Y TRENL BOYM SAYRLVE;O LEABJT.-  = AYRLOV 39BRSU RDWO . NETIOUBRSUH RCEA SRYNABI;E BLTA-J. =H RCNSBI DCEN. 8 R3UBSD OR.W  EGOSNF FD.I  DCEN . ) #3Y LAEROV (ORSSCERO PND ENTRO;F  Y8TREN RDRYES, VALID CASE SO EXIT ; INCB QERROR-O04  ; NEITHER, QUESTIONABLE SYNTAX ; COMB @R6   ; SET SIZE < 0 DATA1:  TSTB  RADIX-O04  BEQ  DATB4 RADB4:  SWAB  R0  ; THIS PORTION  MOVB  @CURBYTE-O04,R3 ; CARRIES OUT  CMPB  R3,#'0 ; THE TRANSLATION  BLT  RAD01 ; AND PACKING  CMPB  R3,#'9 ; OF WORDS  BGT RAD01  ; AS SPECIFIED RAD00:  SUB  #22,R3 ;  BR  RAD03 RAD01:  CMPB  #'$,R3  BNE  RAD02  SUB  #11,R3  BR  RAD03 UFFER'S     ; OUTPUT HEADER ADDRESS  MOV  R5,ENDL06+2  ; PLACE THIS HEADER'S ADDRESS     ; INTO LO CALLING SEQUENCE ENDL10: CMP  (R5)+,(R5)+  ; R5 = R5+4  MOV  R5,-(R6)  ; STACK THIS ADDRESS  CLR  (R5)+  ; CLEAR LO BYTE COUNT CMP LINENO,LASTLN ;SEE IF THIS IS A NEW LINE, OR AN BNE INCLINE  ;EXTENSION OF THE PREVIOUS MOV #6,R4  ;EXTENSION - BLANK OUT LINE NUMBER CLINE: MOVB #' ,(R5)+ DEC R4 BNE CLINE BR ENDLAA ; INCLINE: MOV Hx\M ,ZM8f,~xM&W),4d&W4d&W ,&W N&Wz%p: ,** PAGE XXXXX M!M-DD-YY HH:MM:SS:XX , (,( P,L zWO. G SENO DFFN.I LYMBSEASL NAIOITNDCO;E BLTA-J.= NDCO 37BRSU  D OR.W E BLTA-J .  = YTDBRL 36BRSU  D OR.W E BLTA-J .  = INTBOU DCEN .  35BRSU  D OR.W G SENO  F FD.I C ND.E 2 #AYRLVE OY7TREN;  7 RYNT E RDWO .  EGOS N DFFN.I E BLTA-J .  = ABDTGS 34BRSU  D OR.W E BLTA-J . = EFLRRE 33BRSU  D OR.W E BLTA-J .  = ILDFRL 32BRSU  RDWO. E BLTA-J . = NTDIRL 31BRSU  D OR.W E BLTA-J .  = HBNRAD02:  CMPB  #'.,R3  BEQ  RAD00  CMPB  #' ,R3  BNE  RAD06  CLR  R3  BR  RAD03 RAD06:  CMPB  R3,#'A  BLT  RADERR  CMPB  R3,#'Z  BLE  RAD03  CMPB  R3,#141  BLT  RADERR  CMPB  R3,#172  BGT  RADERR  BICB  #40,R3  MOVB  R3,@CURBYTE-O04 RAD03:  BIC  #177700,R3  MOVB  R3,@SYMBOL-O04  INC SYMBOL-O04  BR  DATB6 RADERR: INCB  QERROR-O04  BR  DATB2 DATB6:  INCB  CURBYTE-O04  MOV  LINENO,-(R6) ;SET UP CALL TO DOS .BIN2D SUBROUTINE MOV (R6),LASTLN ;SAVE LINE NUMBER MOV R5,-(R6) ; ADD #6,R5  ;POINT R5 TO ERROR NO. IN SOURCE MOV #3,-(R6) ; EMT 42  ;CONVERT LINE NO. TO ASCII DECIMAL    ;AND LEAVE IN SOURCE OUTPUT ENDLAA: MOV R5,CURLIST  ; CURLIST = EFF DATA(0) ADDR  MOV  R5,R4  ; R4 = THE ERROR FIELD'S  TST  (R4)+  ; TERMINAL ADDRESS  MOV  #17,R0  ; R0 = 23.  TRAP  BLKBUF ; CALL BLANK BUFFER  CLR  R}zd},p%tv"% "$t&v*x"@H,!l$[.x"@ H ,!l$a\! T%l.\!  T%l &r%&%.  & r %&%%%f% B,x:&.%% f% B,x:h(RCSE 27BRSU  D OR.W G INSTLIT PUUT ONDMAOM C ; LEABJT.-  =  T ISOL C6 R2UB S RDWO .  ERNTOU CONTICALOE THN VE E ; LEABJT.-  =  C NPVE E5 R2UB S RDWO .  TYLIBITAINPR;  E BLTA-J .  = NTRI PC ND.E 4 R2UB S RDWO .  EGOS N DFIF .  DCEN .  #4Y LAEROV; 8 RYNT E RDWO .  EGOS N DFFN.I N IOATINRMTEA AT D ; LEABJT.-  =  M ERAT D3 R2UB S RDWO .  UMKSECCHH ISIN F ; LEABJT.-  = M SUCKHE C2 R2UB S RDWO .  ONTIZALIIAITJ CURBYTE-O04,R5  DEC  CNTCHAR-O04  BNE  DATA8 DATB3:  MOV  #TMPSYM,R1  ;INITIALIZE ADDRESS  TRAP SERCHB  ;FOR CONVERSION  MOV  #TMPSYM+1,R2  MOV  #SETSRC+2,R1  MOV  #2,SIZE-O04  BR  DATB9 DATB4:  MOV  @R6,SIZE-O04 DATB9:  MOV  @R2,TBBUF-O04  CLRB  RADIX-O04 ASCIIY:  TRAP  ENDLINE ; CALL END LINE  TRAP  COLIST TST LOLB-O04  ;WAS LISTING DEVICE INITED YET? BEQ DATB99  ;NO - BRANCH MOV #LOLB,-(R6) ;WAIT TI R3   ; R3 = 0  MOV  #ERRTAB,R2  ; R2 = ERROR TABLE BASE ADDR. ENDL00: SWAB  @R2   ; EFF ERROR COUNTER ZERO ?  BEQ  ENDL01  ; YES  CLRB  @R2   ; NO, CLEAR THE COUNTER  MOV  #1,R3  ; SET R3 = 1  CMP  R5,R4  ; EXCEEDED ERROR FIELD ?  BHIS  ENDL01  ; YES  MOVB  +1(R2),(R5)+ ; NO, BUFFER ASCII ERROR CODE     ; INCREMENT ADDRESS POINTER ENDL01: SWAB  (R2)+  ; REINSTATE ERROR TABLE WORD     ; INCREMENT ADDRESS POINTER  C           ni x_ S G CH 7 5 3 - , & %    &IN. ID. ARCH;  E BLTA-J .  = P1TUSE 21BRSU  D OR.W E OD CORRR EET S ; LEABJT.-  =  R ERET S0 R2UB S RDWO .  LDIE FRTSEIN;  E BLTA-J .  = RTSEIN 19BRSU  D OR.W R TORAPESES SIHENTREPA;  E BLTA-J .  = EPRSPA 18BRSU  D OR.W K ECCHD END ELFI;  E BLTA-J .  = NDDEFL 17BRSU  D OR.W R TONAMIER TXTNE;  E BLTA-J .  =M ERXTNE 3BBRSU  D OR.W K ECCHA DIMEF--OND EUTTPOU;  E BLTA-J .  = HKMCEO 16BRSU  D OR.W FLL LISTING COMPLETES EMT WTCMD DATB99: SUB #12.,CURLIST-O04  INC  CURBYTE-O04  ; INCREMENT CURBYTE POINTER DATA2:  TST  -(R1)  ; R1 = R1-2  RTS  R1  ; REITERATE SUBROUTINE RSETP2: CLR  @USERPC-O04  ; INITIALIZE DOT AT ZERO ;INITIALIZE DOT TO DEFINED, RELOCATABLE, UNNAMED .CSECT. MOV #DEFFLG!RELFLG!400,@HUSERPC-O04  CLR  ABSPC-O04  CLR  RLDFLG-O04  ;INITIALIZE ;CLEAR ALL CURRENT PC WORDS IN ;THE CONTROL SECTION AREA OF THMP  R2,#MAXERR  ; TABLE COMPLETELY EXAMINED ?  BLO  ENDL00  ; NOPE  ADD  R3,ERRSUM  ; YES, ERRSUM = ERRSUM+R3  MOVB  R3,ERROR  ; ERROR = R3  MOV  R4,R5  ; R5 = THE LOCATION FIELD'S  ADD  #6,R5  ; TERMINAL ADDRESS  MOV  @USERPC,R4  ; R4 = USER'S PC VALUE  MOV  R5,R3  ; R3 = BUFFERING ADDRESS  MOV  #6,R2  ; R2 = 6 ITERATIONS  TSTB  SIZE  ; ANY OBJECT DATA PRESENT ?  BEQ  ENDL02  ; NOPE  BGE  ENDL12  INC  PAGING ** dr d| fp fy 5 4,ew(7 j .7 |7 7 7 7 B7 87 >` (,!& !wJD׭n6  /,fLw*$w&7 L,4717,777777,X%& S ERSTGIRET SE;  E BLTA-J .  = EGTRSE DCEN .  15BRSU  D OR.W G SENO  F FD.I  C ND.E 3 #AYRLVE OY4TREN;  4 RYNT E RDWO .  EGOS N DFFN.I T PUUT OEDSTLIE BLTAL BOYM S ; LEABJT.-  =  T LSTL S4 R1UB S RDWO .  RSTEISEG RVESA;  E BLTA-J .  = EGVRSA 13BRSU  D OR.W N IORSVEON CIISC ATOY ARIN B ; LEABJT.-  =  C ASIN BC ND.E 2 R1UB S RDWO .  EGOS N DFIF .  DCEN .  #3Y LAEROV3 RYNT E ; Y3TREN  D OR.W BE ;SYMBOL TABLES. MOV PERTOP-O04,R0 ;BOTTOM OF .CSECT AREA MOV R0,R2 MOV R2,HIRPC-O04 ;POINTER TO MAX PC OF TST -(R2)  ;BLANK .CSECT MOV R2,RELPC-O04 ;POINTER TO CURRENT PC OF    ;BLANK .CSECT MOV CONTOP-O04,R1 ;TOP OF .CSECT AREA SETP3: CMP R0,R1 BEQ SETP1  ;DONE CLR -2(R0)  ;0-CURRENT PC WORD. SUB #10,R0  ;SIZE OF ENTRIES IF BR SETP3  ;4 WORDS. SETP1: MOVB  #1,SECMOD-O04 ;UNNAMED .CSECT MOV  #130411,TITLEA-O04 MOV  #35214,  BR  ENDL05 ENDL12:  TRAP  BINASC ; CALL BINARY TO ASCII CONVERSION ENDL02: TRAP  EBBUF ; CALL ENTER BINARY BUFFER  MOV  #TBBUF,R0  ; R0 = TBBUF(0) ADDRESS  ADD  #7,R5  ; R5 = THE OBJECT FIELD'S ENDL1A:  MOV  R5,R3 ENDL03: MOV  #3,R2  ; R2 = 3 ITERATIONS  MOVB  (R0)+,R4  ; R4 = EFF OBJECT DATA BYTE  BIC  #400,R4  ; PREVENT SIGN PROPAGATION  TSTB  BYTFMT  ; BYTE OR WORD FORMAT ?  BNE  ENDL04  ; BYTE  ASL  R2   ; R @w,|yĕ Q$BB`@ K4, wʥ m222,d   -Je,rwv w&&G,  z^֋wlz^,0-28 ׭b,T/2  ,xV׭b ɵ9,G SENO  F NDIF .  NGTIIS LLEAB TOLMBSY;  E BLTA-J .  = STLIST 11BRSU  D OR.W R TEACARCHT GE;  E BLTA-J .  =R HATCGE 10BRSU  D OR.W S AB TND AKSANBLK ECCH;  E BLTA-J .  = BSTACB 09BRSU  D OR.W R FEUF BRYNABIR TEEN;  E BLTA-J .  = UFBB E8 R0UB S RDWO .  NGSIESOCPRE IN LOFD EN;  E BLTA-J .  =E INDLEN 07BRSU  D OR.W S SILYNA AAXNTSY;  E BLTA-J .  = AXNTSY 06BRSU  D OR.W E BLTAL BOYM SERNT E ; LEABJT.->TITLEB-O04  MOV  #-1,R0  MOVB  R0,BINOUT-O04  TRAP  BBINIT ; CALL BINARY BUFFER INITIALIZATION  MOV  #1,PAGCNT-O04  ; INIT. PAGE COUNTER  CLR  PAGING-O04  ; INIT. LINE COUNTER  CLR  ERRSUM-O04  ; INIT. ERROR COUNTER CLR LINENO-O04 ;INITIALIZE ASSEMBLER LINE NUMBER JMP SETP4-O04 RSETP4:  CLR  SIBUF1+2-O04  CLR  SIBUF2+2-O04  MOV  BHADRS+2-O04,R0 MOV R0,-(R6) ;STACK BUFFER ADDRESS  MOV  #SIMBC,(R0)+R2 = 6 ITERATIONS  DEC  R0   ; DECREMENT R0  MOV  (R0)+,R4  ; R4 = EFF OBJECT DATA WORD  DECB  SIZE  ; SIZE = SIZE-1 ENDL04: TRAP  BINASC ; CALL BINARY TO ASCII CONVERSION TST LISTKEY BNE ENDLX1  INC  PAGING  ; INCREMENT LINE COUNTER ENDLX1:  DECB  SIZE  ; SIZE = SIZE-1  BLE  ENDL05  ; OBJECT DATA PROCESSING DONE  MOV  SRCIN,R3  ; R3 = LAST TERMINATORS ADDRESS  INC  R3   ; AVOID THE FIRST CHARACTER  MOVB  #TAB,@R3 ɵ-w,e / T,~wDl-\vM &v>,-T JPwZ   F,,ww,w&w`w,Pwwm,tQ$Q$Q$Q$Q$wBQ$wvwwNw\w,w7 :,@7Mwn"5 /  =  R TEEN 2BBRSU  D OR.W E LUVAS ERSTGIREE RCFO;  E BLTA-J .  = CEORRF 2ABRSU  D OR.W E LUVAS ERSTGIREK ECCH;  E BLTA-J .  = CKHERC 05BRSU  D OR.W E LUVAS L'BOYM SVESA;  E BLTA-J .  = ALVVSA 1CBRSU  D OR.W Y TREND -R 3'SONSIESPREX;  E BLTA-J .  = E3XP EB R1UB S RDWO .  RYNT END2-S N'IOSSREXP E ; LEABJT.-  =  2 PEEX 1ABRSU  D OR.W Y TRENT -S 1'SONSIESPREX;  E BLTA-J .  = E1XP E4 R0UB S RDWO .  LEAB:  MOV  #SIMODE,(R0)+  MOV  R0,CURLIST-O04  MOV  #LOMBC-26,R0  TRAP  BLKBUF MOV SILB-O04,-(R6) ;GET SOURCE INPUT EMT RDCMD ; ; MOV SILB-O04,-(R6) ;WAIT FOR COMPLETION EMT WTCMD  MOV  BHADRS-O04,R0  SUB  #16,R0  MOV  #100000,(R0)+  CLR  (R0)+ JMP SETSRC-O04 .PAGE PAL ; DIRECT ASSIGNMENT STATEMENT PROCESSING  ; THIS SUBROUTINE RESOLVES THE FOLLOWING THREE DIRECT   ; BUFFER(1) = TAB ADD #17,R3  ;POINT TO END OF SOURCE  MOV  R3,SRCIN  ; SRCIN = LATEST TERMINATORS ADDR  MOVB  #LF,@R3  ; INSERT A CR-LF SEQUENCE  MOVB  #CR,-(R3)  BR  ENDL03  ; OBJECT FIELD NO FORMATTED ENDLX7: JMP ENDL07 ENDL05: MOV  SRCIN,R3  ; R3 = LAST TERMINATORS ADDRESS ENDL11:  MOVB  #CR,-(R3)  INC  R3  MOVB  #LF,@R3  MOV  ENDL06+2,SRCIN ; RESET TERMINATORS ADDR.  SUB  @R6,R3  ; CALCULATE EFF. BYTE COUNT  DEC  ,7&H*͟N,ׯH` >?6`8p `&8,( (V L qV,L@ @fEwHB.,p K&z,&$&` &&7 `m&&M,~ 7 t ff/ $,ff3 f TOLMBSYH RCEA S ; LEABJT.-  =  H RCEA S3 R0UB S RDWO .  ONTISIUICQ AEMIT;  E BLTA-J .  = EMIT 02BRSU  D OR.W S ERFFBUO I/E ATOT R ; LEABJT.-  =  E ATOT R1 R0UB S RDWO .  ERFFBUG INSTLIK ANBL;  E BLTA-J .  = UFKBBL 00BRSU  D OR.W N IOATIZALTINI IERFFBUY ARIN B ; LEABJT.-  =  T NIBI BS NTOI PRYNT ENETIOUBRSUF OLEAB TMPJU;   E:BLTA JN VE.E AL P GEPA . E AG.P6; ASSIGNMENT SITUATIONS:  ; 1) USER'S SYMBOLIC ASSIGNMENTS  ; 2) SYMBOLIC REGISTER ASSIGNMENTS  ; 3) ASSEMBLY LOCATION COUNTER ASSIGNMENTS   ; UPON ENTERING THIS SUBROUTINE THE EFFECTIVE SYMBOL   ; TABLE ADDRESS RESIDES IN HINDEX.   ; REGISTER TYPING INFORMATION OBTAINED ON EITHER SIDE   ; OF THE EQUIVALENCE CAUSES THE EFFECTIVE SYMBOL   ; TO BE TYPED AS REGISTER.   ; THE ASSEMBLY LOCATION COUNTER SYMBOL IS DETECTED   ; BY IDENTIFYING THE R3  MOV  R3,@(R6)+  ; SET BUFFERS BYTE COUNT  CMPB  PASS,LOPASS  ; LISTED OUTPUT PASS ? BNE  ENDLX7  ; NOPE TST LOLB  ;LISTING DEVICE ALREADY INITED? BNE ENDL25  ;YES - BRANCH TST LISTKEY BNE ENDL25 MOV #LOLB,R1 MOV #LOFB,R3 TRAP DELOUT  ;.INIT, .DELETE, .OPEN LISTING DATA SET. ENDL25:  TSTB  RLDFLG  BEQ  ENDL06  ; THIS PORTION PUTS  CMPB  @R5,#CR  ; AN APOSTROPHE  BNE  ENDL1C  ; AS REQUIRED FOR  TSTB  (R5)+  ; &swH  sN,  7t| 7 L7 b7 b7@ |v,$ *W   <  .H>%% ’ K (,n* -   7   , 7    ,&s6 ɋ 5 i ; ORATICND IAB TORK ANBL;   0  E YT.B G:LATF BS ASCLS N'IOCTRUSTIN;   0  E YT.B S:ASCL IK AS MNGTIIS LLEAB TOLMBSY;   0  E YT.B K:ASTM S. ERNTOU COLMBSY;     S T'PUUT OEDSTLIE BLTAL BOYM S ;   0 TEBY .: SCSTLI ERNTOU CEMITS N'IOSSREXP E ;   0 TEBY .: NTOUIC ERNTOU CERCTRAHA C'SEMIT;   0  E YT.B: ARCHNT CR TOCADIINT PUUT ORYNABI;   0  E YT.B T:OUIN BR TOCADIING INNDPEM TE I ;   0 TEBY .: INEMIT AG2CHAR13 PACKED WORD.   ; IE. TMPSYM(1,2) = 127400   ; EXPRESSIONS DEFINING THE ASSEMBLY LOCATION   ; COUNTER, UPON BEING ENCOUNTERED, MUST BE   ; TOTALLY EVALUATABLE.     ; INPUT SPECIAL SITUATION     ; OUTPUT EXIT ASSIGN:  MOV  TMPSYM+1-O04,-(R6) ; SAVE SYMBOLS FIRST TRIAD  MOV  TMPSYM+3-O04,-(R6) ; SAVE SYMBOL'S SECOND TRIAD  MOV  HINDEX-O04,-(R6) ; SAVE SYMBOL'S ENTRY ADDRESS  MOV  @R1,-(R6)  ; SAVE SYINSTRUCTIONS TO BE  MOVB  (R5)+,@R5  ; MODIFIED  DEC  R5  MOVB  -(R5),1(R5)  MOV  ENDL06+2,-(R6)  ADD  #4,@R6  INC  @(R6)+ ENDL1C:  MOVB  #'',@R5 ENDL06: MOV #0,-(R6) TST LISTKEY BEQ ENDLX6 TST (R6)+  ;SUPPRESS PRINTOUT OF THIS LINE BR ENDLX7 ENDLX6: MOV #LOLB,-(R6) EMT WRCMD CMP PAGING,MAXLINES BLT ENDLX7   ; NOPE ; THE FOLLOWING LOGIC STORES THE DECIMAL PAGE NUMBER ; DATE AND TIME IN THE PAGE HEADING BUFFER ; MOV  s6, r0r *ɋD XP rr*q,VT wcj fUFĝZ ," E7V* T U,F  +å   w ,jw׽@׽&vt  v$t. B`E   eeW!yi (y>,`&fv  ,*&^w T  FFLT PUUT O'SID. ARCH;   0  E YT.B : AGFL SR TOCADIINE YP T'SEMIT;   0  E YT.B : PETY IN VE.E D IONTIEC SOLTRON;C  0  E YT.B : IDCTCS GSLA F'SLEAB TOLMBSYY ARORMPTE;   0  E YT.B S:AGFL T0  D OR.W 0  D OR.W 0  D OR.W 0  E YT.B M:SYMP TR TEUNCOD ELFIG INSSREDD;A  0 E YT.B T:CNLD FS ESDRADD ODE BSTMUM SYMP T ;   ENEV .  LEAB TOLMBSYY ARORMPTE;    0  D OR.W: RMTEAR VN VE.E  E.ICEV;D    AYRLVE OITIN; .MBOL'S FLAGS AND .CSECT ID  TRAP  ITEM ; CALL ITEM  BLE  MAIN16  ; VOID ITEM ENCOUNTERED     ; NON-VOID ITEM ENCOUNTERED  INCB  ITEMIN-O04  ; SET ITEM PENDING FLAG MAIN16: CLR  R0   ; R0 = 0  TRAP  EXPE3 ; CALL EXPRESSION, MINIMAL TERMINATOR ;  BGT  MAIN17  ; NON-VOID EXPRESSION FOUND  INCB  QERROR-O04  ; VOID EXPRESSION CONSIDERED     ; AS QUESTIONABLE SYNTAX  INCB  UERROR-O04 MAIN17: BISPAGCNT,-(R6) ;PUSH PAGE COUNT ONTO STACK MOV #PAGBUF+17.,-(R6) ;AND BUFFER ADDRESS FOR PAGE NO. MOV #3,-(R6)  ;AND A CODE FOR BINARY TO DECIMAL EMT 42   ;THEN LET DOS .BIN2D DO THE WORK MOV #PAGBUF+17.,R3  ; SUPPRESS LEADING ZEROES ZEROES: CMPB #'0,(R3) BNE ZEROXT MOVB #' ,(R3)+ BR ZEROES ; ZEROXT:  INC  PAGCNT  ; INCREMENT PAGE COUNTER  CLR  PAGING  ; CLEAR LINE COUNTER MOV #104,-(R6) ; EMT 41  ;GET TIME OF DAY MOV (R6)+,R3 ;R3= L,7@B! w2  $7, 7p *F&:4,D 7 7 ( E - &,h1- 77 70F,!ׂ &P 7(P&(, & ע. W._ ,0wxw2k, <  @0w2D,WW µ   'TON D 0IF;0 TEBY.: ITINNO R"11AL"PT INPR- 0 N NO;7 37 TEBY.: NTDE IN VE.E  CHITSWS T'ECCS .STLI;0 TEBY.: CTSELC ERNTOU CLEMBSEAST N'DO;0 TEBY.: CTTADN ELEV LSTNES ALONTIDION;C 0E YT.B V:TLNS C0  E YT.B : THRLVA UPCKBAD MOSL;R  0  E YT.B : MDL2RS N)IOCTSEL NAERXT(EE BLTACALORE= -2 ;    ALOBGL= -1 ;    N)IOCTSET ENRRCU (LEABATOCEL R1= ;    TELUSOAB= ;0    N IOSSREXP EOFE YP THE TESATICND IISTH ;  0 TEBY . D:MOSL RS T'ECCS .ED*B  REGTYP-O04,@R6 ; COMBINE THE EXPRESSION'S REG.     ; TYPE WITH THE SYMBOL'S FLAGS  BITB  R2,@R6  ; IS THE SYMBOL TYPED REGISTER ?  BEQ  MAIN18  ; NOPE  BITB  #LABFLG,@R6  ; YES, IS IT A LABEL ?  BEQ  MAIN18  ; NOPE  BISB  #MDFLAG,1(R6) ; YES, CONSIDERED AS A     ; MULTIPLY DEFINED SYMBOL  INCB  RERROR-O04  ; REGISTER ERROR MAIN18: MOV  (R6)+,@R1  ; RESTORE SYMBOL'S FLAGS AND ID  OW ORDER TIME, IN UNITS OF 1/60 TICS MOV (R6)+,R2 ;R4 = HIGH ORDER TICS ROL R3  ;CONVERT TO DOUBLE PRECISION ROR R2  ;FORMAT (DOS TIME DOESN'T USE ROR R3  ;BIT 15) MOV #3,R0  ;SET R0,R1 = 1 HR IN 1/60 TICS MOV #19392.,R1 ;(216,000 IN DOUBLE PRECISION) JSR R5,TCALC ;GET HOURS, CONVERTO TO ASCII, PUT IN BUFR .WORD TIMEXX  ; CLR R0  ; MOV #3600.,R1 ;SET (R0,R1) = 1 MINUTE IN 1/60 TICS JSR R5,TCALC ;GET MINUTES, CONVERT TO ASCII, .WORD TIMEXX+3 m,@  7,d0. 2+,. W"µ@6µwo,µwµi y,͵&# 7zP#,T-L׭d3 >/0Q,N7K47 7>6Z,<(%!$oHaJH,`JHQAM N =8)6(372- ;    CTSE.CD MENAUN= ;1    T ECAS .0= ;    S: INE OONTIEC SATWHN IESATICND IISTH ;  1 TEBY . D:MOEC S0  E YT.B : IXAD R1 E+IZ=SMTTFBY;   0  E YT.B T:FMYT BS ESDRADN VE EBET US MZESI;   0  E YT.B : ZESI GEMA ICEURSOE IVCTFEEFE THF O ;     NGSIESOCPRE IRNT EHE TUT O ;     RUTHR FEUF BUTTPOUT-PUIN;     E IVCTFEEFE THO TTSINPO;     Y LLNAIOITNDCOUN) ,1(0RSADBH;     S SEESDR&MOV  (R6)+,HINDEX-O04 ; RESTORE SYMBOL'S ENTRY ADDRESS  MOV  (R6)+,TMPSYM+3-O04 ; RESTORE SYMBOL'S SECOND TRIAD  MOV  @R6,TMPSYM+1-O04 ; RESTORE SYMBOL'S FIRST TRIAD  CMP  #127400,(R6)+ ; IS THIS SYMBOL DEFINING THE     ; ASSEMBLY LOCATION COUNTER ?  BNE  MAIN19  ; NOPE  TSTB  ERROR-O04  ; WAS THE EXPRESSION TOTALLY EVALUATABLE?  BNE  MAIN87  ; BRANCH IF NOT.  TSTB  RSLMOD-O04  BGE  MAIN88 MAIN87:;STORE IN PAGE BUFFER MOV #60.,R1  ;SET (R0,R1) = 1SECOND IN 1/60 TICS JSR R5,TCALC ;GET SECONDS, CONVERT TO ASCII, .WORD TIMEXX+6 ;STORE IN PAGE BUFFER MOV R3,R4  ;GET 1/60 SECOND TICS JSR R5,TCALC3 ;AND CONVERT TO ASCII .WORD TIMEXX+9. ;STORE IN PAGE BUFFER MOV #103,-(R6) EMT 41  ;GET DATE MOV (R6)+,R3 ;FORMAT IS JULIAN: YY,DDD. BASE IS 70,000 CLR R2 GETYEAR: SUB #1000.,R3 BLT GOTYEAR INC R2 BR GETYEAR ; GOTYEAR: ASL R2 MOVB , ĝe C ,4( 5K󷊴0׭ (,7* .77 Z7 XS,wEՇעעע, & עע Š ,8Հ P  s,\7   &,77 ^bR7 7^bRg,ADR DEEA HERFFBUT PUIN;  2 UFIB S RDWO .  CEURSOF OLEAB TNGTITARO;  1 UFIB S RDWO .: RSADBH ENEV .  0D OR.W 4:RDWO 0D OR.W 3:RDWO 0D OR.W 2:RDWO CHSRIN LTOT PUIN; 0 RDWO.: D1OR W) SSREDD ASTWELO (ST POFP TO; T TBYMSD OR.W P:TOER P) SSREDD ASTHEIG(HT PSF OOMTTBO; B TBYMSD OR.W T:BOER P . NTMETETA S ;     CEURSOT ENESPRE THN HIIT W ;     EDSSCERO PNGEI BR)TEACARCH ( ;     TEBYT ENRRCUE THT ALYCTREDI;     S NTOI P" INCB  AERROR-O04 MAIN89:  JMP  MAIN1E-O04 MAIN88: COMB  BINOUT-O04  ; REQUEST BINARY OUTPUT  BITB  #-DEFFLG-RELFLG-1,@R1 ;ONLY DEF. AND REL. CAN BE SET.  BEQ  MAIN1Q  INCB  QERROR-O04  BR  MAIN89 MAIN1Q:  MOV  R1,R5  ;SAVE R1  MOVB  #RLD3.2,R0  ;LOCATION COUNTER MODIFICATION  MOV  RESULT-O04,R1  MOV  #4,R4  TRAP  RLDFIL  MOV  R5,R1  ;RESTORE R1  TSTB  SECMOD-O04  BEQ  MAIN1C  ;ABSOLUTE PROGRAM SECTION  YEAR+0(R2),DATEXX+6 ;MOVE ASCII YEAR INTO BUFFER MOVB YEAR+1(R2),DATEXX+7 ADD #1000.,R3 ASR R2 ADD #2,R2 CLR -(R6) BIT #3,R2  ;SEE IF ITS LEAP YEAR BNE NOTLEAP INC (R6) ; NOTLEAP: ADD (R6),DAYS+2 ;ADJUST FEBRUARY DAY LENGTH CLR R4 ; DAYMON: SUB DAYS(R4),R3 BLE MONTH ADD #2,R4 CMP #22.,R4  ;SEE IF WERE DONE BGE DAYMON ;BRANCH IF WERE NOT SUB #2,R4  ;SET TO DEC 31 ; MONTH: ADD DAYS(R4),R3 ASR R4  ;CONVERT MONTH (0-11)  74u\ Y,^e2e9ee, e, e6  ̞ ', I 7\ *6 Њ,455 6 4,X* ,|* M,uUUU@ .6& x (LYNTTANSCOR TEINPOS HI T ;   0 RDWO .E:YTRBCU RDWOD ANMMCOS ONTIUCTRNS IAN;     F OR)MD (DSELFIG INSSREDD A ;     ALEREN GHE TOFN IOCTRUSTON C ;     HE TIND SE URDWOA AT D ;   0 RDWO .: NDMACO 0 RDWO . G:FLLD RE AGORST;   0  E YT.B : NTLCRE VETIECIR DLD R ;   0 TEBY . R:DIRL ;   0 RDWO . D:CMIR DE AM N ;   0 RDWO . 2:SYLB GL BOYM SALOBGL;   0  D OR.W : Y1BSGL HE TNSAINTCOH ICWHR TSTB  RSLMOD-O04  BLE  MAIN87  ;NOT RELOCATABLE EXPRESSION IN .CSECT  MOV  RESULT-O04,@RELPC-O04 ;UPDATE PC OF CURRENT .CSECT  CMP  @USERPC-O04,@HIRPC-O04  BLOS  MAIN1T  MOV  @USERPC-O04,@HIRPC-O04 ;UPDATE MAX. PC OF CURRENT .CSECT MAIN1T:  BR  MAIN1C MAIN19: TSTB ERROR-O04  ;EXPRESSION NOT  BNE  MAIN89  ;FULLY DEFINED  CMPB  #MDFLAG,1(R1) ; IS THIS SYMBOL MULTIPLY     ; DEFINED ?  BNE  MAIN1A  ; NOPETO ASCII SUB #9.,R4  BGE TEN MOVB #' , DATEXX ADD #72,R4 MOVB R4,DATEXX+1 BR DAY ; TEN: MOVB #'1 ,DATEXX ADD #60,R4 MOVB R4,DATEXX+1 ; DAY: ASL R3 MOV ASCDAY-2(R3),DATEXX+3 SUB (R6)+,DAYS+2  ; SET FEB LENGTH BACK TO 28 BR ENDLXX ; ; TCALC: CLR R4 SUB R1,R3 SBC R2 SUB R0,R2  ;DBLE PREC SUBTRACT BLT TCALC2  ;(R2,R3) = (R2,R3) - (R0,R1) INC R4 BR TCALC+2 ; TCALC2: ADD R1,R3  ;ADD IN THE LAST SUBTRACT THAT ,T*h !T  ,@PIH=O,2G:,  4@. c$t,V$@#  C,z7  S  *,AwL C*Uw_),  I_#Ue.*/#@% ()"'+-!&; ,:=87"s (, TEINPO;   0  D OR.W L:BOYM SD OR WC. PX.MAO TERNTOI P ;   0 RDWO . C:RPHI RDWOC PTOR TEINPO;   0  D OR.W : PCEL RS ERNTOI PRYNT ECTSE.CT ENRRCU  ;D OR WIDG/LA FTSDOF OR.DD A ;   0 RDWO .C:RPSEHU SSPAA G INUR DEDORRR E ;     ESIN LHE TLL AOFM SUE TH;   0  D OR.W M:SURR ES ESDRADR DEEA H'SERFFBU;     T PUINE RCOU SVETIECFF EHE T ;     OFS ESDRADE THS INTAON C ;     RDWOS HI TO,ER ZOT NIF;   , VALID SITUATION  TRAP  SAVVAL ; CALL SAVE SYMBOL'S VALUE  BR  MAIN1C  ; ENTER THIS INFORMATION MAIN1A: BITB  R2,@R1  ; IS SYMBOL TYPED REGISTER ?  BEQ  MAIN1B  ; NOPE  TRAP  RFORCE ; CALL REGISTER CHECKER MAIN1B: BICB  #DEFFLG,@R1  ; CLEAR SYMBOL'S DEFINED FLAG  TSTB  RSLMOD-O04  ;AM I IN REL EXP BLT MAIN87   ;.GLOBL OR EXTERNAL .CSECT EXPRESSION  BEQ  MAIN1C BISB  #RELFLG,@R1 MOVB SECMOD-O04,1(R1)  ADC R2  ;FLIPPED THE SIGN ADD R0,R2 ; TCALC3: MOV R4,-(R6) MOV #BCD,-(R6) MOV #3,-(R6) EMT 42  ;CONVERT NUMBER TO DECIMAL ASCII MOV (R5)+,R4 MOVB BCD+3,(R4)+ MOVB BCD+4,(R4)+ RTS R5 ; ; DAYS: .WORD 31.,28.,31.,30.,31.,30.,31.,31.,30.,31.,30.,31. ASCDAY: .ASCII /0102030405060708091011121314151617181920/ .ASCII /2122232425262728293031/ YEAR: .ASCII /707172737475767778798081828384858687888990/ TIMER: .WORD 0 BCD: .WORD 0,0,0 ; ; ENDLXX: p 8 ̋נ0נ9 å.,0 Հ& EEEE ,T ` e ` EХ&EUM,x p̵wV/,8 נd, 0נ98 å$ å., נAנZ נaנz pE, Z V*7&&|"|&,!ßF#0 E   ,,!&wBU%f -(.  G LA FUTTPOUD ANMMCO;   0  D OR.W G:LAOF C. ERFFBU;     T PUUT OEDSTLIE IVCTFEEFE TH;     N ITEBYE BLLAAIAVT ENRRCU;     E THT ATSINPOR TEINPOS HI T ;   0 RDWO .T:ISRLCU H.RCEA S ;     LEAB TOLMBSYE THG INUR D ;     NTTANSCOR TEACARCH' 'B;     E IVCTFEEFE THS INTARE;   0  D OR.W D:CMYT BN IOITOS PR.HA CTH5-, B' ' ;  20 1 RDWO .  ONTISIPO. ARCHH -T 4','B;  0062  D OR.W ;PROG. SECTION ID MAIN1C: BISB  #DEFFLG,@R1  ; FLAG THIS SYMBOL DEFINED MAIN1D: TRAP  OVRLAY  ; CALL OVERLAY USER'S SYMBOL TABLE BR  MAIN89  ; SUBROUTINE DATA TERMINATION ;DATERM: SUBR24:  CMPB @R5,R0  BEQ DATER0  SWAB R0  CMPB @R5,R0 DATER0:  RTS R7 .IFNDF NOSEG ENDO04: SIZO04=ENDO04-BEGO04 .PAGE PAL ;***** OVERLAY #5 ***** O05=BEGOVR-BEGO05  ;COMPUTE OFFSET FROM    ;R MOV #PAGBUF,-(R6) ;I/O SERVICING MOV #LOLB,-(R6) EMT WRCMD ENDL07: CLRB RLDFLG  CLR  SIZE  ; SIZE = 0 TST LISTKEY  ;CHECK FOR LIST SUPPRESS BGE ENDLX8 CLR LISTKEY ENDLX8:  TSTB  ERROR  ; WAS THE LINE ERRORED ?  BEQ  ENDL09  ; NOPE  CMPB  PASS,ERPASS  ; ERROR LISTING PASS ?  BNE  ENDL09  ; NOPE  MOV  BHADRS,COFLAG ; REQUEST COMMAND OUTPUT     ; COFLAG = BHADRS(0,1) ENDL09: ADD #34,SRCIN  CLRB  ERROR  Օ ,P! fe*"wD ,t!  D! &,!`veC ,!-$eCE < ,! |$  pl. ˕ ,"e ˕ w  ˕ ,("L &  (Vd &Vd,L"bW ՋM u e . LSBOYM SEDBLNA E ;     TEBYE THO TONTILARE;     N INETIOUBRSUH RCEA S ;     HE TBYD SE UTSANSTON C ;     ERCTRAHA CB' '40D-MOF OLEAB T ; 0 -1 .  = ONTCBY D.OR WAGFLD/ I'SOLMBSYF OSSREDD A ;   0 RDWO .: EXNDHI CKLO BALINRMTES T'PUUT O ;     RYNABIE THR FOS ESDRAD;     P UM JVETIECFF EHE TNSAIET R ;   0 RDWO .R:ADMP J0 D OR.W : INRC SM SUCKHE CUTTPOUY ARIN B ;     HE TNGTIUCTRNSCOR UN TIME OVERLAY AREA BEGO05: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVERLAY. ; JMP OPCODE  ;ENTRY1 JMP EOFFLG  ;ENTRY2 .ENDC .PAGE PAL OPCODE:  MOV  QUANTITY-O05,-(R6) ; STACK MEMONICS OP-CODE  TRAP  EVENPC ; CALL EVEN THE LOCATION COUNTER  MOV  #COMAND,R5  ; R5 = COMAND'S ADDRESS  MOV  #RESULT,R4  ; R4=RESULT ADDRESS  MOV  #SIZE,R3  ; R3 = SIZE ADDRESS  CLRB   ; ERROR = 0  TRAP  POPREG ; CALL SET REGISTERS AND RETURN .PAGE PAL   ; SUBROUTINE ENTER BINARY BUFFER    ; INPUT BINOUT BYTE FLAGS    ; > 0, ENTER TBBUF DATA    ;  INTO BINBUF    ; = 0, FORCE BINBUF OUT AND    ;  GENERATE BINARY EOT    ; < 0, FORCE BINBUF OUT    ; OUTPUT NONE    ; BBINIT PROVIDES DIRECT    ; SUPPORT ;EBBUF: SUB ,p" ͕'  V-  Vp,""˥0ӕ  7 P,"D!C   Kw  l  ,"w <w w C!  (,#  ##e e& 5##,$# c| #e%m#r#&#,H# FOD SE U ;   0 RDWO .: UMCSBO 0 RDWO .M:ERVTSA ENEV .  OLMBSYE BLTACALORES OUVIRE;P     OFD ICTSE.CN AINTAI MTO;   E INUTROUB SONSIESPREXN IEDUS; 0 TEBY.: ECGSPR CEENQUSEF -LLFR- C ;  F ,LLFR, C TEBY .  /XXS::SMMH:/H IISC.A X:EXIM T/ YYD--DMM /I CIAS .: XXTEDA /X XXXXE AGP  / IISC.A  CEENQUSEF -FCR; FFF,,LCR  E YT.B T UNCOE YT BALTUAC;  52 RDWO .  O)(LDEMO ) HIS(TUTA S ;   0 0 RDWO .  NTOU CTEBYX MA @R3   ; SIZE=0  MOV  #TBBUF,R2  ; R2=TBBUF(0) ADDRESS  MOVB  ICLASS-O05,R0 ; R0 = OP-CLASS INDEX  JMP  @OPCLASS-BEGO05+BEGOVR(R0) ; SELECT OPERATION CLASS OPCLASS:  ; OPERATION CLASSING JUMP TABLE CLASS0: .WORD  MAINC0-BEGO05+BEGOVR  ; OPERATE MNEMONICS CLASS1: .WORD  MAINC1-BEGO05+BEGOVR  ; UNARY  MNEMONICS CLASS2: .WORD  MAINC2-BEGO05+BEGOVR  ; BINARY MNEMONICS CLASS3: .WORD  MAIN3F-BEGO05+BEGOVR  ; R09: TRAP  SAVREG ; CALL SAVE REGISTERS  MOV  #TBBUF,R4  CLR  R0   ; REQUEST REGISTER SETUP  TRAP  BBINIT ; CALL BINARY BUFFER SETUP  MOVB  SIZE,-(R6)  ; STACK OBJECT DATA SIZE  TSTB  BINOUT  ; DETERMINE PROCESSING TYPE  BGT  EBBUF0  ; SIMPLE OBJECT DATA BUFFERING  BEQ  EBBUF2  ; OUTPUT THE BUFFER AND EOT  MOV  @R4,@R5  ; SET THE ASSEMBLY LOCATION     ; COUNTER = TBBUF(0,1)  CMP  @R2,#6  e:71e07,l# #0Z C  C`B `  #,#&*$"Dԝԝm *$,#010203040506070809101112,#131415161718192021222324252627282930,#317071727374757677787980818283848586-, $87888990V77 " VO,D$(7 "e7a,h$`& ; 2 5 RDWO .: UFGBPA ERFFBUE AGSSMEE AG P ;   N VE.E 4 =D COSP L2 =D COTY TN IOATOCEL REDACPLIS DVETIDIADT ECCS .; 6 1= .4D4RL ONTICALOREE IVITDD ACTSE.C;  15  =3 4.LD RN IOATOCEL REDACPLIS DCTSE.C;  14  =2 4.LD RN IOATOCEL RCTSE.C;  12  =1 4.LD R1 1= .3D3RL 10  =  2 3.LD R7  =  1 3.LD R6  = 6 2.LD R5  = 5 2.LD R4  = 4 2.LD RC PE SERADLO;   3  = .3D2RL NKLIN IENIV GAS;   2  = .2D2RL DSANMMCOD RL;   1  = RTS  MNEMONICS CLASS4: .WORD  MAIN30-BEGO05+BEGOVR  ; BRANCH MNEMONICS CLASS5: .WORD  MAIN3Q-BEGO05+BEGOVR  ; JSR  MNEMONICS CLASS6: .WORD  MAIN3A-BEGO05+BEGOVR  ; TRAP  MNEMONICS .PAGE PAL MAIN30:  ; CONDITIONAL BRANCH MNEMONIC PROCESSING  CLR  R0   ; R0 = 0  TRAP  EXPE3 ; CALL EXPRESSION, SEMICOLON     ; MINIMAL TERMINATOR  BGT  MAIN32  ; N ; BUFFER CONTAIN ANYTHING?  BGT  EBBUF2  ; YES, OUTPUT THE BUFFER  BR  EBBUF3  ; INITIALIZE THE BUFFER EBBUF0: NEGB  @R6   ; NEGATE STACKED OBJECT DATA     ; SIZE VALUE, USE THIS AS     ; THE ITERATION INDEX. EBBUF1:  TSTB  RLDFLG  BEQ  EBBUFA  TSTB  @R6  BLT  EBBUF5  BR  EBBUFB EBBUFA: TSTB  @R6   ; IS INDEX STILL NEGATIVE ?  BGE  EBBUF4  ; NOPE, PROCESSING COMPLETED EBBUFB:  CM  ".  ,$΋4΋/%*W \  \a,$%&:w.%r*tt*t"&t!,$t,%N@X{ td,$, ` &e&f3 fY,%&`&ŝ>aw8el  lS,@%U`@wz,.1D2RL TOR FEREE ESTH;   4  = MDDCRL 3  = IRTDTX 001= SKTMDL 1  =NELINGLO 40 3  = S7LASC 00 3  = S6LASC 40 2  = S5LASC 00 2  = S4LASC 40 1  = S3LASC 00 1  = S2LASC 40  =  1 ASCL S0  =  0 ASCL SB TAL TAONIZOR HIISC A;  1 1  = AB TD EEEFIN LIISC A;  2 01  =  F LN URET-RGEIARRCAI CIAS;   15 0  = CR EDFERMFOI CIAS;   14 0  = FF E.IL FUSUOIGNTCO;   E ATOCLL ATOE IM TLDUI;B     ATM OO RGHOUENT NO;  0 64=1ON-VOID EXPRESSION FOUND     ; VOID EXPRESSION ENCOUNTERED MAIN31: INCB  AERROR-O05  ; SET ADDRESSING ERROR MOVB #-1,@R4  BR  MAIN3H MAIN32:  TSTB  RSLMOD-O05  ; ENSURES  BEQ  MAINBR  ; THAT ILLEGAL  BLT  MAIN31  ; BRANCHING DOES NOT  BR  MAIN33  ; TAKE PLACE. MAINBR:  TSTB  SECMOD-O05  ;  BNE  MAIN31      ; OF ASSEMBLY LOC. COUNTER MAIN33: SUB  @USERPC-O05,@R4 ; RESULT=RESP  #52,RLDCNT    ;IF RLDBUF IS FULL THEN OUTPUT  BLE  EBBUF2  CMP  R1,#MAXBBA-10  ; IS THE BINARY BUFFER FULL ?  BHIS  EBBUF2  TSTB  RLDFLG  BNE  EBBUF4  BR  EBBUF5    ; OUTPUT THE BINARY BUFFER EBBUF2: TRAP  CHECKSUM ; CALL CHECKSUM FINALIZATION     ; IS THIS THE BO PASS ?  JMP  EBBUF3  ; NOPE    ; SERVICE THE BINARY OUTPUT REQUEST  CMP  #10,BINBUF+10  BGE  EBBUFF  ; YES, AVOID OUTd%&JՀ.%H`ftt*2ftt$*(2W,%0d F*5;0 d*,%P KKceb',%8a7IDb ɒ &`eR9ER ;) RSROER" "F (ESOD CGESAES MORRR;E ANTR .UTNP IONR ROER; E ICEV DORN RA.TT PUUT;O   ONR ROERE ICEV DORD EO;7 20 2 =R8ER NGSIIS MLEFIT PUIN;6 20 2 =R7ER ESIL FUTNP INYMAO TO;5 20 2 =R6ER ESIL FUTTPOUY AN MOO;T 0422= 5 RR ES UEAL VCHITSWY AN MOO;T   UEAL VCHITSWL GALEIL; S HETCWI SNYMAO TO; H TCWI SALEGLL;I 0322= 4 RR EE ITWR .OND EOT PUUT;O 0222= 3 RR ES ALONTIDION CEDSTNEY AN MOO;T 0122= 2 RR ES T'ECCS .NYMAO TO;0 20 2 =R1ER ;) RSROER" "S (ESOD CGESAES MORRR;E NDMAULT-USER'S PC.  SUB  #2,@R4  ; RESULT = RESULT-2  ASR  @R4   ; SHIFT RESULT RIGHT 1-BIT  BCS  MAIN31  ; ADDRESSING ERROR IF ODD  MOVB  @R4,R0  ; PROPAGATE BYTES SIGN IN R0  CMP  @R4,R0  ; RESULT = R0 ?  BNE  MAIN31  ; NOPE, ADDRESSING ERROR  BR  MAIN3H  ; FINAL COMAND PROCESSING .PAGE PAL MAINC0:  ; CONDITION CODE OPERATES, WAIT, HALT, RTI PUT MOV #BINBUF,-(R6) MOV #BOLB,-(R6) ;OUTPUT BINARY BUFFER EMT WRCMD MOV #TRLBUF,-(R6) MOV #BOLB,-(R6) EMT WRCMD MOV #BOLB,-(R6) ;WAIT FOR COMPLETION EMT WTCMD  TRAP  EOMCHK EBBUFF:  CMP  #2,RLDCNT  BGE  EBBUF3  TRAP  OUTBIN EBBUF3:  MOV  R5,R0  TRAP  BBINIT ; CALL BINARY BUFFER INITIALIZATION  TSTB  BINOUT  ; GENERATE THE EOT ?  BEQ  EBBUF7 EBBUFC:  TSTB  RLDFLG  BNE  EBBUF4  BR  EBBUFA EBBUF7: OM CSEEAEL;R  7= LS RD ANMMCOE ETEL;D 21 =T DL NDMAOM CSELO;C 17 =S CL NDMAOM CENOP;6 1= PN OD ANMMCOE IZALTINI I ;   6  = MDNC ID ANMMCOE ITWR;   2  =  D CMWR NDMAOM CITWA;   1  =  D CMWT NDMAOM CADRE;   4  =  D CMRD 27 2  = LGTFRS 6  = NDJEOB 0020  =  R DIYM S2  =  D ENSD G0 40 1  = MDNCTR 50 4  = LGCFCS 10 4  = LGCFAS 1  = MDDCGS 61 3  = SZHFST DEMOT PUUT ORYNABI;   3  =  E ODOM BE   ;   SINGULAR PROCESSING  CMPB  SAVTERM-O05,#-5 ; TERMINATOR SEMICOLON ?  BEQ  MAIN3W  ; YES, EXIT  CMPB  SAVTERM-O05,#-4 ; TERMINATOR CAR-RET?  BEQ  MAIN3W  ; YES, EXIT  INCB  QERROR-O05  ; NO, SET 'Q' ERROR  BR  MAIN3W  ; SET SIZE = 1 .PAGE PAL MAIN3A:  ; TRAP MNEMONIC PROCESSING  CLR  R0   ; R0 = 0  TRAP  EXPE3 ; CALL E  TRAP  EOMCHK EBBUF4: TST  (R6)+  ; MAINTAIN THE STACK POINTER  TRAP  POPREG ; CALL SET REGISTERS AND RETURN EBBUF5:  INC  @R5 EBBUF8:   ; BUFFER ONE OBJECT DATA BYTE  INC  @R2   ; INCREMENT BLOCKS BYTE COUNT     ; LOCATION COUNTER  INCB  @R6   ; INCREMENT THE STACKED SIZE  MOVB  @R4,(R1)+  ; BUFFER THE OBJECT DATA BYTE  MOVB  (R4)+,-(R6)  ; ADD THE OBJECT DATA BYTE TO  ADD  (R6)+,@R3  ; TH=2 ; SPUN * ) =4OT(NUSATSTK AS TALEGLL I=1 ; * EDORON HSTUEEQ R=0 ; * : USATSTD NEURET RHE TIS RRUE ; * K.AS T ; D*UEUE QTYORRI PSTHEIG HHE TTOL RONTCOS AS P=1 ; * R.LEAL CHE TTON URET R=0 ; * D:PNNS UOMFRN URETOD MUTNP ICEURSO;   0  =  E ODIM S4 62 7  = S2AB 017412  =  1 BS A0  = L2RE 0  = L1RE S.SEAS PNTUEEQBSSUN I;    E BLLAAIAVS IRECOE RE F;    F OLL A. 1SSPAG INUR D;    K ACSTF OZESIM MUXIMA;   0.20  =  Z SITK SK AS MLEFIF--OND E ;  00 1  = OF EE OD MUTTPOUD TEIS L ;   0  = DEMOLO ETFSOFS S'TUTA SUTTPOUD TEIS L ;  15 -  = ATSTLO AGFLL BALO G ;  00 1  = LGBFGL AGFLE BLTACALORE;   0 4XPRESSION, ; MINIMAL TERMINATOR  TST  REGTYPE-O05  ; EXPRESSION TYPED REGISTER ?  BEQ  MAIN3C  ; NOPE  INCB  RERROR-O05  ; YES, SET REGISTER ERROR  CLR  @R4   ; RESULT = 0 MAIN3C:  TSTB  RSLMOD-O05  BEQ  MAINCA CMPB #-1,RSLMOD-O05  BEQ  MAINCB  ; .GLOBL  INCB  AERROR-O05 MAINCA: MOVB  RESULT+1-O05,TERROR-O05 ; RESULT'S HIGH     ; ORDER BYTE     ; SETS TRUNCATION ERROR  BR  MAIN3H  ; E BLOCKS CHECKSUM  BR  EBBUF1  ; CONTINUE ENTERING PROCESS .PAGE PAL ;RLDINT ;THIS SUBR INITIALIZES THE RLD BUFFER HEADER SUBR32:  TRAP  SAVREG  MOV  #RLDBUF,R1  MOV  #RLDBC,(R1)+  ;MAX BYTE CNT  MOV  #1,(R1)+  ;BIN FORMAT  MOV  #2,(R1)+  MOV  DIRCMD,(R1)+  TRAP  POPREG .PAGE PAL ;RLD FILL ;RLDFIL ;TH RHE TLSRONTCON TRUR ; * EDEUQUREE BTOK AS THE TOF# K AS THE TISK ASUT ; * REHE W ; * ; * ) ANTROR(F R)ER,URNRT,USKTA(UNDSPUN LLCA. 2) ; * ; * RRUE+,P)(S V MO ; *  = LGLFRE 3IT BG,LA FVETIECIR DLYMBSEAS;   0 1  = IRMDAS 3IT BG,LA FEDINEF D ;  10  =  G FLEF D. TEBYT ECCS .IN, AGFLD NEFIDEE PLTIUL M ;  77 3  = AGFLMD D.NEFIDEREL BOYM SNTNEMAER P ;   2  = F DERE 1IT BG,LA FELAB L ;   2  = LGBFLA 0IT BG,LA FERSTGIRE;   1  =  G FLEG R0 T BI, AGFLE BLNA ETEBY;   1  =  G FLYT BS ONTINIFIDET BIG LA FLEAB TOLMBSY;    A @#O TEDRCFOA F I-0ON N;  0 TEBY.: BSCAFR BUILD THE COMAND WORD MAINCB:  TRAP  RLDBYT  ; GLOBAL ADDITIVE RELOCATION  BR  MAINCA  ; OBJECT CODE 5 .PAGE PAL MAIN3F:  ; RTS MNEMONIC PROCESSING  CLR  R0   ; R0 = 0  TRAP  EXPE3 ; CALL EXPRESSION, ; MINIMAL RETURN  BGT  MAIN3G  ; NON-VOID EXPRESSION EXITED  INCB  QERROR-O05  ; QUESTIONABLE SYNTAX MAIN3G: TRAP  RFORCE ; CALL REGISTER FORCE MAIN3H: BISB  @IS SUBR PUTS THE RLD DIRECTIVE INTO THE RLD BUFFER.IT IS CALLED ;BY THE APPROPRIATE ADDRESSING MODE HANDLER.THE CALLING REGISTERS ;ARE SAVED AND DULY RELEASED.THE REG MUST BE INITIALIZED AS FOLLOWS: ;CONTENTS OF R0 =RELREF/RLD COMMAND ; R1=GLB SYM OR CNSTNT ; R2 = '' ; R3 =CNSTNT ; R4 =COUNT OF NO. OF BYTES ABOVE ; ; SUBR33:  TRAP  SAVREG  MOVB  RLDCNT,R5  ADD  R4,R5  MOVB  R5,RLDCNT  SUB  R4,R5  ADD  #RLSTRT,R5  NDSPUN T EM ; * ) SP-(N,TRUR V MO ; * ) LYMBSEAS ( ) SP-(K,ASUT V MO. 1) ; * ; * S: INETIOU RISTHO TGEKAIN LHE T E:AGUS ; * ; SPUN *. ONSIENSPSUS ITT ASKTAE THF OELEV LHE TASE AM SHE T ; SPUN *ISD SEORATICND IERMBNUL MACIDE;   0  E YT.B M:NUEC D0  E YT.B 0  E YT.B 0  E YT.B 0  E YT.B 0  E YT.B Y ARNDOU BENEVE BSTMUF BUTB;   0  E YT.B R FEUF BRYNABIY ARORMPTE;   F:BUTB ENEV .  ;0 TEBY. 0 TEBY.: CTPTCI 0D OR.W  N//I 50AD.R  CKLO BLEFI;/ /D 50AD.R  UTNP INDMAOM;C M/CO/0 D5RA.: FBCI ADRER FON PE;O 4D OR.W  0D OR.W  ;0 TEBY. 0 TEBY.: CTPTSL 0D OR.W  M/SY/0 D5RA. / AM/N 50AD.R  CKLO BLEFIT R4,@R6  ; SET THE REGISTER FIELD     ; WITHIN THE COMAND WORD  BR  MAIN3W  ; COMPLETE COMAND PROCESSING .PAGE PAL MAINC1:  ; UNARY MNEMONICS PROCESSED  TRAP  SYNTAX ; CALL THE SYNTAX ANALYZER  BEQ  MAIN3V  ; ONE FIELD ENCOUNTERED MAIN3L: INCB  QERROR-O05  ; QUESTIONABLE SYNTAX  MOV  #37,@R5  ; INDIRECT IMMEDIATE MODE  MOVB  #2,@R3  ; MAXIMIZE  MOV  R0,(R5)+  ;FILL IN THE  SUB  #2,R4  BEQ  RLEX  MOV  R1,(R5)+  ;RLD BUFFER  SUB  #2,R4  BEQ  RLEX  MOV  R2,(R5)+  ;CHECK  SUB  #2,R4  BEQ  RLEX  ;IF SO RETURN  MOV  R3,(R5)+  ;TO RLEX:  TRAP  POPREG  ;THE CALLING ADDR. .PAGE PAL   ; SUBROUTINE OUTPUT END-OF-MEDIA CHECK ;EOMCHK: SUBR3B: BITB  #EOF,BINBUF+3  BEQ  EOMCH1  MO UELEV LTYRIIOPRE TH E.EUQUY ITORRI P AINK AS T ; SPUN *EDNDPEUS SLYRITAUNOL V ACELA PTOD SE UISE INUTROS HI TE:OSRPPU ; * ; * UEUE QTYRIIOPRE ARTWOF S ; * AINK AS TEDNDPEUS S ACELA P -NDSPUN: ONTICAFITIENIDM RAOGPR ; * ; * D N P S N U PUUT OBL TYM;S L/FI/0 D5RA.: FBSL TERI WOR FENOP;2 RDWO. 0 RDWO. ; 0E YT.B  0E YT.B T:TCOP L0 RDWO. / ST/L 50AD.R  M/NA/0 D5RA. K OCBLE IL FUTTPOUG INSTLI;/ IL/F 50AD.R B:OF LE ITWRR FON PE;O 2D OR.W  0D OR.W  ;0 TEBY. 0 TEBY.: CTPTBO 0D OR.W  N/BI/0 D5RA. / AM/N 50AD.R  CKLO BLEFIT OUN BI;/ IL/F 50AD.R B:OF BE ITWRR FON PE;O 2D OR.W  0D OR.W  ;0 TEBY. 0 TEBY.: O2PRSI 0D OR.W  L/PA/0 D5RA. / AM/N 50AD.R  L/FI/0 D5RA.: SIZE TO 2 WORDS  BR  MAIN3U  ; CLEAR THE NEXT OBJECT WORD     ; COMPLETE CONSTRUCTING     ; THE COMAND WORD .PAGE PAL MAIN3Q:  ; JSR MNEMONIC PROCESSING  CLR  R0  TRAP  EXPE2  BGT  MAIN3R  INCB  QERROR-O05 MAIN3R: TRAP  RFORCE  SWAB  @R4   ; SWAP RESULT'S BYTES  ASR  @R4  ASR  @R4  BIS  @R4,@R6  CMPB  #',,@CURBYTE-O05  BNE  MV  BINBUF+2,@R6 ;EOD ANNOUNCEMENT  JMP  ERRO3 EOMCH1:  RTS  R7 .PAGE PAL ;RLDBYT THIS HANDLES BYT RLD CMDS ; ; ; SUBR37:  TRAP  SAVREG  MOV  #RLD2.5,RLDIR  MOV  #2,R4  ;FILED COUNT  TRAP  RELREF  MOV  GLBSY1,R1  MOV  GLBSY2,R2  MOV  RESULT,R3  BISB  #200,R0  ;BYTE OPERAND  MOV  #10,R4  TRAP  RLDFIL  INCB  RLDFLG  TRAP  POPREG .PAGE ; **********************************************************************;* E AG.P SKFT . ERUSO TRNTURE; 00KEFT BR SKFT R BEUM NSKTAL GALEIL; R5 C IN: 10KEFT SKFT S TUTA SSKTAL GALEIL; R5 C IN: 20KEFT SKFT K.AS TVETIAC; R5 C IN: 30KEFT SKFT ; SKFT B2IF SD EA ROR FENOP; 4D OR.W  0D OR.W  ;0 TEBY. 0 TEBY.: O1PRSI 0D OR.W  L/PA/0 D5RA. / AM/N 50AD.R  CKLO BLEFIN IRC;S L/FI/0 D5RA.: B1IF SD EA ROR FENOP;4 RDWO. 0 RDWO. S CKLO BLEFI;N VE.E  ;; 0D OR.W E:ORST TR TOCADIING INYP TERSTGIRE;0 RDWO.: YPGTRE RDWOE LUVAS OT DOFR DD;A 0D OR.W C:RPSE U0 RDWO.: SSPAST PCN IOCTSEE UTOLBS;A 0D OR.W C:SPAB P//L 50AD.R  6D OR.W  D/SL/0 D5RA. P L =LTAUEF;D 0D OR.W B:LL SK OCBLK IN LNGTIIS LBL TAIN3L  TRAP  ITEM  BLE  MAINC1  INCB  ITEMIN-O05  BR  MAINC1 .PAGE PAL MAINC2:  ; BINARY MNEMONICS PROCESSED  TRAP  SYNTAX ; CALL SYNTAX ANALYZER  BGT  MAIN3V  ; TWO FIELDS ENCOUNTERED     ; NOT TWO FIELDS FOUND  INCB  QERROR-O05  ; QUESTIONABLE SYNTAX  MOV  #2727,@R5  ; CONSTRUCT DEFAULT COMMAND     ; USE TWO IMMEDIATE MODES  MOVB   PAL ;OUTBIN THIS SUBR OUTPUTS ON THE BINARY DEVICE ; THE CONTENTS OF THE RLD BUF ;; ; ; SUBR36: MOV #RLDBUF,-(R6) ;OUTPUT RLD BUFFER MOV #BOLB,-(R6) EMT WRCMD ; ; MOV #BOLB,-(R6) ;WAIT FOR COMPLETION EMT WTCMD  RTS  R7 .PAGE PAL   ; SUBROUTINE BINARY BUFFER INITIALIZATION    ; INPUT R0 = 0, SIMPLY SET-UP    ; OUTPUT SET-UP S ONTIDION CORRR EOR FREHE; SKFT ; SKFT RNTURE; PC S RT SKFT C ND.E SKFT ; R0+,P)(S V MO SKFT ; R1+,P)(S V MO SKFT ; R2+,P)(S V MOYM;S 0D OR.W  ;; N.AI.M;  T ULFADER OLEIT.TM RO;F 0D OR.W B:LEIT TE ULOD MCTJEOBF OLEIT;T 0D OR.W A:LEIT TN IOCTRUSTON CERMBNUL MACIDE;0 RDWO.: 10SEBA 0D OR.W S:ASOP BN IOCTRUSTON CERMBNUL TAOC;0 RDWO.: 08SEBA P//P 50AD.R  6D OR.W  D/BO/0 D5RA. P HS= T ULFADE;0 RDWO.: LBBO CKLO BNKLIT PUUT ORYNABI;0 RDWO. ; ;0 RDWO .: LNSTLA NELIT INPRT N'DO= 1 , NELIT ENRRCUT INPR= 0 ;0 D OR.WY:KESTLI LYMBSEASN-NOS ESPRUP S = 1L,UAUSS ASTLI= 0 ;0 RDWO .: ON##4,@R3  ; SIZE = 4  CLR  TBBUF+4-O05  ; TBBUF(4,5) = 0 MAIN3U: CLR  TBBUF+2-O05  ; TBBUF(2,3) = 0 MAIN3V: BIS  @R5,@R6  ; PLACE THE ADDRESSING BITS     ; INTO THE COMAND WORD MAIN3W: INCB  @R3   ; SIZE = SIZE+2  INCB  @R3 MAIN3X: MOV  (R6)+,TBBUF-O05 ; TBBUF(0) = COMMAND WORD JMP EXIT-O05  ; EXIT THE MNEMONIC PROCESSOR .PAGE PAL EOFFLG:  $AND BINBUF ZEROED ;BBINIT: SUBR00: MOV  USERPC,R5  ; R5 = THE ADDRESS OF THE     ; ASSEMBLY LOCATION COUNTER  MOV  #BOCSUM,R3  ; R3 = THE ADDRESS OF THE     ; BINARY OUTPUT'S CHECKSUM  MOV  #BINBUF+10,R2 ; R2 = THE ADDRESS OF THE     ; BINARY BLOCKS BYTE COUNT  MOV  #BINBUF+6,R1 ; R1 = THE ADDRESS OF THE     ; BUFFERS FIRST DATA BYTE  MOV  #MAXBBA,-(R6) ; STACK THE BINARY BUFFERS     SKFT ; R3+,P)(S V MO SKFT ; R4+,P)(S V MO SKFT ; R5+,P)(S V MO SKFT S ERSTGIREL RANEGEE ORSTRE; VESARG Z FN.I SKFT USATSTR ROERT SE; ) SP2(R-ER,FR5 V MO SKFT TSUPRRTEINW LOAL; PS@#+,P)(S VBMO SKFT T INPOY STLI GEPAR PES NELIR BEUM NUMIMAX;M 70 RDWO:.ESINXLMA TEDAUPR FOR BEUM NNELIR LEMBSEAS;0 RDWO . O:ENIN L) ALCT(OR TEUNCOE AG PVETILAMUCU;0 RDWO.: NTGCPA S)NELI. 52 (GEPAE ON;  O ULOD M),ALCT(OR TEUNCOE IN;L 0D OR.W G:INAG PE LUVAE IVATITNTUA Q'SEMIT;0 RDWO:.TYTIANQU 0D OR.W S:ASOP LR TOLAMUCUACN IOSSREXP;E 0D OR.W T:ULES R/ LP/0 D5RA. 6 RDWO. / OD/L 50AD.R  LP= T ULFADE;0 RDWO.: LBLO CKLO BNKLIT PUUT ONGTIIS;L 0D OR.W  ;; S.PETAF OERMBNU;0 RDWO.: P2'; END-OF-FILE OR END-OF-MEDIA FLAGS PROCESSED ;IS THIS THE EOD OF THE 1ST ;DATA SET OF TWO DATA SETS? TSTB SICNT-O05 ;NON 0 INDICATES TWO DATA SETS BEQ EOF1  ;ONLY ONE DATA SET CMP #SILB2,SILB-O05 BEQ EOF1  ;ALREADY ON 2ND DEC SITAPE-O05 ;LAST TAPE BNE EOF4  ;NO MOV SILB-O05,-(R6) ;CLOSE EMT CLS TSTB PAPASS-O05 BNE EOF2 CMPB MAXPASS-O05,PASS-O05 ;NOT PARAMETER FILE. BNE EOF3 ;PARAMETER FILE EOF2: MOV SILB-O05,-(R6) ;RELEASE DATA SET. ( ; MAXIMUM ADDRESS  TST  R0   ; SETUP ONLY OR BUFFER     ; INITIALIZATION ALSO ?  BEQ  BBIN01  ; SETUP ONLY  MOV  #RLDCMD,DIRCMD  TRAP  RLDINT    ; BINARY BUFFER INITIALIZATION  MOV  #BINBUF,R0  ; R0 = THE ADDRESS OF THE     ; BINARY BUFFERS HEADER  MOV  #BOMBC,(R0)+ ; SET THE MAX. BYTE COUNT  MOV  #BOMODE,(R0)+ ; SET STATUS AND MODE BYTES  MOV  #1,(R0)+  ; CURRENT BYTE COUNT = 1 TRENR ROER; =. 00KEFT SKFT T.ENSCIEQUO TUSATSTS SKTAT SE; ) R0T(TATS RBCL SKFT P. USHNIFIO TREHE; =. 00KDFT SKFT C ND.E SKFT S PTRUERNT IUT OCKLO; S #P,@40#3 VBMO SKFT ERSTGIRER ROERT SERE; R5 R CL SKFT R BEUM NSKTAT GE; R0+,P)(S V MO TASI ET STADAT PUIN; 0D OR.W B:IF ST ENRRCUO TRSTEINPO; 0D OR.W B:IL S/ DF/0 D5RA. 4 RDWO. / I2/S 50AD.R  CKLO BNKLI; 0D OR.W 2:LBSI UTNP IEMSTSYD ONEC S;0 RDWO. ; ;K ACSTE OVABS ESDRADT 1S;0 RDWO.: OTKBST ST UOFP TO;0 RDWO.: OPRTUS LEAB TCTSE.CF OOP;T 0D OR.W P:TOON C. NE OLEFIS PETAF OERMBNU;0 RDWO.: P1TASI LEFIR TEMERAPAS TECADIIN0 N-NO; 0D OR.W S:ASAP PE IL FNTREUR CESAP TOFR BEUM;N 0D OR.W E:APIT S/ DF/0 D5RA. 7 RDWO. / I1/S 50AD.R + EMT RLS EOF3: MOV #SILB2,SILB-O05 ;SWITCH TO 2ND MOV #SIFB2,SIFB-O05 ;DATA SET. MOV SITAP2-O05,SITAPE-O05 ;TAPE COUNT CMPB #1,PASS-O05 ;OPEN ALREADY BNE EOF5  ;DONE FOR 1ST PASS JMP SETP4-O05 EOF1: DEC SITAPE-O05 ;LAST TAPE BNE EOF4  ;NO ;SIMULATE .END INC ERRSUM-O05 ;DECLARE AS ERROR MOV #1,JMPADR-O05 ;FOR TRANSFER ADDR. CLRB BINOUT-O05 ;ON BINARY. TRAP EBBUF JMP SIMEND-O05 EOF4: MOV SILB-O05,-(R6) ;CLOSE EMT CLS EOF5: JMP SET, MOV  #1,(R0)+  ; FIRST DATA WORD = 1  MOV  #10,(R0)+  ; BLOCKS BYTE COUNT = 6  MOV  #TXTDIR,(R0)+  MOV  @R5,(R0)+  ; THIRD DATA WORD =     ; BLOCKS LOAD ADDRESS BBIN00: CLRB  (R0)+  ; ZERO THE BINARY BUFFER  CMP  R0,@R6  ; IS THE BUFFER CLEARED ?  BLT  BBIN00  ; NOPE, CONTINUE CLEARING  MOVB  1(R5),@R3  ; CHECKSUM INITIALIZATION  ADD  @R5,@R3  ; ADD THE LOAD ADDRESS BYTES  ADD  #4, SKFT M PO RLLCA; Y VLQO,DPC R JS SKFT ERMBNUK AS TSHPU; P)(S,-R0 V MO SKFT R TELAR FOK ACSTN OERMBNUK AS TVESA; P)(S,-R0 V MO SKFT TSUPRRTEINW LOAL; S #P,@P)(S VBMO SKFT . UEAL V'SOMRPO TUSATSTT SE; ) R0T(TATS.,#8 VBMO SKFT ; AYRLOV Z FN.I SKFT OMRPL AL CTOY NL O 0D OR.W 1:LBSI CKLO BNKLIT PUINM TEYS;S 0D OR.W  ;; B//K 50AD.R  1D OR.W  D/CO/0 D5RA. K OCBLK IN;L 0D OR.W B:OL CT PUUT ONDMAOM;C 0D OR.W  ;; MENAL CASIHY;P     B//K 50AD.R  EDFICIPE SCEVIDE/ # ITUN;    1 RDWO. E AM NALICOGL;     D/CI/0 D5RA. ) ITIN .ON (ERNTOI PDBD  K OCBLK IN;L 0D OR.W B:IL CR FEUF BNO, RNTURER ROER   UTNP INDMAOM;C 0D OR.W  ENEV. ; KSOCBLK INL; ;; S.LEFIT PUIN2 S TECADIIN0 N NO;   0E YT.B T:CNSI 0/P0-O05 .IFNDF NOSEG ENDO05: SIZO05=ENDO05-BEGO05 ; .ENDC .ENDC .PAGE PAL .IFNDF NOSEG .CSECT ;BEGINNING OF OVERLAY AREA ;THE SIZE OF THE OVERLAY AREA IS DETERMINED ;BY THE SYMBOL "OVRSIZ" ; BEGOVR: ;THE BEGINNING REGISTERS OF EACH ;OVERLAY CONTAIN JMP'S TO THE ;ENTRY POINTS OF THE OVERLAY ; PAL ENTRY1=. ENTRY2=.+4 ENTRY3=.+10 ENTRY4=.+10@R3 BBIN01: ADD  @R2,R1  ; R1 = THE ADDRESS OF THE     ; FIRST AVAILABLE BUFFER BYTE  MOV  (R6)+,R0  ; R0 = THE MAXIMUM BINARY     ; BUFFERS ADDRESS  RTS  R7  ; RETURN .PAGE PAL ;RELREF THIS SUBROUTINE CALCULATES THEVALUE OF THE REL REF FROM ;THE BASE OF THE TEXT BLOCK I.E. TEXT DIR IS 0.R4 IS EXPECTED TO ;CONTAIN THE FILED CNT,R0 THE CMND DIR AND REL REF. SUBR34:  MOVB  REHE; =. 00KCFT SKFT E OM HGO; 00KDFT BR SKFT D.REEACLE ARR TEINPOK ACSTE THD AN; 1)(RCKTATS R CL SKFT ELEV LPU CNTREUR CR,METIT ENRRCU; ) R1T(USCP RBCL ; SKFT HE TS,SKTAT ENIDES RRECOR FO; 1)(RERIMCT R CL ; SKFT R TELAR METI CND ASTPU CEDNEY MA; SKFT C ND.E SK TEBY . R:ROER R:ERAX M0  E YT.B R:ROER UD CEENEREF ROLMBSYD NEFIDEUN;   U ' TEBY .  0 TEBY .: ORRRTE ORRR EONTICAUNTR;   T ' TEBY .  0 TEBY .: ORRRNE ORRR EERMBNU;   N ' TEBY .  0 TEBY .: ORRRIE ORRR EERCTRAHA CALEGLL I ;  'I  E YT.B 0  E YT.B R:ROER BR ROERG INNDOU B ;  'B  E YT.B 0  E YT.B R:ROER ML BELAD NEFIDEY PLTIUL M ;  'M  E YT.B 0  E YT.B R:ROER DD CEENEREF RONTINIFIDEE BLOU D ; 34 ENTRY5=.+20 ENTRY6=.+24 ENTRY7=.+30 ENTRY8=.+34 ENTRY9=.+40 .=.+OVRSIZ ;OVERLAY DEVICE LINK BLOCK ; .WORD 0  ;ERROR RETURN ADDRESS OVRLB: .WORD 0  ;LINK POINTER (DDB) .RAD50 /OVR/  ;LOGICAL DATA SET NAME .BYTE 1  ;DEVICE SPECIFIED .BYTE 0  ;UNIT NUMBER .RAD50 /DF/  ;DEVICE NAME ; ;OVERLAY DEVICE FILE BLOCK ; .WORD 0  ;ERROR RETURN ADDRESS .BYTE 13  ;HOW OPEN CODE (OPENC) .BYTE 0  ;ERROR RETURN CODE OVRFB: .RAD50 /PAL/  ;FILENAME AND 4BINCNT,R0  SUB  #6,R0  ADD  R4,R0  MOVB  R0,RELCNT  MOV  RLDIR,R0  RTS  R7 .PAGE PAL  ; SUBROUTINE CHECKSUM FINALIZATION    ; BINARY BLOCKS BYTE COUNT VALUE IS    ;  RESTRICTED TO BE AN UNSIGNED BYTE    ;  (8-BIT POSITIVE INTEGER) ;CHECKSUM: SUBR23: ADD  @R2,@R3  ; SUM THE BLOCKS BYTE COUNT     ; AND THE BLOCKS CHECKSUM  NEG  @R3   ; 2'S FT K OR WDOM PO RET LGO; 00KCFT ISBH SKFT K?AS TAYRLVE OANS HI TIS; INTMOV,#R0 PBCM SKFT . IST IIFE OM HGO; 00KEFT I BM SKFT L AL COMRPDQA R FOK ECCH; R0 T TS SKFT ; AYRLOV Z FN.I SKFTK.AS TEDNDPEUS S AOFE AR CKETAO TREHE; =. 00KBFT SKFT E)BLUAUE(Q 1TOD OR WADRETHT SE;  'D  E YT.B 0  E YT.B R:ROER RR ROERR TEISEG R ;  'R  E YT.B 0  E YT.B R:ROER AR ROERG INSSREDD A ;  'A  E YT.B 0  E YT.B R:ROER QX TAYN SLEABONTIESQU;   Q ' TEBY .  0 TEBY .: ORRRPE ORRR ESEHA P ;  'P  E YT.B 0  E YT.B R:ROER LW LORFVE OERFFBUE IN LUTNP I ;  'L  E YT.B ) TEBYH IG(HR TOCADIINR ROER;     ) TEBY OW(LR TEACARCHI CIAS;     : S IETREND OR WLENGSI;     E BLTAR 7EXTENSION .RAD50 /11R/  ;IN RADIX 50 .RAD50 /OVR/  ;NOTATION USERID: .WORD 0  ;USER ID CODE .BYTE 233  ;PROTECT CODE .BYTE 0 ; ;OVERLAY DEVICE INPUT TRAN BLOCK ; OVRTBI: .WORD 0  ;DEVICE BLOCK NUMBER .WORD BEGOVR  ;MEMORY START ADDRESS .WORD OVRWRD  ;WORD COUNT OVRIER: .WORD 4  ;FUNCTION (READ) .WORD 0  ;NUMBER OF WORDS NOT TRAN'D .PAGE PAL ;SUBROUTINE TO DIVIDE THE TOP WORD OF ;COMPLEMENT THE CHECKSUM  MOVB  @R3,@R1  ; BUFFER THE CHECKSUM  MOV  @R2,BINBUF+4 ; FINALIZE THE BINARY OUTPUT     ; HEADERS CURRENT BYTE COUNT  INC  BINBUF+4  ; COUNT THE CHECKSUM BYTE  CMPB  PASS,BOPASS  ; IS THIS THE BO PASS ?  BNE  CHECK0   ; NO  ADD  #4,@R6  ; YES, R5 = R5+2 CHECK0:  RTS  R7 ; RETURN .END START  ;END OF FILE #13 ) R1,(#1 V MO: 40KAFT SKFT Y.ARSSCENEF IT'AS'LT SERED AN; ) R2T(AS,LR4 V MO SKFT RDWOD EAHR TKSAS TUSIOEVPRO NT IRDWO; 40KAFT E BN SKFT D EAHR T'SSKTAS HI TOFS NTTEON CVEMO; ) R4,(1)(R V MO: 30KAFT SKFT D OR WADRETHT SEREO GENTH; 40KAFT BR SKFT STIR FTO; ) R2T(AS,LR2 D AD SKFT T INPOO TSTLAT SERE, SEELG INTHNO; ) R2T(AS,LSTIR#F V MO SKFT ROERY BLEMSS A ;  : ABRTER L PA E AG.P DCEN. R LEAL CTON URET;R  R7 TSR T ENUMRG ASTPAT ENEMCRIN; 6 @R2,#D AD 2:TRON C5 U HR T 1S.EG RRETOES;R  EGTRSE APTR 1:TRON CT OURREP JM  T.ES RHE TARLE;C 6)(R,-R8ER#V MO  ND ATEBYO NF;I  R6@B WAS W LOO NT IFOIN;6 @R7,37#C BI  TEBYS TUTA SSHPU;) R6-(R,IEVROV MO  ERSFANTRN OORRR;E R2NTCO EQB R IEVR,O000014#T BI  ERSFANTRN OORRR EOR FCKHE;C ONTILEMPCO;;THE STACK BY THE NEXT WORD. EXITS ;WITH THE QUOTIENT ON TOP OF THE ;STACK. THE QUOTIENT IS INCREMENTED BY ;ONE IF THERE IS A REMAINDER. ; CALLING SEQUENCE: ;  MOV DIVISOR,-(R6) ;  MOV DIVIDEND,-(R6) ;  JSR R7,DIVIDE ;  MOV (R6)+,QUOTIENT ;R0 IS DESTROYED DIVIDE: MOV #1,R0  ;QUOTIENT AT LEAST 1 DIVID1: SUB 4(R6),2(R6) ;SUBTRACT DIVISOR FROM DIVIDEND BLE DIVID2  ;DONE? INC R0  ;NO. BR DIVID1 DIVID2: MOV R0,4(R6) ;QUOTIENT MOV (R6)+,@R6 ;R7 RTS R7 C ND.E: 20KZFT SKFT E ON DDYEALR A -KSECCHD UNRO AMPJU; 30KZFT BR SKFT T. IEDNEI S AELEV LTYRIIOPRT GE; 2 ,RR4 VBMO SKFTOMRPM RO FITD EE N IAS. DD AERADHET GE; 1 ,RR3 V MO SKFT . ONY RRCA L.AL COMRPDQA T NO; 20KZFT L BP SKFT ; AYRLOV Z FN.I SKFT . ALEGLL I. =0R BEUM NSKTA; 10KEFT Q BE . EUQUE THN IISE LS ENGHIYTAN; 40KAFT E BN SKFT IFE SEN HE TT,RSFIT SERE S.YE; 2)(RSTIR,F1)(R V MO SKFT T.NOF ICHANBR E.EUQU; 30KAFT E BN SKFTE THN I 1O. NSKTAR TEAFT GHOU SHE TIS; 2)(RSTIR,FR3 P CM SKFT R ROER. NO; 20KEFT Q BE SKFT ? UEUE QHE TINL ILSTK AS TIS; 1 ,#1)(R P CM SKFT TSUPRRTEINT OUK OC LTOT SERE;  D CMWT MTE R FOT AI;W 6)(R,-LBVR#O OVM S ERSTGIREE ORSTRE; G REETSP RAT G LA FINW NET SE;1 @R0,0000#1 ISB: R4NTCO R3NTCO BR  AGFLN IARLE CS.YE;+ 2)(R0,0000#1 ICB ? ESRINT EREMO; 4 TRONCT BL  R32,#B SU 3:TRON C2 N*;3 ,R)+R2(V MO  ABNTRUE ATPD;U 10 MTE Y LAEROVE TH;) R6-(B,RLOV#V MO  INN RA.T;) R6-(I,TBVR#O OVM N IDYEALR AAYRLVE;O  R1NTCO LTB K OCBLN RA TUPT SE;I TBVR,OR1@V MO  RYNT EEDSTUEEQ ROFS ESDRAD; 1 ,RR2 DDA E BLTAF OSEBA;2 ,RABNTRU? .PAGE PAL ;THE FOLLOWING TABLE IN THE RESIDENT ;ASSEMBLER CONTAINS A ONE WORD ENTRY ;FOR EACH OF THE N OVERLAYS. THE ;1ST WORD OF THE TABLE CONTAINS N*2. ;AS NEW OVERLAYS ARE CREATED, ENTRIES ;MUST BE ADDED TO THE END OF THE TABLE. ;WHEN THE ASSEMBLER GETS CONTROL AT ;"STARTA", IT WILL PLACE THE STARTING ;PHYSICAL BLOCK NUMBER FOR EACH OVERLAY ;IN THE RESPECTIVE ENTRY. ;THE SIGN BIT (BIT 15) OF EACH ENTRY WILL ;INDICATE WHETHE SKFT C ND.E SKFT N)IG SEDNE- . ER VAYRLVE(O# SKTAT GE; R0),SPK(ASFT V MO SKFT ; AYRLOV Z FN.I SKFT C ND.E SKFT ) ONSIER VLYONE OR(CR BEUM NSKTAT GE; R0),SPK(ASFT SBBI SKFT ADLOE YT BOR FR0R EACL; R0 R CL SKFT S #P,@40#3 VBMO: 20KAFT SKFT . NDOU FOT NSKTA T.EF LNENO; 20KEFT BR SKFT . CKHE CGO, FTLEE OR MIF; 10KAFT E BN SKFT ADRETHE THN ISSREDD AXTNET GE; 3 ,R3)(R V MO SKFT 4 RINS ESDRADS HI TVESA; 4 ,RR3 V MO SKFT S.YE; 20KAFT Q BE SKFT ? EKSEE WSKTAE THS HI TIS; 3 ,RR1 P CM: 10KAFT SKFT #V MO  ETFSOFD OR WTOT USDJ;A  R1 SLA 1 RTOR BEUM NAYRLVE;O R1),R62(@1 OVM 5 U HR T 1RSTEISEG RVESA; G REAVSP RAT: 46BRSU L:TRON;C ;R LEAL CTON URET R. 4; NTDESIREW NOS IAYRLVE OCHHI W  ; CTLEEF RTOD TEDAUPS IABNTRU 3.  ;R FENSRA TNGRIDU  ;S ORRR EOR FDEMAS ICKHE C A. 2; T)AI.W, ANTR(.N I'DANTRS IIT 1.  ;: NTDESIRET NOS IAYRLVE OEDSTUEEQ RHE TIF ;; R.LEAL CHE TTOY ELATDIMEIMD NEURET RISL RONTCO ;, NTDESIREY ADREALS IAYRLVE OEDSTUEEQ RHE TIF ;; ERMBNUY LAERR OR NOT THE ASSOCIATED ;OVERLAY IS IN CORE: ; 1=RESIDENT ; 0=NOT RESIDENT ; RUNTAB: .WORD RUNEND-RUNTAB ;N*2 .WORD 0  ;OVERLAY #1 .WORD 0  ;OVERLAY #2 .WORD 0  ;OVERLAY #3 .WORD 0  ;OVERLAY #4 RUNEND: .WORD 0  ;OVERLAY #5 .PAGE PAL ;SUBROUTINE TO TRANSFER A REQUESTED ; OVERLAY FROM DISK TO THE OVERLAY AREA. ;CALLING SEQUENCE: ;  TRAP CONTRL  ;  .WORD N  ;WHERE N IS ;     ;THE OV