@ȋ ȋ _V`ȋ _ `ȋ   '@@8rQ w *w "!w  w  w  t`5@5%E`$* N7 J 5@w * w pz  w T^   %mp   ; UPDATE 14 MAY 73 RASM.S21 ; UPDATE 26 APR 73 RASM.S20 - CONVERSION TO ROS 3.0 ; UPDATE 19 27 JUN 1972 ALL EXIT TYPES TO 2 AND ADD NO CHECKPOIN ; UPDATE 18 29 APR 1972 MINOR CLEANUP AND MAKE INTO AN OVERLAY TASK. ; UPDATE 17 26 APR 1972 CLEAN UO EXIT ON ERRORS. ; UPDATE 16 21 APR 1972 CLEAN UP, 'NONE' IN UNDEF SYM LISTING, ; EDIT OF SYMBOL LISTING ; UPDATE 15 10 APR 1972 ADD BFUPADD BFUP, GET RID OF INI^  Rw Zȋ Kw  >w   w " n  z'w w  -   .' ` w N"w8DFDCDK*DPDTMT$:,<F_F/TRx/DI`/PL`/RW/RE/SK/BO(/NO /HE/NUj/FI/DA2/VEV/WLN/FO ^& ыBw^`ɋVB`Gh  5 Pw 55U:704U  2 R LR C  TSBIR TEISEG REXND IALEREN G ;     *32*= T BIT ENEMCRDEO-UT A ;     *42*= T BIT ENEMCRINO-UT A ;     *52*= T BIN EE SORATEROP;     6 ** 2 =IT BENSES ESDRAD;     7 ** 2 =IT BENSES SEHENTREPA;     ) GHHI (TEBYR TEUNCOS SEHENTREPA;     E THR FOS UEAL VHE T =R2;     E NGRAN IOATERITD ELFI;   0:T0YN SM ERVTSAF OSSREDD A =R3;  3 ,RRMTEAV#S  V MO T IPCRBSSUF BUTBE TH= 4 R ;  ; CLEAR ALL COUNTS AND FLAGS     ; ENCOUNTERED ADDRESS EXPR.     ; IS SAVED ON THE STACK  CLR  -(R6)  ; STACK A ZERO  CMPB  @R3,#TCCDEF  ; IS TERMINATOR AN @ ?  BNE  SYNT01  ; NOPE  BISB  #DEFERD,@R5  ; YES, SET MDR DEFERD BIT  JSR PC, NEXTERM ; POSITION CURBYTE AT THE NEXT NON-     ; BLANK OR TAB CHARACTER SYNT01: CLR  R0   ; PREPARE FOR THE EXPR. CALL  MOVB  @R3,R1  ; SAVE THE T, AND ; CLEAN UP ; UPDATE 14 23 MAR 1972 ERR #, SYMBOL LISTING, RLD BYTE COUNT ; UPDATE 13 22 MAR 1972 PACJING, FORMATS, SYMBOL LIST, BIANRY ; UPDATE 12 21 MAR 1972 RLDOUT,PHEAD,SPACE COM,.END,BINDEC ; UPDATE 11 19 MAR 1972 FIX BINDEC, PHEAD, AND BFWRIT ; UPDATE 10 16 MAR 1972 FIX SPACE COMPRESS, ERROUT, BFWRIT, & BFREAD ; UPDATE 9 15 MAR 1972 CLEAN UP AND CONTROL WRD IN CREADER ; UPDATE 8 14 MAR 1972 ADD w #wE775@w7 7  5@ w77 5e[7 ~5xw:57 07 47 .7 (7 " E7 7 w$ wU7 5 Ew@Z 023'07*Jw dhPjmF X 20Jߕ w DK$ f&  # w dK M##w8  |'|7vw dh x R42, # OV M  0 =ERNTOU CLDIE F ; NTDCFL  B LR C  0 =NDMACO;   5 @R  R CL S ESDRADD ANOM C =R5;  5 ,RNDMACO # OV M  RSTEISEG RVESAL AL C ; G REAV S C,PR JS 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 ; CURRENT TERMINATOR  CMPB  R1,#TCCIMM  ; IS TERMINATOR AN # ?  BNE  SYNT11  ; NO  JSR PC, NEXTERM ; CALL FOR THE NEXT CHARACTER  BR  SYNT0A SYNT11: JSR PC, EXPE1 ; CALL EXPRESSION EVALUATION    ; ( ) , ; CR RETURN REQUESTED  BLE  SYNT05  ; EXPRESSION IS VOID  MOV  RESULT,@R6  ; STACK EXPRESSION'S RESULT  JSR PC, FLDEND ; DETERMINE FIELD TERMINATION ?  BLT  SYNT02  ; NOT THE FIELDS END    ; WORD TO I/O LISTS, ETC. ; UPDATE 7 13 MAR 1972 CLEAN UP ; UPDATE 6 7 MAR 1972 FIX UP STACK AND STKSIZ ; UPDATE 5 7 MAR 1972 ADDITION OF PST(WITH /45) TO RASM ; UPDATE 4 24 FEB 1972 FROM V03 TO V04 INCLUDES V2A UPDATE ; TO FIX UP '.LINES' AND CHANGE THE LINE ; NUMBER TO 8 CHARACTERS. ; UPDATE 3 6 FEB 1972 FROM V02 TO V03 ; UPDATE 1 3 FEB 1972 FROM V01 TO V02 ;*********************************   00 2  = ENSE PT BIG INSSREDD ARDFEDE;   0 1  = RDFEDE TSENNMIGSS ACTREDIX 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 M FIELD TERMINATOR IDENTIFIED AND     ; NO PARENTHESES FOUND  JSR PC, RCHECK ; CALL CHECK FOR REGISTER EXPRESSION  BGE  SYPTCH  JMP  DIRMDR     ; REGISTER, THEREFORE     ; DIRECT MEMORY ADDRESSING SYPTCH:  BISB  RESULT,R2  ; EXPRESSION WAS TYPED AS     ; REGISTER, THEREFORE  JMP  REGMDR  ; REGISTER MODE ADDRESSING SYNT02:   ; PARENTHESES ENCOUNTERED  JSR PC, RCHECK ; CALL CHECK FOR REGISTER EXPRE**************************************RAS ; R A S M *RAS ; *RAS ; PROGRAM IDENTIFICATION: ROS ASSEMBLER *RAS ; *RAS ; PROGRAM USAGE: THIS IS THE DEC-PAL11R ASSEMBLER WITH MODIFIED *RAS ; I/O TO PERMIT IS USE WITH ROS. OTHER THAN A *RAS Y) TO VERIFY THE COPY. /WL WILL WRITE LOCK AN RK11 DISK. TELETYPE OUTPUT MAY BE STOPPED BY TYPING CTRL/O. ROLLIN V07.5 HUNG DEVICE DT, TYPE K TO ABORT, ANYTHING ELSE TO TRY AGAIN: SYNTAX ERROR, COMMAND IGNORED. #DISK ERROR--REQUEST KILLED. DISK ERROR ON UNIT --REQUEST KILLED. THE REEL LABEL INDICATES THAT THE REST OF THE TAPE WAS NOT DUMPED. TYPE K TO KILL REQUEST AT THIS POINT, ANYTHING ELSE TO PROCEED IN FACE OF DANGER: LABEL INDICATES THAT THE TAPE IS OUIF;     D UNFOS LDIE FWO T, 0 >  ;    NDOU FD ELFIE ON, 0 =  ;    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 SILYNASSION  BLT  SYNT04  ; EXPRESSION WAS NOT TYPED     ; AS REGISTER, THEREFORE     ; INDEX MODE ADDRESSING  INCB  RERROR  ; EXPRESSION WAS TYPED AS     ; REGISTER, THEREFORE A     ; PARENTHESIS MUST BE MISSING  JSR PC, PARSEP ; CALL PARENTHESES SEPARATOR  BGE  SYNT03  ; LEFT PARENTHESIS FOUND OR     ; A FIELD TERMINATOR  INCB  QERROR  ; RIGHT PARENTHESIS FOUND  BR  SYNT08  ; A ; FIXED SIZE FOR THE SYMBOL TABLE IT IS THE SAME. *RAS ; A COMPLET DISCUSSION OF ITS METHODS, INPUT, AND *RAS ; OUTPUT IS CONTAINED IN THE CURRENT DEC PAL11R *RAS ; USER'S GUIDE. IT SHOULD BE NOTED THAT RASM *RAS ; DOES NOT USE OVERLAYS, PERMITS ONLY A SINGLE *RAS ; SOURCE INPUT ELEMENT, AND PLACES ITS OUTPUT *RAS ; IN A BFUP ELEMENTSY\ e"B 2 -$( e  w BSYSERR wL 3  fDDa m@ f& U"  ee  % w CLCERR w % CcaD eab w D   Rm " "AYRLOV D.YELAEROVE BTOY TRENL BOYM SIFY TREN Y:LAVR;O RSTEISEG RRETOES;R  EGTRSEC,PR JS 2:ERNT E3 ERNTES HIB . DSOR W 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 AS,LD TERMINATION  BGE  SYNT0B  ; THE FIELD HAS TERMINATED     ; ACTUAL MODE YET UNKNOWN  JSR PC, NEXTERM ; CALL FOR THE NEXT TERMINATOR  CLR  R0   ; R0 = 0  JSR PC, EXPE1 ; CALL EXPRESSION EVALUATION  BGT  SYNT08  ; EXPRESSION WAS NON-VOID  INCB  QERROR  ; EXPRESSION WAS VOID SYNT08: JSR PC, PARSEP ; CALL PARENTHESES SEPARATOR     ; THE FIELD HAS TERMINATED     ; ACTUAL MODE YET UNKNOWN  B- PAL R7  =  %7 PC = %7 ; PAL ; PAL .PAGE PAL ; THE PST MUST BE PLACED BETWEEN THE STACK AND RASM. RAS RASMPR = PRIBKG ; RASM'S PRIORITY LEVEL = BACKGROUND RAS RASMNO = $RASNO ; RASM'S TASK NUMBER RAS BFILE = $BCxXE0f8f< `T`mM+$& ?08-02 GTUvwxyz{|}>?@ABCDE*}(v R . FFTU SORRR EDOO G ; T OURR E MP J AS R E.OD CORRR E ; P)(S,-R9ER # OV M AS R L.UL FISE BLTAL BOYM SE-LUVAO N ; P)(S - LR C . ONSILIOL CNO; 1 ERNTES HIB K ACSTH IT WONSILIOL COR FCKHE;C OTKBST1,RP CM  S.RDWO4 Y BERNTOI;P  R14,RB SU  ERSTGIREE RE FST 1SEEACRDE; 1 ,RR0 OVM E USR TELAR FO; 4 ,R10#V MO  R0P,TOSRUV MO  S.ERSTGIREE AV;S  EGVRSAC,PR JS 6:R0UB S: ERNT E. EDIRQU0LT  SYNT09  ; RIGHT  BGT  SYNT18  ; LEFT  JSR PC, RFORCE  BISB  R0,R2  BR  SYNT15 SYNT18: INCB  QERROR SYNT09: JSR PC, RFORCE ; CALL FORCE REGISTER EXPRESSION  BISB  R0,R2  ; SAVE INDEX REGISTER  JSR PC, 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  JSR P1HID ; RASM(S BATCH FILE ID RAS BTYPE = $BCHTP ; TYPE OF BATCH FILE RAS STACK = 200. ; AREA FOR RASM STACK (BELOW SYM TAB). RAS SYMSIZ = $RASIZ ; # ENTRIES IN UST (4 WORDS/ENTRY) RAS ; RAS .DEF RASHED ; GLOBL FOR INITIALIZATION RAS ; RASM TASK HEADER $B$bF % A BB`$&( " C"@? EL05AaAa5EEd e (  &* e U  U@ 0  <U%g"G&EU C cF %  `C@%&(44`  t#   g"G<B    < W,#1L,. ' #Bl 000 E 0 &* 0  RET ENTMUSDJ ALEAB TIFY TREN R:TEEN ;. ESRINT ETHBOT AEDOYTRES DIS0 ;R  E.AD MIST ENTMUSDJ ALEABT;  OLMBSYO NE.OVAB) 3EPST UTTPOU; E OVABS AMESA UTNP;I  AYRLOVP RA;T  X.DEIN HIN ;  SSREDD AHE TATG INRTTA S  ;  EDORSTY TRENL BOYM SEW N) 3;  OPRTUSO TS)RDWO (-4OPRTUS 2) ; . DSOR W 4DSARNWOW DEDSTDU AOPRTUS ; O TEXNDHIM RO FLSBOYM SLL A) 1;  S.RDWOR OU FWNDOD VEMOS ICKTAS;  CKTA SOFM TOOT BTHWIE IDLLCO ; D ULWOE BLTAL BOYM SEDNDPAEXF IT PUUT;O  4C, EXPE2 ; CALL EXPRESSION EVALUATION    ; , ; CR RETURN REQUESTED  BLE  SYNT07  ; CHECK FOR AUTO MODES  MOV  RESULT,@R6  ; STACK EXPRESSION'S RESULT  CMPB  R1,#TCCIMM  ; WAS THE SAVED TERMINATOR     ; AN # ?  BEQ  IMMMDR  ; YES, IMMEDIATE ADDRESSING  BR  SYNT02  ; PROCESS AS INDEX MODE SYNT0B:   ; DETERMINE ADDRESSING MODE FOR     ; FIELDS CONTAINING ANY     ; PARENTHESES    5 RAS RASHED: .WORD 1 ; THREAD WORD 4/26/73 .WORD RASMNO ; TASK NUMBER 4/26/73 .BYTE 1 ; BATCH TASK 4/26/73 .BYTE RASMPR ; PRIORITY 4/26/73 .IF Z $KT11C ; TASK ENTRY POINT 5/14/73 .WORD START ; 5/14/73  "wReO$X  c ,J Mc! K C` J5 q V&* C`$U5$B  $5$U@(  g"G܀ (   %0 C`  J D`$ !$$a!!  (( #)#" ͋͊Q$B S($3&  A@W  @`ee$ɋ(0,e 0 ( "&* e ( &*  "U%MGSLATF ; T ULES R  ;  +3YMPSTM ; 1 M+SYMP T  ;  INY TREND OR W 4HE T) 2;  EXNDHIN IOTSLE THF OS)ESDRADT ESGHHI (SSREDD ASEBAE TH 1) UTNP;I  ERNT EAPTR; : TSINPOY TREN2 E ARE ERTH ;. LEAB TOLMBSYA N IOTSLD IEIFECSP ;A O NT IRYNT EOLMBSYD OR W 4 AERNT ETOE INUTROUB;S L PA E AG.P E.INUTROG INLLCAT XI;E  R7 TSR S ERSTGIRET SE; G REET,SPC SRJ G REOP POMFRN URET RRDCAIS;D  )+R6(T TS 5:R4UB S: EGF ; SEPARATE MAX. CASE FIRST  BITB  #ASEEN,R2  ; WAS AN ADDRESS SEEN ?  BNE  INDMDR  ; YES, INDEX MODE ADDRESSING  BITB  #AUTOINC,R2  ; WAS A + OPERATOR SEEN ?  BEQ  SYNT0D  JMP  INCMDR  ; YES, AUTO-INCREMENT MODE SYNT0D:  BITB  #AUTODEC,R2  ; WAS A - OPERATOR SEEN ?  BEQ  SYNT0E  JMP  DECMDR  ; YES, AUTO-DECREMENT MODE SYNT0E:  BITB  #PSEEN,R2  ; WERE PARENTHESES SEEN ?  BEQ  IMMMDR  ; E .IFF ; 5/14/73 .WORD START-STKTOP ; GET RID OF THE RELOCATION 5/14/73 .ENDC ; 5/14/73 .WORD 0,0 ; NO MAX TIME 4/26/73 .WORD STACK ; STACK SIZE 4/26/73 .WORD $OVTYP ; CPU LEVEL & OVERLAY FILE TYPE 4/26/73 .WORD 0,0a ͋,L wB ` 5 5 w*d,M ]$LX &#a `e & * VL  #,3   &fTff ee   U p 8 E -e Ee v&   E *.M &^  $^ "U%tGenf.$^ &&e E]e( &^ & ݁ "uPRPO E.INUTROG INLLCAT XI END A; S ERSTGIREP POO TNETIOUBRSU;  RNTURE;    5 RRETOES R ;  R5  S RT 4 RRETOES R ; R4+,6)(R  V MO 3 RRETOES R ; R3+,6)(R  V MO 2 RRETOES R ; R2+,6)(R  V MO 1 RRETOES R ; R1+,6)(R  V MO S ESDRADN URET RHE TESAV SR5;  5 ,R)+R6 ( OV M: 16BRSU G:REET SR TEISEG RDEWI- R SOESOCPRE ILATOL V AIS0 R ;   RSTEISEG RET SNETIOUBRSU;  N URET R ; R7  S RT 5 RCKTA S ; 6)(R12`wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwADDB Cp@Q{  d{ ?$Dwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwa ͋,L  B8w&B ` % & }&*C$$Βe E%>k  aʋaՀ$ & * P$ ΋Ί   ΋   d Ί  ( 1'u  Q$f $5@ U C΋ Cb M΋U@ U &  B" .&0 M &0 & M 0 &I ; STACK POINTER & PASSED ARG. 4/26/73 .IF NZ $KT11C ; 4/26/73 .WORD 077406 ; ALL PDRS FULL 4K R/W 5/14/73 .WORD 077406 ; ALL PDRS FULL 4K R/W 5/14/73 .WORD 077406 ; ALL PDRS FULL 4K R/W 5/14/73 .WORD 077406 ; ALL PDRS FULL 4K R/W 5/14/73 .WORD 077406 ; ALLJNO, IMMEDIATE ADDRESSING  MOV  #DEFERD,-(R6) ; STACK THE DEFERD MASK  BITB  @R6,@R5  ; HAS AN @-SIGN APPEARED ?  BNE  SYNT0C  ; YES, USE INDEX ADDRESSING  BISB  (R6)+,@R5  ; NO, USE REGISTER DEFERRED  BR  REGMDR  ; REGISTER MODE SYNT0C: BISB  (R6)+,@R5  ; SET COMAND'S DEFERRED BIT  CLR  @R6   ; ZERO THE STACKED ADDRESS  BR  INDMDR  ; INDEX MODE ;*** DIRECT MEMORY ADDRESSING *** ;IF THE FRCAB,Z  BaBa6A c JQ   0  ! $ " r" "c  T&"@U%G 0  4   B   ?@5@"- -5@f!  E 6 &M  $^ "zU%Gwf&  p ,M 'p pT e TTTTTL&5, R OV M  SSREDD ARNTUREE THK ACST; 6)(R,-6)(R10  V MO 1 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 ERSTGIREE ID W -ORSSCERO PLETILAVOA S IR0;   S ERSTGIREE AV SNETIOUBRSU;  AL P GEPA . N URET RND ARSTEISEG RET SLLCA; EGPRPO , PC SR J  NGKIAC PTERATEEI RE,OP N ; 00D4MOM PDRS FULL 4K R/W 5/14/73 .WORD 077406 ; ALL PDRS FULL 4K R/W 5/14/73 .WORD 077406 ; ALL PDRS FULL 4K R/W 5/14/73 .WORD 077406 ; ALL PDRS FULL 4K R/W 5/14/73 .WORD STKTOP ; PAR 0 - RESOLVED BY ROSLOD 4/26/73 .WORD STKTOP+20000 ; PAR 1 - RESOLVED BY ROSLOD 4/27/73 .WORD 0,0,0,0,0,0 ; PAR 2 - 7 NS SWITCH IS NON-0 ;AS A RESULT OF THE CSI SWITCH ;/37 HAVING BEEN ENCOUNTERED ;FORCE @#A FOR A ; DIRMDR: BITB #DEFERD,@R5 ;IS MODE @A BNE DIRMD1  ;YES --- NORMAL TSTB FRCABS  ;FORCE @#A? BEQ DIRMD1  ;NO BISB #DEFERD,@R5 ;YES   ; *** IMMEDIATE ADDRESSING *** IMMMDR: BISB  #AINCR7,@R5 INDXDR:  TST  (R4)+  MOVB  R4,VARLTH  TSTB  RSLMOD  BEQ  DIREC0  BLT  IMMEXT  MOVB  #RLD2.1,RLDIR ;INTERNAL RELOCATION (CODE 1) BR I$^ &&e E]e( &^ & ݁ "uC  e e(   e&  L̥ ̥ ̥̥̋ ̥ H  ^ ˥*{ k D ˥, ^ Z˥* U R ˥]MPK W G Q&       ˥:?R ˥,U% 1˥* ˥. ˥[ ˥/@ ˥<˥07 N ˥  ˥ ˥ ˥ ˥   ^aeAbEIA% "  E BL ? +6YMPSTM> 5 RIS; +6YMPSTM,#R5  P CM 3 5+ R =R5;  5 ,R#3  D AD 4 RNTMERENC I ;     ADRI TNTTAULES R =4)(RYMPSTM;  + 4)(R3, R OV M: 02D4MO ERCTRAHA CXTNES ESOCPR;  1 40OD M BR T ULES RALTIAR+PUM S =UM S ; R3+,6)(R  D AD 3 R SL A  TSBI2 T EF LUM SFTHI S ;  R3  L AS T ULES RALTIAR PVESA;  ) R6-(3, R OV M  R3  L AS 3 R SL A  TSBI3 T EF LUM SFTHI S ;  R3  L AS D TELEMPQ 4/26/73 .BLKW 6 ; BLOCK OUT TO 32 WORDS 4/26/73 .CSECT RASM$ ; GET LISTING MATCHED UP WITH CORE 4/26/73 .ENDC ; 4/26/73 STKTOP: .WORD 200 ; FILE ID & LAST WORD OF STACK 4/26/73 .BLKW STACK-1 ; RESERVE STACK AREA 4/26/73 .=.+SYMSIZ+SYMSIZ+SYMSIZ+SYMSIZ ; RESERVE USER SYMBOL TABLE RRMPR2 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  JSR PC, INSERT  BR  INDXDR   ; *** DIRECT MEMORY ADDRESSING *** DIRMD1: BISB  #INDR7,@R5  TST  (R4)+  MOVB  R4,VARLTH CMPB #-1,RSLMOD  BEQ  DIRECB ;.GLOBL EXPRESSION B5 CCh(5@ Hp p ppek 555YU 4!dddQ$B e0 H""I&NHA! aF !!Fah !&^  9$Re)RJ $^ "xU%G & f5e (q@ &, ( e &^ %MF !ԋX$!  6e! E NEefemwNaCOD IATR, PENO;  2 40OD M GE B  ?5 R 0, IMPLIES ,    ;  = 0, IMPLIES ; CR    ;  z | E    $ &A` aEA! ea L$$E0d$^ |ABD5x W U  5> 7 4. N"u͋55uM55 &  ED    $  &A` aEA! ea L$$MOE 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  R.HA CSTLAE THT OUK ANBL; 0)(R-1YMPSTM  B LR C  NDMAOM CTEBYA Y LLIANTTEPO, ES Y ;    EDBLSADID ANMMCOE YT BE,OP N ; 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 D LEABISm .WORD 055620 .WORD IFNZ .WORD ASMDIR ; .WORD 130156  ; .IFNDF .WORD 054046 .WORD IFNDF .WORD ASMDIR ; .WORD 130156  ; .IFLE .WORD 045710 .WORD IFLE .WORD ASMDIR ; .WORD 130156  ; .IFL .WORD 045400 .WORD IFL .WORD ASMDIR ; .WORD 130156  ; .IFGE .WORD 026210 .WORD IFGE .WORD ASMDIR ; .WORD 130156  ; .IFG .WORD 025700 .WORD IFG .WORD ASMDIR ; .WORD 130156  ; .IFDF .WORD 014760 .WORD IFDF n < 0, IMPLIES OTHER FLDEND: SUBR18: MOV  #1,-(R6)  ; STACK A ONE  CMPB  @R3,#TCCCOM  ; IS THE TERMINATOR A, ?  BEQ  FLDEN1  ; YES  CMPB  @R3,#TCCSMC  ; IS THE TERMINATOR A ; ?  BEQ  FLDEN0  ; YES  CMPB  @R3,#TCCCRE  ; IS THE TERMINATOR A CR ?  BEQ  FLDEN0  ; YES  DEC  @R6   ; RETURN NEGATIVE FLDEN0: DEC  @R6   ; RETURN ZERO FLDEN1: TST  (R6)+  ; RETURN POSITIVE     P5Z5 P Œ% aeM 1EI2_ 8 VRRQ $ Lɕ5"P5PwWwɕ .5P*E   qɕ ɕ 5"P 7 T3 BAPP52U5U5"U5@UEPs  f1 6 2 . w$^  8RE@P5  7wh593 55( #59 ɥɥ5 Uw• DNDMAOM CTEBY, PENO;  1 CHER S GE B  ?S.ARCH6 N HA TSSLEE ERTHE AR;  6 ,#R0  B MP C  NTOU CR.HA C'SOLMBSY= 0 R ; R0R,HATCCN  B OV M: H0RCSE ONTIGAROERNT INDMAOM CTEBY;    T USF ONGHIRCEA STEIAITIN;  E CHER S BR 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 @q .WORD ASMDIR ; .WORD 130044  ; .GLOBL .WORD 057034 .WORD GLOBL .WORD ASMDIR ; .RAD50 /.GE/ ; .GEES .RAD50 /ES / .WORD GEES .WORD ASMDIR ; .WORD 127736  ; .EVEN .WORD 020560 .WORD EVEN .WORD ASMDIR ; .WORD 127726  ; .ENDC .WORD 014570 .WORD ENDC .WORD ASMDIR ; .WORD 127726  ; .END .WORD 014400 .WORD END .WORD ASMDIR ; .WORD 127645  ;.DEF .WORD 02r ; SET THE CONDITION CODES  RTS  R7  ; RETURN .PAGE PAL  ; SUBROUTINE PARENTHESIS SEPERATOR   ; THIS SUBROUTINE SEPERATES RIGHT AND LEFT   ; PARENTHESES FROM OTHER TERMINATORS. IT ALSO   ; SETS THE PARENTHESIS SEEN FLAG BIT AND   ; MAINTAINS THE PARENTHESIS COUNTER.    ; INPUT R2 DEDICATED REGISTER    ; OUTPUT CONDITION CODED RESULTS    ;  ) NEGATIVE hhE6 w7 l Õ7 p  7 Hwr wb7 *CW Հ |7 7  B߳tՀߕ@t97 D672G7 FՀ  %& n (   7 Nߓp2|߳t&^  #ʔ `Z 7 & 7 2 ~   j ꀣw e@@ tA @ w pe 2̓@ p @ d  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 , PC SR J: 04BRSU H:RCEA S0 = 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  u2600 .WORD GLOBL .WORD ASMDIR ; .WORD 127613  ; .CSECT .WORD 017714 .WORD CSECT .WORD ASMDIR ; .WORD 127551  ; .BYTE .WORD 076710 .WORD BYTE .WORD ASMDIR ; .WORD 127473  ; .ASECT .WORD 017714 .WORD ASECT .WORD ASMDIR ; .WORD 127473  ; .ASCII .WORD 012061 .WORD ASCII .WORD ASMDIR .PAGE ; MACHINE INSTRUCTIONS ; ; .WORD 107761  ;WAIT .WORD 076400 .WORD 000001 .WORD SCLAS0 ; .WORD 100014  v    ;  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 TERMINATOR A ) ?  BNE  PARSE2  ; NOPE  DEC  @R6   ; DECREMENT STACKED ZERO  DECB  R2   ; DECREMENT PCOUNT BYTE  BR  PARSE1 PA W! 3W! W! RW!` SA9 ,݃˕w$" 2 W! ( קx ӕ קyW!5㨣 h 7 קx 7 zwH7{fwro 7dJ 7D5  e, 5;  LEABATOCEL REDINEF DND AST UIND UNFOF I  ;  BLLO.GL NAERXT E =Y2BSGL   ; F OMENA0 D4MO= 1 SYLBG  ;  BLLO.GD NEFIDEUND ANT USN INDOU FIF   ; E YT BIDN IOCTSEL RONTCO= D TISCC  ;  TEBYG LA F =GSLATF   ; E LUVA= Y ITNTUAQ  ;  RYNT EOFS ESDRADT ESGHHI= X DEINH  ;  D:UNFOF I   ;  NDOU FOT N0 0<R  ;  ST UIND UNFO =0R0   ; T PSN INDOU F0 0>R  ;  ESOD CONTIDION CHE TTSSE0 R: UTTPOU  ; E BLTAL BOYM SP.EMT: UTNPI ;  ; . CHSRy;TST .WORD 0 .WORD 005700 .WORD SCLAS1+BYTFLG ; .WORD 077721  ;TRAP .WORD 062000 .WORD 104400 .WORD SCLAS6 ; .WORD 075131  ;SWAB .WORD 006200 .WORD 000300 .WORD SCLAS1 ; .WORD 075012  ;SUB .WORD 0 .WORD 160000 .WORD SCLAS2 ; .WORD 073642  ;SEZ .WORD 0 .WORD 000264 .WORD SCLAS0 ; .WORD 073636  ;SEV .WORD 0 .WORD 000262 .WORD SCLAS0 ; .WORD 073626  ;SEN .WORD 0 .WORD 000270 zRSE0: INC  @R6   ; INCREMENT STACKED ZERO  INCB  R2   ; INCREMENT PCOUNT BYTE PARSE1: SWAB  R2   ; RESTORE R2 FORMAT  BISB  #PSEEN,R2  ; SET PSEEN BIT PARSE2: TST  (R6)+  ; SET THE CONDITION CODES  RTS  R7  ; RETURN .PAGE PAL  ; SUBROUTINE REGISTER CHECK   ; THIS SUBROUTINE DETERMINES, FINALLY, IF   ; A VALUE IS TO BE TYPED AS REGISTER.   ;  w\7 7 &e # `%TI%NE%LOU   w6U   e,A>e<e  LfNUMe  x @n  `  e B & NN`ee cf cfcc$$Bc   5   < ef  e $     X] 4 4 0 % L   w  % p P @ e~ e wh wf   F ff f%IN BNGZILITI UEDCHARSE; S ILYONT USE TH, OLMBSYD KEAC PDYEALR;A  ANR FOH RCEA STOY TREND 2NE THN ;O  Y.ARSSCENEF IST UHE TENTHD ANT PS;  HE TNGHIRCEA SSTIR FY,LLMAOR NSSCERO PL,BOYM SPETY' 'BA T NOF ;I  L PA ; 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 SEDATVIRE}.WORD SCLAS0 ; .WORD 073613  ;SEC .WORD 0 .WORD 000261 .WORD SCLAS0 ; .WORD 073473  ;SCC .WORD 0 .WORD 000277 .WORD SCLAS0 ; .WORD 073423  ;SBC .WORD 0 .WORD 005600 .WORD SCLAS1+BYTFLG ; .WORD 071663  ;RTS .WORD 0 .WORD 000200 .WORD SCLAS3 ; .WORD 071651  ;RTI .WORD 0 .WORD 000002 .WORD SCLAS0 ; .WORD 071352  ;ROR .WORD 0 .WORD 006000 .WORD SCLAS1+BYTFLG ; .WORD 071344  ;ROL .WORD ~ IF NOT, THE SUBROUTINE RETURNS   ; IMMEDIATELY. IF THE VALUE IS TYPED AS   ; REGISTER, THEN INSURE THE VALUE IS   ; PROPERLY BOUNDED AND IF NOT, FORCE   ; REGISTER ZERO.    ; INPUT R0 CONTAINS REGISTER    ;  TYPING INFORMATION    ; OUTPUT CONDITION CODED RESULTS    ;  NOT NEGATIVE IMPLIES    ;  R0 CONTAINS A VALID    ;  REGISTER NAME    ;  NEGATIVE IMPLIES    ;   1,, " U@W7 % 0p * e04 wH&&    UE 0$&& `̵@ Jwff Je@ ŌD((IJ v   U%  v  E7   7      dU&&7 E ew4 7  4v VE@ D &  4-(U5U5 U eee   U eBB AHE TIF 2.; . ST UHE TRYSAESEC NIFD ANT PS ; HE TCHARSET RSFI L.BOYM SALOT T ;  HE TOR FNGHIRCEA STEIAITIND AN ; CKPARE, ERCTRAHA CB' 'HE TCELAEP R ;  ENTH, NDOU FOT NISL BOYM SISTHF I) 1.; L BOYM SEDATVIREBB;A  ISTHR FOT PSE THH RCEA;S  ENTH' 'BE THT OUTHWIS ERCTRAHA CCKPA; . RSCUOCG INSSCERO PALCIPE;S  ENTH' 'BA S IERCTRAHA CSTLAE THF IND;A  RSTEACARCH5 R O 4ESSSSEOS POLMBSYE THF ;I  E:ACPLS KETAG INOWLLFOE TH, OLMBSY; A R FOH RCEA STOY TRENT 1SE THN ;O 0 .WORD 006100 .WORD SCLAS1+BYTFLG ; .WORD 070533  ;RESET .WORD 021140 .WORD 000005 .WORD SCLAS0 ; .WORD 054750  ;NOP .WORD 0 .WORD 000240 .WORD SCLAS0 ; .WORD 054117  ;NEG .WORD 0 .WORD 005400 .WORD SCLAS1+BYTFLG ; .WORD 051656  ;MOV .WORD 0 .WORD 010000 .WORD SCLAS2+BYTFLG ; .WORD 040612  ;JSR .WORD 0 .WORD 004000 .WORD SCLAS5 ; .WORD 040230  ;JMP .WORD 0 .WORD 000100 .WORD SCLAS) NOT TYPED AS REGISTER    ;   2) INVALID REGISTER NAME    ;   WAS FOUND, RESULT    ;   SET TO ZERO, R0'S    ;   LOW BYTE EQUALS ZERO RCHECK: SUBR2A: CLR  R0  BISB  REGTYPE,R0  ; IS RESULT TYPED REGISTERS ?  BEQ  RCHE01  ; NOPE, RETURN NEGATIVE RFORCE: SUBR2B: MOV  RESULT,R0  ; R0 = RESULT  CMP  R0,#7  ; IS R0 > 7 ?  BGT  RCHE00  ; YES, FORCE REGISTER ZERO  TSTB  RSLMOD  B00%%% p b $^ &&e E]e( &^ & ݁ "u*2T KI :w&l@XD Ý@Ì̵ f(̵eD  C3!!F"%L-H C "D & 7PLb`$^ Pĝ@5@$5 ; . CHSRIN BNETIOUBRSU; D SELO CHE TBYD MEORRFPEE QUNIEC;T  CHARSEY ARIN BHE TNGZILITI;U  EDCHARSEY ELATEREP SRE AASRE AWO THE;T  S.TEBYD IONTIEC SOLTRON CND AGSLA;F  HE TNGNIAINTCOT ESGHHIE THD AN; E LUVAE THG ININTAON CSTWELOT EX;N  HE TD,IATR0 D4MOD 2NE THG ININTAON;C  STWELOT EX NHE TD,IATR0 D4MOT 1S; E THG ININTAON CRDWOT ESOW LHE;T  THWIS RDWO4 S IRYNT ECHEA N.IOATOT;N  40OD MIND REDEORY GLINASRENC ILSBOYM SHE TTHWI; RDWAWNDOE NUTION CND ARECON IGHHI; N GIBES LEAB1 ; .WORD 035254  ;IOT .WORD 0 .WORD 000004 .WORD SCLAS0 ; .WORD 035163  ;INC .WORD 0 .WORD 005200 .WORD SCLAS1+BYTFLG ; .WORD 031064  ;HALT .WORD 076400 .WORD 0 .WORD SCLAS0 ; .WORD 020534  ;EMT .WORD 0 .WORD 104000 .WORD SCLAS6 ; .WORD 014713  ;DEC .WORD 0 .WORD 005300 .WORD SCLAS1+BYTFLG ; .WORD 012445  ;COM .WORD 0 .WORD 005100 .WORD SCLAS1+BYTFLG ; .WORD 012412  ;CNZ .WORD 0NE  RCHE00  TST  R0   ; IS R0 < 0 ?  BGE  RCHE02  ; NOPE, RETURN NOT NEGATIVE RCHE00: INCB  RERROR ; FORCE  SET REGISTER ERROR  CLR  RESULT  ; RESULT = 0  RTS  R7  ; RETURN, CONDITION CODE 'Z' IS SET RCHE01: MOV  #100000,R0  ; SET ONLY R0 SIGN BIT     ; CONDITION CODES ARE SET RCHE02: RTS  R7  ; RETURN .PAGE PAL  ; SUBROUTINE NEXT TERMINATvLDF,I, 7fF,vɠ5`&@,$ 5,  ͤ,(  & ,*j ֙, \& Μ , ** NGSIESOCPRR BEUMN* **  ;  E YTRBCUT MNRENC IND A ;     RSTONAMIER TLL AOR FCKHE C ; 00EMIT  R B  NETIOU RONTICAFITIENID;     R TEACARCHO NT ISSREDD A ;     NTOI PRYNT E =R4, PENO;  4 ,RARCH#N  V MO E OD CESYP TEMITT ENEMCRIN;   3 @R  B NC I: 16EMIT ERNTOI PUPCKBA, ES Y ; OLMBSY  C DE E NUTION CE,OP N ; 16EMIT  E BL ? T YES ERCTRAHA CIX SEDSSCERO P ; R5L,BOYM S MP C: 06EMIT ** *NGSIESOCPRL BOYMtORD SCLAS2+BYTFLG ; .WORD 006773  ;BIS .WORD 0 .WORD 050000 .WORD SCLAS2+BYTFLG ; .WORD 006753  ;BIC .WORD 0 .WORD 040000 .WORD SCLAS2+BYTFLG ; .WORD 006711  ;BHIS .WORD 073300 .WORD 103000 .WORD SCLAS4 ; .WORD 006711  ;BHI .WORD 0 .WORD 101000 .WORD SCLAS4 ; .WORD 006654  ;BGT .WORD 0 .WORD 003000 .WORD SCLAS4 ; .WORD 006635  ;BGE .WORD 0 .WORD 002000 .WORD SCLAS4 ; .WORD 006531  ;BESION,    ; NOT CURRENT .CSECT    ; (OR .ASECT) ; TERMINATOR TABLE ENTRY ORDER ; = : , CR ; ! & - + ' " ) ( TAB BLANK % @ #  -1 ... -18 ;  TERMINATOR ANALYSIS DIAGRAM ; TERMINATORS CLASS  PAREN COMMAS  CR ;    -1  0  +1 ; ^ & - + ' " 1  PROCESS PROCESS PROCESS ; ; CR  2  RETURN RETURN  RETURN ; : = TAB BLK # @  QERROR QERROR  QERROR ; ) (  4  RETURN Q RESTART Q RESTART e,Zʲ"/E N J ,K7E |t jw,5&577 (, ,2 # EDIT-11 V006A LS}XP OFF? b * x    N, \  Da&e%DZ,  w J " M ,FLC?44 0 67 -"Ӄ,P9:5 7 wn2,v95 ^en25@S* **  ;  N URET R ; R7  S RT S DECON IOITNDCOE THT SE;  0 ,RARCHNT C VBMO  RSTEISEG RET SLLCA; EGTRSE , PC SR J: 05EMIT NGSIESOCPRN URET R ;    TEBYUR CNTMERENC IND A ;     RSTONAMIER TLL AOR FCKHE C ; 00EMIT  R B  NETIOU RONTICAFITIENID;     R TONAMIER THE TTOIN;      SSREDD ANTOI PRYNT E =R5;  4 ,RINRMTE # OV M  DECOE YP TEMITT ENEMPLOM C ;  R3 @ MBCO R TONAMIER THE TOR FNTHU, EMITT ORpQ .WORD 0 .WORD 001400 .WORD SCLAS4 ; .WORD 006413  ;BCS .WORD 0 .WORD 103400 .WORD SCLAS4 ; .WORD 006373  ;BCC .WORD 0 .WORD 103000 .WORD SCLAS4 ; .WORD 004512  ;ASR .WORD 0 .WORD 006200 .WORD SCLAS1+BYTFLG ; .WORD 004504  ;ASL .WORD 0 .WORD 006300 .WORD SCLAS1+BYTFLG ; .WORD 003344  ;ADD .WORD 0 .WORD 060000 .WORD SCLAS2 ; .WORD 003343  ;ADC .WORD 0 .WORD 005500 .WORD SCLAS1+BY ; ,   5  RETURN RETURN  Q RESTART EXPE1:  ; EXPRESSION'S ENTRY POINT 1 SUBR1A:   ; PARENTHESES MINIMAL TERMINATOR  DEC  R0   ; RETURN CLASS = -1 EXPE2:  ; EXPRESSION'S ENTRY POINT 2 SUBR1B:   ; COMMA MINIMAL TERMINATOR  DEC  R0   ; RETURN CLASS = 0 EXPE3:  ; EXPRESSION'S ENTRY POINT 3 SUBR1C:   ; SEMICOLON MINIMAL TERMINATOR  INC  R0   ; RETURN CLASS = +1  JSR PC, SAVREG ; CALL SAVE REGISTERS 7 p ,@&  w  ,f   @ J,* @%w  ,P=w /  ( wg,v< nw )z  n2 ,: `  ^x5 n2  ,:  d0 b . L,:e&SRw 8Y7w 4BSaw  S,YSS-`w & TA ,w "Y 7-8-0!tAB;    R TEACARCHS HI TORRR E ; ORRRIE  B NC I: 03EMIT EDFITIENIDUNR TEACARCH;     G INSSCERO PERMBNU;  7 M0TE I EQ B  NGSIESOCPRL BOYM S ; 06EMIT  T BG G INSSCERO POFE YP TCTLESE;   2 R ST T: 02EMIT NTDEENEP DAGFL SCHANBR S,YE;  2 ,RR3 @ VBMO T ENNDPEDEE YPITH NCRA BPENO;  2 M0TE I EQ B  ?NGSIESOCPRR TEACARCHT RSFI;  4 ,RARCH#F  P CM R TONAMIER THE TOR FNTHU, ES Y ; 00EMIT  Q BE ? G INRTlTFLG ; SYMTBB=.-2   ;HIGHEST ADDRESS OF PST. .PAGE RAS START: ; FIRST LET'S READ IN THE CARD DECK AND RAS ; PUT IT ON DISK. RAS MOV #1,PAGCNT ; INITIALIZE PAGE # TO 1. RAS JSR PC,PHEAD ; PRINT PAGE #1 HEADER NOW - FOR ERRORS RAS MOV #DFNLST,-(SP) ; DEFINE THE BATCH FILE IF DOESN'T  MOV  R0,R1  ; R1 HIGH ORDER BYTE CONTAINS  SWAB  R1   ; THE RETURN CLASS CODE  CLRB  ICOUNT  ; ZERO THE ITEM COUNTER  CLRB  REGTYPE  ; ZERO REGISTER TYPED FLAG  CLR  R2   ; R2 HIGH ORDER BYTE CONTAINS     ; THE GENERAL ERROR FLAG     ; CLEAR THE ERROR FLAG  MOV  #RESULT,R5  ; R5 = RESULT'S ADDRESS  MOV  #QUANTITY,R4 ; R4 = QUANTITY'S ADDRESS  MOV  #CURBYTE,R3  ; R3 = CURBYTE'S A,Zp % | %LOv,w,,ڄw7 e l,;8 j 6 T&e@w5,; n2 0 $ . & ,;e #&SRpw L[dQ Z&SRdR[\4S{,ZSw  w S R,[  7  7 "  ,48 x 7r  ,Ze% ۠ ,ێ BO AEMITS I ; R4N,MIER#T  P CM G LASFD IEIFOD MHE T =R2;  2 ,RR0  V MO 1:M1TE IN IOATINRMTEDEY ITILABNTRI PLLCA; T INPR , PC SR J  ERCTRAHA CALEGLL IO, N ; ORRRIE  B NC I  ES Y ; 11EMIT  E BG ? D UNFOR TEACARCHD LIVAA S WA;     G LASFP TUSE, -1R0= 0 R ;  R0  C DE  ERNTOU CERCTRAHA CNTMERENC I ; ARCHNT C CBIN R TONAMIER T AISR TEACARCH;  5 M0TE I LT B  ESOD CONTIDION CHE TND A ;     R0N IDEh RAS EMT $NCHKPT ; 5/14/73 EMT $DEFIN ; ALREADY EXIST. RAS EMT $CHKPT ; 5/14/73 MOVB DFNERR,R0 ; GET ERROR CODE AND TEST IF ANY. RAS BEQ STA020 ; NONE. RAS CMPB R0,#7 ; ERROR. IS FILE ALREADY DEFINED? RAS BEQ STA020 DDRESS CLRB  RSLMOD  CLR  @R5   ; RESULT = 0  CLRB  R1   ; ZERO THE OPERATOR COUNTER  CLRB  PRGSEC  ;.CSECT ID OF PREVIOUS RELOCATABLE SYMBOL EXPR00:  ; CYCLING OPERATOR-ITEM ACQUISITION  CLRB  R2   ; ZERO THE EFFECTIVE OPERATOR     ; DEFAULT OPERATOR IS ADDITION  TSTB  ITEMIN ; PENDING ITEM ?  BEQ  EXPR01  ; NOPE, ACQUIRE INITIAL ITEM  CLRB  ITEMIN  ; YES, CLEAR THE FLAG  TSTB  ITYPE  -e,< ̕0-n44n4,= eC eNC c,,=z115/5w.w "[, 7 bw 7w SSw g$[7w BS4SSw :w`4,\qSd&SR # / Z^W,^Fۖ  $,>7l 7 h %7$P 7$L Ћ7S ׭O , ww 0 TLFԔ 7)$,Ӆ1ww   &"׭,8P &w  #1/PDCON IOATICIFNTDE I ;     ERCTRAHA CHE TRNTURE;     S NETIOU RNSIOCTSES HI T ;     ONTICAFITIENIDR TEACARCHR FOL AL C ; 4 @R7, R SR J: 01EMIT R.TONAMIER THE TAS;     B TAR ONKLA BHE TERIDNSCO;     E YTRBCUT ENEMCRDE;  E YTRBCU  C DE R TONAMIER T AISR TEACARCH;  5 M0TE I LT B  ONTICAFITIENIDR TONAMIER TOR FLLCA; R4,@R7  R JS . DRADY TRENS R'TONAMIER T =R4;  R4N,MIER#T  V MO E OP N ; 01EMIT d ; YES. RAS MOV R0,-(SP) ; NO. ALL OVER WITH. RAS MOV #ERR7,-(SP) ; RAS JMP ERROUT ; RAS STA020: MOV #SRCBFB,R0 ; GET ADDRESS OF SOURCE BFUP COM BLOCK RAS JSR PC,BFINIT ; INITIALIZE THE BFUP FILE IF NEEDED. RAS JSR PC,BFENTR ; THEN ENTER THE SOURCE SCRATCH ELE ; HOW IS THIS ITEM TYPED ?  BLE  EXPR16  ; NUMBERS, ERRORS, AND ASCII DATA     ; SYMBOLS PROCESSED  INCB  ICOUNT  ; INCREMENT THE ITEM COUNTER  TSTB  TMPSYM  ; HAS THIS SYMBOL BEEN PACKED ?  BEQ  EXPR0G  ; YES, PROCESS PENDING ITEM  BR  EXPR0C  ; NO, PROCESS THE PENDING ITEM EXPR01:  ; INITIAL ITEM ACQUIRED  DEC  @R3   ; DECREMENT CURBYTE POINTER EXPR02:  ; CYCLING ITEM ACQUISITION  JSR PC, ITEM = ,6_%F7=\  fS ,\_ ,&5@- (,_< el> ,WAf& "b "Z  ,f"D   ,Ϸ  : ?w w 7 g,Bԅ7& &  wω,h̢ ̋#ˋ ׭  l,@  Da%DL %Dwb ,R݁ 1 <%,x$wX ,%z  E BL ? S AB TORS NKLA BNY AREHE TREWE;  G LATF B TBTS R TEINPOE YTRBCUE TH;     S NTMERENC INETIOUBRSUS ABBT C ;     BSTAD ANS NKLA BOR FCKHE CLLCA; BSTACB , PC SR J  BSTAD AN;    S NKLA BEDDDBEEMR FOM TE ICHEAK ECCH;   0:M0TE IR TEACARCHE ONR TEINPO;     E YTRBCUE THP KUAC B ; TEBYUR C EC D  ERNTOI PTEBYUR CHE T ;     TSENEMCRINE INUTROUB SBSTACB;     S AB TND AKSANBLR FOK ECCHL AL C ; S ABBT`MENT.RAS MOV SRBSEC,DSWSEC ; SET START SECTOR FOR WRITE. RAS STA100: MOV #SIBUF1,R1 ; GET ADD. OF DOS BUFFER HEADER. RAS MOV #80.,(R1)+ ; SET MAX BYTE COUNT = 1 CARD. RAS CLR (R1) ; SIBUF1 NOW SET UP FOR ROS CREAD USE. RAS MOV #CRDLST,-(SP) ; PUT CARD READ LIST ON STACK RAS EMT $NCHKPT ; (NO CHECKPOINT DURING I/O) RAS EMT $CREAD ; CALL ITEM SUBROUTINE  BGT  EXPR0C  ; NON-VOID ITEM ENCOUNTERED   ; VOID ITEM ENCOUNTERED AND PROCESSED EXPR12: MOVB  SAVTERM,R0  ; R0 = ENCODED TERMINATOR  ADD  #3,R0  ; R0 = R0+3  BGT  EXPR04 ; = : TERMINATORS IDENTIFIED  BEQ  EXPR09 ; , TERMINATOR IDENTIFIED  ADD  #2,R0  ; R0 = R0+2  BGE  EXPR0B ; CR ; TERMINATORS IDENTIFIED  ADD  #6,R0  ; R0 = R0+6  BGE  EXPR05 ; ! & - + ' " M,b = ^,Бe &e %ze %w,whe %r܃Nj w d& ,r wx  - g-I,Հfw  w 2 ( w  D,w l O" e && ," & "  @ *,7 'wZ,P7531/ C C,PR JS S NKLA BALTINI IMSTE ICHEAH USFL;    S AGFLM NUEC DETES R ; UMCNDE  B LR C  0 =10SEBA;  0 E1AS B LR C  0 =08SEBA;  8 E0AS B LR C  0 =TYTIANQU;  Y ITNTUA Q LR C  DECOR BEUM NIDAL V =PETY I ;  R3 @ RBCL S ESDRADS PETYM TE I =R3;  R3E,YPIT # OV M  0 =ARCHNT C ; ARCHNT C RBCL E INUTRON IOATICIFNTDE I ;     ERCTRAHA CSTIR FHE TTOIN;     S ESDRADT INPOY TREN= 4 R ; \ ; CALL ON CREAD; EXIT TYPE 2. RAS EMT $CHKPT ; ( CAN BE CHECKPOINTABLE AGAIN) RAS TST CRDERR ; ANY ERRORS? RAS BNE STA110 ; YES. RAS MOV R1,R0 ; GET ADD. OF WORD 2 OF BUFFER=# WORDS RAS ADD (R1),R0 ; READ. GET ADDRESS OF LAST CHARACTER RAS CMPB (R0)+,(R0)+ ; ADD 2 TO ALLOW FOR STARTING OFF ONE R   ;  TERMINATORS IDENTIFIED  ADD  #2,R0  ; R0 = R0+2  BGE  EXPR0A ; ) ( TERMINATORS IDENTIFIED CMP R0,#-6  ;CHECK FOR * AND / TERMINATORS BGT EXPRGO ADD #13.,R0 BR EXPR05 ; EXPRGO:  ADD  #3,R0  ; R0 = R0+3  BNE  EXPR04 ; TAB BLANK @ #    ;  TERMINATORS IDENTIFIED    ; % TERMINATOR IDENTIFIED  MOVB  #REGFLG,REGTYPE ; TYPE EXPRESSION AS REGISTER  BR  EXPR02  ; ACQUIRE THE],w 7 HT "Df,zDt-pHw 2 & &`, 7Xw (7^ # ZZ00000*  |R?"R*J :R,yy_.&TF0 `  5*tϊ V    ,$ F `~ c׭4,bb~׭Pk "b,@be Z ^,6w ,fbR4R,HAFC # OV M  SSREDD A6)M(SYMP T =R5;     K ANBL= ) (5M SYMP T ; )+R5 ( RBCL S NKLA B =4)3,M(SYMP T ; )+R5 ( LR C  KSANBL= ) ,2(1YMPSTM;  + 5)(R  R CL K ANBL= ) (0YMPSTM;  + 5)(R  B LR C  SSREDD A0)M(SYMP T =OLMBSY;  L BOYM,SR5  V MO S ESDRAD) (0YMPSTM= 5 R ; R5M,SYMP#T  V MO S NKLA BTHWIR FEUF BYMPSTML IL F ;    RSTEISEG RVESAL AL C ; G REAV S C,PR JS 3:R0UB S: EMIT ERNTOU CERCTRAHA=CR0  ; XAS STA105: CMPB #040,-(R0) ; WORD. IS THIS CHARACTER A BLANK& RAS BEQ STA105 ; YES. GO LOOK AT NEXT CHARACTER. RAS CMPB (R0)+,(R0)+ ; NO. BUMP BACK TO LAST BLANK OR NEXT RAS BIC #1,R0 ; TO LAST. R0 WILL BE EVEN. RAS MOV (PC)+,(R0) ; PUT A CR,LF AT END OF COMPRESSED RAS .BYTE CR,LF ; STRING. WILL ALWAYS BE A WORD ADD. RAS SUB R1,R0 ; CAL NEXT ITEM EXPR04:  ; CLASS 3 TERMINATORS PROCESSED  JSR PC, SETERR ; CALL SET ERRORS  BR  EXPR02  ; ACQUIRE THE NEXT ITEM EXPR05:  ; CLASS 1 TERMINATORS PROCESSED  (OPERATORS)  DEC  R0   ; R0 = R0-1  BGT  EXPR07  ; SEPARATE OPERATORS ! & - +  INC  @R3   ; INCREMENT CURBYTE POINTER  CLR  @R4   ; QUANTITY = 0  MOVB  @0(R3),@R4  ; PLACE THE FIRST ASCII CHAR.     ; INTO QUANTITY LOW BYTE  Tm7 7 7 7 7 7 -m,؄V},%0. 6 VՕ-n w B!e ,ЎX7 2 eeE U,з  ! B  X,o 5Xs,Jc ~-x* d-b*(pc׭V׭I$cpnh\@Fw,! wwwwwwww ,Ӂ $  W"W"   L BOYM SEDORRR E-1<  ;    R BEUM NEDORRR E-1=  ;    R BEUM N0 =  ;    L BOYM S0 >  ;    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 ANSAINTAI MEMIT ;   . RMTEAV STOINE LUVAD DECO  ;   E THE ACPLD ANR TEACARCHR TONAMIER T  ;   EDERNTOUNC ENY ADECOEND ANY IFNTDE I.)TCULATE NUMBER OF CHARACTERS IN STRIRAS MOV R0,(R1) ; NG. SET # OF CHAR. INTO CNTRL WORD. RAS CMP (R0)+,-(R1) ; BUMP R1 TO NEW WORD 3 OF DOS BUFF. RAS MOV R0,(R1) ; AND ADD 2 TO R0. PUT THIS IN # OF RAS CMP -(R1),-(R1) ; CHAR. FOR BFWRIT. BUMP R1 TO WORD RAS ; 1 OF DOS BUFFER RAS MOV R1,-(SP) ; FOR BFWRIT USE. RAS ST  R0   ; WAS THE TERMINATOR ' ?  BEQ  EXPR06  ; YES, SERVICE THE OPERATION  INC  @R3   ; INCREMENT CURBYTE POINTER  MOVB  @0(R3),QUANTITY+1 ; PLACE THE SECOND ASCII CHAR.     ; INTO QUANTITY HIGH BYTE EXPR06: INC  @R3   ; INCREMENT CURBYTE POINTER EXPR16:  CLRB  ITYPE  CLR  R0  BR  EXPR0C  ; SERVICE THE OPERATION EXPR07: TSTB  R1   ; CHECK THE OPERATOR COUNTER  BLE  EXPR08  ; FIRST O}    (, RR    & &, &&  %    ~NS  },jj Е. S{,jRe e0ЋЕ:Е[׭,jЕ*77$  Y,R: 7 ,  >  ,txJ ZßB >  ޓ,ß ,-  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 TEDINEF DRE AMSTE I  ;   R.TONAMIER TEDODNC E ;   TS ITHWIR HEETOG TEMITH AC EE,INUTRO ;   G INLLCAE THO TG,INNTSERE PND AMSTE I ;  P JSR PC,BFWRIT ; PUT CARD IMAGE OUT TO DISK. RAS BR STA100 ; GET NEXT CARD. RAS STA110: CMP CRDERR,#7 ; HERE TO CHECK ERROR CODE. OK IFF EOF.RAS BEQ STA120 ; YES. RAS MOV CRDERR,-(SP) ; NO. PUT ERROR VALUE ON STACK RAS MOV #ERR11,-(SP) ; PUT ERROR # ON STACK RAS JMP ERROUT ; GO DO ERRPERATOR IS VALID  JSR PC, SETERR ; CALL SET ERRORS  CLRB  R2   ; ZERO THE EFFECTIVE OPERATOR EXPR08: CLRB  R1  INCB  R1   ; INCREMENT OPERATOR COUNTER  DEC  R0   ; ENCODE OPERATOR SUCH THAT     ; ADDITION IS ENCODED AS ZERO  BISB  R0,R2  ; SET THE EFFECTIVE OPERATOR  BR  EXPR02  ; PROCESS THE NEXT ITEM EXPR09:  ; CLASS 5 TERMINATORS PROCESSED  BIT  #177400,R1  ; ARE COMMAS VALIDATED ?  BLE Е ,k k7Fw kɋPk,k7,kRR k k Se ѐ  v(,@(  3,m\ -R/@7 @,<נ R׭h I vwj& ,& & I7 t7@p7 3,\ >7 77  H,n ֵ5@t wb,7P =  v8, ALICCTTAYN SOFG ININEF DHE TISN IOCTUN F'SEMIT;   M TE INETIOUBRSU;   AL P GEPA . N URET R ; R7  S RT S ESOCPRE THE NUTION CS,YE;  0 B0LK B HI B  ?) (0STLIUR C >R0S I ; STLIUR,CR0  P CM  NKLA BIISC A =0)(RERFFBU;  ) R0-( ,#'  B OV M: 00KBBL L PA. EDNKLA BESYT BNYMAO TNE OESAK MISTH; R0 C IN ; SSREDD ASEBAS ERFFBUG INSTLI;     E IVCTFEEFE TH+ R0LOR STUFF. DON'T COME BACK. RAS STA120: MOV #-1,(R1) ; PUT OUT EOF CONTROL WORD RAS MOV #2,-(R1) ; PUT OUT BYTE COUNT (1 WORD) RAS CMP -(R1),-(R1) ; BUMP R1 TO WORD 1 OF DOS BUFFER RAS MOV R1,-(SP) ; PUT ADDRESS ON STACK RAS JSR PC,BFWRIT ; WRITE OUT EOF CONTROL WORD RAS JSR PC,BFPAD ; PAD OUT BUFFER WITH ZEROS RAS  EXPR0B  ; YES, PREPARE TO RETURN EXPR0A:  ; CLASS 4 TERMINATORS PROCESSED  BIT  #177400,R1  ; ARE PARENTHESES VALIDATED ?  BLT  EXPR0B  ; YES, PREPARE TO RETURN     ; NO, ABORT THE EXPRESSION  CLR  @R5   ; RESULT = 0  JSR PC, SETERR ; CALL SET ERRORS  INC  @R3   ; INCREMENT CURBYTE POINTER  BR  EXPR00  ; RESTART EXPRESSION EVALUATION EXPR0B:  ; CLASS 2 TERMINATORS PROCESSED  SWAB  R2   |e 7!, Z  #2-7!be Z,F0e  !!!!!,l @` 7  N `  G,ۀ77T} w0&  & & , & w<Ґ&  7 7r,Fܟl@ 0 ,&f"ZdX,  J,ܨ Ã",JԷ .f  wm%@,p feft P h  ,*m "ҕ- = 0 R ; R0T,ISRLCU  D AD 1:R0UB S: UFKBBL 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 LVETIECFF EHE TLLFI;   S ERCTRAHA CERFFBUG INSTLIK ANBLE INUTROUB S ;  L PA E AG.P S RA H MOV DSWSEC,SRBLNT ; COMPUTE THE LENGTH OF THE SRC. ELEMENTRAS SUB SRBSEC,SRBLNT ; RAS MOV #SRCBFB,R0 ; AND CLOSE IT. RAS JSR PC,BFCLOS ; RAS JSR PC,BFOPEN ; THEN OPEN IT FOR THE READ. RAS CLRB FRCABS ; DON'T FORCE '@#A' MODE RAS MOVB #1,PASS ; START ON PASS 1 ; GENERAL ERROR FLAG =  MOVB  R2,ERROR  ; R2 HIGH ORDER BYTE  CMPB  #1,RSLMOD  BGE  EXPR0R  INCB  AERROR EXPR0R: TSTB PRGSEC BEQ EXPR0P  ;NO .CSECT CMPB PRGSEC,SECMOD BEQ EXPR0P  ;CURRENT .CSECT MOVB #-2,RSLMOD ;NOT CURRENT. EXPR0P:  JSR PC, SETREG ; CALL SET REGISTERS  TSTB  ICOUNT  ; SET THE CONDITION CODES  RTS  R7  ; RETURN EXPR0C:  ; NON-VOID ITEM ENCOUNTERED AND PROCESSED  INCB  ICOUNT  ; IN 0 7 . ,*7w 7 } 'Zp7w5,P 41. R PׯJ  BO,vׯ< ,k  :Hv,ݷ 6& Ν7 20:3,& Ν  CROSS REFERENCE Tk~ABLE S-,SMPCE @ X f&f, ^ w |  e $n  - a,n$5@ B  F nw w ` N VE.E S RA E.AGSSMEN IRSTEACARCH# ; 6 B-ERSM-A=. N RLAE S RA GEPAW NEA D AN' '.A ; FF6,05 E YT.B S RA ; =. RVMEAS E ER HESGOE LUVAR ROER; 0 0,0,0,0,0, E YT.B S RA ; /ISE LUVAE TH /. IISC.A S RA ; X//X IISC.A: RNMEAS S RA D. RAS CLRB CNSTLV ; CLEAR CONDITIONAL NEST COUNTER. RAS CLRB DNTACT ; CLEAR ASSM/DON'T ASSM SWITCH(0=ASSM).RAS MOV R6,STKBOT ; SET STACK TOP (BOTTOM OF SYM. TABLE). RAS .PAGE RAS ;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 PECREMENT ITEM COUNTER  TSTB  ITYPE  ; HOW IS THE ITEM TYPED ?  BLE  EXPR0I ; NUMBERS, ERRORS, AND ASCII DATA   ; SYMBOLS PROCESSED  JSR PC, 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,E505152535455565758597071727374- )$4   ҕ ҕ # ,5  "H޷ , f ooooooooF,o p p0p6p <pB |pY,p2 fp V o,8pp  0?,ښ0ӫyzqQ[< CC TRANSFER AnDDRESS: 0 LOW LIMIT: : HIGH LIMIT:  ; / # R ROERM AS R**/* IISC.A S RA 1.R VE OND A 3WNDO; AB,TLFF,,LLF E YT.B S RA ; N RLAE D OR.W S RA ; 0 D OR.W S RA NTOU CTEBYX MA; N RLAE D OR.W: RBMEAS S RA** * ITEX; T XI$E T EM S RA ; LSFC$B T EM @RBOT ,R0 ;ADDRESS (HIGHEST) OF 1ST ENTRY. MOV PERTOP ,R1 ;ADDRESS OF 1ST (LOWER) FREE REGISTER. STINI1: CMP R0,R1 BEQ STINI0  ;DONE WHEN MATCH. BIC #REDEF,@R0 ;CLEAR RE-DEFINED BIT. SUB #10,R0  ;DECREMENT POINTER BY 4 WORDS. BR STINI1 ;INITIALIZE THE 1ST CONTROL SECTION ENTRY: ;THE ENTRY IS 4 WORDS OF 0 (THE UNNAMED ;CONTROL SECTION). ;CONTOP=C(PERTOP)-4 (WORDS) STINI0: CLR @R1  ;CLEAR CLR -(R1)  ;FOUR CLR -(R1)  ;WORD CLR -(R1)  ;ENT EXPR0I EXPR0M:  JSR PC, SEARCH ; CALL SEARCH THE SYMBOL TABLE  BR  EXPR0G  ; FOUND AS A USERS SYMBOL EXPR0F: JSR PC,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  ,A @& , @    &   q,`@   2w AkɥL,qɥHu ɥ oɥ l S.,Bq -& `rc  _,hqe#&R00-XXX-70 H,SECTION ADDRESS SIZE   5,* 7( ?LOAD MODULE EOM ?Օ, Օ ww,0p&d/ENNa ^,VݠwP - S RA NTMELE ERYNABIE THD AN; ) SP-(B,BFIN#B V MO S RA ; LSFC$B T EM S RA NTMELE ECEURSOE THE OSCL; ) SP-(B,BFRC#S V MO S RA T. INTRI PGO; T INPR,LPC R JS S RA . CKTA SON. DD AERFFBUR ROERT PU; ) SP-(B,ERSM#A V MO S RA I.CIASO TRYNABIE THT ERNVCO; C ASIN,BPC R JS S RA 2. RINR HA<RY. CLR -(R1)  ;JUST TO DECREMENT R1 MOV R1,CONTOP ; ;INITIALIZE TOP OF UST TO TOP OF CONTROL ;SECTION AREA. MOV R1,USRTOP ; ;ENTER THE USER PC SYMBOL . INTO ;THE UST. MOV R1,HINDEX ;HIGHEST ADDRESS OF SLOT. MOV #127400,TMPSYM+1 ;1ST TRIAD CLR TMPSYM+3 ;2ND TRIAD JSR PC,ENTER MOV R1,HUSERPC ;HIGHEST ADDRESS OF USER PC ENTRY TST -(R1)  ;ADDRESS OF VALUE WORD MOV R1,USERPC ;OF USER PC ENTRY. .PAGE #MDFLAG,R0  ; SYMBOL MULTIPLY DEFINED ?  BNE  EXPR0H  ; NOPE  INCB  DERROR  ; DOUBLY DEFINED 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 TJw׭-8ww brLw R w VBSaw N3xrBS&Sw * SRw "0r SSw 2 w .BSaw -"rL7 $  rO[iww 6 e BfE͓͋7  7 @ D,: @%,` w &f"&&,ޒ\ \wRNa w l-B,f   X -R  ,D :-2 d$| M,j#CT PU; 2 ,R#6 V MO S RA 3 RINA RE AARCH6 T PU; R3V,ERSM#A V MO S RA 4 RINE LUVAT PU; R4+,P)(S V MO S RA ; RNMEAS+,P)(S VBMO S RA GESAES MIN# R ROERT PU; +1RNMEAS),SP1( VBMO: UTROER S RA ; S RA UTROER P JM ; 8 PAL ; RAS ; INITIALIZE DOT TO ZERO, DEFINED, RELOCATABLE,.UNAMED .CSECT. RAS STA200: CLR @USERPC ; SET DOT TO ZERO. RAS MOV #DEFFLG!RELFLG!400,@HUSERPC ; RAS CLR ABSPC ; RAS CLR RLDFLG ; HE EXPRESSION     ; AS REGISTER EXPR0I:  ; DECODE THE EFFECTIVE OPERATION    ; CAUTION, HANDLERS SIZE LIMITED.  TSTB  R1   ; WERE ANY OPERATORS SEEN ?  BGE  EXPR1I  ; YES, OR VALID SITUATION  JSR PC, SETERR ; CALL SET ERRORS EXPR1I: JSR PC,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  *0 84 &f&!( /"8G 'h e8f f"6rxpXE0f 8f ,Nޖ% ҥ &f"|,t|~yHl \wRx,rrr RE, ހe-Bw r7v ,& b^e 7 1 /,e@7 *S RA ) SP-(#,RR#E VEMO ; S RA ) SP-(E,LUVA VEMO ; S RA : ISE AGNKLIE TH; S RA S.ITEXD ANE AGSSMER ROERE THS NTRI PNETIOU RISTH; L PA E AG.P RNTURE;  7 R TS R  DRADD KEACST= ) ,3(2RSADBH; +2RSADBH+,6)(R  V MO ) ,3(2RSADBH= ) ,1(0RSADBH; 4 RAS ; RAS ; CLEAR ALL CURRENT PC WORDS IN THE CONTROL SECTON AREA OF THE SYM. TAB:RAS MOV PERTOP,R0 ; BOTTOM OF .CSECT AREA IN RO RAS MOV R0,R2 ; AND R2. RAS MOV R0,HIRPC ; POINTER TO MAX PC OF BLANK .CSECT RAS TST -(R2) ; AREA RAS MOV R2,RELPC ;THE APPROPRIATE  .WORD  EXPRLA  ;OPERATOR HANDLER .WORD EXPMUL,EXPDIV ; 5/14/73     ; 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 4>?@ABCDEL,Vv*}(vH (FS8 HHq菸`^R}p!!?&#Z 5@- SS |& fNUVUN#,?!=5@- 8 BBUBU8 - / |$^ ( &^ X& "u > U@ &^  R,uSpw fw 7 <ww,w zz5Pb UE T0 0 ŋU  60 pU2"װ w p <@E  (,^ %Cf e 3  4 A& Ne > Rf| E( p M  ESSSREDD ARSDEEA H ;     ERFFBUT PUINE THG ININTAON C ;     LEAB THE TOFS ESDRAD= 2 R ; R2S,DRHA#B  V MO 2:R0UB S: TETARO EDOYTRES DRE AR3U HR TR0  ;    S ESDRADS ERADHE   ;    ERFFBUT PUINE RCOU S  ;    S ERFFBUE BLLAAIAV= 0 RT PUUT O ;    NENO T PUIN;    N IOITOS PLEABILVA AHE TTOINR FEUF BESATOT R ;   KSANBLO TTADAS ERFFBUS HI TESIZALTINI I ;   ERADHEO LRSFEUF BISTHS ZELIIAITIN ;   Y ( R0=1 WILL CAUSE BIN. BUF SETUP & RAS MOVB R0,BINOUT ; INITIALIZATION. (FORCE BINBUF OUT) RAS JSR PC,BBINIT ; INITIALIZE BINARY BUFFER. RAS MOV #NORMLN,MAXLINES; SET DEFAULT LINES/PAGE RAS CLR PAGING ; RESET PAGING COUNTER RAS CLR ERRSUM ; CLEAR ERROR COUNTER. RAS CLR LINENO ; CLEAR LINE NUMBER COUNTER. RASRR  ;NO-AERROR  TSTB  RSLMOD  BLE  EXPERR  DECB  RSLMOD  BNE  EXP3N  ;CLEAR PREVIOUS .CSCET ID  CLRB  PRGSEC  ;IF EXPRESSION GOES ABSOLUTE. EXP3N:  SUB  @R4,@R5  ; RESULT = RESULT-QUANTITY  BR  EXPR0K  ; PROCESS THE NEXT OPERATOR    ; INCLUSIVE OR EXPRL0:  BIS  @R4,@R5  ; RESULT = RESULT .IOR. QUANTITY EXPRL1:  TSTB  ITYPE  BEQ  EXPR0K  BITB  #DEFFLG,R1  BEQ  EXPERR  BITB  #RELFLG,R1  BNE  -D,x&SxRRw<"xw2(x7 6w ww 7.c   KаPe$d d ( ci Ċ  l  "    E /]BbF $  `% cN8  w%$ D`);D` &*   0  U p 8 E -e Ee v&   E ARSSCENEF IN,IOATINRMTEO LESFIRIVE ;   : KSAS TNGWILOOL FHE TMSORRFPEE INUTROUB SISTH;   S ERFFBUT PUUT/OUTNP ITETAROE INUTROUB S ;  L PA E AG.P N,URET R ; R7  S RT : T1INPR ERCTRAHA B?' 'TETUTIBSSU; TEBYUR@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 PD LIVA$ MOV SRBSEC,DSRSEC ; SET START SECTOR FOR THE READ. RAS CLR CONWRD ; RESET CURRENT CONTROL WORD FOR NXT PASRAS MOV BHADRS+2,R0 ; GET ADDRESS OF FIRST BUFFER FOR READ. RAS MOV R0,-(SP) ; PUT ADD ON STACK RAS MOV #SIMBC,(R0)+ ; PUT IN MAX BYTE COUNT RAS CLR (R0)+ ; CLEAR WORD #2. RAS CLR (R0)+ ; AND WEXPERR EXPROK: EXPR0K:  JSR PC, SETREG CLRB  R1   ; SET OPERATOR COUNTER  COMB  R1   ; BYTE = -1  JMP  EXPR00  ; PROCESS THE NEXT OPERATION    ;;AND EXPRLA:  COM  @R4  BIC  @R4,@R5  BR  EXPRL1 EXPERR:  JSR PC, SETREG  INCB  AERROR  JMP  EXPR12 ; ; ; .IF Z $1145 ; 4/27/73 DIVISOR = 177300 AC = 177302 MQ = 177304 MULTIPLY= 177306 = wl 7  7 7 w 7 7 B @  CW"  W"@ w DSZERR yB> U%g"G8$ d!vlC$B$bF % A BB`$&(?B ` 5 5 >* F  &#*+Ue t * f|&M $^ @ QC$QTT T$ d!`@  ##`F INS IEPLIM. GT .  ;    IDAL VESLIMP IE..L  ;    S LTSURED DECON IOITNDCO: UTTPOU;    Y ITILABNTRI PNETIOUBRSU;  AL P GEPA . N URET R ; R7  S RT N URET R ; R7  S RT: H0TCGE ;. ONTINAMIER TRESUIN;  3 ,RTEBYUR@C  B OV M  ;0 < E IZ S ANGSI U ;     RDWO . AASD REDESION C ; 6)(R,2770300 # OV M  ;X TAYN SLEABONTIESQU, ES Y ; ORRRQE  B NC I  ;T XI ESO ORD #3. RAS MOV R0,CURLIST ; SET ADDRESS OF FIRST BYTE IN CURLIST. RAS MOV #LOMBC-DFSILO,R0; SET #BYTES TO BLANK IN R0. RAS JSR PC,BLKBUF ; BLANK ALL OF INPUT BUFFER. RAS JSR PC,BFREAD ; GO GET FIRST CARD RAS ; MOV #SRCBFB,-(SP) ; PUT ADDRESS OF RAS ; JSR PC,BFWAIT ; WAIT FOR COMPLETION OF I/O REQUEST. RAS .ENDC ; 4/27/73 ; ; ; ; THESE TWO SECTIONS (EXPMUL AND EXPDIV) PERFORM THE ASSEMBLER ; MULTIPLY (*) AND DIVIDE (/) FUNCTIONS. LEFT TO RIGHT ONLY, ; PARENTHESES NOT PERMITTED. ; .IF Z $1145 ; 4/27/73 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  ;M `C@%&(44`  t#   g"G<a~B         e  P8w h-l,r{"w n :  !-*-{*k-bY"{k k E AS CIDAL VO, N ; H0TCGE  E BN ; ?ET-RAR C AERCTRAHA CISTH; TEBYUR@CR,#C  B MP C  ;. EDATINRMTES I ;     VETIECIR DHE TND ADECO;     R ROER' 'QA H IT WEDNTRI PIS;     E IN LNKLA B AR,EAPP AESDO;     E ONF I. NTMETETA SIISC.A;     N AINTHWID TEITRMPER VENE;     S IERCTRAHA CET-RAR C AATTH;     S RESUINE OD CEDOPO- NISTH;     R TEACARCH. FF E =RMTEAV S ; 5 @RE,YTRBCU @ VBMO 1: JMP SETSRC ; GO START THE PROCESSING LOOP. RAS .PAGE RAS ;.CSECT ;THIS PART HANDLES THE ;.CSECT DIRECTIVE ; ;    ;CSECT HANDLER RCSECT: CLRB SIZE NEGB BINOUT ;REQUEST BINARY OUTPUT MOVB SAVTERM ,R0 ;TERMINATING CHARACTER: CMPB #-4,R0  ;CARRIAGE RETURN BEQ CSECT1  ;UNNAMED .CSECT CMPB #-5,R0  ;SEMI COLON BEQ CSECT1  ;UNNAMED .CSECT JSR PC,CBTABS  ;FTEST FOR > THAN 16 BIT PRODUCT BEQ EXPROK TGOOF: INCB TERROR ; TRUNCATION ERROR RAS 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 .IFF ; 4/27/73 EXPMUL: MOV R1,-(SP) ; SAVE R1 4/]0 %  rU%g"G$^ e e0EMP&&( &^ &  &S%^ V%  $g"H @ U$eF e$ d!Wc a_ %~e,| 7 7 7 e7 T,|e7 3~ A~,|k @`w CFTERR wwme   | `NHwHW  R1UB S: ARCHET GR TEACARCHT GEE INUTROUB S ;  L PA E AG.P RNTURE;  7 R TS R: 01ENEV UTNOBI1, # VBMO F BUEB , PC SR J  EGTRSE , PC SR J  ILDFRL , PC SR J  R44, # OV M  N.IOATICIFOD;M R1C,RPSE@U  V MO R TEUNCON IOATOC;L R02,3.LD#R  B OV M  EGVRSA , PC SR J  UTTPOUY ARIN BSTUEEQ R ; UTNOBI  B EG N  ORRR ENGDIUNBOE THT SE;  R ROER B CBIN  UFBB T NC I  C. P'SERUST ENLUSH BLANKS OR DEC CURBYTE  ;TABS. JSR PC,ITEM  ;GET NEXT ITEM TSTB CNTCHAR ;ANY CHARACTERS FOUND? BLE CSECT1  ;NO. UNNAMED .CSECT TSTB ITYPE ;LEGAL SYMBOL? BGT CSECT5  ;YES INCB QERROR ;Q ERROR FLAG CSECT4: JMP MAIN1E ;UNNAMED .CSECT CSECT1: CLR TMPSYM+1 ;PACKED MOD40 SYMBOL CLR TMPSYM+3 MOVB #1,R3  ;ID NUMBER 1 MOV PERTOP ,HINDEX BR CSECT6 ;PREVIOUS SECTION .ASECT CSECT2: MOV @USERPC ,ABSPC 27/73 MOV (R4),R1 ; SET UP FOR THE MUL 4/27/73 MUL (R5),R1 ; 16 BIT PROD. OF (R4)*(R5) INTO R1 4/27/73 BCC 10$ ; NEEDED LESS THAN 16 BITS 4/27/73 INCB TERROR ; NEEDED MORE SET T ERROR 4/27/73 10$: MOV R1,(R5) ; SET RESULT 4/27/73 MOV (SP)+,R1 ; RESTORE R1 4/27/73 BRm5@ U C΋ Cb M΋U@ U &  B" .&0 M &0 & ngɋe I ,}I I I I I I I%,~ DIRECTORY TOTL BLKS: TOTL ),~ord!,E .\}0>x?.J >tLlhPPpf`>m(F"tn :Tp U UCB E e v * "U%Ge@tf.  EMCRIN O, N ; PCERUS @ NC I  ITEX, ES Y ; 01ENEV  Q BE ? N VE EERNTOU CONTICALO;  C RPSE@U1, # IT B  UFBB,TPCERUS @ OV M: 26BRSU C:NPVE ER TEUNCON IOATOC LHE TENEVE INUTROUB S ;   NGSIESOCPRE ETPLOM C ; T XI E MP J  ORRRBE  B LR C  ERNTOU CONTICALOE THN VE ELLCA; PCENEV , PC SR J  T.OUD CEOR F ;    YSWAALS IERFFBUT PUUT ORYNABIE TH;    , REFOREHE TD,RETEALY LLNAIOITNDCOUN;    S IERNTOU CONTICALOY BLEMSS A BISB #RELFLG,@HUSERPC ;SET RELOCATABLE ;FLAG BIT IN DOT SYMBOL ENTRY BR CSECT7 ;MORE THAN 376(8) .CSECT'S CSECTE: CLR -(R6)  ;ERROR MOV #ERR1,-(R6) ;ANNOUNCEMENT JMP ERROUT ;PACK THE CHARACTERS IN BYTES TMPSYM (0) TO TMPSYM (5) ;INTO PACKED MODULO 40 REPRESENTATION IN WORDS ;TMPSYM+1 AND TMPSYM+3 CSECT5: MOV #TMPSYM,R1 ;ADDRESS OF 1ST BYTE JSR PC,SERCHB  ;MODULO 40 PACKER INC R1  ;TMPSYM+1 TO R1 MOV #WORD3,R4 ;NO 3RD WORD CLR @R4  ;MAT EXPROK ; RETURN 4/27/73 ; 4/27/73 EXPDIV: MOV R0,-(SP) ; SAVE R0 4/27/73 MOV R1,-(SP) ; AND R1 4/27/73 CLR R0 ; SET UP FOR THE DIV 4/27/73 MOV (R5),R1 ; GET LOW 16 BITS (HIGH 16 = 0 ) 4/27/73 DIV (R4),R0 ~շ 7,k * *2 2 P w pwNT~SYSERR wL 3  fDDa m@ f& U" J D Ee Ev ;& JEU    ʕ jRILL DEVNO FILEILL ADRNO COREe & &T J| E؏7eAa w L HE T ;    NGSIESOCPRE IVCTREDIY BLEMSS AENEV;   : ENEV S RA. ALONTIRAPE OOT NESGE . T XI EONMMCO; MNTCLS BR : ESGE ;. ALONTIRAPE-OON NRE AESIVCTREDI ; T ISNL .ND ASTLI .ENTH, NTSERE PIF- E IVCTREDIS EE.G ; ; AS R ITEXN MOOM C ; N CMST L R B G LA FSTLIS ESPRUP SET;S ONSTLI7,RV MO T:ISNL DECOD LEMBSEASN-NOF TOOUNTRI PCEURSOS ESPRUP S -VETIECIR DSTLI.N ; ;T XIER B AS R NELIS HI TNTRI P'TON D ; EYCH; JUST SYMBOL MOV PERTOP ,R2 ;PERFORM LINEAR MOV CONTOP ,R3 ;SEARCH OVER CONTROL JSR PC,LINSRCH  ;SECTION TABLE BNE CSECT3  ;MATCH FOUND ;THIS CONTROL SECTION NAME NOT IN TABLE ;ENTER A NEW CONTROL SECTION ENTRY. MOV R3,HINDEX ;BASE ADDRESS OF ENTRY    ;IS CURRENT TOP OF    ;THE CONTROL SECTION    ;TABLE. CLR RESULT ;0 TO CURRENT CLR TFLAGS ;AND MAXIMUM PC JSR PC,ENTER SUB #10,CONTOP ;ADJUST BOTTOM OF UST ;MAT ; DIV (RK) BY (R4) 4/27/73 BCC 20$ ; NO ERROR 4/27/73 INCB TERROR ; TRIED TO DIV BY ZERO 4/27/73 20$: MOV R0,(R5) ; SET RESULT 4/27/73 MOV (SP)+,R1 ; RESTORE R1 4/27/73 MOV (SP)+,R0 ; AND R0 4/27/73 BR EXPROK ; RETURN n e p 8efw  w GULF/DOS V:  w GULF/BATCH V\w w  m*0 0 &e %$ rd!|Iac)$BbF %"  E&̕  H@m44e `fEe0 IAWFS$ &M Q$NE `ee B_ Z$ z "L  U TEE& N D%TKIS,L-1 # OV MN:CMST LN TOISLR CL T:IS L; DECOD LEMBSEASN-NOF OUTTOINPRE RCOU SMESURE- E IVCTREDIT IS.L ; ; AS R R LENDHAD EN .EDATULIM S ; 11ND E MP JD:ENIM S AS R ERDLAN HTEBY . ; TEBY R MP J E:YT B AS R R LENDHAI CIAS . ; I CIAS R MP J: IISC A AS R R LENDHA0 D5RA . ; 0 D5RA R MP J: 50AD R AS R ERDLAN HDCEN . ; DCEN R MP J C:ND E CH FOUND---COMPUTE CONTROL SECTION ID CSECT3: MOV PERTOP ,R3 ;ADDRESS OF 1ST ENTRY SUB HINDEX ,R3 ;ADDRESS OF THIS ENTRY ASR R3  ;DIVIDED BY 4 ASR R3  ASR R3  ;XTRA SHIFT FOR BYTE BIT INC R3  ;+1=CONTROL SECTION CMP #376,R3  ;ID NUMBER BLT CSECTE  ;TOO BIG IF >376(8) CSECT6: TSTB SECMOD BEQ CSECT2  ;PREVIOUS SECTION ABS ;PREVIOUS SECTION RELOCATABLE. MOV @USERPC ,R1 ;SAVE CURRENT PC FOR MOV R1,@RELPC ;PREVIOUS SECTION C 4/27/73 .ENDC ; 4/27/73 .PAGE PAL  ; SUBROUTINE SET ERRORS   ; UTILITY SUBROUTINE FOR EXPRESSION SETERR: SUBR21: INCB  QERROR  ; QUESTIONABLE SYNTAX ERROR  BIS  #000400,R2  ; SET THE GENERAL ERROR  RTS  R7  ; RETURN  ; SECTION: CHARACTER IDENTIFICATION    ; INPUT R0 MUST BE FREE      g"G܀ (   %08t C`  J D`$ !$$a!! v  @m $ (W&^ %ע9&  c cDe$E Nt   e7Db  T % $^ &fE`EPe 6!6  L ",Z  BaBa6A c JQ   0  AS R S ERDLAN HALONTIDION CALICOG L ; 2 ROFP I MP J: DFFN I AS R RYNT EDFIF . ; )+R1,()+R1 ( MP C F:FD I ERDLAN HALONTIDION CICRAEBLG A ; ROFP I MP J : FZ I+ 1)(R+,1)(R MPC: LEIF )+R1,()+R1(P CM L:IF 0)00IF (LEAB TCHANBRO NT;I )+R1,()+R1(P CM E:FG IT ENEMACPLIS DEROPPRT SE;+ 1)(R+,1)(R MPC: FG I+ 1)(R+,1)(R MPC: NZIF ;; N"AI"ME SE--E-NCRANT EON0 )=R1C( ;; ERDLAN HESIVCTREDIL NAIOITNDCOF OONTIOR PNTDESIRE ;; S RA MP R1,@HIRPC BLOS CSECT7 BIT #1,R1  ;EVEN OFF MAX. PC BEQ CSECT8 INC R1 CSECT8: MOV R1,@HIRPC CSECT7: MOV HINDEX ,R0 ;BASE OF NEW CSECT ENTRY MOV R0,HIRPC ;ADDRESS OF MAX. PC TST -(R0) MOV R0,RELPC ;ADDRESS OF PC MOV @R0,TBBUF ;PC OF NEW .CSECT MOVB R3,SECMOD ;NEW .CSECT ID TO SECMOD MOV TMPSYM+1 ,R1 MOV TMPSYM+3 ,R2 CSECT9:   ;NEW PROGRAM SECTION ID TO DOT ID MOV HUSERPC ,R3 MOVB SECMOD ,1(R3)  ; OUTPUT R0=SFLAG'S VALUE ;  NUMBERS R0=1  CONVERTED AND PACKED ;  SYMBOLS R0=2 OR 3  MOD40 AND SAVED ; NOT FOUND SITUATIONS: ;  TERMIS R0<0  R0=SFLAG IS CODED ; FOUND SITUATIONS: ;  TERMIS R0=0  CHARACTER WAS NOT A TERMI. ; R0 RETURNED VALUE   INTERPRETATION ;  NUMBERS R0< OR = 1  DEFAULTED TO TERMIS SEARCH ;  SYMBOLS R0< OR = 1  DEFAULTED TO NUMBER SEARCH ;  = 3   NTH CHARACTER'S ENTRY RESULT ;    NOT&^ %&B A!-W D ,W   -&^ %V5 & `eB<Uh0E  2% e 0 00 0 & 0"_U%G ?@5@"- -5@f!  E 6 &M  $o|^ ww @g w ,eew wl !B Z 5 T XI EONMMCO; MNGCPA BR RDWOS NELI. AX MINE LUVAE ORST;S NELIAX,MTYTIANQU OV MK:EOIN L AS R ITEXN MOOM C ; N CMAG P R B . SK TK,TS; R ROERNB NCI K EOINLQ BE  UEAL VODGOA S ITE UR SKEMA; E YPIT TBTS  NOFE LUVAT GE;  EMITC,PR JS S:NELI ;N ESIN.L  ;; NGSIESOCPRE IVCTREDIE AG PER PESIN LOFR BEUM NNEFIDE  ;; ;T XIER B AS R E.IN LISTHG INNTRI PPCR ORYNABIO N ; E IZ S B EC DN:MOVB #RLD3.1,R0 ;LOCATION COUNTER DEFINITION MOV TBBUF ,R3 ;DISPLACEMENT FROM SECTION BASE MOV #10,R4  ;# OF BYTES TO RLD JSR PC,RLDFIL JMP EXIT .PAGE PAL ;.ASECT ;THIS PART HANDLES THE ;.ASECT DIRECTIVE ; RASECT:    ;ASECT HANDLER NEGB BINOUT ;REQUEST BINARY OUTPUT TSTB SECMOD BEQ ASECT1  ;ALREDY IN .ASECT ;PREVIOUS SECTION .CSECT MOV @USERPC ,R1 ;SAVE CURRENT PC FOR (0-9) . DEFAULTS TO FCHAR ;  = 2   NTH CHARACTER'S ENTRY RESULT ;    DEFAULTS TO NUMBER ;    1ST CHARACTER'S ENTRY RESULT ;    WAS (0-9) .DEFAULTS TO FCHAR ;  = 1   NUMBER'S ENTRY RESULT ;    DEFAULTS TO TERMINATOR SEARCH ;  < 0   CHARACTER WAS A TERMINATOR ;  = 0   CHARACTER NOT A TERMINATOR ; TERMINATORS ENCODED AS FOLLOWS: ;  #  -18 ;  @  -17 ;  %  -16 ;  BLANK  -15 ;  TAB  -14 ;  (  -13 ;  )  -12 ;  +$AcfNl & E CD  aCU%W# e  p p 0 (t& N.L &0 L $ d!ll&^ %T&\ 6$ \}ekJ4r\!\!&t*t&t*t:sroCyyz/N`Vq+fKqf@BEy/D' &$ d!K(a ͋,L wB ` 5 5 r* y CMAG P ALTPUNCOE AG POWFLEROV T.ECEJE AG PCEOR F ;NGGIPAS,NELIAX M DD A E:AG P AS R R LENDHAD EN . ; D EN R MP J : ND E AS R R LENDHAT MILI . ; T MILI R MP J: ITIM L AS R R LENDHAE TLTI . ; E TLTI R MP J: LEIT T AS R RSLENDHAF RE .F,DE .L,OBGL . ; L OBGL R MP J: BLLO G AS R R LENDHAT ECAS . ; T ECAS R MP J: CTSE A AS R R LENDHA  MOV R1,@RELPC ;PREVIOUS SECTION CMP R1,@HIRPC BLOS ASECT1 BIT #1,R1  ;EVEN OFF NEW MAX. PC. BEQ ASECT2 INC R1 ASECT2: MOV R1,@HIRPC ASECT1: MOV ABSPC ,TBBUF BICB #RELFLG,@HUSERPC ;CLEAR RELOCATABLE    ;FLAG BIT IN DOT SYMBOL ENTRY CLRB SECMOD ;.ASECT ID MOV #ABS1,R1 ;'.(SPACE)A MOV #ABS2,R2 ;'BS. BR CSECT9 .PAGE PAL ;.GLOBL THIS SECTION HANDLES GL "  -11  QUOTATION ;  '  -10  APOSTROPHE ;  +  -9 ;  -  -8 ;  !  -7 ;  &  -6 ;  ;  -5 ;  CR  -4 ;  ,  -3 ;  :  -2 ;  =  -1 .PAGE PAL ;  TERMINATOR CHARACTER TABLE TCHART: TCHARS = TCHART+24 TCAMUL: .BYTE  '* TCCMUL = TCAMUL-TCHARS TCADIV: .BYTE '/ TCCDIV = TCADIV-TCHARS TCAIMM: .BYTE  '#   ; IMMEDIATE TCCIMM  =    U% vd vE   EemLA %%n  . $) &qtovqxkzf f%5  6 &f" &"  &" e< %%$(p. !0w & 20 $2(0#.@p D A  &T ECCS . ; T ECCS R MP J: CTSE C AS R ; AS R ESIVCTREDIR LEMBSEASR FOS ERDLAN H ; AS R ;E IN LCEURSOO TRNTURE;  C SRET S MP J  NGSIESOCPRE IN LND ELLCA; E INDLEN , PC SR J T:XI ET MAOR FNGTIIS LUPT SE;F BUTB3,@R OVM: 1EINMA RNTURE;  7 R TS R  UEAL V'SOLMBSY= T ULES R ;  3 @R),R02( - OBAL STATEMENTS RGLOBL:  MOVB  #-1,SIZE CLRB  SAVTERM JSR PC, CBTABS GLOBL1:  DEC  CURBYTE GLOBL2:  MOVB  SAVTERM ,R0  CMPB  #-4,R0 ;CARRIAGE RETURN  BEQ  GLOBLX  CMPB  #-5,R0 ;SEMI COLON  BEQ  GLOBLX  JSR PC, ITEM  ;GETS THE NEXT SYMBOL  TSTB  CNTCHAR  ;;ANY CHARACTERS FOUND  BGT  GLOBLA  ;YES THEN BRANCH GLOBLX:  JMP  EXIT  ;ABORT GLOBLA:  TSTB  ITYPE  ;IF ITEM WAS LEGATCAIMM-TCHARS TCADEF: .BYTE  '@   ; DEFFERD TCCDEF  =  TCADEF-TCHARS TCAREG: .BYTE  '%   ; REGISTER TCCREG  =  TCAREG-TCHARS TCABLK: .BYTE  '   ; BLANK TCCBLK  =  TCABLK-TCHARS TCATAB: .BYTE  011   ; TAB TCCTAB  =  TCATAB-TCHARS TCALPA: .BYTE  '(   ; LEFT PARENTHESIS TCCLPA  =  TCALPA-TCHARS TCARPA: .BYTE  ')   ; RIGHT PARENTHESIS TCCRPA  =  TCARPA-TCHARS TCAQUO: .BYTE  '"   ; QUOTATIO$ .L)Lw 46 V)V8(ȥr0 rر1 L0  ꥞.F  f E$ Ae"$   U w% ft 4 ( e:e H 1 =w XH A w Lh 1 *.: w D3 w < w 4w < 7 w ..7 w &7 7 f<*" f"  {** tHa X ý 1*NF" OV M  SSREDD ARYNT E'SOLMBSY= 0 R ; R0.,EXNDHI  V MO R ROERD NEFIDEY PLTIUL MET S ; ORRRME  B NC I: 05BRSU L:VAAV SE ON NUTTPOU;    N IOATTUSIL IAECSPT PUIN;    T SES IORRR EEDINEF DLYIPLTMUE TH;   . UEAL VLEAB TOLMBSY ;   E THH IT WUEAL V'SLTSURES CELAEP RNETIOUBRSUS HI T ;   OLMBSYE THF OUEAL VVESAE INUTROUB S ;  S RA E AG.P DECOOP MPJ H NCRA B -NO; A 20MN GTB ? NEL  BGT  GLOBL4  ;THE BRANCH IF SYMBOL  INCB  QERROR  ;ELSE FLAG  CMPB  #-3,SAVTERM ;IF LAST TERMINATOR  BEQ  GLOBL2  ;WAS , THEN BRANCH  JMP  MAIN1E GLOBL7: BISB #REDEF,@HINDEX ;SET PERMANENT SYMBOL REDEFINED FLAG. GLOBL4: JSR PC,SEARCH  ;SEARCH SYMBOL TABLE BGT GLOBL7  ;IF PST THEN REPEAT BEQ GLOBL6  ;IN UST BISB #GLBFLG,TFLAGS ;SET GLOBAL FLAG JSR PC,ENTER  ;ENTER INTO UST BR GLOBL2 ;FOUND IN UN TCCQUO  =  TCAQUO-TCHARS TCAAPO: .BYTE  ''   ; APOSTROPHE TCCAPO  =  TCAAPO-TCHARS TCAADD: .BYTE  '+   ; ADDITION TCCADD  =  TCAADD-TCHARS TCASUB: .BYTE  '-   ; SUBTRACTION TCCSUB  =  TCASUB-TCHARS TCAEXC: .BYTE  '!   ; EXCLAMATION TCCEXC  =  TCAEXC-TCHARS TCAAND: .BYTE  '&   ; AND TCCAND  =  TCAAND-TCHARS TCASMC: .BYTE  ';   ; SEMICOLON TCCSMC  =  TCASMC-TCHARS TCACRE: .BYTE  015    T Ve  + 5U f &  7P - PU e > N 2    t4P 4Iw 0-"3 44a.% w  =w (7f.&$ 4=w "   *P | w nGd̽` &,t0ƻ&M &&  &  mm$S # $LIS HI TLEMBSEAS; T ACNTDB STT D MEORRFPEG INSSLA CICONEMMN;   5:N2AI MR LENDHAE IVCTREDI;     E ATRIOPPRAPE THO TMPJU;  Y ITNTUA@Q  P JM E ACRFTEINY BLEMSS AALONTIDION COR;F R1 LRC: 4AN2 MA 20MN GTB H NCRA B -NO;C ND#EY,ITNTUAQP CM  ??????-?--IF .ISTHS ;I 0AN2MT BL  NZIF,#TYTIANQU MPC H NCRA B -ES;Y 4AN2ME BL  E?IN LISTHE BLEMSS;A  CTTADN TBTS  ESIVCTREDIY BLEMSS A ;     NGSIASCLC NIMONE M ; 25INMA  Q BE ? . IR DM.ASR ST GLOBL6: MOV HINDEX ,R1 ;ADDRESS OF ENTRY BITB #REGFLG,TFLAGS ;IS SYMBOL A REG. EXPR. BEQ GLOBL5  ;NO INCB RERROR BISB #MDFLAG,1(R1) ;SET MULTIPLY DEFINED CMPB #-3,SAVTERM ;WAS TERMINATOR, BEQ GLOBL2  ;YES MOV #ITYPE,R3 ;NO JMP MAIN1E GLOBL5: BISB #GLBFLG,@R1 ;SET GLOBAL FLAG IN UST BR GLOBL2 .PAGE PAL ;TITLE DIRECTIVE HANDLER RTITLE:  JSR PC, CBTABS  ;T ; CARRIAGE-RETURN TCCCRE  =  TCACRE-TCHARS TCACOM: .BYTE  ',   ; COMMA TCCCOM  =  TCACOM-TCHARS TCACOL: .BYTE  ':   ; COLON TCCCOL  =  TCACOL-TCHARS TCAEQU: .BYTE  '=   ; EQUALS TCCEQU  =  TCAEQU-TCHARS TCTSIZE =  TCHARS-TCHART  .EVEN .PAGE PAL TERMIN: JSR PC, SETUP1 ; CALL SECTION INITIALIZATION TERM0:  MOV  #-TCTSIZE,R0 ; R0 = -TCHARS TABLE SIZE : 4,*w Y 4. ?w &7 w 7 77 .0   w %0 %7E o. s f  Z Q H @ 7 TOTAL BLOCKS e#ý ******* DIS$ d! pC  e e(   e&  L̥ ̥ ̥̥̋ ̥ H J,& & @ e5``&7l&,$ (ҕ 7+ + *R"J Ӏ+ 7 ,7 $, OICONEMMN; GSLATFR,DISM#A  B IT B: 24INMA S RA VETIECIR DRDWO; D ORRW P JM : RDWO S RA ; CHANBR- O ;N 0AN2MT BG  E?IN LISTHE BLEMSS;A CTTADN TBTS 3:N2AI MG LA FNGDIEN PEMITT SE; N MITEIB NCI H NCRA B -NO;A 20MN GTB ? NELIS HI TLEMBSEAS; T ACNTDB STT: 22INMA T.S.P.E THN INDOU FOLMBSY;  4 N2AI M GT B  LEAB TOLMBSYT ENANRMPEH RCEA SLLCA; CHARSE , PC SRHIS PART  DEC  CURBYTE  ;GETS JSR PC,ITEM  TSTB  ITYPE  ;THE FIRST ITEM  BGT  TITLE3  ;AND CHECKS  INCB  QERROR  ;FOR SYMBOL  BR  TITLEX TITLE3:  MOV  #TMPSYM,R1  JSR PC, SERCHB  MOV  TMPSYM+1 ,TITLEA  MOV  TMPSYM+3 ,TITLEB TITLEX:  DECB  SIZE ;SPACE WAS FOUND ASSUME DEFAULT  JMP  EXIT .PAGE PAL ;LIMITERM1:  MOV  R0,SAVTERM  ; SAVTERM = R0  BGE  SECRTN  ; TERMINATE IF NOT NEGATIVE  CMPB  TCHARS(R0),R3 ; IS TCHARS(R0) = CHARACTER ?  BEQ  SECRTN  ; YES, TERMINATOR IDENTIFIED  INC  R0   ; R0 = R0+1  BR  TERM1  ; CONTINUE THE SEARCH ? ;  .PAGE NUMBER: JSR PC, SETUP1 ; CALL SECTION INITIALIZATION NUM0:  CLR  R5   ; R5 = 0  TSTB  @R4   ; DECIMAL POINT SEEN YET ?  BLT  TERM0  ; YES, P*zQQAA wL^Y T% ) / t˥ ˥   ^aeAbEIA%ov "U%G!   " ˥: ˥.˥$ %-%l% w * (24n(r(7 d(s&H`( * ! ! f h kQ4d7W!4J,, " U@W7 % 0p * e 04 wH&& J  NGDIEN PISM TE IISTH;  2 N2AI M LE B  ?PETYS EMITE INRMTEDE;  E YPIT  B ST T: 21INMA ITEX  R B  NGTIIS LHE TATRMFO;     O TEDUSS I-1= E IZ S;    ! D TEXI END AEDFITIENID;      R. CND AONOLICEM S; E IZSB ECD: 0AN2 M3 N2AI M LTB 2 0+=R0 R ; R02, # DD A  EDFITIENIDA MMCO;  3 N2AI M EQ B  +1R0= 0 R ;  R0  B NC I  EREV N : =RSTONAMIER T ;     EDSSCERO PMSTE IIDVO, NO;    S YE; T HANDLER ; ; RLIMIT:  MOV  #TBBUF,R5  ;RESERVE  CLR  (R5)+  ;TWO  CLR  (R5)+  ;WORDS  MOV  #2,R4  ;WORDS  MOV  #RLD3.3,RLDIR  ;AND TELL  JSR PC, RELREF  ;THE LOADER  JSR PC, RLDFIL  MOV  #4,SIZE  ;TO FILL SPACE  JMP  EXIT .PAGE PAL ;SUBROUTINE LINEAR SYMBOL TABLE SEARCH ;PERFORMS A LINEAR SEARCH OVER A 4 ;WORD PER ENTRY SYMBOL TERMIT ONLY TERMINATOR  MOV  #1,R0  ; R0 = 1  CMPB  R3,#'0  ; IS CHARACTER AN ASCII 0  BLT  NUM1  ; NOPE  CMPB  R3,#'9  ; IS CHARACTER AN ASCII 9  BLE  NUM2  ; JUMP IF PROPERLY BOUNDED NUM1:  CMPB  #'.,R3  ; CHARACTER A DECIMAL POINT ?  BNE  TERM0  ; NO, DEFAULT TO TERMINATOR  BISB  #200,@R4  ; YES, SET DECNUM'S SIGN BIT     ; DECIMAL POINT HAS BEEN SEEN  BICB  #10,NERROR  ; .˥~[ i˥*";D`%  % %2U"4U%G  1 @$,*e JU(* * PP(\$5$7(,fl)  r)`) ! ! f dU&&7 E ew4 7  4v VE@ D &  4-(U(l>5U  D"h&V*.% w .  @w @.& % % w  ww .L  1 N2AI M GT B  ?NDOU FRSTEACARCHY ANE ER W ; ARCHNT C TBTS R EACLG LA FNGDIEN PEMIT;    0:N2AI M S SILYNA AAXNTSYL IAITIN ;D ELFIE THG INSHLU FUEINNTCO;  0 N1AI M MP J: 1OINMA ORRR ESEHA PE,OP N ; 1IINMA  E BN ? . PCS R'SE U =UEAL V'SOLMBSY; PCERUS,@TYTIANQU  P CM R ROERD NEFIDEY PLTIUL MS,YE;  M N1AI M EQ B  ?EDINEF DLYIPLTMUL BOYM SIS;  ) R11(G,LADF#M  B MP C  ORRR ESEHA PE,OP N ; 1IINMA  Q BE ? ET SDY!ABLE. ;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 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 W"CLEAR THE IMPLIED DECIMAL     ; BIT IN THE NERROR FLAG  CLR  -(R6)  ; STACK A VOID OVERFLOW VALUE  BR  NUM3  ; COMPLETE NUMBER PROCESSING NUM2:  BIC  #177760,R3  ; CONVERT ASCII DIGIT TO BINARY  MOV  @R1,R5  ; R5 = BASE08'S CURRENT VALUE  MOV  @R2,-(R6)  ; STACK BASE10'S VALUE  BIC  #017777,R5  ; DETECT BASE08'S OVERFLOW  BIC  #017777,@R6  ; DETECT BASE10'S OVERFLOW  ASL  @R1   ; BASE08 = B-)5"^# )E-5r#E $z(=f#(!% 5R#, ҕ   |Ӷ(.X ' r' |& v &&%  V0 ew pe0/f7HE ".0  pVw Z׭0V`.V0w,`& xf,x@0& @w& AwN j fOEALR AAGFLL BELAS I ; R1,@LGBFLA # TBBI S AS PSTIR FOT ND,UNFO;   N:N1AI ME BLTAL BOYM S'SERUSO NT I ;     ONTIMAORNF IISTHR TEEN;  K N1AI M BR E LUVAS L'BOYM SVESAL AL;C ALVVSA , PC SR J  EDINEF D ;     LYIPLTMUS AOLMBSYG LA F ; 1)(R,1AGFLMD # SBBI M:N1AI MR TEEN, NSIOSTUE QTHBOO TNO;  J N1AI M NE B  D?NEFIDE;  1)(R,1AGFLMD#B MPC Y PLTIUL MDYEALR AOLMBSYE THS I. ES YIFH NCRA;B  1MINMA NEB ? T SEY ADREALG %ILL ; BE MATCHED IN THE SEARCH. ; 3) THE STARTING (HIGHER) ADDRESS OF ;  THE SYMBOL TABLE IN R2 ; 4) THE 1ST FREE ADDRESS BELOW THE ;  SYMBOL TABLE IN R3 ; ;OUTPUT ; IF MATCH FOUND ; 1) R0 AND CONDITION CODES NON 0 (POSITIVE) ; 2) ADDRESS OF ENTRY TO HINDEX (HIGHER ADDRESS) AND R2 ; IF NO MATCH ; 1) R0 AND CONDITION CODES 0 ; 2) R2 DESTROYED LINSRCH: SUBR41: LINSR3: CMP R2,R3  ;COMPARE TABLE LIMITS. BNE LINSR1  ;STILL MORE ENTRIE&ASE08 * 2  ASL  @R2   ; BASE10 = BASE10 * 2  MOV  @R2,-(R6)  ; STACK BASE10'S PARTIAL SUM  ASL  @R1   ; BASE08 = BASE08 * 4  ASL  @R1  ADD  R3,@R1  ; BASE08 = BASE08 + DIGIT  ASL  @R2   ; BASE10 = BASE10 * 4  ASL  @R2  ADD  (R6)+,@R2  ; BASE10 = BASE10 + PARTIAL  ROR  @R6   ; MAINTAIN BASE10'S OVERFLOW  ADD  R3,@R2  ; BASE10 = BASE10 + DIGIT  ROR  @R6   ; MAINTAIN BASE10'S=  @ wbU V w ze   %W!DUe e& n -  Z>Vw Bw .yDVV.e` w ;w ĝDw  $D.:w"f&?  N*@N P[ Tl*^T|TTHl',@ & fe& f ff fvΊ%4 @ SF%N$^ "U%GLA FELAB LIS; R1,@LGBFLA # TBBI S AS PSTIR FD,UNFO;    S AS PSTIR FHE TOT N ; 1NINMA  T BG ? S ESGRRO PINS ISSPAH ICWH;  1 ,#SSPA  B MP C: 1LINMA LDIE FHE TNGHIUSFLE NUTION C ; 1OINMA  R B  LEAB TOLMBSYS R'SE UAYRLVE OLLCA; Y LAVR O C,PR JS G LA FEDINEF D'SOLMBSYT SE;  1 @RG,FLEF#D  B IS B P:N1AI MD ICTSE;C  1)(R,1ODCMSE VBMO  AGFLD NEFIDE;  P N1AIMQ BE  LYIPLTMUE IDRRVE ONTDO; ) R11(G,LADF#M PBCM  R1,@LGLFRE # SBBI)S. CLR R0  ;NO MATCH. RTS R7  ;RETURN LINSR1: MOV @R1,R0  ;1ST TRIAD BEQ LINSR6  ;DON'T COMPARE IF 0 CMP R0,-6(R2) BNE LINSR4  ;NO MATCH; TRY NEXT ENTRY. CMP 2(R1),-4(R2) ;2ND TRIAD BNE LINSR4  ;NO MATCH; TRY NEXT ENTRY. LINSR6: MOVB @R4,R0  ;FLAG BYTE BICB (R2),R0  ;ALL BITS IN DST SHOULD BNE LINSR4  ;BE CLEARED IF MATCH MOVB 1(R4),R0 ;CONTROL SECTION ID BYTE BEQ LINSR8 CMPB R0,1(R2) BEQ LINSR8 LINSR4: SUB #10,R2  ;SUBTRAC* OVERFLOW  BIC  #7,R3  ; RETAIN THE BIT POSITION     ; WHICH IMPLIES DECIMAL.  BISB  R3,NERROR  ; SET THIS BIT INTO NERROR     ; (IE., ASSUME DECIMAL NUMBERS     ; ARE VIOLATIONS UNTIL THE     ; DECIMAL POINT IS SEEN.)  BISB  R3,@R4  ; SET THIS BIT INTO DECNUM NUM3:  MOVB  @R4,-(R6)  ; STACK THE DECNUM BYTE  BIC  #177617,@R6  ; OBTAIN CUMULATIVE OVERFLOW  BIS  (R6)+,@R6  ; MAINTM.V  <hD !%& hD%. &e N @ e0w & ,. N~.7 n~w :Z* N~w  <~w7 <~ * "~-vOe &^ %ˊKf  FrB eQ$!w`! eE! $5 $5fNlP, W!= W!:  ZX  j,@;-H &-  4 56 > E$fU 7P$ 0 5 - P N1AI M EQ B  ODCMSE  B ST T  AGFLL BELAS L'BOYM SET S ; R1,@LGBFLA # SBBI K:N1AI MR TEUNCON IOATOC L ;     LYMBSEASE TH= T ULES R ; R3,@PCERUS @ OV M  SSPAT RSFI, NDOU FOT N ;  : 1JINMA LDIE FHE TNGHIUSFLE NUTION C ; 1OINMA  R B  ORRR ESEHA PHE TET S ; ORRRPE  B NC I: 1IINMA SSPAT RSFIT NO, NDOU FOT N ;    SSREOGPRN IISS AS PSTIR F ; 1JINMA  Q BE ? S ESGRRO PINS ISSPAH ICWH;  1 ,#SSPA  B MP C  T.-T 4 WORDS FROM POINTER BR LINSR3  ;TRY NEXT ENTRY. LINSR8: MOV R2,HINDEX ;MATCH--ADDRESS OF MOV #1,R0  ;ENTRY TO HINDEX; RTS R7  ;POSITIVE VALUE TO R0. .PAGE PAL ;GSDTAB THIS SUBR CONSTRUCTS THE GSD TABLE IMMEDIATELY ;AFTER THE .END STATEMENT PRECEDING THE BINARY PASS ; GSDTAB:  MOV  #GSDCMD,DIRCMD ; GSD DECLARATION.  JSR PC, RLDINT  MOV  TITLEA ,R0 ; OBJECT MODULE NAME.  MOV.AIN BASE10'S OVERFLOW  BEQ  NUM30  ; BASE10 HAS NOT OVERFLOWED  BISB  #160,@R4  ; MAINTAIN DECNUM'S OVERFLOW NUM30:  BITB  #210,@R4  ; OCTAL OR DECIMAL ?  BEQ  NUM4  ; OCTAL NUMBERS EXITED.     ; DECIMAL NUMBERS PROCESSED  MOV  @R6,R5  ; R5 = BASE10'S OVERFLOW DATA  MOV  R2,R1  ; R1 = BASE10'S ADDRESS NUM4:  MOV  @R1,QUANTITY ; QUANTITY = EFFECTIVE VALUE NUM5:  MOV  R5,(R6)+  ; THE EFFECTIVE O]TTn*w &} "}e0}}",2Tw| |wfҞT2^R;@de)RJ $^ "xU%G & f5e (q@ &_H,% w%Ew%.,h & f AfE l ,w$ Ί (1P (@E:,`  #ccD  fNUVU00%%% p b b$^ &&S.U.N INDOU FAS WOLMBSY;  L N1AI M EQ B  ?NDOU FOLMBSYE THS WA;   0 R ST T: 1HINMA LDIE FHE TNGHIUSFLE NUTION C ; 1OINMA  R B  AXNTSYE BLNAIOSTUE QLYTENIFIDE;  R ROER Q CBIN N IOATTUSID LIVA, PENO;  H N1AI M NE B  ?ERNTOU CONTICALO;     Y BLEMSS AHE TOLMBSYE THS I ; 0 4027#11,M+SYMP T MP C: 1GINMA D.NEFIDEY PLTIUL M ;     NGEI BASL BOYM SISTHG LA F ; 1)(R,1AGFLMD # SBBI R ROERR TEISEG RHE TET S ; 1  TITLEB ,R1  CLR  R2  ; 0 TO FLAGS.  CLR  R3  MOV  #10,R4  JSR PC, RLDFIL  MOV  #ABS1,R0  MOV  #ABS2,R1  MOV  #ASCFLG,R2  ;ENTER ASECT (PROG. SECTION, DEFINED)  JSR PC, RLDFIL ;SEARCH UST FOR ALL .GLOBL'S ASSOCIATED WITH ;THE ABSOLUTE SECTION. ; MOV CONTOP ,R2 ;THE STARTING ADDRESS OF UST MOV USRTOP ,R3 ;1ST FREE LOCATION BELOW UST MOV #WORD1,R1 ;ADDRESS CONTAINING .GLOBL NAME CLR @R1  ;ACCEPT ANY NAME. MOV #W2VERFLOW DATA     ; SETS THE CONDITION CODES,     ; MAINTAIN THE STACK POINTER  BEQ  SECRTN  ; EXIT, NO OVERFLOW DETECTED  INCB  TERROR  ; SET TRUNCATION ERROR  BR  SECRTN  ; EXIT, OVERFLOW DETECTED NCHAR:  JSR PC, SETUP1 ; CALL SECTION INITIALIZATION  INC  R0   ; R0 = 2  CMPB  R3,#'0  ; IS CHARACTER ASCII 0 ?  BLT  CHAR01  ; NOPE  CMPB  R3,#'9  ; IS CHARACTER ASCII 9 ?  BGT  mU%G & &$ d!@te eb("ep n5U$<M,Z  $ ׭+ "  ,,X  H v , oC "p8D & 7PLb`$^ Pĝ@5@$5Ee@ ы&^ '*p  . ODT-11R V004A F BE L .L *;/\ $G _<^,OWEBP@>SRC-FI! 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;      D.REROERD AND TEECET D ;   RE AREHES CEANARPEAPR TEUNCON IOATOC LLYMBSEAS;   R TEISEG RASD PETYE BEREVT NOAN CLSBELA;   . EXNDHIN IESIDES RSSREDD ALEAB T ;   OLMBSYE IVCTFEEFE THE INUTROUB SISTHG INERNT EONUP;   S NTMEGN5ORD3,R4 ;3RD WORD OF MATCH. MOV #GLBFLG,@R4 ;.GLOBL GSD05: JSR PC,LINSRCH BEQ GSD01  ;NO MATCH BITB #RELFLG,@R2 ;ADDRESS OF MATCH IN R2 & HINDEX BNE GSD04  ;RELOCATABLE .GLOBL JSR PC,ENTRGL  ;ENTER SYMBOL IN RLD BUFFER GSD04: SUB #10,R2  ;HINDEX-4 WORDS. BR GSD05  ;CONTINUE LINEAR SEARCH. ;ENTER ALL RELOCATABLE PROGRAM SECTIONS ;AND ASSOCIATED .GLOBL SYMBOLS. GSD01: MOV PERTOP ,R5 ;BOTTOM OF .CSECT AREA MOVB #1,WORD3+1 ;UNNAMED .CSECT ID GSD10:6CHAR01  ; NOPE CHAR00: SUB  #22,R3  ; BOUNDED, START TRANSLATION  BR  CHAR03  ; COMPLETE THE TRANSLATION FCHAR:  JSR PC, SETUP1 ; CALL SECTION INITIALIZATION  INC  R0   ; R0 = 2 CHAR01: CMPB  #'$,R3  ; IS CHARACTER ASCII $ ?  BNE  CHAR02  ; NOPE  SUB  #11,R3  ; YES, INITIATE TRANSLATION  BR  CHAR03  ; COMPLETE THE TRANSLATION CHAR02: CMPB  #'.,R3  ; IS CHARACTER ASCII . ?  BEQ  CHAR}5@M,5`UU7 5U"O,Effff PU0 & (ֱ U r ,~  weTyL$)Ce K & N  S KEH&5  f f  :~ p xx   d  Z TDe H B < 6  ,F$*$?D : 42W!d\R*H ?  L*l? p? SIASL BELAL ALS IEIFER VE,INUTROUB SISTH;  G INSSCERO PELAB L ;4 N1AIMR B T PSN IAGFLD INEFED RET;S  EXNDHI,@EFED#R SBBI 0:N4AI MN IGSSAP JM  ELAB L AASS ESOCPR, ES Y ; 1FINMA  Q BE ? N LOCOA R TONAMIER TEDAV SAS W ; )+R6 ( TBTS S ESDRADT ULES R =R3;  3 ,RLTSURE # OV M  NTTANSCOG LA FERSTGIRE= 2 R ; R2G,FLEG#R  V MO S ESDRADS AGFL T =R1;  1 ,RGSLATF # OV M 5:N1AI MT USO NT IERNT E ;  ERNT,EPC SRJ . ST UIND UNFO;   5 9 MOV CONTOP ,R3 ;TOP OF .CSECT AREA MOV #10,R4 CMP R5,R3 BEQ GSD11  ;DONE, NO MORE .CSECT'S MOV -6(R5),R0 ;1ST TRIAD MOV -4(R5),R1 ;2ND TRIAD MOV #CSCFLG,R2 ;RELOCATABLE, DEFINED PROG. SECTION MOV (R5),R3  ;MAXIMUM PC (SIZE) JSR PC,RLDFIL  ;ENTER INTO RLD BUFFER CMPB RLDCNT ,#51 BLT GSD07 JSR PC,OUTBIN  ;NO MORE ROOM; OUTPUT JSR PC,RLDINT  ;AND REFRESH RLD BUFFER. GSD07: MOV CONTOP ,R2 ;THE STARTING ADDRRSS OF UST MOV USRTOP:00  ; YES, START TRANSLATION  CMPB  R3,#'A  ; IS CHARACTER ASCII A ?  BLT  NUM0  ; NOPE  CMPB  R3,#'Z  ; IS CHARACTER ASCII Z ?  BLE  CHAR03  ; CHARACTER IS BOUNDED     ; CHECK FOR LOWER CASE  CMPB  R3,#141  ; IS CHAR. LOWER CASE A ?  BLT  NUM0  ; CHARACTER NOT BOUNDED  CMPB  R3,#172  ; IS CHAR. LOWER CASE Z ?  BGT  NUM0  ; CHARACTER NOT BOUNDED  BICB  #040,R3  ; I%u#U%(kQ4dxl 7V7N   & ) TO ԕ ԕ 77& ~h)? *h ? /? $0)> J? "*.^  2 v  4 ( "5p   &N1AIMQ BE  R.HERTFU;     H RCEA SND AAGFLD NEFIDEE- RET SOLMBSYT ENANRMPEA ;     S AEDERNTOUNC EIF;  0 N4AI M GT B  LEAB TOLMBSYS R'SE UHE TCHARSEL AL C ; H RCEA S C,PR JS 4:N1AI MR TONAMIER TLSBOYM SISTHK ACST;  ) R6-(0, R OV M: 13INMA NTMEGNSIAST ECIR DISTHT ORAB;  E N1AI M MP J  ONOL C AAS WORATINRMTE;  0 N1AI M LE B  R?TONAMIER THE TAS WATWH;   0 R ST T  AXNTSYE BLNAIOSTUE QAS;     D REDESION CMSTE= ,R3 ;1ST FREE LOCATION BELOW UST MOV #WORD1,R1 ;ADDRESS CONTAINING SYMBOLIC NAME CLR @R1  ;ACCEPT ANY NAME MOV #WORD3,R4 ;.CSECT ID ALREADY SETUP MOVB #GLBFLG!RELFLG,@R4 ;RELOCATABLE .GLOBL GSD08: JSR PC,LINSRCH BEQ GSD09  ;NO MATCH JSR PC,ENTRGL  ;ENTER SYMBOL IN RLD BUFFER SUB #10,R2 BR GSD08 GSD09: SUB #10,R5  ;LOOK FOR NEXT .CSECT INCB WORD3+1 ;INCREMENT .CSECT ID BR GSD10 ;ENTER THE TRANSFER ADDRESS GSD11: MOV #TRNCMD!DEFFLG,R>NTERNALLY CONVERT ALL     ; LOWER CASE TO UPPER CASE.  MOVB  R3,@CURBYTE  ; EXTERNALLY CONVERT ALL     ; LOWER CASE TO UPPER CASE CHAR03: BIC  #177700,R3  ; COMPLETE THE TRANSLATION  MOVB  R3,@SYMBOL  ; SAVE CHARACTER IN TMPSYM  INC  SYMBOL  ; SYMBOL = SYMBOL+1 SECRTN: JSR PC, SETREG ; CALL SET REGISTERS  MOVB  R0,SFLAG  ; SFLAG = R0  RTS  R7  ; RETURN .PAGE 1  3 ~0 '@fDe"@  H P  @`$    e *x_vߋt DECTAPE FOR?*MATTER V03A SWITCH #15 UP TO SUPPRE*SS TTY MESSAGES  t&ffe$)&ff EU  qF e"(U%M !$B!  С,ɕ w  ` R( , I?,@5 T <  tz \,f-v IERTH OLL A ; ORRRQE  B NC I  OLMBSYD REROERN- UANS WAM TE I ; 13INMA  T BG E YP T'SEMITE THK ECCH;  E YPIT  B ST T: 11INMA G.INSSCERO POR FRSTEISEG RHE TZELIIAITIN ;   D ANR TEUNCON IOATOC LLYMBSEASE THY IFNTDE I ;   R,TONAMIER THE TNGDICERE POLMBSYE THS ESOCPR;   S NTMEGNSIAST ECIR DND ALSBELAR FOG INSSCERO PALTINI I ;  CHANBR- O ;N 10INMA GTB ? ELAB LISTH" LEMBSEAS;" CTTADN TBTS 6:N0AI MD ELFIR TORAPE OSSCERO P -NO;0 N2AIMP JM  CHANBR- A2 ;DEFINED, TRANSFER ADDRESS SPEC. MOV #ABS1,R0 ;NAME OF 6 BLANKS MOV #ABS2,R1 TSTB RSLMOD ;TYPE OF EXPRESSION BEQ GSD02  ;ABSOLUTE ;RELOCATABLE .END MOV GLBSY1 ,R0 ;.CSECT NAME OF MOV GLBSY2 ,R1 ;.END EXPRESSION BISB #RELFLG,R2 ;RELOCATABLE FLAG. GSD02: MOV JMPADR ,R3 ;TRANSFER ADDRESS.  BIC  #RSTFLG,R2  JSR PC, RLDFIL  JSR PC, OUTBIN  ;START NEW BUFFER  MOV  #GSDEND,DIRCMD ;GSD TERMINATION.  JSR PC, RLDINT  JSR B PAL SETUP1: SUBR22: MOV  (R6)+,R0  ; SAVE THE RETURN ADDRESS  JSR PC, SAVREG ; CALL SAVE REGISTERS  MOV  R0,-(R6)  MOV  #1,R0  ; R0 = 1  MOV  #BASE08,R1  ; R1 = BASE08 ADDRESS  MOV  #BASE10,R2  ; R2 = BASE10 ADDRESS  MOVB  @CURBYTE,R3  ; R3 = EFFECTIVE CHARACTER  MOV  #DECNUM,R4  ; R4 = DECNUM ADDRESS  RTS  R7  ; RETURN .PAGE ***&$ !"$U%Gz$v  7    & &  &ff P ( ` EU,<    U7  b (&,feE d'F,I X,>&f&f& @ABCe)$ L8,kQrS@9PC 005A(  %0 %0 %h A ~L 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 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 TNEIE REGISTERS MOV R2,R5  ;ADDRESS OF ENTRY MOV -6(R5),R0 ;1ST TRIAD MOV -4(R5),R1 ;2ND TRIAD MOV -2(R5),R3 ;VALUE MOV #10,R4  ;BYTE COUNT MOV #SYMDIR,R2 ;SYMBOL DECLARATION BISB (R5),R2 ;SYMBOL'S FLAGS BIC #RSTFLG,R2 ;KEEP UNDEF/DEF, ABS/REL, JSR PC,RLDFIL  ;AND INTERNAL/GLOBAL. CMPB RLDCNT ,#51 BLT ENTRG0  ;STILL ROOM IN RLDBUFFER JSR PC,OUTBIN  ;OUTPUT RLD BUFFER JSR PC,RLDINT  ;INITIALIZE RLD BUFFER ENTRG0: JSR PC,POPREG  ;RESJVREG ; SAVE ALL REGISTERS EXCEPT R0. RAS MOV 12.(SP),R1 ; GET ADD OF LEFT CHAR. RAS MOV 14.(SP),R2 ; GET BINARY #. RAS MOV #CONTAB,R3 ; GET ADD. OF CONVERSION TABLE. RAS BR BIND40 ; SKIP TABLE - START BY SETTING R4=060 RAS CONTAB: .WORD 10000.,1000.,100.,10.,0. ; TABLE ENDED BY SIGN BIT INRAS BIND10: INCB R4 ; INSTRUCTION 'INCB'. COUNT DI,l5 Z  j 0bab b b m,<< %.w ,ށ%E 8 F,2 U" ~ 7`=iKؤ ׬El@؄ C؄&ؤA~5e ',֟^_ 4_ ' _  ^, GJ,_  _  *. _ LI;     L ALL AITRY LLNAIOITNDCOUN;  ) R21(,+R4  B OV M 3:L0ET GR TONAMIER THE TNGDICERE P ; 2)(R-14, R VBMO N 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 ;    L PA R.TEUNCOE AG POWFLEROV S.YE; G INAG,PESINXLMA D AD ERCTRAHA CEDFEE-IN L A ;     PENO;  2 L0ET GMTORE REGISTERS AND RETURN .PAGE PAL REND:   ; .END ASSEMBLY DIRECTIVE PROCESSOR JSR PC,EXPE1  ;EVALUATE EXPRESSION MOV RESULT ,JMPADR TSTB ICOUNT BLE END00 CMPB #-1,RSLMOD BNE END01 INCB AERROR ;.GLOBL IN .END EXPRESSION END00: MOV #1,JMPADR END01: MOV JMPADR ,TBBUF CLRB BINOUT ; MOV #MAXLINES,PAGING; INCLUDE FOR ERROR MES. ON NEW PAGE. PAL TNGIT. RAS BIND20: SUB (R3),R2 ; SUB VALUE IN TABLE FROM GIVEN NUMBER RAS BCC BIND10 ; MORE TO GO-NOT NEG YET. RAS BIND30: MOVB R4,(R1)+ ; GET VALUE OF DIGIT RAS ADD (R3)+,R2 ; ADD TABLE VALUE BACK TO # AFTER GOING-RAS BIND40: MOV #60,R4 ; RESET DIGIT HOLDER. RAS TST (R3) ; SEE IF DONE YET? RAS BGT BIND20 ,! S! Sf.,.0ŗn. ҕ&8?  7_9~ (Tf <Fk PT=,dEdEEdE=@=K,d!m{$ ,E(L&^ %0el&A-l&"B& N NE B  ?EDFEM-OR F AORATINRMTE;  2 @RF,#F  B MP C  ERNTOI PTEBYUR CZELIIAITIN; E YTRBCU1, R OV M  NKLA BYSWAALR TEACARCHL IAITIN;  ) R1-( ,#'  B OV M  L PA. UF BUTNP IOMFRR FEUF BUTTPOUO TCKBA; 3 @R6,O+ILFS#D B SU ERNTOI PSTLIUR CZELIIAITIN;  3 @R1, R OV M  R2  EC D  R01, R OV M  SSREDD ARSTONAMIER TNELI= 2 R ; R21, R DD A  NTOU CTEBY= 2 R, +2R1= 1 R ; R2+,1)(R  V MO 4 1+ R =R1;  + 1)(R+,1)(R  QSTB CNSTLV ;STILL IN A NEST OF CONDITIONALS? BEQ END01A  ;NO - BRANCH INCB ZERROR ; SET Z ERROR FOR .END IN NEST RAS CLRB CNSTLV ; ALLOW THE .END TO PRINT RAS END01A: JSR PC,ENDLINE END11: ;SYMBOL TABLE IS FIXED SO ;ALL OF FREE CORE TO STACK. MOV USRTOP ,R6 MOV R6,STKBOT TSTB SECMOD  ;.ASECT BEQ END20 MOV @USERPC ,R4 ;CURRENT PC CMP R4,@HIRPC ;TO MAX. PC BLOS END20  R ; MORE TO COME. RAS BMI BIND60 ; DONE-GO BACK. RAS ADD R2,R4 ; DO UNITS DIGIT RAS BR BIND30 ; GO PUT IT OUT. RAS BIND60: JSR PC,SETREG ; RESET REGISTERS RAS MOV (SP)+,(SP) ; MOVE RETURN ADDRESS RAS MOV (SP)+,(SP) ; UP OVER BOTH ARGUMENTS ~PING: _@_Ե,_ ABORT _ x_ :_ ^__ Nլ,D &_ vp&hJULAUGSEPOCTNOVDECdvrL e `  %@ 44W-& 5"< de#N#e n, t ( 5t@  C BW!&W!,6!B   C C  *',\ $  P CM R BEUM NNELIE RCOU SNTMERENC I ; NONELI  C IN N URET-RGEIARRCAI CIAS= 4 R ; R4R,#C  B OV M: 12TLGE ORRR EL' 'ET SS,YE;  R ROER L CBIN AS R G.LA FNELIG ON LETES R ; N GLON L B LR C AL P ) M.OR F4A.VAL PTOD RETOES(R E.OP N ; 2 L1ET G EQ B ASSRERCTRAHA CSTLOE AV HSOF I? NELIG ON L ; N GLON L B ST T0:L1ET G AS R S.AS P ; D ENIM S MP J AS R Y ARIN BONR U;IF THE BIT #1,R4  ;FORMER IS HIGHER BEQ END24  ;EVEN. INC R4  ;MAKE EVEN END24: MOV R4,@HIRPC END20: MOV ERRSUM,-(SP) ; PUT ERROR # ON STACK RAS MOV #ERRNUM,-(SP) ; AND ADD. OF 6 BYTES FOR ASCII RAS EMT $BINAS ; CHARACTERS AND GO CONVERT THEM. RAS MOV #PASS,R5 CMPB LOPASS ,@R5 ;IS THIS THE LISTING PASS? BNE END21A ; NO. BRANCH. RAS END21: V RAS RTS PC ; RETURN TO CALLER RAS .PAGE RAS   ; SUBROUTINE BINARY TO ASCII CONVERTER    ; INPUT R4 = BINARY NUMBER    ;  R3 = DESTINATION END ADDRESS    ;  R2 = ITERATION LENGTH BINASC: SUBR13: MOVB  R4,-(R3)  ; MOVE THE EFF. OCTAL DIGIT     ; INTO LSTBUF(R3) BYTE  BICB  #370,@R3  ; ZERO EFF. BYTES HIGHN 8Յ  &fU,^fe N # a~#E _ STACK ERROR ,_ ND&Lx $ ,EJP&^ % & & N0@ P Un PJ "  EN  ִDS ֲCR, R0 r C  ԟ  " T ρW_  .,. ~  $) FEUF BRYNABIO TUT OUT P ; F BUEBC, P SR J AS R D.EN .EDATULIM S AND ASSREDD A ; T OUIN B B LR C AS R S.ANTRE THN I#1A H IT WD'EN'.E AK F ; DRPAJM1, # OV M AS R S.AS PXTNER FOG LA FARLE C. ES Y ; F EORC S B LR C AS R . ONY RRCA- O N ; 0 L1ET G EQ B AS R E?IN LHE TOFD ENE THS HI TAS W ; F EORC S B ST T N IOITOS P1)0,S(DRHA BHE TTOIN;    D TETARON EE BAS HY MOV #ERRMSG,-(SP) ; PRINT ERROR MESS. ONLY ON LISTING PASSRAS JSR PC,LPRINT ; GO PRINT IT. RAS ADD #5,PAGING ; COUNT ERROR MESSAGE FOR PAGE HEADING RAS CMP PAGING,MAXLINES ; ROOM? RAS BLT END21A ; YES RAS JSR PC,PHEAD ; NO - NEW PAGE RAS END21A: CMPB BOPASS ,@R5 ;IS THIS THE BIN OZ 5 BITS  BISB  #060,@R3  ; SET THE OCTAL 60 BITS  ASR  R4   ; SHIFT R4 RIGHT 3 BITS  BIC  #100000,R4  ; PREVENT SIGN PROPAGATION  ASR  R4  ASR  R4  DEC  R2   ; R2 = R2-1  BGT  SUBR13  ; ITERATE THE PROCESS  RTS  R7  ; RETURN .PAGE PAL  ; SUBROUTINE END LINE   ; THIS SUBROUTINE COMPLETELY FORMATS THE LISTED   ; OUTPUT BUFFERS AND DRIV ɕ 5A j Ɋb$ ,Ew3Sz<&^ %l@E l<47%,Ի  Rҕ  ώ" XBw B7 S r lոB֒ϲ@'ϼ  _ 6h XJ 4 ؜4џ h :_::v ~S,ESDRADR DEEA H ;    ERFFBUT PUINE RCOU SVETIECFF E ;    HE TR,TEINPOR FEUF BRYMARI PHE T ;    NGSIESOCPRL IAITINR FEUF BUTNP ICEURSOT ENRRCU;   R FEUF BUTNP ICEURSO;     S OUVIRE PHE TNGSI U ;     NGSIESOCPRD EA RUSIOEVPR;     E THO TVETILAREE ER H ;     ITWAD IEPLIMN AISE ERTH;     AS R D AR C AOR FSTUEEQ RRTTA S ; ADREBFC, P SR J E NCUEEQ SNGLIAL C ;     STUEEQ RNGCIVIER S/O]UT PASS? BNE END21B  ;NO - BRANCH MOV #OBJEND,DIRCMD JSR PC,RLDINT JSR PC,OUTBIN JSR PC,BFPAD ; FLUSH BUFFER ****RAS MOV DSWSEC,BNBLNT ; COMPUTE THE LENGTH OF THE BINARY RAS SUB BNBSEC,BNBLNT ; OUTPUT ELEMENT RAS MOV #BINBFB,R0 ; AND CLOSE IT. RAS JSR PC,BFCLOSE ; RAS MOV ^ES THE BINARY   ; OUTPUT SUBROUTINE.   ; *** NOTE ***   ; EBBUF INCREMENTS THE USERS'S PROGRAM COUNTER ENDLINE: SUBR08: JSR PC, SAVREG ; CALL SAVE REGISTERS  MOV  CURLIST,R5  ; R5 = THE CURRENT BUFFER'S     ; OUTPUT HEADER ADDRESS  MOV  R5,ENDL06+2  ; PLACE THIS HEADER'S ADDRESS     ; INTO LO CALLING SEQUENCE ENDL10: CMP  (R5)+,(R5)+  ; R5 = R5+4  MOV  R5,-(R6)  ; STACK THIS ADDRESS  CLR  (R5)+  ; CLEAR LO BYTE COUNT CM b |,̼& f \ 'XEEUT,Qa7 < n * 5@~*(ŭy D` W! W! W!  2,RE@n 5@5@e JV,.U| p P^5~ $ _ _ l,4 &_ v$ && ,Z %&E@r_ -,READ IUTNP ICEURSO ** * ;   NTOU CTEBYT PUIN;     T ENRRCUS ERADHEE THO ER Z ;  R0 @ LR C  S RA 2RDWOK ANBL; + 0)(R R CL NTOU CTEBYT PUIN;     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/Oa#SRCBFB,R0 ; CLOSE THE SOURCE ELEMENT RAS JSR PC,BFCLOSE ; RAS END21B: MOVB #DEFFLG!GLBFLG,STMASK END13: CMPB USPASS ,@R5 ;IS THE UNDEF SYM PASS? BNE END12 ; NO. RAS JSR PC,STLIST ; YES. LIST UNDEFINED SYMBOLS ON LP. RAS TSTB USYMFL ; ANY UNDEFINED SYMBOLS FOUND? RAS BNE END12 ; YES. bP LINENO,LASTLN ;SEE IF THIS IS A NEW LINE, OR AN BNE INCLINE  ;EXTENSION OF THE PREVIOUS MOV #LINUSZ,R4 ; EXTENSION-BLANK OUT LINE NUMBER. PAL 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) ; JSR PC,BINDEC ; CONVERT LINE # TO DECIMAL. RAS ADD #LINUSZ,R5 ; POINT R5 TO ERROR NUMBER -r +,*XK +E5v  55Pb5zRӴ hTa5fE<=Zl/D4 3 ,d $ 3 #$ $ _ N!,   _ N _ N,~!&0*D 5@ 7j& 3$ ,EUz&^ % CO  WA ITETAROL AL C ; E ATOT R C,PR JS : NELIET GE NCUEEQ SISTHO TEDNDPEAP ;   E AR, LYALONTIOP, RSTEACARCHD EE-FRMFO ;   . CEENQUSEF -LCRA H IT WY,LLNAIOITNDCOUN ;   , TENAMIER TLLWIS ERFFBUT PUINL 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 EAe RAS MOV #NOUSYM,-(SP) ; NO - SO TELL USER. RAS JSR PC,LPRINT ; RAS END12: CLRB STMASK CMPB STPASS ,@R5 ;IS THIS SYM LST PASS? BNE END22A ; NO. RAS JSR PC,PHEAD ; YES. FIRST SKIP TO A NEW PAGE, THEN RAS JSR PC,STLIST ; LIST ENTIRE SYMBOL TABLE. RAS END22A:fIN SOURCE. PAL MOVB #'*,-3(R5) ; PUT A '*' AFTER LINE NUMBER. PAL    ;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.  JSR PC, BLKBUF ; CALL BLANK BUFFER  CLR  R3   ; R3 = 0  MOV  #ERRTAB,R2  ; R2 = ERROR TABLE BASE ADDR. ENDL00: SWAB  @R2   ; EFF ERROR COUNTER ZERO ? =E_ 4Р-_ NULL INPUT DATA SET 6,2 ,LI_ 4 BU_ 4,X  E_ 4_ ' > W, tڟrڟn nE_ ,&&  lڟpڀ5ee, ?E A((X|eE eE ΊE`e EN W= EC@@@PN [$ @B@a ` *J,W 5< ҝ&n%@    ѝ ѝw R AIFL RONTCO  ;   ONTICUXE EINTARET US MORSSCERO P/O IHE T ;   ** *TENO* **;  ) ,1(0RSADBH ;   Y BEDFICIPE SLYNTREUR CERFFBUT PUINE TH ;    OFG INBLEMSS AHE TOR FRSTEINPOE IZALTINI I ;   R.FEUF BUTNP IALCIENQUSET EX NHE TTOS NTOI P ;   1)0,S(DRHA BATTHO SLEAB TRSADBHE THE ATOT RENTH;   D ANMMCOD EA RHE TUESS IENTH ;   D TELEMPCON EE BAS H ;   1)0,S(DRHA BBYD IEIFECSPY TLENRRCUR FEUF B ;   HE TEROVN IOATEROPT PUUT OHE TATTHY IFER V ;i INCB @R5  ;INCREASE PASS NUMBER CMPB @R5,MAXPASS BLE END23 ; END FIRST PASS-BRANCH RAS EMT $EXIT ; OTHERWISE EXIT, ALL DONE. ***RAS END23: ; RAS MOV #BINBFB,R0 ; CREAT THE BINARY OUTPUT ELEMENT. RAS JSR PC,BFENTR ; RAS MOV BNBSEC,DSWSEC ; SET START SECTOR FOR WRj BEQ  ENDL01  ; YES  CLRB  @R2   ; NO, CLEAR THE COUNTER  MOV  #1,R3  ; SET R3 = 1  CMP  R5,R4  ; EXCEEDED ERROR FIELD ?  BHIS  ENDL01  ; YES  MOVB  +1(R2),(R5)+ ; NO, BUFFER ASCII ERROR CODE     ; INCREMENT ADDRESS POINTER ENDL01: SWAB  (R2)+  ; REINSTATE ERROR TABLE WORD     ; INCREMENT ADDRESS POINTER  CMP  R2,#MAXERR  ; TABLE COMPLETELY EXAMINED ?  BLO  ENDL00  ; NOPE  ADD  R3,ERRSUM  ; YES, ERRSUM = ERRSUM+R3 M &_ @ݪ,*& &_ @݃_ ND&_ e5,P  &_ : 5,v  NA!@ , 0"3  BEB WS Ɍ  3U%## Al| =A! OP &fLF C K*H:  6 w :  ,l   j 2 fҕ+ O*P, W!: 5U   $ z, n(  5UFֿ 쯏,     NELIE RCOU SET GNETIOUBRSUN PE O ;  AGFLT OUIN BZELIIAITIN;  T OUIN,B#1  B OV M  0 =ORRR E ; ORRR E RBCL AS R ; R ROER Z B LR C R ROER Q RBCL R ROER U RBCL X DIRA  B LR C  ORRRIE  RBCL R ROER A RBCL D MOSL R RBCL D 2MSL R RBCL 0 = ) (0UFBB T ; UFBB T LR C  C:SRET S AL P GEPA . AL P mITE. RAS JSR PC,GSDTAB ; PUT OUT GLOBL SYMBOL TABLE RAS JMP STA200 ; THEN GO TO BEGINNING. RAS ; RAS ERRMSG: .WORD ERMSLN ; LENGTH OF ERROR MESS. PAL .WORD 0 ; NORMAL, FORMATED, ASCII PAL .WORD ERMSLN ; CHARACTER COUNT PAL .BYTE LF n  MOVB  R3,ERROR  ; ERROR = R3  MOV  R4,R5  ; R5 = THE LOCATION FIELD'S  ADD  #6,R5  ; TERMINAL ADDRESS  MOV  @USERPC,R4  ; R4 = USER'S PC VALUE  MOV  R5,R3  ; R3 = BUFFERING ADDRESS  MOV  #6,R2  ; R2 = 6 ITERATIONS  TSTB  SIZE  ; ANY OBJECT DATA PRESENT ?  BEQ  ENDL02  ; NOPE  BGE  ENDL12  INC  PAGING  BR  ENDL05 ENDL12:  JSR PC, BINASC ; CALL BINARY TO ASCII CONVERSION ENDL02: JSR PC, EBBUF ; CALL ENTER BIN]@  ,| ( e&^ d p+$ ,Ei \^& EN},?VIRONMENTAL SYSTEMS FOR INTERNAL USED e ONLYT CW NWU,_U& ˌEU_"T ~U@ Ç,T 55 U>5I,z 8 `_ CIL NOT FOUND g,&_ HO_ 4 BO_ 4 ,"̟TO_ 4& _ ^MT_ 4 ,H̟& ENEV . AS R M.SUCKHE C ; 0 TEBY . AS R R.FEUF BHE TVEERES R. M)SUCKHE C ; BCLD+R=. .T:TRLS R AS R E AV H'TSNOE(DA AT DSKDIF OESYT B # ; 0 RDWO .T:CNLD R AS R. 0 = 1TEBY, 1 = 0TEBY: AGFLY ARIN B ; 1 RDWO . AS RM)SUCKHE CESUDCLIN (NTOU CTEBYL UACT A ; 0 RDWO . AS R M AS RIND SENU U ; 0 RDq ; SKIP A LINE FOR ERROR MESSAGE RAS .BYTE TAB,TAB,TAB ; AND MOVE OVER TO COL. 25 RAS ERRNUM: .BYTE 0,0,0,0,0,0 ; 6 BYTES FOR ERROR NUMBER RAS .ASCII / LINES WITH ERRORS/ ; MESSAGE RAS .BYTE LF,LF ; AND 2 BLANK LINES BEFORE UNDEF SYMBOL RAS .ASCII /UNDEFINED SYMBOLS:/ ; RAS .BYTE LF ; rARY BUFFER  MOV  #TBBUF,R0  ; R0 = TBBUF(0) ADDRESS  ADD  #7,R5  ; R5 = THE OBJECT FIELD'S ENDL1A:  MOV  R5,R3 ENDL03: MOV  #3,R2  ; R2 = 3 ITERATIONS  MOVB  (R0)+,R4  ; R4 = EFF OBJECT DATA BYTE  BIC  #400,R4  ; PREVENT SIGN PROPAGATION  TSTB  BYTFMT  ; BYTE OR WORD FORMAT ?  BNE  ENDL04  ; BYTE  ASL  R2   ; R2 = 6 ITERATIONS  DEC  R0   ; DECREMENT R0  MOV  (R0)+,R4  ; R4 = EFF OBJECT DATA WORD  DECB  SIZE  mҕ  ^ k.MAIN.., rf e0R&,@ ( @ ! r jn~~~~D~T~h~JJ~^~JR,L 05UTE -*r( ob_ NDb ,*/5 _ ]BͲTOO MANY SWITCHES S,ZE ,  *&_ 3 /,e$,f _ އ_ ND4&_ & &$"_ @&_ އcГWO . AS R T UNCOE YT BAX M ; +5BCLD R RDWO .F:BULD R AS R ERFFBUN IOATOCEL RINS TEBYF O # ; 3 6 = BCLD R AS R R FEUF BKSOCBLN IOATOCEL R ; AS R ENEV . 6 1+E+IZBS B  = BCOM BE YT BUMKSECCHA E RVSERE;   0  E YT.B S ESDRADR FEUF BRYNABI. AX M ;   : BAXBMA ESYT BTADAE IZBS BVEERES R ; ZESIBB.+  =  . u RAS ERMSLN = .-ERRMSG-6 ; NUMBER OF CHARACTERS IN ERROR MESSAGE.PAL .EVEN RAS ; RAS ; PRINT BLOCK FOR NO UNDEFINED SYMBOLS RAS NOUSYM: .WORD 8.,0,8. ; LENGTH, UNUSED, CHARCTER COUNT RAS .BYTE TAB,TAB,TAB ; COLUMN 25 RAS .ASCII /NONE/ v; SIZE = SIZE-1 ENDL04: JSR PC, 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 #LINUSZ+11,R3 ; POINT TO END OF SOURCE PAL  MOV  R3,SRCIN  ; }U%   ZU, SW!( U P W!+ D UF,05U@ 5 W!(53~&,`TA_ 4_ ^_ /TAPES SWITCH HA,S NO VALUE 3  ,_ INPUT FILEF ,6_ H :)& f_ rFf_ Vh'd,\F f_ _ WILL BE RE,TAINED IN CIL l 2X$ ,E}_@&^ %  o5 U@SSREDD AADLOS CKLO BRYNABI;   0  D OR.W T UNCOE YT BKSOCBLY ARIN B ;   0 RDWO .  ERFITIENIDS CKLO BRYNABI;   0  D OR.W T UNCOE YT BNTREUR CBO;   0  D OR.W 0 +1UFNBBIT=CNIN BS TEBYE OD-MUSATSTO B ;   0 RDWO .  NTOU CTEBYM MUXIMAO B ;   0 RDWO .: UFNBBI ERFFBUT PUUT ORYNABIE YT B46;   . 46  =  E IZBS B AS R R FEUF BUTTPOUY ARIN B ; AS R y ; RAS .BYTE LF ; RAS .EVEN ; RAS .PAGE PAL ; THIS SUBROUTINE IS USED FOR ALL BFUP COMMUNICATIONS RAS ; ON ENTRY R0 CONTAINS THE ADDRESS OF THE PROPER BFUP COM BLOCK TO USE. RAS ; zSRCIN = LATEST TERMINATORS ADDR  MOVB  #LF,@R3  ; INSERT A CR-LF SEQUENCE  MOVB  #CR,-(R3)  BR  ENDL03  ; OBJECT FIELD NO FORMATTED 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 ? ,ϐ _ ϐ C"_ Nbbd j _ =TOO MANY INPUTS 8,!DЀ& "!D$)>&_ r6~6⋟DkΥ:@eJ!!! E0" l @$ ,EHFb` 2,Tw h +-&"&':%F|$e   & &f&  K#X<@I/: A @  , $$C0  Bp` e,w   87 Ux v < < ~   V_̅* <   _ Uԇ (϶ O ;  +6 .  =  .D ELFIG INSTLIK ANBL;   1 .+  =  . LDIE FNGTIIS LONTICALO;   6 .+  =  . LDIE FNGTIIS LORRR E ;  +2 .  =  . AL P R.BEUM NNELIR FOM OO R ; Z USIN+L . = .T UNCOE YT BNTREUR CLO;   0  D OR.W S TEBYE OD-MUSATSTO L ;   0 RDWO .  NTOU CTEBYM MUXIMAO L ;   0 RDWO .: F2BULO WO TCKLO BERADHET PUUT OEDSTLI;    N VE.E 6 1-UFOB-L .  = BCOM L AL P S.NELI. XT EIN#  SET EMT CODE FOR BFCLOSE RAS BFCOM: MOV R0,-(SP) ; SET BFUP COM BLOCK'S ADDRESS ON STACK.RAS BFEMT: EMT 0 ; GO DO REQUESTED EMT RAS TST (R0) ; ANY ERRORS? RAS BNE BFC010 ; YES. GO HANDLE. RAS RTS PC ; RETURN TO CALLER. RAS BFC010: MOV (R0),-(SP) ; PUT ERROR CODE ON STACK FOR ERROUT. RASESS PRINTOUT OF THIS LINE BR ENDL07 ; RAS ENDLX6: JSR PC,LPRINT ; PRINT THIS LINE. RAS CMP PAGING,MAXLINES BLT ENDL07 ; NOPE RAS JSR PC,PHEAD ; PRINT PAGE HEADER AT TOP OF NEXT PAGE.RAS ENDL07: CLRB RLDFLG  CLR  SIZE  ; SIZE = 0 TST LISTKEY  ;CHECK FOR LIST SUPPRESS BGE ENDLX8 CLR LISTKEY ENDLX82 " Kr1X< LLI/: `A d  &@@@@@@@@@&J  ~  l şUjh R xK ,lA@NE@` j Xϗ   8͇Q,^UU  ćCU&ԇ  ZC! _ ILLEGAL BLOCK SIZE _.("    _  _ G,DSMALL BLOCKS VALUE _ڟڃNELIR FOM OO RVEEA L ;SZNULIZ+USIN+L . = .S ERFFBU;  14.+  =  . ONSIENXT ENGTIIS LCTJEOB;  12.+  =  . ERFFBUA AT DERCTRAHA C ; AXCMSR.+  =  . NTOU CTEBYT ENRRCUI S ;     ESYT BDEMOS-TUTA SSI;     AL P. RSDEEA HUTTPOUT&PUINN EETWBET SEFF O ; F1BULO1-UFIB S =O ILFS DT UNCOE YT BUMIMAX MSI;   6 .- = 1 UFIB SE ONK OCBLR DEEA HUTNP ICEURSO;    D ELFIG INSTLIK ANBL;   1 .+  =  . LDIE FNGTI MOV #ERR8,-(SP) ; PUT ERROR NUMBER ON STACK. RAS JMP ERROUT ; GO TO ERROR HANDLER. RAS ; RAS ; SOURCE BFUP COM BLOCK RAS SRCBFB: .WORD 0 ; ERROR CODE RAS .WORD BFILE ; BATCH FILE ID NUMBER RAS .RAD50 /.TE/ ; SCRAT:  TSTB  ERROR  ; WAS THE LINE ERRORED ?  BEQ  ENDL09  ; NOPE  CMPB  PASS,ERPASS  ; ERROR LISTING PASS ?  BNE  ENDL09  ; NOPE MOV ENDL06+2,-(SP) ; GET BUFFER ADD. FOR ERR LISTING RAS JSR PC,LPRINT ; GO LIST IT. RAS ENDL09: ADD #DFSILO+6,SRCIN ; THE '6' IS FOR THE LINE HEADER BUFF. PAL  CLRB  ERROR  ; ERROR = 0  JSR PC, POPREG ; CALL SET REGISTERS AND RETURN .PAGE  #`B  s|ȏ,h  #1-`74 wE, 7s|Ȓ$s f7  \$"z , =,Hnn & ' & |Ȍ h,n  (U& dʀe  W K,   & c,D&>_ &_ ޳&_ ~,j_  &_ ل _ `,_  _ BAD IN,PUT FILE ee  6&&_ ,rև_ ND <-<&_ ȇ %, e4 IS LCTJEOB;   6 .+  =  . LDIE FNGTIIS LNKLA B ;  +1 .  =  .D ELFIG INSTLIN IOATOC L ;  +6 .  =  .D ELFIG INSTLIR ROER;   2 .+  =  . L PA . ERMBNUE IN LOR FOMRO; SZNULI.+ = . 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 ;    L PA . E#IN LINS ERCTRAHA COF# ; CH SOURCE ELEMENT NAME. RAS .RAD50 /MP./ ; SECOND WORD OF NAME. RAS .BYTE 0,3 ; RESERVED, ELEMENT TYPE RAS SRBSEC: .WORD 0 ; ELEMENT'S START SECTOR RAS SRBLNT: .WORD 0 ; ELEMENT'S LENGTH. RAS ; RAS ; BINARY OUTPUT BFUP COM BLOCK RAS BIN PAL ; THIS SUBROUTINE PRINTS THE PAGE HEADING FOR THE ASSEMBLER. RAS ; ON THE FIRST ENTRY IT ALSO SETS UP THE DATE AND TIME OF THE ASSEMBLY. RAS ; RAS PHEAD: ; ENTRY POINT FOR PAGE HEADER SUBROUTINERAS MOV PAGCNT,-(SP) ; PUT PAGE # ON STACK. RAS MOV #PAGNUM,-(R6) ; AND BUFFER ADDRESS FOR PAGE ށ%E  nF F |ȟ,ȵF`@@T@T@Th 1"3 , e     _ ,~DATA SET NOT A CIL _ `&p,_ _  _ b _ _ ,L, 0&_ _ &_ F_ Nh,CD &&& $ $,&&&&l"   W W,W  a %& eU@ &^ $ ,ESij 8. = SZNULI AXCMSR =C MBSI L PA) LFR++CRDCA1 (. 82R=FEUF BCEURSOX MA; . 82 = 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 ;   3 /7264/ ; 0 0, D OR.W S RA . ERFFBUA AT DOFS ESDRAD|BFB: .WORD 0 ; ERROR CODE RAS .WORD BFILE ; BATCH FILE ID RAS TITLEA: .RAD50 /.MA/ ; DEFAULT ELEMNT & MODULE TITLE RAS TITLEB: .RAD50 /IN./ ; WORD 2 OF NAME. RAS .BYTE 0,0 ; RESERVED, ELEMENT TYPE RAS BNBSEC: .WORD 0 ; ELEMENT'S START SECTOR RAS BNBLNT: .WORD 0 ; ELEMENT'S LNUMBER. PAL JSR PC,BINDEC ; GO CONVERT PAGE # TO DECIMAL RAS MOV #PAGNUM,R3 ; SUPPRESS LEADING ZEROS. PAL ZEROES: CMPB #'0,(R3) ; IS THIS A ZERO? RAS BNE ZEROXT ; NO. ALL DONE. RAS MOVB #040,(R3)+ ; YES. REPLACE WITH A BLANK. RAS BR ZEROES ; GO SEE IF ANY MORE. RAS ZEROXT: INC PAGCNT  Xu,e `D  p `` H  ͠ȋ Y a( @>0sD!ړO,͓C!  e    *(W W  '". "R$L $D_  m7R A!B0Z0W W   B   •/|  :     ,07 P & #- @ &  %\,V0   n :   | X ,|ʷ   ; F1BUSI D OR.W S RA D OR WEMSTSY; 0 D OR.W S RA ).OK0= (DECOR ROER; 0 D OR.W: RRDECR S RA N.IORSVEON CDECOI CIAS; 0 E YT.B S RA K.AS TORRR ENO; 0 E YT.B S RA E INUTROE ETPLOM C/O INO; 0 D OR.W S RA 2.- E YP TITEX; 2 E YT.B S RA xENGTH RAS ; RAS ; FILE MANAGEMENT DEFINE BLOCK RAS .BOUND ; 4/26/73 DFNLST: .WORD 1 ; THREAD WORD RAS DFNERR: .WORD 0 ; BYTE 0=ERROR CODE, BYTE 1=ERROR TASK. RAS .WORD 0,BFILE,BTYPE ; RESERVED, BATCH FILE ID, FILE TYPE RAS  ; COUNT THIS PAGE. RAS CLR PAGING ; CLEAR LINES THIS PAGE RAS TSTB PFLAG ; HAVE BEEN HERE BEFORE? RAS BNE PPRINT ; YES. ONLY ONCE NEEDED. RAS INCB PFLAG ; SET FLAG. ONLY GET DATE + TIME ONCE. RAS EMT $GDATE ; GET TODAY'S DATE ON STACK-3 WORDS. RAS MOV #PYEAR,R1 ; FIRST CONVERT THE YEAR  _  _ ߇,H r  r r  ,nr·&_ `_ NC &  ׬Zc p  K!# bRK l c 2| A! ,  J W. ScA!W]W0,\v      L , D  ~ W!' n h,˻   *! &W!P!B n C ,NC  (  j a,tB  P0 @ϗ0` . ERADRED AR C -CEVIDE; 2 E YT.B S RA D.OR WADRETH K.OCBLD EACR; 1 D OR.W: STDLCR 3 /7264/ ; NDOU.B S RA STLIO I/R DEEA RRDCA; S RA E AG.P ENEV .  S RASMRAN IESSSPA2 Y NL(OE LUVA# S ASXPMA; 2 E YT.BS:ASXPMA S RA S AS PNGTIIS LLEAB TOLMBSYD t .WORD 0 ; WITH DISK DIRECTORY. GET MAX ROOM. RAS .PAGE RAS  ; SECTION SYMBOL TABLE LISTING   ; GENERATE AN ALPHABETIZED LISTING OF THE   ; USERS SYMBOL TABLE.   ; 1) ENTIRE SYMBOL TABLE IF STMASK CONTAINS 0.   ; THIS INCLUDES .CSECT TABLE.   ; 2) UNDEFINED ENTRIES ONLY IF STMASK CONTAINS DEFFLG!GLBFLG   ; LINEARLY SEARCH THE TABLE WHICH IS ORDERED. ;NOTE: ;ALL ENTRIES ARE RAS JSR PC,CALDT ; RAS MOV #PDAY,R1 ; THEN THE DAY RAS JSR PC,CALDT ; RAS MOV (SP)+,R1 ; AND FINNALY CONV. THE MONTH TO 3 CHARSRAS MOV R1,R2 ; PUT # (1 TO 12.) IN R1 AND MULT BY 3. RAS ASL R1 ; TO USE MONTH # TO MONTH LETTER CON. RAS ADD R2,R1 |  p & . 'Ȋ% W, 6 e !  e 5 0   f<  Ӧ<>C!W!^,8  C D C!D!^, UU|VԐP: T &r xEN zDS ~׾CR ؤk,   j P${ {j{:tT ,{}TR}}0*,{ e n}|e" NEFIDEUN; 2 E YT.B: SSPAUS S RA SSPAG INSTLIT ENEMATSTR ROER; 0 E YT.B: SSPAER S RA S AS PNGTIIS LLEAB TOLMBSY; 2 E YT.B: SSPAST S RA S AS PLDUI BRYNABI; 2 E YT.B: SSPABO S RA SSPAG INSTLI; 2 E YT.B: SSPALO S RA N. OISM AS RSSPAT ENRRCU; 0 E YT.B : SSPA S RA. ITO D'TON D0= N. OCELA PKETAO TONTIACR FOS AS P#= S.HETCWI SSSPA; p ENCODED 16-BIT UNSIGNED, ;POSITIVE, INTEGERS. STLIST: SUBR12: JSR PC,SAVREG  ;SAVE REGISTERS MOV CONTOP ,R5 ;BOTTOM OF UST MOV USRTOP ,R4 ;TOP OF UST CLRB LCSECT  ;NOT CSECT'S STLST9: ADD #10,R5 ; NULLIFY SUBTRACT AT STLST1 RAS STLST0: JSR PC,ROTATE  ;CALL ROTATE I/O BUFFERS SUB #DFSILO-LINUSZ+2,R0 ; MOVE R0 TO BYTE 0 OF BUFFER RAS MOV R0,@R3  ;CURLIST=R0,SECOND DATA BYTE MOVB #-5,LISTSC ; SET FOR 6; TABLE. SINCE '-(R)' CHANGES BEFORE RAS ADD #MONTAB,R1 ; EXECUTION THE BEGINNING ADDRESS RAS MOV #PMONTH+3,R2 ; SHOULD BE 1 MORE THAN THE FIRST RAS MOVB -(R1),-(R2) ; CHARACTER TO TRANSFER. MOVE CHAR #3. RAS MOVB -(R1),-(R2) ; MOVE CHAR #2. RAS MOVB -(R1),-(R2) ; MOVE CHAR #1. RAS EMT $GTIME ; GET THE TIME. RA    @ ,ͤ  D >7 `,l`  x 5 %,7^%z Rҕ ЎNĢ" w 7 `  Q Ր׈Лz2 &@$R   ,|       }|0}x@{W! f,pw \% Ywy 7%:P f~, &J7 5<59%,  40 S RA ; S RAD.EA RSKDIE RCOU SOND TEECET DOF E 1IF; 0 E YT.B: OFCESR S RAS.ARCHT OS-LNGLOO TOE AGIME RCOU S 1IF; 0 E YT.B: LNNGLO ORATICND IAB TORK ANBL;   0  E YT.B G:LATF BS ASCLS N'IOCTRUSTIN;   0  E YT.B S:ASCL I AS R NDOU FLSBOYM SEDINEFND UNO- 0 = ; 0 TEBY .L:MFSY UK AS MNGTIIS LLEAB TOLMBSY;   0  E YT.B K:ASTM S. ERNTOU COLMBSY;  l SYMBOLS/LINE (ONLY ON LP) PAL MOVB STMASK,R0 ; GET SEARCH MASK AND SET COND CODES FORRAS BEQ STLST1 ; BRANCH IF NOT UNDEFINED SYMBOL LISTINGRAS MOVB #-15.,LISTSC ; IF UNDEF SYM SET FOR 16 SYMBOLS/LINE RAS STLST1: SUB #10,R5  ;MOVE FLAG WORD POINTER. CMP R5,R4 BEQ STLST2  ;END OF TABLE. TSTB LCSECT BNE STLST4  ;.CSECT TABLE MOV R5,R2  ;FOR DECODE BITB R0,(R5) ; IGNORE DEFINED SYMBOLS (IN UNS MOV #PHOUR,R1 ; AND CONVERT THE HOURS RAS JSR PC,CALDT ; RAS MOV #PMIN,R1 ; AND THE MIN. RAS JSR PC,CALDT ; RAS MOV #PSEC,R1 ; AND FINALLY THE SECONDS. RAS JSR PC,CALDT ; RAS PPRINT: MOV #PAGBUF,-(SP) ; PRIN G,   & a,@ X'EEUQa #,f p XR  ߋ,R5P._@ MAGTAPEy, BOOTER PLEASE TYPE THE UNIT NUMBER i TO BOOT FROM,Х$ҥ$$$  l,$$ y׽'@~w ,ܩ~w ޠt *fE E  @ E N  Q% EE \5 |E `` E N @`   S T'PUUT OEDSTLIE BLTAL BOYM S ;   0 TEBY .: SCSTLI ERNTOU CEMITS N'IOSSREXP E ;   0 TEBY .: NTOUIC ERNTOU CERCTRAHA C'SEMIT;   0  E YT.B: ARCHNT CR TOCADIINT PUUT ORYNABI;   0  E YT.B T:OUIN BR TOCADIING INNDPEM TE I ;   0 TEBY .: INEMIT AGFLT PUUT O'SID. ARCH;   0  E YT.B : AGFL SR TOCADIINE YP T'SEMIT;   0  E YT.B : PETY IN VE.E D IONTIEC SOLTRON;C  0  E YT.B : IDCTCS GSLA F'SLEAB TOLMBSYY ARORMPTE; hDEF SYM) RAS BNE STLST1  ;IF STMASK CONTAINS DEFFLG!GLBFLG INCB USYMFL ; SYMBOL FOUND - ONLY USED IN UNDEF PASSRAS ; CMP HUSERPC ,R5 ; ;BEQ STLST1  ;IGNORE USER'S PC BR DECODE STLST2:  JSR PC, STLLST ; CALL SYMBOL TABLE LISTED OUTPUT ;OUTPUT .CSECT TABLE TSTB STMASK ; SKIP IF UNDEFINED SYMBOL LISTING RAS BNE STLST3  ;EITHER NO .CSECT OR ALREADY DONE COMB STMASK  ;REVERSE SWITCH MOV PERTOP ,R5 ;BOT THE PAGE HEADER RAS JSR PC,LPRINT ; RAS RTS PC ; RETURN TO CALLER RAS ; RAS ; THIS SUBROUTINE CONVERTS A 2 DIGIT BINARY # INTO DECIMAL AND STORES RAS ; THE CHARACTERS IN THE ADD. IN REL R1 AND R1+1. THE BINARY # IS ON RAS ; THE STACK ON INPUT AND IS REMOVED BEFORE CONTROL IS RETURNED. RAS ; -.2` @#H:@& @.:d@d@f@ys@Y@f.(@2hy(.PJӚԆf  ,ˈ~ W!OT ,W!NW!FL W!FG fy/   W W,W  a  e*&  er%   Հ$ 0@~%@\!42}s:_,ڀ s: :@@AK,@K &@K8@K09@KK@K   0  E YT.B S:AGFL T0  D OR.W 0  D OR.W 0  D OR.W  0 TEBY .: YMPSTM ERNTOU CLDIE FNGSIESDRAD ;  0 TEBY .: NTDCFL SSREDD ADD OBET US MYMPSTM;    N VE.E E BLTAL BOYM SRYRAPOEM T ;    0 RDWO .M:ERRTVA 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 ES NLSNAIOITNDCO;0 TEBY.: LVSTCN 0 TEBY . H:LTAR VP KUAC BODLMRS ;  0 TEBY . D:2MSL R) ONTIEC SALRNTEEX (LEABATOCEL R2=;- dTTOM OF .CSECT TABLE MOV CONTOP ,R4 ;TOP OF .CSECT TABLE COMB LCSECT  ;CSECT PROCESSING MOV #12,WORD4 ; CSECT #=0 TO GET UNAMED .CSECT RAS ; LABEL FLAG AND THE DEFINED FLAG RAS BR STLST9 ; RAS STLST3: CMP LPLIST,#1 ; HERE TO WAIT FOR COMPLETION OF LAST RAS BNE STLST3 ; LIST REQUEST. (LAST OF STLIST ROUTINE)RAS STLSTE:  JSREGISTERS R1+R2 ARE MODIFIED. RAS CALDT: MOV (SP),R2 ; SAVE THE RETURN ADD. IN R2. RAS MOV #BCD,(SP) ; PUT ADD. FOR CHAR. STRING IN TOP OF SKRAS JSR PC,BINDEC ; GO DO CONVERSION. RAS MOVB BCD+3,(R1)+ ; PUT LEFT CHAR. IN STRING. RAS MOVB BCD+4,(R1) ; PUT RIGHT CHAR. IN STRING. RAS JMP (R2) ; RETURN. R= E 7  ,~w w W!D Z  m,@ ,  17  n ,f *>: Q$ &yz   | E    $ &?@ r @r r ,sssw w n,܀;wwww w,*܀%@*@ W 5  ҝ&ŧ @      ѝ ѝ} w wa ~    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 B ;   0 TEBY .: MTTFBY SSREDD AENEVE BSTMUE IZ S ;   0 TEBY . E:IZ SE AGIME RCOU SVETIECFF EHE TOF;     `R PC,POPREG  ; RETURN AFTER POPPING REGISTERS. STLST4: INCB WORD4+1  ;START WITH 002 MOV -6(R5),WORD1 MOV -4(R5),WORD2 MOV @R5,WORD3 ;SIZE OF .CSECT MOV #WORD4,R2 CLRB LISTSC  ;1 SYMBOL PER LINE.   ; DECODE A 2-WORD MOD40 PACKED SYMBOL TO   ; STANDARD ASCII ENCODED CHARACTERS DECODE: JSR PC,SAVREG  ; CALL SAVE REGISTERS MOV R2,R5 MOV (R3),R1 ; GET ADD OF NXT SYM.-R3=ADD OF CURLIST RAS SUB #6,R2  ;ADDRESS OF2 HAS ADDRESS RAS BCD = . ; 5/14/73 .BYTE 0,0,0,0,0 ; 5/14/73 PFLAG: .BYTE 0 ; FLAG FOR HEADER. =0 GET TIME&DAY RAS ; >0 ALREADY HAVE THEM.RAS MONTAB: .ASCII /JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC/ ; MONTH CONVERS. RAS .EVEN RAS M,(    ED    $  &A` aEA!N , @ %@}j@x;1w,4е;Bε;4\E\XH_,Zthi}Oc Ĝ A  |  """<8fd z ">< ^ǟ >ҕ+ b ZT  Ɓ_@THIS MESSAGE WILL NEVER BE). PRINTED DUE TO ROS SCREW UPS-TASK 50 S 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 RCNSLIO 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.\ 1ST TRIAD MOV R1,-(SP) ; PUT ADD. OF 6 CHAR. SLOT ON STACK. RAS MOV R2,-(SP) ; PUT ADD. OF WORD 1 IN RAD50 ON STACK. RAS EMT $RADUN ; CONVERT RAD50 TO ASCII (6 CHARACTERS).RAS ADD #7,R1 ; BUMP CHARACTER POINTER TO NEXT FIELD. RAS    ; FORMAT THE LISTED OUPTUT TSTB LCSECT ; SKIP IF CONTROL SECTION LISTING RAS BNE DECOD9 ; NEVER A REG OR AN EQUATE  .PAGE RAS ; THIS SUBROUTINE PRINTS ONE OR MORE LINES ON THE LINE PRINTER. RAS ; FOR COMPATABILITY AND EASE OF CONVERSION THE INPUT IS A STANDARD RAS ; DOS LINE BUFFER HEADER-DUMP MODE IS NOT PERMITTED. RAS ; REGISTER R0 IS DESTROYED. RAS LPRINT =. ; RAS MOV 2(SP),R0 ; GET ADDR]HX,>Zn[Zn}n}nZq%,d(zdzxd鰼RʳyL V,ސ  ,^"0 5ҕ & *ͦ6e ҕ 6edчm .MAIN.,^ f e0 wk?T f:L;`e ek,.Ew  EW ?W ЕZ, PЕ e5 `e : ,8w e : 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;     E THN IEDUSD OR WTADA;   0  D OR.W D:ANOM C0  D OR.W : LGDFRL GERATO S ;   0 TEBY . T:CNEL RE IVCTREX RAS TSTB R0 ; IF THIS IS UNDEFINED SYMBOL LISTING RAS BNE DECODD ; ONLY HAVE SYMBOL ITSELF. RAS  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  #ESS OF BUFFER HEADER RAS MOV (SP)+,(SP) ; MOVE RETURN ADDRESS OVER IT. RAS TST (R0)+ ; BUMP R0 TO WORD 2. RAS MOV 2(R0),(R0) ; MOVE WORD 3 (BYTE COUNT) INTO WORD 2. RAS CLR 2(R0) ; CLEAR WORD 3 RAS LP010: CMP LPLIST,#1 ; IS THE LP I/O LIST FREE? RAS BNE LP010 ; WAIT UNTIL IT IS. RAS mCfffff XԡB X Ȕ$ _ ֯+-*/&@ 4!, r  ϔdb(nLC @(L E:hf:h\.)h)bh9p:h9ah4(^l)Xh o,шZ?ҕ ., [+ ,) ,B]' <# >! - - 7 },hB L O C pJB( ! @  x p 8 qH 7DpD7 77DID 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; RDWOD /IAGFLS OT DOF. DRAD;   0  D OR.W: PCERUS HS AS P ANGRIDUD REROER;     S NELIE THL ALF OUM SHE T ;  TLABFLG,@R5  ; IS THIS SYMBOL A LABEL ?  BNE  DECOD9  ; YES  MOVB  #'=,@R1  ; NO, DIRECT ASSIGNMENT DECOD9: CMPB (R1)+,(R1)+ ; ADD 2 TO R1 (ADD OF NEXT BYTE) ODD/EVNRAS MOV R1,R3  BITB  #DEFFLG,@R5  ; IS SYMBOL UNDEFINED ?  BNE  DECODA  ; NOPE MOVB #'*,-(SP) ; YUP. PUT '******' INTO ADDRESS RAS MOV #5,R2 ; AREA OF LISTING RAS DECODH: MOVB (SP),(R1)+ ;  TST LPERR ; ANY ERROR ON LAST LINE RAS BEQ LP020 ; NO. RAS MOV #LPERMS,-(SP) ; LINE PRINTER - ERROR MESSAGE ON TTY RAS EMT $NCHKPT ; (NO CHECKPOINT DURING I/O) RAS EMT $TTYOT ; PRINT IT RAS MOV #SRCBFB,-(SP) ; CLOSE ALL OPEN BFUP ELEMENTS. RAS EMT $BFCLS ; }DXl*0DX l DXlz*DXl  ~,Lҷ/ e D 2 6 ,r2+ 0 ) ( ,!    8 E_Rwaef$^ &w ɋ` 7e7x VTW5&1u~!"dL.d2lL & u  ls #}&fSzf 0 RDWO .: UMRSER R.FEUF B ;     UTTPOUD TEIS LVETIECFF EHE T ;     INE YT BLEABILVA ANTREUR C ;     HE TATS NTOI PERNTOI PISTH;    0 RDWO .T:ISRLCU H.RCEA S ;     LEAB TOLMBSYE THG INUR D ;     NTTANSCOR TEACARCH' 'B;      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;     P RAS DEC R2 ; RAS BGT DECODH ; RAS MOVB (SP)+,(R1)+ ; LAST '*' RAS MOV R3,R1 ; RESET R1. RAS  BR  DECODJ  ; CHECK AVAILABLE SPACE DECODA:  MOV  -2(R5),R4  ; R4 = EFFECTIVE VALUE  MOV  #6,R2  ; R2 = 6, ITERATIONS  RAS MOV #BINBFB,-(SP) ; RAS EMT $BFCLS ; RAS EMT $EXIT ; EXIT RAS LP020: MOV R0,LPLDAT ; FREE. PUT ADD OF LINE BUFFER IN LIST.RAS MOV #LPLIST,-(SP) ; PUT LIST ADD. ON STACK RAS EMT $NCHKPT ; (NO CHECKPOINT DURING I/O) RAS EMT UNJULAUGSEPOCTNOVDEC???,  7  ,Ӓ7   w,Œ%⇸ aeM 1EI2_ 8 VRRQ $ Lɕ5"P5Pw7 v*s eBkL s$; :   #}@HXCDOBFn, L eee> : H2 ,  \ ! ! Wn E YT BHE TTON IOATEL R ;     INE INUTROUB SCHARSE;     E THY BEDUSS NTTANSCO;     R TEACARCH' 'B0 -4OD MOFE BLTA;  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:SUL ADD  R2,R3  ; R3 = R3+6  JSR PC, 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 JSR PC,BINASC  ;BINARY TO ASCII CONVERSION DECODI:  BITB  #GLBFLG,@R5  ;SUFFIX G  BEQ  DECODB  MOVB  $LPRNT ; GO PRINT LINE RAS EMT $CHKPT ; ( CAN BE CHECKPOINTABLE AGAIN) RAS MOV (R0)+,(R0) ; RESTORE DOS WORD 3 FROM ROS WORD 1 RAS ; NEEDED FOR LIST THAT DON'T CHANGE. RAS RTS PC ; RETURN TO CALLER RAS ; RAS ; LPLIST TABLE RE@P5   7wh593 55( #59 ɥɥ5 * :L;:L;:L;:L;?Tj  0& & &  f:L;KU @n  5,  U -  F>n ,&FUf   x 7 x p E,nZpDD0\6 \6 XX0\6 \6 llOC B0  D OR.W: RMTEAV S N VE.E  OLMBSYE BLTACALORES OUVIRE;P     OFD ICTSE.CN AINTAI MTO;   E INUTROUB SONSIESPREXN IEDUS; 0 TEBY.: ECGSPR L PA R.DEEA HGEPAN IRSTEACARCHF OERMBNU; -6UFGBPA.- = LNGBPA S RA ; F ,LLF E YT.B S RA ; / S /S IISC.A : ECPS S RA ; / M:/M IISC.A : INPM S RA H #'G,7(R1) DECODB: ADD #14.,CURLIST ; 22 CHAR/SYMBOL IN FULL LISTING RAS DECODD: ADD #8.,CURLIST ; ONLY 8/SYM IN UNDEF LISTING RAS JSR PC,SETREG ; OF CURLIST. RESTORE REG. FROM DECODE RAS  INCB  LISTSC  ; INCREMENT SYMBOL COUNTER  BGT  DECODC  ; LO BUFFER FULL, OUTPUT  JMP  STLST1  ; PROCESS THE NEXT SYMBOL DECODC:  JSR PC, STLLST ; CALL SYMBOL TABLE LISTED OUTPUT  JMP  STLST0 .PAG RAS .BOUND ; 4/26/73 LPLIST: .WORD 1 ; THREAD WORD RAS .BYTE 3 ; DEVICE NUMBER (LP) RAS .BYTE 2 ; EXIT TYPE RAS .WORD 0,0 ; NO I/O COMPLETE, ERROR TASK, OR PRIORYRAS LPERR: .WORD 0 ; STATUS (0=OK). RAS .WORD ysh. .& & &  2& & X?T@ f:L;&& =, j ` V 7  6,"U $ Mr$5 6 :\6 XX __ `` a),^ nW!0W!9  W! W!:,և 4Y( $(b*[;, eN ; / H:/H IISC.A R:OUPH S RA ; B TA E YT.B S RA ; / Y /Y IISC.A R:EAPY S RA ; 9/-1MM/M IISC.A: THONPM S RA ; / D-/D IISC.A : AYPD S RA ; B TA E YT.B S RA ; / XXXX/X IISC.A: UMDE PAL  ; SUBROUTINE SYMBOL TABLE LISTED OUTPUT STLLST: MOVB #LF,@2(R3) ; TERMINATE CHARACTER STRING WITH A LF. RAS ; BACK UP 2 CHAR. FOR WORD OF BLANKS RAS MOV BHADRS+2,R1 ; GET ADDRESS OF BUFFER HEADER. RAS SUB #DFSILO,R1 ; GET ADD. OF OUTPUT BUFFER HEADER. PAL MOV R1,-(SP) ; PUT BUFFER HEAD. ADD. ON STACK FOR LP.RAS  0 ; SYSTEM WORD RAS LPLDAT: .WORD 0 ; ADDRESS OF LINE BUFFER RAS .WORD 0,0 ; 4/26/73 ; RAS ; TTY I/O LIST FOR LP ERROR-VERY BAD RAS .BOUND ; 4/26/73 LPERMS: .WORD 1 ; THREAD WORD ,  `ص @ R .,  3e" 7 7w M jjz l}lx n{nv py"www ,NN  ,~zCR  E X 7 T3 BAPP52U5U>5"U5@UEPs' l1 6 2 .WGNPA S RA ; / E AG/P IISC.A S RA ; B TA E YT.B S RA ; A/01/V IISC.A S RA ; B TA E YT.B S RA . METID AN, TEDA, #GEPA; M/AS/R IISC.A S RA THWIE IN LLLCAE THN HE TND AGEPAW NE; AB,TFF E YT.B: C1GBPA L PA T UNCOE YT B@ CMP (R1)+,(R1)+ ; BUMP R1 TO ACTUAL BYTE COUNT AND THEN RAS SUB R1,(R3) ; COMPUTE THE # OF CHARS. IN THE BUFFER RAS SUB #3,(R3) ; ADJUST CHARACTER COUNT RAS MOV (R3),(R1) ; AND PLACE THE # IN THE ACTUAL BYTE CT.RAS BGE STLLS2 ; IF BYTE COUNT IS NEG., MAKE IT ZERO. RAS CLR (R1) ; RAS STLLS2: JSR PC,LPRINT ; PRINT TH RAS .BYTE 0 ; DEVICE (TTY) RAS .BYTE 2 ; EXIT TYPE RAS .WORD 0,0,0,0,MES ; REST OF I/O LIST RAS .WORD 0,0 ; 4/26/73 MES: .WORD LPERLN,0 ; # CHARACTERS, SYSTEM RAS .ASCII / ** LP ERR-RASM ABORTED**/ ; RAS LPERLN w   $ !"[g4 . _&w  _"e &" s:: :,f&W% ȕ " ,$f 7Z7XP$ | 3 8 @mp $ $7 !7v.(xx(@(xxh(D(n.@ 2ALTUAC; LNGBPA D OR.W L PA E OD MND AUSATST; 0 D OR.W L PA E.AGSSMER DEEA HGEPAF OTHNGLE; LNGBPA D OR.W: UFGBPA ERFFBUE AGSSMEE AG P ;   N VE.E N IOATOCEL REDACPLIS DVETIDIADT ECCS .; 6 1= .4D4RL ONTICALOREE IVITDD ACTSE.C;  15  =3 4.LD RN IOATOCEL REDACPLIS DCTSE.C;  14  =2 4.LD RN IOATOCEL RCTSE.C;  12  =1 4.LD R1 1= .3D3RL 10  =  2 3.LD R7  =  1 3.LD R6  = 6 2.LD R5  = <E SYMBPL TABLE LISTING LINE. RAS INC PAGING ; INCREMENT LINES ON THIS PAGE COUNTER. RAS CMP PAGING,MAXLINES ; IS THIS A FULL PAGE YET? RAS BLT STLLS1 ; NO. GO HOME. RAS JSR PC,PHEAD ; YES. PRINT HEADER ON NEW PAGE. RAS STLLS1: RTS PC ; GO BACK TO CALLER. RAS .PAGE PAL ;ARITH=.-MES-4 ; MESSAGE LENGTH RAS .EVEN RAS .PAGE RAS   ; 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 NOW!  "  W!.W!   N,&e:6 W!.W! ,L    `  58a@5 -8JU ѐB`Ѱ `L7 & ,$ E +   ( TASK F<. %\0 $  "..:   . &J  E E 5s&j U5 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 AB TALNTZORIHOI CIAS;   11  =  B TA EDFENELII CIAS;   12 0  = LF RNTUREE-AGRIAR CIISC A;  5 01  =  R CD EEMFOR FIISC A;  4 01  =  F F AS R ; AS R ORRR EADRE C ; 6104 3 = 118METIC CONDITIONAL ASSEMBLY PROCESSORS ; ;FORM --- .IF??? EXPRESSION ;.IFZ IF EQ 0 ;.IFG IF GT 0 ;.IFGE IF GE 0 ;.IFL IF LT 0 ;.IFLE IF LE 0 ;.IFNZ IF NE 0 IFPRO: CLR R0 ;PRIME COND TO EVALUATE JSR PC,COND ;THE EXPRESSION TST RESULT ;TEST THE RESULT JMP IF000 (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 ;NE    ; BBINIT PROVIDES DIRECT    ; SUPPORT EBBUF: SUBR09: JSR PC, SAVREG ; CALL SAVE REGISTERS  MOV  #TBBUF,R4  CLR  R0   ; REQUEST REGISTER SETUP  JSR PC, 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"D672G7 FՀh  %& n (   7 Nߓp2|߳t&^  ** PROTECTED F YILE MODIFIED **  & &N & f  tW!' Wn  & , *! $   (f &xbWbH@q.x  bb.lwpDtwx  -RR E AS R ITWRBF- R ROERO CIIS D ; 6100 3 = 10RR E AS R LLFUE BLTAL BOYM S ; 6044 3 = 9 RR E AS R R ROERP FU B ; 6040 3 = 8 RR E AS R LEFIH TCBAE THE INEF DOT NAN C ; 6034 3 = 7 RR E AS R ADREBF- R ROERO CIIS D ; 6030 3 = 6 RR E AS R R ROERD EAFR B ; 6024 3 = 5 RR E AS R R ROERR TEINPR4IFL BR IF010 BLT IF020     ;IFGE BR IF010 BLE IF020     ;IFG BR IF010 BNE IF010     ;IFNZ IF020: INCB DNTACT ;CONDITION NOT SATISFIED TST LISTON ;LISTING SUPPRESSES? BEQ IF010  ;BRANCH IF NO INC LISTKEY ;INCREMENT .IF NESTED COUNTER ;INCREMENT DON'T ASSEMBLE COUNTER. IF010: MOVB #-1,SIZE ;LISTING FORMAT CONTROL JMP EXIT ;EXIT IFPRO2: MOV #2,R0  ;PRIME COND JSR PC,COND  ;NOT TO EVALUATE THE EXPR. MOV  ASSEMBLY LOCATION     ; COUNTER = TBBUF(0,1)  CMP  @R2,#6  ; BUFFER CONTAIN ANYTHING?  BGT  EBBUF2  ; YES, OUTPUT THE BUFFER  BR  EBBUF3  ; INITIALIZE THE BUFFER EBBUF0: NEGB  @R6   ; NEGATE STACKED OBJECT DATA     ; SIZE VALUE, USE THIS AS     ; THE ITERATION INDEX. EBBUF1:  TSTB  RLDFLG  BEQ  EBBUFA  TSTB  @R6  BLT  EBBUF5  BR  EBBUFB EBBUFA: TSTB  @R6   ; IS INDEX STILL NEG4f@LC @(d^hX}._h^hx:(Xh >C!W!^,D8n 2 C D C!D!,j UU2ԐP:8, 74:_hfpl p".^&   1^ x e':<}Tq^$x.x 5555 666666 777777 888888 2, @@ ***** RECORD READ WAS ,AN END-OF-FILE DUMP WAS HALTED ,E IN L ; 6020 3 = 4 RR E AS R UTTPOUN OOF E ; 6014 3 = 3 RR E AS R S.ALONTIDION CEDSTNEY AN MOO T ; 6010 3 = 2 RR E AS R S.CTSE.CY AN MOO T ; 6004 3 = 1 RR E AS R ESOD CORRR E ; AS R ; AS R E BLTAINPOCKHE C ; 7 2 =T KPCH $ 0R0,R4  ;SETUP R4 FOR "OR" CONDITION CLR R2  ;FINAL RESULT GOES IN R2 IFDF00: MOV #IFDF25 ,-(R6) ;STACK THE "OR" OPERATOR IFDF05: JSR PC,ITEM  ;GET NEXT ITEM TSTB ITYPE  ;IS THIS AN OK SYMBOL? IFDF12: JSR PC,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 ;IS SYMBOL DEFINED? BNE IFDF20  ;YES--BRANCH IFDF10: ADD R4,@R6  ;NOT FOUND OR UNDEFINED IN U.S.ATIVE ?  BGE  EBBUF4  ; NOPE, PROCESSING COMPLETED EBBUFB: CMP #42,RLDCNT ; **** TEMP CHECK FOR SIZE **** RAS    ;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: JSR PC,CHECKSUM ; GO COMPUTE CHECKSUM AND PLACE IN BUFF.RAS JMP EBBUF3 ; RETURN HERE * t * B < J8D8 ,Z ܿ5 %  % 5,̴  zE5 ,$M: nrvzk. N wf1b =M:fSYNTAX && ***** ERROR IN TRA,NSFER --- ABORT  NO FILES!  ,"" ***** NOT ENOUGH BUFFElHO 7e: e ABCh#eh}  $ fX/AS R NTOIKPECCHO N ; 0 3 =PTHKNC $ AS R . LEFIP FU B ACKPA- K ACFP B ; 3 4 =K PCBF $ AS R T.ENEMELP FU B ATELEDE- T ELFD B ; 2 4 =T DLBF $ AS R T.ENEMELN PE OANE OSCL- S LOFC B ; 1 4 =S CLBF $ AS R T ENEMELP FU B AENOPRE- N PEFO B ; 0 4 =N OPBF $ ASPRFU BTOINT ENEMELW NEA R TEEN- R NTFE B ; 7 3 =T ENBF $ AS R LEFIP FU B AITIN- T NIFI B,T. IFDF20: JMP @(R6)+  ;PROCESS & HOUSEKEEP THE STACK IFDF25: BIS R4,R2  ;LAST TERM="OR", SYMBOL DEFINED BR IFDF35  ;LAST TERM="OR", SYMBOL UNDEFINED IFDF30: BR IFDF35  ;LAST TERM="AND", SYMBOL DEFINED CLR R2  ;LAST TERM="AND", SYMBOL UNDEFINED IFDF35: MOVB SAVTERM ,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 IF NOT ON BINARY PASS. RAS CMP #10,BINBUF+10 ; RETURN HERE IF ON BINARY PASS. IS THERAS BGE EBBUFF ; BUFF. READY (FULL) FOR OUTPUT? RAS MOV #BINBUF,-(SP) ; YES. PUT ADDRESS ON STACK AND CALL RAS JSR PC,BFWRIT ; ON BFWRIT TO BUFFERER IT FOR DISCIO. RAS EBBUFF: CMP #2,RLDCNT ; HOW ABOUT THE RELOCATION BUFFER? RAS BGE EBBUF3 ; IS IT READY FOR OUTPUT? RAS J1b f  f1b@nw"bff"b&n4.rw$jwjww fTz@[g4@.9mH@imR@m@Tq@[qj@Q.v@@@z(d@@4f@LC @.(> l  ߟn U@l$_ 4n lx f7e~TvJ & S (}.w s   &9mQ  "b; $.  ; 6 3 =T INBF $ AS R . LEFIS ROA E INEF DNTMEGENAMAE IL F ; 1 5 =N FIDE $ AS R N ITY T ; 2. 1 =N YITT $ AS R UT OTY T ; 1. 1 =T YOTT $ AS R R TEINPRE IN L ; 1. 2 =T RNLP $ AS R ERADRED AR C ; 0. 2 =D EACR $ AS R E IM THE TET G ; 5. 2 =E IMGT $ AS R (  ;IS IT "!"? BEQ IFDF65  ;YES--BRANCH BR IFDF45  ;ERROR--ILLEGAL TERMINATOR IFDF40: TST (R6)+  ;REMOVE STACKED OPERATOR IFDF45: INCB QERROR  ;ERRORED SYMBOL OR ILLEGAL CLR R2  ;TERMINATOR (DEFAULT=UNDEFINED) IFDF50: TST R2  ;CHECK RESULT JMP IFDF55 (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  ;SR PC,OUTBIN ; YES. DO IT. RAS EBBUF3:  MOV  R5,R0  JSR PC, BBINIT ; CALL BINARY BUFFER INITIALIZATION  TSTB  BINOUT  ; GENERATE THE EOT ?  BEQ  EBBUF7 EBBUFC:  TSTB  RLDFLG  BNE  EBBUF4  BR  EBBUFA EBBUF7: ; RAS EBBUF4: TST  (R6)+  ; MAINTAIN THE STACK POINTER  JSR PC, POPREG ; CALL SET REGISTERS AND RETURN EBBUF5:  INC  @R5 EBBU-&&    .  J &^ xty uEW! W! 3W! W! RW!` SA9/]  s.B E@pM3     @f:  .h3 M0:,@ % @  ~@rX,~@~%@\!42}s:7,ڀ s: :@@ E AT DHE TET G ; 6. 2 =E ATGD $ AS R O CIIS D ; 9. 1 =O SIDI $ AS R T XI E ; . 4 = ITEX $ AS R RYNABIO TIISC A ; 5. 1 =N CBAS $ AS R IISC ATOY ARIN B ; 4. 1 =S NABI $ AS R 0 D5RAO TIISC A ; 8. 3 =K DPRA $ AS R I CIASO T50AD R ; $PERFORM AND BEQ IFDF70  ;OPERATION IF .IFNDF BR IFDF00 ;AND OPERATOR ENCOUNTERED IFDF60: TST R1  ;PERFORM INCLUSIVE OR BEQ IFDF00  ;OPERATION IF .IFNDF IFDF70: MOV #IFDF30 ,-(R6) ;STACK "AND" OPERATOR BR IFDF05 .PAGE PAL ;.ENDC PROCESSOR RENDC: DECB CNSTLV ;DECREMENT NESTED LEVEL COUNTER BGE ENDC01 ;TOO MANY .ENDC'S? INCB QERROR ;YES - SET QUESTIONABLE SYNTAX CLRB CNSTF8:   ; BUFFER ONE OBJECT DATA BYTE  INC  @R2   ; INCREMENT BLOCKS BYTE COUNT     ; LOCATION COUNTER  INCB  @R6   ; INCREMENT THE STACKED SIZE  MOVB  @R4,(R1)+  ; BUFFER THE OBJECT DATA BYTE  MOVB  (R4)+,-(R6)  ; ADD THE OBJECT DATA BYTE TO  ADD  (R6)+,@R3  ; THE BLOCKS CHECKSUM  BR  EBBUF1  ; CONTINUE ENTERING PROCESS .PAGE PAL ;THIS SUBR = 7D5  e, 5$ $HZV& pe$>_ y F:mmfSz.& 3s lM0 x  $_.LM ,? OX OXOX%Y,[q`"r@ r @r r ,sssw w@w 4 W<35;Ap_MQYe Ye&Ye.+' & -I & 9. 3 =N DURA $ AS R ESATQU EMT E ; AS R ;7 22  =  G FLST R6  =  D ENBJ O0 00 2  = IRMDSY 2  = NDDEGS 0014  =  D CMRN T0 45  =  G FLSC C0 41  =  G FLSC A1  =  D CMSD G1 36  =  Z FSTH S4 62 7  = S2AB 017412  =  1 BS A0  = L2RE 0  = L1RE S RA ; LV ;AND CLEAR NEST LEVEL COUNTER ENDC01: TSTB DNTACT BEQ IF010 ;IN DON'T ASSEMBLE STATE? DECB DNTACT ;YES - DECREMENT THE COUNTER BNE IF010 TST LISTON ; DON'T PRINT THE '.ENDC' ONLY IF IN PAL BEQ IF010 ; .NLIST MODE. PAL MOV #-1,LISTKEY BR IF010 ;EXIT .PAGE PAL ;CONDITIONALS FRONT END PROCESSOR (.IF...)  ;IF R0 = 0INITIALIZES THE RLD BUFFER HEADER RLDINT: MOV R1,-(SP) ; SAVE JUST R1. RAS MOV #RLDCNT,R1 ; GET ADDRESS OF FIRST WORD TO SET. RAS MOV #2,(R1)+ ; SET INITIAL BYTE COUNT. RAS MOV DIRCMD,(R1) ; PUT SPECIFIED CMD IN BLOCK. RAS MOV (SP)+,R1 ; RESTORE R1. RAS RTS PC ; RETURN TO CALLER. RAS M b;   .  CNU3  N(S. T T2; NfN z@ z@ z%@S,Yz z d ,6 @ %@}j@x;1O,\Oz fTzz(x.` xa  zf xz.`D` %ajYDPd a B_MQ Ye.r]Z DwRE /L N .FW S RA . CKTA SSMRAF OZESI; K ACST = IZKSST 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  =  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 ON ENTRY, THEN EVALUATE  ;THE EXPRESSION. AN ERRORED EXPRESSION  ;IS SET TO ZERO BY DEFAULT AS IS A NULL EXPR. COND: SUBR38: INCB CNSTLV ;INCREMENT NEST LEVEL BGT COND00  ;TOO DEEP?    ;NO - BRANCH CLR -(R6) MOV #ERR2,-(R6) JMP ERROUT COND00: TSTB DNTACT ;IN DON'T ASSEMBLE STATE? BEQ COND01 ;NO INCB DNTACT ;YES - INCREASE COUNT TST (R6)+ ;HOUSEKEEP THE STACK JMP IF010 ;LISTING FORMAT CONTROL COND01: TST R0 ;IF C(R0)=0, THEN .PAGE PAL ;THIS SUBR PUTS THE RLD DIRECTIVE INTO THE RLD BUFFER.IT IS CALLED ;BY THE APPROPRIATE ADDRESSING MODE HANDLER.THE CALLING REGISTERS ;ARE SAVED AND DULY RELEASED.THE REG MUST BE INITIALIZED AS FOLLOWS: ;CONTENTS OF R0 =RELREF/RLD COMMAND ; R1=GLB SYM OR CNSTNT ; R2 = '' ; R3 =CNSTNT ; R4 =COUNT OF NO. OF BYTES ABOVE ; ; RLDFIL: SUBR33:  JSR PC, SAVREG  MOVB  ]nK\nK\,@n N\n&X\nHX\n[\n},fނn}n\q%*zdrzxd,p鰼R^Rnr$(v.z3 1e1cfDA5@zecf.D =f_* ) zH.( wtwxww$f #imR (fSz`P QfU%AAaW %eF&&E@ef H  EB &e ! (Mq  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 TEBY . 0 TEBY . . RYDAUNBON VE E A ; 0 TEBY . VEHAT US M -ERFFBUY ARIN BRYRAPOEM T ; 0 TEBY .: UFBB T ENEV . 0 RDWO.: RETOTS ORATICND INGPITYR TEISEG;R 0D OR.W P:TYEG RD OR WUEAL VTSDOF  EVALUATE THE BNE COND04 ;EXPRESSION AND CHECK FOR ERRORS COND02: JSR PC,EXPE3 ;EXPRESSION EVALUATION TSTB ERROR ;WAS THERE AN ERROR? BNE COND03 ;YES TSTB ICOUNT ;IF EXPRESSION WAS NULL, THEN BNE COND04 ;RESULT = 0 BY DEFAULT COND03: CLR RESULT ;YES - RESULT = 0 BY DEFAULT COND04: RTS R7 ;RETURN TO CALLER .PAGE PAL ;RAD50 HANDLER ; ; RRAD50:  MOV  #TMPSYM,SYMBOL JSR RLDCNT,R5  ADD  R4,R5  MOVB  R5,RLDCNT  SUB  R4,R5  ADD  #RLSTRT,R5  MOV  R0,(R5)+  ;FILL IN THE  SUB  #2,R4  BEQ  RLEX  MOV  R1,(R5)+  ;RLD BUFFER  SUB  #2,R4  BEQ  RLEX  MOV  R2,(R5)+  ;CHECK  SUB  #2,R4  BEQ  RLEX  ;IF SO RETURN  MOV  R3,(R5)+  ;TO RLEX: JSR PC,POPREG .PAGE PAL ;RLDBYT THIS HANDLES BYT RLD CMDS ; ; ; RLDmFYe 4(Ye.|5x5 U==\  YeYeYe"&0.pn@ -wwE &7.e| @  s |T. Eo  Jv 5E F\w. w \ wD E F$&& &  ( U `p  .z"w$5wZ@swg& " $ .W ODRAD;0 RDWO.: PCERUS PCN IOCTSEE UTOLBS;A 0D OR.W C:SPAB ONTIUCTRNSCOR BEUM NALIMEC;D 0D OR.W 0:E1AS BN IOCTRUSTON CERMBNUL TAOC;0 RDWO.: 08SEBA S RA E AG/PESIN L #LTAUEF DENSGSY; NELI$N = LNRMNO L PA S.ONTIUCTRNS IRDWOI LTMU; L PAY BEDUS D.TEINPRE IN LSTLAF O #NELI; 0 D OR.W: LNSTLA L PA T.SEREL TIUNT INPRT N'DO1 =+ ; L PAETES RE.IN LISTHT INPRT N'DO1  PC,EVENPC  INCB  RADIX  MOV  #3,CNTCHAR .PAGE PAL RASCII:   ;ASCII HANDLER ASCII2:  MOV  #SUBR11,R4  ; R4 = PROCESSORS ADDRESS  DEC  CURBYTE  ; DECREMENT CURBYTE POINTER  JSR PC, CBTABS  ; ON ENTERING CURBYTE POINTS TO THE ! ASCII0: JSR PC, PRINT ; CALL PRINTABILITY  BLE  ASCII1  ; CHARACTER IS PRINTABLE  INCB  IERROR  ; ILLEGAL CBYT: SUBR37:  JSR PC, SAVREG  MOV  #RLD2.5,RLDIR  MOV  #2,R4  ;FILED COUNT  JSR PC, RELREF  MOV  GLBSY1,R1  MOV  GLBSY2,R2  MOV  RESULT,R3  BISB  #200,R0  ;BYTE OPERAND  MOV  #10,R4  JSR PC, RLDFIL  INCB  RLDFLG JSR PC,POPREG .PAGE PAL ;OUTBIN THIS SUBR OUTPUTS ON THE BINARY DEVICE ; THE CONTENTS OF THE RLD BUF ;; ; ; OUTBIN: JSR PC S RA ; T ARST ND.E 732/5/ . ERODSLROP UM DHE TOLFO; 0 20.+.= 3 /7274/ =- ; L PA NELIT INPR0 = ; L PA H TCWI SNTRI PNELI; 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) ALCT(OR TEUNCOE AG PVETILAMUCU;0 RDWO.: NTGCPA S)NELI. 52 (GEPAE ON;  O ULOD M),ALCT(OR TEUNCOE IN;L 0D OR.W G:INAG PE LUVAHARACTER  INC  CURBYTE  ; REJECT THIS CHARACTER  BR  ASCII0  ; TRY THE NEXT CHARACTER ASCII1: MOVB  @CURBYTE ,R3  ; R3 = VARIABLE TERMINATOR  CMPB  #40,R3  BEQ  ASCII3  BIS  #006400,R3  ; R3 = CAR-RET TERMINATOR  MOV  #SAVTERM,R2  ; R2 = EFF. VALUES ADDRESS  MOVB  R3,@R2  ; SAVTERM = INITIAL TERMINATOR  INC  CURBYTE  ; INCREMENT CURBYTE POINTER  CMPB  @CURBYTE ,R3 ASCII3: BEQ ASCI,SAVREG ; SAVE REGISTERS R1-R5 RAS MOV #RLDCNT,R1 ; GET ADDRESS OF # BYTES IN BLOCK INTOR1RAS MOV R1,R4 ; & R4 (INCLUDES BINARY FLAG WORD OF 1) RAS ADD #4,(R1) ; COUNT FLAG WRD & BYTE COUNT WORD. RAS MOV (R1),R5 ; GET BYTE COUNT INTO R5. RAS ADD R5,R4 ; CONVERT R4 TO ADD. OF CHECKSUM. RAS CMPB -(R4),-(R4) ; MUST SUB 2 FOR CORRECT ADD M AS ROFD EN; : NDSERA S RA ; N VE.E S RA . ERFFBUE RVSERE; Z SISR+DIZRSDS.+.=: UFRBDS S RA R FENSRA TTOS RDWO# ; IZRSDS D OR.W S RA. ERSFANTRT ARSTO TD.AD. EC SVETILARE; 0 D OR.W: ECRSDS S RA E USO CIIS DOR FEDRVSERE; 0 0,0, D OR.W S RA D EA=R 0 -ONTINCFU; E IVATITNTUA Q'SEMIT;0 RDWO:.TYTIANQU ORATULUMCC AONSIESPREX;0 RDWO.: LTSURE CKTA SVEBO ASSREDD AST;1 0D OR.W T:BOTK ST USF OOP;T 0D OR.W P:TOSR UE BLTAT ECCS .OFP TO;0 RDWO.: OPNTCO ;; S RA N VE.E 0 TEBY . R:ROER R:ERAX M0  TEBY .: ORRRUE EDNCREFEREL BOYM SEDINEFND U ;  'U  E YT.B 0  E YT.B R:ROER TR ROERN IOATNCRU T ;  'T  E YT.B 0  E YT.B R:ROER NR ROERR BEUM N ; I4 ; RAS  SWAB  R3  CMPB  @CURBYTE ,R3 BEQ ASCII4 ; RAS  SWAB  R3  MOV  #177000,R1  ; R1 = 177000  BR  BYTE1  ; COMPLETE INITIALIZATION RWORD:   ; WORD ASSEMBLY DIRECTIVE HANDLER  MOV  #177401,R1  ; R1 = -1/+1  JSR PC, EVENPC ; CALL EVEN THE LOCATION COUNTER  BR  BYTE0  ; COMPLETE INITIALIZATION ASCII4: JMP RESS IN R4. RAS BIC #1,R5 ; INSURE FULL WORD TRANSFERED. RAS TST (R5)+ ; ADD 2 TO R5 - COUNTS THE CHECKSUM RAS ; & AND, WITH BIC, ODD BYTE (IF ANY). RAS MOV R5,RLDBUF+4 ; AND STORE INTO BUFFER HEADER. RAS CLR R5 ; CLEAR R5 TO BUILD CHECKSUM IN. RAS OUTB10: MOVB (R1)+,R2 ; GET A BYTE AT A TIME TO ADD TO CHECK- RAS ADD R2,R5 0 E YT.B S RA R TOEC SLEFID IEIFECSPE US; 0 E YT.B S RA IDE IL FUPBF; E ILBF D OR.W: ATRDDS 3 /7264/ ; 0 0, D OR.W S RA S ESDRADR FEUF BTADA; ATRDDS D OR.W S RA D OR WEMSTSY; 0 D OR.W S RA USATSTR ROER; 0 D OR.W: RRREDS S RA  'N  E YT.B 0  E YT.B R:ROER IR ROERR TEACARCHL GALEIL;   I ' TEBY .  0 TEBY .: ORRRBE ORRR ENGDIUNBO;   B ' TEBY .  0 TEBY .: ORRRME ELAB LEDINEF DLYIPLTMU;   M ' TEBY .  0 TEBY .: ORRRDE EDNCREFEREN IOITINEF DLEUBDO;   D ' TEBY .  0 TEBY .: ORRRRE ORRR EERSTGIRE;   R ' TEBY .  S RA ; 0 E YT.B: ORRRZE S RA STNEL NAIOITNDCOA N IND.E; ASCIIX ; RAS .PAGE PAL RBYTE:   ; BYTE ASSEMBLY DIRECTIVE HANDLER  CLR  R1   ; R1 = 0 BYTE0:  MOV  #SUBR1B,R4  ; R4 = PROCESSORS ADDRESS  MOV  #0,R3  ; R3 = THE FOLLOWING TWO .  =  .-2   ; ENCODED TERMINATORS:  .BYTE  TCCCRE,TCCSMC ; CAR-RET, SEMICOLON  MOV  #RESULT,R2  ; R2 = EFF. VALUES ADDRESS  MOV  R3 ; SUM. RAS CMP R1,R4 ; HAS ENTIRE BLOCK BEEN DONE? RAS BLT OUTB10 ; NO. RAS COM R5 ; YES COMPLEMENT CHECKSUM - FLAG WORD RAS MOVB R5,(R4)+ ; OF 1 IS THUS CONSIDERED. STORE CHECK-RAS CLRB (R4) ; SUM. ALWAYS ROOM TO BLANK NEXT WRD RAS ; THIS WILL INSURE A FULL WORD TRA . TYRIIOPRK IS DSTWELO; T1PRND E YT.B S RA K AS TORRR ENO; 0 E YT.B S RA E INUTROT XI ENO; 0 D OR.W S RA E YP TITEX; 2 E YT.B S RA K)IS=D(1E OD CCEVIDE; 1 E YT.B S RA D OR WADRETH; 1 D OR.W: STRLDS 3 /7264/ ;  'Z E YT.B 0 TEBY .: ORRRAE ORRR ENGSIESDRAD;   A ' TEBY .  0 TEBY .: ORRRQE AXNTSYE BLNAIOSTUE Q ;  'Q  E YT.B 0  E YT.B R:ROER PR ROERE ASPH;   P ' TEBY .  0 TEBY .: ORRRLE OWFLEROVR FEUF BNELIT PUIN;   L ' TEBY .  E)YT BGHHI (ORATICND IORRR E ;     E)YT BW LO (ERCTRAHA CIISC A ;     :ESRINT ERDWOE GLIN S ;     LEAB TORRR ELYMBSEAS;   B:TARR E AL P ,R0 BYTE1:  ADD  #000401,R1  ; R1 = R1 + +1/+1  DECB  SIZE .PAGE PAL  ; 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  ; RNSFER RAS MOV #RLDBUF,-(SP) ; STACK ADDRESS OF BUFFER HEADER. RAS JSR PC,BFWRIT ; VIA BFWRIT WHICH BUFFERS TO DISCIO. RAS JSR PC,POPREG ; RESTORE REGISTERS AND RETURN TO CALLERRAS .PAGE PAL   ; SUBROUTINE BINARY BUFFER INITIALIZATION    ; INPUT R0 = 0, SIMPLY SET-UP    ; OUTPUT SET-UP AND BINBUF ZEROED BBINIT: SUBR00: MOV  USERPC,R5  ; NDOU.B S RA R TOEC SSKDIN IDSOR WOF# ; . 64 = IZRSDS S RA. D)EA ROT=N(0. ADRED OR WOLTRON CSTLA; 0 D OR.W: RDNWCO S RA. SE UTOR FEUF BSKDIN ITEBYT EX NOF# ; 0 D OR.W: YTRBDS S RA R FEUF BTADAD ANT IS LIOSCDI; S RA F.UFSTR ROERO DGO; 90R0BF BR S RA K ACSTN ODECOR ROERT PU; ) SP-(6,RR#E V MO S RA  GEPA . R SOESOCPRC NIMONE MHE TITEX;  T XIEP JM  RDWOD ANMMCO= ) (0UFBB T ; UFBB,T)+R6 ( OV M: 3XINMA R3 @ CBIN 2 E+IZ S =ZESI;   3 @R  B NC I: 3WINMA RDWOD ANOM CHE TTOIN;     S IT BNGSIESDRADE THE ACPL;  6 @R5,@R  S BI V:N3AI M0 = ) ,3(2UFBB T ;  +2UFBB T LR C: 3UINMA 0 =5)4,F(BUTB;  4 F+BUTB  LR C  4 =ZESI;  3 @R4, # VBMO S DEMOE ATDIMEIMO TWE US; 5 = SAVTERM ADDRESS  JSR PC, DATERM ; CALL DATA TERMINATION  BNE  DAT00 ;NOT DATA TERMINATOR.  TSTB  ITEMIN  ; IS AN ITEM PENDING ?  BNE  DAT00  ; YES DAT0:  INCB  QERROR  ; NO, QUESTIONABLE SYNTAX  JMP  EXIT  ; 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  R5 = THE ADDRESS OF THE     ; ASSEMBLY LOCATION COUNTER  MOV  #BOCSUM,R3  ; R3 = THE ADDRESS OF THE     ; BINARY OUTPUT'S CHECKSUM  MOV  #BINBUF+10,R2 ; R2 = THE ADDRESS OF THE     ; BINARY BLOCKS BYTE COUNT  MOV  #BINBUF+6,R1 ; R1 = THE ADDRESS OF THE     ; BUFFERS FIRST DATA BYTE  MOV  #MAXBBA,-(R6) ; STACK THE BINARY BUFFERS     ; MAXIMUM ADDRESS  TST  R0   ; SETUP ONLY OR BUFFER CKTA SONE LUVAR ROERT PUR-ROER; P)(S,-RRREDS V MO: 10TSGE S RA RNTURE; PC S RT S RAR.FENSRA TXTNER FOO ER ZTEBYO TR3T SE; R3 R CL S RASSREDD AORCTSEE IVATEL RNTMERENC I. OK; ECRSDS C IN S RA E.ONT GO; 10TSGE E BN S RA RSROERR FOK ECCH; RRREDS T TS S RA N)AIAGE BLTAINPOCKHE CBEN CA( ;     D ANMMCOT ULFADET UCTRNSCO;  5 @R7,72#2  V MO X TAYN SLEABONTIESQU;  R ROER Q CBIN D UNFOS LDIE FWO TOT N ;     EDERNTOUNC EDSELFIO TW;  V N3AI M GT B  ERYZALANX TAYN SLLCA; AXNTSY , PC SR J  EDSSCERO PCSNIMONE MRYNABI;  2:NCAI M AL P GEPA . 1 NCAI M BR N MITE I CBIN 1 NCAI M LE B  EMIT , PC SR J  3LINMA  E BN E YTRBCU,@', # PBCM  @R6   ; WORD DIRECTIVE ?  BNE  DATB7  ;NO  TSTB  RSLMOD  ;YES (0 IN LOW ORDER BYTE)  BEQ  DATA00  ;ABSOLUTE EXPRESSION BLT DATB14  ;.GLOBL OR EXTERNAL    ;.CSECT EXPRESSION ;RELOCATABLE EXPRESSION CURRENT .CSECT JSR PC,SAVREG MOV #2,R4 MOV #RLD2.1,RLDIR ;INTERNAL RELOCATION JSR PC,RELREF MOV RESULT ,R1 MOV #4,R4 BR DATB13 ;.GLOBL OR EXTERNAL .CSECT EXPRESSION DATB14: JSR PC,SAVREG MOV #RLD2.5,RLDIR ;G     ; INITIALIZATION ALSO ?  BEQ  BBIN01  ; SETUP ONLY  MOV  #RLDCMD,DIRCMD  JSR PC, RLDINT    ; BINARY BUFFER INITIALIZATION  MOV  #BINBUF,R0  ; R0 = THE ADDRESS OF THE     ; BINARY BUFFERS HEADER  MOV  #BOMBC,(R0)+ ; SET THE MAX. BYTE COUNT CLR (R0)+ ; CLEAR WORD 2 RAS  MOV  #1,(R0)+  ; CURRENT BYTE COUNT = 1  MOV  #1,(R0)+  ; FIRST DATA WORD = 1 PTHK$C T EM S RA . 2PETYT XI-EIOSCDIE US; IOIS$D T EM S RA O)I/G INUR DNTOIKPECCHO (N ; T KPCH$N T EM S RA CKTA SONT IS L/O IIOSCDIT PU; ) SP-(T,LSSR#D V MO: ECTSGE S RA ; S RA . ERLLCAE THO TRNTURED AN, RSROERR FOK ECCH, SSREDD AORCTSEE TH; S RA T ENEMCRIN, LEFIP FU BHE TOMFRR TOEC S AADRED SE UISE INUTROUB SISTH; S RA  6 @R4,@R  S BI 4 @R  R AS 4 @R  R AS S TEBYS T'ULES RAPSW;   4 @R  B WA S  CEORRF , PC SR J: 3RINMA ORRRQE  B NC I  3RINMA  T BG 2 PEEX , PC SR J  R0  R CL G INSSCERO PICONEMMNR JS;  Q:N3AI M AL P GEPA . D OR WNDMACOE TH;     G INCTRUSTON CTELEMPCO;     D OR WCTJEOBT EX NHE TARLE C ; 3UINMA  R B  DSOR W 2TOE IZ SZEMIXIMA;  3 @R2, # VBMOLOBL ADDITIVE RELOCATION CMPB #-1,RSLMOD BEQ DATB15  ;GLOBL EXPRESSION MOV #RLD4.3,RLDIR ;.CSECT ADDITIVE RELOCATION DATB15: MOV #2,R4 JSR PC,RELREF MOV RESULT ,R3 MOV #10,R4 MOV GLBSY1 ,R1 ;.GLOBL OR MOV GLBSY2 ,R2 ;.CSECT NAME DATB13:  JSR PC, RLDFIL  INCB  RLDFLG  JSR PC, SETREG  BR  DATA00 DATB7:  MOVB  +1(R2),TERROR ; TERROR = HIGH ORDER BYTE  BEQ  DATA00  ; ZERO VALID VALUE  INCB  TE  MOV  #10,(R0)+  ; BLOCKS BYTE COUNT = 6  MOV  #TXTDIR,(R0)+  MOV  @R5,(R0)+  ; THIRD DATA WORD =     ; BLOCKS LOAD ADDRESS BBIN00: CLRB  (R0)+  ; ZERO THE BINARY BUFFER  CMP  R0,@R6  ; IS THE BUFFER CLEARED ?  BLT  BBIN00  ; NOPE, CONTINUE CLEARING  MOVB  1(R5),@R3  ; CHECKSUM INITIALIZATION  ADD  @R5,@R3  ; ADD THE LOAD ADDRESS BYTES  ADD  #4,@R3 BBIN01: ADD  @R2,R1  ; R1 = THE ; S RA F.UFSTR ROERO DGO; UTROER P JM: 90R0BF S RA K.ACSTN ODECOR ROERT PU; ) SP-(5,RR#E V MO S RA . UEAL VORRR EINE IN LINS TEBY #VESA; P)(S,-R5 V MO: 80R0BF S RA . UPH ISIN FGO; 50R0BF BR S RA D.TEECET DNTMELE EOFF EOF IREHE; OFCESR CBIN: 70R0BF S RA . ERLLCAO TRNTURE;  E OD MTEIAEDMM ICTREDIIN;  5 @R7,#3  V MO X TAYN SLEABONTIESQU;  R ROER Q CBIN L:N3AI MD RETEUNCOEND ELFIE ON;  V N3AI M EQ B  ERYZALANX TAYN SHE TLLCA; AXNTSY , PC SR J  EDSSCERO PCSNIMONE MRYNA U ; : C1INMA L PA E AG.P NGSIESOCPRD ANOM CTELEMPCO;  W N3AI M BR D OR WNDMACOE THN HIIT W ;     LDIE FERSTGIREE THT SE;  6 @R4,@R  B IS B: 3HINMA CEOR FERSTGIRROR  ; TERROR = TERROR+1     ; NEGATIVE ONE VALID VALUE DATA00: SWAB @R6   ; RESTORE STACKED VALUE CMP #401,@R6 BNE DATB8 TSTB RSLMOD  ;.BYTE DIRECTIVE BEQ DATB8 CMPB #-1,RSLMOD BEQ DATB10   ;.GLOBL INCB AERROR BR DATB8 DATB10: JSR PC,RLDBYT DATB8: MOV R3,R0   ; DIRECTIVE TERMINATED? DATA8: JSR PC,DATERM   ; CALL DATA TERMINATION BNE DATA1   ; NOPE DATB1: TSTB RADIX  ;RADIX HANDLING BEQ DATA0  ADDRESS OF THE     ; FIRST AVAILABLE BUFFER BYTE  MOV  (R6)+,R0  ; R0 = THE MAXIMUM BINARY     ; BUFFERS ADDRESS  RTS  R7  ; RETURN .PAGE PAL ;RELREF THIS SUBROUTINE CALCULATES THEVALUE OF THE REL REF FROM ;THE BASE OF THE TEXT BLOCK I.E. TEXT DIR IS 0.R4 IS EXPECTED TO ;CONTAIN THE FILED CNT,R0 THE CMND DIR AND REL REF. RELREF: SUBR34:  MOVB  BINCNT,R0  SUB  #6,R0  ADD  PC S RT S RA D.ADT IS LOFP TON OD.ADN URET RMPBU; P)(S+,P)(S V MO S RA 5 -RR1E ORSTRE; G REET,SPC R JS S RA . ENTHR TOEC SUPK IC PLLWIR VE OIF; S RA L.AL CXTNER FOR TEINPOE YT BVESA; T BYSR,DR3 V MO S RA . ERNTOI PERFFBUK IS DTO2 D AD; + 3)(R T TS S RA. D)OR W AINS AYLW(AD OR WOLTRON CET GD;WRON,C3)(RUFRBDS V MO: 60R0BF S RA REL AL C ; E RCFO R C,PR JS G:N3AI MX TAYN SLEABONTIESQU;  R ROER Q CBIN D TEXI EONSIESPREXD OI-VON N ; 3GINMA  T BG N URET RALIMIN M ;N,IOSSREXP ELLCA; 3 PEEX , PC SR J  0 =R0;   0 R LR C  NGSIESOCPRC NIMONE MTS R ; : 3FINMA L PA E AG.P 5DECOT ECBJ O; A NCAI M BR N IOATOCEL RVETIDIADL BALO G; T BYLD R C,PR JS : CBINMA RDWOD ANOM CHE TLDUI B ; 3HINMA  R B   ;NO THEN BRANCH DATB2: TST CNTCHAR BEQ DATB3 DATB5: CLRB @SYMBOL DEC CNTCHAR INCB SYMBOL 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 INCB QERROR JMP EXIT     ; THAT ALL .ASCII STATEMENT'S     ; TRAILING TERMINATOR IS     ; FOLLOWED BY EITHER A CAR-RET     ; OR  R4,R0  MOVB  R0,RELCNT  MOV  RLDIR,R0  RTS  R7 .PAGE PAL  ; SUBROUTINE CHECKSUM FINALIZATION    ; BINARY BLOCKS BYTE COUNT VALUE IS    ;  RESTRICTED TO BE AN UNSIGNED BYTE    ;  (8-BIT POSITIVE INTEGER) CHECKSUM: SUBR23: ADD  @R2,@R3  ; SUM THE BLOCKS BYTE COUNT     ; AND THE BLOCKS CHECKSUM  NEG  @R3   ; 2'S COMPLEMENT THE CHECKSUM MOVB R TOEC S AET G. NO; C SEET,GPC R JS S RA S YE; 60R0BF T BL S RA ? RECON IRDWOL RONTCOT EX NZ;SISR+DIZRSDS,#R3 P CM: 50R0BF S RA D.TEAN WREMO; 30R0BF T BG S RA . GOO TFTLE# - E ER HSOAL; R5 C DE S RA . ITT UNCO; R3 C IN S RA E.YT B AERSFANTRY LLNAFI; )+R1,(3)(RUFRBDS ORRR EONTICAUNTRS ET S ;     TEBYR DEOR;      GHHIS T'ULES R ; ORRRTE , 1 T+ULES R VBMO A:NCAI M R ROER A CBIN  BLLO.G;  CBINMA  Q BE D MOSL,R-1#B MPC A NCAI M EQ B  ODLMRS  B ST T C:N3AI M0 = T ULES R ;  R4 @ LR C  ORRR EERSTGIRET SE, ES Y ;  ORRRRE  B NC I  PENO;  C N3AI M EQ B  ?ERSTGIRED PETYN IOSSREXP E ;  PETYEG R ST T  ORATINRMTEL MANIMI; N,IOSSREXP ELLCA; 3 PEEX , PC A SEMICOLON. IF NOT, A     ; BLANK LINE IS PRINTED WITH     ; A'Q' ERROR CODE AND THE     ; DIRECTIVE IS TERMINATED. ; BGE DATA1   ; NO, AVOID CHECK ; JSR PC,CBTABS   ; CALL CHECK FOR BLANKS AND TABS ; CMPB #CR,@CURBYTE ; THIS CHARACTER A CAR-RET? ; BEQ DATA2   ; YES, VALID CASE SO EXIT ; CMPB #';,@CURBYTE ; THIS CHARACTER A SEMICOLON? ; BEQ DATA2   ; YES, VALID CASE SO EXIT ; INCB QERROR  ; NEITHER, QUESTIONABLE SYNTAX ; COMB @R6  (R3),(R1)+ ; PUT CHECKSUM INTO BUFFER. ALWAYS ROOMRAS CLRB (R1) ; TO BLANK NEXT BYTE. RAS  MOV  @R2,BINBUF+4 ; FINALIZE THE BINARY OUTPUT     ; HEADERS CURRENT BYTE COUNT ADD #2,BINBUF+4 ; INSURE FULL WORD TRANSFERED AFTER RAS BIC #1,BINBUF+4 ; COUNTING CHECKSUM. RAS  CMPB  PASS,BOPASS  ; IS THIS THE BO PASS ?  BNE  CHECK0   ; NO  ADD  #4,@R6VBMO: 40R0BF S RA R.TOEC SERTHNO AET G. NO; C SEET,GPC R JS S RA S.YE; 40R0BF T BL S RA E?OM CTOE OR MNY AZ;SISR+DIZRSDS,#R3 P CM: 30R0BF S RACHT RSFI1= RND AEDERSFANTRS TEBY# T SE; )+R1,(R5 V MO S RA T UNCOE YT BTOS NTOI POW NR1; + 1)(R T TS S RA . ORRR E. NO; 80R0BF T BG S RA R FEUF BINSR J  0 =R0;   0 R LR C  NGSIESOCPRC NIMONE MAPTR;  A:N3AI M AL P GEPA . 1 = E IZ SET S ; 3WINMA  R B  ORRR EQ' 'ET SO, N ;  ORRRQE  B NC I  ITEX, ES Y ; 3WINMA  Q BE ? ET-RAR CORATINRMTE; 4 #- , M ERVTSA  B MP C  ITEX, ES Y ; 3WINMA  Q BE ? N LOCOMISER TONAMIER T ; -5,# RMTEAV S PBCM G INSSCERO PARULNGSI   ;   I RT, LTHA, ITWA, ESAT!  ; SET SIZE < 0 DATA1:  TSTB  RADIX  BEQ  DATB4 RADB4:  SWAB  R0  ; THIS PORTION  MOVB  @CURBYTE ,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  "  ; YES, R5 = R5+2 CHECK0:  RTS  R7 ; RETURN .PAGE RAS ; THIS SUBROUTINE BUFFERS REQUESTS FOR BFUP ELEMENT WRITES BETWEEN RAS ; A SECTOR SIZED BUFFER FOR THE DISK AND THE VARIABLE LENGTH USER RAS ; I/O LINE BUFFER. IT IS ASSUMMED THAT THE ROS FILE HAS BEEN ALLOCATED RAS ; AND THAT THE NECESSARY BFUP ROUTINES USED TO OBTAIN THE CORRECT RAS ; RELATIVE SECTOR. M OO RREHE TIS; )+R1,(R5 P CM: 20R0BF S RA D.OR WOLTRON CHE TSSCERO PGO; 10R0BF BR S RA . RDWOL RONTCOO TR5T SE; 5 ,RUFRBDS V MO S RA . S)AYLW(A2 #TEBYO TR3T SE; 3 ,R#2 V MO S RA . ORCTSET RSFIT GE; C SEET,GPC R JS S RA . ERSFANTRO TESYT BOF# S HA; 20R0BF T BG S RA ).ET SIT BGNSI (OF EAT; 70R0BF I BM: EROPE OD CONTIDION C ; : C0INMA L PA E AG.P NGSIESOCPRD ANOM CALIN F ; 3HINMA  R B  ORRR ENGSIESDRAD, PENO;  1 N3AI M NE B  ?R0= T ULES R ; R04,@R  P CM 0 RINN IG SESYT BTEGAPARO P ; R04,@R  B OV M  DD OIFR ROERG INSSREDD A ; 31INMA  S BC T BI1-T GHRIT ULES RFTHI S ;  R4 @ SR A  -2LTSURE= T ULES R ; R4,@#2  B SU . PCS R'SE-ULTSURET=ULES R ; R4,@ % R3  BR  RAD03 RAD06:  CMPB  R3,#'A  BLT  RADERR  CMPB  R3,#'Z  BLE  RAD03  CMPB  R3,#141  BLT  RADERR  CMPB  R3,#172  BGT  RADERR  BICB  #40,R3  MOVB  R3,@CURBYTE RAD03:  BIC  #177700,R3  MOVB  R3,@SYMBOL  INC SYMBOL  BR  DATB6 RADERR: INCB  QERROR  BR  DATB2 DATB6:  INCB  CURBYTE  MOV  CURBYTE ,R5  DEC  CNTCHAR  BNE  DATA8 DATB3:  MOV  #TMPSYM,R1  & RAS ; THE INPUT BUFFER IS ASSUMMED TO BE IN STANDARD DOS FORMAT. RAS ; REGISTERS R1-R5 ARE USED AND RESTORED. RAS ; WHEN A DISK SECTOR SIZE BUFFER IS FULL, IT WILL BE OUTPUT USING EXIT RAS ; TYPE 2. UPON COMPLETION, THE ERROR STATUS WILL BE CHECKED. IF RAS ; NORMAL, ANY REMAINING CHARACTERS WILL BE TRANSFERED TO THE DISK RAS ; BUFFER AND CONTROL RETURNED TO THE CALLER. NO MODIFICATIONS TO RAS ; THE USER'S CHARACTER STRING 10R0BF S RA . R5O NT IRDWOL RONTCOT SE; 5 ,RRDNWCO V MO S RA . ERSFANTRO TTEBYT EX NOF# T SE; 3 ,RYTRBDS V MO S RA SSREDD AERFFBUS ERUST GE; R1),SP.(12 V MO S RA . R21- RRSTOISEG RVESA; G REAV,SPC R JS S RA ; =. ADREBF S RA ; S RA PCERUS @ UB S: 33INMA ERNTOU CC.LOY BLEMSS AOF;     31INMA  E BN ;  D MOEC S TBTS : BRINMA E.ACPLE AK T ; 33INMA  R B  OT NESDOG INCHANBR;  1 N3AI M LT B  ALEGLL IATTH;  R NBAI M EQ B  ESURNS E ;  ODLMRS  B ST T 2:N3AI MH N3AI M BR 4 @R1,#- VBMO  ORRR ENGSIESDRADT SE;  R ROER A CBIN 1:N3AI MD RETEUNCOENN IOSSREXP EIDVO;     D UNFON IOSSREXP EIDVON-NO;  2 N3AI M GT) ;INITIALIZE ADDRESS JSR PC,SERCHB ; FOR CONVERSION  MOV  #TMPSYM+1,R2  MOV  #SETSRC+2,R1  MOV  #2,SIZE  BR  DATB9 DATB4:  MOV  @R6,SIZE DATB9:  MOV  @R2,TBBUF  CLRB  RADIX ASCIIY:  JSR PC, ENDLINE ; CALL END LINE DATA98: CMP LPLIST,#1 ; IS ALL LISTING DONE? RAS BNE DATA98 ; WAIT HERE UNTIL IT IS. RAS DATB99: SUB #LINUSZ+6,CURLIST ; GET POINTER *WILL BE DONE. ONLY ONE USER MAY USE RAS ; BFWRIT AT ANY ONE TIME DUE TO ITS SINGLE DISK BUFFER. RAS ; THE ADDRESS OF THE USER'S BUFFER IS PASSED ON THE STACK. RAS ; RAS BFWRIT =. ; ENTRY POINT RAS JSR PC,SAVREG ; SAVE REGISTERS R1-R5 RAS MOV 12.(SP),R1 ; GET ADDRESS OF USER'S BUFFER HEADER. D.RETOES RND AEDUSE AR5 -RR1S ORSTGIRE; S RA . ADREBFG INLLCAE OREF BC'SESR'DO NT IEDACPLS IORCTSE; S RA VETILAREE TH T. AERSFANTRE THN GIBEO TORCTSEE THT ECEL STO; S RA NEDON EE BVEHAS ONTIRAPE OUPBFY ARSSCENEL ALT HA TEDMMSUASS IIT; S RA S.IEARNDOU BORCTSES OSCR ANDTEEX; S RA AY MESIN L. F)EO= N OIT BGNSI (AGFLF EOE THD AND OREC RHE TIN; S RA ESYT BOF# E THG ININTAON CRDWOL RONTCOA Y BEDITIMEL DISE IN LCHEA; B  ORATINRMTEL MANIMI;     N LOCOMISE, ONSIESPREXL AL C ; E3XP E C,PR JS 0 = 0 R ;  R0  R CL G INSSCERO PICONEMMNH NCRA BALONTIDION C ; : 30INMA L PA E AG.P CSNIMONE M, PC SR J ;  3AINMA  D OR.W 6:SSLA CS ICONEMMN SR J ;  3QINMA  D OR.W 5:SSLA CS ICONEMMN H NCRA B ;  30INMA  D OR.W 4:SSLA CS ICONEMMN TS R ;  -BACK TO OUT BUFF. RAS  INC  CURBYTE  ; INCREMENT CURBYTE POINTER DATA2:  TST  -(R1)  ; R1 = R1-2  RTS  R1  ; REITERATE SUBROUTINE .PAGE PAL ; DIRECT ASSIGNMENT STATEMENT PROCESSING  ; THIS SUBROUTINE RESOLVES THE FOLLOWING THREE DIRECT  ; ASSIGNMENT SITUATIONS:  ; 1) USER'S SYMBOLIC ASSIGNMENTS  ; 2) SYMBOLIC REGISTER ASSIGNMENTS  ; 3) ASSEMBLY LOCATION COUNTER ASSIGNMENTS .RAS CMP (R1)+,(R1)+ ; ADD 4 TO R1. NOW POINTS TO ACT BYTESRAS MOV (R1)+,R2 ; R2 HAS # BYTES TO TRANSFER RAS MOV R2,R4 ; SET ADD OF LAST BYTE TO TRANSFER RAS ADD R1,R4 ; INTO R4 (ACTUALLY LAST BYTE + 1). RAS MOV DSWBYT,R3 ; INITIALIZE THE CURRENT BUFFER BYTE PT.RAS BFW010: CMP R3,#DSWSIZ+DSWSIZ;BUFFER. ANY MORE ROOM (R3<128.). RAS BGE BFW040 ; NO S RA E.IN LLENGSIA R SE UHE TTOK IS DHE TOMFRS ERSFANTRE INUTROUB SISTH; S RA E AG.P S RA ; N VE.E S RA . ERFFBUK IS DOR FOMROE RVSERE; Z SISW+DIZWSDS.+.=: UFWBDS S RA R FENSRA TTOS RDWOF OERMBNU; IZWSDS D OR.W S RA ERSFANTRT ARSTO TD.AD. EC SVETILARE; 0 D OR.W: ECWSDS S RA E USO CIIS DOR FEDRVSE 3FINMA  D OR.W 3:SSLA CS ICONEMMN Y ARIN B ;  C2INMA  D OR.W 2:SSLA CS ICONEMMN RYNA U ;  C1INMA  D OR.W 1:SSLA CS ICONEMMN TERAPE O ;  C0INMA  D OR.W 0:SSLA CE BLTAP UM JNGSIASCLN IOATEROP;  : SSLAPC OS ASCLN IOATEROPT ECEL S ; ) R0 ( S ASCLOP @ MP J  EXND ISSLA-COP= 0 R ; R0 , S ASCL I VBMO S ESDRAD) (0UFBB=TR2;  2 ,RUFBB#T  V MO 0 E=IZ S ;  R3 @ RBCL S ESDRADE 1   ; 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 DEFINING THE ASSEMBLY LOCATION   ; COUNTER, UPON BEING ENCOUNTERED, M2. GO OUTPUT A BUFFER FULL. RAS BFW020: MOVB (R1)+,DSWBUF(R3); YES. TRANSFER THE BYTE RAS INC R3 ; COUNT IT. RAS CMP R1,R4 ; ANY MORE TO TRANSFER? RAS BLT BFW010 ; YES. RAS MOV R3,DSWBYT ; NO. FINISH UP AND RETURN. SAVE BYTE#RAS JSR PC,SETREG ; RESTOR REGISTERS R1-R4. RAS RE; 0 0,0, D OR.W S RA K ECCHE ITWRH IT WTERI W -ONTINCFU; 3 E YT.B S RA R TOEC SLEFID IEIFECSPE US; 0 E YT.B S RA IDE IL FUPBF; E ILBF D OR.W: ATWDDS 3 /7264/ ; 0 0, D OR.W S RA . ERFFBUA AT DOFS ESDRAD; ATWDDS D OR.W S RA D OR WEMSTSY; 0 D OR.W IZ S =R3;  3 ,RZESI # OV M  SSREDD ALTSURE4= R ; R4T,ULES#R  V MO S ESDRADS D'ANOM C =R5;  5 ,RNDMACO # OV M  ERNTOU CONTICALOE THN VE ELLCA; PCENEV , PC SR J  DECOP- OCSNIMOMEK ACST; 6)(R,- TYTIANQU  V MO : DECOOP L PA E AG.P R7 TS R 0:ERAT D0 ,RR5@B MP C  R0 ABSW 0 ERATDQ BE 0 ,RR5@B MP C 4:R2UB S: RMTEDA ONTINAMIER TTADAE INUTROUB S ; 9 N8AI M BR  LEAB TOL5UST BE   ; TOTALLY EVALUATABLE.     ; INPUT SPECIAL SITUATION     ; OUTPUT EXIT ASSIGN:  MOV  TMPSYM+1 ,-(R6) ; SAVE SYMBOLS FIRST TRIAD  MOV  TMPSYM+3 ,-(R6) ; SAVE SYMBOL'S SECOND TRIAD  MOV  HINDEX ,-(R6) ; SAVE SYMBOL'S ENTRY ADDRESS  MOV  @R1,-(R6)  ; SAVE SYMBOL'S FLAGS AND .CSECT ID  JSR PC, ITEM ; CALL ITEM  BLE  MAIN16  ; VOID ITEM ENCOUNTERED     ; NON-VOID ITEM ENCOUNTE6 MOV (SP)+,(SP) ; MOVE RETURN ADDRESS ON TOP OFF USER'S RAS RTS PC ; BUFFER ADDRESS AND RETURN. RAS BFW040: CLR R3 ; HERE FOR FULL DISK BUFFER. SET FULL RAS MOV #DSWLST,-(SP) ; BUFFER AVAILABLE, PUT DISCIO LIST ADD.RAS EMT $NCHKPT ; (NO CHECKPOINT DURING I/O) RAS EMT $DISIO ; ON STACK AND CALL DISCIO, EXIT TYPE 2.RAS EMT $CHKPT ; ( S RA ).OK0= (USATSTR ROER; 0 D OR.W: RRWEDS S RA . TYRIIOPRK IS DSTWELO; T1PRND E YT.B S RA K AS TORRR ENO; 0 E YT.B S RA E INUTROT XI ENO; 0 D OR.W S RA E YP TITEX; 2 E YT.B S RA 1)K=IS(DE OD CCEVIDE; 1 E YT.B S RA D OR WADRETHMBSYS R'SE UAYRLVE OLLCA;  Y LAVR O C,PR JS D:N1AI MD NEFIDEL BOYM SISTHG LA F ; R1,@LGFFDE # SBBI C:N1AI MD IONTIEC SG.RO;P 1)(R,1 ODCMSE VBMO  R1,@LGLFRE # SBBI  C N1AI M EQ B  ONSIESPREXT ECCS .ALRNTEEXR OBLLO.G;  7 N8AIMT BL  XP EEL RINI M ;A  D MOSL R TBTS G LA FEDINEF D'SOLMBSYR EACL;  1 @RG,FLEF#D  B IC B: 1BINMA ERCKHE CERSTGIREL AL C ; E RCFO R C,PR JS E OP N ; 1BINMA  Q BE ? R TEISEG REDYP TOLMBSYS I ; 9RED  INCB  ITEMIN  ; SET ITEM PENDING FLAG MAIN16: CLR  R0   ; R0 = 0  JSR PC, EXPE3 ; CALL EXPRESSION, MINIMAL TERMINATOR ;  BGT  MAIN17  ; NON-VOID EXPRESSION FOUND  INCB  QERROR  ; VOID EXPRESSION CONSIDERED     ; AS QUESTIONABLE SYNTAX  INCB  UERROR MAIN17: BISB  REGTYP ,@R6 ; COMBINE THE EXPRESSION'S REG.     ; TYPE WITH THE SYMBOL'S FLAGS  BITB  R2,@R6  ; IS THE SYMBOL T:CAN BE CHECKPOINTABLE AGAIN) RAS INC DSWSEC ; INCREMENT SECTOR COUNT RAS TST DSWERR ; ANY ERRORS? RAS BEQ BFW020 ; NO - CONTINUE TRANSFER. RAS BFERR: MOV DSWERR,-(SP) ; YES - PUT ERROR VALUE RAS MOV #ERR10,-(SP) ; AND CODE ON STACK AND JUMP RAS JMP ERROUT ; TO ERROR HANDLER. RAS ; THIS; 1 D OR.W: STWLDS 3 /7264/ ; NDOU.B S RA . ORCTSEK IS DINS RDWO# ; 4.=6 IZWSDS S RA R.FEUF BSKDIN ITEBYT EX NOF# ; 0 D OR.W: YTWBDS S RA R FEUF BTADAD ANT IS LIOSCDI; S RA RNTURE; PC S RT: 30P0BF S RA. RNTURED AND ADR TOEC SNTMERENC I. NO; ECWSDS C IN S R1,@R2  B IT B: 1AINMA ONTIMAORNF IISTHR TEEN;  C N1AI M BR E LUVAS L'BOYM SVESAL AL C ; L VAAV S C,PR JS N IOATTUSID LIVA, PENO;  A N1AI M NE B  ?EDINEF D ;     LYIPLTMUL BOYM SISTHS I ; 1)(R,1AGFLMD # PBCM D NEFIDEY LLFU ; 89INMA  E BN T NON IOSSREXP;E  R ROER TBTS 9:N1AI MC N1AI M BR : 1TINMA CTSE.CT ENRRCUF OPC. AX MTEDAUP; C RPHI,@ PCERUS @ OV M  1TINMA  S LO B  PCIR@H , C RPSE@U  P CM=YPED 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  ; REGISTER ERROR MAIN18: MOV  (R6)+,@R1  ; RESTORE SYMBOL'S FLAGS AND ID  MOV  (R6)+,HINDEX ; RESTORE SYMBOL'S ENTRY ADDRESS  MOV  (R6)+,TMPSYM+3 ; RESTORE SYMBOL'S SECOND TRIAD  MOV  @R6,TM> SUBROUTINE PADS THE REMAINING BYTES OF THE DISC BUFFER WITH RAS ; ZEROS. THE FULL BUFFER IS THEN WRITTEN OUT AND CONTROL RETURNED TO RAS ; THE USER. RAS ; RAS BFPAD: MOV R0,-(SP) ; SAVE R0. RAS MOV DSWBYT,R0 ; GET # OF FIRST CHARACTER TO BLANK. RAS BEQ BFP030 ; FRESH BUFFER-DRA E DLAN HGOS-YE; R ERBF E BN S RA ? RSROERY AN; RRWEDS T TS S RA N)AIAGE BLTAINPOCKHE CBEN CA( ; PTHK$C T EM S RA . UT OITE ITWR; IOIS$D T EM S RA O)I/G INUR DNTOIKPECCHO (N ; T KPCH$N T EM S RA . CKTA SONO CIIS DOR FDD ASTLIT PU; ) SP-(T,LSSW#D V MO S RA R0E ORSTRE;  T ECCS .NTREUR COFC PTEDAUP; C LPRE,@ LTSURE  V MO T ECCS .INN IOSSREXP ELEABATOCEL ROT;N  87INMA  E BL D MOSL R TBTS N IOCTSEM RAOGPRE UTOLBS;A  1CINMA  Q BE D MOEC S TBTS  R1E ORSTRE; 1 ,RR5  V MO L FILD R C,PR JS 4 ,R#4  V MO 1 ,R LTSURE  V MO N IOATICIFOD MERNTOU CONTICALO; 0 ,R.2D3RL # VBMO 1 RVESA; 5 ,RR1  V MO : 1QINMA 89INMA  R B  ORRRQE  B NC I  1QINMA  Q BE . ET SBEN CA. EL RND AF.DEY NLPSYM+1 ; RESTORE SYMBOL'S FIRST TRIAD  CMP  #127400,(R6)+ ; IS THIS SYMBOL DEFINING THE     ; ASSEMBLY LOCATION COUNTER ?  BNE  MAIN19  ; NOPE  TSTB  ERROR  ; WAS THE EXPRESSION TOTALLY EVALUATABLE?  BNE  MAIN87  ; BRANCH IF NOT.  TSTB  RSLMOD  BGE  MAIN88 MAIN87: INCB  AERROR MAIN89:  JMP  MAIN1E MAIN88: COMB  BINOUT  ; REQUEST BINARY OUTPUT  BITB  #-DEFFLG-RELFLG-1,@R1 ;OON'T NEED TO PAD. RAS BFP010: CMP R0,#DSWSIZ+DSWSIZ ; ANY ROOM LEFT& BGE BFP020 ; NO. ALL DONE. RAS CLRB DSWBUF(R0) ; CLEAR THE BYTE. RAS INC R0 ; COUNT IT. RAS BR BFP010 ; REPEAT LOOP. RAS BFP020: CLR DSWBYT ; SET # OF NEXT BYTE. RAS MOV (SP)+,R0   !"#$%&'()*+,-./0123456789:;<=>?@@?>=<;:9876543210/.-,+*)('&%$#"!    !"#$%&'()*+,-./0123456789:;<=>?@@?>=<;:9876543210/.-,+*)('&%$#"!