€ASSEM CSY/ €€1_%NAM ASSEM_(DECK-ID A01 MACRO ASSEMBLER_%SUMMARY-162_^1*_$MASS STORAGE OPERATING SYSTEM VERSION 5.0_^1*_$SMALL SYSTEMS DIVISION, LA JOLLA, CALIFORNIA_^1*_$COPYRIGHT CONTROL DATA CORPORATION 1976_^1*_'PROGRAM BASE-MACRO ASSEMBLER 2.0_4**MSOS 4.0_^1_%ENT ASSEM_^1_%ENT ASSIM_^1_%COM FST,L,P,X,C,MM,ILSECT,SRSCT,ILSCND_0MSOS4.1_^1_%COM ERC_OMSOS4.1_^1_%COM LGSECT_^1_%COM SYRFT€€S(96)_"SECTOR REF.TABLE SYMBOLS_,MSOS4.1_^1_%COM SYCADM_'ADDR TO SECT.REF.TABLE SYMBOLS_%MSOS4.1_^1_%COM SYEXT_MMSOS4.1_^1_%COM SYINDM_LMSOS4.1_^1_%COM SYTRFM_'ENTRY ADDR.REF.TABLE SYMBOLS_(MSOS4.1_^1_%COM SYTRFD_'1ST ADDR REF.TABLE SYMBOLS-DISK_$MSOS4.1_^1_%COM APASS1,APASS2,APASS3,ATBLST,AXREF,PAGE_,MSOS4.1_^1_%COM PS1W2,PS2W2,PS3W2,PS4W2,PS5W2_5MSOS4.1_^1DISP_!EQU DISP($€€EA)_^1PS_#EQU PS(-0)_'TO READ IN PASS 1._^1REQPRO EQU REQPRO($F4)_^1STDOCD EQU STDOCD($FC)_^1ASSEM ENQ PS_^1ASSIM EQU ASSIM(ASSEM)_^1_(SQP_!MA1-*-1_^1_(ENA_!0_^1_(STA_!FST_^1_%ENQ 4_QMSOS4.1_^1_%STA APASS1,Q_JMSOS4.1_^1_%STA PS1W2,Q_KMSOS4.1_^1_%SQZ 2_QMSOS4.1_^1_%INQ -1_PMSOS4.1_^1_%JMP* *-6_OMSOS4.1_^1MA1_$LDA_%=XPS1ALF-FILE-1_;**MSOS 4.0_^1_(JMP* *+1,Q_^1_(INA_!-3_^€€1_(INA_!-3_^1_(INA_!-3_^1_%INA -3_PMSOS4.1_^1_%INA 12_PMSOS4.1_^1GETFIL_!STA* FILE+8_^1_(ENA_!0_^1_(STA* FILE1_^1*_81 CARD DELETED_6MSOS4.1_^1_(STA* CSWW_^1_%ENQ PS_PMSOS4.1_^1_%LDA APASS1_LMSOS4.1_^1_%STA* FILE2_MMSOS4.1_^1_%LDA PS1W2_MMSOS4.1_^1_%STA* FILE+7_LMSOS4.1_^1FILE_!RTJ- (REQPRO)_$GTFILE REQUEST._^1_(NUM_%$5A00_E**MSOS 4.0_^1_(ADC_!COO_^1_(ADC_!0_^1_(ADC_!$8C2_^1€€_(ADC_!0_^1_%ADC ASSEM_^1_(ADC_!0_^1_(ADC_!0_^1FILE1_"ADC_!0_^1FILE2_"ADC_!0_^1_(LDA* CSWW_^1_(SAN_!1_^1_(JMP* *-2_^1_%ENQ 0_QMSOS4.1_^1_%LDA* FILE2_MMSOS4.1_^1_%STA APASS1-1,Q_HMSOS4.1_^1_%LDA* FILE+7_LMSOS4.1_^1_%STA PS1W2-1,Q_IMSOS4.1_^1_(RTJ* *+1_^1ASSEM1_!ADC_!0_^1_(LDA* ASSEM1_^1_(SUB* ASMADC_^1_(SAN_!1_^1_(JMP* ENDASB_^1_%LDA* ASSEM1_'SET STARTING ADDRESS IN REQUES€€T_'68*1500_^1_%INA APUNT1_'ABSOLUTE ADDRESS OF PUNT1_-68*1500_^1_%STA* APUNT_O68*1500_^1_%RTJ- (REQPRO)_$FWRITE REQUEST._^1_(ADC_%$4C00_E**MSOS 4.0_^1_(ADC_!0_^1_(ADC_!0_^1_%VFD N3/0,N1/1,N2/2,X10/STDOCD_^1_(ADC_!6_^1APUNT ADC_#0_P68*1500_^1_%JMP- (DISP)_'EXIT_^1PUNT1_"ALF_!6,ABS BASE ERR_^1APUNT1 EQU APUNT1(PUNT1-ASSEM1)_@68*1500_^1ASMADC_!ADC_!ASSEM1_^1_(BZS_!CSWW_^1COO_$ENA_€€!1_^1_(STA* CSWW_^1_%JMP- (DISP)_'EXIT_^1PS1ALF ALF 3,PASS1_^1PS2ALF ALF 3,PASS2_^1PS3ALF ALF 3,PASS3_^1PS4ALF_!ALF_%3,TABLST_B**MSOS 4.0_^1PS5ALF ALF 3,XREF_LMSOS4.1_^1MA5_$ADC_!0_^1_(EQU_!ENDASB(MA5+1)_^1_%END ASSEM_^__ €€PASS1 CSY/ €€1_%NAM PASS1_(DECK-ID A02 MACRO ASSEMBLER_%SUMMARY-162_^1*_$MASS STORAGE OPERATING SYSTEM VERSION 5.0_^1*_$SMALL SYSTEMS DIVISION, LA JOLLA, CALIFORNIA_^1*_$COPYRIGHT CONTROL DATA CORPORATION 1976_^1*_'PROGRAM BASE-MACRO ASSEMBLER 2.0_4**MSOS 4.0_^1_%ENT PASS1_^1PS_#EQU PS(1)_(TO READ IN PASS 2._^1REQPRO EQU REQPRO($F4)_^1STDINP EQU STDINP($F9)_^1STDPRT EQU STDPRT($FB)_^1STD€€OCD EQU STDOCD($FC)_^1DISP_!EQU DISP($EA)_^1ASSEM_"ENQ_%PS_^1_(SQP_%MA1-*-1_^1_(ENA_%0_^1_(STA_%FST_^1_%ENQ 4_QMSOS4.1_^1_%STA APASS1,Q_JMSOS4.1_^1_%STA PS1W2,Q_KMSOS4.1_^1_%SQZ 2_QMSOS4.1_^1_%INQ -1_PMSOS4.1_^1_%JMP* *-6_OMSOS4.1_^1MA1_$LDA_!=XPS1ALF-FILE-1_?**MSOS 4.0_^1_(JMP*_$*+1,Q_^1_(INA_%-3_^1_(INA_%-3_^1_(INA_%-3_^1_%INA -3_PMSOS4.1_^1_%INA 12_PMSOS4.1_^1GETFIL_!ST€€A*_$FILE+8_^1_(ENA_%0_^1_(STA*_$FILE1_^1_%STA* CSWW_NMSOS4.1_^1_%ENQ PS_PMSOS4.1_^1_%LDA APASS1,Q_JMSOS4.1_^1_(STA*_$FILE2_^1_%LDA PS1W2,Q_KMSOS4.1_^1_%STA* FILE+7_LMSOS4.1_^1FILE_!RTJ- (REQPRO)_$GTFILE REQUEST._^1_(NUM_!$5A00_I**MSOS 4.0_^1_(ADC_%COO_^1_(ADC_%0_^1_(ADC_%$8C2_^1_(ADC_%0_^1_(ADC_%ASSEM_^1_(ADC_%0_^1_(ADC_%0_^1FILE1_"ADC_%0_^1FILE2_"ADC_%0_^1_(LDA*_$CSWW_^1_(SAN_%€€1_^1_(JMP*_$*-2_^1_%ENQ PS_PMSOS4.1_^1_%LDA* FILE2_MMSOS4.1_^1_%STA APASS1-1,Q_HMSOS4.1_^1_%LDA* FILE+7_LMSOS4.1_^1_%STA PS1W2-1,Q_IMSOS4.1_^1_(RTJ*_$*+1_^1ASSEM1_!ADC_%0_^1_(LDA*_$ASSEM1_^1_(SUB*_$ASMADC_^1_(SAN_%1_^1_(JMP*_$ENDASB_^1_%LDA* ASSEM1_'SET STARTING ADDRESS IN REQUEST_'68*1500_^1_%INA APUNT1_'ABSOLUTE ADDRESS OF PUNT1_-68*1500_^1_%STA* APUNT_O68*1500_^1_%RTJ- (REQP€€RO)_$FWRITE REQUEST._^1_(ADC_!$4C00_I**MSOS 4.0_^1_(ADC_%0_^1_(ADC_%0_^1_%VFD N3/0,N1/1,N2/2,X10/STDOCD_^1_(ADC_%6_^1APUNT ADC_#0_P68*1500_^1_%JMP- (DISP)_'EXIT_^1PUNT1_"ALF_%6,ABS BASE ERR_^1APUNT1 EQU APUNT1(PUNT1-ASSEM1)_@68*1500_^1ASMADC_!ADC_%ASSEM1_^1_(BZS_%CSWW_^1COO_$ENA_%1_^1_(STA*_$CSWW_^1_%JMP- (DISP)_'EXIT_^1PS1ALF ALF 3,PASS1_^1PS2ALF ALF 3,PASS2_^1PS3ALF ALF 3,P€€ASS3_^1PS4ALF_!ALF 3,TABLST_G**MSOS 4.0_^1PS5ALF ALF 3,XREF_LMSOS4.1_^1MA5_$ADC_%0_^1_(EQU_%ENDASB(MA5+1)_^1_(COM_%DIRBUF(96),INBUF(96),SKLBUF(96)_^1_(COM_%PTBL(96),INSKBF(96)_^1_(COM_%INBUF1(41)_^1_(EQU_%ACTBL(SKLBUF),ACTBL2(PTBL)_^1_(EQU_%INPADR(1),SKLADR(INPADR+1)_^1_(EQU_%CRPADR(SKLADR+1),ACADR(CRPADR+1)_^1_(EQU_%BUFFSW(ACADR+1),SKBFSW(BUFFSW+1)_^1_(EQU_%CS(SKBFSW+1),IG(CS+1)€€,NOPG(IG+1)_^1_(EQU_%MSW1(NOPG+1),MSW2(MSW1+1)_^1_(EQU_%CT(MSW2+1),LOCSW(CT+1),NU(LOCSW+1)_^1_(EQU_%NC(NU+1),PM(NC+1),NL(PM+1)_^1_(EQU_%AF(NL+1),CHST(AF+1),LOCTOT(CHST+1)_^1_(EQU_%LN(LOCTOT+1),CSW(LN+1),DC(CSW+1)_^1_%EQU SKELOC(DC+1),DIRINX(SKELOC+1)_545*776_^1_(EQU_%FPRINX(DIRINX+1)_^1_(EQU_%CM(FPRINX+1),CM1(CM+1),AP(CM1+1)_^1_(EQU_%PGSECT(AP+1),PGSCST(PGSECT+1)_^1_(EQU_%ILSECT(P€€GSCST+1),SKSCST(ILSECT+1)_^1_(EQU_%ACSECT(SKSCST+1)_^1_(EQU_%SY(ACSECT+1),XMOD(SY+4)_^1_%EQU T1(XMOD+1),TP1(T1+6)_^1_(EQU_%SQ(TP1+3)_#5 LONG_^1_(EQU_%NULSW(SQ+5)_^1_(EQU_%ACC(NULSW+1)_^1_(EQU_%FSTM(ACC+1)_^1_(EQU_%RCS(FSTM+1)_!MUST BE LAST_^1_(COM_%CONS(RCS+1)_^1_%COM FST,L,P,X,C,MM,ILSEC1,SRSCST,ILSCND_/MSOS4.1_^1_(COM_%ERC_^1_%COM LGSECT_^1_%COM SYRFTS(96)_"SECTOR.REF.TABLE S€€YMBOLS_,MSOS4.1_^1_%COM SYCADM_'ADDR.TO SECT.REF.TABLE SYMBOLS_%MSOS4.1_^1_%COM SYEXT_MMSOS4.1_^1_%COM SYINDM_LMSOS4.1_^1_%COM SYTRFM_'ENTRY ADDR.REF.TBL.SYMBOLS_*MSOS4.1_^1_%COM SYTRFD_'1ST ADDR.REF.TBL.SYMBOLS-DISK_'MSOS4.1_^1_%COM APASS1,APASS2,APASS3,ATBLST,AXREF,PAGE_,MSOS4.1_^1_%COM PS1W2,PS2W2,PS3W2,PS4W2,PS5W2_5MSOS4.1_^1_%EXT MAXSEC_LMSOS4.1_^1_(EXT_%GTFIL,GFL1,DOU€€T,OPT,MACDEF,MACGET,MACCON_^1_(EXT_%ENDMAC,DIN,MACCAL,RCO,CO,MC5,SLMC,DIRSCH_^1_(EXT_!DISKW5,MCNAM,MCCON,MC7A_7**MSOS 4.0_^1_%EXT_!MACROS,GFILE_^1_(EQU_%NF(LOCSW)_^1_(ENT_%MCHPR,JJAN12,PIL,READIM,GETOP,RECV_^1_(ENT_%MER,MDEX,CHPU,CONAC,MACER,PUNT,RIMSB_^1_%ENT P1D,SKLOUT,CONAB_B75*1837_^1_%ENT P1A_OMSOS4.1_^1PASS1 ENA 0_^1_%STA PAGE_NMSOS4.1_^1_%STA SYINDM_LMSOS4.1_^1_%LDA F€€ST_OMSOS4.1_^1_(SAZ_%1_^1_(JMP*_$ST1_^1_%LDA MAXSEC_LMSOS4.1_^1STILSC STA+ LGSECT_^1_(LDA-_$$B3_^1_(SUB-_$$C2_^1_(SAN_%4_^1_(LDA*_$(STILSC+1)_*SCRATCH ON LIBRARY UNIT_^1_(SUB-_$$C1_^1_(INA_%-2_^1_(STA*_$(STILSC+1)_^1_(LDA_%=N751_/ROOM FOR LOAD AND GO_^1_%STA SYTRFD_'1ST SECTOR ADDR._4MSOS4.1_^1_%STA SYCADM_'CURRENT SECT.ADDR._2MSOS4.1_^1_%ADD =N160_(LENGTH OF SCRATCH TABLE_-MSO€€S4.1_^1_(STA*_$(ST2+1) SRSCST_^1_%SUB* (STILSC+1) LGSECT_^1_(SAM_%2_^1_(JMP_%PUNT_0NO ROOM FOR IL_^1ST1_"LDA SYTRFD_LMSOS4.1_^1_%STA SYCADM_LMSOS4.1_^1_%LDA =XCONS_LMSOS4.1_^1_(STA-_$I_^1_(LDQ_%=XCONS+RCS-DIRBUF_^1_(ENA_%0_^1ST1A_!STA+ DIRBUF,Q_^1_(INQ_%-1_^1_(SQM_%1_^1_(JMP*_$ST1A_0ZERO OUT DIRBUF_^1_(STA_%ERC_^1ST2_$LDA+_$SRSCST_^1_(STA-_$PGSECT,I_^1_)STA-_$PGSCST,I_$PROG MAC€€ DIR START_^1_%INA 20_+LEAVE ROOM FOR IL SECTORS._^1_(STA-_$SKSCST,I_,SKEL SECT START_^1_%LDA* (ST2+1) SRSCST_^1_%INA 1_^1_%STA+ ILSEC1_^1_(STA-_$ILSECT,I_^1STIL1_"ENA_%-1_^1_(STA-_$DIRINX,I_,INIT DIR INDEX_^1_(LDA_%=N$5555_^1_(STA-_$BUFFSW,I_^1_(STA-_$SKBFSW,I_^1_(LDA_%=XACTBL_^1_(STA-_$ACADR,I_^1_(STA_!MCCON_I**MSOS 4.0_^1_(LDA- INPADR,I_F**MSOS 4.0_^1_(STA* P1J_K**MSOS 4.0_€€^1_(STA_!P1K_K**MSOS 4.0_^1_(STA_!INCON_I**MSOS 4.0_^1_(STA_!MC7A_J**MSOS 4.0_^1_(RTJ_%MINZRO_^1_(ENA_%$30_^1_(ENQ_%4_^1_(STA-_$SQ,B_^1_(INQ_%-1_^1_(SQM_%1_^1_(JMP*_$*-3_^1P1D_$RTJ*_$(CONAB-1) READIM GET FIRST IMAGE_^1_(RTJ+_$GETOP_^1_(SAM_%P1A-*-1_-ASTERISK_^1_(SUB_%=N$35EE_-MON IMG_^1_(SAN_%P1B-*-1_^1_%JMP- (DISP)_'EXIT_^1P1B_$LDA-_$NU,I_^1_(SUB_%=N$3E14_-OPT OPCODE_^1_(SAN_%2_^1€€_(JMP_%OPT_^1P1A_$LDA+_$FST_^1_(SAN_%P1C-*-1_^1_(STA_%MM_^1_(RAO*_$(P1A+1) FST_^1_%ENQ 3_,STD OPTIONS=LPCX_3*MSOS4.1_^1_(ENA_%1_^1P1AB_#STA_%L,Q_^1_(INQ_%-1_^1_(SQM_%1_^1_(JMP*_$P1AB_^1P1C_$LDA-_$NU,I_^1_(SUB_%=N$382D_-NAM OPCODE_^1_(SAZ_%1_^1_(JMP*_$MDEX2_^1_(ENA_%-1_2SET NAM INDEX_^1_(ENQ_%45_^1_(STA* (P1J),Q_"INPADR_=**MSOS 4.0_^1_(ENQ_%43_^1_(STA* (P1J),Q_"INPADR_=**MSOS 4.0€€_^1_(RTJ*_$(P1F+1) IL_^1_(JMP*_$MDEX+2_^1MDEX_#RTJ_%PIL_^1_(RTJ*_$(CONAB-1) READIM_^1_(RTJ*_$(P1D+2) GETOP_^1_%SAM MDEX4_^1_(SUB_%=N$3423_-MAC OPCODE_^1_%SAN MDEX3_^1_(JMP_%MACDEF_^1MDEX4 JMP* MDEX_^1MDEX3_"LDA-_$NOPG,I_^1_(SAN_%1_^1_(JMP*_$MDEX2_^1_(LDQ-_$DIRINX,I_^1_(INQ_%-5_^1MDEX3A_!LDA+_$DIRBUF,Q_,FLAG LAST DIR_^1_(TCA_%A_3ENTRY_^1_(STA*_$(MDEX3A+1),Q DIRBUF_^1_(LDQ-_$PGSEC€€T,I_,OUTPUT CURRENT DIR_^1_(LDA*_$MDEX3A+1_,ADDR OF DIRBUF_^1_(RTJ_%DOUT_^1MDEX2 LDA- SKELOC,I_(PICK UP RELATIVE SECTOR ADDR._#45*776_^1_(ADD- SKSCST,I_^1MDEX1_"STA- ACSECT,I_^1_(ENA_!0_^1_(STA- DC,I_^1_(LDA- NU,I_^1_(JMP* CONAB+1_^1CONA_#LDA- MSW1,I_^1_(SAZ_!2_^1_(JMP_!MACGET_^1_(RTJ+ READIM_^1CONAB_"RTJ* (P1D+2) GETOP_^1_(LDQ- MSW2,I_'CONTINUATION SW SET_^1_(SQZ_!2_,NO_€€^1_(JMP_!MACCON_^1_%SAP 2_^1_(JMP CONAC_*ASTERISK_^1_(SUB_!=N$15A3_*EMC OPCODE_^1_(SAN_!CONAB1_H**MSOS 4.0_^1_(ENA_!-3_+SET CLASS + INDEX_^1_(ENQ_!43_+FOR EMC_^1_(STA* (P1J),Q_"INPADR_=**MSOS 4.0_^1_(ENA_!17_^1_(ENQ_!45_^1_(STA* (P1J),Q_"INPADR_=**MSOS 4.0_^1_(JMP_!ENDMAC_^1P1J_$NUM_!0_)ADDR. OF INPUT BUFFER_.**MSOS 4.0_^1CONAB1_!LDA- NU,I_J**MSOS 4.0_^1_(SUB_!=N$15C4_*END OPC€€ODE_^1_(SAZ_!1_^1_(JMP* P1EE_^1_(ENA_!-3_^1_(ENQ_%43 STORE CLASS + INX FOR END_^1_(STA* (P1J),Q_G**MSOS 4.0_^1_%ENA_!8_^1_(ENQ_!45_^1_(STA* (P1J),Q_G**MSOS 4.0_^1_(LDA- BUFFSW,I_^1_(SAP_!2_,BE SURE LAST IL SECT_^1_(ALS_!1_,GETS OUT_^1_(STA- BUFFSW,I_^1P1F_$RTJ+ IL_^1_(STA_!ILSCND_^1_(JMP_!ASSEM_^1P1EE_#ENQ_!0_^1_(STQ- T1,I_^1P1E_$LDA_!OPTB,Q_^1_(SAP_!2_^1_(RAO- T1,I_^1_(TC€€A_!A_^1_(SUB- NU,I_^1_(SAZ_!CONACC-*-1_"OPCODE FOUND_^1_%ADQ+ NOPLEN_^1_%SQN 1_^1_%JMP* P1G_^1_%ADQ+ OPLEN_^1_(JMP* P1E_^1*_]_^1CONACC LDA- T1,I_)GET THE CURRENT CLASS CODE_^1_%INA -$E_*CLASS 1 THRU PSEUDO CLASS 3 TEST_^1_'SAP 1_^1_'JMP* CONC_^1_%INA 1_,IN PSEUDO CLASS 1 THRU PSEUDO CLASS 3_^1_%TCA A_,SET NEGATIVE CLASS CODE FOR PSEUDO OPS_^1_%STA- T1,I_)SAVE NEGATIVE CL€€ASS CODE TEMPORARILY_^1_%ADQ+ PINDX_^1_%TRQ A_,MOVE INDEX INTO A-REG_^1_%ENQ 45_+SET INDEX INTO IL RECORD_^1_%STA* (P1J),Q_%MOVE PSEUDO-OPCODE INDEX INTO IL RECORD_^1_%LDA- T1,I_)GET NEGATIVE PSEUDO-OP CLASS CODE_^1_%ENQ 43_+SET INDEX INTO IL RECORD_^1_%STA* (P1J),Q_%MOVE NEGATIVE PSEUDO-OP INDEX INTO IL_^1_%JMP* CONAC_(GO OUTPUT IL RECORD TO DISC_^1*_]_^1CONC_!INA 6_,CLASS 1 €€THRU 13 TEST_^1_%SAM CONZ-*-1_$IN CLASS 1 THRU 7--GO TO CONZ_^1_%ADQ+ C8INDX_^1_%LDA OP3,Q_(GET OPCODE COMMAND BITS FOR CLASS 8 THRU 13_^1*_]_^1CONG_!RTJ* STCODE_'MOVE OPCODE AND CLASS CODE TO IL RECORD_^1_%JMP* CONAC_(GO MOVE IL RECORD TO DISC_^1*_]_^1CONZ_!INA 4_,CLASS 1 THRU 7 TEST_^1_%SAP COND-*-1_$IN CLASS 4 THRU 7--GO TO COND_^1_%LDA OP1,Q_(GET OPCODE COMMAND BITS FOR C€€LASS 1 THRU 3_^1_%JMP* CONG_)GO MOVE CODES TO IL RECORD_^1*_]_^1COND_"ENA 0_^1_%ADQ+ C4INDX_^1_%LRS 2_,DJVIDE BY FOUR BECAUSE THERE ARE FOUR_^1_%ALS 2_,ENTRIES FOR EACH HEX TABLE WORD IN OP2_^1_%STA- T1+2,I_'SAVE THE HALF-BYTE POINTER INTO THE TABLE_^1_%LDA OP2,Q_(GET OPCODE COMMAND BITS FOR CLASS 4 THRU 7_^1_%LDQ- T1+2,I_'GET THE HALF-BYTE POINTER_^1*_]_^1CONF_!ALS 4_,SHIFT €€UNTIL VALUE WANTED IS RIGHT JUSTIFIED_^1_%INQ -1_+DECREMENT THE HALF-BYTE POINTER_^1_%SQM 1_,POINTING AT CORRECT OPCODE COMMAND BITS;_^1_%JMP* CONF_)NO. GO SHIFT AGAIN_^1_%ENQ $F_+YES. PREPARE TO MASK OFF UNWANTED BITS_^1_%LAQ A_,PUT 4-BIT OPCODE IN A-REG_^1_%LDQ- T1,I_)GET CLASS CODE_^1_%INQ -6_+CLASS 4 THRU 7 TEST_^1_%SQP 2_,IN CLASS 6 OR 7--SKIP TWO INSTRUCTIONS_^1_%ALS €€ 12_+IN CLASS 4 OR 5--LEFT JUSTIFY OPCODE_^1_%JMP* CONG_)GO MOVE CLASS CODE AND OPCODE TO IL RECORD_^1_%SQN 2_,IN CLASS 7--SKIP TWO INSTRUCTIONS_^1_%ALS 8_,IN CLASS 6--LEFT JUSTIFY OPCODE_^1_%JMP* CONG_)GO MOVE CLASS CODE AND OPCODE TO IL RECORD_^1_'LDQ+ MASK_^1_%ALS 5_,LEFT JUSTIFY THREE BITS OF OPCODE_^1_%EAQ A_,MASK IN WANTED BITS_^1_%RTJ* STCODE_'MOVE CLASS, OPCODE TO IL R€€ECORD_^1*_]_^1CONAC RTJ* (P1F+1)_%GO OUTPUT IL RECORD TO DISC AND RETURN_^1_%JMP+ CONA_^1*_]_^1STCODE ADC 0_^1_%ENQ 44_+SET AN INDEX INTO THE IL RECORD_^1_%STA (P1J),Q_%MOVE THE OPCODE TO THE IL RECORD_^1_%LDA- T1,I_)GET THE CLASS CODE_^1_%ENQ 43_+SET INDEX INTO IL RECORD_^1_%STA (P1J),Q_"MOVE CLASS CODE TO IL RECORD_^1_%JMP* (STCODE)_$RETURN_^1P1G_$RTJ_!RECV_^1_(LDA- PGSCST€€,I_^1_(STA- PGSECT,I_^1P1GG_#LDA- NOPG,I_^1_(SAN_!1_^1_(JMP* P1H_*NO PROG MACS_^1_%ENQ_#2_^1_%LDA-_"DC,I_^1_%SAN_#P1GH_^1P1GG1 LDA-_"SY,B_^1_%STA*_"(P1GH+1),Q_^1_%INQ_#-1_^1_%SQM_#1_^1_%JMP*_"P1GG1_^1_%JMP*_"P1GI_^1P1GH_!LDA_#MCNAM,Q_%SELF CALL IN MACRO_^1_%SUB-_"SY,B_^1_%SAN_#P1GI_)NO_^1_%INQ_#-1_^1_%SQM_#1_^1_%JMP*_"P1GH_^1_%LDA-_"DC,I_)YES_^1_%INA_#-10_*LEVEL GREATER THAN 10€€_^1_%SAM_#P1GI_)NO_^1_%JMP CONAC_+AND IGNORE CALL_^1P1GI_!LDA_#=XDIRBUF_^1_(LDQ- PGSECT,I_^1_(RAO- PGSECT,I_^1_%RAO- PGSECT,I_^1_(RTJ_!DIN_*BRING IN PROG DIR_^1_(RTJ+_$DIRSCH_'SEARCH DIRECTORY_^1_(SQN_!1_^1_(JMP* P1GG_)GET NEXT DIR_^1_(INQ 0_N**MSOS 4.0_^1_(SQZ P1H-*-1_#NOT FOUND_:**MSOS 4.0_^1_(ENA_%1_^1_(STA-_$PM,I_/SET PROG MAC SW_^1P1I_$LDA- 1,Q_^1_(STA- NF,I_^1_(LDA- €€2,Q_^1_(STA- NL,I_^1_(INQ_!2_^1_(STQ- DIRINX,I_)ADDR-1 OF SKL PTR_^1_(JMP_!MACCAL_^1P1H_$ENA_!1_^1_(STA- XMOD,I_^1P1HH_#LDQ- XMOD,I_^1_(LDA =XMACROS_G**MSOS 4.0_^1_(SUB =XGFILE_H**MSOS 4.0_^1*_]_^1*_$MODIFICATION TO MAKE THE MACRO DIRECTORY_^1*_$RESIDENT IN CORE ON FIRST REFERENCE_^1*_]_^1_%RTJ GTFILD_'GET THE FILE DIRECTORY, MACROS._^1_(ADC_!DIRBUF_^1_(LDA- XMOD,I_^1_(INA_€€!96_^1_(STA- XMOD,I_^1_(RTJ+_$DIRSCH_'SEARCH DIRECTORY_^1_(SQN_!1_^1_(JMP* P1HH_)NOT IN THIS DIRECTORY_^1_(INQ 0_N**MSOS 4.0_^1_(SQZ 3_N**MSOS 4.0_^1_(ENA_!0_,FOUND_^1_(STA- PM,I_^1_(JMP* P1I_^1_(JMP* CONAC_^1NOPLEN_!ADC (OPTB-ENDOP)_^1OPLEN_"ADC ENDOP-OPTB+1_^1PINDX_"ADC (OPTB-PSEUDO)_^1C8INDX_!ADC (OPTB-CLASS8)_^1C4INDX_!ADC (OPTB-CLASS4)_^1MASK_#NUM $F00_^1TEMP_#NUM€€ 0_^1******_!CALIFORNIA STATE UNIVERSITY CHICO ASSEMBLER UPDATE 1978. *****_^1*_]_'*_^1*_]_'*_^1*_$NAME:_!GETOP_R*_^1*_]_'*_^1*_$PURPOSE:_!CONVERTS THE 3-CHARACTER OPCOPE MNEMONIC IN THE_$*_^1*_0SOURCE STATEMENT TO A WEIRD PACKED REPRESENTATION_"*_^1*_0IN PREPARATION FOR SEARCHING THE OPCODE TABLE._%*_^1*_0THE MNEMONIC IS PACKED INTO 1 WORD WITH 5 BITS_%*_^1*_0PER CHARACTER. THE€€ PACKED MNEMONIC RETURNS IN_%*_^1*_0LOCATION NU AND IN THE A-REGISTER._2*_^1*_]_'*_^1*_$EXCEPTION CHECKING:_!IF THE SOURCE STATEMENT IS A COMMENT_$*_^1*_;(* IN COLUMN 1) LOCATION NU AND THE_%*_^1*_;A-REGISTER ARE SET TO -1._0*_^1*_]_'*_^1*_;IF THE MNEMONIC IS MISSING, CONTAINS_$*_^1*_;MORE THAN 3 CHARACTERS OR NUMERICS > 4,_!*_^1*_;LOCATION NU AND THE A-REGISTER ARE_'*_^1*_;SET TO €€0._@*_^1*_]_'*_^1*_$COMMENT:_!WE CHANGED THIS ROUTINE TO ACCEPT THE NUMBERS 0-4_"*_^1*_0IN CHARACTER POSITIONS 2 AND 3, WHICH OCCURS IN_$*_^1*_0THE EXTENDED INSTRUCTIONS. THE 5-BIT CODES THAT_#*_^1*_0WE USED ARE AS FOLLOWS:_=*_^1*_2CHARATER_!HEX CODE_?*_^1*_50_)1B_B*_^1*_51_)1C_B*_^1*_52_)1D_B*_^1*_53_)1E_B*_^1*_54_)1F_B*_^1*_]_'*_^1*_]_'*_^1******_!CALIFORNIA STATE UNIVERSITY CHI€€CO ASSEMBLER UPDATE 1978_!*****_^1*_]_^1GETOP_"ADC_!0_'ENTRY POINT_^1_(ENA_!0_^1_(STA- IG,I_#CLEAR IGNORE LEADING BLANKS SWITCH;_^1*_:DON'T IGNORE LEADING BLANKS_^1_(ENA_!-1_^1_(STA- CT,I_#RESET CHPU'S CHARACTER COUNTER_^1_(RTJ* CHPU_#GET 1ST CHARACTER OF SOURCE STATEMENT IN A-REG;_^1*_:IT HAS BEEN CONVERTED TO SIX BITS BY_^1*_:SUBTRACTING $20._^1_(SAZ_!G1-*-1_!SKIP IF NO LABEL €€PRESENT; CHPU RETURNS 0 IF_^1*_:CHAR WAS A BLANK_^1_(INA_!-$A_$SUBTRACT SIX-BIT CODE FOR ASTERISK_^1_(SAN_!2_'SKIP IF NOT A COMMENT CARD_^1_(ENA_!-1_%ASTERISK FOUND IN COL 1; SIGNAL BY SETTING_^1*_:NU = -1_^1_(JMP* G2+1_#GO SET NU = -1_^1_(RTJ* MCHPR_"PASS OVER LABEL (SET CHARACTER COUNTER CT_^1*_:PAST THE LABEL)_^1G1_%RAO- IG,I_#SET SWITCH TO IGNORE LEADING BLANKS_^1_(RTJ* MCH€€PR_"GET THE OPCOPE MNEMONIC INTO SY & SY+1_^1_(SAZ_!G2-*-1_!SKIP IF OPCODE IS MISSING_^1_(ENA_!$3F_$SET UP 6-BIT MASK_^1_(AND- SY+1,I_!TEST FOR 4TH CHARACTER_^1_'SAZ GETSY_!SKIP IF ONLY 3 CHARS IN OPCODE_^1G2_$ENA 0_%0=ERROR SIGNAL_^1_'STA- NU,I_!DEPENDING ON WHERE YOU'RE COMING FROM, NU WILL_^1*_:BE SET TO ONE OF THE FOLLOWING:_^1*_:0 = ERROR SIGNAL: NO OPCODE, MORE THAN_^1*€€_@3 CHARACTERS, OR NUMBERS > 4;_^1*_:-1 = SIGNALS SOURCE STATEMENT IS A COMMENT;_^1*_:15 BIT PACKED REPRESENTATION OF OPCODE_^1*_:MNEMONIC, 5 BITS PER CHARACTER._^1_(RAO- IG,I_#SET SWITCH TO IGNORE LEADING BLANKS_^1_%EQU GET2(*)_^1_%JMP* (GETOP)_"EXIT SUBROUTINE_^1GETSY_#LDQ- SY,I_!GET 1ST 2 CHARS OF OPCODE; C1=5 BITS, C2= 6 BITS_^1_(LRS_!6_'MOVE C2 TO A; R16HT-JUSTIFY C1 IN Q_€€^1_(ALS_!6_'RIGHT-JUSTIFY C2 IN A_^1_(QLS_!10_%MOVE C1 TO BITS 14-10 OF Q_^1_(INA_!-$20_#CONVERT C2 TO 5-BIT CODE_^1_(SAP_!AOK_$SKIP IF C2 IS ALPHA_^1_(INA_!$B_%SET UP TEST FOR 0-4_^1_(SAP_!TOOBIG_!SKIP IF C2 > 4_^1_(INA_!$20_$CONVERT C2 TO 5-BIT NUMERIC CODE_^1AOK_$ALS_!5_'MOVE C2 TO BITS 9-5 OF A_^1_(AAQ_!A_'A:= C1 IN BITS 14-10, C2 IN BITS 9-5_^1_(LDQ- SY+1,I_!GET C3 CHAR (SIX €€BITS)_^1_(QRS_!8_'RIGHT-JUSTIFY C3 IN Q_^1_(INQ_!-$20_#CONVERT C3 TO 5-BIT CODE_^1_(SQP_!QOK_$SKIP IF C3 IS ALPHA_^1_(INQ_!$B_%SET UP TEST FOR 0-4_^1_(SQP_!TOOBIG_!SKIP IF C3 > 4_^1_(INQ_!$20_$CONVERT C3 TO 5-BIT NUMERIC CODE_^1QOK_$AAQ_!A_'A;= C1, C2, C3_^1_(JMP* G2+1_#GO STORE PACKED OPCODE INTO NU, EXIT_^1TOOBIG_!JMP* G2_%STORE ERROR CODE INTO NU, EXIT_^1CHPU_#ADC_!0_^1_(LDA- €€ INPADR,I_F**MSOS 4.0_^1_(STA P1K_L**MSOS 4.0_^1_(RAO- CT,I_)INCREMENT CHAR CTR_^1_(ENA_!0_^1_(LDQ- CT,I_^1_(INQ_!-72_^1_(SQM_!5_^1_(LDA- AF,I_^1_(SAN_!1_^1_(JMP* C1+1_)TOO MANY CHARS_^1_(ENQ_!-0_^1_(JMP* (CHPU)_^1_(INQ_!72_^1_(LRS_!1_^1_(LDQ (P1K),Q_H**MSOS 4.0_^1_(SAZ_!1_^1_(QLS_!8_^1_(QRS_!8_,Q CONTAINS 7 BIT CHAR_^1_(LDA- AF,I_^1_(SAZ_!1_^1_(JMP* (CHPU)_^1_(SQZ_!C3+1-*€€-1_$NULL IGNORE IT_^1_(SQM_!C3+1-*-1_$NULL-IGNORE IT_^1_(INQ_!-$9_*TAB-IS END OF FIELD_^1_(SQZ_!C3-*-1_'YES-A IS ZERO SO WILL EXIT_^1_(LDA- IG,I_^1_(INQ_!-$4_*CARRIAGE RETURN_^1_(SQN_!3_,NO_^1_(ENA_!71_+SET CTR FOR_^1_(STA- CT,I_^1_(JMP* CHPU+1_^1_(INQ_!-$13_)BLANK_^1_(SQM_!C1-*-1_'CHAR ILLEG_^1_(SQN_!2_^1C3_%SAZ_!C1+1-*-1_$CHAR BLNK-IG NOT SET_^1_(JMP* CHPU+1_'GO BACK FOR NEXT€€ CHR_^1_(INQ_!-$40_)UPPERBOUND FOR LEGAL_^1_(SQM_!C2-*-1_'IS LEGAL_^1C1_%ENA_!$3C_^1_(STA- CS,I_^1_(ENQ_!0_^1_(STQ- IG,I_^1_(JMP* (CHPU)_^1C2_%INQ_!$40_*6 BIT CHAR FOR OUTPUT_^1_(TRQ_!A_^1_(JMP* C1+1_^1XC_%NUM_!0,$C,$B BLANK,COMMA,PLUS_^1_(NUM_!$D,$A MINUS,ASTERISK_^1MCHPR_"ADC_!0_^1_(ENA_!0_^1_(ENQ_!4_^1MCHPR1_!STA-_$SY,B_"ZERO SY,XMOD_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP*_$MCHPR1_^€€1XLOP_#RTJ* CHPU_^1_(ENQ_!4_^1X1_%LDA- CS,I_^1_(SUB* XC,Q_)SEARCH SPECIALS_^1_(SAZ_!XLO1-*-1_$FOUND_^1_(INQ_!-1_^1_%SQP 1_Q75*1764_^1_%JMP* X5_P75*1764_^1_(JMP* X1_^1XLO1_!INQ -4_P75*1764_^1_%SQM XLO11_(NOT *_?75*1764_^1_%LDA- SY,I_)PROCESSING SYMBOLS_275*1764_^1_%SAN XLO11_(YES,LEAVE TEST_675*1764_^1_%LDA* FLIP_N75*1764_^1_%ALS 1_Q75*1764_^1_%STA* FLIP_N75*1764_^1_%SAP B€€EFORE_L75*1764_^1_%ENQ 3_Q75*1764_^1_%RTJ MER_*LOG ERROR AS OPCODE INCORRECT_'75*1764_^1BEFORE JMP* XX_+COMPLETE THE CHARACTER REQ._)75*1764_^1FLIP_!NUM $5555_M75*1764_^1XLO11 INQ 4_Q75*1764_^1_%STQ- CS,I_N75*1764_^1_(SQZ_!2_^1_(INQ_!-1_^1_(SQN_!1_^1_(JMP* XB_+COMMA BLANK_^1_(JMP* XP_+PLUS,MINUS,ASTERISK_^1X5_%LDQ- XMOD,I_^1_(INA_!-$10_^1_(SAM_!XA-1-*-1_$ERR-BELOW LOWER BOU€€ND_^1_(INA_!-$A_^1_(SAP_!2_,NOT NUMERIC_^1_(SQZ_!XA-1-*-1_$NUMERIC INITIAL MODE_^1_(JMP* XALF_^1_(INA_!-7_^1_(SAM_!XA-1-*-1_$NOT ALPHA ERROR_^1_(INA_!-$1B_^1_(SAM_!1_,NOT ALPHA ERROR_^1_(JMP* XR_^1XA_%SQN_!XALF-*-1_^1_(RAO- XMOD,I_^1_(ENQ_!0_^1_(INA_!$1C_*CONVERT TO 5 BIT VALUE_^1_(ALS_!6_^1_(JMP*_$XALF2_^1XALF_#LDQ- SY+3,I_^1_(INQ_!-6_^1_(SQZ_!XB-1-*-1_$6 CHARS EIXT_^1_(INQ_!6€€_^1_(ENA_!0_^1_(LRS_!1_^1_(SAN_!3_^1_(LDA- CS,I_^1_(ALS_!8_^1_(JMP*_$XALF1_^1_(LDA- CS,I_^1XALF1_"ADD-_$SY,B_^1XALF2_"STA-_$SY,B_^1_(RAO- SY+3,I_^1_(JMP* XLOP_^1XB_%LDQ- XMOD,I_^1_(SQN_!1_^1_(RAO- SY+1,I_^1XB2_$LDQ- SY+3,I_^1_(SQZ_!3_^1_(INQ_!-1_^1_(QRS_!1_^1_(STQ- SY+3,I_^1XX_%LDA- SY,I_^1_(JMP* (MCHPR)_^1XP_%LDQ- XMOD,I_^1_(SQZ_!1_^1_(JMP* XB2_^1XR_#RTJ CHPU_N75*1764€€_^1_(SAZ_!XR1-*-1_^1_(ENQ_!1_^1_(STQ- CS,I_^1_(INA_!-$C_^1_(SAZ_!XR1-*-1_^1_(JMP* XR_^1XR1_$ENA_!0_^1_(ENQ_!3_^1XR1A_#STA-_$SY,B_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP*_$XR1A_^1_(JMP* XX_^1P1K_$NUM_!0_M**MSOS 4.0_^1RIMSB_"ADC_!0_^1_(LDA- BUFFSW,I_^1_(TRA_!Q_^1_(QLS_!1_^1_(STQ- BUFFSW,I_^1_(SAM_!3_^1RIM1_#LDA_!=XINBUF_^1_(JMP* *+3_^1_(LDA_!=XINBUF+48_^1_(STA- INPADR,I_^1_(STA* P1K_K€€**MSOS 4.0_^1_%STA INCON_L**MSOS 4.0_^1_(STA_!P1J_K**MSOS 4.0_^1_(STA_!MC7A_J**MSOS 4.0_^1_(ENA_!-0_^1_(ENQ_!40_^1_(STA* (P1K),Q_G**MSOS 4.0_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-3_^1_(ENQ_!41_^1_(ENA_!0_^1RIM2_#STA* (P1K),Q_G**MSOS 4.0_^1_(INQ_!-45_^1_(SQZ_!2_^1_(INQ_!46_^1_(JMP* RIM2_^1_(JMP* (RIMSB)_^1READIM_!ADC_!0_^1_(LDA- FSTM,I_'FIRST TIME SW SET_^1_(RAO- LN,I_^1_(SAN_!R€€B1-*-1_^1_(RAO- FSTM,I_^1_(RTJ* READ_^1RB1_$RTJ* RIMSB_^1_(LDA- RCS,I_^1_(SAN_!1_^1_(JMP* *-2_^1_%SAP 1_^1_%JMP- (DISP)_^1_(ENQ_!40_^1RB1X_!LDA (READ1),Q_#MOVE IMAGE TO INPADR_^1_(STA* (P1K),Q_G**MSOS 4.0_^1_(INQ_!-1_^1_(SQM_!1_^1_%JMP* RB1X_^1_(ENQ_!0_^1_(LDA* (P1K),Q_G**MSOS 4.0_^1_(SAM_!2_^1_(INQ_!1_^1_(JMP* *-3_^1_%INQ -1_P59*1186_^1_%LDA* (P1K),Q_%PICK UP LAST WORD_€€2**MSOS 4.0_^1_%ALS 8_Q59*1186_^1_%SAP 4_Q59*1186_^1_%AND =N$20FF_K59*1186_^1_%ALS 8_Q59*1186_^1_%STA* (P1K),Q_J**MSOS 4.0_^1_%INQ 1_Q59*1186_^1_(LDA_!=N$D00_^1_(STA* (P1K),Q_G**MSOS 4.0_^1_(LDA- LN,I_^1_(ENQ_!41_^1_(STA* (P1K),Q_G**MSOS 4.0_^1_(RTJ_!GETOP_^1_(ENA_!0_^1_(STA- IG,I_^1_(ENQ_!2_^1_(LDA- NU,I_^1_(SUB* SMOP,Q_^1_(SAZ_!3_^1_(INQ_!-1_^1_(SQM_!3_^1_(JMP* *-5_^1€€_(STA- FSTM,I_^1_(JMP* (READIM)_^1_(LDA- RCS,I_^1_(STA- T1,I_^1_(RTJ* READ_^1_(LDA- T1,I_)40 WDS TRANSFERRED_^1_%ALS_#1_^1_(SAM_!RB2A-*-1_$NO_^1_(ENA_!$7F_^1_(ENQ_!39_^1_(AND* (P1K),Q_G**MSOS 4.0_^1_(INA_!-$7F_^1_(SAN_!1_^1RB2A_#JMP* (READIM)_^1_(ENQ_!37_^1_(ENA_!$7F_^1_(AND* (P1K),Q_G**MSOS 4.0_^1_(STA- T1,I_^1_(INQ_!1_^1_(LDA* (P1K),Q_G**MSOS 4.0_^1_(ENQ_!0_^1_(LLS_!8_€€^1_(STQ- T1+1,I_^1_(ALS_!8_^1_(STA- T1+2,I_^1_(ENQ_!39_^1_(LDA* (INCON),Q_^1_(ENQ_!0_^1_(LLS_!8_^1_(STQ- T1+3,I_^1_(ALS_!8_^1_(STA- T1+4,I_^1_(ENQ_!0_^1SQ2_$LDA- T1,B_^1_(INA_!-$20_^1_(SAN_!1_^1_(INA_!$10_^1_(INA_!$20_^1_(STA- T1,B_^1_(SUB- SQ,B_^1_(SAN_%SQ2A-*-1_^1_(INQ_!-4_+EVEN-GO ON_^1_%SQN SQ21_)GET NEXT CHARACTER_^1_%JMP* SQ3_*DONE_^1SQ21_!INQ 5_^1_(JMP* SQ2_^1SQ2A_€€#SAP_%SQ3-*-1_^1SQ3A_!ENQ 36_+CHECK FOR AN * IN COL.73_,76*1859_^1_%LDA* (INCON),Q_#PICKUP COLUMNS 73 AND 74_,76*1859_^1_%ARS 8_,COLUMN 73 ONLY_676*1859_^1_(INA_%-$2A_$IS IT A VALID SEQUENCE ERROR_#**MSOS 4.0_^1_%SAN VLIDER_'THIS IS A VALID SEQUENCE ERROR_^1_%ENA $30_*THIS IS AN * IN COL. 73_^1_%ENQ 4_,RESET SQ,B BUFFER TO ZERO_^1SEQZR STA- SQ,B_)FOR NEXT SEQUENCE TEST_^1_%IN€€Q -1_^1_%SQM ZRSEQ_^1_%JMP* SEQZR_^1ZRSEQ JMP* (READIM)_$CONTINUE WITH PROCESS_^1VLIDER ENQ 0_,SEQUENCE NUMBER IS VALID_+**MSOS 4.0_^1_(RTJ* MER_^1SQ3_"ENQ 36_^1_%LDA* (INCON),Q_#IF THIS RECORD HAS AN * IN COL. 73_^1_%ARS 8_,DO NOT MOVE IT TO SQ,B._^1_%INA -$2A_)THIS WILL ALLOW THE NEXT SEQ. TEST_^1_%SAN SQ3X_)TO PASS OK._^1_%JMP* (READIM)_$CONTINUE WITH PROCESS_^1SQ3X_!EN€€Q 4_,MOVE THIS SEQ. NUMBER FOR NEXT TEST._^1SQ3XA LDA- T1,B_^1_(INA_!-$20_^1_(SAN_!1_^1_(INA_!$10_^1_(INA_!$20_^1_(STA- SQ,B_^1_(INQ_!-1_^1_(SQM_!1_^1_%JMP* SQ3XA_^1_(JMP* (READIM)_^1INCON_"ADC_%0_I**MSOS 4.0_^1_%ENT_#READI_^1READ_#ADC_!0_^1_(ENA_!-0_^1_(ENQ_!40_^1_(STA* (READ1),Q_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-3_^1_(ENA_!0_^1_(STA- RCS,I_^1_%RTJ- (REQPRO)_$FREAD REQUEST.€€_^1_(ADC_!$4800_I**MSOS 4.0_^1_(ADC_!RCO_^1_(ADC_!0_^1READI VFD_#N3/0,N1/1,N2/2,X10/STDINP_^1_(ADC_!40_^1READ1_"ADC_!INBUF1_^1_(JMP* (READ)_^1SMOP_#NUM_!$35EE,$3E14,$15C4_^1PIL_$ADC_!0_^1_(LDA_!=N$1000_^1_(ENQ_!42_^1_(ADD* (INCON),Q_^1_(STA* (INCON),Q INPADR_^1_(RTJ* IL_^1_(JMP* (PIL)_^1IL_%ADC_!0_^1_(LDA- BUFFSW,I_^1_(SAP_!1_^1_(JMP* (IL)_^1_(RTJ* ILOVFL_^1_(LDQ- ILSECT,€€I_^1_(LDA_!=XINBUF_^1IL1_$RTJ+ DOUT_)DISKOUT RTN_^1_(LDA- ILSECT,I_^1_%INA 2_^1_(STA- ILSECT,I_^1_(JMP* (IL)_^1SKLOUT_!ADC_!0_^1_(LDA- SKBFSW,I_^1_(TRA_!Q_^1_(QLS_!1_^1_(STQ- SKBFSW,I_^1_(SAM_!SK2-*-1_^1_(ENA_!48_^1_(JMP* SK3_^1SK2_$RTJ* ILOVFL_^1_%LDA- SKELOC,I_(PICK UP RELATIVE SECTOR ADDR._#45*776_^1_(ADD- SKSCST,I_^1_(TRA_!Q_^1SK4_$LDA_!=XSKLBUF_$ADDR_^1_(RTJ* (IL1+1€€)_^1_%RAO- SKELOC,I_(BUMP RELATIVE SECTOR ADDR._'45*776_^1_%RAO- SKELOC,I_J45*776_^1_(RTJ* MINZRO_^1SK3_$ADD* SK4+1_^1_(STA- SKLADR,I_^1_(JMP* (SKLOUT)_^1ILOVFL_!ADC_!0_^1_%LDA- SKELOC,I_(PICK UP RELATIVE SECTOR ADDR._#45*776_^1_(ADD- SKSCST,I_^1_(STA- XMOD,I_^1_%LDA+ LGSECT_^1_(SUB- XMOD,I_^1_(SAZ_!2_^1_(INA_!-1_^1_(SAN_!1_^1_%JMP* SK12_N49*825_^1_%LDA+ LGSECT_L49*825_^1_%S€€UB- ILSECT,I_I49*825_^1_%SAP T00001_^1SK12_!JMP PUNT_N75*1764_^1T00001 JMP* (ILOVFL)_^1MER_$ADC_!0_^1_(LDA* ERT,Q_^1_(STA* PB+3_^1_(SQZ_!MER2-*-1_^1_(LDA_!=N$2000_^1_(ENQ_!42_^1_(ADD* (INCON),Q INPADR_!SET ERROR CHR_^1_(STA* (INCON),Q INPADR_^1MER2_#ENQ_!41_^1_(LDA- LN,I_^1_(RTJ* DECV_^1_(STQ* PB_^1_(STA* PB+1_^1_(LDA_!L_^1_(SAN_!2_^1_%LDA- STDOCD_^1_(JMP* *+2_^1_%LDA- S€€TDPRT_^1_(ADD* PIL+2_^1_(STA* MER1_^1_(ENA_!0_^1_(STA- CSW,I_^1_%RTJ- (REQPRO)_$FWRITE REQUEST._^1_(NUM_!$4C00_I**MSOS 4.0_^1_(ADC_!CO_^1_(ADC_!0_^1MER1_#ADC_!0_^1_(ADC_%10_^1_(ADC_%JJ9_^1_(LDA- CSW,I_^1_(SAN_!1_^1_(JMP* *-2_^1_(JMP* (MER)_^1ERT_$ALF_!1,SQ_^1_(ALF_!1,MC_^1_(ALF_!1,MD_^1_%ALF 1,OP_N75*1764_^1JJ9_$NUM_%$2A2A_^1_(BSS_!PB(2)_^1_(ALF_!7,** **********_^1ASDEC1 NU€€M 0 FOR CONVERSION ROUTINE TEMP STORAGE_^1DECV_#ADC_!0_^1_(ENQ_!0_,THIS ROUTINE CONVERTS_^1_(STQ- T1,I_)THE A REGISTER_^1*_;TO ASCII DECIMAL_^1*_;OUTPUT IS 3 DIGITS IN_^1*_;QA WITH A TRAILING BLANK_^1_(ENQ_%4_^1DC1_$INA_!-10_^1_(SAM_!2_^1_(RAO- T1,I_^1_(JMP* *-3_^1_(INA_!58_+ADD BACK 10 PLUS HEX 30_^1_(STA- T1,B_)TO MAKE ASCII CHAR_^1_(LDA- T1,I_^1_%STA- T1+5,I_^1_(ENA_!0_^1_€€(STA- T1,I_^1_%LDA- T1+5,I_^1_(INQ_!-1_^1_(SQZ_!1_^1_(JMP* DC1_^1_(LDQ- T1+1,I_^1_(QLS_!8_^1_(ADQ- T1+2,I_^1_(LDA- T1+3,I_^1_(ALS_!8_^1_(ADD-_$T1+4,I_^1_(JMP* (DECV)_^1MACER_"ENQ_!1_^1_(RTJ* MER_*PRINT ERROR_^1_(LDA- NF,I_^1_(SAN_!1_^1_(RAO- NF,I_^1_(JMP_!MC5_^1MINZRO_!ADC_!0_,BACKGROUND_^1_(ENQ_!40_+SKEL INPUT AREA_^1_(ENA_!-0_^1_(STA_!SKLBUF,Q_^1_(STA_!SKLBUF+48,Q_^1_(IN€€Q_!-1_^1_(SQM_!1_^1_(JMP* *-6_^1_(JMP* (MINZRO)_^1RECV_#ADC_!0_^1_(LDA_!=N$2020_^1_(STA- T1+1,I_^1_(STA- T1+2,I_^1_(LDA_!=N$7C0_^1_(AND- SY,I_^1_(ARS_!6_^1_(SAZ_!1_^1_(INA_!$20_^1_(INA_!$20_^1_(ALS_!8_^1_(STA- T1,I_^1_(ENA_!$3F_^1_(AND- SY,I_^1_(INA_!$20_^1_(ADD- T1,I_^1_(STA- T1,I_^1_(ENQ_!-2_^1RR_%LDA- SY+3,B_^1_(ADD* RECV+2_^1_(STA- T1+3,B_^1_(INQ_!1_^1_(SQZ_!1_^1_(J€€MP* RR_^1_(ENQ_!2_^1RR1A_#LDA-_$T1,B_^1_(STA- SY,B_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP*_$RR1A_^1_(JMP* (RECV)_^1PUNT_!RTJ- (REQPRO)_$FWRITE REQUEST._^1_(ADC_!$4C00_I**MSOS 4.0_^1_(ADC_!0_^1_(ADC_!0_^1_%VFD N3/0,N1/1,N2/2,X10/STDOCD_^1_(ADC_#11_J**MSOS 4.0_^1_(ADC_!PNTMSG_^1_%JMP- (DISP)_'EXIT_^1PNTMSG_!ALF_#11,MASS STORAGE OVERFLOW_4**MSOS 4.0_^1JJAN12_!ADC_%0_/THIS ROUTINE TESTS MA€€CRO NAME_^1*_BTO MAKE SURE IT IS NOT THE SAME_^1*_BAS AN OP-CODE OR PSUEDO OP_^1_(LDA-_$SY+1,I_*PICK UP 3RD AND 4TH CHAR._^1_(SAZ_%3_/SKIP IF LESS THAN 3 CHARS._^1_(ENQ_%$3F_^1_(LAQ_%A_^1_(SAZ_%1_/SKIP IF EXACTLY 3 CHAR._^1_(JMP*_$(JJAN12)_(RETURN IF NO CHANCE OF BEING OP-CODE_^1_(LDQ-_$SY,I_,PICK UP 1ST AND 2ND CHAR._^1_(LRS_%6_/2ND_!CHAR. IN RIGHT 6 BITS_^1_(ALS_%6_/OF A_^1_(QLS_€€%10_.1ST IN BITS 14-10 OF Q_^1_(INA_%-$20_,CHANGE FROM 6 BIT TO 5 BIT CHAR_^1_(SAM_%GJJ3-*-1_(SKIP IF 2ND CHAR NON-ALPHA_^1_(ALS_%5_/PACK 1ST AND 2ND CHARS INTO_^1_(AAQ_%A_/BITS 14-5 OF A_^1_(LDQ-_$SY+1,I_*PICK OF 3RD CHAR._^1_(QRS_%8_/SHIFT TO BITS 5-0 OF Q_^1_(INQ_%-$20_,CHANGE FROM 6 BIT TO 5 BIT CHAR_^1_(SQP_%1_/SKIP IF ALPHA_^1GJJ3_#JMP*_$(JJAN12)_(EXIT IF NO CHANCE OF BEING O€€P-CODE_^1_(AAQ_%A_/PACK CHAR INTO LAST 5 BITS OF A_^1_(STA-_$NU,I_,STORE 15 BIT MAC NAME IN NU_^1_(ENQ_%0_^1JP1E_#LDA*_$OPTB,Q_*PICK UP OP-CODE_^1_(SAP_%1_/SKIP IF NOT FIRST OF CLASS_^1_(TCA_%A_/COMPLEMENT OP-CODE_^1_(SUB-_$NU,I_,SUB MACRO NAME_^1_(SAN_%2_/SKIP IF NO MATCH_^1_(JMP_%SLMC_,ERROR MACRO NAME SAME AS OP-CODE_^1_'ADQ+ NOPLEN_^1_'SQN 1_$SKIP IF MORE TO SEARCH_^1_'JMP* €€(JJAN12)_!EXIT NOT FOUND_^1_'ADQ+ OPLEN_^1_(JMP*_$JP1E_^1*****************************************************************_^1*_] *_^1*_!OPTB--THIS TABLE HAS THE PACKED REPRESENTATION OF EVERY_#*_^1*_(INSTRUCTION IN THE INSTRUCTION SET, EXCLUDING THE_#*_^1*_(MACRO;S. EACH INSTRUCTION CONTAINS THREE CHARACTERS. *_^1*_(ALL CHARACTERS ARE FIVE BITS LONG AND ARE THE LETTERS *_^1*_(A T€€HRU Z, AND THE NUMBERS 0 THRU 4. THE HEX REPRE-_"*_^1*_(SENTATIONS OF LETTERS A THRU I ARE 1,2,3,4,...,9,_#*_^1*_(J THRU 0 ARE A,B,C,D,E,F; AND P THRU Z ARE 10^...1A. *_^1*_(THE HEX REPRESENTATION OF NUMBERS 0 THRU 4 ARE 1B,_"*_^1*_(1C,1D,1E,1F (ALL REPRESENTATIONS ARE NO MORE THAN_#*_^1*_(FIVE BITS LONG)._E*_^1*_(OPTB CONTAINS THIRTEEN DIFFERENT INSTRUCTION CLASSES *_^1*_(ALONG €€WITH THREE PSEUDO INSTRUCTION CLASSES. THE_$*_^1*_(START OF A NEW CLASS IS INDICATED WHEN THE COMPLEMENT *_^1*_(OF AN INSTRUCTION IS FOUND._:*_^1OPTB_!NUM $F9A3_+AR1 COMPLEMENT--ENHANCED STORAGE REFERENCE_^1_%NUM $065D_+AR2_^1_%NUM $065E_+AR3_^1_%NUM $065F_+AR4_^1_%NUM $0651_+ARQ_^1_%NUM $0641_+ARA_^1_%NUM $0649_+ARI_^1_%NUM $49BC_+RM1_^1_%NUM $49BD_+RM2_^1_%NUM $49BE_+RM€€3_^1_%NUM $49BF_+RM4_^1_%NUM $49B1_+RMQ_^1_%NUM $49A1_+RMA_^1_%NUM $49A9_+RMI_^1_%NUM $4C5C_+SB1_^1_%NUM $4C5D_+SB2_^1_%NUM $4C5E_+SB3_^1_%NUM $4C5F_+SB4_^1_%NUM $4C51_+SBQ_^1_%NUM $4C41_+SBA_^1_%NUM $4C49_+SBI_^1_%NUM $4DBC_+SM1_^1_%NUM $4DBD_+SM2_^1_%NUM $4DBE_+SM3_^1_%NUM $4DBF_+SM4_^1_%NUM $4DB1_+SMQ_^1_%NUM $4DA1_+SMA_^1_%NUM $4DA9_+SMI_^1_%NUM $05DC_+AN1_^1€€_%NUM $05DD_+AN2_^1_%NUM $05DE_+AN3_^1_%NUM $05DF_+AN4_^1_%NUM $05D1_+ANQ_^1_%NUM $05C1_+ANA_^1_%NUM $05C9_+ANI_^1_%NUM $05BC_+AM1_^1_%NUM $05BD_+AM2_^1_%NUM $05BE_+AM3_^1_%NUM $05BF_+AM4_^1_%NUM $05B1_+AMQ_^1_%NUM $05A1_+AMA_^1_%NUM $05A9_+AMI_^1_%NUM $165C_+ER1_^1_%NUM $165D_+ER2_^1_%NUM $165E_+ER3_^1_%NUM $165F_+ER4_^1_%NUM $1651_+ERQ_^1_%NUM $1641_+ERA_^1_%NU€€M $1649_+ERI_^1_%NUM $15BC_+EM1_^1_%NUM $15BD_+EM2_^1_%NUM $15BE_+EM3_^1_%NUM $15BF_+EM4_^1_%NUM $15B1_+EMQ_^1_%NUM $15A1_+EMA_^1_%NUM $15A9_+EMI_^1_%NUM $30A1_+LEA_^1_%NUM $325C_+LR1_^1_%NUM $325D_+LR2_^1_%NUM $325E_+LR3_^1_%NUM $325F_+LR4_^1_%NUM $3251_+LRQ_^1_%NUM $3241_+LRA_^1_%NUM $3249_+LRI_^1_%NUM $4E5C_+SR1_^1_%NUM $4E5D_+SR2_^1_%NUM $4E5E_+SR3_^1_%NUM $€€4E5F_+SR4_^1_%NUM $4E51_+SRQ_^1_%NUM $4E41_+SRA_^1_%NUM $4E49_+SRI_^1_%NUM $3E5C_+OR1_^1_%NUM $3E5D_+OR2_^1_%NUM $3E5E_+OR3_^1_%NUM $3E5F_+OR4_^1_%NUM $3E51_+ORQ_^1_%NUM $3E41_+ORA_^1_%NUM $3E49_+ORI_^1_%NUM $3DBC_+OM1_^1_%NUM $3DBD_+OM2_^1_%NUM $3DBE_+OM3_^1_%NUM $3DBF_+OM4_^1_%NUM $3DB1_+OMQ_^1_%NUM $3DA1_+OMA_^1_%NUM $3DA9_+OMI_^1_%NUM $0F8E_+C1N_^1_%NUM $0FAE€€_+C2N_^1_%NUM $0FCE_+C3N_^1_%NUM $0FEE_+C4N_^1_%NUM $0E2E_+CQN_^1_%NUM $0C2E_+CAN_^1_%NUM $0D2E_+CIN_^1_%NUM $0F85_+C1E_^1_%NUM $0FA5_+C2E_^1_%NUM $0FC5_+C3E_^1_%NUM $0FE5_+C4E_^1_%NUM $0E25_+CQE_^1_%NUM $0C25_+CAE_^1_%NUM $0D25_+CIE_^1_%NUM $0F87_+C1G_^1_%NUM $0FA7_+C2G_^1_%NUM $0FC7_+C3G_^1_%NUM $0FE7_+C4G_^1_%NUM $0E27_+CQG_^1_%NUM $0C27_+CAG_^1_%NUM $0D27_+CI€€G_^1_%NUM $0F8C_+C1L_^1_%NUM $0FAC_+C2L_^1_%NUM $0FCC_+C3L_^1_%NUM $0FEC_+C4L_^1_%NUM $0E2C_+CQL_^1_%NUM $0C2C_+CAL_^1_%NUM $0D2C_+CIL_^1_'NUM $4D45_)SJE_^1_%NUM $4D5C_+SJ1_^1_%NUM $4D5D_+SJ2_^1_%NUM $4D5E_+SJ3_^1_%NUM $4D5F_+SJ4_^1_%NUM $4D51_+SJQ_^1_%NUM $4D41_+SJA_^1_%NUM $4D49_+SJI_^1*_]_^1CLASS2 NUM $CF9E_+LCA COMPLEMENT--ENHANCED CHARACTER REF._^1_%NUM $4C61_€€+SCA_^1_%NUM $0C65_+CCE_^1_%NUM $0C6E_+CCN_^1*_]_^1CLASS3 NUM $B325_+SFZ_^1_%NUM $4CCE_+SFN_^1_%NUM $30C1_+LFA_^1_%NUM $4CC1_+SFA_^1_%NUM $0D86_+CLF_^1_%NUM $4CA6_+SEF_^1*_]_^1CLASS4 NUM $CF7E_+LDA COMPLEMENT--TYPE1A STORAGE REFERENCE_^1_%NUM $3091_+LDQ_^1_%NUM $0484_+ADD_^1_%NUM $0491_+ADQ_^1_%NUM $4EA2_+SUB_^1_%NUM $05C4_+AND_^1_%NUM $15F2_+EOR_^1_(NUM $36A9_)MUI_€€^1_%NUM $12C9_+DVI_^1*_]_^1CLASS5 NUM $B17E_+STA COMPLEMENT--TYPE1B STORAGE REFERENCE_^1_%NUM $4E91_+STQ_^1_%NUM $29B0_+JMP_^1_%NUM $4A8A_+RTJ_^1_%NUM $482F_+RAO_^1_%NUM $4E01_+SPA_^1*_]_^1CLASS6 NUM $B26C_+SLS COMPLEMENT--REGISTER INSTRUCTIONS_^1_%NUM $25D0_+INP_^1_%NUM $3EB4_+OUT_^1_%NUM $39F0_+NOP_^1_%NUM $15C1_+ENA_^1_%NUM $15D1_+ENQ_^1_%NUM $25C1_+INA_^1_%NUM $2€€5D1_+INQ_^1_%NUM $152E_+EIN_^1_%NUM $252E_+IIN_^1_%NUM $1709_+EXI_^1_%NUM $4E02_+SPB_^1_%NUM $0E02_+CPB_^1*_]_^1CLASS7 NUM $B9AC_+QRS COMPLEMENT--SHIFT INSTRUCTIONS_^1_%NUM $0653_+ARS_^1_%NUM $3253_+LRS_^1_%NUM $4593_+QLS_^1_%NUM $0593_+ALS_^1_%NUM $3193_+LLS_^1*_]_^1CLASS8 NUM $B3C5_+SAZ COMPLEMENT--SKIP INSTRUCTIONS_^1_%NUM $4C2E_+SAN_^1_%NUM $4C30_+SAP_^1_%NUM $4C€€2D_+SAM_^1_%NUM $4E3A_+SQZ_^1_%NUM $4E2E_+SQN_^1_%NUM $4E30_+SQP_^1_%NUM $4E2D_+SQM_^1_%NUM $4EF3_+SWS_^1_%NUM $4EEE_+SWN_^1_%NUM $4DF6_+SOV_^1_%NUM $4DCF_+SNO_^1_%NUM $4E05_+SPE_^1_%NUM $4DD0_+SNP_^1_%NUM $4E06_+SPF_^1_%NUM $4DC6_+SNF_^1_%NUM $4F9A_+S1Z_!ENHANCED SKIP INSTRUCTIONS_^1_%NUM $4FBA_+S2Z_^1_%NUM $4FDA_+S3Z_^1_%NUM $4FFA_+S4Z_^1_%NUM $4F8E_+S1N_^1_%NUM €€ $4FAE_+S2N_^1_%NUM $4FCE_+S3N_^1_%NUM $4FEE_+S4N_^1_%NUM $4F90_+S1P_^1_%NUM $4FB0_+S2P_^1_%NUM $4FD0_+S3P_^1_%NUM $4FF0_+S4P_^1_%NUM $4F8D_+S1M_^1_%NUM $4FAD_+S2M_^1_%NUM $4FCD_+S3M_^1_%NUM $4FED_+S4M_^1_%NUM $1390_+D1P_^1_%NUM $13B0_+D2P_^1_%NUM $13D0_+D3P_^1_%NUM $13F0_+D4P_^1_%NUM $1230_+DQP_^1_%NUM $1030_+DAP_^1_%NUM $1130_+DIP_^1*_]_^1CLASS9 NUM $B34B_+SET C€€OMPLEMENT--INTER-REGISTER TRANSFER_^1_%NUM $0D92_+CLR_^1_%NUM $5241_+TRA_^1_%NUM $524D_+TRM_^1_%NUM $5251_+TRQ_^1_%NUM $5242_+TRB_^1_%NUM $5061_+TCA_^1_%NUM $506D_+TCM_^1_%NUM $5071_+TCQ_^1_%NUM $5062_+TCB_^1_%NUM $042D_+AAM_^1_%NUM $0431_+AAQ_^1_%NUM $0422_+AAB_^1_%NUM $142D_+EAM_^1_%NUM $1431_+EAQ_^1_%NUM $1422_+EAB_^1_%NUM $302D_+LAM_^1_%NUM $3031_+LAQ_^1_%NUM €€$3022_+LAB_^1_%NUM $0C2D_+CAM_^1_%NUM $0C31_+CAQ_^1_%NUM $0C22_+CAB_^1*_]_^1CLAS10 NUM $9F23_+XF1 COMPLEMENT--ENHANCED INTER-REG TRANSFER_^1_%NUM $60DD_+XF2_^1_%NUM $60DE_+XF3_^1_%NUM $60DF_+XF4_^1_%NUM $60D1_+XFQ_^1_%NUM $60C1_+XFA_^1_%NUM $60C9_+XFI_^1*_]_^1CLAS11 NUM $CD5D_+LUB COMPLEMENT--MISCELLANEOUS INSTRUCTIONS_^1_%NUM $3182_+LLB_^1_%NUM $15B3_+EMS_^1_%NUM $5E€€12_+WPR_^1_%NUM $4A12_+RPR_^1_%NUM $1463_+ECC_^1_%NUM $5E06_+WPF_^1_%NUM $49A4_+RMD_^1_%NUM $4E7C_+SS1_^1_%NUM $4E7D_+SS2_^1_%NUM $0E7C_+CS1_^1_%NUM $0E7D_+CS2_^1*_]_^1CLAS12 NUM $CE52_+LMM COMPLEMENT--ALL OTHER MISCELLANEOUS_^1_%NUM $3247_+LRG_^1_%NUM $4E47_+SRG_^1_%NUM $4D2F_+SIO_^1_%NUM $4E13_+SPS_^1_%NUM $11A9_+DMI_^1_%NUM $0C50_+CBP_^1_%NUM $1E05_+GPE_^1_%NUM €€$1E0F_+GPO_^1_%NUM $0663_+ASC_^1_%NUM $060D_+APM_^1_%NUM $41BB_+PM0_^1_%NUM $41BC_+PM1_^1_%NUM $326D_+LSM_^1_%NUM $35F6_+MOV_!COMMERCIAL INSTRUCTIONS_^1_%NUM $4CB1_+SEQ_^1_%NUM $4DC5_+SNE_^1_%NUM $4D85_+SLE_^1_%NUM $4D94_+SLT_^1_%NUM $4CE5_+SGE_^1_%NUM $4CF4_+SGT_^1_%NUM $1024_+DAD_^1_%NUM $1262_+DSB_^1_%NUM $11AC_+DML_^1_%NUM $1096_+DDV_^1_%NUM $1184_+DLD_^1_%NUM €€ $1274_+DST_^1_%NUM $120B_+DPK_^1_%NUM $12AE_+DUN_^1_%NUM $11F6_+DOV_^1_%NUM $10B1_+DEQ_^1_%NUM $11C5_+DNE_^1_%NUM $1185_+DLE_^1_%NUM $1194_+DLT_^1_%NUM $10E5_+DGE_^1_%NUM $10F4_+DGT_^1_%NUM $1A13_(FPS FLOATING PNT STATUS_^1*_]_^1CLAS13 NUM $B32F_+SFP COMPLEMENT--SCIENTIFIC INSTRUCTIONS_^1_%NUM $10D0_+DFP_^1*_]_^1PSEUDO NUM $FB7C_+ADC COMPLEMENT--PSEUDO CLASS ONE_^1_%N€€UM $58C4_+VFD_^1*_]_^1_%NUM $C1B8_+ORG COMPLEMENT--PSUEDO CLASS TWO_^1_%NUM $1635_+EQU_^1_%NUM $0DED_+COM_^1_%NUM $1034_+DAT_^1_%NUM $0A73_+BSS_^1_%NUM $0B53_+BZS_^1*_]_^1_%NUM $EA3B_+END COMPLEMENT--PSEUDO CLASS THREE_^1_%NUM $15D4_+ENT_^1_%NUM $1714_+EXT_^1_%NUM $0586_+ALF_^1_%NUM $3AAD_+NUM_^1_%NUM $10A3_+DEC_^1_%NUM $24C1_+IFA_^1_%NUM $24C3_+IFC_^1_%NUM $1526_+E€€IF_^1_%NUM $15A3_+EMC_^1_%NUM $3274_+LST_^1_%NUM $406F_+PCO_^1_%NUM $24D2_+IFR_^1_%NUM $3993_+NLS_^1_%NUM $4E03_+SPC_^1ENDOP NUM $1554_+EJT_^1OP1_!NUM $8001_+AR1_%CLASS 1_^1_%NUM $8002_+AR2_%TYPE TWO STORAGE INSTRUCTIONS_^1_%NUM $8003_+AR3_^1_%NUM $8004_+AR4_^1_%NUM $8005_+ARQ_^1_%NUM $8006_+ARA_^1_%NUM $8007_+ARI_^1_%NUM $8101_+RM1_^1_%NUM $8102_+RM2_^1_%NUM $810€€3_+RM3_^1_%NUM $8104_+RM4_^1_%NUM $8105_+RMQ_^1_%NUM $8106_+RMA_^1_%NUM $8107_+RMI_^1_%NUM $9001_+SB1_^1_%NUM $9002_+SB2_^1_%NUM $9003_+SB3_^1_%NUM $9004_+SB4_^1_%NUM $9005_+SBQ_^1_%NUM $9006_+SBA_^1_%NUM $9007_+SBI_^1_%NUM $9101_+SM1_^1_%NUM $9102_+SM2_^1_%NUM $9103_+SM3_^1_%NUM $9104_+SM4_^1_%NUM $9105_+SMQ_^1_%NUM $9106_+SMA_^1_%NUM $9107_+SMI_^1_%NUM $A001_+A€€N1_^1_%NUM $A002_+AN2_^1_%NUM $A003_+AN3_^1_%NUM $A004_+AN4_^1_%NUM $A005_+ANQ_^1_%NUM $A006_+ANA_^1_%NUM $A007_+ANI_^1_%NUM $A101_+AM1_^1_%NUM $A102_+AM2_^1_%NUM $A103_+AM3_^1_%NUM $A104_+AM4_^1_%NUM $A105_+AMQ_^1_%NUM $A106_+AMA_^1_%NUM $A107_+AMI_^1_%NUM $B001_+ER1_^1_%NUM $B002_+ER2_^1_%NUM $B003_+ER3_^1_%NUM $B004_+ER4_^1_%NUM $B005_+ERQ_^1_%NUM $B006_+ERA_^€€1_%NUM $B007_+ERI_^1_%NUM $B101_+EM1_^1_%NUM $B102_+EM2_^1_%NUM $B103_+EM3_^1_%NUM $B104_+EM4_^1_%NUM $B105_+EMQ_^1_%NUM $B106_+EMA_^1_%NUM $B107_+EMI_^1_%NUM $C000_+LEA_^1_%NUM $C001_+LR1_^1_%NUM $C002_+LR2_^1_%NUM $C003_+LR3_^1_%NUM $C004_+LR4_^1_%NUM $C005_+LRQ_^1_%NUM $C006_+LRA_^1_%NUM $C007_+LRI_^1_%NUM $C101_+SR1_^1_%NUM $C102_+SR2_^1_%NUM $C103_+SR3_^1_%N€€UM $C104_+SR4_^1_%NUM $C105_+SRQ_^1_%NUM $C106_+SRA_^1_%NUM $C107_+SRI_^1_%NUM $D001_+OR1_^1_%NUM $D002_+OR2_^1_%NUM $D003_+OR3_^1_%NUM $D004_+OR4_^1_%NUM $D005_+ORQ_^1_%NUM $D006_+ORA_^1_%NUM $D007_+ORI_^1_%NUM $D101_+OM1_^1_%NUM $D102_+OM2_^1_%NUM $D103_+OM3_^1_%NUM $D104_+OM4_^1_%NUM $D105_+OMQ_^1_%NUM $D106_+OMA_^1_%NUM $D107_+OMI_^1_%NUM $E101_+C1N_^1_%NUM €€$E102_+C2N_^1_%NUM $E103_+C3N_^1_%NUM $E104_+C4N_^1_%NUM $E105_+CQN_^1_%NUM $E106_+CAN_^1_%NUM $E107_+CIN_^1_%NUM $E001_+C1E_^1_%NUM $E002_+C2E_^1_%NUM $E003_+C3E_^1_%NUM $E004_+C4E_^1_%NUM $E005_+CQE_^1_%NUM $E006_+CAE_^1_%NUM $E007_+CIE_^1_%NUM $F001_+C1G_^1_%NUM $F002_+C2G_^1_%NUM $F003_+C3G_^1_%NUM $F004_+C4G_^1_%NUM $F005_+CQG_^1_%NUM $F006_+CAG_^1_%NUM $F00€€7_+CIG_^1_%NUM $F101_+C1L_^1_%NUM $F102_+C2L_^1_%NUM $F103_+C3L_^1_%NUM $F104_+C4L_^1_%NUM $F105_+CQL_^1_%NUM $F106_+CAL_^1_%NUM $F107_+CIL_^1_%NUM $5000_+SJE_^1_%NUM $5001_+SJ1_^1_%NUM $5002_+SJ2_^1_%NUM $5003_+SJ3_^1_%NUM $5004_+SJ4_^1_%NUM $5005_+SJQ_^1_%NUM $5006_+SJA_^1_%NUM $5007_+SJI_^1_%NUM $C200_+LCA_!CLASS 2_^1_%NUM $C300_+SCA_!CHARACTER REFERENE INSTRUCT€€IONS_^1_%NUM $E200_+CCE_^1_%NUM $E300_+CCN_^1_%NUM $0502_+SFZ_!CLASS 3_^1_%NUM $0503_+SFN_!FIELD REFERENCE INSTRUCTIONS_^1_%NUM $0504_+LFA_^1_%NUM $0505_+SFA_^1_%NUM $0506_+CLF_^1_%NUM $0507_+SEF_^1OP2_"NUM $CE8F_+LDA,LDQ,ADD,ADQ_!CLASS 4,5,6,AND7_^1_%NUM $9AB2_+SUB,AND,EOR,MUI_^1_%NUM $3641_+DVI,STA,STQ,JMP_^1_%NUM $5D70_+RTJ,RAO,SPA,SLS_^1_%NUM $23BA_+INP,OUT,NOP,ENA€€_^1_%NUM $C9D4_+ENQ,INA,INQ,EIN_^1_%NUM $5E67_+IIN,EXI,SPB,CPB_^1_%NUM $1235_+QRS,ARS,LRS,QLS_^1_%NUM $6700_+ALS,LLS_^1OP3_!NUM $0100_+SAZ_!CLASS 8_^1_%NUM $0110_+SAN_!TYPE ONE SKIP INSTRUCTIONS_^1_%NUM $0120_+SAP_^1_%NUM $0130_+SAM_^1_%NUM $0140_+SQZ_^1_%NUM $0150_+SQN_^1_%NUM $0160_+SQP_^1_%NUM $0170_+SQM_^1_%NUM $0180_+SWS_^1_%NUM $0190_+SWN_^1_%NUM $01A0_+SOV_^1_€€%NUM $01B0_+SNO_^1_%NUM $01C0_+SPE_^1_%NUM $01D0_+SNP_^1_%NUM $01E0_+SPF_^1_%NUM $01F0_+SNF_^1_%NUM $0040_+S1Z_!TYPE TWO SKIP INSTRUCTIONS_^1_%NUM $0080_+S2Z_^1_%NUM $00C0_+S3Z_^1_%NUM $0000_+S4Z_^1_%NUM $0050_+S1N_^1_%NUM $0090_+S2N_^1_%NUM $00D0_+S3N_^1_%NUM $0010_+S4N_^1_%NUM $0060_+S1P_^1_%NUM $00A0_+S2P_^1_%NUM $00E0_+S3P_^1_%NUM $0020_+S4P_^1_%NUM $0070_+S1M€€_^1_%NUM $00B0_+S2M_^1_%NUM $00F0_+S3M_^1_%NUM $0030_+S4M_^1_%NUM $0620_+D1P_!CLASS 8_^1_%NUM $0640_+D2P_!DECREMENT AND REPEAT_^1_%NUM $0660_+D3P_^1_%NUM $0680_+D4P_^1_%NUM $06A0_+DQP_^1_%NUM $06C0_+DAP_^1_%NUM $06E0_+DIP_^1_%NUM $0800_+SET_!CLASS 9_^1_%NUM $0840_+CLR_^1_%NUM $0820_+TRA_^1_%NUM $0808_+TRM_^1_%NUM $0810_+TRQ_^1_%NUM $0818_+TRB_^1_%NUM $0860_+TCA_^1_€€%NUM $0848_+TCM_^1_%NUM $0850_+TCQ_^1_%NUM $0858_+TCB_^1_%NUM $0828_+AAM_^1_%NUM $0830_+AAQ_^1_%NUM $0838_+AAB_^1_%NUM $0868_+EAM_^1_%NUM $0870_+EAQ_^1_%NUM $0878_+EAB_^1_%NUM $08A8_+LAM_^1_%NUM $08B0_+LAQ_^1_%NUM $08B8_+LAB_^1_%NUM $08E8_+CAM_^1_%NUM $08F0_+CAQ_^1_%NUM $08F8_+CAB_^1_%NUM $0720_+XF1_!CLASS 10_^1_%NUM $0740_+XF2_^1_%NUM $0760_+XF3_^1_%NUM $0780_+X€€F4_^1_%NUM $07A0_+XFQ_^1_%NUM $07C0_+XFA_^1_%NUM $07E0_+XFI_^1_%NUM $0B00_+LUB R RA-R CLASS 11_^1_%NUM $0B01_+LLB R RA-R_^1_%NUM $0B02_+EMS R RA-R_^1_%NUM $0B03_+WPR R RA-R_^1_%NUM $0B04_+RPR R RA-R_^1_%NUM $0B05_+ECC R RA-R_^1_%NUM $0B06_+WPF R RA-R_^1_%NUM $0B07_+RMD R RA-R_^1_%NUM $0B08_+SS1 R RA-R_^1_%NUM $0B09_+SS2 R RA-R_^1_%NUM $0B0A_+CS1 R RA-R_^1_%NUM $0B0B_€€+CS2 R RA-R_^1_%NUM $0B01_+LMM RA-0 CLASS 12_^1_%NUM $0B02_+LRGRA-0_^1_%NUM $0B03_+SRG RA-0_^1_%NUM $0B04_+SIO RA-0_^1_%NUM $0B05_+SPS RA-0_^1_%NUM $0B06_+DMI RA-0_^1_%NUM $0B07_+CBP RA-0_^1_%NUM $0B08_+GPE RA-0_^1_%NUM $0B09_+GPO RA-0_^1_%NUM $0B0A_+ASC RA-0_^1_%NUM $0B0B_+APM RA-0_^1_%NUM $0B0C_+PMO RA-0_^1_%NUM $0B0D_+PM1 RA-0_^1_%NUM $0B0F_+LSM RA-0_^1_%NUM $0F0€€1_+MOV_^1_%NUM $0F02_+SEQ_^1_%NUM $0F03_+SNE_^1_%NUM $0F04_+SLE_^1_%NUM $0F05_+SLT_^1_%NUM $0F06_+SGE_^1_%NUM $0F07_+SGT_^1_%NUM $0F08_+DAD_^1_%NUM $0F09_+DSB_^1_%NUM $0F0A_+DML_^1_%NUM $0F0B_+DDV_^1_%NUM $0F0C_+DLD_^1_%NUM $0F0D_+DST_^1_%NUM $0F0E_+DPK_^1_%NUM $0F0F_+DUN_^1_%NUM $0F11_+DOV_^1_%NUM $0F12_+DEQ_^1_%NUM $0F13_+DNE_^1_%NUM $0F14_+DLE_^1_%NUM $0F15_+D€€LT_^1_%NUM $0F16_+DGE_^1_%NUM $0F17_+DGT_^1_%NUM $0830_(FPS PLOATING STATUS_^1_%NUM $0810_+SFP CLASS 13_^1_%NUM $0820_+DFP_^1*_]_^1*_$THIS SUBROUTINE GETS THE FILE, MACROS, ON THE FIRST_^1*_$CALL. ON SUBSEQUENT CALLS, A SECTOR OF THE DIRECTORY_^1*_$IS MOVED._^1*_]_^1GTFILD NUM 0_,ENTRY_^1_%STA* SAVA_)INCREMENT TO NAME MACROS._^1_%STQ* SAVQ_)WORD NUMBER RELATIVE TO START OF F€€ILE_^1_%LDA* FRSTSW_'FIRST SWITCH_^1_%SAN MOVSEC_'MOVE A SECTOR_^1_%JMP* FILLIT_'GET THE DIRECTORY_^1_%SPC 1_^1MOVSEC ADQ =XTABDIR-1_"INDEX INTO THE TABLE_^1_%STQ* ADRSOU_'SOURCE ADDRESS_^1_%LDA* (GTFILD)_$GET DESTINATION_^1_%STA* ADRDES_'DESTINATION BASE ADDRESS_^1_%RAO* GTFILD_'BUMP RETURN ADDRESS_^1_%ENQ BLKSIZ-1_$SECT SIZE - 1, 0-95_^1COPYIT LDA* (ADRSOU),Q_^1_%STA* (ADRDES€€),Q_"MOVE IT_^1_%INQ -1_^1_%SQM RETURN_'DONE COPY_^1_%JMP* COPYIT_'LOOP_^1_%SPC 1_^1RETURN JMP* (GTFILD)_$RETURN TO CALLER_^1_%SPC 1_^1FILLIT ENQ 1_,START AT WORD 1 OF FILL_^1BLSV_!STQ* FRSTSW_'SET TAB INDEX_^1_%LDA* SAVA_)GET INCREMENT TO ASCII NAME, MACROS_^1_%RTJ+ GTFIL_(CALL THE GET FILE ROUTINE_^1ADRTAB ADC TABDIR_'ADDRESS WITHIN TABLE_^1_%ENQ BLKSIZ_^1MACLST LDA* (ADRT€€AB)_$GET 1ST WORD OF ENTRY_^1_%SAP NOTLST_'TEST FOR ALL DIRC. IN CORE_^1_%LDQ* SAVQ_)LAST ENTRY IN DIRC._^1_%JMP* MOVSEC_'GO MOVE IT_^1_%SPC 1_^1NOTLST LDA* ADRTAB_'BUMP TABLE ADDRESS_^1_%INA 6_,6 WORDS/ENTRY_^1_%STA* ADRTAB_^1_%INQ -6_^1_%SQZ FULBLK_'FULL BLOCK_^1_%JMP* MACLST_'LOOP_^1FULBLK LDQ* FRSTSW_^1_%INQ BLKSIZ_'BUMP TABLE INDEX_^1_%LDA* MAXIDX_'- LGTOT_^1_%AAQ A_^1_€€%SAZ OVERDR_^1_%JMP* BLSV_)UPDATE CURRENT BLOCK INDEX_^1_%SPC 1_^1OVERDR ENQ 90_^1_%LDA* (ADRTAB),Q_"GET 1ST WORD OF LAST ENTRY_^1_%TCA A_,FORCE END OF DIRECTORY_^1_%STA* (ADRTAB),Q_"RETURN IT_^1_%RTJ- ($F4)_(MONITOR_^1_%NUM $4C00_(FWRITE_^1_%NUM 0_,COMP_^1OVRTHD NUM 0_,THREAD_^1_%NUM $18FD_(COMMENT OUT_^1_%ADC OVRDRL_'NO. WORDS_^1_%ADC OVRDRM_'OVER FLOW DIRECTORY TABLE M€€SG._^1_%LDA* OVRTHD_'HANG ON THREAD_^1_%SAZ 1_^1_%JMP* *-2_^1_%LDQ* SAVQ_^1_%JMP* MOVSEC_'CONTINUE_^1_%SPC 2_^1*_]_^1*_$WORKING STORAGE / PARAMETERS / MSG._^1*_]_^1_%SPC 1_^1OVRDRM ALF Z, OV CORE RES. MACRO DIR. Z_^1_%EQU OVRDRL(*-OVRDRM)_^1_%SPC 1_^1ADRSOU NUM 0_,ADDRESS SOURCE_^1ADRDES NUM 0_,ADDRESS DESTINATION_^1_%SPC 1_^1_%EQU BLKSIZ(96)_"SECTOR SIZE_^1_%EQU NBDIRB(€€18)_"NO. DIR. BLOCKS_^1_%EQU LGTOT(BLKSIZ*NBDIRB)_!TABLE SIZE_^1_%SPC 1_^1MAXIDX ADC (-LGTOT)_$NEGATIVE MAX. TAB. INDEX_^1FRSTSW NUM 0_,FIRST SWITCH, CURRENT BLOCK INDEX_^1SAVA_!NUM 0_^1SAVQ_!NUM 0_^1_%SPC 1_^1TABDIR BZS TABDIR(LGTOT) TABLE FOR MACRO DIRECTORY_^1_%SPC 1_^1*_$DIRECTORY ENTRY 6 WORDS EACK_^1*_$16 PER SECTORR . MSOS 4.2 REQUIRES 3.5 SECTORS._^1*_$18 SECTORS P€€ROVIDES 288 ENTRIES_^1_%END PASS1_^__€€PA1PR2 CSY/ €€1_%NAM PA1PR2_'DECK-ID A03 MACRO ASSEMBLER_%SUMMARY-162_^1*_$MASS STORAGE OPERATING SYSTEM VERSION 5.0_^1*_$SMALL SYSTEMS DIVISION, LA JOLLA, CALIFORNIA_^1*_$COPYRIGHT CONTROL DATA CORPORATION 1976_^1*_'PROGRAM BASE-MACRO ASSEMBLER 2.0_4**MSOS 4.0_^1_(COM_!DIRBUF(96),INBUF(96),SKLBUF(96)_^1_(COM_!PTBL(96),INSKBF(96)_^1_(COM_!INBUF1(41)_^1_(EQU_!ACTBL(SKLBUF),ACTBL2(PTBL)_^1DISP_!€€EQU DISP($EA)_^1STDSCR EQU STDSCR($B3)_^1REQPRO EQU REQPRO($F4)_^1STDOCD EQU STDOCD($FC)_^1STDICD EQU STDICD($FD)_^1_(EQU_!INPADR(1),SKLADR(INPADR+1)_^1_(EQU_!CRPADR(SKLADR+1),ACADR(CRPADR+1)_^1_(EQU_!BUFFSW(ACADR+1),SKBFSW(BUFFSW+1)_^1_(EQU_!CS(SKBFSW+1),IG(CS+1),NOPG(IG+1)_^1_(EQU_!MSW1(NOPG+1),MSW2(MSW1+1)_^1_(EQU_!CT(MSW2+1),LOCSW(CT+1),NU(LOCSW+1)_^1_(EQU_!NC(NU+1),PM(NC+€€1),NL(PM+1)_^1_(EQU_!AF(NL+1),CHST(AF+1),LOCTOT(CHST+1)_^1_(EQU_!LN(LOCTOT+1),CSW(LN+1),DC(CSW+1)_^1_%EQU SKELOC(DC+1),DIRINX(SKELOC+1)_545*776_^1_(EQU_!FPRINX(DIRINX+1)_^1_(EQU_!CM(FPRINX+1),CM1(CM+1),AP(CM1+1)_^1_(EQU_!PGSECT(AP+1),PGSCST(PGSECT+1)_^1_(EQU_!ILSECT(PGSCST+1),SKSCST(ILSECT+1)_^1_(EQU_!ACSECT(SKSCST+1)_^1_(EQU_!SY(ACSECT+1),XMOD(SY+4)_^1_%EQU T1(XMOD+1),TP1(T1+6)_€€^1_(EQU_!SQ(TP1+3)_#5 LONG_^1_(EQU_!NULSW(SQ+5)_^1_(EQU_!ACC(NULSW+1)_^1_(EQU_!FSTM(ACC+1)_^1_(EQU_!RCS(FSTM+1)_!MUST BE LAST_^1_(COM_!CONS(RCS+1)_^1_%COM FST,L,P,X,C,MM,ILSEC1,SRSCST,ILSCND_/MSOS4.1_^1_(COM_!ERC_^1_%COM LGSECT_^1_%COM SYRFTS(96)_"SECT.REF.TAB.SYMBOLS_0MSOS4.1_^1_%COM SYCADM_'ADDR.SECT.REF.TBL.SYMBOL_,MSOS4.1_^1_%COM SYEXT_MMSOS4.1_^1_%COM SYINDM_LMSOS4.1_^1_€€%COM SYTRFM_'ENTRY ADDR.REF.TBL.SYMBOLS_*MSOS4.1_^1_%COM SYTRFD_'1ST ADDR.REF.TBL.SYMBOLS-DISK_'MSOS4.1_^1_%COM APASS1,APASS2,APASS3,ATBLST,AXREF,PAGE_,MSOS4.1_^1_%COM PS1W2,PS2W2,PS3W2,PS4W2,PS5W2_5MSOS4.1_^1_(ENT_!GTFIL,GFL1,DOUT,OPT,MACDEF,MACGET,MACCON_^1_(ENT_!ENDMAC,DIN,MACCAL,RCO,CO,MC5,SLMC,DIRSCH_^1_%ENT_"MACROS,GFILE_C**MSOS 4.0_^1_(ENT_!DISKW5,MCCON,MC7A_=**MSOS 4.0_€€^1_(EXT_!MCHPR,JJAN12,PIL,READIM,GETOP,RECV_^1_(EXT_!MER,MDEX,CHPU,CONAC,MACER,PUNT,RIMSB_^1_%EXT P1D,SKLOUT,CONAB,READI_<75*1837_^1_%EXT P1A_OMSOS4.1_^1DIRSCH_!ADC_!0_^1_(LDA- I_^1_(STA- T1,I_^1_(ENQ_!0_^1_(STQ- T2,I_)ZERO SW_^1DS1_$STQ- I_^1_(ENQ_!0_^1DS1A_!LDA* (DS2-1),I DIRBUF_^1_%SAP T2A-*-1_^1DS4_$RAO+ CONS+T2_^1T2_%EQU_!T2(T1+1)_^1_(TCA_!A_^1T2A_"SUB CONS+SY,Q_^1_(S€€AN_!DS3-*-1_^1_(INQ_!-2_^1_(SQZ_!3_^1_(INQ_!3_^1_(RAO- I_^1_%JMP* DS1A_^1_(LDQ_!=XDIRBUF,I_^1DS2_$LDA_!CONS+T1_^1_(STA- I_^1_(JMP* (DIRSCH)_^1DS3_"LDA* (DS4+1) CONS + T2_^1_(SAN_!DS5-*-1_^1_(ENA_!6_^1_(TCQ_!Q_^1_(AAQ_!Q_^1_(ADQ- I_^1_(INQ_!-96_^1_(SQZ_!DS5+1-*-1_^1_(INQ_!96_^1_(JMP* DS1_^1DS5_$ENQ -0_M**MSOS 4.0_^1_(JMP* DS2_^1MACDEF_!RAO- NOPG,I_'SET SWITCH FOR PROG MACS_€€^1_(LDA_!=XSKLBUF_$SET SKEL ADDR FOR_^1_(STA- SKLADR,I_^1_(LDA- CS,I_)TERMIN BLANK_^1_%SAN MD3A-*-1_^1_(ENA_!-1_+INITIALIZE CHR CTR_^1_(STA- CT,I_^1MD3_$RTJ+_$MCHPR_^1_%SAZ MD3A-*-1_^1_(LDA- CS,I_)TERMIN BLANK_^1_(SAZ_!1_^1MD3A_!JMP* MD14 SLMC_^1_(RTJ_%JJAN12_^1_(RTJ* (MCON+3) RECV CONVERT NAME TO 7 BITS_^1_(RAO- DIRINX,I_^1_(LDA- DIRINX,I_^1_(INA_!-96_*THIS DIR FULL_^1_%S€€AN MD3B-*-1_$NO_^1_(STA- DIRINX,I_^1_(LDQ- PGSECT,I_$YES-OUTPUT IT_^1_(RAO- PGSECT,I_^1_%RAO- PGSECT,I_^1_(LDA* MD1+1_^1_(RTJ_!DOUT_^1MD3B_!LDQ- DIRINX,I_$PUT AWAY MACRO NAME_^1_(LDA- SY,I_^1MD1_$STA+ DIRBUF,Q_^1_(INQ_!1_^1_(LDA- SY+1,I_^1_%STA* (MD1+1),Q DIRBUF_^1_(INQ_!1_^1_(LDA- SY+2,I_^1_%STA* (MD1+1),Q DIRBUF_^1_(INQ_!1_^1_(STQ- DIRINX,I_^1_(LDA_!=N$2E20_%PUT PERIOD €€AS_^1_(STA* (MCON+4) PTBL 1ST FORMAL PARAM_^1_(ENA_!1_^1_(STA- FPRINX,I_$SET FORMAL PARAM INX_^1_(RAO- IG,I_^1_(RTJ+_$MCHPR_^1_(RAO- IG,I_^1_(RTJ* MDSB1_^1_(LDA- FPRINX,I_$NUMB FORMALS_^1_(LDQ- DIRINX,I_$TO DIRECTORY_^1_%STA* (MD1+1),Q DIRBUF_^1_(INQ_!2_^1_%LDA- SKELOC,I_$SKELETON POINTER_445*776_^1_(STA* (MD1+1),Q_#TO DIRECTORY_^1_(STQ- DIRINX,I_^1_(RAO- LOCSW,I_%SET LOC€€AL SWITCH_^1_(ENA_%0_^1_(STA*_$JJ69_^1GETSKL_!RTJ* (MCON) PIL_"OUTPUT PRINT ONLY IL_^1_(RTJ* (MCON+1) READIM GET NEXT IMAGE_^1_(RTJ* (MCON+2) GETOP GET OPCODE_^1_(LDQ- INPADR,I_^1_(STQ- CRPADR,I_$SET TO GET SKEL_^1_(LDQ- LOCSW,I_^1_(SQZ_!MD5-*-1_%LOC PROC DONE_^1_(SAP_!1_,NOT ASTERISK_^1_(JMP* MD16_^1_(SUB_!=N$31E3_%LOC IMAGE_^1_(SAN_%2_^1_(JMP* LOCP_^1JJ69_#NUM_%0_^1MD16_#€€LDA*_$JJ69_^1_(RTJ* LOCRTN_^1_(LDA- NU,I_^1MD5_$SAP_!MD9-*-1_^1_(RTJ_!MOVIMG_'ASTERISK-MOVE IMAGE_^1_(JMP* GETSKL_'AS IT STANDS_^1MD9_$LDA- NU,I_.CONVERTED OPCODE_^1_(SUB_!=N$15A3_*IS IT EMC_^1_(SAN_!1_0NO_^1_(JMP* MD10_-YES-PROCESS IT_^1_(ENA_!-1_^1_(STA- CT,I_^1_(STA- NC,I_)NEW COUNT_^1MD11_#RTJ+ CHRPIC_^1_(SAM_!MD12-*-1_$END OF INP IMAGE_^1_(RTJ+ NEWPUT_^1_%SAP MD12A-*-€€1_^1MD12_#RTJ_!CRPUT_(PUT CR IN NEW IMG_^1_(RTJ* (MCON+5) SKLOUT OUTPUT THIS SKELETON_^1_(JMP* GETSKL_'GET NEXT SKEL_^1MD12A INA -$27_!APOSTROPHE_^1_(SAZ_!1_,YES_^1_(JMP* MD11_)NO-GET NEXT CHAR_^1_(RTJ* (MD11+1) CHRPIC_^1_(SAM_!3_,ERROR_^1_(ALS_!8_^1_(STA- T1,I_)1ST CHAR_^1_(RTJ* (MD11+1) CHRPIC_^1_(SAM_!10_+ERROR_^1_(INA_!-$27_)APOSTROPHE_^1_(SAN_!1_,NO_^1_(INA_!-7_+YES-MA€€KE 2ND CHAR BLANK_^1_(INA_!$27_^1_(ADD- T1,I_^1_(STA- T1,I_^1_(LDA- CS,I_^1_(INA_!-$27_^1_(SAZ_!MD13-1-*-1_^1_(RTJ* (MD11+1) CHRPIC_^1_(SAM_!MD14-*-1_^1_(INA_!-$27_)APOSTROPHE_^1_(SAN_!MD14-*-1 SLMC_^1_(LDQ- FPRINX,I_^1MD13_#LDA- T1,I_^1_(SUB* (MCON+4),Q PTBL_^1_(SAZ_!4_,FOUND_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* MD13_^1MD14_#JMP* SLMC_^1_(TRQ_!A_^1_(INA_!1_^1_(RTJ* (MD11+4) N€€EWPUT_^1_(SAM_!LOCP+2-*-1 SLMC_^1_(JMP* MD11_^1MCON_#ADC_!PIL,READIM,GETOP_^1_(ADC_!RECV_^1_(ADC_!PTBL_^1_(ADC_!SKLOUT_^1LOCP_#LDA- CS,I_^1_(SAZ_!1_^1_(JMP* SLMC_^1_(LDA- FPRINX,I_^1_(STA- TP1,I_^1_(RTJ* MDSB1_^1_(LDA- FPRINX,I_^1_(SUB- TP1,I_^1_(ADD*_$JJ69_^1_(STA*_$JJ69_^1_%JMP* GETSKL_^1LOCRTN_!ADC_!0_^1_(LDQ- DIRINX,I_^1_(INQ_!-1_^1_%STA* (MD1+1),Q DIRBUF SET NUMB OF €€LOCS_^1_(ENA_!0_^1_(STA- LOCSW,I_%ZERO LOCSW_^1_(LDQ- FPRINX,I_^1_(INQ_!-1_^1_(STQ- FPRINX,I_^1_(JMP* (LOCRTN)_^1MDSB1_"ADC_!0_^1MD2_$RTJ+ MCHPR_(GET PARAM_^1_(SAN_!8_^1_(LDA- SY+1,I_'NULL FIELD_^1_(SAZ_!8_,NO-ERROR_^1_(LDA- CS,I_^1_(SAN_!1_^1_(JMP* (MDSB1)_%TERMIN BLANK EXIT_^1_(INA_!-1_^1_(SAN_!3_,ERROR_^1_(JMP* MD2_^1_(LDA- SY+1,I_^1_(SAZ_!1_^1_(JMP* MD4_*SLMC MORE TH€€AN TWO CHAR_^1_(RTJ* (MCON+3) RECV CONVERT PARAM TO 7 BITS_^1_(LDQ- FPRINX,I_^1_(INQ_!-1_^1_(LDA* (MCON+4),Q PTBL_^1_(SUB- SY,I_^1_(SAZ_!MD4-*-1_%ERROR-DUPLICATE PARAM_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-5_^1_(LDA- CS,I_^1_(INA_!-2_^1_(SAM_!1_^1MD4_$JMP* SLMC_^1_(LDA- SY,I_^1_(LDQ- FPRINX,I_$PUT PARAM ASAY_^1_(STA* (MCON+4),Q PTBL_^1_(RAO- FPRINX,I_^1_(LDA- CS,I_^1_(SAZ_!€€1_^1_(JMP* MD2_^1_(JMP* (MDSB1)_^1MD10_#RTJ* MOVIMG_'MOVE IMAGE TO NEW BUFF_^1_(LDA- SKBFSW,I_^1_(SAP_!1_^1_(RTJ* (MCON+5) SKLOUT OUTPUT THIS BUFF_^1_(JMP* MOVIMG-2 MDEX_^1SLMC_#ENQ_!2_^1_(RTJ_!MER_^1SLMCA ENQ 0_^1_(LDA- DIRINX,I_^1_(DVI_!=N6_*ERASE THIS ENT_^1_(LDA- DIRINX,I_^1_(INA_!-1_^1_(STA- DIRINX,I_^1_(SQZ_!1_^1_%JMP* SLMCA_^1_(LDA- NOPG,I_^1_(INA_!-1_^1_(STA- N€€OPG,I_^1SL1_$RTJ* (MCON) PIL_^1_(RTJ* (MCON+1) READIM_^1_(RTJ* (MCON+2) GETOP_^1_(SAM_!3_^1_(SUB_!=N$15A3_%EMC OPCODE_^1_(SAZ_!1_^1_(JMP* SL1_^1_(JMP_!MDEX_^1MOVIMG_!ADC_!0_^1_(ENA_!-1_^1_(STA- CT,I_^1_(STA- NC,I_^1_(RTJ* MV1_^1_(RTJ* (MCON+5) SKLOUT_^1_(JMP* (MOVIMG)_^1MV1_$ADC_!0_^1_(RTJ* CHRPIC_^1_(SAM_!1_^1_(RTJ* NEWPUT_^1_(SAM_!1_^1_(JMP* MV1+1_^1_(RTJ* CRPUT_^1_(€€JMP* (MV1)_^1NEWPUT_!ADC_!0_^1_(STA- CHST,I_^1_(LDA- SKLADR,I_F**MSOS 4.0_^1_(STA* N1A_K**MSOS 4.0_^1_(RAO- NC,I_^1_(LDQ- NC,I_^1_(INQ_!-72_^1_(SQN_!2_,BUFFER FULL_^1_(ENA_!-1_^1_(JMP* (NEWPUT)_^1_(INQ_!72_^1_(ENA_!0_^1_(LRS_!1_^1_(SAN_!N2-*-1_^1_(LDA- CHST,I_^1_(ALS_!8_^1_(ADD_!=N$FF_^1_(JMP* N1+1_J**MSOS 4.0_^1N2_%LDA- CHST,I_^1_(EOR_!=N$FF00_^1N1_%AND* (N1A),Q_G**MSOS€€ 4.0_^1_(STA* (N1A),Q_G**MSOS 4.0_^1_(LDA- CHST,I_^1_(JMP* (NEWPUT)_^1N1A_$NUM_"0_L**MSOS 4.0_^1CHRPIC_!ADC_!0_^1_(LDA- INPADR,I_$SAVE INPUT ADDR_^1_(STA- CHST,I_^1_(LDA- CRPADR,I_^1_(STA- INPADR,I_^1_(RAO- AF,I_^1CHRPID RTJ+ CHPU_^1_(ENA_!0_^1_(STA- AF,I_^1_(LDA- CHST,I_^1_(STA- INPADR,I_$RESTORE INPUT ADR_^1_(SQM_!4_^1_(TRQ_!A_^1_(STA- CS,I_^1_(INQ_!-$D_^1_(SQN_!1_^1_€€(ENA_!-1_/SET A NEG FOR CR_^1_(JMP* (CHRPIC)_^1CRPUT_"ADC_!0_^1_(LDQ- SKLADR,I_F**MSOS 4.0_^1_(STQ* N1A_K**MSOS 4.0_^1_(LDQ- NC,I_^1_(INQ_!-72_^1_(SQN_!5_^1_(ENQ_!36_^1CR1_$LDA_!=N$D00_^1_(STA* (N1A),Q_G**MSOS 4.0_^1_(JMP* (CRPUT)_^1_(INQ_!72_^1_(ENA_!0_^1_(LRS_!1_^1_(INQ_!1_^1_(JMP* CR1_^1MACCAL_!LDA- CS,I_^1_(SAZ_!MCC3-*-1_$TERMIN BLANK_^1_(STA- T1,I_)SAVE TERMIN_^1_(ENA€€_!0_^1_(STA- IG,I_^1_%RTJ*_"(CHRPID+1) CHPU_^1_(RAO- IG,I_^1_(LDQ- T1,I_^1_(SAZ_!1_,BLANK_^1_(ENQ_!1_,MAKE CS COMMA FOR ERROR_^1_(STQ- CS,I_^1MCC3_#LDA- INPADR,I_^1_(STA- CRPADR,I_^1_(LDA- ACADR,I_G**MSOS 4.0_^1_%STA MCCON_^1_(LDA- DC,I_)DEPTH COUNT_^1_(RAO- DC,I_^1_%SAZ MCC3A-*-1_^1_(LDA_!=XACTBL2_^1_(STA- ACADR,I_^1_(STA* MCCON_I**MSOS 4.0_^1_(ENA_!0_0ZERO OUT ACTUA€€L_^1MCC3A ENQ 95_+TABLE_^1_(STA* (MCCON),Q ACADR_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-3_^1_(STA- NULSW,I_^1_(STA- CM1,I_^1_(LDA- PM,I_-PROG MACRO SW_^1_(STA* (MCCON) ACADR SET SW IN 1ST WD OF ACTBL_^1_(LDQ- DIRINX,I_)ADDR-1 OF SKEL PTR_^1_(LDA- 1,Q_^1_(ENQ_!1_0PUT SKEL PTR IN 2ND WD_^1_(STA* (MCCON),Q ACADR OF ACTBL_^1_(ENA_!3_0SET ACTBL INDEX_^1_(STA- AC,I_^1AC_%EQU_!AC€€(FPRINX)_^1NF_%EQU_!NF(LOCSW)_^1_(ENA_!$7F_*BEGIN CHAR_^1MCC2_#RTJ+ ACTPUT_^1_(ENA_!0_^1_(LDQ- CS,I_-CHECK CALL TERM_^1_(JMP* *+1,Q_,AND CHNG TO 7 BIT ASCII_^1_(INA_!$25_.BLANK_^1_(INA_!-$30_-COMMA_^1_(INA_!-2_/PLUS_^1_(INA_!3_0MINUS_^1_(INA_!$2A_.ASTERISK_^1_(SAP_!1_^1_(JMP* (MCCON+1) MACER COMMA_^1_(RTJ* (MCC2+1) ACTPUT_^1_%LDA- NF,I_)IF THERE ARE NO FORMAL PARAMETERS_^1_%IN€€A -1_+DO NOT CHECK FOR ANY. THIS WILL_^1_%SAN PRMLST_'ALLOW COMMENTS ON A MACRO INTTRUCTION_^1_%JMP* BLNCHR_'CARD WITHOUT FORMAL PARAMETERS._^1PRMLST RAO- IG,I_)SLEW LEADING BLANKS_^1_(RTJ* (MCCON+2) CHPU_^1_(SAN_!1_^1_(JMP* BLNCHR_'NO PARAMETERS ON THIS CALL_^1_(LDA- CT,I_)BACK UP CTR AND PRETEND_^1_(INA_!-1_+COMMA WAS PRESENT_^1_(STA- CT,I_^1_(JMP* MC4_^1SETBGN_!ENA_!$7F_€€^1_(RTJ* (MCC2+1) ACTPUT_^1GETCH_"RTJ* CHRPIC_^1_(LDQ- AP,I_^1_(SAP_!2_^1_(SQN_!MC1-3-*-1 ERR-AP SET AT END OF IMG_^1_(JMP* BLNCHR_^1_(SAN_!2_^1_(RAO- NULSW,I_%ZERO-IS NULL_^1_(JMP* GETCH_^1_(INA_!-$27_-APOSTROPHE_^1_(SAN_!MC1-*-1_*NO_^1_(SQZ_!1_0APOS SW SET_^1_(JMP* ENDAPS_+YES_^1_(LDA- CM,I_-COMMA SW SET_^1_(SAN_!1_^1_(JMP* (MCCON+1) MACER_^1_(RAO- AP,I_-SET APOS SW_^1_€€(JMP* GETCH_^1MC1_$INA_!-5_/COMMA_^1_(SAN_!MC2-*-1_*NO_^1_(SQN_!MC3-*-1_*APOS SWSET_^1_(STA- NULSW,I_%ZERO NULL SW_^1MC4_$LDA- NF,I_-NO_^1_(INA_!-1_^1_(STA- NF,I_^1_(SAN_!1_^1_(JMP* (MCCON+1) MACER_^1_(RAO- CM,I_-SET COMMA SW_^1_(RAO- CM1,I_^1*_;CM SW USED SO APOS_^1*_;AS FIRST CHAR IS_^1*_;LEGAL-CM1 IS USED TO_^1*_;TELL CONTINUATION IMAGE_^1_(JMP* SETBGN_^1MC2_$INA_!$C_/BL€€ANK_^1_(SAZ_!2_0YES_^1_(INA_!$17_.TAB_^1_(SAN_!MC3-*-1_*NO_^1_(SQN_!MC3-*-1_*APOS SW SET_^1_(JMP* BLNCHR_+NO_^1MC3_$LDA- CS,I_^1_(RTJ* (MCC2+1) ACTPUT_^1_(ENA_!0_^1_(STA- CM,I_^1_(STA- CM1,I_^1_(STA- NULSW,I_^1_(JMP* GETCH_^1ENDAPS_!STA- AP,I_^1_(RTJ_!CHRPIC_^1_(SAM_!BLNCHR-*-1_'END OF INPUT IMG_^1_(INA_!-$2C_-COMMA_^1_(SAN_!1_0NO_^1_(JMP* MC4_^1_(INA_!$C_/BLANK_^1_(SAZ_!3_€€0YES_^1_(INA_!$17_.TAB_^1_(SAZ_!1_0YES_^1_(JMP* (MCCON+1) MACER_^1BLNCHR_!LDA- CM1,I_^1_(ENQ_!0_^1_(STQ- CM1,I_^1_(SAZ_!2_^1_(LDA- NULSW,I_^1_(SAZ_!1_^1_(JMP* MC5_*NULL PARAM LAST-NOT CONT_^1_(RAO- MSW2,I_+CONTINUATION IMAGE_^1MC7_$LDA_!=N$8000_^1_(ENQ_!42_/SET MACRO CALL BIT_^1_(ADD* (MC7A),Q_!IN IL_>**MSOS 4.0_^1_%STA*_"(MC7A),Q_F**MSOS 4.0_^1_(ENQ_!2_0SAVE MACRO NAEM_^1MC€€7B_!LDA- SY,B_^1_(STA- TP1,B_^1_(INQ_!-1_^1_(SQM_!1_^1_%JMP* MC7B_^1MC7C_#JMP+ CONAC_I**MSOS 4.0_^1MC7A_#NUM_!0_M**MSOS 4.0_^1MCCON_"ADC_%0,MACER_C**MSOS 4.0_^1_(ADC_!CHPU_^1MC5_$ENA_!$7F_^1_(RTJ* ACTPUT_^1_(LDA- NF,I_^1_(INA_!-1_^1_(STA- NF,I_^1_(SAZ_!1_^1_(JMP* MC5_^1LOCPRC_!LDA- NL,I_^1_(SAZ_!1_^1_(JMP* MC6_^1_(LDA* MC7+1_^1_%ENQ 42_8SET BIT IN IL FOR_^1_(ADD* (MC7A),€€Q_!INPADR_=**MSOS 4.0_^1_(STA* (MC7A),Q_!INPADR_=**MSOS 4.0_^1_(RAO- MSW1,I_^1_(LDA- DC,I_^1_(INA_!-1_^1_(SAN_!1_^1_(JMP* MC8_^1_(LDQ- ACSECT,I_$ACTUAL SECTOR NO_^1_(LDA* MACGET+1_^1_(RTJ_!DOUT_^1_(RAO- ACSECT,I_$INCREMENT ACSECT NO_^1_%RAO- ACSECT,I_^1_(ENQ_!95_/MOVE ACTBL2 TO ACTBL_^1_(LDA_!ACTBL2,Q_^1_(STA* (MACGET+1),Q ACTBL_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-5_^1_(LDA*€€ MACGET+1_^1_(STA- ACADR,I_%RESTORE ACADR_^1_(STA* MCCON_I**MSOS 4.0_^1MC8_$JMP* MC7C_J**MSOS 4.0_^1MC6_$ENA_!$5B_.LEFT BRACKET_^1_(RTJ* ACTPUT_'TO ACTBL_^1_(LDA- LOCTOT,I_)TOTAL NUMB LOC LABELS_^1_(LDA-_$LOCTOT,I_^1_(ENQ_%0_^1_(STQ_%T1,I_^1_(ENQ_%2_^1JJHEX1_!INA_%-16_^1_(SAM_%2_^1_(RAO-_$T1,I_^1_(JMP*_$*-3_^1_(INA_%6_^1_(SAM_%2_^1_(INA_%65_^1_(JMP*_$*+2_^1_(INA_%58_^1_(STA-_€€$T1,B_^1_(LDA-_$T1,I_^1_(STA-_$T1+3,I_^1_(ENA_%0_^1_(STA-_$T1,I_^1_(LDA-_$T1+3,I_^1_(INQ_%-1_^1_(SQZ_%1_^1_(JMP*_$JJHEX1_^1_(LDA-_$T1+2,I_^1_(STA-_$T1,I_^1_(LDA-_$T1+1,I_^1_(RTJ* ACTPUT_^1_(LDA- T1,I_^1_(RTJ* ACTPUT_^1_(ENA_!$7F_^1_(RTJ* ACTPUT_^1_(RAO- LOCTOT,I_^1_(LDA- NL,I_^1_(INA_!-1_^1_(STA- NL,I_^1_(JMP* LOCPRC_^1MACCON_!STA- T1,I_)SAVE A REG_^1_(LDA_!=N$4000_%PUT CO€€NTINUATION_^1_(ENQ_!42_+BIT IN IL_^1_(ADD* (MC7A),Q_!INPADR_=**MSOS 4.0_^1_(STA* (MC7A),Q_!INPADR_=**MSOS 4.0_^1_(ENA_!0_^1_(STA- MSW2,I_^1_(LDA- T1,I_^1_(SAM_!MCN1-*-1_^1_(RTJ_!RECV_^1_(ENQ_!2_^1_(LDA- SY,B_^1_(SUB- TP1,B_^1_(SAN_!MCN1-*-1_)ERROR-NAMES DONT MATCH_^1_(INQ_!-1_^1_(SQM_!2_^1_(JMP* *-5_^1MCN1_#JMP* (MCCON+1) MACER_^1_(LDA- INPADR,I_^1_(STA- CRPADR,I_^1_(RAO-€€ IG,I_)SLEW LEADING BLANKS_^1_(RTJ* (MCCON+2) CHPU_^1_(SAN_!1_^1_(JMP* BLNCHR_^1_(LDA- CT,I_^1_(INA_!-1_^1_(STA- CT,I_^1_(JMP_!GETCH_^1ACTPUT_!ADC_!0_^1_(STA- CHST,I_^1_(RAO- AC,I_^1_(LDQ- AC,I_^1_(ENA_!0_^1_(LRS_!1_^1_(INQ_!-95_^1_(SQN_!2_^1_(JMP_!PUNT_^1_(INQ_!95_^1_(SAN_!3_^1_(LDA- CHST,I_^1_(ALS_!8_^1_(JMP* *+3_^1_(LDA- CHST,I_^1_(ADD* (MCCON),Q ACADR_^1_(STA* (MCC€€ON),Q ACADR_^1_(JMP* (ACTPUT)_^1MACGET_!LDA+ ACTBL_^1_(ENQ_!0_^1_(LLS_!8_^1_(SQZ_!MG4-*-1_^1MG14_#LDA_!=XINSKBF_$SKEL IN CORE_^1_(INA_!48_^1_(STA- CRPADR,I_$SET INPUT ADDR_^1*_?FOR CHRPIC_^1_(JMP* MG1_^1MG4_$RTJ* SKLGET_^1_(LDA* MACGET+6_)SET INPUT ADDR_^1_(STA- CRPADR,I_$FOR CHRPIC_^1MG1_$LDA* (MACGET+1) ACTBL_^1_(EOR_!=N$100_^1_(STA* (MACGET+1)_^1_(RTJ_!RIMSB_^1_(LDA- IN€€PADR,I_$SET ADDR FOR_^1_(STA- SKLADR,I_$NEWPUT_^1_(ENA_!-1_/INITIALIZE CTRS FOR_^1_(STA- CT,I_*CHRPIC AND NEWPUT_^1_(STA- NC,I_^1_(RTJ* (MG7+1) CHRPIC_^1_(SAP_!1_^1_(JMP* MG2A_-END OF INPUT IMAGE_^1_(LDQ- PM,I_)PROG MACRO_^1_(SQN_!3_,YES_^1_(INA_!-$21_-NO-IS THIS EXCLAM PT_^1_(SAN_!2_0NO_^1_(JMP* *+3_^1_(INA_!-$2A_-ASTERISK_^1_(SAN_!MG5-*-1_*NO_^1_(ENA_!$2A_^1_(RTJ* (MG6+1) €€NEWPUT_^1_(RTJ_!MV1_*MOVE WHOLE IMAGE_^1_(JMP* MG2A+2_^1MG5_$LDA- CS,I_^1_(INA_!-$27_-APOS_^1_(SAZ_!MG8-*-1_*YES_^1_(LDA- CS,I_-NO_^1MG6_$RTJ+ NEWPUT_^1_%SAM MG7A-*-1_^1MG7_$RTJ+ CHRPIC_^1_(SAM_!1_^1_(JMP* MG5_^1MG7A_!JMP* MG2A_^1MG8_$RTJ* (MG7+1) CHRPIC_^1_(ENA_!3_^1_(STA- ACC,I_^1MG9_$RTJ* ACTPIC_+FIND ACTUAL START_^1_(INA_!-$7F_^1_(SAZ_!1_^1_(JMP* MG9_^1_(LDA- CS,I_^1€€_(INA_!-1_^1_(STA- CS,I_^1_(SAZ_!1_^1_(JMP* MG9_^1_(STA- NULSW,I_^1MG10_#RTJ* ACTPIC_^1_(LDQ- NULSW,I_^1_(INA_!-$7F_^1_(SAN_!4_^1_(SQN_!2_^1_(RTJ* (MG6+1) NEWPUT PUT ZERO FOR NULL PARAM_^1_(SAM_!6_,ERROR_^1_(JMP* MG7_^1_(RAO- NULSW,I_^1_(INA_!$7F_^1_(RTJ* (MG6+1) NEWPUT_^1_(SAM_!1_^1_(JMP* MG10_^1_(ENQ_!1_^1_(RTJ_!MER_^1MG2A_#RTJ_!CRPUT_^1_(JMP_!CONAB_^1ACTPIC_!ADC_!0_^1_€€(RAO- ACC,I_^1_(ENA_!0_^1_(LDQ- ACC,I_^1_(LRS_!1_^1_(LDQ* (MACGET+1),Q ACTBL_^1_(SAZ_!1_^1_(QLS_!8_^1_(QRS_!8_^1_(TRQ_!A_^1_(JMP* (ACTPIC)_^1SKLGET_!ADC_!0_^1_(LDQ+ ACTBL+1_%GET SKL PTR_^1_(SAZ_!SKLG2-*-1_#SYS MACRO_^1_(TRQ_!A_^1_(ADD- SKSCST,I_^1_(TRA_!Q_^1_(LDA* MG14+1 INSKBF_^1_(RTJ* (E2+3) DIN_^1_%RAO* (SKLGET+2)_%BUMP SKELETON POINTER_,45*776_^1_%RAO* (SKLGET+2)_H45*77€€6_^1_(JMP* SKLG1_^1SKLG2_"INQ_!1_^1_%RTJ GTFILS_^1_(ADC_!INSKBF_^1_%ENA 96_P45*776_^1_(ADD* (SKLGET+2)_"UP SKEL PTR_^1_(STA* (SKLGET+2)_"FOR NEXT SKEL_^1SKLG1 JMP* (SKLGET)_J45*776_^1_%ENT_#MCNAM_^1MCNAM NUM_#0,0,0_^1MN_#NOP_#0_^1_%ENQ_#2_^1MN1_"STA*_"MCNAM_^1_%INQ_#-1_^1_%SQM_#1_^1_%JMP*_"MN1_^1_%JMP*_"(MN)_^1ENDMAC_!LDA- DC,I_^1_%SAZ_#E3_^1_(INA_!-1_^1_(STA- DC,I_^1_(STA€€- MSW1,I_^1_(SAN_!E1-*-1_^1E3_#RTJ*_"MN_^1_(JMP+ CONAC_^1E1_%LDQ- ACSECT,I_$BRING IN ACTBL FROM MS_^1_%INQ -2_^1_(STQ- ACSECT,I_^1E2_%LDA_!=XACTBL_^1_(RTJ+ DIN_^1_(LDA* (E2+1) ACTBL_^1_(ENQ_!0_^1_(LLS_!8_^1_(ARS_!8_^1_(STA- PM,I_^1_%SQZ GFL1-*-2_J45*776_^1_(LDQ* (SKLGET+2)_^1_%SAN 1_Q45*776_^1_%INQ -94_O45*776_^1_%INQ -2_P45*776_^1_(STQ* (SKLGET+2)_^1_(RTJ* SKLGET_^1€€_(JMP* E1-2_^1GFL1_#ADC_!0_^1*_]_^1*_$THIS ROUTINE WILL ONLY BE USED TO GET DATA_^1*_$FROM THE MACROS DIRECTORY. SEE GTFILS FOR MACSKL._^1*_]_^1GTFIL_"ADC_!0_^1_(STQ* GFILE+5_%STARTING WORD_^1_(INQ_!95_^1_(STQ* GFILE+7_%ENDING WORD_^1_(INA_!-1_^1_(STA* GFILE+8_%NAME OF FILE PTR_^1_(LDA* (GTFIL)_%BUFFER ADDR_^1_(RAO* GTFIL_^1_(STA* GFILE+6_^1_(ENA_!0_^1_(STA- CSW,I_^1*_]_^1*€€_$DO NOT ZERO OUT MSB / LSB. THIS WILL ALLOW DIRECT ACCESS_^1*_$AFTER THE FIRST REFERENCE._^1*_]_^1GFILE RTJ- (REQPRO)_$GTFILE REQUEST._^1_(NUM_!$5A00_I**MSOS 4.0_^1_(ADC_!CO_^1_(ADC_!0_^1_(ADC_!$8C2_^1_(ADC_!0_^1_(ADC_!0_^1_(ADC_!0_^1_(ADC_!0_^1_(ADC_!0_^1_(ADC_!0_^1_(LDA- CSW,I_^1_(SAN_!1_^1_(JMP* *-2_^1_(JMP* (GTFIL)_^1MACROS ALF_!3,MACROS_H**MSOS 4.0_^1DOUT_#ADC_!0_^1_(STA€€* DISKWR+6_^1_(STQ* DISKWR+8_^1_(ENA_!0_^1_(STA- CSW,I_^1DISKWR RTJ- (REQPRO)_$FWRITE REQUEST._^1_(ADC_!$4C00_I**MSOS 4.0_^1_(ADC_!CO_^1_(ADC_!0_^1_%VFD N3/0,N1/0,N2/2,X10/STDSCR_^1DISKW5_!NUM_%96_^1_(ADC_!0_^1_(ADC_!0_^1_(ADC_!0_^1_(LDA- CSW,I_^1_(SAN_!1_^1_(JMP* *-2_^1_(ENA_!96_^1_(STA* DISKWR+5_^1_(JMP* (DOUT)_^1DIN_$ADC_!0_^1_(STA* DISKRD+6_^1_(STQ* DISKRD+8_^1_(ENA_!€€0_^1_(STA- CSW,I_^1DISKRD RTJ- (REQPRO)_$FREAD REQUEST._^1_(ADC_!$4800_I**MSOS 4.0_^1_(ADC_!CO_^1_(ADC_!0_^1_%VFD N3/0,N1/0,N2/2,X10/STDSCR_^1_(NUM_!96_^1_(ADC_!0_^1_(ADC_!0_^1_(ADC_!0_^1_(LDA- CSW,I_^1_(SAN_!1_^1_(JMP* *-2_^1_(JMP* (DIN)_^1OPT_"ENA 0_^1_%ENQ 4_QMSOS4.1_^1_(STA_!L,Q_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-4_^1_%LDA- CT,I_)FIND 1ST NON-BLANK_^1_%INA_#-1_0CHARACTER€€_^1_%STA-_"CT,I_.ON OPT CARD_^1OB_#RAO-_"AF,I_^1_%RTJ*_"(O1+1)_,TO CHPU_^1_%SQM_#OTT_/BLANK OPT CARD_^1_%INQ_#-$20_^1_%SQN_#1_^1_%JMP*_"OB_^1_%INQ_#$20_^1_%INQ -$D_*IS IT A CARRIAGE RETURN_^1_%SQZ OTT_*YES, GO GET OPTIONS FROM STDOCD_^1_%INQ $D_+NO, MUST BE A VALID CHARACTER_^1_%JMP*_"O1+2_.GO TO ANALIZE NON-BLANK_^1OTT_"RTJ-_"(REQPRO)_*REQUEST OPTIONS FROM TTY_^1OTT1_#NUM_!$4C0€€0_I**MSOS 4.0_^1_(ADC_!0_^1_(ADC_!0_^1_%VFD N3/0,N1/1,N2/2,X10/STDOCD_^1_(ADC_!4_^1_(ADC_!OPTS_^1_(ENA_!-0_^1_(ENQ_!40_^1_(STA* (O22),Q_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-3_^1_(ENA_!0_^1_(STA- CSW,I_^1_%RTJ- (REQPRO)_$FREAD REQUEST._^1_(ADC_!$4800_I**MSOS 4.0_^1_(ADC_!CO_^1_(ADC_!0_^1_%VFD N3/0,N1/1,N2/2,X10/STDICD_^1_(NUM_!40_^1O22_$ADC_!INBUF_^1_(LDA* *-1_^1_(STA- INPADR,I_€€^1_(LDA- CSW,I_^1_(SAN_!1_^1_(JMP* *-2_^1_(RAO- AF,I_^1_(ENA_!-1_^1_(STA- CT,I_^1O1_%RTJ_!CHPU_^1_(SQP_!1_^1_(JMP* OX_^1_(STQ- CS,I_^1_%ENQ 4_QMSOS4.1_^1O11_"LDA- CS,I_^1_(SUB* OT,Q_^1_(SAZ_!O3-*-1_'FOUND_^1_(INQ_!-1_^1_(SQM_!1_^1_%JMP* O11_^1_(LDA- CS,I_^1_%INA_#-$49_.I OPTION_^1_%SAZ_#OI_^1_%INA_#8_1A OPTION_^1_%SAN_#OI-1_.NO_^1_%JMP- (DISP)_'EXIT_^1O3_%RAO_!L,Q_*SET CHR€€_^1_(JMP* O1_^1OI_#RAO-_"AF,I_^1_%RTJ*_"(O1+1)_,TO CHPU_^1_%SQP_#1_^1_%JMP*_"OLU_/END OF OPTIONS GET LUN_^1_%INQ_#-$21_/TERMINATOR_^1_%SQM_#2_2YES--GETLUN_^1_%INQ_#$21-$2C_,COMMA_^1_%SQN_#1_^1_%JMP*_"OLU_^1_%INQ_#-4_^1_%SQP_#1_^1_%JMP*_"OI_+NOT NUMERIC, IGNORE CHARACTER_^1_%INQ_#-$11_^1_%SQP_#OLU-1_(ALPHA--GET LUN_^1_%INQ_#$11-$A_^1_%SQM_#1_^1_%JMP*_"OI_+NOT NUMERIC, IGNORE CHARAC€€TER_^1_%INQ_#$A_^1_%LDA*_"HOLD_.SECOND NUMBER_^1_%SAZ_#OB1_^1_%LDA*_"HOLD+1_^1_%SAP_#1_^1_%STQ*_"HOLD+1_^1_%JMP*_"OI_^1OB1_"STQ*_"HOLD_)NO--STORE 1ST NUMBER AND_^1_%JMP*_"OI_+SEE IF THERE'S ANOTHER_^1_%INQ_#$41_^1OLU_"STQ-_"CS,I_)SAVE NEXT CHARACTER_^1_%CLR_#A_,GET DECIMAL VALUE OF LU_^1_%LDQ*_"HOLD+1_^1_%SQM_#OI2_^1_%LDA*_"HOLD_^1_%STQ*_"HOLD_^1_%MUI_#=N10_^1OI2_"ADD*_"HOLD_^1_%AD€€D-_"$2F_*SET ASCII MODE BIT_^1OI1_"STA_#READI_(STUFF READ REQUEST LU_^1_%LDQ-_"CS,I_^1_%SQM OX_^1_%JMP*_"O1+2_^1OX_#ENA 0_^1_(STA- LN,I_^1_(STA- AF,I_^1_(STA- FSTM,I_^1_(RAO_!FST_^1_(LDA_!=N$5555_^1_(STA- BUFFSW,I_^1_(ENA_!$30_*SET SEQ TO ZERO_^1_(ENQ_!4_^1_(STA- SQ,B_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-3_^1_%JMP P1D_O75*1837_^1HOLD_!NUM_#0,-0_)HOLDER FOR I OPTION_^1OT_#NUM €€ $4C,$50,$58,$43,$4D_?MSOS4.1_^1OPTS_#ALF_!4,OPTIONS_^1_%BZS TMINPA,TMLN,TMAF,TMFSTM_;MSOS4.1_^1_%BZS TMPBUF(96)_HMSOS4.1_^1ABRT_!ALF 6,INPUT ERROR_^1CO_%ENQ_!1_^1_(STQ_!CONS+CSW_^1_%JMP- (DISP)_'EXIT_^1RCO_"SQM RCO1_)TEST FOR ERROR ON INPUT_^1_(INQ_!1_^1_(STQ_!CONS+RCS_^1_(JMP* CO+3_^1RCO1_!STQ CONS+RCS_^1_%LDA- $F9_*STANDARD INPUT DEVICE_.**MSOS 4.0_^1_%STA* DEVICE_K**MSOS €€4.0_^1_%RTJ- (REQPRO)_$STATUS STANDARD INPUT DEVICE_'**MSOS 4.0_^1_%NUM $4600_^1DEVICE NUM 0_P**MSOS 4.0_^1_%NUM 0_P**MSOS 4.0_^1_%ALS 4_,BIT 11 IS END OF FILE INDICATOR_#**MSOS 4.0_^1_%SAP 1_,POSITIVE MEAN AN ERROR CONDITION OCCURRED 4.0_^1_%JMP- (DISP)_K**MSOS 4.0_^1_%ENA 6_^1_%STA OTT+5_^1_%LDA =XABRT_^1_%STA OTT+6_^1_%RTJ- (REQPRO)_$OUTPUT ERROR MESSAGE._^1_(ADC_!$6000€€_I**MSOS 4.0_^1_(ADC_!OTT1_J**MSOS 4.0_^1_%JMP* CO+3_^1*_]_^1*_$THIS ROUTINE HANDLES REQUESTS FOR DATA WHICH IS_^1*_$REQUIRED FROM THE FILE, MACSKL_^1*_]_^1GTFILS NUM 0_,ENTRY_^1_%STQ* SKLNUM_^1_%LDA* ZONSIZ_'CHECK FOR FIRST ENTRY_0120*4631_^1_%SAZ RDSK_O120*4631_^1CHKIN LDA* GFW1_)FW OF SKELETON IN CORE_/120*4631_^1_%TRA Q_R120*4631_^1_%ADD* ZONSIZ_'SIZE IN CORE_9120*4631_^1_%€€RTJ* COMPV4_'CHECK IF SUM EXCEEDS 65K_-120*4631_^1_%INA 0_R120*4631_^1_%SAN CHKIN1_M120*4631_^1_%ENA -2_+UPPER BOUND IF SUM EXCEEDS 65K_'120*4631_^1_%JMP* CHKIN2_M120*4631_^1CHKIN1 LDA* GFW1_O120*4631_^1_%ADD* ZONSIZ_M120*4631_^1CHKIN2 LDQ* SKLNUM_M120*4631_^1_%RTJ* COMPV4_'COMPARE WITH UPPER BOUND_-120*4631_^1_%INA 0_R120*4631_^1_%SAN OKHI_)IN BOUNDS_<120*4631_^1RDSK_!JMP* RE€€ADSK_'TOO HIGH, READ IN NEW BLOCK_*120*4631_^1OKHI_!LDQ* GFW1_)FW OF SKELETON IN CORE_/120*4631_^1_%LDA* SKLNUM_'INDEX OF SKELETON_4120*4631_^1_%RTJ* COMPV4_'COMPARE WITH LOWER BOUND_-120*4631_^1_%SAZ OKISIN_'LOW BOUND OK_9120*4631_^1_%INA 0_R120*4631_^1_%SAN OKISIN_'LOW BOUND OK_9120*4631_^1_%JMP* READSK_'TOO LOW, GO READ IN NEXT BLOCK_'120*4631_^1OKISIN ADD* ADZONE_'ADDRESS OF€€ SOURCE_4120*4631_^1_%STA* ADRSOU_^1_%LDA* (GTFILS)_$GET DESTINATION ADDRESS_^1_%RAO* GTFILS_'BUMP RETURN ADDRESS_^1_%STA* ADRDES_^1_%ENQ 95_^1COPYIT LDA* (ADRSOU),Q_"COPY TO_^1_%STA* (ADRDES),Q_"USER AREA_^1_%INQ -1_^1_%SQM 1_,DONE COPY_^1_%JMP* COPYIT_'LOOP COPY_^1_%JMP* (GTFILS)_$RETURN TO CALLER_^1COMPV4 NOP 0_,SECTION TO COMPARE ADDRESSES_)120*4631_^1_%SAM AUPPER_'A IN UP€€PER BANK_6120*4631_^1_%SQP BTHSAM_'BOTH IN LOWER BANK_3120*4631_^1_%JMP* QBIGR_(A IN LOWER, Q IN UPPER_/120*4631_^1AUPPER SQM BTHSAM_'BOTH IN UPPER_8120*4631_^1_%TCQ Q_,A IN UPPER, Q IN LOWER_/120*4631_^1_%AAQ A_,GET DIFFERENCE IN A_2120*4631_^1_%JMP* ABIGR_N120*4631_^1BTHSAM TCQ Q_R120*4631_^1_%AAQ A_,SUBTRACT Q FROM A_4120*4631_^1_%SAP ABIGR_O120*4631_^1QBIGR SET A_,Q IS €€BIGGER_:120*4631_^1ABIGR JMP* (COMPV4)_K120*4631_^1_%SPC 3_R120*4631_^1*_$COME HERE TO READ BLOCK OF SKELTON_^1READSK LDA* GFLSB_^1_%SAZ CMPTZS_'FIRST REQUEST,_^1_%JMP* GSETUP_^1CMPTZS LDA =XDIRBUF_$COMPUTE ZONE SIZE_^1_%SUB* ADZONE_'NO WORDS AVAILABLE BETWEEN ASSEM/COMMON_^1_%SAP 1_,LESS THAN $7FFF_^1_%LDA- $11_*BIGGER, START WITH $7FFF_^1_%CLR Q_^1_%DVI =N96_)NO FULL SECTO€€RS_^1_%MUI* *-1_*TOTAL WORDS FOR FULL SECTORS_^1_%SAN 1_^1_%ENA 96_+MAKE ZONE SIZE = 96, NO ZONE_^1_%STA* ZONSIZ_'SAVE ZONE SIZE_^1_%INA -96_^1_%LDQ =XINSKBF_$MAKE ZONE IN INSKBF, ONLY 1 SECTOR_^1_%SAN 1_,MORE THAN 1 SECTOR_^1_%STQ* ADZONE_'CHANGE ADDRESS OF ZONE TO INSKBUF_^1GSETUP LDQ* GFLSB_(FLAG = 0, FIRST REF. GET 1 SECTOR_^1_%SQN FULBLK_^1_%ENA 1_,FIRST REF. READ FIRST€€ SECTOR_^1_%STA* GFW1_^1_%INA 96_+BUMP BY 96 FOR 1SECOTR_^1_%JMP* STRW2_(GO STORE W2_^1FULBLK LDA* SKLNUM_'GET REQUIRED FWA_^1_%STA* GFW1_^1_%ADD* ZONSIZ_'NO WORDS_^1STRW2 INA -1_^1_%STA* GFW2_)FINAL WORD OF XFER_^1_%SAM STGFW2_'FINAL WORD OF XFER OK_^1_%LDA* GFW1_)CHECK TO SEE IF LAST WORD EXCEEDS 65K_^1_%SAP STGFW2_'NO, OK_^1_%ENA -2_+YES, MAKE FINAL WORD OF_^1_%STA* GFW2_)€€XFER MAXIMUM FILE LENGTH_^1STGFW2 ENA 0_^1_%STA- CSW,I_(CLEAR I/O COMPLETION FLAG_^1_%RTJ- (REQPRO)_$MON_^1GFILSK NUM $5A00_(GETFILE REQUEST CODE_^1_%ADC CO_+COMPLETION_^1_%ADC 0_,THREAD_^1_%NUM $8C2_)LU_^1GFW1_!NUM 0_,W1_^1ADZONE ADC ZONE_)S_^1GFW2_!NUM 0_,W2_^1_%ADC MCSKAL-GFILSK INCREMENT TO ASCII NAME_^1_%NUM 0_,MSB_^1GFLSB NUM 0_,LSB_^1_%LDA- CSW,I_(COMPL FLAG_^1_%€€SAN 1_,DONE_^1_%JMP* *-2_*LOOP FOR DONE_^1_%SQN 1_,NOT FIRST REQUEST_^1_%JMP* GSETUP_'DO AGAIN ALL OF IT_^1_%LDQ* SKLNUM_^1_%JMP* CHKIN_(GO SET UP TO COPY_^1*_]_^1*_$WORKING AREA / CONSTANTS_^1*_]_^1MCSKAL ALF 3,MACSKL_$ASCII NAME OF FILE_^1*_]_^1ADRSOU ADC 0_,ADDRESS SOURCE_^1ADRDES ADC 0_,ADDRESS DESTINATION_^1ZONSIZ ADC 0_,ZONE SIZE (DIRBUF-ZONE/96*96)_^1SKLNUM NUM 0_,WOR€€D ADDRESS OF SKELETON USER NEEDS_^1*_]_^1*_$THE AREA FROM HERE TO THE BEGINNING OF COMMON_^1*_$WILL BE USED TO BUFFER MACSKL IN CORE, TO THE_^1*_$MAXIMUM EXTENT POSSIBLE_^1*_]_^1ZONE_!BZS ZONE(1)_%MUST BE THE LAST CODE LINE IN PROGRAM_^1_(END_^__ €€PASS2 CSY/ €€1_%NAM PASS2_(DECK-ID A04 MACRO ASSEMBLER_%SUMMARY-162_^1*_$MASS STORAGE OPERATING SYSTEM VERSION 5.0_^1*_$SMALL SYSTEMS DIVISION, LA JOLLA, CALIFORNIA_^1*_$COPYRIGHT CONTROL DATA CORPORATION 1976_^1*_'PROGRAM BASE-MACRO ASSEMBLER 2.0_4**MSOS 4.0_^1_(ENT_%PASS2_^1_%ENT_!PCO,IFR_^1PS_#EQU PS(2)_(TO READ IN PASS 3._^1STDLGO EQU STDLGO($E4)_^1REQPRO EQU REQPRO($F4)_^1STDOUT EQU €€STDOUT($FA)_^1STDPRT EQU STDPRT($FB)_^1STDOCD EQU STDOCD($FC)_^1DISP_!EQU DISP($EA)_^1_%SPC 2_^1*_$NOTE - CHANGES FLAGGED $ $ $ IN NAM AND END ARE TO PUNCH THE_^1*_,PROGRAM I.D. NUMBER IN THE NAM BLOCK._^1_%SPC 2_^1ASSEM_"ENQ_!PS_^1_(SQP_!MA1-*-1_^1_(ENA_!0_^1_(STA_!FST_^1_%ENQ 4_QMSOS4.1_^1_%STA APASS1,Q_JMSOS4.1_^1_%STA PS1W2,Q_KMSOS4.1_^1_%SQZ 2_QMSOS4.1_^1_%INQ -1_PMS€€OS4.1_^1_%JMP* *-6_OMSOS4.1_^1MA1_$LDA_!=XPS1ALF-FILE-1_?**MSOS 4.0_^1_(JMP* *+1,Q_^1_(INA_!-3_^1_(INA_!-3_^1_(INA_!-3_^1_%INA -3_PMSOS4.1_^1_%INA 12_PMSOS4.1_^1GETFIL_!STA* FILE+8_^1_(ENA_!0_^1_(STA* FILE1_^1*_81 CARD DELETED_6MSOS4.1_^1_(STA* CSWW_^1_%ENQ PS_PMSOS4.1_^1_%LDA APASS1,Q_JMSOS4.1_^1_%STA* FILE2_MMSOS4.1_^1_%LDA PS1W2,Q_KMSOS4.1_^1_%STA* FILE+7_LMSOS4.1_^1FILE€€_!RTJ- (REQPRO)_$GTFILE REQUEST._^1_(NUM_!$5A00_I**MSOS 4.0_^1_(ADC_!COO_^1_%ADC 0_^1_(ADC_!$8C2_^1_%ADC 1_^1_(ADC_!ASSEM_^1_%NUM 0_QMSOS4.1_^1*_9IF PASS3 IS CHANGED********_^1_(ADC_!0_^1FILE1_"ADC_!0_^1FILE2_"ADC_!0_^1_(LDA* CSWW_^1_(SAN_!1_^1_(JMP* *-2_^1_%ENQ PS_PMSOS4.1_^1_%LDA* FILE2_MMSOS4.1_^1_%STA APASS1-1,Q_HMSOS4.1_^1_%LDA* FILE+7_LMSOS4.1_^1_%STA PS1W2-1,Q_IMSOS4€€.1_^1_(RTJ* *+1_^1ASSEM1_!ADC_!0_^1_(LDA* ASSEM1_^1_(SUB* ASMADC_^1_(SAN_!1_^1_(JMP* ENDASB_^1_%LDA* ASSEM1_'SET STARTING ADDRESS IN REQUEST_'68*1500_^1_%INA APUNT1_'ABSOLUTE ADDRESS OF PUNT1_-68*1500_^1_%STA* APUNT_O68*1500_^1_%RTJ- (REQPRO)_$FWRITE REQUEST._^1_(ADC_!$4C00_I**MSOS 4.0_^1_(ADC_!0_^1_(ADC_!0_^1_%VFD N3/0,N1/1,N2/2,X10/STDOCD_^1_(ADC_!6_^1APUNT ADC_#0_P68*1500€€_^1_%JMP- (DISP)_'EXIT_^1PUNT1_"ALF_!6,ABS BASE ERR_^1APUNT1 EQU APUNT1(PUNT1-ASSEM1)_@68*1500_^1ASMADC_!ADC_!ASSEM1_^1_(BZS_!CSWW_^1COO_$ENA_!1_^1_(STA* CSWW_^1_%JMP- (DISP)_'EXIT_^1PS1ALF ALF 3,PASS1_^1PS2ALF ALF 3,PASS2_^1PS3ALF ALF 3,PASS3_^1PS4ALF_!ALF 3,TABLST_G**MSOS 4.0_^1PS5ALF ALF 3,XREF_LMSOS4.1_^1MA5_"NUM $C74_^1_(EQU_!ENDASB(MA5+1)_^1_%SPC 2_^1****************€€************************************_*MSOS4.1_^1*_Q*_*MSOS4.1_^1*_Q*_*MSOS4.1_^1*_*CHANGE THE FOLLOWING EQUATE_+*_*MSOS4.1_^1*_*IF THE LENGTH OF ANY PART OF_**_*MSOS4.1_^1*_*PASS3 CHANGES_9*_*MSOS4.1_^1_%EQU LPASS3($107F)_^1****************************************************_*MSOS4.1_^1_%SPC 2_^1_%EQU PASS3L(LPASS3/96*96+96)_;MSOS4.1_^1_%SPC 1_^1PASS2_"LDA_%=XCONS_^1_(STA- I_€€^1_%LDA =XPASS3L_JMSOS4.1_^1_(ADD_%=XASSEM+1_^1_(STA-_$ST,I_^1_%LDA- I_^1_%SUB- ST,I_^1_%SAP BB_+SKIP IF LESS THAN $8000_^1_%LDA- I_^1_%SUB- $11_*$7FFF_^1_%STA- ST,I_)SET LENGTH OF SYMBOL TABLE TO $7FFF_^1BB_#EQU BB(*)_^1_(ENA_%1_^1_(STA-_$TSW,I_^1_(STA-_$CSW,I_^1_(STA-_$PSW,I_^1_(LDA_%ILSCST_^1_%INA -2_^1_(STA-_$SECTNO,I_,TEMP ***_^1_(LDA_%=XCONS_^1_(STA- ET,I_"EXTERNAL TBL €€ADDR_^1_(SUB-_$ST,I_^1_(STA-_$WMS,I_/NO OF WORDS IN SYMTAB_^1_(RTJ_%ZSYTAB_.ZERO SYMBOL TABLE_^1_(LDA-_$WMS,I_^1_(ENQ_%0_^1_(DVI_%=N96_^1_(SQZ_%1_^1_(INA_%1_^1_(STA-_$SCOUNT,I_,NO. SECTORS FOR SYMTAB_^1_%LDA+ ILSCND_^1_(STA-_$CSYSCT,I_,CURRENT SECTOR NO._^1CD_%LDQ_%=XSL-XSYSCT_^1_(ENA_%0_^1_(STA-_$XSYSCT,B_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-3_^1_(LDA_!=N$240_^1_(STA- LA,I_^1_(LDA_€€!=N$FF_^1_(ENQ_!0_^1_(STQ- LA+3,I_^1_(RTJ_!SYPT_^1_(ENA_%1_^1_(STA-_$RM,I_^1_(LDA_%=N$2020_^1_(STA_%NAMC_^1_(STA_%NAMC+1_^1_(STA_%NAMC+2_^1NEXT_#ENA_%0_^1_(ENQ_%14_^1_(STA-_$DX,B_^1_(INQ_%-1_^1_(SQM_%1_^1_(JMP*_$NEXT+2_^1_(STA-_$LP,I_^1GETIM_"RTJ* RDIM_^1_(ALS_%3_^1_(SAP_%1_^1_(JMP*_!GETIM_^1_(ENA_%-1_^1_(STA-_$CT,I_^1_(JMP_%LBPK_^1IFR_"JMP+_!NEXT_+DO NOTHING THIS PASS_^1RDIM_#AD€€C_%0_^1_(LDA*_$RZ+1_^1_(LDQ-_$BS,I_^1_(SQZ_%1_^1_(INA_%48_^1_(STA*_$IM_^1_(STA IMJ_M**MSOS 4.0_^1_(ENA_%0_^1_(SQZ_%2_3READ IN_^1_(STA-_$BS,I_0FLIP BUFFER SWITCH_^1_(JMP*_$RZ1_^1_(STA-_$CSW,I_^1_(RAO-_$BS,I_^1RZ_%LDA_%=XIB_^1_(LDQ-_$SECTNO,I_^1_%INQ 2_^1_(STQ-_$SECTNO,I_^1_(RTJ+_$DIN_^1RZ1_$ENQ_%41_^1_(LDA*_$(IM),Q_^1_(SAZ_%1_^1_(STA-_$LN,I_0STORE LINE NO_^1_(INQ_%1_^1_(LDA*_$(IM),€€Q_^1_(STA-_$IL,I_0IL FLAG BITS_^1_(JMP*_$(RDIM)_^1PRNT_#ADC_%0_^1_(LDA_%L_^1_(SAN_%3_^1_(LDA_%=N$18FC_^1_(STA*_$WRT1_^1_(RTJ*_$WRIT_^1_(JMP*_$(PRNT)_^1_(BZS_%IM(1),IB(96)_^1WRIT_#ADC_%0_^1_%RTJ- (REQPRO)_$FWRITE REQUEST._^1_(NUM_!$4C00_I**MSOS 4.0_^1_(ADC_%COT_^1_(ADC_%0_^1WRT1_!VFD N3/0,N1/1,N2/2,X10/STDPRT_^1_(ADC_%10_^1_(ADC_%CONS+PB_^1_(JMP*_$(WRIT)_^1ER_%ADC_%0_^1_(RAO_%ERC_^€€1PD_%LDA-_$TSW,I_^1_(SAN_%1_^1_(JMP*_$PD_^1_(ENA_%0_^1_(STA-_$TSW,I_^1_(LDQ*_$ERT,Q_^1_(STQ-_$ES,I_^1_(STQ-_$PB+4,I_^1_(RTJ*_$DECV_^1_(STQ-_$PB+1,I_^1_(STA-_$PB+2,I_^1_(LDA_%=A**_^1_(STA-_$PB+3,I_^1_(STA-_$PB,I_^1_(ENQ_%4_^1_(STA-_$PB+5,B_^1_(SQZ_%2_^1_(INQ_%-1_^1_(JMP*_$*-3_^1_(RTJ+_$PRNT_^1_(ENA_!0_^1_(STA- ES,I_^1_(STA- RC,I_^1_(ENQ_%42_^1ERIM_#LDA_!(IM),Q_#SET ERROR BIT IN IL€€_0**MSOS 4.0_^1_(AND_%=N$DFFF_^1_(EOR_%=N$2000_^1_(STA_!(IM),Q_H**MSOS 4.0_^1_(LDA_%=XIB_^1_(LDQ-_$SECTNO,I_^1_(RTJ+_$DOUT_^1_(JMP* (ER)_^1DECV_#ADC_!0_0NUMBER TO CONVERT IN A_^1_(ENA_!0_%THIS ROUTINE CONVERTS THE_^1_(STA- TR,I_"BINARY LINE NUMBER TO ASCII_^1_(ENQ_%4_^1_(LDA- LN,I_"OUTPUT IS 3 DIGITS IN QA WITH_^1DECVA INA -10_*A TRAILING BLANK_^1_(SAM_!2_^1_(RAO- TR,I_^1_%JM€€P* DECVA_^1_(INA_!58_$ADD BACK 10 PLUS HEX 30 TO_^1_(STA- TR,B_-MAKE ASCII CHAR_^1_(LDA- TR,I_^1_(STA-_$TR+5,I_^1_(ENA_!0_^1_(STA- TR,I_^1_(LDA-_$TR+5,I_^1_(INQ_!-1_^1_(SQZ_!1_^1_%JMP* DECVA_^1_(LDQ- TR+1,I_^1_(QLS_!8_^1_(ADQ- TR+2,I_^1_(LDA- TR+3,I_^1_(ALS_!8_^1_(ADD_%TR+4,I_^1_(JMP* (DECV)_^1COT_$INQ_%1_^1_(STQ_%CONS+TSW_^1_%JMP- (DISP)_'EXIT_^1COP_$INQ_!1_^1_(STQ_!CONS+PS€€W_^1_%JMP- (DISP) EXIT_^1ERT_$ALF_!1,DS_^1_(ALF_!1,EX_^1_(ALF_!1,LB_^1_(ALF_%1,PP_^1_(ALF_!1,OP_^1_(ALF_!1,RG_^1_(ALF_!1,RL_^1_(ALF_!1,OV_^1_(ALF_!1,UD_^1_(ALF_%1,MO_^1*_'HOLDERS AND SWITCHES FOR PASS 2_^1*_1ST MUST BE FIRST_^1_(EQU_%ST(1),ET(ST+1),PSW(ET+1),PB(PSW+1)_^1_%EQU DSW(PB+49),DSWW(DSW+1)_^1_%EQU TSW(DSWW+1),CSW(TSW+1),SECTNO(CSW+1)_^1_%EQU PNAM(SECTNO+1)_^1_%EQU WMS(€€PNAM+3),CSYSCT(WMS+1)_^1_(EQU_%SCOUNT(CSYSCT+1),XSYSCT(SCOUNT+1)_^1_(EQU_%CC(XSYSCT+1),DC(CC+1)_^1_(EQU_%PC(DC+1),DX(PC+1),LA(DX+2),W1(LA+4),W2(W1+1)_^1_(EQU_%AD(W2+1),AF(AD+1),AM(AF+1),CL(AM+1),EX(CL+1)_^1_(EQU_%RC(EX+1),AX(RC+1),LC(AX+1),AU(LC+1),AR(AU+1)_^1_(EQU_%TR(AR+1),SY(TR+7),NU(SY+4),SG(NU+1),RP(SG+1)_^1_(EQU_%HX(RP+1),XMOD(HX+1),LT(XMOD+1),ES(LT+1),LP(ES+1)_^1_(EQU_%IG(LP€€+1),NS(IG+1),IS(NS+1),CT(IS+1),CS(CT+1)_^1_(EQU_%IL(CS+1),MD(IL+1),ID(MD+1),SKF(ID+1)_^1_(EQU_%BS(SKF+1)_^1_%EQU AUB(BS+1)_^1_%EQU UB(AUB+57)_^1_(EQU_!LN(UB+57),OR(LN+1),OC(OR+1)_^1_(EQU_!AS(OC+1),SC(AS+1),SS(SC+1)_^1_(EQU_%WC(SS+1),RM(WC+1)_^1_(EQU_%YL(RM+1),SZ(YL+1)_^1_(EQU_%PER(SZ+1)_^1_(EQU_%VBT(PER+1),VMS(VBT+1),IFNAM(VMS+1)_^1_(EQU_%MPSW(IFNAM+1)_^1_(EQU_%VCT(MPSW+1),VWD(VC€€T+1)_^1_(EQU_%AX16(VWD+1)_^1_(EQU_%ETSAVE(AX16+1)_^1_(EQU_%DVFL(ETSAVE+1)_^1_(EQU_%PAGL(DVFL+1)_^1_(EQU_%SL(PAGL+1)_^1_(COM_%CONS(SL+1)_^1_(COM_%FST_^1_%COM L,P,X,C,MM,ILSCST,SRSCST,ILSCND_3MSOS4.1_^1_(COM_%ERC_^1_%COM LGSECT_^1_%COM SYRFTS(96)_"SECT.REF.TBL.SYMBOLS_0MSOS4.1_^1_%COM SYCADM_'ADDR.TO SECT.REF.TBL.SYMBOLS_(MSOS4.1_^1_%COM SYEXT_MMSOS4.1_^1_%COM SYINDM_LMSOS4.1_^€€1_%COM SYTRFM_'ENTRY ADDR.REF.TBL.SYMBOLS_*MSOS4.1_^1_%COM SYTRFD_'1ST ADDR.REF.TBL.SYMBOLS-DISK_'MSOS4.1_^1_%COM APASS1,APASS2,APASS3,ATBLST,AXREF,PAGE_,MSOS4.1_^1_%COM PS1W2,PS2W2,PS3W2,PS4W2,PS5W2_5MSOS4.1_^1_(EXT_!ZSYTAB,SYPT,LBPK,DIN,DOUT,OB,N2,D1C_^1_(EXT_!CHPU,RECV,CHPR,D5,TBLIN,RESTBL,SYCH,IMJ_'**MSOS 4.0_^1_%EXT DSKWLN_^1_(ENT_!MOVE,UP1,UP2,ADC,EIF,ALF,NUM,DEC,VFD,ASS€€EM,COP,COT_^1_(ENT_!IFA,IFC,EMC,LST,NLS,NAM1,NAM,AXPR,PRNT,NAMC,ER **MSOS 4.0_^1_(ENT_"NEXT_I**MSOS 4.0_^1_(ENT_%PUNC_^1NAM_$LDA-_$LN,I_^1_(INA_%-1_^1_%SAZ NAMIT-*-1_^1_(ENQ_%4_^1_(RTJ_%ER_^1_(JMP_%OB_^1NAMIT RAO- IG,I_^1_(RTJ*_$(DD+6)_.TO CHPR_^1_(SQN_%1_^1_(STQ-_$SY+1,I_.ZERO NULL FLAG_^1_(SAN_%2_3ERR FROM CHPR_^1_(LDA-_$CS,I_^1_(SAZ_%2_^1_(ENQ_%1_^1_(RTJ*_$(DD+2)_.ERROR_^1_(LD€€Q_!N2_^1_(RTJ* (DD+4) RECONVERT TO 7 BITS_^1_(ENQ_%2_3STORE NAME IN_^1NMT1_!LDA-_"LA,B_^1_(STA*_$NAMC,Q_^1_%STA-_"PNAM,B_^1_(INQ_%-1_^1_(SQM_%1_^1_%JMP*_"NMT1_^1_%ENQ 35_+$$$_C68*1338_^1TXT_"LDA (IM),Q_'$ $ $_^1_%INA 0_,$$$ CHECK FOR -0_459*1186_^1_%SAZ BLKOUT_'$$$_A59*1186_^1_%ALS 8_,$$$_A59*1186_^1_%INA -$D_*$$$_A59*1186_^1_%SAZ BLKOUT_'$$$_A59*1186_^1_%INA $D_+$$$_A59*€€1186_^1_%ALS 8_,$$$_A59*1186_^1_%JMP* *+3_*$$$_A59*1186_^1BLKOUT LDA =A_+$$$ SUBSTITUTE BLANKS FOR FFFF,0D00 59*1186_^1_%STA* NAMC-6,Q_$$ $ $_^1_%INQ -13_*$ $ $_^1_%SQM 2_,$ $ $_^1_%INQ 12_+$ $ $_^1_%JMP* TXT_*$ $ $_^1_(ENQ_%42_^1_(LDA-_$IL,I_0SET READ ONLY IL_^1_(ADD_%=N$1000_-FOR PASS 3_^1_(STA_%(IM),Q_^1_(LDA_%=XIB_^1_(LDQ-_$SECTNO,I_^1_(RTJ+_$DOUT_^1NAM1_#JMP_%NEXT_^1_%BZ€€S NAMC(30)_L68*1338_^1DD_%ADC_%D1C,PRNT,ER,CHPU,RECV,PUNC,CHPR,0_^1_(ADC_%0,UP1,AXPR,0,0,D5,0_^1ALF_$RTJ*_$(DD+13)_-LABEL TO SYMTAB_^1_(RTJ*_$(DD+3)_.TO CHPU_^1_(INA_%$20_^1_(TRA_%Q_^1_(STQ-_$TR+4,I_.SAVE N_^1_(INQ_%-$3A_^1_(SQM_%1_3MAY BE NUMERIC_^1_(JMP*_$DA12_0NOT NUMERIC_^1_(INQ_%$A_^1_(SQP_%1_3NUMERIC_^1_(JMP*_$DA12_0NOT NUMERIC_^1_(LDA-_$CT,I_^1_(INA_%-1_^1_(STA-_$CT,I_0RED€€UCE COL COUNT_^1_(RTJ*_$(DD+6)_.TO CHPR_^1_(SAN_%DA11-*-1_,ERR FROM CHPR_^1_(LDA-_$CS,I_^1_(INA_%-1_^1_(SAN_%DA11-*-1_,ERR - NO COMMA NEXT_^1_%ENA_#72_^1_%SUB-_"CT,I_^1_%ARS_#1_^1_%SUB-_"NU,I_^1_%SAM_#DA11_^1_(LDQ-_$NU,I_^1_(SQZ_%DA11-*-1_,NO COUNT_^1_(RTJ_%UP2_1BUMP PROG CTR_^1DA11_#JMP_%NEXT_^1DA12_#ENA_%0_^1_(STA-_$TR+2,I_^1_(STA-_$TR+3,I_^1_(RAO-_$AF,I_^1_(RTJ*_$(DD+3)_.TO CHPU€€_^1_(INQ_%-$2C_^1_%SQZ DA16-*-1_^1DA1_$ENA_%0_^1_(STA-_$AF,I_0ZERO AF FLAG_^1_(JMP*_$DA11_^1DA16_#RTJ*_$ALFSB2_^1_(JMP*_$DA15_073RD COL OR CR OR MATCH ON N_^1_(JMP*_$*-2_1SPECIAL CHARACTER_^1_(RAO-_$TR+3,I_^1_(LDQ-_$TR+3,I_^1_(LRS_%1_^1_(SAM_%1_^1_(RTJ*_$(DD+9)_.BUMP PROG CTR_^1_(JMP*_$DA16_^1DA15_#LDQ-_$TR+3,I_^1_(LRS_%1_^1_(SAP_%1_^1_(RTJ*_$(DD+9)_.BUMP PROG CTR_^1_(JMP*_$DA1_1E€€XIT_^1ALFSB2_!ADC_%0_^1_(LDA-_$TR+2,I_.SAVE PRECEDING CHARACTER_^1_(STA-_$TR+1,I_^1_(RTJ*_$(DD+3)_.GET NEXT CHARACTER_^1_(STQ-_$TR+2,I_.SAVE IT_^1_(LDA-_$CT,I_^1_(INA_%-72_^1_%SAP ALFXB2-*-1_^1_(TRQ_%A_^1_(INQ_%-$D_^1_(SQZ_%2_3CR_^1_(EOR-_$TR+4,I_.CHECK MATCH ON N_^1_(SAN_%1_^1ALFXB2 JMP* (ALFSB2)_^1_(LDA-_$TR+1,I_^1_(INA_%-$3A_^1_(SAN_%ALF1-*-1_^1_(ENQ_%5_3CHECK FOR SPECIAL_^1ALF€€YB2 LDA- TR+2,I_'CHAR FOLLOWING COLON_^1_(SUB*_$ALFTB2,Q_^1_(SAZ_%3_3FOUND ONE_^1_(SQZ_%ALF1-*-1_,NOT SPECIAL CHAR_^1_(INQ_%-1_^1_%JMP* ALFYB2_^1_(ENQ_%1_^1_(JMP*_$(ALFSB2),Q_*RETURN TO MARK+2_^1ALF1_#ENQ_%2_^1_(JMP*_$(ALFSB2),Q_*EXIT TO MARK+3_^1*_2R_!T_!L_!B_!F_!V_"PASS 2 AND 3_^1ALFTB2_!NUM_%$52,$54,$4C,$42,$46,$56_^1ADC_$RTJ* (DD+13) LABEL TO SYM TABLE_^1_(RAO-_$AD,I_0SET ADC €€FLAG_^1_(ENA_!0_^1_(STA- IS,I_-LEADING SIGN LEGAL_^1DA4_$RTJ*_$(DD+6)_.TO CHPR_^1_(LDA-_$CS,I_^1_(INA_%-2_2LOOP THROUGH CHPR_^1_(SAM_%1_3UNTIL BLANK OR_^1_(JMP*_$DA4_1COMMA ENCOUNTERED_^1_(RTJ_%UP1_^1_(LDA-_$CS,I_^1_(SAZ_%1_^1_(JMP*_$DA4_1GET NEXT FIELD_^1_(JMP_%NEXT_^1NUM_$RTJ* (DD+13) LABEL TO SYM TABLE_^1DA3_$ENA_%0_^1_(STA- IS,I_"LEADING SIGN LEGAL_^1_(RAO-_$NS,I_0SET NUM FL€€AG_^1_(RTJ*_$(DD+6)_.TO CHPR_^1_(SAZ_%3_^1_(SQZ_%2_^1_(ENA_%0_^1_(STA-_$CS,I_^1_(RTJ_%UP1_^1_(LDA-_$CS,I_^1_(SAZ_%3_^1_(INA_%-1_^1_(SAN_%1_^1_(JMP*_$DA3+3_^1NUM1_#ENA_%0_^1_(STA-_$NS,I_^1_(JMP_%NEXT_^1DEC_$RTJ_%D5_'LABEL TO SYM TABLE_^1_(RTJ_%CHPU_^1_(SAZ_%3_^1_(INA_%-$C_^1_(SAZ_%1_^1_(JMP*_$DEC+2_^1_(RTJ_%UP1_^1_(LDA-_$CS,I_^1_(SAZ_%1_^1_(JMP*_$DEC+2_^1_(JMP_%NEXT_^1LST_$ENA_!0_^1€€_(STA- YL,I_^1_(JMP_%NEXT_^1NLS_$RAO- YL,I_^1_(JMP*_$LST+2_^1VFD_$RTJ+_$D5_2PUT AWAY LABEL_^1_(ENA_%0_^1_(STA-_$VBT,I_/ZERO BIT COUNTER_^1VF2C_#STA-_$VMS,I_^1_(RTJ*_$(VFCHPU+1)_*TO CHPU_^1_(SAZ_%VF3C_^1_(INA_%-$C_^1_(SAN_%1_^1_(JMP*_$*-4_^1_(INA_%-$15_^1_(SAZ_%2_3MODE IS A_^1_(RAO-_$VMS,I_^1_(INA_%-$D_^1_(SAZ_%2_3MODE IS N_^1_(RAO-_$VMS,I_^1_(INA_%-$A_^1_(SAZ_%5_^1_(SAN_%2_^1VF3C€€_#LDA-_$VBT,I_^1_(SAZ_%1_3***_^1_(RTJ*_$(VFUP1+1)_+BUMP PROG CTR_^1_(JMP*_$NUM1_0EXIT_^1_(RTJ*_$(IFA5+1)_^1_%SAN VF3CA-*-1_^1_(LDA-_$NU,I_^1_(SAZ_%3_3ERR - N IS NOT A NUMBER_^1_(LDQ-_$CS,I_^1_(INQ_%-5_^1_(SQZ_%1_^1VF3CA JMP* VF3C+2_^1_(LDQ-_$VMS,I_^1_(JMP*_$*+1,Q_^1_(JMP*_$VFA_1MODE IS A_^1_(JMP*_$VFN_1MODE IS N_^1_(INA_%-17_^1_(SAM_%1_^1_(JMP*_$VF3C+2_.ERR,BIT COUNT GREATER THAN€€ 16_^1_(INA_%17_^1_(ADD-_$VBT,I_/ADD N TO BIT COUNTER_^1_(STA-_$VBT,I_^1_(RTJ*_$(VFCHPU+1)_*TO CHPU, SLEW TO_^1_(SAZ_%4_3COMMA OR BLANK_^1_(INA_%-$C_^1_(SAZ_%1_^1_(JMP*_$*-4_^1_(INA_%1_^1_(STA-_$CS,I_^1VF6C_#LDA-_$VBT,I_^1_(INA_%-16_^1_(SAM_%4_^1_(STA-_$VBT,I_^1VFUP1_"RTJ+_$UP1_1BUMP PROG CTR_^1_(JMP*_$VF6C_^1VF5C_#LDA-_$CS,I_^1_(SAZ_%3_^1_(INA_%-1_^1_(SAZ_%2_^1_(JMP*_$VF3C+2_.ILLD€€_^1_(JMP*_$VF3C_^1_(JMP*_$VF2C_^1VFN_$INA_%-17_1MODE IS N_^1_(SAM_%1_^1_(JMP*_$VF3C+2_.ILLEGAL TERMINATORQ_^1_(INA_%17_^1_(ADD-_$VBT,I_^1_(STA-_$VBT,I_^1_(RAO-_$NS,I_^1_(RTJ*_$(IFA5+1)_,TO CHPR_^1_(JMP*_$VF6C_^1_(BZS_%VFA1(1)_-HOLDER FOR N (ASCI VFD)_^1VFA_$STA*_$VFA1_^1_(TRA_%Q_^1_(ENA_%0_^1_(LRS_%3_^1_(SAZ_%1_^1_(JMP*_$VF3C+2_.N NOT A MULTIPLE OF 8_^1_(RAO-_$AF,I_0SET ALF SWITCH€€ FOR CHPU_^1_(ENA_%0_^1_(STA-_$TR+2,I_^1_(TCA_%A_^1_(STA-_$TR+4,I_.SET FOR NO COMPARE IN ALFSB2_^1VF4C_#RTJ_%ALFSB2_.GET NEXT CHAR_^1_(JMP*_$VF3C_073RD COL OR CR_^1_(JMP*_$*-3_^1_(LDA-_$VBT,I_^1_(INA_%8_^1_(STA-_$VBT,I_^1_(INA_%-16_^1_(SAM_%2_^1_(STA-_$VBT,I_^1_(RTJ*_$(VFUP1+1)_+BUMP PROG CTR_^1_(LDA*_$VFA1_^1_(INA_%-8_^1_(STA*_$VFA1_^1_(SAZ_%1_3FINISHED_^1_(JMP*_$VF4C_0GO AGAIN_^1€€_(STA-_$AF,I_^1VFCHPU_!RTJ+_$CHPU_0GET NEXT CHAR_^1_(SAZ_%1_^1_(INA_#-$B_^1_(STA-_$CS,I_^1_(JMP*_$VF5C_^1IFA_$ENA_%0_^1_(STA-_$VBT,I_/USE FOR SUBFIELD COUNT_^1_(STA-_$IS,I_0SET LEADING SIGN LEGAL_^1IFA1_#RTJ+_$AXPR_0EVALUATE EXPRESSION_^1_(SQZ_%2_^1IFA2_#JMP_%NEXT_^1_(LDQ-_$VBT,I_/SAVE EXPRESSION_^1_(STA-_$VMS,B_^1_(LDA-_$CS,I_^1_(AAQ_%A_^1_(SAZ_%2_3ILLEGAL FIELD TERMINATOR_^1_(SQZ€€_%2_^1_(JMP*_$IFA3_0ALL FIELDS PROCESSED_^1_(JMP*_$IFA2_^1_(RAO-_$IS,I_0SET LEADING SIGN ILLEGAL_^1IFA5_#RTJ+_$CHPR_0GET COMPARE CODE_^1_(LDA-_$CS,I_^1_(STA-_$VBT,I_^1_(ADQ-_$SY+1,I_^1_(STQ-_$VCT,I_^1_(INA_%-1_^1_(SAZ_%1_^1_(JMP*_$IFA2_0ERR,NO COMMA NEXT_^1_(JMP*_$IFA+2_/GO GET NEXT FIELD ***_^1IFA3_#ENQ_%3_^1_(LDA-_$VCT,I_^1_(SUB*_$IFTAB,Q_^1_(SAZ_%4_3FOUND_^1_(SQZ_%2_3ILLEGAL_^1€€_(INQ_%-1_^1_%JMP* IFA3+1_^1_(JMP*_$IFA2_^1_(LDA-_$VMS,I_^1_(SUB-_$VMS+1,I_^1_(QLS_%1_^1_(JMP*_$*+1,Q_^1_%SAN IFA3A-*-1_^1_(JMP*_$IFA2_0CONDITION MET_^1_%SAZ IFA3A-*-1_^1_(JMP*_$IFA2_^1_%SAP IFA3A-*-1_^1_(JMP*_$IFA2_^1_%SAZ IFA3A-*-1_^1_(SAM_%1_^1_(JMP*_$IFA2_^1IFA3A RAO- SKF,I_^1_(LDA-_$LA,I_0SAVE IF NAM_^1_(STA-_$IFNAM,I_^1_(JMP*_$IFA2_^1*_2EQ_!NE_!LT_!GT_^1IFTAB_"NUM_%$171,€€$3A5,$334,$1F4_^1IFC_$LDA-_$MD,I_^1_(ENQ_%0_^1_(SAN_%3_^1IFC2_#ENA_%0_^1_(STA-_$AF,I_^1_(JMP*_$IFA2_^1_(STQ-_$VBT,I_/USE FOR COUNTING SUBRIELDS_^1_(STQ-_$VMS,I_/USE FOR CHARACTER CTR_^1_(ENQ_%5_^1_(ENA_%0_^1_(STA-_$TR,B_^1_(SQZ_%2_^1_(INQ_%-1_^1_(JMP*_$*-3_^1IFC10_"RTJ+_$CHPU_0SLEW OVER LEADING BLANKS_^1_(SAN_%1_3FOUND A NON BLANK CHARACTER_^1_(JMP*_$IFA2_0GET OUT_^1_(LDA-_$CT,I_0S€€ET COL CTR BACK ONE_^1_(INA_%-1_^1_(STA-_$CT,I_0GET CHAR WITH AF_^1IF3C_#RAO-_$AF,I_0SWITCH SET_^1_(RTJ*_$(IFC10+1)_^1_(STQ-_$TR+6,I_^1_(LDA-_$VBT,I_^1_(INQ_%-9_^1_(SQZ_%4_3TAB_^1_(INQ_%-4_^1_(SQZ_%2_3CR_^1_(INQ_%-$13_^1_(SQN_%1_^1_(JMP*_$IF5C_0BLANK_^1_(INQ_%-$C_^1_(SQN_%1_^1_(JMP*_$IF4C_0COMMA_^1_(RAO-_$VMS,I_^1_(LDA-_$VMS,I_^1_(INA_%-7_^1_(SAM_%1_^1_(JMP*_$IF3C_06 CHAR STORED_^1€€_(LDQ-_$VMS,I_^1_(INQ_%-1_^1_(LRS_%1_^1_(ADQ-_$VBT,I_^1_(SAM_%3_3RIGHT CHARACTER_^1_(LDA-_$TR+6,I_.LEFT CHARACTER_^1_(ALS_%8_^1_(JMP*_$*+2_^1_(LDA-_$TR+6,I_^1_(ADD-_$TR,B_^1_(STA-_$TR,B_^1_(JMP*_$IF3C_^1IF4C_#SAZ_%1_^1_(JMP*_$IFC2_0ERR, COMMA WITH VBT NON ZERO_^1_(ENA_%0_^1_(STA-_$AF,I_^1_(RTJ*_$(IFA5+1)_,GET COMPARE CODE_^1_(ENA_%3_^1_(STA-_$VBT,I_^1_(LDA-_$CS,I_^1_(INA_%-1_^1_(SA€€Z_%1_^1_(JMP*_$IFC2_0ERR, NO COMMA HERE_^1_(STA-_$VMS,I_^1_(JMP*_$IF3C_0GO GET NEXT FIELD_^1IF5C_#SAN_%1_^1_(JMP*_$IFC2_0ERR, BLANK WITH VBT EQU ZERO_^1_(ENQ_%2_^1_(LDA-_$TR,B_^1_(INQ_%3_^1_(EOR-_$TR,B_^1_(SAN_%3_3NO MATCH_^1_(INQ_%-4_^1_(SQM_%2_3MATCH_^1_%JMP* IF5C+3_^1_(TRA_%Q_^1_(LDA-_$SY,I_^1_(ADD-_$SY+1,I_^1_(SUB_%=N$171_^1_(SAZ_%4_3COMPARE IS ON EQ_^1_(SUB_%=N$234_^1_(SAZ_%3_€€3COMPARE IS ON NE_^1_(JMP*_$IFC2_0ILLEGAL COMPARE_^1_(SQP_%2_^1_%SQM IF7C-*-1_^1_%SQP IF7C-*-1_^1_(RAO-_$SKF,I_^1_(LDA-_$LA,I_^1_(STA-_$IFNAM,I_^1IF7C_#JMP*_$IFC2_^1EMC_$LDA-_$MD,I_0END MACRO_^1_(SAZ_%2_^1_(INA_%-1_^1_(STA-_$MD,I_^1_%JMP* IF7C_^1EIF_$LDA-_$SKF,I_/END IF_^1_(SAN_%1_^1_%JMP* IF7C_^1_(RTJ+_$CHPR_^1_(SAN_%1_^1_(LDA-_$CS,I_^1_(SAN_%EIF1_^1_(RAO-_$IG,I_^1_(RTJ*_$(EIF+4€€)_^1_%SAN EIF1-*-1_^1_(LDA-_$CS,I_^1_(SAN_%EIF1_^1_(TRQ_%A_3ADDRESS SYMBOL IN Q_^1_(EOR-_$IFNAM,I_^1_(SAN_%1_3NO MATCH_^1_(STA-_$SKF,I_/MATCH,STOP SKIPPING_^1EIF1_#JMP*_$IF7C_^1AXPR_#SLS_^1_(ENA_%0_^1_(ENQ_!12_^1_(STA- EX,B_^1_(INQ_%-1_^1_(SQM_%1_^1_(JMP*_$*-3_^1_(ENQ_%-0_2SET ADDRESS_^1_(STQ-_$AX,I_0SUMMATION STORAGE_^1AB_%RTJ+_$CHPR_^1_(SAN_%AA-*+1_.ERR FROM CHPR_^1_(STA-_$RC,I€€_^1_(LDA-_$CS,I_^1_(INA_!-6_$TEST FOR LEFT PAREN_^1_(SAZ_%3_^1_(SAN_%AX2-*-1_^1AA_%ENQ_%8_^1_(RTJ*_$(A+1)_/TO ERR PROC_^1_(LDA-_$CS,I_^1_(INA_%-2_^1_(SAM_!2_%BL OR COMMA NEXT_^1_(RTJ*_$(AB+1)_.TO CHPR_^1_(JMP*_$*-4_1SLEW TO COMMA OR BLANK_^1_(ENA_%0_^1_(STA-_$RC,I_^1_(STA-_$AX,I_^1_(STA-_$AS,I_^1_(JMP*_$AX3_^1AX2_$SQZ_%1_^1_(JMP*_$AX1-1_^1_(LDQ-_$SY+1,I_^1_(SQZ_%6_^1_(INA_%4_3NULL €€FIELD_^1_(SAM_%3_^1_(LDA-_$LC,I_^1_(SAZ_%1_^1_(JMP*_$AA_^1_(JMP*_$A2_^1_(LDQ-_$SY+2,I_^1_(SQN_%1_^1_(JMP*_$A2_2NUMERIC_^1_(LDA- PC,I_"PROGRAM COUNTER =_^1_(STA- NU,I_"VALUE OF THIS TERM_^1_(LDA- RM,I_"RELOCATION = PROGRAM_^1_(STA-_$RC,I_0RELOCATION MODE_^1_(JMP*_$A2_^1_(RAO-_$SS,I_0SET SEARCH FLAG_^1AX1_$LDA-_$ST,I_^1_(RTJ*_$(A+3)_/SEARCH SYM TABLE_^1_%INQ_!0_O**MSOS 4.0_^1_%SQN€€_!5_+SYMBOL FOUND_7**MSOS 4.0_^1_(RTJ+_$TBLIN_/LOOK FOR SYMTAB ON MS_^1_(SAM_%1_3ALL TABLES SEARCHED_^1_(JMP*_$AX1_1GO SEARCH AGAIN_^1_(JMP*_$AA_2UNDEFINED SYMBOL_^1_(LDA-_$1,Q_1PICK UP SYMBOL_^1_(ARS_%12_^1_(INA_%-4_^1_(SAN_%2_^1_(RTJ*_$(AX4+1)_^1_(JMP*_$AA_2UNDEFINED ENT PT_^1_(INA_%4_^1_(STA-_$RC,I_0STORE RELOCATION_^1_(ADQ-_$SY+3,I_^1_(LDA-_$2,Q_^1_(TCA_%A_^1_(STA-_$NU,I_0STORE€€ ADDR VALUE_^1_(RTJ*_$(AX4+1)_^1_(JMP*_$A2_^1AX3_$ENA_%0_^1_(STA-_$LP,I_0ZERO LEFT PAREN_^1_(STA-_$SS,I_^1_(LDA-_$AX,I_^1_(AND* A_%MASK ADDRESS TO_^1_(STA-_$AX,I_015 BITS_^1AX4_$RTJ+_$RESTBL_.RESTORE SYMTAB_^1_(LDA-_$AX,I_^1_(LDQ-_$RC,I_^1_(JMP*_$(AXPR)_^1A_'ADC_%$7FFF,ER,MOVE,SYCH_^1A2_%LDQ- LC,I_"LEADING OPERATOR_^1_(LDA-_$SG,I_^1_(SAZ_%4_3NO LEADING SIGN_^1_(SQZ_%1_^1AXAA_#JMP€€*_$AA+2_^1_(SAP_!1_%LEADING SIGN PLUS_^1_(INQ_!3_%SET LC CODE MINUS_^1_(INQ_%-4_^1_(STQ- RP,I_"SAVE FOR NEXT TEST_^1_(INQ_%1_^1_(SQN_%2_^1_(ENA_%-0_^1_(STA- AS,I_"SET ADDRESS MASK NEGATIVE_^1_(LDA-_$RC,I_^1_(SAZ_%AX4C-*-1_^1_(SQZ_!4_/LC IS MINUS_^1_(INQ_!-1_^1_(SQN_!4_^1_(LDQ- AS,I_^1_(SQZ_!2_^1_(ENQ_!4_^1_(JMP* *+2_^1_(ENQ_!0_^1_(EAQ_%Q_3OF RC_^1_(LDA-_$TR-1,B_.RECORD RELOCATI€€ON_^1_(INA_%1_3OF THIS TERM_^1_(STA-_$TR-1,B_^1AX4C_#LDA-_$RP,I_0LEADING CHARACTER_^1_(LDQ-_$CS,I_0TRAILING CHARACTER_^1_(INQ_%-4_^1_(STQ-_$RP,I_^1_(SAM_!1_%LC = +,-,BL OR COMMA_^1_(JMP*_$AG_2LC = * OR /_^1_(SQM_%1_^1_(JMP*_$AE_2CS = * OR /_^1_(LDA- NU,I_"LC,CS = +,-,BL OR COMMA_^1AZ_%ALS_%1_^1_(ARS_!1_%EXTEND SIGN OF NU_^1_(EOR- AS,I_"COMPLEMENT IF SIGN MINUS_^1_(ADD-_$AX,I_^1_(€€STA-_$AX,I_^1_(ENA_%0_^1_(STA-_$AS,I_^1_(STA-_$RC,I_^1AV_%LDQ-_$CS,I_^1_(INQ_%-2_^1_(SQM_!4_%CS = BLANK OR COMMA_^1_(INQ_!2_%CS INTO LC GO PICK_^1_(STQ-_$LC,I_0UP NEXT TERM_^1_(JMP_%AB_^1_(ENA_%0_^1_(STA-_$RC,I_^1_(ENQ_%3_3CHECK RELOCATION_^1AV1A_!LDA- TR-1,B_^1_(INQ_%4_^1_(SUB-_$TR-1,B_^1_(SAN_%4_3RELOCATION HERE_^1AV1B_!INQ -5_^1_(SQN_%1_^1_(JMP*_$AX3_^1_%JMP* AV1A_^1_(STQ-_$RP€€,I_^1_(INA_!1_%RELOC HERE CHECK IT_^1_(SAN_%6_^1AV1C_!LDA- RC,I_^1_(SAZ_%1_^1_(JMP*_$AXAA_^1_(STQ-_$RC,I_^1_(LDQ-_$RP,I_^1_%JMP* AV1B_^1_(INA_%-2_^1_(SAZ_%1_^1_%JMP* AXAA_^1_(INQ_%-4_^1_%JMP* AV1C_^1AE_%LDA- RC,I_"LC = +,-,BL OR COMMA_^1_(STA-_$AR,I_0CS =* OR /_^1_(LDA-_$NU,I_0SAVE RC AND NU_^1_(STA-_$AU,I_^1_(JMP*_$AV_^1AG_%LDQ-_$RC,I_0LC = * OR /_^1_%SQZ_#AG1A-*-1_$RC=0_=33*576€€_^1_(SAZ_%1_3LC = *_^1_(JMP* AE-3_"ERR DIVISOR RELOC_^1_(LDA-_$AR,I_^1_(SAZ_%1_^1_(JMP* AE-3_"ERR TOO MANY RELOCS_^1_(STQ-_$AR,I_0SAVE THIS RELOC_^1_(JMP*_$*+2_^1AG1A_!SAN AH-*-1_'LC = /_^1_(LDA-_$NU,I_0LC= *_^1_(MUI-_$AU,I_^1_(SAP_%2_^1_(AND* A_%PRODUCT WRAP AROUND_^1_(INA_%1_^1_(QLS_%1_^1_(AAQ_%A_^1_(SAP_%2_^1_(CLR_%Q_^1_(JMP*_$*-6_^1_(LDQ-_$RP,I_^1_(SQP_%1_^1_(JMP* AZ_$CS =€€ +,-,BL OR COMMA_^1_(JMP*_$AE+3_0CS = * OR SLASH_^1AH_%LDA-_$NU,I_0LC = /_^1_(SAN_%1_^1_(JMP* A2+4_"ERR DIV BY ZERO_^1_(LDA-_$AU,I_^1_(ENQ_%0_^1_(DVI-_$NU,I_0AU/NU_^1_(JMP*_$AH-4_^1PCO_%LDA*_!PCOSET_^1_)ADD-_!PC,I_^1_)STA-_!PC,I_^1_)ENA_"0_^1_%RTJ+_"CHPR_^1_%SAN_!PCOERR_^1_'LDA-_!NU,I_^1_)STA*_!PCOSET_^1_%TCA_!A_^1_%ADD-_!PC,I_^1_%STA-_!PC,I_^1_%JMP_"NEXT_^1PCOSET_"NUM_"0_^1PCOERR€€ ENQ_"1_^1_%RTJ+_"ER_+EXPRESSION ERROR_^1_%JMP+_"NEXT_^1UP2_$SLS_^1_(SQN_%1_^1_(JMP*_$(UP2)_^1_(RTJ*_$UP1_^1_(INQ_%-1_^1_(JMP*_$*-4_^1_(BZS_%UTEMP(1)_,TEMP***_^1UP1_$SLS_%0_3BUMP PROGRAM_^1_(LDA-_$PC,I_0COUNTER BY ONE_^1_(SUB*_$UPM1_^1_(SAZ_%2_^1_(ADD*_$UPM1_^1_(INA_%1_^1_(STA-_$PC,I_^1_(JMP*_$(UP1)_^1UPM1_#NUM_%$7FFE_^1MOVE_#SLS_!0_/MOVE SYMBOL_^1_(ENQ_%3_3TO LABEL_^1_(LDA-_$SY,B€€_^1_(STA-_$LA,B_^1_(INQ_%-1_^1_(SQM_%1_^1_(JMP*_$*-4_^1_(JMP*_$(MOVE)_^1PUNC_#ADC_%0_^1_(LDQ_%X_^1_(SQN_%1_^1_(JMP*_$PC2_1NO LOAD AND GO_^1_%LDA- STDLGO_'LOAD AND GO SECTOR NUMBER._^1_(SUB_%=N750_^1_(SAM_%PC1-*-1_^1_(ENA_%0_^1_(STA_%X_^1_%ENA 96_+RESTORE DISK WRITE LENGTH IN DOUT_^1_%STA+ DSKWLN_^1_(ENQ_%9_3LOAD AND GO OVERFLOW_^1_(RTJ+_$ER_^1_(JMP*_$PC2_^1PC1_"LDQ- STDLGO_^1_(LDA€€*_$PC3+1_^1_(RTJ+_$DOUT_^1_%RAO- STDLGO_^1PC2_$LDQ_%P_^1_(SQZ_!PO-*-1_^1PC3_$LDA_%=XCONS+UB_^1_(LDQ- PER,I_,NO WDS TO OUTPUT_^1_(RTJ*_$BW_2BINARY WRITE_^1PO_%ENA_!0_^1_(ENQ_!56_^1_(STA- UB,B_-*********************_^1_(INQ_!-1_/*********************_^1_(SQM_!1_0*********************_^1_(JMP* *-3_.*********************_^1_(JMP*_$(PUNC)_^1BW_%ADC_%0_^1_(STA* BW+11_^1_(STQ*_$BW+10_€€^1_(ENA_%0_^1_(STA-_$CSW,I_^1_%RTJ- (REQPRO)_$FWRITE REQUEST._^1_(NUM_!$4C00_I**MSOS 4.0_^1_(ADC_%CO_^1_(ADC_%0_^1_%VFD N3/0,N1/0,N2/2,X10/STDOUT_^1_(ADC_%0_^1_(ADC_%0_^1_(RTJ_!STATUS_^1_(JMP*_$(BW)_^1STATUS_!ADC_%0_^1_(LDA- CSW,I_!WAIT FOR COMPLETION_^1_(SAN_%1_^1_(JMP*_$*-2_^1_(JMP*_$(STATUS)_,MARK FOR ERROR_^1CO_#SQP COA_^1_%ENA 0_^1_%STA+ P_^1COA_"INQ 1_^1_(STQ_!CONS+CSW_^€€1_%JMP- ($EA)_^1_(END_%PASS2_^__€€PA2PR2 CSY/ €€1_%NAM PA2PR2_'DECK-ID A05 MACRO ASSEMBLER_%SUMMARY-162_^1*_$MASS STORAGE OPERATING SYSTEM VERSION 5.0_^1*_$SMALL SYSTEMS DIVISION, LA JOLLA, CALIFORNIA_^1*_$COPYRIGHT CONTROL DATA CORPORATION 1976_^1*_'PROGRAM BASE-MACRO ASSEMBLER 2.0_4**MSOS 4.0_^1*_1ST MUST BE FIRST_^1STDSCR EQU STDSCR($B3)_^1REQPRO EQU REQPRO($F4)_^1STDOCD EQU STDOCD($FC)_^1DISP_!EQU DISP($EA)_^1_(EQU_%ST€€(1),ET(ST+1),PSW(ET+1),PB(PSW+1)_^1_%EQU DSW(PB+49),DSWW(DSW+1)_^1_%EQU TSW(DSWW+1),CSW(TSW+1),SECTNO(CSW+1)_^1_%EQU PNAM(SECTNO+1)_^1_%EQU WMS(PNAM+3),CSYSCT(WMS+1)_^1_(EQU_%SCOUNT(CSYSCT+1),XSYSCT(SCOUNT+1)_^1_(EQU_%CC(XSYSCT+1),DC(CC+1)_^1_(EQU_%PC(DC+1),DX(PC+1),LA(DX+2),W1(LA+4),W2(W1+1)_^1_(EQU_%AD(W2+1),AF(AD+1),AM(AF+1),CL(AM+1),EX(CL+1)_^1_(EQU_%RC(EX+1),AX(RC+1),LC(AX€€+1),AU(LC+1),AR(AU+1)_^1_(EQU_%TR(AR+1),SY(TR+7),NU(SY+4),SG(NU+1),RP(SG+1)_^1_(EQU_%HX(RP+1),XMOD(HX+1),LT(XMOD+1),ES(LT+1),LP(ES+1)_^1_(EQU_%IG(LP+1),NS(IG+1),IS(NS+1),CT(IS+1),CS(CT+1)_^1_(EQU_%IL(CS+1),MD(IL+1),ID(MD+1),SKF(ID+1)_^1_(EQU_%BS(SKF+1)_^1_%EQU AUB(BS+1)_^1_%EQU UB(AUB+57)_^1_(EQU_!LN(UB+57),OR(LN+1),OC(OR+1)_^1_(EQU_!AS(OC+1),SC(AS+1),SS(SC+1)_^1_(EQU_%WC(SS+1),R€€M(WC+1)_^1_(EQU_%YL(RM+1),SZ(YL+1)_^1_(EQU_%PER(SZ+1)_^1_(EQU_%VBT(PER+1),VMS(VBT+1),IFNAM(VMS+1)_^1_(EQU_%MPSW(IFNAM+1)_^1_(EQU_%VCT(MPSW+1),VWD(VCT+1)_^1_(EQU_%AX16(VWD+1)_^1_(EQU_%ETSAVE(AX16+1)_^1_(EQU_%DVFL(ETSAVE+1)_^1_(EQU_%PAGL(DVFL+1)_^1_(EQU_%SL(PAGL+1)_^1_(COM_%CONS(SL+1)_^1_(COM_%FST_^1_%COM L,P,X,C,MM,ILSCST,SRSCST,ILSCND_3MSOS4.1_^1_(COM_%ERC_^1_%COM LGSECT_^1_%COM €€ SYRFTS(96)_"SECT.REF.TBL.SYMBOLS_0MSOS4.1_^1_%COM SYCADM_'ADDR.TO SECT.REF.TBL.SYMBOLS_(MSOS4.1_^1_%COM SYEXT_MMSOS4.1_^1_%COM SYINDM_LMSOS4.1_^1_%COM SYTRFM_'ENTRY ADDR.REF.TBL.SYMBOLS_*MSOS4.1_^1_%COM SYTRFD_'1ST ADDR.REF.TBL.SYMBOLS-DISK_'MSOS4.1_^1_%COM APASS1,APASS2,APASS3,ATBLST,AXREF,PAGE_,MSOS4.1_^1_%COM PS1W2,PS2W2,PS3W2,PS4W2,PS5W2_5MSOS4.1_^1_(ENT_!ZSYTAB,SYPT,LB€€PK,DIN,DOUT,OB,N2,D1C_^1_(ENT_!CHPU,RECV,CHPR,D5,TBLIN,RESTBL,SYCH,IMJ_'**MSOS 4.0_^1_%ENT DSKWLN_^1_(EXT_!MOVE,UP1,UP2,ADC,EIF,ALF,NUM,DEC,VFD,ASSEM,COP,COT_^1_(EXT_!IFA,IFC,EMC,LST,NLS,NAM1,NAM,AXPR,PRNT,NAMC,ER **MSOS 4.0_^1_(EXT_"NEXT_I**MSOS 4.0_^1_%EXT_!PCO,IFR_^1IMJ_$ADC_!0_M**MSOS 4.0_^1_(EXT_%PUNC_^1LAA_$ADC_!CONS+LA,CONS+SY_^1SYCH_#ADC_!0_^1_(LDQ- SS,I_-SS=0, SYMBOL IN €€LABEL_^1_(SQN_!5_%SS NOT ZERO,SYMBOL IN SY_^1_(LDQ* LAA_^1_%STQ* S1A+1_^1_(INQ_!3_^1_%STQ* S3A+1_^1_(JMP* *+3_^1_(LDQ* LAA+1_^1_(JMP* SYCH+4_^1_(LDQ- I_^1_(STQ- RP,I_-SAVE I_^1_(INA_!-1_^1S4_%ENQ_!0_^1_(STA- I_%ADDRESS-1 OF TBL TO BE SEARCHED_^1_(STA+ CONS+HX_*SAVE ADDR OF 1ST WORD_^1S2_%LDA- 1,I_.PICK UP ENTRY_^1_(SAN_!5_^1_(ENQ_%-0_'END OF TABLE-NOT FOUND_***MSOS 4.0_^1S€€X_%LDA_!CONS+RP_^1_(STA- I_0RESTORE I_^1_(JMP* (SYCH)_^1_(SAM_!S3-*-1_^1_(SQP_!2_^1S1_%RAO- I_%SLEWING ENTRY-INCREMENT ADDRESS_^1_(JMP* S2_^1_(LDA_!=N$7FF_+MASK_^1_(SQZ_!1_0PROCESSING 1ST WORD_^1_(SET_!A_^1_(AND- 1,I_^1S1A_"SUB+ 0,Q_*THIS CELL IS MODIFIED_^1_(SAZ_!1_0MATCH_^1_(INQ_!-4_$NO MATCH-SET Q NEG TO SLEW_^1_(INQ_!1_^1_(JMP* S1_/GO BACK FOR MORE_^1S3_%SQM_!S5-*-1_+WERE€€ SLEWING_^1_(INQ_!-1_^1_(TCQ_!Q_%DOES ORDINAL IN SY+3 MATCH Q_^1S3A_"ADQ+ 0_,THIS LOC IS MODIFIED_^1_(SQN_!S5-*-1_+NO-ENTRY DID NOT MATCH_^1_(LDQ* (S2-1) CONS+HX ADDR-1 OF 1ST WD TO Q_^1_(JMP* SX_^1S5_%LDA- I_^1_(INA_!1_^1_(JMP* S4_^1N1_%ADC_%0_I**MSOS 4.0_^1N2_%ADC_!CONS+SY_^1SYPT_#ADC_!0_^1_(QLS_!1_^1_(STQ* SF+1_-RELOCATION_^1_(STA* SE-2_-VALUE_^1_(LDA- LA,I_"ANY SYMBOL TO€€ PUT AWAY_^1_(SAN 1_^1_(JMP* (SYPT)_^1_%LDA+ BUGFIX_^1_%SAZ_!4_^1_%ENA_!0_^1_%STA+ BUGFIX_^1_%JMP* (SYPT)_^1SY2C_#LDA-_$ST,I_0SYMBOL TABLE ADDRESS_^1_(RTJ* (SA+2) SYCH_^1_(INQ_%0_I**MSOS 4.0_^1_(SQZ_%SA-*-1_"NOT FOUND_^1_(LDA- 1,Q_#WAS IT UNDEFINED ENTRY POINT_^1_(ARS_!12_^1_(INA_!-4_^1_(SAN_!SA+3-*-1_)NO-IS DOUBLE DEF_^1_(RAO* SF+1_-SET ENTRY POINT BIT_^1_(INQ_!1_^1_(RTJ* €€ SB_$PUT AWAY VAL AND RELOC OF SYMB_^1SY3C_#RTJ+_$RESTBL_.RESTORE SYMBOL TABLE_^1_(JMP* (SYPT)_^1SA_%LDA- ET,I_-EXTERNAL TABLE ADDRESS_^1_(RTJ+_$SYCH_^1_(INQ_%0_I**MSOS 4.0_^1_(SQZ_%5_I**MSOS 4.0_^1_(ENQ_!0_^1SY1C_#RTJ+_$ER_2ERROR HERE_^1_(JMP*_$SY3C_^1_(JMP* (SYPT)_^1_(RTJ+_$TBLIN_^1_(SAM_%1_3ALL TABLES SEARCHED_^1_(JMP*_$SY2C_^1_(RTJ* OV_^1_(LDQ- ST,I_^1_(ADQ- SC,I_^1_(RTJ*€€ SB_^1_(LDA- LA+3,I_^1_(INA_!2_^1_(ADD- SC,I_^1_(STA- SC,I_^1_%RTJ SYTRSB_LMSOS4.1_^1_(JMP* (SYPT)_^1SB_%ADC_!0_%Q CONTAINS ADDR OF 1ST ENTRY_^1_(STQ* SE+1_^1_(LDQ- LA+3,I_^1_(INQ_!1_^1_(LDA_!=N0_.VALUE_^1_(TCA_!A_^1SE_%STA+ 0,Q_.PATCHED_^1_(INQ_!-1_^1_(SQZ_!3_^1_(SQM_!7_^1_(LDA- LA,B_^1_(JMP* SE_^1SF_%LDA_!=N0_^1_(ALS_!11_^1_(ADD- LA,I_^1_(JMP* SE_^1_(JMP* (SB)_^1OV_€€%ADC_!0_^1_(LDA- ET,I_^1_(SUB- SC,I_^1_(SUB- ST,I_^1_(INA_!-5_^1_(SAM_%1_^1_(JMP*_$(OV)_0THIS TABLE NOT FULL_^1_(LDA-_$CSYSCT,I_^1_(ADD-_$SCOUNT,I_^1_%SUB+ LGSECT_^1_(SAP_%1_^1_(JMP*_$OV1_^1_(LDA-_$TSW,I_^1_(SAN_%1_^1_(JMP*_$*-2_^1_(ENQ_%18_^1_(LDA*_$ERMS,Q_^1_(STA-_$PB,B_^1_(INQ_%-1_^1_(SQM_%1_^1_(JMP*_$*-4_^1_%RTJ- (REQPRO)_$FWRITE REQUEST._^1_(NUM_!$4C00_I**MSOS 4.0_^1_(ADC_%€€COT_^1_(ADC_%0_^1_%VFD N3/0,N1/1,N2/2,X10/STDOCD_^1_(NUM_%11_H**MSOS 4.0_^1_(ADC_%CONS+PB_^1_%JMP- (DISP)_'EXIT_^1OV1_$LDA-_$WMS,I_^1_(STA_%DISKWR+5_^1_(LDA-_$ST,I_^1_(LDQ-_$CSYSCT,I_^1_(RTJ+_$DOUT_^1_(LDA_%=XCONS_^1_(STA-_$ET,I_0RESET EXTERNAL ADDRESS_^1_(ENA_%0_^1_(STA-_$SC,I_0ZERO SYMBOL COUNT_^1_(LDA-_$CSYSCT,I_^1_(ADD-_$SCOUNT,I_^1_(STA-_$CSYSCT,I_^1_(STA-_$XSYSCT,I_^1_(STA-_€€$XSYSCT,I_^1_(RTJ*_$ZSYTAB_.ZERO SYMBOL TABLE_^1_(JMP*_$(OV)_^1ERMS_#ALF_%11,MASS STORAGE OVERFLOW_2**MSOS 4.0_^1TBLIN_"ADC_%0_^1_(LDA-_$CSYSCT,I_^1_%SUB+ ILSCND_^1_(LDQ-_$XSYSCT,I_^1_%SAN TBLINA_^1_(SQZ_%1_3NO TABLES ON MS_^1_(RTJ*_$RESTBL_.ALL TABLES SEARCHED_^1_(ENA_%-0_^1_(JMP*_$(TBLIN)_^1TBLINA TRQ A_^1_(SUB-_$CSYSCT,I_^1_(SAN_%TBDOUT+2-*-1_^1_(LDA-_$ET,I_0CURRENT TABLE IN C€€ORE_^1_(STA-_$ETSAVE,I_,WRITE IT OUT_^1_(LDA-_$WMS,I_^1_(STA_%DISKWR+5_^1_(LDA-_$ST,I_^1_(LDQ-_$CSYSCT,I_^1TBDOUT_!RTJ+_$DOUT_^1_(LDA-_$CSYSCT,I_^1_(SUB-_$SCOUNT,I_^1_(STA-_$CSYSCT,I_^1_(LDA-_$WMS,I_^1_(STA_%DISKRD+5_^1_(LDA-_$ST,I_^1_(LDQ-_$CSYSCT,I_^1TBDIN_"RTJ+_$DIN_^1_(LDQ_%=XCONS_.GET NEW EXT ADDR_^1_(INQ_%-2_^1_(LDA-_$1,Q_^1_(SAZ_%2_^1_(INQ_%-1_^1_(JMP*_$*-3_^1_(INQ_%2_^1_(ST€€Q-_$ET,I_^1_(ENA_%0_^1_(JMP*_$(TBLIN)_^1RESTBL_!ADC_%0_^1_(LDA-_$XSYSCT,I_^1_(SAZ_%2_3NO TABLES ON MS_^1_(SUB-_$CSYSCT,I_^1_(SAN_%1_^1_(JMP*_$(RESTBL)_,CURRENT TABLE IS IN CORE_^1_(LDA-_$ETSAVE,I_,RESTORE EXTERNAL ADDR_^1_(STA-_$ET,I_^1_(LDA-_$WMS,I_/READ CURRENT TABLE_^1_%STA DISKWR+5_J44*702_^1_(LDA-_$ST,I_^1_(LDQ-_$CSYSCT,I_,PUT THIS TABLE ON MS_^1_(RTJ*_$(TBDOUT+1)_^1_(LDA-_$W€€MS,I_^1_%STA DISKRD+5_J44*702_^1_(LDA-_$ST,I_^1_(LDQ-_$XSYSCT,I_,BACK IN_^1_(STQ-_$CSYSCT,I_,RESET CURRENT TABLE NO._^1_(RTJ*_$(TBDIN+1)_^1_(JMP*_$(RESTBL)_^1ZSYTAB_!ADC_%0_3ZERO SYMBOL TABLE_^1_(LDA- ST,I_J**MSOS 4.0_^1_(STA* ZSY1+1_H**MSOS 4.0_^1_%STA* ZSYDON+1_^1_(LDQ-_$WMS,I_^1_(ENA_%0_^1ZSY1_#STA+ 0,Q_K**MSOS 4.0_^1_(INQ_%-1_^1_%SQZ ZSYDON_^1_(JMP*_$*-4_^1ZSYDON STA+ 0,Q_€€^1_(JMP*_$(ZSYTAB)_^1LBPK_!ENA 0_^1_%STA+ BUGFIX_'RESET BUGFIX SO NEXT SYMBOL WILL BE PROCESSED_^1_%RTJ* (O2-3)_'PICK FIRST CHARACTER OF IL IMAGE_^1_(INA_%-$A_"IS IT AN ASTERICK_^1_(SAN_%L8_^1LK_%LDA-_$LN,I_^1_(INA_%-1_^1_(SAN_%3_^1_(ENQ_%4_3NO NAM_^1_(RTJ+ ER_^1_(JMP_%NEXT_^1L8_%ENA_%-1_^1_(STA- CT,I_-SET CHAR CTR BACK_^1_(RAO- IS,I_-LEADING SIGN ILLEGAL_^1_(RTJ*_$(O1+3)_^1_(S€€AZ_!L3-*-1_+NO ERROR_^1L6_%ENQ_%45_^1_(LDA_!(IMJ),Q_G**MSOS 4.0_^1_(SAP_%2_^1_(ENQ_%2_3THIS IS A NAME RECORD_^1_(RTJ*_$(LK+5)_.PRINT ERROR AND SET IL BIT_^1_(ENQ_%0_^1_(STA- LA,I_^1_(JMP* L1_^1L3_%SQZ_!L4-*-1_+NUMERIC_^1_(RTJ_!MOVE_^1_(JMP* L5_^1L4_%LDA- SY+1,I_+IS IT NULL FIELD_^1_(SAZ_%L1-*_0NO_^1L5_%LDA- CS,I_^1_(SAN_!1_^1L1_%JMP* OPCP_^1_(JMP* L6_^1OPCP_#LDA-_$SKF,I_^1_(€€SAZ_%1_^1_(JMP*_$SKPROC_.SKIPPING ON IF_^1_(LDA-_$IL,I_^1_(SAP_%O1-*-1_.NOT A MACRO CARD_^1_(ALS_%1_^1_(SAP_%1_^1_(JMP*_$LK_2EXIT_^1_(RAO-_$MD,I_0BUMP MACRO DEPTH SWITCH_^1_(LDA-_$PC,I_^1_(LDQ-_$RM,I_^1_(RTJ*_$(O7+5)_.PUT AWAY SYMBOL_^1_(JMP*_$LK_2EXIT_^1O1_%RAO-_$IG,I_^1_(RAO- IS,I_-LEADING SIGN ILLEGAL_^1_(RTJ+ CHPR_-GET OPCODE_^1_(SAZ_%4_^1O11_$LDA-_$LN,I_^1_(INA_%-1_^1_(SAN_%€€OE_^1_(JMP*_$LK+3_0NAM ERROR_^1_(SQZ_%1_^1_(JMP*_$OF_^1_(LDA- NU,I_"NUMERIC OPCODE-MUST BE ZERO_^1_(SAZ_!O2-*-1_^1_(JMP*_$O11_^1OE_%LDA-_$CS,I_0PICK UP INDICATOR_^1_(SAZ_!3_0BLANK_^1_(RTJ+ CHPU_^1_(JMP* *-3_^1_(STA- AM,I_^1O2_%ENA_%-1_^1_(STA- CL,I_"SET CLASS CODE FOR ADC_^1_(ENQ_!0_^1_(JMP* O7-3_#GO TO ADC ROUTINE, PASS1_^1OF_%ENQ_%43_^1_(LDA_!(IMJ),Q_G**MSOS 4.0_^1_(ENQ_%45€€_2GET PSEUDO INDEX_^1_(LDQ_!(IMJ),Q_G**MSOS 4.0_^1_(SQP_%2_^1_)ENQ_!24_^1_(ENA_%-1_^1_(SAN_%1_^1OB_%JMP*_$OE_2OP CODE ERROR_^1O6_%STA-_$CL,I_^1_(SAP_!O7_^1_(RAO- IS,I_^1_(JMP_!N3_^1O7_%STA- AU,I_^1_%STQ- SG,I_^1_%LDA- PC,I_^1_%LDQ- RM,I_^1_%RTJ+ SYPT_^1_%LDA- CS,I_,GET TERMINATOR CODE_^1_%STA- AM,I_,SAVE TERMINATOR CODE_^1_%LDQ- CL,I_,GET CLASS CODE_^1_%INQ -6_.SET UP CLASS 1-5 C€€HECK_^1_%SAN 1_^1_%JMP* BT_#JUMP IF BLANK TERMINATOR_^1_%SQP OPERR_+OP CODE ERROR_^1_%INA -1_.TEST FOR COMMA TERMINATOR_^1_%SAZ OPERR_+OP CODE ERROR_^1_%INA -4_.TEST FOR NOT +,*,- (ILLEGAL TERMINATOR)_^1_%SAP OPERR_+SKIP IF NOT +,*,- OPCODE ERROR_^1_'STQ* TEMP_^1_%RTJ* CHPU_,GET NEXT CHARA AFTER TERMINATOR_^1_%SAZ 2_/SKIP IF BLANK_^1OPERR RAO* BUGFIX_)FIX DOUBLY DEFINED €€LABEL BUG IN SYPT_^1_%JMP* OE_^1_%LDA- AM,I_,GET TERMINATOR CODE_^1_(LDQ* TEMP_^1_%INA -2_+TEST FOR + TERMIN._^1_%SAN 1_,SKIP IF NOT +_^1_%JMP* PBLNK_^1_%INQ 2_,CHECK CLASS 1-3_^1_%SQP 1_^1_%JMP* TWWD_)SKIP IF CLASS 1-3_^1_%JMP* OWD_*CLASS 4-5_^1BT_#SQP 1_^1_%JMP* PBLNK_(SKIP IF CLASS 1-5_^1_%LDQ- CL,I_^1_%INQ -13_*CHECK FOR CLASS 13_^1_%SQN 1_^1_%JMP* TWWD_)BUMP PC BY 2 F€€OR CLS 13_^1_%INQ 1_,CHECK CLASS 12_^1_%SQZ 1_^1_%JMP* OWD_*IF NOT CLASS 12 BUMP PC BY 1_^1_%ENQ 44_+SET INDEX TO IL IMAGE_^1_%LDA (IMJ),Q_%GET OPCODE HEX VALUE_^1_%SUB =N$0B02_%CHECK FOR LRG_^1_%SAZ 4_^1_%SUB =N$1_)CHECK FOR SRG_^1_%SAZ 1_^1_%JMP* OWD_^1_%JMP* TWWD_)BUMP PC BY 2 IF LRG OR SRG_^1OWD_"RTJ UP1_-BUMP CL BY 1_^1_%JMP LK_+GO TO NEXT_^1PBLNK INQ 2_/SET UP CLA€€SS 1-3 CHECK_^1_%SQP TWWD_,SKIP IF NOT CLASS 1-3_^1_%ENQ 3_^1_%RTJ UP2_-BUMP PC BY 3_^1_%JMP* PBLNK-2_^1TWWD_%ENQ 2_^1_+RTJ UP2_)BUMP PC BY 2_^1OX1_"JMP* PBLNK-2_^1TEMP_"NUM_!0_'USED ONLY FROM 07O7 TO HERE_^1BUGFIX_"NUM 0_^1SKPROC_!LDA-_$IL,I_^1_(SAP_%4_3NOT A MACRO_^1_(ALS_%1_3MACRO_^1_(SAM_%1_3CONTINUATION_^1_(RAO-_$ID,I_0MACRO CALL_^1_(JMP*_$OX1_^1_(ENQ_%43_^1_(LDQ_!(IMJ€€),Q_G**MSOS 4.0_^1_(SQM_%1_^1_(JMP*_$OX1_^1_(ENQ_%45_^1_(LDA_!(IMJ),Q_G**MSOS 4.0_^1_)INA -8_$CHECK FOR END PSEUDO OP_#120*4481_^1_(SAN_%NOEND_F59*1187_^1_(STA-_$SKF,I_F59*1187_^1_(ENQ_%8_$ADDRESS IN TABLE OF ERROR CODE_%59*1187_^1_(RTJ_%ER_#INDICATE ERROR_659*1187_^1_(JMP_%END_"DONE_@59*1187_^1NOEND_"LDQ-_$ID,I_G59*1187_^1_,INA -9_$CHECK FOR EMC_!(CODE=17)_+120*4481_^1_(SAZ_%6_3€€EMC_^1_(INA_%1_^1_%SAN CHPU-1_^1_%SQN CHPU-1_^1_(RAO-_$IG,I_0IF DEPTH SWITCH NOT SET_^1_(JMP_%EIF_^1_(SQN_%5_J59*1187_^1_(STQ-_$SKF,I_F59*1187_^1_(ENQ_%8_J59*1187_^1_(RTJ_%ER_I59*1187_^1_(JMP*_$(*-6)_F59*1187_^1_(INQ_%-1_^1_(STQ-_$ID,I_0DECREMENT IF DEPTH SWITCH_^1_(JMP*_$OX1_^1CHPU_#ADC_!0_^1_(RAO- CT,I_-INCREMENT CHAR CTR_^1_(ENA_!0_^1_(LDQ- CT,I_^1_(INQ_!-72_^1_(SQM_!1_^1_(J€€MP* C1+1_-TOO MANY CHARS_^1_(INQ_!72_^1_(LRS_!1_^1_(LDQ_!(IMJ),Q_G**MSOS 4.0_^1_(SAZ_!1_^1_(QLS_!8_^1_(QRS_!8_0Q CONTAINS 7 BIT CHAR_^1_(SQM_%CHP1-*-1_,NULL_^1_(SQZ_%CHP1-*-1_,ZERO(NULL PARAM IN MAC ASELETON)_^1_(LDA- AF,I_^1_(SAZ_%1_^1_(JMP* (CHPU)_^1_(INQ_!-$9_.TAB-IS END OF FIELD_^1_(SQZ_!C3-*-1 YES-A IS ZERO SO WILL EXIT_^1_(LDA- IG,I_^1_(INQ_!-$4_.CARRIAGE RETURN_^1_(SQN_€€!3_0NO_^1_(ENA_!71_$SET CHAR CTR TO 71 FOR END OF_^1_(STA- CT,I_-IMAGE_^1CHP1_#JMP*_$CHPU+1_^1_(INQ_!-$13_-BLANK_^1_(SQM_!C1-*-1_+CHAR ILLEGAL_^1_(SQN_!2_^1C3_%SAZ_!C1+1-*-1_)CHAR BLANK-IG NOT SET_^1_(JMP* CHPU+1_+GO BACK FOR NEXT CHAR_^1_(INQ_!-$40_-UPPER BOUND FOR LEGAL_^1_(SQM_!C2-*-1_+IS LEGAL_^1C1_%ENA_!$3C_^1_(STA- CS,I_^1_(ENQ_!0_^1_(STQ- IG,I_^1_(JMP* (CHPU)_+EXIT_^1C2€€_%INQ_!$40_.6 BIT CHAR FOR OUTPUT_^1_(TRQ_!A_^1_(JMP* C1+1_^1XC_%NUM_!0,$C,$B CHAR TBL-BLANK,COMMA,PLUS_^1_(NUM_!$D,$A,$F,8 MINUS,ASTER,SLASH,LFT PAREN_^1_(NUM_!9,4_.RT PAREN,DOLLAR SIGN_^1_(NUM_%$1D,$3B_^1XI_%ADC_!XB_/BLANK,COMMA_^1_(ADC_!XP_/PLUS_^1_(ADC_!XM_/MINUS_^1_(ADC_!XK_/ASTERISK_^1_(ADC_!XH_/SLASH_^1_(ADC_!XL_/LEFT PAREN_^1_(ADC_!XRP_.RIGHT PAREN_^1_(ADC_!XD_/DOLLAR SIGN€€_^1_(ADC_!XT_/EQUAL SIGN_^1_(ADC_%XLB_1EQUAL SIGN,LEFT BRACKET_^1CHPR_#ADC_!0_0ENTRY_^1_(ENA_!0_^1_(STA-_$ES,I_^1_(ENQ_%10_2LEFT BRACKET_^1_(STA-_$SY,B_;HX,XMOD,LT,ES_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-3_^1XLOP_#RTJ* (XR+1) CHPU_^1_(ENQ_%10_2ZERO INTO SY,NU,SG,RP,_^1X1_%LDA- CS,I_"SEARCH SPECIAL CHARACTERS_^1_(SUB* XC,Q_^1_(SAZ_!XLO1-*-1_)FOUND_^1_(INQ_!-1_^1_(SQM_!X5-*-1_+NOT F€€OUND_^1_(JMP* X1_^1XLO1_#STQ- CS,I_-SET CS INDICATOR_^1_(SQZ_!1_0BLANK_^1_(INQ_!-1_^1_(LDA* XI,Q_^1_(LDQ- XMOD,I_^1_(STA* *+2_^1_(JMP+ 0_0GO TO ROUTINE_^1X5_%LDQ- EX,I_-TERMINATOR NEEDED_^1_(SQN_!XA-1-*-1_)YES-ERROR_^1_(LDQ- XMOD,I_^1_(INA_!-$10_^1_(SAM_!XA+6-*-1 ERR-BELOW LOWER BOUND_^1_(INA_!-$A_^1_(SAP_!1_0NOT NUMERIC_^1_(JMP* XN_/Q CONTAINS MODE_^1_(INA_!-7_^1_%SAM XA€€LF-4_'NOT ALPHA-ERROR_^1_(INA_!-$1A_^1_(SAP_!XA+6-*-1_)NOT ALPHA-ERROR_^1XA_%SQN_!XALF-*-1_)NOT INITIAL MODE-ALPHA_^1_(ENQ_!1_0SET ALPHA MODE_^1_(STQ- XMOD,I_^1_(LDQ- RP,I_"RT PAREN OR ASTER SWITCH SET_^1_(ADQ- SY+2,I_^1_(SQZ_!1_^1_(JMP* XR_/YES-IS ERROR_^1_(INA_!$1B_.CONVERT TO 5 BIT VALUE_^1_(ALS_!6_0XA+6 **_^1_(JMP* XALN-3_^1XALF_#INQ_!-1_^1_(SQZ_!1_^1_(JMP* XALN_-NUMERIC €€MODE_^1_(LDQ- SY+3,I_+XALF+3 **_^1_(INQ_!-6_^1_(SQZ_!XALN-1-*-1_'6 CHARS-EXIT_^1_(INQ_!6_^1_(LRS_!1_^1_(SAM_%3_^1_(LDA- CS,I_^1_(ALS_!8_^1_(JMP* *+2_^1_(LDA- CS,I_^1_(ADD- SY,B_-PUT CHAR IN SY_^1_(STA- SY,B_^1_(RAO- SY+3,I_+INCREMENT CHAR COUNT_^1_(JMP* XLOP_-XALN-1 **_^1XALN_#LDQ- HX,I_^1_(SQZ_!2_0HEX SWITCH NOT SET ERROR_^1_(INA_!$14_^1_(SAM_!1_^1_(JMP* XR_^1_(INA_!$10_€€.CHANGE TO NUMBER_^1_(JMP* XNUM_^1XN_%INA_!$A_/CONVERT TO NUMBER_^1_(SQN_!4_^1_(STA- NU,I_-INITIAL MODE_^1_(ENA_!2_0**_^1_(STA- XMOD,I_+SET NUMERIC MODE_^1_(JMP* XLOP_-XNUM-4 **_^1_(INQ_!-1_^1_(SQN_!1_^1_(JMP* XALF+3_+ALPHA MODE_^1XNUM_#STA- CS,I_^1_(LDA- HX,I_^1_(LDQ- NU,I_^1_(SAZ_!XN1-*-1_*DECIMAL NUMBER_^1_(LDA- CS,I_-HEX NUMBER_^1_(ALS_!12_^1_(LLS_!4_0MULTIPLY BY 16_^1€€_(SAN_!XN1+4-*-1_(OVERFLOW_^1_(LDA- NS,I_-16 BITS LEGAL_^1_(SAN_!1_0YES_^1_(SQM_!XN1+1-*-1_(NO-OVERFLOW_^1_(STQ- NU,I_^1_(JMP* XLOP_^1XN1_$QLS_!1_^1_(SQM_!XO-*-1_+OVERFLOW_^1_(STQ- NU,I_^1_(LLS_!2_^1_(SAN_!XO-*-1_^1_(SQM_!XO-*-1_^1_(ADQ- NU,I_^1_(SQM_!XO-*-1_^1_(ADQ- CS,I_^1_(SQM_!XO-*-1_^1_(JMP* XN1-2_^1XO_%ENQ_!7_^1_(RTJ_!ER_^1_(ENA_%-1_^1_(STA-_$CS,I_^1XR_%RTJ+ CHPU_^1_(€€SAZ_!XR1-*-1_*BLANK_^1_(ENQ_!1_^1_(STQ- CS,I_-SET CS FOR COMMA_^1_(INA_!-$C_.CHAR COMMA_^1_(SAZ_!XR1-*-1_*YES_^1_(JMP* XR_^1XR1_$ENA_!0_^1_(ENQ_%11_^1_(STA- SY,B_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* XR1+2_^1_(RAO- ES,I_^1XX_%ENA_!0_^1_(STA- IS,I_^1_(STA- EX,I_^1_(LDA- ES,I_^1_(LDQ- SY,I_^1_(JMP_!(CHPR)_+EXIT FROM ROUTINE_^1XB_%SQN_!1_^1_(RAO- SY+1,I INIT MODE-NULL FIELD INDIC€€ATOR_^1_(LDA- LP,I_^1_(SUB- RP,I_^1_(SAZ_!1_^1_(JMP* XR1_.NON PAREN MATCH_^1XB2_$LDQ- SY+3,I_^1_(SQZ_!3_^1_(INQ_!-1_^1_(QRS_!1_^1_(STQ- SY+3,I_+SET CHAR COUNT FOR SY_^1_(JMP* XX_^1XP_%SQN_!XM-*-1_+PLUS SIGN_^1_(LDA- SG,I_-INITIAL MODE_^1_(SAN_!XM+4-*-1 ERR-CONCATENATED OPERATORS_^1_(RAO- SG,I_-SET SIGN POSITIVE_^1_(LDA- IS,I_-XP+4 **_^1_(SAN_!XM+4-*-1 ERR-LEADING SIGN ILLE€€GAL_^1_(JMP* XNUM-4 XLOP_%XM-1 **_^1XM_%SQZ_!1_^1_(JMP* XB2_.ALPHA OR NUMERIC MODE_^1_(LDA- SG,I_^1_(SAZ_!1_^1_(JMP* XR_$ERR-CONCATENATED OPERATORS_^1_(INA_!-1_^1_(STA- SG,I_"SET SIGN SWITCH FOR MINUS_^1_(JMP* XP+4_^1XK_%SQN_!XH-*-1_+ASTERISK_^1_(RAO- SY+2,I_+SET ASTERISK INDICATOR_^1_(RAO- EX,I_^1_(JMP* XN+3_-SET NUMERIC MODE_^1XH_%SQZ_!1_0SLASH_^1_(JMP* XM_^1_(LDA- SG,€€I_^1_(SAN_!XL+5-*-1 ERR-CONCATENATED OPERATORS_^1_(RAO- SY+1,I_+SET NULL FIELD_^1_(JMP* XX_^1XL_%RAO- LP,I_-COUNT LEFT PAREN_^1_(LDA- CL,I_^1_(SQZ_!3_^1_(INQ_!-1_^1_(SQZ_!XL2-*-1_^1_(JMP* XR_/XL+6 **_^1_(SAZ_!XL1-*-1 ERR-PROCESSING LABEL OR OP_^1_(SAM_!XL1+1-*-1_(PSEUDO OPCODE_^1_)INA -6_%MACHINE OPCODE_^1_(SAM_!XL1+3-*-1 XLOP_^1XL1_$JMP* XR_^1_(INA_!1_0PSEUDO OPCODE_^1_(SA€€N_!1_^1_(JMP* XM-1 XLOP_(CLASS 1 PSEUDO_^1_(INA_!1_^1_(SAN_!XL2+1-*-1_(ERROR-WRONG CLASS_^1_(JMP* XL-2_^1XL2_$INA_!2_0MUST BE CLASS 2 PSEUDO_^1_(SAN_!XT+4-*-1_)IS NOT_^1_(JMP* XB2_^1XRP_$RAO- RP,I_^1_(JMP* XL1+3 XLOP_^1XD_%SQN_!XT+4-*-1_^1_(RAO- HX,I_^1_(JMP* XN+3_^1XT_%SQN_!3_%ERR-NOT INITIAL MODE-EQUAL SG_^1_(LDA- CL,I_^1_)INA -4_^1_(SAZ_!1_^1_(JMP* XR_/ERROR-NOT CLASS 1€€_^1_(RTJ* (XR+1) CHPU GET CHAR FOLLOWING EQUAL_^1_(RAO- LT,I_-SET LITERAL SWITCH_^1_(JMP* XX_^1XLB_"SQN OP4-1_^1_(LDA-_$MD,I_^1_(SAZ_%3_^1_(ENA_%0_^1_(JMP_%XA_^1_(JMP*_$XR_^1OP4_$ADC_%ADC,VFD,ORG,EQU,COM,DAT,BSS,BSS_^1_(ADC_%END,ENT,EXT,ALF,NUM,DEC,IFA_^1_)ADC_"IFC,EIF,EMC,LST,PCO,IFR_^1_%ADC_#NLS,NAM1,NAM1,NAM_^1N3_%LDA* OP4,Q_,PICK UP TRANSFER VECTOR_^1_(STA* DAT-1_^1_(LDA-€€ CS,I_^1_(STA- AM,I_^1_%SAZ N3X-3_(SKIP IF BLANK TERMINATOR_^1_%INQ -8_+END CARD_^1_%SQZ N3X_*YES, IGNORE TERMINATOR CHECK_^1_%INQ -16_*NO, IS IT A NAM CARD_^1_(SQZ_%N3X_1NAME CARD_^1_(INA_!-4_/TERMINATOR ASTERISK_^1_%SAN N3X-2_(NO-ERROR_^1_%INQ 24_+ASTERISK O.K. IF ADC, ORG, OR EXT_^1_%SQZ 4_,SKIP IF ADC_^1_%INQ -2_^1_%SQZ 2_,SKIP IF ORG_^1_%INQ_!-8_^1_%SQN N3X-2_(NO-E€€RROR_^1_(RTJ_!CHPU_^1_(SAZ_!2_0BLANK_^1_(JMP_!OB_/ERROR_^1N3X_$RAO-_$IG,I_^1_(JMP+ 0_0GO TO PSEUDO ROUTINE_^1*_5PSEUDO OP CHECKOUT_^1DAT_$RAO-_$DX+1,I_.SET DATA FLAG_^1COM_$RTJ*_$D4_^1_(JMP*_$EQU+2_/NO SYMBOL PRESENT_^1_(JMP* D4C_#NO LEFT PAREN PRES_^1_(JMP*_$D1A_1NON ZERO RELOCATION_^1_(LDQ-_$DX+1,I_.NORMAL RETURN_^1_(LDA-_$CC,B_0COMMON OR DATA CTR_^1_(STA- W1,I_"INTO COMMAND W€€ORD_^1_(ADD-_$AX,I_0ADD ADDRESS_^1_(SAP_!2_^1_(SUB*_$D7_^1_(INA_!1_0WRAP AROUND_^1_(STA-_$CC,B_0ADJUST COUNTER_^1_(LDA- W1,I_"SET A FOR SYMBOL TBL PUT_^1_(INQ_!2_%COMMON OR DATA RELOC_^1_(STQ- RC,I_-FOR LISTING_^1_(JMP*_$EQU+5_/TO SYM TABLE_^1D7_%NUM_%$8000_^1EQU_$NOP_%0_^1_(RTJ*_$D4_^1_(JMP* DF_/NO SYMBOL PRESENT_^1_(JMP*_$DF+2_^1_(JMP*_$*+1_1NON ZERO RELOCATION_^1_(LDQ-_$RC,I_€€0RELOCATION CODE_^1_(RTJ* (D+8)_!TO SYMB TABLE(COMMON HERE TOO)_^1_(JMP*_$D1D_^1D4_%SLS_^1_(RTJ*_$D1_^1_(SQN_%2_^1_(STQ-_$LA,I_^1_(JMP*_$(D4)_0NO SYMBOL PRESENT_^1_(RTJ*_$(D+13)_.MOVE SYM TO LA_^1_(LDA-_$LP,I_^1_%SAN D4B_^1_(ENA_!1_%NO LFT PAREN-1 INTO CMD WD_^1_(STA-_$AX,I_^1_(ENQ_%1_^1_(JMP*_$(D4),Q_^1D4B_$RTJ*_$(D+4)_/CALL AXPR_^1_(SQZ_%2_^1_(ENQ_!2_%NON-ZERO RELOCATION_^1_(JM€€P*_$(D4),Q_^1D4C_$LDQ-_$CS,I_^1_(INQ_%-2_^1_(SQM_%1_^1_(JMP* D1A_#NO BLANK OR COMMA NEXT_^1_(ENQ_%3_^1_(JMP*_$(D4),Q_.NORMAL RETURN_^1BSS_$RTJ*_$D4_^1_(JMP*_$D8_^1_(JMP*_$D4C_1NO LEFT PAREN_^1_(JMP*_$D1A_^1*_1NORMAL RETURN ADDRESS TO COMD WORD_^1_(STA-_$W1,I_^1_(RTJ* D5_$NAME INTO SYM TABLE_^1_(LDA-_$W1,I_^1_(SAN_%1_^1_(JMP*_$D1D_^1D6_%LDQ-_$AX,I_^1_(RTJ* (D+12) BUMP COUNTER B€€Y ADDRESS_^1_(JMP*_$D1D_^1D8_%LDA-_$SY+1,I_^1_(SAN_%1_3NULL FIELD_^1_(JMP*_$D1D_^1_(LDA-_$LP,I_^1_(SAZ_%1_^1_(JMP*_$D4B_1LEFT PAREN PRESENT_^1_(ENA_%0_^1_(JMP*_$D4C_^1D5_%SLS_^1_(LDA-_$PC,I_^1_(LDQ-_$RM,I_^1_(RTJ*_$(D+8)_^1_(JMP*_$(D5)_^1DF_%LDA- SY+1,I_^1_(SAZ_%3_^1_(LDA-_$CS,I_^1_(INA_%-2_^1_(SAM_%1_^1_(JMP*_$D1D_^1_(ENA_!0_^1_(STA- AX,I_^1_(STA- RC,I_^1_%ENQ 1_,EXPRESSION ER€€ROR BECAUSE OF_$4.0*79*1950_^1_%RTJ ER_+NO LEFT/RIGHT PAREN_-4.0*79*1950_^1_(JMP* EQU+5_^1D_'ADC_%CHPR,ER,0,0,AXPR,CHPU,PRNT,NEXT_^1_(ADC_%SYPT,0,0_^1_(ADC_%UP1,UP2,MOVE,SYCH,OV_^1D1_%SLS_^1_(RAO-_$IS,I_0LEAD SGN ILLEGAL_^1_(RTJ* (D)_#TO CHARACTER PROCESSOR_^1_(SAN_!1_%ERROR FOUND BY CHPR_^1_(JMP* (D1)_"NO ERROR - RETURN_^1D1A_$ENA_%0_^1_(STA-_$AX,I_0ZERO ADDRESS_^1_(STA-_$RC,I€€_0AND RELOCATION_^1D1D_$LDA-_$CS,I_0IS THE NEXT_^1_(INA_!-1_$CHARACTER A COMMA_^1_(SAN_%1_3NO_^1_(JMP*_$D1+1_0YES_^1D1C_$JMP*_$(D+7)_^1EXT_$RTJ*_$(D)_1TO CHPR_^1_(SQN_%DL1-1_^1_(LDA-_$SY+1,I_.NO SYMBOL PRESENT_^1_(SAZ_%1_^1_(JMP*_$EXT2_0NULL FIELD_^1EXT1_#ENQ_%1_^1_(RTJ*_$(D+1)_^1EXT2_#RTJ_%RESTBL_.RESTORE SYMBOL TABLE_^1_(LDA-_$CS,I_^1_(SAZ_%EXT3_0EXIT_^1_(INA_%-1_^1_(SAN_%1_^1_(J€€MP*_$EXT_1COMMA NEXT_^1_(ENQ_%1_^1_(RTJ*_$(D+1)_/ILLEGAL TERMINATOR_^1EXT3_#JMP*_$(D+7)_/EXIT_^1_(RTJ*_$(D+13)_.MOVE SYM TO LA_^1DL1_$LDA-_$ST,I_^1_(RTJ*_$(D+14)_.SEARCH SYMBOL TABLE_^1_(INQ_%0_I**MSOS 4.0_^1_(SQZ_%2_I**MSOS 4.0_^1DK_%ENQ_%0_3ERR - EXT IN SYMTAB_^1_(JMP*_$EXT1+1_^1_(LDA-_$ET,I_^1_(RTJ*_$(D+14)_.SEARCH EXT TAB_^1_(INQ_%0_I**MSOS 4.0_^1_(SQZ_%DH1-*-1_!NOT FOUND_7**MS€€OS 4.0_^1_(LDA-_$1,Q_1FOUND - COMPARE MODE_^1_(AND*_$DT5+1_/PICK UP REL EXT BIT_^1_(ARS_%9_^1_(EOR-_$AM,I_^1_(SAZ_%1_3OK_^1_(JMP*_$DK_2ERR - NO MATCH_^1_(JMP*_$EXT2_^1DH1_$RTJ_%TBLIN_/CHK SYMTAB ON MS_^1_(SAM_%1_3ALL SEARCHED_^1_(JMP*_$DL1_1GO SEARCH AGAIN_^1_(RTJ*_$(D+15)_.CHK TABLE OVF_^1_(ENA_%1_^1_(ALS_%15_^1_(LDQ-_$ET,I_0SET EXTERNAL_^1_(INQ_%-2_2ADDRESS TO_^1_(STA-_$1,Q_1MINU€€S 7FFF_^1_(TRQ_%A_^1_(SUB-_$LA+3,I_.CALCULATE NEW_^1_(STA-_$ET,I_0EXT TAB ADDRESS_^1_(STA* DH2+1_I**MSOS 4.0_^1_(LDQ-_$LA+3,I_^1_(LDA-_$LA,B_^1DH2_$STA+_!0,Q_%STORE EXTERNAL NAME_0MSOS 4.0_^1_(INQ_%-1_^1_(SQM_%1_^1_(JMP*_$*-5_^1_%RAO FLAGEX_'TEST FOR WRITE OF EXT SYMBL_)MSOS4.1_^1_%RTJ SYTRSB_'TO THE SYMBOLIC REF TBL_-MSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA FLAGEX_LMSOS4.1_^1_(LDA-€€_$AM,I_^1_%SAZ ENT-1 EXT2_^1_(LDQ-_$ET,I_0SET RELATIVE BIT_^1_(INQ_%-1_^1_(LDA*_$DT5_^1_(AND-_$1,Q_^1_(ADD*_$DT5+1_^1_(STA-_$1,Q_^1_(JMP*_$EXT2_^1ENT_$RTJ*_$D1_^1_(SQN_%1_^1_(JMP*_$D1D_1NO SYMBOL PRESENT_^1_(RTJ*_$(D+13)_^1DL_%LDA-_$ST,I_0SYMTAB ADDR_^1_(RTJ*_$(D+14)_.SEARCH SYMTAB_^1_(INQ_%0_^1_(SQN_%1_(SYMBOL FOUND NOT EQUAL 0_(**MSOS 4.0_^1_(JMP*_$DH_2NOT FOUND_^1_(LDA*_$DT5_1€€SET ENT PT BIT_^1_(AND-_$1,Q_^1_(ADD*_$DT5+1_^1_(STA-_$1,Q_^1_(JMP*_$DT_^1DH_%LDA-_$ET,I_0SEARCH EXT TAB_^1_(RTJ*_$(D+14)_^1_(INQ_%0_^1_(SQZ_%5_I**MSOS 4.0_^1_(ENQ_%0_3FOUND - ERROR_^1_(RTJ*_$(D+1)_^1DT_%RTJ+_$RESTBL_.RESTORE SYMBOL TABLE_^1_(JMP*_$D1D_^1_(RTJ_%TBLIN_/CHK SYMTAB ON MS_^1_(SAM_%1_3ALL SEARCHED_^1_(JMP*_$DL_2GO SEARCH AGAIN_^1_(RTJ*_$(D+15)_.CHK ROOM IN SYMTAB_^1_(EN€€Q_%4_^1_(RTJ*_$(D+8)_/PUT ENTRY IN SYMTAB_^1_(JMP*_$D1D_^1DT5_$NUM_%$F7FF_^1_(NUM_%$0800_^1ORG_$LDA-_$AM,I_^1_%SAZ DG+2_^1_(ENQ_%0_^1_(LDA-_$OC,I_^1_%SAZ DG_+NOT IN ORG MODE_^1_(INA_%0_^1_(STA-_$PC,I_^1_(LDA-_$OR,I_^1_(STA-_$RM,I_^1_(STA-_$RC,I_^1_(STQ-_$OR,I_^1_(STQ-_$OC,I_0SAVE STORAGES_^1DG_%JMP_%NEXT_^1_(STA-_$IS,I_^1_(RTJ+_$AXPR_^1_(INQ_%-2_^1_(SQZ_%2_3ERROR COM RELO_^1_(INQ€€_%-2_^1_(SQM_%1_^1_(JMP*_$DG_2ERROR NEG RELO_^1_(LDQ-_$OC,I_^1_(SQN_%6_3IN ORG MODE NOW_^1_(LDQ-_$PC,I_0SAVE PROG CTR_^1_(SQN_%1_^1_(TCQ_%Q_^1_(STQ-_$OC,I_^1_(LDQ-_$RM,I_0SAVE RELO_^1_(STQ-_$OR,I_^1_(STA-_$PC,I_0RESET PROG CTR_^1_(LDA-_$RC,I_^1_(STA-_$RM,I_0RESET RELO_^1_(JMP*_$DG_2EXIT TO NEXT_^1END_$LDQ-_$XSYSCT,I_^1_(SQZ_%6_3NO SYMBOL TABLES ON MS_^1_(LDA-_$WMS,I_/PUT THIS SYMB€€OL TABLE_^1_(STA_%DISKWR+5_^1_(LDA-_$ST,I_^1_(RTJ_%DOUT_^1_%LDA- AM,I_)GET TERMINATOR_^1_%SAZ NOOPER_'ZERO = BLANK_^1_%ENQ 4_,OPERAND ERROR_^1_%RTJ+ ER_^1NOOPER ENQ 29_+NUMBER OF WORDS IN NAMC_^1_(LDA+_$NAMC,Q_^1_(STA-_$UB+4,B_^1_(INQ_%-1_^1_(SQM_%1_^1_(JMP*_$*-5_^1_(LDQ_%=N$2050_^1_(STQ- UB,I_"ID INTO PUNCH BUFFER_^1_(LDQ- CC,I_"STORE COMMON CTR_^1_(STQ-_$UB+1,I_^1_(LDQ-_$DC,€€I_0STORE DATA CTR_^1_(STQ-_$UB+2,I_^1_(LDQ-_$PC,I_^1_(STQ- UB+3,I_^1_%ENQ 37_+$ $ $ WORD COUNT FOR NAM BLOCK_%74*1804_^1_%STQ* DISKWR+5_J40*630_^1_(STQ- PER,I_,FOR PUNC_^1_(RTJ+_$PUNC_^1_%ENA 96_+RESTORE DISC WRITE RECORD LENGTH_^1_%STA* DSKWLN_^1_(ENA_%0_^1_(STA-_$CC,I_^1_(STA-_$DC,I_^1_(STA-_$PC,I_^1_(LDA-_$TSW,I_^1_(SAN_%1_^1_(JMP*_$*-2_^1END1_#ENQ_%48_^1_(LDA_%=N$2020_^1_(S€€TA-_$PB,B_^1_(INQ_%-1_^1_(SQM_%1_^1_(JMP*_$*-3_^1_(ENA_%-1_^1_(STA-_$CT,I_^1_(ENA_!1_^1_(STA- PSW,I_^1_(LDA_%ILSCST_^1_%INA -2_^1_(STA-_$SECTNO,I_,*** TEMP_^1_(ENA_%0_^1_(LDQ_%=XSL-DX_-ZERO LOOP FOR PASS 3_^1_(STA-_$DX,B_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-3_^1_(LDA+_$NAMC_^1_(SUB*_$END1+2_^1_(SAZ_%4_^1JJPR5_"ENA_%1_^1_(STA-_$RM,I_^1_(JMP+_$ASSEM_^1_(ENA_%0_^1_(STA-_$TSW,I_^1_(ENQ€€_%9_^1_(LDA_%=A**_^1_(STA-_$PB,B_^1_(SQZ_%2_^1_(INQ_%-1_^1_(JMP*_$*-3_^1_(LDA_%=ANN_^1_(STA-_$PB+4,I_^1_(RTJ+_$PRNT_^1_(LDA-_$TSW,I_^1_(SAN_%1_^1_(JMP*_$*-2_^1_(JMP*_$JJPR5_^1DOUT_#ADC_%0_^1_(STA*_$DISKWR+6_^1_(STQ*_$DISKWR+8_^1_(ENA_%0_^1_(STA-_$PSW,I_^1DISKWR RTJ- (REQPRO)_$FWRITE REQUEST._^1_(ADC_!$4C00_I**MSOS 4.0_^1_(ADC_%COP_^1_(ADC_%0_^1_%VFD N3/0,N1/0,N2/2,X10/STDSCR_^1DSK€€WLN NUM 96_^1_(ADC_%0_^1_(ADC_%0_^1_(ADC_%0_^1_(LDA-_$PSW,I_^1_(SAN_%1_^1_(JMP*_$*-2_^1_%ENA 96_+RESTORE RECORD LENGTH_^1_%STA* DSKWLN_^1_(JMP*_$(DOUT)_^1DIN_$ADC_%0_^1_(STA*_$DISKRD+6_^1_(STQ*_$DISKRD+8_^1_(ENA_%0_^1_(STA-_$PSW,I_^1DISKRD RTJ- (REQPRO)_$FREAD REQUEST._^1_(ADC_!$4800_I**MSOS 4.0_^1_(ADC_%COP_^1_(ADC_%0_^1_%VFD N3/0,N1/0,N2/2,X10/STDSCR_^1_(NUM_%96_^1_(ADC_%0_^1_€€(ADC_%0_^1_(ADC_%0_^1_(LDA-_$PSW,I_^1_(SAN_%1_^1_(JMP*_$*-2_^1_(ENA_%96_2RESTORE RECORD LENGTH_^1_(STA*_$DISKRD+5_^1_(JMP*_$(DIN)_^1RECV_#ADC_!0_%THIS ROUTINE CONVERTS SYMBOLS_^1_(INQ_!-1_$BACK TO 7 BIT CHARS-ADDR OF_^1_(LDA* WV_^1_(STA- LA+1,I SYMBOL TO BE CONVERTED IN Q AT_^1_(STA- LA+2,I_^1_(LDA_!=N$7C0_+ENTRY_^1_(AND- 1,Q_^1_(ARS_!6_0OUTPUT IS IN LA AND FF_^1_(SAZ_!1_^1_(I€€NA_!$20_#CONVERT 5 BIT CHAR BACK TO 7_^1_(INA_!$20_^1_(ALS_!8_^1_(STA- LA,I_^1_(ENA_!$3F_^1_(AND- 1,Q_^1_(INA_!$20_^1_(ADD- LA,I_^1_(STA- LA,I_^1_(INQ_!1_^1_(STQ* RR+1_^1_(ENQ_!1_^1RR_%LDA+ 0,Q_^1_%SAM WV-1_^1_(ADD* WV_^1_(STA- LA,B_^1_(INQ_!-2_^1_(SQZ_!2_^1_(INQ_!3_^1_(JMP* RR_^1_(JMP* (RECV)_^1WV_%NUM_!$2020,$2050,$2043,$2044,$2058_^1_(NUM_!$2D50,$2D43,$2D44_^1FLAGEX B€€ZS FLAGEX_LMSOS4.1_^1SCSAVE BZS SCSAVE_LMSOS4.1_^1SAVEI BSS SAVEI(1)_JMSOS4.1_^1SAVEA BSS SAVEA(1)_JMSOS4.1_^1SAVEQ BSS SAVEQ(1)_JMSOS4.1_^1SYTRSB NUM 0_QMSOS4.1_^1_%STA* SAVEA_MMSOS4.1_^1_%STQ* SAVEQ_MMSOS4.1_^1_%LDA- I_QMSOS4.1_^1_%STA* SAVEI_MMSOS4.1_^1_%LDA =XCONS_LMSOS4.1_^1_%STA- I_QMSOS4.1_^1_%LDA SYINDM_'INDEX TO SYRFTS_5MSOS4.1_^1_%SUB =N96_NMSOS4.1_^1_%SAM 1_€€QMSOS4.1_^1_%RTJ* SYTOUT_'SAVE SECT ON THE DISK_/MSOS4.1_^1_%LDA- LN,I_NMSOS4.1_^1_%TCA A_QMSOS4.1_^1_%LDQ SYINDM_LMSOS4.1_^1_%STA SYRFTS,Q_JMSOS4.1_^1_%INQ 1_QMSOS4.1_^1_%STQ SYINDM_LMSOS4.1_^1_%LDA SYINDM_LMSOS4.1_^1_%SUB =N96_NMSOS4.1_^1_%SAM 1_QMSOS4.1_^1_%RTJ* SYTOUT_LMSOS4.1_^1_%LDA* FLAGEX_LMSOS4.1_^1_%SAZ 3_QMSOS4.1_^1_%LDA- ET,I_NMSOS4.1_^1_%INA -1_PMSOS4.1_^1_%J€€MP* *+4_OMSOS4.1_^1_%LDA* SCSAVE_LMSOS4.1_^1_%ADD- ST,I_NMSOS4.1_^1_%INA -1_PMSOS4.1_^1_%LDQ SYINDM_LMSOS4.1_^1_%STA SYRFTS,Q_$STORE ADDR.OF REF_3MSOS4.1_^1_%INQ 1_QMSOS4.1_^1_%STQ SYINDM_LMSOS4.1_^1_%LDA- SC,I_NMSOS4.1_^1_%STA* SCSAVE_LMSOS4.1_^1_%LDA* SAVEI_MMSOS4.1_^1_%STA- I_QMSOS4.1_^1_%LDQ* SAVEQ_MMSOS4.1_^1_%LDA* SAVEA_MMSOS4.1_^1_%JMP* (SYTRSB)_JMSOS4.1_^1SYTOUT NUM 0€€_QMSOS4.1_^1SYDTOK LDA- PSW,I_MMSOS4.1_^1_%SAN 1_QMSOS4.1_^1_%JMP* SYDTOK_LMSOS4.1_^1_%LDA =XSYRFTS_JMSOS4.1_^1_%LDQ SYCADM_LMSOS4.1_^1_%RTJ+ DOUT_NMSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA SYINDM_LMSOS4.1_^1_%LDA SYCADM_LMSOS4.1_^1_%INA 1_QMSOS4.1_^1_%STA SYCADM_LMSOS4.1_^1_%JMP* (SYTOUT)_JMSOS4.1_^1_(END_^__€€PASS3 CSY/ €€1_%NAM PASS3_(DECK-ID A06 MACRO ASSEMBLER_%SUMMARY-162_^1*_$MASS STORAGE OPERATING SYSTEM VERSION 5.0_^1*_$SMALL SYSTEMS DIVISION, LA JOLLA, CALIFORNIA_^1*_$COPYRIGHT CONTROL DATA CORPORATION 1976_^1*_'PROGRAM BASE-MACRO ASSEMBLER 2.0_4**MSOS 4.0_^1_%ENT PASS3_^1PGLGTH EQU PGLGTH(56)_"SET FOR PAGE LENGTH_1MSOS4.1_^1PS_#EQU PS(3)_(TO READ IN PASS 4._^1STDLGO EQU STDLGO($E4)_^1€€REQPRO EQU REQPRO($F4)_^1STDOUT EQU STDOUT($FA)_^1STDPRT EQU STDPRT($FB)_^1STDOCD EQU STDOCD($FC)_^1DISP_!EQU DISP($EA)_^1_'EXT_!RP2_^1_%ENT_!PCO_^1_'ENT_!PCOSET_^1ASSEM_"ENQ_!PS_^1_(SQP_!MA1-*-1_^1_(ENA_!0_^1_(STA_!FST_^1_%ENQ 4_QMSOS4.1_^1_%STA APASS1,Q_JMSOS4.1_^1_%STA PS1W2,Q_KMSOS4.1_^1_%SQZ 2_QMSOS4.1_^1_%INQ -1_PMSOS4.1_^1_%JMP* *-6_OMSOS4.1_^1MA1_$LDA_!=XPS1ALF-FI€€LE-1_?**MSOS 4.0_^1_(JMP* *+1,Q_^1_(INA_!-3_^1_(INA_!-3_^1_(INA_!-3_^1_%INA -3_PMSOS4.1_^1_%INA 12_PMSOS4.1_^1GETFIL_!STA* FILE+8_^1_(ENA_!0_^1_(STA* FILE1_^1*_81 CARD DELETED_6MSOS4.1_^1_(STA* CSWW_^1_%ENQ PS_PMSOS4.1_^1_%LDA APASS1,Q_JMSOS4.1_^1_%STA* FILE2_MMSOS4.1_^1_%LDA PS1W2,Q_KMSOS4.1_^1_%STA* FILE+7_LMSOS4.1_^1FILE_!RTJ- (REQPRO)_$GTFILE REQUEST._^1_%NUM $5A00_L*€€*MSOS 4.0_^1_(ADC_!COO_^1_(ADC_!0_^1_(ADC_!$8C2_^1_(ADC_!0_^1_(ADC_!ASSEM_^1_(ADC_!0_^1_(ADC_!0_^1FILE1_"ADC_!0_^1FILE2_"ADC_!0_^1_(LDA* CSWW_^1_(SAN_!1_^1_(JMP* *-2_^1_%ENQ PS_PMSOS4.1_^1_%LDA* FILE2_MMSOS4.1_^1_%STA APASS1-1,Q_HMSOS4.1_^1_%LDA* FILE+7_LMSOS4.1_^1_%STA PS1W2-1,Q_IMSOS4.1_^1_(RTJ* *+1_^1ASSEM1_!ADC_!0_^1_(LDA* ASSEM1_^1_(SUB* ASMADC_^1_(SAN_!1_^1_(JMP* END€€ASB_^1_%LDA* ASSEM1_'SET STARTING ADDRESS IN REQUEST_'68*1500_^1_%INA APUNT1_'ABSOLUTE ADDRESS OF PUNT1_-68*1500_^1_%STA* APUNT_O68*1500_^1_%RTJ- (REQPRO)_$FWRITE REQUEST._^1_(ADC_!$4C00_^1_(ADC_!0_^1_(ADC_!0_^1_%VFD N3/0,N1/1,N2/2,X10/STDOCD_^1_(ADC_!6_^1APUNT ADC_#0_P68*1500_^1_%JMP- (DISP)_'EXIT_^1PUNT1_"ALF_!6,ABS BASE ERR_^1APUNT1 EQU APUNT1(PUNT1-ASSEM1)_@68*1500_^1ASMADC€€_!ADC_!ASSEM1_^1_(BZS_!CSWW_^1COO_$ENA_!1_^1_(STA* CSWW_^1_'JMP- (DISP)_#EXIT_^1PS1ALF ALF 3,PASS1_^1PS2ALF ALF 3,PASS2_^1PS3ALF ALF 3,PASS3_^1PS4ALF_!ALF 3,TABLST_G**MSOS 4.0_^1PS5ALF ALF 3,XREF_LMSOS4.1_^1MA5_"ADC 0_^1_(EQU_%ENDASB(MA5+1)_^1PASS3 LDA SYCADM_^1_%SUB SYTRFD_LMSOS4.1_^1_%STA SYTRFM_LMSOS4.1_^1_%LDA SYINDM_LMSOS4.1_^1_%INA -1_PMSOS4.1_^1_%ALS 8_QMSOS4.€€1_^1_%ADD SYTRFM_LMSOS4.1_^1_%STA SYTRFM_LMSOS4.1_^1_%LDA- ET,I_NMSOS4.1_^1_%STA SYEXT_MMSOS4.1_^1_%ENA 1_QMSOS4.1_^1_%STA- PSW,I_^1_%STA- CSW,I_^1_%STA- DSW,I_^1_%STA- DSWW,I_^1_%LDA L_^1_(SAN_%1_^1_(JMP*_$TESTPN_^1_(LDA-_$I_^1_(STA*_$JJJ_^1_%RTJ- (REQPRO)_$STATUS REQUEST._^1_%NUM $4600_^1_%VFD N3/0,N1/0,N2/2,X10/STDPRT_^1_%NUM 0_^1_(SQP_%1_^1_(JMP*_$*-5_^1_(LDA*_$JJJ_^1_(€€STA-_$I_/RESTORE I-REG_^1_(TRQ_%A_^1_(AND*_$JJ3_-MASK TO LEAVE ONLY EQUIP CODE_^1_(ALS_%5_^1_%INA_!-1_^1_(SAZ_%3_^1_(INA_!-5_L**MSOS 4.0_^1_(SAN_!2_M**MSOS 4.0_^1_(JMP*_$JPRNST_^1_(JMP*_$JPRNMT_^1TESTPN_!RTJ_%EJECT_^1_(JMP*_$NEXT_^1JJJ_$NUM_%0_^1PRNFLG_!NUM_%0_^1LINE_#NUM_%49_^1JJ3_"NUM $3800_(MASK FOR DEVICE TYPE_^1PJECT_"NUM_%$000C_"CHAR FOR PAGE EJECT CARR CONTROL_^1JJ5_$NUM_%$€€2020_"CHAR FOR NORMAL CARRIAGE CONTROL_^1CARCON_!NUM_%0_^1JPRNST_!LDA_%=N$0C00_%PRINTER IS STANDARD_^1_(STA*_$PJECT_(PAGE EJECT CODE_^1_(ENA_%0_^1_(STA*_$JJ5_*NORMAL CARRIAGE CONTROL_^1_(ENA_%36_^1JJ4_$STA*_$LINE_^1_(JMP*_$TESTPN_^1JPRNMT_!LDA_%=N$3120_%PRINTER IS MAG TAPE_^1_(STA*_$PJECT_(*_^1_(STA*_$PRNFLG_^1_(ENT_%PRNFLG_^1_(JMP*_$TESTPN_'*_^1PCO_$ENA_$0_^1_%RTJ+_"CHPR_^1_%SAN_!€€PCOERR_^1_'LDA-_!NU,I_^1_%TCA_!A_^1_)STA*_!PCOSET_^1_%JMP+_!IGNORE_^1PCOSET_"NUM_"0_^1PCOERR ENQ_"1_^1_%RTJ+_!ER_^1_%JMP+_!IGNORE_^1NEXT_#ENA_%0_^1_(ENQ_%14_^1_(STA-_$DX,B_^1_(INQ_%-1_^1_(SQM_%1_^1_(JMP*_$NEXT+2_^1_(STA-_$LP,I_^1_(STA+_$RP2_%CLEAR RT PAREN COUNTER_^1NXT1_!ENA PGLGTH_LMSOS4.1_^1_(SUB-_$PAGL,I_^1_(SAZ_%1_^1_(SAP_%2_^1_(RTJ_%EJECT_/PAGE EJECT_^1_(RTJ*_$RDIM_0READ IL€€ FROM DISC_^1_(LDQ-_$SKF,I_^1_(SQN_%NXT3-*-1_,SKIPPING ON IF_^1_(ALS_%2_^1_(SAP_%3_^1_(ENQ_%3_3ERROR FROM PREVIOUS PASS_^1_(RTJ+_$ER_^1_(LDA-_$IL,I_^1_(ALS_%3_^1_(SAP_%NXT3-*-1_^1NXTOUT LDA- PSW,I_^1_%SAN 1_^1_%JMP* NXTOUT_^1_%RTJ+ PRNT_^1_(JMP*_$NEXT_^1NXT3_#ENA_%-1_^1_(STA-_$CT,I_^1_(JMP_%LBPK_^1DECV_#ADC_!0_0NUMBER TO CONVERT IN A_^1_(ENA_!0_%THIS ROUTINE CONVERTS THE_^1_(STA- €€ TR,I_"BINARY LINE NUMBER TO ASCII_^1_(ENQ_%4_^1_(LDA- LN,I_"OUTPUT IS 3 DIGITS IN QA WITH_^1_(INA_!-10_.A TRAILING BLANK_^1_(SAM_!2_^1_(RAO- TR,I_^1_(JMP* *-3_^1_(INA_!58_$ADD BACK 10 PLUS HEX 30 TO_^1_(STA- TR,B_-MAKE ASCII CHAR_^1_(LDA- TR,I_^1_(STA-_$TR+5,I_^1_(ENA_!0_^1_(STA- TR,I_^1_(LDA-_$TR+5,I_^1_(INQ_!-1_^1_(SQZ_!1_^1_(JMP* *-13_^1_(LDQ- TR+1,I_^1_(QLS_!8_^1_(ADQ-€€ TR+2,I_^1_(LDA- TR+3,I_^1_(ALS_!8_^1_(ADD-_$TR+4,I_^1_(JMP* (DECV)_^1RDIM_#ADC_%0_^1_(LDA*_$RZ+1_^1_(LDQ-_$BS,I_^1_(SQZ_%1_^1_(INA_%48_^1_(STA*_$IM_^1_(STA_!OFJ2_J**MSOS 4.0_^1_(ENA_%0_^1_(SQZ_%2_3READ IN_^1_(STA-_$BS,I_0FLIP BUFFER SWITCH_^1_(JMP*_$RZ1_^1_(RAO-_$BS,I_^1RZ_%LDA_%=XIB_^1_(LDQ-_$SECTNO,I_^1_%INQ 2_^1_(STQ-_$SECTNO,I_^1_(RTJ+_$DIN_^1RZ1_$ENQ_%41_^1_(LDA*_$(IM),Q_€€^1_(SAZ_%1_^1_(STA-_$LN,I_0STORE LINE NO_^1_(INQ_%1_^1_(LDA*_$(IM),Q_^1_(STA-_$IL,I_0IL FLAG BITS_^1_(ENQ_%0_3MOVE IMAGE TO_^1RZ2_$LDA*_$(IM),Q_^1_(SUB_%=N$0D00_^1_%SAZ RZ2A_^1_(ADD*_$*-2_^1_(STA-_$PB+9,B_^1_(INQ_%1_^1_(JMP*_$RZ2_^1RZ2A_!STQ- SL,I_)STORE IMAGE LENGTH_^1_(ENA_%8_^1_(SUB_%LINE_^1_(AAQ_%Q_^1_%SQM RZ2B_^1_(ENQ_%-9_^1_(ADQ_%LINE_^1_(STQ-_$SL,I_0INDICATED_^1RZ2B_!LDA- €€LN,I_^1_(SAN_%4_^1_(LDA_%=N$2020_^1_(TRA_%Q_^1_(JMP*_$*+1_^1_(RTJ*_$DECV_0CONVERT LINE NO._^1_(STQ-_$PB,I_^1_(STA-_$PB+1,I_^1_(LDA-_$IL,I_^1_(JMP*_$(RDIM)_^1_(BZS_%IM(1),IB(96)_^1STATUS_!ADC_%0_^1_(LDA- CSW,I_!WAIT FOR COMPLETION_^1_(SAN_%1_^1_(JMP*_$*-2_^1_(JMP*_$(STATUS)_,MARK FOR ERROR_^1END_$LDA-_$MD,I_^1_(ENQ_%4_^1_(SAN_%ENDER-*-1_^1_(RTJ+_$CHPR_^1_(SAN_%2_^1_(LDA-_$CS,I_^1_(€€SAZ_%3_^1_(ENQ_%1_^1ENDER_"RTJ+_$ER_^1_(RTJ+_$PRNT_^1_(RTJ+_$UNCP_0EMPYT PUNCH BUFFER_^1_(ENA_!0_^1_(STA- WC,I_^1_(STA- NU,I_^1_(LDA-_$PSW,I_/WAIT FOR END_^1_(SAN_%1_3OF LAST PRINT_^1_(JMP*_$*-2_^1_%LDA- CSW,I_(WAIT FOR END OF PUNCH_^1_%SAN 1_^1_%JMP* *-2_^1_(JMP_%ASSEM_^1WDPK_#ADC_!0_^1_(LDA- W1,I_^1_(RTJ* (LDCP+3) HEXC_^1_(LLS_!8_^1_(STQ- PB+6,I_^1_(LDQ* WV_^1_(LLS_!8_^1_(€€ALS_!8_^1_(QLS_!8_^1_(STQ- PB+7,I_^1_(STA- PB+5,I_^1_(LDA- EX,I_^1_(SAZ_%WA1-*-1_^1_(LDA* WV+4_^1WA_%LDQ- PB+7,I_^1_(QLS_!8_^1_(LLS_!8_^1_(STA- PB+8,I_^1_(STQ- PB+7,I_^1_(RTJ*_$(ENDER+3)_^1_(JMP* (WDPK)_^1WA1_$LDQ-_$RC,I_^1_(LDA* WV,Q_^1_(JMP* WA_^1WV_%NUM_!$2020,$2050,$2043,$2044,$2058_^1_(NUM_!$2D50,$2D43,$2D44_^1MVFLG NUM 0_^1LDCP_#ADC_!0_^1_(LDA- PC,I_^1_(RTJ+ HEX€€C_^1_(STQ- PB+3,I_^1_(STA- PB+4,I_^1_(LDQ- RM,I_^1_(LDA* WV,Q_^1_(STA- PB+2,I_^1_(RTJ* WDPK_^1_(JMP* (LDCP)_^1RECV_#ADC_!0_%THIS ROUTINE CONVERTS SYMBOLS_^1_(INQ_!-1_$BACK TO 7 BIT CHARS-ADDR OF_^1_(LDA* WV_^1_(STA- LA+1,I SYMBOL TO BE CONVERTED IN Q AT_^1_(STA- LA+2,I_^1_(LDA_!=N$7C0_+ENTRY_^1_(AND- 1,Q_^1_(ARS_!6_0OUTPUT IS IN LA AND FF_^1_(SAZ_!1_^1_(INA_!$20_#CONVER€€T 5 BIT CHAR BACK TO 7_^1_(INA_!$20_^1_(ALS_!8_^1_(STA- LA,I_^1_(ENA_!$3F_^1_(AND- 1,Q_^1_(INA_!$20_^1_(ADD- LA,I_^1_(STA- LA,I_^1_(INQ_!1_^1_(STQ* RR+1_^1_(ENQ_!1_^1RR_%LDA+ 0,Q_^1_%SAM PUNC-1_^1_(ADD* WV_^1_(STA- LA,B_^1_(INQ_!-2_^1_(SQZ_!2_^1_(INQ_!3_^1_(JMP* RR_^1_(JMP* (RECV)_^1MOVEIT ADC 0_^1_%ENQ 56_^1MOVE2 LDA- UB,B_)MOVE PUNCH BUFFER TO ALTERNATE._^1_%STA- AUB€€,B_^1_%INQ -1_^1_%SQM 1_^1_%JMP* MOVE2_^1_%JMP* (MOVEIT)_^1PUNC_#ADC_%0_^1_(LDQ+_$X_^1_%SQN 3_^1_%ENA 0_^1_%STA* MVFLG_^1_(JMP*_$PC2_1NO LOAD AND GO_^1_%LDA- STDLGO_'LOAD AND GO SECTOR NUMBER._^1_(SUB_%=N750_^1_(SAM_%PC1-*-1_^1_(ENA_%0_^1_(STA*_$(PUNC+2)_^1_(ENQ_%9_3LOAD AND GO OVERFLOW_^1_(RTJ*_$(ENDER+1)_^1_%ENA 0_^1_%STA* MVFLG_^1_(JMP*_$PC2_^1PC1_"RTJ STATUS_(CHECK IF PUN€€CH DONE BEFORE MOVING_^1DSTAT LDA- DSW,I_^1_%SAN 1_^1_%JMP* DSTAT_^1_%RTJ* MOVEIT_^1_%LDQ- STDLGO_^1_(LDA- PER,I_I**MSOS 4.0_^1_(STA_#DISKW5_F**MSOS 4.0_^1_(LDA*_$PC3+1_^1_(RTJ+_$DOUT_^1_%RAO- STDLGO_^1_%ENA -0_^1_%STA* MVFLG_^1PC2_"LDQ P_^1_(SQZ_!PO-*-1_^1PC3_"LDA =XCONS+AUB_^1_(LDQ- PER,I_,NO WDS TO OUTPUT_^1_(RTJ*_$BW_2BINARY WRITE_^1PO_#RTJ* ZEROIT_^1_%JMP* (PUNC)_^1ZERO€€IT ADC 0_^1_%ENA 0_^1_%ENQ 56_^1ZEROA STA+ UB,B_^1_%INQ -1_^1_%SQM 1_^1_%JMP* ZEROA_^1_%JMP* (ZEROIT)_^1BW_%ADC_%0_^1_%STA* BWA+1_^1_%STQ* BWA_^1_%RTJ STATUS_^1_%LDA* MVFLG_^1_%SAM 1_^1_%RTJ* MOVEIT_^1_(ENA_%0_^1_(STA-_$CSW,I_^1_%RTJ- (REQPRO)_^1_(NUM_!$4C00_I**MSOS 4.0_^1_(ADC_%CO_^1_(ADC_%0_^1_%VFD N3/0,N1/0,N2/2,X10/STDOUT_^1BWA_"ADC 0_^1_(ADC_%0_^1_(JMP*_$(BW)_^1RBPK_€€#ADC_!0_^1_(LDA- WC,I_-RBD WORD COUNT_^1_(SAN_!RA-*-1_^1_(INA_!1_^1_(STA- WC,I_^1_(LDQ_!=N$4050 RBD IMG AND 7-9 CODE_^1_(STQ- UB,I_^1_(LDQ- RM,I_^1_(QLS_!12_^1_(STQ- UB+1,I_^1_(LDQ- PC,I_^1_(STQ- UB+2,I_^1RA_%ENQ_!0_^1_(STQ- HX,I_-SET SWITCH FOR SBRTP_^1_(RTJ* RB_^1_(LDQ- XMOD,I_^1_(LDA- W1,I_^1_(STA- UB+1,B_^1_(LDA- WC,I_^1_(INA_!1_^1_(STA- WC,I_^1_(INA_!-44_^1_(SAN_€€!1_^1_(RTJ* UNCP_^1_(JMP* (RBPK)_^1RB_%ADC_!0_0HX=0 NEED LDA- RM,I_^1_(ENQ_!0_0HX NON-ZERO NEED INA 8_^1_(DVI_!=N4_#A CONTAINS WORD COUNT-DIV BY 4_^1_(STQ- RP,I_-SAVE REMAINDER_^1_(MUI_!=N5_^1_(STA- AU,I_-REL BYTE POINTER_^1_(INA_!5_^1_(DVI* *-3_^1_(ADD- WC,I_^1_(STA- XMOD,I_+COMMAND WORD POINTER_^1_(LDQ- RP,I_-REMAINDER_^1_(ENA_!3_^1_(EAQ_!Q_^1_(LDA- HX,I_^1_%SAN UNCP-2_€€^1_(LDA- RC,I_-RELO BYTE FOR OUTPUT_^1RD_%SQZ_!3_^1_(ALS_!4_^1_(INQ_!-1_^1_(JMP* RD_^1_(LDQ- AU,I_-REL BYTE WORD POINTER_^1_(ADD- UB+1,B_^1_(STA- UB+1,B_^1_(JMP* (RB)_^1_(ENA_!8_^1_(JMP* RD_^1UNCP_#ADC_!0_^1_(LDA- WC,I_^1_(SAN_!1_^1_(JMP* (UNCP)_^1_(INA_!-1_^1_(RAO- HX,I_^1_(RTJ* RB_^1_(LDQ- XMOD,I_+SET WRD CNT_^1_(INQ_!2_0FOR PUNC_^1_(STQ- PER,I_^1_%RTJ+ PUNC_^1_(ENA_€€!0_^1_(STA- WC,I_-ZERO WORD COUNT_^1_(JMP* (UNCP)_^1HEXC_#ADC_!0_^1_(LDQ- I_^1_(STQ- RP,I_^1_(ENQ_!0_^1_(STQ- I_^1_(ENQ_!0_^1_(LLS_!4_^1_(INQ_!-$A_^1_(SQM_!1_^1_(INQ_!7_^1_(INQ_!$3A_^1_(STQ_!CONS+TR,I_^1_(LDQ- I_^1_(INQ_!-3_^1_(SQZ_!2_^1_(RAO- I_^1_(JMP* HEXC+5_^1_(LDA_!CONS+RP_^1_(STA- I_^1_(LDQ- TR,I_^1_(QLS_!8_^1_(ADQ- TR+1,I_^1_(LDA- TR+2,I_^1_(ALS_!8_^1_(ADD- TR+3€€,I_^1_(JMP* (HEXC)_^1BLN_$ADC_!0_^1_(LDA_!=N$2020_^1_(ENQ_%48_^1_(STA- PB,B_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-3_^1_(JMP* (BLN)_^1PRNT_#ADC_%0_^1_(LDA_%L_^1_(LDQ- ES,I_^1_(SQZ_!1_^1_(JMP* PE_/PASS 2 ERROR_^1_(SAZ_%BLNK-*-1_^1_(LDA- YL,I_^1_(SAN_!BLNK-*-1_^1_(LDQ-_$SL,I_^1_(INQ_%9_3LENGTH OF BUFFER_^1_(STA- SL,I_^1_(LDA-_$MPSW,I_^1_(SAZ_%1_^1_(ENQ_%9_3PRINT BINARY WD ONLY_^1_€€%LDA* PDA_^1_(RTJ*_$WRIT_^1_(JMP*_$BLNK_^1BLNK_#RTJ* BLN_^1_(JMP*_$(PRNT)_^1PD_#ENA 0_Q44*701_^1_%STA- PSW,I_^1_%RTJ- (REQPRO)_$FWRITE REQUEST_^1_(NUM_!$4C00_I**MSOS 4.0_^1_%ADC COP_^1_(ADC_%0_^1_%VFD N3/0,N1/1,N2/2,X10/STDOCD_^1_%ADC 4_Q44*701_^1PDA_"ADC CONS+PB_^1_%LDA- PSW,I_M44*701_^1_%SAN 1_Q44*701_^1_%JMP* *-2_O44*701_^1_(JMP*_$BLNK_^1PE_%SAN_!1_^1_(JMP* PD_$NO LIST-O€€UTPUT ERR ON TYPE_^1_(LDA_%=XPEB_^1_(ENQ_%9_^1_(RTJ*_$WRIT_^1_(JMP*_$(PRNT)_^1WRIT_#ADC_!0_^1_(RAO-_$PAGL,I_^1_(STA* WR4+1_,START ADDR_^1_%INQ_#-1_^1WR5_"LDA*_"(WR4+1),Q_#SQEEZE TRAILING BLANKS_^1_%SUB*_"BLN+2_^1_%SAN 4_P**MSOS 4.0_^1_%INQ_#-1_^1_%SQZ_#1_^1_%JMP*_"WR5_^1_%ENQ_!5_O**MSOS 4.0_^1_%INQ_#1_^1_(STQ* WR1_.NUMB WDS_^1_(LDA_%CARCON_^1_(STA*_$CRCON1_^1WR3_$LDA- PSW,I_^1_€€(SAN_!1_^1_(JMP* WR3_.WAIT FOR COMPLETION_^1_(ENQ_%48_^1WR4_$LDA+ 0,Q_.MOVE IMAGE TO ALTERNATE_^1_(STA* APB,Q_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* WR4_^1WR2_$ENA_!0_^1_(STA- PSW,I_^1_(RAO*_$WR1_^1_%RTJ- (REQPRO)_$FWRITE REQUEST._^1_(NUM_!$4C00_I**MSOS 4.0_^1_(ADC_!COP_^1_(ADC_!0_^1_%VFD N3/0,N1/1,N2/2,X10/STDPRT_^1WR1_$ADC_!0_^1_(ADC_%APB-1_^1_(LDA-_$PAGL,I_^1_(INA_%-57_^1_(SAZ_%1€€_^1_(JMP*_$(WRIT)_^1_(LDA*_$WRIT_^1_%STA*_"ER-1_^1_(RTJ+_$EJECT_^1_(JMP+_$0_^1ER_%ADC_!0_^1_(RAO_%ERC_^1_%LDA- SC,I_NMSOS4.1_^1_%AND- $23,Q_MMSOS4.1_^1_%STA* TEMP_NMSOS4.1_^1_%LDA- SC,I_NMSOS4.1_^1_%EOR- $23,Q_MMSOS4.1_^1_%ADD* TEMP_NMSOS4.1_^1_%STA- SC,I_NMSOS4.1_^1_(LDQ* ERT,Q_,PICK UP ERR MESSAGE_^1_(STQ- ES,I_^1_(LDA_%L_^1_(SAN_%ER2-*-1_^1ER1_$LDA_%=A**_^1_(STA-_$PB+2,I_^1_(S€€TQ-_$PB+3,I_^1_(RTJ_%DECV_^1_(STQ-_$PB,I_^1_(STA-_$PB+1,I_^1ER3_$RTJ*_$PRNT_^1_(ENA_%0_^1_(STA-_$RC,I_^1_(STA-_$ES,I_^1_(JMP*_$(ER)_^1ER2_$STQ*_$PEB+3_^1_(JMP*_$ER3_^1CRCON1_!NUM_%$2020_^1_(BZS_%APB(49)_^1CO_#SQP CO1_^1_%ENA 0_^1_%STA+ P_^1CO1_"INQ 1_^1_(STQ_!CONS+CSW_^1_%JMP- (DISP)_'EXIT_^1COP_$INQ_!1_^1_(STQ_!CONS+PSW_^1_%JMP- (DISP) EXIT_^1COWR_!INQ 1_^1_%STQ CONS+DSW_^1_%€€JMP* COP-1_^1CORD_!INQ 1_^1_%STQ CONS+DSWW_^1_%JMP* COP-1_^1ERT_$ALF_!1,DS_^1_(ALF_!1,EX_^1_(ALF_!1,LB_^1_(ALF_%1,PP_^1_(ALF_!1,OP_^1_(ALF_!1,RG_^1_(ALF_!1,RL_^1_(ALF_!1,OV_^1_(ALF_!1,UD_^1_(ALF_%1,MO_^1PEB_$ALF_%9,****** **********_^1TEMP_!BSS TEMP_NMSOS4.1_^1*_'HOLDERS AND SWITCHES FOR PASS 2_^1*_1ST MUST BE FIRST_^1_(EQU_%ST(1),ET(ST+1),PSW(ET+1),PB(PSW+1)_^1_%EQU DSW(PB+49€€),DSWW(DSW+1)_^1_%EQU TSW(DSWW+1),CSW(TSW+1),SECTNO(CSW+1)_^1_%EQU_#PNAM(SECTNO+1)_^1_%EQU_#WMS(PNAM+3),CSYSCT(WMS+1)_^1_(EQU_%SCOUNT(CSYSCT+1),XSYSCT(SCOUNT+1)_^1_(EQU_%CC(XSYSCT+1),DC(CC+1)_^1_(EQU_%PC(DC+1),DX(PC+1),LA(DX+2),W1(LA+4),W2(W1+1)_^1_(EQU_%AD(W2+1),AF(AD+1),AM(AF+1),CL(AM+1),EX(CL+1)_^1_(EQU_%RC(EX+1),AX(RC+1),LC(AX+1),AU(LC+1),AR(AU+1)_^1_(EQU_%TR(AR+1),SY(TR+7),NU€€(SY+4),SG(NU+1),RP(SG+1)_^1_(EQU_%HX(RP+1),XMOD(HX+1),LT(XMOD+1),ES(LT+1),LP(ES+1)_^1_(EQU_%IG(LP+1),NS(IG+1),IS(NS+1),CT(IS+1),CS(CT+1)_^1_(EQU_%IL(CS+1),MD(IL+1),ID(MD+1),SKF(ID+1)_^1_(EQU_%BS(SKF+1)_^1_%EQU AUB(BS+1)_^1_%EQU UB(AUB+57)_^1_(EQU_!LN(UB+57),OR(LN+1),OC(OR+1)_^1_(EQU_!AS(OC+1),SC(AS+1),SS(SC+1)_^1_(EQU_%WC(SS+1),RM(WC+1)_^1_(EQU_%YL(RM+1),SZ(YL+1)_^1_(EQU_%PER(SZ+€€1)_^1_(EQU_%VBT(PER+1),VMS(VBT+1),IFNAM(VMS+1)_^1_(EQU_%MPSW(IFNAM+1)_^1_(EQU_%VCT(MPSW+1),VWD(VCT+1)_^1_(EQU_%AX16(VWD+1)_^1_(EQU_%ETSAVE(AX16+1)_^1_(EQU_%DVFL(ETSAVE+1)_^1_(EQU_%PAGL(DVFL+1)_^1_(EQU_%SL(PAGL+1)_^1_(COM_%CONS(SL+1)_^1_(COM_%FST_^1_%COM L,P,X,C,MM,ILSCST,SRSCST,ILSCND_3MSOS4.1_^1_(COM_%ERC_^1_%COM LGSECT_^1_%COM SYRFTS(96)_"SECT.REF.TBL.SYMBOLS_0MSOS4.1_^1_%COM €€ SYCADM_'ADDR.TO SECT.REF.TBL.SYMBOLS_(MSOS4.1_^1_%COM SYEXT_MMSOS4.1_^1_%COM SYINDM_LMSOS4.1_^1_%COM SYTRFM_'ENTRY ADDR.REF.TBL.SYMBOLS_*MSOS4.1_^1_%COM SYTRFD_'1ST ADDR.REF.TBL.SYMBOLS-DISK_'MSOS4.1_^1_%COM APASS1,APASS2,APASS3,ATBLST,AXREF,PAGE_,MSOS4.1_^1_%COM PS1W2,PS2W2,PS3W2,PS4W2,PS5W2_5MSOS4.1_^1_%EXT EJECT,DIN,CHPR,DOUT,MOVE_^1_(EXT_!CHPU,N3,REGP,MAPR,DISKR5,SKPROC€€,OFJ2_***MSOS 4.0_^1_(ENT_!ER,END,OE,LDCP,WDPK,PRNT,NEXT,RBPK,UNCP_^1_(ENT_!PUNC,SYCH,IGNORE,TBLIN,RESTBL,RECV,PJECT_^1_(EXT_"DISKW5_G**MSOS 4.0_^1_(ENT_!CARCON,WRIT,JJ5,CO,STATUS_5**MSOS 4.0_^1_%ENT CORD,COWR_^1LAA_$ADC_!CONS+LA,CONS+SY_^1SYCH_#ADC_!0_^1_(LDQ- SS,I_-SS=0, SYMBOL IN LABEL_^1_(SQN_!5_%SS NOT ZERO,SYMBOL IN SY_^1_(LDQ* LAA_^1_%STQ* S1A+1_^1_(INQ_!3_^1_%STQ* S3A+1_€€^1_(JMP* *+3_^1_(LDQ* LAA+1_^1_(JMP* SYCH+4_^1_(LDQ- I_^1_(STQ- RP,I_-SAVE I_^1_(INA_!-1_^1S4_%ENQ_!0_^1_(STA- I_%ADDRESS-1 OF TBL TO BE SEARCHED_^1_(STA+ CONS+HX_*SAVE ADDR OF 1ST WORD_^1S2_%LDA- 1,I_.PICK UP ENTRY_^1_(SAN_!5_^1_(ENQ -0_)END OF TABLE NOT FOUND_-**MSOS 4.0_^1SX_%LDA_!CONS+RP_^1_(STA- I_0RESTORE I_^1_(JMP* (SYCH)_^1_(SAM_!S3-*-1_^1_(SQP_!2_^1S1_%RAO- I_%€€SLEWING ENTRY-INCREMENT ADDRESS_^1_(JMP* S2_^1_(LDA_!=N$7FF_+MASK_^1_(SQZ_!1_0PROCESSING 1ST WORD_^1_(SET_!A_^1_(AND- 1,I_^1S1A_"SUB+ 0,Q_*THIS LOC IS MODIFIED_^1_(SAZ_!1_0MATCH_^1_(INQ_!-4_$NO MATCH-SET Q NEG TO SLEW_^1_(INQ_!1_^1_(JMP* S1_/GO BACK FOR MORE_^1S3_%SQM_!S5-*-1_+WERE SLEWING_^1_(INQ_!-1_^1_(TCQ_!Q_%DOES ORDINAL IN SY+3 MATCH Q_^1S3A_"ADQ+ 0_,THIS LOC IS MODIFIED_^€€1_(SQN_!S5-*-1_+NO-ENTRY DID NOT MATCH_^1_(LDQ* (S2-1) CONS+HX ADDR-1 OF 1ST WD TO Q_^1_%RTJ SYTRSB_LMSOS4.1_^1_(JMP* SX_^1S5_%LDA- I_^1_(INA_!1_^1_(JMP* S4_^1TBLIN_"ADC_%0_^1_(LDA-_$CSYSCT,I_^1_%SUB+ ILSCND_^1_(LDQ-_$XSYSCT,I_^1_(SAN_%4_3TABLES ON MS_^1_(SQZ_%1_3NO TABLES ON MS_^1_(RTJ*_$RESTBL_.ALL TABLES SEARCHED_^1_(ENA_%-0_^1_(JMP*_$(TBLIN)_^1_(TRQ_%A_^1_(SUB-_$CSYSCT,I_^€€1_(SAN_%2_^1_(LDA-_$ET,I_0CURRENT TABLE IN CORE_^1_(STA-_$ETSAVE,I_,WRITE IT OUT_^1_(LDA-_$CSYSCT,I_^1_(SUB-_$SCOUNT,I_^1_(STA-_$CSYSCT,I_^1_(LDA-_$WMS,I_^1TBDISK_!STA+_$DISKR5_^1_(LDA-_$ST,I_^1_(LDQ-_$CSYSCT,I_^1TBDIN_"RTJ+_$DIN_^1_(LDQ_%=XCONS_.GET NEW EXT ADDR_^1_(INQ_%-2_^1_(LDA-_$1,Q_^1_(SAZ_%2_^1_(INQ_%-1_^1_(JMP*_$*-3_^1_(INQ_%2_^1_(STQ-_$ET,I_^1_(ENA_%0_^1_(JMP*_$(TBLIN)_^1€€RESTBL_!ADC_%0_^1_(LDA-_$XSYSCT,I_^1_(SAZ_%2_3NO TABLES ON MS_^1_(SUB-_$CSYSCT,I_^1_(SAN_%1_^1_(JMP*_$(RESTBL)_,CURRENT TABLE IS IN CORE_^1_(LDA-_$ETSAVE,I_,RESTORE EXTERNAL ADDR_^1_(STA-_$ET,I_^1_(LDA-_$WMS,I_/READ CURRENT TABLE_^1_(STA*_$(TBDISK+1)_^1_(LDA-_$ST,I_^1_(LDQ-_$XSYSCT,I_,BACK IN_^1_(STQ-_$CSYSCT,I_,RESET CURRENT TABLE NO._^1_(RTJ*_$(TBDIN+1)_^1_(JMP*_$(RESTBL)_^1LBPK_€€#RTJ+_$CHPU_^1_(INA_!-$A_.IS IT AN ASTERISK_^1_(SAN_!1_0NO_^1_(JMP* LK_/YES_^1_(ENA_!-1_^1_(STA- CT,I_-SET CHAR CTR BACK_^1_(RAO- IS,I_-LEADING SIGN ILLEGAL_^1_(RTJ*_$(OPC2+3)_,GET LABEL_^1_(SAZ_!L3-*-1_+NO ERROR_^1L6_%ENQ_!2_^1_(RTJ+ ER_^1_(ENA_!0_^1_(STA- LA,I_^1_(JMP* L1_^1L3_%SQZ_!L4-*-1_+NUMERIC_^1_(RTJ_!MOVE_^1_(JMP* L5_^1L4_%LDA- SY+1,I_+IS IT NULL FIELD_^1_(SAZ_%3_^€€1L5_%LDA- CS,I_^1_(SAN_!1_^1L1_%JMP* OPCP_^1_(JMP* L6_^1IGNORE_!LDA-_$MPSW,I_^1_(EQU_%LK(IGNORE)_^1_(SAN_%2_3NO MACRO PRINT_^1_(JMP+_$NXTOUT_^1_(JMP*_$OPCNX_^1OPCP_#LDA-_$SKF,I_^1_(SAZ_%2_,-_^1_(JMP+_$SKPROC_^1_(LDQ-_$IL,I_^1_(SQM_%1_^1_(JMP*_$OPC2_0NOT A MACRO_^1_(QLS_%1_^1_(SQP_%OPC1-*-1_,MACRO_^1_(LDA-_$MD,I_0MACRO CONTINUATION_^1_(INA_%-2_^1_(SAP_%2_^1_(ENQ_%0_3NOT IN DEPTH_€€^1_(STQ-_$MPSW,I_.PRINT THIS CONTINUATION CARD_^1_(INA_%1_^1_(STA-_$MD,I_^1OPC1_#LDA-_$MPSW,I_^1_(SAN_%2_^1_(RTJ_%PRNT_0PRINT_^1_(RAO-_$MD,I_0BUMP MACRO DEPTH SWITCH_^1OPC1C_"LDA_%MM_^1_(SAN_%1_^1_(RAO-_$MPSW,I_.RESET NO PRINT SWITCH_^1OPCNX_"JMP_%NEXT_^1OPC2_#RAO-_$IG,I_^1_(RAO- IS,I_-LEADING SIGN ILLEGAL_^1_(RTJ+ CHPR_-GET OPCODE_^1_(SAN_%OE_^1OPC21_"SQZ_%1_^1_(JMP*_$OF_^1_(LDA€€- NU,I_"NUMERIC OPCODE-MUST BE ZERO_^1_(SAZ_!O2-*-1_^1OE_%ENQ_!4_^1_(RTJ* (L6+2) ER_^1_(LDA- CS,I_-PICK UP TERMINATOR_^1_(SAZ_%3_--_^1_(RTJ+_$CHPU_*-_^1_(JMP*_$*-4_+-_^1_(STA- AM,I_^1O2_%ENA_%-1_^1_(STA- CL,I_"SET CLASS CODE FOR ADC_^1_(ENQ_!0_^1_(JMP* O7-3_^1OF_%ENQ_%43_^1_(LDA_!(IM),Q_H**MSOS 4.0_^1_(SAN_%1_^1_(JMP*_$OE_^1O6_%STA-_$CL,I_^1_(SAM_%1_^1_(JMP* O7_/MACHINE OPCO€€DE_^1_(ENQ_%45_^1_(LDQ_!(IM),Q_H**MSOS 4.0_^1_(RAO- IS,I_^1_(JMP_!N3_^1O7_%ENQ_%44_^1_(LDQ_!(IM),Q_H**MSOS 4.0_^1_(STQ-_$W1,I_0BINARY OP CODE_^1_)INA -9_%TEST FOR CLASS 9 TYPE 1 INTER-REG TRANSFER_^1_)SAN O8_%SKIP IF NOT CLASS 9_^1_(LDA- CS,I_^1_(SAZ_!1_^1_(JMP* OE_/ERROR-ILL TERM_^1_(JMP_!REGP_"EXIT TO REGISTER PROCESSOR_^1O8_%LDQ-_$CL,I_^1_)INQ -6_%SET UP TEST FOR MEMORY RE€€FERENCE CLASSES_^1_(LDA- CS,I_-EXAMINE TERMINATOR_^1_(STA- AM,I_^1_%SAZ O8B-1_^1_%SQP O8A_^1_(INA_%-1_^1_%SAZ_"O8A_^1_(INA_%-4_^1_(SAP_%2_^1_(RTJ+_$CHPU_^1_(SAZ_!1_^1O8A_"JMP* OE_^1_(RAO- IG,I_^1O8B_"JMP MAPR_^1SAVEI BSS SAVEI(1)_JMSOS4.1_^1SAVEA BSS SAVEA(1)_JMSOS4.1_^1SAVEQ BSS SAVEQ(1)_JMSOS4.1_^1SYTRSB NUM 0_QMSOS4.1_^1_%STA* SAVEA_MMSOS4.1_^1_%STQ* SAVEQ_MMSOS4.1_€€^1_%LDA- I_QMSOS4.1_^1_%STA* SAVEI_MMSOS4.1_^1_%LDA =XCONS_LMSOS4.1_^1_%STA- I_QMSOS4.1_^1_%LDA SYINDM_LMSOS4.1_^1_%SUB =N96_NMSOS4.1_^1_%SAM 1_QMSOS4.1_^1_%RTJ* SYTOUT_LMSOS4.1_^1_%LDA- LN,I_NMSOS4.1_^1_%TCA A_QMSOS4.1_^1_%LDQ SYINDM_LMSOS4.1_^1_%STA SYRFTS,Q_JMSOS4.1_^1_%INQ 1_QMSOS4.1_^1_%STQ SYINDM_LMSOS4.1_^1_%LDA SYINDM_LMSOS4.1_^1_%SUB =N96_NMSOS4.1_^1_%SAM 1_QMS€€OS4.1_^1_%RTJ* SYTOUT_LMSOS4.1_^1_%LDA* SAVEQ_MMSOS4.1_^1_%LDQ SYINDM_LMSOS4.1_^1_%STA SYRFTS,Q_JMSOS4.1_^1_%INQ 1_QMSOS4.1_^1_%STQ SYINDM_LMSOS4.1_^1_%LDA* SAVEI_MMSOS4.1_^1_%STA- I_QMSOS4.1_^1_%LDQ* SAVEQ_MMSOS4.1_^1_%LDA* SAVEA_MMSOS4.1_^1_%JMP* (SYTRSB)_JMSOS4.1_^1SYTOUT NUM 0_QMSOS4.1_^1_%ENA 96_PMSOS4.1_^1_%STA DISKW5_LMSOS4.1_^1SYDTOK LDA- DSW,I_MMSOS4.1_^1_%SAN 1_QM€€SOS4.1_^1_%JMP* SYDTOK_LMSOS4.1_^1_%LDA =XSYRFTS_JMSOS4.1_^1_%LDQ SYCADM_LMSOS4.1_^1_%RTJ+ DOUT_NMSOS4.1_^1_%LDA- DSW,I_MMSOS4.1_^1_%SAN 1_QMSOS4.1_^1_%JMP* *-2_OMSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA SYINDM_LMSOS4.1_^1_%LDA SYCADM_LMSOS4.1_^1_%INA 1_QMSOS4.1_^1_%STA SYCADM_LMSOS4.1_^1_%JMP* (SYTOUT)_JMSOS4.1_^1_%END PASS3_^__€€PA3PR2 CSY/ €€1_%NAM PA3PR2_'DECK-ID A07 MACRO ASSEMBLER_%SUMMARY-162_^1*_$MASS STORAGE OPERATING SYSTEM VERSION 5.0_^1*_$SMALL SYSTEMS DIVISION, LA JOLLA, CALIFORNIA_^1*_$COPYRIGHT CONTROL DATA CORPORATION 1976_^1*_'PROGRAM BASE-MACRO ASSEMBLER 2.0_4**MSOS 4.0_^1*_1ST MUST BE FIRST_^1REQPRO EQU REQPRO($F4)_GMSOS4.1_^1_(EQU_%ST(1),ET(ST+1),PSW(ET+1),PB(PSW+1)_^1_%EQU DSW(PB+49),DSWW(DSW+1)_^€€1_%EQU TSW(DSWW+1),CSW(TSW+1),SECTNO(CSW+1)_^1_%EQU_#PNAM(SECTNO+1)_^1_%EQU_#WMS(PNAM+3),CSYSCT(WMS+1)_^1_(EQU_%SCOUNT(CSYSCT+1),XSYSCT(SCOUNT+1)_^1_(EQU_%CC(XSYSCT+1),DC(CC+1)_^1_(EQU_%PC(DC+1),DX(PC+1),LA(DX+2),W1(LA+4),W2(W1+1)_^1_(EQU_%AD(W2+1),AF(AD+1),AM(AF+1),CL(AM+1),EX(CL+1)_^1_(EQU_%RC(EX+1),AX(RC+1),LC(AX+1),AU(LC+1),AR(AU+1)_^1_(EQU_%TR(AR+1),SY(TR+7),NU(SY+4),SG(NU+1)€€,RP(SG+1)_^1_(EQU_%HX(RP+1),XMOD(HX+1),LT(XMOD+1),ES(LT+1),LP(ES+1)_^1_(EQU_%IG(LP+1),NS(IG+1),IS(NS+1),CT(IS+1),CS(CT+1)_^1_(EQU_%IL(CS+1),MD(IL+1),ID(MD+1),SKF(ID+1)_^1_(EQU_%BS(SKF+1)_^1_%EQU AUB(BS+1)_^1_%EQU UB(AUB+57)_^1_(EQU_!LN(UB+57),OR(LN+1),OC(OR+1)_^1_(EQU_!AS(OC+1),SC(AS+1),SS(SC+1)_^1_(EQU_%WC(SS+1),RM(WC+1)_^1_(EQU_%YL(RM+1),SZ(YL+1)_^1_(EQU_%PER(SZ+1)_^1_(EQU_%VBT€€(PER+1),VMS(VBT+1),IFNAM(VMS+1)_^1_(EQU_%MPSW(IFNAM+1)_^1_(EQU_%VCT(MPSW+1),VWD(VCT+1)_^1_(EQU_%AX16(VWD+1)_^1_(EQU_%ETSAVE(AX16+1)_^1_(EQU_%DVFL(ETSAVE+1)_^1_(EQU_%PAGL(DVFL+1)_^1_(EQU_%SL(PAGL+1)_^1_(COM_%CONS(SL+1)_^1_(COM_%FST_^1_%COM L,P,X,C,MM,ILSCST,SRSCST,ILSCND_3MSOS4.1_^1_(COM_%ERC_^1_%COM LGSECT_^1_%COM SYRFTS(96)_"SECT.REF.TBL.SYMBOLS_0MSOS4.1_^1_%COM SYCADM_'ADDR.T€€O SECT.REF.TBL.SYMBOLS_(MSOS4.1_^1_%COM SYEXT_MMSOS4.1_^1_%COM SYINDM_LMSOS4.1_^1_%COM SYTRFM_'ENTRY ADDR.REF.TBL.SYMBOLS_*MSOS4.1_^1_%COM SYTRFD_'1ST ADDR.REF.TBL.SYMBOLS-DISK_'MSOS4.1_^1_%COM APASS1,APASS2,APASS3,ATBLST,AXREF,PAGE_,MSOS4.1_^1_%COM PS1W2,PS2W2,PS3W2,PS4W2,PS5W2_5MSOS4.1_^1_(EXT_!ER,END,DEC,VFD,LST,NLS,SPC,EJT,OE,LDCP,WDPK_^1_(EXT_!PRNT,NEXT,RBPK,UNCP,PUNC,UP€€1,UP2,MOVE,SYCH_^1_(EXT_!IGNORE,TBLIN,RESTBL,RECV,M1,M2J5_.**MSOS 4.0_^1_(ENT_!EMC1,CHPR,DA1,DA3,DA4,CHPU,ALFSB2,SKPROC,N3_"**MSOS 4.0_^1_(ENT_!OFJ2_J**MSOS 4.0_^1OFJ2_#ADC_!0_M**MSOS 4.0_^1_%EXT_!PCO_^1_(EXT_%AXPR_^1SKPROC_!LDA-_$IL,I_^1_%SAP SKPR1+2_^1_(ALS_%1_3MACRO_^1_(SAM_%1_3CONTINUATION_^1_(RAO-_$ID,I_0MACRO CALL_^1SKPR1_"JMP+_$IGNORE_^1_(ENQ_%43_^1_(LDQ* (OFJ2),Q_F**MSOS €€4.0_^1_(SQM_%1_^1_(JMP*_$SKPR1_^1_(ENQ_%45_^1_(LDA* (OFJ2),Q_F**MSOS 4.0_^1_%INA -8_+CHECK FOR END PSEUDO OP_.120*4481_^1_(SAN_%NOEND_F59*1187_^1_(STA-_$SKF,I_F59*1187_^1_(ENQ_%8_J59*1187_^1_(RTJ_%ER_I59*1187_^1_(JMP_%END_H59*1187_^1NOEND_"LDQ-_$ID,I_G59*1187_^1_%INA -9_+CHECK FOR EMC_8120*4481_^1_(SAZ_%6_J59*1187_^1_(INA_%1_^1_%SAN CHPU-1_^1_%SQN CHPU-1_'EIF_^1_(RAO-_$IG,I_0I€€F DEPTH SWITCH NOT SET_^1_(JMP_%EIF_^1_(SQN_%5_J59*1187_^1_(STQ-_$SKF,I_F59*1187_^1_(ENQ_%8_J59*1187_^1_(RTJ_%ER_I59*1187_^1_(JMP*_$(*-6)_F59*1187_^1_(INQ_%-1_^1_(STQ-_$ID,I_0DECREMENT IF DEPTH SWITCH_^1_(JMP*_$SKPR1_^1CHPU_#ADC_!0_^1_(RAO- CT,I_-INCREMENT CHAR CTR_^1_(ENA_!0_^1_(LDQ- CT,I_^1_(INQ_!-72_^1_(SQM_!1_^1_(JMP* C1+1_-TOO MANY CHARS_^1_(INQ_!72_^1_(LRS_!1_^1_(LDQ* (OF€€J2),Q_F**MSOS 4.0_^1_(SAZ_!1_^1_(QLS_!8_^1_(QRS_!8_0Q CONTAINS 7 BIT CHAR_^1_(SQZ_%CHP1-*-1_,ZERO(NULL PARAM IN MAC SKELETON)_^1_(SQM_%CHP1-*-1_,NULL_^1_(LDA- AF,I_^1_(SAZ_%1_^1_(JMP* (CHPU)_^1_(INQ_!-$9_.TAB-IS END OF FIELD_^1_(SQZ_!C3-*-1 YES-A IS ZERO SO WILL EXIT_^1_(LDA- IG,I_^1_(INQ_!-$4_.CARRIAGE RETURN_^1_(SQN_!3_0NO_^1_(ENA_!71_$SET CHAR CTR TO 71 FOR END OF_^1_(STA- €€CT,I_-IMAGE_^1CHP1_#JMP*_$CHPU+1_^1_(INQ_!-$13_-BLANK_^1_(SQM_!C1-*-1_+CHAR ILLEGAL_^1_(SQN_!2_^1C3_%SAZ_!C1+1-*-1_)CHAR BLANK-IG NOT SET_^1_(JMP* CHPU+1_+GO BACK FOR NEXT CHAR_^1_(INQ_!-$40_-UPPER BOUND FOR LEGAL_^1_(SQM_!C2-*-1_+IS LEGAL_^1C1_%ENA_!$3C_^1_(STA- CS,I_^1_(ENQ_!0_^1_(STQ- IG,I_^1_(JMP* (CHPU)_+EXIT_^1C2_%INQ_!$40_.6 BIT CHAR FOR OUTPUT_^1_(TRQ_!A_^1_(JMP* C1+1_€€^1XC_%NUM_!0,$C,$B CHAR TBL-BLANK,COMMA,PLUS_^1_(NUM_!$D,$A,$F,8 MINUS,ASTER,SLASH,LFT PAREN_^1_(NUM_!9,4_.RT PAREN,DOLLAR SIGN_^1_(NUM_%$1D,$3B_^1XI_%ADC_!XB_/BLANK,COMMA_^1_(ADC_!XP_/PLUS_^1_(ADC_!XM_/MINUS_^1_(ADC_!XK_/ASTERISK_^1_(ADC_!XH_/SLASH_^1_(ADC_!XL_/LEFT PAREN_^1_(ADC_!XRP_.RIGHT PAREN_^1_(ADC_!XD_/DOLLAR SIGN_^1_(ADC_!XT_/EQUAL SIGN_^1_(ADC_%XLB_1EQUAL SIGN,LEFT BRACK€€ET_^1CHPR_#ADC_!0_0ENTRY_^1_(ENA_!0_^1_(ENQ_%10_2LEFT BRACKET_^1_(STA-_$SY,B_;HX,XMOD,LT,ES_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-3_^1XLOP_#RTJ* (XR+1) CHPU_^1_(ENQ_%10_2ZERO INTO SY,NU,SG,RP,_^1X1_%LDA- CS,I_"SEARCH SPECIAL CHARACTERS_^1_(SUB* XC,Q_^1_(SAZ_!XLO1-*-1_)FOUND_^1_(INQ_!-1_^1_(SQM_!X5-*-1_+NOT FOUND_^1_(JMP* X1_^1XLO1_#STQ- CS,I_-SET CS INDICATOR_^1_(SQZ_!1_0BLANK_^1€€_(INQ_!-1_^1_(LDA* XI,Q_^1_(LDQ- XMOD,I_^1_(STA* *+2_^1_(JMP+ 0_0GO TO ROUTINE_^1X5_%LDQ- EX,I_-TERMINATOR NEEDED_^1_%SQZ X5A-*-1_K44*656_^1_%SQM X5A-*-2_K45*656_^1_%ENA_#-1_+DECREMENT ES BECAUSE_^1_%STA-_"ES,I_)ERROR IS ALREADY PRINTED_^1_%JMP*_"XR_^1X5A_"LDQ- XMOD,I_L44*656_^1_(INA_!-$10_^1_(SAM_!XA1_+ERROR, BELOW LOWER BOUND_^1_(INA_!-$A_^1_(SAP_!1_0NOT NUMERIC_^1_(JMP* €€XN_/Q CONTAINS MODE_^1_(INA_!-7_^1_%SAM XA1_*NOT ALPHA-ERROR_^1_(INA_!-$1A_^1_(SAP_$XA1_(ERROR, NOT ALPHA_^1XA_%SQN_!XALF-*-1_)NOT INITIAL MODE-ALPHA_^1_(ENQ_!1_0SET ALPHA MODE_^1_(STQ- XMOD,I_^1_%LDQ+ RP2_^1_(ADQ- SY+2,I_^1_(SQZ_!1_^1XA1_"JMP* XR_+YES-IS ERROR_^1_(INA_!$1B_.CONVERT TO 5 BIT VALUE_^1_(ALS_!6_0XA+6 **_^1_(JMP* XALN-3_^1XALF_#INQ_!-1_^1_(SQZ_!1_^1_(JMP* XALN_-N€€UMERIC MODE_^1_(LDQ- SY+3,I_+XALF+3 **_^1_(INQ_!-6_^1_(SQZ_!XALN-1-*-1_'6 CHARS-EXIT_^1_(INQ_!6_^1_(LRS_!1_^1_(SAM_%3_^1_(LDA- CS,I_^1_(ALS_!8_^1_(JMP* *+2_^1_(LDA- CS,I_^1_(ADD- SY,B_-PUT CHAR IN SY_^1_(STA- SY,B_^1_(RAO- SY+3,I_+INCREMENT CHAR COUNT_^1_(JMP* XLOP_-XALN-1 **_^1XALN_#LDQ- HX,I_^1_(SQZ_!2_0HEX SWITCH NOT SET ERROR_^1_(INA_!$14_^1_(SAM_!1_^1_(JMP* XR_^1_(IN€€A_!$10_.CHANGE TO NUMBER_^1_(JMP* XNUM_^1XN_%INA_!$A_/CONVERT TO NUMBER_^1_(SQN_!4_^1_(STA- NU,I_-INITIAL MODE_^1_(ENA_!2_0**_^1_(STA- XMOD,I_+SET NUMERIC MODE_^1_(JMP* XLOP_-XNUM-4 **_^1_(INQ_!-1_^1_(SQN_!1_^1_(JMP* XALF+3_+ALPHA MODE_^1XNUM_#STA- CS,I_^1_(LDA- HX,I_^1_(LDQ- NU,I_^1_(SAZ_!XN1-*-1_*DECIMAL NUMBER_^1_(LDA- CS,I_-HEX NUMBER_^1_(ALS_!12_^1_(LLS_!4_0MULTIPLY B€€Y 16_^1_%SAN_#XN1X+1_'OVERFLOW_^1_(LDA- NS,I_-16 BITS LEGAL_^1_(SAN_!1_0YES_^1_%SQM_#XN1X_)NO-OVERFLOW_^1_(STQ- NU,I_^1_(JMP* XLOP_^1XN1_$LDA-_$AX16,I_^1_(QLS_%1_^1_(SAN_%1_^1_(SQM_%XN2-*-1_^1_(ENA_%0_^1_(STQ- NU,I_^1XN1X_!LLS_#2_^1_(SAN_!XO-*-1_^1_(LDA-_$AX16,I_^1_(SAN_%1_^1XN2_$SQM_%XO-*-1_^1_(ADQ- NU,I_^1_(SAN_%1_^1_(SQM_!XO-*-1_^1_(ADQ- CS,I_^1_(SAN_%1_^1_(SQM_!XO-*-1_^1_€€(SQP_%2_^1_(STQ-_$AX16,I_.NUMBER HAS GONE NEGATIVE_^1_(JMP*_$XN1-2_^1_(SAM_%XO-*-1_.OVERFLOW_^1_(JMP* XN1-2_^1XO_%ENQ_!7_^1_(RTJ_!ER_^1_(ENA_%-1_^1_(STA-_$ES,I_^1XR_%RTJ+ CHPU_^1_(SAZ_!XR1-*-1_*BLANK_^1_(ENQ_!1_^1_(STQ- CS,I_-SET CS FOR COMMA_^1_(INA_!-$C_.CHAR COMMA_^1_(SAZ_!XR1-*-1_*YES_^1_(JMP* XR_^1XR1_$ENA_!0_^1_(STA-_$LP,I_^1_#STA+_!RP2_!RESET RT PAREN COUNTER_^1_(ENQ_%9_€€^1XR2_%STA-_!SY,B_^1_(INQ_!-1_^1_(SQM_!1_^1_)JMP*_!XR2_^1_(RAO- ES,I_^1XX_%ENA_!0_^1_(STA- IS,I_^1_(STA- EX,I_^1_#LDQ- SY+1,I_^1_(LDA- ES,I_^1_(LDQ- SY,I_^1_(JMP_!(CHPR)_+EXIT FROM ROUTINE_^1XB_%SQN_!1_^1_(RAO- SY+1,I INIT MODE-NULL FIELD INDICATOR_^1_(LDA- LP,I_^1_%SUB+_!RP2_%COMPARE LEFT AND RT PAREN COUNTERS_^1_!ENQ_!0_]_^1_!STQ+_!RP2_#RESET RT PAREN COUNTER_^1_(SAZ_!1_€€^1_(JMP* XR1_.NON PAREN MATCH_^1XB2_$LDQ- SY+3,I_^1_(SQZ_!3_^1_(INQ_!-1_^1_(QRS_!1_^1_(STQ- SY+3,I_+SET CHAR COUNT FOR SY_^1_(JMP* XX_^1XP_%SQN_!XM-*-1_+PLUS SIGN_^1_(LDA- SG,I_-INITIAL MODE_^1_(SAN_!XM+4-*-1 ERR-CONCATENATED OPERATORS_^1_(RAO- SG,I_-SET SIGN POSITIVE_^1_(LDA- IS,I_-XP+4 **_^1_(SAN_!XM+4-*-1 ERR-LEADING SIGN ILLEGAL_^1_(JMP* XNUM-4 XLOP_%XM-1 **_^1XM_%SQZ_!€€1_^1_(JMP* XB2_.ALPHA OR NUMERIC MODE_^1_(LDA- SG,I_^1_(SAZ_!1_^1_(JMP* XR_$ERR-CONCATENATED OPERATORS_^1_(INA_!-1_^1_(STA- SG,I_"SET SIGN SWITCH FOR MINUS_^1_(JMP* XP+4_^1XK_%SQN_!XH-*-1_+ASTERISK_^1_%LDA- NS,I_^1_%SAZ XK1_^1_%LDA- AX16,I_'O.K. IF VFD WITH X16 FIELD_^1_%SAN XK1_*SKIP IF VFD, OTHERWISE AN ERROR_^1_%JMP* XR_^1XK1_"RAO- SY+2,I_'SET ASTERISK INDICATOR_^1_%ENA €€-1_P44*656_^1_%STA- EX,I_N44*656_^1_(JMP* XN+3_-SET NUMERIC MODE_^1XH_%SQZ_!1_0SLASH_^1_(JMP* XM_^1_(LDA- SG,I_^1_(SAN_!XL+5-*-1 ERR-CONCATENATED OPERATORS_^1_(RAO- SY+1,I_+SET NULL FIELD_^1_(JMP* XX_^1XL_#LDA- LP,I_N45*735_^1_%SAN XL1-*-1_K44*735_^1_%RAO- LP,I_,COUNT LEFT PAREN_144*735_^1_(LDA- CL,I_^1_(SQZ_!3_^1_(INQ_!-1_^1_(SQZ_%XL1A_^1_(JMP* XR_/XL+6 **_^1_(SAZ_!XL1-*-1€€ ERR-PROCESSING LABEL OR OP_^1_(SAM_!XL1+1-*-1_(PSEUDO OPCODE_^1_(INA -6_'TEST FOR MEMORY REFERENCE CLASSES (1-5)_^1_(SAM_!XL1+3-*-1 XLOP_^1XL1_$JMP* XR_^1_(INA_!1_0PSEUDO OPCODE_^1_(SAN_!1_^1_(JMP* XM-1 XLOP_(CLASS 1 PSEUDO_^1_(INA_!1_^1_(SAN_%XL3_%NOT PSEUDO CLASS2_^1_(JMP* XL-2_^1XL1A_#JMP*_$XL2_^1XL3_$LDA+_$IFRFLG_^1_(SAZ_%XD0_^1_(JMP*_$XM-1_$S_#XLOP_^1XL2_$INA_!2_0MUST BE €€CLASS 2 PSEUDO_^1_%SAN XD0-*-1_K46*802_^1_(JMP* XB2_^1XRP_"RAO+_!RP2_%BUMP THE RT PAREN COUNTER_^1_%EXT_!RP2_^1_%ENA -1_+SET TERMINATOR NEEDED SWITCH_^1_%STA- EX,I_^1_(JMP* XL1+3 XLOP_^1XD_#SQZ 1_,PROCESS DOLLAR SIGN - SKIP IF INITIAL MODE_^1XD0_$JMP*_$XR_^1_%RAO- HX,I_)SET HEX INDICATOR_^1_%RTJ CHPU_$GET NEXT CHAR_;46*802_^1_%INA -$10_N46*802_^1_%SAM_!XD1-*-1_J46*802_^1_%IN€€A -$A_O64*802_^1_%SAM_!XD1-*_L46*802_^1_%INA -7_P46*802_^1_%SAM_!XD1-*-1_J46*802_^1_%INA -6_P46*802_^1_%SAM_!1_P46*802_^1XD1_"JMP* XR_"NOT A-F_D46*802_^1_%ENA 2_Q46*802_^1_%STA- XMOD,I_)SET NUMERIC MODE_146*802_^1_%JMP_!XLOP+1_K46*802_^1XT_#SQN_!XT1-*-1_(ERROR IF NOT INITIAL MODE_^1_(LDA- CL,I_^1_$INA -5_^1_$SAP XT1_^1_$INA_!5_^1_$SAP XT1+2_^1_$INA 1_^1_%SAN_!XT1-*-1_^1_€€(LDA-_$MD,I_$MUST BE IN MACRO_^1_(SAN_%2_(OTHERWISE AN ERROR_^1XT1_"JMP_!XR_-ERR, NOT CLASS 1 OR CLASS-1 (PSEUDO)_^1_%RTJ CHPU_)GET CHAR FOLLOWING EQUAL_^1_(RAO- LT,I_-SET LITERAL SWITCH_^1_(JMP* XX_^1XLB_"SQN XLBA_)LEFT BRACKET NOT INITIAL MODE_^1_(LDA-_$MD,I_^1_%SAZ XLBA_^1_(ENA_%0_^1_(JMP_%XA_^1XLBA_$JMP*_!XT1_^1OP4_$ADC_%ADC,VFD,ORG,EQU,COM,DAT,BSS,BZS_^1_(ADC_%END,ENT,EXT€€,ALF,NUM,DEC,IFA_^1_%ADC_#IFC,EIF,EMC,LST,PCO,IFR_^1_%ADC_"NLS,SPC,EJT_^1N3_%LDA* OP4,Q_,PICK UP TRANSFER VECTOR_^1_(STA* DAT-1_^1_(LDA- CS,I_^1_(STA- AM,I_^1_%SAZ N3A+2_(TERMINATOR BLANK_^1_%INQ -8_+IS IT AN END CARD_^1_%SQZ N3A1_)YES_^1_(INA_!-4_/TERMINATOR ASTERISK_^1_%SAN N3A_*NO-ERROR_^1_%INQ 8_,ASTERISK O.K. IF ADC, ORG, OR EXT_^1_%SQZ 4_^1_%INQ -2_+ORG_^1_%SQZ 2_€€^1_%INQ -8_+EXT_^1_%SQN N3A_*NO-ERROR_^1_(RTJ_!CHPU_^1_(SAZ_!2_0BLANK_^1N3A_"JMP OE_^1N3A1_!RAO- IG,I_^1_(JMP+ 0_0GO TO PSEUDO ROUTINE_^1*_5PSEUDO OP CHECKOUT_^1DAT_$RAO-_$DX+1,I_.SET DATA FLAG_^1COM_$RAO- DX,I_"SUPPRESS LOC PRINT_^1_(RTJ*_$D4_^1_(JMP* EQU+2 D1A_^1_(JMP* D4C_#NO LEFT PAREN PRES_^1_(JMP* D4D_#NON ZERO RELOCATION_^1_(LDQ-_$DX+1,I_.NORMAL RETURN_^1_(LDA-_$CC,B€€_0COMMON OR DATA CTR_^1_(STA- W1,I_"INTO COMMAND WORD_^1_(ADD-_$AX,I_0ADD ADDRESS_^1_(SAP_!2_^1_(SUB* D7+7_-SUBTRACT $8000_^1_(INA_!1_0WRAP AROUND_^1_(STA-_$CC,B_0ADJUST CTR_^1_(LDA- W1,I_"SET A FOR SYMBOL TBL PUT_^1_(INQ_!2_%COMMON OR DATA RELOC_^1_(STQ- RC,I_-FOR LISTING_^1_(JMP*_$EQU+7_/TO SYM TABLE_^1EQU_$RAO- DX,I_"INHIBIT LOCATION PRINT_^1_(RTJ*_$D4_^1_(JMP* DF_/NO SYMB€€OL PRESENT_^1_(JMP*_$DF+2_^1_(JMP*_$*+1_1NON ZERO RELOCATION_^1_(LDQ-_$RC,I_0RELOCATION CODE_^1_(STA-_$W1,I_^1_(JMP*_$D1B_^1D4_%SLS_^1_(RTJ*_$D1_^1_(SQN_%2_^1_(STQ-_$LA,I_^1_(JMP*_$(D4)_0NO SYMBOL PRESENT_^1_(RTJ*_$(D+13)_.MOVE SYM TO LA_^1_(LDA-_$LP,I_^1_%SAN D4B_^1_(ENA_%1_^1_(STA-_$AX,I_^1_(ENQ_%1_^1_(JMP*_$(D4),Q_^1D4B_$RTJ*_$(D+4)_/CALL AXPR_^1_(SQZ_%2_^1_(ENQ_!2_%NON-ZERO RE€€LOCATION_^1_(JMP*_$(D4),Q_^1D4C_$LDQ-_$CS,I_^1_(INQ_%-2_^1_(SQM_%1_^1_(JMP* D1A_#NO BLANK OR COMMA NEXT_^1_(ENQ_%3_^1_(JMP*_$(D4),Q_.NORMAL RETURN_^1D4D_$ENQ_%6_^1_(JMP*_$D1A+1_/RELOCATION ERROR_^1BZS_$RAO-_$DX+1,I_.SET BZS FLAG_^1BSS_$RTJ*_$D4_^1_(JMP*_$BSZ1_0NO SYMBOL PRESENT_^1_(JMP*_$D4C_1NO LEFT PAREN_^1_(JMP* D4D_#NON-ZERO RELOCATION_^1*_1NORMAL RETURN ADDRESS TO COMD WORD€€_^1_(STA-_$W1,I_^1_(SAN_%1_^1_(JMP*_$D1B_^1_(RTJ*_$(D+2)_/PRINT_^1_(LDA-_$DX+1,I_^1_(SAN_%4_3BZS_^1_(RTJ* (D+9)_!EMPTY PUNCH BUFFER_^1D6_%LDQ-_$AX,I_^1_(RTJ* (D+12) BUMP COUNTER BY ADDRESS_^1_(JMP*_$D1D_^1_(ENA_%0_^1_(STA-_$W1,I_0ZERO COMD WORD_^1D6A_"LDA- WC,I_^1_%SAZ D6B_^1_(RTJ*_$(D+8)_/PACK AND PUNCH WHEN BUFFER FULL_^1_(RTJ* (D+11) BUMP COUNTER BY ONE_^1_(LDA-_$AX,I_^1_(€€INA_%-1_^1_(STA-_$AX,I_^1_%SAZ D7-2_^1_%JMP* D6A_^1D6B_"LDA- PC,I_^1_(LDQ-_$SZ,I_^1_(SQN_%1_^1_(STA- PER,I_,SAVE BLOCK START_^1_(LDA-_$AX,I_^1_(AAQ_%A_3INCREASE BLOCK_^1_(STA-_$SZ,I_0SIZE BY AX_^1_(JMP*_$D6_^1D7_%STA- UB+3,I BLOCK SIZE INTO BUFF_^1_(LDA_%=N$6050_^1_(STA- UB,I_"CARD TYPE INTO BUFF_^1_(LDA-_$RM,I_^1_(ALS_%12_^1_(EOR_%=N$8000_^1_(STA- UB+1,I RELOC BYTE INTO BUF€€F_^1_(LDA- PER,I_^1_(STA- UB+2,I START ADDR INTO BUFF_^1_(ENQ_!4_^1_(STQ- PER,I_^1_(RTJ*_$(D+10)_.PUNCH BZS CARD_^1_(ENA_%0_^1_(STA-_$SZ,I_0ZERO BLOCK SUM_^1_(JMP*_$(D+7)_/EXIT TO NEXT_^1BSZ1_#LDA-_$SY+1,I_^1_(SAN_%1_3NULL FIELD_^1_(JMP*_$D1A_^1_(LDA-_$LP,I_^1_(SAZ_%1_^1_(JMP*_$D4B_1LEFT PAREN PRESENT_^1_(ENA_%0_^1_(JMP*_$D4C_^1DF_%LDA- SY+1,I_^1_(SAZ_%3_^1_(LDA-_$CS,I_^1_(INA€€_%-2_^1_(SAM_%1_^1_(JMP* D1A_.ERROR NOT NULL_^1_(ENA_!0_^1_(STA- AX,I_^1_(STA- RC,I_^1_(JMP* EQU+5_^1D_'ADC_!CHPR,ER,LDCP,WDPK,AXPR,CHPU,PRNT,NEXT_^1_(ADC_%RBPK,UNCP,PUNC_^1_(ADC_%UP1,UP2,MOVE,SYCH_^1D1_%SLS_^1_(RAO-_$IS,I_0LEAD SGN ILLEGAL_^1_(RTJ* (D)_#TO CHARACTER PROCESSOR_^1_(SAN_!1_%ERROR FOUND BY CHPR_^1_(JMP* (D1)_"NO ERROR - RETURN_^1D1A_$ENQ_%1_^1_(ENA_%0_^1_(STA-_$€€AX,I_0ZERO ADDRESS_^1_(STA-_$RC,I_0AND RELOCATION_^1_(RTJ*_$(D+1)_/TO ERROR PROCESSOR_^1D1B_$LDA-_$DX,I_^1_(SAN_%2_^1_(RTJ* (D+2)_!PRINT LOCATION,BINARY_^1_(JMP* *+2_#AND CARD IMAGE (IF PRESENT)_^1_(RTJ*_$(D+3)_/PRINT BINARY AND CARD IMAGE_^1D1D_$LDA-_$CS,I_0IS THE NEXT_^1_(INA_!-1_$CHARACTER A COMMA_^1_(SAN_%1_3NO_^1_(JMP*_$D1+1_0YES_^1_(LDA-_$SZ,I_^1_(SAZ_%1_^1_(JMP* D7_$GO OU€€TPUT BZS CARD_^1D1C_$JMP*_$(D+7)_^1EXT_$JMP_%IGNORE_^1ENT_$RTJ*_$(D)_1TO CHPR_^1_(SAN_%ENT2C-1_-ERR FROM CHPR_^1_(SQN_%ENT1C-2_^1_(LDA-_$SY+1,I_.NO SYMBOL PRESENT_^1_(SAZ_%1_3ERROR_^1_(JMP*_$ENT4C_/OK, NULL FIELD_^1_(ENQ_%1_3ERR, NO SYMBOL PRESENT_^1ENT2C_"RTJ*_$(D+1)_^1_(JMP*_$ENT4C_^1_(RTJ*_$(D+13)_.MOVE SYM TO LA_^1_(LDA- ST,I_"SYMBOL TABLE ADDR_^1ENT1C_"RTJ*_$(D+14)_^1_(INQ 0€€_^1_(SQN 1_*IF Q = ZERO SYMBOL NOT FOUND_'**MSOS 4.0_^1_(JMP*_$DH_^1_(LDA-_$1,Q_^1_(ARS_%12_^1_(INA_%-2_^1_(SAM_%5_^1_(ENQ_%8_3UNDEFINED ENTRY POINT_^1_(INA_%-2_^1_(SAZ_%1_^1_(ENQ_%6_3RELOCATION ERROR_^1_(JMP*_$ENT2C_^1_(JMP*_$ENT4C_^1DH_%RTJ_%TBLIN_^1_(SAM_%1_^1_(JMP*_$ENT1C-1_^1ENT4C_"RTJ+_$RESTBL_.RESTORE SYMBOL TABLE_^1_(LDA-_$CS,I_^1_(SAZ_%ENT4_0BLANK HERE_^1_(INA_%-1_^1_(SAN€€_%1_3NO COMMA NEXT_^1_(JMP*_$ENT_1COMMA HERE, CHECK NEXT FIELD_^1_(ENQ_%1_3ILLEGAL TERMINATOR_^1_(RTJ*_$(D+1)_^1ENT4_#JMP*_$EXT_1EXIT TO IGNORE_^1ORG_$RAO- DX,I_"SUPPRESS LOC PRINT_^1_(LDA- AM,I_^1_(SAZ_%ORG1-*-1_^1_(ENQ_%0_^1_(LDA-_$OC,I_^1_(SAN_%1_^1ORG2_#JMP*_$EXT_1EXIT TO IGNORE_^1_(INA_%0_^1_(STA- W1,I_"CTR INTO CMD WD_^1_(STA-_$PC,I_0RESTORE COUNTER_^1_(LDA-_$OR,I_0RESTORE€€ RELOCATION_^1_(STA-_$RM,I_^1_(STA- RC,I_^1_(STQ-_$OR,I_0ZERO INTO SAVE_^1_(STQ-_$OC,I_0STORAGES_^1_(JMP*_$DG-3_^1ORG1_#STA-_$IS,I_^1_(RTJ*_$(DD+10)_-TO AXPR_^1_(INQ_%-2_^1_(SQZ_!2_%ERROR COMMON RELOC_^1_(INQ_%-2_^1_(SQM_%4_3POSITIVE RELOCATION_^1_(ENA_%0_^1_(STA-_$CS,I_0FORCE EXIT_^1_(ENQ_%6_3ILLEGAL RELOCATION_^1_(JMP*_$D1A+1_^1_(LDQ-_$OC,I_^1_(SQN_%6_^1_(LDQ- PC,I_"SAVE PROGR€€AM CTR_^1_(SQN_%1_^1_(TCQ_%Q_^1_(STQ-_$OC,I_^1_(LDQ-_$RM,I_0SAVE RELOCATION_^1_(STQ-_$OR,I_^1_(STA- PC,I_"ADDR INTO PROG CTR_^1_(STA- W1,I_"ADDR INTO COMD WD_^1_(LDA-_$RC,I_^1_(STA-_$RM,I_^1_(RTJ*_$(DD+13)_^1_(LDA-_$CS,I_^1_(SAZ_%3_^1DG_%ENA_!0_%ERR NO BLANK NEXT_^1_(STA-_$CS,I_^1_(JMP*_$D1A_^1_(JMP*_$D1B_^1DD_%ADC_!D1C,PRNT,ER,CHPU,RECV,PUNC,CHPR,LDCP_^1_(ADC_%RBPK,UP1,AXPR,M2J5€€,M1,UNCP_^1ALF_$RTJ*_$(DD+3)_^1_(INA_%$20_^1_(TRA_%Q_^1_(STQ-_$TR+6,I_^1_(INQ_%-$30_^1_(SQM_%2_3NOT A NUMBER_^1_(INQ_%-$A_^1_(SQM_%1_3THIS IS A NUMBER_^1_(JMP*_$ALF1_0NON-NUMERIC CHARACTER_^1_(LDA-_$CT,I_^1_(INA_%-1_^1_(STA-_$CT,I_^1_(RTJ*_$(DD+6)_.TO CHPR_^1_(SAN_%3_3ERR FROM CHPR_^1_(LDA-_$CS,I_^1_(INA_%-1_^1_(SAZ_%1_^1_(JMP*_$ALF1C_/ERR,NO COMMA NEXT_^1_%ENA_#72_+MAX.ADDRESS FI€€ELD_^1_%SUB-_"CT,I_)CURRENT CHAR. COUNT_^1_%ARS_#1_^1_%SUB-_"NU,I_)NUMBER WORDS REQUESTED_^1_%SAP_#1_^1_%JMP*_"ALF1C_(ILLEGAL NO. WORDS REQ._^1_(LDA-_$NU,I_^1_(SAN_%1_^1_(JMP*_$ALF1C+2_-COUNTER IS ZERO ***_^1DA1_$ENA_%0_3COME HERE WITH LITERAL_^1_(STA-_$TR+6,I_.SET COMPARE CHARACTER ZERO_^1_(JMP*_$ALF2C_^1ALF1_#RAO-_$AF,I_^1_(RTJ*_$(DD+3)_^1_(INQ_%-$2C_^1_(SQZ_%3_^1ALF1C_"ENQ_%1_3€€ERROR_^1_(RTJ*_$(DD+2)_.TO ERROR PROCESSOR_^1_(JMP*_$ORG2_0EXIT TO IGNORE_^1ALF2C ENA 0_** SET FLAG TO ZERO_549*878_^1_%STA* MFOFC_M49*878_^1_%RTJ* ALFSB_M49*878_^1_(SAP_%2_^1_(SQN_%DA2+1-*_^1_(JMP*_$DAALF_^1_(LDQ-_$DX+1,I_^1_(SQZ_%DA2+1-*_^1_(ENQ_%0_3LITERAL FROM MAPR_^1_(STQ-_$AF,I_^1_(RTJ*_$(DD+3)_.GET NEXT CHARACTER_^1_(SAZ_%1_3SET CODE FOR MAPR_^1_(INA_%-$B_^1_(SAZ_%1_^1_(STA€€-_$CS,I_^1DA2_$LDA-_$TR,I_^1_(JMP*_$(DD+11)_-RETURN TO MAPR_^1_(LDA-_$TR,I_^1_(STA-_$W1,I_^1_(RTJ*_$(DD+7)_.PRINT_^1_(RTJ*_$(DD+8)_.PUNCH_^1_(RTJ*_$(DD+9)_.BUMP COUNT_^1_(LDA-_$TR+6,I_^1_(SAZ_%2_3COUNTING CHARACTERS_^1_%SAM DAALF_(MATCH FOUND_^1_%JMP* ALF2C+2_M62*1304_^1_(LDA-_$NU,I_^1_(INA_%-1_^1_(STA-_$NU,I_^1_(SAZ_%1_^1_(JMP*_$ALF2C_/NOT FINISHED GET NEXT CHAR_^1DAALF_"JMP*_$(D€€D)_^1ALFSB_"ADC_%0_^1_(ENA_%1_^1_(STA-_$TR,I_^1_(RTJ*_$ALFSB2_.GET NEXT CHARACTER AND CHECK IT_^1_(LDA-_$TR,I_^1_(QLS_%8_^1_(LLS_%8_^1_(STA-_$TR,I_^1_(LDA-_$TR+6,I_^1_(SAM_%2_3MATCH FOUND ON CHARACTER_^1_(SQN_%1_^1_(JMP*_$ALFSB+3_-GET RIGHT HAND CHARACTER_^1_(JMP*_$(ALFSB)_-RETURN_^1*_2R_!T_!L_!B_!F_!V_"PASS 2 AND 3_^1ALFTB2_!NUM_%$52,$54,$4C,$42,$46,$56_^1*_2CR HT LF BEL FF VT€€_!PASS 3 ONLY_^1ALFTB1_!NUM_%$0D,$09,$0A,$07,$0C,$0B_^1MFOFC NUM 0_,* FLAG-MATCH FOUND ON FIRST CHAR_#49*878_^1ALFSB2_!ADC_%0_^1_(RAO-_$AF,I_^1_%RAO* MFOFC_M49*878_^1_(RTJ*_$(DD+3)_.TO CHPU_^1_(SQM_%5_3END OF IMAGE_^1_(INQ_%-$D_^1_(SQZ_%3_3CR_^1_(LDA-_$CT,I_^1_(INA_%-72_^1_(SAM_%AB21-*-1_^1_(ENQ_%71_^1_(STQ-_$CT,I_^1AB20_#LDA-_$TR+6,I_^1_(SAZ_%2_^1_(TCA_%A_3USING CHARACTER MATCH_€€^1_(STA-_$TR+6,I_^1_(ENQ_%$20_^1_(JMP*_$AB25C_^1AB21_#INQ_%$D_2RESTORE CHARACTER_^1_(TRQ_%A_^1_(EOR-_$TR+6,I_^1_%SAN 5_,* IF MFOFC = 1 ZERO WORDS_+49*878_^1_%LDA* MFOFC_(* ARE REQUESTED_549*878_^1_%INA -1_+* THE ALF STATEMENT IS_.49*878_^1_%SAN 1_,* LISTED ALONG WITH THE CARD N_%49*878_^1_%JMP* ALF1C+2_%* NO CODE GENERATED_149*878_^1_(JMP*_$AB20_0MATCH ON SAVED CHARACTER_^1_(INQ€€_%-$3A_^1_(SQZ_%4_3COLON_^1_(INQ_%$3A_^1AB25C_"ENA_%0_^1_(STA-_$AF,I_^1_(JMP*_$(ALFSB2)_,RETURN_^1_(RTJ+_$CHPU_^1_(STQ-_$CS,I_^1_(ENQ_%5_^1_(LDA-_$CS,I_^1_(EOR*_$ALFTB2,Q_^1_(SAZ_%3_3SPECIAL CHARACTER FOUND_^1_(SQZ_%4_3NOT A SPECIAL CHARACTER_^1_(INQ_%-1_^1_(JMP*_$*-5_^1_(LDQ*_$ALFTB1,Q_^1_(JMP*_$AB25C_^1_(ENQ_%$3A_^1_(LDA-_$CT,I_0BACK UP CHARACTER COUNT_^1_(INA_%-1_^1_(STA-_$CT,I_€€^1_(JMP*_$AB25C_^1ADC_$RAO-_$AD,I_0SET ADC FLAG_^1_(ENA_!0_^1_(STA- IS,I_-LEADING SIGN LEGAL_^1DA4_$RTJ+_$AXPR_^1_(LDQ-_$LP,I_^1_(LDA-_$EX,I_^1_(INA_%-2_^1_(SAN_%4_^1_(SQZ_%ADC2-*-1_,RELATIVE EXTERNAL_^1ADC1C_"RTJ+_$ER_^1_(JMP*_$ADC1_^1_(LDA-_$AM,I_^1_(SAM_%1_^1_(SAN_%1_^1ADC2_#JMP*_$ADC1_^1_(SQZ_%1_3RELATIVE ADC_^1_(JMP*_$ADC1C_/ERR,PAREN WITH RELATIVE ADC_^1_(LDQ-_$EX,I_^1_(SQN_€€%4_^1_(LDA-_$RM,I_^1_(SUB-_$RC,I_^1_(SAZ_%2_^1_(ENQ_%6_^1_(JMP*_$ADC1C_/ERR,EXPRESSION IS NOT ABSOLUTE_^1_(STA-_$RC,I_^1_(LDA-_$AX,I_^1_(SUB-_$PC,I_^1_(STA-_$AX,I_^1_(JMP*_$ADC3_^1ADC1_#LDQ-_$LP,I_^1_(LDA-_$AX,I_^1_(ALS_%1_3IF LEFT PAREN_^1_(LLS_%31_2PRESENT_^1_(STQ-_$LP,I_^1_(LDQ-_$DX+1,I_^1_(SQZ_%2_^1_(JMP+_$M2J5_^1ADC3_#STA-_$W1,I_^1_(RTJ+_$M1_2PRINT AND PUNCH_^1_(JMP*_$DA4_^1NU€€M_$ENA_%0_^1_(EQU_%DA3(NUM)_^1_(STA- IS,I_"LEADING SIGN LEGAL_^1_(RAO-_$NS,I_0SET NUM FLAG_^1_(RTJ*_$(IFA5+1)_,TO CHPR_^1_(SAN_%3_^1_(SQN_%NUM1-*-1_^1_(LDA-_$CS,I_^1_(INA_%-2_^1_(SAP_%NUM1-*-1_^1_(LDA-_$NU,I_0LOAD NUMBER_^1_(LDQ-_$SG,I_^1_(SQP_%1_^1_(TCA_%A_3- SIGN COMPLEMENT_^1NUM2_#ENQ_%0_^1_(STQ-_$NS,I_^1_(LDQ-_$DX+1,I_^1_(SQZ_%1_^1_(JMP*_$ADC3-2_.LITERAL TO MAPR ***_^1_(STA-_€€$W1,I_^1_(RTJ*_$(ADC3+2)_,PRINT AND PUNCH_^1_(JMP*_$DA3+2_^1NUM1_#ENQ_%1_^1_(RTJ*_$(ADC1C+1)_^1_(ENA_%0_^1_(JMP*_$NUM2_^1IFR_"ENA_"1_^1_%STA*_"IFRFLG_^1_%STA-_"AX16,I_^1_%JMP*_!IFA_(IFR FLG INDICATES AN IFR PSEUDO_^1IFRFLG_!NUM_!0_^1IFA_$ENA_%0_^1_(STA-_$VBT,I_/USE FOR SUBFIELD COUNT_^1_(STA-_$IS,I_0SET LEADING SIGN LEGAL_^1IFA1_#RTJ*_$(DA4+1)_-TO AXPR_^1_%SQZ_!IFA6_^1_(ENQ_%6_3EXP€€RESSION NOT ABSOLUTE_^1_(JMP*_$IFIGM1_^1IFA2_#ENQ_%1_^1_%ENA_"0_^1_%STA-_"AX16,I_^1_%STA* IFRFLG_^1IFIGM1_!RTJ*_$(ADC1C+1)_^1IFIG_$ENA_"0_^1_)STA*_!IFRFLG_^1_)JMP_"IGNORE_^1IFA6_$LDQ-_!VBT,I_%SAVE EXPRESSION_^1_(STA-_$VMS,B_^1_(LDA-_$CS,I_^1_(AAQ_%A_^1_(SAZ_%2_3ILLEGAL FIELD TERMINATOR_^1_(SQZ_%2_^1_(JMP*_$IFA3_0ALL FIELDS PROCESSED_^1_(JMP*_$IFA2_^1_(RAO-_$IS,I_0SET LEADING SIGN €€ILLEGAL_^1IFA5_#RTJ+_$CHPR_0GET COMPARE CODE_^1_(LDA-_$CS,I_^1_(STA-_$VBT,I_^1_(ADQ-_$SY+1,I_^1_(STQ-_$VCT,I_^1_(INA_%-1_^1_(SAZ_%1_^1_(JMP*_$IFA2_0ERR,NO COMMA NEXT_^1_(JMP*_$IFA+2_/GO GET NEXT FIELD ***_^1IFA3_#ENQ_%3_^1_(LDA-_$VCT,I_^1_(SUB*_$IFTAB,Q_^1_(SAZ_%4_3FOUND_^1_(SQZ_%2_3ILLEGAL_^1_(INQ_%-1_^1_%JMP* IFA3+1_^1_(JMP*_$IFA2_^1_(LDA-_$VMS,I_^1_(SUB-_$VMS+1,I_^1_(QLS_%1_^1_€€(JMP*_$*+1,Q_^1_%SAN IFA3A_(CONDITION NOT MET_^1_(JMP*_$IFIG_$IGNORE_^1_%SAZ IFA3A_^1_(JMP*_$IFIG_$IGNORE_^1_%SAP IFA3A_^1_(JMP*_$IFIG_$IGNORE_^1_%SAZ IFA3A_^1_%SAM 1_^1_(JMP*_$IFIG_$IGNORE_^1IFA3A_#LDA*_!IFRFLG_^1_)SAZ_"IFA3AA_^1_)ENA_"0_^1_)STA*_!IFRFLG_^1_(ENQ_"1_^1_(JMP*_"IFIGM1_^1IFA3AA_"RAO-_!SKF,I_^1_(LDA-_$LA,I_0SAVE IF NAM_^1_(STA-_$IFNAM,I_^1_(JMP*_!IFIG_^1*_2EQ_!NE_€€!LT_!GT_^1IFTAB_"NUM_%$171,$3A5,$334,$1F4_^1IFC_$LDA-_$MD,I_^1_(ENQ_%0_^1_(SAN_%4_^1_(ENQ_%4_^1IFC2_#ENA_%0_^1_(STA-_$AF,I_^1_(JMP*_$IFA2+1_^1_(STQ-_$VBT,I_/USE FOR COUNTING SUBRIELDS_^1_(STQ-_$VMS,I_/USE FOR CHARACTER CTR_^1_(ENQ_%5_^1_(ENA_%0_^1_(STA-_$TR,B_^1_(SQZ_%2_^1_(INQ_%-1_^1_(JMP*_$*-3_^1IFC10_"RTJ+_$CHPU_0SLEW OVER LEADING BLANKS_^1_(SAN_%2_^1IFC15_"ENQ_%1_^1_(JMP*_$IFC2€€_0TO ERR AND EXIT_^1_(LDA-_$CT,I_0SET COL CTR BACK ONE_^1_(INA_%-1_^1_(STA-_$CT,I_0GET CHAR WITH AF_^1IF3C_#RAO-_$AF,I_0SWITCH SET_^1_(RTJ*_$(IFC10+1)_^1_(STQ-_$TR+6,I_^1_(LDA-_$VBT,I_^1_(INQ_%-9_^1_(SQZ_%4_3TAB_^1_(INQ_%-4_^1_(SQZ_%2_3CR_^1_(INQ_%-$13_^1_(SQN_%1_^1_(JMP*_$IF5C_0BLANK_^1_(INQ_%-$C_^1_(SQN_%1_^1_(JMP*_$IF4C_0COMMA_^1_(RAO-_$VMS,I_^1_(LDA-_$VMS,I_^1_(INA_%-7_^1_(SAM_€€%1_^1_(JMP*_$IF3C_06 CHAR STORED_^1_(LDQ-_$VMS,I_^1_(INQ_%-1_^1_(LRS_%1_^1_(ADQ-_$VBT,I_^1_(SAM_%3_3RIGHT CHARACTER_^1_(LDA-_$TR+6,I_.LEFT CHARACTER_^1_(ALS_%8_^1_(JMP*_$*+2_^1_(LDA-_$TR+6,I_^1_(ADD-_$TR,B_^1_(STA-_$TR,B_^1_(JMP*_$IF3C_^1IF4C_#SAZ_%1_^1_(JMP*_$IFC15_/ERR,COMMA WITH VBT NON ZERO_^1_(ENA_%0_^1_(STA-_$AF,I_^1_(RTJ*_$(IFA5+1)_,GET COMPARE CODE_^1_(ENA_%3_^1_(STA-_$VBT,€€I_^1_(LDA-_$CS,I_^1_(INA_%-1_^1_(SAZ_%1_^1_(JMP*_$IFC15_/ERR,NO COMMA HERE_^1_(STA-_$VMS,I_^1_(JMP*_$IF3C_0GO GET NEXT FIELD_^1IF5C_#SAN_%1_^1_(JMP*_$IFC15_/ERR,BLANK WITH VBT EQU ZERO_^1_(ENQ_%2_^1IF5CA LDA- TR,B_^1_(INQ_%3_^1_(EOR-_$TR,B_^1_(SAN_%3_3NO MATCH_^1_(INQ_%-4_^1_(SQM_%2_3MATCH_^1_%JMP* IF5CA_^1_(TRA_%Q_^1_(LDA-_$SY,I_^1_(ADD-_$SY+1,I_^1_(SUB_%=N$171_^1_(SAZ_%4_3COMPAR€€E IS ON EQ_^1_(SUB_%=N$234_^1_(SAZ_%3_3COMPARE IS ON NE_^1_(JMP*_$IFC15_/ILLEGAL COMPARE CODE_^1_(SQP_%2_^1_(SQM_%4_^1_(SQP_%3_^1_(RAO-_$SKF,I_^1_(LDA-_$LA,I_^1_(STA-_$IFNAM,I_^1_(ENA_%0_^1_(STA-_$AF,I_^1IF7C_#JMP_%IGNORE_^1EMC_$LDA-_$MD,I_0END MACRO_^1_(SAN_%1_^1_%JMP* (IF7C+1)_^1_(INA_%-1_^1_(STA-_$MD,I_^1_(SAN_%1_^1_(STA-_$MPSW,I_.ZERO INHIBIT MACRO PRINT SWITCH_^1EMC1_#JMP_%NEX€€T_^1EIF_$LDA-_$SKF,I_/END IF_^1_(SAN_%1_^1_(JMP*_$EIF1_^1_(RTJ+_$CHPR_0GET ADDRESS FIELD_^1_(SAN_%1_^1_(LDA-_$CS,I_^1_(SAN_%EIF1+1_^1_(RAO-_$IG,I_^1_(RTJ*_$(EIF+4)_^1_(SAN_%1_^1_(LDA-_$CS,I_^1_(SAN_%EIF1+1_^1_(TRQ_%A_3ADDRESS SYMBOL IN Q_^1_(EOR-_$IFNAM,I_^1_(SAN_%1_3NO MATCH_^1_(STA-_$SKF,I_/MATCH,STOP SKIPPING_^1EIF1_!JMP* (IF7C+1)_^1_(JMP*_$IFC15_/TO ERR AND IGNORE_^1_(END_^__€€PA3PR3 CSY/ €€1_%NAM PA3PR3_'DECK-ID A08 MACRO ASSEMBLER_%SUMMARY-162_^1*_$MASS STORAGE OPERATING SYSTEM VERSION 5.0_^1*_$SMALL SYSTEMS DIVISION, LA JOLLA, CALIFORNIA_^1*_$COPYRIGHT CONTROL DATA CORPORATION 1976_^1*_'PROGRAM BASE-MACRO ASSEMBLER 2.0_4**MSOS 4.0_^1STDSCR EQU STDSCR($B3)_^1REQPRO EQU REQPRO($F4)_^1*_1ST MUST BE FIRST_^1_(EQU_%ST(1),ET(ST+1),PSW(ET+1),PB(PSW+1)_^1_%EQU DSW(PB+€€49),DSWW(DSW+1)_^1_%EQU TSW(DSWW+1),CSW(TSW+1),SECTNO(CSW+1)_^1_%EQU_#PNAM(SECTNO+1)_^1_%EQU_#WMS(PNAM+3),CSYSCT(WMS+1)_^1_(EQU_%SCOUNT(CSYSCT+1),XSYSCT(SCOUNT+1)_^1_(EQU_%CC(XSYSCT+1),DC(CC+1)_^1_(EQU_%PC(DC+1),DX(PC+1),LA(DX+2),W1(LA+4),W2(W1+1)_^1_(EQU_%AD(W2+1),AF(AD+1),AM(AF+1),CL(AM+1),EX(CL+1)_^1_(EQU_%RC(EX+1),AX(RC+1),LC(AX+1),AU(LC+1),AR(AU+1)_^1_(EQU_%TR(AR+1),SY(TR+7),€€NU(SY+4),SG(NU+1),RP(SG+1)_^1_(EQU_%HX(RP+1),XMOD(HX+1),LT(XMOD+1),ES(LT+1),LP(ES+1)_^1_(EQU_%IG(LP+1),NS(IG+1),IS(NS+1),CT(IS+1),CS(CT+1)_^1_(EQU_%IL(CS+1),MD(IL+1),ID(MD+1),SKF(ID+1)_^1_(EQU_%BS(SKF+1)_^1_%EQU AUB(BS+1)_^1_%EQU UB(AUB+57)_^1_(EQU_!LN(UB+57),OR(LN+1),OC(OR+1)_^1_(EQU_!AS(OC+1),SC(AS+1),SS(SC+1)_^1_(EQU_%WC(SS+1),RM(WC+1)_^1_(EQU_%YL(RM+1),SZ(YL+1)_^1_(EQU_%PER(S€€Z+1)_^1_(EQU_%VBT(PER+1),VMS(VBT+1),IFNAM(VMS+1)_^1_(EQU_%MPSW(IFNAM+1)_^1_(EQU_%VCT(MPSW+1),VWD(VCT+1)_^1_(EQU_%AX16(VWD+1)_^1_(EQU_%ETSAVE(AX16+1)_^1_(EQU_%DVFL(ETSAVE+1)_^1_(EQU_%PAGL(DVFL+1)_^1_(EQU_%SL(PAGL+1)_^1_(COM_%CONS(SL+1)_^1_(COM_%FST_^1_%COM L,P,X,C,MM,ILSCST,SRSCST,ILSCND_3MSOS4.1_^1_(COM_%ERC_^1_%COM LGSECT_^1_%COM SYRFTS(96)_"SECT.REF.TBL.SYMBOLS_0MSOS4.1_^1_%CO€€M SYCADM_'ADDR.TO SECT.REF.TBL.SYMBOLS_(MSOS4.1_^1_%COM SYEXT_MMSOS4.1_^1_%COM SYINDM_LMSOS4.1_^1_%COM SYTRFM_'ENTRY ADDR.REF.TBL.SYMBOLS_*MSOS4.1_^1_%COM SYTRFD_'1ST ADDR.REF.TBL.SYMBOLS-DISK_'MSOS4.1_^1_%COM APASS1,APASS2,APASS3,ATBLST,AXREF,PAGE_,MSOS4.1_^1_%COM PS1W2,PS2W2,PS3W2,PS4W2,PS5W2_5MSOS4.1_^1_(EXT_!EMC1,PJECT,CARCON,WRIT,JJ5,ER,PRNT,CHPR_^1_(EXT_!TBLIN,RESTBL,S€€YCH,DA1,DA3,DA4,LDCP,RBPK_^1_(EXT_!ALFSB2,CHPU,STATUS,NEXT,CO,IGNORE_^1_%EXT CORD,COWR_^1_(ENT_!M2J5,DEC,VFD,LST,NLS,SPC,EJT,AXPR,MOVE,MAPR_^1_%ENT UP1,UP2,M1,EJECT,DIN_^1_(ENT DOUT,REGP,DISKR5,DISKW5_^1EJT_$ENA_%0_^1_(STA-_$SL,I_^1_%LDA- PAGL,I_'HAS A PAGE EJECT JUST HAPPENED_%71*1632_^1_%INA -3_P71*1632_^1_%SAZ NOEJT_(YES, SKIP EJECT_571*1632_^1_(RTJ*_$EJECT_^1NOEJT JMP LS€€T+2_M71*1632_^1EJECT_"ADC_%0_^1_(LDA_%L_^1_(SAN_%1_,SKIP IF PRINTING_^1_(JMP*_$(EJECT)_^1_%LDA- YL,I_(CHECK TO SEE IF UNDER NLS OR LST_"**MSOS 4.0_^1_%SAZ_!1_^1_%JMP* (EJECT)_^1_%RAO PAGE_NMSOS4.1_^1_(ENA_%0_^1_(STA-_$PAGL,I_'SET TO TOP OF PAGE_^1_(LDA-_$PSW,I_^1_(SAN_%1_^1_(JMP*_$*-2_^1_(LDA_%PJECT_^1_(STA_%CARCON_'SET CARRIAGE CONTROL TO TOP-OF-FORM_^1_%ENQ_#2_^1_(EXT_%PRNFLG_€€^1EJT1_!LDA-_"PNAM,B_'TRANSFER PROGRAM NAME_^1_(STA*_$PRONAM,Q TO OUTPUT AREA_2**MSOS 4.0_^1_(SQZ_%2_^1_(INQ_%-1_^1_%JMP*_"EJT1_^1_%LDA PAGE_NMSOS4.1_^1_%CLR_#Q_^1EJT1A DVI_#=N10_^1_%INQ_#$30_^1_(STQ*_$PAGNUM+3_B**MSOS 4.0_^1_%CLR_#Q_^1_%SAZ_#EJT1B_^1_%DVI*_"EJT1A+1_^1_%INQ_#$10_^1EJT1B INQ_#$20_^1_%QLS_#8_^1_(ADQ*_$PAGNUM+3_B**MSOS 4.0_^1_(STQ*_$PAGNUM+3_B**MSOS 4.0_^1_%SAN_!1€€_^1_%JMP*_"EJT2_^1_%INA_#$30_^1_%LDQ*_"EJT3_^1_%LLS_#8_^1_%ALS_#8_^1_(STA*_$PAGNUM+2_B**MSOS 4.0_^1EJT2_#ENQ_%12_'PICK UP YEAR_4**MSOS 4.0_^1_(LDA-_$($E9),Q_!FROM EXTENDED CORE_.**MSOS 4.0_^1_(TRA_%Q_(TABLE ADDRESS_3**MSOS 4.0_^1_(LDA-_$($22),Q_C**MSOS 4.0_^1_(STA*_$MONTH+3_C**MSOS 4.0_^1_(ENQ_%13_H**MSOS 4.0_^1_(LDA-_$($E9),Q_!PICK UP MONTH FROM EXTENDED_$**MSOS 4.0_^1_(TRA_%Q_(CO€€RE TABLE ADDRESS_.**MSOS 4.0_^1_(LDA-_$($22),Q_C**MSOS 4.0_^1_(STA*_$MONTH_E**MSOS 4.0_^1_(ENQ_%14_H**MSOS 4.0_^1_(LDA-_$($E9),Q_!+ICK UP DAY FROM EXTENDED CORE_!**MSOS 4.0_^1_(TRA_%Q_(TABLE ADDRESS_3**MSOS 4.0_^1_(LDA-_$($22),Q_C**MSOS 4.0_^1_(CLR_%Q_I**MSOS 4.0_^1_(LLS_%8_I**MSOS 4.0_^1_(INA_%$2F_%SLASH_;**MSOS 4.0_^1_(STA*_$MONTH+2_C**MSOS 4.0_^1_(QLS_%8_I**MSOS 4.0_^1_(INQ_%$2F€€_%SLASH_;**MSOS 4.0_^1_(QLS_%8_I**MSOS 4.0_^1_(STQ*_$MONTH+1_C**MSOS 4.0_^1EJT2ED_!LDA_%=XEJT3_"PRINT HEADING_3**MSOS 4.0_^1_(ENQ_!EJTLEN_H**MSOS 4.0_^1JPWT_!RTJ+_"WRIT_^1_(LDA_%JJ5_*RESTORE CARRIAGE CONTROL_^1_(STA_%CARCON_'*_^1_%RTJ*_"EJT4_^1_(LDA*_$EJT2ED+1 PRINT LINE OF SPACES_,**MSOS 4.0_^1_%ENQ_!2_O**MSOS 4.0_^1_%RTJ*_"(JPWT+1)_^1_%RTJ*_"EJT4_^1_(LDA*_$EJT2ED+1 PRINT LINE O€€F SPACES_,**MSOS 4.0_^1_%ENQ_!2_O**MSOS 4.0_^1_%RTJ*_"(JPWT+1)_^1_%RTJ*_"EJT4_^1_%JMP*_"(EJECT)_^1EJT4_!NOP_#0_^1_(LDA-_$PSW,I_^1_(SAN_%1_^1_(JMP*_$*-2_^1_%JMP*_"(EJT4)_^1*_81 CARD DELETED_6MSOS4.1_^1EJT3_#ALF_%7,_H**MSOS 4.0_^1PRONAM_!ALF_%3,_H**MSOS 4.0_^1_(ALF_%7,_H**MSOS 4.0_^1PAGNUM_!ALF_%*,PAGE_!0*_?**MSOS 4.0_^1_(ALF_%7,_H**MSOS 4.0_^1_(ALF_%*,DATE*_C**MSOS 4.0_^1_(NUM_%$3A2€€0_E**MSOS 4.0_^1MONTH_"ALF_%*,MO/DA/YR*_?**MSOS 4.0_^1_(EQU_"EJTLEN(*-EJT3)_?**MSOS 4.0_^1LST_$ENA_!0_^1_(STA- YL,I_^1_(JMP+_$EMC1_$EXIT_^1NLS_$RAO-_$YL,I_^1_(JMP+_$EMC1_^1SPC_$RTJ*_$AXPR_^1_(SAZ_#6_^1_(SQZ_%7_+-_^1_(ENQ_!1_^1SPC1_#RTJ+_$ER_^1SPC2_#RTJ+_$PRNT_^1_(JMP+_$EMC1_^1_(STQ- SL,I_^1_(LDA_!=N$2020_^1_(STA- PB,I_^1_(STA- PB+1,I_^1_%LDA- AX,I_)IF THE SPACE COUNT EXCEEDS 60€€_^1_%INA -61_*THERE IS PROBABLY SOMETHING WRONG._^1_%SAM DOSPC_^1_%ENA 1_,SINGLE SPACE ONLY AND CONTINUE._^1_%STA- AX,I_^1DOSPC RTJ* (SPC2+1)_^1_(LDA- AX,I_^1_(INA_!-1_^1_(STA- AX,I_^1_(SAZ_!1_^1_(JMP* *-5_^1_(JMP+_$EMC1_^1AXPR_#SLS_^1_(ENA_%0_^1_%STA_!RP2_^1_(ENQ_!12_^1_(STA- EX,B_^1_(INQ_%-1_^1_(SQM_%1_^1_(JMP*_$*-3_^1_(ENQ_%-0_2SET ADDRESS_^1_(STQ-_$AX,I_0SUMMATION STORA€€GE_^1AX1_$RTJ+_$CHPR_^1_(SAN_!AA-*-1 ERR FOUND IN CHPR_^1_(STA-_$RC,I_^1_(LDA-_$LT,I_^1_(SAZ_!3_^1_(LDA- LC,I_-FIRST TERM_^1_(SAN_!AA-*-1_+NO ERROR_^1_(JMP* (AXPR) LITERAL - RETURN_^1_(LDA-_$CS,I_^1_(INA_!-6_$TEST FOR LEFT PAREN_^1_(SAN_%AA1-*-1_^1AA_%ENQ_%1_^1_%RTJ* (SPC1+1)_J41*598_^1_(LDA-_$CS,I_^1_(INA_%-2_^1_(SAM_!2_%BL OR COMMA NEXT_^1_(RTJ*_$(AX1+1)_^1_(JMP*_$*-4_^1_(ENA€€_%0_^1_(STA-_$RC,I_^1_(STA-_$AX,I_^1_(STA-_$AS,I_^1_(JMP*_$A12_^1AA1_$SQZ_%1_^1_(JMP*_$AB_2SYMVOL PRESENT_^1_(LDQ-_$SY+1,I_^1_%SQZ AA1A_^1_(INA_%4_3NULL FIELD_^1_(SAM_%3_^1_(LDA-_$LC,I_^1_(SAZ_%1_^1_(JMP*_$AA_^1_%JMP*_!AB-1_^1AA1A_!LDQ- SY+2,I_^1_(SQN_%1_^1_%JMP* AB-1_^1_(LDA- PC,I_"PROGRAM COUNTER =_^1_$EXT_#PCOSET_^1_'ADD+_"PCOSET_^1_(STA- NU,I_"VALUE OF THIS TERM_^1_(LDA- R€€M,I_"RELOCATION = PROGRAM_^1_(STA-_$RC,I_0RELOCATION MODE_^1_%SAN 1_Q41*598_^1_%RAO- TR+3,I_'BUMP ABS. SYS. CTR._141*598_^1_(JMP*_$A2_^1AB_%RAO-_$SS,I_0SET SEARCH FLAG_^1_(LDA-_$ST,I_^1_(RTJ*_$(A+3)_/SEARCH SYM TABLE_^1_(INQ 0_N**MSOS 4.0_^1_(SQN AB2-*-1_#IF Q = ZERO SYMBOL NOT FOUND_'**MSOS 4.0_^1_(LDA-_$ET,I_^1_(RTJ*_$(A+3)_/SEARCH EXT TABLE_^1_(INQ 0_N**MSOS 4.0_^1_(SQZ 1_*€€IF Q = ZERO SYMBOL NOT FOUND_'**MSOS 4.0_^1_(JMP*_$AW_^1_(RTJ+_$TBLIN_^1_(SAM_%AB1+1-*-1_^1_(JMP*_$AB+1_0GO SEARCH NEXT SYMTAB_^1AB1_$RTJ*_$(A13+1)_^1_(ENQ_%8_^1_(JMP*_$AA+1_^1AB2_$LDA-_$1,Q_1PICK UP SYMBOL_^1_(ARS_%12_^1_(INA_%-4_^1_(SAN_%1_^1_(JMP*_$AB1_1UNIDENTIFIED ENTRY PT_^1_(INA_%4_^1_(STA-_$RC,I_0STORE RELOCATION_^1_(ADQ-_$SY+3,I_^1_%SAN 1_Q41*598_^1_%RAO- TR+3,I_'BUMP ABS€€. SYS. CTR._141*598_^1_(LDA-_$2,Q_^1_(TCA_%A_^1_(LDQ-_$AX16,I_^1_(SQZ_%2_^1_(ALS_%1_316-BIT ARITH_^1_(ARS_%1_3EXTEND SIGN OF SYMBOL ADDRESS_^1_(STA-_$NU,I_0STORE ADDR VALUE_^1_(RTJ*_$(A13+1)_^1_(JMP*_$A2_^1AW_%RAO-_$EX,I_/SET EXTERNAL FLAG_^1_(LDA-_$CS,I_^1_(INA_%-2_^1_(SAP_%AY1-*-1_^1_(LDA-_$LC,I_^1_(INA_%-2_2LEADING TERMINATOR_^1_(SAP_%AY1-*-1_^1_(LDA-_$SG,I_^1_(SAN_%AY1-*-1_^1_(€€LDA-_$AM,I_^1_(SAM_%2_^1_(LDA-_$AD,I_0ONE WORD COMMAND_^1_(SAZ_%AY1-*-1_^1_(LDA-_$RM,I_0CHECK RELOCATION_^1_(INA_%-2_^1_(SAM_%3_^1AY_%ENQ_%6_3RELOCATION ERROR_^1_(JMP*_$AA+1_^1AY1_$JMP*_$AA_^1_(LDA-_$1,Q_^1_(ARS_%12_^1_(STA-_$RC,I_0SET RELOCATION_^1_(ALS_%12_^1_(EOR-_$1,Q_^1_(STA-_$1,Q_^1_(ARS_%11_^1_%SAZ AY1A_^1_(LDA-_$AM,I_0RELATIVE EXT_^1_(INA_%1_^1_(SAN_%1_^1_(JMP* AA_$ERROR €€PLUS TERMINATOR_^1_(RAO-_$EX,I_0EX FLAG = 2_^1AY1A_!LDA- RM,I_^1_(ALS_%12_2TABLE_^1_(ADD-_$1,Q_^1_(STA-_$1,Q_^1_(ADQ-_$SY+3,I_^1_(LDA-_$2,Q_1ADDRESS FROM_^1_(TCA_%A_^1_(STA-_$AX,I_^1_(LDA-_$PC,I_0PROGRAM COUNTER OR_^1_(SUB-_$AD,I_0PROGRAM COUNTER_^1_(INA_%1_3PLUS ONE INTO_^1_%RTJ+ EXTPT_(BUMP PC BY 1 IF CLASS 1-3_^1_(TCA_%A_3EXTERNAL TABLE_^1_(STA-_$2,Q_^1A12_$ENA_%0_^1_(LDQ-_$AD,I€€_^1_(SQN_!3_%ENTERED FROM ADC_^1_(LDQ-_$CL,I_^1_(SQP_%1_^1_(STA-_$LP,I_0ZERO LEFT PAREN_^1_(STA-_$SS,I_^1_%LDA- XSYSCT,I_J44*702_^1_%SAZ A13_O44*702_^1_%LDA- WMS,I_M44*702_^1_%STA DISKW5_L44*702_^1_%LDA- ST,I_N44*702_^1_%LDQ- CSYSCT,I_J44*702_^1_%RTJ DOUT_N44*702_^1A13_$RTJ+_$RESTBL_.RESTORE SYMTAB_^1_(LDA-_$AX,I_^1_(LDQ-_$AX16,I_^1_(SQN_%1_^1_(AND* A_%MASK ADDRESS TO_^1_(STA-_€€$AX,I_015 BITS_^1_(LDQ-_$RC,I_^1_%JMP AA-4_(RETURN_?41*598_^1A_'ADC_%$7FFF,ER,MOVE,SYCH_^1_(BZS_%RP2(1)_^1_%ENT_!RP2_^1A2_%LDQ- LC,I_"LEADING OPERATOR_^1_(LDA-_$SG,I_^1_(SAZ_%4_3NO LEADING SIGN_^1_(SQZ_%1_^1_(JMP*_$AY1_^1_(SAP_!1_%LEADING SIGN PLUS_^1_(INQ_!3_%SET LC CODE MINUS_^1_(INQ_%-4_^1_(STQ- RP,I_"SAVE FOR NEXT TEST_^1_(INQ_%1_^1_(SQN_%2_^1_(ENA_%-0_^1_(STA- AS,I_"SET AD€€DRESS MASK NEGATIVE_^1_(LDA-_$RC,I_^1_(SAZ_%A21-*-1_^1_(SQZ_!4_/LC IS MINUS_^1_(INQ_!-1_^1_(SQN_!4_^1_(LDQ- AS,I_^1_(SQZ_!2_^1_(ENQ_!4_^1_(JMP* *+2_^1_(ENQ_!0_^1_(EAQ_%Q_3OF RC_^1_(LDA-_$TR-1,B_.RECORD RELOCATION_^1_(INA_%1_3OF THIS TERM_^1_(STA-_$TR-1,B_^1A21_$LDA-_$RP,I_0LEADING CHARACTER_^1_(LDQ-_$CS,I_0TRAILING CHARACTER_^1_(INQ_%-4_^1_(STQ-_$RP,I_^1_(SAM_!1_%LC = +,-,BL OR C€€OMMA_^1_(JMP*_$AG_2LC = * OR /_^1_(SQM_%1_^1_(JMP*_$AE_2CS = * OR /_^1_(LDA- NU,I_"LC,CS = +,-,BL OR COMMA_^1AZ_%LDQ-_$AX16,I_^1_(SQN_%2_316-BIT ARITH_^1_(ALS_%1_^1_(ARS_!1_%EXTEND SIGN OF NU_^1_(EOR- AS,I_"COMPLEMENT IF SIGN MINUS_^1_(ADD-_$AX,I_^1_(STA-_$AX,I_^1_(ENA_%0_^1_(STA-_$AS,I_^1_(STA-_$RC,I_^1AV_%LDQ-_$CS,I_^1_%INQ_!-7_^1_%SQN_!AV0-*-1_(IF CS WAS NOT ')'_^1_%STQ- LC,I€€_^1_%JMP_!AX1_$GO BACK FOR NEXT TERM_^1AV0_"INQ_!5_^1_(SQM_!4_%CS = BLANK OR COMMA_^1_(INQ_!2_%CS INTO LC GO PICK_^1_(STQ-_$LC,I_0UP NEXT TERM_^1_(JMP_%AX1_^1_(ENA_%0_^1_(STA-_$RC,I_^1_(ENQ_%3_3CHECK RELOCATION_^1_(LDA-_$TR-1,B_^1_(INQ_%4_^1_(SUB-_$TR-1,B_^1_(SAN_%4_3RELOCATION HERE_^1AV2_$INQ_%-5_^1_(SQN_%1_^1_(JMP*_$A12_^1_(JMP*_$*-7_^1_(STQ-_$RP,I_^1_(INA_!1_%RELOC HERE CHECK €€IT_^1_%SAN AV1B_^1AV1_$LDA-_$RC,I_^1_%SAZ 2_Q44*702_^1AV1A_!JMP AY_P44*702_^1_(STQ-_$RC,I_^1_(LDQ-_$RP,I_^1_(JMP*_$AV2_^1AV1B_!INA -2_^1_(SAZ_%1_^1_%JMP* AV1A AY_%RELOC ERROR_^1_(INQ_%-4_^1_(JMP*_$AV1_^1AE_%LDA- RC,I_"LC = +,-,BL OR COMMA_^1_(STA-_$AR,I_0CS =* OR /_^1_(LDA-_$NU,I_0SAVE RC AND NU_^1_(STA-_$AU,I_^1_(JMP*_$AV_^1AG_%LDQ-_$RC,I_0LC = * OR /_^1_%SQZ AGA_*RC = 0_^1_€€(SAZ_%1_3LC = *_^1_(JMP* AE-3_"ERR DIVISOR RELOC_^1_(LDA-_$AR,I_^1_(SAZ_%1_^1_(JMP* AE-3_"ERR TOO MANY RELOCS_^1_(STQ-_$AR,I_0SAVE THIS RELOC_^1_(JMP*_$*+3_^1AGA_"SAZ 1_^1_(JMP*_$AH_^1_(LDA-_$NU,I_0LC= *_^1_(MUI-_$AU,I_^1_(STA-_$VWD,I_^1_(LDA-_$AX16,I_^1_(SAN_%AG1-*-1_-16-BIT ARITH_^1_(LDA-_$VWD,I_^1_(SAP_%2_^1AGB_"AND* A_,PRODUCT WRAP AROUND_^1_(INA_%1_^1_(QLS_%1_^1_(AAQ_%A_^1_€€(SAP_%AG1-*_^1_(CLR_%Q_^1_%JMP* AGB_^1AG1_$LDA-_$VWD,I_^1_(LDQ-_$RP,I_^1_(SQP_%1_^1_(JMP* AZ_$CS = +,-,BL OR COMMA_^1_(JMP*_$AE+3_0CS = * OR SLASH_^1AH_%LDA-_$NU,I_0LC = /_^1_(SAN_%1_^1_(JMP* A2+4_"ERR DIV BY ZERO_^1_(LDA-_$AU,I_^1_%CLR Q_^1_%SAP 1_^1_%SET Q_,SET THE SIGN IF NEG_^1_(DVI-_$NU,I_0AU/NU_^1_(JMP*_$AH-4_^1UP2_$SLS_^1_(SQN_%1_^1_(JMP*_$(UP2)_^1_(RTJ*_$UP1_^1_(INQ_%-€€1_^1_%JMP* UP2+1_^1UP1_$SLS_%0_3BUMP PROGRAM_^1_(LDA-_$PC,I_0COUNTER BY ONE_^1_%SUB* UP1A_^1_(SAZ_%2_^1_%ADD* UP1A_^1_(INA_%1_^1_(STA-_$PC,I_^1_(JMP*_$(UP1)_^1UP1A_!NUM $7FFE_^1MOVE_#SLS_!0_/MOVE SYMBOL_^1_(ENQ_%3_3TO LABEL_^1_(LDA-_$SY,B_^1_(STA-_$LA,B_^1_(INQ_%-1_^1_(SQM_%1_^1_(JMP*_$*-4_^1_(JMP*_$(MOVE)_^1_(EXT_!OFJ2_^1GETX_#ADC_!0_^1_(RTJ* GETCHR_!GET THE INDEX CHARACTER_^1_(€€SQP_!1_'SKIP IF THE CHAR CAME BACK_^1_(JMP* (GETX)_!EXIT WITH ERROR CODE (Q MINUS)_^1_(INQ_!-$31_#SUBTRACT ASCII 1_^1_(SQP_!1_'SKIP IF CHAR .GE. 1_^1_(JMP* (GETX)_!EXIT WITH ERROR CODE (Q MINUS)_^1_(INQ_!-4_%Q = CHAR - ASCII 5_^1_(SQP_!2_'SKIP IF NOT INDEX REG 1-4_^1_(INQ_!5_'Q = INDEX REG NUMBER 1-4_^1_(JMP* (GETX)_!EXIT WITH INDEX REG NUMBER IN Q_^1_(INQ_!-$C_$Q= CHAR - ASC€€II A_^1_(SQN_!2_'SKIP IF NOT INDEX REG A_^1_(ENQ_!6_'Q= CODE FOR REGISTER A_^1_(JMP* (GETX)_!EXIT WITH A-REG CODE_^1_(INQ_!-8_%Q= CHAR - ASCII I_^1_(SQN_!2_'SKIP IF NOT INDEX REG I_^1_(ENQ_!7_'GET CODE FOR INDEX REG I_^1_(JMP* (GETX)_!EXIT WITH I-REG CODE_^1_(INQ_!-8_%Q= CHAR - ASCII Q_^1_(SQN_!2_'SKIP IF ILLEGAL CHAR_^1_(ENQ_!5_'GET CODE FOR INDEX REG Q_^1_(JMP* (GETX)_!EXIT WI€€TH Q-REG CODE_^1_(ENQ_!-1_%GET ERROR CODE_^1_(JMP* (GETX)_!EXIT WITH ERROR CODE_^1GETCHR_!ADC_!0_^1_(RAO- CT,I_#BUMP THE SOURCE COLUMN COUNTER_^1_(LDQ- CT,I_#PICK UP NEXT COLUMN NUBER_^1_(INQ_!-72_$SUBTRACT 1ST ILLEGAL COLUMN_^1_(SQM_!2_'SKIP IF LEGAL COLUMN_^1_(ENQ_!-1_%SET UP ERROR PARAMETER_^1_(JMP* (GETCHR)_!EXIT_^1_(LDQ- CT,I_#GET THE CURRENT COLUMN NUMBER_^1_(LRS_!1_'CON€€VERT TO WORD INDEX_^1_(ADQ (SOURCE)_!GET ADDRESS OF SOURCE WORD_^1_(LDQ+ 0,Q_'PICK UP SOURCE WORD_^1_'SAP 1_$IF BIT 15=0, GET LEFT CHAR_^1_(QLS_!8_'SWITCH CHAR POSITIONS_^1_(QRS_!8_'GET RID OF RIGHT CHAR_^1_(JMP* (GETCHR)_!EXIT_^1SOURCE_!ADC_!OFJ2_%ADDRESS OF INPUT BUFFER_^1_%EJT 0_^1*_$SUBROUTINE FLDREF PRECESSES THE START FIELD AND LENGTH FIELD_^1*_$FOR THE FIELD INSTRUCTIONS€€. EACH OF THESE FIELDS MAY BE_^1*_$DECIMAL OR HEXADECIMAL CONSTANTS, OR A SYMBOL._^1*_]_^1*_$EXIT CONDITIONS:_^1*_$(Q) = -1, ERROR DETECTED_^1*_$(Q) = 0, ADDRESS FIELD NOT INDEXED_^1*_$(Q) = 1, ADDRESS FIELD_#INDEXED_^1_%SPC 3_^1FLDREF NUM $FFFF_^1_%ENA 0_,CLEAR FLAGS ON INITIAL ENTRY_^1_%STA COMMA_(IF SET COMMA COUNTER_^1_%STA- SS,I_)CLEAR SYMBOL TABLE SEARCH INDICATOR_^1_%€€STA RELFAC_'TERM RELOCATION FACTOR_^1_%SET Q_^1_%STQ MULT_)CURRENT TERM OPERATOR FLAG_^1FLD10 STA OPR_*INDICATE NOT EXPECTING OPERATOR CHAR FIRST_^1_%STA FLD_*INITIAL VALUE FOR ACCUMULATED FIELD VALUE_^1_%STA ISGN_)INITIAL CHARACTER POSITION OF EXPRESSION_^1_%STA OPRAND_'CLEAR IN CASE INITIAL SIGN SPEC. IN EXPRESSION_^1_%ENQ 1_^1_%STQ SIGN_)INDICATE DEFAULT + SIGN AT STAR€€T OF EXPRESSION_^1_%ENQ 2_^1FLD20 STA LOCTBL,Q_$CLEAR RELOCATION TABLE_^1_%SQZ FLD30_(SKIP WHEN DONE_^1_%INQ -1_^1_%JMP* FLD20_^1FLD30 RTJ* FACTOR_'EVALUATE OPERAND_^1_%JMP* FLD60_(ERROR EXIT_^1_%RTJ SYMVAL_'EVALUATE VALUE OF OPERAND SYMBOL_^1_%JMP* FLD60_(ERROR EXIT_^1_%RTJ TERM_)EVALUATE TERM IN EXPRESSION_^1_%JMP* FLD60_(ERROR EXIT_^1_%RTJ EXPR_)EVALUATE EXPRESSION_^1_%€€JMP* FLD60_(ERROR EXIT_^1_%LDQ QSAVE_^1_%INQ -6_^1_%SQM FLD40_(SKIP IF EXPRESSION COMPLETELY EVALUATED_^1_%JMP* FLD30_^1FLD40 RTJ RANGE_(CHECK RANGE OF VALUES FOR FIELD_^1_%JMP* FLD60_(ERROR EXIT_^1_%RTJ WORD_)PACK VALUE INTO INSTRUCTION WORD_^1_%JMP* FLD60_(ERROR EXIT_^1_%SAN FLD50_(SKIP IF BOTH FIELDS PROCESSED_^1_%JMP* FLD10_(PROCESS SECOND FIELD_^1FLD50 LDQ COMMA_(PASS€€ BACK PARAM INDICATING WHETHER OR NOT_^1*_8AN INDEX IS EXPECTED_^1_%JMP* FLD70_^1FLD60 ENQ -1_+GET PARAM INDICATING ERROR_^1FLD70 JMP* (FLDREF)_$RETURN_^1_%EJT 0_^1*_$SUBROUTINE FACTOR EVALUATES DECIMAL AND HEXIDECIMAL OPERANDS._^1*_$IF THE OPERAND IS A SYMBOL, THIS SUBROUTINE ALSO SPECIALLY PACTS_^1*_$THESE CHARACTERS FOR TABLE LOOK UP TO DETERMINE THE ACTUAL VALUE_^1*_$OF THE O€€PERAND. SINCE THE MULTIPY SYMBOL, *, HAS A SECOND_^1*_$MEANING AS PROGRAM COUNTER, SUBROUTINE FACTOR CHECKS FOR THIS_^1*_$SPECIAL CASE._^1*_]_^1*_$EXIT CONDITIONS_^1*_$P+1, ERROR EXIT_^1*_$P+2, NORMAL EXIT_^1_%SPC 5_^1FACTOR NUM $FFFF_^1_%ENA 0_^1_%STA* ALF_*ALPHA FIELD_^1_%STA* DECM_)IF SET DECIMAL FIELD_^1_%STA* HEX_*IF SET HEXADECIMAL FIELD_^1_%STA* CHR1ST_'1ST CHAR OF ALPHA€€ FIELD IF ZERO_^1_%STA* OPD_*OPERAND VALUE_^1_%STA RELC_)SET RELOCATION FLAG AS ABS._^1FCT10 RTJ* SYMCHK_'EXAMINE NEXT CHARACTER IN ADDRESS FIELD_^1_%JMP* FCT140_'BAD FIELD EXIT FROM SYMCHK_^1_%SQN FCT20_(SKIP IF NOT LEADING $ IN FIELD_^1_%JMP* FCT10_(PROCESS NEXT CHARACTER_^1FCT20 INQ -1_^1_%SQN FCT30_(SKIP IF NOT HEX FIELD_^1_%LDQ* OPD_)CONVERT TO HEXADECIMAL_^1_%QLS 4_^1_€€%JMP* FCT110_^1FCT30 INQ -1_^1_%SQZ FCT40_(SKIP IF ALPHA FIELD_^1_%JMP* FCT90_^1FCT40 LDQ* CHR1ST_'1ST CHARACTER FLAG_^1_%SQN FCT50_(SKIP IF NOT 1ST CHARACTER OF SYMBOL_^1_%STQ- SY,I_)CLEAR SYMBOL ENTRY_^1_%STQ- SY+1,I_^1_%STQ- SY+2,I_^1_%STQ- SY+3,I_^1_%RAO* CHR1ST_^1_%INA -$20_)MAKE 5 BIT CHARACTER_^1_%ALS 6_^1_%JMP* FCT70_^1FCT50 LDQ- SY+3,I_^1_%QLS 15_^1_%SQM FCT60_(S€€KIP IF NOT LEFT CHAR TO PACK_^1_%ALS 8_^1FCT60 QLS 1_,SY+3,I_^1_%QRS 1_,SY ORDINAL_^1FCT70 INQ -3_^1_%SQP FCT80_(SKIP IF MORE THAN 6 CHARACTERS IN SYMBOL_^1_%EOR- SY+3,B_^1_%STA- SY+3,B_'PACK THE SYMBOL_^1_%RAO- SY+3,I_'KEEP TRACK OF CHARACTER COUNT_^1FCT80 JMP* FCT120_^1FCT90 INQ -1_^1_%SQZ FCT100_'SKIP IF DECIMAL FIELD_^1_%INQ -5_^1_%LDA OPR_^1_%SQN FCT130_'SKIP IF €€NOT PROGRAM COUNTER_^1_%SAN FCT130_'SKIP IF * IS MULTIPLIER_^1_%LDQ- PC,I_)PROGRAM COUNTER_^1_%RAO* RELC_)SET TO PROGRAM RELOCATION_^1_%JMP* FCT110_^1FCT100 LDQ* OPD_)CONVERT TO DECIMAL VALUE_^1_%QLS 1_,2*_^1_%AAQ A_^1_%QLS 2_,8*_^1FCT110 AAQ Q_^1_%STQ* OPD_^1FCT120 ENA 1_,INDICATE THAT OPERAND FACTOR IS PRESENT_^1_%STA OPR_^1_%JMP* FCT10_(CONTINUE PROCESSING OPERAND_^1FCT13€€0 RAO* FACTOR_'NORMAL EXIT WITHOUT ERROR_^1FCT140 JMP* (FACTOR)_$RETURN_^1_%SPC 5_^1ALF_"NUM 0_,FLAG FOR DEFI_^1CHR1ST NUM 0_,1ST CHAR OF ALPHA FIELD FLAG_^1DECM_!NUM 0_,FLAG FOR DEFININ_^1HEX_"NUM 0_,FLAG FOR DEFINING H_^1OPD_"NUM 0_,OPERAND VALUE_^1_%EJT 0_^1*_$FUNCTION:_^1*_$THIS ROUTINE FETCHES THE NEXT CHARACTER IN THE CURRENT LINE_^1*_$AND CHECKS FOR LEADING $ FOR HEXI€€DECIMAL NUMBER, AN COMMA_^1*_$FOR TOKEN SEPARATOR, A BLANK FOR TOKEN SEPARATOR AND END_^1*_$OF ADDRESS FIELD, VALID RANGE FOR ALPHA CHARACTERS, VALID_^1*_$RANGE FOR HEXIDECIMAL CHARACTERS, VALID RANGE FOR DECIMAL_^1*_$NUMBERS, AND SPECIAL DELIMITING CHARACTERS +,-,*,AND/._^1*_$SPC 3_^1*_$INPUT REQUIREMENTS:_^1*_$(I) REGISTER = FWA OF COMMON AREA_^1*_$SPC 3_^1*_$OUTPUT REQUIREMENT€€S:_^1*_$(I) REGISTER = FWA OF COMMON AREA_^1*_$SPC 1_^1*_$(Q) REGISTER = 0, $ FOUND TO IDENTIFY HEX NUMBER_^1*_$(A) REGISTER = NOT IMPORTANT_^1*_$SPC 1_^1*_$(Q) REGISTER = 1, HEX NUMBER_^1*_$(A) REGISTER = 0-15_^1*_$SPC 1_^1*_$(Q) REGISTER = 2, ALPHA CHARACTER_^1*_$(A) REGISTER = CHARACTER BIAS BY -$20_^1*_$SPC 1_^1*_$(Q) REGISTER = 3, DECIMAL NUMBER_^1*_$(A) REGISTER = 0-9_^1*€€_$SPC 1_^1*_$(Q) REGISTER = 4, COMMA TERMINATOR_^1*_$(A) REGISTER = NOT IMPORTANT_^1*_$SPC 1_^1*_$(Q) REGISTER = 5, BLANK TERMINATOR_^1*_$(A) REGISTER = NOT IMPORTANT_^1*_$SPC 1_^1*_$(Q) REGISTER = 6, + OPERATOR_^1*_$(A) REGISTER = NOT IMPORTANT_^1*_$SPC 1_^1*_$(Q) REGISTER = 7, - OPERATOR_^1*_$(A) REGISTER = NOT IMPORTANT_^1*_$SPC 1_^1*_$(Q) REGISTER = 8, * OPERATOR_^1*_$(A) €€REGISTER = NOT IMPORTANT_^1*_$SPC 1_^1*_$(Q) REGISTER = 9, / OPERATOR_^1*_$(A) REGISTER = NOT IMPORTANT_^1*_$SPC 3_^1*_$ENTRY/EXIT:_^1*_$NORMAL EXIT P+2_^1*_$ERROR EXIT P+1_^1_%EJT 0_^1SYMCHK NUM $FFFF_^1_%RTJ GETCHR_'GET NEXT CHARACTER_^1_%SQM SYM10_(SKIP IF AT END OF CARD IMAGE_^1_%TRQ A_^1_%LDQ* DECM_)CHECK IF AT 1ST CHAR POSITION OF PARAMETER_^1_%ADQ* ALF_^1_%INA -$24_€€)LOOK FOR $_^1_%SQN SYM30_(SKIP IF NOT 1ST POSITION_^1_%SAN SYM30_(SKIP IF NOT $_^1_%LDA* HEX_^1_%SAZ SYM20_(SKIP IF LEADING $_^1SYM10 JMP* SYM170_'JUMP IF MORE THAN ONE $ SIGN (ERROR)_^1SYM20 RAO* HEX_^1_%JMP* SYM150_'(Q) = 0, IF $ FOUND_^1SYM30 ENQ 4_,INDICATES COMMA ON EXIT_^1_%INA $24-$2C_^1_%SAZ SYM40_(SKIP IF COMMA TERMINATOR FOUND_^1_%ENQ 5_,INDICATES BLANK ON EXIT€€_^1_%INA $2C-$20_^1_%SAZ SYM40_(SKIP IF BLANK_^1_%STA* CHR_*CHAR BIAS BY -$20_^1_%INA $20-$5B_^1_%SAP SYM90_(SKIP IF NOT VALID CHAR_^1_%INA $5B-$47_^1_%SAP SYM50_(SKIP IF THE CHAR IS ALPHA_^1_%INA $47-$41_^1_%SAM SYM80_(SKIP IF NOT HEX OR ALPHA_^1_%LDQ* HEX_^1_%SQZ SYM60_(SKIP IF NOT HEX_^1_%INA $A_+CONVERT TO HEX VALUE $A-$F_^1SYM40 JMP* SYM150_'EXIT_^1SYM50 LDQ* HEX_^€€1SYM60 ADQ* DECM_^1_%SQZ SYM70_'SKIP AND PROCESS AS ALPHA CHARACTER_^1_%JMP* SYM170_'ALPHA CANNOT HAVE LEADING DEC OR HEX VALUE_^1SYM70 JMP* SYM130_^1SYM80 INA $41-$3A_^1SYM90 SAP SYM110_'SKIP IF ILLEGAL CHAR FOUND_^1_%INA $3A-$30_^1_%SAP SYM120_'SKIP IF RANGE IS 0-9_^1_%INA $30-$2A_^1_%SAM SYM110_'SKIP IF ILLEGAL CHAR FOUND_^1_%ENQ 8_^1_%SAZ SYM100_'SKIP IF ASTERISK_^€€1_%INA $2A-$2B_^1_%ENQ 6_^1_%SAZ SYM100_'SKIP IF PLUS_^1_%INA $2B-$2D_^1_%ENQ 7_^1_%SAZ SYM150_'SKIP IF MINUS_^1_%INA $2D-$2F_^1_%ENQ 9_^1SYM100 SAZ SYM150_'SKIP IF SLASH_^1SYM110 JMP* SYM170_'ERROR_^1SYM120 LDQ* HEX_^1_%SQN SYM150_'SKIP IF HEX VALUE_^1_%LDQ* ALF_^1_%SQZ SYM140_'SKIP IF DECIMAL NUMBER_^1SYM130 LDA* CHR_*ALPHA BIAS CHAR_^1_%ENQ 2_,INDICATE ALPHA CHAR_^1_€€%STQ* ALF_*INDICATE ALPHA STRING_^1_%JMP* SYM150_'EXIT_^1SYM140 ENQ 3_,INDICATE DECIMAL DIGIT_^1_%STQ* DECM_)INDICATE DECIMAL NUMBER_^1SYM150 STQ* QSAVE_(SAVE COMPUTED INDEX VALUE_^1_%INQ -4_^1_%SQP SYM160_'SKIP IF NOT DEC, HEX, OR ALPHA FIELD_^1_%LDQ* RELC_^1_%SQN SYM170_'SKIP IF DEC, HEX, ALPHA FIELD IMMEDIATELY_^1*_8FOLLOWS THE PROGRAM COUNTER (*)_^1SYM160 RAO* SYMCHK_'NO ER€€ROR, P+2 EXIT_^1_%LDQ* QSAVE_(RESTORE INDEX VALUE_^1SYM170 JMP* (SYMCHK)_$RETURN_^1_%SPC 5_^1CHR_"NUM 0_,CURRENT CHAR BIAS BY -$20_^1_%EJT 0_^1*_$IF FIELD IS A SYMBOL, SUBROUTINE SYMVAL SCANS THE SYMBOL_^1*_$TABLE FOR IT'S VALUE, CHECKING TO MAKE SURE VALUE IS_^1*_$ABSOLUTE AND VALUE IS BETWEEN 0 AND 15._^1*_]_^1*_$EXIT CONDITIONS:_^1*_$P+1 EXIT, IF ERROR DETECTED_^1*_$P+2 EXIT,€€ NORMAL RETURN_^1_%SPC 3_^1SYMVAL NUM $FFFF_^1_%LDA* ALF_^1_%SAN SYV10_(SKIP IF SYMBOL PRESENT_^1_%RAO* SYMVAL_'INDICATE NO ERROR ON RETURN_^1_%JMP* SYV50_(RETURN_^1SYV10 LDQ- SY+3,I_'CONVERT LENGTH OF SYMBOL TO WORDS-1_^1_%INQ -1_^1_%QRS 1_^1_%STQ- SY+3,I_^1_%RAO- SS,I_)USE SY BUFFER AS REFERENCE_^1SYV20 LDA- ST,I_)SEARCH SYMBOL TABLE IN CORE_^1_%RTJ+ SYCH_)PERFORM SEARCH_^€€1_%INQ 0_^1_%SQN SYV30_(SKIP IF SYMBOL FOUND_^1_%RTJ+ TBLIN_(READ IN NEXT SECTION OF SYMBOL TABLE_^1_%SAM SYV40_(SKIP IF SYMBOL NOT IN TABLE_^1_%JMP* SYV20_(CONTINUE SEARCH_^1SYV30 LDA- 1,Q_*1ST WORD OF SYMBOL TABLE ENTRY_^1_%ARS 12_+RELOCATION FACTOR BITS 15-12_^1_%STA* RELC_)0-ABS, 1-PROG, 2-COM, 3-DAT RELOCATABLE_^1_%ADQ- SY+3,I_^1_%LDA- 2,Q_*PICK UP NEGATIVE VALUE OF SYMBO€€L_^1_%TCA A_^1_%STA* OPD_*NOTE THAT FLD IS POSITIVE_^1_%RAO* SYMVAL_'P+2 EXIT IS NORMAL EXIT_^1_%RTJ+ RESTBL_'RESET SYMBOL TABLE BUFFER AND FLAGS_^1SYV40 ENA 0_,RESET REFERNCE TABLE TO SEARCH_^1_%STA- SS,I_^1SYV50 JMP* (SYMVAL)_$RETURN_^1_%SPC 5_^1RELC_!NUM 0_,RELOCATION FACTOR FOR OPERAND_^1_%EJT 0_^1*_$SUBROUTINE TERM COMBINES OPERANDS OF A GIVEN TERM IN A EXPRESSTI_^1*_$€€THE NEW RESULTS IS SAVED TEMPORARY IN OPRAND. FLAG MULT CONTROLS_^1*_$OPERANDS ARE TO BE COMBINED. IF MULT IS 0, THE OPERANDS ARE MULT_^1*_$IF MULT IS 1, THE CURRENT OPERAND, OPD, IS USED AS A DIVISOR OF T_^1*_$OPERANDS. NOTE THE TERM IS EVALUATED LEFT TO RIGHT AND SUCCESSIV_^1*_$OPERANDS ARE COMBINED TO FORM A NEW OPERAND CALLED OPRAND._^1*_]_^1*_$EXIT CONDITIONS_^1*_$P+1, ERRO€€R EXIT_^1*_$P+2, NORMAL EXIT_^1_%SPC 3_^1TERM_!NUM $FFFF_(COMBINE OPERANDS OF A GIVEN TERM_^1_%LDA* OPR_^1_%SAN TRM10_(SKIP IF OPERATOR EXPECTED_^1_%JMP* TRM80_(DO NOT PROCESS AS ERROR SINCE EXCEPTIONS EXIST_^1TRM10 LDA* OPD_*PERFORM 15 BIT ARITH WITH OPERAND_^1_%AND* H7FFF_^1_%STA* OPD_^1_%LDQ* RELC_)CURRENT RELOCATION FACTOR_^1_%LDA* RELFAC_'RELOCATION FACTOR FOR TERM_^1_%SA€€Z TRM20_(SKIP IF TERM FACTOR ABS._^1_%SQZ TRM30_(SKIP IF CURRENT RELOCATION ABS._^1_%JMP* TRM90_(CAN NOT HAVE MORE THAN ONE OPERAND RELOCATABLE_^1*_8IN TERM_^1TRM20 STQ* RELFAC_'NEW OPERAND MAY BE RELOCATABLE_^1TRM30 LDA* MULT_^1_%SAP TRM40_(SKIP IF NOT 1ST OPERAND OF TERM_^1_%LDA* OPD_*CURRENT OPERAND_^1_%JMP* TRM70_^1TRM40 SAN TRM50_(SKIP IF DIVIDE OPERATION_^1_%LDA* OPRAN€€D_'PERFORM MULTIPY OF OPERANDS_^1_%MUI OPD_^1_%JMP* TRM60_^1TRM50 SQN TRM90_(SKIP IF DIVIDING BY RELOC FACTOR (ERROR)_^1_%LDA OPD_^1_%SAZ TRM90_(SKIP IF DIVIDING BY ZERO (ERROR)_^1_%LDA* OPRAND_^1_%DVI OPD_^1TRM60 AND* H7FFF_(PERFORM 15 BIT ARITH_^1TRM70 STA* OPRAND_^1TRM80 RAO* TERM_)INDICATE NO ERROR ON RETURN_^1TRM90 JMP* (TERM)_'RETURN_^1_%SPC 5_^1H7FFF NUM $7FFF_(€€MASK_^1MULT_!NUM -0_+TERM OPERATOR FLAG_^1OPR_"NUM 0_,FLAG TO EXPECT OPERATOR OR OPERAND_^1OPRAND NUM 0_,ACCUMULATIVE OPERAND VALUE OF TERM_^1QSAVE NUM 0_,INDEX VALUE FOR CHARACTER TYPE_^1RELFAC NUM 0_,RELOCATION FACTOR FOR TERM_^1_%EJT 0_^1*_$SUBROUTINE EXPR DETERMINES WHEN TERMS SHOULD BE COMBINED AND_^1*_$WHAT THE OPERATOR SHOULD BE FOR OPERANDS WITHIN A TERM. THIS_^1*_$€€ROUTINE ONLY IS CALLED WHEN A TERM SEPARATOR OCCURS. TERM_^1*_$SEPARATORS INCLUDE COMMA, BLANK, PLUS, MINUS, MULTIPY, AND_^1*_$DIVIDE SYMBOLS._^1*_]_^1*_$EXIT CONDITIONS_^1*_$P+1, ERROR EXIT_^1*_$P+2, NORMAL EXIT_^1_%SPC 3_^1EXPR_!NUM $FFFF_(PROCESS TERMS OF EXPRESSION_^1_%LDA* QSAVE_(INDEXED TO TYPE OF SYMBOL LAST ENCOUNTERED_^1*_84 - COMMA_^1*_85 - BLANK_^1*_86 - PLUS_^1*_87 - €€MINUS_^1*_88 - MULTIPLY_^1*_89 - DIVIDE_^1_%INA -8_^1_%SAM EXP10_(SKIP IF ACCUMULATING TERMS , ^ + - CHAR FOUND_^1_%JMP* EXP90_(ENCOUNTERED * OR /_^1EXP10 INA 1_^1_%SAZ EXP20_(SKIP IF MINUS SIGN_^1_%ENA 1_,TREAT , ^ AS PLUS SIGN FOR NEXT EXPRESSION_^1EXP20 LDQ* SIGN_)CURRENT SIGN IN EFFECT_^1_%STA* SIGN_)NEXT SIGN INDICATOR_^1_%LDA* OPRAND_'VALUE OF CURRENT OPERAND_^1_%SQN €€EXP40_(SKIP IF SIGN POSITIVE_^1_%TCA A_^1_%ENQ -1_+INDICATE POSSIBLE NEGATIVE RELOCATION_^1EXP40 ADD* FLD_*ACCUMULATE TERMS OF EXPRESSION_^1_%STA* FLD_^1_%SET A_,INDICATE NEW TERM COMING UP_^1_%STA* MULT_)INDICATE NO * / OPERATORS CURRENTLY EXIST_^1_%TRQ A_,1 - POSITIVE RELOC, -1 - NEG. RELOC_^1_%LDQ* RELFAC_'RELOCATION FACTOR FOR LAST OPERAND_^1*_80 - ABS_^1*_81 - PROGRAM REL€€OCATABLE_^1*_82 - COMMON RELOCATABLE_^1*_83 - DATA RELOCATABLE_^1_%SQZ EXP50_(SKIP IF OPERAND IS ABSOLUTE_^1*_$THIS PROCEDURE TO CALCULATE THE RELOCATION BASE IS EQUIVALENT TO_^1*_$THE WAY THE ASSEMBLER ELSEWHERE DOES IT. THIS METHOD IS NOT REAL_^1*_$CORRECT. EXAMPLE, ASSUME E IS PROGRAM RELOCATABLE. THE EXPRESSI_^1*_$2*E SHOULD BE IDENTICAL TO E+E, BUT THEY ARE NOT. THIS IS B€€ECAUS_^1*_$E+E IS COUNTED TWICE AND 2*E IS COUNTED ONCE._^1_%ADD* LOCTBL-1,Q_"FETCH RELOCATION COUNT BASED UPON RELOC TYPE_^1_%STA* LOCTBL-1,Q_^1_%ENQ 0_^1_%STQ* RELFAC_'CLEAR FOR NEXT TERM_^1EXP50 LDQ* QSAVE_^1_%INQ -6_^1_%SQP EXP60_(SKIP IF NOT AT END OF EXPRESSION_^1_%LDA* LOCTBL_'PROG, COM, DAT RELOCATION NOT ALLOWED_^1_%SAN EXP70_^1_%LDA* LOCTBL+1_^1_%SAN EXP70_^1_%LDA* €€LOCTBL+2_^1_%SAN EXP70_^1EXP60 LDA* OPR_*SEE IF OPERATOR WAS EXPECTED_^1_%SAN EXP80_(SKIP IF OPERATOR WAS EXPECTED_^1_%SQM EXP70_(SKIP IF POSSIBLE LEADING CHAR IS ,_^1_%LDQ* ISGN_)INITIAL SIGN FLAG FOR EXPRESSION_^1_%SQZ EXP110_'SKIP IF EXPRESSION STARTS WITH + OR -_^1EXP70 JMP* EXP120_'ERROR EXIT_^1EXP80 JMP* EXP100_^1EXP90 LDQ* OPR_*0 - EXPECT VALUE, 1 - EXPECT OPERATOR_^€€1_%SQZ EXP120_'SKIP IF BACK TO BACK OPERATORS OR EXPR. STARTS_^1_%STA* MULT_)0 IF *, 1 IF /_^1EXP100 ENA 0_^1_%STA* OPR_*NEXT CHARACTER SHOULD NOT BE OPERATOR_^1EXP110 RAO* EXPR_)INDICATE NO ERROR ON RETURN_^1EXP120 RAO* ISGN_)INDICATE NO LONGER POSSIBLY PROCESSING 1ST CHA_^1_%JMP* (EXPR)_'RETURN_^1_%SPC 3_^1FLD_"NUM 0_,ACCUMULATIVE EXPRESSION VALUE_^1ISGN_!NUM 0_,FLAG TO INDI€€CATE IF INIT CHA_^1LOCTBL ADC 0,0,0_(PROG,COMMON,DATA RELOCATION COUNTERS_^1SIGN_!NUM 1_,CURRENT SIGN_^1_%EJT 0_^1*_$SUBROUTINE RANGE CHECKS FIELDS IN FIELD INSTRUCTION._^1*_$THE CHECKS INCLUDES:_^1*_$FLDSTR = 0..15_^1*_$FLDLTH-1 = 0..15_^1*_$FLDSTR-FLDLTH-1.GE.0_^1*_]_^1*_$IF RANGE ERROR, EXIT P+1_^1*_$IF NO_"ERROR, EXIT P+2_^1_%SPC 3_^1RANGE NUM $FFFF_^1_%LDQ* FLD_*FIELD VA€€LUE_^1_%LDA* COMMA_^1_%SAN RAN10_(SKIP IF LENGTH FIELD_^1_%STQ* FLDSTR_'SAVE FIELD POSTION_^1_%JMP* RAN20_^1RAN10 INQ -1_+ADJUST LENGTH TO FLDLTH-1_^1_%STQ* FLD_^1_%TCQ A_^1_%ADD* FLDSTR_'FLDSTR-FLDLTH-1_^1_%SAM RAN30_(SKIP IF FIELD EXTENDS BEYOND WORD BOUNDARY_^1RAN20 SQM RAN30_(SKIP IF FIELD TOO SMALL_^1_%INQ -16_^1_%SQP RAN30_(SKIP IF FIELD NOT IN RANGE 0..15_^1_%RAO* R€€ANGE_(P+2 NORMAL EXIT WITHOUT ERROR_^1RAN30 JMP* (RANGE)_%RETURN_^1_%SPC 5_^1FLDSTR NUM 0_^1_%EJT 0_^1*_$SUBROUTINE WORD PUTS THE FIELD VALUE INTO THE INSTRUCTION WORD._^1*_$IT CHECKS TO MAKE SURE THAT BOTH FIELDS WERE SPECIFIED._^1*_]_^1*_]_^1*_$EXIT CONDITIONS_^1*_$P+1, ERROR RETURN_^1*_$P+2, NORMAL RETURN_^1*_$(A) REGISTER - 0 FIRST FIELD PROCESSED_^1*_$(A) REGISTER - 1 SECO€€ND FIELD PROCESSED_^1_%SPC 5_^1WORD_!NUM $FFFF_^1_%LDQ* QSAVE_(RESTORE CHARACTER INDICATOR_^1_%INQ -4_^1_%SQN WRD10_(SKIP IF NOT COMMA, MUST BE BLANK_^1_%LDQ* COMMA_^1_%SQN WRD20_(SKIP IF 2ND FIELD_^1_%LDA* H0FFF_(GET MASK FOR UPPER 4 BITS $0FFF_^1_%AND- W2,I_)ZERO OUT UPPER 4 BITS OF W2_^1_%LDQ* FLD_*GET THE FIELD START VALUE_^1_%QLS 12_+MOVE VALUE TO UPPER 4 BITS_^1_%EAQ A€€_,MERGE FIELD START WITH W2_^1_%STA- W2,I_^1_%RAO* COMMA_(BUMP THE COMMA COUNT_^1_%ENA 0_,CLEAR FLAGS FOR NEXT FIELD_^1_%JMP* WRD30_^1_%SPC 1_^1WRD10 LDA* COMMA_(ENCOUNTERED BLANK CHARACTER_^1_%SAZ WRD40_(SKIP IF NO 2ND FIELD_^1_%INA -1_^1_%STA* COMMA_(INDICATE NO INDEX EXPECTED_^1WRD20 LDA* HF0FF_(GET MASK FOR NEXT 4 BITS $F0FF_^1_%AND- W2,I_)ZERO OUT NEXT 4 BITS OF W2_^1_%L€€DQ* FLD_*GET THE FIELD LENGTH-1_^1_%QLS 8_,MOVE TO "NEXT 4" BITS_^1_%EAQ A_,MERGE FIELD LENGTH WITH W2_^1_%STA- W2,I_^1_%ENA 1_,INDICATE BOTH FIELDS HAVE BEEN PROCESSED_^1WRD30 RAO* WORD_)NORMAL RETURN WITHOUT ERROR_^1WRD40 JMP* (WORD)_'RETURN_^1_%SPC 5_^1COMMA NUM 0_,FLAG TO TELL HOW MANY FIELDS CORRECTLY PROCESS_^1H0FFF NUM $0FFF_(MASK TO START FIELD_^1HF0FF NUM $F0FF€€_(MASK TO LENGTH FIELD_^1_%EJT 0_^1MAPR_#LDQ- CL,I_#GET THE CLASS CODE_^1_(INQ_!-9_%TEST FOR CLASSES 1-8_^1_(SQM_!2_%SKIP IF CLASS 1-8_^1_)JMP_!BIGUNS_#GO ASSEMBLE CLASSES 10-13_^1_(LDA- AM,I_#GET THE TERMINATOR CODE_^1_'SAN CONVAM_$IF NOT BLANK, CONVERT AM TO AM-3_^1_(INQ_!3_'Q = CL - 6_^1_(SQP_!2_'SKIP IF CLASS 6-8_^1CONVAM_!INA_!-3_%CONVERT AM TO AM-3_^1_(STA- AM,I_#-3=BLAN€€K, -1=+, 0=-, 1=*_^1_(LDQ- CL,I_#GET THE CLASS CODE_^1_(INQ_!-3_%TEST FOR CLASS 1-2_^1_(SQP_!GOAXPR_!SKIP IF CLASS 3-8_^1_(LDA- W1,I_#GET THE COMMAND BITS WORD_^1_(AND_!=N$FF00 SAVE THE UPPER BYTE_^1_(STA- W2,I_#PLACE F4,F5 INTO W2_^1_'LDA+ M5+5_$GET $FF (8-BIT MASK)_^1_(AND- W1,I_#ZERO OUT UPPER BYTE OF W1_^1_(EOR+ M5+4_#PUT $4 IN UPPER BYTE_^1_(STA- W1,I_#PUT OPCODE INTO €€W1_^1GOAXPR_!RTJ+ AXPR_#EVALUATE THE ADDRESS EXPRESSION_^1_(LDQ-_$LT,I_^1_(SQN_%1_^1_(JMP*_$MA_^1M4_%RAO-_$DX+1,I_"SET SW FOR RETURN TO MAPR (OR VFD)_^1_(LDA-_$AM,I_0LITERAL_^1_(SAM_%3_^1_(ENQ_%9_3ERR LITERAL IN_^1_(JMP+_$M2B+3_/1 WD COMMAND_^1LITCL4_!LDA- CS,I_^1_(INA_%-$21_^1_(SAN_%2_^1_(JMP_!(M+1)_!LITERAL IS ALPHA_^1_(INA_%-$D_^1_(SAN_%2_^1_(JMP_!(M+2)_!LITERAL IS NUMERIC_^1_€€(INA_!-$A_#LITERAL IS ADDR EXP_^1_(SAN_%2_3ILLEGAL_^1_(JMP_%(M+3)_^1_(JMP*_$M4+3_^1MA_%LDQ- CL,I_#GET THE CLASS CODE_^1_(INQ_!-6_%TEST FOR CLASS 6-8_^1_(SQM_!2_'SKIP IF CLASS 1-5_^1_(JMP+ MK_%GO PROCESS CLASS 6-8_^1_(LDQ-_!AM,I_$WE ARE NOW IN THE MEMORY REFERENCE CLASSES (1-_^1_(SQN_%1_^1_%JMP* MCB_*ONE WORD DIRECT_^1_(INQ_%1_^1_%SQZ MAA_^1_(LDA-_$EX,I_^1_(SAZ_%3_^1_(INA_%-1_^1_€€%SAZ MAA_^1_%JMP* MCA_^1_(LDA-_$RC,I_^1_(SUB-_$RM,I_^1_(SAZ_%MC-*-1_.1 OR 2 WD RELATIVE_^1_(SQM_%2_^1_(JMP+_$M3+2_^1MAA_"LDA- LP,I_^1_(ALS_%15_^1_(EOR- AX,I_"SET SIGN BIT IN AX_^1_(STA-_$AX,I_^1_(JMP*_!MF_^1MC_%STA-_$RC,I_0SET RELOCATION_^1_(LDA-_$AX,I_^1_(SUB- PC,I_"SUBTRACT PROG CTR_^1_(SQP 7_%SKIP IF THE TERMINATOR WAS *, CONTINUE IF BLANK_^1_(LDQ- CL,I_!GET THE CLASS CODE_€€^1_(INQ_!-4_#TEST FOR CLASSES 1-3_^1_(SQP_!1_$SKIP IF TWO-WORD, CONTINUE IF 3-WORD--_^1*_7THIS ACCOUNTS FOR THE LENGTH OF THE INSTRUCTION_^1_(INA_!-1_'ACCOUNT FOR THIRD WORD_^1_(INA_%-1_22 WD COMMAND_^1_(STA-_$AX,I_^1_%JMP* MCA_^1_(STA-_$AX,I_^1_(LDA-_!CL,I_#GET THE CLASS CODE_^1_(INA_"-4_%TEST FOR CLASS 1-3_^1_(SAP_"6_'SKIP IF NOT CLASS 1-3_^1_(LDA-_!AM,I_#GET THE OPCODE TERMINATO€€R CODE_^1_(INA -1_(TEST FOR *_^1_(SAN_!3_(SKIP IF NOT RELATIVE ADDRESS_^1_(LDA- AX,I_$SUBTRACT 1 FROM ADDRESS TO ACCOUNT FOR_^1_(INA -1_+THE EXTRAC INSTRUCTION WORD_^1_(STA- AX,I_^1_(LDA- AX,I_^1_(SAP_!1_^1_(TCA_%A_^1_(SUB+_$M5+2_^1_(SAM_%2_^1_(JMP+_$M3+4_0ADDRESS ERROR_^1MCA_$LDA- CL,I_#GET THE CLASS CODE_^1_(INA_!-4_%TEST FOR CLASS 1-3_^1_(SAM_!SETB7_"SKIP IF CLASS 1-3_^1_€€(LDA+ M5+1_#GET BITT 11 MASK_^1_(JMP* SETREL_!SET RELATIVE ADDRESSING BIT 11_^1SETB7_"LDA+ M5+2_#GET BIT 7 MASK_^1SETREL_!EOR- W1,I_#TURN ON THE RELATIVE BIT_^1_(STA- W1,I_$:: :: ::_"::_#::_^1_(JMP*_$MF-2_^1MCB_"SUB+ M5+3_^1_(SAM_%2_^1_(JMP+_$M3+4_^1_(LDA-_$LP,I_^1_(SAZ_!TSTLEN_!SKIP IF NO INDIRECT_^1MF_%LDA- CL,I_#GET THE CLASS CODE_^1_(INA_!-4_%TEST FOR CLASS 1-3_^1_(SAM_€€!SETB6_"SKIP IF CLASS 1-3_^1_(LDA+ M5+4_#GET BIT 10 MASK_^1_(JMP* SETIDR_!SET INDIRECT BIT 10_^1SETB6_"LDA_!=N$40_"GET BIT 6 MASK_^1SETIDR_!EOR- W1,I_#TURN ON INDIRECT BIT_^1_(STA- W1,I_^1TSTLEN_!LDQ- AM,I_$GET TERMINATOR CODE_^1_(LDA-_$AX,I_^1_(SQM_%2_3TWO WD COMMAND_^1_(JMP+_$M3_^1M2J5_#LDQ+_$VFDLIT_"TEST FOR A RETURN TO VFD LOGIC_^1_(SQZ_%4_(NO, CONTINUE IN MAPR_^1_(ENQ_%0_€€(CLEAR VFD LITERAL FLAG_^1_(STQ*_$(M2J5+1)_^1_(JMP_%VF4C-1_"RETURN TO VFD LOGIC_^1_(LDQ- CL,I_#GET THE CLASS CODE_^1_(INQ_!-4_%TEST FOR CLASS 1-3_^1_(SQM_!1_'SKIP IF CLASS 1-3_^1_(JMP* CL452W_!GO PROCESS TWO-WORD CLASS 4-5 INSTRUCTION_^1_(STA* W3_%PUT ADDRESS EXPRESSION INTO 3RD WORD_^1_(ENA_!2_^1_(STA* WORDS_"SET NUMBER OF WORDS TO PUNC_^1_(LDA- RC,I_#GET RELOCATION CODE FOR €€ADDRESS EXPRESSION_^1_(STA* RC3_$SET RELOCATION FOR 3RD WORD_^1_(ENA_!0_'GET ABSOLUTE RELOCATION CODE_^1_(STA- AR,I_#SET RELOCATION FOR 2ND WORD_^1_(STA- RC,I_#SET RELOCATION FOR 1ST WORD_^1_(INQ_!1_'TEST FOR CLASS 3_^1_(SQP_!1_'SKIP IF 3-WORD CLASS 3_^1_(JMP* CL12W3_!GO PROCESS 3-WORD CLASS 1-2_^1FIELDR_!LDA- CS,I_#GET AXPR TERMINATING CHAR CODE_^1_(INA_!-1_%TEST FOR COMMA_^1€€_(SAZ_!1_'SKIP IF COMMA_^1_(JMP* (BADEXP) GO TO ERROR ROUTINE_^1_(RTJ+ FLDREF_!ASSEMBLE FIELD-START AND FIELD-LENGTH FIELDS_^1_(SQP_!1_'SKIP IF NO ERROR FROM FLDREF_^1_(JMP* (BADEXP)_!GO TO ERROR ROUTINE_^1_(SQN_!2_'SKIP IF INDEX REG EXPECTED_^1_(STQ- CS,I_#TURN OFF WEIRD PSEUDO FLAG_^1_(JMP* CL1W3+1 GO PRINT, PUNCH , BUMP 3 WORDS_^1MERGRA_!RTJ+ GETX_#GET THE INDEX REG CODE€€_^1_(SQP_!1_'SKIP IF NO ERROR FROM GETX_^1_(JMP* (BADEXP)_!GO TO ERROR ROUTINE_^1_(QLS_!3_'MOVE INDEX NUMBER TO BITS 3-5_^1_(LDA- W1,I_#GET 1ST INSTRUCTION WORD_^1_(EAQ_!A_'MERGE INDEX BITS INTO INSTRUCTION_^1_(STA- W1,I_%::_!::_"::_!::_"::_^1_(ENA_!0_^1_(STA- CS,I_^1_(JMP* CL1W3+1 GO PRINT, PUNCH, BUMP 3 WORDS_^1CL12W3_!LDA- CS,I_#GET AXPR TERMINATING CHARACTOR CODE_^1_(INQ€€_!1_'TEST FOR CLASS 2_^1_(SQP_!1_'SKIP IF CLASS 2_^1_(JMP* CL1W3_"GO PROCESS 3-WORD CLASS 1 INSTRUCTION_^1_(INA_!-1_%TEST FOR COMMA_^1_(SAZ_!1_'SKIP IF COMMA_^1_(JMP* (BADEXP) GO TO ERROR ROUTINE_^1_(RTJ* (MERGRA+1)_#GET RB INDEX_^1_(SQP_!1_'SKIP IF NO ERROR_^1_(JMP* (BADEXP) GO TO ERROR ROUTINE_^1_(LDA- W1,I_#GET 1ST INSTRUCTION WORD_^1_(EAQ_!A_'MERGE RB INDEX INTO W1_^1_(S€€TA- W1,I_%:: :: ::_#:: ::_^1CHRPU_#RTJ+ GETCHR_!GET NEXT SOURCE CHAR_^1_(INQ -$20_$SUBTRACT ASCII BLANK_^1_#SQN 1_%IF NO INDEX, GO PRINT, PUNCH, BUMP PC_^1_#JMP*_!CL12W3-3_^1_(INQ_!-$C_$SUBTRACT ASCII COMMA_^1_(SQZ_!1_'SKIP IF COMMA_^1_(JMP* (BADEXP) GO TO ERROR ROUTINE_^1_(JMP* MERGRA_!GO MERGE RA INDEX INTO W1_^1CL1W3_"SAN_!1_'SKIP IF NOT BLANK_^1_(JMP* M1+1_#GO PRINT,€€ PUNCH, BUMP 3 WORDS_^1_(INA_!-1_%TEST FOR COMMA_^1_(SAZ_!1_'SKIP IF COMMA AFTER EXPRESSION_^1_(JMP* (BADEXP) GO TO ERROR ROUTINE_^1_(JMP* MERGRA_!GO MERGE RA INDEX INTO W1_^1BIGUNS_!LDA- CS,I_#GET THE OPCODE TERMINATOR_^1_(SAZ_!2_'SKIP IF BLANK TERMINATOR_^1_#EXT OE_^1_(JMP+ OE_%GO TO OPCODE ERROR "ROUTINE"_^1_(ENA_!0_'GET CODE FOR ABSOLUTE RELOCATION_^1_(STA- RC,I_#SET RELO€€CATION FOR 1ST WORD_^1_(STA- AR,I_#SET RELOCATION FOR 2ND WORD_^1_(INQ_!-4_%TEST FOR CLASS 13_^1_(SQM_!TST12_"SKIP IF CLASS 10-12_^1_(LDA* M5+1_#GET $800_^1_(STA- W2,I_#SET 2ND WORD OF INSTRUCTION_^1_(ENA_!1_'GET NUMBER OF INSTRUCTION WORDS - 1_^1_(STA* WORDS_"SET PUNCH LOOP CONTROL_^1_(JMP* M1+1_#GO PRINT, PUNCH 2 WORDS_^1TST12_"INQ_!1_'TEST FOR CLASS 12_^1_%SQP 1_,CLASS 12_€€^1_%JMP* SCAN_)SKIP IF CLASS 10-11_^1_%RTJ+ SLRG_)GO PROCESS CLASS 12 INST._^1_%JMP* TST12-1_^1SCAN_#RTJ* (CHRPU+1)_!GET NEXT SOURCE CHAR_^1_(SQP 1_^1_(JMP* (BADEXP)_^1_(INQ -$20_^1_(SQN 1_^1_(JMP* SCAN_^1_(LDQ- CT,I_^1_(INQ -1_^1_(STQ- CT,I_^1_(RTJ* (MERGRA+1)_#PICK UP INDEX BITS_^1_(SQP_!1_'SKIP IF NO ERROR_^1_(JMP* (BADEXP) GO TO ERROR ROUTINE_^1_(LDA- CL,I_#GET THE€€ CLASS CODE_^1_(INA_!-11_$TEST FOR CLASS 11_^1_(SAN_!1_'SKIP IF CLASS 10_^1_(QLS_!5_'MOVE INDEX TO BITS 5-7_^1_(LDA- W1,I_#GET INSTRUCTION WORD_^1_(EAQ_!A_'MERGE INDEX BITS INTO W1_^1_(STA- W1,I_%::_"::_!::_!:: ::_^1_(JMP* TST12-1 GO PRINT, PUNCH 1 WORD_^1WORDS_"NUM_!0_'HOLDER FOR NUMBER OF INSTRUCTION WORDS - 1_^1BADEXP_!ADC_!M2B+2_^1W3_%NUM_!0_'HOLDER FOR 3RD WORD OF 3-WORD €€INSTRUCTIONS_^1RC3_$NUM_!0_'HOLDER FOR RELOCATION OF 3RD WORD_^1CL452W_!STA- W2,I_%W2:= AX (ADDRESS EXPRESSION)_^1_(ENA_!1_^1_(STA* WORDS_^1_(LDQ-_$RC,I_0SAVE RC FOR_^1_(STQ-_$AR,I_02ND WD OF_^1_(ENQ_%0_3TWO WD OUTPUT_^1_(STQ-_$RC,I_^1M2_%LDA-_$CS,I_^1_'LDQ- CL,I_^1_'INQ -3_^1_'SQN 1_^1_'JMP* FIELDR_^1_'INQ 1_^1_'SQN 1_^1_'JMP* CL12W3_^1_'INQ 1_^1_'SQN 1_^1_'JMP* CL1W3€€_^1_(SAN_%1_^1_(JMP*_$M1+1_^1_(INA_%-1_^1_(SAZ_%1_^1_(JMP*_$M2B+2_/ERROR NO COMMA_^1_(LDA-_!CL,I_#GET THE CLASS CODE_^1_(INA -3_'TEST FOR CLASS 3 (FIELD REF INSTR.)_^1_(SAN 1_(SKIP IF NOT CLASS 3_^1_(JMP* MERGRA-7 GO ASSEMBLE FIELD REF FIELDS_^1_(SAP 1_)SKIP IF CLASS 4-5_^1_(JMP* MERGRA_"GO PROCESS INDEXING FOR CLASS 1-2_^1_(RTJ* (M+7)_!PICK UP NEXT CHAR_^1_(SAN_%1_^1_(JMP*_€€$M1+1_^1_(ENQ_%1_^1_(INA_%-$22_^1_%SAZ M2A_*INDEX IS B_^1_(INA_%-$7_^1_%SAZ M2BA_)INDEX IS I_^1_(INA_%-$8_^1_(SAZ_%2_3INDEX IS Q_^1_(JMP*_$M2B+2_/ERROR_^1M2A_"INQ 1_^1_(INQ_%1_^1M2BA_!QLS 8_^1_(TRQ_%A_^1_(EOR-_$W1,I_0INDEX BITS_^1_(STA-_$W1,I_0INTO W1_^1M2B_$RTJ* (M+7)_!PICK UP NEXT CHAR_^1_%SAZ 4_,IF BLANK, SKIP CALL TO ERROR ROUTINE_^1_(ENQ_%1_^1_(ENA_%0_^1_(STA-_$CS,I_^1_(€€RTJ*_$(M+4)_/TO ERROR PROCESSOR_^1_(JMP*_$M1+1_^1M_'ADC_!AXPR,DA1,DA3,DA4,ER,LDCP,RBPK,CHPU,UP1_^1_(ADC_%NEXT_^1M5_%NUM_%$8000,$800,$80,$100,$400,$FF,$FF80_^1M1_%SLS_^1_(RTJ*_$(M+5)_/PRINT_^1_(RTJ*_$(M+6)_/PUNCH_^1_(RTJ*_$(M+8)_/BUMP COUNTER_^1_(LDA-_$CS,I_^1_(INA_%-1_^1_%SAZ M3-2_)COMMA NEXT_^1_(LDA* WORDS_"GET NUMBER OF INSTRUCTION WORDS - 1_^1_(SAZ_!M3-1_#SKIP IF ALL WORDS PUN€€CHED_^1_(LDA- W2,I_#GET 2ND WORD OF INSTRUCTION_^1_(STA- W1,I_#SET IT UP FOR PUNCHING_^1_(LDA- AR,I_#GET 2ND WORD:S RELOCATION_^1_(STA- RC,I_#SET IT UP FOR PUNCHING_^1_(LDA* W3_%GET 3RD WORD OF INSTRUCTION_^1_(STA- W2,I_#SET IT UP FOR PUNCHING NEXT TIME THRU_^1_(LDA* RC3_$GET 3RD WORD:S RELOCATION_^1_(STA- AR,I_#SET UP FOR PUNCHING NEXT TIME THRU_^1_(LDA* WORDS_"GET NUMBER€€ OF WORDS LEFT_^1_(INA_!-1_%ACCOUNT FOR WORD JUST PUNCHED_^1_(STA* WORDS_"STORE IT BACK_^1_(JMP*_$M1+1_0GO AGAIN_^1_(JMP*_$(M1)_^1_(JMP*_$(M+9)_^1M3_%LDQ-_$RC,I_^1_(SQZ_%4_^1_(ENQ_%6_3RELOCATION ERROR_^1_(JMP*_$*+2_^1_(ENQ_%1_^1_(RTJ*_$(M+4)_^1_(LDA*_$M5+5_^1_(AND-_$AX,I_^1_(LDQ- CL,I_#GET THE CLASS CODE_^1_(INQ_!-4_%TEST FOR CLASS 4-5_^1_(SQP_!DELW1_"SKIP IF CLASS 4-5_^1_(EOR- €€W2,I_#MERGE 8-BIT DELTA INTO W2_^1_(STA- W2,I_%::_!::_"::_":: ::_^1_(ENA_!1_^1_(STA* WORDS_^1_(JMP* M2_^1DELW1_"EOR- W1,I_#MERGE 8-BIT DELTA INTO W1_^1_(STA- W1,I_%::_!::_#::_!:: ::_^1_(JMP* M2_^1MK_#SQN MKB_^1_(LDA-_$CS,I_^1_%SAN MKA_^1_(LDA-_$AX,I_^1_(ALS_%1_^1_(ARS_%1_^1_(SAP_%1_^1_(TCA_%A_^1_(LDQ*_$M5+6_^1_(LAQ_%A_^1_(STA-_$CS,I_^1MKA_"LDQ* M5+5_)CLASS 3 COMMAND_^1_(J€€MP*_$*+4_^1MKB_"INQ -1_^1_(SQN_%2_^1_(ENQ_%$1F_1CLASS 4 COMMAND_^1_(JMP*_$MK1_^1_%LDQ- TR+3,I_L41*598_^1_%INQ -1_P41*598_^1_%SQZ 3_,ONE ABS. SYMB. FOUND_041*598_^1_%LDQ- RC,I_N41*598_^1_%SQZ MK2-*-1_%ABSOLUTE RELOCATION_141*598_^1_%JMP* *+3_O41*598_^1_%LDQ- RC,I_N41*598_^1_%SQN MK2-*-1_%BAD RELOCATION_641*598_^1_(SUB-_$PC,I_0CALCULATED SKIP_^1_(INA_%-1_^1_(STA-_$AX,I_^1_(SAP_%€€1_^1_(JMP*_$M2B+2_^1_(LDA-_$RC,I_^1_(SUB-_$RM,I_^1_(STA-_$RC,I_^1_(LDA-_$AX,I_^1MK2_$INA_%-$10_0SKIP CPMMAND_^1_(SAM_%2_^1_(ENQ_%1_^1_(RTJ*_$(M+4)_/ADDRESS ERROR_^1_(ENQ_%$F_^1MK1_$LDA-_$AX,I_^1_(LAQ_%A_3MASK ADDRESS_^1_(EOR-_$W1,I_^1_(STA-_$W1,I_^1_(LDA-_$RC,I_^1_(ADD- CS,I_^1_(SAZ_!1_^1_(JMP* M2B+2_,ERROR_^1_(JMP*_$M1+1_^1REGP_#RAO-_$IG,I_0IGNORE BLANKS_^1_(RTJ* (M+7)_!PICK UP€€ NEXT CHAR_^1_(SAN_%1_^1_(JMP*_$M1+1_0BLANK FIELD_^1_(INA_!-$10_^1_(SAN_%5_^1_%RTJ+_!CHPU_^1_(SAZ_%1_^1BAD_%JMP* M2B+2_"ERR NO BLANK NEXT_^1_(JMP*_$M1+1_^1_(ENQ_%0_^1_(STQ-_$TR+1,I_^1_(STQ-_$TR+2,I_^1_(STQ-_$TR+4,I_^1REGPAA INA -$11_^1_(SAN_%2_^1_(ENQ_!4_%A IS DESTINATION REGISTER_^1_%JMP* REGPA_^1_(INA_%-$C_^1_(SAN_%2_^1_(ENQ_!1_%M IS DESTINATION REGISTER_^1_%JMP* REGPA_^1_(INA_€€%-$4_^1_(SAZ_!1_%Q IS DESTINATION REGISTER_^1_(JMP*_$BAD_/ADDRESS ERROR_2A0_^1_(ENQ_%2_^1REGPA LDA- TR,B_^1_(SAZ_%1_^1_(JMP*_$BAD_/REG DEFINED TWICE_.A0_^1_(STQ-_$TR,B_^1_(ADQ-_$W1,I_^1_(STQ-_$W1,I_^1_%RTJ*_#(BAD-2)_%PICK UP NEXT CHAR_^1_(SAZ_%3_3BLANK NEXT_^1_(INA_%-$C_^1_(SAZ_%2_3COMMA NEXT_^1_%JMP* REGPA+2_^1_(JMP*_$REGP-1_^1_*RTJ*_#(BAD-2)_%PICK UP NEXT CHAR_^1_(INA_%-$10_^1_%€€JMP* REGPAA_'GO AGAIN_^1DOUT_#ADC_%0_^1_(STA*_$DISKWR+6_^1_(STQ*_$DISKWR+8_^1_(ENA_%0_^1_%STA- DSW,I_^1DISKWR RTJ- (REQPRO)_$FWRITE REQUEST._^1_(ADC_!$4C00_I**MSOS 4.0_^1_%ADC COWR_^1_(ADC_%0_^1_%VFD N3/0,N1/0,N2/2,X10/STDSCR_^1DISKW5_!ADC_!0_M**MSOS 4.0_^1_(ADC_%0_^1_(ADC_%0_^1_(ADC_%0_^1_(JMP*_$(DOUT)_^1DIN_$ADC_%0_^1_(STA*_$DISKRD+6_^1_(STQ*_$DISKRD+8_^1_(ENA_%0_^1_%STA- DSWW,€€I_^1DISKRD RTJ- (REQPRO)_$FREAD REQUEST._^1_(ADC_!$4800_I**MSOS 4.0_^1_%ADC CORD_^1_(ADC_%0_^1_%VFD N3/0,N1/0,N2/2,X10/STDSCR_^1DISKR5_!NUM_%96_^1_(ADC_%0_^1_(ADC_%0_^1_(ADC_%0_^1DSTAT2 LDA- DSWW,I_^1_%SAN 1_^1_%JMP* DSTAT2_^1_(ENA_%96_2RESTORE RECORD LENGTH_^1_(STA*_$DISKRD+5_^1_(JMP*_$(DIN)_^1VFD_"ENA 0_^1_(STA-_$VCT,I_/NUMBER OF BITS IN CURRENY BYTE_^1_(STA-_$W1,I_0OUTPUT WO€€RD_^1_(ENA_%-0_^1_(STA-_$VBT,I_/NUMBER OF BITS NOW IN OUTPUT WOR_^1_(RAO-_$AD,I_0ONE WORD TO BE GENERATED (AXPR)_^1VF3C_#ENA_%0_^1_(STA-_$VMS,I_/MODE SWITCH_^1_(STA-_$EX,I_0RXTERNAL SWITCH_^1_(STA-_$RC,I_0RELOCATION_^1_(STA-_$AX16,I_^1_(STA-_$NS,I_^1_(STA-_$LP,I_0LEFT PARENTHESIS COUNTER_^1VF8C_#RTJ+_$CHPU_^1_(SAN_%1_^1_(JMP*_$VF2C_0BLANK HERE_^1_(INA_%-$C_^1_(SAN_%1_^1_(JMP*_$VF8C€€_^1_(INA_%-$15_^1_(SAZ_%2_3MODE IS A_^1_(RAO-_$VMS,I_^1_(INA_%-$D_^1_(SAZ_%2_3MODE IS N_^1_(RAO-_$VMS,I_^1_(INA_%-$A_^1_(SAZ_%VF1CA-*-1_+MODE IS X_^1VF1C_#ENQ_%1_3ILLEGAL MODE_^1_(RTJ+_$ER_^1_(ENA_%0_3FORCE_^1_(STA-_$VWD,I_/THIS_^1_(STA-_$VCT,I_/WORD_^1_(STA-_$EX,I_^1_(ENA_%16_2OUT_^1_(STA-_$VBT,I_^1_(RTJ*_$VFSB1_/FORM OUTPUT WORD_^1VF1CB_"ENA_%0_^1_(STA-_$NS,I_^1_(STA-_$AX16,I_^1_€€(JMP_%NEXT_0EXIT_^1VF1CA_"RTJ+_$CHPR_^1_(SAN_%5_3ERR FROM CHPR_^1_(LDA-_$CS,I_^1_(INA_%-5_^1_(SAN_%2_3ERR, NO SLASH NEXT_^1_(LDA-_$NU,I_^1_(SAN_%1_^1_(JMP*_$VF1C_0ERR, NO BIT COUNT_^1_(STA-_$VCT,I_/SAVE NO. OF BITS_^1_(LDQ-_$VMS,I_^1_(JMP*_$*+1,Q_^1_(JMP*_$VFA_^1_(JMP*_$VFN_^1VFX_$INA_%-16_^1_(SAZ_%2_^1_(SAM_%3_^1_(JMP*_$VF1C_0ERR, BIT COUNT GREATER TNAN 16_^1_(RAO-_$AX16,I_.FLAG 1€€6-BIT ARITHMETIC_^1_%RAO- NS,I_^1_(ENA_%-3_^1_(STA-_$AM,I_^1_(RTJ+_$AXPR_0EVALUATE EXPRESSION_^1_(STA-_$VWD,I_^1_(LDA-_$MD,I_$ARE WE IN A MACRO..._^1_(SAZ_%VF4A_'NO, CONTINUE ON_^1_(LDA-_$LT,I_'YES, TEST FOR LITERAL EXPRESSION_^1_(SAZ_%VF4C_$NO LITERAL, SKIP SYNTAX, RELOCATION CHECKS_^1_(RAO*_$VFDLIT_"SET SW FOR RETURN FROM MAPR_^1_(JMP_%M4_'LET MAPR HANDLE LITERAL, THEN RETURN_^1_€€(BZS_%VFDLIT(1)_+VFD LITERAL FLAG_^1VF4A_#LDA-_$LP,I_$CHECK FOR BAD SYNTAX IN EXPRESSION_^1_(SAZ_%1_^1_(JMP*_$VF1C_$ERROR IN EXPRESSION_^1_(LDA-_$AX16,I_"TEST RELOCATION_^1_%SQZ VF4C_^1_%SAZ VF4C_^1_(ENQ_%6_(RELOCATION ERROR_^1VF4B_#RTJ*_$(VF1C+2) CALL ERROR ROUTINE_^1_(ENA_%0_^1_(STA-_$VWD,I_^1VF4C_#LDQ-_$VCT,I_/FORM MASK_^1_(INQ_%-16_^1_(SQP_%VF2CA-*-1_^1_(INQ_%16_^1_(ENA_%1_3€€FOR BYTE_^1_(INQ_%-1_^1_(SQZ_%3_^1_(ALS_%1_^1_(INA_%1_^1_(JMP*_$*-4_^1_(AND-_$VWD,I_^1_(STA-_$VWD,I_^1VF2CA_"RTJ*_$VFSB1_^1VF2C_#LDA-_$CS,I_^1_(SAZ_%4_3BLANK TERMINATOR_^1_(INA_%-1_^1_(SAN_%1_^1_(JMP*_$VF3C_0TERMINATOR COMMA_^1_(JMP*_$VF1C_0ILLEGAL TERMINATOR_^1_(LDA-_$VBT,I_^1_(SAZ_%2_^1_(SAM_%2_^1_(JMP*_$VF1C+3_.FORCE LAST WORD OUT_^1_(JMP*_$VF1CB_/EXIT_^1_(JMP_%IGNORE_^1VFN_$INA€€_%-17_^1_(SAM_%1_^1_(JMP*_$VF1C_0ERR, N GT 16_^1_(RAO-_$NS,I_^1_(RTJ*_$(VF1CA+1)_+TO CHPR_^1_(SAN_%1_3ERR FROM CHPR_^1_%SQZ VF5CA_^1VF5C_#ENQ_%1_3ERR, V IS SY8BOLIC_^1_(RTJ*_$(VF1C+2)_,ERR, V IS SYMBOLIC_^1_(ENA_%0_^1_(STA-_$VWD,I_^1_(JMP*_$VF4C_^1VF5CA LDA- NU,I_^1_(LDQ-_$SG,I_0CIMPLEMENT IF_^1_(SQP_%1_3LEADING MINUS_^1_(TCA_%A_^1_%JMP* VF5CA-2_^1VFA_$STA-_$NS,I_^1_(TRA_%Q_^1_(E€€NA_%0_^1_(LRS_%3_3Q REG IS ZERO HERE_^1_(SAZ_%1_^1_(JMP*_$VF1C_0BIT CT NOT DIVISIBLE BY 8_^1_(ENA_%8_^1_(STA-_$VCT,I_/SET BIT COUNT FOR THIS BYTE_^1_(RTJ+_$ALFSB2_.GET CHARACTER_^1_(STQ-_$VWD,I_^1_(RTJ*_$VFSB1_/FORM OUTPUT WORD_^1_(LDA-_$NS,I_^1_(INA_%-8_^1_(SAZ_%1_^1_(JMP*_$VFA_1NOT FINISHED GO AGAIN_^1_(RTJ+_$CHPU_^1_(SAZ_%2_^1_(INA_%-$B_^1_(STA-_$CS,I_^1_(JMP*_$VF2C_^1VFSB1_"ADC€€_%0_^1_(LDQ-_$VBT,I_#LOAD TOTAL BIT COUNT_^1_%INQ 0_,CLEAR INITIALIZED VALUE OF -0_^1_(LDA-_$EX,I_^1_(SAZ_%3_^1_(INA_%-1_2EXTERNAL_^1_(SAZ_%VFSB2-*-1_+NON-RELATIVE_^1_(JMP*_$VFSB3_^1_(LDA-_$RC,I_^1_(SAN_%1_3RELOCATABLE_^1_(JMP*_$VFS1_0ABSOLUTE_^1VFSB2_"LDA-_$VCT,I_#LOAD CURRENT BIT COUNT_^1_(INA_%-15_^1_(SAN_%3_^1_(INQ_%-1_^1_%SQN VF6C_^1_(JMP*_$VFS1_^1VFSB3_"LDA-_$VCT,I_^1_(INA_€€%-16_^1_(SAN_%1_^1_(SQZ_%VFS1-*-1_^1VF6C_#ENQ_%1_^1_(RTJ+_$ER_^1VFS1_#ENA_%16_^1_(SUB-_$VCT,I_^1_(SUB-_$VBT,I_^1_(TRA_%Q_^1_(SQM_%1_^1_(JMP*_$VFS2A_/VWD WILL FIT IN W1_^1_(TCQ_%Q_^1_(STQ-_$VCT,I_^1_(ENA_%1_3FORM MASK FOR_^1_(INQ_%-1_2BITS NOT WANTED_^1_(SQZ_%3_3IN TNIS WORD_^1_(ALS_%1_^1_(INA_%1_^1_(JMP*_$*-4_^1_(TCA_%Q_^1_(STQ-_$TR,I_0SAVE COMPLEMENT OF MASK_^1_(AND-_$VWD,I_^1_(LD€€Q-_$VWD,I_^1_(STA-_$VWD,I_/SAVE REMAINDER OF WORD_^1_(TRQ_%A_^1_(LDQ-_$TR,I_^1_(LAQ_%A_3MASK OFF BITS FOR THIS BYTE_^1_(TCQ_%Q_3COUNT BITS TO BE SHIFTED OUT_^1_(QRS_%1_^1_(ALS_%15_^1_(SQZ_%1_^1_(JMP*_$*-3_^1_(ENQ_%16_^1_(STQ-_$VBT,I_/OUTPUT WORD IS FULL_^1_(JMP*_$VFS2B_^1VFS2A_"LDA-_$VBT,I_^1_(ADD-_$VCT,I_^1_(STA-_$VBT,I_^1_(LDA-_$VWD,I_^1_(SQZ_%3_^1_(ALS_%1_^1_(INQ_%-1_^1_(JMP*_$*€€-3_^1_(STQ-_$VCT,I_^1VFS2B_"EOR-_$W1,I_^1_(STA-_$W1,I_^1_(LDA-_$VBT,I_^1_(INA_%-16_^1_(SAZ_%1_3WORD IS FULL_^1_(JMP*_$(VFSB1)_^1_(STA-_$VBT,I_^1_(RTJ+_$LDCP_0PRINT AND PUNCH_^1_(RTJ+_$RBPK_^1_(RTJ+_$UP1_^1_(ENA_%0_^1_(STA-_$W1,I_^1_(LDA-_$VCT,I_^1_(SAN_%1_^1_(JMP*_$(VFSB1)_-FINISHED WITH THIS BYTE_^1ENDVFD_!JMP*_$VFS1_^1*FIXED POINT DECIMAL CONVERSION ROUTINE_^1*TEMPORARY STORAGES €€USED ARE AS FOLLOWS_^1*_'NU=HOLD FOR CONSTANT VALUE_^1*_'SG=HOLD FOR SIGN OF CONSTANT_^1*_'TR= USED FOR TEMPORARY STORAGE WITHIN THE RTN_^1*_'TR+6=EXPONENT SWITCH IN DTERM AREA_^1*_'TR+1=BINARY EXPONENT VALUE_^1*_'TR+2=DECIMAL EXPONENT VALUE_^1*_'TR+3=DIVIDEND SCALE FACTOR_^1*_'TR+4=DIVISOR SCALE FACTOR_^1DEC_"ENA 0_^1_(ENQ_!6_^1_(STA- TR,B_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-3_^1_€€(RTJ* ANUMBS_'GET LEADING SIGN IF ANY_^1_(STA- SG,I_^1_(JMP* DEC3_^1DEC1_#ENQ_!1_,ERROR INX_^1DEC1A_"RAO- ES,I_)SET ERROR SWITCH_^1_(RTJ+ ER_^1DECSLW_!LDA- CS,I_)SLEW TO COMMA OR BLANK_^1_(SAZ_!4_,BLANK_^1_(INA_!-$C_^1_(SAZ_!2_,COMMA_^1_(RTJ* (ANUMBS+2) CHPU_^1_(JMP* DECSLW_^1_(STA- NU,I_^1_(STA- SG,I_^1_(JMP* DEC3A_(EXIT TO OUTPUT_^1DEC3_#RTJ* ANUMBC_'GET CONVERTED VAL€€UE_^1_(STA- NU,I_)OF NUMBER_^1_(LDQ- CS,I_^1_(SQZ_!2_,BLANK_^1_(INQ_!-$C_*COMMA_^1_(SQN_!2_,NO_^1DEC3A_"JMP_!FXT5_)EXIT TO OUTPUT_^1_(INQ_!-$16_^1_(SQZ_!DTERM+1-*-1_!B IS TERMINATOR_^1_(INQ_!-2_^1_(SQN_!DTRM1-*-1_#ERROR_^1DTERM_"ENQ_!1_^1_(STQ- TR+6,I_'SW FOR B OR D TERM_^1_(RTJ* ANUMBS_'GET SIGN OF EXPONENT_^1_(STA- TR,I_)SAVE SIGN_^1_(RTJ* ANUMBC_'GET EXP VALUE_^1_(LDQ- TR€€+6,I_^1_%SQN DTRM1+1_^1_(TRA_!Q_,PROCESSING B_^1_(INQ_!-100_^1_(SQM_!1_^1DTRM1_"JMP* DEC1_^1_(LDQ- TR,I_^1_(SQP_!1_^1_(TCA_!A_^1_(LDQ- TR+6,I_^1_(STA- TR+1,B_^1_(LDA- CS,I_^1_(SAZ_!2_,TERMIN BLANK_^1_(INA_!-$C_^1_(SAN_!1_,COMMA_^1_(JMP* ENDTRM_'YES_^1_(INA_!-$16_^1_(SAN_!3_,ERROR_^1_(SQZ_!2_,ERROR_^1_(TRA_!Q_,B IS TERMIN_^1_(JMP* DTERM+1_%GO BACK_^1_(JMP* DEC1_^1ANUMBS_!AD€€C_!0_^1_(RTJ+ CHPU_^1_(INA_!-$B_*PLUS_^1_(SAZ_!ANUMA-*-1_#YES_^1_(INA_!-2_+MINUS_^1_(SAN_!2_,NO_^1_(ENA_!-1_^1_(JMP* (ANUMBS)_^1_(LDA- CT,I_^1_(INA_!-1_^1_(STA- CT,I_^1ANUMA_"ENA_!0_^1_(JMP* (ANUMBS)_^1ANUMBC_!ADC_!0_^1_(ENA_!0_^1_(STA- SY,I_^1_(STA- XMOD,I_^1AXLOP_"RTJ* (ANUMBS+2) CHPU_^1_(LDQ- XMOD,I_^1_(INA_!-$10_^1_(SAM_!2_,NOT NUMERIC_^1_(INA_!-$A_^1_(SAM_!2_,IS NUMER€€IC_^1AXT_$LDA- SY,I_^1_(JMP* (ANUMBC)_^1_(INA_!$A_+CONVERT TO NUMBER_^1_(SQN_!3_^1_(STA- SY,I_)INITIAL MODE_^1_(RAO- XMOD,I_'SET NUMERIC MODE_^1_(JMP* AXLOP_^1_(STA- CS,I_^1_(ENA_!0_^1_(LDQ- SY,I_^1_(QLS_!1_^1_(SQM_!AXO-*-1_%OVERFLOW_^1_(STQ- SY,I_^1_(LLS_!2_^1_(SAN_!AXO-*-1_%OVERFLOW_^1_(SQM_!AXO-*-1_%OVERFLOW_^1_(ADQ- SY,I_^1_(SQM_!AXO-*-1_%OVERFLOW_^1_(ADQ- CS,I_^1_(SQ€€M_!AXO-*-1_^1_(STQ- SY,I_^1_(JMP* AXLOP_^1AXO_$ENQ_!7_,ERR CODE FOR OVERFLOW_^1_(JMP* DEC1A_^1ENDTRM_!LDA- NU,I_)IS THIS ZERO_^1_(SAN_!1_,NO_^1_(JMP* FXT5_)EXIT TO OUTPUT_^1_(LDA- TR+2,I_'ANY D VALUE_^1_(SAN_!1_^1_(JMP* FXT13_(NO_^1_(SAP_!1_^1_(JMP* FXT1_)NEG D EXPONENT_^1_(ENQ_!1_^1_(STQ- XMOD,I_^1FX1A_#INA_!-5_^1_(SAP_!1_^1_(JMP* FX1B_^1_(ENQ_!4_^1_(STQ- TR+6,I_^1_(LDA€€* P10,Q_^1_(LDQ- XMOD,I_^1_(SQN_!1_^1_(JMP* FXT1A_^1_(MUI- NU,I_^1_(SQN_!1_^1_(SAP_!1_^1_(JMP* AXO_*ERR-OVERFLOW_^1FX1C_#STA- NU,I_^1_(LDA- TR+2,I_^1_(SUB- TR+6,I_^1_(STA- TR+2,I_^1_(SAZ_!FXT13-*-1_^1_(JMP* FX1A_^1FX1B_#LDQ- TR+2,I_^1_(JMP* FX1A+4_^1FXT13_"LDA- TR+1,I_'B VALUE_^1_(TCA_!A_^1_(ADD- TR+3,I_^1_(SUB- TR+4,I_^1_(SAP_!1_^1_(JMP* FXT4_^1_(STA- TR,I_)SHIFT €€COUNT_^1_(INA_!-15_^1_(SAM_"2_^1_(ENA_!0_,UNDERFLOW_^1_(JMP*_$FXT5-1_^1_(LDA- NU,I_^1_(LDQ- TR,I_^1_(SQZ_!3_^1_(ARS_!1_^1_(INQ_!-1_^1_(JMP* *-3_^1_(STA- NU,I_^1FXT5_#LDQ- SG,I_^1_(LDA- NU,I_^1_(SQP_!1_^1_(TCA_!A_^1_(STA- W1,I_^1_(LDA- CS,I_^1_(SAZ_!2_^1_(ENA_!1_^1_(STA- CS,I_^1_(RTJ+ M1_^1_%JMP DEC_^1FXT4_#TCA_!A_^1_(STA- TR,I_^1_(INA_!-15_^1_%SAP_#5_^1_(LDA- NU,I_^1_(€€LDQ- TR,I_^1FXT4A SQZ P10-1_^1_(ALS_!1_^1_(SAP_!1_^1_(JMP* AXO_^1_(INQ_!-1_^1_%JMP* FXT4A_^1_(JMP* FXT5-1_^1P10_$NUM_!1_,1D0_^1_(NUM_!10_+1D1_^1_(NUM_!100_*1D2_^1_(NUM_!1000_)1D3_^1_(NUM_!10000_(1D4_^1FXT1_#TCA_!A_^1_(STA- TR+2,I_^1_(ENQ_!0_^1_(STQ- XMOD,I_^1_(JMP* FX1A_^1FXT1A_"ALS_!1_^1_(SAM_!2_^1_(RAO- TR+4,I_'DIVISOR SCALE FACTOR_^1_(JMP* *-3_^1_(ALS_!15_+NUMBER SCALE€€D TO BIT POS 14_^1_(STA- TR,I_)SAVE DIVISOR_^1_(LDA- NU,I_^1_(ALS_!1_^1_(SAM_!2_^1_(RAO- TR+3,I_'DIVIDEND SCALE FACTOR_^1_(JMP* *-3_^1_(LDQ- TR+3,I_^1_(INQ_!14_^1_(STQ- TR+3,I_^1_(ENQ_!0_^1_(LLS_!13_^1_(DVI- TR,I_^1JJ69_#JMP*_$FX1C_^1*_]_^1***********************************************************R*********_^1*_]_^1*_$THIS ROUTINE IS ADDED TO HANDLE LRG AND SRG INSTRUCTIONS€€_^1*_]_^1SLRG_!ADC 0_^1_%LDA- W1,I_)GET OPCODE HEX VALUE_^1_%SUB =N$0B02_%CHECK FOR LRG_^1_%SAZ 4_^1_%SUB =N$1_)CHECK FOR SRG_^1_%SAZ 1_^1_%JMP* (SLRG)_'GO PRINT AND PUNCH 1 WORD_^1*_]_^1_%ENA -3_^1_%STA- AM,I_)SET OPCODE TERMIN TO -3 BLANK_^1_%ENA 0_^1_%STA- IS,I_)SET LEADING SIGN LEGAL_^1_%STA- W2,I_^1_%STA- AR,I_^1_%RAO- AD,I_)FLAGGED AS ADC_^1_%RTJ+ AXPR_)GET ADDRESS EXP€€RESSION_^1_%LDA- CS,I_)GET TERMINNATOR_^1_%SAZ 4_,SKIP IF BLANK_^1_%ENA 0_^1_%ENQ 1_,EXPRESSION ERROR_^1_%STA- CS,I_^1_%JMP* SLRGER+1_^1_%LDQ- LP,I_)GET LEFT PARENT INDICATOR_^1_%LDA- EX,I_)GET EXTERNAL INDICATOR_^1_%SQN SLRGER_'EXPRESSION CAN'T BE RELATIVE_^1_%INA -2_+IS THIS A RELATIVE EXTERNAL_^1_%SAN 3_^1SLRGER ENQ 6_,RELOCATION ERROR_^1_%RTJ (M+4)_(ERROR ROUTINE_^1SLRG€€1 LDA- RC,I_)GET ADDRESS RELOCATION_^1_%STA- AR,I_)STORE INTO 2ND WORD RELOCATION_^1_%ENA 0_^1_%STA- RC,I_^1_%LDA- AX,I_)GET 2ND WORD ADDRESS_^1_%STA- W2,I_)STORE INTO 2ND WORD_^1_%ENQ 1_^1_%STQ WORDS_(SET UP TO PRT,PCH 2 WORDS_^1_%JMP* (SLRG)_'GO PRINT PUNCH 2 WORD INST._^1*_]_^1***********************************************************R*********_^1*_]_^1*_)THIS ROUTINE CHECK€€ FOR FOR CLASS 1-3 IF FOUND CONTENT OF A_^1*_)REG WILL BE BUMPED BY 1 (I.E EXTERNAL ADDR. )_^1*****************************************************************_^1EXTPT ADC 0_^1_%STA* EXTW1_(SAVE CURRENT CONTENT OF A REG_^1_%ENA 0_^1_%STA* EXTW2_)SET INCREMENT COUNTER_^1_%LDA- CL,I_)GET CLASS CODE_^1_%SAM EXTPT1_'SKIP IF NOT MACHINE OPCODE_^1_%INA -4_,CHECK FOR CLASS 1-3_^1_%SA€€M EXTPT1-1_^1_%LDA- CL,I_)CHECK CLASS 12_^1_%INA -12_^1_%SAN EXTPT1_^1_%RAO* EXTW2_(BUMP BY 1 IF FOUND_^1EXTPT1 LDA* EXTW1_(RESTORE A_^1_%ADD* EXTW2_^1_%JMP* (EXTPT)_*RETURN_^1_%BSS EXTW1,EXTW2_^1*****************************************************************_^1_%BZS JJ68(220-JJ69+DEC)_^1_(END_^__ €€TABLST CSY/ A09 €€0_%NAM TABLST_'DECK-ID A09 MACRO ASSEMBLER_%SUMMARY-162_^1*_$MASS STORAGE OPERATING SYSTEM VERSION 5.0_^1*_$SMALL SYSTEMS DIVISION, LA JOLLA, CALIFORNIA_^1*_$COPYRIGHT CONTROL DATA CORPORATION 1976_^1*_'PROGRAM BASE-MACRO ASSEMBLER 2.0_4**MSOS 4.0_^1_(ENT_%PASS4_^1PS_#EQU PS(4)_(READ FOR XREF_7MSOS4.1_^1STDSCR EQU STDSCR($B3)_^1STDLGO EQU STDLGO($E4)_^1REQPRO EQU REQPRO($F4)_€€^1STDOUT EQU STDOUT($FA)_^1STDPRT EQU STDPRT($FB)_^1STDOCD EQU STDOCD($FC)_^1DISP_!EQU DISP($EA)_^1_(EQU_%ST(1),ET(ST+1),PSW(ET+1),PB(PSW+1)_^1_%EQU DSW(PB+49),DSWW(DSW+1)_^1_%EQU TSW(DSWW+1),CSW(TSW+1),SECTNO(CSW+1)_^1_%EQU_#PNAM(SECTNO+1)_^1_%EQU_#WMS(PNAM+3),CSYSCT(WMS+1)_^1_(EQU_%SCOUNT(CSYSCT+1),XSYSCT(SCOUNT+1)_^1_(EQU_%CC(XSYSCT+1),DC(CC+1)_^1_(EQU_%PC(DC+1),DX(PC+1),L€€A(DX+2),W1(LA+4),W2(W1+1)_^1_(EQU_%AD(W2+1),AF(AD+1),AM(AF+1),CL(AM+1),EX(CL+1)_^1_(EQU_%RC(EX+1),AX(RC+1),LC(AX+1),AU(LC+1),AR(AU+1)_^1_(EQU_%TR(AR+1),SY(TR+7),NU(SY+4),SG(NU+1),RP(SG+1)_^1_(EQU_%HX(RP+1),XMOD(HX+1),LT(XMOD+1),ES(LT+1),LP(ES+1)_^1_(EQU_%IG(LP+1),NS(IG+1),IS(NS+1),CT(IS+1),CS(CT+1)_^1_(EQU_%IL(CS+1),MD(IL+1),ID(MD+1),SKF(ID+1)_^1_(EQU_%BS(SKF+1)_^1_%EQU AUB(BS+1)_€€^1_%EQU UB(AUB+57)_^1_(EQU_!LN(UB+57),OR(LN+1),OC(OR+1)_^1_(EQU_!AS(OC+1),SC(AS+1),SS(SC+1)_^1_(EQU_%WC(SS+1),RM(WC+1)_^1_(EQU_%YL(RM+1),SZ(YL+1)_^1_(EQU_%PER(SZ+1)_^1_(EQU_%VBT(PER+1),VMS(VBT+1),IFNAM(VMS+1)_^1_(EQU_%MPSW(IFNAM+1)_^1_(EQU_%VCT(MPSW+1),VWD(VCT+1)_^1_(EQU_%AX16(VWD+1)_^1_(EQU_%ETSAVE(AX16+1)_^1_(EQU_%DVFL(ETSAVE+1)_^1_(EQU_%PAGL(DVFL+1)_^1_(EQU_%SL(PAGL+1)_^1_(COM_€€%CONS(SL+1)_^1_(COM_%FST_^1_%COM L,P,X,C,MM,ILSCST,SRSCST,ILSCND_3MSOS4.1_^1_(COM_%ERC_^1_%COM LGSECT_^1_%COM SYRFTS(96)_"SECT.REF.TBL.SYMBOLS_0MSOS4.1_^1_%COM SYCADM_'ADDR.TO SECT.REF.TBL.SYMBOLS_(MSOS4.1_^1_%COM SYEXT_MMSOS4.1_^1_%COM SYINDM_LMSOS4.1_^1_%COM SYTRFM_'ENTRY ADDR.REF.TBL.SYMBOLS_*MSOS4.1_^1_%COM SYTRFD_'1ST ADDR.REF.TBL.SYMBOLS-DISK_'MSOS4.1_^1_%COM APASS1,€€APASS2,APASS3,ATBLST,AXREF,PAGE_,MSOS4.1_^1_%COM PS1W2,PS2W2,PS3W2,PS4W2,PS5W2_5MSOS4.1_^1ASSEM_"ENQ_!PS_^1_(SQP_!MA1-*-1_^1_(ENA_!0_^1_(STA_!FST_^1_%ENQ 4_QMSOS4.1_^1_%STA APASS1,Q_JMSOS4.1_^1_%STA PS1W2,Q_KMSOS4.1_^1_%SQZ 2_QMSOS4.1_^1_%INQ -1_PMSOS4.1_^1_%JMP* *-6_OMSOS4.1_^1MA1_$LDA_!=XPS1ALF-FILE-1_@**MSOS 4._^1_(JMP* *+1,Q_^1_(INA_!-3_^1_(INA_!-3_^1_(INA_!-3_^1_%INA -€€3_PMSOS4.1_^1_%INA 12_PMSOS4.1_^1GETFIL_!STA* FILE+8_^1_(ENA_!0_^1_(STA* FILE1_^1*_81 CARD DELETED_6MSOS4.1_^1_(STA* CSWW_^1ICIT_!ENQ PS_PMSOS4.1_^1_%LDA APASS1,Q_JMSOS4.1_^1_%STA* FILE2_MMSOS4.1_^1_%LDA PS1W2,Q_KMSOS4.1_^1_%STA* FILE+7_LMSOS4.1_^1FILE_!RTJ- (REQPRO)_$GTFILE REQUEST._^1_(NUM_!$5A00_I**MSOS 4.0_^1_(ADC_!COO_^1_(ADC_!0_^1_(ADC_!$8C2_^1_(ADC_!0_^1_(ADC_!ASSEM_^1€€_(ADC_!0_^1_(ADC_!0_^1FILE1_"ADC_!0_^1FILE2_"ADC_!0_^1_(LDA* CSWW_^1_(SAN_!1_^1_(JMP* *-2_^1_%ENQ PS_PMSOS4.1_^1_%LDA* FILE2_MMSOS4.1_^1_%STA APASS1-1,Q_HMSOS4.1_^1_%LDA* FILE+7_LMSOS4.1_^1_%STA PS1W2-1,Q_IMSOS4.1_^1_(RTJ* *+1_^1ASSEM1_!ADC_!0_^1_(LDA* ASSEM1_^1_(SUB* ASMADC_^1_(SAN_!1_^1_(JMP* ENDASB_^1_%LDA* ASSEM1_'SET STARTING ADDRESS IN REQUEST_'68*1500_^1_%INA APUNT€€1_'ABSOLUTE ADDRESS OF PUNT1_-68*1500_^1_%STA* APUNT_O68*1500_^1_%RTJ- (REQPRO)_$FWRITE REQUEST._^1_(ADC_!$4C00_I**MSOS 4.0_^1_(ADC_!0_^1_(ADC_!0_^1_%VFD N3/0,N1/1,N2/2,X10/STDOCD_^1_(ADC_%6_^1APUNT ADC_#0_P68*1500_^1_%JMP- (DISP)_'EXIT_^1PUNT1_"ALF_%6,ABS BASE ERR_^1APUNT1 EQU APUNT1(PUNT1-ASSEM1)_@68*1500_^1ASMADC_!ADC_!ASSEM1_^1_(BZS_!CSWW_^1COO_$ENA_!1_^1_(STA* CSWW_^1_%JMP€€- (DISP)_'EXIT_^1PS1ALF_!ALF_!3,PASS1_^1PS2ALF_!ALF_!3,PASS2_^1PS3ALF_!ALF_!3,PASS3_^1PS4ALF_!ALF 3,TABLST_G**MSOS 4.0_^1PS5ALF ALF 3,XREF_LMSOS4.1_^1MA5_$ADC_%0_^1_(EQU_%ENDASB(MA5+1)_^1PASS4_"LDA-_$I_/SAVE VALUE OF I-REG_^1_(STA*_$JJJ_-*_^1_%ENA 1_^1_(STA- CSW,I_^1_%STA- DSW,I_^1_%STA- DSWW,I_^1_%STA- PSW,I_^1_%ENA 0_QMSOS4.1_^1_%STA* TOPFLG_LMSOS4.1_^1_(LDA_%P_^1_(SAN_%1_/SK€€IP IF PUNCHING RELO OUTPUT_^1_(JMP*_$TESTPR_^1_%RTJ- (REQPRO)_$STATUS REQUEST._^1_%NUM $4600_^1_%VFD N3/0,N1/0,N2/2,X10/STDOUT_^1_%NUM 0_^1_(SQP_%1_^1_(JMP*_$*-5_^1_(TRQ_%A_^1_(AND*_$JJ3_-MASK TO LEAVE ONLY EQUIP CODE_^1_(ALS_%5_^1_%INA -1_+IS STD. PUNCH MAG TAPE_^1_%SAZ MAGTAP_'YES_^1_%INA -3_+NO, IS STD. PUNCH PAPER TAPE_^1_%SAN TESTPR_'NO, PUNFLG IS SET FOR OTHER_^1_%ENA €€ -1_+YES, SET PUNFLG FOR PAPER TAPE_^1_%JMP* STAPUN_^1MAGTAP ENA 1_,SET PUNFLG FOR MAG TAPE_^1STAPUN STA* PUNFLG_^1TESTPR LDA L_,IS LIST OPTION SET_^1_%SAN TESPRA_'YES_^1_%JMP* TESTDN_'NO, CONTINUE_^1*_'STATUS_"$FB,,I_**STATUS ON STANDARD PRINT DEVICE_^1TESPRA RTJ- ($F4)_(*_^1_%NUM $4600_^1_(NUM_%$8FB_,*_^1_(NUM_%0_/*_^1_(SQP_%1_^1_%JMP* TESPRA_^1_(TRQ_%A_^1_(AND*_$JJ3_-MASK TO€€ LEAVE ONLY EQUIP CODE_^1_(ALS_%5_^1_%INA_!-1_^1_%SAN ISNOMT_'IS STD. PRINTER MAG TAPE_^1_%JMP* JPRNMT_'YES_^1ISNOMT INA -5_+NO, IS STD. PRINTER TTY_^1_%SAZ SETLNS_'YES, SET TTY LINE SIZE_^1_%ENA 0_,NORMAL CARRIAGE CONTROL_^1_%STA* JJ5_^1_%JMP* TESTDN_^1JPRNMT LDA =N$3120_%SET PJECT FOR MAG TAPE_^1_%STA* PJECT_^1_%ENA -1_+SET PRNFLG FOR MAG TAPE_^1_%STA* PRNFLG_^1SETLNS ENA €€36_+SET PRINT LINE FOR TTY MODE_^1_%STA CRXX_^1_%STA_!LNLGTH_^1TESTDN LDA* JJJ_*RESTORE I-REG_^1_%STA- I_^1_%RTJ* EJECT_(PAGE EJECT BETWEEN LIST AND SYM TAB_^1_%JMP PASS41_LMSOS4.1_^1JJJ_$NUM_%0_^1JJ3_"NUM $3800_^1PJECT_"NUM_%$000C_"CHAR FOR PAGE EJECT CARR CONTROL_^1JJ5_$NUM_%$2020_"CHAR FOR NORMAL CARRIAGE CONTROL_^1PRNFLG_!NUM_%0_'FLAG WHICH TELLS WHAT EQUIP ST PRINT IS_^1* V€€ALUES OF PRNFLG -1 OUTPUT IS MAG TAPE, 0 IS OTHER_^1PUNFLG_!NUM_%0_'FLAG WHICH TELLS WHAT EQUIP ST PUNCH IS_^1* VALUES OF PUNFLG -1 PUNCH IS PAPER TAPE, 1 IS MAG TAPE, 0 IS OTHER_^1CARCON_!NUM_%0_^1TOPFLG NUM 0_QMSOS4.1_^1PAGEJ_"NUM_%56_^1EJECT_"ADC_%0_^1_(LDA_%L_^1_(SAN_%1_,SKIP IF PRINTING_^1_(JMP*_$(EJECT)_^1_%LDA- PAGL,I_LMSOS4.1_^1_%SAN DONEXT_LMSOS4.1_^1_%RTJ TITLE_(TOP-€€OF-FORM HREDING_1MSOS4.1_^1DONEXT LDA* JJ5_OMSOS4.1_^1_%STA* CARCON_LMSOS4.1_^1_(LDA-_$PSW,I_^1_(SAN_%1_^1_(JMP*_$*-2_^1*_88 CARDS DELETED_4MSOS4.1_^1EJT2_!LDA_#=XCONS+PB_^1_%ENQ_#20_^1JPWT_!RTJ+_"WRIT_^1_%RAO- PAGL,I_LMSOS4.1_^1_(LDA*_$JJ5_*RESTORE CARRIAGE CONTROL_^1_(STA*_$CARCON_^1_(ENQ_%20_^1_(LDA_%=N$2020_%SET BUFFER TO BLANKS_^1_(STA-_$PB,B_)*_^1_(SQZ_%2_^1_(INQ_$-1_^1_(JMP€€*_$*-3_^1_%RTJ*_"EJT3_^1_%LDA*_"EJT2+1_^1_%ENQ_#1_^1_%RTJ*_"(JPWT+1)_^1_%RAO- PAGL,I_LMSOS4.1_^1_%RTJ*_"EJT3_^1_%LDA* TOPFLG_LMSOS4.1_^1_%SAZ PGMHDR_LMSOS4.1_^1_%JMP* (EJECT)_KMSOS4.1_^1PGMHDR LDA- PC,I_NMSOS4.1_^1AHEXC RTJ+ HEXC_NMSOS4.1_^1_%STQ* PGMHX_MMSOS4.1_^1_%STA* PGMHX+1_KMSOS4.1_^1_%LDA- PC,I_NMSOS4.1_^1_%LDQ =XPGMDC_KMSOS4.1_^1ADECVT RTJ+ DECVT_MMSOS4.1_^1_%LDA- CC,I_N€€MSOS4.1_^1_%RTJ* (AHEXC+1)_IMSOS4.1_^1_%STQ* COMHX_MMSOS4.1_^1_%STA* COMHX+1_KMSOS4.1_^1_%LDA- CC,I_NMSOS4.1_^1_%LDQ =XCOMDC_KMSOS4.1_^1_%RTJ* (ADECVT+1)_HMSOS4.1_^1_%LDA- DC,I_NMSOS4.1_^1_%RTJ* (AHEXC+1)_IMSOS4.1_^1_%STQ* DATHX_MMSOS4.1_^1_%STA* DATHX+1_KMSOS4.1_^1_%LDA- DC,I_NMSOS4.1_^1_%LDQ =XDATDC_KMSOS4.1_^1_%RTJ* (ADECVT+1)_HMSOS4.1_^1_%ENA 1_QMSOS4.1_^1_%STA* TOPFLG_LMSOS€€4.1_^1_%LDA =XPLINE_KMSOS4.1_^1_%ENQ 33_PMSOS4.1_^1_%RTJ* (JPWT+1)_JMSOS4.1_^1_%RAO- PAGL,I_LMSOS4.1_^1_%RTJ* EJT3_NMSOS4.1_^1_%LDA* EJT2+1_LMSOS4.1_^1EJT4_!RAO- PAGL,I_LMSOS4.1_^1_%ENQ_#1_^1_%RTJ*_"(JPWT+1)_^1_%RTJ*_"EJT3_^1_%LDA C_QMSOS4.1_^1_%SAZ EJTCN1_K*MSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA L_QMSOS4.1_^1_%ENA 1_QMSOS4.1_^1_%STA LPASS4_LMSOS4.1_^1EJTCN1 JMP* (EJECT)_J*MSOS€€4.1_^1EJT3_!NUM_#0_^1_(LDA-_$PSW,I_^1_(SAN_%1_^1_(JMP*_$*-2_^1_%JMP*_"(EJT3)_^1DECVT ADC 0_QMSOS4.1_^1_%STQ* STOADR_LMSOS4.1_^1_%SAZ SENDD_MMSOS4.1_^1_%RTJ* SENDF_MMSOS4.1_^1_%STQ* NMBR+2_LMSOS4.1_^1_%SAZ SENDD1_LMSOS4.1_^1_%RTJ* SENDF_MMSOS4.1_^1_%STQ* NMBR+1_LMSOS4.1_^1_%SAZ SENDD2_LMSOS4.1_^1_%RTJ* SENDF_MMSOS4.1_^1_%STQ* NMBR_NMSOS4.1_^1_%ENQ 2_QMSOS4.1_^1LOOPD LDA* NMBR€€,Q_LMSOS4.1_^1_%STA* (STOADR),Q_HMSOS4.1_^1_%SQZ ENDECV_LMSOS4.1_^1_%INQ -1_PMSOS4.1_^1_%JMP* LOOPD_MMSOS4.1_^1ENDECV JMP* (DECVT)_KMSOS4.1_^1SENDD LDA* SNDBLK_LMSOS4.1_^1_%INA $10_OMSOS4.1_^1_%STA* NMBR+2_LMSOS4.1_^1SENDD1 LDQ* SNDBLK_LMSOS4.1_^1_%STQ* NMBR+1_LMSOS4.1_^1SENDD2 LDQ* SNDBLK_LMSOS4.1_^1_%STQ* NMBR_NMSOS4.1_^1_%JMP* LOOPD-1_KMSOS4.1_^1_%EQU TEN($46)_JMSOS4.1_^1SN€€DBLK NUM $2020_MMSOS4.1_^1NMBR_!NUM 0,0,0_MMSOS4.1_^1STOADR NUM 0_QMSOS4.1_^1SENDT NUM 0_QMSOS4.1_^1SENDF ADC 0_QMSOS4.1_^1_%ENQ 0_QMSOS4.1_^1_%DVI- TEN_OMSOS4.1_^1_%INQ $30_OMSOS4.1_^1_%STQ* SENDT_MMSOS4.1_^1_%SAZ SENDF1_LMSOS4.1_^1_%ENQ 0_QMSOS4.1_^1_%DVI- TEN_OMSOS4.1_^1_%INQ $30_OMSOS4.1_^1_%QLS 8_QMSOS4.1_^1SENDF0 ADQ* SENDT_MMSOS4.1_^1_%JMP* (SENDF)_KMSOS4.1_^1SE€€NDF1 LDQ =N$2000_KMSOS4.1_^1_%JMP* SENDF0_LMSOS4.1_^1PLINE ALF 4, PGM=_JMSOS4.1_^1PGMHX NUM 0,0_OMSOS4.1_^1_%ALF 1, (_NMSOS4.1_^1PGMDC NUM 0,0,0_MMSOS4.1_^1_%ALF 5,)_!COM =_GMSOS4.1_^1COMHX NUM 0,0_OMSOS4.1_^1_%ALF 1, (_NMSOS4.1_^1COMDC NUM 0,0,0_MMSOS4.1_^1_%ALF 5,)_!DAT =_GMSOS4.1_^1DATHX NUM 0,0_OMSOS4.1_^1_%ALF 1, (_NMSOS4.1_^1DATDC NUM 0,0,0_MMSOS4.1_^1_%A€€LF 1,)_OMSOS4.1_^1PASS41_!LDQ-_$ST,I_^1_(INQ_!-1_^1END6_#LDA_%=N$8050_^1_(STA- UB,I_^1EY_%LDA- 1,Q_-GET ENTRY_^1_(SAN_!1_^1_(JMP* EE_.DONE WITH ENTRY PTS_^1_(ALS_!4_^1_%SAM EE-3_)IS ENTRY POINT_^1_(LDA- 1,Q_-NOT ENTRY-SLEW IT_^1_(INQ_!1_^1_(SAM_!1_^1_(JMP* *-3_^1_(JMP* EY_.GO BACK FOR NEXT_^1_(RTJ_%ESB_^1_(JMP*_$END6_0GO BACK FOR MORE_^1EE_%RTJ+_$TBLIN_/LOOK FOR SYMTAB ON M€€S_^1_(SAM_%1_3ALL TABLES SEARCHED_^1_(JMP*_$END6-2_^1END1_#RTJ+_$RESTBL_.RESTORE SYMBOL TABLE_^1_(ENA_%0_^1_(LDQ-_$WC,I_^1_(STA- WC,I_,ZERO WORD COUNT_^1_%SQZ END2_)IMAGE OUT_^1_(INQ_!1_0SET WD CNT_^1_(STQ- PER,I_,FOR PUNC_^1END5_#RTJ+_$PUNC_^1END2_#LDQ-_$ET,I_0EXTERNA9 ADDRESS_^1_(INQ_!-1_^1EF_%ENA_!0_^1_(STA- NU,I_^1_(LDA_!=N$A050_)EXTERNAL IMAGE TYPE_^1_(STA- UB,I_^1_(LDA- €€ 1,Q_^1_(SAN_!1_^1_(JMP*_$END3_0DONE WITH THIS TABLE_^1_(ALS_!4_^1_(SAP_!1_/NOT RELATIVE EXTERNAL_^1_(RAO- NU,I_,REL EXT,SET FLAG_^1_(RTJ_%ESB_^1_(JMP* EF_^1END3_#RTJ*_$(EE+1)_^1_(SAM_%1_3ALL TABLES SEARCHED_^1_(JMP*_$END2_^1_(RTJ*_$(END1+1)_,RESTORE SYMBOL TABLE_^1_(LDQ- WC,I_^1_(SQZ_!3_^1_(INQ_!1_0SET WD CNT_^1_(STQ- PER,I_,FOR PUNC_^1_(RTJ*_$(END5+1)_^1XFRP_#LDA_!=N$C050 XFR€€ TYPE TO PUNCH BUFFER_^1_(STA- UB,I_^1_(LDA- SY,I_^1_(SAN_!1_^1_(STA- SY+1,I_^1_(LDQ_!=XCONS+SY_^1_(RTJ_%RECV_^1_(LDA- LA,I_^1_(STA- UB+1,I_^1_(LDA- LA+1,I_^1_(STA- UB+2,I_^1_(LDA- LA+2,I_^1_(STA- UB+3,I_^1_(ENQ_!4_0SET WD CNT_^1_(STQ- PER,I_,FOR PUNC_^1_(RTJ*_$(END5+1)_^1*_!PUT LOAD AND GO AND SYMTAB OUTPUT HERE_^1_(LDA_%X_^1_%SAZ XFFRPA_^1_%RTJ DSTAT_^1_(LDA_%=XEOL_/P€€UT EOL RECORD_^1_%LDQ- STDLGO_'AFTER LOAD AND GO._^1_(RTJ+_$DOUT_^1XFFRPA LDA L_^1_(SAN_%1_^1_(JMP*_$SYOUT_^1_%JMP SRTCHK_'CHECK IF TBLS CAN BE SORTED_(*MSOS4.1_^1JSTOUT RTJ TITLE_L*MSOS4.1_^1_%ENA 28_+NO,NOT ENOUGH CORE AVAILABLE_'*MSOS4.1_^1*_8JUST OUTPUT THE TABLES UNSORTED_#*MSOS4.1_^1_(STA-_$SL,I_0SET LENGTH OF PRINT LINE_^1_(ENA_%0_^1_(STA-_$NU,I_0BUFFER INDEX_^1ESY1_#LDA€€-_$ST,I_0TEMP STORAGE_^1_(INA_%-1_2FOR SYMTAB_^1_(STA-_$AU,I_0ADDRESS_^1ESY2_#LDA-_$PAGL,I_^1_(SUB_%PAGEJ_^1_%SAM 3_QMSOS4.1_^1_%STA- PAGL,I_LMSOS4.1_^1_%RTJ TITLE_L*MSOS4.1_^1_(LDQ-_$AU,I_^1_(LDQ-_$1,Q_^1_(SQZ_%1_3END OF TABLE_^1_(JMP*_$ESY5_^1_(LDA-_$ET,I_^1_%SAZ ESY2A_^1_(INA_%-1_^1_(STA-_$AU,I_^1_(ENA_%0_^1_(STA-_$ET,I_^1_(JMP*_$ESY2_^1ESY2A RTJ TBLIN_^1_(SAM_%1_3ALL TABLE€€S SEARCHED_^1_(JMP*_$ESY1_^1ESY4_#RTJ+_$PRNT_^1ERCCHK LDA ERC_N*MSOS4.1_^1_(SAN_%1_^1_(JMP*_$SYOUT_^1_(STA-_$LN,I_^1_(RTJ*_$(ESY4+1)_^1_(RTJ_%DECV_0CONVERT ERROR NUMBER_^1_(STQ-_$PB,I_^1_(STA-_$PB+1,I_^1_(LDA_%ERMS_^1_(STA-_$PB+2,I_^1_(LDA_%ERMS+1_^1_(STA-_$PB+3,I_^1_(LDA_%ERMS+2_^1_(STA-_$PB+4,I_^1_(RTJ*_$(ESY4+1)_^1ESY3_#JMP*_$SYOUT_^1ESY5_#QRS_%12_^1_(LDA-_$ET,I_^1_(SAN_%1_^1_(€€ENQ_%4_3EXTERNAL_^1_(LDA_%WV,Q_^1_(LDQ-_$NU,I_^1_(ALS_%8_^1_(STA-_$PB+6,B_^1_(LDQ-_$AU,I_^1_(INQ_%1_3CONVERT SYMBOL FROM_^1_(RTJ_%RECV_^1_(LDQ-_$NU,I_^1_(LDA-_$LA,I_^1_(STA-_$PB,B_0SYMBOL_^1_(LDA-_$LA+1,I_^1_(STA-_$PB+1,B_^1_(LDA-_$LA+2,I_^1_(STA-_$PB+2,B_^1_(LDQ-_$AU,I_^1_(LDA-_$1,Q_^1_(INQ_%1_^1_(SAM_%1_^1_(JMP*_$*-3_^1_(STQ-_$AU,I_^1_(TCA_%A_^1_(RTJ+_$HEXC_0CONVERT LOCATION TO H€€EX_^1_(STQ-_$TR,I_^1_(LDQ-_$NU,I_^1_(STA-_$PB+5,B_.LOCATION INTO_^1_(LDA-_$TR,I_0PRINT BUFFER_^1_(STA-_$PB+4,B_^1_(INQ_%-28_^1_(SQZ_%3_^1_(INQ_%35_^1_(STQ-_$NU,I_^1_(JMP*_$ESY2_^1_(STQ-_$NU,I_^1_(RTJ*_$(ESY4+1)_^1_(RAO-_$PAGL,I_^1_(JMP*_$ESY2_^1SYOUT_"LDA-_$PSW,I_^1_(SAN_%1_^1_%JMP* SYOUT_^1_%LDA* SRTFLG_K*MSOS4.1_^1_%SAZ 2_P*MSOS4.1_^1_(RTJ_%EJECT_^1_(LDA_%PUNFLG_^1_(SAM_%PTLEAD_€€'BINARY OUT IS PAPER TAPE_^1_(SAN_%1_,BINARY OUT IS MAG TAPE_^1_(JMP*_$PRHAND_'NO SPECIAL HANDLEING OF BINARY OUTPUT_^1_(JMP*_$MTEOLW_^1PTLEAD_!ENA_%0_^1_(ENQ_%56_+PUNCH A TRAILER ON THE_^1_(STA-_$UB,B_)BINARY OUTPUT_^1_(INQ_%-1_+*_^1_(SQM_%1_,*_^1_(JMP*_$*-3_**_^1_(RTJ*_$PTBINU_'*_^1_(RTJ*_$PTBINU_'*_^1_(JMP*_$PRHAND_^1MTEOLW_!LDA_%EOL_^1_(STA-_$UB,I_)WRITE AN END-OF-LOAD_^1_(ENQ_€€%9_,RECORD_^1_(ENA_%-0_^1_(STA-_$UB,B_^1_(INQ_%-1_^1_(SQZ_%1_^1_(JMP*_$*-3_^1_(LDA_%=XCONS+UB_^1_(ENQ_%10_^1_(RTJ_%BW_^1_%RTJ STATUS_^1_(ENA_%0_^1_(STA-_$CSW,I_^1*_*BACKSPACE OVER EOL RECORD ON BINARY OUT - MAG. TAPES._^1*_]_^1_%RTJ- (REQPRO)_^1_(NUM_"$5C00_H**MSOS 4.0_^1_%ADC CO_^1_%ADC 0_^1_%VFD N3/0,N1/0,N2/2,X10/STDOUT_^1_%NUM $1000_^1_(LDA-_$CSW,I_^1_(SAN_%1_^1_(JMP*_$*-2€€_^1PRHAND_!LDA-_$PSW,I_^1_(SAN_%1_^1_(JMP*_$*-2_^1_(LDA_%PRNFLG_^1_%SAM PR1_^1_%RTJ STATUS_^1_%JMP ASSEMM_LMSOS4.1_^1PR1_"LDA C_,IS THE XREF OPTION SELECTED_^1_%SAZ WEFBKP_'NO, WRITE AN EOF AND BACKSPACE_^1_%JMP ASSEMM_'YES, GO CHECK FOR REQUIREMENTS_^1WEFBKP ENA 0_^1_(STA-_$PSW,I_^1****************************************************************MSOS 4.0_^1*_'WRITE AN END OF€€ FILE AND BACKSPACE_2**MSOS 4.0_^1****************************************************************MSOS 4.0_^1_%RTJ- (REQPRO)_$FUNCTION REQUEST._^1_(NUM_"$5C00_^1_(ADC_%COP_^1_(ADC_%0_^1_%VFD N3/0,N1/1,N2/2,X10/STDPRT_^1_(NUM_%$2100_E**MSOS 4.0_^1_(LDA-_$PSW,I_^1_(SAN_%1_^1_(JMP*_$*-2_^1_%RTJ STATUS_^1_%JMP ASSEMM_LMSOS4.1_^1SRTFLG NUM 0_P*MSOS4.1_^1PTBINU_!ADC_%0_^1_%RTJ STATU€€S_^1_%ENA 0_^1_%STA- CSW,I_^1_%RTJ- (REQPRO)_$FUNCTION REQUEST._^1_(NUM_"$4400_^1_(ADC_%CO_^1_(NUM_%0_^1_%VFD N3/0,N1/0,N2/2,X10/STDOUT_^1_(NUM_%56_^1_(ADC_%CONS+UB_^1_(JMP*_$(PTBINU)_^1ERMS_#ALF_%3,ERRORS_^1EOL_"ALF 1,*T_^1_(NUM_%-0_^1ESB_$ADC_!0_^1_(ALS_!15_^1_(STA- LP,I_,RELO SWITCH_^1_(INQ_!1_^1_(STQ* EZ+1_,SAVE Q_^1_(RTJ+ RECV_"CONVERT SYMB BACK TO 7 BITS_^1_(LDA- NU,I_€€,IS THIS REL EXT_^1_%SAZ EZ_+NO_^1_(LDA- LA,I_,SET BIT FOR REL EXT_^1_(EOR_!=N$8000_^1_(STA- LA,I_^1EZ_%LDA+ 0_^1_(SAM_!2_^1_(RAO* EZ+1_^1_%JMP* EZ_^1_(LDQ- LP,I_^1_(SQP_!1_^1_(TCA_!A_^1_(STA- LP,I_,VALUE ENTRY_^1_(LDQ- WC,I_^1_(LDA- LA,I_^1_(STA- UB+1,B_^1_(INQ_!1_^1_(LDA- LA+1,I_^1_(STA- UB+1,B_^1_(INQ_!1_^1_(LDA- LA+2,I_^1_(STA- UB+1,B_^1_(INQ_!1_^1_(LDA- LP,I_^1_€€(STA- UB+1,B_^1_(INQ_!-55_.FILLED_^1_%SQZ EZAA+2_'YES_^1_(INQ_!56_^1_(STQ- WC,I_^1EZAA_!LDQ* EZ+1_^1_(JMP* (ESB)_^1_(STQ- WC,I_^1_(ENQ_!57_^1_(STQ- PER,I_^1_(RTJ_%PUNC_^1_%JMP* EZAA_^1TBLIN_"ADC_%0_^1_(LDA-_$CSYSCT,I_^1_%SUB+ ILSCND_^1_(LDQ-_$XSYSCT,I_^1_(SAN_%4_3TABLES ON MS_^1_(SQZ_%1_3NO TABLES ON MS_^1_(RTJ*_$RESTBL_.ALL TABLES SEARCHED_^1_(ENA_%-0_^1_(JMP*_$(TBLIN)_^1_(T€€RQ_%A_^1_(SUB-_$CSYSCT,I_^1_(SAN_%2_^1_(LDA-_$ET,I_0CURRENT TABLE IN CORE_^1_(STA-_$ETSAVE,I_,WRITE IT OUT_^1_(LDA-_$CSYSCT,I_^1_(SUB-_$SCOUNT,I_^1_(STA-_$CSYSCT,I_^1_(LDA-_$WMS,I_^1_(STA_%DISKRD+5_^1_(LDA-_$ST,I_^1_(LDQ-_$CSYSCT,I_^1TBDIN_"RTJ+_$DIN_^1_(LDQ_%=XCONS_.GET NEW EXT ADDR_^1_(INQ_%-2_^1_(LDA-_$1,Q_^1_(SAZ_%2_^1_(INQ_%-1_^1_(JMP*_$*-3_^1_(INQ_%2_^1_(STQ-_$ET,I_^1_(ENA_%0€€_^1_(JMP*_$(TBLIN)_^1RESTBL_!ADC_%0_^1_(LDA-_$XSYSCT,I_^1_(SAZ_%2_3NO TABLES ON MS_^1_(SUB-_$CSYSCT,I_^1_(SAN_%1_^1_(JMP*_$(RESTBL)_,CURRENT TABLE IS IN CORE_^1_(LDA-_$ETSAVE,I_,RESTORE EXTERNAL ADDR_^1_(STA-_$ET,I_^1_(LDA-_$WMS,I_/READ CURRENT TABLE_^1_(STA_%DISKRD+5_^1_(LDA-_$ST,I_^1_(LDQ-_$XSYSCT,I_,BACK IN_^1_(STQ-_$CSYSCT,I_,RESET CURRENT TABLE NO._^1_(RTJ+_$DIN_^1_(JMP*_$(RES€€TBL)_^1PRNT_#ADC_%0_^1_(LDA_%L_^1_(LDQ- ES,I_^1_(SQZ_!1_^1_(JMP* PE_/PASS 2 ERROR_^1_(SAZ_%BLNK-*-1_^1_(LDA- YL,I_^1_(SAN_!BLNK-*-1_^1_(LDQ-_$SL,I_^1_(INQ_%9_3LENGTH OF BUFFER_^1_(LDA-_$MPSW,I_^1_(SAZ_%1_^1_(ENQ_%9_3PRINT BINARY WD ONLY_^1_%LDA* PDA_^1_(RTJ*_$WRIT_^1_(JMP*_$BLNK_^1BLNK_#RTJ* BLN_^1_(JMP*_$(PRNT)_^1PD_#ENA 0_Q44*701_^1_%STA- PSW,I_^1_%RTJ- (REQPRO)_$FWRITE REQU€€EST._^1_(NUM_!$4C00_I**MSOS 4.0_^1_%ADC COP_^1_%ADC 0_^1_%VFD N3/0,N1/1,N2/2,X10/STDOCD_^1_(ADC_%9_^1PDA_"ADC CONS+PB_^1_%LDA- PSW,I_M44*701_^1_%SAN 1_Q44*701_^1_%JMP* *-2_O44*701_^1_(JMP*_$BLNK_^1PE_%SAN_!1_^1_(JMP* PD_$NO LIST-OUTPUT ERR ON TYPE_^1_(LDA_%=XPEB_^1_(ENQ_%9_^1_(RTJ*_$WRIT_^1_(JMP*_$(PRNT)_^1WRIT_#ADC_!0_^1_(STA* WR4+1_,START ADDR_^1WR5_"INQ_#-1_^1_%LDA*_"(WR4€€+1),Q_^1_%SUB*_"BLN+2_^1_%SAN_!3_O**MSOS 4.0_^1_%SQZ_#1_^1_%JMP*_"WR5_^1_%ENQ_!5_O**MSOS 4.0_^0WR3_"LDA- PSW,I_N141*4265_^0_%SAN 1_R141*4265_^0_%JMP* WR3_P141*4265_^1_%INQ_#1_^1_(STQ* WR1_.NUMB WDS_^1_(LDA_%CARCON_^1_(STA*_$CRCON1_^0*_7THREE CARDS DELETED_3141*4265_^1_(ENQ_%48_^1WR4_$LDA+ 0,Q_.MOVE IMAGE TO ALTERNATE_^1_(STA* APB,Q_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* WR4_^1WR2_$EN€€A_!0_^1_(STA- PSW,I_^1_(RAO*_$WR1_^1_%RTJ- (REQPRO)_$FWRITE REQUEST._^1_(NUM_!$4C00_I**MSOS 4.0_^1_(ADC_!COP_^1_(ADC_!0_^1_%VFD N3/0,N1/1,N2/2,X10/STDPRT_^1WR1_$ADC_!0_^1_(ADC_%APB-1_^1_(JMP* (WRIT)_^1HEXC_#ADC_!0_^1_(LDQ- I_^1_(STQ- RP,I_^1_(ENQ_!0_^1_(STQ- I_^1_(ENQ_!0_^1_(LLS_!4_^1_(INQ_!-$A_^1_(SQM_!1_^1_(INQ_!7_^1_(INQ_!$3A_^1_(STQ_!CONS+TR,I_^1_(LDQ- I_^1_(INQ_!-3_^1_(€€SQZ_!2_^1_(RAO- I_^1_(JMP* HEXC+5_^1_(LDA_!CONS+RP_^1_(STA- I_^1_(LDQ- TR,I_^1_(QLS_!8_^1_(ADQ- TR+1,I_^1_(LDA- TR+2,I_^1_(ALS_!8_^1_(ADD- TR+3,I_^1_(JMP* (HEXC)_^1BLN_$ADC_!0_^1_(LDA_!=N$2020_^1_(ENQ_%48_^1_(STA- PB,B_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-3_^1_(JMP* (BLN)_^1CRCON1_!ADC_%0_^1_(BZS_%APB(49)_^1CO_#SQP COA_^1_%ENA 0_^1_%STA+ P_^1COA_"INQ 1_^1_(STQ_!CONS+CSW_€€^1_%JMP- (DISP)_'EXIT_^1COP_$INQ_!1_^1_(STQ_!CONS+PSW_^1_%JMP- (DISP) EXIT_^1CORD_!INQ 1_^1_%STQ CONS+DSWW_^1_%JMP- (DISP)_^1COWR_!INQ 1_^1_%STQ CONS+DSW_^1_%JMP- (DISP)_^1PEB_$ALF_%9,****** **********_^1WV_%NUM_!$2020,$2050,$2043,$2044,$2058_^1_(NUM_!$2D50,$2D43,$2D44_^1RECV_#ADC_!0_%THIS ROUTINE CONVERTS SYMBOLS_^1_(INQ_!-1_$BACK TO 7 BIT CHARS-ADDR OF_^1_(LDA* WV_^1_(STA- €€ LA+1,I SYMBOL TO BE CONVERTED IN Q AT_^1_(STA- LA+2,I_^1_(LDA_!=N$7C0_+ENTRY_^1_(AND- 1,Q_^1_(ARS_!6_0OUTPUT IS IN LA AND FF_^1_(SAZ_!1_^1_(INA_!$20_#CONVERT 5 BIT CHAR BACK TO 7_^1_(INA_!$20_^1_(ALS_!8_^1_(STA- LA,I_^1_(ENA_!$3F_^1_(AND- 1,Q_^1_(INA_!$20_^1_(ADD- LA,I_^1_(STA- LA,I_^1_(INQ_!1_^1_(STQ* RR+1_^1_(ENQ_!1_^1RR_%LDA+ 0,Q_^1_%SAM DECV-1_^1_(ADD* WV_^1_(STA- €€LA,B_^1_(INQ_!-2_^1_(SQZ_!2_^1_(INQ_!3_^1_(JMP* RR_^1_(JMP* (RECV)_^1DECV_#ADC_!0_0NUMBER TO CONVERT IN A_^1_(ENA_!0_%THIS ROUTINE CONVERTS THE_^1_(STA- TR,I_"BINARY LINE NUMBER TO ASCII_^1_(ENQ_!3_0DECIMAL_^1_(LDA- LN,I_"OUTPUT IS 3 DIGITS IN QA WITH_^1DECVAA INA -10_*A TRAILING BLANK_^1_(SAM_!2_^1_(RAO- TR,I_^1_(JMP* *-3_^1_(INA_!58_$ADD BACK 10 PLUS HEX 30 TO_^1_(STA- TR€€,B_-MAKE ASCII CHAR_^1_(LDA- TR,I_^1_(STA- TR+4,I_^1_(ENA_!0_^1_(STA- TR,I_^1_(LDA- TR+4,I_^1_(INQ_!-1_^1_(SQZ_!1_^1_%JMP* DECVAA_^1_(LDQ- TR+1,I_^1_(QLS_!8_^1_(ADQ- TR+2,I_^1_(LDA- TR+3,I_^1_(ALS_!8_^1_(INA_!$20_^1_(JMP* (DECV)_^1STATUS_!ADC_%0_^1_(LDA- CSW,I_!WAIT FOR COMPLETION_^1_(SAN_%1_^1_(JMP*_$*-2_^1_(JMP*_$(STATUS)_,MARK FOR ERROR_^1DSTAT ADC 0_^1_%LDA- DSW,I_^1€€_%SAN 1_^1_%JMP* DSTAT+1_^1_%JMP* (DSTAT)_^1MOVEIT ADC 0_^1_%LDQ- PER,I_^1_%INQ -1_^1MOV_"LDA- UB,B_^1_%STA- AUB,B_^1_%INQ -1_^1_%SQM 1_^1_%JMP* MOV_^1_%JMP* (MOVEIT)_^1MVFLG NUM 0_^1DOUT_#ADC_%0_^1_(STA*_$DISKWR+6_^1_(STQ*_$DISKWR+8_^1_(LDQ_%=XCONS+PER_@**MSOS 4.0_^1_(LDA-_$($22),Q_^1_(STA*_$DISKWR+5 SET_!NUMBER OF WORDS_^1_(ENA_%0_^1_%STA- DSW,I_^1DISKWR RTJ- (REQPRO)_$FW€€RITE REQUEST._^1_(ADC_!$4C00_I**MSOS 4.0_^1_%ADC COWR_^1_(ADC_%0_^1_%VFD N3/0,N1/0,N2/2,X10/STDSCR_^1_(ADC_%0_I**MSOS 4.0_^1_(ADC_%0_^1_(ADC_%0_^1_(ADC_%0_^1_(JMP*_$(DOUT)_^1DIN_$ADC_%0_^1_(STA*_$DISKRD+6_^1_(STQ*_$DISKRD+8_^1_(ENA_%0_^1_%STA- DSWW,I_^1DISKRD RTJ- (REQPRO)_$FREAD REQUEST._^1_(ADC_!$4800_I**MSOS 4.0_^1_%ADC CORD_^1_(ADC_%0_^1_%VFD N3/0,N1/0,N2/2,X10/STDSCR_^1_(N€€UM_%96_^1_(ADC_%0_^1_(ADC_%0_^1_(ADC_%0_^1DSTAT2 LDA- DSWW,I_^1_%SAN 1_^1_%JMP* DSTAT2_^1_(ENA_%96_2RESTORE RECORD LENGTH_^1_(STA*_$DISKRD+5_^1_(JMP*_$(DIN)_^1PUNC_#ADC_%0_^1_%ENA 0_^1_%STA* MVFLG_^1_(LDQ_%X_^1_(SQN_%1_^1_(JMP*_$PC2_1NO LOAD AND GO_^1_%LDA- STDLGO_'LOAD AND GO SECTOR NUMBER._^1_(SUB_%=N750_^1_(SAM_%PC1-*-1_^1_(ENA_%0_^1_(STA_%X_^1_(ENQ_%9_3LOAD AND GO OVERFLOW_^1€€_(RTJ+_$ER_^1_(JMP*_$PC2_^1PC1_"RTJ* STATUS_^1_%RTJ* DSTAT_^1_%RTJ* MOVEIT_^1_%ENA -0_^1_%STA* MVFLG_^1_%LDQ- STDLGO_^1_(LDA*_$PC3+1_^1_(RTJ+_$DOUT_^1_%RAO- STDLGO_^1PC2_$LDQ_%P_^1_(SQZ_!PO-*-1_^1PC3_"LDA =XCONS+AUB_^1_(LDQ- PER,I_,NO WDS TO OUTPUT_^1_(RTJ*_$BW_2BINARY WRITE_^1PO_%ENA_!0_^1_(ENQ_!56_^1_(STA- UB,B_-*********************_^1_(INQ_!-1_/*********************_^1_(SQM_€€!1_0*********************_^1_(JMP* *-3_.*********************_^1_(JMP*_$(PUNC)_^1BW_%ADC_%0_^1_%STA* BWA+1_^1_%STQ* BWA_^1_%RTJ* STATUS_^1_%LDA* MVFLG_^1_%SAM 1_^1_%RTJ* MOVEIT_^1_(ENA_%0_^1_(STA-_$CSW,I_^1_%RTJ- (REQPRO)_$FWRITE REQUEST._^1_(NUM_!$4C00_I**MSOS 4.0_^1_%ADC CO_^1_%ADC 0_^1_%VFD N3/0,N1/0,N2/2,X10/STDOUT_^1BWA_"ADC 0_^1_(ADC_%0_^1_(JMP*_$(BW)_^1ER_%ADC_!0_^1_(R€€AO_%ERC_^1_(LDQ* ERT,Q_,PICK UP ERR MESSAGE_^1_(STQ- ES,I_^1_(LDA_%L_^1_(SAN_%ER2-*-1_^1ER1_$LDA_%=A**_^1_(STA-_$PB+2,I_^1_(STQ-_$PB+3,I_^1_(RTJ_%DECV_^1_(STQ-_$PB,I_^1_(STA-_$PB+1,I_^1ER3_$RTJ_%PRNT_^1_(ENA_%0_^1_(STA-_$RC,I_^1_(STA-_$ES,I_^1_(JMP*_$(ER)_^1ER2_$STQ_%PEB+3_^1_(JMP*_$ER3_^1ERT_$ALF_!1,DS_^1_(ALF_!1,EX_^1_(ALF_!1,LB_^1_(ALF_%1,PP_^1_(ALF_!1,OP_^1_(ALF_!1,RG_^1_(ALF€€_!1,RL_^1_(ALF_!1,OV_^1_(ALF_!1,UD_^1_(ALF_%1,MO_^1SAVEC BZS SAVEC_^1LPASS4 BZS LPASS4_LMSOS4.1_^1ASSEMM LDA* LPASS4_LMSOS4.1_^1_%SAZ LEVIT3_^1_%JMP SRTCHK_^1LEVIT3 LDA C_,CROSS REFERENCE LISTING ONLY_^1_%SAZ LEVIT1_^1_%JMP SRTCHK_'WILL ALL THE TBLS FIT FOR XREF_%MSOS4.1_^1LEVIT1 LDA ASSEM_(NO LISTIN NO XREF_3MSOS4.1_^1_%INA -4_PMSOS4.1_^1_%STA ASSEM_MMSOS4.1_^1_%STA IC€€IT_NMSOS4.1_^1_%LDA L_,ARE WE LISTING_6MSOS4.1_^1_%SAZ LEVIT2_'NO, NO NEED FOR PAGE EJECT_*MSOS4.1_^1_%RTJ RABL_)BLANK OUT BUFFER_4MSOS4.1_^1_%LDA PJECT_(TOP-OF-FORM_9MSOS4.1_^1_%STA SYRFTS_LMSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA- PAGL,I_'CLEAR OUT PAGE-LINE_1MSOS4.1_^1_%ENQ 40_PMSOS4.1_^1_%LDA =XSYRFTS_JMSOS4.1_^1_%RTJ* SYWRT_(EJECT A PAGE BETWEEN PROGRAMS_'MSOS4.1_^1_%LDA* SA€€VEC_(RESTORE PREVIOUS 'C' VALUE_^1_%STA C_^1LEVIT2 JMP ASSEM_(EXIT,NO LISTING_5MSOS4.1_^1SYWRT ADC 0_QMSOS4.1_^1_%STA* ADSY_NMSOS4.1_^1_%STQ* LG_PMSOS4.1_^1_%LDA- PSW,I_MMSOS4.1_^1_%SAN 1_QMSOS4.1_^1_%JMP* *-2_OMSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA- PSW,I_MMSOS4.1_^1_%RAO- PAGL,I_K*MSOS4.1_^1_%RTJ- (REQPRO)_JMSOS4.1_^1_%NUM $4C00_L* MSOS4.1_^1_%ADC COP_OMSOS4.1_^1_%ADC 0_QMSO€€S4.1_^1_%VFD N3/0,N1/1,N2/2,X10/STDPRT_9MSOS4.1_^1LG_#NUM 0_QMSOS4.1_^1ADSY_!NUM 0_QMSOS4.1_^1_%LDA- PSW,I_MMSOS4.1_^1_%SAN 1_QMSOS4.1_^1_%JMP* *-2_OMSOS4.1_^1_%LDA- PAGL,I_K*MSOS4.1_^1_%INA -56_OMSOS4.1_^1_%SAM PRNTIT_K*MSOS4.1_^1_%LDA* SYWRT_L*MSOS4.1_^1_%STA* SAVRTN_K*MSOS4.1_^1_%RTJ* TITLE_L*MSOS4.1_^1_%LDA* SAVRTN_K*MSOS4.1_^1_%STA* SYWRT_L*MSOS4.1_^1PRNTIT JMP* (SYWRT)_€€KMSOS4.1_^1SAVRTN ADC 0_P*MSOS4.1_^1TITLE ADC 0_QMSOS4.1_^1_%RAO PAGE_NMSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA- PAGL,I_LMSOS4.1_^1_%LDA- PSW,I_MMSOS4.1_^1_%SAN 1_QMSOS4.1_^1_%JMP* *-2_OMSOS4.1_^1_%ENQ 2_QMSOS4.1_^1EJT1_!LDA- PNAM,B_LMSOS4.1_^1_%STA* PRONAM,Q_JMSOS4.1_^1_%SQZ 2_QMSOS4.1_^1_%INQ -1_PMSOS4.1_^1_%JMP* EJT1_NMSOS4.1_^1_%LDA PAGE_NMSOS4.1_^1_%CLR Q_QMSOS4.1_^1EJT1A€€ DVI =N10_NMSOS4.1_^1_%INQ $30_OMSOS4.1_^1_%STQ PAGNUM+3_JMSOS4.1_^1_%CLR Q_QMSOS4.1_^1_%SAZ EJT1B_MMSOS4.1_^1_%DVI* EJT1A+1_KMSOS4.1_^1_%INQ $10_OMSOS4.1_^1EJT1B INQ $20_OMSOS4.1_^1_%QLS 8_QMSOS4.1_^1_%ADQ* PAGNUM+3_JMSOS4.1_^1_%STQ* PAGNUM+3_JMSOS4.1_^1_%SAN 1_QMSOS4.1_^1_%JMP* EJT21_MMSOS4.1_^1_%INA $30_OMSOS4.1_^1_%LDQ* SPACES_^1_%LLS 8_QMSOS4.1_^1_%ALS 8_QMSOS4.1€€_^1_%STA* PAGNUM+2_JMSOS4.1_^1EJT21 ENQ 12_PMSOS4.1_^1_%LDA- ($E9),Q_KMSOS4.1_^1_%TRA Q_QMSOS4.1_^1_%LDA- ($22),Q_KMSOS4.1_^1_%STA* MONTH+3_KMSOS4.1_^1_%ENQ 13_PMSOS4.1_^1_%LDA- ($E9),Q_KMSOS4.1_^1_%TRA Q_QMSOS4.1_^1_%LDA- ($22),Q_KMSOS4.1_^1_%STA* MONTH_MMSOS4.1_^1_%ENQ 14_PMSOS4.1_^1_%LDA- ($E9),Q_KMSOS4.1_^1_%TRA Q_QMSOS4.1_^1_%LDA- ($22),Q_KMSOS4.1_^1_%CLR Q_QMSOS4.1_^1€€_%LLS 8_QMSOS4.1_^1_%INA $2F_OMSOS4.1_^1_%STA* MONTH+2_KMSOS4.1_^1_%QLS 8_QMSOS4.1_^1_%INQ $2F_OMSOS4.1_^1_%QLS 8_QMSOS4.1_^1_%STQ* MONTH+1_KMSOS4.1_^1_%LDA PJECT_^1_%STA* EJT31_LMSOS4.1_^1EJT2ED LDA =XEJT31_KMSOS4.1_^1_%ENQ EJTLEN_LMSOS4.1_^1_%RTJ SYWRT_MMSOS4.1_^1_%ENQ 3_P*MSOS4.1_^1EIEIE LDA =XSPACES_I*MSOS4.1_^1_%RTJ SYWRT_L*MSOS4.1_^1_%ENQ 3_P*MSOS4.1_^1_%LDA* E€€IEIE+1_J*MSOS4.1_^1_%RTJ SYWRT_L*MSOS4.1_^1_%LDA =XPHL1_'ADDRESS OF PAGE HEADING LINE_^1_%ENQ 17_+LENGTH OF PAGE HEADING_^1_%RTJ SYWRT_(WRITE LINE_^1_%JMP* (TITLE)_KMSOS4.1_^1EJT31 ALF 8,_O*MSOS4.1_^1PRONAM ALF 3,_PMSOS4.1_^1_%ALF 7,_PMSOS4.1_^1PAGNUM ALF +,PAGE_!0+_GMSOS4.1_^1_%ALF 7,_PMSOS4.1_^1_%ALF +,DATE+_KMSOS4.1_^1_%NUM $3A20_MMSOS4.1_^1MONTH ALF +,MO/DA/YR+_GM€€SOS4.1_^1EJTLEN EQU EJTLEN(*-EJT31)_CMSOS4.1_^1SPACES NUM $2020_L*MSOS4.1_^1_%NUM $2020_L*MSOS4.1_^1_%NUM $2020_L*MSOS4.1_^1PHL1_!ALF +, *** S Y M B O L_!T A B L E *** +_^1STOKQ BSS STOKQ_MMSOS4.1_^1STOKA BSS STOKA_MMSOS4.1_^1SAVEI BSS SAVEI_MMSOS4.1_^1SAVEA BSS SAVEA_MMSOS4.1_^1SAVEQ BSS SAVEQ_MMSOS4.1_^1ENDTSR BSS ENDTSR_'END SYM.TBL.REF.ADDR._/MSOS4.1_^1ENDTSD BS€€S ENDTSD_'END SYM.TBL.DEF.ADDR._/MSOS4.1_^1SRTCHK LDA C_,SAVE 'C' FOR LATER RESTORATION_^1_%STA SAVEC_^1_%ENA 0_^1_%STA- PAGL,I_K*MSOS4.1_^1_%RAO SRTFLG_K*MSOS4.1_^1_%RAO L_QMSOS4.1_^1_%LDA- I_QMSOS4.1_^1_%STA* SAVEI_MMSOS4.1_^1_%LDA SYTRFM_'END ADDR.OF SYM.TBL.IN PASS2_(MSOS4.1_^1_%AND- $A_PMSOS4.1_^1_%MUI =N96_NMSOS4.1_^1_%STA* ENDTSD_'NO.OF WRS.ON THE DISK_/MSOS4.1_^1_%L€€DA SYTRFM_LMSOS4.1_^1_%AND- $1A_OMSOS4.1_^1_%ARS 8_QMSOS4.1_^1_%ADD* ENDTSD_LMSOS4.1_^1_%STA* ENDTSD_LMSOS4.1_^1_%ENQ 1_QMSOS4.1_^1_%LDA- ST,I_)START ADDR.SYM.TBL._1MSOS4.1_^1_%INA -1_PMSOS4.1_^1_%STA- I_QMSOS4.1_^1SYLGTB LDA- 1,I_*1ST WRD.OF SYM.TBL._1MSOS4.1_^1_%SAZ SY1_*CHECK IF END OF TBL._0MSOS4.1_^1_%RAO- I_QMSOS4.1_^1_%INQ 1_QMSOS4.1_^1_%JMP* SYLGTB_LMSOS4.1_^1SY1_"STQ€€* STOKQ_(LENGTH OF THE SYM.TBL._.MSOS4.1_^1_%LDA SYCADM_'CURRENT SECT.ADDR._2MSOS4.1_^1_%SUB SYTRFD_LMSOS4.1_^1_%MUI =N96_NMSOS4.1_^1_%ADD SYINDM_LMSOS4.1_^1_%STA* ENDTSR_LMSOS4.1_^1_%ADD* STOKQ_(NO.WRDS IN SYM.TBL AND SYM.REF.TBL. MSOS4.1_^1_%LDQ SAVEI_MMSOS4.1_^1_%STQ- I_QMSOS4.1_^1_%ADD- ST,I_NMSOS4.1_^1_%SUB SYEXT_(CAN EXT,SYM.TBL,SYM.REF.TBL.GET IN COMSOS4.1_^1_%SAM SY€€2_*YES_AMSOS4.1_^1_%LDA SYEXT_MMSOS4.1_^1_%SAZ SY2_OMSOS4.1_^1_%ENA 1_QMSOS4.1_^1_%STA L_QMSOS4.1_^1_%ENA 0_P*MSOS4.1_^1_%STA C_^1_%STA LPASS4_LMSOS4.1_^1_%STA SRTFLG_K*MSOS4.1_^1_%JMP JSTOUT_LMSOS4.1_^1SY2_"LDA C_P*MSOS4.1_^1_%SAZ SY3_N*MSOS4.1_^1WAIT1 LDA- CSW,I_(WAIT FOR COMPLETION OF_^1_%SAN WAIT2_(ALL PUNCH AND PRINT_^1_%JMP* WAIT1_(REQUESTS BEFORE EXITING_^1WAIT2€€ LDA- PSW,I_(FROM TABLST_^1_%SAN DONEP4_^1_%JMP* WAIT2_^1DONEP4 JMP ASSEM_^1SY3_"LDA- ST,I_)START SYM.TBL._6MSOS4.1_^1_%ADD* STOKQ_(LENGTH S.T._9MSOS4.1_^1_%INA 1_QMSOS4.1_^1_%STA SYTRFM_'START ADDR SYM.REF.TBL._-MSOS4.1_^1_%STA* STOKA_MMSOS4.1_^1_%ADD* ENDTSD_LMSOS4.1_^1_%STA* ENDTSD_LMSOS4.1_^1_%ADD* ENDTSR_LMSOS4.1_^1_%STA* ENDTSR_'END ADDR.S.R.T._5MSOS4.1_^1_%LDA- DSWW,I_L€€MSOS4.1_^1_%SAN 1_QMSOS4.1_^1_%JMP* *-2_*WAIT_@MSOS4.1_^1_%LDA SYCADM_LMSOS4.1_^1_%SUB SYTRFD_LMSOS4.1_^1_%SAN 1_QMSOS4.1_^1_%JMP* SYNTRF_LMSOS4.1_^1_%MUI =N96_NMSOS4.1_^1_%STA DISKRD+5_JMSOS4.1_^1_%STA* STOKA_MMSOS4.1_^1_%LDQ SYTRFD_LMSOS4.1_^1_%LDA SYTRFM_LMSOS4.1_^1_%RTJ DIN_*XFER DISK-CORE_6MSOS4.1_^1_%LDA SYTRFM_LMSOS4.1_^1_%ADD* STOKA_MMSOS4.1_^1_%STA* STOKA_MMSOS4.€€1_^1SYNTRF LDQ* STOKA_MMSOS4.1_^1_%INQ -1_PMSOS4.1_^1_%ENA 1_QMSOS4.1_^1_%STA- I_QMSOS4.1_^1SYTFST LDA SYRFTS-1,I_"ADDR.OF START_7MSOS4.1_^1_%STA- 1,Q_OMSOS4.1_^1_%LDA SYINDM_LMSOS4.1_^1_%SUB- I_QMSOS4.1_^1_%RAO- I_QMSOS4.1_^1_%SAZ 2_QMSOS4.1_^1_%INQ 1_QMSOS4.1_^1_%JMP* SYTFST_LMSOS4.1_^1_%INQ 1_QMSOS4.1_^1_%STQ ENDTSR_^1_%LDA SYTRFM_'SET UP CORE ALLOCATION_.MSOS4.1_^1_%ST€€A- I_,FOR THE S.T AND E.T SORT_,MSOS4.1_^1TRI1_!LDQ- 1,I_OMSOS4.1_^1_%LDA- 1,Q_OMSOS4.1_^1_%ALS 2_QMSOS4.1_^1_%AND =N$1F00_KMSOS4.1_^1_%STA* SMASK_MMSOS4.1_^1_%LDA- 1,Q_OMSOS4.1_^1_%AND- $8_PMSOS4.1_^1_%ADD* SMASK_MMSOS4.1_^1_%STA- 1,Q_OMSOS4.1_^1_%INQ 1_QMSOS4.1_^1_%LDA- 1,Q_OMSOS4.1_^1_%SAM 2_QMSOS4.1_^1_%INQ 1_QMSOS4.1_^1_%JMP* *-3_OMSOS4.1_^1_%LDA- I_QMSOS4.1_^1_%INA -1_P€€MSOS4.1_^1_%STA- I_QMSOS4.1_^1_%LDA- 1,I_OMSOS4.1_^1_%STA- 1,Q_OMSOS4.1_^1_%LDA- I_QMSOS4.1_^1_%INA 3_QMSOS4.1_^1_%STA- I_QMSOS4.1_^1_%SUB ENDTSD_LMSOS4.1_^1_%SAP 1_P*MSOS4.1_^1_%JMP* TRI1_NMSOS4.1_^1_%LDA SYTRFM_LMSOS4.1_^1_%INA -3_PMSOS4.1_^1_%STA- I_QMSOS4.1_^1_%LDQ SYEXT_MMSOS4.1_^1_%INQ -1_PMSOS4.1_^1TRI2_!LDA- 1,Q_OMSOS4.1_^1_%STA- 1,I_OMSOS4.1_^1_%INQ 1_QMSOS4.1_^1_%€€TRQ A_QMSOS4.1_^1_%SUB =XCONS_LMSOS4.1_^1_%SAP 2_QMSOS4.1_^1_%RAO- I_QMSOS4.1_^1_%JMP* TRI2_NMSOS4.1_^1_%LDA- I_QMSOS4.1_^1_%INA 2_QMSOS4.1_^1_%STA* LADR_NMSOS4.1_^1_%ENQ 0_QMSOS4.1_^1_%STQ- 1,I_OMSOS4.1_^1_%RAO- I_QMSOS4.1_^1_%LDA- I_QMSOS4.1_^1_%SUB =XCONS_LMSOS4.1_^1_%SAP 1_QMSOS4.1_^1_%JMP* *-6_OMSOS4.1_^1_%LDA =XCONS_LMSOS4.1_^1_%STA- I_QMSOS4.1_^1_%JMP* SORT_NMSOS4.1_€€^1SMASK BSS SMASK_MMSOS4.1_^1HADR_!BSS HADR_NMSOS4.1_^1LADR_!BSS LADR_NMSOS4.1_^1TRADST BSS TRADST_LMSOS4.1_^1LFORRT BZS LFORRT_LMSOS4.1_^1PASSNB BSS PASSNB_LMSOS4.1_^1LS_#BSS LS_PMSOS4.1_^1FLGADR BZS FLGADR_LMSOS4.1_^1WDTS_!BSS WDTS_NMSOS4.1_^1SORT_!LDA- ST,I_M*MSOS4.1_^1_%INA -1_PMSOS4.1_^1_%STA* HADR_NMSOS4.1_^1_%STA* TRADST_LMSOS4.1_^1_%ENA 6_QMSOS4.1_^1_%STA* PASSN€€B_LMSOS4.1_^1_%ENA 3_QMSOS4.1_^1_%STA* WDTS_NMSOS4.1_^1NEXTST RTJ RAZ_OMSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA* LS_PMSOS4.1_^1_%LDA* TRADST_LMSOS4.1_^1_%STA- I_QMSOS4.1_^1SOR1_!LDA- 1,I_OMSOS4.1_^1_%RAO* LS_PMSOS4.1_^1_%SAN 1_QMSOS4.1_^1_%JMP* SOR2_NMSOS4.1_^1_%SAM 2_QMSOS4.1_^1SOR3_!RAO- I_QMSOS4.1_^1_%JMP* SOR1_NMSOS4.1_^1_%LDA* LS_PMSOS4.1_^1_%INA -1_PMSOS4.1_^1_%SUB* WDTS_NMSO€€S4.1_^1_%SAM 1_QMSOS4.1_^1_%JMP* *+9_OMSOS4.1_^1_%LDA SYRFTS_LMSOS4.1_^1_%ADD* LS_PMSOS4.1_^1_%STA SYRFTS_LMSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA* LS_PMSOS4.1_^1_%JMP* SOR3_NMSOS4.1_^1_%LDA* WDTS_NMSOS4.1_^1_%SUB* LS_PMSOS4.1_^1_%TRA Q_QMSOS4.1_^1_%LDA* LFORRT_LMSOS4.1_^1_%SAN 3_QMSOS4.1_^1_%LDA- 1,B_OMSOS4.1_^1_%AND- $A_PMSOS4.1_^1_%JMP* *+4_OMSOS4.1_^1_%LDA- 1,B_OMSOS4.1_^1_%AN€€D- $1A_OMSOS4.1_^1_%ARS 8_QMSOS4.1_^1_%TRA Q_QMSOS4.1_^1_%LDA SYRFTS,Q_JMSOS4.1_^1_%ADD* LS_PMSOS4.1_^1_%STA SYRFTS,Q_JMSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA LS_PMSOS4.1_^1_%JMP* SOR3_NMSOS4.1_^1SOR2_!LDA* FLGADR_LMSOS4.1_^1_%SAZ 2_QMSOS4.1_^1_%LDA* HADR_NMSOS4.1_^1_%JMP* *+2_OMSOS4.1_^1_%LDA* LADR_NMSOS4.1_^1_%ENQ 0_QMSOS4.1_^1_%STQ- I_QMSOS4.1_^1_%LDQ SYRFTS_LMSOS4.1_^1SOR4_€€!STA SYRFTS,I_JMSOS4.1_^1_%LDA- I_QMSOS4.1_^1_%INA -60_OMSOS4.1_^1_%SAN 1_QMSOS4.1_^1_%JMP* SOR5_NMSOS4.1_^1_%RAO- I_QMSOS4.1_^1_%TRQ A_QMSOS4.1_^1_%ADD SYRFTS-1,I_HMSOS4.1_^1_%LDQ SYRFTS,I_JMSOS4.1_^1_%JMP* SOR4_NMSOS4.1_^1SOR5_!ENA 0_QMSOS4.1_^1_%STA* LS_PMSOS4.1_^1_%LDA* TRADST_LMSOS4.1_^1_%STA- I_QMSOS4.1_^1SOR6_!LDA- 1,I_OMSOS4.1_^1_%RAO* LS_PMSOS4.1_^1_%SAN 1_QMSOS4.1€€_^1_%JMP* SOR7_NMSOS4.1_^1SOR8_!SAM 2_QMSOS4.1_^1_%RAO- I_QMSOS4.1_^1_%JMP* SOR6_NMSOS4.1_^1_%LDA* LS_PMSOS4.1_^1_%INA -1_PMSOS4.1_^1_%SUB* WDTS_NMSOS4.1_^1_%SAP 1_QMSOS4.1_^1_%JMP* SOR9_NMSOS4.1_^1_%LDA* WDTS_NMSOS4.1_^1_%SUB* LS_PMSOS4.1_^1_%TRA Q_QMSOS4.1_^1_%LDA* LFORRT_LMSOS4.1_^1_%SAN 3_QMSOS4.1_^1_%LDA- 1,B_OMSOS4.1_^1_%AND- $A_PMSOS4.1_^1_%JMP* *+4_OMSOS4.1_^1_%LDA- 1,€€B_OMSOS4.1_^1_%AND- $1A_OMSOS4.1_^1_%ARS 8_QMSOS4.1_^1_%TRA Q_QMSOS4.1_^1SO11_!LDA SYRFTS,Q_JMSOS4.1_^1_%ADD* LS_PMSOS4.1_^1_%STA SYRFTS,Q_JMSOS4.1_^1_%SUB* LS_PMSOS4.1_^1_%TRA Q_QMSOS4.1_^1_%LDA- I_QMSOS4.1_^1_%SUB* LS_PMSOS4.1_^1_%INA 1_QMSOS4.1_^1_%STA- I_QMSOS4.1_^1SO10_!LDA- 1,I_OMSOS4.1_^1_%STA- 1,Q_OMSOS4.1_^1_%LDA LS_O*MSOS4.1_^1_%INA -1_PMSOS4.1_^1_%SAZ 5_P*MSOS4.€€1_^1_%STA LS_O*MSOS4.1_^1_%INQ 1_QMSOS4.1_^1_%RAO- I_QMSOS4.1_^1_%JMP* SO10_NMSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA LS_PMSOS4.1_^1_%JMP* SOR8_NMSOS4.1_^1SOR9_!ENQ 0_QMSOS4.1_^1_%JMP* SO11_NMSOS4.1_^1SOR7_!LDA PASSNB_LMSOS4.1_^1_%INA -1_PMSOS4.1_^1_%STA PASSNB_LMSOS4.1_^1_%SAN 1_QMSOS4.1_^1_%JMP* ENDSOR_LMSOS4.1_^1_%LDA FLGADR_LMSOS4.1_^1_%SAN 4_QMSOS4.1_^1_%LDA LADR_NMSOS4.€€1_^1_%ENQ 1_QMSOS4.1_^1_%JMP* *+4_OMSOS4.1_^1_%LDA HADR_NMSOS4.1_^1_%ENQ 0_QMSOS4.1_^1_%STA TRADST_LMSOS4.1_^1_%STQ FLGADR_LMSOS4.1_^1_%LDA LFORRT_LMSOS4.1_^1_%SAN 2_QMSOS4.1_^1_%ENA 1_QMSOS4.1_^1_%JMP* *+7_OMSOS4.1_^1_%LDA WDTS_NMSOS4.1_^1_%INA -1_PMSOS4.1_^1_%STA WDTS_NMSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA LFORRT_LMSOS4.1_^1_%JMP NEXTST_LMSOS4.1_^1SYPRLN BSS SYPRLN_LM€€SOS4.1_^1ENDSOR LDA =XCONS_'END OF SORT_9MSOS4.1_^1_%STA- I_QMSOS4.1_^1_%RTJ TITLE_L*MSOS4.1_^1_%LDA =N$FF00_KMSOS4.1_^1_%STA RECVS+5_KMSOS4.1_^1_%LDA =N$0F48_KMSOS4.1_^1_%STA RECVS+7_KMSOS4.1_^1_%ENQ 1_QMSOS4.1_^1_%STQ* SYPRLN_LMSOS4.1_^1_%RTJ RABL_NMSOS4.1_^1_%ENQ 40_O*MSOS4.1_^1EIEIO LDA =XSYRFTS_I*MSOS4.1_^1_%RTJ SYWRT_L*MSOS4.1_^1_%ENQ 40_O*MSOS4.1_^1_%LDA* EIEIO+€€1_J*MSOS4.1_^1_%RTJ SYWRT_L*MSOS4.1_^1_%LDQ HADR_NMSOS4.1_^1SO23_!LDA- 1,Q_OMSOS4.1_^1_%SAN 1_QMSOS4.1_^1_%JMP* SO22_NMSOS4.1_^1_%RTJ RECVS_MMSOS4.1_^1_%LDQ* SYPRLN_LMSOS4.1_^1_%LDA- LA,I_NMSOS4.1_^1_%STA SYRFTS,Q_JMSOS4.1_^1_%LDA- LA+1,I_LMSOS4.1_^1_%STA SYRFTS+1,Q_HMSOS4.1_^1_%LDA- LA+2,I_LMSOS4.1_^1_%STA SYRFTS+2,Q_HMSOS4.1_^1_%LDA- LA+3,I_LMSOS4.1_^1_%STA- W2,I_NMSOS4.1_€€^1_%ENQ 1_QMSOS4.1_^1_%RTJ DECVTB_K*MSOS4.1_^1_%LDQ* SYPRLN_LMSOS4.1_^1_%LDA- SY,I_NMSOS4.1_^1_%STA SYRFTS+4,Q_HMSOS4.1_^1_%LDA- SY+1,I_LMSOS4.1_^1_%STA SYRFTS+5,Q_HMSOS4.1_^1_%LDA* SYPRLN_LMSOS4.1_^1_%INA 7_QMSOS4.1_^1_%STA SYPRLN_LMSOS4.1_^1_%SUB* LNLGTH_'TEST FOR PRINT_^1_%INA 5_^1_%SAM 1_QMSOS4.1_^1_%JMP* SO20_NMSOS4.1_^1SO21_!RAO HADR_NMSOS4.1_^1_%LDQ HADR_NMSOS4.1_^€€1_%LDA- 1,Q_OMSOS4.1_^1_%SAN 1_QMSOS4.1_^1_%JMP* SO22_NMSOS4.1_^1_%SAP 4_QMSOS4.1_^1_%RAO HADR_NMSOS4.1_^1_%INQ 1_QMSOS4.1_^1_%JMP* SO23_NMSOS4.1_^1_%JMP* SO21_NMSOS4.1_^1SO20_!LDQ =N65_)IF NOT SET UPON ENTRY TO TABLST_^1_%EQU CRXX(*-1)_#THEN PRINT 130 CHARACTERS_^1_%LDA =XSYRFTS_JMSOS4.1_^1_%RTJ SYWRT_MMSOS4.1_^1_%ENQ 1_QMSOS4.1_^1_%STQ* SYPRLN_LMSOS4.1_^1_%RTJ RABL_NMSO€€S4.1_^1_%JMP* SO21_NMSOS4.1_^1SO22_!LDQ* CRXX_)LENGTH OF PRINT LINE_^1_%LDA =XSYRFTS_JMSOS4.1_^1_%RTJ SYWRT_MMSOS4.1_^1_%RTJ RABL_NMSOS4.1_^1_%ENA 0_P*MSOS4.1_^1_%STA LPASS4_K*MSOS4.1_^1EXITIT JMP ERCCHK_K*MSOS4.1_^1LNLGTH NUM 66_+PRINT LINE LENGTH = 132 CHARACTERS_^1DPQ_"BSS DPQ_OMSOS4.1_^1DECVNT BZS DECVNT_LMSOS4.1_^1DECVTB ADC 0_QMSOS4.1_^1_%STQ* DPQ_OMSOS4.1_^1_%LDA- €€W2,I_NMSOS4.1_^1_%SUB- $42_OMSOS4.1_^1_%SAP 1_QMSOS4.1_^1_%JMP* DEC1TB_LMSOS4.1_^1_%LDA- W2,I_NMSOS4.1_^1_%TCA A_QMSOS4.1_^1_%AND- $42_OMSOS4.1_^1_%STA- W2,I_NMSOS4.1_^1_%ENA 1_QMSOS4.1_^1_%STA* DECVNT_LMSOS4.1_^1DEC1TB LDA- W2,I_NMSOS4.1_^1_%ENQ 0_QMSOS4.1_^1_%DVI =N10_NMSOS4.1_^1_%STA- W2,I_NMSOS4.1_^1_%LRS 16_PMSOS4.1_^1_%INA $30_OMSOS4.1_^1_%LDQ* DPQ_OMSOS4.1_^1_%STA- SY€€,B_NMSOS4.1_^1_%LDA- W2,I_NMSOS4.1_^1_%ENQ 0_QMSOS4.1_^1_%DVI =N10_NMSOS4.1_^1_%STA- W2,I_NMSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%LRS 8_QMSOS4.1_^1_%ADD =N$3000_KMSOS4.1_^1_%LDQ* DPQ_OMSOS4.1_^1_%ADD- SY,B_NMSOS4.1_^1_%STA- SY,B_NMSOS4.1_^1_%SQZ 3_QMSOS4.1_^1_%INQ -1_PMSOS4.1_^1_%STQ* DPQ_OMSOS4.1_^1_%JMP* DEC1TB_LMSOS4.1_^1_%LDA* DECVNT_LMSOS4.1_^1_%SAZ 7_QMSOS4.1_^1_%LDA- SY,I_NM€€SOS4.1_^1_%AND- $A_PMSOS4.1_^1_%ADD =N$2D00_KMSOS4.1_^1_%STA- SY,I_NMSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA* DECVNT_K*MSOS4.1_^1_%JMP* (DECVTB)_JMSOS4.1_^1BLC_"NUM $2020_MMSOS4.1_^1RECVS ADC 0_QMSOS4.1_^1_%LDA* BLC_OMSOS4.1_^1_%STA- LA+1,I_LMSOS4.1_^1_%STA- LA+2,I_LMSOS4.1_^1_%LDA =N$07C0_KMSOS4.1_^1_%AND- 1,Q_OMSOS4.1_^1_%ARS 6_QMSOS4.1_^1_%SAZ 1_QMSOS4.1_^1_%INA $20_OMSOS4.1_€€^1_%INA $20_OMSOS4.1_^1_%ALS 8_QMSOS4.1_^1_%STA- LA,I_NMSOS4.1_^1_%ENA $3F_OMSOS4.1_^1_%AND- 1,Q_OMSOS4.1_^1_%INA $20_OMSOS4.1_^1_%ADD- LA,I_NMSOS4.1_^1PIKLA STA+ LA,I_NMSOS4.1_^1_%INQ 1_QMSOS4.1_^1_%STQ* RRTB+1_LMSOS4.1_^1_%ENQ 1_QMSOS4.1_^1RRTB_!LDA+ 0,Q_OMSOS4.1_^1_%SAM R1_PMSOS4.1_^1_%ADD* BLC_OMSOS4.1_^1_%RAO* *+2_OMSOS4.1_^1MELA_!STA+ LA,I_NMSOS4.1_^1_%INQ 1_QMSOS4.1€€_^1_%JMP* RRTB_NMSOS4.1_^1R1_#TCA A_QMSOS4.1_^1_%STA- LA+3,I_LMSOS4.1_^1_%LDA* PIKLA+1_KMSOS4.1_^1_%STA* MELA+1_LMSOS4.1_^1_%JMP* (RECVS)_KMSOS4.1_^1RABL_!ADC 0_QMSOS4.1_^1_%ENQ 95_PMSOS4.1_^1_%LDA =N$2020_KMSOS4.1_^1_%STA SYRFTS,Q_JMSOS4.1_^1_%INQ -1_PMSOS4.1_^1_%SQM 1_QMSOS4.1_^1_%JMP* *-4_OMSOS4.1_^1_%JMP* (RABL)_LMSOS4.1_^1RAZ_"ADC 0_QMSOS4.1_^1_%ENQ 95_PMSOS4.1_^1_%EN€€A 0_QMSOS4.1_^1_%STA SYRFTS,Q_JMSOS4.1_^1_%INQ -1_PMSOS4.1_^1_%SQM 1_QMSOS4.1_^1_%JMP* *-4_OMSOS4.1_^1_%JMP* (RAZ)_MMSOS4.1_^1_(END_%PASS4_^__€€XREF CSY/ A10 €€1_%NAM XREF_*DECK-ID A10 MACRO ASSEMBLER_%SUMMARY-16_^1*_$MASS STORAGE OPERATING SYSTEM VERSION 5.0_^1*_$SMALL SYSTEMS DIVISION, LA JOLLA, CALIFORNIA_^1*_$COPYRIGHT CONTROL DATA CORPORATION 1976_^1PS_#EQU PS(0)_MMSOS4.1_^1STDSCR EQU STDSCR($B3)_GMSOS4.1_^1STDLGO EQU STDLGO($E4)_GMSOS4.1_^1REQPRO EQU REQPRO($F4)_GMSOS4.1_^1STDOUT EQU STDOUT($FA)_GMSOS4.1_^1STDPRT EQU STDPRT(€€$FB)_GMSOS4.1_^1STDOCD EQU STDOCD($FC)_GMSOS4.1_^1DISP_!EQU DISP($EA)_IMSOS4.1_^1_%EQU ST(1),ET(ST+1),PSW(ET+1),PB(PSW+1)_0MSOS4.1_^1_%EQU DSW(PB+49),DSWW(DSW+1)_MSOS4.1_^1ASMADC ADC ASSEM1_LMSOS4.1_^1CSWW_!BZS CSWW_NMSOS4.1_^€€1COO_"ENA 1_QMSOS4.1_^1_%STA* CSWW_NMSOS4.1_^1_%JMP- (DISP)_LMSOS4.1_^1PS1ALF ALF 3,PASS1_KMSOS4.1_^1PS2ALF ALF 3,PASS2_KMSOS4.1_^1PS3ALF ALF 3,PASS3_KMSOS4.1_^1PS4ALF ALF 3,TABLST_JMSOS4.1_^1PS5ALF ALF 3,XREF_LMSOS4.1_^1MA5_"ADC 0_QMSOS4.1_^1_%EQU ENDASB(MA5+1)_EMSOS4.1_^1_%EJT_]_^1************************************************************************_^1* THE CONTENTS OF€€ SYTRFM IN XREF HAVE TWO SIGNIFICANCES_^1*_$1- SECTOR NUMBER DEFINED IN PASS2_^1*_-2- INDEX SYINDM AT THIS TIME_^1*_'15_,8 7_,0_^1*_(******************************_^1*_(*_!INDEX_$* SECT. NB. *_^1*_(*_-*_,*_^1*_(******************************_^1*_]_^1* XREF_]_^1* -----_]_^1*_]_^1*_]_^1* GIVES LIST OF SYMBOLS BY EQUIVALENCES_^1*_9SYMBOLS_^1*_9EXTERNALS,_^1*_%AND ALPHABETICAL LIST €€OF SYMBOLS._^1*_]_^1* PASS2 GIVES DEFINITION OF SYMBOLS IN TWO WORDS_^1*_-1- COMPLEMENT DEFINED LINE NUMBER_^1*_-2- SYMBOL ADDRESS TO SYMBOL TABLE OR EXTERNAL TABLE_^1* PASS3 SAME THING WHICH PASS2, BUT BY REFERENCE._^1************************************************************************_^1XREF_!RTJ- ($F4)_(STATUS STD.PRINT DEVICE_-MSOS4.1_^1_%NUM $4600_^1_%VFD N3/0,N1/0,N2/2,€€X10/STDPRT_9MSOS4.1_^1_%NUM 0_QMSOS4.1_^1_%SQP TAG100_LMSOS4.1_^1_%JMP* XREF_NMSOS4.1_^1TAG100 TRQ A_QMSOS4.1_^1_%AND* TYPECD_'MASK OUT TYPE CODE_2MSOS4.1_^1_%ALS 5_QMSOS4.1_^1_%INA -1_PMSOS4.1_^1_%SAZ MAGTAP_'STD.PRINT IS MAG.TAPE_/MSOS4.1_^1_%INA -4_PMSOS4.1_^1_%SAN TAG101_LMSOS4.1_^1_%JMP* XREF1_(STD.PRINT IS PRINTER_0MSOS4.1_^1TAG101 LDA =N$0C00_^1_%STA CARCON_LMSOS4.€€1_^1TAG102 ENA 36_^1_%STA CRXX_)SET PRINT FOR TTY MODE_^1_%STA LNLGTH_^1_%JMP* XREF1_MMSOS4.1_^1MAGTAP LDA =N$3120_KMSOS4.1_^1_%STA CARCON_LMSOS4.1_^1_%JMP* TAG102_^1TYPECD NUM $3800_(TYPE CODE MASK_6MSOS4.1_^1STOKQ BSS STOKQ_MMSOS4.1_^1STOKA BSS STOKA_MMSOS4.1_^1SAVEI BSS SAVEI_MMSOS4.1_^1SAVEA BSS SAVEA_MMSOS4.1_^1SAVEQ BSS SAVEQ_MMSOS4.1_^1ENDTSR BSS ENDTSR_'END€€ SYM.TBL.REF.ADDR._/MSOS4.1_^1ENDTSD BSS ENDTSD_'END SYM.TBL.DEF.ADDR._/MSOS4.1_^1_%EJT_]_^1************************************************************************_^1*_]_^1* CORE ALLOCATION_^1* ---------------_^1*_]_^1*_,*********************************************_^1*_,*_J*_^1*_,*_(PROTECTED CORE_3*_^1*_,*_J*_^1*_,**********************************************_^1*_,*_K*_^1*_,*_€€(ASSEMBLER(XREF)_3*_^1*_,*_K*_^1*_,**********************************************_^1*_,*_K*_^1*_,*_(SYMBOL TABLE_6*_^1*_,*_6**********************_^1*_,*************************SYTRFM_-*_^1*_,*_K*_^1*_,*_(SYMBOL TABLE DEFINITION_+*_^1*_,*_K*_^1*_,*_:ENDTSD************_^1*_,***********************************_)*_^1*_,*_K*_^1*_,*_(SYMBOL TABLE REFERENCE_,*_^1*_,*_K*_^1*_,*_K*_^1*_,*_€€"ENDSTR***********************************_^1*_,************_@*_^1*_,*_K*_^1*_,**********************************************_^1*_,*_K*_^1*_,*_(EXTERNAL TABLE_4*_^1*_,*_K*_^1*_,**********************************************_^1*_,*_K*_^1*_,*_(COMMON_<*_^1*_,*_K*_^1*_,**********************************************_^1*_]_^1**************************************************************€€**********_^1_%EJT_]_^1XREF1 LDA =XCONS_LMSOS4.1_^1_%STA- I_QMSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA- LN,I_NMSOS4.1_^1_%RAO L_QMSOS4.1_^1_%LDA SYTRFM_'END ADDR.OF SYM.TBL.IN PASS2_(MSOS4.1_^1_%AND- $A_PMSOS4.1_^1_%MUI =N96_NMSOS4.1_^1_%STA* ENDTSD_'NO.OF WRS.ON THE DISK_/MSOS4.1_^1_%LDA SYTRFM_LMSOS4.1_^1_%AND- $1A_OMSOS4.1_^1_%ARS 8_QMSOS4.1_^1_%ADD* ENDTSD_LMSOS4.1_^1_%STA* EN€€DTSD_LMSOS4.1_^1_%ENQ 1_QMSOS4.1_^1_%LDA- ST,I_)START ADDR.SYM.TBL._1MSOS4.1_^1_%INA -1_PMSOS4.1_^1_%STA- I_QMSOS4.1_^1SYLGTB LDA- 1,I_*1ST WRD.OF SYM.TBL._1MSOS4.1_^1_%SAZ SY1_*CHECK IF END OF TBL._0MSOS4.1_^1_%RAO- I_,INCREASE ADRESS_5MSOS4.1_^1_%INQ 1_,INCREASE LENGTH COUNT_/MSOS4.1_^1_%JMP* SYLGTB_'FOR THE NEXT WORD_3MSOS4.1_^1SY1_"STQ* STOKQ_(LENGTH OF THE SYM.TBL._.MSOS4.€€1_^1_%LDA SYCADM_'CURRENT SECT.ADDR._2MSOS4.1_^1_%SUB SYTRFD_'NO. OF UTILITY SECTORS_.MSOS4.1_^1_%MUI =N96_)NO. OF WORDS_8MSOS4.1_^1_%ADD SYINDM_'NO. OF WORDS IN CORE_0MSOS4.1_^1_%STA* ENDTSR_'END OF S.R.T._7MSOS4.1_^1_%ADD* STOKQ_(NO.WRDS IN SYM.TBL AND SYM.REF.TBL. MSOS4.1_^1_%LDQ =XCONS_'COMMON ADRESS_7MSOS4.1_^1_%STQ- I_,RESTORE CONS_8MSOS4.1_^1_%ADD- ST,I_)ADDRESS WHICH €€GIVES SYM TAB + S.R.T. MSOS4.1_^1_%SUB SYEXT_(CAN EXT,SYM.TBL,SYM.REF.TBL.GET IN COMSOS4.1_^1*_8CAN I MAKE SYM REF TABL + SYM TABL + EXTERNAL_^1*_8CAN I MAKE S.R.T. + S.T. + E.T. IN CORE_^1_%SAM SY2_*YES_AMSOS4.1_^1_%LDA SYEXT_MMSOS4.1_^1_%SAZ SY2_OMSOS4.1_^1_%ENA 1_,LISTING SWITCH_6MSOS4.1_^1_%STA L_QMSOS4.1_^1_%STA C_P*MSOS4.1_^1_%JMP ASSEM_MMSOS4.1_^1* O.K. NOW MOVE SYMB€€OL REF TABLE AFTER SYMBOL TABLE_^1*_$TWO POSITIONS_^1*_)1- SYM REF TBL IS ONLY IN CORE_^1*_)2- SYM REF TBL IS IN CORE AND MASS STORAGE_^1*_]_^1SY2_"LDA- ST,I_)START SYM.TBL._6MSOS4.1_^1_%ADD* STOKQ_(LENGTH S.T._9MSOS4.1_^1_%INA 1_,FOR TEST END-FILE OF THIS TABLE_$MSOS4.1_^1_%STA SYTRFM_'START ADDR SYM.REF.TBL._-MSOS4.1_^1_%STA* STOKA_(ADDRESS TO WRITE SYM REF TABLE_%MSOS4.1_^1_%A€€DD* ENDTSD_'END ADDRESS OF SYM REF TABLE_(MSOS4.1_^1_%STA* ENDTSD_LMSOS4.1_^1_%ADD* ENDTSR_LMSOS4.1_^1_%STA* ENDTSR_'END ADDR.S.R.T._5MSOS4.1_^1_%LDA- DSWW,I_'REQUEST, IS IT FREE_1MSOS4.1_^1_%SAN 1_,O.K. I CAN WAIT TO CALL_-MSOS4.1_^1_%JMP* *-2_*WAIT_@MSOS4.1_^1_%LDA SYCADM_'LAST CURRENT SECTOR ON DISK_)MSOS4.1_^1_%SUB SYTRFD_'NO. OF SECTORS_6MSOS4.1_^1_%SAN 1_QMSOS4.1_^1_%JMP*€€ SYNTRF_'NO SECTORS ON DISK_2MSOS4.1_^1_%MUI =N96_)NO. OF WORDS TO BE TRANSFERRED_%MSOS4.1_^1_%STA DISKRD+5_$TRANSFER LENGTH FOR REQUEST_)MSOS4.1_^1_%STA* STOKA_MMSOS4.1_^1_%LDQ SYTRFD_'START ADDRESS ON DISK_/MSOS4.1_^1_%LDA SYTRFM_'START ADDRESS IN CORE_/MSOS4.1_^1_%RTJ DIN_*XFER DISK-CORE_6MSOS4.1_^1_%LDA SYTRFM_LMSOS4.1_^1_%ADD* STOKA_(FOR TRANSLAT S.R.T. WHICH IS IN CORE €€MSOS4.1_^1_%STA* STOKA_MMSOS4.1_^1SYNTRF LDQ* STOKA_(CONTINUATION ADDRESS_0MSOS4.1_^1_%INQ -1_PMSOS4.1_^1_%ENA 1_QMSOS4.1_^1_%STA- I_QMSOS4.1_^1SYTFST LDA SYRFTS-1,I_"ADDR.OF START_7MSOS4.1_^1_%STA- 1,Q_OMSOS4.1_^1_%LDA SYINDM_LMSOS4.1_^1_%SUB- I_,END OF TRANSFER_5MSOS4.1_^1_%RAO- I_,INCREASE FOR NEW LOOP_/MSOS4.1_^1_%SAZ 2_,END LOOP_MSOS4.1_^1_%INA -1_+REFERENCE AT LINE NUMBER_,MSOS4.1_^1_%STA- I_QMSOS4.1_^1_%LDA- 1,I_*VALUE_?MSOS4.1_^1_%TCA A_QMSOS4.1_^1_%LDQ =XCONS_'COMMON ADDRESS_6MSOS4.1_^1_%STQ- I_QMSOS4.1_^1_%ENQ 1_,PARA. FOR DECV_6MSOS4.1_^1_%STA- W2,I_NMSOS4.1_^1_%RTJ DECV_)RETURN IN SY W2 NUMBER_.MSOS4.1_^1_%LDA =N$2C20_%FOR ,_?MSOS4.1_^1_%LDQ* INFOUT_LMSOS4.1_^1_%STA SYRFTS,Q_$TO OUTPUT_;MSOS€€4.1_^1_%LDA- SY,I_)STORE TO OUTPUT BUFFER_.MSOS4.1_^1_%STA SYRFTS+1,Q_HMSOS4.1_^1_%LDA- SY+1,I_LMSOS4.1_^1_%STA SYRFTS+2,Q_HMSOS4.1_^1_%INQ 3_,INCREASE INDEX_6MSOS4.1_^1_%STQ* INFOUT_LMSOS4.1_^1_%LDA* INFOUT_LMSOS4.1_^1_%SUB =N65_)IF NOT SET UPON ENTRY INTO XREF_^1CRXX_!EQU CRXX(*-1)_#THEN PRINT 130 CHARACTERS_^1_%SAP 2_,O.K. NO PRINT_7MSOS4.1_^1_%LDA* IRLN_)CONTINUATION ADDR€€ESS_0MSOS4.1_^1_%JMP* CCRF_)TO CONTINUE REFERENCE RESEARCH_%MSOS4.1_^1_%LDA* WD_+BLANK OUT INITIAL COMMA_^1_%STA SYRFTS+18_^1_%LDA =XCONS_'COMMON ADDRESS_6MSOS4.1_^1_%STA I_QMSOS4.1_^1_%LDQ LNLGTH_'LENGTH OF PRINT LINE_^1_%LDA =XSYRFTS_$START ADDRESS OF PRINT BUFFER_'MSOS4.1_^1_%RTJ SYWRT_(TO PRINT_ LOW BLOCK_^1*_)PASS 5_$LOW BLOCK ----> HIGH BLOCK_^1*_)PASS 4_$HIGH BLOCK ----> LOW BLOCK_^1*€€_).... ._$.... ..... ..... ... ....._^1*_).... ._$.... ..... ..... ... ....._^1*_)PASS 1_$LOW BLOCK ----> HIGH BLOCK (FINAL RESULT)_^1_'BSS HADR_(HIGH ADDRESS BLOCK_2MSOS4.1_^1_'BSS LADR_)LOW ADDRESS BLOCK_3MSOS4.1_^1_'BSS TRADST_'START ADDRESS FOR RESEARCH_*MSOS4.1_^1*_:PASS, 6, 4, 2, = HADR_^1*_:PASS, 5, 3, 1, = LADR_^1_%BZS LFORRT_'FLAG, 1= HALF LEFT WORD_-MSOS4.1_^1*_>0= HAL€€F RIGHT WORD_^1_%BSS PASSNB_'PASS NUMBER_9MSOS4.1_^1_%BSS LS_+LENGTH SYMBOL_7MSOS4.1_^1_%BZS FLGADR_'TRANSFER DIRECTION_2MSOS4.1_^1_%BSS WDTS_)TEST WORD, POSITION OF WORD IN SYMBOLMSOS4.1_^1*_:FLGADR= 0, HADR TO LADR_^1*_@= 1, LADR TO HADR_^1*_]_^1************************************************************************_^1_%EJT_]_^1SORT_!LDA- ST,I_)START ADDRESS FOR BEGINING_)*M€€SOS4.1_^1_%INA -1_PMSOS4.1_^1_%STA* HADR_)INITIALISATION FOR PASS6_,MSOS4.1_^1_%STA* TRADST_'START ADDRESS FOR CHECKING_*MSOS4.1_^1_%ENA 6_,NUMBER OF PASS_6MSOS4.1_^1_%STA* PASSNB_LMSOS4.1_^1_%ENA 3_,NUMBER OF WORDS_5MSOS4.1_^1_%STA* WDTS_NMSOS4.1_^1NEXTST RTJ RAZ_*0 IN SYRFTS VECTOR_2MSOS4.1_^1_%ENA 0_QMSOS4.1_^1_%STA* LS_+LENGTH OF SYMBOL_4MSOS4.1_^1_%LDA* TRADST_'CHECK ADDR€€ESS START (HADR OR LADR)_!MSOS4.1_^1_%STA- I_QMSOS4.1_^1SOR1_!LDA- 1,I_*FIRST WORD_:MSOS4.1_^1_%RAO* LS_+LENGTH OF SYMBOL_4MSOS4.1_^1_%SAN 1_,TEST NEGATIVE VALUE_1MSOS4.1_^1_%JMP* SOR2_)AND END OF VALUE_4MSOS4.1_^1_%SAM 2_,RESEARCH_**MSOS 4.0_^1_(LDA- SY,I_^1_(SAN_!1_^1_%JMP* MDX2A_(BLANK LABEL FIELD._3120*4680_^1_(SUB_!=N$16E_^1_(SAN_!MDX1-*-1_^1_(LDA- SY+1,I_^1_(SUB_!=N$242D_^1_(SAN_!MDX1-*-1_^1_(LDA- SY+2,I_^1_(SUB_!=N$2123_^1_(SAZ_!MDX2-*-1_^1MDX1_#RTJ* GETOP_^€€1_(SUB_!=N$3423_%MAC OPCODE_^1_%SAN MDX1A_(CARD IS NOT A MAC DEFINATION CARD_#120*4680_^1_%JMP- (MCDEF)_%CARD IS MAC DEFINATION. PROCESS IT. 120*4680_^1MDX1A ENA $31_*LIBMAC ERROR 01._5120*4680_^1_%JMP- (MERROR)_$NO MAC DEFINATION CARD._.120*4680_^1MDX2A ENA $33_*LIBMAC ERROR 03._5120*4680_^1_%JMP- (MERROR)_$LABEL FIELD MISSING OR INCORRECT._#120*4680_^1MDX2_#LDQ- DIRINX,I_€€^1_%SQP GOTMCS_'IF DIRINX,I = -1, NO MACROS HAVE BEEN 120*4680_^1_'JMP* MDX1A_'DEFINED. OUTPUT LIBMAC ERROR 01._#120*4680_^1GOTMCS INQ -5_Q120*4680_^1_(LDA_!DIRBUF,Q_$FLAG LAST DIR_^1_(TCA_!A_,ENTRY_^1_(STA* (*-2),Q_^1_(LDQ- DIRSEC,I_^1_(LDA_!=XDIRBUF_^1_(RTJ- (DKOUT)_"DOUT_?**MSOS 4.0_^1_(LDA- SKWDCT,I_^1_(ENQ_!0_^1_(DVI_!=N96_^1_(ADD- SKSCST,I_^1_(INA_!-1_^1_(STA- T1,I_^€€1MDX3_#LDQ- SKSCST,I_^1_(LDA_!=XINBUF_^1_(RTJ- (DINPUT)_!DIN_@**MSOS 4.0_^1_(ENQ_!48_^1_(LDA* (MDX3+2),Q_^1_(SAM_!2_,Q CONTAINS NUMB_^1_(INQ_!1_,WDS TO OUTPUT_^1_(JMP* *-3_^1_(RTJ* OUTBIN_^1_(LDA- SKSCST,I_^1_(SUB- T1,I_^1_(SAZ_!2_^1_(RAO- SKSCST,I_^1_(JMP* MDX3_^1_%RTJ- (REQPRO)_$FWRITE REQUEST._^1_(NUM_!$4C00_I**MSOS 4.0_^1_(ADC_!0_^1_(ADC_!0_^1_%VFD N3/0,N1/1,N2/2,X10/€€STDOCD_^1_%ADC 12_Q120*4680_^1_(ADC_!MSSG_^1_(ENA_!0_^1_(STA- CSW,I_^1_%RTJ- (REQPRO)_$FREAD REQUEST._^1_(NUM_!$4800_I**MSOS 4.0_^1_(ADC_!CO_^1_(ADC_!0_^1_%VFD N3/0,N1/1,N2/2,X10/STDICD_^1_(ADC_!10_^1_(ADC_!INBUF_^1_(LDA- CSW,I_^1_(SAN_!1_^1_(JMP* *-2_^1_(RTJ- (WREOF)_"WRITE END OF FILE_2**MSOS 4.0_^1MDX4_#LDQ- DRSCST,I_^1_(LDA* MDX3+2_'INBUF_^1_(RTJ- (DINPUT)_!DIN_@**MSOS€€ 4.0_^1_(ENQ_!96_^1_%RTJ* OUTBIN_^1_)LDA- DRSCST,I_^1_(SUB- DIRSEC,I_^1_(SAZ_!2_^1_(RAO- DRSCST,I_^1_(JMP* MDX4_^1_(RTJ- (WREOF)_"WRITE END OF FILE_2**MSOS 4.0_^1ENDEXT_!RTJ- (REQPRO)_!EXIT REQUEST_7**MSOS 4.0_^1_(NUM_!$A00_^1OUTBIN_!ADC_!0_^1_(STQ* OB1_^1_(ENA_!0_^1_(STA- CSW,I_^1_%RTJ- (REQPRO)_$FWRITE REQUEST._^1_(NUM_!$4C00_I**MSOS 4.0_^1_(ADC_!CO_^1_(ADC_!0_^1_%VFD N3€€/0,N1/0,N2/2,X10/STDOUT_^1OB1_$ADC_!0_^1_(ADC_!INBUF_^1_(LDA- CSW,I_^1_(SAN_!1_^1_(JMP* *-2_^1_(JMP* (OUTBIN)_^1GETOP_"ADC_!0_^1_(ENA_!0_^1_(STA- IG,I_^1_(ENA_!-1_^1_(STA- CT,I_^1_(RTJ* CHPU_-GET 1ST CHAR_^1_(SAZ_!G1-*-1_'NO LABEL_^1_(INA_!-$A_*ASTERISK_^1_(SAN_!2_,NO_^1_(ENA_!-1_^1_(JMP* (GETOP)_^1_(RTJ- (MCHPKR)_!MCHPR_>**MSOS 4.0_^1G1_%RAO- IG,I_^1_(RTJ- (MCHPKR)_!MCHP€€R_>**MSOS 4.0_^1_(SAZ_!G2-*-1_'SY PRESENT_^1_(ENA_!$3F_^1_(AND- SY+1,I_^1_(SAZ_!4_^1G2_%ENA_!0_^1_(STA- NU,I_^1_(RAO- IG,I_)SET TO SKIP LEADING BLN_^1_(JMP* (GETOP)_^1_(LDQ- SY,I_^1_(LRS_!6_^1_(ALS_!6_^1_(QLS_!10_^1_(INA_!-$20_^1_(SAM_!G3-*-1_^1_(ALS_!5_^1_(AAQ_!A_^1_(LDQ- SY+1,I_^1_(QRS_!8_^1_(INQ_!-$20_^1_(SQP_!1_^1G3_%JMP* G2_^1_(AAQ_!A_^1_(JMP* G2+1_^1CHPU_#ADC_!0_^1_(R€€AO- CT,I_)INCREMENT CHAR CTR_^1_(ENA_!0_^1_(LDQ- CT,I_^1_(INQ_!-72_^1_(SQM_!5_^1_(LDA- AF,I_^1_(SAN_!1_^1_(JMP* C1+1_^1_(ENQ_!-0_^1_(JMP* (CHPU)_^1_(INQ_!72_^1_(LRS_!1_^1_(ADQ- INPADR,I_F**MSOS 4.0_^1_(LDQ- ($22),Q_G**MSOS 4.0_^1_(SAZ_!1_^1_(QLS_!8_^1_(QRS_!8_,Q CONTAINS 7 BIT CHAR_^1_(LDA- AF,I_^1_(SAZ_!1_^1_(JMP* (CHPU)_^1_(SQM_!C3+1-*-1_$NULL-IGNORE IT_^1_(INQ_!-$9_*TAB€€-IS END OF FIELD_^1_(SQZ_!C3-*-1_'YES-A IS ZERO SO WILL EXIT_^1_(LDA- IG,I_^1_(INQ_!-$4_*CARRIAGE RETURN_^1_(SQN_!3_,NO_^1_(ENA_!71_+SET CTR FOR_^1_(STA- CT,I_^1_(JMP* CHPU+1_^1_(INQ_!-$13_)BLANK_^1_(SQM_!C1-*-1_'CHAR ILLEG_^1_(SQN_!2_^1C3_%SAZ_!C1+1-*-1_$CHAR BLNK-IG NOT SET_^1_(JMP* CHPU+1_'GO BACK FOR NEXT CHR_^1_(INQ_!-$40_)UPPERBOUND FOR LEGAL_^1_(SQM_!C2-*-1_'IS LEGAL_^1C€€1_%ENA_!$3C_^1_(STA- CS,I_^1_(ENQ_!0_^1_(STQ- IG,I_^1_(JMP* (CHPU)_^1C2_%INQ_!$40_*6 BIT CHAR FOR OUTPUT_^1_(TRQ_!A_^1_(JMP* C1+1_^1MSSG_!ALF *,MACSKL END. TYPE (CR). *_8120*4680_^1*_83 CARDS DELETED_6120*4680_^1XC_%NUM_!0,$C,$B BLANK,COMMA,PLUS_^1_(NUM_!$D,$A MINUS,ASTERISK_^1MCHPR_"ADC_!0_^1_(ENA_!0_^1_(ENQ_!4_^1_(STA- SY,B_)ZERO SY,XMOD_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-€€3_^1XLOP_#RTJ- (CHPKUP)_!CHPU_?**MSOS 4.0_^1_(ENQ_!4_^1X1_%LDA- CS,I_^1_(SUB* XC,Q_)SEARCH SPECIALS_^1_(SAZ_!XLO1-*-1_$FOUND_^1_(INQ_!-1_^1_(SQM_!X5-*-1_'NOT FOUND_^1_(JMP* X1_^1XLO1_#STQ- CS,I_)SET CS INDICATOR_^1_(SQZ_!2_^1_(INQ_!-1_^1_(SQN_!1_^1_(JMP* XB_+COMMA BLANK_^1_(JMP* XP_+PLUS,MINUS,ASTERISK_^1X5_%LDQ- XMOD,I_^1_(INA_!-$10_^1_(SAM_!XA-1-*-1_$ERR-BELOW LOWER BOUND€€_^1_(INA_!-$A_^1_(SAP_!2_,NOT NUMERIC_^1_(SQZ_!XA-1-*-1_$NUMERIC INITIAL MODE_^1_(JMP* XALF_^1_(INA_!-7_^1_(SAM_!XA-1-*-1_$NOT ALPHA ERROR_^1_(INA_!-$1B_^1_(SAM_!1_,NOT ALPHA ERROR_^1_(JMP* XR_^1XA_%SQN_!XALF-*-1_^1_(RAO- XMOD,I_^1_(ENQ_!0_^1_(INA_!$1C_*CONVERT TO 5 BIT VALUE_^1_(ALS_!6_^1_(JMP* XB-3_^1XALF_#LDQ- SY+3,I_^1_(INQ_!-6_^1_(SQZ_!XB-1-*-1_$6 CHARS EIXT_^1_(INQ_!6_^1€€_(ENA_!0_^1_(LRS_!1_^1_(SAN_!3_^1_(LDA- CS,I_^1_(ALS_!8_^1_(JMP* *+2_^1_(LDA- CS,I_^1_(ADD- SY,B_^1_(STA- SY,B_^1_(RAO- SY+3,I_^1_(JMP* XLOP_^1XB_%LDQ- XMOD,I_^1_(SQN_!1_^1_(RAO- SY+1,I_^1XB2_$LDQ- SY+3,I_^1_(SQZ_!3_^1_(INQ_!-1_^1_(QRS_!1_^1_(STQ- SY+3,I_^1XX_%LDA- SY,I_^1_(JMP* (MCHPR)_^1XP_%LDQ- XMOD,I_^1_(SQZ_!1_^1_(JMP* XB2_^1XR_%RTJ- (CHPKUP)_!CHPU_?**MSOS 4.0_€€^1_(SAZ_!XR1-*-1_^1_(ENQ_!1_^1_(STQ- CS,I_^1_(INA_!-$C_^1_(SAZ_!XR1-*-1_^1_(JMP* XR_^1XR1_$ENA_!0_^1_(ENQ_!3_^1_(STA- SY,B_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-3_^1_(JMP* XX_^1MACDEF_!LDA_!=XSKLBUF_$SET SKEL ADDR_^1_(STA- SKLADR,I_^1_(LDA- CS,I_)TERMIN BLANK_^1_%SAZ MACBL_(YES, CONTINUE PROCESSING._,120*4680_^1_%ENA $32_*LIBMAC ERROR 02._5120*4680_^1_%JMP- (MERROR)_$ADDRESS M€€ODIFIER ON MAC DEFINATION._!120*4680_^1MACBL ENA -1_+INITIALIZE CHARACTER COUNT_+120*4680_^1_(STA- CT,I_^1MD3_$RTJ* MCHPR_,GET MACRO NAME_^1_%SAN GOTNAM_'THERE IS A MACRO NAME_0120*4680_^1_%ENA $33_*LIBMAC ERROR 03._5120*4680_^1_%JMP- (MERROR)_$LABEL FIELD MISSING OR INCORRECT._#120*4680_^1GOTNAM LDA- CS,I_)IS THE TERMINATOR A BLANK._+120*4680_^1_%SAZ GOODLB_'YES, CONTINUE P€€ROCESSING._,120*4680_^1_%ENA $34_*LIBMAC ERROR 04._5120*4680_^1_%JMP- (MERROR)_$ILLEGAL TERMINATOR ON MACRO NAME_$120*4680_^1GOODLB RTJ- (RECV1)_%CONVERT NAME TO 7 BITS._.120*4680_^1_(RAO- DIRINX,I_^1_(LDA- DIRINX,I_^1_(INA_!-96_*THIS DIR FULL_^1_%SAN NOFUL_(NO_C120*4680_^1_(STA- DIRINX,I_^1_(LDQ- DIRSEC,I_$YES-OUTPUT IT_^1_(RAO- DIRSEC,I_^1_%TRQ A_,GET SECTOR OF NEXT DIREC€€TORY ENTRY_"120*4680_^1_%SUB- SKSCST,I_$HAS THE SKELETON BEEN REACHED._'120*4680_^1_%SAM NOOVFL_'NO_C120*4680_^1_%ENA $44_*YES. LIBMAC ERROR 0D._/120*4680_^1_%JMP- (MERROR)_$TOO MANY MACRO DEFINATIONS._*120*4680_^1NOOVFL LDA* MD1+1_N120*4680_^1_(RTJ- (DKOUT)_"DOUT_?**MSOS 4.0_^1NOFUL LDQ- DIRINX,I_$PUT AWAY MACRO NAME._1120*4680_^1_(LDA- SY,I_^1MD1_$STA+ DIRBUF,Q_^1_(INQ_!1_€€^1_(LDA- SY+1,I_^1_(STA* (MD1+1),Q_^1_(INQ_!1_^1_(LDA- SY+2,I_^1_(STA* (MD1+1),Q_^1_(INQ_!1_^1_(STQ- DIRINX,I_^1_(LDA_!=N$2E20_%PUT PERIOD AS_^1_(STA* (MCON+4) PTBL 1ST FORMAL PARAM_^1_(ENA_!1_^1_(STA- FPRINX,I_$SET FORMAL PARAM INX_^1_(RAO- IG,I_^1_%RTJ- (MCHPKR)_$SLEW OPCODE_:120*4680_^1_(RAO- IG,I_^1_(RTJ* MDSB1_^1_(LDA- FPRINX,I_$NUMB FORMALS_^1_(LDQ- DIRINX,I_$TO D€€IRECTORY_^1_(STA* (MD1+1),Q_^1_(INQ_!2_^1_(LDA- SKWDCT,I_)SKELETON PTR_^1_(STA* (MD1+1),Q_#TO DIRECTORY_^1_(STQ- DIRINX,I_^1_(RAO- LOCSW,I_%SET LOCAL SWITCH_^1GETSKL_!RTJ- (RDIMAG)_!GET NEXT IMAGE_!READIM_,**MSOS 4.0_^1_(RTJ- (GETTOP)_!GET OP CODE GETOP_1**MSOS 4.0_^1_(LDQ- INPADR,I_^1_(STQ- CRPADR,I_$SET TO GET SKEL_^1_(LDQ- LOCSW,I_^1_(SQZ_!MD5-*-1_%LOC PROC DONE_^1_(S€€AP_!2_^1_(STA- NU,I_)ASTERISK_^1_(JMP* MD16_^1_(SUB_!=N$31E3_%LOC IMAGE_^1_(SAN_!1_,NO_^1_(JMP* LOCP_^1MD16_#ENA_!0_^1_(RTJ* LOCRTN_^1_(LDA- NU,I_^1MD5_$SAP_!MD9-*-1_^1_(ENA_!$21_*CHANGE ASTERISK_^1_(RTJ- (NEWPT)_"TO EXCLAIM POINT NEWPUT_+**MSOS 4.0_^1_(ENA_!0_^1_(STA- CT,I_^1_(STA- NC,I_^1_(RTJ- (MV11)_#OUTPUT REST_!MV1_2**MSOS 4.0_^1_(RTJ- (SKELOT)_!OF IMAGE_#SKLOUT_0*€€*MSOS 4.0_^1_(JMP* GETSKL_'AS IT STANDS_^1MD9_$LDA- NU,I_.CONVERTED OPCODE_^1_(SUB_!=N$15A3_*IS IT EMC_^1_(SAN_!1_0NO_^1_(JMP* MD10_-YES-PROCESS IT_^1_(ENA_!-1_^1_(STA- CT,I_^1_(STA- NC,I_)NEW COUNT_^1MD11_#RTJ-_!(CHRPC)_"CHRPIC_<**MSOS 4.0_^1_(SAM_!MD12-*-1_$END OF INP IMAGE_^1_(RTJ- (NEWPT)_"NEWPUT_=**MSOS 4.0_^1_(SAP_!3_^1MD12_#RTJ- (CRPUT1)_!PUT CR IN NEW IMAGE_!CROUT_(**€€MSOS 4.0_^1_(RTJ- (SKELOT)_!SKLOUT_=**MSOS 4.0_^1_(JMP* GETSKL_'GET NEXT SKEL_^1_(INA_!-$27_)APOSTROPHE_^1_(SAZ_!1_,YES_^1_(JMP* MD11_)NO-GET NEXT CHAR_^1_(RTJ- (CHRPC)_"CHRPIC_=**MSOS 4.0_^1_%SAM APOERR_'NO TERMINATION APOSTROPHE._+120*4680_^1_(ALS_!8_^1_(STA- T1,I_)1ST CHAR_^1_(RTJ- (CHRPC)_"CHRPIC_=**MSOS 4.0_^1APOERR SAM APOSER_'NO TERMINATING APOSTROPHE._+120*4680_^1_(€€INA_!-$27_)APOSTROPHE_^1_(SAN_!1_,NO_^1_(INA_!-7_+YES-MAKE 2ND CHAR BLANK_^1_(INA_!$27_^1_(ADD- T1,I_^1_(STA- T1,I_^1_(LDA- CS,I_^1_(INA_!-$27_^1_%SAZ GOODPR_'PARAMETER IS A VALID 1 CHAR. NAME_#120*4680_^1_(RTJ- (CHRPC)_"CHRPIC_=**MSOS 4.0_^1_%SAP GOODPM_'PARAMETER NAME HAS 2 CHARACTERS_%120*4680_^1APOSER ENA $41_*LIBMAC ERROR 0A._5120*4680_^1_%JMP- (MERROR)_$NO TERMINATING €€APOSTROPHE._+120*4680_^1GOODPM INA -$27_)IS THE NEXT CHARACTER AN APOSTROPHE_!120*4680_^1_%SAZ GOODPR_'YES, PARAMETER IS A VALID 2 CHAR. NAME120*4680_^1_%JMP* APOSER_'NO_C120*4680_^1GOODPR LDQ- FPRINX,I_$IS NAME IN THE TABLE_1120*4680_^1MD13_#LDA- T1,I_^1_(SUB* (MCON+4),Q PTBL_^1_%SAZ MD14A_(NAME IS IN TABLE_5120*4680_^1_(INQ_!-1_^1_%SQM MD14_)NAME IS NOT IN THE TABLE._,120*4€€680_^1_(JMP* MD13_^1MD14_!ENA $42_*LIBMAC ERROR 0B._5120*4680_^1_%JMP- (MERROR)_$NO MATCHING PARA. IN PARA. TABLE_$120*4680_^1MD14A TRQ A_,ALL VALID. SAVE IN SKELETON RECORD_!120*4680_^1_(INA_!1_^1_(RTJ- (NEWPT)_"NEWPUT_=**MSOS 4.0_^1_%SAP MD14B_(RECORD OK_<120*4680_^1_%ENA $43_*LIBMAC ERROR 0C._5120*4680_^1_%JMP- (MERROR)_$SKELETON EXCEEDS 72 COLS._,120*4680_^1MD14B JMP* €€MD11_)GET NEXT FIELD_7120*4680_^1MCON_#ADC_!0,0,0,0_^1_(ADC_!PTBL_^1LOCP_#LDA- CS,I_^1_%SAZ LOCP1_(IS THE TERMINATOR A BLANK_,120*4680_^1_%ENA $39_*LIBMAC ERROR 09._5120*4680_^1_%JMP- (MERROR)_$ADDRESS MODIFIER ON LOC DEFINATION_"120*4680_^1LOCP1 LDA- FPRINX,I_$SAVE FORMAL PARAMETER INDEX._)120*4680_^1_(STA- TP1,I_^1_(RTJ* MDSB1_^1_(LDA- FPRINX,I_^1_(SUB- TP1,I_^1_(RTJ* LO€€CRTN_^1_(JMP* GETSKL_^1LOCRTN_!ADC_!0_^1_(LDQ- DIRINX,I_^1_(INQ_!-1_^1_(STA* (MD1+1),Q_#SET NUMB OF LOCS_^1_(ENA_!0_^1_(STA- LOCSW,I_%ZERO LOCSW_^1_(LDQ- FPRINX,I_^1_(INQ_!-1_^1_(STQ- FPRINX,I_^1_(JMP* (LOCRTN)_^1MDSB1_"ADC_!0_^1MD2_$RTJ+ MCHPR_(GET PARAM_^1_%SAN GOTCHR_'A CHARACTER HAS BEEN FOUND_+120*4680_^1_(LDA- SY+1,I_'NULL FIELD_^1_%SAZ INVLAD_'INVALID CHARACTER_41€€20*4680_^1_(LDA- CS,I_^1_(SAN_!1_^1_(JMP* (MDSB1)_%TERMIN BLANK EXIT_^1_(INA_!-1_^1_%SAN INVLAD_'INVALID CHARACTER_4120*4680_^1_(JMP* MD2_^1INVLAD ENA $36_*LIBMAC ERROR 06._5120*4680_^1_%JMP- (MERROR)_$INVALID SPECIAL CHARACTER ON DEFIN._!120*4680_^1GOTCHR LDA- SY+1,I_'ARE THERE MORE THAN 2 CHARACTERS._#120*4680_^1_%SAZ NAMEGD_'NAME IS VALID_8120*4680_^1_%ENA $35_*LIBMAC ERR€€OR 05._5120*4680_^1_%JMP- (MERROR)_$MORE THAN 2 CHARS. ON MAC OR LOC DEF. 120*4680_^1NAMEGD RTJ- (RECV1)_%CONVERT PARAMETER TO 7 BITS_*120*4680_^1_(LDQ- FPRINX,I_^1_(INQ_!-1_^1NXTPRM LDA* (MCON+4),Q_"GET NEXT NAME_8120*4680_^1_(SUB- SY,I_^1_%SAN NODUPE_'THIS IS NOT A DUPLICATE NAME_)120*4680_^1_%ENA $37_*LIBMAC ERROR 07._5120*4680_^1_%JMP- (MERROR)_$DUPLICATE PARAMETER ON MAC O€€R LOC DEF.120*4680_^1NODUPE INQ -1_+CHECK NEXT NAME_6120*4680_^1_(SQM_!1_^1_%JMP* NXTPRM_'GET NEXT NAME_8120*4680_^1_(LDA- CS,I_^1_(INA_!-2_^1_%SAM OKNAME_'THIS IS A VALID NAME_1120*4680_^1_%ENA $38_*LIBMAC ERROR 08_6120*4680_^1_%JMP- (MERROR)_$INVALID SPECIAL CHAR. IN PARA. STRING 120*4680_^1OKNAME LDA- SY,I_)GET NAME FIELD_7120*4680_^1_(LDQ- FPRINX,I_$PUT PARAM ASAY_^1_(STA*€€ (MCON+4),Q PTBL_^1_(RAO- FPRINX,I_^1_(LDA- CS,I_^1_(SAZ_!1_^1_(JMP* MD2_^1_(JMP* (MDSB1)_^1MD10_#RTJ- (MVIMG)_"MOVE IMAGE TO NEW BUFFER MOVIMG_"**MSOS 4.0_^1_(LDA- SKBFSW,I_^1_(SAP_!1_^1_(RTJ- (SKELOT)_!OUTPUT THIS BUFF_%SKLOUT_%**MSOS 4.0_^1_(JMP- (MDEX1)_"MDEX_?**MSOS 4.0_^1STDSCR EQU STDSCR($B3)_^1STDINP EQU STDINP($F9)_^1*_829 CARDS DELETED_5120*4680_^1MOVIMG_!ADC_€€!0_^1_(ENA_!-1_^1_(STA- CT,I_^1_(STA- NC,I_^1_(RTJ* MV1_^1_%RTJ- (SKELOT)_$OUTPUT SKELETON IMAGE_0120*4680_^1_(JMP* (MOVIMG)_^1MV1_$ADC_!0_^1_(RTJ* CHRPIC_^1_(SAM_!1_^1_(RTJ* NEWPUT_^1_(SAM_!1_^1_(JMP* MV1+1_^1_(RTJ* CRPUT_^1_(JMP* (MV1)_^1NEWPUT_!ADC_!0_^1_(STA- CHST,I_^1_(RAO- NC,I_^1_(LDQ- NC,I_^1_(INQ_!-72_^1_(SQN_!2_,BUFFER FULL_^1_(ENA_!-1_^1_(JMP* (NEWPUT)_^1_(I€€NQ_!72_^1_(ENA_!0_^1_(LRS_!1_^1_(SAN_!N2-*-1_^1_(LDA- CHST,I_^1_(ALS_!8_^1_(ADD_!=N$FF_^1_(ADQ- SKLADR,I_F**MSOS 4.0_^1_(JMP* *+5_K**MSOS 4.0_^1N2_%LDA- CHST,I_^1_(EOR_!=N$FF00_^1_(ADQ- SKLADR,I_F**MOS 4.0_^1N1_%AND- ($22),Q_G**MOS 4.0_^1_(STA- ($22),Q_G**MOS 4.0_^1_(LDA- CHST,I_^1_(JMP* (NEWPUT)_^1CHRPIC_!ADC_!0_^1_(LDA- INPADR,I_$SAVE INPUT ADDR_^1_(STA- CHST,I_^1_(LDA€€- CRPADR,I_^1_(STA- INPADR,I_^1_(RAO- AF,I_^1_(RTJ- (CHPKUP)_!CHPU_?**MSOS 4.0_^1_(ENA_!0_^1_(STA- AF,I_^1_(LDA- CHST,I_^1_(STA- INPADR,I_$RESTORE INPUT ADR_^1_(SQM_!5_^1_(SQZ_!4_^1_(TRQ_!A_^1_(STA- CS,I_^1_(INQ_!-$D_^1_(SQN_!1_^1_(ENA_!-1_/SET A NEG FOR CR_^1_(JMP* (CHRPIC)_^1CRPUT_"ADC_!0_^1_(LDQ- NC,I_^1_(INQ_!-72_^1_(SQN_!5_^1_(ENQ_!36_^1CR1_$LDA_!=N$D00_^1_(ADQ- SKL€€ADR,I_F**MSOS 4.0_^1_(STA- ($22),Q_G**MSOS 4.0_^1_(JMP* (CRPUT)_^1_(INQ_!72_^1_(ENA_!0_^1_(LRS_!1_^1_(INQ_!1_^1_(JMP* CR1_^1READIM_!ADC_!0_^1_(RTJ* RIMSB_^1RD3_$LDA- INPADR,I_^1_(STA* RD1_^1_(ENA_!0_^1_(STA- CSW,I_^1_%RTJ- (REQPRO)_$FREAD REQUEST._^1_(NUM_!$4800_I**MSOS 4.0_^1_(ADC_!CO_^1_(ADC_!0_^1_%VFD N3/0,N1/1,N2/2,X10/STDINP_^1_(ADC_!40_^1RD1_$ADC_!0_^1_(LDA- CSW,I_^1€€_(SAN_!1_^1_(JMP* *-2_^1RD2_$ENQ_!0_^1_(LDA* (RD1),Q_G**MSOS 4.0_^1_(SAM_!2_^1_(INQ_!1_^1_(JMP* RD2+1_^1_(LDA_!=N$D00_+PUT CR INTO BUFF_^1_(STA* (RD1),Q_G**MSOS 4.0_^1_(JMP* (READIM)_^1RIMSB_"ADC_!0_^1_(LDA- BUFFSW,I_^1_(TRA_!Q_^1_(QLS_!1_^1_(STQ- BUFFSW,I_^1_(SAM_!3_^1RIM1_#LDA_!=XINBUF_^1_(JMP* *+3_^1_(LDA_!=XINBUF+48_^1_(STA- INPADR,I_^1_(STA* RIM2_J**MSOS 4.0_^1_(ENA_€€!-0_^1_(ENQ_!40_^1_(STA+ 0,Q_K**MSOS 4.0_^1RIM2_#EQU_!RIM2(*-1)_E**MSOS 4.0_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-4_K**MSOS 4.0_^1_(JMP* (RIMSB)_^1RECV_#ADC_!0_^1_(LDA_!=N$2020_^1_(STA- T1+1,I_^1_(STA- T1+2,I_^1_(LDA_!=N$7C0_^1_(AND- SY,I_^1_(ARS_!6_^1_(SAZ_!1_^1_(INA_!$20_^1_(INA_!$20_^1_(ALS_!8_^1_(STA- T1,I_^1_(ENA_!$3F_^1_(AND- SY,I_^1_(INA_!$20_^1_(ADD- T1,I_^1_(STA- T1,€€I_^1_(ENQ_!-2_^1RR_%LDA- SY+3,B_^1_(ADD* RECV+2_^1_(STA- T1+3,B_^1_(INQ_!1_^1_(SQZ_!1_^1_(JMP* RR_^1_(ENQ_!2_^1_(LDA- T1,B_^1_(STA- SY,B_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-4_^1_(JMP* (RECV)_^1CO_%ENQ_!1_^1_(STQ_!CONS+CSW_^1_%RTJ- (REQPRO)_$EXIT REQUEST._^1_(NUM_!$A00_^1SKLOUT_!ADC_!0_^1_(LDA- SKBFSW,I_^1_(TRA_!Q_^1_(QLS_!1_^1_(STQ- SKBFSW,I_^1_(SAM_!SK2-*-1_^1_(ENA_!48_^1_€€(JMP* SK3_^1SK2_$ENQ_!0_^1_(LDA- SKWDCT,I_$GET SECTOR NO_^1_(DVI_!=N96_^1_(ADD- SKSCST,I_^1_(TRA_!Q_^1SK4_$LDA_!=XSKLBUF_$ADDR_^1_(RTJ_!DOUT_^1_(SOV_!0_^1_(LDA- SKWDCT,I_^1_(INA_!96_^1_(SOV_!OVFLOW_^1_(LDQ* OVIND_$CHECK OVERFLOW INDICATOR_^1_%SQZ_#NOOV_^1_(SAM_!NOOV_^1_(JMP* OVERR_^1NOOV_#STA- SKWDCT,I_^1_(RTJ* MINZRO_^1SK3_$ADD* SK4+1_^1_(STA- SKLADR,I_^1_(JMP* (SKLOUT)€€_^1OVFLOW_!RAO* OVIND_$SET OVERFLOW INDICATOR_^1_(JMP* NOOV_^1OVIND_"NUM_!0_^1OVERR ENA $45_*LIBMAC ERROR 0E._5120*4680_^1_%JMP- (MERROR)_$MORE THAN 65K OF SKELETON DEFINED_#120*4680_^1MINZRO_!ADC_!0_^1_(ENQ_!40_^1_(ENA_!-0_^1_(STA_!SKLBUF,Q_^1_(STA_!SKLBUF+48,Q_^1_(INQ_!-1_^1_(SQM_!1_^1_(JMP* *-6_^1_(JMP* (MINZRO)_^1MER_"EOR =N$3000_%ADD 0 TO ERROR CODE_2120*4680_^1_%STA* E€€RRCOD_'STORE ERROR IN PRINTOUT_.120*4680_^1_%ENQ 8_,PRINT 8 WORDS._7120*4680_^1_(LDA_!=XERMSG_^1_(RTJ* TYPE_^1_(ENQ_!0_^1_%ENQ 36_+OUTPUT CARD THAT CAUSES ERROR_(120*4680_^1_(LDA- INPADR,I_^1_(RTJ* TYPE_^1_%RTJ- (REQPRO)_$EXIT REQUEST._^1_(ADC_!$A00_^1TYPE_#ADC_!0_^1_(STA* TYP3_^1_(STQ* TYP2_^1_%RTJ- (REQPRO)_$FWRITE REQUEST._^1_(NUM_!$4C00_I**MSOS 4.0_^1_(ADC_!0_^1_(ADC_!0_€€^1_%VFD N3/0,N1/1,N2/2,X10/STDOCD_^1TYP2_#ADC_!0_^1TYP3_#ADC_!0_^1_(JMP* (TYPE)_^1ERMSG ALF *, LIBMAC ERROR *_B120*4680_^1ERRCOD NUM $3030_N120*4680_^1DOUT_#ADC_!0_^1_(STA* DISKWR+6_^1_(STQ* DISKWR+8_^1_(ENA_!0_^1_(STA- CSW,I_^1DISKWR RTJ- (REQPRO)_$FWRITE REQUEST._^1_(NUM_!$4C00_I**MSOS 4.0_^1_(ADC_!CO_^1_(ADC_!0_^1_%VFD N3/0,N1/0,N2/2,X10/STDSCR_^1_(NUM_!96_^1_(ADC_!0_^1€€_(ADC_!0_^1_(ADC_!0_^1_(LDA- CSW,I_^1_(SAN_!1_^1_(JMP* *-2_^1_(JMP* (DOUT)_^1DIN_$ADC_!0_^1_(STA* DISKRD+6_^1_(STQ* DISKRD+8_^1_(ENA_!0_^1_(STA- CSW,I_^1DISKRD RTJ- (REQPRO)_$FREAD REQUEST._^1_(NUM_!$4800_I**MSOS 4.0_^1_(ADC_!CO_^1_(ADC_!0_^1_%VFD N3/0,N1/0,N2/2,X10/STDSCR_^1_(NUM_!96_^1_(ADC_!0_^1_(ADC_!0_^1_(ADC_!0_^1_(LDA- CSW,I_^1_(SAN_!1_^1_(JMP* *-2_^1_(JMP* (DIN)_^€€1EOF_$ADC_!0_M**MSOS 4.0_^1_(ENA_!0_M**MSOS 4.0_^1_(STA- CSW,I_I**MSOS 4.0_^1WRTEOF_!RTJ- (REQPRO)_!MOTION REQUEST TO WRITE E-O-F_%**MSOS 4.0_^1_(NUM_!$5C00_I**MSOS 4.0_^1_(ADC_!CO_L**MSOS 4.0_^1_(NUM_!0_M**MSOS 4.0_^1_(VFD_!N4/0,N2/2,X10/STDOUT_:**MSOS 4.0_^1_(NUM_!$2000_I**MSOS 4.0_^1_(LDA- CSW,I_I**MSOS 4.0_^1_(SAN_!1_M**MSOS 4.0_^1_(JMP* *-2_K**MSOS 4.0_^1_(JMP* (EOF)_I**M€€SOS 4.0_^1_(END_!LIBMAC_^__ €€MACROS CSY/ A12 €€1O0S_"MAC_!AD,RA,RB,OP,M_^1_%O1'RA''.' 'AD','RB','OP','M'_^1_%EMC_]_^1O11_"MAC_!AD,RB,OP,M_^1_%O0T'.' 'AD',1,'RB','OP','M'_^1_%EMC_]_^1O12_"MAC_!AD,RB,OP,M_^1_%O0T'.' 'AD',2,'RB','OP','M'_^1_%EMC_]_^1O13_"MAC_!AD,RB,OP,M_^1_%O0T'.' 'AD',3,'RB','OP','M'_^1_%EMC_]_^1O14_"MAC_!AD,RB,OP,M_^1_%O0T'.' 'AD',4,'RB','OP','M'_^1_%EMC_]_^1O1Q_"MAC_!AD,RB,OP,M_^1_%O0T'.' 'AD',5,'RB','OP','M'_^€€1_%EMC_]_^1O1A_"MAC_!AD,RB,OP,M_^1_%O0T'.' 'AD',6,'RB','OP','M'_^1_%EMC_]_^1O1I_"MAC_!AD,RB,OP,M_^1_%O0T'.' 'AD',7,'RB','OP','M'_^1_%EMC_]_^1O1_#MAC_!AD,RB,OP,M_^1_%O0T'.' 'AD',0,'RB','OP','M'_^1_%EMC_]_^1O0T_"MAC_!AD,RA,RB,OP,M_^1_%IFC_!====='AD',EQ,======_^1_%VFD N8/4,N2/0,X3/'RA',X3/'RB'_^1_%VFD_!N4/'OP',N4/'M',N8/0_^1_)PCO_"2_^1_%VFD X16/'AD'_^1I0_#IFC_!A,NE,A_^1_%EIF_]_^1I5_€€#IFC_!'.',EQ,_^1_%IFC_!((((('AD',EQ,((((((_^1_%VFD N8/4,N1/1,N1/1,X3/'RA',X3/'RB'_^1I1_#IFC A,NE,A_^1_%EIF_]_^1_%VFD X8/4,X1/1,X1/0,X3/'RA',X3/'RB'_^1_%EIF I1_^1_%VFD X4/'OP',X4/'M'_^1_)PCO_"2_^1_%VFD_!X16/'AD'-*-2_^1I0_#IFC A,NE,A_^1_%EIF_!I5_^1I6_#IFC_!'.',EQ,*_^1_%IFC_!((((('AD',EQ,((((((_^1_%VFD N8/4,N1/1,N1/1,X3/'RA',X3/'RB'_^1I2_#IFC A,NE,A_^1_%EIF_]_^1_%VFD X8/4,X1/€€1,X1/0,X3/'RA',X3/'RB'_^1_%EIF_!I2_^1_)IFR_"'AD'-*,LT,128_^1_)IFR_"'AD'-*,GT,-128_^1_)PCO_"1_^1_%VFD_!X4/'OP',X4/'M',X8/'AD'-*-1_^1I0_#IFC A,NE,A_^1_%EIF_!I6_^1I7_#IFC_!'.',EQ,+_^1_%VFD X8/4,X1/0,X1/1,X3/'RA',X3/'RB'_^1_%VFD X4/'OP',X4/'M'_^1_)PCO_"2_^1_%IFC_!((((('AD',EQ,((((((_^1_%VFD_!N1/1,X15/'AD'_^1I3_#IFC A,NE,A_^1_%EIF_]_^1_%VFD_!X1/0,X15/'AD'_^1_%EIF I3_^1I0_#IFC A,NE€€,A_^1_%EIF_!I7_^1I8_#IFC_!'.',EQ,-_^1_)IFR_"'AD',LT,256_^1_%IFC_!((((('AD',EQ,((((((_^1_%VFD N8/4,N1/0,N1/1,X3/'RA',X3/'RB'_^1I4_#IFC A,NE,A_^1_%EIF_]_^1_%VFD X8/4,X1/0,X1/0,X3/'RA',X3/'RB'_^1_%EIF I4_^1_)PCO_"1_^1_%VFD X4/'OP',X4/'M',X8/'AD'_^1I0_#IFC_!A,NE,A_^1_%EIF_!I8_^1_%EIF I0_^1_)PCO_"0_^1_%EMC_]_^1O0G_"MAC_!W,S,L,RA,OP_^1_)IFR_"'S',LT,16_^1_)IFR_"'S',GT,-1_^1_)IFR_"'L€€',GT,0_^1_(IFR_%'S'+2,GT,'L'_^1I5_#IFC_!'.',EQ,_^1_%IFC_!((((('W',EQ,((((((_^1_%VFD N8/5,N1/1,N1/1,X3/'RA',X3/'OP'_^1I1_#IFC A,NE,A_^1_%EIF_]_^1_%VFD_!N8/5,X1/1,X1/0,X3/'RA',X3/'OP'_^1_%EIF I1_^1_%VFD X4/'S',X4/'L'-1_^1_)PCO_"2_^1_%VFD_!X16/'W'-*-2_^1I0_#IFC_!A,NE,A_^1_%EIF_!I5_^1I6_#IFC_!'.',EQ,*_^1_%IFC_!((((('W',EQ,((((((_^1_%VFD N8/5,N1/1,N1/1,X3/'RA',X3/'OP'_^1I2_#IFC A,€€NE,A_^1_%EIF_]_^1_%VFD_!N8/5,X1/1,X1/0,X3/'RA',X3/'OP'_^1_%EIF_!I2_^1_)IFR_"'W'-*,LT,128_^1_)IFR_"'W'-*,GT,-128_^1_)PCO_"1_^1_%VFD X4/'S',X4/'L'-1,X8/'W'-*-1_^1I0_#IFC_!A,NE,A_^1_%EIF_!I6_^1I7_#IFC_!'.',EQ,+_^1_%VFD_!N8/5,X1/0,X1/1,X3/'RA',X3/'OP'_^1_%VFD X4/'S',X4/'L'-1_^1_%IFC_!((((('W',EQ,((((((_^1_)PCO_"2_^1_%VFD N1/1,X15/'W'_^1I3_#IFC A,NE,A_^1_%EIF_]_^1_%VFD_!X1/0,X15/'W'€€_^1_%EIF_!I3_^1I0_#IFC_!A,NE,A_^1_%EIF_!I7_^1I8_#IFC_!'.',EQ,-_^1_%IFC_!((((('W',EQ,((((((_^1_%VFD_!N8/5,X1/0,X1/1,X3/'RA',X3/'OP'_^1I4_#IFC A,NE,A_^1_%EIF_]_^1_%VFD_!N8/5,X1/0,X1/0,X3/'RA',X3/'OP'_^1_%EIF_!I4_^1_%VFD X4/'S',X4/'L'-1,X8/'W'_^1I0_#IFC_!A,NE,A_^1_%EIF_!I8_^1_%EIF_!I0_^1_)PCO_"0_^1_%EMC_]_^1O0OIS MAC_!MN,OP,RA,RB_^1_)VFD_"X8/'MN',X3/'RA',X2/'OP',X3/'RB'_^1_%EMC_]_^€€1O0OSRX MAC OP,RA,A_^1_)IFR_"'A',LT,16_^1_)IFR_"'A',GT,-16_^1_%VFD_!N8/0,X2/'RA',X2/'OP',X4/'A'_^1_%EMC_]_^1O0OIR MAC_!MN,OP,RA,RB_^1_%O4'RB' 'MN','OP','RA'_^1_%EMC_]_^1O4_#MAC_!MN,OP,RA_^1_%O0OIS 'MN','OP','RA',0_^1_%EMC_]_^1O41_"MAC_!MN,OP,RA_^1_%O0OIS 'MN','OP','RA',1_^1_%EMC_]_^1O42_"MAC_!MN,OP,RA_^1_%O0OIS 'MN','OP','RA',2_^1_%EMC_]_^1O43_"MAC_!MN,OP,RA_^1_%O0OIS 'MN','OP','€€RA',3_^1_%EMC_]_^1O44_"MAC_!MN,OP,RA_^1_%O0OIS 'MN','OP','RA',4_^1_%EMC_]_^1O4Q_"MAC_!MN,OP,RA_^1_%O0OIS 'MN','OP','RA',5_^1_%EMC_]_^1O4A_"MAC_!MN,OP,RA_^1_%O0OIS 'MN','OP','RA',6_^1_%EMC_]_^1O4I_"MAC_!MN,OP,RA_^1_%O0OIS 'MN','OP','RA',7_^1_%EMC_]_^1O0F_"MAC_!W,S,L,RA,OP_^1_%O3'RA''.' 'W','S','L','OP'_^1_%EMC_]_^1O3_#MAC_!W,S,L,OP_^1_%O0G'.' 'W','S','L',0,'OP'_^1_%EMC_]_^1O31_"MAC_€€!W,S,L,OP_^1_%O0G'.' 'W','S','L',1,'OP'_^1_%EMC_]_^1O32_"MAC_!W,S,L,OP_^1_%O0G'.' 'W','S','L',2,'OP'_^1_%EMC_]_^1O33_"MAC_!W,S,L,OP_^1_%O0G'.' 'W','S','L',3,'OP'_^1_%EMC_]_^1O34_"MAC_!W,S,L,OP_^1_%O0G'.' 'W','S','L',4,'OP'_^1_%EMC_]_^1O3Q_"MAC_!W,S,L,OP_^1_%O0G'.' 'W','S','L',5,'OP'_^1_%EMC_]_^1O3A_"MAC_!W,S,L,OP_^1_%O0G'.' 'W','S','L',6,'OP'_^1_%EMC_]_^1O3I_"MAC_!W,S,L,OP_^1_%O0G'€€.' 'W','S','L',7,'OP'_^1_%EMC_]_^1O2_#MAC_!AD,RA,OP,M_^1_%O1'RA''.' 'AD',0,'OP','M'_^1_%EMC_]_^1O21_"MAC_!AD,RA,OP,M_^1_%O1'RA''.' 'AD',1,'OP','M'_^1_%EMC_]_^1O22_"MAC_!AD,RA,OP,M_^1_%O1'RA''.' 'AD',2,'OP','M'_^1_%EMC_]_^1O23_"MAC_!AD,RA,OP,M_^1_%O1'RA''.' 'AD',3,'OP','M'_^1_%EMC_]_^1O24_"MAC_!AD,RA,OP,M_^1_%O1'RA''.' 'AD',4,'OP','M'_^1_%EMC_]_^1O2Q_"MAC_!AD,RA,OP,M_^1_%O1'RA''.' '€€AD',5,'OP','M'_^1_%EMC_]_^1O2A_"MAC_!AD,RA,OP,M_^1_%O1'RA''.' 'AD',6,'OP','M'_^1_%EMC_]_^1O2I_"MAC_!AD,RA,OP,M_^1_%O1'RA''.' 'AD',7,'OP','M'_^1_%EMC_]_^1SJI_"MAC AD,RA_^1_%O1'RA''.' 'AD',7,5,0_^1_%EMC_]_^1SJ1_"MAC AD,RA_^1_%O1'RA''.' 'AD',1,5,0_^1_%EMC_]_^1SJ2_"MAC AD,RA_^1_%O1'RA''.' 'AD',2,5,0_^1_%EMC_]_^1SJ3_"MAC AD,RA_^1_%O1'RA''.' 'AD',3,5,0_^1_%EMC_]_^1SJ4_"MAC AD,RA_^1_€€%O1'RA''.' 'AD',4,5,0_^1_%EMC_]_^1SJQ_"MAC AD,RA_^1_%O1'RA''.' 'AD',5,5,0_^1_%EMC_]_^1SJA_"MAC AD,RA_^1_%O1'RA''.' 'AD',6,5,0_^1_%EMC_]_^1SJE_"MAC AD,RA_^1_%O1'RA''.' 'AD',0,5,0_^1_%EMC_]_^1ARI_"MAC AD,RA_^1_%O1'RA''.' 'AD',7,8,0_^1_%EMC_]_^1AR1_"MAC AD,RA_^1_%O1'RA''.' 'AD',1,8,0_^1_%EMC_]_^1AR2_"MAC AD,RA_^1_%O1'RA''.' 'AD',2,8,0_^1_%EMC_]_^1AR3_"MAC AD,RA_^1_%O1'RA''.' 'A€€D',3,8,0_^1_%EMC_]_^1AR4_"MAC AD,RA_^1_%O1'RA''.' 'AD',4,8,0_^1_%EMC_]_^1ARQ_"MAC AD,RA_^1_%O1'RA''.' 'AD',5,8,0_^1_%EMC_]_^1ARA_"MAC AD,RA_^1_%O1'RA''.' 'AD',6,8,0_^1_%EMC_]_^1SBI_"MAC AD,RA_^1_%O1'RA''.' 'AD',7,9,0_^1_%EMC_]_^1SB1_"MAC AD,RA_^1_%O1'RA''.' 'AD',1,9,0_^1_%EMC_]_^1SB2_"MAC AD,RA_^1_%O1'RA''.' 'AD',2,9,0_^1_%EMC_]_^1SB3_"MAC AD,RA_^1_%O1'RA''.' 'AD',3,9,0_^1_%€€EMC_]_^1SB4_"MAC AD,RA_^1_%O1'RA''.' 'AD',4,9,0_^1_%EMC_]_^1SBQ_"MAC AD,RA_^1_%O1'RA''.' 'AD',5,9,0_^1_%EMC_]_^1SBA_"MAC AD,RA_^1_%O1'RA''.' 'AD',6,9,0_^1_%EMC_]_^1ANI_"MAC AD,RA_^1_%O1'RA''.' 'AD',7,10,0_^1_%EMC_]_^1AN1_"MAC AD,RA_^1_%O1'RA''.' 'AD',1,10,0_^1_%EMC_]_^1AN2_"MAC AD,RA_^1_%O1'RA''.' 'AD',2,10,0_^1_%EMC_]_^1AN3_"MAC AD,RA_^1_%O1'RA''.' 'AD',3,10,0_^1_%EMC_]_^1A€€N4_"MAC AD,RA_^1_%O1'RA''.' 'AD',4,10,0_^1_%EMC_]_^1ANQ_"MAC AD,RA_^1_%O1'RA''.' 'AD',5,10,0_^1_%EMC_]_^1ANA_"MAC AD,RA_^1_%O1'RA''.' 'AD',6,10,0_^1_%EMC_]_^1ORI_"MAC AD,RA_^1_%O1'RA''.' 'AD',7,13,0_^1_%EMC_]_^1OR1_"MAC AD,RA_^1_%O1'RA''.' 'AD',1,13,0_^1_%EMC_]_^1OR2_"MAC AD,RA_^1_%O1'RA''.' 'AD',2,13,0_^1_%EMC_]_^1OR3_"MAC AD,RA_^1_%O1'RA''.' 'AD',3,13,0_^1_%EMC_]_^1OR4_"MA€€C AD,RA_^1_%O1'RA''.' 'AD',4,13,0_^1_%EMC_]_^1ORQ_"MAC AD,RA_^1_%O1'RA''.' 'AD',5,13,0_^1_%EMC_]_^1ORA_"MAC AD,RA_^1_%O1'RA''.' 'AD',6,13,0_^1_%EMC_]_^1LRI_"MAC AD,RA_^1_%O1'RA''.' 'AD',7,12,0_^1_%EMC_]_^1LR1_"MAC_!AD,RA_^1_%O1'RA''.' 'AD',1,12,0_^1_%EMC_]_^1LR2_"MAC AD,RA_^1_%O1'RA''.' 'AD',2,12,0_^1_%EMC_]_^1LR3_"MAC AD,RA_^1_%O1'RA''.' 'AD',3,12,0_^1_%EMC_]_^1LR4_"MAC AD,€€RA_^1_%O1'RA''.' 'AD',4,12,0_^1_%EMC_]_^1LRQ_"MAC AD,RA_^1_%O1'RA''.' 'AD',5,12,0_^1_%EMC_]_^1LRA_"MAC AD,RA_^1_%O1'RA''.' 'AD',6,12,0_^1_%EMC_]_^1SRI_"MAC AD,RA_^1_%O1'RA''.' 'AD',7,12,1_^1_%EMC_]_^1SR1_"MAC AD,RA_^1_%O1'RA''.' 'AD',1,12,1_^1_%EMC_]_^1SR2_"MAC AD,RA_^1_%O1'RA''.' 'AD',2,12,1_^1_%EMC_]_^1SR3_"MAC AD,RA_^1_%O1'RA''.' 'AD',3,12,1_^1_%EMC_]_^1SR4_"MAC AD,RA_^1_€€%O1'RA''.' 'AD',4,12,1_^1_%EMC_]_^1SRQ_"MAC AD,RA_^1_%O1'RA''.' 'AD',5,12,1_^1_%EMC_]_^1SRA_"MAC AD,RA_^1_%O1'RA''.' 'AD',6,12,1_^1_%EMC_]_^1CIE_"MAC_!AD,RA_^1_%O1'RA''.' 'AD',7,14,0_^1_%EMC_]_^1C1E_"MAC AD,RA_^1_%O1'RA''.' 'AD',1,14,0_^1_%EMC_]_^1C2E_"MAC AD,RA_^1_%O1'RA''.' 'AD',2,14,0_^1_%EMC_]_^1C3E_"MAC AD,RA_^1_%O1'RA''.' 'AD',3,14,0_^1_%EMC_]_^1C4E_"MAC AD,RA_^1_%O1'RA€€''.' 'AD',4,14,0_^1_%EMC_]_^1CQE_"MAC AD,RA_^1_%O1'RA''.' 'AD',5,14,0_^1_%EMC_]_^1CAE_"MAC AD,RA_^1_%O1'RA''.' 'AD',6,14,0_^1_%EMC_]_^1AMI_"MAC AD,RA_^1_%O1'RA''.' 'AD',7,10,1_^1_%EMC_]_^1AM1_"MAC AD,RA_^1_%O1'RA''.' 'AD',1,10,1_^1_%EMC_]_^1AM2_"MAC AD,RA_^1_%O1'RA''.' 'AD',2,10,1_^1_%EMC_]_^1AM3_"MAC AD,RA_^1_%O1'RA''.' 'AD',3,10,1_^1_%EMC_]_^1AM4_"MAC AD,RA_^1_%O1'RA''.' '€€AD',4,10,1_^1_%EMC_]_^1AMQ_"MAC AD,RA_^1_%O1'RA''.' 'AD',5,10,1_^1_%EMC_]_^1AMA_"MAC AD,RA_^1_%O1'RA''.' 'AD',6,10,1_^1_%EMC_]_^1OMI_"MAC AD,RA_^1_%O1'RA''.' 'AD',7,13,1_^1_%EMC_]_^1OM1_"MAC AD,RA_^1_%O1'RA''.' 'AD',1,13,1_^1_%EMC_]_^1OM2_"MAC AD,RA_^1_%O1'RA''.' 'AD',2,13,1_^1_%EMC_]_^1OM3_"MAC AD,RA_^1_%O1'RA''.' 'AD',3,13,1_^1_%EMC_]_^1OM4_"MAC AD,RA_^1_%O1'RA''.' 'AD',4,€€13,1_^1_%EMC_]_^1OMQ_"MAC AD,RA_^1_%O1'RA''.' 'AD',5,13,1_^1_%EMC_]_^1OMA_"MAC AD,RA_^1_%O1'RA''.' 'AD',6,13,1_^1_%EMC_]_^1AS1_"MAC_%AD,RA_^1_%01'RA''.' 'AD',1,8,1_^1_%EMC_]_^1AS2_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',2,8,1_^1_%EMC_]_^1AS3_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',3,8,1_^1_%EMC_]_^1AS4_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',4,8,1_^1_%EMC_]_^1ASQ_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',5,8,1_^1_%EM€€C_]_^1ASA_"MAC_!AD,RA_^1_%O1'RA''.' 'AD',6,8,1_^1_%EMC_]_^1ASI_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',7,8,1_^1_%EMC_]_^1SM1_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',1,9,1_^1_%EMC_]_^1SM2_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',2,9,1_^1_%EMC_]_^1SM3_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',3,9,1_^1_%EMC_]_^1SM4_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',4,9,1_^1_%EMC_]_^1SMQ_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',5,9,1_^1_%EMC_]_^1SMA_"MA€€C_%AD,RA_^1_%O1'RA''.' 'AD',6,9,1_^1_%EMC_]_^1SMI_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',7,9,1_^1_%EMC_]_^1ER1_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',1,11,0_^1_%EMC_]_^1ER2_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',2,11,0_^1_%EMC_]_^1ER3_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',3,11,0_^1_%EMC_]_^1ER4_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',4,11,0_^1_%EMC_]_^1ERQ_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',5,11,0_^1_%EMC_]_^1ERA_"MAC_%AD,RA€€_^1_%O1'RA''.' 'AD',6,11,0_^1_%EMC_]_^1ERI_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',7,11,0_^1_%EMC_]_^1EM1_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',1,11,1_^1_%EMC_]_^1EM2_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',2,11,1_^1_%EMC_]_^1EM3_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',3,11,1_^1_%EMC_]_^1EM4_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',4,11,1_^1_%EMC_]_^1EMQ_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',5,11,1_^1_%EMC_]_^1EMA_"MAC_%AD,RA_^1_%€€O1'RA''.' 'AD',6,11,1_^1_%EMC_]_^1EMI_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',7,11,1_^1_%EMC_]_^1C1N_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',1,14,1_^1_%EMC_]_^1C2N_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',2,14,1_^1_%EMC_]_^1C3N_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',3,14,1_^1_%EMC_]_^1C4N_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',4,14,1_^1_%EMC_]_^1CQN_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',5,14,1_^1_%EMC_]_^1CAN_"MAC_%AD,RA_^1_%O1'RA'€€'.' 'AD',6,14,1_^1_%EMC_]_^1CIN_"MAC_%AD,RA_^1_%O1'RA''.' 'AD',7,14,1_^1_%EMC_]_^1CCN_"MAC_%AD,RB,RA_^1_%O2'RB''.' 'AD','RA',14,3_^1_%EMC_]_^1LCA_"MAC_!AD,RB,RA_^1_%O2'RB''.' 'AD','RA',12,2_^1_%EMC_]_^1SCA_"MAC_!AD,RB,RA_^1_%O2'RB''.' 'AD','RA',12,3_^1_%EMC_]_^1CCE_"MAC_!AD,RB,RA_^1_%O2'RB''.' 'AD','RA',14,2_^1_%EMC_]_^1XF1_"MAC RB_^1_%O0OIR 7,0,1,'RB'_^1_%EMC_]_^1XF2_"MAC RB_^1_€€%O0OIR 7,0,2,'RB'_^1_%EMC_]_^1XF3_"MAC RB_^1_%O0OIR 7,0,3,'RB'_^1_%EMC_]_^1XF4_"MAC RB_^1_%O0OIR 7,0,4,'RB'_^1_%EMC_]_^1XFQ_"MAC RB_^1_%O0OIR 7,0,5,'RB'_^1_%EMC_]_^1XFA_"MAC RB_^1_%O0OIR 7,0,6,'RB'_^1_%EMC_]_^1XFI_"MAC RB_^1_%O0OIR 7,0,7,'RB'_^1_%EMC_]_^1S1Z_!MAC_!A_^1_%O0OSRX 0,1,'A'_^1_!EMC_]_^1S2Z_!MAC_!A_^1_%O0OSRX 0,2,'A'_^1_!EMC_]_^1S3Z_!MAC A_^1_%O0OSRX 0,3,'A'_^1_!EMC_€€]_^1S4Z_!MAC_!A_^1_%O0OSRX 0,0,'A'_^1_!EMC_]_^1S1N_!MAC_!A_^1_%O0OSRX 1,1,'A'_^1_!EMC_]_^1S2N_!MAC A_^1_%O0OSRX 1,2,'A'_^1_!EMC_]_^1S3N_!MAC_!A_^1_%O0OSRX 1,3,'A'_^1_!EMC_]_^1S4N_!MAC_!A_^1_%O0OSRX 1,0,'A'_^1_!EMC_]_^1S1M_!MAC A_^1_%O0OSRX 3,1,'A'_^1_!EMC_]_^1S2M_!MAC_!A_^1_%O0OSRX 3,2,'A'_^1_!EMC_]_^1S3M_!MAC_!A_^1_%O0OSRX 3,3,'A'_^1_!EMC_]_^1S4M_!MAC_!A_^1_%O0OSRX 3,0,'A'_^1_!EM€€C_]_^1S1P_!MAC A_^1_%O0OSRX 2,1,'A'_^1_!EMC_]_^1S2P_!MAC_!A_^1_%O0OSRX 2,2,'A'_^1_!EMC_]_^1S3P_!MAC_!A_^1_%O0OSRX 2,3,'A'_^1_!EMC_]_^1S4P_!MAC_!A_^1_%O0OSRX 2,0,'A'_^1_!EMC_]_^1LFA_"MAC W,S,L,RA_^1_%O3'RA''.' 'W','S','L',4_^1_%EMC_]_^1SFA_"MAC W,S,L,RA_^1_%O3'RA''.' 'W','S','L',5_^1_%EMC_]_^1SFZ_"MAC W,S,L,RA_^1_%O3'RA''.' 'W','S','L',2_^1_%EMC_]_^1SFN_"MAC W,S,L,RA_^1_%O3'RA'€€'.' 'W','S','L',3_^1_%EMC_]_^1CLF_"MAC W,S,L,RA_^1_%O3'RA''.' 'W','S','L',6_^1_%EMC_]_^1SEF_"MAC W,S,L,RA_^1_%O3'RA''.' 'W','S','L',7_^1_%EMC_]_^1D1P_"MAC SK_^1_%O0OSB 'SK',1_^1_%EMC_]_^1D2P_"MAC SK_^1_%O0OSB 'SK',2_^1_%EMC_]_^1D3P_"MAC SK_^1_%O0OSB 'SK',3_^1_%EMC_]_^1D4P_"MAC SK_^1_%O0OSB 'SK',4_^1_%EMC_]_^1DQP_"MAC SK_^1_%O0OSB 'SK',5_^1_%EMC_]_^1DAP_"MAC SK_^1_%O0OSB 'SK€€',6_^1_%EMC_]_^1DIP_"MAC SK_^1_%O0OSB 'SK',7_^1_%EMC_]_^1O0OSB MAC_!SK,RA_^1_)IFR_"'SK',GT,-16_^1_)IFR_"'SK',LT,16_^1_%IFA_!'SK',LT,0_^1_%VFD_!X8/6,X3/'RA',X1/0,X4/-'SK'_^1I0_#IFC_!A,NE,A_^1_%EIF_]_^1_%VFD_!X8/6,X3/'RA',X1/0,X4/'SK'_^1_%EIF_!I0_^1_%EMC_]_^1O00_"MAC_!RA,OP_^1_%IFC 'RA',EQ,_^1_%O0EX_^1I0_#IFC A,NE,A_^1_%EIF_]_^1_%IFC 'RA',EQ,I_^1_%O01_!7,'OP'_^1I0_#IFC_!A,NE,A_^€€1_%EIF_]_^1_%IFC 'RA',EQ,A_^1_%O01_!6,'OP'_^1I0_#IFC_!A,NE,A_^1_%EIF_]_^1_%IFC_!'RA',EQ,Q_^1_%O01_!5,'OP'_^1I0_#IFC_!A,NE,A_^1_%EIF_]_^1_%IFA 'RA',GT,4_^1_%O0EX_^1I0_#IFC A,NE,A_^1_%EIF_]_^1_%IFA 'RA',LT,1_^1_%O0EX_^1I0_#IFC A,NE,A_^1_%EIF_]_^1_%O01_!'RA','OP'_^1_%EIF I0_^1_%EMC_]_^1O01_"MAC_!RA,OP_^1_%VFD_!X8/11,X3/'RA',X1/0,X4/'OP'_^1_%EMC_]_^1SIO_"MAC_!X_^1_%VFD_!X8/11,X4/€€0,X4/4_^1_%EMC_]_^1LUB_"MAC_!RA_^1_%O00_!'RA',0_^1_%EMC_]_^1LLB_"MAC RA_^1_%O00_!'RA',1_^1_%EMC_]_^1EMS_"MAC_!RA_^1_%O00_!'RA',2_^1_%EMC_]_^1WPR_%MAC_"RA_^1_)O00_"'RA',3_^1_)EMC_^1RPR_%MAC_"RA_^1_)O00_"'RA',4_^1_)EMC_^1ECC_%MAC_"RA_^1_)O00_"'RA',5_^1_)EMC_^1ASC_%MAC_"X_^1_)VFD_"N8/11,N8/10_^1_)EMC_^1APM_%MAC_"X_^1_)VFD_"N8/11,N8/11_^1_)EMC_^1PM0_%MAC_"X_^1_)VFD_"N8/11,N8/12_^1_)EM€€C_^1PM1_%MAC_"X_^1_)VFD_"N8/11,N8/13_^1_)EMC_^1O0EX_!MAC_!X_^1_%VFD_!N16/0_^1_%VFD_!N16/0,N16/0_^1_%EMC_]_^1GPE_"MAC_!X_^1_%VFD_!N8/11,N8/8_^1_%EMC_]_^1GPO_"MAC_!X_^1_%VFD_!N8/11,N8/9_^1_%EMC_]_^1LRG_"MAC_!AD_^1_%VFD_!X8/11,X4/0,X4/2_^1_)PCO_"1_^1_%VFD X1/0,X15/'AD'_^1_)PCO_"0_^1_%EMC_]_^1SRG_"MAC_!AD_^1_%VFD_!X8/11,X4/0,X4/3_^1_)PCO_"1_^1_%VFD X1/0,X15/'AD'_^1_)PCO_"0_^1_%EMC_]_€€^1LMM_%MAC_"X_^1_)VFD_"N8/11,N8/1_^1_)EMC_^1CBP_%MAC_"X_^1_)VFD_"N8/11,N8/7_^1_)EMC_^1DMI_%MAC_"X_^1_)VFD_"N8/11,N8/6_^1_)EMC_^1SPS_%MAC_"X_^1_)VFD_"N8/11,N8/5_^1_)EMC_^1VOLA_!MAC A,B_^1_%IIN 0_^1_%RTJ- ($BB)_(VOLATILE ASSIGN_^1_%ADC 'A'+3_^1_%LDA* 'B'_^1_%STA- 3,I_*SAVE RETURN_^1_%EIN 0_^1_%EMC_]_^1VOLR_!MAC A,B_^1_%IIN 0_^1_%LDA- 3,I_*RETRIEVE RETURN FROM VOLATILE_^1_%IFC €€'B',NE,_^1_%INA 'B'_*BUMP RETURN BY 'B' IF SPECIFIED_^1_%EIF_]_^1_%STA'.' 'A'_(RESTORE RETURN ADDRESS_^1_%RTJ- ($BA)_(RELEASE VOLATILE_^1_%EIN 0_^1_%JMP'.' ('A')_%RETURN_^1_%EMC_]_^1HEXDEC MAC A,B_^1_%EXT HEXDEC_^1_%RTJ+ HEXDEC_'HEX TO ASCII DECIMAL CONV._^1_%ADC'.' 'A'_(VARIABLE ADDRESS 'A'_^1_%ADC'.' 'B'_(BUFFER ADDRESS_!'B' 3 WORDS_^1_%EMC_]_^1HEXASC MAC A,B_^1_%EXT HEXAS€€C_^1_%RTJ+ HEXASC_'HEX TO ASCII CONV._^1_%ADC'.' 'A'_(VARIABLE ADDRESS 'A'_^1_%ADC'.' 'B'_(BUFFER ADDRESS_!'B' 2 WORDS_^1_%EMC_]_^1ENCODE MAC A,B,C,D,E_^1_%EXT ENCODE_^1_%RTJ+ ENCODE_'ENCODE FOR OUTPUT_^1_%ADC'.' 'A'_(OUTPUT BUF_^1_%ADC'.' 'B'_(FORMAT STATEMENT_^1_%ADC'.' 'C'_(NO VARIABLES_^1_%ADC'.' 'D'_(VARIABLE LIST_^1_%IFC 'E',NE,_^1_%SAZ 2_^1_%JMP 'E'_^1_%EIF_]_^1_%EMC_]€€_^1DECODE MAC A,B,C,D,E_^1_%EXT DECODE_^1_%RTJ+ DECODE_'DECODE INPUT_^1_%ADC'.' 'A'_(INPUT BUFFER_^1_%ADC'.' 'B'_(GORMAT STATEMENT_^1_%ADC'.' 'C'_(NUMBER VARIABLES_^1_%ADC'.' 'D'_(VARIABLE LIST_^1_%IFC 'E',NE_^1_%SAZ 2_^1_%JMP 'E'_*GO TO ERROR PROCESSOR_^1_%EIF_]_^1_%EMC_]_^1DECHEX MAC A,B_^1_%EXT DECHEX_^1_%RTJ+ DECHEX_^1_%ADC'.' 'A'_(BUFFER ADDRESS_!3 WORDS_^1_%ADC'.' 'B'_€€(VARIABLE ADDRESS_^1_%EMC_]_^1ASCII MAC A,B_^1_%EXT ASCII_^1_%RTJ+ ASCII_^1_%ADC'.' 'A'_(BUFFER ADDRESS_$2 WORDS_^1_%ADC'.' 'B'_(VARIABLE ADDRESS_^1_%EMC_]_^1FLOATG MAC A,B_^1_%EXT FLOATG_^1_%RTJ+ FLOATG_'CONVERT TO S.XXXXXXESNN_^1_%ADC'.' 'A'_(ADDRESS FLOATING VARIABLE 2 WORDS_^1_%ADC'.' 'B'_(ADDRESS OUT BUFFER_'6 WORDS_^1_%EMC_]_^1CLOCK MAC A_^1_%LDA- $E8_P137*A002_^1_%IFC€€ 'A',NE,_^1_%STA'.' 'A'_^1_%EIF_]_^1_%EMC_]_^1FLDF_!MAC FN,MR,LU,NK,KL,FC,RL_^1FN'FN' ADC 'FN'_^1MR'FN' ADC 'MR'_^1_%IFC 'LU',EQ,_^1LU'FN' ADC 8_^1_%EIF_]_^1_%IFC 'LU',NE,_^1LU'FN' ADC 'LU'_^1_%EIF_]_^1RB'FN' BZS RB'FN'(12)_^1RI'FN' BZS RI'FN'(1)_^1NK'FN' ADC 'NK'_^1KL'FN' ADC 'KL'_^1FC'FN' ADC 'FC'_^1RL'FN' ADC 'RL'_^1RP'FN' ADC 0,0_^1_%EMC_]_^1DEFFIL MAC FN_^1_%EX€€T DEFFIL_^1_%RTJ+ DEFFIL_'DEFINE A FILE_,'FN'_^1_%ADC'.' FN'FN',MR'FN',LU'FN',RB'FN',RI'FN'_^1_%EMC_]_^1DEFIDX MAC FN_^1_%EXT DEFIDX_^1_%RTJ+ DEFIDX_'DEFINE INDEXED_^1_%ADC'.' FN'FN',NK'FN',KL'FN',LU'FN',RB'FN',RI'FN'_^1_%EMC_]_^1LOKFIL MAC FN_^1_%EXT LOKFIL_^1_%LDA =X*_^1_%STA FC'FN'_^1_%RTJ+ LOKFIL_'LOCK FILE_0'FN'_^1_%ADC'.' FN'FN',FC'FN',RB'FN',RI'FN'_^1_%EMC_]_^1UNLFIL €€MAC FN_^1_%EXT UNLFIL_^1_%RTJ+ UNLFIL_'UNLOCK FILE_.'FN'_^1_%ADC'.' FN'FN',FC'FN',RB'FN',RI'FN'_^1_%EMC_]_^1RELFIL MAC FN_^1_%EXT RELFIL_^1_%RTJ+ RELFIL_'RELEASE FILE_-'FN'_^1_%ADC'.' FN'FN',RB'FN',RI'FN'_^1_%EMC_]_^1STOSEQ MAC FN,BF,RL_^1_%EXT STOSEQ_^1_%IFC 'RL',NE,_^1_%LDA =X'RL'_^1_%STA RL'FN'_^1_%EIF_]_^1_%RTJ+ STOSEQ_'STORE IN SEQUENTIAL FILE 'FN'_^1_%ADC'.' FN'FN',€€RP'FN','BF',RL'FN',RB'FN',RI'FN'_^1_%EMC_]_^1RTVSEQ MAC FN,BF_^1_%EXT RTVSEQ_^1_%RTJ+ RTVSEQ_'RETRIEVE FROM SEQUENTIAL 'FN'_^1_%ADC'.' FN'FN',FC'FN',RP'FN','BF',RL'FN',RB'FN',RI'FN'_^1_%EMC_]_^1STOIDX MAC FN,KV,BF_^1_%EXT STOIDX_^1_%RTJ+ STOIDX_'STORE INDEXED_,'FN'_^1_%ADC'.' FN'FN','KV',RP'FN','BF',RL'FN',RB'FN',RI'FN'_^1_%EMC_]_^1RTVIDX MAC FN,KV,BF_^1_%EXT RTVIDX_^1_%RTJ+€€ RTVIDX_'RETRIEVE INDEXED_)'FN'_^1_%ADC'.' FN'FN','KV',FC'FN',RP'FN','BF',RL'FN',RB'FN',RI'FN'_^1_%EMC_]_^1RTVIDO MAC FN,KV,BF_^1_%EXT RTVIDO_^1_%RTJ+ RTVIDO_'RETRIEVE INDEXED ORDERED 'FN'_^1_%ADC'.' FN'FN','KV',FC'FN',RP'FN','BF',RL'FN',RB'FN',RI'FN'_^1_%EMC_]_^1STODIR MAC FN,BF_^1_%EXT STODIR_^1_%RTJ+ STODIR_'STORE DIRECT_-'FN'_^1_%ADC'.' FN'FN',FC'FN',RP'FN','BF',RB'FN',RI'€€FN'_^1_%EMC_]_^1RTVDIR MAC FN,BF_^1_%EXT RTVDIR_N85*2670_^1_%RTJ+ RTVDIR_'RETRIEVE DIRECT_*'FN'_^1_%ADC'.' FN'FN',FC'FN',RP'FN','BF',RL'FN',RB'FN',RI'FN'_^1_%EMC_]_^1STATFL MAC FN,MK,BD_^1_%LDA RI'FN'_'STATUS A FILE_^1_%IFC 'MK',NE,_^1_%AND'.' 'MK'_'MASK STATUS_^1_%EIF_]_^1_%IFC 'BD',NE,_^1_%SAZ 2_,NOTHING TRUE_^1_%JMP 'BD'_)JUMP IF ANY SET_^1_%EIF_]_^1_%EMC_]_^1FREAD MAC €€ L,C,S,N,M,RP,CP,A,X,D_^1_%RTJ- ($F4)_^1_%IFC 'X',EQ,_^1_%VFD N1/0,X1/'D',N5/4,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,_^1_%IFC 'X',EQ,0_^1_%VFD N1/0,X1/'D',N5/4,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,0_^1_%VFD N1/0,X1/'D',N5/4,N1/1,X4/'RP',X4/'CP'_^1_%EIF I3_^1_%ADC 'C',0_^1I1_#IFC 'M',NE,B_^1_%IFC 'A',EQ,R_^1_%VFD N3/0,N1/1,N2/1,X10/'L'_^1_%EIF_]_^1I1€€_#IFC 'A',NE,R_^1_%IFC 'A',EQ,I_^1_%VFD N3/0,N1/1,N2/2,X10/'L'_^1_%EIF_]_^1I1_#IFC 'A',NE,I_^1_%VFD N3/0,N1/1,N2/0,X10/'L'_^1_%EIF I1_^1I2_#IFC 'M',EQ,B_^1_%IFC 'A',EQ,R_^1_%VFD N3/0,N1/0,N2/1,X10/'L'_^1_%EIF_]_^1I2_#IFC 'A',NE,R_^1_%IFC 'A',EQ,I_^1_%VFD N3/0,N1/0,N2/2,X10/'L'_^1_%EIF_]_^1I2_#IFC 'A',NE,I_^1_%VFD N3/0,N1/0,N2/0,X10/'L'_^1_%EIF I2_^1_%ADC 'N','S'_^1_€€%EMC_]_^1FWRITE MAC L,C,S,N,M,RP,CP,A,X,D_^1_%RTJ- ($F4)_^1_%IFC 'X',EQ,_^1_%VFD N1/0,X1/'D',N5/6,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,_^1_%IFC 'X',EQ,0_^1_%VFD N1/0,X1/'D',N5/6,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,0_^1_%VFD N1/0,X1/'D',N5/6,N1/1,X4/'RP',X4/'CP'_^1_%EIF I3_^1_%ADC 'C',0_^1I1_#IFC 'M',NE,B_^1_%IFC 'A',EQ,R_^1_%VFD N3/0,N1/1,N2/1,X1€€0/'L'_^1_%EIF_]_^1I1_#IFC 'A',NE,R_^1_%IFC 'A',EQ,I_^1_%VFD N3/0,N1/1,N2/2,X10/'L'_^1_%EIF_]_^1I1_#IFC 'A',NE,I_^1_%VFD N3/0,N1/1,N2/0,X10/'L'_^1_%EIF I1_^1I2_#IFC 'M',EQ,B_^1_%IFC 'A',EQ,R_^1_%VFD N3/0,N1/0,N2/1,X10/'L'_^1_%EIF_]_^1I2_#IFC 'A',NE,R_^1_%IFC 'A',EQ,I_^1_%VFD N3/0,N1/0,N2/2,X10/'L'_^1_%EIF_]_^1I2_#IFC 'A',NE,I_^1_%VFD N3/0,N1/0,N2/0,X10/'L'_^1_%EIF I2_€€^1_%ADC 'N','S'_^1_%EMC_]_^1STATUS MAC L,T,A,X,D_^1_%RTJ- ($F4)_^1_%IFC 'X',EQ,_^1_%VFD N1/0,X1/'D',N5/3,N1/0,N8/0_^1_%EIF_]_^1I3_#IFC 'X',NE,_^1_%IFC 'X',EQ,0_^1_%VFD N1/0,X1/'D',N5/3,N1/0,N8/0_^1_%EIF_]_^1I3_#IFC 'X',NE,0_^1_%VFD N1/0,X1/'D',N5/3,N1/1,N8/0_^1_%EIF I3_^1_%IFC 'A',EQ,R_^1_%VFD N4/0,N2/1,X10/'L'_^1_%EIF_]_^1I1_#IFC 'A',NE,R_^1_%IFC 'A',EQ,I_^1_%VFD N4€€/0,N2/2,X10/'L'_^1_%EIF_]_^1I1_#IFC 'A',NE,I_^1_%VFD N4/0,N2/0,X10/'L'_^1_%EIF I1_^1_%ADC 'T'_^1_%EMC_]_^1READ_!MAC L,C,S,N,M,RP,CP,A,X,D_^1_%RTJ- ($F4)_^1_%IFC 'X',EQ,_^1_%VFD N1/0,X1/'D',N5/1,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,_^1_%IFC 'X',EQ,0_^1_%VFD N1/0,X1/'D',N5/1,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,0_^1_%VFD N1/0,X1/'D',N5/1,N1/1,X4/'RP'€€,X4/'CP'_^1_%EIF I3_^1_%ADC 'C',0_^1I1_#IFC 'M',NE,B_^1_%IFC 'A',EQ,R_^1_%VFD N3/0,N1/1,N2/1,X10/'L'_^1_%EIF_]_^1I1_#IFC 'A',NE,R_^1_%IFC 'A',EQ,I_^1_%VFD N3/0,N1/1,N2/2,X10/'L'_^1_%EIF_]_^1I1_#IFC 'A',NE,I_^1_%VFD N3/0,N1/1,N2/0,X10/'L'_^1_%EIF I1_^1I2_#IFC 'M',EQ,B_^1_%IFC 'A',EQ,R_^1_%VFD N3/0,N1/0,N2/1,X10/'L'_^1_%EIF_]_^1I2_#IFC 'A',NE,R_^1_%IFC 'A',EQ,I_^1_%VF€€D N3/0,N1/0,N2/2,X10/'L'_^1_%EIF_]_^1I2_#IFC 'A',NE,I_^1_%VFD N3/0,N1/0,N2/0,X10/'L'_^1_%EIF I2_^1_%ADC 'N','S'_^1_%EMC_]_^1WRITE MAC L,C,S,N,M,RP,CP,A,X,D_^1_%RTJ- ($F4)_^1_%IFC 'X',EQ,_^1_%VFD N1/0,X1/'D',N5/2,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,_^1_%IFC 'X',EQ,0_^1_%VFD N1/0,X1/'D',N5/2,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,0_^1_%VFD N1/0,X1/'€€D',N5/2,N1/1,X4/'RP',X4/'CP'_^1_%EIF I3_^1_%ADC 'C',0_^1I1_#IFC 'M',NE,B_^1_%IFC 'A',EQ,R_^1_%VFD N3/0,N1/1,N2/1,X10/'L'_^1_%EIF_]_^1I1_#IFC 'A',NE,R_^1_%IFC 'A',EQ,I_^1_%VFD N3/0,N1/1,N2/2,X10/'L'_^1_%EIF_]_^1I1_#IFC 'A',NE,I_^1_%VFD N3/0,N1/1,N2/0,X10/'L'_^1_%EIF I1_^1I2_#IFC 'M',EQ,B_^1_%IFC 'A',EQ,R_^1_%VFD N3/0,N1/0,N2/1,X10/'L'_^1_%EIF_]_^1I2_#IFC 'A',NE,R_^1_%€€IFC 'A',EQ,I_^1_%VFD N3/0,N1/0,N2/2,X10/'L'_^1_%EIF_]_^1I2_#IFC 'A',NE,I_^1_%VFD N3/0,N1/0,N2/0,X10/'L'_^1_%EIF I2_^1_%ADC 'N','S'_^1_%EMC_]_^1INDIR MAC P,D_^1_%RTJ- ($F4)_^1_%IFC 'D',EQ,1_^1_%VFD N2/0,N5/16,N8/0_^1_%ADC 'P'_^1_%EIF 0_S81*2071_^1_%IFC 'D',NE,1_L81*2071_^1_%ADC ('P')_O81*2071_^1_%EIF 0_S81*2071_^1_%EMC_]_^1EXIT_!MAC P_^1_%RTJ- ($F4)_^1_%VFD N1/0,N6/€€5,N1/0,N8/0_^1_%EMC_]_^1CORE_!MAC P_^1_%RTJ- ($F4)_^1_%VFD N1/0,N6/11,N1/0,N8/0_^1_%EMC_]_^1LOADER MAC P_^1_%RTJ- ($F4)_^1_%VFD N1/0,N6/7,N1/0,N8/0_^1_%EMC_]_^1DISCHD MAC C_^1_%RTJ- ($F4)_^1_%VFD N2/0,N5/19,N1/0,N4/15,N4/15_^1_%ADC 'C'_^1_%EMC_]_^1ENSCHD MAC C_^1_%RTJ- ($F4)_^1_%VFD N2/0,N5/19,N1/0,N4/0,N4/0_^1_%ADC 'C'_^1_%EMC_]_^1SCHDLE MAC C,P,X,D_^1_%RTJ- ($F4)_^1_%I€€FC 'X',EQ,_^1_%VFD N1/0,X1/'D',N5/9,N1/0,N4/0,X4/'P'_^1_%EIF_]_^1I3_#IFC 'X',NE,_^1_%IFC 'X',EQ,0_^1_%VFD N1/0,X1/'D',N5/9,N1/0,N4/0,X4/'P'_^1_%EIF_]_^1I3_#IFC 'X',NE,0_^1_%VFD N1/0,X1/'D',N5/9,N1/1,N4/0,X4/'P'_^1_%EIF I3_^1_%ADC 'C'_^1_%EMC_]_^1TIMPT1 MAC C,P,X,T,U_^1_%RTJ- ($F4)_^1_%IFC 'X',EQ,_^1_%VFD N2/0,N5/15,N1/0,X4/'U',X4/'P'_^1_%EIF_]_^1I3_#IFC 'X',NE,_^1_%IFC€€ 'X',EQ,0_^1_%VFD N2/0,N5/15,N1/0,X4/'U',X4/'P'_^1_%EIF_]_^1I3_#IFC 'X',NE,0_^1_%VFD N2/0,N5/15,N1/0,X4/'U',X4/'P'_^1_%EIF I3_^1_%ADC 'C','T'_^1_%EMC_]_^1TIMER MAC C,P,X,T,U,D_^1_%RTJ- ($F4)_^1_%IFC 'X',EQ,_^1_%VFD N1/0,X1/'D',N5/8,N1/0,X4/'U',X4/'P'_^1_%EIF_]_^1I3_#IFC 'X',NE,_^1_%IFC 'X',EQ,0_^1_%VFD N1/0,X1/'D',N5/8,N1/0,X4/'U',X4/'P'_^1_%EIF_]_^1I3_#IFC 'X',NE,0_^€€1_%VFD N1/0,X1/'D',N5/8,N1/1,X4/'U',X4/'P'_^1_%EIF I3_^1_%ADC 'C','T'_^1_%EMC_]_^1GTFILE MAC C,I,S,W1,W2,X,RP,CP,D_^1_%RTJ- ($F4)_^1_%IFC 'X',EQ,_^1_%VFD N1/0,X1/'D',N5/13,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,_^1_%IFC 'X',EQ,0_^1_%VFD N1/0,X1/'D',N5/13,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,0_^1_%VFD N1/0,X1/'D',N5/13,N1/1,X4/'RP',X4/'CP'_^1_%EIF I3_€€^1_%ADC 'C',0_^1_%ADC $8C2,'W1','S'_^1_%ADC 'W2','I'_^1_%EMC_]_^1SPACE MAC N,C,RP,CP,X,D_^1_%RTJ- ($F4)_^1_%IFC 'X',EQ,_^1_%VFD N1/0,X1/'D',N5/10,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,_^1_%IFC 'X',EQ,0_^1_%VFD N1/0,X1/'D',N5/10,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,0_^1_%VFD N1/0,X1/'D',N5/10,N1/1,X4/'RP',X4/'CP'_^1_%EIF I3_^1_%ADC 'C',0,0,'N'_^1_%€€EMC_]_^1RELEAS MAC S,T,X,D_^1_%RTJ- ($F4)_^1I1_#IFC 'X',EQ,_^1_%IFC 'T',EQ,_^1_%VFD N1/0,X1/'D',N5/12,N9/0_^1_%EIF_]_^1I1_#IFC 'T',NE,_^1_%IFC 'T',EQ,0_^1_%VFD N1/0,X1/'D',N5/12,N9/0_^1_%EIF_]_^1I1_#IFC 'T',NE,0_^1_%VFD N1/0,X1/'D',N5/12,N8/0,N1/1_^1_%EIF I1_^1I2_#IFC 'X',NE,_^1I1_#IFC 'X',EQ,0_^1_%IFC 'T',EQ,_^1_%VFD N1/0,X1/'D',N5/12,N9/0_^1_%EIF_]_^1I1_#IFC 'T',NE€€,_^1_%IFC 'T',EQ,0_^1_%VFD N1/0,X1/'D',N5/12,N9/0_^1_%EIF_]_^1I1_#IFC 'T',NE,0_^1_%VFD N1/0,X1/'D',N5/12,N8/0,N1/1_^1_%EIF I1_^1I2_#IFC 'X',NE,0_^1_%IFC 'T',EQ,_^1_%VFD N1/0,X1/'D',N5/12,N1/1,N8/0_^1_%EIF_]_^1I2_#IFC 'T',NE,_^1_%IFC 'T',EQ,0_^1_%VFD N1/0,X1/'D',N5/12,N1/1,N8/0_^1_%EIF_]_^1I2_#IFC 'T',NE,0_^1_%VFD N1/0,X1/'D',N5/12,N1/1,N7/0,N1/1_^1_%EIF I2_^1_%ADC 'S€€'_^1_%EMC_]_^1PTNCOR MAC N,C,P,RP,CP,X,D_^1_%RTJ- ($F4)_^1_%IFC 'X',EQ,_^1_%VFD N1/0,X1/'D',N5/17,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,_^1_%IFC 'X',EQ,0_^1_%VFD N1/0,X1/'D',N5/17,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,0_^1_%VFD N1/0,X1/'D',N5/17,N1/1,X4/'RP',X4/'CP'_^1_%EIF I3_^1_%ADC 'C',0,0,'N','P'_^1_%EMC_]_^1MOTION MAC L,C,P1,P2,P3,DY,RP,CP,A,X,D,€€M_^1_%RTJ- ($F4)_^1_%IFC 'X',EQ,_^1_%VFD N1/0,X1/'D',N5/14,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,_^1_%IFC 'X',EQ,0_^1_%VFD N1/0,X1/'D',N5/14,N1/0,X4/'RP',X4/'CP'_^1_%EIF_]_^1I3_#IFC 'X',NE,0_^1_%VFD N1/0,X1/'D',N5/14,N1/1,X4/'RP',X4/'CP'_^1_%EIF I3_^1_%ADC 'C',0_^1I1_#IFC 'M',NE,B_^1_%IFC 'A',EQ,R_^1_%VFD N3/0,N1/1,N2/1,X10/'L'_^1_%EIF_]_^1I1_#IFC 'A',NE,R_^1€€_%IFC 'A',EQ,I_^1_%VFD N3/0,N1/1,N2/2,X10/'L'_^1_%EIF_]_^1I1_#IFC 'A',NE,I_^1_%VFD N3/0,N1/1,N2/0,X10/'L'_^1_%EIF I1_^1I2_#IFC 'M',EQ,B_^1_%IFC 'A',EQ,R_^1_%VFD N3/0,N1/0,N2/1,X10/'L'_^1_%EIF_]_^1I2_#IFC 'A',NE,R_^1_%IFC 'A',EQ,I_^1_%VFD N3/0,N1/0,N2/2,X10/'L'_^1_%EIF_]_^1I2_#IFC 'A',NE,I_^1_%VFD N3/0,N1/0,N2/0,X10/'L'_^1_%EIF I2_^1_%IFC 'P1',NE,R_^1_%VFD X4/'P1',X4€€/'P2',X4/'P3',X4/'DY'_^1_%EIF_]_^1_%IFC 'P1',EQ,R_^1_%VFD N1/1,X3/'P2',X12/'P3'_^1_%EIF_]_^1_%EMC_]_^1SYSCHD MAC C,P_^1_%RTJ- ($F4)_^1_%VFD N2/0,N5/18,N5/0,X4/'P'_^1_%ADC 'C'_^1_%EMC_]_^1MOT_"MAC LU,A,N,C,P,BB_^1_%LOC XU,LC,LP,LN,PR_F88*2712_^1_%NLS_]_^1_%IFC 'P',NE,_^1_%EQU 'PR'('P')_^1_%EIF 0_^1_%IFC 'P',EQ,_%IS THERE A PRIORITY_^1_%EQU 'PR'(0)_(NO_^1_%EIF 0_^1_%IFC €€ 'N',NE,_^1_%EQU 'LN'('N')_$REPEAT MANY TIMES_^1_%EIF 0_^1_%IFC 'N',EQ,_^1_%EQU 'LN'(1)_'REPEAT ONLY ONE TIME_^1_%EIF 0_^1_%EQU 'LC'('BB'*$1000+'LN')_(SET UP NUM OF TIMES REPEATED_^1_%IFC 'C',EQ,_%NO COMPLETION_^1_%EQU 'LP'('PR'*16+'PR'+$5C00)_^1_%EIF 0_^1C0_#IFC 'C',NE,_%COMPLETION YES_888*2712_^1_%IFC '.',EQ,*_$RELATIVE COMPLETION_^1_%EQU 'LP'('PR'*16+'PR'+$1D00)_=81*€€205_^1_%EIF 0_^1_%IFC '.',EQ,_%ABS COMPLETION_^1_%EQU 'LP'('PR'*16+'PR'+$5C00)_^1_%EIF 0_^1_%EIF C0_R88*2712_^1_%LST_]_^1_%RTJ- ($F4)_^1_%ADC 'LP'_^1_%NLS_]_^1_%IFC 'C',EQ,_^1_%LST_]_^1_%ADC 0_-COMPLETION_^1_%NLS_]_^1_%EIF 0_^1C1_#IFC 'C',NE,_%IS THERE A COMPLETION ADDRESS_)88*2712_^1C2_#IFC '.',EQ,*_$IS IT RELATIVE_888*2712_^1_%LST_]_^1_%ADC 'C'-*+1_'COMPLETION_^1_%NLS€€_]_^1_%EIF C2_R88*2712_^1C3_#IFC '.',EQ,_^1_%LST_]_^1_%ADC 'C'_+COMPLETION_^1_%NLS_]_^1_%EIF C3_R88*2712_^1_%EIF C1_R88*2712_^1_%LST_]_^1_%NUM 0_,THREAD_^1_%NLS_]_^1_%IFC 'A',EQ,_%IT IS THE LOGICAL UNIT_^1_%LST_]_^1_%ADC $0000+'LU'_^1_%NLS_]_^1_%EIF 0_^1_%IFC 'A',EQ,R_$A RELATIVE DISTANCE_^1_%LST_]_^1_%VFD N6/1,X10/'LU'-*+3_+RELATIVE_^1_%NLS_]_^1_%EIF 0_^1_%IFC 'A',EQ,€€I_$A ABS CORE LOCATION_^1_%LST_]_^1_%VFD N6/2,X10/'LU'_/ABS CORE LOCATION_^1_%NLS_]_^1_%EIF 0_^1_%LST_]_^1_%ADC ('LC')_'REPEAT TIMES N_^1_%EMC_]_^1BSR_"MAC L1,A1,N1,C1,P1_'BACKSPACE MACRO_^1_%NLS_]_^1_%MOT'.' 'L1','A1','N1','C1','P1',1_^1_%EMC_]_^1EOF_"MAC L2,A2,N2,C2,P2_'END-OF-FILE MACRO_^1_%NLS_]_^1_%MOT'.' 'L2','A2','N2','C2','P2',2_^1_%EMC_]_^1REW_"MAC L3,A3,N3,C3,P3_'RE€€WIND MACRO_^1_%NLS_]_^1_%MOT'.' 'L3','A3','N3','C3','P3',3_^1_%EMC_]_^1UNL_"MAC L4,A4,N4,C4,P4_'REWIND/UNLOAD MACRO_^1_%NLS_]_^1_%MOT'.' 'L4','A4','N4','C4','P4',4_^1_%EMC_]_^1ADF_"MAC L5,A5,N5,C5,P5_'ADVANCE FILE MACRO_^1_%NLS_]_^1_%MOT'.' 'L5','A5','N5','C5','P5',5_^1_%EMC_]_^1BSF_"MAC L6,A6,N6,C6,P6_'BACKSPACE FILE MACRO_^1_%NLS_]_^1_%MOT'.' 'L6','A6','N6','C6','P6',6_^1_%EMC€€_]_^1ADR_"MAC L7,A7,N7,C7,P7_'ADVANCE RECORD MACRO_^1_%NLS_]_^1_%MOT'.' 'L7','A7','N7','C7','P7',7_^1_%EMC_]_^1DISP_!MAC X_^1_%LST_]_^1_%JMP- ($EA)_^1_%EMC_]_^1BUFFER MAC AA,BB,CC,DD,EE,FF_^1_%LOC A_^1_%SPC 1_^1_%EXT ISBUFR,CBWRIT,CBREAD,BOUTC_^1_%SPC 1_^1_%NUM $520A_(00 SCHEDULER CALL_^1_%ADC ISBUFR_'01 INITIATOR ADDRESS_^1_%ADC 0_,02 CONTINUATOR ADDRESS_!- NOT USED_^€€1_%ADC 0_,03 TIMEOUT ERROR ADDRESS - NOT USED_^1_%NUM -1_+04 DIAGNOSTIC CLOCK_$- NOT USED_^1_%NUM 0_,05 LOGICAL UNIT_^1_%ADC 0_,06 PARAMETER LOCATION_^1_%NUM 0_,07 CONVERTER, EQUIPMENT, STATION - NONE_^1_%NUM $00A4_(08 REQUEST STATUS_^1_%NUM 0_,09 DRIVER STATUS_^1_%NUM 0_,10 CURRENT LOCATION_^1_%NUM 0_,11 LAST LOCATION PLUS ONE_^1_%NUM 0_,12 DEVICE STATUS_(- NOT€€ USED_^1_%NUM 0_,13 RESERVED_^1_%NUM $7FFF_(14 RESERVED_^1_%NUM 0_,15 RESERVED FOR FNR AND CMR_^1_%ADC 'AA'_(16 LSB START OF BUFFER_^1_%ADC 'BB'_(17 LSB END_!OF BUFFER_^1_%ADC 'AA'_(18 CURRENT LSB START OF BUFFER_^1_%ADC 'BB'_(19 CURRENT LSB END_!OF BUFFER_^1_%NUM $44AA_(20 MASS MEMORY WRITE REQUEST (UNFORMATTED)_^1_%ADC CBWRIT_'21 MASS MEMORY WRITE COMPLETION_^1_€€%NUM 0_,22 THREAD_^1_%ADC 'EE'_)23 MASS MEMORY LOGICAL UNIT_^1_%NUM 0_,24 NUMBER OF WORDS_^1_%NUM 0_,25 STARTING DATA LOCATION_^1_%ADC 'CC'_(26 MSB ADDRESS_^1_%ADC 'AA'_(27 LSB ADDRESS_^1_%NUM 0_,28 CONTROL WORD_^1_%NUM $42AA_(29 MASS MEMORY READ REQUEST (UNFORMATTED)_^1_%ADC CBREAD_'30 MASS MEMORY READ COMPLETION_^1_%NUM 0_,31 THREAD_^1_%ADC 'EE'_)32 MASS MEM€€ORY LOGICAL UNIT_^1_%NUM 0_,33 NUMBER OF WORDS_^1_%ADC 'A'_*34 STARTING LOCATION (CHARACTER BUFFER)_^1_%ADC 'CC'_(35 MSB ADDRESS_^1_%ADC 'AA'_(36 LSB ADDRESS_^1_%NUM 0_,37 PARTIAL WORD OUTPUT FLAG_^1_%NUM $4CAA_(38 BUFFER WRITE REQUEST (FORMATTED)_^1_%ADC BOUTC_(39 BUFFER WRITE COMPLETION_^1_%NUM 0_,40 THREAD_^1_%ADC 'DD'_+41 OUTPUT LOGICAL UNIT_^1_%NUM 0_,42 NU€€MBER OF WORDS_^1_%ADC 'A'_*43 STARTING LOCATION (CHARACTER BUFFER)_^1_%ADC 'FF'_)44 CHARACTER BUFFER SIZE_^1_%BZS 'A'('FF')_#45 CHARACTER BUFFER_^1_%EMC_]_^1ENDMAC_]_^__ €€ END/ €