B  .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 OVERLA GEPA .  ; D OI VISN IOSSREXP E ; 05NTSY  E BL D TEESQUREN URET R CR; , ) ( ;    N IOATLUVA EONSIESPREXL AL C ; E1XP E APTR 1:T1YN SA T0YN S BR R TEACARCHT EX NHE TOR FLLCA; M ERXTNE  P RA T  NO;  1 T1YN S NE B  ?# N AORATINRMTES I ; MMCITC,#R1  B MP C  ORATINRMTET ENRRCUE THE AV S ; R13,@R  B OV M  LLCA. PREXE THR FOE AREPPR;   0 R LR C: 01NTSY ERCTRAHA CAB TORK ANBL;     - ON NXTNEE   MOV  RESULT,@R6  ; STACK EXPRESSION'S RESULT  TRAP  FLDEND ; DETERMINE FIELD TERMINATION ?  BLT  SYNT02  ; NOT THE FIELDS END    ; FIELD TERMINATOR IDENTIFIED AND     ; NO PARENTHESES FOUND  TRAP  RCHECK ; CALL CHECK FOR REGISTER EXPRESSION  BGE  SYPTCH  JMP  DIRMDR     ; REGISTER, THEREFORE     ; DIRECT MEMORY ADDRESSING SYPTCH:  BISB  Y VERSION OF THE ASSEMBLER IS SELF CONTAINED ;IN THAT IT IS ITS OWN OVERLAY BUILDER. ; ;WHEN THE SYMBOL "OVRBLD" IS DEFINED, THE ;RESULTING OBJECT MODULE IS THE BUILDER. ; ;WHEN THE SYMBOL "OVRBLD" IS NOT DEFINED, THE ;RESULTING OBJECT MODULE IS THE RESIDENT ASSEMBLER ; ;WHEN LINKED, THE BUILDER'S TOP SHOULD BE XXX474. ;EXECUTING THE BUILDER'S LOAD MODULE ;VIA THE MONITOR COMMAND RUN ;CAUSES THE CREATION OF THE ;CONTIGUOUS FILE OF OVERLAYS ;(PAL11R.OVR) ON DISK WITH LOGIN UIC. ; ;WHEN LINKTHT ATEBYUR CONTISIPO; M ERXTNE  P RA T  IT BRDFEDER MDT SE, ES Y ; R5,@RDFEDE # SBBI E OP N ; 01NTSY  E BN ? @ANR TONAMIER TIS;  F DECC#T3,@R  B MP C  ROZEA K ACST;  ) R6-(  R CL K ACSTE THN OEDAV SIS;     . PREXS ESDRADD RETEUNCOEN;     S AGFLD ANS NTOU CLL AARLE C ;  R2  R CL S IT BERSTGIREX DEINL RANEGE;     3 ** 2 =IT BNTMEREEC-DTOAU;     4 ** 2 =IT BNTMERENC-ITOAU;     RESULT,R2  ; EXPRESSION WAS TYPED AS     ; REGISTER, THEREFORE  JMP  REGMDR  ; REGISTER MODE ADDRESSING SYNT02:   ; PARENTHESES ENCOUNTERED  TRAP  RCHECK ; CALL CHECK FOR REGISTER EXPRESSION  BLT  SYNT04  ; EXPRESSION WAS NOT TYPED     ; AS REGISTER, THEREFORE     ; INDEX MODE ADDRESSING  INCB  RERROR  ; EXPRESSION WAS TYPED AS     ; REGISTER, THEREFORE A     ; PARENTHESIS MUST BE MIS ED WITH THE PERMANENT SYMBOL TABLE, THE ;RESIDENT ASSEMBLER'S TOP SHOULD ALSO BE XXX474. ;AT RUN TIME, THE RESIDENT ASSEMBLER ;REQUIRES THE OVERLAYS TO BE ON DISK ;WITH FILE NAME PAL11R.OVR AND LOGIN OR [1,1]UIC. ; .GLOBL SYMTBB,SYMTBT ;EXTERNAL REFERENCES .GLOBL ASCII,ASECT,BYTE,CSECT,END,EOT,EVEN ;ENTRY POINTS. .GLOBL GLOBL,LIMIT,RAD50,TITLE,WORD .GLOBL IFG,IFL,IFNZ,IFGE,ENDC .GLOBL IFLE,IFZ,IFDF,IFNDF .GLOBL LIST,NLIST,GEES ; COMPUTER  PDP-11 ; CONFIGURATION  DISK O5 ** 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, MASSACHUSETT 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 CTREDIX 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  ;    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 ; ;  . 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 . 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 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 DEDION 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 BAE TH 1) UTNP;I  E.BLTA; L BOYM SRYNT EER PRDWO4 D REDEOR; N AEROVH RCEA SRYNABIA S RMFOER;P  CHARSEE BLTAL BOYM SRYNABIE INUTROUB;S N URET;R  R7 TSR ) R0-(1,M+SYMPTV MO  T.LO SEDFICIPE;S 0)(R,-+3YMPSTM OVM N IRYNT;E 0)(R,-LTSURE OVM D OR W 4CELA;P R0,@GSLATF OVM 0 ,REXNDHI OVM: 40BRSU D.YELAEROVE BTOY TRENL BOYM SIFY TREN Y:LAVR;O RSTEISEG RRETOES;R  EGTRSE APTR 2:ERNT E3 ERNTES HIB . DSOR W0CR RETURN REQUESTED  BLE  SYNT07  ; CHECK FOR AUTO MODES  MOV  RESULT,@R6  ; STACK EXPRESSION'S RESULT  CMPB  R1,#TCCIMM  ; WAS THE SAVED TERMINATOR     ; AN # ?  BEQ  IMMMDR  ; YES, IMMEDIATE ADDRESSING  BR  SYNT02  ; PROCESS AS INDEX MODE ;  .PAGE SYNT0B:   ; DETERMINE ADDRESSING MODE FOR1R4,-(R6) ;SIZE BY 64(DECIMAL) JSR R7,DIVIDE ;QUOTIENT ON STACK. MOV (R6)+,R0 ;NUMBER OF 64'S IN    ;PHYSICAL BLOCK MOV @R6,R4  ;TOTAL NUMBER OF    ;PHYSICAL BLOCKS REQUIRED BLDR03: DEC R0  BEQ BLDR08  ;TOTAL NUMBER OF ADD R4,@R6  ;64 (DECIMAL) WORD BLOCKS BR BLDR03  ;REQUIRED ON TOP OF    ;STACK ;DELETE FILE IF ALREADY EXISTING BLDR08: MOV #BLDR04,-4(R2) ;ERROR RETURN MOV R2,-(R6) ;FILE BLOCK MOV R1,-(R6) ;LINK BLOCK EMT DLT B 4DSARNWOW;D  R02,RP CM  LEAB TOLMBSYT USDJ;A )+R1,()+R0(V MO 3:ERNT EC RPSE,UR4 UBS . EDOV MBEO TIS;C RPSEHU4,RB SU  ITF IRYNT EPCR SE;U  R3TEEN LOB O TRSTEINPOT ENEMCRDE;C RPSEHU2,RP CM  D.DEEE NNTMESTJUADO ;N  R2TEEN EQB . ERSFANTRO TDSOR WOF. NO; 2 ,RR0 MPC 2 ,REXNDHI OVM . TR PG.REE RE FST 1EDFIDIMOE AV;S OPRTUS1,RV MO 1:ERNT E+ 6)(R STT 1 4T EM  6)(R,-02#1 OVM R TONIMOF OONTIUCTRES;D NTVERE PTON IOATEROPY MMDU ;T BOTK,SR4 UBS 4 ERNTEO BL  4     ; FIELDS CONTAINING ANY     ; PARENTHESES     ; SEPARATE MAX. CASE FIRST  BITB  #ASEEN,R2  ; WAS AN ADDRESS SEEN ?  BNE  INDMDR  ; YES, INDEX MODE ADDRESSING  BITB  #AUTOINC,R2  ; WAS A + OPERATOR SEEN ?  BEQ  SYNT0D  JMP  INCMDR  ; YES, AUTO-INCREMENT MODE SYNT0D:  BITB  #AUTODEC,R2  ; WAS A - OPERATOR SEEN ?  BEQ  SYNT0E  JMP  DECMDR  ; YES, AUTO-DECREMENT MODE SYNT0E:  BIT5LDR04: CLR -4(R2)  ;ERRORS TO MONITOR ;ALLOCATE THE NECESSARY SPACE FOR ONE ;CONTIGUOUS FILE. MOV R2,-(R6) ;FILE BLOCK MOV R1,-(R6) ;LINK BLOCK EMT 15 TST (R6)+ BLT BLDR09  ;SPACE AVAILABLE? CLR -(R6)  ;NO. MOV #ERR9,-(R6) ;FATAL ERROR. BR BLDR10 ; ;DETERMINE THE PHYSICAL STARTING BLOCK ;OF THE CONTIGUOUS FILE AND PLACE IT ;IN THE 1ST WORD OF THE OUTPUT TRAN BLOCK. BLDR09: MOV R2,-(R6) ;FILE BLOCK CLR -(R6) MOV R1,-(R6) ;LINK BLOCK EMT 14 OTKBST2,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 ; B; . 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 ; `wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww3333333333333333ADDB C4d4d$Dwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww3333333333333333B4nvn8a ͋,L w:B ` 5 &  E >w   f5eU@  [*   & * G &( 8L'4e Q$ BBB"   U@ U e  "U%Gef. U U Bb 0 * BIIT #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)+  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 ADDRE    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 PROCE 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, ; 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 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 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 FIEAGFLMD#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   ; LEAB 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 TE  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    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 TERMINATO= 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 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    ;  ; 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;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 ; CALLSSCENEF 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, ANNSAINTAI 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 SYMBOEDINEF 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 DEFIOT 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 EXUB;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  ? 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 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 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 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   ; SER 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 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 ;  TS  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 ;  SABILVA 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 ;   @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 ADDRESSEDINEF;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 DECIPAT 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  ; S    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 DESIRES 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 ?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 ENDL0RA 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  ; INND 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  ;;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 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 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 TI  ) 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 ; ? 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,R2RCOU 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,R     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 DECIMALINL 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:   . 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 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 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 CON  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  ;; 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 #BINBUFTIARSTL 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  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 OBJE 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  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,-)+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  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 =  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 LOCATIOB;   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  BBIN0ERFFBU;  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,(R0D 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)+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  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  INCD 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 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 DEEN;  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  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 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)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-O04WO .  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 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 ;  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 SYMBOL 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 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  ;ES 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 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 ENCOUNTERENSLIO 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     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 ; 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  ; EXPRESSS 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 RELOTA;  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 0E 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 WEL 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 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 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 IZALTINI I ;   6  = MDNC ID ANMMCOE ITWR;   2  =  D CMWR NDMAOM CITWA;   1  =  D CMWT NDMAOM CADRE;   4  =  D CMRD 27 2  = LGTFRS 6  = NDJEOB 0020  =  R DIYM S2  =  D ENSD G0 40 1  = MDNCTR 50 4  = LGCFCS 10 4  = LGCFAS 1  = MDDCGS 61 3  = SZHFST DEMOT PUUT ORYNABI;   3  =  E ODOM BE 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- 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 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 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 OVRWRDWO. / 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  ;QU50AD.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. ;WHEA: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 ;(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:AD.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 ;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 .: 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