.TITLE PALSYM ;THE PERMANENT SYMBOL TABLE (PST) ; ; VERSION LEVEL 1 ; PATCH LEVEL A ; ; COPYRIGHT 1971, DIGITAL EQUIPMENT CORP. ; MAYNARD, MASSACHUSETTS ; ;THE PST IS A SEPERATE OBJECT MODULE WHICH ;IS LOADED TO RESIDE IMMEDIATELY BELOW THE ;ASSEMBLER IN CORE MEMORY. ONCE ASSEMBLED, IT ;IS FIXED IN SIZE; HOWEVER, IT MAY BE ;EDITED, ASSEMBLED, AND LINKED TO SUIT THE ;SPECIFIC NEEDS OF CUSTOMERS. ;THE PST IS BOUNDED BY THE INTERNAL GLOBAL ;SYMBOLS SYMTBB AND SYMTBT,  .TITLE PAL11R  ;VERSION 4A ; ;COPYRIGHT 1971, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. 01754 ;THIS SOURCE OF THE ASSEMBLER CAN BE ;ASSEMBLED INTO TWO UNIQUE VERSIONS: ;1. IF THE SYMBOL "NOSEG" IS DEFINED, THE ; RESULTING OBJECT MODULE IS THE FULL ; ASSEMBLER. ; ************************************* ;2. IF THE SYMBOL "NOSEG" IS NOT DEFINED, ; THE RESULTING PACKAGE IS AN ASSEMBLER ; THAT UTILIZES CORE OVERLAYS FROM DISK ; TO CONSERVE ON SYMBOL TABLE SPACE. ; ;THE OVERLA E BN ? N EE SSSREDD AANS WA;  2 ,RENSE#A  B IT B  STIR FSECA. AX MTERAPASE;     S SEHENTREPA;     Y ANG ININTAON CDSELFI;     R FOE OD MNGSIESDRADE INRMTEDE;   B:T0YN SE AG.P ; DEMOX DEINS ASSCERO P ; 02NTSY  R B  NGSIESDRADE ATDIMEIM, ES Y ; DRMMIM  Q BE ? #AN;     R TONAMIER TEDAV SHE TAS W ; MMCITC,#R1  B MP C  LTSURES N'IOSSREXP ECKTA S ; R6,@LTSURE  V MO S DEMOO UT AOR FCKHE C 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  ; NO, IMMEDIATE ADDRESSING  MOV  #DEFERD,-(R6) ; STACK THE DEFERD MASK  BITB  @R6,@R WHERE THE ;FORMER IS THE HIGHEST ADDRESS OF THE ;PST AND THE LATTER IS THE ADDRESS OF ;THE 1ST WORD BELOW THE PST. ;THE PST IS ORDERED (TO PERMIT BINARY ;SEARCHING) WITH THE SMALLEST SYMBOL (IN ;MOD40 PACKED NOTATION) HIGH IN CORE AND ;THE LARGEST SYMBOL (IN MOD40 PACKED NOTATION) ;LOW IN CORE. ;MOD40 CHARACTER REPRESENTATION ;A THRU Z : 1 THRU 26 RESPECTIVELY ; $ : 27 ; . : 28 ;0 THRU 9 : 30 THRU 39 RESPECTIVELY ;MOD40 PACKED NOTATION ;1ST PACKED TRIA Y VERSION OF THE ASSEMBLER IS SELF CONTAINED ;IN THAT IT IS ITS OWN OVERLAY BUILDER. ; ;WHEN THE SYMBOL "OVRBLD" IS DEFINED, THE ;RESULTING OBJECT MODULE IS THE BUILDER. ; ;WHEN THE SYMBOL "OVRBLD" IS NOT DEFINED, THE ;RESULTING OBJECT MODULE IS THE RESIDENT ASSEMBLER ; ;WHEN LINKED, THE BUILDER'S TOP SHOULD BE XXX474. ;EXECUTING THE BUILDER'S LOAD MODULE ;VIA THE MONITOR COMMAND RUN ;CAUSES THE CREATION OF THE ;CONTIGUOUS FILE OF OVERLAYS ;(PAL11R.OVR) ON DISK WITH LOGIN UIC. ; ;WHEN LINK ; 07NTSY  E BL D TEESQUREN URETRR C ; , ;    ONTIUAALEVN IOSSREXP ELLCA; 2 PEEX  P RA T  0 =R0;   0 R LR C  ORATINRMTED ELFIE URNS I ;  : 0ANTSY ORATINRMTET ENRRCUE THE AV S ; R13,@R  B OV M  ERCTRAHA CAB TORK ANBL;     - ON NXTNEE THT ATEBYUR CONTISIPO; M ERXTNE  P RA T  ERSTGIREX DEINE AV S ; R20, R SBBI N IOSSREXP EERSTGIREE RCFOL AL C ; E RCFO R APTR 9:T0YN SR ROER Q CBIN 8:T1YN S5 T1YN S BR 5  ; 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 ;  .PAGE ;*** DIRECT MEMORY ADDRESSING *** DIRMDR: ;IF THE FRCABS SWITCH IS NON-0 ;AS A RESULT OF THE CSI SWITCH ;/37 HAVING BEEN ENCOUNTERED  D = CHAR1*40*40+CHAR2*40+CHAR3 ;2ND PACKED TRIAD = CHAR4*40*40+CHAR5*40+CHAR6 ; ;EACH ENTRY IS 4 WORDS WITH THE LOWEST WORD ;CONTAINING THE 1ST PACKED TRIAD, THE NEXT ;LOWEST CONTAINING THE 2ND PACKED TRIAD, THE ;NEXT LOWEST CONTAINING THE VALUE (WHICH FOR ;ASSEMBLER DIRECTIVES IS AN EXTERNAL GLOBAL ;TO BE LINKED TO THE APPROPRIATE PROCESSOR IN ;PAL-11R) AND THE HIGHEST WORD CONTAINING ;THE FLAGS IN THE LOW BYTE AND THE CONTROL ;SECTION ID (WHICH IS ALWAYS 0 FOR PST ;ENED WITH THE PERMANENT SYMBOL TABLE, THE ;RESIDENT ASSEMBLER'S TOP SHOULD ALSO BE XXX474. ;AT RUN TIME, THE RESIDENT ASSEMBLER ;REQUIRES THE OVERLAYS TO BE ON DISK ;WITH FILE NAME PAL11R.OVR AND LOGIN OR [1,1]UIC. ; .GLOBL SYMTBB,SYMTBT ;EXTERNAL REFERENCES .GLOBL ASCII,ASECT,BYTE,CSECT,END,EOT,EVEN ;ENTRY POINTS. .GLOBL GLOBL,LIMIT,RAD50,TITLE,WORD .GLOBL IFG,IFL,IFNZ,IFGE,ENDC .GLOBL IFLE,IFZ,IFDF,IFNDF .GLOBL LIST,NLIST,GEES ; COMPUTER  PDP-11 ; CONFIGURATION  DISK O2 ,RR0  B IS B  CEORRF  P RA T  FTLE;  8 T1YN S GT B  HTIG R ; 09NTSY  T BL N OWKNUNT YEE OD MALTUAC;     D TENAMIER TAS HLDIE FHE T ;     ORATAREP SESESTHENAR PLLCA; EPRSPA  P RA T: 08NTSY IDVOS WAN IOSSREXP E ; ORRRQE  B NC I  IDVON-NOS WAN IOSSREXP E ; 08NTSY  T BG N IOATLUVA EONSIESPREXL AL C ; E1XP E APTR 0 = 0 R ;  R0  R CL R TONAMIER TXTNEE THR FOL AL C ; RMTEEX N APTR N OWKNUNT YEE OD;FORCE @#A FOR A BITB #DEFERD,@R5 ;IS MODE @A BNE DIRMD1  ;YES --- NORMAL TSTB FRCABS  ;FORCE @#A? BEQ DIRMD1  ;NO BISB #DEFERD,@R5 ;YES   ; *** IMMEDIATE ADDRESSING *** IMMMDR: BISB  #AINCR7,@R5 INDXDR:  TST  (R4)+  MOVB  R4,VARLTH  TSTB  RSLMOD  BEQ  DIREC0  BLT  IMMEXT  MOVB  #RLD2.1,RLDIR ;INTERNAL RELOCATION (CODE 1) BR IMPR2 IMMEXT:  MOV  #RLD2.5,RLDIR  ;GLB ADDITIVE RELOCATION (CODE 5) CMPB RSLMOD,#-2 TRIES) IN THE HIGH BYTE. ; ;INTERNAL GLOBAL SYMBOLS:  .GLOBL SYMTBB, SYMTBT ; ;EXTERNAL GLOBAL SYMBOLS:  .GLOBL ASCII, ASECT, BYTE, CSECT, END  .GLOBL ENDC, EOT, EVEN, GLOBL, IFDF  .GLOBL IFG, IFGE, IFL, IFLE, IFNDF  .GLOBL IFNZ, IFZ, LIMIT, RAD50  .GLOBL TITLE, WORD .GLOBL PAGE,LINES,LIST,NLIST,GEES ; NEW ASM DIRECTIVES ; ;FLAGS:  ASMDIR=10 ;BIT 3 BEING ON IN THE FLAG   ;BYTE INDICATES THAT THIS PST   ;ENTRY IS AN ASSEMBLER DIRECTPERATING SYSTEM ;   REQUIREMENTS ;    ;    ; PROGRAM NAME  PAL-11R ;VERSION  VERSION LEVEL 4 ;   PATCH LEVEL A ;DESCRIPTION  SPECIFICATION DOCUMENTS #130-390-008-01 ;      #130-390-011-00 AND -01 ;      #130-390-012-00 AND -01 ;      #130-390-014-00 ;      #130-390-023-00 ;   MULTI-PASS, RELOCATABLE, SYMBOLIC ASSEMBLER ; AUTHOR  J. MURPHY ;DATE    APRIL, 1971 ;   COPYRIGHT 1971, DIGITAL EQUIPMENT CORP., ;   MAYNARD, MASSACHUSETT MALTUAC;     D TENAMIER TAS HLDIE FHE T ; 0BNTSY  E BG N IOATINRMTED ELFIE INRMTEDE; NDDEFL  P RA T  RNTURE;    : OXUT AD MOSL R RBCL : OYUT AR ROER A CBIN Y TOAU  Q BE M ERVTSA5,-1 # PBCM D 2MSL,RODLMRS  B OV M  OXUT A EQ B  ODLMRS  B ST T 2:TOAU IT BDECOE ATRIOPPRAPT SE;  2 ,R)+R6 ( SBBI T BIN EE SORATEROPT SE;  2 ,RENSEOP # SBBI : O1UT AS DECOG INSTXI ETHBOR EACL;  2 ,RECCDIN # CBBI X TAYN S BNE DIRECD MOV #RLD4.3,RLDIR  ;.CSECT ADDITIVE RELOCATION BR DIRECD   ; *** INDEX MODE *** INDMDR: BISB  #INDMODE,@R5  MOVB  RSL2MD,RSLMOD  CLRB  RSL2MD  TRAP  INSERT  BR  INDXDR   ; *** DIRECT MEMORY ADDRESSING *** DIRMD1: BISB  #INDR7,@R5  TST  (R4)+  MOVB  R4,VARLTH CMPB #-1,RSLMOD  BEQ  DIRECB ;.GLOBL EXPRESSION BPL DIRECC  ;ANOTHER .CSECT  SUB  @USERPC,@R6  SUB  R4,@R6  TSTB  RSLMOD  IVE.  BYTFLG=1 ;BIT 0 BEING ON IN THE FLAG   ;BYTE INDICATES THAT THIS PST   ;ENTRY IS BYTE ENABLED. THIS   ;ALLOWS ONE ENTRY TO SATISIFY   ;SEARCHES FOR WORD AND BYTE   ;INSTRUCTIONS. E.G. THE ENTRY   ;'MOV', BECAUSE BIT 0 IS ON,   ;WILL SATISFY SEARCHES FOR   ;'MOV' OR 'MOVB' ; ;INSTRUCTION CLASS: ;BITS 4-7 OF THE FLAG BYTE DESIGNATE THE ;TYPE OF INSTRUCTION TO PROVIDE DISPATCH ;INFORMATION TO PAL-11R. SCLAS0=0  ;OPERATE GROUP SCLAS1=20  ;UNARY GS ; STANDARD PROCESSOR WIDE REGISTER ASSIGNMENTS R0  =  %0 R1  =  %1 R2  =  %2 R3  =  %3 R4  =  %4 R5  =  %5 R6  =  %6 R7  =  %7 .CSECT .IFDF NOSEG OVRBLD=1   ;PORTIONS OF BUILD SECTION ARE NEEDED. O01=0    ;SET ALL SYMBOLS USED O02=0    ;IN ADJUSTING ADDRESSES O03=0    ;TO WORK IN OVERLAY O04=0    ;ENVIRONMENT TO 0. O05=0 BEGO01=0 BEGO02=0 BEGO03=0 BEGO04=0 BEGO05=0 BEGOVR=0 .ENDC ;***** OVERLAY PROCEDURES ***** LEABONTIESQU, ES Y ; ORRRQE  B NC I  PENO;  1 TOAU  Q BE ? Y SLOUVIRE PENSER TORAPE O ; R2N,EEPS#O  B IT B 0:TOAU RNTURE; 2 TOAU  R B  ESOD CONTIDION CHE TET SND A ;     ERNTOI PCKTA SHE TRETOES R ; )+R6 ( LR C  ES Y ; O0UT A EQ B  ?- A R TONAMIER TR1S I ; UBCSTC,#R1  B MP C  DECOT ENEMCRDEO-UT ACKTA S ; 6 @RC,DETOAU # OV M  ES Y ; O0UT A EQ B  ?+ A R TONAMIER TR1S I ; DDCATC,#R1  B  ;BRANCH IF NOT  BNE  DIRECX  ;PROCESSING  TSTB  SECMOD  ;FOR ABS SYMBOL  BEQ  DIREC0  ;IF ABS SYMBOL FROM ABS SECTION  ADD  @USERPC,@R6  ;ABS SYMBOL FROM REL SECTION  ADD  R4,@R6 MOV #RLD2.3,RLDIR  ;REL SECT PROCES,INIT RLD DIRECTIVE IMPR2:  MOV  @R6,R1 TRAP RELREF  MOV  #4,R4 TRAP RLDFIL  BR  IMPR1 DIRECC: MOVB #RLD4.4,RLDIR ;.CSECT ADDITIVE DISPLACED RELOCATION BR DIRECD DIRECB:  MOVB  #RLD2.6,RLDIR ;.GLOBL EXPRROUP SCLAS2=40  ;BINARY GROUP SCLAS3=60  ;RTS SCLAS4=100  ;BRANCH GROUP SCLAS5=120  ;JSR SCLAS6=140  ;TRAP GROUP .PAGE ; ASSEMBLER DIRECTIVES ; ; .EVEN SYMTBT: .WORD 0  ;1ST REGISTER BELOW PST. ; .WORD 131247  ; .WORD .WORD 070440 .WORD WORD .WORD ASMDIR ; .WORD 131051  ; .TITLE .WORD 077345 .WORD TITLE .WORD ASMDIR ; .WORD 130725  ;.REF .WORD 022600 .WORD GLOBL .WORD ASMDIR ; .WORD 130721  ; .RAD50 .W; ;THE NUMBER OF BYTES ALLOCATED FOR THE ;OVERLAY AREA OVRSIZ=2000  ;1024 DECIMAL BYTES ;THE NUMBER OF WORDS ALLOCATED FOR THE ;OVERLAY AREA OVRWRD=1000  ;512 DECIMAL WORDS ; ;IF THE SYMBOL "OVRBLD" IS DEFINED (VIA A ;PARAMETER ASSIGNMENT) THE RESULTING OBJECT ;MODULE WILL CONSIST OF: ;  OVERLAY BUILDER ;  OVERLAY #1 ;  OVERLAY #2 ;   . ;   . ;   . ;  OVERLAY #N ;  OVERLAY AREA ;  RESIDENT PAL-11R ; ;THE RUN TIME TRANSFER ADDRESS WILL BE ;"STARTB" IN THE OMP C  DECOT ENEMCRINO-UT ACKTA S ; ) R6-(C,INTOAU # OV M: IDTOAU ET SENBEE AV HGSLA F  ;    TEIAPRROPP AHE TE,ISRWHEOT  ;    - R O +OT NORATINRMTE, ROZE  ;    S LTSURED DECON IOITNDCOT PUUT O ;    DECOR TONAMIER T  ;    VETIECFF EHE TNSAINTCO1 RUTNP I ;    E.BLIAAR V ;   ENSER TORAPE OHE TET SLYTEIAPRROPP AENTH ;   . NTSERE PORATICND INGSIESDRADE OL SHE TIS ;   S HI TATTHY IFER VENTH, SOF IR.TEACARESSION DIRECD: TRAP RELREF  MOV  @R6,R3  MOV  #10,R4  MOV  R2,TSTORE  MOV  GLBSY1,R1  ;.GLOBL OR .CSECT NAME MOV GLBSY2,R2 TRAP RLDFIL MOV TSTORE,R2 IMPR1:  INC  RLDFLG DIRECX:  MOVB  VARLTH,R4 DIREC0: MOV  @R6,TBBUF-2(R4)  ADD  #2,SIZE  BR  RETURN ;  .PAGE   ; *** REGISTER MODE *** REGMDR:; BISB  #REGMODE,@R5  BR  BUILD   ; *** AUTO-INCREMENT MODE *** INCMDR: BISB  #INCMODE,@R5  BR  BUILD   ; ORD 017226 .WORD RAD50 .WORD ASMDIR ; .WORD 130601  ;.PAGE .WORD 026210 .WORD PAGE .WORD ASMDIR ; .WORD 130474  ;.NLIST .WORD 035514 .WORD NLIST .WORD ASMDIR ; .RAD50 /.LI/ ; .LIST .RAD50 /ST / .WORD LIST .WORD ASMDIR ; .WORD 130351  ;.LINES .WORD 054133 .WORD LINES .WORD ASMDIR ; .WORD 130351  ; .LIMIT .WORD 051274 .WORD LIMIT .WORD ASMDIR ; .WORD 130156  ; VERLAY BUILDER ; ;"SYMTBB" AND "SYMTBT" WILL BE DEFINED IN ;THE OVERLAY BUILDER IN LIEU OF IN THE ;PERMANENT SYMBOL TABLE OBJECT MODULE ;WHICH WILL NOT BE LINKED FOR THE ;BUILD RUN. ; ;IF THE SYMBOL"OVRBLD" IS NOT DEFINED ;THE RESULTING OBJECT MODULE WILL ;CONSIST OF: ;  OVERLAY AREA ;  RESIDENT PAL-11R ; ;THE RUN TIME TRANSFER ADDRESS WILL ;BE "STARTA" IN RESIDENT PAL-11R ; ;  ;  .IFDF OVRBLD .IFNDF NOSEG .TITLE PALOB SYMTBB=.  ;IN LIEU OF LINKING SYMTBT=.  CH- ;   A R O + AERTHEIR FOS IDECOR TONAMIER T ;   EDAV SHE TATTHS IEIFER VNETIOUBRSUS HI T ;   ORATINRMTEDET ENEMCRDET;ENEMCRINO UT ANETIOUBRSUN PE O ;  ORATINRMTEDE. EC;DC.INO UT ALLCA;   7:T0YN SD UNFOS SIHENTREPAT GHRI;  R ROER Q CBIN D UNFOS SIHENTREPAT EF L ; 07NTSY  T BG 6:T0YN SG INSSREDD ANEMIERET D ; 0BNTSY  R B  NGSIESDRADE ATDIMEIM;  R MDMM I BR ; EDATINRMTES HAD ELFIE TH;  R ROER Q CBIN 5:T1YN SD UNFOS *** AUTO-DECREMENT MODE *** DECMDR: BISB  #DECMODE,@R5 BUILD:  TRAP  INSERT ;  .PAGE RETURN:  MOV  #SAVTERM,R3 TST  (R6)+  ; RESTORE THE STACK POINTER  BIT  #177400,R2  ; PARENTHESES COUNTER ZERO ?  BEQ  RETUR0  ; YES, VALID COUNTER  INCB  QERROR  ; NO, QUESTIONABLE SYNTAX RETUR0: INCB  FLDCNT  ; INCREMENT FIELD COUNTER  TRAP  FLDEND ; DETERMINE STATEMENT TERMINATOR  BLE  RETUR1  ; STATEMENT TERMINATE!.IFZ .WORD 121200 .WORD IFZ .WORD ASMDIR ; .WORD 130156  ; .IFNZ .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 ";WITH PERMANENT SYMBOL TABLE ; ;THE FOLLOWING TABLE CONTAINS THE ;STARTING CORE ADDRESS OF EACH OVERLAY ;IN THE ORDER OF ASCENDING LOCATIONS. ;A 0 WORD TERMINATES THE ENTRIES. ;AS NEW OVERLAYS ARE CREATED THEIR ;POINTERS MUST BE ADDED TO THE END ;OF THE TABLE AND THE OVERLAY ITSELF ;PUT IN THE SAME POSITION ;RELATIVE TO THE OTHER OVERLAYS. ; OVRTAB: .WORD BEGO01  ;OVERLAY #1 .WORD BEGO02  ;OVERLAY #2 .WORD BEGO03  ;OVERLAY #3 .WORD BEGO04  ;OVERLAY #4 .WORD BEGO05  WAS SIHENTREPAA ;  6 T0YN S NE B  ORATAREP SESESTHENAR PLLCA; EPRSPA  P RA T  EDSSCERO PONSIESPREXL CATIHENTREPA;    : 05NTSY #9E IL FOFD EN;  T EO. E AG.P ; NGSIESDRADE OD MEXND I ;     SO, EDATINRMTED ELFI;  R MDND I MP J  05NTSY  T BL N IOATINRMTED ELFIE INRMTEDE; NDDEFL  P RA T  AGFLN EE SSSREDD AET S ; R2N,EEAS # SBBI R TONAMIER TEDAV SHE TRENOIG;   1 R LR C: 04NTSY R.DD AG.REF IROZEA K ACST; $D  CMPB  FLDCNT,#2  ; MORE THAN TWO FIELDS ?  BLT  RETUR2  ; NOPE  INCB  QERROR  ; YES, QUESTIONABLE SYNTAX RETUR1: TRAP  SETREG ; CALL SET REGISTERS  DECB  FLDCNT  ; SET THE CONDITION CODES  RTS  R7  ; RETURN RETUR2: ASL  @R5   ; SHIFT COMAND SIX BITS LEFT  ASL  @R5  ASL  @R5  ASL  @R5  ASL  @R5  ASL  @R5  TRAP  NEXTERM ; CALL FOR NEXT TERMINATOR  CLRB  RSLMOD  CLR  GLBSY1%IFG .WORD ASMDIR ; .WORD 130156  ; .IFDF .WORD 014760 .WORD IFDF .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 127727  ; .EOT .WORD 076400 .WORD EOT .WORD ASMDIR ; .WORD 127726  ; .ENDC .WORD 014570 .WORD ENDC .W&;OVERLAY #5 .WORD 0 ; ;OVERLAY DEVICE OUTPUT TRAN BLOCK ; OVRTBO: .WORD 0  ;DEVICE BLOCK NUMBER OVROSA: .WORD 0  ;MEMORY START ADDRESS .WORD OVRWRD  ;WORD COUNT OVRERR: .WORD 2  ;FUNCTION (WRITE) .WORD 0  ;NUMBER OF WORDS NOT TRAN'D. ; ;RESTART ADDRESS OF OVERLAY BUILDER --- ;RELEASE OVERLAY DEVICE IF STILL INIT'D. AGAIN: TST OVRLB  ;IS DATA SET INIT'D BEQ STARTB  ;NO MOV #OVRLB,-(R6) ;YES -- RELEASE IT EMT RLS ; ;STARTING ADDRESS OF OVERLAY BUIL  6 @R  R CL E OD MEXND INGTIORPPSUN EE SSSREDD A ;  : 03NTSY ONSIESPREXR TEISEG R ;     HE TNGRIUICQ AIDVO A ; 08NTSY  R B  NDOU FISESTHENAR PHTIG R ; ORRRQE  B NC I  ORATINRMTED ELFIA ;     R ONDOU FISESTHENAR PFTLE;  3 T0YN S GE B  ORATAREP SESESTHENAR PLLCA; EPRSPA  P RA T  NGSIIS MBET US MISESTHENAR P ;     AREFOREHE TR,TEISEG R ;     ASD PETYS WAN IOSSREXP E ; ORRRRE  B NC I  NGSIESDRAD(  CLR  GLBSY2  JMP  SYNT00  ; SUBROUTINE INSERT   ; THIS SUBROUTINE INSERTS THE THREE BIT   ; REGISTER FIELD FOUND IN R2 INTO THE   ; COMMAND BEING BUILT.    ; INPUT R2 CONTAINS A 3-BIT FIELD    ; OUTPUT NONE ;INSERT: SUBR20: MOVB  R2,-(R6)  ; STACK LOWER BYTE OF R2  BIC  #177770,@R6  ; ONLY SAVE LOWER 3 BITS  BISB  (R6)+,@R5  ; SET COMMAND'S REG. BITS  RTS  R7  ; RETURN ;  .PAGE  ; SUBROUTINE F)ORD ASMDIR ; .WORD 127726  ; .END .WORD 014400 .WORD END .WORD ASMDIR ; .WORD 127645  ;.DEF .WORD 022600 .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*DER STARTB: MOV #OVRTAB,R6 ;INITIALIZE THE STACK START=STARTB  ;SET UP TRANSFER ADRESS ;SET UP RESTART ADDRESS MOV #AGAIN,-(R6) MOV #2,-(R6) EMT 41 MOV #OVRLB,R1 ;LINK BLOCK CLR @R1  ;FOR ^C BEGIN MOV #OVRFB,R2 ;FILE BLOCK MOV #OVRTBO,R3 ;OUTPUT TRAN BLOCK ;.INIT OVERLAY DEVICE MOV R1,-(R6) ;LINK BLOCK EMT INCMD ;OBTAIN DEVICE STATUS MOV R1,-(R6) ;LINK BLOCK EMT 13 CMP (R6)+,(R6)+ ;CORRECT STACK.    ;PHYSICAL BLOCK SIZE MOV @RE OD MEXND I ;     REFOREHE TR,TEISEG RAS;     D PETYT NOS WAN IOSSREXP E ; 04NTSY  T BL N IOSSREXP EERSTGIRER FOK ECCHL AL C ; K ECCH R APTR D RETEUNCOENS SEHENTREPA;   2:T0YN SG INSSREDD ADEMOR TEISEG R ; DRGMRE  P JM E OREFERTH, ERSTGIRE;     S AEDYP TAS WONSIESPREX;  2 ,RLTSURE  B IS B H:TCYP SG INSSREDD ARYMOMET ECIR D ;     REFOREHE TR,TEISEG R ;     DRRMDI  P JM H TCYP S  E BG N IOSS,IELD END   ; THIS SUBROUTINE SEPARATES TERMINATORS INTO   ; THREE GROUPS.    ; INPUT R3 = SAVTERM ADDRESS    ; OUTPUT CONDITION CODED RESULTS    ;  > 0, IMPLIES ,    ;  = 0, IMPLIES ; CR    ;  < 0, IMPLIES OTHER ;FLDEND: SUBR18: MOV  #1,-(R6)  ; STACK A ONE  CMPB  @R3,#TCCCOM  ; IS THE TERMINATOR A, ?  BEQ  FLDEN1  ; YES  CMPB  @R3,#TCCSMC  ; IS THE TERMINATOR A ; ?  B- ; MACHINE INSTRUCTIONS ; ; .WORD 107761  ;WAIT .WORD 076400 .WORD 000001 .WORD SCLAS0 ; .WORD 100014  ;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 .6,R4  ;(IN WORDS) OF OVERLAY DEVICE MOV #OVRWRD,-(R6) JSR R7,DIVIDE MOV (R6)+,R5 ;NUMBER OF PHYSICAL    ;BLOCKS PER OVERLAY CLR -(R6) MOV #OVRTAB,R0 BLDR01: TST (R0)+  ;TOP OF STACK BEQ BLDR02  ;CONTAINS TOTAL ADD R5,@R6  ;NUMBER OF PHYSICAL BR BLDR01  ;BLOCKS REQUIRED. BLDR02: MOV #64.,-(R6) ;DIVIDE PHYSICAL BLOCK MOV R4,-(R6) ;SIZE BY 64(DECIMAL) JSR R7,DIVIDE ;QUOTIENT ON STACK. MOV (R6)+,R0 ;NUMBER OF 64'S IN    ;PHYSICAL BLOREXP EERSTGIRER FOK ECCHL AL C ; K ECCH R APTR D UNFOS SEHENTREPAO N ;     ND AEDFITIENIDR TONAMIER TLDIE F ;    ND EDSELFIE THT NO;  2 T0YN S LT B  ?ONTINAMIER TLDIE FNEMIERET D ; D ENLD F APTR T ULES R'SONSIESPREXK ACST;  6 @RT,ULES R OV M  GEPA .  ; D OI VISN IOSSREXP E ; 05NTSY  E BL D TEESQUREN URET R CR; , ) ( ;    N IOATLUVA EONSIESPREXL AL C ; E1XP E APTR 1:T1YN SA T0YN S BR R TEACARCHT EX NHE TOR FLLCA0EQ  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     ; SET THE CONDITION CODES  RTS  R7  ; RETURN ;  .PAGE .EOT   ;END OF FILE #10  ; SUBROUTINE PARENTHESIS SEPERATOR   ; THIS SUBROUTINE SEPERATES RIGHT AND LEFT   ; PARENTHESES FROM OTHER TERMINAT1073636  ;SEV .WORD 0 .WORD 000262 .WORD SCLAS0 ; .WORD 073626  ;SEN .WORD 0 .WORD 000270 .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 SCL2CK MOV @R6,R4  ;TOTAL NUMBER OF    ;PHYSICAL BLOCKS REQUIRED BLDR03: DEC R0  BEQ BLDR08  ;TOTAL NUMBER OF ADD R4,@R6  ;64 (DECIMAL) WORD BLOCKS BR BLDR03  ;REQUIRED ON TOP OF    ;STACK ;DELETE FILE IF ALREADY EXISTING BLDR08: MOV #BLDR04,-4(R2) ;ERROR RETURN MOV R2,-(R6) ;FILE BLOCK MOV R1,-(R6) ;LINK BLOCK EMT DLT BLDR04: CLR -4(R2)  ;ERRORS TO MONITOR ;ALLOCATE THE NECESSARY SPACE FOR ONE ;CONTIGUOUS FILE. MOV R2,-(R6) ;FILE BLOCK ; M ERXTNE  P RA T  NO;  1 T1YN S NE B  ?# N AORATINRMTES I ; MMCITC,#R1  B MP C  ORATINRMTET ENRRCUE THE AV S ; R13,@R  B OV M  LLCA. PREXE THR FOE AREPPR;   0 R LR C: 01NTSY ERCTRAHA CAB TORK ANBL;     - ON NXTNEE THT ATEBYUR CONTISIPO; M ERXTNE  P RA T  IT BRDFEDER MDT SE, ES Y ; R5,@RDFEDE # SBBI E OP N ; 01NTSY  E BN ? @ANR TONAMIER TIS;  F DECC#T3,@R  B MP C  ROZEA K ACST;  ) R6-(4ORS. IT ALSO   ; SETS THE PARENTHESIS SEEN FLAG BIT AND   ; MAINTAINS THE PARENTHESIS COUNTER.    ; INPUT R2 DEDICATED REGISTER    ; OUTPUT CONDITION CODED RESULTS    ;  ) NEGATIVE    ;  OTHERS ZERO    ;  ( POSITIVE ;PARSEP:    ; PLACE THE PCOUNT BYTE SUBR19: SWAB  R2   ; INTO LOWER R2  CLR  -(R6)  ; STACK A ZERO  CMPB  @R3,#TCCLPA  ; IS TERMINATOR A ( ?  BEQ 5AS0 ; .WORD 071352  ;ROR .WORD 0 .WORD 006000 .WORD SCLAS1+BYTFLG ; .WORD 071344  ;ROL .WORD 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  ;J6 MOV R1,-(R6) ;LINK BLOCK EMT 15 TST (R6)+ BLT BLDR09  ;SPACE AVAILABLE? CLR -(R6)  ;NO. MOV #ERR9,-(R6) ;FATAL ERROR. BR BLDR10 ; ;DETERMINE THE PHYSICAL STARTING BLOCK ;OF THE CONTIGUOUS FILE AND PLACE IT ;IN THE 1ST WORD OF THE OUTPUT TRAN BLOCK. BLDR09: MOV R2,-(R6) ;FILE BLOCK CLR -(R6) MOV R1,-(R6) ;LINK BLOCK EMT 14  ;.LOOK MOV (R6)+,@R3 ;STARTING BLOCK. CMP (R6)+,(R6)+ ;CORRECT STACK ;THE ONE CONTIGUOUS FILE WILL CONTAIN ;N OVERLA  R CL K ACSTE THN OEDAV SIS;     . PREXS ESDRADD RETEUNCOEN;     S AGFLD ANS NTOU CLL AARLE C ;  R2  R CL S IT BERSTGIREX DEINL RANEGE;     3 ** 2 =IT BNTMEREEC-DTOAU;     4 ** 2 =IT BNTMERENC-ITOAU;     5 ** 2 =IT BENSER TORAPE O ;     *62*= T BIN EE SSSREDD A ;     *72*= T BIN EE SESESTHENAR P ;     H)IG(HE YT BERNTOU CESESTHENAR P ;     HE TOR FESLUVAE TH= 2 R ;     GEG PARSE0  ; YES  CMPB  @R3,#TCCRPA  ; IS TERMINATOR A ) ?  BNE  PARSE2  ; NOPE  DEC  @R6   ; DECREMENT STACKED ZERO  DECB  R2   ; DECREMENT PCOUNT BYTE  BR  PARSE1 PARSE0: INC  @R6   ; INCREMENT STACKED ZERO  INCB  R2   ; INCREMENT PCOUNT BYTE PARSE1: SWAB  R2   ; RESTORE R2 FORMAT  BISB  #PSEEN,R2  ; SET PSEEN BIT PARSE2: TST  (R6)+  ; SET THE CONDITION CODES  RTS  ESR .WORD 0 .WORD 004000 .WORD SCLAS5 ; .WORD 040230  ;JMP .WORD 0 .WORD 000100 .WORD SCLAS1 ; .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 ;FYS WITH EACH BEGINNING AT THE ;START OF A PHYSICAL BLOCK ON THE DEVICE ; MOV #OVRTAB,R0 BLDR07: MOV (R0)+,OVROSA ;MEMORY START ADDRESS BEQ BLDR05 ;TRAN OUT AN OVERLAY. ; MOV R3,-(R6) ;TRAN BLOCK MOV R1,-(R6) ;LINK BLOCK EMT 10 ;WAIT FOR COMPLETION OF TRANSFER ; MOV R1,-(R6) ;LINK BLOCK EMT WTCMD ;CHECK FOR ERROR ON TRANSFER ; BIT #140000,OVRERR BEQ BLDR06 ;ERROR ON TRANSFER MOV OVRERR,-(R6) ;PUSH STATUS BYTE BIC #377,@R6 ;INTO LOW INFO BYTEAN RONTIRATE ILDIE F ;  : 00NTSY RMTEAV SOFS ESDRAD= 3 R ; R3M,ERVTSA # OV M  PTRISCUB SUFBB THE T =R4;  4 ,R#2  V MO 0 = R TEUNCOD ELFI;  T CNLD F RBCL 0 = D ANOM C ;  R5 @ LR C  SSREDD ANDMACO= 5 R ; R5D,ANOM#C  V MO S ERSTGIREE AV SLLCA; EGVRSA  P RA T: 07BRSU X:TAYN;S TSBIT ENEMCRDET-ENEMCRIN;   0 03  =  C DENC IT BIT ENEMCRDEO-UT A ;  10 0  =C DETOAU IT BNTMERENC-ITOAU;   0 02  = NCOIUT""""""" ""nfffffffffffffffffffffffADD+B C4dz4dY4dOv$DnfffffffffffffffffffffffB4nvn8a ͋,L w:B ` 5 &  E >w   f5eU@  [*   & * G &( 8L'4e Q$ BBB"   U@ U e  "U%Gef. U U Bb 0 * BI .WORD 012445  ;COM .WORD 0 .WORD 005100 .WORD SCLAS1+BYTFLG ; .WORD 012412  ;CNZ .WORD 0 .WORD 000254 .WORD SCLAS0 ; .WORD 012330  ;CMP .WORD 0 .WORD 020000 .WORD SCLAS2+BYTFLG ; .WORD 012272  ;CLZ .WORD 0 .WORD 000244 .WORD SCLAS0 ; .WORD 012266  ;CLV .WORD 0 .WORD 000242 .WORD SCLAS0 ; .WORD 012262  ;CLR .WORD 0 .WORD 005000 .WORD SCLAS1+BYTFLG ; .WORD 012256  ;CLN .WORD 0 .WOJ SWAB @R6  ;AND CLEAR THE REST. MOV #ERR8,-(R6) ;ERROR CODE BLDR10: IOT EMT 60  ;RETURN TO MONITOR BLDR06: ADD R5,@R3  ;CHANGE BLOCK NUMBER    ;IN TRAN BLOCK FOR BR BLDR07  ;NEXT OVERLAY TRANSFER ; ;ALL OVERLAYS HAVE BEEN TRAN'D OUT. ; BLDR05: MOV R1,-(R6) ;RELEASE THE EMT RLS  ;DATA SET ; ;RETURN TO THE MONITOR EMT 60 ;***** OVERLAYS BEGIN HERE ***** ; ; OVERLAY #1 O01=BEGOVR-BEGO01  ;COMPUTE OFFSET FROM    ;RUN TIME OVERLAY ARKR7  ; RETURN ;  .PAGE  ; SUBROUTINE REGISTER CHECK   ; THIS SUBROUTINE DETERMINES, FINALLY, IF   ; A VALUE IS TO BE TYPED AS REGISTER.   ; IF NOT, THE SUBROUTINE RETURNS   ; IMMEDIATELY. IF THE VALUE IS TYPED AS   ; REGISTER, THEN INSURE THE VALUE IS   ; PROPERLY BOUNDED AND IF NOT, FORCE   ; REGISTER ZERO.    ; INPUT R0 CONTAINS REGISTER    ;  TYPING INFORMATION    ; OUTPUT CONDITION CODED RESULTS    AT BIN EE SORATEROP;   0 04  =  N EEPS OT BIN EE SSSREDD A ;  00 1  = ENSE AT BIN EE SESESTHENAR P ;  00 2  = ENSE PT BIG INSSREDD ARDFEDE;   0 1  = RDFEDE TSENNMIGSS 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 RMRD 000250 .WORD SCLAS0 ; .WORD 012243  ;CLC .WORD 0 .WORD 000241 .WORD SCLAS0 ; .WORD 011473  ;CCC .WORD 0 .WORD 000257 .WORD SCLAS0 ; .WORD 010003  ;BVS .WORD 0 .WORD 102400 .WORD SCLAS4 ; .WORD 007763  ;BVC .WORD 0 .WORD 102000 .WORD SCLAS4 ; .WORD 007520  ;BR .WORD 0 .WORD 000400 .WORD SCLAS4 ; .WORD 007414  ;BPL .WORD 0 .WORD 100000 .WORD SCLAS4 ; .WORD 007265  ;BNE .WORD NEA BEGO01: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVERLAY. ; JMP RCSI  ;ENTRY1 JMP SUBR43  ;ENTYR2 JMP RRSTRT  ;ENTRY3 .ENDC ; ; ; RCSI: MOV #COLB,-(R6) ;INIT COMMAND OUTPUT DEVICE MOV @R6,R2  ;#COLB EMT INCMD TSTB IDENT-O01 ;PRINT TITLE BEQ CSIOK2  ;ONCE ONLY. MOV #TITLBUF-BEGO01+BEGOVR,-(R6) ;PRINT TITLE MOV R2,-(R6) EMT WRCMD CSIOK2: MOV #TITLBF-BEGO01+BEGOVR,-(R6) MOV R2,-(R6) ;PRINT # EMT WRCMD CLR IDENT-O01 ;DON'T PRINTO ;  NOT NEGATIVE IMPLIES    ;  R0 CONTAINS A VALID    ;  REGISTER NAME    ;  NEGATIVE IMPLIES    ;   1) NOT TYPED AS REGISTER    ;   2) INVALID REGISTER NAME    ;   WAS FOUND, RESULT    ;   SET TO ZERO, R0'S    ;   LOW BYTE EQUALS ZERO ;RCHECK: SUBR2A: CLR  R0  BISB  REGTYPE,R0  ; IS RESULT TYPED REGISTERS ?  BEQ  RCHE01  ; NOPE, RETURN NEGATIVE ;RFORCE: ;  00  = DEMOEG RS DEMOG INSSREDD AERUTMPCO;    ! T UI Q ID,UNFOE AR;     S LDIE FWO TANTHE OR MIF;     D UNFOS LDIE FWO T, 0 >  ;    NDOU FD ELFIE ON, 0 =  ;    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 ;  Q0 .WORD 001000 .WORD SCLAS4 ; .WORD 007221  ;BMI .WORD 0 .WORD 100400 .WORD SCLAS4 ; .WORD 007164  ;BLT .WORD 0 .WORD 002400 .WORD SCLAS4 ; .WORD 007157  ;BLOS .WORD 073300 .WORD 101400 .WORD SCLAS4 ; .WORD 007157  ;BLO .WORD 0 .WORD 103400 .WORD SCLAS4 ; .WORD 007145  ;BLE .WORD 0 .WORD 003400 .WORD SCLAS4 ; .WORD 006774  ;BIT .WORD 0 .WORD 030000 .WORD SCLAS2+BYTFLG ; .WORD 0067R TITLE OR .INIT OVERLAY DEV. MOV R2,-(R6) EMT WTCMD MOV #CILB,-(R6) ;INIT COMMAND MOV @R6,R1  ;#CILB EMT INCMD  ;INPUT DEVICE MOV #CIFB,-(R6) ;OPEN COMMAND MOV R1,-(R6) ;INPUT FILE EMT OPN ;SET UP COMMAND INPUT BUFFER MOV #SIBUF2,R0 MOV R0,-(R6) MOV #SRCMAX,(R0)+ ;72(10) DATA BYTES. CLR (R0)+  ;FORMATTED ASCII ;READ COMMAND STRING MOV R1,-(R6) EMT RDCMD ;WAIT FOR INPUT WITH CLOSE AND RELEASE TRAP CLEAN BITB #47,SIBUF2+3-O01 BES SUBR2B: MOV  RESULT,R0  ; R0 = RESULT  CMP  R0,#7  ; IS R0 > 7 ?  BGT  RCHE00  ; YES, FORCE REGISTER ZERO  TSTB  RSLMOD  BNE  RCHE00  TST  R0   ; IS R0 < 0 ?  BGE  RCHE02  ; NOPE, RETURN NOT NEGATIVE RCHE00: INCB  RERROR ; FORCE  SET REGISTER ERROR  CLR  RESULT  ; RESULT = 0  RTS  R7  ; RETURN, CONDITION CODE 'Z' IS SET RCHE01: MOV  #100000,R0  ; SET ONLY R0 SIGN BIT       ONUP S.LDIE FCTJEOBD TEATRMFOR MDO TDSELFI ;   G INSSREDD AEDOD CCEURSOS TELANSRA TNETIOUBRSUS HI T ;   ISYSALANX TAYN SNETIOUBRSU;  . LEAB TOFM TOOT;B  R5NSBI BR  EDCEEXD ULWOH RCEA;S  R0 LRC 4 SRINBI BH  T.MILIM TOOT BTHWIE ARMPCO; 3 ,RR4 MPC . SEBAW NE= S RDWO4 -RYNT EISTH; 2 ,RR4 OVM: R7NSBI Y.TRENE DLID MNDFIO TSTJUAD; 4 ,R10#B SU  R7NSBI EQB E BLTAD REDEORN IERGHHIL BOYM;S  10,#R0 ITB: R6NSBI R4NSBI BR  E.BLTAD REDEORN IEROW LOLMBSY;U73  ;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  ;BEQ .WORD 0 .WORD 001400 .WOVQ CSIOKJ  ;TRANSFER ERROR? MOV SIBUF2+2-O01,-(R6) ;YES JMP ERRO3-O01 ;CALL COMMAND STRING INTERPRETER CSIOKJ: MOV #CMDBUF,-(R6) EMT 56 MOV (R6)+,R1 ;ADDR. OF DATA BYTE WHERE SCAN ENDED. BEQ CSIOK1  ;COMMAND SYNTACTICALLY CORRECT. CMPB (R1)+,(R1)+ ;INCREMENT BY TWO MOVB #13,@R1  ;VERTICAL TAB MOVB #77,-(R1) ;QUESTION MARK SUB R0,R1  ;PRINT COMMAND UP TO  ;ERROR DATA BYTE FOLLOWED BY ? VT. MOV R1,@R0 MOV #SIBUF2,-(R6) MOV R2,-(R6) EMT W; CONDITION CODES ARE SET RCHE02: RTS  R7  ; RETURN ;  .PAGE  ; SUBROUTINE NEXT TERMINATOR   ; THIS SUBROUTINE SIMPLY MOVES THE CURBYTE   ; POINTER TO THE NEXT NON-BLANK OR   ; NON-TAB CHARACTER. THEN THIS CHARACTER   ; IS EXAMINED TO DETERMINE IF IT IS A   ; TERMINATOR. SAVTERM REFLECTS THE RESULTS.    ; INPUT NONE    ; OUTPUT NONE ;NEXTERM: SUBR17: TRAP  CBTABS ; CALL CHECK FOR BLANKS AND TABS  JSR  R7,TERMIN ; CALL TE 3 ,RR4 OVM 6 SRINBO BL 2:SRIN B3 SRINBR B Y TRENF OSSREDD;A EXNDHI4,RV MO  D.UNFOE ATICND ITO0 N-NO; 0 RC IN  IDT ECCS .ND AGSLA;F GSLATF4,@R OVM L BOYM SOFE LUVA;Y ITNTUA,Q4)(R-2 OVM S HETCMAD IATRD 2N; . CHAT MNO; 2 SRINBE BN  1)(R,24)(R-4 MPC S HETCMAD IATRT 1S; . CHAT MNO; 2 SRINBE BN  CHAT MOR FSTTE;1 @R),R46(-P CM  ETFSOF- E AS BLEAB;T  R40,RB SU  R42,RV MO  ONTIGAPARO;P      GNSIT ENEVPRD ANS RDWO4 F OLEIPLTMUE URSS;A  R07,0000#1 ICYRD 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+BYTFLG ; ; ; SYMTBB=.-2   ;HIGHESTZWRCMD BR CSIOK2  ;PRINT # AGAIN. ;CLOSE AND RELEASE COMMAND ;OUTPUT DEVICE CSIOK1: MOV R2,R1 TRAP CLEAN CLR COFLAG-O01 ;FOR ^C BEGIN & RESTART CLRB FRCABS-O01 ;DON'T FORCE @#A FOR A MOVB #2,MAXPASS-O01 ;DEFAULT # OF PASSES. ;SOURCE INPUT ONE CLR CMDBUF-O01 ;INPUT FILE CLR SIFB2-O01 ;DEFAULT CLR SIFB2+2-O01 ;FILENAME. CLRB SICNT-O01 ;ONE INPUT. MOV #BLOCK4-BEGO01+BEGOVR,R1 ;CSI BLOCK ADDRESS TRAP CSICHK BEQ CSIOKD  ;NUL FIELD BGT [RMINATOR IDENTIFICATION  RTS  R7  ; RETURN ;  .PAGE  ; SUBROUTINE EXPRESSION   ; THIS SUBROUTINE EVALUATES AN EXPRESSION UNTIL   ; THE RETURNING TERMINATOR HIERARCHY IS SATISFIED   ; THE TERMINATOR HIERARCHY IS AS FOLLOWS:   ;  (FROM LEAST TO MOST IMPORTANT)   ;  PARENTHESES     -1   ;  COMMAS     0   ;  SEMICOLONS AND CARRIAGE-RETURNS  +1   ; IF A TERMINATOR IS ENCOUNTERED POSSESSING   ;  MORE SIGNIFICANCB: R1NSBI NGTIES TUEINNTCO; N URET;R  R7 TSR S DECON IOITNDCOT SE; 0 RT TS 3:SRIN BS ESDRADY TRENE BLTAL BOYM;S EXNDHI3,RV MO  IDCTCSD ANS AGFL TTO0 ; S AGFLTR CL  TYTIANQUO T;0 TYTIANQU LRC: R5NSBI NDOU FCHAT MNO; 1 SRINBE BN  2.E/IZ SLEAB TNSAINTCO0 ;R  R0 SRA: R4NSBI E.BLTAW LOBES ESDRADE RE FST;1  R03,RB SU  USIN MSEBAE BLTA; 0 ,RR2 OVM: 39BRSU H:RCNSBI ;;  D.RETEALE AR4 RND AR3, R2; D TISC CND A  ;  GSLATF, TYTIANQUO T 0) 3;  S)ESDRADR HE ADDRESS OF PST. .END ^CSIOKA CLR R4  ;NOT PARAMETER FILE. CSIOKA: MOVB R4,PAPASS-O01 ;NON-0 INDICATES PAR. FILE. MOV R5,SITAP1-O01 ;# OF TAPES. MOV R5,SITAPE-O01 TST R3 BEQ CSIOKB  ;ANOTHER INPUT FILE. CSIOKG: MOV SIFB1-O01,SIFB2-O01 ;FOR CSICHK DEFAULT MOV SIFB1+2-O01,SIFB2+2-O01 ;FILENAME BR CSIOKC ;SOURCE INPUT TWO CSIOKB: MOV #BLOCK5-BEGO01+BEGOVR,R1 TRAP CSICHK BEQ CSIOKG  ;NULL FIELD TST R3   BNE CSIOKH  ;TOO MANY INPUTS? CLR -(R6)  ;YES MO_E THEN THE REQUESTED   ;  TERMINATOR, THEN THE SUBROUTINE WILL RETURN.   ; EXPRESSIONS ARE EVALUATED FROM LEFT TO RIGHT AND   ; PARENTHETICAL GROUPING IS NOT PERMITTED.    ; INPUT R0 MUST EQUAL ZERO    ; OUTPUT CONDITION CODED RESULTS ARE    ;  RELATIVE TO THE ITEM COUNTER    ; RSLMOD:    ; +1 = RELOCATABLE EXPRESSION,    ; CURRENT .CSECT    ; 0 = ABSOLUTE EXPRESSION    ; -1 = .GLOBL EXPRESSION ` IF THE FILE IS ON A FILE UPD0440 ; STRUCTURED DEVICE, THE 'LIST' SWITCH IS SET, AND THE LINE UPD0450 ; PRINTER IS AVAILABLE. UPD0460 ; UPD0470 ; THE CORRECTION FILE WILL BE LISTED ONLY IF THE 'LIST' SWITCH IS SET. UPD0480 ; THE LINE PRINTER WILL BE USED IF IT EXISTS. IF NOT THE TTY WILL UPD0490 ; BE USED PROVIDED THE CORRECTION FILE IS NOT ON THE TTY. IN IG(HX DEIN HTOD RETEENE B  ;  LDOUSHL BOYM SREHE WSSREDD A) 2;  0ESOD CONTIDION CND AR0 1) ; : CHAT MNOF I;  ; ) TEBY (IDCTCSO TIDN IOCTSEL RONTCO 5) ; ) TEBY (GSLATFO TGSLA FOLMBSY 4) ; Y ITNTUA QTOL BOYM SOFE LUVA 3) ; X DEIN HTOY TRENF OSSREDD AERGHHI 2) ; ) VETISIPO ( 0ON NESOD CONTIDION CND AR0 1) ; : NDOU FCHAT MIFT PUUT;O  ; 3 RINE BLTAL BOYM S  ;  HE TOWEL BSSREDD AEEFRT 1SE TH 3) ; 2 RINE BLTAL BOYM SHE T  ;  OFS ESDRAD) ERGHHI (NGTIbV #ERR6,-(R6) JMP ERROUT-O01 CSIOKH: MOV R5,SITAP2-O01 ;# OF TAPES INCB SICNT-O01  ;TWO SOURCE FILES ;BINARY OUTPUT CSIOKC: MOV #2,CMDBUF-O01 ;GET OUTPUT SPEC. MOV #BLOCK1-BEGO01+BEGOVR,R1 ;CSI BLOCK ADDRESS TRAP CSICHK BGE CSIOK3  ;>0=PASS SPECIFIED. MOV #2,R4  ;PASS 2 DEFAULT CSIOK3: MOVB R4,BOPASS-O01 ;0=NO BINARY TST R3 BEQ CSIOK4  ;MORE OUTPUT FILES. CLRB LOPASS-O01 ;NO MORE OUTPUT FILES. CSIOK6: CLRB STPASS-O01  ;ZEROING THEIR PAc   ; -2 = RELOCATABLE EXPRESSION,    ; NOT CURRENT .CSECT    ; (OR .ASECT) ; TERMINATOR TABLE ENTRY ORDER ; = : , CR ; ! & - + ' " ) ( TAB BLANK % @ #  -1 ... -18 ;  TERMINATOR ANALYSIS DIAGRAM ; TERMINATORS CLASS  PAREN COMMAS  CR ;    -1  0  +1 ; ^ & - + ' " 1  PROCESS PROCESS PROCESS ; ; CR  2  RETURN RETURN  RETURN ; : = TAB BLK # @  QERROR QERROR  QERROR ; ) (  4  dTHIS UPD0500 ; SINGLE CASE THE CORRECTION FILE WILL NOT BE LISTED. UPD0510 ; UPD0520 ; IF THE 'INSERT' SWITCH IS SET, THE CORRECTION FILE IS IGNORED AND UPD0530 ; SHOULD NOT BE SUPPLIED. THIS SWITCH IS NORMALLY USED WHEN A NEW UPD0540 ; DECK IS BEING INSERTED INTO THE MACHINE FOR THE FIRST TIME. UPD0550 ; UPD0560ARSTE TH 2) ; 1 RINL BOYM S0) 4LODUMO (RDWO ; 2 E THF OSSREDD AR)WELO (SEBAE TH 1) UTNP;I  E.BLTA; L BOYM SRYNT EER PRDWO4 D REDEOR; N AEROVH RCEA SRYNABIA S RMFOER;P  CHARSEE BLTAL BOYM SRYNABIE INUTROUB;S RNTURE; 7 RS RT  0)(R,-+1YMPSTM OVM . OTSLD IEIFECSP;) R0-(3,M+SYMPTV MO  INY TREN;) R0-(T,ULESRV MO  RDWO4 E ACPL;0 @RS,AGFLTV MO  R0X,DEINHV MO 0:R4UB S. EDAYRLVE OBEO TRYNT EOLMBSYF IRYNTE: AYRLOV ;S ERSTGIREE ORSTRE; G REETSP RAT: R2TEEN R3fSS BR CSIOK8  ;BYTE PROHIBITS OUTPUT ;1ST INPUT FIELD WAS NULL. CSIOKD: TST R3 BNE CSIOKE  ;OK IF NO MORE INPUTS CSIOKF: CLR -(R6) MOV #ERR7,-(R6) ;INPUT FILE MISSING JMP ERROUT-O01 CSIOKE: MOV #2,CMDBUF-O01 ;CHECK OUTPUTS. MOV #BLOCK1-BEGO01+BEGOVR,R1 TRAP CSICHK BNE CSIOKF  ;ERROR IF OUTPUT EXISTS. TST R3 BEQ CSIOKF  ;ERROR IF OUTPUT EXISTS. JMP RCSI  ;PRINT # AGAIN. CSIOK4: ;LISTING OUTPUT MOV #BLOCK2-BEGO01+BEGOVR,R1 ;CSI BLOCK ADDREg RETURN Q RESTART Q RESTART ; ,   5  RETURN RETURN  Q RESTART ;EXPE1:  ; EXPRESSION'S ENTRY POINT 1 SUBR1A:   ; PARENTHESES MINIMAL TERMINATOR  DEC  R0   ; RETURN CLASS = -1 ;EXPE2:  ; EXPRESSION'S ENTRY POINT 2 SUBR1B:   ; COMMA MINIMAL TERMINATOR  DEC  R0   ; RETURN CLASS = 0 ;EXPE3:  ; EXPRESSION'S ENTRY POINT 3 SUBR1C:   ; SEMICOLON MINIMAL TERMINATOR  INC  R0   ; RETURN CLASS = +1  TRAP  h ; OPERATIONAL LIMITATIONS UPD0570 ; UPD0580 ; CURRENTLY UPDATE CAN NOT DETECT A DEFAULT CARD READER FOR THE UPD0590 ; CORRECTION FILE UNLESS IT RESIDES ON EITHER 'DT' OR 'DF'. UPD0600 ; THIS MEANS THAT SUCH LEGAL SPECIFICATIONS AS: UPD0610 ; 1. R5S I ; 6 M+SYMP#T5, R MP C  +3R5= 5 R ; R53, # DD A  R4T ENEMCRIN;     D IATRT ANLTSURE= ) R4M(SYMP T ; )+R4,(R3 ~CTION AREA. MOV R1,USRTOP-O01 ; ;ENTER THE USER PC SYMBOL . INTO ;THE UST. MOV R1,HINDEX-O01 ;HIGHEST ADDRESS OF SLOT. MOV #127400,TMPSYM+1-O01 ;1ST TRIAD CLR TMPSYM+3-O01 ;2ND TRIAD TRAP ENTER MOV R1,HUSERPC-O01 ;HIGHEST ADDRESS OF USER PC ENTRY TST -(R1)  ;ADDRESS OF VALUE WORD MOV R1,USERPC-O01 ;OF USER PC ENTRY. JMP SETP5-O01 ; ;FILE STRUCTURE ERROR--INPUT FILE #2 MISS1: CLR SIFB2-4-O01  ;LET MONITOR HANDLE ERROR NEXT TIME CMP SIFB2+4-O01,R  EXPR02  ; ACQUIRE THE NEXT ITEM ;  .PAGE EXPR04:  ; CLASS 3 TERMINATORS PROCESSED  TRAP  SETERR ; CALL SET ERRORS  BR  EXPR02  ; ACQUIRE THE NEXT ITEM EXPR05:  ; CLASS 1 TERMINATORS PROCESSED  (OPERATORS)  DEC  R0   ; R0 = R0-1  BGT  EXPR07  ; SEPARATE OPERATORS ! & - +  INC  @R3   ; INCREMENT CURBYTE POINTER  CLR  @R4   ; QUANTITY = 0  MOVB  @0(R3),@R4  ; PLACE THE FIRST ASCII CHAR. ; PULL IN NUMERIC CONVERTER UPD0950 .GLOBL XIT. ; PULL IN EXIT PROCESSOR UPD0960 .GLOBL RLS. ; PULL IN RELEASE PROCESSOR UPD0970 .EVEN ; GET OFF ON THE RIGHT FOOT. UPD0980 .PAGE UPD0990 ; UPD1000 ; LINE BUFFERS AND LINE BUFFER HEADERS  V MO 2:40OD MR TEACARCHT EX NSSCERO P ; 01D4MO  R B  LTSUREL IARTPAM+SU= M SU;  3 ,R)+R6 ( DD A  R3  L AS S IT B 2FTLEM SUT IFSH;   3 R SL A  LTSUREL IARTPAE AV S ; 6)(R,-R3  V MO 3 R SL A  R3  L AS S IT B 3FTLEM SUT IFSH;   3 R SL A  EDETPLOM CADRI TE,OP N ; 02D4MO  E BG ? R5< 1 RIS;  5 ,RR1  P CM 0 = ) R1M(SYMP T ; )+R1 ( RBCL . ARCHD TELANSRA+TUM S =UM S ; R32, R DD A  BLOCK5+6 ;IS EXT PAL? BNE MISS2   ;BRANCH IF NOT-FORCE ERROR CLR SIFB2+4-O01  ;MAKE EXT NULL BR MISS2   ;TRY AGAIN ; ;FILE STRUCTURE ERROR--INPUT FILE #1 MISS3: CLR SIFB1-4-O01  ;LET MONITOR HANDLE ERROR NEXT TIME CMP SIFB1+4-O01,BLOCK4+6 ;IS EXT PAL? BNE MISS4   ;BRANCH IF NOT-FORCE ERROR CLR SIFB1+4-O01  ;MAKE EXT NULL BR MISS4   ;TRY AGAIN ;SUBROUTINE CSICHK: CALLS CSI2 (COMMAND STRING ;INTERPRETER PHASE II). ;ALL SWITCHES EXCEPT PASS [PA] ;     ; INTO QUANTITY LOW BYTE  TST  R0   ; WAS THE TERMINATOR ' ?  BEQ  EXPR06  ; YES, SERVICE THE OPERATION  INC  @R3   ; INCREMENT CURBYTE POINTER  MOVB  @0(R3),QUANTITY+1 ; PLACE THE SECOND ASCII CHAR.     ; INTO QUANTITY HIGH BYTE EXPR06: INC  @R3   ; INCREMENT CURBYTE POINTER EXPR16:  CLRB  ITYPE  CLR  R0  BR  EXPR0C  ; SERVICE THE OPERATION EXPR07: TSTB  R1   ; CHECK THE OPERATOR UPD1010 ; UPD1020 ; TITLE LINE AND HEADER UPD1030 ; UPD1040 LOW =. ; LOWEST ADDRESS OF PROGRAM. UPD1050 TITLE: .ASCII /UPDATE/ ; UPD1060 .ASCII / / ; R.HA CEDATSLANTR+ 00= 2 R ; R21,@R  B OV M  0 =R2;   2 R LR C: 01D4MO 0 =UM S ;  R3  R CL 0:40OD MS ESDRAD1 M+SYMP T =R4; R41,M+SYMP#T  V MO S ESDRAD3 M+SYMP T =R5; R53,M+SYMP#T  V MO S ERSTGIREE AV SLLCA; EGVRSA  P RA T 1:R3UB SR KEAC P40OD;M    HBRCSE ;; ; L CHERSR B ) CEENEREF RALRNTEEX (BLLO.GD NEFIDEUN; T INPOY TREN; I CHERSE BN  LGFFDE,#GSLATF TBBI  ET SOT NAGFLL OBGL;.  HIRCSE EQB G FLLB#GS,AGFLTB ITBAND TAPES [TA] AND FORCE @#A [37]ARE ILLEGAL.. ;IT WILL USE DEFAULT ;EXTENSION NAMES IF NONE SPECIFIED. ;IT WILL UPDATE MAXPASS IF NECESSARY. ;IT WILL USE SOURCE FILENAME AS DEFAULT FOR ;OTHER DATA SETS. ; ;INPUT: ; R1=ADDRESS OF CSI BLOCK ; 1ST WORD : ADDR OF CMDBUF ; 2ND WORD : ADDR OF LINK BLOCK ; 3RD WORD : ADDR OF FILE BLOCK ; 4TH WORD : DEFAULT EXTENSION ; ; ;OUTPUT: ; R3 ;  0 STILL MORE OF SAME TYPE ;  1 NO MORE OF SAME TYPE ; ; R4 AN COUNTER  BLE  EXPR08  ; FIRST OPERATOR IS VALID  TRAP  SETERR ; CALL SET ERRORS  CLRB  R2   ; ZERO THE EFFECTIVE OPERATOR EXPR08: CLRB  R1  INCB  R1   ; INCREMENT OPERATOR COUNTER  DEC  R0   ; ENCODE OPERATOR SUCH THAT     ; ADDITION IS ENCODED AS ZERO  BISB  R0,R2  ; SET THE EFFECTIVE OPERATOR  BR  EXPR02  ; PROCESS THE NEXT ITEM EXPR09:  ; CLASS 5 TERMINATORS PROCESSED  BIT  #177400,R UPD1070 .ASCII /V004C/ ; TITLE LINE UPD1080 .BYTE CR,LF ; UPD1090 TILNTH =.-TITLE ; CAL. LENGTH OF TITLE LINE UPD1100 .EVEN ; GET ON THE RIGHT FOOT HERE ALSO. UPD1110 TITLBH: .WORD TILNTH ; MAX BYTE COUNT UPD1120 .BYTE 04 ; MODE - DUMP, FORMATED, NORMAL, ASCII UPD11: HKRCSE HIRCSE BR  ADRI TND;2 Y2BSGL),R1(V MO  ADRI TST;1 Y1BSGL+,1)(R OVM: HLRCSE D.OR WNE ONTMERENC;I  )+R1(T TS  8)D)(I-(E AS;B  R13,RB SU  LEAB TCTSE.CF OSEBA;1 ,ROPRTPE OVM ;  R3 SLA ;  R3 SLA S TEBY8 ) ID;(  R3 SLA L BOYM SEDINEF DLYIPLTMU; K CHERSQ BE  R3G,LADF#M PBCM  TELUSOABR OEDINEFND;U  HKRCSE EQB . GNSIE ATAGOPPRT N'DO;3 ,RIDCTCS SBBI  R3 LRC T USN ICHAT;M  R0 LRC: HJRCSE ST UIND UNFOH TCMA; D UNFOT NOE ATICND;I  HIRCD STATUS ;  00R0   ; S DECON IOITNDCOE THS ET SR0 T:PUUTO ;  LEAB TOLMBSY. MPTE T:PUIN  ; ;  H.RCNSBIG INIZILUTD HERCEA;S  ISY NL OST UHE TL,BOYM SEDCKPAY ADREAL; N AOR FCHARSEO TRYNT END 2HE TON; . RYSAESEC NIFT USE THN HE TND AST;P  HE TNGHIRCEA SSTIR FY,LLMAOR NSSCERO PL,BOYM_ OFFSET FROM    ;RUN TIME BEGO02: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVERLAY. ; JMP RCSECT  ;ENTRY1 JMP RASECT  ;ENTRY2 JMP RGLOBL  ;ENTRY3 JMP RTITLE  ;ENTRY4 JMP RLIMIT  ;ENTRY5 JMP SUBR41  ;ENTRY6 JMP SUBR35  ;ENTRY7 JMP SUBR42  ;ENTRY8 .ENDC ; ; ; ;.CSECT ;THIS PART HANDLES THE ;.CSECT DIRECTIVE ; ;    ;CSECT HANDLER RCSECT: CLRB SIZE-O02 NEGB BINOUT-O02 ;REQUEST BINARY OUTPUT MOVB SAVTERM-O02,R0 ;TERMINATING CA:  BITB  #RELFLG,R1  ;ERRR IF REL  BNE  EXPERR  BITB  #DEFFLG,R1  ;OR GLB  BNE  EXPR0N  BITB  #GLBFLG,R1  BNE  EXPERR EXPR0N:  ADD  @R4,@R5  ; RESULT = RESULT+QUANTITY  BR  EXPR0K  ; PROCESS THE NEXT OPERATOR    ; SUBTRACTION EXPR0S:  TSTB  ITYPE  BEQ  EXP3N  BITB  #DEFFLG,R1  BNE  EXP3A  BITB  #GLBFLG,R1  BNE   EXPERR EXP3A: BITB  #RELFLG,R1  BEQ  EXP3N  CMPB  PRGSEC,CSC UPD1620 ; SOURCE INPUT/OUTPUT LINE BUFFER AND HEADER UPD1630 SRBUFH: .WORD SRLNTH ; MAX BYTE COUNT FOR BUFFER UPD1640 .BYTE 020 ; MODE - SPECIAL, FORMATED, ASCII UPD1650 .BYTE 0 ; STATUS UPD1660 .WORD 0 ; ACTUAL BYTE COUNT (TRANSFERED) UPD1670 SRBUF =. ; BUFFER ADDRESS UPD SPETY' 'BA T NOF ;I  VEBO A1.S ASSCERO PENTHT NOF I. ;B  N.URET RND ATYTIANQUN IIT B ;  ORATICND ITEBYE THT SEN HE TT,SEF I. ;A  G.LA FNGLIABENE YT B'SOLMBSY ; E THK ECCHN HE TT,PSE THN I ;  NDOU FISL BOYM SEDATVIREBB AHE TIF 2.; . ST UHE TRYSAESEC NIFD ANT PS ; HE TCHARSET RSFI L.BOYM SALOT T ;  HE TOR FNGHIRCEA 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[HARACTER: CMPB #-4,R0  ;CARRIAGE RETURN BEQ CSECT1  ;UNNAMED .CSECT CMPB #-5,R0  ;SEMI COLON BEQ CSECT1  ;UNNAMED .CSECT TRAP CBTABS  ;FLUSH BLANKS OR DEC CURBYTE-O02  ;TABS. TRAP ITEM  ;GET NEXT ITEM TSTB CNTCHAR-O02 ;ANY CHARACTERS FOUND? BLE CSECT1  ;NO. UNNAMED .CSECT TSTB ITYPE-O02 ;LEGAL SYMBOL? BGT CSECT5  ;YES INCB QERROR-O02 ;Q ERROR FLAG CSECT4: JMP MAIN1E-O02 ;UNNAMED .CSECT CSECT1: CLR TMPSYM+1-O02 ;PACKED MOD40 SYTID ;SAME .CSECT AS PREVIOUS SYMBOL.  BNE  EXPERR  ;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 1680 .=.+SRLNTH ; RES BUFFER UPD1690 ; UPD1700 ; LINE BUFFER HEADER FOR LISTING OF SOURCE OUTPUT FILE UPD1710 SLSTBH: .WORD SRLNTH ; MAX BYTE COUNT UPD1720 .BYTE 024 ; MODE - DUMP, SPECIAL, FORMATED, ASCII UPD1730 .BYTE 0 ; STATUS UPD1740 .WOR;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  ; . 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 D4WMBOL CLR TMPSYM+3-O02 MOVB #1,R3  ;ID NUMBER 1 MOV PERTOP-O02,HINDEX-O02 BR CSECT6 ;PREVIOUS SECTION .ASECT CSECT2: MOV @USERPC-O02,ABSPC-O02 BISB #RELFLG,@HUSERPC-O02 ;SET RELOCATABLE ;FLAG BIT IN DOT SYMBOL ENTRY BR CSECT7 ;MORE THAN 376(8) .CSECT'S CSECTE: CLR -(R6)  ;ERROR MOV #ERR1,-(R6) ;ANNOUNCEMENT JMP ERROUT-O02 ;PACK THE CHARACTERS IN BYTES TMPSYM (0) TO TMPSYM (5) ;INTO PACKED MODULO 40 REPRESENTATION IN WORDS ;TMPSYM+1 AND TMPSYM+3 CSECT  BEQ  EXPERR  BITB  #RELFLG,R1  BNE  EXPERR EXPROK: EXPR0K:  TRAP  SETREG CLRB  R1   ; SET OPERATOR COUNTER  COMB  R1   ; BYTE = -1  JMP  EXPR00  ; PROCESS THE NEXT OPERATION    ;;AND EXPRLA:  COM  @R4  BIC  @R4,@R5  BR  EXPRL1 EXPERR:  TRAP  SETREG  INCB  AERROR  JMP  EXPR12 ; ; ; DIVISOR = 177300 AC = 177302 MQ = 177304 MULTIPLY= 177306 ; ; ; ; THESE TWO SECTIONS (EXPMUL AD 0 ; ACTUAL BYTE COUNT UPD1750 .WORD LPBUF ; ADDRESS OF ACTUAL LINE BUFFER UPD1760 .ENDC ; LAST OF LINE PRINTER UPD1770 ; UPD1780 ; CSI BUFFER - THIS MUST PRECEED THE COMMAND LINE BUFFER UPD1790 CMDBUF: .WORD 0,0,0,0,0,0,0 ; RES 7 WORDS FOR IT UPD1800 ; MOD 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 LEAB TTHBO D.DEADE ARS OLMBSY; W NES ARECON IDSARNWOW DDSANXP;E  ND AOPRTUSD ANP TOON CRSTEINPOE THY ;B  EDNDOU BIS) ST(UE BLTAL BOYM SERUSE TH; . EDIX FISD ANP TOER PND AOTRBPE; S ERNTOI PHE TBYD DEUNBOS IT)PS (LEAB;T  OLMBSYT ENANRMPEE TH S.ONTIEC SEDERS5: MOV #TMPSYM,R1 ;ADDRESS OF 1ST BYTE TRAP SERCHB  ;MODULO 40 PACKER INC R1  ;TMPSYM+1 TO R1 MOV #WORD3,R4 ;NO 3RD WORD CLR @R4  ;MATCH; JUST SYMBOL MOV PERTOP-O02,R2 ;PERFORM LINEAR MOV CONTOP-O02,R3 ;SEARCH OVER CONTROL TRAP LINSRCH  ;SECTION TABLE BNE CSECT3  ;MATCH FOUND ;THIS CONTROL SECTION NAME NOT IN TABLE ;ENTER A NEW CONTROL SECTION ENTRY. MOV R3,HINDEX-O02 ;BASE ADDRESS OF ENTRY    ;IS CURRENT TOP OF    ;THE CONTROL SECND EXPDIV) PERFORM THE ASSEMBLER ; MULTIPLY (*) AND DIVIDE (/) FUNCTIONS. LEFT TO RIGHT ONLY, ; PARENTHESES NOT PERMITTED. ; EXPMUL: MOV (R4),@#MQ ;MOVE IN RESULT (PREVIOUS VALUE) MOV (R5),@#MULTIPLY ;MULTIPLY IT BY QUANTITY (NEW VALUE) MOV @#MQ,(R5) ;STORE RESULTANT PRODUCT TST @#AC  ;TEST FOR > THAN 16 BIT PRODUCT BEQ EXPROK TGOOF: INC TERROR  ;TRUNCATION ERROR BR EXPROK ; EXPDIV: MOV (R5),@#MQ ;MOVE IN PREVIOUS VALUE MOV (R4),@#DIVISOR ;DIVIDE IT UPD1810 ; CSI INPUT LINE BUFFER AND HEADER UPD1820 CSIBFH: .WORD CSLNTH ; MAX BYTE COUNT UPD1830 .BYTE 0 ; MODE - NORMAL, FORMATED, ASCII UPD1840 .BYTE 0 ; STATUS UPD1850 .WORD 0 ; ACTUAL BYTE COUNT UPD1860 CSIBUF =. ; BUFFER ADDRESSRD;O  WO TTOIND DEVIDIS ILEAB TOLMBSYE TH; H RCEA SLEAB TOLMBSYE INUTROUB;S #8E IL FOFD EN;  T EO .  GEPA .  ; R TEACARCHT EX NCKHE C ; 0 BT C BR 1 G+LATF B =AGFLBT;  G LATF B CBIN : T1CB RNTURE;  7 R TS R  AGFLBTP UM BS,YE;  T1CB  Q BE ? B TAA R TEACARCHS I ; TEBYUR@C1,01 # PBCM G LATF BMPBU, ES Y ; 1 BT C EQ B  K?ANBLA R TEACARCHS I ; TEBYUR@C0,04 # PBCM 1 E+YTRBCU= E YTRBCU;  E YTRBCU  C IN : OTION    ;TABLE. CLR RESULT-O02 ;0 TO CURRENT CLR TFLAGS-O02 ;AND MAXIMUM PC TRAP ENTER SUB #10,CONTOP-O02 ;ADJUST BOTTOM OF UST ;MATCH FOUND---COMPUTE CONTROL SECTION ID CSECT3: MOV PERTOP-O02,R3 ;ADDRESS OF 1ST ENTRY SUB HINDEX-O02,R3 ;ADDRESS OF THIS ENTRY ASR R3  ;DIVIDED BY 4 ASR R3  ASR R3  ;XTRA SHIFT FOR BYTE BIT INC R3  ;+1=CONTROL SECTION CMP #376,R3  ;ID NUMBER BLT CSECTE  ;TOO BIG IF >376(8) CSECT6: TSTB SECMOD-O02 BEBY NEW VALUE BEQ TGOOF  ;BRANCH IF DIVISOR = 0 MOV @#MQ,(R5) ;STORE QUOTIENT - IGNORE REMAINDER BR EXPROK ;  .PAGE  ; SUBROUTINE SET ERRORS   ; UTILITY SUBROUTINE FOR EXPRESSION ;SETERR: SUBR21: INCB  QERROR  ; QUESTIONABLE SYNTAX ERROR  BIS  #000400,R2  ; SET THE GENERAL ERROR  RTS  R7  ; RETURN  .EOT   ;END OF FILE #11  ; SECTION: CHARACTER IDENTIFICATION    ; INPUT R0 MUST BE FREE    ; OUTPUT R0=SFLAG'S VALUE UPD1870 .=.+CSLNTH ; RES BUFFER UPD1880 ; UPD1890 ; CORRECTION INPUT BUFFER AND HEADER UPD1900 CRIBFH: .WORD CRLNTH ; MAX BYTE COUNT UPD1910 .BYTE 0 ; MODE - NORMAL, FORMATED, ASCII UPD1920 .BYTE 0 ; STATUS T0CB =0AGFLBT;  G LATF B RBCL 0:R1UB S: BSTACB ; . E&ERNTOUNC EISB TAR ONKLA B ;     AMETIH AC EEDNTMERENC IISG LATF B ;     BSTAD ANS NKLA BOR FCKHE CNETIOUBRSU;   E AG.P ; TEBYUR CNTMERENC IND A ;     RSTONAMIER TLL AOR FCKHE C ; 00EMIT  R B  NETIOU R ;     ERMBNUS N'IOATICIFNTDE I ;     ERCTRAHA CTON URET R ; R4R,BEUM#N  V MO 8:M0TE IE INUTROUB SEMITT ORAB;  3 M0TE I BR 0 = Y ITNTUA QE,OP NKQ CSECT2  ;PREVIOUS SECTION ABS ;PREVIOUS SECTION RELOCATABLE. MOV @USERPC-O02,R1 ;SAVE CURRENT PC FOR MOV R1,@RELPC-O02 ;PREVIOUS SECTION CMP R1,@HIRPC-O02 BLOS CSECT7 BIT #1,R1  ;EVEN OFF MAX. PC BEQ CSECT8 INC R1 CSECT8: MOV R1,@HIRPC-O02 CSECT7: MOV HINDEX-O02,R0 ;BASE OF NEW CSECT ENTRY MOV R0,HIRPC-O02 ;ADDRESS OF MAX. PC TST -(R0) MOV R0,RELPC-O02 ;ADDRESS OF PC MOV @R0,TBBUF-O02 ;PC OF NEW .CSECT MOVB R3,SECMOD-O02 ;NEW .CSECT ID ;  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 (0-9) . DEFAULTS T UPD1930 .WORD 0 ; ACTUAL BYTE COUNT UPD1940 CRBUF =. ; BUFFER ADDRESS UPD1950 .=.+CRLNTH ; RES BUFFER UPD1960 .PAGE UPD1970 ; UPD1980 ; CSI2 BLOCK UPD1990 ; ; TYTIANQU  R CL G INSSCERO PUEINNTCO, ES Y ; 08EMIT  Q BE ? D UNFOT GIDID LIVAA S WA;   0 R ST T: 07EMIT ** *G INSSCERO PERMBNU ** *  ;  TEBYUR CNTEMCRIND AN;     S ORATINRMTEL ALR FOK ECCH;  0 M0TE I BR E INUTRON IOATICIFNTDE I ;     ERCTRAHA CTOINS ESDRAD;     T INPOY TREN= 4 RE,OP N ; R4R,HANC # OV M  DECOS PETYM TE INTMERENC I ;  R3 @ CBIN 6:M1TE IR TEINPOP KUAC BS,YE;  L BOYM SG TO SECMOD MOV TMPSYM+1-O02,R1 MOV TMPSYM+3-O02,R2 CSECT9:   ;NEW PROGRAM SECTION ID TO DOT ID MOV HUSERPC-O02,R3 MOVB SECMOD-O02,1(R3) MOVB #RLD3.1,R0 ;LOCATION COUNTER DEFINITION MOV TBBUF-O02,R3 ;DISPLACEMENT FROM SECTION BASE MOV #10,R4  ;# OF BYTES TO RLD TRAP RLDFIL JMP EXIT-O02 ;.ASECT ;THIS PART HANDLES THE ;.ASECT DIRECTIVE ; RASECT:    ;ASECT HANDLER NEGB BINOUT-O02 ;REQUEST BINARY OUTPUT TSTB SECMOD-O02 BEQ ASECT1  ;ALREDO 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 ;  "  -11  UPD2000 CS2BLK: .WORD CMDBUF ; POINTER TO CSI BUFFER UPD2010 .WORD 0 ; POINTER TO LINK BLOCK UPD2020 .WORD 0 ; POINTER TO FILE BLOCK UPD2030 .PAGE UPD2040 ; UPD2050 ; LINK BLOCK TABLES EC D  UEINNTCO, PENO;  6 M1TE I LE B  ?ET YRSTEACARCHX SID SEESOCPR;  5 ,ROLMBSY  P CM 6:M0TE I* **G INSSCERO POLMBSY ** *  ;  RNTURE;  7 R TS R  ESOD CONTIDION CHE TET S ; R0R,HATCCN  B OV M  RSTEISEG RET SLLCA; EGTRSE  P RA T: 05EMIT NGSIESOCPRN URET R ;    TEBYUR CNTMERENC IND A ;     RSTONAMIER TLL AOR FCKHE C ; 00EMIT  R B  NETIOU RONTICAFITIENID;     R TONAMIER THE TTOIN;     S ESDRCY IN .ASECT ;PREVIOUS SECTION .CSECT MOV @USERPC-O02,R1 ;SAVE CURRENT PC FOR MOV R1,@RELPC-O02 ;PREVIOUS SECTION CMP R1,@HIRPC-O02 BLOS ASECT1 BIT #1,R1  ;EVEN OFF NEW MAX. PC. BEQ ASECT2 INC R1 ASECT2: MOV R1,@HIRPC-O02 ASECT1: MOV ABSPC-O02,TBBUF-O02 BICB #RELFLG,@HUSERPC-O02 ;CLEAR RELOCATABLE    ;FLAG BIT IN DOT SYMBOL ENTRY CLRB SECMOD-O02 ;.ASECT ID MOV #ABS1,R1 ;'.(SPACE)A MOV #ABS2,R2 ;'BS. BR CSECT9 ;.GLOBL THIS SECTION QUOTATION ;  '  -10  APOSTROPHE ;  +  -9 ;  -  -8 ;  !  -7 ;  &  -6 ;  ;  -5 ;  CR  -4 ;  ,  -3 ;  :  -2 ;  =  -1 ;  TERMINATOR CHARACTER TABLE TCHART: TCHARS = TCHART+24 TCAMUL: .BYTE  '* TCCMUL = TCAMUL-TCHARS TCADIV: .BYTE '/ TCCDIV = TCADIV-TCHARS TCAIMM: .BYTE  '#   ; IMMEDIATE TCCIMM  =  TCAIMM-TCHARS TCADEF: .BYTE  '@   ; DEFFERD TCCDEF  =  TCADEF-TCHARS TCAR UPD2060 ; UPD2070 ; SOURCE INPUT DATASET LINK BLOCK UPD2080 .WORD ERROR ; ERROR RETURN ADDRESS FOR PACKAGE UPD2090 SILKBK: .WORD 0 ; LINK POINTER (MONITOR) UPD2100 .RAD50 /SRI/ ; LOGICAL DATASET NAME UPD2110 .BYTE 3 ; NO. ADT INPOY TREN= 5 R ; R4N,MIER#T  V MO E OD CPETYM TE INTMELEMPCO;   3 @R  B OM C  ORATINRMTEE THR FOT UN HM,TE IRTBO A ;    ERCTRAHA CISTHR ROER;  R ROER I CBIN 3:M0TE ID IEIFNTDENI UERCTRAHA C ;     NGSIESOCPRR BEUM N ; 07EMIT  Q BE G INSSCERO POLMBSY;  6 M0TE I GT B  NGSIESOCPRF OPETYT ECEL S ;  R2  T TS 2:M0TE IT ENNDPEDEG LASFH NCRA B, ES Y ; R23,@R  B OV M  NTDEENEP DPETY ICHANBRE OP N ; 02EM?HANDLES GLOBAL STATEMENTS RGLOBL:  MOVB  #-1,SIZE-O02 CLRB  SAVTERM-O02 TRAP  CBTABS GLOBL1:  DEC  CURBYTE-O02 GLOBL2:  MOVB  SAVTERM-O02,R0  CMPB  #-4,R0 ;CARRIAGE RETURN  BEQ  GLOBLX  CMPB  #-5,R0 ;SEMI COLON  BEQ  GLOBLX  TRAP  ITEM  ;GETS THE NEXT SYMBOL  TSTB  CNTCHAR-O02  ;;ANY CHARACTERS FOUND  BGT  GLOBLA  ;YES THEN BRANCH GLOBLX:  JMP  EXIT-O02  ;ABORT GLOBLA:  TSTB  ITYPE-O02  ;IF ITEEG: .BYTE  '%   ; REGISTER TCCREG  =  TCAREG-TCHARS TCABLK: .BYTE  '   ; BLANK TCCBLK  =  TCABLK-TCHARS TCATAB: .BYTE  011   ; TAB TCCTAB  =  TCATAB-TCHARS TCALPA: .BYTE  '(   ; LEFT PARENTHESIS TCCLPA  =  TCALPA-TCHARS TCARPA: .BYTE  ')   ; RIGHT PARENTHESIS TCCRPA  =  TCARPA-TCHARS TCAQUO: .BYTE  '"   ; QUOTATION TCCQUO  =  TCAQUO-TCHARS TCAAPO: .BYTE  ''   ; APOSTROPHE TCCAPO  =  OF WORDS IN REST OF BLOCK UPD2120 .BYTE 0 ; UNIT NUMBER UPD2130 .RAD50 /DF/ ; PHYSICAL DEVICE NAME UPD2140 .WORD 0 ; SWITCH CHARACTERS (IF ANY) UPD2150 .WORD 0 ; SWITCH CHARACTERS UPD2160 ; UPD2170 ; SOURCE OUTPUT DATASET LINK BLOCK IT  Q BE ? G INSSCERO PERCTRAHA CSTIR F ; R4R,HAFC # MP C  ORATINRMTEE THR FOT UN HS,YE;  0 M0TE I EQ B  ?NGTIORABM TE IIS;  4 ,RINRMTE # MP C  AGFL SEDFIDIMOE TH= 2 R ; R20, R OV M: 11EMIT ONTINAMIERET DTYLIBITAINPRL AL C ; NTRI P APTR R TEACARCHL GALEIL, NO;  R ROER I CBIN S YE;  1 M1TE I GE B  ?NDOU FERCTRAHA CIDAL V AAS W ;     AGFL SUPET S1,0- R =R0;   0 R EC D  ERNTOU CERCTRAHA CNTMERENC;M WAS LEGAL  BGT  GLOBL4  ;THE BRANCH IF SYMBOL  INCB  QERROR-O02  ;ELSE FLAG  CMPB  #-3,SAVTERM-O02 ;IF LAST TERMINATOR  BEQ  GLOBL2  ;WAS , THEN BRANCH  JMP  MAIN1E-O02 GLOBL7: BISB #REDEF,@HINDEX-O02 ;SET PERMANENT SYMBOL REDEFINED FLAG. GLOBL4: TRAP SEARCH  ;SEARCH SYMBOL TABLE BGT GLOBL7  ;IF PST THEN REPEAT BEQ GLOBL6  ;IN UST BISB #GLBFLG,TFLAGS-O02 ;SET GLOBAL FLAG TRAP ENTER  ;ENTER INTO UST BR GLOBL2 ;FOU TCAAPO-TCHARS TCAADD: .BYTE  '+   ; ADDITION TCCADD  =  TCAADD-TCHARS TCASUB: .BYTE  '-   ; SUBTRACTION TCCSUB  =  TCASUB-TCHARS TCAEXC: .BYTE  '!   ; EXCLAMATION TCCEXC  =  TCAEXC-TCHARS TCAAND: .BYTE  '&   ; AND TCCAND  =  TCAAND-TCHARS TCASMC: .BYTE  ';   ; SEMICOLON TCCSMC  =  TCASMC-TCHARS TCACRE: .BYTE  015   ; CARRIAGE-RETURN TCCCRE  =  TCACRE-TCHARS TCACOM: .BYTE  ',   ; COMMA UPD2180 .WORD ERROR ; ERROR RETURN ADDRESS UPD2190 SOLKBK: .WORD 0 ; LINK POINTER UPD2200 .RAD50 /SRO/ ; DATASET NAME UPD2210 .BYTE 3 ; WORDS FOLLOW UPD2220 .BYTE 0 ; UNIT NUMBER UPD2230 .RAD50 /DF/ ; PHYSICAL DEVICE U I ; ARCHNT C CBIN R TONAMIER T AISR TEACARCH;  5 M0TE I LT B  ESOD CONTIDION CHE TND A ;     R0N IDECON 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  ONTICAFI7ND IN UST GLOBL6: MOV HINDEX-O02,R1 ;ADDRESS OF ENTRY BITB #REGFLG,TFLAGS-O02 ;IS SYMBOL A REG. EXPR. BEQ GLOBL5  ;NO INCB RERROR-O02 BISB #MDFLAG,1(R1) ;SET MULTIPLY DEFINED CMPB #-3,SAVTERM-O02 ;WAS TERMINATOR, BEQ GLOBL2  ;YES MOV #ITYPE,R3 ;NO JMP MAIN1E-O02 GLOBL5: BISB #GLBFLG,@R1 ;SET GLOBAL FLAG IN UST BR GLOBL2 ;TITLE DIRECTIVE HANDLER RTITLE:  TRAP  CBTABS  ;THIS PART  DEC  CURBYTE-O02  ;GETS  TRAP  ITEM TCCCOM  =  TCACOM-TCHARS TCACOL: .BYTE  ':   ; COLON TCCCOL  =  TCACOL-TCHARS TCAEQU: .BYTE  '=   ; EQUALS TCCEQU  =  TCAEQU-TCHARS TCTSIZE =  TCHARS-TCHART ;  .PAGE  .EVEN TERMIN: TRAP  SETUP1 ; CALL SECTION INITIALIZATION TERM0:  MOV  #-TCTSIZE,R0 ; R0 = -TCHARS TABLE SIZE TERM1:  MOV  R0,SAVTERM  ; SAVTERM = R0  BGE  SECRTN  ; TERMINATE IF NOT NEGATIVE  CMPB  TCHARS(R0),R3 ; IS TCHARS(R0) = CHARPD2240 .WORD 0 ; SWITCH UPD2250 .WORD 0 ; SWITCH CHARACTERS UPD2260 ; UPD2270 ; CORRECTION DATASET LINK BLOCK UPD2280 .WORD ERROR ; ERROR ADDRESS UPD2290 CRLKBK: .WORD 0 ; LINK POINTER UPD2300 .RTIENIDR TONAMIER TOR FLLCA; R4,@R7  R JS . DRADY TRENS R'TONAMIER T =R4;  4 ,RINRMTE # OV M  PENO;  1 M0TE I LE B  ?BSTAR OKSANBLY ANE ERTHE ER W ; AGFLBT  B ST T  ERNTOI PTEBYUR CHE T ;     TSENEMCRINE INUTROUB SBSTACB;     S AB TND AKSANBLR FOK ECCHL AL C ; S ABBT C APTR S AB TND A ;    KSANBLD DEEDMB EOR FEMITH AC ECKHE C ;  : 00EMIT ERCTRAHA CNE OERNTOI P ;     TEBYUR CHE TUPCKBA;  E YTRBCU  3 TSTB  ITYPE-O02  ;THE FIRST ITEM  BGT  TITLE3  ;AND CHECKS  INCB  QERROR-O02  ;FOR SYMBOL  BR  TITLEX TITLE3:  MOV  #TMPSYM,R1  TRAP  SERCHB  MOV  TMPSYM+1-O02,TITLEA-O02  MOV  TMPSYM+3-O02,TITLEB-O02 TITLEX:  DECB  SIZE-O02 ;SPACE WAS FOUND ASSUME DEFAULT  JMP  EXIT-O02     ; INITIALIZATION ; ; ;LIMIT HANDLER ; ; RLIMIT:  MOV  #TBBUF,R5  ;RESERVE  CLR  (R5)+  ;TWO  CLR  (R5)+  ACTER ?  BEQ  SECRTN  ; YES, TERMINATOR IDENTIFIED  INC  R0   ; R0 = R0+1  BR  TERM1  ; CONTINUE THE SEARCH ? ;  .PAGE NUMBER: TRAP  SETUP1 ; CALL SECTION INITIALIZATION NUM0:  CLR  R5   ; R5 = 0  TSTB  @R4   ; DECIMAL POINT SEEN YET ?  BLT  TERM0  ; YES, PERMIT ONLY TERMINATOR  MOV  #1,R0  ; R0 = 1  CMPB  R3,#'0  ; IS CHARACTER AN ASCII 0  BLT  NUM1  ; NOPE  CMPB  R3,#'9AD50 /CRU/ ; DATASET NAME UPD2310 .BYTE 3 ; WORDS FOLLOW UPD2320 .BYTE 0 ; UNIT NUMBER UPD2330 .RAD50 /CR/ ; DEVICE NAME UPD2340 .WORD 0 ; SWITCH UPD2350 .WORD 0 ; SWITCH CHARACTERS UPD2360 ; C DE R TEINPOE YTRBCUE TH;     S NTMERENC INETIOUBRSUS ABBT C ;     BSTAD ANS NKLA BOR FCKHE CLLCA; BSTACB  P RA T  KSANBLL IAITINS EMITH AC ESHLU F ;    GSLA FUMCNDET SERE;  M NUEC D RBCL 0 = 0 E1AS B ; 10SEBA  R CL 0 = 8 E0AS B ; 08SEBA  R CL 0 = Y ITNTUA Q ; TYTIANQU  R CL E OD CERMBNUD LIVA= E YPIT;   3 @R  B LR C  SSREDD AESYP TEMIT= 3 R ; R3E,YPIT # OV M  0 =ARCHNT C ; ARCHNT C/;WORDS  MOV  #2,R4  ;WORDS  MOV  #RLD3.3,RLDIR-O02  ;AND TELL  TRAP  RELREF  ;THE LOADER  TRAP  RLDFIL  MOV  #4,SIZE-O02  ;TO FILL SPACE  JMP  EXIT-O02 ;SUBROUTINE LINEAR SYMBOL TABLE SEARCH ;PERFORMS A LINEAR SEARCH OVER A 4 ;WORD PER ENTRY SYMBOL TABLE. ;INPUT 1) THE BASE ADDRESS OF THE 2 ;  WORD (MODULO 40) SYMBOL IN R1 ; IF THE 1ST TRIAD IS 0 ; THE TWO WORD SYMBOL IS ; NOT INCLUDED IN THE ; MATCHING PROC  ; IS CHARACTER AN ASCII 9  BLE  NUM2  ; JUMP IF PROPERLY BOUNDED NUM1:  CMPB  #'.,R3  ; CHARACTER A DECIMAL POINT ?  BNE  TERM0  ; NO, DEFAULT TO TERMINATOR  BISB  #200,@R4  ; YES, SET DECNUM'S SIGN BIT     ; DECIMAL POINT HAS BEEN SEEN  BICB  #10,NERROR  ; CLEAR THE IMPLIED DECIMAL     ; BIT IN THE NERROR FLAG  CLR  -(R6)  ; STACK A VOID OVERFLOW VALUE  BR  NUM3  ; COMPLETE NUMBER UPD2370 ; LINE PRINTER DATASET LINK BLOCK UPD2380 .IFG LPLNTH ; DO WE HAVE A LINE PRINTER? UPD2390 .WORD ERROR ; ERROR RETURN ADDRESS UPD2400 LPLKBK: .WORD 0 ; LINK POINTER UPD2410 .RAD50 /LPU/ ; DATASET NAME UPD2420 .BYTE 1 ; WORDS FOLLOW RBCL E INUTRON IOATICIFNTDE I ;     ERCTRAHA CSTIR FHE TTOIN;     S ESDRADT INPOY TREN= 4 R ; R4R,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 B+ESS ; 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 WILL ; BE MATCHED IN THE SEARCH. ; 3) THE STARTING (HIGHER) ADDRESS OF ;  THE SYMBOL TABLE IN R2 ; 4) THE 1ST FREE ADDRESS BELOW THE ;  SYMBOL TABLE IN R3 ; PROCESSING NUM2:  BIC  #177760,R3  ; CONVERT ASCII DIGIT TO BINARY  MOV  @R1,R5  ; R5 = BASE08'S CURRENT VALUE  MOV  @R2,-(R6)  ; STACK BASE10'S VALUE  BIC  #017777,R5  ; DETECT BASE08'S OVERFLOW  BIC  #017777,@R6  ; DETECT BASE10'S OVERFLOW  ASL  @R1   ; BASE08 = BASE08 * 2  ASL  @R2   ; BASE10 = BASE10 * 2  MOV  @R2,-(R6)  ; STACK BASE10'S PARTIAL SUM  ASL  @R1   ; BASE08 = BASE08 * 4 (NO SWITCHS) UPD2430 .BYTE 0 ; UNIT NUMBER UPD2440 .RAD50 /LP/ ; DEVICE NAME UPD2450 .ENDC UPD2460 ; UPD2470 ; COMMAND DATASET LINK BLOCK UPD2480 .WORD ERROR ; ERROR RETURN ADDRESS THWIR FEUF BYMPSTML IL F ;    RSTEISEG RVESAL AL C ; G REAV S APTR 3:R0UB S: EMIT ; R TEUNCOR TEACARCH0= R  ;    OLMBSYD REROER1 - <  ;    ERMBNUD REROER1 - =  ;    ERMBNU 0 =  ;    OLMBSY 0 >  ;    UEAL VEDOD=CPETY I  ;    UEAL VEDOD CI.RMTEM=ERVTSAT PUUT O ;    NENOT PUIN;    . EDSSCERO PNGEI BEMITT ENRRCUE THO T  ;   VETILARER TEUNCOR TEACARCHA S INTAINMAM TE I  ;  ';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 ENTRIES. CLR R0  ;NO MATCH. RTS R7  ;RETURN LINSR1: MOV @R1,R0  ;1ST TRIAD BEQ LINSR6  ;DON'T COMPARE IF 0 CMP R0,-6(R2) BNE LINSR4  ;NO MATCH; TRY NEXT ENTRY.  ASL  @R1  ADD  R3,@R1  ; BASE08 = BASE08 + DIGIT  ASL  @R2   ; BASE10 = BASE10 * 4  ASL  @R2  ADD  (R6)+,@R2  ; BASE10 = BASE10 + PARTIAL  ROR  @R6   ; MAINTAIN BASE10'S OVERFLOW  ADD  R3,@R2  ; BASE10 = BASE10 + DIGIT  ROR  @R6   ; MAINTAIN BASE10'S OVERFLOW  BIC  #7,R3  ; RETAIN THE BIT POSITION     ; WHICH IMPLIES DECIMAL.  BISB  R3,NERROR  ; SET THIS BIT INTO NERROR   UPD2490 CMLKBK: .WORD 0 ; LINK POINTER UPD2500 .RAD50 /CMI/ ; DATASET NAME UPD2510 .BYTE 1 ; WORDS FOLLOW (NO SWITCH) UPD2520 .BYTE 0 ; UNIT NUMBER UPD2530 .RAD50 /KB/ ; DEVICE NAME - KEYBOARD UPD2540 ; UPD2550 M.ERVTSAO NT IUEAL VEDOD C  ;   HE TCELA PND AERCTRAHA CORATINRMTE  ;   D RETEUNCOENY ANE ODNC END AFYTIENID) 3. ;   . TYTIANQUN IOATOC LINM HE TVESA  ;   D ANS ERMBNUL MACIDER OALCT ORTVEON C.) 2  ;   S.OLMBSYR FOR FEUF BYMPSTM  ;   E THN IRSTEACARCHI CIASX SIO TUPE AV S.) 1  ;   S:CEVIER SNGWILOOL FHE TDEVIRO P  ;   ESINUTRON IOATICIFNTDE IERCTRAHA CHE T  ;   S.ERMBNUR O  ;   LSBOYM SERTHEIE BTOD NEFIDEE ARS EMIT ;  # 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  ;SUBTRACT 4 WORDS FROM POINTER BR LINSR3  ;TRY NEXT ENTRY. LINSR8: MOV R2,HINDEX-O02 ;MATCH--ADDRESS OF MOV #1,R0  ;ENTRY TO HINDEX; RTS R7  ;POSITIVE VALUE TO R0. ; ;    ; (IE., ASSUME DECIMAL NUMBERS     ; ARE VIOLATIONS UNTIL THE     ; DECIMAL POINT IS SEEN.)  BISB  R3,@R4  ; SET THIS BIT INTO DECNUM NUM3:  MOVB  @R4,-(R6)  ; STACK THE DECNUM BYTE  BIC  #177617,@R6  ; OBTAIN CUMULATIVE OVERFLOW  BIS  (R6)+,@R6  ; MAINTAIN BASE10'S OVERFLOW  BEQ  NUM30  ; BASE10 HAS NOT OVERFLOWED  BISB  #160,@R4  ; MAINTAIN DECNUM'S OVERFLOW NUM30:  BITB  #210,@R4  ; COMMAND DATASET LINK BLOCK (OUTPUT) UPD2560 .WORD ERROR ; ERROR RETURN ADDRESS UPD2570 COLKBK: .WORD 0 ; LINK POINTER UPD2580 .RAD50 /CMO/ ; DATASET LOGICAL NAME UPD2590 .BYTE 1 ; WORDS THAT FOLLOW (NO SWITCHS) UPD2600 .BYTE 0 ; UNIT NUMBER UPD2610 .RAD50 /K   R.TONAMIER TEDODNC E ;   TS ITHWIR HEETOG TEMITH AC EE,INUTRO ;   G INLLCAE THO TG,INNTSERE PND AMSTE I ;   ALICCTTAYN SOFG ININEF DHE TISN IOCTUN F'SEMIT;   M TE INETIOUBRSU;   N URET;R  R7 TSR N PE.O; N OP MTE K OCBLK IN;L 6)(R,-R1 OVM K OCBLE IL;F 6)(R,-R3 OVM S ORRR ELENDHAR TONIMOT LE; ) R34(-R CL N:TION C. ENAK TAS WN"TION"C ;N URET RORRR EHE TT,ISEXT NOD DIE IL FHE TIF ;. LYALRMNOD NEURET RAS WOLTRON;C ND AEDETEL DAS WIT, EDSTXI EDYEALR ;GSDTAB THIS SUBR CONSTRUCTS THE GSD TABLE IMMEDIATELY ;AFTER THE .END STATEMENT PRECEDING THE BINARY PASS ; SUBR35: MOV #BOLB,R1 MOV #BOFB,R3 TRAP DELOUT  ;.INIT, .DELETE, .OPEN, BINARY DATA SET. ; DUMP LEADER GSD999: MOV #20.,R0 ;SET COUNT GSD06: MOV #TRLBUF,-(R6) MOV R1,-(R6) EMT WRCMD DEC R0  ;DONE? BGE GSD06  MOV  #GSDCMD,DIRCMD-O02 ; GSD DECLARATION.  TRAP  RLDINT  MOV  TITLEA-O02,R0 ; OBJECT MODULE NAME.  MOV  TITLEB-O02,R1 ; OCTAL OR DECIMAL ?  BEQ  NUM4  ; OCTAL NUMBERS EXITED.     ; DECIMAL NUMBERS PROCESSED  MOV  @R6,R5  ; R5 = BASE10'S OVERFLOW DATA  MOV  R2,R1  ; R1 = BASE10'S ADDRESS NUM4:  MOV  @R1,QUANTITY ; QUANTITY = EFFECTIVE VALUE NUM5:  MOV  R5,(R6)+  ; THE EFFECTIVE OVERFLOW DATA     ; SETS THE CONDITION CODES,     ; MAINTAIN THE STACK POINTER  BEQ  SECRTN  ; EXIT, NO OVERFLOW DETECTED  INCB B/ ; DEVICE NAME - KEYBOARD UPD2620 .PAGE UPD2630 ; UPD2640 ; FILE BLOCK TABLES UPD2650 ; UPD2660 ; SOURCE INPUT FILE BLOCK UPD2670 .WORD ERROR ; ER ALEFIE THF ;I TELEDE; T DL MTE K OCBLK IN;L 6)(R,-R1 OVM K OCBLE IL;F 6)(R,-R3 OVM T NI.I; D CMIN MTE K OCBLK IN;L 6)(R,-R1 OVM N URET RORRR EUPT SE;) R34(,-INNTCO#V MO 7:R4UB S: UTLODE ; ; UTLODEP RAT; R3O TCKLO BLEFIF OSSREDDA; R1O TCKLO BNKLIF OSSREDDA; E:NCUEEQ SNGLIAL;C ;E IL FUTTPOUN PE.O  ;G INSTXI EDYEALR AIFE IL FUTTPOUE ETEL.D  ;T SEA AT DUTTPOUT NI.IO TNETIOUBRSU ;7 RS RT 1:ANLE CS RL MTE T SEA AT DSEEAEL;R 6)(R,-R1 OVM S CL MTE E IL F  CLR  R2  ; 0 TO FLAGS.  CLR  R3  MOV  #10,R4  TRAP  RLDFIL  MOV  #ABS1,R0  MOV  #ABS2,R1  MOV  #ASCFLG,R2  ;ENTER ASECT (PROG. SECTION, DEFINED)  TRAP  RLDFIL ;SEARCH UST FOR ALL .GLOBL'S ASSOCIATED WITH ;THE ABSOLUTE SECTION. ; MOV CONTOP-O02,R2 ;THE STARTING ADDRESS OF UST MOV USRTOP-O02,R3 ;1ST FREE LOCATION BELOW UST MOV #WORD1,R1 ;ADDRESS CONTAINING .GLOBL NAME CLR @R1  ;ACCEPT ANY NAME. MOV #WORD3,R4 ;3RD WORD OF  TERROR  ; SET TRUNCATION ERROR  BR  SECRTN  ; EXIT, OVERFLOW DETECTED ;  .PAGE NCHAR:  TRAP  SETUP1 ; CALL SECTION INITIALIZATION  INC  R0   ; R0 = 2  CMPB  R3,#'0  ; IS CHARACTER ASCII 0 ?  BLT  CHAR01  ; NOPE  CMPB  R3,#'9  ; IS CHARACTER ASCII 9 ?  BGT  CHAR01  ; NOPE CHAR00: SUB  #22,R3  ; BOUNDED, START TRANSLATION  BR  CHAR03  ; COMPLETE THE TRANSLATION FCHAR:  TRAP  SEROR RETURN UPD2680 .BYTE 0 ; HOW OPENED UPD2690 .BYTE 0 ; ERROR CODE UPD2700 SIFLBK: .WORD 0 ; FILE NAME - WORD 1 UPD2710 .WORD 0 ; FILE NAME - WORD 2 UPD2720 .WORD 0 ; FILE NAME EXTENSION UPD2730 .WORD 0 ; USER ID CODE [GN,UN]SELO;C 6)(R,-R1 OVM O ;N  N1EACL EQB D T'NI IET STADAS ;I  R1@T TS 4:R4UB S: ANLE;C CKLO BNKLIF OSSREDD=AR1 ; : UTNP;I  ;. EDASLERET SE ;A AT DHE TND AEDOSCLS ILEFIE TH, 'DITINN EE;B AS HET STADAD IEIFECSPF I-- -ANLE CNETIOUBRSU ; E AG.P ; RNTURE;  7 R TS R  SSCERO PHE TUEINNTCO, ES Y ; 00KBBL  I BH ? 0)T(ISRLCU> 0 RIS;  T ISRLCU0, R MP C  NKLA BIISC A =0)(RERFFBU;  ) R0-( ,#'  B OV M: 00KBBL R0  C IN S ESDRADE AS BRSFEUFMATCH. MOV #GLBFLG,@R4 ;.GLOBL GSD05: TRAP LINSRCH BEQ GSD01  ;NO MATCH BITB #RELFLG,@R2 ;ADDRESS OF MATCH IN R2 & HINDEX BNE GSD04  ;RELOCATABLE .GLOBL TRAP ENTRGL  ;ENTER SYMBOL IN RLD BUFFER GSD04: SUB #10,R2  ;HINDEX-4 WORDS. BR GSD05  ;CONTINUE LINEAR SEARCH. ;ENTER ALL RELOCATABLE PROGRAM SECTIONS ;AND ASSOCIATED .GLOBL SYMBOLS. GSD01: MOV PERTOP-O02,R5 ;BOTTOM OF .CSECT AREA MOVB #1,WORD3+1-O02 ;UNNAMED .CSECT ID GSD10: MOV CONTOP-O02,R3 ;TTUP1 ; CALL SECTION INITIALIZATION  INC  R0   ; R0 = 2 CHAR01: CMPB  #'$,R3  ; IS CHARACTER ASCII $ ?  BNE  CHAR02  ; NOPE  SUB  #11,R3  ; YES, INITIATE TRANSLATION  BR  CHAR03  ; COMPLETE THE TRANSLATION CHAR02: CMPB  #'.,R3  ; IS CHARACTER ASCII . ?  BEQ  CHAR00  ; YES, START TRANSLATION  CMPB  R3,#'A  ; IS CHARACTER ASCII A ?  BLT  NUM0  ; NOPE  CMPB  R3,#'Z  ; IS CHAR (OCTAL) UPD2740 .WORD 0233 ; BYTE 1 SPARE; BYTE 2 PROTECTION CODE UPD2750 ; UPD2760 ; SOURCE OUTPUT FILE BLOCK UPD2770 .WORD ERROR ; ERROR RETURN UPD2780 .BYTE 0 ; HOW OPENED UPD2790 .BYTE 0 ; ERROR CODE BNGTIIS L ;     VETIECFF EHE T0+ R =R0;  0 ,RSTLIUR C DD A: 01BRSU F:BULK;B NENO UTTPOU;    . NKLA B ATHWID LEIL FBEO T  ;    ONTISIPOR FEUF BSTLAE THF O  ;    PTRISCUB SHE T =R0 T PUIN;    ) (0ERFFBUO T0)(RERFFBUM RO F ;   S.NKLA BIISC A ;   THWIR FEUF BNGTIIS LVETIECFF EHE TLLFI;   S ERCTRAHA CERFFBUG INSTLIK ANBLE INUTROUB S ;  RNTURED ANS ERSTGIRET SEL AL C;G REOP P APTR G LA FCOR EACL;  OP 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) TRAP RLDFIL  ;ENTER INTO RLD BUFFER CMPB RLDCNT-O02,#51 BLT GSD07 TRAP OUTBIN  ;NO MORE ROOM; OUTPUT TRAP RLDINT  ;AND REFRESH RLD BUFFER. GSD07: MOV CONTOP-O02,R2 ;THE STARTING ADDRRSS OF UST MOV USRTOP-O02,R3 ;1ST FREE LOCATION BELACTER ASCII Z ?  BLE  CHAR03  ; CHARACTER IS BOUNDED     ; CHECK FOR LOWER CASE  CMPB  R3,#141  ; IS CHAR. LOWER CASE A ?  BLT  NUM0  ; CHARACTER NOT BOUNDED  CMPB  R3,#172  ; IS CHAR. LOWER CASE Z ?  BGT  NUM0  ; CHARACTER NOT BOUNDED  BICB  #040,R3  ; INTERNALLY CONVERT ALL     ; LOWER CASE TO UPPER CASE.  MOVB  R3,@CURBYTE  ; EXTERNALLY CONVERT ALL     ; LOWER CASE TO UPPER UPD2800 SOFLBK: .WORD 0 ; FILE NAME - WORD 1 UPD2810 .WORD 0 ; FILE NAME - WORD 2 UPD2820 .WORD 0 ; FILE NAME EXTENSION UPD2830 .WORD 0 ; USER CODE [GN,UN] UPD2840 .WORD 0233 ; BYTE 1 SPARE; BYTE 0 PROTECTION CODE UPD2850 ; UPD2860 ; CORRECG LAOF C LR C 1:STOL CN IOETPLOM;C MDTCWT EM  UTTPOUD ANMMCOR FOT AI;W 6)(R,-LBCO#V MO  ;; MDRCWT EM  UTTPOUD ANMMCOE ICRVSE;) R6-(B,OL#C OVM . ERNTOI PCKTA SHE TRETOES R;    . LFE THR TEAFL UL N AERFFBU;  )+R6@(  B LR C  NTOU CTEBYT ENRRCUT ENEMCRIN;  0)(R - NC I  TEBYA AT DSTIR F'SERFFBU;      LOE THF OSSREDD AHE TDD A; 6 @R0, R DD A  NT CTEBYT ENRRCUS O' LCKTA S; ) R6-(+,0)(R  V MO 4 0+ R =R0;  )+R0,()+R0 ( MP C  SSREDD AERFFBUK OW 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: TRAP LINSRCH BEQ GSD09  ;NO MATCH TRAP ENTRGL  ;ENTER SYMBOL IN RLD BUFFER SUB #10,R2 BR GSD08 GSD09: SUB #10,R5  ;LOOK FOR NEXT .CSECT INCB WORD3+1-O02 ;INCREMENT .CSECT ID BR GSD10 ;ENTER THE TRANSFER ADDRESS GSD11: MOV #TRNCMD!DEFFLG,R2 ;DEFINED, TRANSFER ADDRESS SPEC.CASE CHAR03: BIC  #177700,R3  ; COMPLETE THE TRANSLATION  MOVB  R3,@SYMBOL  ; SAVE CHARACTER IN TMPSYM  INC  SYMBOL  ; SYMBOL = SYMBOL+1 SECRTN: TRAP  SETREG ; CALL SET REGISTERS  MOVB  R0,SFLAG  ; SFLAG = R0  RTS  R7  ; RETURN ;  .PAGE ;SETUP1: SUBR22: MOV  (R6)+,R0  ; SAVE THE RETURN ADDRESS  TRAP  SAVREG ; CALL SAVE REGISTERS  MOV  R0,-(R6)  MOV  #1,R0  ; R0 = 1  MOV  #BASE08,R1  TION FILE BLOCK (INPUT) UPD2870 .WORD ERROR ; ERROR RETURN UPD2880 .BYTE 0 ; HOW OPENED UPD2890 .BYTE 0 ; ERROR CODE UPD2900 CRFLBK: .WORD 0 ; FILE NAME - WORD 1 UPD2910 .WORD 0 ; FILE NAME - WORD 2 UPD2920 .WORD 0 ACST; ) R6-(0,RV MO  ERADHER FEUF BINTAOB, ES Y ; 0 ,R26 # UB S  PENO; T1LSCO  Q BE ? D TEESQURET PUUT ONDMAOM C ;  R0G,LAOF C V MO S ERSTGIREE AV SLLCA; EGVRSA  P RA T: 27BRSU T:ISOL;C RNTURE;  7 R TS R  DRADD KEACST= ) ,3(2RSADBH; +2RSADBH+,6)(R  V MO ) ,3(2RSADBH= ) ,1(0RSADBH;  ) R2-(2,@R  V MO ) ,1(0RSADBHK ACST;  ) R6-(+,2)(R  V MO S SEESDRADR DEEA HERFFBUO I/E ATOT R ;    SSREDD ARSDEEA HERFFBUI S ; MOV #ABS1,R0 ;NAME OF 6 BLANKS MOV #ABS2,R1 TSTB RSLMOD-O02;TYPE OF EXPRESSION BEQ GSD02  ;ABSOLUTE ;RELOCATABLE .END MOV GLBSY1-O02,R0 ;.CSECT NAME OF MOV GLBSY2-O02,R1 ;.END EXPRESSION BISB #RELFLG,R2 ;RELOCATABLE FLAG. GSD02: MOV JMPADR-O02,R3 ;TRANSFER ADDRESS.  BIC  #RSTFLG,R2  TRAP  RLDFIL  TRAP  OUTBIN  ;START NEW BUFFER  MOV  #GSDEND,DIRCMD-O02 ;GSD TERMINATION.  TRAP  RLDINT  TRAP  OUTBIN  MOV  #RLDCMD,DIRCMD-O02 ; 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   ; 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  ; FILE NAME EXTENSION UPD2930 .WORD 0 ; USER CODE [GN,UN] UPD2940 .WORD 0233 ; BYTE 1 SPARE; BYTE 0 PROTECTION CODE UPD2950 ; UPD2960 ; LINE PRINTER FILE BLOCK UPD2970 .IFG LPLNTH ; DO WE HAVE A LINE PRINTER UPD2980 .WORD ERROR ; ERROR RETU     RSFEUF BLEABILVA A =R0;  0 ,RR2 @ OV M  ERFFBUG INSTLIK ANBLL AL C ; F BULK B APTR R TEINPOT ISRLCUT SE;  3 @R1, R OV M  NTOU CTEBYS ERFFBUO ER Z ; )+R1 ( LR C  DEMOS ERFFBUE IZALTINI I ; )+R1,(DEMOLO # OV M  AX MRSFEUF BZELIIAITIN;  + 1)(R0, R OV M  NTOU CTEBYX MAO L =R0;  0 ,RBCOM#L  V MO S ESDRADR DEEA HLOS ERFFBU;     E IVCTFEEF, 2.-2R1= 1 R ; R16,#2 B SU 2:ATOT R? D TEESQURET PUUT ONDMA ;RLD BLOCK DECLARATION  TRAP  RLDINT  CLR  R1  ;UNNAMED .CSECT  CLR  R2  MOVB  #RLD3.1,R0  ;ENTER INITIAL CLR R3   ;IMPLICIT RLD. (LOCATION COUNTER MOV #10,R4   ;DEFINITION) TRAP RLDFIL TRAP OUTBIN RTS R7 ; ; ;SUBROUTINE TO ENTER A GLOBAL SYMBOL ;POINTED TO BY R2 INTO THE RLD BUFFER. ; ;ENTRGL: SUBR42: TRAP SAVREG  ;SAVE REGISTERS MOV R2,R5  ;ADDRESS OF ENTRY MOV -6(R5),R0 ;1ST TRIAD MOV -4(R5),R1 ;2ND TRIAD MOV -2(LSTBUF(R3) BYTE  BICB  #370,@R3  ; ZERO EFF. BYTES HIGH 5 BITS  BISB  #060,@R3  ; SET THE OCTAL 60 BITS  ASR  R4   ; SHIFT R4 RIGHT 3 BITS  BIC  #100000,R4  ; PREVENT SIGN PROPAGATION  ASR  R4  ASR  R4  DEC  R2   ; R2 = R2-1  BGT  SUBR13  ; ITERATE THE PROCESS  RTS  R7  ; RETURN ;  .PAGE .EOT   ;END OF FILE #12  ; SUBROUTINE END LINE   ; THIS SUBROUTINE COMPLETELY FORMATS THE LISTED RN UPD2990 .BYTE 0 ; HOW OPENED UPD3000 .BYTE 0 ; ERROR CODE UPD3010 LPFLBK: .WORD 0 ; FILE NAME - WORD 1 UPD3020 .WORD 0 ; FILE NAME - WORD 2 UPD3030 .WORD 0 ; FILE NAME EXTENSION UPD3040 .WORD 0 ; USER CODE [GN,UN] OM C;T ISOL C APTR : T1TARO UTROER MPJ ) R6-(3,RR#E OVM E ICEV DUTTPOU; 6 @R ABSW  OND EO;6 @R7,37#C BI 3:ROER 6)(R,-1)(R-1ATSTLO OVM S AGFLE THR EACL, ES Y;) R1T(TAOS,LOF#E  B IC B  UEINNTCO, PENO;  T1TARO  Q BE ? T PUUT OEDSTLIN OOF E;) R1T(TAOS,LOF#E  B IT B  CHANBR- O ;N T1TARO EQB ? SSREOGPRN INGHIYTANS WA;0 RT TS 4:ATOT RS ESGRRO PING INTHMESOT SE;0 RC IN  ONTILEMPCOR FOT AI;W MDTCWT EM  6)(R,-LBSL#V MO  CHANBR- O ;N T4TARO EQB ? SSRER5),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, TRAP RLDFIL  ;AND INTERNAL/GLOBAL. CMPB RLDCNT-O02,#51 BLT ENTRG0  ;STILL ROOM IN RLDBUFFER TRAP OUTBIN  ;OUTPUT RLD BUFFER TRAP RLDINT  ;INITIALIZE RLD BUFFER ENTRG0: TRAP POPREG  ;RESTORE REGISTERS AND RETURN .IFNDF NOSEG ENDO02: SIZO02=ENDO02-BEGO02 ; .EOT   ;END OF FILE #2 ;***** OVERLAY  ; OUTPUT BUFFERS AND DRIVES THE BINARY   ; OUTPUT SUBROUTINE.   ; *** NOTE ***   ; EBBUF INCREMENTS THE USERS'S PROGRAM COUNTER ;ENDLINE: SUBR08: TRAP  SAVREG ; CALL SAVE REGISTERS  MOV  CURLIST,R5  ; R5 = THE CURRENT BUFFER'S     ; OUTPUT HEADER ADDRESS  MOV  R5,ENDL06+2  ; PLACE THIS HEADER'S ADDRESS     ; INTO LO CALLING SEQUENCE ENDL10: CMP  (R5)+,(R5)+  ; R5 = R5+4  MOV  R5,-(R6)  ; STACK THIS ADDRESS  CLR  (R UPD3050 .WORD 0233 ; BYTE 1 SPARE; BYTE 0 PROTECTION CODE UPD3060 .ENDC UPD3070 ; UPD3080 ; COMMAND INPUT FILE BLOCK UPD3090 .WORD ERROR ; ERROR RETURN UPD3100 .BYTE 0 ; HOW OPENED UPD3110OGPRN INGTIIS LOLMBSYS ;I LBSL STT: T3TARO SSREOGPRN INGHIETOM SET;S  R0 NCI N IOETPLOM COR FITWA;D CMWT MTE ) R6-(B,OL#L OVM H NCRA B -NO;3 ATOTRQ BE  S?ESGRRO PING INSTLIS ;I LBLO STT S ESGRRO PING INTHNOT SE;0 RR CL  SSREDD ASTLIUR C =R3;  3 ,RSTLIUR#C  V MO S ESDRADS ERADHE;     R FEUF BUTNP ICEURSO;     S ERFFBUE IVCTFEEF= 1 R ; R12,@R  V MO S SEESDRADS ERADHE;     R FEUF BUTNP IHE TNGNIAINTCO;      #3 ***** O03=BEGOVR-BEGO03  ;COMPUTE OFFSET FROM    ;RUN TIME OVERLAY AREA BEGO03: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVERLAY. ; JMP REND  ;ENTRY1 JMP END11  ;ENTRY2 JMP SUBR12  ;ENTRY3 JMP SUBR15  ;ENTRY4 JMP IFPRO  ;ENTRY5 JMP IFPRO2  ;ENTRY6 JMP RENDC  ;ENTRY7 JMP SUBR38  ;ENTRY8 .ENDC ; ; ; REND:   ; .END ASSEMBLY DIRECTIVE PROCESSOR TRAP EXPE1  ;EVALUATE EXPRESSION MOV RESULT-O03,JMPADR-O03 ;INCREMENT TAPE COUNT I 5)+  ; CLEAR LO BYTE COUNT CMP LINENO,LASTLN ;SEE IF THIS IS A NEW LINE, OR AN BNE INCLINE  ;EXTENSION OF THE PREVIOUS MOV #6,R4  ;EXTENSION - BLANK OUT LINE NUMBER CLINE: MOVB #' ,(R5)+ DEC R4 BNE CLINE BR ENDLAA ; INCLINE: MOV LINENO,-(R6) ;SET UP CALL TO DOS .BIN2D SUBROUTINE MOV (R6),LASTLN ;SAVE LINE NUMBER MOV R5,-(R6) ; ADD #6,R5  ;POINT R5 TO ERROR NO. IN SOURCE MOV #3,-(R6) ; EMT 42  ;CONVERT LINE NO. TO ASCII DECIMAL    ;A  .BYTE 0 ; ERROR CODE UPD3120 CMFLBK: .WORD 0 ; FILE NAME - WORD 1 UPD3130 .WORD 0 ; FILE NAME - WORD 2 UPD3140 .WORD 0 ; FILE NAME EXTENSION UPD3150 .WORD 0 ; USER ID CODE [GN,UN] UPD3160 .WORD 0233 ; BYTE 1 SPARE; BYTE 0 PROTECTION CODE UPD3170 ; E BLTAE THF OSSREDD A =R2;  2 ,RRSADBH # OV M: 02BRSU E:ATOT;R 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 ARSSCENEF IN,IOATINRMTEO LESFIRIVE ;   : KSAS TNGWILOOL FHE TMSORRFPEE INUTRON ;CASE TAPE STILL IN READER MOV SILB-O03,R4 INC 14(R4) ;TAPE COUNT TSTB ERROR-O03 BNE END00 TSTB ICOUNT-O03 BLE END00 CMPB #-1,RSLMOD-O03 BNE END01 INCB AERROR-O03 ;.GLOBL IN .END EXPRESSION END00: MOV #1,JMPADR-O03 END01: MOV JMPADR-O03,TBBUF-O03 CLRB BINOUT-O03 MOVB #100,PAGING-O03 TSTB CNSTLV-O03 ;STILL IN A NEST OF CONDITIONALS? BEQ END01A  ;NO - BRANCH INCB QERROR-O03 ;QUESTIONABLE SYNTAX END01A: TRAP ENDLINE END11: ;SYMBOL ND LEAVE IN SOURCE OUTPUT ENDLAA: MOV R5,CURLIST  ; CURLIST = EFF DATA(0) ADDR  MOV  R5,R4  ; R4 = THE ERROR FIELD'S  TST  (R4)+  ; TERMINAL ADDRESS  MOV  #17,R0  ; R0 = 23.  TRAP  BLKBUF ; CALL BLANK BUFFER  CLR  R3   ; R3 = 0  MOV  #ERRTAB,R2  ; R2 = ERROR TABLE BASE ADDR. ENDL00: SWAB  @R2   ; EFF ERROR COUNTER ZERO ?  BEQ  ENDL01  ; YES  CLRB  @R2   ; NO, CLEAR THE COUNTER  MOV  #1,R3  ; SET R3 = 1  C UPD3180 ; COMMAND OUTPUT FILE BLOCK UPD3190 .WORD ERROR ; ERROR RETURN UPD3200 .BYTE 0 ; HOW OPENED UPD3210 .BYTE 0 ; ERROR CODE UPD3220 COFLBK: .WORD 0 ; FILE NAME - WORD 1 UPD3230 .WORD 0 ; UB SISTH;   S ERFFBUT PUUT/OUTNP ITETAROE INUTROUB S ;  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;P IDALNV IESLIMP IT..G  ;    D LIVAS IEPLIM. LE .  ;    TSULES REDOD CONTIDION CT:PUUT O ;    TYLIBITAINPRE INUTROUB S ;  RNTURETABLE IS FIXED SO ;ALL OF FREE CORE TO STACK. MOV USRTOP-O03,R6 MOV R6,STKBOT-O03 TSTB SECMOD-O03  ;.ASECT BEQ END20 MOV @USERPC-O03,R4 ;CURRENT PC CMP R4,@HIRPC-O03 ;TO MAX. PC BLOS END20  ;IF THE BIT #1,R4  ;FORMER IS HIGHER BEQ END24  ;EVEN. INC R4  ;MAKE EVEN END24: MOV R4,@HIRPC-O03 END20: MOV ERRSUM-O03,R4 MOV #ERRMSG+16-BEGO03+BEGOVR,R3 MOV #6,R2 TRAP BINASC  ;CALL BIN TO ASCII CONVERTER MOV #PASS,R5 CMPB LOPASS-O03,MP  R5,R4  ; EXCEEDED ERROR FIELD ?  BHIS  ENDL01  ; YES  MOVB  +1(R2),(R5)+ ; NO, BUFFER ASCII ERROR CODE     ; INCREMENT ADDRESS POINTER ENDL01: SWAB  (R2)+  ; REINSTATE ERROR TABLE WORD     ; INCREMENT ADDRESS POINTER  CMP  R2,#MAXERR  ; TABLE COMPLETELY EXAMINED ?  BLO  ENDL00  ; NOPE  ADD  R3,ERRSUM  ; YES, ERRSUM = ERRSUM+R3  MOVB  R3,ERROR  ; ERROR = R3 ;  .PAGE  MOV  R4,R5  ; R5 = THE LOCATION FIELD'S  ADD  FILE NAME - WORD 2 UPD3240 .WORD 0 ; FILE NAME EXTENSION UPD3250 .WORD 0 ; USER ID CODE UPD3260 .WORD 0233 ; BYTE 1 SPARE; BYTE 0 PROTECTION CODE UPD3270 .PAGE UPD3280 START =. ; STARTING LOCATION OF PACKAGE UPD3290 MOV #LOW,SP ; INITIALIZE STACK P;  7 R TS R  RNTURE;  7 R TS R0:CHET;G N.IOATINRMTEE URNS I ; R3E,YTRBCU @ VBMO ; 0  MOVB  #'%,1(R1)  ; YES, REGISTER DECOD8: BITB  #LABFLG,@R5  ; IS THIS SYMBOL A LABEL ?  BNE  DECOD9  ; YES  MOVB  #'=,@R1  ; NO, DIRECT ASSIGNMENT DECOD9: TST  (R1)+  ; R1 = R1+2 MOV R1,R3  BITB  #DEFFLG,@R5  ; IS SYMBOL UNDEFINED ?  BNE  DECODA  ; NOPE  BITB  #GLBFLG,@R5  ;THIS PORTION ENABLES OUTPUT  BEQ  DECODH  ;OF 0 IN CASE OF AN UNDEFINED  MOVB  #'G,7(R1) DECODH:  MOV  ?(R6)+,DAYS+2  ; SET FEB LENGTH BACK TO 28 BR ENDLXX ; ; TCALC: CLR R4 SUB R1,R3 SBC R2 SUB R0,R2  ;DBLE PREC SUBTRACT BLT TCALC2  ;(R2,R3) = (R2,R3) - (R0,R1) INC R4 BR TCALC+2 ; TCALC2: ADD R1,R3  ;ADD IN THE LAST SUBTRACT THAT ADC R2  ;FLIPPED THE SIGN ADD R0,R2 ; TCALC3: MOV R4,-(R6) MOV #BCD,-(R6) MOV #3,-(R6) EMT 42  ;CONVERT NUMBER TO DECIMAL ASCII MOV (R5)+,R4 MOVB BCD+3,(R4)+ MOVB BCD+4,(R4)+ RTS R5 ; @ UPD3920 SUB R4,SP ; MOVE STACK POINTER TO STATUS CELL UPD3930 JSR PC,ERR ; GO DO ERROR STUFF UPD3940 JMP ST100 ; ERROR- GO TRY AGAIN UPD3950 ST210: TST SOLKBK+6 ; DATASET SPECIFIED(>0) OR NOT (=0)? UPD3960 BNE ST215 ; BRANCH IF DATASET SPEC. UPD3970 DEC OUTPUT ; SI=SO BY DEFAULT. SET FLAG=-1. UPD3980 L 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 ;  DCEN. E ODPCOP JM  EGOSNF FD.I  DCEN. 1 RYNTEP JM  5D OR.W  RLNTCO APTR  EGOSNF NDIF. H NCRA B -NO; A 20MN GTB ? NELIS HI TLEMBSEAS; T ACNTDB STT D MEORRFPEG INSSLA CICONEMMN;   5:N2AI MR LENDHAE IVCTREDI;     E ATRIOPPRAPE THO TMPJU;  Y ITNTUAB#"**,-(R6)  ; YES, VALUE = ASTERISKS DECODG:  MOV  @R6,@R1  MOV  @R6,2(R1)  MOV  (R6)+,4(R1)  BR  DECODJ  ; CHECK AVAILABLE SPACE DECODA:  MOV  -2(R5),R4  ; R4 = EFFECTIVE VALUE  MOV  #6,R2  ; R2 = 6, ITERATIONS  ADD  R2,R3  ; R3 = R3+6  TRAP  BINASC ; CALL FOR BINARY TO ASCII CONVERSION DECODJ: CLR R4 BISB 1(R5),R4 ;CONTROL SECTION ID. CMP R4,#1  ;DON'T OUTPUT .ASECT OR BLE DECODI  ;UNNAMED .CSECT ID C ; DAYS: .WORD 31.,28.,31.,30.,31.,30.,31.,31.,30.,31.,30.,31. ASCDAY: .ASCII /0102030405060708091011121314151617181920/ .ASCII /2122232425262728293031/ YEAR: .ASCII /707172737475767778798081828384858687888990/ TIMER: .WORD 0 BCD: .WORD 0,0,0 ; ; ENDLXX: MOV #PAGBUF,-(R6) ;I/O SERVICING MOV #LOLB,-(R6) EMT WRCMD ENDL07: CLRB RLDFLG  CLR  SIZE  ; SIZE = 0 TST LISTKEY  ;CHECK FOR LIST SUPPRESS BGE ENDLX8 CLR LISTKEY ENDLX8:  TSTB  ERRD BR ST220 ; GO ON. UPD3990 ST215: TST SOFLBK ; IS A FILE SPECIFIED? UPD4000 BNE ST220 ; YES. BRANCH. UPD4010 MOV R5,OUTPUT ; SET FLAG FOR NO FILE WITH DEVICE GIVEN UPD4020 ST220: CLR CMDBUF ; SET CSI2 FOR INPUT FILES. UPD4030 MOV R3,SILKBK+4 ; SET NUMBER WORDS TO FOLLOW UPD4040 MOV #SILKB@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 OICONEMMN; GSLATFR,DISM#A  B IT B: 24INMA DCEN. D ORRW MPJ G SENO DFIF. C ND.E  Y3TREN MPJ 4 RDWO. L TRONCP RAT G SENO DFFN.I D:ORF CMP R4,#MDFLAG ;DON'T OUTPUT BEQ DECODI  ;MULDEF FLAG MOV #3,R2  ;3 DIGIT NUMBER ADD #13,R3  ;COLUMN AFTER RIGHTMOST DIGIT TRAP BINASC  ;BINARY TO ASCII CONVERSION DECODI:  BITB  #GLBFLG,@R5  ;SUFFIX G  BEQ  DECODB  MOVB  #'G,7(R1) DECODB: TRAP SETREG  ADD  #26,CURLIST-O03  ; SYMBOL FIELD =22(10) CHARS.  INCB  LISTSC-O03  ; INCREMENT SYMBOL COUNTER  BGT  DECODC  ; LO BUFFER FULL, OUTPUT  JMP  STLST1  GOR  ; WAS THE LINE ERRORED ?  BEQ  ENDL09  ; NOPE  CMPB  PASS,ERPASS  ; ERROR LISTING PASS ?  BNE  ENDL09  ; NOPE  MOV  BHADRS,COFLAG ; REQUEST COMMAND OUTPUT     ; COFLAG = BHADRS(0,1) ENDL09: ADD #34,SRCIN  CLRB  ERROR  ; ERROR = 0  TRAP  POPREG ; CALL SET REGISTERS AND RETURN ;  .PAGE   ; SUBROUTINE ENTER BINARY BUFFER    ; INPUT BINOUT BYTE FLAGS    ; > 0, ENTER TBBUF DATA    ;  INTO BINBUHK,CS2BLK+2; SET LINK BLOCK POINTER FOR CSI2 UPD4050 MOV #SIFLBK,CS2BLK+4; SET FILE BLOCK POINTER FOR CSI2 UPD4060 MOV #CS2BLK,-(SP) ; GET FIRST (SOURCE) INPUT FILE UPD4070 EMT 57 ; UPD4080 MOV (SP)+,CS2RET ; GET STATUS UPD4090 SUB R5,CS2RET ; SET UP STATUS. 0 (-1) OR 1 (0) OK. UPD4100 BMI ST300 ; ALL OK WR LENDHAE IVCTREDID OR.WF OONTIOR PNTDESIRE ;; 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  P RA T  NGDIEN PISM TE IISTH;  2 N2AI M LE B  ?PETYS EMITE INRMTEDE;  E YPIT  B ST T: 21INMA ITEX  R B  NGTIIS LHE TATRMFO;  J ; PROCESS THE NEXT SYMBOL DECODC:  TRAP  STLLST ; CALL SYMBOL TABLE LISTED OUTPUT  JMP  STLST0  ; SUBROUTINE SYMBOL TABLE LISTED OUTPUT ;STLLST: SUBR15: MOV  #CURLIST,R0  BIC  #1,@R0  MOV  #005015,@0(R0)  ADD  #2,@R0  CLR  @0(R0)  MOV  BHADRS+2-O03,R1  SUB  #26,R1 MOV R1,-(R6) ;STACK BUFFER ADDRESS  CMP  (R1)+,(R1)+  SUB  R1,@R0  MOV  @R0,@R1 STLLS1: MOV #0,-(R6) ;OUTPUT SYMBOL TABLE    ;NOT RE-ENTRANT EMT WRKF    ; = 0, FORCE BINBUF OUT AND    ;  GENERATE BINARY EOT    ; < 0, FORCE BINBUF OUT    ; OUTPUT NONE    ; BBINIT PROVIDES DIRECT    ; SUPPORT ;EBBUF: SUBR09: TRAP  SAVREG ; CALL SAVE REGISTERS  MOV  #TBBUF,R4  CLR  R0   ; REQUEST REGISTER SETUP  TRAP  BBINIT ; CALL BINARY BUFFER SETUP  MOVB  SIZE,-(R6)  ; STACK OBJECT DATA SIZE  TSTB  BINOUT  ; DETERMINE PROCESSING TYPE  BGT  EL. ANOTHER SPEC TO GO. UPD4110 BEQ ST400 ; STILL OK. DEFAULT CORRECTION FILE. UPD4120 MOV A72,ERRNUM ; SET ERROR NUMBER UPD4130 SUB R4,SP ; MOVE STACK POINTER TO STATUS CELL UPD4140 JSR PC,ERR ; GO DO ERROR STUFF UPD4150 JMP ST100 ; GO TRY AGAIN UPD4160 ST300: TST SILKBK+6 ; ANY DATA SET?     TOD SE UIS1 - =ZESI;      !EDITEXD AND IEIFNTDE I;    . CRD ANN LOCOMISE;  ZESI CBDE A:20MN 23INMA  T BL  +2R0 =R0;  0 ,R#2  D AD D IEIFNTDE IMAOM C ; 23INMA  Q BE 1 0+ R =R0;   0 R CBIN R VENE: = S ORATINRMTE;     D SEESOCPRS EMITD OI VO, N ;    ES Y ; 21INMA  T BG ? D UNFOS ERCTRAHA CNY AREWE;  R HATCCN  B ST T  ARLE CAGFLG INNDPEM TE I ;   : 20INMA ISYSALANX TAYN SALTINI I; NCMD  RTS  R7 ;  .PAGE ;ARITHMETIC CONDITIONAL ASSEMBLY PROCESSORS ; ;FORM --- .IF??? EXPRESSION ;.IFZ IF EQ 0 ;.IFG IF GT 0 ;.IFGE IF GE 0 ;.IFL IF LT 0 ;.IFLE IF LE 0 ;.IFNZ IF NE 0 IFPRO: CLR R0 ;PRIME COND TO EVALUATE TRAP COND ;THE EXPRESSION TST RESULT-O03 ;TEST THE RESULT JMP IF000-BEGO03+BEGOVR(R1) IF000: BNE IF020     ;IFZ BR IF010 BGT IF020 ;THE CONDITIONAL BRANCH IS ;IFLE BR IF010 ;TAKEN WHEN THE REQUESTED BGEOBBUF0  ; SIMPLE OBJECT DATA BUFFERING  BEQ  EBBUF2  ; OUTPUT THE BUFFER AND EOT  MOV  @R4,@R5  ; SET THE ASSEMBLY LOCATION     ; COUNTER = TBBUF(0,1)  CMP  @R2,#6  ; BUFFER 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 P UPD4170 BNE ST310 ; YES. OK. UPD4180 MOV A73,ERRNUM ; SET ERROR NUMBER UPD4190 CLR -(SP) ; PUT ZERO ON TOP OF STACK FOR ERROR UPD4200 JSR PC,ERR ; GO DO ERROR STUFF UPD4210 JMP ST100 ; NO. TRY AGAIN UPD4220 ST310: CLR CMDBUF ; CLEAR TYPE. SET FOR INPUT FILES. UPD GEPA .  ;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 SDYEALR AAGFLL BELAS I ; R1,@LGBFLA # TBBI S AS PSTIR FOT ND,UNFO;   N:N1AI ME BLTAL BOYM S'SERUSO NT I ;     ONTIR IF020 ;CONDITION IS NOT SATISFIED ;IFL BR IF010 BLT IF020     ;IFGE BR IF010 BLE IF020     ;IFG BR IF010 BNE IF010     ;IFNZ IF020: INCB DNTACT-O03 ;CONDITION NOT SATISFIED TST LISTON-O03 ;LISTING SUPPRESSES? BEQ IF010  ;BRANCH IF NO INC LISTKEY-O03 ;INCREMENT .IF NESTED COUNTER ;INCREMENT DON'T ASSEMBLE COUNTER. IF010: MOVB #-1,SIZE-O03 ;LISTING FORMAT CONTROL JMP EXIT-O03 ;EXIT IFPRO2: MOV #2,R0  ;PRIME COND TRAP COND  S RLDFLG  BEQ  EBBUFA  TSTB  @R6  BLT  EBBUF5  BR  EBBUFB EBBUFA: TSTB  @R6   ; IS INDEX STILL NEGATIVE ?  BGE  EBBUF4  ; NOPE, PROCESSING COMPLETED EBBUFB:  CMP  #52,RLDCNT    ;IF RLDBUF IS FULL THEN OUTPUT  BLE  EBBUF2  CMP  R1,#MAXBBA-10  ; IS THE BINARY BUFFER FULL ?  BHIS  EBBUF2  TSTB  RLDFLG  BNE  EBBUF4  BR  EBBUF5    ; OUTPUT THE BINARY BUFFER EBBUF2: TRAP  CHECKSUM ; CALLT4230 MOV R3,CRLKBK+4 ; SET NUMBER OF WORDS TO FOLLOW UPD4240 MOV #CRLKBK,CS2BLK+2; SET LINK BLOCK ADD IN CS2 BLOCK UPD4250 MOV #CRFLBK,CS2BLK+4; SET FILE BLOCK ADD FOR CS2 UPD4260 MOV #CS2BLK,-(SP) ; GET SECOND (CORRECTION) FILE UPD4270 EMT 57 ; UPD4280 MOV (SP)+,CS2RET ; GET STATUS FROM STACK UPD4290 SUB MAORNF IISTHR TEEN;  K N1AI M BR E LUVAS L'BOYM SVESAL AL;C ALVVSA  P RA T  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 LA FELAB LIS; R1,@LGBFLA # TBBI S AS PSTIR FD,UNFO;    S AS PSTIR FHE TOT N ; 1NINMA  T BG ? S ESGRRO PINS ISSPAH ICV;NOT TO EVALUATE THE EXPR. MOV R0,R4  ;SETUP R4 FOR "OR" CONDITION CLR R2  ;FINAL RESULT GOES IN R2 IFDF00: MOV #IFDF25-BEGO03+BEGOVR,-(R6) ;STACK THE "OR" OPERATOR IFDF05: TRAP ITEM  ;GET NEXT ITEM TSTB ITYPE-O03  ;IS THIS AN OK SYMBOL? IFDF12: TRAP SEARCH  ;YES--SEARCH SYMBOL TABLE BGT IFDF12  ;FOUND IN P.S.T--IGNORE BNE IFDF10  ;NOT FOUND IN U.S.T. IFDF15: BITB #DEFFLG,TFLAGS-O03 ;IS SYMBOL DEFINED? BNE IFDF20  ;YES--BRANCH IFDF10: ADD R4,@R6  W CHECKSUM FINALIZATION     ; IS THIS THE BO PASS ?  JMP  EBBUF3  ; NOPE    ; SERVICE THE BINARY OUTPUT REQUEST  CMP  #10,BINBUF+10  BGE  EBBUFF  ; YES, AVOID OUTPUT MOV #BINBUF,-(R6) MOV #BOLB,-(R6) ;OUTPUT BINARY BUFFER EMT WRCMD MOV #TRLBUF,-(R6) MOV #BOLB,-(R6) EMT WRCMD MOV #BOLB,-(R6) ;WAIT FOR COMPLETION EMT WTCMD  TRAP  EOMCHK EBBUFF:  CMP  #2,RLDCNT  BGE  EBBUF3  TRAP  OUTBIN EBBUF3:  MX R5,CS2RET ; ONLY STATUS=1 IS OK (NO MORE) UPD4300 BEQ ST400 ; TEST IF OK UPD4310 MOV A74,ERRNUM ; SET UP ERROR NUMBER UPD4320 SUB R4,SP ; MOVE STACK POINTER TO STATUS CELL UPD4330 JSR PC,ERR ; GO DO ERROR STUFF UPD4340 JMP ST100 ; GO TRY AGAIN UPD4350 ST400: TST SILKBK+010 WH;  1 ,#SSPA  B MP C: 1LINMA LDIE FHE TNGHIUSFLE NUTION C ; 1OINMA  R B  LEAB TOLMBSYS R'SE UAYRLVE OLLCA; Y LAVR O APTR 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 P N1AI M EQ B  ODCMSE  B ST T  AGFLL BELAS L'BOYM SET S ; R1,@LGBFLA # SBBI K:N1AI MR TEUNCON IOATOC L ;     LYMBZ;NOT FOUND OR UNDEFINED IN U.S.T. IFDF20: JMP @(R6)+  ;PROCESS & HOUSEKEEP THE STACK IFDF25: BIS R4,R2  ;LAST TERM="OR", SYMBOL DEFINED BR IFDF35  ;LAST TERM="OR", SYMBOL UNDEFINED IFDF30: BR IFDF35  ;LAST TERM="AND", SYMBOL DEFINED CLR R2  ;LAST TERM="AND", SYMBOL UNDEFINED IFDF35: MOVB SAVTERM-O03,R0 ;GET THIS TERMINATOR ADD #4,R0  ;IS IT "CR"? BEQ IFDF50  ;YES--BRANCH INC R0  ;IS IT ";"? BEQ IFDF50  ;YES--BRANCH INC R0  ;IS IT "&"? BEQ I[OV  R5,R0  TRAP  BBINIT ; CALL BINARY BUFFER INITIALIZATION  TSTB  BINOUT  ; GENERATE THE EOT ?  BEQ  EBBUF7 EBBUFC:  TSTB  RLDFLG  BNE  EBBUF4  BR  EBBUFA EBBUF7:  TRAP  EOMCHK EBBUF4: TST  (R6)+  ; MAINTAIN THE STACK POINTER  TRAP  POPREG ; CALL SET REGISTERS AND RETURN EBBUF5:  INC  @R5 EBBUF8:   ; BUFFER ONE OBJECT DATA BYTE  INC  @R2   ; INCREMENT BLOCKS BYTE COUNT     ; LOCATION COUNTER \ ; ARE WE IN INSERT MODE? UPD4360 BEQ ST405 ; NO. UPD4370 CLR CRLKBK+6 ; YES. NO CORRECTION FILE THEN. UPD4380 BR ST420 ; DONE. UPD4390 ST405: CMP RDF,CRLKBK+6 ; IS THE DEVICE DISK? UPD4400 BEQ ST407 ; YES. MAYBE DEFAULT WITH WRONG DEVICE UPD4410 CMP RDT,CRLKBK+6 ; IS IT DECTAPE?SEASE 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.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 ; ^FDF60  ;YES--BRANCH INC R0  ;IS IT "!"? BEQ IFDF65  ;YES--BRANCH BR IFDF45  ;ERROR--ILLEGAL TERMINATOR IFDF40: TST (R6)+  ;REMOVE STACKED OPERATOR IFDF45: INCB QERROR-O03  ;ERRORED SYMBOL OR ILLEGAL CLR R2  ;TERMINATOR (DEFAULT=UNDEFINED) IFDF50: TST R2  ;CHECK RESULT JMP IFDF55-BEGO03+BEGOVR(R1) IFDF55: BEQ IF010  ;.IFNDF SATISFIED BR IF020  ;.IFNDF NOT SATISFIED BEQ IF020  ;.IFDF NOT SATISFIED BR IF010  ;.IFDF SATISFIED ;OR OPERATOR EN_  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 ;RLDINT ;THIS SUBR INITIALIZES THE RLD BUFFER HEADER SUBR32:  TRAP  SAVREG  MOV  #RLDBUF,R1  MOV  #RLDBC,(R1)+  ;MAX BYTE CNT  MOV  #1,(R1)+  ;BIN FORMAT  MOV  #2,(R1)+  MOV  DI` UPD4420 BNE ST410 ; NO. MUST BE KB OR CR. UPD4430 ST407: TST CRFLBK ; ANY FILE GIVEN? IF SO, ALL IS A-OK. UPD4440 BNE ST410 ; GIVEN FILE NAME UPD4450 MOV RCR,CRLKBK+6 ; FORCE DEFAULT CARD READER UPD4460 BR ST420 ; DONE UPD4470 ST410: CMP CRLKBK+6,RKB ; IS CORRECTION FILE FROM KB? 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 ; 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 ; bCOUNTERED IFDF65: TST R1  ;PERFORM AND BEQ IFDF70  ;OPERATION IF .IFNDF BR IFDF00 ;AND OPERATOR ENCOUNTERED IFDF60: TST R1  ;PERFORM INCLUSIVE OR BEQ IFDF00  ;OPERATION IF .IFNDF IFDF70: MOV #IFDF30-BEGO03+BEGOVR,-(R6) ;STACK "AND" OPERATOR BR IFDF05 ;.ENDC PROCESSOR RENDC: DECB CNSTLV-O03 ;DECREMENT NESTED LEVEL COUNTER BGE ENDC01 ;TOO MANY .ENDC'S? INCB QERROR-O03 ;YES - SET QUESTIONABLE SYNTAX CLRB CNSTLV-O03 ;AND CLEAR NEST LEVEL COUNTER cRCMD,(R1)+  TRAP  POPREG ; ; ; ; ;RLD FILL ;RLDFIL ;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 ; ; SUBR33:  TRAP  SAVREG  MOVB  RLDCNT,R5  ADD  R4d UPD4480 BNE ST420 ; NO. UPD4490 TST #LPLNTH ; NO. IS THERE A LINE PRINTER? UPD4500 BNE ST420 ; YES. ALL IS OK. UPD4510 CLR CRLKBK+010 ; NO. PREVENT LISTING OF CORRECTION FILE UPD4520 ST420 =. ; LET'S CARRY ON. UPD4530 .PAGE UPD4540 ;     ELAB LHE TNGHIUSFLE NUTION CUTTPOU;     N IOATTUSIL IAECSPT PUIN;     . EDORRR END AEDCTTEDE ;   E ARE ER HESNCRAEAPP AERNTOU CONTICALOY BLEMSS A ;   ERSTGIRES AEDYP TBER VE EOTNNCAS ELAB L ;   X.DEIN HINS DESIRES ESDRADE BLTA ;   L BOYM SVETIECFF EHE TNETIOUBRSUS HI TNGRITEENN PO U ;   TSENNMIGSS AELAB LLL AESFIRIVE, NETIOUBRSUS HI T ;  NGSIESOCPRL BELA; 14INMA BR  ST PING LA FNDFIDERET SE; X DEIN@HF,DERE#B ISB: 40INMA DCENfENDC01: TSTB DNTACT-O03 BEQ IF010 ;IN DON'T ASSEMBLE STATE? DECB DNTACT-O03 ;YES - DECREMENT THE COUNTER BNE IF010 MOV #-1,LISTKEY-O03 BR IF010 ;EXIT ;CONDITIONALS FRONT END PROCESSOR (.IF...)  ;IF R0 = 0 ON ENTRY, THEN EVALUATE  ;THE EXPRESSION. AN ERRORED EXPRESSION  ;IS SET TO ZERO BY DEFAULT AS IS A NULL EXPR. SUBR38: INCB CNSTLV-O03 ;INCREMENT NEST LEVEL BGT COND00  ;TOO DEEP?    ;NO - BRANCH CLR -(R6) MOV #ERR2,-(R6) JMP ERROUTg,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:  TRAP  POPREG  ;THE CALLING ADDR.   ; SUBROUTINE OUTPUT END-OF-MEDIA CHECK ;EOMCHK: SUBR3B: BITB  #EOF,BINBUF+3  BEQ  EOMCH1  MOV  BINBhALL CSI DONE. LET'S VERIFY ALL FILE NAMES A-OK. UPD4550 CMP SILKBK+6,CRLKBK+6; SAME DEVICE? CORRECTION VS. SOURCE IN UPD4560 BNE SA200 ; NO. ALL OK. UPD4570 CMPB SILKBK+5,CRLKBK+5 ; YES. IS THE UNIT NUMBER THE SAME? UPD4580 BNE SA200 ; NO. ALL IS A-OK. UPD4590 MOV #SIFLBK,R0 ; YES. GO CHECK REST OF INFO. UPD4600 MOV #CRF. N IGSSAP JM  EGOSNF FD.I  DCEN. 7 RYNTEP JM  #4Y LAEROV;  4 RDWO. L TRONCP RAT T ENNMIGSS ACTREDI;  G SENO DFFN.I  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 ;  ERNTEP RAT . ST UIND UNFO;   5 N1AIMQ BE j-O03 COND00: TSTB DNTACT-O03 ;IN DON'T ASSEMBLE STATE? BEQ COND01 ;NO INCB DNTACT-O03 ;YES - INCREASE COUNT TST (R6)+ ;HOUSEKEEP THE STACK JMP IF010 ;LISTING FORMAT CONTROL COND01: TST R0 ;IF C(R0)=0, THEN EVALUATE THE BNE COND04 ;EXPRESSION AND CHECK FOR ERRORS COND02: TRAP EXPE3 ;EXPRESSION EVALUATION TSTB ERROR-O03 ;WAS THERE AN ERROR? BNE COND03 ;YES TSTB ICOUNT-O03 ;IF EXPRESSION WAS NULL, THEN BNE COND04 ;RESULT = 0 BY DEFAULT COND03: CLR RkUF+2,@R6 ;EOD ANNOUNCEMENT  JMP  ERRO3 EOMCH1:  RTS  R7 ; ; ; ; ; ; ;RLDBYT THIS HANDLES BYT RLD CMDS ; ; ; SUBR37:  TRAP  SAVREG  MOV  #RLD2.5,RLDIR  MOV  #2,R4  ;FILED COUNT  TRAP  RELREF  MOV  GLBSY1,R1  MOV  GLBSY2,R2  MOV  RESULT,R3  BISB  #200,R0  ;BYTE OPERAND  MOV  #10,R4  TRAP  RLDFIL  INCB  RLDFLG  TRAP  POPREG ; ; ; ;OUTBIN THIS SUBR OUTPUTS ON THE BINARY DEVICE ; THE CONTENTS OF THE RLDlLBK,R1 ; R0 =ADD(ONE FILE BLOCK). UPD4610 JSR PC,FILECK ; R1 =ADD(OTHER FILE BLOCK). UPD4620 BNE SA200 ; NOT SAME ON RETURN. UPD4630 MOV A50,ERRNUM ; SAME. BAD. SET UP ERROR MESSAGE. UPD4640 MOV R5,-(SP) ; PUT A 1 ON STACK FOR ERROR MESSAGE UPD4650 JSR PC,ERR ; GO DO ERROR STUFF. UPD4660 JMP ST100 ; GO T 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 APTR 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 IERTH OLL A ;nESULT-O03 ;YES - RESULT = 0 BY DEFAULT COND04: RTS R7 ;RETURN TO CALLER  .EVEN ERRMSG: .WORD  23  ; PASS ERROR COUNT MESSAGE  .WORD  0  ;FORMATTED ASCII  .WORD  23  .BYTE  CR,LF,' ,0  .WORD  0,0  .BYTE  '  .ASCII /ERRORS/  .BYTE  CR,LF,LF,0 .EVEN .IFNDF NOSEG ENDO03: SIZO03=ENDO03-BEGO03 ; .EOT   ;END OF FILE #3 ;***** OVERLAY #4 ***** O04=BEGOVR-BEGO04  ;COMPUTE OFFSET FROM    ;RUN TIME OVERLAY AREA BEGO04o BUF ;; ; ; SUBR36: MOV #RLDBUF,-(R6) ;OUTPUT RLD BUFFER MOV #BOLB,-(R6) EMT WRCMD ; ; MOV #BOLB,-(R6) ;WAIT FOR COMPLETION EMT WTCMD  RTS  R7   ; SUBROUTINE BINARY BUFFER INITIALIZATION    ; INPUT R0 = 0, SIMPLY SET-UP    ; OUTPUT SET-UP AND BINBUF ZEROED ;BBINIT: SUBR00: MOV  USERPC,R5  ; R5 = THE ADDRESS OF THE     ; ASSEMBLY LOCATION COUNTER  MOV  #BOCSUM,R3  ; R3 = THE ADDRESS OF THE     ; BINARYpRY AGAIN. UPD4670 SA200: CMP SOLKBK+6,SILKBK+6; ARE THE SOURCE INPUT = SOURCE UPD4680 BNE SA220 ; OUTPUT FILE. (EXPLICITLY) UPD4690 CMPB SOLKBK+5,SILKBK+5 ; UPD4700 BNE SA220 ; UPD4710 MOV #SOFLBK,R0 ; UPD4720 MOV #SIFLBK,R1 ; 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- S YE;  ) r: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVERLAY. ; JMP RRAD50  ;ENTRY1 JMP RASCII  ;ENTRY2 JMP RWORD  ;ENTRY3 JMP RBYTE  ;ENTRY4 JMP RSETP2  ;ENTRY5 JMP RSETP4  ;ENTRY6 JMP ASSIGN  ;ENTRY7 JMP SUBR24  ;ENTRY8 .ENDC ; ; ; ;RAD50 HANDLER ; ; RRAD50:  MOV  #TMPSYM,SYMBOL-O04  TRAP EVENPC  INCB  RADIX-O04  MOV  #3,CNTCHAR-O04 ;  .PAGE RASCII:   ;ASCII HANDLER ASCII2:  MOV  #SUBR11,R4  ; R4 = PROCEs OUTPUT'S CHECKSUM  MOV  #BINBUF+10,R2 ; R2 = THE ADDRESS OF THE     ; BINARY BLOCKS BYTE COUNT  MOV  #BINBUF+6,R1 ; R1 = THE ADDRESS OF THE     ; BUFFERS FIRST DATA BYTE  MOV  #MAXBBA,-(R6) ; STACK THE BINARY BUFFERS     ; MAXIMUM ADDRESS  TST  R0   ; SETUP ONLY OR BUFFER     ; INITIALIZATION ALSO ?  BEQ  BBIN01  ; SETUP ONLY  MOV  #RLDCMD,DIRCMD  TRAP  RLDINT    ; BINARY Bt UPD4730 JSR PC,FILECK ; UPD4740 BNE SA220 ; UPD4750 MOV R5,OUTPUT ; THE SAME. SET FLAG. (OUTPUT=1) UPD4760 SA220: TST OUTPUT ; ARE SI = SO FILE AND DEVICE UPD4770 BEQ SA240 ; NOT SAME. UPD4780 BPL SA230 ; NOT DEFAULT OUTPUT FILE NAME. U-2 ("?":R TONAMIER TIS;6 N0AIMQ BE 4:N0AI MT XI EGO- O ;N 0AN2MR B H NCRA B -ES;Y 11INMA E BL  E?IN LISTHE BLEMSS;A  CTTADN TBTS  CHANBR- O ;N 04INMA LEB ) -1 ("?"=R TONAMIER TIS;0 ,R#2 DDA R TONAMIER TEDODNC E =0)(R;C R0M,ERVTSA VBMO  EMITL AL C ; M TE I APTR 0:N1AI M. NTMETETA SNTMEGNSIAST ECIR D ATERAPASE ;  , LYALTIENOT PD,ANS NTTEON C'SLDIE FELAB LHE TSHLU F ;  NTMETETA SCEURSOL UAIDIVND ICHEAF OONTIUAALEVE ATTINI I ; : 05TLGE HTUGCAR TEACARCHL GALEIL;  vSSORS ADDRESS  DEC  CURBYTE-O04  ; DECREMENT CURBYTE POINTER  TRAP  CBTABS  ; ON ENTERING CURBYTE POINTS TO THE ! ASCII0: TRAP  PRINT ; CALL PRINTABILITY  BLE  ASCII1  ; CHARACTER IS PRINTABLE  INCB  IERROR-O04  ; ILLEGAL CHARACTER  INC  CURBYTE-O04  ; REJECT THIS CHARACTER  BR  ASCII0  ; TRY THE NEXT CHARACTER ASCII1: MOVB  @CURBYTE-O04,R3  ; R3 = VARIABLE TERMINATOR  CMPB  #40,R3  BEQ  ASCII3  BIwUFFER INITIALIZATION  MOV  #BINBUF,R0  ; R0 = THE ADDRESS OF THE     ; BINARY BUFFERS HEADER  MOV  #BOMBC,(R0)+ ; SET THE MAX. BYTE COUNT  MOV  #BOMODE,(R0)+ ; SET STATUS AND MODE BYTES  MOV  #1,(R0)+  ; CURRENT BYTE COUNT = 1  MOV  #1,(R0)+  ; FIRST DATA WORD = 1  MOV  #10,(R0)+  ; BLOCKS BYTE COUNT = 6  MOV  #TXTDIR,(R0)+  MOV  @R5,(R0)+  ; THIRD DATA WORD =     ; BLOCKS LOAD ADDRESS xPD4790 MOV SILKBK+6,SOLKBK+6; DEFAULT NAME. SET UP LINK & FILE BLK UPD4800 MOVB SILKBK+5,SOLKBK+5 ; SET UNIT NUMBER. UPD4810 SA230: CLR OUTPUT ; CLEAR FLAG UPD4820 MOV SIFLBK,SOFLBK ; UPD4830 MOV SIFLBK+2,SOFLBK+2; UPD4840 MOV SIFLBK+4,SOFLBK+4 ; GET SI FILE EXTENSION FOR SO. UPD4850 CMORRRQE  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 TNELI;   zS  #006400,R3  ; R3 = CAR-RET TERMINATOR  MOV  #SAVTERM,R2  ; R2 = EFF. VALUES ADDRESS  MOVB  R3,@R2  ; SAVTERM = INITIAL TERMINATOR  INC  CURBYTE-O04  ; INCREMENT CURBYTE POINTER  CMPB  @CURBYTE-O04,R3 ASCII3:  BEQ  ASCIIX  SWAB  R3  CMPB  @CURBYTE-O04,R3  BEQ  ASCIIX  SWAB  R3  MOV  #177000,R1  ; R1 = 177000  BR  BYTE1  ; COMPLETE INITIALIZATION RWORD:   ; WORD ASSEMBLY DIRECTIVE HANDLER {BBIN00: CLRB  (R0)+  ; ZERO THE BINARY BUFFER  CMP  R0,@R6  ; IS THE BUFFER CLEARED ?  BLT  BBIN00  ; NOPE, CONTINUE CLEARING  MOVB  1(R5),@R3  ; CHECKSUM INITIALIZATION  ADD  @R5,@R3  ; ADD THE LOAD ADDRESS BYTES  ADD  #4,@R3 BBIN01: ADD  @R2,R1  ; R1 = THE ADDRESS OF THE     ; FIRST AVAILABLE BUFFER BYTE  MOV  (R6)+,R0  ; R0 = THE MAXIMUM BINARY     ; BUFFERS ADDRESS  RTS  R7  |P SILKBK+6,SOLKBK+6 ; ARE THE FILES ON THE SAME DEVICE? UPD4860 BNE SA240 ; NO. DON'T NEED 'UPD' EXTENSION THEN UPD4870 CMPB SILKBK+5,SOLKBK+5 ; UPD4880 BNE SA240 ; UPD4890 MOV RUPD,SOFLBK+4 ; CHANGE FILE EXTENSION TO .UPD UPD4900 CMP SIFLBK+4,SOFLBK+4; ARE THEY STILL THE SAME? UPD4910 BNE SA240   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 ;    ERNTOU CGEPAW LORFVE OS,YE; G INAG,P0.#6  D AD R TEACARCHD EE-FNELIA ;     ; PENO;  2 L0ET G NE B  ?EDFEM-OR F AORAT~ MOV  #177401,R1  ; R1 = -1/+1  TRAP  EVENPC ; CALL EVEN THE LOCATION COUNTER  BR  BYTE0  ; COMPLETE INITIALIZATION RBYTE:   ; BYTE ASSEMBLY DIRECTIVE HANDLER  CLR  R1   ; R1 = 0 BYTE0:  MOV  #SUBR1B,R4  ; R4 = PROCESSORS ADDRESS  MOV  #0,R3  ; R3 = THE FOLLOWING TWO .  =  .-2   ; ENCODED TERMINATORS:  .BYTE  TCCCRE,TCCSMC ; CAR-RET, SEMICOLON  MOV  #RESULT,R2  ; R2 = EFF. VALUES ADDRESS   ; RETURN ;RELREF THIS SUBROUTINE CALCULATES THEVALUE OF THE REL REF FROM ;THE BASE OF THE TEXT BLOCK I.E. TEXT DIR IS 0.R4 IS EXPECTED TO ;CONTAIN THE FILED CNT,R0 THE CMND DIR AND REL REF. SUBR34:  MOVB  BINCNT,R0  SUB  #6,R0  ADD  R4,R0  MOVB  R0,RELCNT  MOV  RLDIR,R0  RTS  R7     ; ;  .PAGE  ; SUBROUTINE CHECKSUM FINALIZATION    ; BINARY BLOCKS BYTE COUNT VALUE IS    ;  RESTRICTED TO BE AN UNSIGNED BYTE    ;  (8-BIT P ; DIFFERNET NOW. GO AHEAD. UPD4920 MOV A50,ERRNUM ; SET ERROR NUMBER UPD4930 MOV R3,-(SP) ; SET 3 ON STACK FOR ERROR MESSAGE UPD4940 JSR PC,ERR ; GO DO ERROR STUFF. UPD4950 JMP ST100 ; GO TRY AGAIN. UPD4960 SA240: CMP SOLKBK+6,CRLKBK+6; THIS TIME TEST SOURCE OUT VS. CORR. UPD4970 BNE SA300 ; CODE IS OTHEINRMTE;  2 @RF,#F  B MP C  ERNTOI PTEBYUR CZELIIAITIN; E YTRBCU1, R OV M  NKLA BYSWAALR TEACARCHL IAITIN;  ) R1-( ,#'  B OV M  R3,@34 # UB S  ERNTOI PSTLIUR CZELIIAITIN;  3 @R1, R OV M  R2  C DE 0 ,RR1  V MO S ESDRADS ORATINRMTEE IN L =R2;  2 ,RR1  D AD T UNCOE YT B =R2 2,1+ R =R1;  2 ,R)+R1 ( OV M  +4R1= 1 R ; )+R1,()+R1 ( MP C  ERMBNUE IN LCEURSOT ENEMCRIN;  O ENIN L NC I  RNTUREE-AGRIAR CIISCMOV  R3,R0 BYTE1:  ADD  #000401,R1  ; R1 = R1 + +1/+1  DECB  SIZE-O04  ; SUBROUTINE DATA ACQUISITION   ; THIS SUBROUTINE SUPPORTS THE DATA GATHERING   ; REQUIREMENTS OF THE THREE PRECEDING   ; ASSEMBLY DIRECTIVE HANDLERS.    ; INPUT INITIALIZED REGISTERS    ; OUTPUT COMPLETE HANDLER HANDLING    ;  RETURN IS TO SETSRC DATA:  MOV  #SAVTERM,R5  ; R5 = SAVTERM ADDRESS  TRAP  DATERM ; CALL DATA TERMINATIOSITIVE INTEGER) ;CHECKSUM: SUBR23: ADD  @R2,@R3  ; SUM THE BLOCKS BYTE COUNT     ; AND THE BLOCKS CHECKSUM  NEG  @R3   ; 2'S COMPLEMENT THE CHECKSUM  MOVB  @R3,@R1  ; BUFFER THE CHECKSUM  MOV  @R2,BINBUF+4 ; FINALIZE THE BINARY OUTPUT     ; HEADERS CURRENT BYTE COUNT  INC  BINBUF+4  ; COUNT THE CHECKSUM BYTE  CMPB  PASS,BOPASS  ; IS THIS THE BO PASS ?  BNE  CHECK0   ; NO  ADD  #4,@R6 R WISE THE SAME. UPD4980 CMPB SOLKBK+5,CRLKBK+5 ; UPD4990 BNE SA300 ; UPD5000 MOV #SOFLBK,R0 ; UPD5010 MOV #CRFLBK,R1 ; UPD5020 JSR PC,FILECK ; UPD5030 BNE SA300 ; A =R4;  4 ,RCR # VBMO 2:L1ET GR ROER' 'LT SE, ES Y ; ORRRLE  B NC I  PENO; 12TLGE BR ? N IOATNCRU TNELIG ON L ; 1)(R,3NELINGLO # TBBI : 06TLGE DCEN. G FLOFEP JM  EGOSNF FD.I  DCEN. 2 RYNTEP JM  5D OR.W  RLNTCO APTR  EGOSNF NDIF. E NUTION,CPENO;  6 L0ETGQ BE  T?PUINN OOM!EOF;E  1)(R,3OF#E TBBI  ONTISIPO) ,1(0RSADBHE THO NT I ;    EDATOT RENBES HA, SSREDD AERADHE;    R FEUF BUTNP ICEURSOE IVCTFEEFON  BNE  DAT00 ;NOT DATA TERMINATOR.  TSTB  ITEMIN-O04  ; IS AN ITEM PENDING ?  BNE  DAT00  ; YES DAT0:  INCB  QERROR-O04  ; NO, QUESTIONABLE SYNTAX  JMP  EXIT-O04  ; EXIT VIA THE MAIN PROGRAM DAT00:  JSR  R1,@R7 ; ITERATION RANGE    ;(R1=DAT00+2, OLD R1 TO STACK)  CLR  R0   ; R0 = 0  JSR  R7,@R4 ; CALL THE EFFECTIVE PROCESSOR DATB0:  SWAB  @R6   ; WORD DIRECTIVE ?  BNE  DATB7  ;NO  TST ; YES, R5 = R5+2 CHECK0:  RTS  R7 ; RETURN .END START  ;END OF FILE #13  UPD5040 MOV A50,ERRNUM ; UPD5050 MOV R4,-(SP) ; PUT A 2 ON STACK FOR ERROR MESSAGE UPD5060 JSR PC,ERR ; UPD5070 JMP ST100 ; UPD5080 SA300 =. ; UPD5090 .PAGE UPD5100 ;    E TH, ERNTOI PERFFBUY ARIMPRE TH;    G INSSCERO PALTINI IERFFBUT PUINE RCOU SNTREUR C ;   ERFFBUT PUINE RCOU S ;     USIOEVPRE THG INUS;     G INSSCERO PADRES OUVIRE P ;     HE TTOE IVATEL RREHE;     T AI WEDLIMP IANS IREHE T ;     MDDCRT EM  6)(R,-LBSI OVM E NCUEEQ SNGLIAL C ;     STUEEQ RNGCIVIER S/O IUTNP ICEURSO ** * ;   NTOU CTEBYT PUIN;     T ENRRCUS ERADHEE THO ER Z ;  B  RSLMOD-O04  ;YES (0 IN LOW ORDER BYTE)  BEQ  DATA00  ;ABSOLUTE EXPRESSION BLT DATB14  ;.GLOBL OR EXTERNAL    ;.CSECT EXPRESSION ;RELOCATABLE EXPRESSION CURRENT .CSECT TRAP SAVREG MOV #2,R4 MOV #RLD2.1,RLDIR-O04 ;INTERNAL RELOCATION TRAP RELREF MOV RESULT-O04,R1 MOV #4,R4 BR DATB13 ;.GLOBL OR EXTERNAL .CSECT EXPRESSION DATB14: TRAP SAVREG MOV #RLD2.5,RLDIR-O04 ;GLOBL ADDITIVE RELOCATION CMPB #-1,RSLMOD-O04 BEQ DATB15  ;GLOBL.IFNZ DRESDI ; ; FIND FILES REQUESTED DIRECTORY FROM DIRECTORY BUFFER ; USING CALCULATED INDEX WHICH WAS SAVED IN SYSTM2 ; R1 = ADDRESS OF I/O LIST ; R4 = ADDRESS OF I/O DATA BUFFER ; R5 = DISC CONTROLLER UNIT NO. ; DIHB00 = . BICB #100,INOUT(R4) ; RESET SWITCH SO-AS NOT TO DISTURB USER MOVB SYSTM2(R1),R2 ; GET AND BIC #177700, R2 ; ISOLATE INDEX MOV R2,R0 ASL ; ALL A-OK. LET'S INITIALIZE AND OPEN THEM. UPD5110 MOV #SILKBK,-(SP) ; INITIALIZE SOURCE INPUT FILE UPD5120 EMT 6 ; UPD5130 MOV #SOLKBK,-(SP) ; SOURCE OUTPUT FILE UPD5140 EMT 6 ; UPD5150 TST SILKBK+010 ; ARE WE IN INSERT MODE? UPD5160 BNE INR0 @ LR C  ESYT BDEMOD ANS TUTA S ;     UTNP IRSDEEA HHE TET S ; )+R0,(DEMOSI # OV M  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/O ITETAROL AL C ; E ATOT R APTR : NELIET GE NCUEEQ SISTHO TEDNDPEAP ;   { EXPRESSION MOV #RLD4.3,RLDIR-O04 ;.CSECT ADDITIVE RELOCATION DATB15: MOV #2,R4 TRAP RELREF MOV RESULT-O04,R3 MOV #10,R4 MOV GLBSY1-O04,R1 ;.GLOBL OR MOV GLBSY2-O04,R2 ;.CSECT NAME DATB13:  TRAP  RLDFIL  INCB  RLDFLG-O04  TRAP  SETREG  BR  DATA00 DATB7:  MOVB  +1(R2),TERROR-O04 ; TERROR = HIGH ORDER BYTE  BEQ  DATA00  ; ZERO VALID VALUE  INCB  TERROR-O04  ; TERROR = TERROR+1     ; NEGATIVE ONE VALID VALUER0 ; PERFORM ASL R0 ; MULTIPLICATION ADD R0,R2 ; BY 5 ADD R2,R2 ; NOW DOUBLE FOR WORD ADDRESSING ADD DFDBAD(R5),R2 ; ADDRESS OF REQUESTS DIRECTORY TST (R2) ; FILE ID ACTIVE? BEQ DIHD00 ; NO-ERROR TYPE 7 JSR PC,CFILID ; CHECK FILE ID AND SET UP FOR XFER TST R0 ; ERROR OCCUR BNE DIHD00 ; P010 ; YES. NO CORRECTION FILE THEN. UPD5170 MOV #CRLKBK,-(SP) ; CORRECTIONS UPD5180 EMT 6 ; UPD5190 MOV CRLKBK+010,LISTSW ; SET LISTING INDICATOR FOR CORR. UPD5200 INP010: .IFG LPLNTH ; DO WE HAVE A LINE PRINTER UPD5210 CMP LISTSW,SOLKBK+010 ; NEXT FIVE LINES WILL SET THE UPD5220 BNE INP020 ; LI  RE AY,LLNAIOPT OS,ERCTRAHA CEDFEM-OR F  ;   E.NCUEEQ SLFR- C ATHWI, LYALONTIDIONNC U  ;   E,ATINRMTEL IL WRSFEUF BUTNP ILL A  ;   ATRMFOR PERO P ;   RESUIND ANR FEUF BUTNP INGDICERE PHE TANSC;   . NGSIESOCPR  ;   OR FDYEA RND ALLFUS IERFFBUT PUIN  ;   NGDICERE PHE TS,UEINNTCON IOUTECEXF I;   T HA TESUMSS AERBLEMSS AHE T. SSREOGPRN I;   Y TLENESPRS INDMAOM CADREA F IOLTRONC;   N IOUTECEXN AIET RSTMUR SOESOCPRO I/E TH ;   * **E OTw DATA00: SWAB @R6   ; RESTORE STACKED VALUE CMP #401,@R6 BNE DATB8 TSTB RSLMOD-O04  ;.BYTE DIRECTIVE BEQ DATB8 CMPB #-1,RSLMOD-O04 BEQ DATB10   ;.GLOBL INCB AERROR-O04 BR DATB8 DATB10: TRAP RLDBYT DATB8: MOV R3,R0   ; DIRECTIVE TERMINATED? DATA8: TRAP DATERM   ; CALL DATA TERMINATION BNE DATA1   ; NOPE DATB1: TSTB RADIX-O04  ;RADIX HANDLING BEQ DATA0   ;NO THEN BRANCH DATB2: TST CNTCHAR-O04 BEQ DATB3 DATB5: CLRB @SYMBOLYES-TYPE 8,9,10 OR 13 .ENDC DIHB10: CMPB LEVEL(R1),HPRIRQ(R5) ; HAVE HIGHER PRIORITY REQUESTS BLE DIOB00 ; BEEN QUEUED. YES-PROCESS ; ; THOSE FIRST BR DIOE00 ; NO-START REQUEST'S I/O .PAGE ; ; ERROR OCCURRED DURING DISC XFER ; R1 = ADDRESS OF I/O LIST ; R4 = ADDRESS OF I/O DATA BUFFER ; R5 = DISC CONTROLLER UNIT NO. ; STING INDICATOR 'LISTSW' TO ONE UPD5230 TST LISTSW ; IF EITHER THE SOURCE OUTPUT FILE OR UPD5240 BEQ INP030 ; THE CORRECTION FILE HAVE THEIR 'LIST' UPD5250 INP020: INC LISTSW ; SWITCH SET. OTHERWISE A ZERO VALUE UPD5260 ; WILL REMAIN IN 'LISTSW'. UPD5270 MOV #LPLKBK,-(SP) ; LINE PRINTER LINK BLOCK UPD5280 EMT 6 ; N** * ;  1)0,S(DRHA B ;   BYD IEIFECSPY TLENRRCUR FEUF BUTNP IHE T ;   OFG INBLEMSS AHE TOR FRSTEINPOE IZALTINI I ;   R.FEUF BUTNP IALCIENQUSET EX NHE TTOS NTOI P ;   1)0,S(DRHA BATTHO SLEAB 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 ;   NELIE RCOU SET GNETIOUBRSUN PE O ;  AGFLT OUIN BZELIIAITIN;  T OUIN,Bs-O04 DEC CNTCHAR-O04 INCB SYMBOL-O04 BR DATB2 DATA0: MOV #SETSRC+2,R1  ; R1 = SETSRC ADDRESS TST @R6   ; ASCII DIRECTIVE? BLT DATA2   ; YES, EXIT.     ; THIS NO-OPED CODE INSURES BR DATA1 ASCIIX: DECB SIZE-O04 INCB QERROR-O04 JMP EXIT-O04     ; THAT ALL .ASCII STATEMENT'S     ; TRAILING TERMINATOR IS     ; FOLLOWED BY EITHER A CAR-RET     ; OR A SEMICOLON. IF NOT, A     ; BLANK LINE IS PRINTED WITH     ; A'Q'  DIHC00 = . BIT #RETDCS,@DCS(R5) ; CHECK DCS FOR RETRIABLE ERROR BNE DIHC10 ; MASK HITS - RETRY BIT #RETDAE,@DAE(R5) ; CHECK DAE FOR RETRIABLE ERROR BEQ DIHC20 ; MASKS DIDN'T HIT-DON'T WASTE TIME RETRING DIHC10: DECB NOTRYS(R5) ; DECREMENT ERROR RETRY COUNTER BEQ DIHC20 ; SORRY-NO MORE TRIES LEFT INCB @DCS+1(R5) ; RF-11 DISC CLEAR MOV CDCS(R5),R2 ; GET UPD5290 MOVB R4,LPFLBK-2 ; OPENO ON LINE PRINTER UPD5300 MOV #LPFLBK,-(SP) ; LINE PRINTER FILE BLOCK ADD UPD5310 MOV #LPLKBK,-(SP) ; UPD5320 EMT 16 ; UPD5330 INP030: .ENDC ; UPD5340 MOVB #4,SIFLBK-2 ; OPENI FOR SOURCE INPUT FILE #1  B OV M  0 =ORRR E ; ORRR E RBCL R ROER Q RBCL R ROER U RBCL X DIRA  B LR C  ORRRIE  B LR C  ORRRAE  B LR C  ODLMRS  B LR C  MDL2RS  B LR C  0 =0)F(BUTB;  F BUTB  R CL : RCTSSE DCEN. 4 TPSERP JM  EGOSNF FD.I  DCEN. 6 RYNTEP JM  4D OR.W  RLNTCO APTR  EGOSNF NDIF.: P4ET S. LEFI; N OP MTE T PUIN;) R6-(B,ILSV MO  CEURSON PE;O 6)(R,-FBSI OVM: P0ET SE NUTION CTOT INPOY TRENT EO;. DCEN. 2 TPSERP JM  EGOSNoERROR CODE AND THE     ; DIRECTIVE IS TERMINATED. ; BGE DATA1   ; NO, AVOID CHECK ; TRAP CBTABS   ; CALL CHECK FOR BLANKS AND TABS ; CMPB #CR,@CURBYTE-O04 ; THIS CHARACTER A CAR-RET? ; BEQ DATA2   ; YES, VALID CASE SO EXIT ; CMPB #';,@CURBYTE-O04 ; THIS CHARACTER A SEMICOLON? ; BEQ DATA2   ; YES, VALID CASE SO EXIT ; INCB QERROR-O04  ; NEITHER, QUESTIONABLE SYNTAX ; COMB @R6   ; SET SIZE < 0 DATA1:  TSTB  RADIX-O04  BEQ  DATB4 RADB4:  SWAB   DCS THAT CAUSED ERROR ASR R2 ; ISOLATE BIC #177774,R2 ; I/O FUNCTION DEC R2 ; PRIME FOR START I/O BR DIOC10 ; RESTART I/O ; ; REPORT ERROR ; DIHC20 = . MOV #11.,R0 ; REPORT ERROR TYPE 11 JSR PC,ERROR ; VIA INTERNAL ERROR MOV CDCS(R5),DUSE1(R4) ; REPORT BACK DCS USED MOV @DAE(R5),DUSE2(R4) ; REPORT BACK DAE/DER  UPD5350 MOV #SIFLBK,-(SP) ; UPD5360 MOV #SILKBK,-(SP) ; UPD5370 EMT 16 ; UPD5380 TST SILKBK+010 ; ARE WE IN INSERT MODE? UPD5390 BNE INP050 ; YES. NO CORRECTION FILE THEN. UPD5400 MOVB #4,CRFLBK-2 ; OPENI FOR CORRECTION FILE UPD5410 DFIF. C ND.E  Y5TREN MPJ 4 RDWO. 4 #AYRLVE OINL AL;C   RLNTCO APTR  EGOSNF NDIF.: P2ET S. SSPAT PUUT ORYNABI; B TASDGP RAT C ND.E  2RDWO. 2 #AYRLVE OINL AL;C   RLNTCO APTR  EGOSNF NDIF. 2 TPSE  E BN S AS,PSSPABO  B MP C  P2ET S LE B  1.S AS PNGRIDUY ARIN BNO;1 ,#SSPABO PBCM 5:TPSE PNOT EM  LEFIT PUIN;) R6-(B,ILSV MO  CEURSON PE;O 6)(R,-FBSI OV MS:ASTPSE DCEN. I CSRP JM  EGOSNF FD.I  DCEN. ) #1Y LAEROV (ITO TOLTRON CVEGI;k R0  ; THIS PORTION  MOVB  @CURBYTE-O04,R3 ; CARRIES OUT  CMPB  R3,#'0 ; THE TRANSLATION  BLT  RAD01 ; AND PACKING  CMPB  R3,#'9 ; OF WORDS  BGT RAD01  ; AS SPECIFIED RAD00:  SUB  #22,R3 ;  BR  RAD03 RAD01:  CMPB  #'$,R3  BNE  RAD02  SUB  #11,R3  BR  RAD03 RAD02:  CMPB  #'.,R3  BEQ  RAD00  CMPB  #' ,R3  BNE  RAD06  CLR  R3  BR  RAD03 RAD06:  CMPB  R3,#'A  BLT  RADERR  CMPB  R3,#'Z .IFNZ ERRPRT MOV ERRMOD(R5),R2 ; ADDRESS OF DEVICE'S ERROR MODULE MOV R0, ERRNUM(R2) ; SET ERROR NUMBER IN MODULE MOV CDCS(R5),ARGM2(R2) ; SET DCS IN MODULE MOV @DAE(R5),ARGM3(R2) ; SET DAE IN MODULE MOV R2,-(SP) ; SET MODULE ADDRESS ON STACK JSR PC,ERRTYP ; TYPE SYSTEM ERROR MESSAGE .ENDC INCB @DCS+1(R5) ; RF-11 DISC CLEAR BICB #300,INOUT(R4) ; JUST INCASE-MOV #CRFLBK,-(SP) ; UPD5420 MOV #CRLKBK,-(SP) ; UPD5430 EMT 16 ; UPD5440 ; HANDLE THE SOURCE OUTPUT FILE HERE. IF IT ALREADY EXISTS DELETE IT. UPD5450 ; THEN OPEN IT FOR OUTPUT. THESE TWO STEPS REQUIRE THE USE OF THESE UPD5460 ; THREE DOS FUNCTIONS: 1) LOOK, 2) DELETE, 3) OPENO. UPD5470 INP050: MOV #SOFLBK,-( 1 RYNTEP JM  1D OR.W  #1Y LAEROVN ILLCA; L TRONCP RAT: 01UN R Y LAEROVR PES CKLO BBY; 2 N0RU BR  #CKLO BSEEACRIN Y.TREN; 4 ,RR5 DDA O T #CKLO BNGTIARST S.YE;+ 2)(R4,RV MO  S?AYRLVE OREMO; 1 N0RU LTB 3 ,R#2 UBS: 02UN R2 *YSLAEROVF OERMBNU;3 ,R)+R2(V MO  R2B,TAUN#R OVM ; Y.NCDESIREN-NOR FO0 O TET SIT BGNSI Y.TREN ;B TAUN RVETIECSPRER EITHN IAYRLVE OCHEA ;F OERMBNUK OCBLL CASIHY PNGTIARSTE ACPL ;; K.ACSTT ECRRCO;+ 6)(R+,6)(R MPC: 03UN RR ROERL TAFA;g  BLE  RAD03  CMPB  R3,#141  BLT  RADERR  CMPB  R3,#172  BGT  RADERR  BICB  #40,R3  MOVB  R3,@CURBYTE-O04 RAD03:  BIC  #177700,R3  MOVB  R3,@SYMBOL-O04  INC SYMBOL-O04  BR  DATB6 RADERR: INCB  QERROR-O04  BR  DATB2 DATB6:  INCB  CURBYTE-O04  MOV  CURBYTE-O04,R5  DEC  CNTCHAR-O04  BNE  DATA8 DATB3:  MOV  #TMPSYM,R1  ;INITIALIZE ADDRESS  TRAP SERCHB  ;FOR CONVERSION  MOV  #TMPSYM+1,R2RESET FOR USER BR DIHA05 ; PERFORM EXIT FUNCTION ; ; ; ; REPORT ERROR AND EXIT APPROPRIATELY ; AFTER PULLING REQUEST OUT OF QUEUE ; R0 = EXIT TYPE ; R1 = I/O LIST ADDRESS ; R5 = DISC CONTROLLER UNIT NO. ; DIHD00 = . JSR PC,ERROR ; REPORT ERROR TSTB CALLED(R5) ; CALLED BY INTERRUPT? BNE DIHA05 ; YES-PERFORM I/O COMPLETE FCN MOV PSR,-(SP) SP) ; USE LOOK TO SEE IF THE FILE EXISTS. UPD5480 MOV #SOLKBK,-(SP) ; UPD5490 EMT 14 ; LOOK UPD5500 TST (SP)+ ; POP OFF FIRST (UNWANTED) ARGUMENT UPD5510 BITB #200,(SP)+ ; BIT 7 =0 IF FILE DOES NOT EXIST UPD5520 ; =1 IF THE FILE EXISTS UPD5530 BEQ INP070 ; FILE DOESN N OP MTE E RCFOO TNCPE.OM ORRFPE;) R6-(1,RV MO  T.ENESPRT NOR OVR.11AL;P 6)(R,-FBVR#O OVM: 04UN R5 N0RU BR  1]1, [RY;T IDERUS1,40#V MO  E.ON DLL;A  04UNRQ BE  01#4D,RISEUP CM  CKTA SCTREOR;C )+R6,()+R6(P CM  T?ISEXE IL FESDO; 3 N0RU NEB K OCBLG INRTTA;S R4+,6)(R OVM K OO.L; 4 1T EM  CKLO BNKLI;) R6-(1,RV MO  6)(R-R CL  CKLO BLEFI;) R6-(B,RFOV#V MO 5:N0RU E.IL FUSUOIGNTCOE THF ;O CKLO BNGTIARSTL CASIHY PHE TNEMIERET;D ;Y LAEROVR PES CKLO;B R5+,6)c  MOV  #SETSRC+2,R1  MOV  #2,SIZE-O04  BR  DATB9 DATB4:  MOV  @R6,SIZE-O04 DATB9:  MOV  @R2,TBBUF-O04  CLRB  RADIX-O04 ASCIIY:  TRAP  ENDLINE ; CALL END LINE  TRAP  COLIST TST LOLB-O04  ;WAS LISTING DEVICE INITED YET? BEQ DATB99  ;NO - BRANCH MOV #LOLB,-(R6) ;WAIT TILL LISTING COMPLETES EMT WTCMD DATB99: SUB #12.,CURLIST-O04  INC  CURBYTE-O04  ; INCREMENT CURBYTE POINTER DATA2:  TST  -(R1)  ; R1 = R1-2  ; NO-SAVE CURRENT CPU PRIORITY BR DIHA20 ; PULL REQUEST AND EXIT AS SPECIFIED .PAGE ; ; ; ; ERROR IS AN INTERNAL SUBROUTINE TO DISCIO THAT WILL ; SET AN ERROR CLASSIFICATION IN SYSTEM AND IF REQUESTED, ; WILL QUEUE AN ERROR TASK WITH I/O LIST ADDRESS AS ARG. ; THE CALL IS: ; JSR PC,ERROR ; WHERE R0 = ERROR TYPE ; R1 = I/O LIST ADDRESS ; ERROR = . 'T EXIST. MAY NOW OPEN IT. UPD5540 BIT #040000,-(SP) ; FILE EXISTS. IS PROTECT CODE SUCH UPD5550 BEQ INP060 ; THAT IT CAN NOT BE DELETED? UPD5560 MOV A55,ERRNUM ; ERROR. CAN NOT DELETE IT. PROTECT UPD5570 JSR PC,ERR ; CODE IS ON STACK WITH DEVICE FUNCTION UPD5580 JMP ST100 ; GO TRY FOR ANOTHER CSI STRING. UPD5590 INP060: MOV #SOFLBK,(SP) ; FILE CAN BE DELETED. LET'S (R OVM E IDIV,DR7 SRJ E IZ SAYRLVE;O 6)(R,-RDRWOV#V MO  Y.LAEROVR PES CKLO BOFR BEUM NNEMIERET;D TOE IZ SAYRLVE OTOINE IZ SCKLO BDEVIDI ;K ACSTF OOP TON) DSOR(WE IZ SCKLO BALICYSPH; K ACSTT ECRRCO;+ 6)(R+,6)(R MPC 3 1T EM  CKLO BNKLI;) R6-(1,RV MO  USATSTE ICEV DINTAOB ;D CMIN MTE K OCBLK IN;L 6)(R,-R1 OVM E ICEV DAYRLVE OITIN;. CKLO BNKLI;1 ,RLBVR#O OVM O ;N     P? UET;S  01UNRQ BE  LL AYSLAEROV; T NIOINB STT ; ****S*AYRLVE OOR FUPT SE****;* EGOSN_ RTS  R1  ; REITERATE SUBROUTINE RSETP2: CLR  @USERPC-O04  ; INITIALIZE DOT AT ZERO ;INITIALIZE DOT TO DEFINED, RELOCATABLE, UNNAMED .CSECT. MOV #DEFFLG!RELFLG!400,@HUSERPC-O04  CLR  ABSPC-O04  CLR  RLDFLG-O04  ;INITIALIZE ;CLEAR ALL CURRENT PC WORDS IN ;THE CONTROL SECTION AREA OF THE ;SYMBOL TABLES. MOV PERTOP-O04,R0 ;BOTTOM OF .CSECT AREA MOV R0,R2 MOV R2,HIRPC-O04 ;POINTER TO MAX PC OF TST -(R2)  ;BLANK .CSECT MOV R2,RELPC-O04 MOV R0,SYSTEM(R1) ; SET I/O NOT SUCESSFUL MOVB ERROR(R1),R2 ; QUEUE AN ERROR TASK? BEQ ERRA50 ; NO-RETURN MOV R2,-(SP) ; SET UP ARGUMENTS FOR QUEUE-TASK CLR -(SP) ; USE PRIORITY IN TASK TABLE .IFNZ ARG MOV R1,-(SP) ; SEND I/O LIST ADDRESS AS AN ARGUMENT .ENDC CLR -(SP) ; IMMEDIATE RETURN REQUESTED JSR PC,QUEUE ; QUEUE ERROR TASK DO IT. UPD5600 MOV #SOLKBK,-(SP) ; UPD5610 EMT 21 ; DELETE IT. NOW WE CAN OPEN IT. UPD5620 INP070: MOVB R4,SOFLBK-2 ; OPENO FOR SOURCE OUTPUT FILE UPD5630 MOV #SOFLBK,-(SP) ; UPD5640 MOV #SOLKBK,-(SP) ; UPD5650 EMT 16 ; UPD5660F NDIF. 1 4T EM  6)(R,-#1 OVM ) R6-( LRC ) R6-(4,P3RA#T OVM 4 3ONTICALOP UET;S  41 MTE ) R6-(2,#V MO  6)(R,-RTTAES#R OVM S ESDRADT ARSTREP UET;S  LBCO LRC R BEUM NNELIR LEMBSEASR EACL; NONELI R CL LBCI LRC B LLSR CL  LBLO LRC B OLBR CL  B2ILSR CL  B1ILSR CL  INEG B^CF OSECA ;N IKSOCBLK IN LLL AARLE;C DCEN. A RTTA=SRTTA SG SENO DFIF. C ND.E  S.ESDRADR FENSRA TUPT SE;  A RTTA=SRTTA SD BLVROF NDIF. 6 ,ROPRTPE OVM: TC[ ;POINTER TO CURRENT PC OF    ;BLANK .CSECT MOV CONTOP-O04,R1 ;TOP OF .CSECT AREA SETP3: CMP R0,R1 BEQ SETP1  ;DONE CLR -2(R0)  ;0-CURRENT PC WORD. SUB #10,R0  ;SIZE OF ENTRIES IF BR SETP3  ;4 WORDS. SETP1: MOVB  #1,SECMOD-O04 ;UNNAMED .CSECT MOV  #130411,TITLEA-O04 MOV  #35214,TITLEB-O04  MOV  #-1,R0  MOVB  R0,BINOUT-O04  TRAP  BBINIT ; CALL BINARY BUFFER INITIALIZATION  MOV  #1,PAGCNT-O04  ; INIT. PAGE COUNTER  CLRTST (SP)+ ; POP ERROR PARAMETER AND IGNORE ERRA50: RTS PC ; RETURN TO CALLER ; ; .ENDC ; MATCH FOR .IFNZ NDISCS .END  ; TO WORK - AT LAST. UPD5670 TST SILKBK+010 ; IN INSERT MODE? UPD5680 BNE INP130 ; YES. NO CORRECTIONS. UPD5690 JSR PC,INCR ; GO READ FIRST CORRECTION CARD UPD5700 TST CREOF ; EOF? UPD5710 BNE INP130 ; YES. UPD5720 CMPB ARST T.PSE TH; W LOBET US JTOK ACSTE THE IZALTINI;I DCEN. N GIBEC ^IF; B RLOV LRC G SENO DFFN.I  T.SEA AT DAYRLVE;O     ZELIIAITIN;T NIOI,N77#3 VBMO  A:RTTA S. E.IM TINEG B^CD ANE IM TADLOT AREHES MECOL RONTCO ;; DCEN. T TRRSRP JM  EGOSNF FD.I  DCEN. 1 #AYRLVE OY3TREN; 3 RYNTEP JM  1D OR.W  #1Y LAEROVN ILLCA; L TRONCP RAT G SENO DFFN.I: RTTAES R. CEVIDET PUUT/OUTNP INDMAOM CHE TOND PETYS I ;  NDMAOM CRTTAES RORITON MHE TENWHR O) ;B  LYMBW  PAGING-O04  ; INIT. LINE COUNTER  CLR  ERRSUM-O04  ; INIT. ERROR COUNTER CLR LINENO-O04 ;INITIALIZE ASSEMBLER LINE NUMBER JMP SETP4-O04 RSETP4:  CLR  SIBUF1+2-O04  CLR  SIBUF2+2-O04  MOV  BHADRS+2-O04,R0 MOV R0,-(R6) ;STACK BUFFER ADDRESS  MOV  #SIMBC,(R0)+  MOV  #SIMODE,(R0)+  MOV  R0,CURLIST-O04  MOV  #LOMBC-26,R0  TRAP  BLKBUF MOV SILB-O04,-(R6) ;GET SOURCE INPUT EMT RDCMD ; ; MOV SILB-CRBUF,SYMBOL ; IS IT A '-'. UPD5730 BNE INP125 ; NO. ASSUME FORM '-0'. UPD5740 INP090: CMPB CRBUF+1,#'= ; IS THE SECOND SYMBOL A '='? UPD5750 BNE INP095 ; NO. GO CALL ASCBI UPD5760 MOVB CRBUF+2,SYMBOL ; REPLACE UPDATE SYMBOL WITH NEW ONE. UPD5770 ; THIS IS AN INPUT RECORD OF THE FORM UPD5780 ; SEASN AOFD ENE TH A); T AREHES MECOL RONTCO ;. ESAGSSMER ROERT PUUT OTOE ER HESOM COLTRON;C   OTI: UTROER NETIOUBRSUD TEESQUREO T ;     X)DEINE(BLTA JRUTHP UM J ; R7+,6)(R @ OV M  EXND ILEAB TMPJUE ATULLCCA; R6,@APTRE-BLTA#J  D AD N IOCTRUSTIND PEAPTRK ACST; 6)(R,-)+R6@(  V MO S TUTA SEDCKTA SOFP TON O ;     R6,@#2  B SU S ESDRADN URET RHE TCKTA;S  ) R62(6,@R  V MO : 34APTR 34N IOATOC LOR FERDLAN HAPTR;    N VE.ESO04,-(R6) ;WAIT FOR COMPLETION EMT WTCMD  MOV  BHADRS-O04,R0  SUB  #16,R0  MOV  #100000,(R0)+  CLR  (R0)+ JMP SETSRC-O04 ; DIRECT ASSIGNMENT STATEMENT PROCESSING  ; THIS SUBROUTINE RESOLVES THE FOLLOWING THREE DIRECT  ; ASSIGNMENT SITUATIONS:  ; 1) USER'S SYMBOLIC ASSIGNMENTS  ; 2) SYMBOLIC REGISTER ASSIGNMENTS  ; 3) ASSEMBLY LOCATION COUNTER ASSIGNMENTS   ; UPON ENTERING THIS SUBROUTINE THE EFFECTIVE SYMBOL   ; TABLE ADDRESS RESIDES'OLD SYMBOL=NEW SYMBOL' UPD5790 JMP INP120 ; GO GET NEXT CORRECTION CARD. UPD5800 INP095: JSR PC,ASCBI ; CONVERT ASCII TO BINARY FOR CRST,CREND UPD5810 INP100: CMP LINEI,CRST ; IS CURRENT INPUT LINE=CORRECTION LINE UPD5820 BEQ INP110 ; YES. UPD5830 JSR PC,INSOR ; NO. MOVE UP TO IT. UPD5840 TST SIEOF ; EOF?  E ACSPR FEUF BLD;R +6BCLD+R .  = .  +6UFDBRL  =  T TRLS R2 .+  =  T CNLD R0  D OR.W : UFDBRL ENEV .  63 = BCLD R 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.+  =  . 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 BO 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, MUST BE   ; TOTALLY EVALUATABLE.     ; INPUT SPECIAL SITUATION      UPD5850 BNE INP200 ; YES. UPD5860 JSR PC,OUTSOR ; OUTPUT THE SOURCE LINE UPD5870 INC LINEI ; INCREMENT INPUT LINE NUMBER UPD5880 JMP INP100 ; UPD5890 INP110: CMP LINEI,CREND ; IS THE CURRENT LINE (INPUT) NUMBER UPD5900 BEQ INP120 ; EQUAL TO THE ENDING LINE NUMBER? NTREUR CBO;   0  D OR.W 0 +1UFNBBIT=CNIN BS TEBYE OD-MUSATSTO B ;   0 RDWO .  NTOU CTEBYM MUXIMAO B ;   0 RDWO .: UFNBBI ERADHET PUUT ORYNABI;   N VE.E R FEUF BUTTPOUY ARIN BTEBY6 4 ;  6. 4  = ZESIBB O. NNELIR FOM OO RVEEA L;  4 +1 . = . RSFEUF B ; 4 +1 .  =  .N IONSTEEXG INSTLIT ECBJ O ; 2 +1 .  =  .R FEUF BTADAR TEACARCH;  X MARC+S .  =  .T UNCOE YT BNTREUR CSI;     S TEBYE OD-MK ; OUTPUT EXIT ASSIGN:  MOV  TMPSYM+1-O04,-(R6) ; SAVE SYMBOLS FIRST TRIAD  MOV  TMPSYM+3-O04,-(R6) ; SAVE SYMBOL'S SECOND TRIAD  MOV  HINDEX-O04,-(R6) ; SAVE SYMBOL'S ENTRY ADDRESS  MOV  @R1,-(R6)  ; SAVE SYMBOL'S FLAGS AND .CSECT ID  TRAP  ITEM ; CALL ITEM  BLE  MAIN16  ; VOID ITEM ENCOUNTERED     ; NON-VOID ITEM ENCOUNTERED  INCB  ITEMIN-O04  ; SET ITEM PENDING FLAG MAIN16: CLR  R0   ; R0 = UPD5910 JSR PC,INSOR ; IF NOT, SKIP THROUGH FILE UNTIL IT IS. UPD5920 TST SIEOF ; EOF? UPD5930 BNE INP200 ; YES. UPD5940 INC LINEI ; NO. INCREMENT INPUT LINE NUMBER UPD5950 JMP INP110 ; GO SEE IF DONE. UPD5960 INP120: JSR PC,INCR ; GET NEXT CORRECTION CARD UPD5970 USATSTI S ;     SI COR F ; 6 -1F2BUSI = F BUMD CT UNCOE YT BUMIMAX MSI; -6 . = F2BUSI WO TCKLO BERADHET PUINE RCOU S ;    LDIE FNGTIIS LNKLA B ;  +1 .  =  .D ELFIG INSTLIT ECBJ O ;  +6 .  =  .D ELFIG INSTLIK ANBL;   1 .+  =  . LDIE FNGTIIS LONTICALO;   6 .+  =  . LDIE FNGTIIS LORRR E ;  +2 .  =  .R BEUM NNELI; 6 .+ = .T UNCOE YT BNTREUR CLO;  G 0  TRAP  EXPE3 ; CALL EXPRESSION, MINIMAL TERMINATOR ;  BGT  MAIN17  ; NON-VOID EXPRESSION FOUND  INCB  QERROR-O04  ; VOID EXPRESSION CONSIDERED     ; AS QUESTIONABLE SYNTAX  INCB  UERROR-O04 MAIN17: BISB  REGTYP-O04,@R6 ; COMBINE THE EXPRESSION'S REG.     ; TYPE WITH THE SYMBOL'S FLAGS  BITB  R2,@R6  ; IS THE SYMBOL TYPED REGISTER ?  BEQ  MAIN18  ; NOPE  BITB  #LABFLG,@R6  ; YES, IS IT A L TST CREOF ; EOF? UPD5980 BNE INP130 ; YES. UPD5990 CMPB CRBUF,SYMBOL ; IS FIRST SYMBOL A '-'? UPD6000 BEQ INP090 ; YES. GO CONVERT IT. UPD6010 INP125: JSR PC,OUTCR ; NO. GO OUTPUT IT. UPD6020 JMP INP120 ; GO GET NEXT RECORD. UPD6030 INP130: JSR PC,INSOR 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. NOE IN LOR FOMROE AVLE;  14.+  =  . RSFEUF B ; 4 +1 .  =  .N IONSTEEXG INSTLIT ECBJ O ; 2 +1 .  =  .R FEUF BTADAR TEACARCH;  X MARC+S .  =  .T UNCOE YT BNTREUR CSI;     S TEBYE OD-MUSATSTI S ;     NTOU CTEBYM MUXIMAI S ;  -6 . CABEL ?  BEQ  MAIN18  ; NOPE  BISB  #MDFLAG,1(R6) ; YES, CONSIDERED AS A     ; MULTIPLY DEFINED SYMBOL  INCB  RERROR-O04  ; REGISTER ERROR MAIN18: MOV  (R6)+,@R1  ; RESTORE SYMBOL'S FLAGS AND ID  MOV  (R6)+,HINDEX-O04 ; RESTORE SYMBOL'S ENTRY ADDRESS  MOV  (R6)+,TMPSYM+3-O04 ; RESTORE SYMBOL'S SECOND TRIAD  MOV  @R6,TMPSYM+1-O04 ; RESTORE SYMBOL'S FIRST TRIAD  CMP  #127400,(R6)+ ; IS THIS SYMBOL D ; GET NEXT SOURCE INPUT RECORD UPD6040 TST SIEOF ; EOF? UPD6050 BNE INP200 ; YES. UPD6060 JSR PC,OUTSOR ; PUT THIS RECORD OUT. UPD6070 JMP INP130 ; GO GET NEXT RECORD. UPD6080 .PAGE UPD6090 ; HERE WHEN ALL DONE WITH INPUT AND CORREC = F1BUSI NE OCKLO BERADHET PUINE RCOU S ;    LDIE FNGTIIS LNKLA B ;  +1 .  =  .D ELFIG INSTLIT ECBJ O ;  +6 .  =  .D ELFIG INSTLIK ANBL;   1 .+  =  . LDIE FNGTIIS LONTICALO;   6 .+  =  . LDIE FNGTIIS LORRR E ;  +2 .  =  .R BEUM NNELI; 6 .+ = .T UNCOE YT BNTREUR CLO;   0  D OR.W S TEBYE OD-MUSATSTO L ;   0 RDWO .  NTOU CTEBYM MUXIMAO L ;   0 RDWO .: F1BULO NE?EFINING THE     ; ASSEMBLY LOCATION COUNTER ?  BNE  MAIN19  ; NOPE  TSTB  ERROR-O04  ; WAS THE EXPRESSION TOTALLY EVALUATABLE?  BNE  MAIN87  ; BRANCH IF NOT.  TSTB  RSLMOD-O04  BGE  MAIN88 MAIN87: INCB  AERROR-O04 MAIN89:  JMP  MAIN1E-O04 MAIN88: COMB  BINOUT-O04  ; REQUEST BINARY OUTPUT  BITB  #-DEFFLG-RELFLG-1,@R1 ;ONLY DEF. AND REL. CAN BE SET.  BEQ  MAIN1Q  INCB  QERROR-O04  BR  MAIN89 MAIN1Q: 9098PD U D ENE TH; T ARST ND.E 8098PD U . N) O -=1 (G.LA FOF EONTIECRRCO; 0 D OR.W F:EOCR 7098PD U )ON- 1 (=G LA FOF EUTNP ICEURSO; 0 D OR.W F:EOSI 6098PD U O. N 0 = ; 5098PD U . ES Y 0 >TIONS. UPD6100 ; UPD6110 INP200 =. ; UPD6120 .IFG LPLNTH ; DO WE HAVE A LINE PRINTER? UPD6130 TST SOLKBK+010 ; DO WE WANT TO LIST NEW SOURCE FILE? UPD6140 BEQ INP282 ; NO. UPD6150 MOV #SOLKBK,-(SP) ; CLOSE SOURCE OUTPUT FILE & OCKLO BERADHET PUUT OEDSTLI;    0  D OR.W 0  D OR.W 0  D OR.W 0  D OR.W 0  D OR.W 2 1 RDWO .  3 RDWO .  CKPAL AITR ; 40  D OR.W : UFLBTR AXCMSR =C MBSI ESYT B80= M MUXIMAE RCOU S ;   0 12  = X MARC SE ONR FEUF B ;     CKLO BERADHEO I/N ABYD DECERE P  ;    LYTEIAEDMM IISR FEUF BALDUVIDIINH AC E ;    ERFFBUT PUUT OHE TINTHWID DEEDMB E  ;    LYTELEMPCOS IERFFBUT PUINE TH;    E ON ZNGRIFEUF B;  MOV  R1,R5  ;SAVE R1  MOVB  #RLD3.2,R0  ;LOCATION COUNTER MODIFICATION  MOV  RESULT-O04,R1  MOV  #4,R4  TRAP  RLDFIL  MOV  R5,R1  ;RESTORE R1  TSTB  SECMOD-O04  BEQ  MAIN1C  ;ABSOLUTE PROGRAM SECTION  TSTB  RSLMOD-O04  BLE  MAIN87  ;NOT RELOCATABLE EXPRESSION IN .CSECT  MOV  RESULT-O04,@RELPC-O04 ;UPDATE PC OF CURRENT .CSECT  CMP  @USERPC-O04,@HIRPC-O04  BLOS  MAIN1T  MOV  @USERPC-O04,@HIRPC-O04 ;UPDATE MAX. PC ; 4098PD U ? OR FEDSK AGSINSTLIY AN; 0 D OR.W: SWSTLI 3098PD U . SO= I S 1 = ; 2098PD U . SOL UAEQT NOI S 0 = ; 1098PD U. SIO= SLTAUEF D. ENIV GSOO N-1 = ; 0098PD U UTTPOUE RCOU SONG INCKHE COR FAGFL; 0 D OR.W: UTTPOU 9097PD U . ERMBNUE IN LNGDIEN. RRCO; 9 DATASET. UPD6160 EMT 17 ; UPD6170 MOV #SOLKBK,-(SP) ; CLOSE DONE YET? UPD6180 EMT 1 ; UPD6190 MOVB #1,SOLKBK+4 ; SET NUMBER OF WORDS TO FOLLOW. UPD6200 MOVB #4,SOFLBK-2 ; OPENI ON SOURCE INPUT FILE FOR LISTIN UPD6210 MOV #SOFLBK,-(SP) ; FILE BLOCK UPD62UTTPOUT-PUIN;   N VE.E S AS PUMIMAX M ;   0 TEBY .S:ASXPMA SSPAE IVCTFEEF;   0  E YT.B : SSPA SSPAS L'BOYM SEDINEFND U ;   0 TEBY .: SSPAUS ONTIOPS AS PNGTIIS LORRR E ;   0 TEBY .: SSPAER NSIOPT OLYMBSEAS;   : NSIOPT OS ONTINCFUS AS PLYMBSEAS;   S:SEAS P 6 #LEFIF OND;E   OT.E  UTTPOUR FON PE;O  47BRSU RDWO. O TORRI PLEFIT PUUT OTELEDE;E BLTA-J.= UTLODE DCEN. 6 R4UBSD OR.W  ERADLOY LAEROV; E BLTA-J.= RLNT7 OF CURRENT .CSECT MAIN1T:  BR  MAIN1C MAIN19: TSTB ERROR-O04  ;EXPRESSION NOT  BNE  MAIN89  ;FULLY DEFINED  CMPB  #MDFLAG,1(R1) ; IS THIS SYMBOL MULTIPLY     ; DEFINED ?  BNE  MAIN1A  ; NOPE, VALID SITUATION  TRAP  SAVVAL ; CALL SAVE SYMBOL'S VALUE  BR  MAIN1C  ; ENTER THIS INFORMATION MAIN1A: BITB  R2,@R1  ; IS SYMBOL TYPED REGISTER ?  BEQ  MAIN1B  ; NOPE  TRAP  RFORCE ; CAL 0 D OR.W D:ENCR 8097PD U R.BEUM NNELIG BE. RRCO; 0 D OR.W : STCR 7097PD UITN IOLMBSYE ATPD UNTREUR CAS H 1TEBY; //- IISC.A: OLMBSY 6097PD U R BEUM NNELIT PUINT ENRRCU; 0 D OR.W I:NELI 5097PD U T.PUINI CSG INSSCERO PINE USR FO; 0 D OR.W: ET2RCS 4097PD U S LEABRIVA ; 3097PD U R ROERC PE SONTIECRRCO; 4//7 IISC.A 4:520 MOV #SOLKBK,-(SP) ; LINK BLOCK UPD6230 EMT 16 ; UPD6240 CLR R0 ; CLEAR CURRENT LINE NUMBER COUNTER UPD6250 MOV #LINENU,R1 ; SET ADDRESS OF LINE NUMBER (ASCII) UPD6260 ; IN PRINT BUFFER. UPD6270 MOV #3,R2 ; SET CODE FOR BINARY TO DECIMAL CONV. UPD6280 INP220: MOV CO EGOSNF NDIF. 7 RTS RIA VITEX; 5 R4UBSD OR.W  ND ARSTEISEG ROP;P LEABJT.- =G REOP PD T'NI.IF ;I  44BRSU RDWO. T SEA AT DSEEAEL.RD ANE OSCL;. LEABJT.- =N EACL DCEN. 3 R4UBSD OR.W  EGOSNF FD.I  DCEN. 1 #AYRLVE OY2TREN; 2 RYNTED OR.W  EGOSNF NDIF. A AT DTEDALIVA, I2CSL AL;C LEABJT.- =K CHSI CC ND.E 2 R4UBSD OR.W G SENO DFIF .  DCEN .  #2Y LAEROV8 RYNT;E  Y8TREN RDWO .  EGOSNF NDIF .  ERFFBUD RLO NT IBLLO.GR TEEN;E BLTA-J.= L RGNT EC ND.E 3L REGISTER CHECKER MAIN1B: BICB  #DEFFLG,@R1  ; CLEAR SYMBOL'S DEFINED FLAG  TSTB  RSLMOD-O04  ;AM I IN REL EXP BLT MAIN87   ;.GLOBL OR EXTERNAL .CSECT EXPRESSION  BEQ  MAIN1C BISB  #RELFLG,@R1 MOVB SECMOD-O04,1(R1) ;PROG. SECTION ID MAIN1C: BISB  #DEFFLG,@R1  ; FLAG THIS SYMBOL DEFINED MAIN1D: TRAP  OVRLAY  ; CALL OVERLAY USER'S SYMBOL TABLE BR  MAIN89  ; SUBROUTINE DATA TERMINATION ;DATERM: SUBR24:  CMPB @R5,R0  BA7 2097PD U D IEIFECSPT PUINE RCOU SNO; 3//7 IISC.A 3:A7 1097PD U R ROERC PE SCEURSOT PUIN; 2//7 IISC.A 2:A7 0097PD U R ROERC PE SUTTPOU; 1//7 IISC.A 1:A7 9096PD U R ROERX TAYN SI1CS; 0//7 IISC.A 0:A7 8096PD U RSBEUM NNELIE NCUEEQ SOFT OU; 9//5 IISC.A 9:A5 7096PD U. GEAR LTOR BEUM NNELID AR CONTIECRRCO; 8//5 IISC.A 8:A5 6096PD U . 1 #SLSTBH,-(SP) ; GET LINE BUFFER HEADER FOR READ UPD6290 MOV #SOLKBK,-(SP) ; LINK BLOCK FOR READ UPD6300 EMT 4 ; READ UPD6310 MOV #SOLKBK,-(SP) ; WAIT TIL DONE UPD6320 EMT 1 ; UPD6330 TSTB SLSTBH+3 ; TEST STATUS OF READ. UPD6340 BEQ INP240 41BRSU RDWO. G SENO DFIF. C ND.E  #2Y LAEROV6 RYNT;E  Y6TREN RDWO .  EGOSNF NDIF. E INUTROUB SCHARSER EAIN;L LEABJT.-  =H RCNSLI 40BRSU RDWO .  RYNT EOLMBSYY LAEROV;E BLTA-J.= Y LAVR O9 R3UBSD OR.W E INUTROUB SCHARSEY ARIN;B LEABJT.- = CHSRIN BC ND.E  38BRSU RDWO. G SENO DFIF. C ND.E 3) #AYRLVE(OR SOESOCPRD ENT ONFR; 8 RYNTED OR.W  EGOSNF NDIF . Y BLEMSS AALONTIDION;C LEABJT.- =D ON C7 R3UB S RDWO .  LEABJT.-  =  T BYLD R6 /EQ DATER0  SWAB R0  CMPB @R5,R0 DATER0:  RTS R7 .IFNDF NOSEG ENDO04: SIZO04=ENDO04-BEGO04 .EOT   ;END OF FILE #4 ;***** OVERLAY #5 ***** O05=BEGOVR-BEGO05  ;COMPUTE OFFSET FROM    ;RUN TIME OVERLAY AREA BEGO05: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVERLAY. ; JMP OPCODE  ;ENTRY1 JMP EOFFLG  ;ENTRY2 .ENDC ; ; ; OPCODE:  MOV  QUANTITY-O05,-(R6) ; STACK MEMONICS OP-CODE  TRAP  EVENPC ; CALL EVEN THE LOCATION COUNTER  MOV  ORRR EATRMFOS HAD AR CONTIECRRCO; 7//5 IISC.A 7:A5 5096PD U . ITUNO I/T IS LOMFRR ROER; 6//5 IISC.A 6:A5 4096PD UT)ECOTPR (. LEFIO SLD OTELEDET NON CA; 5//5 IISC.A 5:A5 3096PD U R.ROERT PUUT OONTIECRRCO; 4//5 IISC.A 4:A5 2096PD U ORRR EUTNP IONTIECRRCO; 3//5 IISC.A 3:A5 1096PD U ORRR E/O IUTNP ICEURSO; 2//5 IISC.A 2:A5 0096PD U R.ROERO I/-; OK. KEEP GOING. UPD6350 BITB O100,SLSTBH+3 ; TEST FOR EOF. UPD6360 BNE INP280 ; EOF. UPD6370 MOV A56,ERRNUM ; SET UP ERROR CALL. ERROR NUMBER. UPD6380 MOV SLSTBH+2,-(SP) ; ERROR STATUS UPD6390 JSR PC,ERR ; GO DO ERROR STUFF. UPD6400 EMT 60 ; EXIT R3UB S RDWO .  LEABJT.-  =  N BIUT OC ND.E 5 R3UB S RDWO .  EGOS N DFIF .  DCEN .  #2Y LAEROV7 RYNT E ; Y7TREN  D OR.W G SENO  F NDIF .  LEABJT.-  =  B TASD G4 R3UB S RDWO .  LEABJT.- =  F REEL R3 R3UB S RDWO .  LEABJT.-  =  L FILD R2 R3UB S D OR.W  LEABJT.- =  T INLD R1 R3UB S RDWO .  LEABJT.-  =  B CHER S7 R2UB S RDWO .  NGTIIS LUTTPOUD ANMMCO;  E BLTA-J .  = STLICO 26BRSU  D OR.W R TEUNCON IOAT+ #COMAND,R5  ; R5 = COMAND'S ADDRESS  MOV  #RESULT,R4  ; R4=RESULT ADDRESS  MOV  #SIZE,R3  ; R3 = SIZE ADDRESS  CLRB  @R3   ; SIZE=0  MOV  #TBBUF,R2  ; R2=TBBUF(0) ADDRESS  MOVB  ICLASS-O05,R0 ; R0 = OP-CLASS INDEX  JMP  @OPCLASS-BEGO05+BEGOVR(R0) ; SELECT OPERATION CLASS OPCLASS:  ; OPERATION CLASSING JUMP TABLE CLASS0: .WORD  MAINC0-BEGO05+BEGOVR  ; OPERATE MNEMONICS CLASS1: .WORD  MAINC1-BEGO05+BET PUUT OCEURSO; 1//5 IISC.A 1:A5 9095PD U O =SSI- 3 ; 8095PD U R =CSO- 2 ; 7095PD U R =CSI- 1 ; 6095PD U . ORRR ESI CS.ERMBNUR ROER; 0//5 IISC.A 0:A5 5095PD U ; B//K 50AD.R B:RK 4095PD U ; ) UPD6410 INP240: INC R0 ; INCREMENT LINE NUMBER UPD6420 MOV R0,-(SP) ; PUT BINARY LINE NUMBER ON STACK UPD6430 MOV R1,-(SP) ; PUT ADDRESS OF LINE NUMBER (ASCII) UPD6440 MOV R2,-(SP) ; ON STACK ALONG WITH CODE FOR UPD6450 EMT 42 ; BINARY TO DECIMAL (ASCII) CONVERSION. UPD6460 MOV #LPBUFH,-(SP) ; BUFFER HEADER FOR WRITE. OC LHE TENEV;  E BLTA-J .  = PCENEV 25BRSU  D OR.W Y ITILABNTRI P ; LEABJT.-  =  T INPR DCEN .  24BRSU  D OR.W G SENO  F FD.I C ND.E 4 #AYRLVE;O  Y8TREN  D OR.W G SENO  F NDIF .  ONTINAMIER TTADA;  E BLTA-J .  = RMTEDA 23BRSU  D OR.W M SUCKHE CSHNIFI;  E BLTA-J .  =UMKSECCH 22BRSU  D OR.W N IOATIZALTINI ID. IR.HA C ; LEABJT.-  =  1 UPET S1 R2UB S RDWO .  DECOR ROERT SE;  E BLTA-J .  = RRTESE 'GOVR  ; UNARY  MNEMONICS CLASS2: .WORD  MAINC2-BEGO05+BEGOVR  ; BINARY MNEMONICS CLASS3: .WORD  MAIN3F-BEGO05+BEGOVR  ; RTS  MNEMONICS CLASS4: .WORD  MAIN30-BEGO05+BEGOVR  ; BRANCH MNEMONICS CLASS5: .WORD  MAIN3Q-BEGO05+BEGOVR  ; JSR  MNEMONICS CLASS6: .WORD  MAIN3A-BEGO05+BEGOVR  ; TRAP  MNEMONICS MAIN30:  ; CONDITIONAL BRANCH MNEMONIC PROCESSING  CLR  R0   ; R0 = 0  TRAP  EXPE3 ; CALL EXPRESSION, T//D 50AD.R T:RD 3095PD U ; F//D 50AD.R F:RD 2095PD U ; R//C 50AD.R R:RC 1095PD U . SOI= SIF. XT ELEFIW NE; / PD/U 50AD.R : PDRU 0095PD U TEBYS TUTA SOR FSKMAF EO; 0001 D OR.W : 00O1 9094PD U S NTTANSCO ; 8094PD U % UPD6470 MOV #LPLKBK,-(SP) ; LINE PRINTER LINK BLOCK FOR WRITE. UPD6480 EMT 2 ; WRITE UPD6490 MOV #LPLKBK,-(SP) ; WAIT FOR WRITE TO FINISH UPD6500 EMT 1 ; UPD6510 MOV #LPLNTH,LPBUFH+4; RESET ACTUAL BYTE COUNT FOR WRITE UPD6520 BR INP220 ; GO DO NEXT. UPD6530 INP220BRSU  D OR.W D ELFIT ERNS I ; LEABJT.-  =  T ERNS I9 R1UB S RDWO .  ORATEREP SISESTHENAR P ; LEABJT.-  =  P SEAR P8 R1UB S RDWO .  CKHE CND ELDIE F ; LEABJT.-  =  D ENLD F7 R1UB S RDWO .  ORATINRMTET EX N ; LEABJT.-  = RMTEEX NB R3UB S RDWO .  CKHE CIAED-MOFD-ENT PUUT O ; LEABJT.-  =  K CHOM E6 R1UB S RDWO .  RSTEISEG RET S ; LEABJT.-  =  G REET SC ND.E 5 R1UB S RDWO .  EGOS N DFIF .  DCEN .  #3Y #SEMICOLON     ; MINIMAL TERMINATOR  BGT  MAIN32  ; NON-VOID EXPRESSION FOUND     ; VOID EXPRESSION ENCOUNTERED MAIN31: INCB  AERROR-O05  ; SET ADDRESSING ERROR MOVB #-1,@R4  BR  MAIN3H MAIN32:  TSTB  RSLMOD-O05  ; ENSURES  BEQ  MAINBR  ; THAT ILLEGAL  BLT  MAIN31  ; BRANCHING DOES NOT  BR  MAIN33  ; TAKE PLACE. MAINBR:  TSTB  SECMOD-O05  ;  BNE  MAIN31      ; ; 7094PD U . GEKAAC PTEDAUPE THY BEDUSS LEABRIVAD ANS NTTANSCOE THE ARE ESTH; 6094PD U E AG.P 5094PD U E.OD CONMMCOO TGO; 10C4AS BR 4094PD U . OWFLEROV. GEAR LTOR BEUM NNELI; UMRNER8,A5 V MO: 40C4AS 3094PD U E OD CONMMCOO TGO; 10C4AS BR 2094PD U . RSBEUM NNELIE NCUEEQ SOFT OU; UMRNER9,A5 V MO: 20C4AS 1094!80: MOV #LPLKBK,-(SP) ; CLOSE LINE PRINTER. UPD6540 EMT 17 ; UPD6550 INP282: .ENDC ; UPD6560 MOV #SOLKBK,-(SP) ; CLOSE SOURCE OUTPUT FOR LAST TIME. UPD6570 EMT 17 ; UPD6580 TST SILKBK+010 ; ARE WE IN INSERT MODE? UPD6590 BNE INP285LAEROV4 RYNT E ; Y4TREN  D OR.W G SENO  F NDIF .  UTTPOUD TEIS LLEAB TOLMBSY;  E BLTA-J .  = STLLST 14BRSU  D OR.W S ERSTGIREE AV S ; LEABJT.-  =  G REAV S3 R1UB S RDWO .  ONSIERNVCOI CIASO TRYNABI;  E BLTA-J .  = SCNABI DCEN .  12BRSU  D OR.W G SENO  F FD.I C ND.E 3 #AYRLVE OY3TREN;  3 RYNT E RDWO .  EGOS N DFFN.I G INSTLIE BLTAL BOYM S ; LEABJT.-  =  T ISTL S1 R1UB S RDWO .  ERCTRAHA CET G ; OF ASSEMBLY LOC. COUNTER MAIN33: SUB  @USERPC-O05,@R4 ; RESULT=RESULT-USER'S PC.  SUB  #2,@R4  ; RESULT = RESULT-2  ASR  @R4   ; SHIFT RESULT RIGHT 1-BIT  BCS  MAIN31  ; ADDRESSING ERROR IF ODD  MOVB  @R4,R0  ; PROPAGATE BYTES SIGN IN R0  CMP  @R4,R0  ; RESULT = R0 ?  BNE  MAIN31  ; NOPE, ADDRESSING ERROR  BR  MAIN3H  ; FINAL COMAND PROCESSING ;  .PAGE MAINC0:  ; CONDITION CODE OPERATES, WAIT, HALPD U ITEX; 60 T EM 0094PD U . FFTU SORRR EUT OUT PGO; RR,EPC R JS 9093PD U. RR EOR FCKTA SINE LUVAD INNDFEOFT PU; ) SP-(),R2-( VBMO: 10C4AS 8093PD U R.ROERT MAOR FOR FREHE; UMRNER7,A5 V MO: 00C4AS 7093PD U RNTURE; PC S RT 6093PD U D.BA. EIINSTCR; 20C4AS BR 2093PD U . OK. NDRENOE IN L. ET SIT BGNSI; 40C4AS I BM 2091PD U . LTSURED OLD TEIFSHO TTEBYW NED AD; 3 ,RR1 D AD 0091PD U N 10= 2 N* 5 =R3; R3 L AS 9090PD U 3. RINT ULES RHE T 5N= N N+ 4 =R3; 3 ,RR0 D AD 8090PD U CELA PND A10Y BR0 N 4 =R3; R3 L AS 7090PD U LYIPLTMUO TIST UL CKED. UPD6910 ; UPD6920 ; IF THEY ARE NOT DIFFERENT, THE Z BIT IN THE PSR WILL BE SET ON RETURN. UPD6930 ; IF THEY ARE DIFFERENT, THE Z BIT WILL NOT BE SET. UPD6940 ; UPD6950 ; IF EITHER (OR BOTH) OF THE FILES IS BLANK, THE TEST IS RETURNED AS IF UPD6960 ; THE FILES ARE DIFFERENT. DION;C 0E YT.B V:TLNS C0  E YT.B : THRLVA UPCKBAD MOSL;R  0  E YT.B : MDL2RS N)IOCTSEL NAERXT(EE BLTACALORE= -2 ;    ALOBGL= -1 ;    N)IOCTSET ENRRCU (LEABATOCEL R1= ;    TELUSOAB= ;0    N IOSSREXP EOFE YP THE TESATICND IISTH ;  0 TEBY . D:MOSL RS T'ECCS .EDAM N =8)6(372- ;    CTSE.CD MENAUN= ;1    T ECAS .0= ;    S: INE OONTIEC SATWHN IESATICND IISTH ;  1 TEBY . D:MOEC S0  E YT.B : IXAD R1 E+IZ=SMTTFBY;  OT TWO FIELDS FOUND  INCB  QERROR-O05  ; QUESTIONABLE SYNTAX  MOV  #2727,@R5  ; CONSTRUCT DEFAULT COMMAND     ; USE TWO IMMEDIATE MODES  MOVB  #4,@R3  ; SIZE = 4  CLR  TBBUF+4-O05  ; TBBUF(4,5) = 0 MAIN3U: CLR  TBBUF+2-O05  ; TBBUF(2,3) = 0 MAIN3V: BIS  @R5,@R6  ; PLACE THE ADDRESSING BITS     ; INTO THE COMAND WORD MAIN3W: INCB  @R3   ; SIZE = SIZE+2  INCB  @R3 MAIN3X: MOV  (R6)+,TBES RET NN 2 =R3; R3 L AS 6090PD U R TELAD ADR FOE LUVAL NAGIRI OVESA; 0 ,RR3 V MO 5090PD U . ORRR ES. IIT; 00C4AS E BG 4090PD U ) ERMBNUA T NO (GEAR LOO TIFE SE; 2 01,#R1 P CM 3090PD U . ERMBNUD ONEC SOR F50C2ASO T ; 2090PD U R.BEUM NSTIR FOR F00C2ASO T ; 1090PD U . CHANBRC MINADY R.BEUM N AOT NG.NE;  UPD6970 ; UPD6980 ; ON ENTRY THE ADDRESS OF THE TWO FILE BLOCKS ARE PASSED TO THE UPD6990 ; SUBROUTINE IN REGISTERS R0 & R1. THESE REGISTERS ARE NOT MODIFIED UPD7000 ; BY THE SUBROUTINE. UPD7010 ; UPD7020 FILECK =. ; ENTRY POINT   0 TEBY .: MTTFBY SSREDD AENEVE BSTMUE IZ S ;   0 TEBY . E:IZ SE AGIME RCOU SVETIECFF EHE TOF;     G INSSCERO PRETIENE THT OU;     U HR TERFFBUT PUUT-OUTNP I ;     VETIECFF EHE TTOS NTOI P ;     LYALONTIDIONNC U1)0,S(DRHA B ;     ESSSREDD AERADHER FEUF BUTNP I ; F2BUSI  D OR.W E RCOU SOFE BLTAG INATOT R ; F1BUSI  D OR.W S:DRHA BN VE.E 0 RDWO.: D4OR W0 RDWO.: D3OR W0 RDWO.: D2OR WH RCNSLIO TUTBUF-O05 ; TBBUF(0) = COMMAND WORD JMP EXIT-O05  ; EXIT THE MNEMONIC PROCESSOR EOFFLG:  ; END-OF-FILE OR END-OF-MEDIA FLAGS PROCESSED ;IS THIS THE EOD OF THE 1ST ;DATA SET OF TWO DATA SETS? TSTB SICNT-O05 ;NON 0 INDICATES TWO DATA SETS BEQ EOF1  ;ONLY ONE DATA SET CMP #SILB2,SILB-O05 BEQ EOF1  ;ALREADY ON 2ND DEC SITAPE-O05 ;LAST TAPE BNE EOF4  ;NO MOV SILB-O05,-(R6) ;CLOSE EMT CLS TSTB PAPASS-O05 BNE EOF2 CMPB MAXPASS-O05,P 00C2AS I BM: 10C1AS 0090PD U. NOL MACIDET GEO T0'06 'HE TOFP RIST; 1 ,R60#0 B SU 9089PD U TEBYT GE; R1+,2)(R VBMO 8089PD U RDWOR EACL; R1 R CL: 00C1AS 7089PD UR FEUF BINE YT BNDCOSEO TEXND IUPT SE; 2 ,R+1UFRB#C V MO 6089PD U ; R3 R CL 3089PD U ERMBNUE IN LNGDIENE THR EACL; D ENCR  UPD7030 TST (R0) ; IS FILE 1 BLANK? UPD7040 BEQ FILE30 ; YES. UPD7050 TST (R1) ; IS FILE 2 BLANK? UPD7060 BEQ FILE30 ; YES. UPD7070 CMP (R0),(R1) ; WORD 1 OF HE FILE NAME. DIFFERENT? UPD7080 BNE FILE20 ; DIFFERENT UPD7090 NP;I  0D OR.W 1:RDWO S)ESDRADT ESOW(LT PSF OOP;T  BTMTSY RDWO.: OPRTPE S)ESDRADT ESGHHI (ST POFM TOOT;B  BBMTSY RDWO.: OTRBPE T.ENEMATST;     E RCOU SNTSERE PHE TINTHWI;     D SEESOCPRG INBE) ERCTRAHA(C;     E YT BNTREUR CHE TATY TLECIR D ;     TSINPOY TLANSTON CERNTOI PISTH;   0  D OR.W: TEBYUR CD OR WNDMAOM CNSIOCTRUSTINN A ;     OF) DR(MS LDIE FNGSIESDRAD;     L RANEGEE THF OONTIUCTRNSCO;     ASS-O05 ;NOT PARAMETER FILE. BNE EOF3 ;PARAMETER FILE EOF2: MOV SILB-O05,-(R6) ;RELEASE DATA SET. EMT RLS EOF3: MOV #SILB2,SILB-O05 ;SWITCH TO 2ND MOV #SIFB2,SIFB-O05 ;DATA SET. MOV SITAP2-O05,SITAPE-O05 ;TAPE COUNT CMPB #1,PASS-O05 ;OPEN ALREADY BNE EOF5  ;DONE FOR 1ST PASS JMP SETP4-O05 EOF1: DEC SITAPE-O05 ;LAST TAPE BNE EOF4  ;NO ;SIMULATE .END INC ERRSUM-O05 ;DECLARE AS ERROR MOV #1,JMPADR-O05 ;FOR TRANSFER ADDR. CLRB BINOUT-O05 R CL 2089PD U ERMBNUE IN LNGNIGIBEE THR EACL; STCR R CL 1089PD U NTOU CRDWOE AK MTOO TWY BDEVIDI; 10C1AS RBAS 0089PD U H NCRA BSTIR FOR FSSREDD AET S0;11SC,A-210C1AS0-20SC#A VBMO 9088PD U T INPOY TREN; =. I CBAS 8088PD U ; 7088PD U N.CA SHE TESATINRMTEO LS ANKLA B A. ONSIERNVCO; 60  CMP +2(R0),+2(R1) ; WORD 2 OF FILE NAME. UPD7100 BNE FILE20 ; DIFFERENT UPD7110 CMP +4(R0),+4(R1) ; FILE NAME EXTENSION UPD7120 BNE FILE20 ; DIFFERENT UPD7130 CMP +6(R0),+6(R1) ; USER ID CODE UPD7140 FILE20: RTS PC ; RETURN UPD7150 FILE30: CLZ  HE TIND SE URDWOA AT D ;   0 RDWO .: NDMACO 0 RDWO . G:FLLD RE AGORST;   0  E YT.B : NTLCRE VETIECIR DLD R ;   0 TEBY . R:DIRL ;   0 RDWO . D:CMIR DE AM N ;   0 RDWO . 2:SYLB GL BOYM SALOBGL;   0  D OR.W : Y1BSGL HE TNSAINTCOH ICWHR TEINPO;   0  D OR.W L:BOYM SD OR WC. PX.MAO TERNTOI P ;   0 RDWO . C:RPHI RDWOC PTOR TEINPO;   0  D OR.W : PCEL RS ERNTOI PRYNT ECTSE.CT ENRRCU  ;D OR W;ON BINARY. TRAP EBBUF JMP SIMEND-O05 EOF4: MOV SILB-O05,-(R6) ;CLOSE EMT CLS EOF5: JMP SETP0-O05 .IFNDF NOSEG ENDO05: SIZO05=ENDO05-BEGO05 ; .ENDC .EOT .ENDC .IFNDF NOSEG .CSECT ;BEGINNING OF OVERLAY AREA ;THE SIZE OF THE OVERLAY AREA IS DETERMINED ;BY THE SYMBOL "OVRSIZ" ; BEGOVR: ;THE BEGINNING REGISTERS OF EACH ;OVERLAY CONTAIN JMP'S TO THE ;ENTRY POINTS OF THE OVERLAY ENTRY1=. ENTRY2=.+4 ENTRY3=.+10 ENTRY4=.+14 ENTRY5=.+20 ENTRY6=.+2488PD U HE TESATINRMTEK ANBLA R OMAOM C AR.BEUM NRYNABIG INNDPOESRRCO; 5088PD U HE TTOING INTR SERCTRAHA CIISC ACHEAS RTVEON CNETIOUBRSUE TH; 4088PD U ; 2088PD U L.NAFID ANL IARTPAH OT BT.ULES R -R3 ; 1088PD U . ERFFBUE IN LONTIECRRCOE THO NT IEXND I -R2 ; 0088PD U R.FEUF BNELIN IOCTREOR COMFRE YT BNTREUR C -R1 ; 9087PD U  ; SET UP FOR BLANK FILE(S) UPD7160 RTS PC ; RETURN TO CALLER. UPD7170 .PAGE UPD7180 ; THIS SUBROUTINE IS USED TO PRINT THE UPDATE SYSTEM ERROR MESSAGES. UPD7190 ; THE CALLING CODE MUST PLACE THE PROPER ASCII CODE NUMBERS UPD7200 ; IN THE SKELETON. THESE NUMBERS ARE THE LAST TWO OF THE FOUR CHARACTER UPD7210 ; ERROR NUMBER. IE ERROR 55 WOULD PLAIDG/LA FTSDOF OR.DD A ;   0 RDWO .C:RPSEHU SSPAA G INUR DEDORRR E ;     ESIN LHE TLL AOFM SUE TH;   0  D OR.W M:SURR ES ESDRADR DEEA H'SERFFBU;     T PUINE RCOU SVETIECFF EHE T ;     OFS ESDRADE THS INTAON C ;     RDWOS HI TO,ER ZOT NIF;     G LA FUTTPOUD ANMMCO;   0  D OR.W G:LAOF C. ERFFBU;     T PUUT OEDSTLIE IVCTFEEFE TH;     N ITEBYE BLLAAIAVT ENRRCU;     E THT ATSINPOR  ENTRY7=.+30 ENTRY8=.+34 ENTRY9=.+40 .=.+OVRSIZ ;OVERLAY DEVICE LINK BLOCK ; .WORD 0  ;ERROR RETURN ADDRESS OVRLB: .WORD 0  ;LINK POINTER (DDB) .RAD50 /OVR/  ;LOGICAL DATA SET NAME .BYTE 1  ;DEVICE SPECIFIED .BYTE 0  ;UNIT NUMBER .RAD50 /DF/  ;DEVICE NAME ; ;OVERLAY DEVICE FILE BLOCK ; .WORD 0  ;ERROR RETURN ADDRESS .BYTE 13  ;HOW OPEN CODE (OPENC) .BYTE 0  ;ERROR RETURN CODE OVRFB: .RAD50 /PAL/  ;FILENAME AND EXTENSION .RAD50 /11R/ N IOATICPLTIUL MOR FGERATO SRYRAPOEM T -R0 ; 8087PD U G:INANMEG INOWLLFOE THE AV HND AEDUSE AR4 R -R0S ERSTGIRE; 7087PD U . ERITRMPEE ARS CEPA SEDDDBEIMO N. ERFFBUE IN LONTIECRRCO; 6087PD U E THF OTEBYS IHE TINS IITE OREFERTH N.UMOL CSTIR FHE TIN; 5087PD U E BSTMU' '-S ERCTRAHA CSTIR FHE T. ,M-NR O-NM OR FHE TOFE ARE ESTH; 4087PD U . RSBEUM NNELIE ATPD UHE TETPRERNT ITOD SE UISE INUTROUB SISTH; 3087PD U CE THE ASCII CHARACTERS '55' UPD7220 ; IN THE SKELETON AT ADDRESS ERRNUM. THE RESULTING MESSAGE WOULD BE UPD7230 ; 'S255 '. UPD7240 ; THE CALLING PROGRAM MAY ALSO PLACE A SINGLE BINARY UPD7250 ; VALUE ON THE TOP OF THE STACK. THIS VALUE WILL BE REMOVED AND UPD7260 ; PRINTED AS A FIVE CHARACTER ASCII CHARACTER STRING AFTER BEING UPD7270 ; CONVERTED BY THE PROGRAM. TEINPOS HI T ;   0 RDWO .T:ISRLCU H.RCEA S ;     LEAB TOLMBSYE THG INUR D ;     NTTANSCOR TEACARCH' 'B;     E IVCTFEEFE THS INTARE;   0  D OR.W D:CMYT BN IOITOS PR.HA CTH5-, B' ' ;  20 1 RDWO .  ONTISIPO. ARCHH -T 4','B;  0062  D OR.W . LSBOYM SEDBLNA E ;     TEBYE THO TONTILARE;     N INETIOUBRSUH RCEA S ;     HE TBYD SE UTSANSTON C ;     ERCTRAHA CB' '40D-MOF OLEAB T ;  ;IN RADIX 50 .RAD50 /OVR/  ;NOTATION USERID: .WORD 0  ;USER ID CODE .BYTE 233  ;PROTECT CODE .BYTE 0 ; ;OVERLAY DEVICE INPUT TRAN BLOCK ; OVRTBI: .WORD 0  ;DEVICE BLOCK NUMBER .WORD BEGOVR  ;MEMORY START ADDRESS .WORD OVRWRD  ;WORD COUNT OVRIER: .WORD 4  ;FUNCTION (READ) .WORD 0  ;NUMBER OF WORDS NOT TRAN'D ;SUBROUTINE TO DIVIDE THE TOP WORD OF ;THE STACK BY THE NEXT WORD. EXITS ;WITH THE QUOTIENT ON TOP OF THE ;STACK. THE QUOTIENT IS INCREMENTE E AG.P 2087PD U . AMGRRO PHE TITEX; 60 T EM 1087PD U F UFSTR ROERO DGO; RR,EPC R JS 0087PD U K ACSTN OUSATSTR ROERT PU; ) SP,(+3FHIBCR VBMO 9086PD UDECOE YT BOR FCKTA SOND OR WXTNER EACL; ) SP-( R CL 8086PD U ERMBNUR ROER; UMRNER4,A5 V MO: 10CROT 7086PD U RNTURE. OK;  UPD7280 ; THE SUBROUTINE USES THE REGISTER R2. IT IS NOT RESTORED. UPD7290 ; UPD7300 ERR =. ; ENTRY POINT UPD7310 MOV (SP)+,R2 ; SAVE RETURN ADDRESS UPD7320 MOV #ERRADD,-(SP) ; SET CHARACTER STRING ADDRESS IN STACK UPD7330 MOV #5,-(SP) ; SET CONVERSION CODE IN STACK U 0 -1 .  = ONTCBY D.OR WAGFLD/ I'SOLMBSYF OSSREDD A ;   0 RDWO .: EXNDHI CKLO BALINRMTES T'PUUT O ;     RYNABIE THR FOS ESDRAD;     P UM JVETIECFF EHE TNSAIET R ;   0 RDWO .R:ADMP J0 D OR.W : INRC SM SUCKHE CUTTPOUY ARIN B ;     HE TNGTIUCTRNSCOR FOD SE U ;   0 RDWO .: UMCSBO 0 RDWO .M:ERVTSA ENEV .  OLMBSYE BLTACALORES OUVIRE;P     OFD ICTSE.CN AINTAI MTO;   E INUTROUB SONSIESPREXN IEDUS; 0 TEBY.D BY ;ONE IF THERE IS A REMAINDER. ; CALLING SEQUENCE: ;  MOV DIVISOR,-(R6) ;  MOV DIVIDEND,-(R6) ;  JSR R7,DIVIDE ;  MOV (R6)+,QUOTIENT ;R0 IS DESTROYED DIVIDE: MOV #1,R0  ;QUOTIENT AT LEAST 1 DIVID1: SUB 4(R6),2(R6) ;SUBTRACT DIVISOR FROM DIVIDEND BLE DIVID2  ;DONE? INC R0  ;NO. BR DIVID1 DIVID2: MOV R0,4(R6) ;QUOTIENT MOV (R6)+,@R6 ;R7 RTS R7 ; ;THE FOLLOWING TABLE IN THE RESIDENT ;ASSEMBLER CONTAINS A ONE WORD ENTRY ;FOR EACH OF THE N O PC S RT 6086PD U D.OO GNO; 10CROT E BN 5086PD U TEBYS TUTA SSTTE; +3FHIBCR TBTS 4086PD U NEDOS I/O IILNT UITWA; 1 T EM 3086PD U T AI WOR FDD ACKLO BNKLI; ) SP-(K,KBOL#S V MO 2086PD U RDCOREE THE ITWR; 2 T EM 1086PD U CKLO BNKLIT PUUT OCEURSO; ) SP-(K,KBOL#S V MO PD7340 EMT 42 ; USE BIN20 FOR CONVERSION UPD7350 MOV #ERRLBH,-(SP) ; PUT ERROR MESSAGE ADDRESS IN STACK UPD7360 MOV #COLKBK,-(SP) ; PUT OUTPUT LINK BLOCK ADDRESS IN UPD7370 EMT 2 ; GO WRITE IT OUT UPD7380 MOV #COLKBK,-(SP) ; WAIT TILL DONE UPD7390 EMT 1 ; UPD7400 MO: ECGSPR CEENQUSEF -LLFR- C ;  F ,LLFR, C TEBY .  /XXS::SMMH:/H IISC.A X:EXIM T/ YYD--DMM /I CIAS .: XXTEDA /X XXXXE AGP  / IISC.A  CEENQUSEF -FCR; FFF,,LCR  E YT.B T UNCOE YT BALTUAC;  52 RDWO .  O)(LDEMO ) HIS(TUTA S ;   0 0 RDWO .  NTOU CTEBYX MA ; 2 5 RDWO .: UFGBPA ERFFBUE AGSSMEE AG P ;   N VE.E 4 =D COSP L2 =D COTY TN IOATOCEL REDACPLIS DVETIDIADT ECCS .; 6 1= .4D4RL ONTICALOREE IVITDD ACTSEVERLAYS. THE ;1ST WORD OF THE TABLE CONTAINS N*2. ;AS NEW OVERLAYS ARE CREATED, ENTRIES ;MUST BE ADDED TO THE END OF THE TABLE. ;WHEN THE ASSEMBLER GETS CONTROL AT ;"STARTA", IT WILL PLACE THE STARTING ;PHYSICAL BLOCK NUMBER FOR EACH OVERLAY ;IN THE RESPECTIVE ENTRY. ;THE SIGN BIT (BIT 15) OF EACH ENTRY WILL ;INDICATE WHETHER OR NOT THE ASSOCIATED ;OVERLAY IS IN CORE: ; 1=RESIDENT ; 0=NOT RESIDENT ; RUNTAB: .WORD RUNEND-RUNTAB ;N*2 .WORD 0  ;OVERLAY #1 .WORD 0  ;OVERLAY #2 0086PD U D.ADD EA HFFBUE IN LONTIECRRCO; ) SP-(H,BFRI#C V MO 7085PD U T INPOY TREN; =. R TCOU 6085PD U ; 5085PD U . ENIV GIST XI EANN HE TND A54F OERMBNU; 4085PD U ATHWID LEAL CISR ER, ESURCC OORRR E/O INY AIF D.SE UISR TEINPO; 3085PD U K ACSTE THY NL OND AEDSSPAE ARS NTMEGUARO N. LEFIT PUUT OCEURSO; 2085PD U V R2,-(SP) ; RESTORE RETURN ADDRESS UPD7410 RTS PC ; RETURN UPD7420 .PAGE UPD7430 ; THIS SUBROUTINE IS USED TO WRITE A SOURCE RECORD OUT TO THE UPD7440 ; SOURCE OUTPUT FILE. NO ARGUMENTS ARE PASSED IN EITHER UPD7450 ; DIRECTION. UPD7460 ; IF ANY I/O ERROR IS ENCOUN.C;  15  =3 4.LD RN IOATOCEL REDACPLIS DCTSE.C;  14  =2 4.LD RN IOATOCEL RCTSE.C;  12  =1 4.LD R1 1= .3D3RL 10  =  2 3.LD R7  =  1 3.LD R6  = 6 2.LD R5  = 5 2.LD R4  = 4 2.LD RC PE SERADLO;   3  = .3D2RL NKLIN IENIV GAS;   2  = .2D2RL DSANMMCOD RL;   1  = .1D2RL TOR FEREE ESTH;   4  = MDDCRL 3  = IRTDTX 001= SKTMDL 1  =NELINGLO 40 3  = S7LASC 00 3  = S6LASC 40 2  = S5LASC 00 2  = S4LASC 40 1  = S3" .WORD 0  ;OVERLAY #3 .WORD 0  ;OVERLAY #4 RUNEND: .WORD 0  ;OVERLAY #5 ; ;SUBROUTINE TO TRANSFER A REQUESTED ; OVERLAY FROM DISK TO THE OVERLAY AREA. ;CALLING SEQUENCE: ;  TRAP CONTRL  ;  .WORD N  ;WHERE N IS ;     ;THE OVERLAY NUMBER ; ;IF THE REQUESTED OVERLAY IS ALREADY RESIDENT, ;CONTROL IS RETURNED IMMEDIATELY TO THE CALLER. ; ;IF THE REQUESTED OVERLAY IS NOT RESIDENT: ; 1. IT IS TRAN'D IN (.TRAN, .WAIT) ; 2. A CHECK IS MADE FOR ERRORS ;  DE THO TRDCOREN IOCTREOR CLENGSIA T PUUT OTOD SE UISE INUTROUB SISTH; 1085PD U E AG.P 0085PD U . AMGRRO PHE TITEX; 60 T EM 9084PD U F UFSTR ROERO DGO; RR,EPC R JS 8084PD U K ACSTN OUSATSTR ROERT PU; ) SP,(+3FHIBCR VBMO 7084PD UDECOE YT BOR FCKTA SOND OR WXTNER EACL; ) SP-( R CL 6084PD U R $TERED BY THE ROUTINE ON RETURN FROM THE UPD7470 ; WRITE/WAIT SEQUENCE, AN ERROR MESSAGE IS PRINTED VIA ERR WITH A UPD7480 ; NUMBER OF 51. AFTER THE RETURN OF CONTROL FROM ERR AN EMT 60 (EXIT) UPD7490 ; IS GIVEN WHICH TERMINATES THE PROGRAM. UPD7500 ; UPD7510 OUTSOR =. ; ENTRY POINT UPD7520 MOV #SRBUFH,-(SP) ; LINE BUFFER LASC 00 1  = S2LASC 40  =  1 ASCL S0  =  0 ASCL SB TAL TAONIZOR HIISC A;  1 1  = AB TD EEEFIN LIISC A;  2 01  =  F LN URET-RGEIARRCAI CIAS;   15 0  = CR EDFERMFOI CIAS;   14 0  = FF E.IL FUSUOIGNTCO;   E ATOCLL ATOE IM TLDUI;B     ATM OO RGHOUENT NO;  0 64=1R9ER ;) RSROER" "F (ESOD CGESAES MORRR;E ANTR .UTNP IONR ROER; E ICEV DORN RA.TT PUUT;O   ONR ROERE ICEV DORD EO;7 20 2 =R8ER NGSIIS MLEFIT PUIN;6 20 2 =R7ER ESIL FUTNP INYMAO TO&URING TRANSFER ; 3. RUNTAB IS UPDATED TO REFLECT ;  WHICH OVERLAY IS NOW RESIDENT ; 4. RETURN TO CALLER ; ;CONTRL: SUBR46: TRAP SAVREG  ;SAVE REGISTERS 1 THRU 5 MOV @12(R6),R1 ;OVERLAY NUMBER TO R1 ASL R1  ;ADJUST TO WORD OFFSET MOV #RUNTAB,R2 ;BASE OF TABLE ADD R2,R1  ;ADDRESS OF REQUESTED ENTRY MOV @R1,OVRTBI ;SET UP TRAN BLOCK BLT CONTR1  ;OVERLAY ALREADY IN MOV #OVRTBI,-(R6) ;.TRAN IN MOV #OVRLB,-(R6) ;THE OVERLAY EMT 10 ;UPDATE RUNTAB BEUM NORRR EUPT SE; UMRNER3,A5 V MO: 20CRIN 5084PD U RNTURE; PC S RT 4084PD U . AGFLF EOT SE; F EOCR C IN 3084PD U . ORRR ETOO GF.EOT NO; 20CRIN Q BE 2084PD U F.EOR FOK ECCH; H BFRI,C00O1 TBBI: 10CRIN 1084PD U RNTURE; PC S RT: 05CRIN 0084PD U (ADDRESS FOR WRITE UPD7550 MOV #SOLKBK,-(SP) ; SOURCE OUT LINK BLOCK FOR WRITE UPD7560 EMT 2 ; WRITE RECORD UPD7570 MOV #SOLKBK,-(SP) ; LINK BLOCK ADD FOR WAIT UPD7580 EMT 1 ; WAIT UNTIL THE I/O IS DONE UPD7590 TSTB SRBUFH+3 ; TEST THE STATUS BYTE UPD7600 BNE OTSO10 ; BRANCH IF ERROR 8ANY TYPE). ;5 20 2 =R6ER ESIL FUTTPOUY AN MOO;T 0422= 5 RR ES UEAL VCHITSWY AN MOO;T   UEAL VCHITSWL GALEIL; S HETCWI SNYMAO TO; H TCWI SALEGLL;I 0322= 4 RR EE ITWR .OND EOT PUUT;O 0222= 3 RR ES ALONTIDION CEDSTNEY AN MOO;T 0122= 2 RR ES T'ECCS .NYMAO TO;0 20 2 =R1ER ;) RSROER" "S (ESOD CGESAES MORRR;E NDMAOM CSEEAEL;R  7= LS RD ANMMCOE ETEL;D 21 =T DL NDMAOM CSELO;C 17 =S CL NDMAOM CENOP;6 1= PN OD ANMMCOE IZALTINI I ;   6  = MDNC ID ANMMCOE ITWR;   2  =  * MOV (R2)+,R3 ;N*2 CONTR3: SUB #2,R3  BLT CONTR4  ;MORE ENTRIES? BIC #100000,(R2)+ ;YES. CLEAR IN FLAG BR CONTR3 CONTR4: BIS #100000,@R1 ;SET NEW IN FLAG TRAP SETREG  ;RESTORE REGISTERS MOV #OVRLB,-(R6) ;WAIT FOR EMT WTCMD  ;COMPLETION ;CHECK FOR ERROR ON TRANSFER BIT #140000,OVRIER BEQ CONTR2 ;ERROR ON TRANSFER MOV OVRIER,-(R6) ;PUSH STATUS BYTE BIC #377,@R6 ;INFO INTO LOW SWAB @R6  ;INFO BYTE AND MOV #ERR8,-(R6) ;CLEAR THE REST. C ND.E 9083PD U ; 1 T EM 8083PD U E.ON DILNT UITWA; ) SP-(K,KBOL#C V MO 7083PD U E ITWR; 2 T EM 6083PD U SSREDD ACKLO BNKLIT GE; ) SP-(K,KBOL#C V MO 5083PD U Y.TTN OISE IL FONTIECRRCO; 4083PD U HE TIFN OBET NOL IL WCHITSW; , UPD7610 RTS PC ; RETURN UPD7620 OTSO10: MOV A51,ERRNUM ; SET OP ERROR NUMBER UPD7630 CLR -(SP) ; CLEAR NEXT WORD ON STACK FOR BYTE CODE UPD7640 MOVB SRBUFH+3,(SP) ; PUT ERROR STATUS ON STACK UPD7650 JSR PC,ERR ; GO DO ERROR STUFF UPD7660 EMT 60 ; EXIT PROGRAM. UPD7670 MDRC WD ANMMCOT AI W ;   1  = MDTC WD ANMMCOD EA R ;   4  = MDDC R7 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 SE OD MUTTPOUY ARIN B ;   3  = DEMOBO DEMOT PUINE RCOU S ;   0  = DEMOSI 2476  =  2 BS A1 4027 1  = S1AB 0 =  2 EL R0  =  1 EL R. ESSSPAT ENQUSEUB SIN;      LEABILVA AISE OR CEEFR;      . JMP ERROUT CONTR1: TRAP SETREG  ;RESTORE REGS. 1 THRU 5 CONTR2: ADD #2,@R6  ;INCREMENT PAST ARGUMENT RTS R7  ;RETURN TO CALLER .ENDC ERRTAB:   ; ASSEMBLY ERROR TABLE     ; SINGLE WORD ENTRIES :     ; ASCII CHARACTER (LOW BYTE)     ; ERROR INDICATOR (HIGH BYTE)  .BYTE  'L   ; INPUT LINE BUFFER OVERFLOW LERROR: .BYTE  0  .BYTE  'P   ; PHASE ERROR PERROR: .BYTE  0  .BYTE  'Q   ; QUESTIONABL 3083PD U HE T. ERNTRI PNELIO NIFY TTE US; THLNLP FZ.I 2083PD U C ND.E 1083PD U ; 1 T EM 0083PD U E.ON DLL AILNT UITWA; ) SP-(K,KBPL#L V MO 9082PD U E ITWR; 2 T EM 8082PD U SSREDD ACKLO BNKLIT GE; ) SP-(K,KBPL#L V MO 0 .PAGE UPD7680 ; THIS SUBROUTINE IS USED TO READ A SINGLE INPUT SOURCE RECORD. UPD7690 ; NO REGISTERS ARE USED NOR ARE ANY ARGUMENTS PASSED. UPD7700 ; IF AN EOF STATUS IS RETURNED BY THE READ/WRITE PROCESSOR, 'SIEOF' UPD7710 ; WILL BE SET TO +1. ALL OTHER NON-ZERO STATUS SETTINGS WILL CAUSE A UPD7720 ; CALL TO THE PACKAGE ERROR ROUTINE 'ERR' WITH AN ERROR NUMBER OF 52. UPD7730 ; THE ERROR STATUSOFL AL 1.S AS PNGRIDU;      CKTA SOFE IZ SUMIMAX M;  . 00 2  = IZKSST SKMAE IL-FOFD-EN;   0 10  =  F EO DEMOT PUUT OEDSTLI;   0  =  E ODOM LT SEFF O'SUSATSTT PUUT OEDSTLI;   5 -1  =  T TAOS LG LA FALOBGL;   0 10  =  G FLLB GG LA FLEABATOCEL R ;  40  =  G FLEL R3 T BI, AGFLE IVCTREDIY BLEMSS A ;  10  =  R DISM A3 T BI, AGFLD NEFIDE;   0 1  = LGFFDE E.YT BCTSE.CN IG,LA FEDINEF DLEIPLTMU;   7 37  =  2E SYNTAX QERROR: .BYTE  0  .BYTE  'A   ; ADDRESSING ERROR AERROR: .BYTE  0  .BYTE  'R   ; REGISTER ERROR RERROR: .BYTE  0  .BYTE  'D   ; DOUBLE DEFINITION REFERENCED DERROR: .BYTE  0  .BYTE  'M   ; MULTIPLY DEFINED LABEL MERROR: .BYTE  0  .BYTE  'B   ; BOUNDING ERROR BERROR: .BYTE  0  .BYTE  'I   ; ILLEGAL CHARACTER ERROR IERROR: .BYTE  0  .BYTE  'N   ; NUMBER ERROR NERROR:7082PD U . NE OVEHAF IERNTRI PNELIE US; THLNLP FG.I 6082PD U S ESDRADR DEEA HERFFBUE IN LET GS.YE; ) SP-(H,BFRI#C V MO 5082PD U . NO; 05CRIN Q BE 4082PD U ? OR FEDSK ANGTIIS L AIS; 10+0BKLKCR T TS 3082PD U REMOK ECCHO G'SET LD.OO GNO; 10CRIN E BN 2082PD U S TUTA SSTTE; +3FHIBCR TBTS 1082PD U 4 WILL BE PASSED TO 'ERR' ON THE STACK FOR DISPLAY UPD7740 ; ON THE TTY. UPD7750 ; THIS WILL BE FOLLOWED BY AN EXIT TO TERMINATE THE PROGRAM. UPD7760 ; UPD7770 INSOR =. ; ENTRY POINT UPD7780 MOV #SRBUFH,-(SP) ; SOURCE LINE BUFFER HEAD ADD. UPD7810 MOV #SILKBK,-(SP) ; SO AGFLMD D.NEFIDEREL BOYM SNTNEMAER P ;   2  = F DERE 1IT BG,LA FELAB L ;   2  = LGBFLA 0IT BG,LA FERSTGIRE;   1  =  G FLEG R0 T BI, AGFLE BLNA ETEBY;   1  =  G FLYT BS ONTINIFIDET BIG LA FLEAB TOLMBSY;    A @#O TEDRCFOA F I-0ON N;  0 TEBY.: BSCAFR ORATICND IERMBNUL MACIDE;   0  E YT.B M:NUEC D0  E YT.B 0  E YT.B 0  E YT.B 0  E YT.B 0  E YT.B Y ARNDOU BENEVE BSTMUF BUTB;   0  E YT.B6 .BYTE  0  .BYTE  'T   ; TRUNCATION ERROR TERROR: .BYTE  0  .BYTE  'U   ; UNDEFINED SYMBOL REFERENCED UERROR: .BYTE  0 MAXERR: ERROR:  .BYTE  0 SICNT: .BYTE 0   ; NON 0 INDICATES 2 INPUT FILES. ; ; ; LINK BLOCKS ; .EVEN .WORD 0 ;COMMAND INPUT   ERROR RETURN, NO BUFFER CILB: .WORD 0 ;LINK BLOCK   DDB POINTER (ON .INIT) .RAD50 /CID/     ; LOGICAL NAME .WORD 1     ;UNIT# / DEVICE SPECIFIED .RAD50 /KB/     ITWA; 1 T EM 0082PD U T AI WOR FCKLO BNKLI; ) SP-(K,KBRL#C V MO 9081PD U D OREC RHE TADRE; 4 T EM 8081PD U SSREDD ACKLO BNKLI; ) SP-(K,KBRL#C V MO 7081PD U S ESDRADD EA HERUF BNELI; ) SP-(H,BFRI#C V MO 4081PD U T INPOY TREN; =. CRIN 3081PD U 8URCE INPUT LINK BLOCK ADDRESS UPD7820 EMT 4 ; READ A RECORD UPD7830 MOV #SILKBK,-(SP) ; LINK BLOCK ADDRESS FOR WAIT UPD7840 EMT 1 ; WAIT UNTIL I/O IS DONE UPD7850 TSTB SRBUFH+3 ; TEST STATUS BYTE UPD7860 BNE INSO10 ; BRANCH IF NOT OK UPD7870 RTS PC ; RETURN  R FEUF BRYNABIY ARORMPTE;   F:BUTB ENEV .  ;0 TEBY. 0 TEBY.: CTPTCI 0D OR.W  N//I 50AD.R  CKLO BLEFI;/ /D 50AD.R  UTNP INDMAOM;C M/CO/0 D5RA.: FBCI ADRER FON PE;O 4D OR.W  0D OR.W  ;0 TEBY. 0 TEBY.: CTPTSL 0D OR.W  M/SY/0 D5RA. / AM/N 50AD.R  CKLO BLEFIT PUUT OBL TYM;S L/FI/0 D5RA.: FBSL TERI WOR FENOP;2 RDWO. 0 RDWO. ; 0E YT.B  0E YT.B T:TCOP L0 RDWO. / ST/L 50AD.R  M/NA/0 D5RA. K OCBLE IL FUTTPOUG INSTLI;/ IL:;PHYSICAL NAME ; ; .WORD 0 ;COMMAND OUTPUT COLB: .WORD 0 ;LINK BLOCK .RAD50 /COD/ .WORD 1 .RAD50 /KB/ ; ; .WORD 0 ;SYSTEM INPUT LINK BLOCK SILB1: .WORD 0 .RAD50 /SI1/ .WORD 7 .RAD50 /DF/ SITAPE: .WORD 0 ;NUMBER OF TAPES CURRENT FILE PAPASS: .WORD 0 ; NON-0 INDICATES PARAMETER FILE SITAP1: .WORD 0 ;NUMBER OF TAPES FILE ONE. CONTOP: .WORD 0 ;TOP OF .CSECT TABLE USRTOP: .WORD 0 ;TOP OF UST STKBOT: .WORD 0 ;1ST ADDRESS ABOVE STACK ; ;  ; 2081PD U . EDESPRUP SBEL IL WLEFIN IOCTREOR CHE TOFG INSTLIE TH; 1081PD U E GLIN SISTHN I. TY THE TONS ILEFIN IOCTREOR CHE TSSLEUN; 0081PD U TY THE TOND TEINPRE BLLWIG INSTLIE TH, STXI EOT NESDO; 9080PD U R TEINPRE IN LHE TIF R.TEINPRE IN LHE TONS GEMA IONTIECRRCO; 8080PD U E THT INPRL IL WNETIOUBRSUS HI TET SISH TCWI SNGTIIS LHE TIF; 7080PD U < UPD7880 INSO10: BITB O100,SRBUFH+3 ; TEST FOR EOF UPD7890 BEQ INSO20 ; BRANCH IF NOT UPD7900 INC SIEOF ; SET EOF FLAG. UPD7910 RTS PC ; RETURN UPD7920 INSO20: MOV A52,ERRNUM ; UPD7930 CLR -(SP) ; CLEAR NEXT WORD ON STACK FOR BYTE CODE/F 50AD.R B:OF LE ITWRR FON PE;O 2D OR.W  0D OR.W  ;0 TEBY. 0 TEBY.: CTPTBO 0D OR.W  N/BI/0 D5RA. / AM/N 50AD.R  CKLO BLEFIT OUN BI;/ IL/F 50AD.R B:OF BE ITWRR FON PE;O 2D OR.W  0D OR.W  ;0 TEBY. 0 TEBY.: O2PRSI 0D OR.W  L/PA/0 D5RA. / AM/N 50AD.R  L/FI/0 D5RA.: B2IF SD EA ROR FENOP; 4D OR.W  0D OR.W  ;0 TEBY. 0 TEBY.: O1PRSI 0D OR.W  L/PA/0 D5RA. / AM/N 50AD.R  CKLO BLEFIN IRC;S L/FI/0 D5RA.: B1IF SD EA ROR FENOP;4 >.WORD 0 ; SECOND SYSTEM INPUT SILB2: .WORD 0 ; LINK BLOCK .RAD50 /SI2/ .WORD 4 .RAD50 /DF/ SILB: .WORD 0 ; POINTERS TO CURRENT SIFB: .WORD 0 ; INPUT DATA SET SITAP2: .WORD 0 ;NUMBER OF TAPES. ; ; .WORD 0 ;LISTING OUTPUT LINK BLOCK LOLB: .WORD 0 ;DEFAULT = LP .RAD50 /LOD/ .WORD 6 .RAD50 /LP/ RESULT: .WORD 0 ;EXPRESSION ACCUMULATOR LOPASS: .WORD 0 QUANTITY:.WORD 0 ;ITEM'S QUANTITATIVE VALUE PAGING: .WORD 0 ;LINE COUNTER (OCTAL), MODULO  ; 6080PD U M.RAOGPRE THE ATINRMTEO TITEXN ABYD WELOOL FBEL IL WISTH; 5080PD U . TY THE TON; 4080PD U Y LASPDIR FOK ACSTE THN O' RR'E TOD SEAS PBEL IL WUSATSTR ROERE TH; 3080PD U. 53F OERMBNUR ROERN ATHWI R'ER 'E INUTROR ROERE AGCKPAE THO TLLCA; 2080PD U A E USCAL IL WGSINTTSES TUTA SROZEN-NOR HEOTL AL 1. +TOT SEE BLLWI; 1080PD U F'EOCR ', ORSSCERO PTERI/WADREE THY BEDRNTURES IUSATSTF EO UPD7940 MOVB SRBUFH+3,(SP) ; PUT ERROR STATUS ON STACK UPD7950 JSR PC,ERR ; GO DO ERROR STUFF UPD7960 EMT 60 ; EXIT UPD7970 .PAGE UPD7980 ; THIS SUBROUTINE IS USED TO READ A SINGLE CORRECTION RECORD UPD7990 ; NO REGISTERS ARE USED NOR ARE ANY ARGUMENTS PASSED. UPD8000 ; IF AN RDWO. 0 RDWO. S CKLO BLEFI;N VE.E  ;; 0D OR.W E:ORST TR TOCADIING INYP TERSTGIRE;0 RDWO.: YPGTRE RDWOE LUVAS OT DOFR DD;A 0D OR.W C:RPSE U0 RDWO.: SSPAST PCN IOCTSEE UTOLBS;A 0D OR.W C:SPAB P//L 50AD.R  6D OR.W  D/SL/0 D5RA. P L =LTAUEF;D 0D OR.W B:LL SK OCBLK IN LNGTIIS LBL TYM;S 0D OR.W  ;; N.AI.M;  T ULFADER OLEIT.TM RO;F 0D OR.W B:LEIT TE ULOD MCTJEOBF OLEIT;T 0D OR.W A:LEIT TN IOCTRUSTON CERMBNUL MACIDE;0 RDWO.: 10SEBA 0D OR.W S:AS ;ONE PAGE (52. LINES) PAGCNT: .WORD 0 ;CUMULATIVE PAGE COUNTER (OCTAL) LINENO:  .WORD 0 ;ASSEMBLER LINE NUMBER FOR UPDATE MAXLINES:.WORD 70 ;MAXIMUM NUMBER LINES PER PAGE LISTON: .WORD 0 ;0 = LIST AS USUAL, 1 = SUPPRESS NON-ASSEMBLY LISTKEY:.WORD 0 ;0 = PRINT CURRENT LINE, 1 = DON'T PRINT LINE LASTLN: .WORD 0 ; ; .WORD 0 ;BINARY OUTPUT LINK BLOCK BOLB: .WORD 0 ;DEFAULT = HSP .RAD50 /BOD/ .WORD 6 .RAD50 /PP/ BASE08: .WORD 0 ;OCTAL NUMBER CONSTRUCTION BOP