.TITLE PAL11R  ;VERSION 4A ; ;COPYRIGHT 1971, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. 01754 ;THIS SOURCE OF THE ASSEMBLER CAN BE ;ASSEMBLED INTO TWO UNIQUE VERSIONS: ;1. IF THE SYMBOL "NOSEG" IS DEFINED, THE ; RESULTING OBJECT MODULE IS THE FULL ; ASSEMBLER. ; ************************************* ;2. IF THE SYMBOL "NOSEG" IS NOT DEFINED, ; THE RESULTING PACKAGE IS AN ASSEMBLER ; THAT UTILIZES CORE OVERLAYS FROM DISK ; TO CONSERVE ON SYMBOL TABLE SPACE. ; ;THE OVERLArvrv(Ό4dz*rv q)~Vձ%Rѱ*v,h*z5 ** 2 =IT BENSER TORAPE O ;     *62*= T BIN EE SSSREDD A ;     *72*= T BIN EE SESESTHENAR P ;     H)IG(HE YT BERNTOU CESESTHENAR P ;     HE TOR FESLUVAE TH= 2 R ;     GEAN RONTIRATE ILDIE F ;  : 00NTSY RMTEAV SOFS ESDRAD= 3 R ; R3M,ERVTSA # OV M  PTRISCUB SUFBB THE T =R4;  4 ,R#2  V MO 0 = R TEUNCOD ELFI;  T CNLD F RBCL 0 = D ANOM C ;  R5 @ LR C  SSREDD ANDMACO= 5 R ; R5D,ANOM#C  SING  TRAP  PARSEP ; CALL PARENTHESES SEPARATOR  BGE  SYNT03  ; LEFT PARENTHESIS FOUND OR     ; A FIELD TERMINATOR  INCB  QERROR  ; RIGHT PARENTHESIS FOUND  BR  SYNT08  ; AVOID ACQUIRING THE     ; REGISTER EXPRESSION SYNT03:   ; ADDRESS SEEN SUPPORTING INDEX MODE  CLR  @R6   ; STACK A ZERO IF REG. ADDR. SYNT04: CLR  R1   ; IGNORE THE SAVED TERMINATOR  BISB  #ASEEN,R2  ; SET ADDRESS SEEN PERATING 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, DIGITAL EQUIPMENT CORP., ;   MAYNARD, MASSACHUSETTytp lB{҉*zl7 VfT{ĉfe*z7 wB!et77z0*{x E ! ! ! ! wDwB*${w.l7 jw, w|w7 -*H{&7 7 h-l 7 df/*l{5& wL B  E6*{ u .,  *{e "$"l*{"PA"TA  ĭ7*{"37 OV M  RSTEISEG RVESAL AL C ; G REAV S APTR 7:R0UB S: AXNTSY; TSBIT ENEMCRDET-ENEMCRIN;   0 03  =  C DENC IT BIT ENEMCRDEO-UT A ;  10 0  =C DETOAU IT BNTMERENC-ITOAU;   0 02  = NCOIUT AT BIN EE SORATEROP;   0 04  =  N EEPS OT BIN EE SSSREDD A ;  00 1  = ENSE AT BIN EE SESESTHENAR P ;  00 2  = ENSE PT BIG INSSREDD ARDFEDE;   0 1  = RDFEDE TSENNMIGSS AFLAG  TRAP  FLDEND ; DETERMINE FIELD TERMINATION  BLT  SYNT05  JMP  INDMDR  ; FIELD TERMINATED, SO     ; INDEX MODE ADDRESSING ;  .PAGE .EOT   ;END OF FILE #9 SYNT05:    ; PARENTHETICAL EXPRESSION PROCESSED  TRAP  PARSEP ; CALL PARENTHESES SEPARATOR  BNE  SYNT06  ; A PARENTHESIS WAS FOUND SYNT15: INCB  QERROR  ; THE FIELD HAS TERMINATED ;  BR  S ; STANDARD PROCESSOR WIDE REGISTER ASSIGNMENTS R0  =  %0 R1  =  %1 R2  =  %2 R3  =  %3 R4  =  %4 R5  =  %5 R6  =  %6 R7  =  %7 .CSECT .IFDF NOSEG OVRBLD=1   ;PORTIONS 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 V^l^ , |fff|^^L^B&F|^w^| NzH*f|Vĉ4dl҉4d PAL11R V004B | # *|7 7   *| e wv7 7 Õ z .K*| z 7& wD *} t X X B 7 l 7 @ *&}T * %O v   *J} 5   7 7 7 1CTREDIX TAYN S ;    RYMOMET ECIR D ;  67  =  7 DRIN TEIAEDMM I ;  27  =  7 CRIN AS DEMOD TEENEMPLIME ARTWOF S ;    EXND I ;  60  = DEMOND IT ENEMCRDEO-UT A ;  40  = DEMOEC DT ENEMCRINO-UT A ;  20  = DEMONC IR TEISEG R ;  00  = DEMOEG RS DEMOG INSSREDD AERUTMPCO;    ! T UI Q ID,UNFOE AR;     S LDIE FWO TANTHE OR MIF;     D UNFOS LDIE FWO T, 0 >  ;    NDOU FD ELFIE ON, 0 =IMMMDR  ; IMMEDIATE ADDRESSING  BR  SYNT0B  ; DETERMINE ADDRESSING SYNT06: BGT  SYNT07  ; LEFT PARENTHESIS FOUND  INCB  QERROR  ; RIGHT PARENTHESIS FOUND SYNT07:   ; CALL AUTO INC.;DEC. DETERMINATOR  ; OPEN SUBROUTINE AUTO INCREMENT;DECREMENT DETERMINATOR   ; THIS SUBROUTINE VERIFIES THAT THE SAVED   ; TERMINATOR CODE IS FOR EITHER A + OR A   ; - CHARACTER. IF SO, THEN VERIFY THAT THIS   ; IS THE SOLE ADDRESSING INDICATO BEGO05=0 BEGOVR=0 .ENDC ;***** OVERLAY PROCEDURES ***** ; ;THE NUMBER OF BYTES ALLOCATED FOR THE ;OVERLAY AREA OVRSIZ=2000  ;1024 DECIMAL BYTES ;THE NUMBER OF WORDS ALLOCATED FOR THE ;OVERLAY AREA OVRWRD=1000  ;512 DECIMAL WORDS ; ;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-1*n} & $   Hw%*}7    5 4*}  V 7  7l*}r  h  wFt*} # @ w,< դ*"~@z ( l   .F~w@  @  *n~D& 2 " . w  *~ JH w  @2 *~r, 2|   ;    NDOU FDSELFI NO 0,<  ;    S LTSURED DECON IOITNDCO  ;    D ANMMCOE THO TEDATOCLL AESYT BT PUUT O ;    NENO T PUIN;    . EDARPEAPS HAD ELFIS NTMEOM CHE TATTH ;   E UMSS AAY MNETIOU RNGLIAL CHE TG,INRNTURE ;   N PO U. DSELFIT ECBJ OEDTTMAOR FDR MTOS LDIE F ;   NGSIESDRADD DECOE RCOU SESATSLANTRE INUTROUB SISTH;   S SILYNA AAXNTSYE INUTROUB S ; R PRESENT.   ; THEN APPROPRIATELY SET THE OPERATOR SEEN   ; VARIABLE.    ; INPUT R1 CONTAINS THE EFFECTIVE    ;  TERMINATOR CODE    ; OUTPUT CONDITION CODED RESULTS    ;  ZERO, TERMINATOR NOT + OR -    ;  OTHERWISE, THE APPROPRIATE    ;  FLAGS HAVE BEEN SET AUTOID: MOV  #AUTOINC,-(R6) ; STACK AUTO-INCREMENT CODE  CMPB  R1,#TCCADD  ; IS R1 TERMINATOR A + ?  BEQ  AUTO0  ; YE1R ; ;THE 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 ; ;  *~bf *~p F    HH*"> < ~ @Xʵ Z*F. /  C!$@AF*j(CH׭ )NF  ~ *̕`XZ *    EHN* FN F   HN&*@ACBEH׭d )^*NF` X & B  g *B . 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  7 SRINBQ BE  LEAB TEDERRD OINR HEIG HOLMBSY; 0 #10,RT BI 6:SRIN B4 SRINBR B . LEAB TEDERRD OINR WELOL BOYM;S  R34,RV MO  R6NSBI LOB: R2NSBI R3NSBI BR  RYNT EOFS ESDRAD;X DEIN,HR4 OVM S  MOV  #AUTODEC,@R6 ; STACK AUTO-DECREMENT CODE  CMPB  R1,#TCCSUB  ; IS R1 TERMINATOR A - ?  BEQ  AUTO0  ; YES  CLR  (R6)+  ; RESTORE THE STACK POINTER     ; AND SET THE CONDITION CODES  BR  AUTO2 ; RETURN AUTO0:  BITB  #OPSEEN,R2  ; OPERATOR SEEN PREVIOUSLY ?  BEQ  AUTO1  ; NOPE  INCB  QERROR  ; YES, QUESTIONABLE SYNTAX  BICB  #INCDEC,R2  ; CLEAR BOTH EXISTING CODES AUTO1:  BIS! ;  .IFDF OVRBLD .IFNDF NOSEG .TITLE PALOB SYMTBB=.  ;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 "F   7G @& x*f)  8 ?! 5* ?  $ͭͭ*|f^ͭ FN~*Ҁ ^H L * ͭ 7 wͭ 4*b7"^w >< *>  V*ĉ&z*bw LLwP  END* &7e  *D! . NDOU FTECADIINO T-0ON;N  R0 NCI D ICTSE.CD ANS AGFL;S AGFL,TR4@V MO  OLMBSYF OUEAL;V TYTIANQU),R42(-V MO  ESCHAT MADRI TND;2  H.TCMAO ;N  R2NSBI NEB ) R12(),R44(-P CM  ESCHAT MADRI TST;1  H.TCMAO ;N  R2NSBI NEB H TCMAR FOT ES;T R1,@4)(R-6 MPC T SEFF O -SEBAE BLTA; 4 ,RR0 UBS 4 ,RR2 OVM N IOATAGOPPR;    N IG SNTVERE PND ADSOR W 4OFE PLTIUL MRESUAS; 0 ,R070010#C BI 1:SRIN BG INSTTEE NUTION;C  RNTURE; 7 RS RT  ESOD CONTIDION CET;S  R0 STT$B  #OPSEEN,R2  ; SET OPERATOR SEEN BIT  BISB  (R6)+,R2  ; SET APPROPRIATE CODE BIT AUTO2:  TSTB  RSLMOD  BEQ  AUTOX  MOVB  RSLMOD,RSL2MD  CMPB  #-15,SAVTERM  BEQ  AUTOY  INCB  AERROR AUTOY:  CLRB  RSLMOD AUTOX:    ; RETURN  TRAP  FLDEND ; DETERMINE FIELD TERMINATION  BGE  SYNT0B  ; THE FIELD HAS TERMINATED     ; ACTUAL MODE YET UNKNOWN  TRAP  NEXTERM ; CALL FOR THE NEXT TERMINATOR  CLR  % ;OVERLAY #1 .WORD BEGO02  ;OVERLAY #2 .WORD BEGO03  ;OVERLAY #3 .WORD 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  ;I&Bͽ%( w*΁w  `*www7&L*f"e  ͵ R*:͵%͵ɕ= C͵͵o*^@G**D`;*$ D!!e $͵@*G*ew(w^E*ʂ e8 fQ$H * R q   u.z v r 3:SRIN BS ESDRADY TRENE BLTAL BOYM;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 CONTI( 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     ; ACTUAL MODE YET UNKNOWN  BLT  SYNT09  ; RIGHT  BGT  SYNT18  ; LEFT  TRAP  RFORCE  BISB  R0,R2  BR  SYNT1)S DATA SET INIT'D BEQ STARTB  ;NO MOV #OVRLB,-(R6) ;YES -- RELEASE IT EMT RLS ; ;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 DE*bw R R*:bTa^Q m*^e      q*  V7|*& wi*ʃ wH Z7 # ERRORS * X@t R>*0 Dß>å U Nʐ *ï&}(Tïy @  *teN<DION CND AR0 1) ; : CHAT MNOF I;  ; ) 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 (SE,5 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  R0   ; R0 = 0  TRAP  EXPE2 ; CALL EXPRESSION EVALUATION    ; , ; -VICE STATUS MOV R1,-(R6) ;LINK BLOCK EMT 13 CMP (R6)+,(R6)+ ;CORRECT STACK.    ;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 .w * O +. &J*& J*~H~*;*5% |t PKH  *& `XEP 3*J)&˕ *n S,* ˕7 t7 nNSbwJ*#%l )9OTKBST2,RP CM  OTKBSTT USDJ ASOAL;+ 3)(R+,2)(R OVM: R4TEEN S.RDWO4 N OW;D  R36,RV MO  CKTA SVEMOK ACST; 6 ,RR4 UBS O NT IUN RLDOU WST;U  R26,RV MO  N.IOISLLCOO ;N  R1TEEN ISBH  CKTA STHWIN IOISLLCOR FOK ECCH;T BOTK,SR1 MPC . DSOR W 4BYR TEINPO; 1 ,RR4 UBS R TEISEG REEFRT 1SE ASREEC;D  R10,RV MO  SE UERAT LOR;F  R40,#1 OVM 0 ,ROPRTUS OVM . RSTEISEG RVESA; G REAVSP RAT: 06BRSU D.REUIEQ RNTMESTJUADE BLTAF IRYNTE: ERNT;E S.IETRENH OT BATD YEROSTDES IR0FB  #PSEEN,R2  ; WERE PARENTHESES SEEN ?  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  E ;.LOOK MOV (R6)+,@R3 ;STARTING BLOCK. CMP (R6)+,(R6)+ ;CORRECT STACK ;THE ONE 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 ; BG*ڈ6l҉h*w: X  VB7wT*"w LPQARDMBINTU,*FEEGxZ*jHx\MM*8fx*M&W4d&W*։4d&W &W N1*&Wz%p:*** PAGE XXXXX MM-DD-YY HH:MM; . DEMAS INTMESTJUADE BLTA ; L BOYM SNO. VEBO A3)P TEST PUUT;O  VEBO AASE AMST PUIN; Y LAVR OAPTR; . EXNDHIN I  ; S ESDRADE THT ANGTIARST ; D RETO SRYNT EOLMBSYW NE 3) ; P TOSR UTO) DSOR(W4 P-TOSR U) 2;  S.RDWO4 S RDWAWNDOD TEUSADP TOSR U  ;  TOX DEIN HOMFRS OLMBSYL AL 1) ; . DSOR WURFON OW DEDOV MISK ACST ; K ACSTF OOMTTBOH IT WDELIOLC;  LDOU WLEAB TOLMBSYD DEANXP EIF UTTPOU; S AGFL T  ;  LTSURE ; 3 M+SYMP T  ;  +1YMPSTM ; `wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww3333333333333333DDDDDDDADDB C4d4d}}K$Dwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww33333333333333338IIT #140000,OVRERR BEQ BLDR06 ;ERROR ON TRANSFER MOV OVRERR,-(R6) ;PUSH STATUS BYTE BIC #377,@R6 ;INTO LOW INFO BYTE SWAB @R6  ;AND CLEAR THE REST. MOV #ERR8,-(R6) ;ERROR CODE BLDR10: IOT EMT 60  ;RETURN TO MONITOR BLDR06: ADD R5,@R3  ;CHANGE BLOCK NUMBER    ;IN TRAN BLOCK FOR BR BLDR07  ;NEXT OVERLAY TRANSFER ; ;ALL OVERLAYS HAVE BEEN TRAN'D OUT. ; BLDR05: MOV R1,-(R6) ;RELEAJ ; INDEX MODE ;  .PAGE ;*** DIRECT MEMORY ADDRESSING *** 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)+  KB:SS:XX *N P!*r*yrv:ȋ6*Ɛ.ʑ32PX쒬7 z*܌7 7 7 N IRYNT ERDWO4 E TH 2) ; 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 ; E.INUTROG INLLCAT XI;E  R7 TSR S ERSTGIRET SE; G REETSP RAT G REOP POMFRN URET RRDCAIS;D  )+R6(T TS 5:R4UB S: EGPRPO ;. NETIOU RNGLIAL CITEXD AN;  RSTEISEG ROP PTOE INUTROUB S; N URET R ; MSE THE EMT RLS  ;DATA SET ; ;RETURN TO THE MONITOR EMT 60 ;***** OVERLAYS BEGIN HERE ***** ; ; OVERLAY #1 O01=BEGOVR-BEGO01  ;COMPUTE OFFSET FROM    ;RUN TIME OVERLAY AREA BEGO01: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVERLAY. ; JMP RCSI  ;ENTRY1 JMP SUBR43  ;ENTYR2 JMP RRSTRT  ;ENTRY3 .ENDC ; ; ; RCSI: MOV #COLB,-(R6) ;INIT COMMAND OUTPUT DEVICE MOV @R6,R2  ;#COLB EMT INCMDNMOVB  R4,VARLTH  TSTB  RSLMOD  BEQ  DIREC0  BLT  IMMEXT  MOVB  #RLD2.1,RLDIR ;INTERNAL RELOCATION (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 ADDREO7 7 R7 7 Tʌ*!& !w`Z׭*$|Lw@:w<7 7G,*H7B7774777;*l&P @w*6*ĕ Q$BB`@ K *wʥ e<222z*؍   C`ery*w w&& [* ֋wR*D    R5E ORSTRE;   5 R TS R  R4E ORSTRE;  4 ,R)+R6 ( OV M  R3E ORSTRE;  3 ,R)+R6 ( OV M  R2E ORSTRE;  2 ,R)+R6 ( OV M  R1E ORSTRE;  1 ,R)+R6 ( OV M  SSREDD ARNTUREE THS VESA5 R ; R5+,6)(R  V MO 6:R1UB S: EGTRSE ; R TEISEG RDEWI- R SOESOCPRE ILATOL V AIS0 R ;   RSTEISEG RET SNETIOUBRSU;  N URET R ; R7  S RT 5 RCKTA S ; 6)(R125, R OV M  SSREDD ARNTUREE THK ACST; 6)(R,-6)(R10  V MO 1 Q TSTB IDENT-O01 ;PRINT TITLE BEQ CSIOK2  ;ONCE ONLY. MOV #TITLBUF-BEGO01+BEGOVR,-(R6) ;PRINT TITLE MOV R2,-(R6) EMT WRCMD CSIOK2: MOV #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 INPURSSING *** DIRMD1: BISB  #INDR7,@R5  TST  (R4)+  MOVB  R4,VARLTH CMPB #-1,RSLMOD  BEQ  DIRECB ;.GLOBL 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-H8 ׭*h/H  h*V׭x ɵJ*ɵ-w*Ԏe / .w`-r-jq*  `fwp *DwwHwBw|w,w w*he<, Q$Q$Q$*Q$Q$w^Q$wwwjwxww7 * RCKTA S ; 6)(R,-R1  V MO 2 RCKTA S ; 6)(R,-R2  V MO 3 RCKTA S ; 6)(R,-R3  V MO 4 RCKTA S ; 6)(R,-R4  V MO 4:R1UB S: EGVRSA ; R TEISEG RDEWI- R SOESOCPRE ILATOL V AIS0 R ;   RSTEISEG RVESAE INUTROUB S ;  E AG.P ; RNTURED ANS ERSTGIRET SEL AL C ; G REOP P APTR G INCKPAE ATERITRE, PENO;  0 40OD M LE B  ?6 M+SYMP T >R5S I ; 6 M+SYMP#T5, R MP C  +3R5= 5 RUT BUFFER MOV #SIBUF2,R0 MOV R0,-(R6) MOV #SRCMAX,(R0)+ ;72(10) DATA BYTES. CLR (R0)+  ;FORMATTED ASCII ;READ COMMAND STRING MOV R1,-(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 SYNTACTICALVS,INIT RLD DIRECTIVE IMPR2:  MOV  @R6,R1 TRAP RELREF  MOV  #4,R4 TRAP RLDFIL  BR  IMPR1 DIRECC: MOVB #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,W@7cw*ԏn85 (E7&_*H*͟dׯ^`w. T?L^ >|*D b @ @*hfEwNB B*K&&$&`x* LL7 `m 7 *Ԑ ffff3 *.f&w^  7H* 7 b7 x7 x ; R53, # DD A  R4T ENEMCRIN;     D IATRT ANLTSURE= ) R4M(SYMP T ; )+R4,(R3  V MO 2:40OD MR TEACARCHT EX NSSCERO P ; 01D4MO  R B  LTSUREL IARTPAM+SU= M SU;  3 ,R)+R6 ( DD A  R3  L AS S IT B 2FTLEM SUT IFSH;   3 R SL A  LTSUREL IARTPAE AV S ; 6)(R,-R3  V MO 3 R SL A  R3  L AS S IT B 3FTLEM SUT IFSH;   3 R SL A  EDETPLOM CADRI TE,OP N ; 02D4MO  E BG ? R5< 1 RIS;  5 ,RR1  YLY CORRECT. CMPB (R1)+,(R1)+ ;INCREMENT BY TWO MOVB #13,@R1  ;VERTICAL TAB MOVB #77,-(R1) ;QUESTION MARK SUB R0,R1  ;PRINT COMMAND UP TO  ;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-OZTBBUF-2(R4)  ADD  #2,SIZE  BR  RETURN ;  .PAGE   ; *** REGISTER MODE *** REGMDR:; BISB  #REGMODE,@R5  BR  BUILD   ; *** 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 [7 @m ,D  , R >% %*j’ K * -*  7 "7 *  &\ *֑ɋ 5  0* PɋD nlT wc *|U\ĝp E7l* *B T   Aå*f   ww׽@׽*&  MP C  0 =1)(RYMPSTM;  + 1)(R  B LR C  R.HA CEDATSLANTRM+SU= M SU;  3 ,RR2  D AD . ARCHD TELANSRA T0+ 0 =R2;  2 ,RR1 @ VBMO 0 = 2 R ;  R2  R CL 1:40OD M0 = M SU;   3 R LR C: 00D4MO SSREDD A+1YMPSTM= 4 R ; 4 ,R+1YMPSTM # OV M  SSREDD A+3YMPSTM= 5 R ; 5 ,R+3YMPSTM # OV M  RSTEISEG RVESAL AL C ; G REAV S APTR : 31BRSU ERCKPA0 D4MO;   B CHER;S ;; ]01 ;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 #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 ^ (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  TRAP  FLDEND ; DETERMINE STATEMENT TERMINATOR  BLE  RETUR1  ; STATEMENT TERMINATED  CMPB  FLDCNT,#2  ; MORE THAN TWO FIELDS ?  BLT  RETUR2  ; NOPE  INCB  QERROR  ; YES, QUESTIONAB_B`E  *  eeW!`&f*Ғv  *&t*w j  \7VB! D*wH4  :747 **>\<PJ 7 *7 >*b E - 1- 7*7 70!ׂ *&v 7N & ע*Γ. W._ 0w`*ݎw-2!<  HLRCSE BR  E)NCREFEREL NAERXT(EL OBGL .EDINEFND;U  NTOI PRYNT;E  HIRCSE NEB G FLEF#DS,AGFLTB ITB T SET NOG LA FBLLO.G; I CHERSQ BE  LGBFGL,#GSLATF TBBI K:CHER SI CHERSR B D IATRD 2N;2 SYLB,G1)(R OVM D IATRT 1S;1 SYLB,G)+R1(V MO L:CHER S. RDWOE ONT ENEMCRIN; + 1)(R STT ) )8ID(( -SEBA; 1 ,RR3 UBS E BLTAT ECCS .OFE AS;B R1P,TOERPV MO  ; 3 RL AS  ; 3 RL AS  ESYT B 8D)(I; 3 RL AS  OLMBSYD NEFIDEY PLTIUL;M  HKRCSE EQB 3 ,Ra ;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 CSIOKG  ;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. MbLE 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  ASL  @R5  TRAP  NEXTERM ; CALL FOR NEXT TERMINATOR  CLRB  RSLMOD  CLR  GLBSY1  CLR  GLBSY2  JMP  SYNT00  ; SUBROUTINE INSERT   ; THIS SUBROUTINE INSERTS THE THREE BIT   ; REGISTER FIEc@0*w2DW=*:W µ  2 *^,+70. h*2. *W"µ@6µwµwµ*ʔi ͵&1#* 7Pj-b׭*z3 T/0gd7a47Q*6 7TLp>%7$o*Z^aJHAGFLMD#B MPC E UTOLBS AORD NEFIDEUN; K CHERSQ BE  N.IG STEGAPARO P'TON;D R3D,TISCCB ISB 3 RR CL  ST UINH TCMA; 0 RR CL J:CHER ST USN INDOU FCHAT;M  D UNFOT NOE ATICND;I  HIRCSE BR  TOE IVATEG NKEMA; 0 RC DE  ST UIND UNFOT NOH TCMA; D UNFOH TCMA; J CHERSE BN  CHARSEY ARIN;B  CHSRINBP RAT E BLTAW LOBES ESDRADT 1S;3 ,ROPRTUS OVM E AS BLEAB;T R2P,TOONCV MO E:CHER S. LEAB TOLMBSYR SE UCHARSE; . eOV #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 FILES. 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 MISfLD 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 OF R2  BIC  #177770,@R6  ; ONLY SAVE LOWER 3 BITS  BISB  (R6)+,@R5  ; SET COMMAND'S REG. BITS  RTS  R7  ; RETURN ;  .PAGE  ; SUBROUTINE FIELD END   ; THIS SUBROUTINE SEPARATES TERMINATORS INTO   ; g,~J4H& ĝ)*e 4N 5[*ȕa0׭M* * .77 p7 nwEՇ+*עעע & עG*4ע Š Հ fn*X( ( 7 ,|  &77$ *x7 7 74*Ɩu\ Yte2e9eLEAB TOLMBSY; R SE UHE TCHARSEO TREHES MECOL RONTCO; , EDCKPAY ADREAL3 M+SYMP T1,M+SYMP TINL BOYM;S  HE TTHWIH RCEA STOL AL CNDCOSEA N ;O  L.BOYM STELEMPCOH IT;W     ST U &ST PCHARSE--S-YE; H CHERSE BN  D?LEABEND CMYT BIS; 5 @R STT: HGRCSE ST PIND UNFOT NOH TCMA; 7 RS RT  R0 STT G REETSP RAT: HIRCSE X.DEINS ASCL;S ASCL,IR4 VBMO  ONTIUCTRNS IVESA;4 ,R417717#C BI  R4 SRA 4 RR AS  R4 SRA 4 ,RGSLATF VBMO F:CHER SR TOCADIINE YT BET;S TYTIANQU0,0000#1 ISBiSING 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  ;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 #BLj THREE GROUPS.    ; INPUT R3 = SAVTERM ADDRESS    ; OUTPUT CONDITION CODED RESULTS    ;  > 0, IMPLIES ,    ;  = 0, IMPLIES ; CR    ;  < 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 TEk*e, e e-*6  ̞  _ 7r *2*6 55 6q*V (I*z*!*  *U*—kU@ *6& xdƘޘ* *~ !@fI%*.^=e]:B  *  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 TELEDEE 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 ;mOCK3-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 ERROUT-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. CnRMINATOR A CR ?  BEQ  FLDEN0  ; YES  DEC  @R6   ; RETURN NEGATIVE FLDEN0: DEC  @R6   ; RETURN ZERO FLDEN1: TST  (R6)+  ; RETURN POSITIVE     ; SET THE CONDITION CODES  RTS  R7  ; RETURN ;  .PAGE .EOT   ;END OF FILE #10  ; SUBROUTINE PARENTHESIS SEPERATOR   ; THIS SUBROUTINE SEPERATES RIGHT AND LEFT   ; PARENTHESES FROM OTHER TERMINATORS. IT ALSO   ; SETS THE PARENTHESIS SEEN FLAG BIT AND   oR4@. c$:@#*v 7  S*  *AwL C*4*kw_  __*9U*/#@% ()"'+-!*&; ,:=878s p 8 ̋U**נ0נ9 å.Հ& @*NEEEE  ` e *r` Eл&EUp̵q*wV/,8 נ0נ9*8  R1  C IN : 04D4MO HBRCSE  P RA T  04D4MO  Q BE  ?0 = ) (0YMPSTMS I ;  R1 @ TBTS : 40OD MS ESDRADY OREM MDD O  ;    ANT ABET 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 =0)M(SYMP TIF  ;    S ESDRAD) (0YMPSTMqSIOK9: 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-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 ONEr; MAINTAINS THE PARENTHESIS COUNTER.    ; INPUT R2 DEDICATED REGISTER    ; OUTPUT CONDITION CODED RESULTS    ;  ) NEGATIVE    ;  OTHERS ZERO    ;  ( POSITIVE ;PARSEP:    ; PLACE THE PCOUNT BYTE SUBR19: SWAB  R2   ; INTO LOWER R2  CLR  -(R6)  ; STACK A ZERO  CMPB  @R3,#TCCLPA  ; IS TERMINATOR A ( ?  BEQ  PARSE0  ; YES  CMPB  @R3,#TCCRPA  ; IS TERMINATOs å$ å.נAנZ *ޙנaנz Ep l*7S*&&ß\#*&0 E &w<U%ft*J ->DՕ  (,fee*n"wD  & N*D! >`e*C -$eCJ*ښE $  o*J ˕ e<˕ ws*" * = 1 R UTNP I ;    R6HA C +405*ARCH+ 2 **404*ARCH=  ;   R3HA C +402*ARCH+ 2 **401*ARCH= D KEAC P ;   ERCKPA0 D4MOE INUTROUB SENOP;  1:CHER ST ANSTON CB' '40OD M ;     VETIECFF EHE T =MDTCBY; R5,@0)(RONTCBY  V MO 2 0* R =R0;   0 R SL A  . ARCHT AS LHE TUT ONKLA B ; ) R01(M-SYMP T RBCL D ANMMCOE YT B ALYALTIENOT PS,YE;    D LEABIS DNDMAOM CTEBY, PENO;  u 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 ONE 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 ASSEMBLvR A ) ?  BNE  PARSE2  ; NOPE  DEC  @R6   ; DECREMENT STACKED ZERO  DECB  R2   ; DECREMENT PCOUNT BYTE  BR  PARSE1 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 w ˕ L Bu*F 2 D|bW Ջn.jM u e ͕'  |*--"-˥0ӕ*  7 D!C   K*ڛw = w @<w Cw F*C!    e*" e& 5 c| e%*Fm  e:7*j1e07 Ȝ0Z C * C`B `& H1RCSE  E BN ? ' 'BA . ARCHT AS LIS; 2 ,#0)(R-1YMPSTM  B MP C  EDBLSADID ANMMCOE YT BE,OP N ; H1RCSE  E BL ? . RSHA C 3ANTHE OR MREHE TRE A ; #30, R PBCM EDBLSADID ANMMCOE YT BE,OP N ; H1RCSE  E BG ? . RSHA C 6ANTHS ES LREHE TRE A ; #60, R PBCM T UNCO. ARCHS L'BOYM S =R0;  0 ,RARCHNT C VBMO 0:CHER SN IOATOGRRTEIND ANMMCOE YT B ;    ST UOFG INCHARSEE ATTINI IyY COUNTERS CLRB DNTACT-O01 ;SYMBOL TABLE INITIALIZATION ;CLEAR ALL HAS BEEN RE-DEFINED FLAGS ;(BIT 1 OF HIGHEST WORD OF THE ENTRY) ;IN THE PERMANENT 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 SECz  ; SUBROUTINE REGISTER CHECK   ; THIS SUBROUTINE DETERMINES, FINALLY, IF   ; A VALUE IS TO BE TYPED AS REGISTER.   ; 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    ;  {4"DԝԝK*010203040506*֜070809101112131415161718192021222324@*252627282930317071727374757677787980*81828384858687888990|;*B7,7 > D7 >1*fe7`& y* ".΋4΋/%*],W r%&:w.%~@*ԝ,%N@f,t, ` ; HERCSE  R B  1 RNTMERENC I ;  R1  C IN D KEAC PDYEALR A ;     ET YEDCKPAT NO;  0 CHER S NE B  ?0 = ) (0YMPSTMS I ;     ?D KEAC PDYEALR AOLMBSYS I ;  R1 @ TBTS 0 = D CMYT B ;  R5 @ LR C  SSREDD AMDTCBY= 5 R ; R5D,CMYT#B  V MO S ESDRAD) (0YMPSTM= 1 R ; R1M,SYMP#T  V MO S ERSTGIREE AV SLLCA; EGVRSA  P RA T: 04BRSU H:RCEA}TION ENTRY: ;THE ENTRY IS 4 WORDS OF 0 (THE UNNAMED ;CONTROL SECTION). ;CONTOP=C(PERTOP)-4 (WORDS) STINI0: CLR @R1  ;CLEAR CLR -(R1)  ;FOUR 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 ~ NOT NEGATIVE IMPLIES    ;  R0 CONTAINS A VALID    ;  REGISTER NAME    ;  NEGATIVE IMPLIES    ;   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&e&|*3B`&ŝJawDe%*B U`@ *fw&J*ՀH`|:* PHFz F@*Ҟ5P KKc*ebDa7e`b ɒP& "|eΌ;S 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= 1 SYLBTMPSYM+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 ;OF USER PC ENTRY. JMP SETP5-O01 ; ;FILE STRUCTURE ERROR--INPUT FILE #2 MISS1: CLR SIFB2-4-O01  ;LET MONITOR HANDLE ERROR NEXT TIME CMP SIFB2+4-O01,BLOCK5+6 ;IS EXT PAL? BNE MISS2   ;BRANCH IF NOT-FORCE ERROR CLR SIFB2+4-O01  ;MAKE EXT NULL BR MISS2   ;TRY AGAIN ; ;FILE STRUCTURE ERROR--INPUT FILE #1 MISS3: : MOV  RESULT,R0  ; R0 = RESULT  CMP  R0,#7  ; IS R0 > 7 ?  BGT  RCHE00  ; YES, FORCE REGISTER ZERO  TSTB  RSLMOD  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     ; CONDIG  ;  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  Y.ARCLR SIFB1-4-O01  ;LET MONITOR HANDLE ERROR NEXT TIME CMP SIFB1+4-O01,BLOCK4+6 ;IS EXT PAL? BNE MISS4   ;BRANCH IF NOT-FORCE ERROR CLR SIFB1+4-O01  ;MAKE EXT NULL BR MISS4   ;TRY AGAIN ;SUBROUTINE CSICHK: CALLS CSI2 (COMMAND STRING ;INTERPRETER PHASE II). ;ALL SWITCHES EXCEPT PASS [PA] ;AND TAPES [TA] AND FORCE @#A [37]ARE ILLEGAL.. ;IT WILL USE DEFAULT ;EXTENSION NAMES IF NONE SPECIFIED. ;IT WILL UPDATION CODES ARE SET RCHE02: RTS  R7  ; RETURN ;  .PAGE  ; SUBROUTINE NEXT 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 ; R2 = REGISTER FLAG CONSTANT  000001 005000 012703'  MOV  #RESULT,R3  ; R3 = RESULT ADDRESS  002376 005004 105726  TSTB  (R6)+  ; WAS SAVED TERMINATOR A COLON ? 005006 001410  BEQ  MAIN1F  ; YES, PROCESS AS A LABEL .IFNDF NOSEG   ;DIRECT ASSIGNMENT 005010 104542 TRAP CONTRL 005012 000004 .WORD 4   ;OVERLAY #4 005014 000167 JMP ENTRY7  173010 .ENDC   PSSCENEF IST UHE TENTHD ANT PS; E THG INCHARSET RSFI, LYALRMNOS ESOCPR, OLMBSYE YP TB' ' AOT NIF; VEBO A1.S ASSCERO PENTHT NOF I. ;B  N.URET RND ATYTIANQUN IIT B ;  ORATICND ITEBYE THT SEN HE TT,SEF I. ;A  G.LA FNGLIABENE YT B'SOLMBSY ; E THK ECCHN HE TT,PSE THN I ;  NDOU FISL BOYM SEDATVIREBB AHE TIF 2.; . ST UHE TRYSAESEC NIFD ANT PS ; HE TCHARSET RSFI L.BOYM SALOT T ;  HE TOR FNGHIRCEA STEIAITINTE MAXPASS IF NECESSARY. ;IT WILL USE SOURCE FILENAME AS DEFAULT FOR ;OTHER DATA SETS. ; ;INPUT: ; R1=ADDRESS OF CSI BLOCK ; 1ST WORD : ADDR OF CMDBUF ; 2ND WORD : ADDR OF LINK BLOCK ; 3RD WORD : ADDR OF FILE BLOCK ; 4TH WORD : DEFAULT EXTENSION ; ; ;OUTPUT: ; R3 ;  0 STILL MORE OF SAME TYPE ;  1 NO MORE OF SAME TYPE ; ; R4 AND STATUS ;  0  ;    E LUVAD DECOE=YPIT  ;    E LUVAD DECO. MIER=TRMTEAV SUTTPOU;    E ON NUTNP I ;    D.SEESOCPRG INBEM TE INTREUR CHE TTO ;   E IVATEL RERNTOU CERCTRAHA C AHYTE BIT INC R3  ;+1=CONTROL SECTION CMP #376,R3  ;ID NUMBER BLT CSECTE  ;TOO BIG IF >376(8) CSECT6: TSTB SECMOD-O02 BEQ CSECT2  ;PREVIOUS 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 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 ;  .PAGE EXPR0C:  ; NON-VOID ITEM ENCOUNTERED AND PROCESSED  INCB  ICOUNT  ; INCREMENT ITEM COUNTER  TSTB  ITYPE  ; HOW IS THE ITEM TYPED ?  BLE  EXPR0I ; NUMBERS, ERRORS, ANMN24A: CLR R1 ;FOR CONDITIONAL ASSEMBLY INTERFACE 005400 000177  JMP  @QUANTITY  ; JUMP TO THE APPROPRIATE  175006     ; DIRECTIVE HANDLER MAIN25:   ; MNEMONIC CLASSING PERFORMED 005404 105767 TSTB DNTACT  ;ASSEMBLE THIS LINE?  175402 005410 003327 BGT MN20A  ;NO - BRANCH .IFNDF NOSEG 005412 104542 TRAP CONTRL 005414 000005 .WORD 5 005416 000167 JMP ENTRY1  172356 NSAINTAI MEMIT ;   . RMTEAV STOINE LUVAD DECO  ;   E THE ACPLD ANR TEACARCHR TONAMIER T  ;   EDERNTOUNC ENY ADECOEND ANY IFNTDE I.) 3  ;   Y.ITNTUA QONTICALON IEMTHE AV S  ;   ND ARSBEUM NALIMEC DORL TAOCT ERNVCO) 2. ;   . LSBOYM SOR FERFFBUM SYMP T  ;   HE TINS ERCTRAHA CIISC AIX STOP UVESA) 1. ;   : ESICRVSEG INOWLLFOE THE IDOVPR ;   S NETIOU RONTICAFITIENIDR TEACARCHE TH ;   . RSBEUM NOR ;   S OLMBSYR HEIT EBEO TD 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 TMPSYM+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 D 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 EXPR0I EXPR0M:  TRAP  SEARCH ; CALL SEARCH THE SYMBOL TABLE  BR  EXPR0G  ; FOUND AS A USERS SYMBO .ENDC .IFDF NOSEG JMP OPCODE .ENDC   PAGE 136  ; SUBROUTINE SAVE VALUE OF THE SYMBOL   ; THIS SUBROUTINE REPLACES RESULT'S VALUE WITH THE   ; SYMBOL TABLE VALUE.   ; THE MULTIPLY DEFINED ERROR IS SET    ; INPUT SPECIAL SITUATION    ; OUTPUT NONE EDINEF DRE AMSTE I  ;   R.TONAMIER TEDODNC E ;   TS ITHWIR HEETOG TEMITH AC EE,INUTRO ;   G INLLCAE THO TG,INNTSERE PND AMSTE I ;   ALICCTTAYN SOFG ININEF DHE TISN IOCTUN F'SEMIT;   M TE INETIOUBRSU;   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 E@ ;.ASECT ;THIS PART HANDLES THE ;.ASECT DIRECTIVE ; RASECT:    ;ASECT HANDLER NEGB BINOUT-O02 ;REQUEST BINARY 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 L 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,R0  ; SYMBOL MULTIPLY DEFINED ?  BNE  EXPR0H  ; NOPE  INCB  DERROR  ; DOUBLY DEFI ;SAVVAL: 005422 105267 SUBR05: INCB  MERROR  ; SET MULTIPLY DEFINED ERROR  174627 005426 016700  MOV  HINDEX.,R0  ; R0 = SYMBOL'S ENTRY ADDRESS  175264 005432 016013  MOV  -2(R0),@R3  ; RESULT = SYMBOL'S VALUE  177776 005436 000207  RTS  R7  ; RETURN   PAGE 137 005440 011367 MAIN1E: MOV @R3,TBBUF ;SET UP LISTING FORMAT  175150 005444 104432 EXIT:  TRAP  ENDLINE OT 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 3)(R-4N,TION#C OVM: 47BRSU T:OUEL;D ;T OUEL DAPTR  ;3 RTOK OCBLE IL FOFS ESDRAD  ;1 RTOK OCBLK IN LOFS ESDRAD  ;: CEENQUSEG INLLCA ;; LEFIT PUUT OENOP.; NGTIISEXY ADREALF ILEFIT PUUT OTELEDE.; ET STADAT PUUT OITIN .TOE INUTRO<#RELFLG,@HUSERPC-O02 ;CLEAR RELOCATABLE    ;FLAG BIT IN DOT SYMBOL ENTRY CLRB SECMOD-O02 ;.ASECT ID MOV #ABS1,R1 ;'.(SPACE)A MOV #ABS2,R2 ;'BS. BR CSECT9 ;.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 NED ERROR  BIS  #000400,R2  ; SET THE GENERAL ERROR EXPR0H:  MOVB  TFLAGS,R0  ; R0=TEMPORARY FLAGS.  BITB  #GLBFLG,R0  BNE  EXPR0I  BITB  #DEFFLG,R0  ; SYMBOL DEFINED ?  BEQ  EXPR0L  ; NOPE  BITB  #REGFLG,R0  ; REGISTER SYMBOL ?  BEQ  EXPR0I  ; NOPE  MOVB  #REGFLG,REGTYPE ; YES, TYPE THE EXPRESSION     ; AS REGISTER ;  .PAGE EX ; CALL END LINE PROCESSING 005446 000167  JMP  SETSRC  ; RETURN TO SOURCE LINE  176752 ; ;RESIDENT PORTION OF .CSECT DIRECTIVE HANDLER CSECT: .IFNDF NOSEG 005452 104542 TRAP CONTRL  ;CALL IN OVERLAY #2 005454 000002 .WORD 2 005456 000167 JMP ENTRY1  ;GIVE CONTROL TO IT  172316 .ENDC .IFDF NOSEG JMP RCSECT .ENDC ; UB;S R7 TSR: N1EACL LSRT EM  ET STADAE ASLERE;) R6-(1,RV MO  LSCT EM  LEFIE OSCL;) R6-(1,RV MO  NO; 1 ANLECQ BE  'DITINT SEA AT DIS; 1 @R STT: 44BRSU N:EACL ; K OCBLK IN LOFS ESDRAD1= R ;  T:PUIN; ; D.SEEAEL RET;S TADAE THD AND SELO CISE IL FHE TD,T'NI IENBE ;S HAT SEA AT DEDFICIPE SIF- --N EACLE INUTROUB;S E AG.P ; RNTURE;  7 R TS R  SSCERO PHE TUEINNTCO, ES Y ; 00KBBL  I BH 8 #-5,R0 ;SEMI COLON  BEQ  GLOBLX  TRAP  ITEM  ;GETS THE NEXT SYMBOL  TSTB  CNTCHAR-O02  ;;ANY CHARACTERS FOUND  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: BISPR0I:  ; 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 APPROPRIATE  .WORD  EXPRLA  ;RESIDENT PORTION OF .ASECT DIRECTIVE HANDLER ASECT: .IFNDF NOSEG 005462 104542 TRAP CONTRL 005464 000002 .WORD 2 005466 000167 JMP ENTRY2  172312 .ENDC .IFDF NOSEG JMP RASECT .ENDC ; ;RESIDENT PORTION OF .GLOBL DIRECTIVE HANDLER GLOBL: .IFNDF NOSEG 005472 104542 TRAP CONTRL 005474 000002 .WORD 2 005476 00016? 0)T(ISRLCU> 0 RIS;  T ISRLCU0, R MP C  NKLA BIISC A =0)(RERFFBU;  ) R0-( ,#'  B OV M: 00KBBL R0  C IN S ESDRADE AS BRSFEUF BNGTIIS L ;     VETIECFF EHE T0+ R =R0;  0 ,RSTLIUR C DD A: 01BRSU F:BULK;B NENO UTTPOU;    . NKLA B ATHWID LEIL FBEO T  ;    ONTISIPOR FEUF BSTLAE THF O  ;    PTRISCUB SHE T =R0 T PUIN;    ) (0ERFFBUO T0)(RERFFBUM RO F ;   S.NKLA BIISC A ;   THWIR FEUF BNGTIIS LVE4B #REDEF,@HINDEX-O02 ;SET PERMANENT SYMBOL REDEFINED FLAG. GLOBL4: TRAP SEARCH  ;SEARCH SYMBOL TABLE BGT GLOBL7  ;IF PST THEN REPEAT BEQ GLOBL6  ;IN UST BISB #GLBFLG,TFLAGS-O02 ;SET GLOBAL FLAG TRAP ENTER  ;ENTER INTO UST BR GLOBL2 ;FOUND IN UST GLOBL6: MOV HINDEX-O02,R1 ;ADDRESS OF ENTRY BITB #REGFLG,TFLAGS-O02 ;IS SYMBOL A REG. EXPR. BEQ GLOBL5  ;NO INCB RERROR-O02 BISB #MDFLAG,1(R1) ;SET MULTIPLY DEFINED CMPB #-3,SAVTERM-O02 ;WAS TERMINA;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  RSLMOD  ;IF GLB THEN IF RSL IS REL 7 JMP ENTRY3  172306 .ENDC .IFDF NOSEG JMP RGLOBL .ENDC ; ;RESIDENT PORTION OF .TITLE DIRECTIVE HANDLER TITLE: .IFNDF NOSEG 005502 104542 TRAP CONTRL 005504 000002 .WORD 2 005506 000167 JMP ENTRY4  172302 .ENDC .IFDF NOSEG JMP RTITLE .ENDC ; TIECFF EHE TLLFI;   S ERCTRAHA CERFFBUG INSTLIK ANBLE INUTROUB S ;  N URET RND ARSTEISEG RET SLLCA; EGPRPO  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; 0TOR, BEQ GLOBL2  ;YES MOV #ITYPE,R3 ;NO JMP MAIN1E-O02 GLOBL5: BISB #GLBFLG,@R1 ;SET GLOBAL FLAG IN UST BR GLOBL2 ;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  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  ;OR GLB  BNE  EXPR0N  B ;EOT DIRECTIVE HANDLER 005512 105367 EOT: DECB SIZE  175264 005516 000752 BR EXIT ; ;RESIDENT PORTION OF .LIMIT DIRECTIVE HANDLER   PAGE 140 LIMIT: .IFNDF NOSEG 005520 104542 TRAP CONTRL 005522 000002 .WORD 2 005524 000167 JMP ENTRY5  172270 .ENDC .IFDF NOSEG JMP RLIMIT .ENDC ; 0)(R - NC I  TEBYA AT DSTIR F'SERFFBU;      LOE THF OSSREDD AHE TDD A; 6 @R0, R DD A  NT CTEBYT ENRRCUS O' LCKTA S; ) R6-(+,0)(R  V MO 4 0+ R =R0;  )+R0,()+R0 ( MP C  SSREDD AERFFBUK ACST; ) R6-(0,RV MO  ERADHER FEUF BINTAOB, ES Y ; 0 ,R26 # UB S  PENO; T1LSCO  Q BE ? D TEESQURET PUUT ONDMAOM C ;  R0G,LAOF C V MO S ERSTGIREE AV SLLCA; EGVRSA  P RA T: 27BRSU T:ISOL;C, TRAP  SERCHB  MOV  TMPSYM+1-O02,TITLEA-O02  MOV  TMPSYM+3-O02,TITLEB-O02 TITLEX:  DECB  SIZE-O02 ;SPACE WAS FOUND ASSUME DEFAULT  JMP  EXIT-O02     ; INITIALIZATION ; ; ;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  ITB  #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  RSLMOD  BLE  EXPERR  DECB  RSL ;RESIDENT PORTION OF .END DIRECTIVE HANDLER END: .IFNDF NOSEG 005530 104542 TRAP CONTRL  ;CALL IN OVERLAY #3 005532 000003 .WORD 3 005534 000167 JMP ENTRY1  172240 .ENDC .IFDF NOSEG JMP REND .ENDC ; ;RESIDENT .PAGE HANDLER - EJECT A PAGE ; .GLOBL PAGE .GLOBL PAGE 005540 062767 PAGE: ADD #60.,PAGING 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 S ; 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  ( ;THE LOADER  TRAP  RLDFIL  MOV  #4,SIZE-O02  ;TO FILL SPACE  JMP  EXIT-O02 ;SUBROUTINE LINEAR SYMBOL TABLE SEARCH ;PERFORMS A LINEAR SEARCH OVER A 4 ;WORD PER ENTRY SYMBOL TABLE. ;INPUT 1) THE BASE ADDRESS OF THE 2 ;  WORD (MODULO 40) SYMBOL IN R1 ; IF THE 1ST TRIAD IS 0 ; THE TWO WORD SYMBOL IS ; NOT INCLUDED IN THE ; MATCHING PROCESS ; 2) THE ADDRESS OF THE 3RD WORD MOD  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  SETREG CLRB  R1   ; SE ;OVERFLOW LINE COUNTER TO FORCE PAGE EJECT  000074  174646 005546 000736 BR EXIT ; ; ; DEFINE NUMBER OF LINES PER PAGE DIRECTIVE PROCESSING ; ; .LINES N ; .GLOBL LINES 005550 104406 LINES: TRAP ITEM  ;GET VALUE OF N 005552 105767 TSTB ITYPE  ;MAKE SURE ITS A GOOD VALUE  175254 005556 001403 BEQ LINEOK 005560 105267 INCB NERROR  ;TSK, TSKR 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 AERADHEO 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$TO BE MATCHED ;  IN R4. THE RIGHT BYTE IS ;  THE FLAG BYTE. THE LEFT ;  BYTE IS THE CONTROL SECTION ;  ID BYTE. ; 0 VALUES SPECIFY THAT 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) R0T 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 RIGHT ONLY, ; PARENTHESES NOT PERMITTED.  174477 005564 000727 BR EXIT ; 005566 016767 LINEOK: MOV QUANTITY,MAXLINES ;STORE VALUE IN MAX. LINES WORD  174620  174610 005574 000723 BR EXIT   PAGE 141 ; ;RESIDENT PORTION OF CONDITIONAL DIRECTIVES HANDLER ; ;C(R1)=0 ON ENTRANCE---SEE "MAIN" ; ; 005576 022121 IFNZ:  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 INGHIETOM SET;S R0 NCI N IOETPLOM COR FITWA;D CMWT MTE ) R6-(B,LL#S OVM H NCRA B -NO;4 ATOTRQ BE  S?ESGRRO PING INSTLIL BOYM SIS;B LLST TS 3:ATOT RS ESGRRO PING INTHMESOT SE; 0 RC IN  ONTILEMPCOR FOT AI;W MDTCWT EM  6)(R,-LBLO#V MO  CHANBR- O ;N T3TARO EQB ? SSREOGPRN INGTIIS LIS;B OLLT 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 DESTROYED ;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 LI. ; 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 QUOTIENT - IGNORE REMAINDER BR EXPROK ;  CMP (R1)+,(R1)+ 005600 022121 IFG: CMP (R1)+,(R1)+ ;SET PROPER DISPLACEMENT 005602 022121 IFGE: CMP (R1)+,(R1)+ ;INTO BRANCH TABLE (IF000) 005604 022121 IFL: CMP (R1)+,(R1)+ 005606 022121 IFLE: CMP (R1)+,(R1)+ IFZ: .IFNDF NOSEG 005610 104542 TRAP CONTRL 005612 000003 .WORD 3 005614 000167 JMP ENTRY5  172200 .ENDC .IFDF NOSEG JMP IFPRO .ENDC 005620 022121 IFDF: CTS  SSREOGPRN INGHIOT NET;S R0 LRC S ESDRADT ISRLCU= 3 R ; R3T,ISRLCU # OV M  SSREDD ARSDEEA H ;     ERFFBUT PUINE RCOU S ;     RSFEUF BVETIECFF E =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 BLENSR4  ;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(R4),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  ; SUBROUTINE SET ERRORS   ; UTILITY SUBROUTINE FOR EXPRESSION ;SETERR: SUBR21: INCB  QERROR  ; QUESTIONABLE SYNTAX ERROR  BIS  #000400,R2  ; SET THE GENERAL ERROR  RTS  R7  ; RETURN  .EOT   ;END OF FILE #11  ; SECTION: CHARACTER IDENTIFICATION    ; INPUT R0 MUST BE FREE    ; OUTPUT R0=SFLAG'S VALUE ;  NUMBERS R0=1  CONVERTED AND PACKED ;  SMP (R1)+,(R1)+ ;.IFDF ENTRY IFNDF: .IFNDF NOSEG 005622 104542 TRAP CONTRL  ;.IFNDF ENTRY 005624 000003 .WORD 3 005626 000167 JMP ENTRY6  172172 .ENDC .IFDF NOSEG JMP IFPRO2 .ENDC ENDC: .IFNDF NOSEG 005632 104542 TRAP CONTRL 005634 000003 .WORD 3 005636 000167 JMP ENTRY7  172166 .ENDC .IFDF NOSEG ABILVA 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 HI TESIZALTINI I ;   RYSAESEC NIF, ONTINAMIER TLOS IEIFER V ;   S:SKTAG INOWLLFOE THS RMFOER PNETIOUBRSUS HI T ;   RSFEUF BUTTPOUT/PUINE ATOT RNETIOUBRSU;  N,URET R ; R7  S RT : T1INPR ERCTRAHA B?' 'TETUTIBSSU; TEBYUR ; ;GSDTAB THIS SUBR CONSTRUCTS THE GSD TABLE IMMEDIATELY ;AFTER THE .END STATEMENT PRECEDING THE BINARY PASS ; SUBR35: MOV #BOLB,R1 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.  YMBOLS 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 RESULT ;   JMP RENDC .ENDC ; ;RESIDENT PORTION OF .RAD50 DIRECTIVE HANDLER RAD50: .IFNDF NOSEG 005642 104542 TRAP CONTRL  ;CALL IN OVERLAY #4 005644 000004 .WORD 4 005646 000167 JMP ENTRY1  172126 .ENDC .IFDF NOSEG JMP RRAD50 .ENDC ; ;RESIDENT PORTION OF .ASCII DIRECTIVE HANDLER ASCII: .@C?,#'  B OV M: T0INPR ITIM LEROW L0 4DSEEXC E ; T1INPR  E BL E YTRBCU,@40 # PBCM T MILIR PEUP0 14S EDCEEX;  0 NTRI P GT B  40#1E,YTRBCU @ PBCM 5:R2UB S: NTRI;P IDALNV IESLIMP IT..G  ;    D LIVAS IEPLIM. LE .  ;    TSULES REDOD CONTIDION CT:PUUT O ;    TYLIBITAINPRE INUTROUB S ;  RNTURE;  7 R TS R  RNTURE;  7 R TS R0:CHET;G N.IOATINRMTEE URNS I ; R3E,YTRBCU @ VBMO ; 0 S 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 BUFFER'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? ;COLIST: 006260 104446 SUBR27: TRAP  SAVREG ; CALL SAVE REGISTERS 006262 016700  MOV  COFLAG,R0   ; COMMAND OUTPUT REQUESTED ?  174442 006266 001416  BEQ  COLST1  ; NOPE 006270 162700  SUB  #26,R0 ; YES, OBTAIN BUFFER HEADER  000026 006274 010046 MOV R0,-(R6)  ;STACK BUFFER ADDRESS 006276 022020  CMP  (R0)+,(R0)+  ; R0 = R0+4 006300 012046  MOV  (R0)+,-(R6)  ; STACK LO'S CURRENT BYTE CNT 006302 060016  ADD EDINEF;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 PSTIR FOT ND,UNFOT NO;    S ESGRRO PINS ISSA ; 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 TRIAD 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 OUPB  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 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 DECIC R0,@R6  ; ADD THE ADDRESS OF THE LO     ; BUFFER'S FIRST DATA BYTE 006304 005240  INC  -(R0)  ; INCREMENT CURRENT BYTE COUNT 006306 105036  CLRB  @(R6)+  ; BUFFER A NULL AFTER THE LF.     ; RESTORE THE STACK POINTER. 006310 012746' MOV #COLB,-(R6) ;SERVICE COMMAND OUTPUT  002306 006314 104002 EMT WRCMD ; ; 006316 012746' MOV #COLB,-(R6) ;WAIT FOR COMMAND OUTPUT  002306 00632PAT 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  P CM G:N1AI M. EDINEF DLYIPLTMU;   ETUT  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  #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)+  FMAL    ;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  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  ; SG2 104001 EMT WTCMD ;COMPLETION 006324 005067 COLST1:  CLR  COFLAG  ; CLEAR CO FLAG  174400 006330 104540  TRAP  POPREG ; CALL SET REGISTERS AND RETURN   PAGE 150  ; SUBROUTINE BLANK LISTING BUFFER CHARACTERS   ; FILL THE EFFECTIVE LISTING BUFFER WITH   ; ASCII BLANKS.   ; FROM BUFFER(R0) TO BUFFER(0)    NGEI BASL BOYM SISTHG LA F ; 1)(R,1AGFLMD # SBBI R ROERR TEISEG RHE TET S ; ORRRRE  B NC I  ONTIUAIT SIDAL VE,OP N ; 1GINMA  Q BE ? R TEISEG REDYP TOLMBSYS I ; R1,@R2  B IT B: 1FINMA LDIE F ;     ELAB LHE TNGHIUSFLE NUTION CUTTPOU;     N IOATTUSIL IAECSPT PUIN;     . EDORRR END AEDCTTEDE ;   E ARE ER HESNCRAEAPP AERNTOU CONTICALOY BLEMSS A ;   ERSTGIRES AEDYP TBER VE EOTNNCAS ELAB L ;   X.DEIN HINS I ; R1 = R1+2 MOV R1,R3  BITB  #DEFFLG,@R5  ; IS SYMBOL UNDEFINED ?  BNE  DECODA  ; NOPE  BITB  #GLBFLG,@R5  ;THIS PORTION ENABLES OUTPUT  BEQ  DECODH  ;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 VALUJET 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  CMP  R2,#MAXERR  ; TABLE COMPLETELY EXAMINED ?  BLO  ENDL00  ; NOPE  ADD  R3,ERRSUM  ; YES, ERRSUM = ERRSUM+R3  MOVB  R3,ERROR  ; ERROR = R3 ;  .PAGE K   ; INPUT R0 = THE SUBSCRIPT    ;  OF THE LAST BUFFER POSITION    ;  TO BE FILLED WITH A BLANK.    ; OUTPUT NONE ;BLKBUF: 006332 066700 SUBR01: ADD  CURLIST,R0  ; R0 = R0+ THE EFFECTIVE  174370     ; LISTING BUFFERS BASE ADDRESS 006336 005200  INC  R0 006340 112740 BLKB00: MOVB  #' ,-(R0)  ; BUFFER(R0) = ASCII BLANK  0000DESIRES ESDRADE BLTA ;   L BOYM SVETIECFF EHE TNETIOUBRSUS HI TNGRITEENN PO U ;   TSENNMIGSS AELAB LLL AESFIRIVE, NETIOUBRSUS HI T ;  NGSIESOCPRL BELA; 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 ME  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 ID. 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,@R5N  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  BR  ENDL05 ENDL12:  TRAP  BINASC ; CALL BINARY TO ASCII CONVERSION ENDL02: TRAP  EBBUF ; CALL ENTER BINARY BUFFER  MOV O40 006344 020067  CMP  R0,CURLIST  ; IS R0 > CURLIST(0) ?  174356 006350 101373  BHI  BLKB00  ; YES, CONTINUE THE PROCESS 006352 000207  RTS  R7  ; RETURN ;  .PAGE   PAGE 151 ;SUBROUTINE CLEAN --- IF SPECIFIED DATA SET HAS ;BEEN INIT'D, THE FILE IS CLOSED AND THE DATA ;SET RELEASED. ; ; ?ONOL C AORATINRMTED VESAS WA;  + 6)(R  B ST T  SSREDD ALTSURE= 3 R ; R3T,ULES#R  V MO T ANSTON CAGFLR TEISEG R =R2;  2 ,RLGGFRE # OV M  SSREDD AGSLATF= 1 R ; R1S,AGFL#T  V MO : 15INMA ST UTOINR TEEN;   R TEEN APTR  T.USN INDOU F ;  15INMA EQB . ERTHUR F ;     CHARSED ANG LA FEDINEF-DRET SEL BOYM SNTNEMAER P A ;     ASD RETEUNCOENF I ; 40INMA  T BG E BLTAL BOYM S'SERUSE THH RCEA SLLCA; CHARSE  P Q  ;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 COUNTER  BGT  DECODC  ; LO BUFFER FULL, OUTPUT  JMP  STLST1  ; PROCESS THE NEXT SYMBOL DECODC:  TRAP  STLLST ; CALL SYMBOL TABLE LISTED OUTPUT  JMP  STLST0  ; SUBROUTINE SYMBOL TABLE LISTED OUTPUT ;STLLST: SUBR15: MOV  #CURLIST,R0  BIC  #1,@R0  MOV  R #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   ; R2 = 6 ITERATIONS  DEC  R0   ; DECREMENT R0  MOV  (R0)+,R4  ; R4 = EFF OBJECT DATA WORD  DECB  SIZE  ; SIZE = SIZE-1 ENDL0SINPUT: ; R1=ADDRESS OF LINK BLOCK ;CLEAN: 006354 005711 SUBR44: TST @R1  ;IS DATA SET INIT'D 006356 001404 BEQ CLEAN1  ;NO 006360 010146 MOV R1,-(R6) ;CLOSE FILE 006362 104017 EMT CLS 006364 010146 MOV R1,-(R6) ;RELEASE DATA SET 006366 104007 EMT RLS 006370 000207 CLEAN1: RTS R7 ;SUBROUTINE TO .INIT OUTPUT DATA SET ; .DELETE OUTPUT FILE IF ALREADY EXISTING RA T: 14INMA ORATINRMTES 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 ;   U #005015,@0(R0)  ADD  #2,@R0  CLR  @0(R0)  MOV  BHADRS+2-O03,R1  SUB  #26,R1 MOV R1,-(R6) ;STACK 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 ;ARITHMETIC CONDITIONAL ASSEMBLY PROCESSORS ; ;FORM --- .IF??? EXPRESSION ;.IFZ IF EQ 0 ;.IFG IF GT 0 ;.IFGE V4: 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  ; BUFFER(1) = TAB ADD #17,R3  ;POINT TO END OF SOURCE  MOV  R3,SRCIN  ; SRCIN = LATEST TERMINATORS ADDR  MOVB  #LF,@R3  ; INW ; .OPEN OUTPUT FILE ; ;CALLING SEQUENCE: ; ADDRESS OF LINK BLOCK TO R1 ; ADDRESS OF FILE BLOCK TO R3 ; TRAP DELOUT ; ;DELOUT: 006372 012763'SUBR47: MOV #CONTIN,-4(R3) ;SET UP ERROR RETURN  006412  177774 006400 010146 MOV R1,-(R6) ;LINK BLOCK 006402 104006 EMT INCMD  ;.INIT 006404 010346 MOV R3,-(R6) ;FILE BLOCK 006406 010146 ND AERNTOU CONTICALOY BLEMSS 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 Y IF GE 0 ;.IFL IF LT 0 ;.IFLE IF LE 0 ;.IFNZ IF NE 0 IFPRO: CLR R0 ;PRIME COND TO EVALUATE TRAP COND ;THE 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    ZSERT 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  R3  MOV  R3,@(R6)+  ; SET BUFFERS BYTE COUNT  CMPB  PASS,LOPASS  ; LISTED OUTPUT PASS ? BNE  ENDLX7  ; NOPE TST LOLB  ;[ MOV R1,-(R6) ;LINK BLOCK 006410 104021 EMT DLT  ;DELETE ;IF THE FILE ALREADY EXISTED, IT WAS DELETED AND ;CONTROL WAS RETURNED NORMALLY. ;IF THE FILE DID NOT EXIST, THE ERROR RETURN ;"CONTIN" WAS TAKEN. 006412 005063 CONTIN: CLR -4(R3)  ;LET MONITOR HANDLE ERRORS  177774 006416 010346 MOV R3,-(R6) ;FILE BLOCK 006420 010146 MOV R1,-(R6) ;LINK BLOCK 006422 104016 EMT OPN  ;.OPEN 006424 000207 ;I R02,#D AD  ORATINRMTED 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; : 05TLGE HTUGCAR TEACARCHL GALEIL;  ORRRQE  B NC I  ONTIUAIT SIDAL VS,YE;  05TLGE  Q BE ? R. CSTLAE THS HI TIS;  R20, R MP C  ERNTOI PHE TUPCKBA, ES] ;IFNZ IF020: INCB DNTACT-O03 ;CONDITION NOT SATISFIED TST LISTON-O03 ;LISTING SUPPRESSES? BEQ IF010  ;BRANCH IF 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) ;S^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)+  ; INSTRUCTIONS TO BE  MOVB  (R5)+,@R5  ; MODIFIED  DEC  R5  MOVB  -(R5),1(R5)  MOV  ENDL06+2,-(R6)  ADD  #4,@R6  INC_RTS R7  ;RETURN   PAGE 152   ; SUBROUTINE ITEM   ; ITEM'S FUNCTION IS THE DEFINING OF SYNTACTICAL   ; ITEMS AND PRESENTING, TO THE CALLING   ; ROUTINE, EACH ITEM TOGETHER WITH ITS   ; ENCODED TERMINATOR.   ;  ITEMS ARE DEFINED TO BE EITHER SYMBOLS   ;  OR NUMBERS.   ; Y;  0 R EC D  ANSCE THE NUTION CE,OP N; 4 L0ET G NE B  .?CRA R TEACARCHS HI TIS;  R4+,0)(R  B MP C: 04TLGE R. CSTLAF OR.DD A =R2;   R2  C DE R TONAMIER TNELIS GEMA I ;     CEURSOE IVCTFEEFE TH;     F OSSREDD AHE T =INRC S ; INRC,SR2  V MO N URET-RGEIARRCA;     A H IT WRSTONAMIER TNELI;     L ALL AITRY LLNAIOITNDCOUN;  ) R21(,+R4  B OV M 3:L0ET GR TONAMIER THE TNGDICERE P ; 2)(R-14, R VBMO N aTACK THE "OR" OPERATOR IFDF05: TRAP ITEM  ;GET NEXT ITEM TSTB ITYPE-O03  ;IS THIS AN OK SYMBOL? IFDF12: TRAP SEARCH  ;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 IFDF3b  @(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 PAGCNT,-(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 c THE CHARACTER IDENTIFICATION ROUTINES   ;  PROVIDE THE FOLLOWING SERVICES:   ;  1.) SAVE UP TO SIX ASCII CHARACTERS IN THE   ;  TMPSYM BUFFER FOR SYMBOLS.   ;  2.) CONVERT OCTAL OR DECIMAL NUMBERS AND   ;  SAVE THEM IN LOCATION QUANTITY.   ;  3.) IDENTIFY AND ENCODE ANY ENCOUNTERED   ;  TERMINATOR CHARACTER AND PLACE THE URET-RGEIARRCAA T ERNS I ; R2,@)+R2 ( VBMO N IOATTUSID LIVA, ES Y ; 03TLGE  Q BE ? R TONAMIER TESEDECPRR C ; 2)(R-14, R PBCM 2:L0ET GT MAOR FORATINRMTER FEUF BEROPPRE URNS I ;    ERNTOU CGEPAW LORFVE OS,YE; G INAG,P0.#6  D AD R TEACARCHD EE-FNELIA ;     ; PENO;  2 L0ET G NE B  ?EDFEM-OR F AORATINRMTE;  2 @RF,#F  B MP C  ERNTOI PTEBYUR CZELIIAITIN; E YTRBCU1, R OV M  NKLA BYSWAALR TEACARCHL IAITIN; e5  ;LAST TERM="OR", SYMBOL UNDEFINED IFDF30: BR IFDF35  ;LAST TERM="AND", SYMBOL DEFINED CLR R2  ;LAST TERM="AND", SYMBOL 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 STACfDECIMAL 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= LOW 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 TIg   ;  CODED VALUE INTO SAVTERM.   ;  ITEM MAINTAINS A CHARACTER COUNTER RELATIVE   ;  TO THE CURRENT ITEM BEING PROCESSED.    ; INPUT NONE    ; OUTPUT SAVTERM=TERMI. CODED VALUE    ;  ITYPE=CODED VALUE    ;  > 0 SYMBOL    ;  = 0 NUMBER    ;  = -1 ERRORED NUMBER  ) R1-( ,#'  B OV M  R3,@34 # UB S  ERNTOI PSTLIUR CZELIIAITIN;  3 @R1, R OV M  R2  C DE 0 ,RR1  V MO S ESDRADS ORATINRMTEE IN L =R2;  2 ,RR1  D AD T UNCOE YT B =R2 2,1+ R =R1;  2 ,R)+R1 ( OV M  +4R1= 1 R ; )+R1,()+R1 ( MP C  ERMBNUE IN LCEURSOT ENEMCRIN;  O ENIN L NC I  RNTUREE-AGRIAR CIISC A =R4;  4 ,RCR # VBMO 2:L1ET GR ROER' 'LT SE, ES Y ; ORRRLE  B NC I  PENO; 12TLGE BR iKED OPERATOR IFDF45: INCB QERROR-O03  ;ERRORED SYMBOL OR ILLEGAL CLR R2  ;TERMINATOR (DEFAULT=UNDEFINED) IFDF50: TST 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 INCjME 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 ;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 ;k    ;  < -1 ERRORED SYMBOL    ;  R0=CHARACTER COUNTER ;ITEM: 006426 104446 SUBR03: TRAP  SAVREG ; CALL SAVE REGISTERS    ; FILL TMPSYM BUFFER WITH BLANKS 006430 012705'  MOV  #TMPSYM,R5  ; R5 = TMPSYM(0) ADDRESS  003021 006434 010567  MOV  R5,SYMBOL  ; SYMBOL = TMPSYM(0) ADDRESS  174302 006440 105025  CLRB  (R5)+  ; TMPSYM(0) = BLANK ? N IOATNCRU TNELIG ON L ; 1)(R,3NELINGLO # TBBI : 06TLGE DCEN. G FLOFEP JM  EGOSNF FD.I  DCEN. 2 RYNTEP JM  5D OR.W  RLNTCO APTR  EGOSNF NDIF. E NUTION,CPENO;  6 L0ETGQ BE  T?PUINN OOM!EOF;E  1)(R,3OF#E TBBI  ONTISIPO) ,1(0RSADBHE THO NT I ;    EDATOT RENBES HA, SSREDD AERADHE;    R FEUF BUTNP ICEURSOE IVCTFEEF;    E TH, ERNTOI PERFFBUY ARIMPRE TH;    G INSSCERO PALTINI IERFFBUT PUINE RCOU SNTREUR C ;   ERFFBUT PUINE mLUSIVE OR BEQ IFDF00  ;OPERATION IF .IFNDF IFDF70: MOV #IFDF30-BEGO03+BEGOVR,-(R6) ;STACK "AND" OPERATOR BR IFDF05 ;.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 BnSTORE 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 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,R2o 006442 005025  CLR  (R5)+  ; TMPSYM(1,2) = BLANKS 006444 005025  CLR  (R5)+  ; TMPSYM(3,4) = BLANKS 006446 105025  CLRB  (R5)+  ; TMPSYM (5) = BLANK     ; R5 = TMPSYM(6) ADDRESS 006450 012704'  MOV  #FCHAR,R4  ; R4 = ENTRY POINT ADDRESS  012670     ; INTO THE FIRST CHARACTER     ; IDENTIFICATION ROUTINE 006454 105067  CLRB  CNTCHAR  ; CNTCHAR = 0RCOU S ;     USIOEVPRE THG INUS;     G INSSCERO PADRES OUVIRE P ;     HE TTOE IVATEL RREHE;     T AI WEDLIMP IANS IREHE T ;     MDDCRT EM  6)(R,-LBSI OVM E NCUEEQ SNGLIAL C ;     STUEEQ RNGCIVIER S/O IUTNP ICEURSO ** * ;   NTOU CTEBYT PUIN;     T ENRRCUS ERADHEE THO ER Z ;  R0 @ LR C  ESYT BDEMOD ANS TUTA S ;     UTNP IRSDEEA HHE TET S ; )+R0,(DEMOSI # OV M  NTOU CTEBYT PUIN; qR IF010 ;EXIT ;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)+ ;HOUSEKEEP THE STACK r  ;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) TO ASCII SUB #9.,R4  BGE TEN MOVB #' , DATEXX ADD #72,R4 MOVB R4,DATEXX+1 BR DAY ; TEN: MOVB #'1 ,DATEXX ADD #60,Rs  174356 006460 012703'  MOV  #ITYPE,R3  ; R3 = ITEM TYPES ADDRESS  003032 006464 105013  CLRB  @R3   ; ITYPE = VALID NUMBER CODE 006466 005067  CLR  QUANTITY  ; QUANTITY = 0  173720 006472 005067  CLR  BASE08  ; BASE08 = 0  173734 006476 005067  CLR  BASE10  ; BASE10 = 0  173734 006502 105067  CLRB  DECNUM  ; RESET DECNUM FLAGS  174114   PAGE 153     M MUXIMAS ERADHEE THT SE; )+R0,(BCIM#S  V MO K OCBLR DEEA HUTNP I ;     CEURSOS ERFFBUD SEEAEL R ;     HE TOFS ESDRAD= 0 R ;     CEENQUSEG INLLCA;     S ESDRADR FEUF BCKTA;S 6)(R,-R0 OVM 1 ,RR2 @ OV M  RSFEUF B/O ITETAROL AL C ; E ATOT R APTR : NELIET GE NCUEEQ SISTHO TEDNDPEAP ;   E AR, LYALONTIOP, RSTEACARCHD EE-FRMFO ;   . CEENQUSEF -LCRA H IT WY,LLNAIOITNDCOUN ;   , TENAMIER TLLWIS ERFFBUT PUu 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  .WORD  v4 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 ADC R2  ;FLIPPED THE SIGN ADD R0,R2 ; TCALC3: MOV R4,-(R6) MOV #BCD,-(R6) MOV #3,-(R6) EMT 42  ;CONVERT NUMBER TO DECIMALw    ; FLUSH EACH ITEMS INITIAL BLANKS 006506 104436  TRAP  CBTABS ; CALL CHECK FOR BLANKS AND TABS     ; CBTABS SUBROUTINE INCREMENTS     ; THE CURBYTE POINTER 006510 005367  DEC  CURBYTE  ; BACKUP THE CURBYTE  174244     ; POINTER ONE CHARACTER ITEM00:   ; CHECK EACH ITEM FOR EMBEDDED BLANKS    ; AND TABS INL AL ;   T MAOR FEROPPR ;   E URNS IND AERFFBUT PUING INEDECPRE THN CA S ;   G.INSSCEROP;   R FOY ADRED ANL UL FISR FEUF BUTNPI;   G INEDECPRE TH, ESNUTION CONTICUXE EIF  ;   ATTHS MESUASR LEMBSEASE TH S.ESGRRO PIN  ;   LYNTSERE PISD ANMMCOD EA R AIFL RONTCO  ;   ONTICUXE EINTARET US MORSSCERO P/O IHE T ;   ** *TENO* **;  ) ,1(0RSADBH ;   Y BEDFICIPE SLYNTREUR CERFFBUT PUINE TH ;   F ONGLIMBSEASE THR FOS ERNTOI PZELIIAITIN; y0  ;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 ; .EOT   ;END OF FILE #3 ;***** OVERLAY #4 ***** O04=BEGOVR-BEGO04  ;COMPUTE OFFSET FROM    ;RUN TIME OVERLAY AREA BEGO04: ;JUMP TABLE TO ENTRY POINTz 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: MOV #PAGBUF,-(R6) ;I/O SERVICING MOV #LOLB,-(R6) EMT WRCMD ENDL07: {   PAGE 154 006514 104436  TRAP  CBTABS ; CALL CHECK FOR BLANKS AND TABS     ; CBTABS SUBROUTINE INCREMENTS     ; THE CURBYTE POINTER 006516 105767  TSTB  BTFLAG  ; WERE THERE ANY BLANKS OR TABS ?  174321 006522 003406  BLE  ITEM01  ; NOPE 006524 012704'  MOV  #TERMIN,R4  ; R4 = TERMINATOR'S ENTRY ADDR.  012410 006530 004714  JSR  R7,@R4 ; CALL FOR T  . ERFFBUT PUINL IANCUEEQ SXTNEE THO TTSINPO ;   ) ,1(0RSADBHT HA TSOE BLTAS DRHA BHE TTETARON HE T ;   NDMAOM CADREE THE SUISN HE T ;   EDETPLOM CENBES HA ;   ) ,1(0RSADBHY BEDFICIPE SLYNTREUR CERFFBU ;   E THR VE OONTIRAPE OUTTPOUE THT HA TFYRIVE;   E IN LCEURSOT GEE INUTROUB SENOP;  G LA FUTNOBIE IZALTINI I ; UTNOBI1, # VBMO 0 = R ROER;  R ROER  B LR C  ORRRQE  B LR C  ORRRUE  B LR C  IXAD R RBCL R ROER I RBCL }S ;IN THIS OVERLAY. ; JMP RRAD50  ;ENTRY1 JMP RASCII  ;ENTRY2 JMP RWORD  ;ENTRY3 JMP RBYTE  ;ENTRY4 JMP RSETP2  ;ENTRY5 JMP RSETP4  ;ENTRY6 JMP ASSIGN  ;ENTRY7 JMP SUBR24  ;ENTRY8 .ENDC ; ; ; ;RAD50 HANDLER ; ; RRAD50:  MOV  #TMPSYM,SYMBOL-O04  TRAP EVENPC  INCB  RADIX-O04  MOV  #3,CNTCHAR-O04 ;  .PAGE RASCII:   ;ASCII HANDLER ASCII2:  MOV  #SUBR11,R4  ; R4 = PROCESSORS ADDRESS  DEC  CUR~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  ; ERROR = 0 ERMINATOR IDENTIFICATION   PAGE 155 006532 002434  BLT  ITEM05  ; CHARACTER IS A TERMINATOR 006534 005367  DEC  CURBYTE  ; DECREMENT CURBYTE  174220     ; CONSIDER THE BLANK OR TAB     ; AS THE TERMINATOR. 006540 004714 ITEM01: JSR  R7,@R4 ; CALL FOR CHARACTER IDENTIFICATION     ; THIS SECTIONS ROUTINES    R ROER A RBCL D MOSL R RBCL D 2MSL R RBCL 0 = ) (0UFBB T ; UFBB T LR C  : RCTSSE 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; BYTE-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  BEQ  ASCII3  BIS  #006400,R3  ; R3 TRAP  POPREG ; CALL SET REGISTERS AND RETURN ;  .PAGE   ; 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: SUBR09: TRAP  SAVR ; RETURN THE CHARACTER   PAGE 156     ; IDENTIFICATION CODE IN R0     ; AND THE CONDITION CODES 006542 002430  BLT  ITEM05  ; CHARACTER IS A TERMINATOR 006544 105267  INCB  CNTCHAR  ; INCREMENT CHARACTER COUNTER  174266 006550 005300  DEC  R0   ; R0 = R0-1, SETUP SFLAG     ; WAS A VALID CHARACTER FOUND ? 006552  L TRONCP RAT G SENO DFFN.I 2:TPSE S.AS PUTTPOUY ARIN;B  ABDTGS APTR  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 S PNOT EM  LEFIT PUIN;) R6-(B,ILSV MO  CEURSON PE;O 6)(R,-FBSI OV MS:ASTPSE C ND.E  SIRC MPJ = 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 ASSEMBLY DIRECTIVE HANDLER  MOV  #177401,R1  EG ; 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  ; BUFFER CON002003  BGE  ITEM11  ; YES 006554 105267  INCB  IERROR  ; NO, ILLEGAL CHARACTER  173501 006560 104476  TRAP  PRINT ; CALL PRINTABILITY DETERMINATION 006562 010002 ITEM11: MOV  R0,R2  ; R2 = THE MODIFIED SFLAG 006564 022704'  CMP  #TERMIN,R4  ; IS ITEM ABORTING ?  012410 006570 001751  BEQ  ITEM00  ; YES, HUNT FOR THE TERMINATOR 006572 022704'  CMP  #FCHAR,R4  ; FIRST CHARACTER PROCESSING ?  012670 0  EGOSNF FD.I  DCEN. ) #1Y LAEROV (ITO TOLTRON CVEGI; 1 RYNTEP JM  1D OR.W  #1Y LAEROVN ILLCA; L TRONCP RAT: 01UN R Y LAEROVR PES CKLO BBY; 2 N0RU BR  #CKLO BSEEACRIN Y.TREN; 4 ,RR5 DDA O T #CKLO BNGTIARST S.YE;+ 2)(R4,RV MO  S?AYRLVE OREMO; 1 N0RU LTB 3 ,R#2 UBS: 02UN R2 *YSLAEROVF OERMBNU;3 ,R)+R2(V MO  R2B,TAUN#R OVM ; Y.NCDESIREN-NOR FO0 O TET SIT BGNSI Y.TREN ;B TAUN RVETIECSPRER EITHN IAYRLVE OCHEA ;F OERMBNUK OCBLL CASIHY PNGTIARSTE ACPL; R1 = -1/+1  TRAP  EVENPC ; CALL EVEN THE LOCATION COUNTER  BR  BYTE0  ; COMPLETE INITIALIZATION 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  TCCCRE,TCCSMC ; CAR-RET, SEMICOLON  MOV  #RESULT,R2  ; R2 = EFF. VALUES ADDRESS  MOV  R3,R0 BYTE1:  ADD TAIN 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:  CMP  #52,RLDCNT 06576 001401  BEQ  ITEM02  ; NOPE BRANCH ITYPE DEPENDENT 006600 111302  MOVB  @R3,R2  ; YES, BRANCH SFLAG DEPENDENT 006602 005702 ITEM02: TST  R2   ; SELECT TYPE OF PROCESSING 006604 003013  BGT  ITEM06  ; SYMBOL PROCESSING 006606 001423  BEQ  ITEM07  ; NUMBER PROCESSING     ; CHARACTER UNIDENTIFIED 006610 105267 ITEM03: INCB  IERROR  ; ERROR THIS CHARACTER  173445    ;; K.ACSTT ECRRCO;+ 6)(R+,6)(R MPC: 03UN RR ROERL TAFA; N OP MTE E RCFOO TNCPE.OM ORRFPE;) R6-(1,RV MO  T.ENESPRT NOR OVR.11AL;P 6)(R,-FBVR#O OVM: 04UN R5 N0RU BR  1]1, [RY;T IDERUS1,40#V MO  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 BNG| #000401,R1  ; R1 = R1 + +1/+1  DECB  SIZE-O04  ; SUBROUTINE DATA ACQUISITION   ; THIS SUBROUTINE SUPPORTS THE DATA GATHERING   ; REQUIREMENTS OF THE THREE PRECEDING   ; ASSEMBLY DIRECTIVE HANDLERS.    ; INPUT INITIALIZED REGISTERS    ; OUTPUT COMPLETE HANDLER HANDLING    ;  RETURN IS TO SETSRC DATA:  MOV  #SAVTERM,R5  ; R5 = SAVTERM ADDRESS  TRAP  DATERM ; CALL DATA TERMINATION  BNE  DAT00 ;NOT D   ;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 OUTPUT MOV #BINBUF ; ABORT ITEM, HUNT FOR THE TERMINATOR 006614 105113  COMB  @R3   ; COMPLEMENT ITEM TYPE CODE 006616 012704'  MOV  #TERMIN,R4  ; R5 = ENTRY POINT ADDRESS  012410     ; INTO THE TERMINATOR     ; IDENTIFICATION ROUTINE 006622 000734  BR  ITEM00  ; CHECK FOR ALL TERMINATORS     ; AND INCREMENT CURBYTE    ; RETURN PROCESSING 006624 104452 ITEM05: TTIARSTL 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 ACSTF 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;xATA 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 STACK)  CLR  R0   ; R0 = 0  JSR  R7,@R4 ; CALL THE EFFECTIVE PROCESSOR DATB0:  SWAB  @R6   ; WORD DIRECTIVE ?  BNE  DATB7  ;NO  TSTB  RSLMOD-O04  ;YES (0 ,-(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 RAP  SETREG ; CALL SET REGISTERS 006626 116700  MOVB  CNTCHAR,R0  ; SET THE CONDITION CODES  174204 006632 000207  RTS  R7  ; RETURN  ;  *** SYMBOL PROCESSING *** 006634 026705 ITEM06: CMP  SYMBOL,R5  ; PROCESSED SIX CHARACTERS YET ?  174102 006640 003402  BLE  ITEM16  ; NOPE, CONTINUE 006642 005367  DEC  SYMBOL  ; YES, BACKUP POINTER  174074 006646 105213 ITEM16: INCB  @R3   ; INCR  ITINNO TBTS  ;* ****YSLAEROVR FOP UET*S**** ; G SENO DFFN.I  41 MTE ) R6-(1,#V MO  6)(R-R CL  6)(R,-34APTR#V MO  34N IOATOC LUPT SE; 1 4T EM  6)(R,-#2 OVM ) R6-(T,ARSTRE#V MO  SSREDD ARTTAES RUPT SE; B OLCR CL  ERMBNUE IN LERBLEMSS AARLE C ; O ENIN L LR C B ILCR CL  LBSL LRC B OLLR CL  LBBO LRC 2 LBSI LRC 1 LBSI LRC N GIBEC ^OFE AS;C INS CKLO BNKLIL ALR EACL ;C ND.E  TAARSTT=ARST EGOSNF FD.I  DCEN. . SSREDD AERSFANTRP tIN 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 BR 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,EBBUF7:  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 OBJEEMENT ITEM TYPES CODE 006650 012704'  MOV  #NCHAR,R4  ; NOPE, R4 = ENTRY POINT  012642     ; ADDRESS INTO CHARACTER     ; IDENTIFICATION ROUTINE 006654 000717  BR  ITEM00  ; CHECK FOR ALL TERMINATORS     ; AND INCREMNT CURBYTE  ;  *** NUMBER PROCESSING *** 006656 005700 ITEM07: TST  R0   ; WAS A VALID DIGIT FOUND ? 006660 001403  BEQ  ITEM08  UET;S   TAARSTT=ARST LDRBOV DFFN.I  R6P,TOERPV MO C:RTTA S. ST PHE;T  OWEL BSTJUO TCKTA SHE TZELIIAITIN ;C ND.E  INEG B^CF ;I  LBVROR CL  EGOSNF NDIF. . ET STADAY LAEROV;   E IZALTINI;I ITINNO7,37#B OVM : TAARST ..METIN GIBEC ^ND AMETID OA LATE ER HESOM COLTRON;C ; DCEN. T TRRSRP JM  EGOSNF FD.I  DCEN. 1 #AYRLVE OY3TREN; 3 RYNTEP JM  1D OR.W  #1Y LAEROVN ILLCA; L TRONCP RATpRLDIR-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),TERROR-O04 ; TERROR = HIGH ORDER BYTE  BEQ  DATA00  ; ZERO VALID VALUE  INCB  TERROR-O04  ; TERROR = TERROR+1     ; NEGATIVE ONE VALID VALUE DATA00: SWAB @R6   ; CT DATA BYTE  MOVB  (R4)+,-(R6)  ; ADD THE OBJECT DATA BYTE TO  ADD  (R6)+,@R3  ; THE BLOCKS CHECKSUM  BR  EBBUF1  ; CONTINUE ENTERING PROCESS ;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 ; ; ; ; ;RLD FILL ;RLDFIL ;THIS SUBR PUTS THE RLD DIRECTIVE INT ; YES, CONTINUE PROCESSING 006662 005067  CLR  QUANTITY  ; NOPE, QUANTITY = 0  173524   PAGE 157 006666 000750  BR  ITEM03  ; ABORT ITEM SUBROUTINE 006670 012704'ITEM08: MOV  #NUMBER,R4  ; RETURN TO CHARACTER  012436     ; IDENTIFICATION'S NUMBER     ; ROUTINE   PAGE 160 006674 000707  BR  ITEM00   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 MECOL RONTCO;  T IO T:OURRE NETIOUBRSUD TEESQUREO T ;     X)DEINE(BLTA JRUTHP UM J ; R7+,6)(R @ OV M  EXND ILEAB TMPJUE ATULLCCA; R6,@APTRE-BLTA#J  D AD N IOCTRUSTIND PEAPTRK ACST; 6)(RlRESTORE 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 TERMINATION 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 O 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  MOV  R0,(R5)+  ;FILL IN T ; CHECK FOR ALL TERMINATORS     ; AND INCREMENT CURBYTE ;  .PAGE   PAGE 161   ; SUBROUTINE CHECK FOR BLANKS AND TABS     ; BTFLAG IS INCREMENTED EACH TIME A     ; BLANK OR TAB IS ENCOUNTERE&. ;CBTABS: 006676 105067 SUBR10: CLRB  BTFLAG  ; BTFLAG=0  174141 006702 005267 CBT0:,-)+R6@(  V MO S TUTA SEDCKTA SOFP TON O ;     R6,@#2  B SU S ESDRADN URET RHE TCKTA;S  ) R62(6,@R  V MO : 34APTR 34N IOATOC LOR FERDLAN HAPTR;    ENEV .  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 ARINhINCB 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     ; 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    HE  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.   ; SUBROUTINE OUTPUT END-OF-MEDIA CHECK ;EOMCHK: SUBR3B: BITB  #EOF,BINBUF+3  BEQ  EOMCH1  MOV  BINBUF+2,@R6 ;EOD ANNOUNCEMENT  JMP    INC  CURBYTE  ; CURBYTE = CURBYTE+1  174052 006706 122777  CMPB  #040,@CURBYTE ; IS CHARACTER A BLANK?  000040  174044 006714 001405  BEQ  CBT1  ; YES, BUMP BTFLAG 006716 122777  CMPB  #011,@CURBYTE ; IS CHARACTER A TAB ?  000011  174034 006724 001401  BEQ  CBT1  ; YES, BUMP BTFLAG 006726 000207  RTS  R7  ; RETURN 006730 105267 CBT1:  INCB  BTFLAG  ; BTFLAG = BTFLAG+1  174107 006734 000 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 IKSOCBLY 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  d ; 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   ; YES, 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  M ERRO3 EOMCH1:  RTS  R7 ; ; ; ; ; ; ;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 ; ; ; ;OUTBIN THIS SUBR OUTPUTS ON THE BINARY DEVICE 762  BR  CBT0  ; CHECK NEXT CHARACTER ;  .PAGE  .EOT   ;END OF FILE #8   PAGE 162 ;SUBROUTINE SYMBOL TABLE SEARCH ;THE SYMBOL TABLE IS DIVIDED INTO TWO ;ORDERED SECTIONS. THE PERMANENT SYMBOL ;TABLE (PST) IS BOUNDED BY THE POINTERS ;PERBOT AND PERTOP AND IS FIXED. =  E IZBS B. NOE IN LOR FOMROE AVLE;   14.+ = .S ERFFBU;  14.+  =  . ONSIENXT ENGTIIS LCTJEOB;  12.+  =  . ERFFBUA AT DERCTRAHA C ; AXCMSR.+  =  . 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 LCTJE`OVB  @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 RAD02:  CMPB  #'.,R3  BEQ  RAD00  CMPB  #' ,R3  BNE  RAD06  CLR  R3  BR  RAD03 RAD06:  CMPB  R3,#'A  BLT  RADERR  CMPB  R3,#'Z  BLE  RAD03  CMPB ; 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   ; SUBROUTINE BINARY BUFFER INITIALIZATION    ; INPUT R0 = 0, SIMPLY SET-UP    ; OUTPUT SET-UP AND BINBUF ZEROED ;BBINIT: SUBR00: MOV  USERPC,R5  ; R5 = THE ADDRESS OF THE     ; ASSEMBLY LOCATI ;THE USER SYMBOL TABLE (UST) IS BOUNDED ;BY THE POINTERS CONTOP AND USRTOP AND ;EXPANDS DOWNWARDS IN CORE AS NEW ;SYMBOLS ARE ADDED. BOTH TABLES BEGIN ;HIGH IN CORE AND CONTINUE DOWNWARD ;WITH THE SYMBOLS INCREASINGLY ORDERED IN MOD40 ;NOTATION. EACH ENTRY IS 4 WORDS WITH ;THE LOWEST WORD CONTAINING THE ;1ST MOD40 TRIAD, THE NEXT LOWEST OB;   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 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 \  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  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 ON 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     ; MAXIMUM ADDRESS  TST  R0   ; SETUP ONLY OR BUFFER     ; INITIALIZATION ALSO ?  BEQ  BBIN0 ;CONTAINING THE 2ND MOD40 TRIAD, THE ;NEXT LOWEST CONTAINING THE VALUE ;AND THE HIGHEST CONTAINING THE ;FLAGS AND CONTROL SECTION ID BYTES. ;THE TWO AREAS ARE SEPERATELY SEARCHED ;UTILIZING THE BINARY SEARCH ;TECNIQUE PERFORMED BY THE CLOSED ;SUBROUTINE BINSRCH. ; ;ON THE 1ST ENTRY TO SEARCH FOR A ;SYMBOL,ERFFBU;  14.+  =  . ONSIENXT ENGTIIS LCTJEOB;  12.+  =  . ERFFBUA AT DERCTRAHA C ; AXCMSR.+  =  . NTOU CTEBYT ENRRCUI S ;     ESYT BDEMOS-TUTA SSI;     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 .  =  .X  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 TILL LISTING COMPLETES EMT WTCMD DATB99: SUB #12.,CURLIST-O04  INC  CURBYTE-O04  ; INCREMENT CURBYTE POINTER DATA2:  TST  -(R1)  ; R1 = R1-2  RTS  R1  ; REITER1  ; 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  MOV  #1,(R0)+  ; FIRST DATA WORD = 1  MOV  #10,(R0)+  ; BLOCKS BYTE COUNT = 6  MOV  #TXTDIR,(R0 THE FOLLOWING TAKES PLACE: ;IF THE SYMBOL POSSESSES 4 OR 5 CHARACTERS ;AND IF THE LAST CHARACTER IS A 'B' THEN ;SPECIAL PROCESSING OCCURS. ;PACK CHARACTERS WITHOUT THE 'B' THEN ;SEARCH THE PST FOR THIS ;ABBREVIATED SYMBOL ;1.) IF THIS SYMBOL IS NOT FOUND, THEN ; REPLACE THE 'B' CHARACTER, REPACK ; AND INITIATE SEARCHING FOR THE D ELFIG INSTLIR ROER;   2 .+  =  . ERMBNUE IN L ; +6 . = . NTOU CTEBYT ENRRCUO L ;   0 RDWO .  ESYT BDEMOS-TUTA SLO;   0  D OR.W T UNCOE 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 SS TEBY0 8 =UMIMAX MCEURSO;  TATE 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 THE ;SYMBOL TABLES. MOV PERTOP-O04,R0 ;BOTTOM OF .CSECT AREA MOV R0,R2 MOV R2,HIRPC-O04 ;POINTER TO MAX PC OF TST -(R2))+  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,@R3 BBIN01: ADD  @R2,R1  ; R1 = THE ADDRESS OF THE     ; FIRST AVAILABLE BUFFER BYTE  MOV  (R6)+ ; TOTAL SYMBOL. FIRST SEARCH THE ; PST AND IF NECESSARY THE UST. ;2. IF THE ABBREVIATED SYMBOL IS FOUND ; IN THE PST, THEN CHECK THE ; SYMBOL'S BYTE ENABLING FLAG. ;A. IF SET, THEN SET THE BYTE INDICATOR ; BIT IN QUANTITY AND RETURN. ;B. IF NOT THEN PROCESS AS 1. ABOVE   PAGE 163 20 1  = AXCMSR NE OERFFBU;     K OCBLR DEEA H/O IANY BEDEDECPR ;    Y ELATDIMEIMS IERFFBUL UAIDIVND ICHEA;    R FEUF BUTTPOUE THN HIIT WEDDDBEEM ;    Y ELETPLOM CISR FEUF BUTNP IHE T ;    NEZOG INERFFBUT PUUT-OUTNP I ;   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 .: SSPAUSP  ;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,TITLEB-O04  MOV  #-1,R0  MOVB  R0,BINOUT-O04  TRAP  BBINIT ; CALL BINARY BUFFER INITIALIZATION  MOV  #1,PAGCN,R0  ; R0 = THE MAXIMUM BINARY     ; BUFFERS ADDRESS  RTS  R7  ; RETURN ;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  BINCNT,R0  SUB  #6,R0  ADD  R4,R0  MOVB  R0,RELCNT  MOV  RLDIR,R0  RTS  R7     ; ;  .PAGE   ;IF NOT A 'B' TYPE SYMBOL, PROCESS NORMALLY, FIRST SEARCHING THE ;PST AND THEN THE UST IF NECESSARY. ;ON THE 2ND ENTRY TO SEARCH FOR AN ;ALREADY PACKED SYMBOL, THE UST ONLY IS ;SEARCHED UTILIZING BINSRCH. ; ;  INPUT: TEMP. SYMBOL TABLE ;  OUTPUT: R0 SETS THE CONDITION CODES ;   R0>0 FOUND IN PST ONTIOPS AS PNGTIIS LORRR E ;   0 TEBY .: SSPAER NSIOPT OLYMBSEAS;   : NSIOPT OS ONTINCFUS AS PLYMBSEAS;   S:SEASP #6E IL FOFD EN;  T EO. T PUUT OOR FENOP; 7 R4UBSD OR.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 R4UBSLT-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)+  MOV  #SIMODE,(R0)+  MOV  R0,CURLIST-O04  MOV  #LOMB; 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 COMPLEMENT THE CHECKSUM  MOVB  @R3,@R1  ; BUFFER THE CHECKSUM  MOV  @R2,BINBUF+4 ; FINALIZE THE BINARY OUTPUT     ; HEADERS CURRENT BYTE COUNT  INC;   R0=0 FOUND IN UST ;   R0<0 NOT FOUND ;   IF FOUND: ;   HINDEX = HIGHEST ADDRESS OF ENTRY ;   QUANTITY = VALUE ;   TFLAGS = FLAG BYTE ;   CSCTID = CONTROL SECTION ID BYTE ;   IF FOUND IN UST AND UNDEFINED .GLOBL ;   GLBSY1 = MOD40 NAME OF ;   GLBSY2 = EXTERNAL .GLOBL ;   IF FOUND 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 2 #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 SARHC-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 ; DIRECT ASSIGNMENT STATEMENT PROCESSING  ; THIS SUBROUTINE RESOLVES THE FOLLOWING THREE DIRECT  ; ASSIGNMENT SITUATIONS:  ; 1) USER'S SYMBOLIC ASSIGNMENTS  ; 2) SYMBO  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 D IN UST AND DEFINED RELOCATABLE ;   GLBSY1 = MOD40 NAME OF SYMBOL'S ;   GLBSY2 = CONTROL SECTION ;   IF FOUND IN PST ;   ICLASS = INTRUCTION TYPE INDEX ;   IF NOT FOUND: ;   HINDEX = HIGHEST ADDRESS OF ;     ENTRY WHRE SYMBOL ;     SHOULD BE ENTERED ;   QUANTITY = 0 ;   TFLAGS = 0 NELI;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 RDWO. 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 OY7TRDLIC 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 CHAR13 PACKED WORD.   ; IE. TMPSYM(1,2) = 127400   ; EXPRESSIONS DE END13: CMPB USPASS-O03,@R5 ;IS THE UNDEF SYM PASS? BEQ END02  ;YES - BRANCH END12: CLRB 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  ;   CSCTID = 0   PAGE 164 ;SEARCH: 006736 104446 SUBR04: TRAP  SAVREG ; CALL SAVE REGISTERS 006740 012701'  MOV  #TMPSYM,R1  ; R1 = TMPSYM(0) ADDRESS  003021 006744 012705'  MOV  #BYTCMD,R5  ; R5 = BYTCMD ADDRESS  002724 006750 005015  CLR  @R5   ; BYTCMD = 0 006752 105711  TSTB  @R1   ; IS SYMBOL ALREADY PACKED ? EN;  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 .  = HBRCSE 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@FINING 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 SYMBOL'S FLAGS AND .CSECT ID  TRAP  ITEM ; CALL ITEM  BLE  MAIN16  ;LIST SYMBOLS MOV R2,-(R6) ;WAIT FOR UNDEFINED SYMBOLS EMT WTCMD BR END12    ;CLOSE AND END22: TRAP CLEAN  ;RELEASE SYM.   PAGE 041    ;TABLE FILE. END22A: INCB @R5  ;INCREASE PASS NUMBER CMPB @R5,MAXPASS-O03 BGT END23 MOV SILB-O03,-(R6) ;CLOSE SOURCE      ; IS TMPSYM(0) = 0 ? 006754 001002  BNE  SERCH0  ; NOT PACKED YET     ; ALREADY PACKED 006756 005201  INC  R1   ; INCREMENT R1   PAGE 165 006760 000465  BR  SERCHE  ; INITIATE SEARCHING OF UST    ; BYTE COMMAND INTERROGATION 006762 116700 SERCH0: MOVB  CNTCHAR,R0  ; R0 = SYMBOL'S CHAR. COUNT  174050 006766 120027  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 .  ONTIZALIIAITIN. 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;  < ; 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: BISB  REGTYP-O04,@R6 ; COMBINE THE EXPRESSION'S REG.     ; TYPE 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 R CMPB  R0,#6  ; ARE THERE LESS THAN 6 CHARS. ?  000006 006772 002014  BGE  SERCH1  ; NOPE, BYTE COMMAND DISABLED   PAGE 166 006774 120027  CMPB  R0,#3  ; ARE THERE MORE THAN 3 CHARS. ?  000003 007000 003411  BLE  SERCH1  ; NOPE, BYTE COMMAND DISABLED 007002 126027'  CMPB  TMPSYM-1(R0),#2 ; IS LAST CHAR. A 'B' ?  003020  000002 007010 001005  BNE  SERCH1  ; NOPE LEABJT.-  =  P SEAR P8 R1UB S RDWO .  CKHE CND ELDIE F ; LEABJT.-  =  D ENLD F7 R1UB S RDWO .  ORATINRMTET EX N ; LEABJT.-  = RMTEEX NB R3UB S RDWO .  CKHE CIAED-MOFD-ENT PUUT O ; LEABJT.-  =  K CHOM E6 R1UB S RDWO .  RSTEISEG RET S ; LEABJT.-  =  G REET SC ND.E 5 R1UB S RDWO .  EGOS N DFIF .  DCEN .  #3Y LAEROV4 RYNT E ; Y4TREN  D OR.W G SENO  F NDIF .  UTTPOUD TEIS LLEAB TOLMBSY;  E BLTA-J .  = 8 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  MOV  (R6)+,HINDEX-O04 ; RESTORE SYMBOL'S ENTRY ADDRESS  MOV  (R6)2,-(R6) EMT WTCMD JMP SETPASS-O03 END23: MOV #ERRMSG-BEGO03+BEGOVR,-(R6) ;ERROR LINE COUNT MOV #COLB,-(R6) ;TO COMMAND 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 L, BYTE COMMAND DISABLED    ; YES, POTENTIALLY A BYTE COMMAND 007012 105060'  CLRB  TMPSYM-1(R0) ; BLANK OUT THE LAST CHAR.  003020   PAGE 167 007016 006300  ASL  R0   ; R0 = R0*2 007020 016015'  MOV  BYTCON(R0),@R5 ; BYTCMD = THE EFFECTIVE  002710     ; MOD40 'B' CONSTANT SERCH1:  ; OPEN SUBROUTINE MOD40 PACKER   STLLST 14BRSU  D OR.W S ERSTGIREE AV S ; LEABJT.-  =  G REAV S3 R1UB S RDWO .  ONSIERNVCOI CIASO TRYNABI;  E BLTA-J .  = SCNABI DCEN .  12BRSU  D OR.W G SENO  F FD.I C ND.E 3 #AYRLVE OY3TREN;  3 RYNT E RDWO .  EGOS N DFFN.I G INSTLIE BLTAL BOYM S ; LEABJT.-  =  T ISTL S1 R1UB S RDWO .  ERCTRAHA CET G ; LEABJT.-  = ARCHET G0 R1UB S RDWO .  BSTAD ANS NKLA BCKHE C ; LEABJT.-  =  S ABBT C9 R0UB S RD4+,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: INCB  AERROR-O04 MAIN89:  JMP  MAIN1E-O04 MAIN88: COMB  BINOUT-O04AST .BYTE CR,LF .ASCII / END/ .BYTE CR,LF .EVEN   PAGE 042  ; SECTION SYMBOL TABLE LISTING   ; GENERATE AN ALPHABETIZED LISTING OF THE   ; USERS SYMBOL TABLE.   ; 1) ENTIRE SYMBOL TABLE IF STMASK CONTAINS 0.   ; THIS INCLUDES .CSECT  ; PACKED = CHAR1*40**2 + CHAR2*40 + CHAR3   ;  = CHAR4*40**2 + CHAR5*40 + CHAR6    ; INPUT R1 = TMPSYM(0) ADDRESS    ;  IF TMPSYM(0) = 0   PAGE 170    ;  THEN AVOID PACKING    ; OUTPUT TMPSYM(0) + 0    ;  TMPSYM(1,2) = FIRST TRIAD    ;  TMPSYM(3,4WO .  ERFFBUY ARIN BERNT E ; LEABJT.-  =  F BUEB 08BRSU  D OR.W G INSSCERO PNELIF OND E ; LEABJT.-  = NELIND E7 R0UB S RDWO .  ISYSALANX TAYN S ; LEABJT.-  =  X TAYN S6 R0UB S RDWO .  LEAB TOLMBSYR TEEN;  E BLTA-J .  = ERNT EB R2UB S RDWO .  UEAL VRSTEISEG RCEOR F ; LEABJT.-  =  E RCFO RA R2UB S RDWO .  UEAL VRSTEISEG RCKHE C ; LEABJT.-  =  K ECCH R5 R0UB S RDWO .  UEAL V'SOLMBSYE AV S ; LEABJT.-  =  0  ; 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  TSTB  RSLMOD-O04  BLE  MAIN87  ;NOT RELOCATABLE EXPRESSION IN .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 ) = SECOND TRIAD    ;  TMPSYM(0) MUST BE AT AN    ;  ODD MEMORY ADDRESS 007024 105711 MOD40:  TSTB  @R1   ; IS TMPSYM(0) = 0 ? 007026 001401  BEQ  MOD404 007030 104504  TRAP  SERCHB 007032 005201 MOD404:  INC  R1   ; R1 = TMPSYM(0) ADDRESS ;SEARCH PERMANENT SYMBOL TABLE 007034 016702 SERCH3: MOV PERBOT,R2 ;TABLE BASE  173722 007040 016703 MOV P 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 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,  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  ; NOPE, VALID SITUATION  TRAP  SAVVAL ; CALL SAVE SYMBOL'S VALUE  BR 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(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. ERTOP,R3 ;1ST ADDRESS BELOW TABLE  173720 007044 104524 TRAP BINSRCH  ;BINARY SEARCH 007046 001430 BEQ SERCHG  ;MATCH NOT FOUND ;MATCH FOUND IN PST 007050 005715 TST @R5  ;IS BYTCMD ENABLED? 007052 001412 BEQ SERCHF  ;NO 007054 061567 SERCHH: ADD @R5,TMPSYM+3 ;REPLACE THE DELETED 'B  173744    ;TRIAD2=TRIAD2+THE    ;EFFECTIVE MOD40 CONSTANT. 007060 005015 CLR @R5  ;BYTCMD=0 007062 132767 ;  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 GEPA .  ;R TOCADIINB TAR ONKLA B ;   0 TEBY .: AGFLBT SSLA C'SONTIUCTRNS I ;   0 TEBY .: SSLAIC SKMAG INSTLIE BLTAL BOYM S ;   0 TEBY .: SKMAST R.TEUNCOL BOYM S ;     'SUTTPOUD TEIS LLEAB TOLMBSY;  ( 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) ;PROG. SECTION ID MAIN1C: BISB  #DEFFLG,@R1  ; FLAG THIS SYMBOLTSTB 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 SYMBOL TABLE LISTED OUTPUT ;OUTPUT .CSECT TABLE  BITB #BYTFLG,TFLAGS ;MNEMONIC BYTE ENABLED?  000001  173740 007070 001761 BEQ SERCH3  ;NO 007072 052767 BIS #100000,QUANTITY ;SET BYTE INDICATOR  100000  173312 007100 116704 SERCHF: MOVB TFLAGS,R4  173724 007104 006204 ASR R4 007106 006204 ASR R4 007110 006204 ASR R4 007112 042704 BIC #177741,R4 ;SAVE INSTRUCTION  177741 007116 110467 MOVB R4,ICLASS ;CLASS INDEX.  173720 007122 104452 SERCHI: TRAP SETREG 007124 005700  0  E YT.B C:TSIS LR TEUNCOM TE I'SONSIESPREX;   0  E YT.B T:UNCO IR TEUNCOR TEACARCHS M'TE I ;   0 TEBY .R:HATCCN ORATICND IUTTPOUY ARIN B ;   0 TEBY .: UTNOBI ORATICND INGDIEN PEMIT;   0  E YT.B N:MITE IG LA FUTTPOUS D' IR.HA C ;   0 TEBY . G:LASF ORATICND IPETYS M'TE I ;   0 TEBY . E:YPIT ENEV .  IDN IOCTSEL RONTCO ;  0 TEBY . D:TISC CS AGFLS E'BLTAL BOYM SRYRAPOEM T ;   0 TEBY .: GSLATF 0 RDWO . $ 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 .EOT   ;END OF FILE #4 ;***** OVERLAY #5 ***** O05=BEGOVR-BEGO05  ;COMPUTE OFFSET FROM    ;RUN TIME OVERLAY AREA BEGO05: ;JUMP TABLE TO ENTRY PO TSTB STMASK-O03 BNE STLST3  ;EITHER NO .CSECT OR ALREADY DONE COMB STMASK-O03  ;REVERSE SWITCH MOV PERTOP-O03,R5 ;BOTTOM OF .CSECT TABLE MOV CONTOP-O03,R4 ;TOP OF .CSECT TABLE COMB LCSECT-O03  ;CSECT PROCESSING MOV #412,WORD4-O03 ;CSECT #1, LABEL FLAG, DEFINED BR STLST0 STLST3: TST SLLB-O03 ;SYMBOL LISTING DEVICE INITED YTST R0 007126 000207 RTS R7 ;MATCH NOT FOUND IN PST 007130 005715 SERCHG: TST @R5  ;IS BYTCMD ENABLED? 007132 001350 BNE SERCHH  ;YES---SEARCH PST & UST    ;WITH COMPLETE SYMBOL. ;ON A SECOND CALL TO SEARCH WITH THE ;SYMBOL IN TMPSYM+1, TMPSYM+3 ALREADY PACKED, ;CONTROL COMES HERE TO SEARCH THE USER ;SYMBOL TABLE. ;SEARCH USER SYMBOL TABLE. 00713 0 RDWO .  0 RDWO .  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;  T N'DO0 F ;I 0E YT.B T:NIOI N" 1RL1PA "NTRI P - 0ON;N 773E YT.B T:ENID ENEV. H TCWI S'SCTSE.CT IS;L 0E YT.B T:ECCS LR TEUNCOE BLEMSS A'TON;D 0E YT.B T:ACNT DL VELET INTS ;IN THIS OVERLAY. ; JMP OPCODE  ;ENTRY1 JMP EOFFLG  ;ENTRY2 .ENDC ; ; ; 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  @R3   ; SIZE=0  MOV  #TBBUF,R2  ;ET? BEQ STLSTE ;NO - BRANCH MOV #SLLB,-(R6) ;WAIT FOR OUTPUT TERMINATION EMT WTCMD STLSTE:  TRAP POPREG  ; RETURN AFTER POPPING REGISTERS. ;  .PAGE 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 4 016702 SERCHE: MOV CONTOP,R2 ;TABLE BASE  173176   PAGE 171 007140 016703 MOV USRTOP,R3 ;1ST ADDRESS BELOW TABLE  173174 007144 104524 TRAP BINSRCH  ;BINARY SEARCH 007146 001002 BNE SERCHJ  ;MATCH FOUND ;MATCH NOT FOUND IN UST 007150 005300 DEC R0  ;MAKE NEGATIVE TO 007152 000763 BR SERCHI  ;INDICATE NOT FOUND   PAGE 172 ;MATCH FOUNES NLSNAIOITNDCO;0 TEBY.: LVSTCN 0 TEBY . H:LTAR VP KUAC BODLMRS ;  0 TEBY . D:2MSL R) ONTIEC SALRNTEEX (LEABATOCEL R2=;-    L BALO G1=;-    ) ONTIEC SNTREUR(CE BLTACALORE= ;1    E UTOLBS A0= ;    ONSIESPREXF OPETYE THS TECADIINS HI;T  0  E YT.B : ODLMRS 'SCTSE.CD MENA= ) (876-3;2    T ECCS .EDAMNN U1= ;    CTSE.A= ;0    : ISE ONN IOCTSET HA WINS TECADIINS HI;T  1  E YT.B : ODCMSE 0 TEBY . X:DIRA +1ZESIT=FMYT 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  ; RTS  MNEMONICS CLASS4: .WORD  MAIN30-BEGO05+BEGOV   PAGE 043 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 TRIAD MOV #2,R0  ;TWO TRIAD COUNTER. D IN UST 007154 005000 SERCHJ: CLR R0  ;MATCH IN UST 007156 005003 CLR R3 007160 156703 BISB CSCTID,R3 ;DON'T PROPAGATE SIGN.  173645 007164 001417 BEQ SERCHK  ;UNDEFINED OR ABSOLUTE 007166 122703 CMPB #MDFLAG,R3  000377 007172 001414 BEQ SERCHK  ;MULTIPLY DEFINED SYMBOL 007174 006303 ASL R3  ;(ID) 8 BYTES 007176 006303 ASL R3  ; 007200 006303 ASL R3  ; 007202 016701 MOV PERTOP,R1 ;BASE OF .CSECT TABLE  173556 007206 1603 B ;   0 TEBY .: MTTFBY SSREDD AENEVE BSTMUE IZ S ;   0 TEBY . E:IZ SE AGIME RCOU SVETIECFF EHE TOF;     G INSSCERO PRETIENE THT OU;     U HR TERFFBUT PUUT-OUTNP I ;     VETIECFF EHE TTOS NTOI P ;     LYALONTIDIONNC U1)0,S(DRHA B ;     ESSSREDD AERADHER FEUF BUTNP I ; F2BUSI  D OR.W E RCOU SOFE BLTAG INATOT R ; F1BUSI  D OR.W S:DRHA BN VE.E 0 RDWO.: D4OR W0 RDWO.: D3OR W0 RDWO.: D2OR WH RCR  ; BRANCH MNEMONICS CLASS5: .WORD  MAIN3Q-BEGO05+BEGOVR  ; JSR  MNEMONICS CLASS6: .WORD  MAIN3A-BEGO05+BEGOVR  ; TRAP  MNEMONICS MAIN30:  ; CONDITIONAL BRANCH MNEMONIC PROCESSING  CLR  R0   ; R0 = 0  TRAP  EXPE3 ; CALL EXPRESSION, SEMICOLON     ; MINIMAL TERMINATOR  BGT  MAIN32  ; NON-VOID EXPRESSION FOUND     ; VOID EXPRESSION ENCOUNTERE 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 01 SUB R3,R1  ;BASE -((ID)8) 007210 005721 TST (R1)+  ;INCREMENT ONE WORD. 007212 012167 SERCHL: MOV (R1)+,GLBSY1 ;1ST TRIAD  173526 007216 011167 MOV (R1),GLBSY2 ;2ND TRIAD  173524 007222 000737 BR SERCHI 007224 136727 SERCHK: BITB TFLAGS,#GLBFLG  173600  000100 007232 001733 BEQ SERCHI  ;.GLOBL FLAG NOT SET 007234 136727 BITB TFLAGS,#DEFFLG  173570  000010 007242 001327 BNE SERCHI  ;ENTRY POINT ;UNDEFINED .GLNSLIO TUTNP;I  0D OR.W 1:RDWO S)ESDRADT ESOW(LT PSF OOP;T  BTMTSY RDWO.: OPRTPE S)ESDRADT ESGHHI (ST POFM TOOT;B  BBMTSY RDWO.: OTRBPE T.ENEMATST;     E RCOU SNTSERE PHE TINTHWI;     D SEESOCPRG INBE) ERCTRAHA(C;     E YT BNTREUR CHE TATY TLECIR D ;     TSINPOY TLANSTON CERNTOI PISTH;   0  D OR.W: TEBYUR CD OR WNDMAOM CNSIOCTRUSTINN A ;     OF) DR(MS LDIE FNGSIESDRAD;     L RANEGEE THF OONTIUCTRNSCO; D 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=RESULT-USER'S PC.  SUB  #2,@R4  ; RESULT = RESULT-2  ASR  BEQ  DECODF  ;OUTPUT OF SYMBOL TABLE FOR  MOVB  #'R,10(R1)  ;RELOCATABLE SYMBOLS  BR  DECOD8 DECODF:  BITB  #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  MOBL (EXTERNAL REFERENCE) 007244 000762 BR SERCHL   PAGE 173 ; ; ;SERCHB    ;MOD40 PACKER 007246 104446 SUBR31:  TRAP  SAVREG ; CALL SAVE REGISTERS 007250 012705'  MOV  #TMPSYM+3,R5 ; R5 = TMPSYM+3 ADDRESS  003024 007254 012704'  MOV  #TMPSYM+1,R4 ; R4 = TMPSYM+1 ADDRESS  003022 007260 005003 MOD400: CLR  R3   ; SUM =     E THN IEDUSD OR WTADA;   0  D OR.W D:ANOM C0  D OR.W : LGDFRL GERATO S ;   0 TEBY . T:CNEL RE IVCTREDID RL;   0  E YT.B : IRLD R;   0  D OR.W : MDRCDI MENA;   0  D OR.W : Y2BSGL OLMBSYL BALO G ;   0 RDWO . 1:SYLB GE THS INTAON CCHHI WERNTOI P ;   0 RDWO .: OLMBSY RDWO. PC. AX MTOR TEINPO;   0  D OR.W : PCIR HD OR WPCO TERNTOI P ;   0 RDWO . C:LPRE RSTEINPOY TRENT ECCS .NTREURC  @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 MAINC0:  ; CONDITION CODE OPERATES, WAIT, HALT, RTI   ;   SINGULAR PROCESSING  CMPB  SAVTERM-O05,#-5 OVB  #'=,@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  ;OF 0 IN CASE OF AN UNDEFINED  MOVB  #'G,7(R1) DECODH:  MOV  #"**,-(R6)  ; 0 007262 005002 MOD401: CLR  R2   ; R2 = 0 007264 111102  MOVB  @R1,R2  ; R2 = 00+ TRANSLATED CHAR. 007266 060203  ADD  R2,R3  ; SUM = SUM+TRANSLATED CHAR. 007270 105021  CLRB  (R1)+  ; TMPSYM(R1) = 0 007272 020105  CMP  R1,R5  ; IS R1 < R5 ? 007274 002010  BGE  MOD402  ; NOPE, TRIAD COMPLETED 007276 006303  ASL  R3   ; SHIFT SUM LEFT 3 BITS 007300 006303  ASL  R3 007302 006303  ASL  ; RDWOD /IAGFLS OT DOF. DRAD;   0  D OR.W: PCERUS HS AS P ANGRIDUD REROER;     S NELIE THL ALF OUM SHE T ;   0 RDWO .: UMRSER SSREDD AERADHES R'FEUF B ;     UTNP ICEURSOE IVCTFEEFE TH;     F OSSREDD AHE TNSAINTCO;     D OR WISTH, ROZET NOF I ;     AGFLT PUUT ONDMAOM C ;   0 RDWO .: AGFLCO R.FEUF B ;     UTTPOUD TEIS LVETIECFF EHE T ;     INE YT BLEABILVA ANTREUR C ;     HE TAT  ; 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 MAIN3A:  ; TRAP MNEMONIC PROCESSING  CLR  R0   ; R0 = 0  TRAP  EXPE3 ; CALL EXPRESSION, ; MINIMAL TERMINATOR  TST  REGTYPE-O05  ; EXPRESSYES, 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 R3 007304 010346  MOV  R3,-(R6)  ; SAVE PARTIAL RESULT 007306 006303  ASL  R3   ; SHIFT SUM LEFT 2 BITS 007310 006303  ASL  R3 007312 062603  ADD  (R6)+,R3  ; SUM = SUM+PARTIAL RESULT 007314 000762  BR  MOD401  ; PROCESS NEXT CHARACTER 007316 010324 MOD402: MOV  R3,(R4)+  ; TMPSYM(R4) = RESULTANT TRIAD     ; INCREMENT R4 007320 062705  ADD  #3,R5  ; R5 = R5+3  000003 007324 0S NTOI PERNTOI PISTH;   0  D OR.W: STLIUR C. CHARSE;     E BLTAL BOYM SHE TNGRIDU;     T ANSTON CERCTRAHA CB' ' ;     VETIECFF EHE TNSAIET R ;   0 RDWO .: MDTCBY ONTISIPO. ARCHH -T 5','B;   0 12  D OR.W N IOITOS PR.HA CTH4-, B' ' ; 0 20 6 RDWO .  S.OLMBSYD LEABEN;     E YT BHE TTON IOATEL R ;     INE INUTROUB SCHARSE;     E THY BEDUSS NTTANSCO;     R TEACARCH' 'B0 -4OD MOFE BLION 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  ; BUILD THE COMAND WORD MAINCB:  TRAP  RLDBYT  ; GLOBAL ADDITIVE RELOR4 BISB 1(R5),R4 ;CONTROL SECTION ID. 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 20527'  CMP  R5,#TMPSYM+6 ; IS R5 > TMPSYM+6 ?  003027 007330 003753  BLE  MOD400  ; NOPE, REITERATE PACKING 007332 104540  TRAP  POPREG ; CALL SET REGISTERS AND RETURN ;  .PAGE   PAGE 174  ; SUBROUTINE SAVE REGISTERS   ; R0 IS A VOLATILE PROCESSOR - WIDE REGISTER ;SAVREG: 007334 010446 SUBR14: MOV  R4,-(R6)  TA;  10.-  =  N COYT B. RDWOG LA/FIDS L'BOYM SOFS ESDRAD;   0  D OR.W X:DEIN HK OCBLL NAMIER T'SUTTPOU;     Y ARIN BHE TOR FSSREDD A ;     MPJUE IVCTFEEFE THS INTARE;   0  D OR.W: DRPAJM 0 RDWO . N:CISR UMKSECCHT PUUT ORYNABI;     E THG INCTRUSTON COR FEDUS;   0  D OR.W M:SUOC B0  D OR.W: RMTEAV S N VE.E L BOYM SLEABATOCEL RUSIOEVPR;   F OIDT ECCS .INTAINMAO ;T     NETIOUBRSUN IOSSREXP EIND SE;U  CATION  BR  MAINCA  ; OBJECT CODE 5 ;  .PAGE 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  @R4,@R6  ; SET THE REGISTER FIELD     ; WITHIN THE COMAND  ;SUFFIX G  BEQ  DECODB   PAGE 044  MOVB  #'G,7(R1) DECODB: TRAP SETREG  ADD  #26,CURLIST-O03  ; SYMBOL FIELD =22(10) CHARS.  INCB  LISTSC-O03  ; INCREMENT SYMBOL COUNTER  BGT  DECODC  ; LO BUFFER FULL, OUTPUT  JMP  STLST1  ; PROCESS THE NEXT SYMBOL DECODC:  TRAP  STLLS ; STACK R4 007336 010346  MOV  R3,-(R6)  ; STACK R3 007340 010246  MOV  R2,-(R6)  ; STACK R2 007342 010146  MOV  R1,-(R6)  ; STACK R1 007344 016646  MOV  10(R6),-(R6) ; STACK THE RETURN ADDRESS  000010 007350 010566  MOV  R5,12(R6)  ; STACK R5  000012 007354 000207  RTS  R7  ; RETURN  ; SUBROUTINE SET REGISTERS   ; R0 IS A VOLATILE PROCESSOR - WIDE REG0E YT.B C:SERG P E NCUEEQ SLFF--LCR; LFF,,LCR  E YT.B / X :XSSM::MHH /I CIAS .: XXMETI /Y -YDDM-/M IISC.A X:EXAT D/ XXXX XGEPA    /I CIAS. E NCUEEQ SFFR- C ;  F ,FLFR, C TEBY .  NTOU CTEBYL UACT A ;   2 5 D OR.W ) LOE(OD M I)(HUSATST;  00  D OR.W T UNCOE YT BAX;M 52 D OR.W F:BUAG PR FEUF BGESAES MGEPA;  ENEV .  4 =D COSP L2 =D COTY TN IOATOC WORD  BR  MAIN3W  ; COMPLETE COMAND PROCESSING ;  .PAGE 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 SIZE TO 2 WORDS  BR  MAIN3U  ; CLEAR THE NEXT OBJECT WORD     ; COMPLETE CONSTRUCTING     ; THE COMAND W T ; CALL SYMBOL TABLE LISTED OUTPUT  JMP  STLST0  ; 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 BUFFER ADDRESS  ISTER ;SETREG: 007356 012605 SUBR16: MOV  (R6)+,R5  ; R5 SAVES THE RETURN ADDRESS 007360 012601  MOV  (R6)+,R1  ; RESTORE R1 007362 012602  MOV  (R6)+,R2  ; RESTORE R2 007364 012603  MOV  (R6)+,R3  ; RESTORE R3 007366 012604  MOV  (R6)+,R4  ; RESTORE R4 007370 000205  RTS  R5   ; RESTORE R5    ; RETURN ; SUBROUTINE TO POPEL 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  = .1D2RL TOR FEREE ESTH;   4  = MDDCRL 3  = IRTDTX 001= SKTMDL 1  =NELINGLO 40 3  = S7LASC ORD ;  .PAGE 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  MAIN3L  TRAP  ITEM  BLE  MAINC1  INCB  ITEMIN-O05  BR  MAINC1 ;  .PAGE CMP  (R1)+,(R1)+  SUB  R1,@R0  MOV  @R0,@R1 STLLS1: MOV #0,-(R6) ;OUTPUT SYMBOL TABLE    ;NOT RE-ENTRANT EMT WRCMD  RTS  R7 ;  .PAGE   PAGE 045 ;ARITHMETIC CONDITIONAL ASSEMBLY PROCESSORS ; ;FORM --- .IF??? EXPRESSION  REGISTERS ; AND EXIT CALLING ROUTINE. ;POPREG: 007372 005726 SUBR45: TST (R6)+  ;DISCARD RETURN FROM POPREG 007374 104452 TRAP SETREG  ;SET REGISTERS 007376 000207 RTS R7  ;EXIT CALLING ROUTINE.   PAGE 175 ;SUBROUTINE TO ENTER A 4 WORD SYMBOL ENTRY INTO A ;SPECIFIED SLOT IN A SYMBOL TABLE. ;THERE ARE 2 ENTRY POINTS: 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=1R9ER ;) RSROER" "F (ESOD CGESAES MORRR;E ANTR .UTNP IONR ROER; E ICEV DORN RA.TT PUUT;O   ONR ROERE ICEV DORMAINC2:  ; 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  #4,@R3  ; SIZE = 4  CLR  TBBUF+4-O05  ; TBBUF(4,5) = 0 MAIN3U: CLR  TBBUF+2-O05  ; TBBUF(2,3) = 0 MAIN3V: BIS  ;.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 ;THE EXPRESSION TST RESULT-O03 ;TEST THE RESULT JMP IF000-BEGO03+BEGOVR(R1) IF000: BNE IF020     ;IFZ BR IF010  ;TRAP ENTER ;INPUT 1) THE BASE ADDRESS (HIGHEST ADDRESS) OF THE SLOT IN HINDEX ; 2) THE 4 WORD ENTRY IN ;  TMPSYM+1 ;  TMPSYM+3 ;  RESULT ;  TFLAGS ;OUTPUT IF EXPANDED SYMBOL TABLE WOULD ; COLLIDE WITH BOTTOM OF STACK ; STACK IS MOVED DOWN FOUR WORDS. ; 1) ALL SYMBOLS FROM HINDEX TO D 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 NDMAOM CSEEAEL;R  7= LS RD ANMMCOE ETEL;D 21 =T DL NDMAOM CSELO;C 17 =S CL NDMAOM CENOP;6 1= PN OD ANMMCOE  @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 EOFFLG:  ; 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  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 ;INCREMENT DON'T ASSEMBLE COUNTER.  ;  USRTOP ADUSTED DOWNWARDS 4 WORDS. ; 2) USRTOP-4 (WORDS) TO USRTOP ; 3) NEW SYMBOL ENTRY STORED ;  STARTING AT THE ADDRESS ;  IN HINDEX. ;TRAP OVRLAY ;INPUT SAME AS ABOVE ;OUTPUT STEP 3) ABOVE. NO SYMBOL ; TABLE ADJUSTMENT IS MADE. ;R0 IS DESTROYED AT BOTH ENTRIES. ;ENTER: ENTRY IFIZALTINI 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 OD MUTNP ICEURSO;   0  =  E ODIM S4 62 7  = S2AB 017412  =  1 BS A0  = L2RE 0  = L1REBEQ 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. 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- 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  TABLE ADJUSTMENT REQUIRED. 007400 104446 SUBR06: TRAP SAVREG  ;SAVE REGISTERS. 007402 016700 MOV USRTOP,R0  172732 007406 012704 MOV #10,R4  ;FOR LATER USE  000010 007412 010001 MOV R0,R1  ;DECREASE 1ST FREE REGISTER 007414 160401 SUB R4,R1  ;POINTER BY 4 WORDS. 007416 020167 CMP R1,STKBOT ;CHECK FOR COLLISION WITH STACK  172720 007422 103015 BHIS ENTER1  ;NO COLLISION. 007424 010602 MOV R6,R2  ;UST WOULD RUN INTO 007426 160406 SUB 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 4  = LGLFRE 3IT BG,LA FVETIECIR DLYMBSEAS;   0 1  = IRMDAS 3IT BG,LA FEDINEF D ;  10  = 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 SETP0-O05 .IFNDF NOSEG ENDO05: SIZO05=ENDO05-BEGO05 ; .ENDC .EOT .ENDC .IFNDF NOSEG .CSECT ;BEGINNING OF OVERLAY AREA ;THE SI TSTB ITYPE-O03  ;IS THIS AN OK SYMBOL? IFDF12: TRAP SEARCH  ;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  R4,R6  ;STACK MOVE STACK 007430 010603 MOV R6,R3  ;DOWN 4 WORDS. 007432 012223 ENTER4: MOV (R2)+,(R3)+ ;ALSO ADJUST STKBOT 007434 020267 CMP R2,STKBOT  172702 007440 103774 BLO ENTER4 007442 160467 SUB R4,STKBOT  172674 ;DUMMY OPERATION TO PREVENT ;DESTRUCTION OF MONITOR 007446 012746 MOV #102,-(R6)  000102 007452 104041 EMT 41 007454 005726 TST (R6)+ 007456 010167 ENTER1: MOV R1,USRTOP ;SAVE MODIFIED 1S 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 ORATICND IERMBNUL MACIDE;   0  E YT.B M:NUEC D0  E YT.B 0  E YT.B 0  E YT.B 0  E YT.B!ZE 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 ENTRY1=. ENTRY2=.+4 ENTRY3=.+10 ENTRY4=.+14 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" 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", SYMBOL 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--BRANC#T FREE REG. PTR.  172656 007462 016702 MOV HINDEX,R2  173230 007466 020002 CMP R0,R2  ;NO. OF WORDS TO TRANSFER.   PAGE 176 007470 001412 BEQ ENTER2  ;NO ADJUSTMENT NEEDED. 007472 020267 CMP R2,HUSERPC ;DECREMENT POINTERS TO  173236 007476 103404 BLO ENTER3  ;USER PC ENTRY IF IT 007500 160467 SUB R4,HUSERPC ;IS TO BE MOVED.  173230 007504 160467 SUB R4,USERPC  172752 007510 012021 ENTER3: MOV (R0)+,(R1 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 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 RD% .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 EXTENSION .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&H INC R0  ;IS IT "&"? BEQ IFDF60  ;YES--BRANCH   PAGE 046 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:')+ ;ADJUST SYMBOL TABLE 007512 020200 CMP R2,R0  ;DOWNWARDS 4 WORDS. 007514 103375 BHIS ENTER3 007516 104452 ENTER2: TRAP SETREG  ;RESTORE REGISTERS ;OVRLAY: ENTRY IF SYMBOL ENTRY TO BE OVERLAYED. 007520 016700 SUBR40: MOV HINDEX,R0  173172 007524 016710 MOV TFLAGS,@R0 ;PLACE 4 WORD  173300 007530 016740 MOV RESULT,-(R0) ;ENTRY IN  172642 007534 016740 MOV TMPSYM+3,-(R0) ;SPECIFIED SLOT.  173264 007540 016740 MOV TMPSYM+1,WO. / 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.: 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 )  ;WORD COUNT OVRIER: .WORD 4  ;FUNCTION (READ) .WORD 0  ;NUMBER OF WORDS NOT TRAN'D ;SUBROUTINE TO DIVIDE THE TOP WORD OF ;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  ;QU* TST 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 OP+-(R0)  173256 007544 000207 RTS R7  ;RETURN   PAGE 177 ;SUBROUTINE BINARY SYMBOL TABLE SEARCH ;PERFORMS A BINARY SEARCH OVER AN ;ORDERED 4 WORD PER ENTRY SYMBOL ;TABLE. ;INPUT 1) THE BASE (LOWER) ADDRESS OF THE 2 ;  WORD (MODULO 40) SYMBOL IN R1 ; 2) THE STARTING (HIGHER) ADDRESS OF 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 TYM;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 -OTIENT 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 ; ;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. ;WHE.ERATOR ENCOUNTERED IFDF60: TST R1  ;PERFORM INCLUSIVE OR BEQ IFDF00  ;OPERATION IF .IFNDF IFDF70: MOV #IFDF30-BEGO03+BEGOVR,-(R6) ;STACK "AND" OPERATOR BR IFDF05 ;.ENDC PROCESSOR RENDC: DECB CNSTLV-O03 ;DECREMENT NESTED LEVEL COUNTER BGE ENDC01 ;TOO MANY .ENDC'S? INCB QERROR-O03 ;YES - SET QUE/ ;  THE SYMBOL TABLE IN R2 ; 3) THE 1ST FREE ADDRESS BELOW THE ;  SYMBOL TABLE IN R3 ; ;OUTPUT IF MATCH FOUND: ; 1) R0 AND CONDITION CODES NON 0 (POSITIVE) ; 2) HIGHER ADDRESS OF ENTRY TO HINDEX ; 3) VALUE OF SYMBOL TO QUANTITY ; 4) SYMBOL FLAGS TO TFLAGS (BYTE) ; 5) CONTROL SECTION ID TO CSCTID (BYTE) 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 .: ONSTLI GEPAR PES NELIR BEUM NUMIMAX;M 70 RDWO:.ESINXLMA TEDAUPR FOR BEUM NNELIR LEMBSEAS;0 RDWO . O:ENIN L) ALCT1N 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 WHETHER 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 ; ;SUBROUTINE TO TRANSFER A REQUESTED ;2STIONABLE 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 BR IF010 ;EXIT ;CONDITIONALS FRONT END PROCESSOR (.IF...)  ;IF R0 = 0 ON ENTRY, THEN EVALUATE  ;THE EXPRESSION. AN ERRORED EXPRESSION 3 ; ; IF NO MATCH: ; 1) R0 AND CONDITION CODES 0 ; 2) ADDRESS WHERE SYMBOL SHOULD ;  BE ENTERED TO HINDEX (HIGHER ADDRESS) ; 3) 0 TO QUANTITY, TFLAGS ;  AND CSCTID ;R2, R3 AND R4 ARE ALTERED. ; ;BINSRCH: 007546 010200 SUBR39: MOV R2,R0  ;TABLE BASE MINUS 007550 160300 SUB R3,R0  ;1ST FREE ADDR(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.: P2TASI ET STADAT PUIN; 0D OR.W B:IF ST ENRRCUO TRSTEINPO; 0D OR.W B:IL S/ DF/0 D5RA. 4 RDWO. / I2/S 505 OVERLAY FROM DISK TO THE OVERLAY AREA. ;CALLING SEQUENCE: ;  TRAP CONTRL  ;  .WORD N  ;WHERE N IS ;     ;THE OVERLAY NUMBER ; ;IF THE REQUESTED OVERLAY IS ALREADY RESIDENT, ;CONTROL IS RETURNED IMMEDIATELY TO THE CALLER. ; ;IF THE REQUESTED OVERLAY IS NOT RESIDENT: ; 1. IT IS TRAN'D IN (.TRAN, .WAIT) ; 2. A CHECK IS MADE FOR ERRORS ;  DURING TRANSFER ; 3. RUNTAB IS UPDATED TO REFLECT ;  WHICH OVERLAY IS NOW RESIDENT ; 4. RETURN TO CALLER ; ;CONTRL: SUBR46:6  ;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)+ ;HOUSE7ESS BELOW TABLE. 007552 006200 BINSR4: ASR R0  ;R0 CONTAINS TABLE SIZE/2. 007554 001010 BNE BINSR1 ;NO MATCH FOUND 007556 005067 BINSR5: CLR QUANTITY ;0 TO QUANTITY  172630 007562 005067 CLR TFLAGS  ;0 TO TFLAGS AND CSCTID  173242 007566 010367 MOV R3,HINDEX ;SYMBOL TABLE ENTRY ADDRESS  173124 007572 005700 BINSR3: TST R0  ;SET CONDITION CODES 007574 000207 RTS R7  ;RETURN ;CONTINUE TESTING 007576 042700 BINAD.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  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 IN9 TRAP SAVREG  ;SAVE REGISTERS 1 THRU 5 MOV @12(R6),R1 ;OVERLAY NUMBER TO R1 ASL R1  ;ADJUST TO WORD OFFSET MOV #RUNTAB,R2 ;BASE OF TABLE ADD R2,R1  ;ADDRESS OF REQUESTED ENTRY MOV @R1,OVRTBI ;SET UP TRAN BLOCK BLT CONTR1  ;OVERLAY ALREADY IN MOV #OVRTBI,-(R6) ;.TRAN IN MOV #OVRLB,-(R6) ;THE OVERLAY EMT 10 ;UPDATE RUNTAB MOV (R2)+,R3 ;N*2 CONTR3: SUB #2,R3  BLT CONTR4  ;MORE ENTRIES? BIC #100000,(R2)+ ;YES. CLEAR IN FLAG BR CONTR3 :KEEP 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   PAGE 047 TSTB ICOUNT-O03 ;IF EXPRESSION WAS NULL, THEN BNE COND04 ;RESULT ;SR1: BIC #100007,R0  ;ASSURE MULTIPLE OF 4 WORDS AND PREVENT SIGN  100007     ;PROPAGATION 007602 010204 MOV R2,R4 007604 160004 SUB R0,R4  ;TABLE BASE - OFFSET 007606 026411 CMP -6(R4),@R1 ;TEST FOR MATCH  177772 007612 001015 BNE BINSR2  ;NO MATCH. ;1ST TRIAD MATCHES 007614 026461 CMP -4(R4),2(R1)  177774  000002 007622 001011 BNE BINSR2  ;NO MATCH. ;2ND TRIAD MATCHES ;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 TEBY . R:ROER R:ERAX M0  E YT.B R:ROER UD CEENEREF ROLMBSYD NEFIDEUN;   U ' TEBY .  0 TEBY= CONTR4: BIS #100000,@R1 ;SET NEW IN FLAG TRAP SETREG  ;RESTORE REGISTERS MOV #OVRLB,-(R6) ;WAIT FOR EMT WTCMD  ;COMPLETION ;CHECK FOR ERROR ON TRANSFER BIT #140000,OVRIER BEQ CONTR2 ;ERROR ON TRANSFER MOV OVRIER,-(R6) ;PUSH STATUS BYTE BIC #377,@R6 ;INFO INTO LOW SWAB @R6  ;INFO BYTE AND MOV #ERR8,-(R6) ;CLEAR THE REST. JMP ERROUT CONTR1: TRAP SETREG  ;RESTORE REGS. 1 THRU 5 CONTR2: ADD #2,@R6  ;INCREMENT PAST ARGUMENT RTS R7  ;RETURN>= 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  .WORD  0  ;FORMATTED ASCII  .WORD  23  .BYTE  CR,LF,' ,0  .WORD  0,0  .BYTE  '  .ASCII /ERRORS/  .B?   PAGE 200 007624 016467 MOV -2(R4),QUANTITY ;VALUE OF SYMBOL  177776  172560 007632 011467 MOV @R4,TFLAGS ;FLAGS AND .CSECT ID  173172 007636 005200 INC R0  ;NON-0 TO INDICATE FOUND. 007640 010467 MOV R4,HINDEX ;ADDRESS OF ENTRY  173052 007644 000752 BR BINSR3 007646 103402 BINSR2: BLO BINSR6 007650 010403 MOV R4,R3  ;SYMBOL LOWER IN ORDERED TABLE. 007652 000737 BR BINSR4 007654 030027 BINSR6: BIT R0,#10 .: 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 ;  '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 ROER TO CALLER .ENDC ERRTAB:   ; ASSEMBLY ERROR TABLE     ; SINGLE WORD ENTRIES :     ; ASCII CHARACTER (LOW BYTE)     ; ERROR INDICATOR (HIGH BYTE)  .BYTE  'L   ; INPUT LINE BUFFER OVERFLOW LERROR: .BYTE  0  .BYTE  'P   ; PHASE ERROR PERROR: .BYTE  0  .BYTE  'Q   ; QUESTIONABLE SYNTAX QERROR: .BYTE  0  .BYTE  'A   ; ADDRESSING YTE  CR,LF,LF,0 .EVEN   PAGE 050 .IFNDF NOSEG ENDO03: SIZO03=ENDO03-BEGO03 ; .EOT   ;END OF FILE #3   PAGE 051 ;***** OVERLAY #4 ***** O04=BEGOVR-BEGO04  ;COMPUTE OFFSET FROM  ;SYMBOL HIGHER IN ORDERED TABLE  000010 007660 001402 BEQ BINSR7   PAGE 201 007662 162704 SUB #10,R4  ;ADJUST TO FIND MIDDLE ENTRY.  000010 007666 010402 BINSR7: MOV R4,R2  ;THIS ENTRY -4 WORDS = NEW BASE. 007670 020403 CMP R4,R3  ;COMPARE WITH BOTTOM LIMIT. 007672 101327 BHI BINSR4 007674 005000 CLR R0  ;SEARCH WOULD EXCEED 007676 000727 BR BINSR5  ;BOTTOM OF TABLE.