ÿ.TITLE ÿPAL11R ÿ ÿ;VERSION 4A ; ;COPYRIGHT 1971, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. 01754 ;THIS SOURCE OF THE ASSEMBLER CAN BE ;ASSEMBLED INTO TWO UNIQUE VERSIONS: ;1. IF THE SYMBOL "NOSEG" IS DEFINED, THE ; RESULTING OBJECT MODULE IS THE FULL ; ASSEMBLER. ; ************************************* ;2. IF THE SYMBOL "NOSEG" IS NOT DEFINED, ; THE RESULTING PACKAGE IS AN ASSEMBLER ; THAT UTILIZES CORE OVERLAYS FROM DISK ; TO CONSERVE ON SYMBOL TABLE SPACE. ; ;THE OVERLAÿ O SD,TENAMIER TLDIE F ; ÿDRDMIN ÿ P JMÿ 5 T0YN S ÿLT B ÿ ONTINAMIER TLDIE FNEMIERET D ; D ENLD F ÿAPTRÿ G LA FENSES ESDRADT SE; ÿ 2 ,RENSE#A ÿ B IS B ÿ ORATINRMTED VESAE THE ORGN I ; ÿ ÿR1 ÿ R CL 4:T0YN S. DRAD. EG RIFO ER Z ACKTA S ; ÿ ÿR6 @ ÿLR C ÿ DEMOX DEING INRTPOUP SENSES ESDRAD; ÿ ÿ 3:T0YN SN IOSSREXP EERSTGIRE; ÿ ÿ ÿ ÿ E THG INIRQUACD OIAV; ÿ 8 T0YN S ÿBRÿ D UNFOS SIHENTREPAT GHRI; ÿ R ROER Q ÿCBINÿ R TONAMIER TLDIE Fÿ ÿ ÿ ; INDEX MODE ADDRESSING ; ÿ .PAGE ÿ.EOT ÿ ÿ ÿ;END OF FILE #9 SYNT05: ÿ ÿ ÿ ; PARENTHETICAL EXPRESSION PROCESSED ÿÿ TRAP ÿ PARSEP ; CALL PARENTHESES SEPARATOR ÿ BNE ÿ SYNT06 ÿ ; A PARENTHESIS WAS FOUND SYNT15: INCB ÿ QERROR ÿ ; THE FIELD HAS TERMINATED ; ÿ BR ÿ IMMMDR ÿ ; IMMEDIATE ADDRESSING ÿ BR ÿ SYNT0B ÿ ; DETERMINE ADDRESSING SYNT06: BGT ÿ SYNT07 ÿ ; LEFT PAR Y VERSION OF THE ASSEMBLER IS SELF CONTAINED ;IN THAT IT IS ITS OWN OVERLAY BUILDER. ; ;WHEN THE SYMBOL "OVRBLD" IS DEFINED, THE ;RESULTING OBJECT MODULE IS THE BUILDER. ; ;WHEN THE SYMBOL "OVRBLD" IS NOT DEFINED, THE ;RESULTING OBJECT MODULE IS THE RESIDENT ASSEMBLER ; ;WHEN LINKED, THE BUILDER'S TOP SHOULD BE XXX474. ;EXECUTING THE BUILDER'S LOAD MODULE ;VIA THE MONITOR COMMAND RUN ;CAUSES THE CREATION OF THE ;CONTIGUOUS FILE OF OVERLAYS ;(PAL11R.OVR) ON DISK WITH LOGIN UIC. ; ;WHEN LINK A ; ÿ ÿ ÿ ÿ ORD UNFOS SIHENTREPAT EF L ; ÿ03NTSY ÿ E BGÿ R TORAPASES SEHENTREPAL AL C ; P SEAR P ÿAPTRÿ G INSSMIE BSTMUS SIHENTREPA; ÿ ÿ ÿ ÿ A E OREFERTH, ERSTGIRE; ÿ ÿ ÿ ÿ S AEDYP TAS WONSIESPREX; ÿ R ROER R ÿCBINÿ G INSSREDD ADEMOX DEIN; ÿ ÿ ÿ ÿ E OREFERTH, ERSTGIRES A ; ÿ ÿ ÿ ÿ EDYP TOT NAS WONSIESPREX; ÿ 4 T0YN S ÿLT B ÿ ONSIESPREXR TEISEG ROR FCKHE CLLCA; CKHERC ÿ P RA T ÿ EDERNTOUNC EESESTHENAR P ; ÿ ÿ: 02NTSY NGSIýÿ ENTHESIS FOUND ÿ INCB ÿ QERROR ÿ ; RIGHT PARENTHESIS FOUND SYNT07: ÿ ÿ ; CALL AUTO INC.;DEC. DETERMINATOR ÿ ; OPEN SUBROUTINE AUTO INCREMENT;DECREMENT DETERMINATOR ÿ ÿ ; THIS SUBROUTINE VERIFIES THAT THE SAVED ÿ ÿ ; TERMINATOR CODE IS FOR EITHER A + OR A ÿ ÿ ; - CHARACTER. IF SO, THEN VERIFY THAT THIS ÿ ÿ ; IS THE SOLE ADDRESSING INDICATOR PRESENT. ÿ ÿ ; THEN APPROPRIATELY SET THE OPERATOR SEEN ÿ ÿ ; VARIABLE. ÿ ÿ ÿ ; INPUT R1 CONTAINS THE EFFECTIV ED WITH THE PERMANENT SYMBOL TABLE, THE ;RESIDENT ASSEMBLER'S TOP SHOULD ALSO BE XXX474. ;AT RUN TIME, THE RESIDENT ASSEMBLER ;REQUIRES THE OVERLAYS TO BE ON DISK ;WITH FILE NAME PAL11R.OVR AND LOGIN OR [1,1]UIC. ; ÿ.GLOBL ÿSYMTBB,SYMTBT ÿ;EXTERNAL REFERENCES ÿ.GLOBL ÿASCII,ASECT,BYTE,CSECT,END,EOT,EVEN ÿ;ENTRY POINTS. ÿ.GLOBL ÿGLOBL,LIMIT,RAD50,TITLE,WORD ÿ.GLOBL ÿIFG,IFL,IFNZ,IFGE,ENDC ÿ.GLOBL ÿIFLE,IFZ,IFDF,IFNDF ; COMPUTER ÿ ÿPDP-11 ; CONFIGURATION ÿ ÿDISK OPERATING SYSTEM ; ÿ ÿ ÿREQESDRADE OD MERSTGIRE; ÿ R MDEG R ÿMP J ÿ REFOREHE TR,TEISEG R ; ÿ ÿ ÿ ÿ ASD PETYS WAN IOSSREXP E ; ÿR2T,ULES R ÿSBBIÿ : CHPTSY NGSIESDRADY OREM MCTREDI; ÿ ÿ ÿ ÿ E OREFERTH, ERSTGIRE; ÿ ÿ ÿ ÿ R MDIR D ÿMP J ÿ CHPTSY ÿGE B ÿ ONSIESPREXR TEISEG ROR FCKHE CLLCA; CKHERC ÿ P RA T ÿ NDOU FESESTHENAR PNO; ÿ ÿ ÿ ÿ D AND IEIFNTDE IORATINRMTED ELFI; ÿ ÿ ÿ ÿ ND EDSELFIE THT NO; ÿ 2 T0YN S ÿLT B ÿ ?ONTINAMIER TLDIE FNEMIERET D ; D ENLD F ùÿE ÿ ÿ ÿ ; ÿ TERMINATOR CODE ÿ ÿ ÿ ; OUTPUT CONDITION CODED RESULTS ÿ ÿ ÿ ; ÿ ZERO, TERMINATOR NOT + OR - ÿ ÿ ÿ ; ÿ OTHERWISE, THE APPROPRIATE ÿ ÿ ÿ ; ÿ FLAGS HAVE BEEN SET AUTOID: MOV ÿ #AUTOINC,-(R6) ; STACK AUTO-INCREMENT CODE ÿ CMPB ÿ R1,#TCCADD ÿ ; IS R1 TERMINATOR A + ? ÿ BEQ ÿ AUTO0 ÿ ; YES ÿ MOV ÿ #AUTODEC,@R6 ; STACK AUTO-DECREMENT CODE ÿ CMPB ÿ R1,#TCCSUB ÿ ; IS R1 TERMINATOR A - ? ÿ BEQ ÿ UIREMENTS ; ÿ ÿ ÿ ; ÿ ÿ ÿ ; PROGRAM NAME ÿ ÿPAL-11R ;VERSION ÿ ÿVERSION LEVEL 4 ; ÿ ÿ ÿPATCH LEVEL A ;DESCRIPTION ÿ ÿSPECIFICATION DOCUMENTS #130-390-008-01 ; ÿ ÿ ÿ ÿ ÿ #130-390-011-00 AND -01 ; ÿ ÿ ÿ ÿ ÿ ÿ#130-390-012-00 AND -01 ; ÿ ÿ ÿ ÿ ÿ ÿ#130-390-014-00 ; ÿ ÿ ÿ ÿ ÿ ÿ#130-390-023-00 ; ÿ ÿ ÿMULTI-PASS, RELOCATABLE, SYMBOLIC ASSEMBLER ; AUTHOR ÿ ÿJ. MURPHY ;DATE ÿ ÿ ÿ APRIL, 1971 ; ÿ ÿ ÿCOPYRIGHT 1971, DIGITAL EQUIPMENT CORP., ; ÿ ÿ ÿMAYNARD, MASSACHUSETTS ; STANDARD PROCESSOR ÿAPTRÿ T ULES R'SONSIESPREXK ACST; ÿ 6 @RT,ULES R ÿOV M ÿ E AG.Pÿ ; IDVOS IONSIESPREX; ÿ 5 T0YN S ÿLE B ÿ EDSTUEEQ RRNTURE R C ; , ) ( ; ÿ ÿ ÿ ONTIUAALEVN IOSSREXP ELLCA; 1 PEEX ÿ P RA T: 11NTSY 0ANTSY ÿ R B ÿ ERCTRAHA CXTNEE THR FOL AL C ; RMTEEX N ÿAPTRÿ O N ; ÿ11NTSY ÿ E BNÿ ? #ANR TONAMIER TIS; ÿ M IMCC#T1, R ÿPBCMÿ R TONAMIER TNTREUR CHE TVESA; ÿ 1 ,RR3 @ ÿVBMOõÿ AUTO0 ÿ ; YES ÿ CLR ÿ (R6)+ ÿ ; RESTORE THE STACK POINTER ÿ ÿ ÿ ÿ ; AND SET THE CONDITION CODES ÿ BR ÿ AUTO2 ; RETURN AUTO0: ÿ BITB ÿ #OPSEEN,R2 ÿ ; OPERATOR SEEN PREVIOUSLY ? ÿ BEQ ÿ AUTO1 ÿ ; NOPE ÿ INCB ÿ QERROR ÿ ; YES, QUESTIONABLE SYNTAX ÿ BICB ÿ #INCDEC,R2 ÿ ; CLEAR BOTH EXISTING CODES AUTO1: ÿ BISB ÿ #OPSEEN,R2 ÿ ; SET OPERATOR SEEN BIT ÿ BISB ÿ (R6)+,R2 ÿ ; SET APPROPRIATE CODE BIT AUTO2: ÿ TSTB ÿ RSLMOWIDE REGISTER ASSIGNMENTS R0 ÿ = ÿ %0 R1 ÿ = ÿ %1 R2 ÿ = ÿ %2 R3 ÿ = ÿ %3 R4 ÿ = ÿ %4 R5 ÿ = ÿ %5 R6 ÿ = ÿ %6 R7 ÿ = ÿ %7 ÿ.CSECT ÿÿ.IFDF ÿNOSEG OVRBLD=1 ÿ ÿ ÿ;PORTIONS OF BUILD SECTION ARE NEEDED. O01=0 ÿ ÿ ÿ ÿ;SET ALL SYMBOLS USED O02=0 ÿ ÿ ÿ ÿ;IN ADJUSTING ADDRESSES O03=0 ÿ ÿ ÿ ÿ;TO WORK IN OVERLAY O04=0 ÿ ÿ ÿ ÿ;ENVIRONMENT TO 0. O05=0 BEGO01=0 BEGO02=0 BEGO03=0 BEGO04=0 BEGO05=0 BEGOVR=0 ÿ.ENÿ L AL CR.XP EHE TOR FREPARE P ; ÿ ÿR0 ÿ R CL 1:T0YN SR TEACARCHB TAR ONKLA B ; ÿ ÿ ÿ ÿ N-NOT EX NHE TATE YTRBCUN IOITOS P ; RMTEEX N ÿAPTRÿ T BID EREF DDR MET SS,YE; ÿ 5 @RD,EREF#D ÿ B IS B ÿ PENO; ÿ 1 T0YN S ÿNE B ÿ ?@ N AORATINRMTES I ; ÿEFCDTC,#R3 @ ÿPBCMÿ O ER Z ACKTA S ; ÿ6)(R - ÿLR C ÿ CKTA SHE TOND VESAS I ; ÿ ÿ ÿ ÿ R.XP ESSREDD AEDERNTOUNC E ; ÿ ÿ ÿ ÿ GSLA FND ATSUNCOL ALR EACL; ÿ ÿ 2 R ÿLR C ÿ TSBIR TEISEG REXñÿD ÿ BEQ ÿ AUTOX ÿ MOVB ÿ RSLMOD,RSL2MD ÿ CMPB ÿ #-15,SAVTERM ÿ BEQ ÿ AUTOY ÿ INCB ÿ AERROR AUTOY: ÿ CLRB ÿ RSLMOD AUTOX: ÿ ÿ ÿ ; RETURN ÿ TRAP ÿ FLDEND ; DETERMINE FIELD TERMINATION ÿ BGE ÿ SYNT0B ÿ ; THE FIELD HAS TERMINATED ÿ ÿ ÿ ÿ ; ACTUAL MODE YET UNKNOWN ÿ TRAP ÿ NEXTERM ; CALL FOR THE NEXT TERMINATOR ÿ CLR ÿ R0 ÿ ÿ ; R0 = 0 ÿ TRAP ÿ EXPE1 ; CALL EXPRESSION EVALUATION ÿ BGT ÿ SYNT08 ÿ ; EXPRESSION WAS NON-VOID DC ;***** OVERLAY PROCEDURES ***** ; ;THE NUMBER OF BYTES ALLOCATED FOR THE ;OVERLAY AREA OVRSIZ=2000 ÿ ÿ;1024 DECIMAL BYTES ;THE NUMBER OF WORDS ALLOCATED FOR THE ;OVERLAY AREA OVRWRD=1000 ÿ ÿ;512 DECIMAL WORDS ; ;IF THE SYMBOL "OVRBLD" IS DEFINED (VIA A ;PARAMETER ASSIGNMENT) THE RESULTING OBJECT ;MODULE WILL CONSIST OF: ; ÿ ÿÿOVERLAY BUILDER ; ÿ ÿOVERLAY #1 ; ÿ ÿOVERLAY #2 ; ÿ ÿ . ; ÿ ÿ . ; ÿ ÿ . ; ÿ ÿOVERLAY #N ; ÿ ÿOVERLAY AREA ; ÿ ÿRESIDENT PAL-11R ; ;THE RUN TIME TRANND IALEREN G ; ÿ ÿ ÿ ÿ *32*= T BIT ENEMCRDEO-UT A ; ÿ ÿ ÿ ÿ *42*= T BIT ENEMCRINO-UT A ; ÿ ÿ ÿ ÿ *52*= T BIN EE SORATEROP; ÿ ÿ ÿ ÿ 6 ** 2 =IT BENSES ESDRAD; ÿ ÿ ÿ ÿ 7 ** 2 =IT BENSES SEHENTREPA; ÿ ÿ ÿ ÿ ) GHHI (TEBYR TEUNCOS SEHENTREPA; ÿ ÿ ÿ ÿ E THR FOS UEAL VHE T =R2; ÿ ÿ ÿ ÿ E NGRAN IOATERITD ELFI; ÿ ÿ 0:T0YN SM ERVTSAF OSSREDD A =R3; ÿ 3 ,RRMTEAV#S ÿ V MOÿ T IPCRBSSUF BUTBE TH= 4 R ; ÿR42, # ÿOV M ÿ 0 =ERNTOU CLDIEíÿÿ INCB ÿ QERROR ÿ ; EXPRESSION WAS VOID SYNT08: TRAP ÿ PARSEP ; CALL PARENTHESES SEPARATOR ÿ ÿ ÿ ÿ ; THE FIELD HAS TERMINATED ÿ ÿ ÿ ÿ ; ACTUAL MODE YET UNKNOWN ÿ BLT ÿ SYNT09 ÿ ; RIGHT ÿ BGT ÿ SYNT18 ÿ ; LEFT ÿ TRAP ÿ RFORCE ÿ BISB ÿ R0,R2 ÿ BR ÿ SYNT15 SYNT18: INCB ÿ QERROR SYNT09: TRAP ÿ RFORCE ; CALL FORCE REGISTER EXPRESSION ÿ BISB ÿ R0,RSFER ADDRESS WILL BE ;"STARTB" IN THE OVERLAY BUILDER ; ;"SYMTBB" AND "SYMTBT" WILL BE DEFINED IN ;THE OVERLAY BUILDER IN LIEU OF IN THE ;PERMANENT SYMBOL TABLE OBJECT MODULE ;WHICH WILL NOT BE LINKED FOR THE ;BUILD RUN. ; ;IF THE SYMBOL"OVRBLD" IS NOT DEFINED ;THE RESULTING OBJECT MODULE WILL ;CONSIST OF: ; ÿ ÿOVERLAY AREA ; ÿÿ ÿRESIDENT PAL-11R ; ;THE RUN TIME TRANSFER ADDRESS WILL ;BE "STARTA" IN RESIDENT PAL-11R ; ; ÿ F ; ÿNTDCFL ÿ B LR C ÿ 0 =NDMACO; ÿ ÿ 5 @R ÿ R CLÿ S ESDRADD ANOM C =R5; ÿ 5 ,RNDMACO # ÿOV M ÿ RSTEISEG RVESAL AL C ; G REAV S ÿAPTR 7:R0UB S: AXNTSY; TSBIT ENEMCRDET-ENEMCRIN; ÿ ÿ 0 03 ÿ = ÿ C DENC IT BIT ENEMCRDEO-UT A ; ÿ ÿ10 0 ÿ =C DETOAU IT BNTMERENC-ITOAU; ÿ ÿ 0 02 ÿ = NCOIUT AT BIN EE SORATEROP; ÿ ÿ 0 04 ÿ = ÿ N EEPS OT BIN EE SSSREDD A ; ÿ ÿ00 1 ÿ = ÿENSE AT éÿ 2 ÿ ; SAVE INDEX REGISTER ÿ TRAP ÿÿ NEXTERM ; POSITION CURBYTE AT THE NEXT NON- ÿ ÿ ÿ ÿ ; BLANK OR TAB CHARACTER ÿ MOVB ÿ @R3,R1 ÿ ; SAVE THE CURRENT TERMINATOR SYNT0A: ÿ ÿ ; INSURE FIELD TERMINATOR ÿ CLR ÿ R0 ÿ ÿ ; R0 = 0 ÿ TRAP ÿ EXPE2 ; CALL EXPRESSION EVALUATION ÿ ÿ ÿ ; , ; CR ÿRETURN REQUESTED ÿ BLE ÿ SYNT07 ÿ ; CHECK FOR AUTO MODES ! ; ÿ ÿ.IFDF ÿOVRBLD ÿ.IFNDF ÿNOSEG ÿ.TITLE ÿPALOB ÿSYMTBB=. ÿ ÿ;IN LIEU OF LINKING ÿSYMTBT=. ÿ ÿ;WITH PERMANENT SYMBOL TABLE ; ;THE FOLLOWING TABLE CONTAINS THE ;STARTING CORE ADDRESS OF EACH OVERLAY ;IN THE ORDER OF ASCENDING LOCATIONS. ;A 0 WORD TERMINATES THE ENTRIES. ;AS NEW OVERLAYS ARE CREATED THEIR ;POINTERS MUST BE ADDED TO THE END ;OF THE TABLE AND THE OVERLAY ITSELF ;PUT IN THE SAME POSITION ;RELATIVE TO THE OTHER OVERLAYS. ; OVRTAB: ÿ.WORD ÿBEGO01 ÿ BIN EE SESESTHENAR P ; ÿ ÿ00 2 ÿ = ÿENSE PT BIG INSSREDD ARDFEDE; ÿ ÿ 0 1 ÿ = ÿRDFEDE TSENNMIGSS ACTREDIX TAYN S ; ÿ ÿ ÿ RYMOMET ECIR D ; ÿ ÿ67 ÿ = ÿ 7 DRIN TEIAEDMM I ; ÿ ÿ27 ÿ = ÿ 7 CRIN AS DEMOD TEENEMPLIME ARTWOF S ; ÿ ÿ ÿ EXND I ; ÿ ÿ60 ÿ = DEMOND IT ENEMCRDEO-UT A ; ÿ ÿ40 ÿ = DEMOEC DT ENEMCRINO-UT A ; ÿ ÿ20 ÿ = DEMONC IR TEISEG R ; ÿ ÿ00 ÿ = DEMOEG RS DEMOG INSSREDD AERUTMPCO; ÿ ÿ ÿ ! T UI Q ID,UNFOE AR; ÿ ÿ åÿ$ ÿ MOV ÿ RESULT,@R6 ÿ ; STACK EXPRESSION'S RESULT ÿ CMPB ÿ R1,#TCCIMM ÿ ; WAS THE SAVED TERMINATOR ÿ ÿ ÿ ÿ ; AN # ? ÿ BEQ ÿ IMMMDR ÿ ; YES, IMMEDIATE ADDRESSING ÿ BR ÿ SYNT02 ÿ ; PROCESS AS INDEX MODE ; ÿ .PAGE SYNT0B: ÿ ÿ ; DETERMINE ADDRESSING MODE FOR ÿ ÿ ÿ ÿÿ ; FIELDS CONTAINING ANY ÿ ÿ ÿ ÿ ; PARENTHESES ÿ ÿ ÿ ÿ ; SEPARATE MAX. CA%ÿ;OVERLAY #1 ÿ.WORD ÿBEGO02 ÿ ÿ;OVERLAY #2 ÿ.WORD ÿBEGO03 ÿ ÿ;OVERLAY #3 ÿ.WORD ÿBEGO04 ÿ ÿ;OVERLAY #4 ÿ.WORD ÿBEGO05 ÿ ÿ;OVERLAY #5 ÿ.WORD ÿ0 ; ;OVERLAY DEVICE OUTPUT TRAN BLOCK ; OVRTBO: ÿÿ.WORD ÿ0 ÿ ÿ;DEVICE BLOCK NUMBER OVROSA: ÿ.WORD ÿ0 ÿ ÿ;MEMORY START ADDRESS ÿ.WORD ÿOVRWRD ÿ ÿ;WORD COUNT OVRERR: ÿ.WORD ÿ2 ÿ ÿ;FUNCTION (WRITE) ÿ.WORD ÿ0 ÿ ÿ;NUMBER OF WORDS NOT TRAN'D. ; ;RESTART ADDRESS OF OVERLAY BUILDER --- ;RELEASE OVERLAY DEVICE IF STILL INIT'D. AGAIN: ÿTST ÿOVRLB ÿ ÿ;ISÿ ÿ S LDIE FWO TANTHE OR MIF; ÿ ÿ ÿ ÿ D UNFOS LDIE FWO T, 0 > ÿ ; ÿ ÿ ÿ NDOU FD ELFIE ON, 0 = ÿ ; ÿ ÿ ÿ NDOU FDSELFI NO 0,< ÿ ; ÿ ÿ ÿ S LTSURED DECON IOITNDCO ÿ ; ÿ ÿ ÿ D ANMMCOE THO TEDATOCLL AESYT BT PUUT O ; ÿ ÿ ÿ NENO T PUIN; ÿ ÿ ÿ . EDARPEAPS HAD ELFIS NTMEOM CHE TATTH ; ÿ ÿ E UMSS AAY MNETIOU RNGLIAL CHE TG,INRNTURE ; ÿ ÿ N PO U. DSELFIT ECBJ OEDTTMAOR FDR MTOS LDIE F ; ÿ ÿ NGSIESDRADD DECOE RCOU SESATSLANTRE INUTáÿ(SE FIRST ÿ BITB ÿ #ASEEN,R2 ÿ ; WAS AN ADDRESS SEEN ? ÿ BNE ÿ INDMDR ÿ ; YES, INDEX MODE ADDRESSING ÿ BITB ÿ #AUTOINC,R2 ÿ ; WAS A + OPERATOR SEEN ? ÿ BEQ ÿ SYNT0D ÿ JMP ÿ INCMDR ÿ ; YES, AUTO-INCREMENT MODE SYNT0D: ÿ BITB ÿ #AUTODEC,R2 ÿ ; WAS A - OPERATOR SEEN ? ÿ BEQ ÿ SYNT0E ÿ JMP ÿ DECMDR ÿ ; YES, AUTO-DECREMENT MODE SYNT0E: ÿ BITB ÿÿ #PSEEN,R2 ÿ ; WERE PARENTHESES SEEN ? ÿ BEQ ÿ IMMMDR ÿ ; NO, IMMEDIATE ADDRESSING ) DATA SET INIT'D ÿBEQ ÿSTARTB ÿ ÿ;NO ÿMOV ÿ#OVRLB,-(R6) ÿ;YES -- RELEASE IT ÿEMT ÿRLS ; ;STARTING ADDRESS OF OVERLAY BUILDER STARTB: ÿMOV ÿ#OVRTAB,R6 ÿ;INITIALIZE THE STACK ÿSTART=STARTB ÿ ÿ;SET UP TRANSFER ADRESS ÿ;SET UP RESTART ADDRESS ÿMOV ÿ#AGAIN,-(R6) ÿMOV ÿ#2,-(R6) ÿEMT ÿ41 ÿMOV ÿ#OVRLB,R1 ÿ;LINK BLOCK ÿCLR ÿ@R1 ÿ ÿ;FOR ^C BEGIN ÿMOV ÿ#OVRFB,R2 ÿ;FILE BLOCK ÿMOV ÿ#OVRTBO,R3 ÿ;OUTPUT TRAN BLOCK ;.INIT OVERLAY DEVICE ÿMOV ÿR1,-(R6) ÿ;LINK BLOCK ÿEMT ÿINCMD ;OBTAIN DEVROUB SISTH; ÿ ÿ S SILYNA AAXNTSYE INUTROUB S ; ÿ . LEAB TOFM TOOT;B ÿ ÿR5NSBI ÿBR ÿ EDCEEXD ULWOH RCEA;S ÿ ÿR0 ÿLRÿC 4 SRINÿBI BH ÿ T.MILIM TOOT BTHWIE ARMPCOÿ;ÿ 3 ,RR4 ÿMPÿC . SEBAW NE= S RDWO4 -RYNT EISTHÿ;ÿ 2 ,RR4 ÿOVÿM: R7NSBI Y.TRENE DLID MNDFIO TSTJUADÿ;ÿ 4 ,R10ÿ#B SU ÿ 7 SRINÿBQ BE ÿ LEAB TEDERRD OINR HEIG HOLMBSYÿ;ÿ 0 #10,ÿRT BI ÿ6:SRIN B4 SRINÿBR ÿB . LEABÝÿ, ÿ MOV ÿ #DEFERD,-(R6) ; STACK THE DEFERD MASK ÿ BITB ÿ @R6,@R5 ÿ ; HAS AN @-SIGN APPEARED ? ÿ BNE ÿ SYNT0C ÿ ; YES, USE INDEX ADDRESSING ÿ BISB ÿ (R6)+,@R5 ÿ ; NO, USE REGISTER DEFERRED ÿ BR ÿ REGMDR ÿ ; REGISTER MODE SYNT0C: BISB ÿ (R6)+,@R5 ÿ ; SET COMAND'S DEFERRED BIT ÿ CLR ÿ @R6 ÿ ÿ ; ZERO THE STACKED ADDRESS ÿ BR ÿ INDMDR ÿ ; INDEX MODE ; ÿ .PAGE ÿ;***-ICE STATUS ÿMOV ÿR1,-(R6) ÿ;LINK BLOCK ÿEMT ÿ13 ÿCMP ÿ(R6)+,(R6)+ ÿ;CORRECT STACK. ÿ ÿ ÿ ÿ;PHYSICAL BLOCK SIZE ÿMOV ÿ@R6,R4 ÿ ÿ;(IN WORDS) OF OVERLAY DEVICE ÿMOV ÿ#OVRWRD,-(R6) ÿÿJSR ÿR7,DIVIDE ÿMOV ÿ(R6)+,R5 ÿ;NUMBER OF PHYSICAL ÿ ÿ ÿ ÿ;BLOCKS PER OVERLAY ÿCLR ÿ-(R6) ÿMOV ÿ#OVRTAB,R0 BLDR01: ÿÿTST ÿ(R0)+ ÿ ÿ;TOP OF STACK ÿBEQ ÿBLDR02 ÿ ÿ;CONTAINS TOTAL ÿADD ÿR5,@R6 ÿ ÿ;NUMBER OF PHYSICAL ÿBR ÿBLDR01 ÿ ÿ;BLOCKS REQUIRED. BLDR02: ÿMOV ÿ#64.,-(R6) ÿ;DIVIDE PHYSICAL BLOCK ÿMOV TEDERRD OINR WELOL BOYM;S ÿ ÿR34,ÿRV MO ÿ R6NSBI ÿLOÿB: R2NSBI R3NSBI ÿBR ÿ RYNT EOFS ESDRADÿ;X DEIN,HR4 ÿOVÿM ÿ D.UNFOE ATICND ITO0 N-NOÿ;ÿ 0 ÿRC IN ÿ IDT ECCS .ND AGSLA;F ÿGSLATF4,@R ÿOVÿM L BOYM SOFE LUVAÿ;Y ITNTUA,Q4)(R-2 ÿOVÿM S HETCMAD IATRD 2Nÿ; . CHAT MNOÿ;ÿ 2 SRINÿBE BN ÿ 1)(R,24)(R-4 ÿMPÿC S HETCMAD IATRT 1Sÿ; . CHAT MNOÿ;ÿ 2 SRINÿBE BN ÿ CHAT MOR FSTTEÿ;1 @R),R46(ÿ-P CM ÿ ETFSOF- E AS BLEAB;T ÿ ÿR40,ÿRB SU ÿ R42,ÿRV MO ÿ ONTIGAPARO;P ÿ ÿ ÿ ÿ ÿ GNSIT ENEVPRD ANS RDWO4 F OLEIPLTÙÿ0 DIRECT MEMORY ADDRESSING *** DIRMDR: ÿ;IF THE FRCABS SWITCH IS NON-0 ÿ;AS A RESULT OF THE CSI SWITCH ÿ;/37 HAVING BEEN ENCOUNTERED ÿ;FORCE @#A FOR A ÿBITB ÿ#DEFERD,@R5 ÿ;IS MODE @A ÿBNE ÿDIRMD1 ÿ ÿ;YES --- NORMAL ÿTSTB ÿFRCABS ÿ ÿ;FORCE @#A? ÿBEQ ÿDIRMD1 ÿ ÿ;NO ÿBISB ÿ#DEFERD,@R5 ÿ;YES ÿ ÿ ; *** IMMEDIATE ADDRESSING ÿ*** IMMMDR: BISB ÿ #AINCR7,@R5 INDXDR: ÿ TST ÿ (R4)+ ÿ MOVB ÿ R4,VARLTH ÿ TSTB ÿ RSLMOD ÿ BEQ ÿ DIREC0 ÿ BLT ÿ IMMEXT ÿ MOVB ÿ #RLD2.1,RLDIR 1 ÿR4,-(R6) ÿ;SIZE BY 64(DECIMAL) ÿJSR ÿR7,DIVIDE ÿ;QUOTIENT ON STACK. ÿMOV ÿ(R6)+,R0 ÿ;NUMBER OF 64'S IN ÿ ÿ ÿ ÿ;PHYSICAL BLOCK ÿMOV ÿ@R6,R4 ÿ ÿ;TOTAL NUMBER OF ÿ ÿ ÿ ÿ;PHYSICAL BLOCKS REQUIRED BLDR03: ÿDEC ÿR0 ÿ ÿBEQ ÿBLDR08 ÿ ÿ;TOTAL NUMBER OF ÿADD ÿR4,@R6 ÿ ÿ;64 (DECIMAL) WORD BLOCKS ÿBR ÿÿBLDR03 ÿ ÿ;REQUIRED ON TOP OF ÿ ÿ ÿ ÿ;STACK ;DELETE FILE IF ALREADY EXISTING BLDR08: ÿMOV ÿ#BLDR04,-4(R2) ÿ;ERROR RETURN ÿMOV ÿR2,-(R6) ÿ;FILE BLOCK ÿMOV ÿR1,-(R6) ÿ;LINK BLOCK ÿEMT ÿDLT MUE URSS;A ÿ ÿR07,0000#1 ÿICÿB: R1NSBI NGTIES TUEINNTCOÿ; N URET;R ÿ ÿR7 ÿTSÿR S DECON IOITNDCOT SEÿ;ÿ 0 ÿRT TS ÿ3:SRIN BS ESDRADY TRENE BLTAL BOYM;S ÿEXNDHI3,ÿRV MO ÿ IDCTCSD ANS AGFL TTO0 ÿ;ÿ S AGFLÿTR CL ÿ TYTIANQUO T;0 ÿTYTIANQU ÿLRÿC: R5NSBI NDOU FCHAT MNOÿ; 1 SRINÿBE BN ÿ 2.E/IZ SLEAB TNSAINTCO0 ;R ÿ ÿR0 ÿSRÿA: R4NSBI E.BLTAW LOBES ESDRADE RE FST;1 ÿ ÿR03,ÿRB SU ÿ USIN MSEBAE BLTAÿ;ÿ 0 ,RR2 ÿOVÿM: 39BRSU H:RCNSBI ;; ÿ D.RETEALE AR4 RND AR3, R2ÿ; D TISC CND A ÿ ; ÿ GSLATF, TYTIANQUÕÿ4ÿ;INTERNAL RELOCATION (CODE 1) ÿBR ÿIMPR2 IMMEXT: ÿ MOV ÿ #RLD2.5,RLDIR ÿ ;GLB ADDITIVE RELOCATION (CODE 5) ÿCMPB ÿRSLMOD,#-2 ÿBNE ÿDIRECD ÿMOV ÿ#RLD4.3,RLDIR ÿ ÿ;.CSECT ADDITIVE RELOCATION ÿBR ÿDIRECD ÿ ÿ ; *** INDEX MODE *** INDMDR: BISB ÿ #INDMODE,@R5 ÿ MOVB ÿ RSL2MD,RSLMOD ÿ CLRB ÿ RSL2MD ÿ TRAP ÿ INSERT ÿ BR ÿ INDXDR ÿ ÿ ; *** DIRECT MEMORY ADDRESSING *** DIRMD1: BISB ÿ #INDR7,@R5 ÿ TST ÿ (R4)+ ÿ MOVB ÿ R4,VARLTH ÿCMPB ÿ#-1,RSLMOD 5 BLDR04: ÿCLR ÿ-4(R2) ÿ ÿ;ERRORS TO MONITOR ;ALLOCATE THE NECESSARY SPACE FOR ONE ;CONTIGUOUS FILE. ÿMOV ÿR2,-(R6) ÿ;FILE BLOCK ÿMOV ÿR1,-(R6) ÿ;LINK BLOCK ÿEMT ÿ15 ÿTST ÿ(R6)+ ÿBLT ÿBLDR09 ÿ ÿ;SPACE AVAILABLE? ÿCLR ÿ-(R6) ÿ ÿ;NO. ÿMOV ÿ#ERR9,-(R6) ÿ;FATAL ERROR. ÿBR ÿBLDR10 ; ;DETERMINE THE PHYSICAL STARTING BLOCK ;OF THE CONTIGUOUS FILE AND PLACE IT ;IN THE 1ST WORD OF THE OUTPUT TRAN BLOCK. BLDR09: ÿMOV ÿR2,-(R6) ÿ;FILE BLOCK ÿCLR ÿ-(R6) ÿMOV ÿR1,-(R6) ÿ;LINK BLOCK ÿEMT ÿ14O T 0) ÿ3; ÿ S)ESDRADR HEIG(HX DEIN HTOD RETEENE B ÿ ; ÿ LDOUSHL BOYM SREHE WSSREDD A) ÿ2; ÿ 0ESOD CONTIDION CND AR0 1) ÿÿ; : CHAT MNOF ÿI; ÿ ÿ; ) TEBY (IDCTCSO TIDN IOCTSEL RONTCO 5) ÿÿ; ) TEBY (GSLATFO TGSLA FOLMBSY 4) ÿÿ; Y ITNTUA QTOL BOYM SOFE LUVA 3) ÿÿ; X DEIN HTOY TRENF OSSREDD AERGHHI 2) ÿÿ; ) VETISIPO ( 0ON NESOD CONTIDION CND AR0 1) ÿÿ; : NDOU FCHAT MIFT PUUT;O ÿ ÿ; 3 RINE BLTAL BOYM S ÿ ; ÿ HE TOWEL BSSREDD AEEFRT 1SE TH 3) ÿÿ; 2 RINE BLTAL BOYM SHE T ÿ ; ÑÿFÿ BEQ ÿ DIRECB ÿ;.GLOBL EXPRESSION ÿBPL ÿDIRECC ÿ ÿ;ANOTHER .CSECT ÿ SUB ÿ @USERPC,@R6 ÿ SUB ÿ R4,@R6 ÿ TSTB ÿ RSLMOD ÿ ;BRANCH IF NOT ÿ BNE ÿ DIRECX ÿ ;PROCESSING ÿ TSTB ÿ SECMOD ÿ ;FOR ABS SYMBOL ÿ BEQ ÿ DIREC0 ÿ ;IF ABS SYMBOL FROM ABS SECTION ÿ ADD ÿ @USERPC,@R6 ÿ ÿ;ABS SYMBOL FROM REL SECTION ÿ ADD ÿ R4,@R6 ÿMOV ÿ#RLD2.3,RLDIR ÿ ÿ;REL SECT PROCES,INIT RLD DIRECTIVE IMPR2: ÿ MOV ÿ @R6,R1 ÿTRAP ÿRELREF ÿ MOV ÿ #4,R4 ÿTRAP ÿRLDFIL ÿ BR ÿE ÿ ÿ;.LOOK ÿMOV ÿ(R6)+,@R3 ÿ;STARTING BLOCK. ÿCMP ÿ(R6)+,(R6)+ ÿ;CORRECT STACK ;THE ONE CONTIGUOUS FILE WILL CONTAIN ;N OVERLAYS WITH EACH BEGINNING AT THE ;START OF A PHYSICAL BLOCK ON THE DEVICE ; ÿMOV ÿ#OVRTAB,R0 BLDR07: ÿMOV ÿ(R0)+,OVROSA ÿ;MEMORY START ADDRESS ÿBEQ ÿBLDR05 ;TRAN OUT AN OVERLAY. ; ÿMOV ÿR3,-(R6) ÿ;TRAN BLOCK ÿMOV ÿR1,-(R6) ÿ;LINK BLOCK ÿEMT ÿ10 ;WAIT FOR COMPLETION OF TRANSFER ; ÿMOV ÿR1,-(R6) ÿ;LINK BLOCK ÿEMT ÿWTCMD ;CHECK FOR ERROR ON TRANSFER ; ÿ ÿ OFS ESDRAD) ERGHHI (NGTIARSTE TH 2) ÿÿ; 1 RINL BOYM S0) 4LODUMO (RDWO ÿÿ; 2 E THF OSSREDD AR)WELO (SEBAE TH 1) ÿUTNP;I ÿ E.BLTAÿ; L BOYM SRYNT EER PRDWO4 D REDEORÿ; N AEROVH RCEA SRYNABIA S RMFOER;P ÿ CHARSEE BLTAL BOYM SRYNABIE INUTROUB;S N URET;R ÿ ÿR7 ÿTSÿR ) R0-(1,M+SYMPÿTV MO ÿ T.LO SEDFICIPE;S ÿ0)(R,-+3YMPSTM ÿOVÿM N IRYNT;E ÿ0)(R,-LTSURE ÿOVÿM D OR W 4CELA;P ÿR0,@GSLATF ÿOVÿM 0 ,REXNDHI ÿOVÿM: 40BRSU D.YEÍÿº»»»»»»`wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww3333333333333333333333ADDB C4dªÆ4d­yŽ›$D»»»»»»»ÿwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww3333333333333333333333ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒy�B›¾ƒðƒ8ŽÅaå Í‹æÄ,L ƒw:ÄBŒ ýƒàÇ` 5 þÿ€�&ˆ ‚— ýÿ†ƒœÃEÀÿ× >w†× × ò f€ò5ÀeòU@ò €× [æ*ˆ² ¦¦æ× Ž & *ˆÖ G× ‚&(ˆ°Ì 8�L'ˆ°4e÷ ÌQ$ ô �BBâBä" ± üÿü× ÷ ¬ŒÉU@Ò °ðU€ Æe  Å"U%÷‹äþGæÎeÞþæfÇ.Ö … U¥… … … … U¥Ñ Bb‘â‹Ã 0Š æ*ˆ€�Ö BÃIBIT ÿ#140000,OVRERR ÿBEQ ÿBLDR06 ;ERROR ON TRANSFER ÿMOV ÿOVRERR,-(R6) ÿ;PUSH STATUS BYTE ÿBIC ÿ#377,@R6 ÿ;INTO LOW INFO BYTE ÿSWAB ÿ@R6 ÿ ÿ;AND CLEAR THE REST. ÿMOV ÿ#ERR8,-(R6) ÿ;ERROR CODE BLDR10: ÿIOT ÿEMT ÿ60 ÿ ÿ;RETURN TO MONITOR BLDR06: ÿADD ÿR5,@R3 ÿ ÿ;CHANGE BLOCK NUMBER ÿ ÿ ÿ ÿ;IN TRAN BLOCK FOR ÿBR ÿBLDR07 ÿ ÿ;NEXT OVERLAY TRANSFER ; ;ALL OVERLAYS HAVE BEEN TRAN'D OUT. ; BLDR05: ÿMOV ÿR1,-(R6) ÿ;RELEJÿ IMPR1 DIRECC: ÿMOVB ÿ#RLD4.4,RLDIR ÿ;.CSECT ADDITIVE DISPLACED RELOCATION ÿBR ÿDIRECD DIRECB: ÿ MOVB ÿ #RLD2.6,RLDIR ÿ;.GLOBL EXPRESSION DIRECD: ÿTRAP ÿRELREF ÿ MOV ÿ @R6,R3 ÿ MOV ÿ #10,R4 ÿ MOV ÿ R2,TSTORE ÿ MOV ÿ GLBSY1,R1 ÿ ÿ;.GLOBL OR .CSECT NAME ÿMOV ÿGLBSY2,R2 ÿTRAP ÿRLDFIL ÿMOV ÿTSTORE,R2 IMPR1: ÿ INC ÿ RLDFLG DIRECX: ÿ MOVB ÿ VARLTH,R4 DIREC0: MOV ÿ @R6,TBBUF-2(R4) ÿ ADD ÿ #2,SIZE ÿ BR ÿ RETURN ; ÿ .PAGE LAEROVE BTOY TRENL BOYM SIFY TREN ÿY:LAVR;O RSTEISEG RRETOES;R ÿ ÿEGTRSE ÿAPTR ÿ2:ERNT E3 ERNTÿES HIÿB . DSOR W 4DSARNWOW;D ÿ ÿR02,ÿRP CM ÿ LEAB TOLMBSYT USDJ;A ÿ)+R1,()+R0ÿ(V MO ÿ3:ERNT EC RPSE,UR4 ÿUBÿS . EDOV MBEO TISÿ;C RPSEHU4,ÿRB SU ÿ ITF IRYNT EPCR SE;U ÿ ÿR3TEEN ÿLOÿB O TRSTEINPOT ENEMCRDEÿ;C RPSEHU2,ÿRP CM ÿ D.DEEE NNTMESTJUADO ;N ÿ ÿR2TEEN ÿEQÿB . ERSFANTRO TDSOR WOF. NOÿ;ÿ 2 ,RR0 ÿMPÿC 2 ,REXNDHI ÿOVÿM . TR PG.REE RE FST 1EDFIDIMOE AV;S ÿOPRTUS1,ÿRV MO ÿ1:ERNT E+ 6)(R ÿSTÿT 1 ÿ4ÉÿMASE THE ÿEMT ÿRLS ÿ ÿ;DATA SET ; ;RETURN TO THE MONITOR ÿEMT ÿ60 ;***** OVERLAYS BEGIN HERE ***** ; ; ÿOVERLAY #1 O01=BEGOVR-BEGO01 ÿ ÿ;COMPUTE OFFSET FROM ÿ ÿ ÿ ÿ;RUN TIME OVERLAY AREA BEGO01: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVERLAY. ; ÿJMP ÿRCSI ÿ ÿ;ENTRY1 ÿJMP ÿSUBR43 ÿ ÿ;ENTYR2 ÿJMP ÿRRSTRT ÿ ÿ;ENTRY3 ÿ.ENDC ; ; ; RCSI: ÿMOV ÿ#COLB,-(R6) ÿ;INIT COMMAND OUTPUT DEVICE ÿMOV ÿ@R6,R2 ÿ ÿ;#COLB ÿEMT ÿINCMN ÿ ÿ ; *** REGISTER MODE *** REGMDR:; BISB ÿ #REGMODE,@R5 ÿ BR ÿ BUILD ÿ ÿ ; *** AUTO-INCREMENT MODE *** INCMDR: BISB ÿ #INCMODE,@R5 ÿ BR ÿ BUILD ÿ ÿ ; *** AUTO-DECREMENT MODE *** DECMDR: BISB ÿ #DECMODE,@R5 BUILD: ÿ TRAP ÿ INSERT ; ÿ .PAGE RETURN: ÿ MOV ÿ #SAVTERM,R3 TST ÿ (R6)+ ÿ ; RESTORE THE STACK POINTER ÿ BIT ÿ #177400,R2 ÿ ; PARENTHESES COUNTER ZEROT EM ÿ 6)(R,-02#1 ÿOVÿM R TONIMOF OONTIUCTRES;D NTVERE PTON IOATEROPY MMDU ;T BOTK,SR4 ÿUBÿS 4 ERNTÿEO BL ÿ OTKBST2,ÿRP CM ÿ OTKBSTT USDJ ASOALÿ;+ 3)(R+,2)(R ÿOVÿM: R4TEEN S.RDWO4 N OW;D ÿ ÿR36,ÿRV MO ÿ CKTA SVEMOK ACSTÿ;ÿ 6 ,RR4 ÿUBÿS O NT IUN RLDOU WST;U ÿ ÿR26,ÿRV MO ÿ N.IOISLLCOO ;N ÿ ÿR1TEEN ÿISBH ÿ CKTA STHWIN IOISLLCOR FOK ECCHÿ;T BOTK,SR1 ÿMPÿC . DSOR W 4BYR TEINPOÿ;ÿ 1 ,RR4 ÿUBÿS R TEISEG REEFRT 1SE ASREEC;D ÿ ÿR10,ÿRV MO ÿ SE UERAT LOR;F ÿ ÿR40,#1 ÿOVÿM 0 ,ROPRTUS ÿOVÿM . RSTEIS¸ÿQD ÿTSTB ÿIDENT-O01 ÿ;PRINT TITLE ÿBEQ ÿCSIOK2 ÿ ÿ;ONCE ONLY. ÿMOV ÿ#TITLBUF-BEGO01+BEGOVR,-(R6) ÿ;PRINT TITLE ÿMOV ÿR2,-(R6) ÿEMT ÿWRCMD CSIOK2: ÿMOV ÿ#TITLBF-BEGO01+BEGOVR,-(R6) ÿMOV ÿR2,-(R6) ÿ;PRINT # ÿEMT ÿWRCMD ÿCLR ÿIDENT-O01 ÿ;DON'T PRINT TITLE OR .INIT OVERLAY DEV. ÿMOV ÿR2,-(R6) ÿEMT ÿWTCMD ÿMOV ÿ#CILB,-(R6) ÿ;INIT COMMAND ÿMOV ÿ@R6,R1 ÿ ÿ;#CILB ÿEMT ÿINCMD ÿ ÿ;INPUT DEVICE ÿMOV ÿ#CIFB,-(R6) ÿ;OPEN COMMAND ÿMOV ÿR1,-(R6) ÿ;INPUT FILE ÿEMT ÿOPN ;SET UP COMMAND INPR ? ÿ BEQ ÿ RETUR0 ÿ ; YES, VALID COUNTER ÿ INCB ÿ QERROR ÿ ; NO, QUESTIONABLE SYNTAX RETUR0: INCB ÿ FLDCNT ÿ ; INCREMENT FIELD COUNTER ÿ TRAP ÿ FLDEND ; DETERMINE STATEMENT TERMINATOR ÿ BLE ÿ RETUR1 ÿ ; STATEMENT TERMINATED ÿ CMPB ÿ FLDCNT,#2 ÿ ; MORE THAN TWO FIELDS ? ÿ BLT ÿ RETUR2 ÿ ; NOPE ÿ INCB ÿ QERROR ÿ ; YES, QUESTIONABLE SYNTAX RETUR1: TRAP ÿ SETREG ; CALL SET REGISTERS ÿ DECB ÿ FLDCNT ÿ ; SET THE CONDIEG RVESAÿ;ÿ G REAVÿSP RAÿT: 06BRSU D.REUIEQ RNTMESTJUADE BLTAF IRYNTÿE: ERNT;E S.IETRENH OT BATD YEROSTDES IR0ÿ; . DEMAS INTMESTJUADE BLTA ÿÿ; L BOYM SNO. VEBO A3)P TEÿST PUUT;O ÿ VEBO AASE AMÿST PUINÿ; Y LAVR OAPTRÿ; . EXNDHIN I ÿ ÿ; S ESDRADE THT ANGTIARST ÿÿ; D RETO SRYNT EOLMBSYW NE 3) ÿÿ; P TOSR UTO) DSOR(W4 P-TOSR U) ÿ2; ÿ S.RDWO4 S RDWAWNDOD TEUSADP TOSR U ÿ ; ÿ TOX DEIN HOMFRS OLMBSYL AL 1) ÿÿ; . DSOR WURFON OW DEDOV MISK ACST ÿÿ; K ACSTF OOMTTBOH IT WDELIOLÿC; ÿ ´ÿUUT BUFFER ÿMOV ÿ#SIBUF2,R0 ÿMOV ÿR0,-(R6) ÿMOV ÿ#SRCMAX,(R0)+ ÿ;72(10) DATA BYTES. ÿCLR ÿ(R0)+ ÿ ÿ;FORMATTED ASCII ;READ COMMAND STRING ÿMOV ÿR1,-(R6) ÿEMT ÿRDCMD ;WAIT FOR INPUT WITH CLOSE AND RELEASE ÿTRAP ÿCLEAN ÿBITB ÿ#47,SIBUF2+3-O01 ÿBEQ ÿCSIOKJ ÿ ÿ;TRANSFER ERROR? ÿMOV ÿSIBUF2+2-O01,-(R6) ÿ;YES ÿJMP ÿERRO3-O01 ;CALL COMMAND STRING INTERPRETER CSIOKJ: ÿMOV ÿ#CMDBUF,-(R6) ÿEMT ÿ56 ÿMOV ÿ(R6)+,R1 ÿ;ADDR. OF DATA BYTE WHERE SCAN ENDED. ÿBEQ ÿCSIOK1 ÿ ÿ;COMMAND SYNTACTICAVTION CODES ÿ RTS ÿ R7 ÿ ; RETURN RETUR2: ASL ÿ @R5 ÿ ÿ ; SHIFT COMAND SIX BITS LEFT ÿ ASL ÿ @R5 ÿ ASL ÿ @R5 ÿ ASL ÿ @R5 ÿ ASL ÿ @R5 ÿ ASL ÿ @R5 ÿ TRAP ÿ NEXTERM ; CALL FOR NEXT TERMINATOR ÿ CLRB ÿ RSLMOD ÿ CLR ÿ GLBSY1 ÿ CLR ÿ GLBSY2 ÿ JMP ÿ SYNT00 ÿ ; SUBROUTINE INSERT ÿ ÿ ; THIS SUBROUTINE INSERTS THE THREE BIT ÿ ÿ ; REGISTER FIELD FOUND IN R2 INTO THE ÿ ÿ ; COMMAND BEING BUILT. ÿ ÿ ÿ ; INPUT R2 CONTAINS A 3-BIT FIELD LDOU WLEAB TOLMBSYD DEANXP EIF ÿUTTPOUÿ; S AGFL T ÿ ; ÿ LTSURE ÿÿ; 3 M+SYMP T ÿ ; ÿ +1YMPSTM ÿÿ; N IRYNT ERDWO4 E TH 2) ÿÿ; X DEIN HINT LO SHE TOF) SSREDD ASTHEIG(HS ESDRADE AS BHE T) ÿ1T PUINÿ; R TEENP RA;T ÿ S:NTOI PRYNT E 2RE AREHE;T E.BLTAL BOYM S AINT LO SEDFICIPE;S ATOINY TRENL BOYM SRDWO4 A R TEENO TNETIOUBRSU ; E.INUTROG INLLCAT XI;E ÿ ÿR7 ÿTSÿR S ERSTGIRET SEÿ;ÿ G REETÿSP RAÿT G REOP POMFRN URET RRDCAIS°ÿYLLY CORRECT. ÿCMPB ÿ(R1)+,(R1)+ ÿ;INCREMENT BY TWO ÿMOVB ÿ#13,@R1 ÿ ÿ;VERTICAL TAB ÿMOVB ÿ#77,-(R1) ÿ;QUESTION MARK ÿSUB ÿR0,R1 ÿ ÿ;PRINT COMMAND UP TO ÿ ÿ;ERROR DATA BYTE FOLLOWED BY ? VT. ÿMOV ÿR1,@R0 ÿMOV ÿ#SIBUF2,-(R6) ÿMOV ÿR2,-(R6) ÿEMT ÿWRCMD ÿBR ÿCSIOK2 ÿ ÿ;PRINT # AGAIN. ;CLOSE AND RELEASE COMMAND ;OUTPUT DEVICE CSIOK1: ÿMOV ÿR2,R1 ÿTRAP ÿCLEAN ÿCLR ÿCOFLAG-O01 ÿ;FOR ^C BEGIN & RESTART ÿCLRB ÿFRCABS-Z ÿ ÿ ÿ ; OUTPUT NONE ;INSERT: SUBR20: MOVB ÿ R2,-(R6) ÿ ; STACK LOWER BYTE OF R2 ÿ BIC ÿ #177770,@R6 ÿ ; ONLY SAVE LOWER 3 BITS ÿ BISB ÿ (R6)+,@R5 ÿ ; SET COMMAND'S REG. BITS ÿ RTS ÿ R7 ÿ ; RETURN ; ÿ .PAGE ÿ ; SUBROUTINE FIELD END ÿ ÿ ; THIS SUBROUTINE SEPARATES TERMINATORS INTO ÿ ÿ ; THREE GROUPS. ÿ ÿ ÿ ; INPUT R3 = SAVTERM ADDRESS ÿ ÿ ÿ ; OUTPUT CONDITION CODED RESULTS ;D ÿ ÿ)+R6ÿ(T TS ÿ5:R4UB S: EGPRPO ;. NETIOU RNGLIAL CITEXD AN; ÿ RSTEISEG ROP PTOE INUTROUB Sÿ; N URET R ; ÿ ÿ ÿ R5E ORSTRE; ÿ ÿ 5 R ÿTS R ÿ R4E ORSTRE; ÿ 4 ,R)+R6 ( ÿOV M ÿ R3E ORSTRE; ÿ 3 ,R)+R6 ( ÿOV M ÿ R2E ORSTRE; ÿ 2 ,R)+R6 ( ÿOV M ÿ R1E ORSTRE; ÿ 1 ,R)+R6 ( ÿOV M ÿ SSREDD ARNTUREE THS VESA5 R ; ÿR5+,6)(R ÿ V MO 6:R1UB S: EGTRSE ; R TEISEG RDEWI- R SOESOCPRE ILATOL V AIS0 R ; ÿ ÿ RSTEISEG RET SNETIOUBRSU; ÿ N URET R ; ÿR7¬ÿ]O01 ÿ;DON'T FORCE @#A FOR A ÿMOVB ÿ#2,MAXPASS-O01 ÿ;DEFAULT # OF PASSES. ÿ;SOURCE INPUT ONE ÿCLR ÿCMDBUF-O01 ÿ;INPUT FILE ÿCLR ÿSIFB2-O01 ÿ;DEFAULT ÿCLR ÿSIFB2+2-O01 ÿ;FILENAME. ÿCLRB ÿSICNT-O01 ÿ;ONE INPUT. ÿMOV ÿ#BLOCK4-BEGO01+BEGOVR,R1 ÿ;CSI BLOCK ADDRESS ÿTRAP ÿCSICHK ÿBEQ ÿCSIOKD ÿ ÿ;NUL FIELD ÿBGT ÿCSIOKA ÿCLR ÿR4 ÿ ÿ;NOT PARAMETER FILE. CSIOKA: ÿMOVB ÿR4,PAPASS-O01 ÿ;NON-0 INDICATES PAR. FILE. ÿMOV ÿR5,SITAP1-O01 ÿ;# OF TAPES. ÿMOV ÿR5,SITAPE-O01 ÿTST ÿR3 ÿBEQ ÿCSIOKB^ ÿ ÿ ÿ ; ÿ > 0, IMPLIES , ÿ ÿ ÿ ; ÿ = 0, IMPLIES ; CR ÿ ÿ ÿ ; ÿ < 0, IMPLIES OTHER ;FLDEND: SUBR18: MOV ÿ #1,-(R6) ÿ ; STACK A ONE ÿ CMPB ÿ @R3,#TCCCOM ÿ ; IS THE TERMINATOR A, ? ÿ BEQ ÿ FLDEN1 ÿ ; YES ÿ CMPB ÿ @R3,#TCCSMC ÿ ; IS THE TERMINATOR A ; ÿ? ÿ BEQ ÿ FLDEN0 ÿ ; YES ÿ CMPB ÿ @R3,#TCCCRE ÿ ; IS THE TERMINATOR A CR ? ÿ BEQ ÿ FLDEN0 ÿ ; YES ÿ DEC ÿ @R6 ÿÿ ÿ ; RETURN NEGATIVE FLDEN0: ÿ S RTÿ 5 RCKTA S ; ÿ6)(R125, R ÿOV M ÿ SSREDD ARNTUREE THK ACST; 6)(R,-6)(R10 ÿ V MOÿ 1 RCKTA S ; ÿ6)(R,-R1 ÿ V MOÿ 2 RCKTA S ; ÿ6)(R,-R2 ÿ V MOÿ 3 RCKTA S ; ÿ6)(R,-R3 ÿ V MOÿ 4 RCKTA S ; ÿ6)(R,-R4 ÿ V MO 4:R1UB S: EGVRSA ; R TEISEG RDEWI- R SOESOCPRE ILATOL V AIS0 R ; ÿ ÿ RSTEISEG RVESAE INUTROUB S ; ÿ E AG.Pÿ ; RNTURED ANS ERSTGIRET SEL AL C ; G REOP P ÿ¨ÿa ÿ ÿ;ANOTHER INPUT FILE. CSIOKG: ÿMOV ÿSIFB1-O01,SIFB2-O01 ÿ;FOR CSICHK DEFAULT ÿMOV ÿSIFB1+2-O01,SIFB2+2-O01 ÿ;FILENAME ÿBR ÿCSIOKC ÿ;SOURCE INPUT TWO CSIOKB: ÿMOV ÿ#BLOCK5-BEGO01+BEGOVR,R1 ÿTRAP ÿCSICHK ÿBEQ ÿCSIOKG ÿ ÿ;NULL FIELD ÿTST ÿR3 ÿ ÿ ÿBNE ÿCSIOKH ÿ ÿ;TOO MANY INPUTS? ÿCLR ÿ-(R6) ÿ ÿ;YES ÿMOV ÿ#ERR6,-(R6) ÿJMP ÿERROUT-O01 CSIOKH: ÿMOV ÿR5,SITAP2-O01 ÿ;# OF TAPES ÿINCB ÿSICNT-O01 ÿ ÿ;TWO SOURCE FILES ÿ;BINARY OUTPUT CSIOKC: ÿMOV ÿ#2,CMDBUF-O01 ÿ;GET OUTPUT SPEC. ÿb DEC ÿ @R6 ÿ ÿ ; RETURN ZERO FLDEN1: TST ÿ (R6)+ ÿ ; RETURN POSITIVE ÿ ÿ ÿ ÿ ; SET THE CONDITION CODES ÿ RTS ÿ R7 ÿ ; RETURN ; ÿ .PAGE ÿ.EOT ÿ ÿ ÿ;END OF FILE #10 ÿ ; SUBROUTINE PARENTHESIS SEPERATOR ÿ ÿ ; THIS SUBROUTINE SEPERATES RIGHT AND LEFT ÿ ÿ ; PARENTHESES FROM OTHER TERMINATORS. IT ALSO ÿ ÿ ; SETS THE PARENTHESIS SEEN FLAG BIT AND ÿ ÿ ; MAINTAINS THE PARENTHESIS COUNTER. ÿ ÿ ÿ ; INPUT R2 DEDICATED REGISTER ÿ ÿ ÿ ; OUTPUT APTRÿ G INCKPAE ATERITRE, PENO; ÿ 0 40OD M ÿLE B ÿ ?6 M+SYMP T >R5S I ; 6 M+SYMP#T5, R ÿMP C ÿ +3R5= 5 R ; ÿR53, # ÿDD A ÿ R4T ENEMCRIN; ÿ ÿ ÿ ÿ ÿ ADRI TNTTAULES R =4)(RYMPSTM; ÿ + 4)(R3, R ÿOV M: 02D4MO ERCTRAHA CXTNES ESOCPR; ÿ 1 40OD M ÿBRÿ T ULES RALTIAR+PUM S =UM S ; ÿR3+,6)(R ÿ D ADÿ 3 R ÿSL A ÿ TSBI2 T EF LUM SFTHI S ; ÿ ÿR3 ÿ L ASÿ T ULES RALTIAR PVESA; ÿ ) R6-(3, R ÿOV M ÿ R3 ÿ L ASÿ 3 R ÿSL A ÿ TSBI3 ¤ÿeÿMOV ÿ#BLOCK1-BEGO01+BEGOVR,R1 ÿ;CSI BLOCK ADDRESS ÿTRAP ÿCSICHK ÿBGE ÿCSIOK3 ÿ ÿ;>0=PASS SPECIFIED. ÿMOV ÿ#2,R4 ÿ ÿ;PASS 2 DEFAULT CSIOK3: ÿMOVB ÿR4,BOPASS-O01 ÿ;0=NO BINARY ÿTST ÿR3 ÿBEQ ÿCSIOK4 ÿ ÿ;MORE OUTPUT FILES. ÿCLRB ÿLOPASS-O01 ÿÿ;NO MORE OUTPUT FILES. CSIOK6: ÿCLRB ÿSTPASS-O01 ÿ ÿ;ZEROING THEIR PASS ÿBR ÿCSIOK8 ÿ ÿ;BYTE PROHIBITS OUTPUT ;1ST INPUT FIELD WAS NULL. CSIOKD: ÿTST ÿR3 ÿBNE ÿCSIOKE ÿ ÿ;OK IF NO MORE INPUTS CSIOKF: ÿCLR ÿ-(R6) ÿMOV ÿ#ERR7,-(R6) ÿ;INPUT FILE fCONDITION CODED RESULTS ÿ ÿ ÿ ; ÿ ) NEGATIVE ÿ ÿ ÿ ; ÿ OTHERS ZERO ÿ ÿ ÿ ; ÿ ( POSITIVE ;PARSEP: ÿ ÿ ÿ ; PLACE THE PCOUNT BYTE SUBR19: SWAB ÿ R2 ÿ ÿ ; INTO LOWER R2 ÿ CLR ÿ -(R6) ÿ ; STACK A ZERO ÿ CMPB ÿ @R3,#TCCLPA ÿ ; IS TERMINATOR A ( ? ÿ BEQ ÿ PARSE0 ÿ ; YES ÿ CMPB ÿ @R3,#TCCRPA ÿ ; IS TERMINATOR A ) ? ÿ BNE ÿ PARSE2 ÿ ; NOPE ÿ DEC ÿ @R6 ÿ ÿ ; DECREMENT STACKED ZERO ÿ DECBT EF LUM SFTHI S ; ÿ ÿR3 ÿ L ASÿ D TELEMPCOD IATR, PENO; ÿ 2 40OD M ÿGE B ÿ ?5 R 7 ? ÿ BGT ÿ RCHE00EL BSSREDD AST;1 ÿR3P,TOSRÿUV MO ÿ SEBAE BLTAÿ;2 ,ROPNTCO ÿOVÿM: HERCSE E.BLTAL BOYM SERUSH RCEA;S ÿ E.BLTAL BOYM;S ÿ ERUSE THH RCEA STOE ER HESOM COLTRON;C ÿ D,KEAC PDYEALR A+3YMPSTM, +1YMPSTMN IOLMBSYÿ; E THH IT WCHARSEO TLLCAD ONEC S AONÿ; . OLMBSYE ETPLOM CTHWIÿ;ÿ ÿ ÿ ÿ ST U &ST PCHARSE--S-YEÿ;ÿ H CHERÿSE BN ÿ D?LEABEND CMYT BISÿ;ÿ 5 @R ÿSTÿT: HGRCSE ST PIND UNFOT NOH TCMAÿ; 7 ÿRS RT ÿ R0 ÿSTÿT G REETÿSP RAÿT: HIRCSE X.DEINS ASCLÿ;S ASCL,IR4 ÿVBMO ÿ ONTIUCTRNS IVESAÿ;4 ,R417717ÿ#C BI”ÿuONE ÿMOV ÿ#MISS3-BEGO01+BEGOVR,SIFB1-4-O01 ÿ;SET UP ERROR RETURN MISS4: ÿMOV ÿ#SIFB1,-(R6) ÿMOV ÿÿ@R6,SIFB-O01 ÿ;PROCESS FILE ONE FIRST ÿMOV ÿR1,-(R6) ÿEMT ÿOPN ÿCLR ÿSIFB1-4-O01 ÿ;LET MONITOR HANDLE ERRORS ÿ;PROCESS FILE ONE FIRST ÿMOV ÿR1,SILB-O01 ÿ;OBTAIN 1ST FREE ADDRESS ABOVE ÿ;FULL MONITOR ÿMOV ÿ#102,-(R6) ÿEMT ÿ41 ÿADD ÿÿ#STKSIZ,@R6 ÿ;ADD STACK SIZE ÿMOV ÿ(R6)+,R6 ÿ;TO IT AND RESET ÿMOV ÿR6,STKBOT-O01 ÿ;STACK POINTER AND BASE ÿCLRB ÿCNSTLV-O01 ÿ;CLEAR CONDITIONAL ASv ÿ ; YES, FORCE REGISTER ZERO ÿ TSTB ÿ RSLMOD ÿ BNE ÿ RCHE00 ÿ TST ÿ R0 ÿ ÿ ; IS R0 < 0 ? ÿ BGE ÿ RCHE02 ÿ ; NOPE, RETURN NOT NEGATIVE RCHE00: INCB ÿÿ RERROR ; FORCE ÿ SET REGISTER ERROR ÿ CLR ÿ RESULT ÿ ; RESULT = 0 ÿ RTS ÿ R7 ÿ ; RETURN, CONDITION CODE 'Z' IS SET RCHE01: MOV ÿ #100000,R0 ÿ ; SET ONLY R0 SIGN BIT ÿ ÿ ÿ ÿ ; CONDITION CODES ARE SET RCHE02: RTS ÿ R7 ÿ ; RETURN ; ÿ .PAGE ÿ R4 ÿSRÿA 4 ÿRR AS ÿ R4 ÿSRÿA 4 ,RGSLATF ÿVBMO ÿF:CHER SR TOCADIINE YT BET;S ÿTYTIANQU0,0000#1 ÿISÿB O ;N ÿ ÿH3RCSE ÿEQÿB ? EDBLNA ETEBYC NIMONE;M ÿGSLATFG,FLYT#B ÿTBBI ÿ =0MDTCBYÿ;ÿ 5 @R ÿLRÿC . NTTANSCO0 D4MOE IVCTFEEFÿ;ÿ ÿ ÿ E TH2+ADRI=TD2IATRÿ;ÿ ÿ ÿ B 'EDETEL DHE TCELAEP;R ÿ+3YMPSTM5,@R ÿDDÿA: HHRCSE NOÿ;ÿ F CHERÿSQ BE ÿ D?LEABEND CMYT BISÿ;ÿ 5 @R ÿSTÿT T PSN INDOU FCHAT;M ÿ NDOU FOT NCHAT;M ÿ ÿHGRCSE ÿEQÿB H RCEA SRYNABIÿ;ÿ H RCNSBI ÿAPTR ÿ LEAB TOWEL BSSREDD AST;1 ÿR3P,TOERÿPV �ÿySEMBLY COUNTERS ÿCLRB ÿDNTACT-O01 ;SYMBOL TABLE INITIALIZATION ÿ;CLEAR ALL HAS BEEN RE-DEFINED FLAGS ÿ;(BIT 1 OF HIGHEST WORD OF THE ENTRY) ÿ;IN THE PERMANENT SYMBOL TABLE. ÿ; STINIT: ÿMOV ÿPERBOT-O01,R0 ÿ;ADDRESS (HIGHEST) OF 1ST ENTRY. ÿMOV ÿPERTOP-O01,R1 ÿ;ADDRESS OF 1ST (LOWER) FREE REGISTER. STINI1: ÿCMP ÿR0,R1 ÿBEQ ÿSTINI0 ÿ ÿ;DONE WHEN MATCH. ÿBIC ÿ#REDEF,@R0 ÿ;CLEAR RE-DEFINED BIT. ÿSUB ÿ#10,R0 ÿ ÿ;DECREMENT POINTER BY 4 WORDS. ÿBR ÿSTINI1 ÿ;INITIALIZE THE 1ST CONTROz ÿ ; SUBROUTINE NEXT TERMINATOR ÿ ÿ ; THIS SUBROUTINE SIMPLY MOVES THE CURBYTE ÿ ÿ ; POINTER TO THE NEXT NON-BLANK OR ÿ ÿ ; NON-TAB CHARACTER. THEN THIS CHARACTER ÿ ÿ ; IS EXAMINED TO DETERMINE IF IT IS A ÿ ÿ ; TERMINATOR. SAVTERM REFLECTS THE RESULTS. ÿ ÿ ÿ ; INPUT NONE ÿ ÿ ÿ ; OUTPUT NONE ;NEXTERM: SUBR17: TRAP ÿ CBTABS ; CALL CHECK FOR BLANKS AND TABS ÿ JSR ÿ R7,TERMIN ; CALL TERMINATOR IDENTIFICATION ÿ RTS ÿ R7 ÿ MO ÿ SEBAE BLTAÿ;2 ,ROTRBPE ÿOVÿM: H3RCSE LEAB TOLMBSYT ENANRMPEH RCEA;S ÿ SSREDD A0)M(SYMP T =R1; ÿ ÿ 1 R ÿNC I ÿ4:40OD MB CHER S ÿAPTRÿ 4 40OD M ÿEQ Bÿ ? 0 =0)M(SYMP TIS; ÿ ÿ 1 @R ÿ B ST T ÿ0:D4MO SSREDD ARYMOMED OD ÿ ; ÿ ÿ ÿ ÿ ANT ABET US M0)M(SYMP T ÿ ; ÿ ÿ ÿ ADRI TNDCOSE= ) ,4(3YMPSTM ÿ ; ÿ ÿ ÿ D IATR STIR F =2)1,M(SYMP T ÿ ; ÿ ÿ ÿ 0 +0)M(SYMP TT PUUT O ; ÿ ÿ ÿ NGKIAC PIDVO AENTH ÿ ; ÿ ÿ ÿ Œÿ}L SECTION ENTRY: ÿ;THE ENTRY IS 4 WORDS OF 0 (THE UNNAMED ÿ;CONTROL SECTION). ÿ;CONTOP=C(PERTOP)-4 (WORDS) STINI0: ÿCLR ÿ@R1 ÿ ÿ;CLEAR ÿCLR ÿ-(R1) ÿ ÿ;FOUR ÿCLR ÿ-(R1) ÿ ÿ;WORD ÿCLR ÿ-(R1) ÿ ÿ;ENTRY. ÿÿCLR ÿ-(R1) ÿ ÿ;JUST TO DECREMENT R1 ÿMOV ÿR1,CONTOP-O01 ÿ; ÿ;INITIALIZE TOP OF UST TO TOP OF CONTROL ÿ;SECTION AREA. ÿMOV ÿR1,USRTOP-O01 ÿ; ÿ;ENTER THE USER PC SYMBOL . INTO ÿ;THE UST. ÿMOV ÿR1,HINDEX-O01 ÿ;HIGHEST ADDRESS OF SLOT. ÿMOV ÿ#127400,TMPSYM+1-O01 ÿ;1ST TRIAD ~ ; RETURN ; ÿ .PAGE ÿ ; SUBROUTINE EXPRESSION ÿ ÿ ; THIS SUBROUTINE EVALUATES AN EXPRESSION UNTIL ÿ ÿ ; THE RETURNING TERMINATOR HIERARCHY IS SATISFIED ÿ ÿ ; THE TERMINATOR HIERARCHY IS AS FOLLOWS: ÿ ÿ ; ÿ (FROM LEAST TO MOST IMPORTANT) ÿ ÿ ; ÿ PARENTHESES ÿ ÿ ÿ ÿ -1 ÿ ÿ ; ÿ COMMAS ÿ ÿ ÿ ÿ 0 ÿ ÿ ; ÿ SEMICOLONS AND CARRIAGE-RETURNS ÿ +1 ÿ ÿ ; IF A TERMINATOR IS ENCOU 0 =0)M(SYMP TIF ÿ ; ÿ ÿ ÿ S ESDRAD) (0YMPSTM= 1 R UTNP I ; ÿ ÿ ÿ R6HA C +405*ARCH+ 2 **404*ARCH= ÿ ; ÿ ÿ R3HA C +402*ARCH+ 2 **401*ARCH= D KEAC P ; ÿ ÿ ERCKPA0 D4MOE INUTROUB SENOP; ÿ 1:CHER ST ANSTON CB' '40OD M ; ÿ ÿ ÿ ÿ VETIECFF EHE T =MDTCBY; R5,@0)(RONTCBY ÿ V MOÿ 2 0* R =R0; ÿ ÿ ÿR0 ÿ L ASÿ R.HA CSTLAE THT OUK ANBL; 0)ˆÿ�ÿCLR ÿTMPSYM+3-O01 ÿ;2ND TRIAD ÿTRAP ÿENTER ÿMOV ÿR1,HUSERPC-O01 ÿ;HIGHEST ADDRESS OF USER PC ENTRY ÿTST ÿ-(R1) ÿ ÿ;ADDRESS OF VALUE WORD ÿMOV ÿR1,USERPC-O01 ÿ;OF USER PC ENTRY. ÿJMP ÿSETP5-O01 ; ;FILE STRUCTURE ERROR--INPUT FILE #2 MISS1: ÿCLR ÿSIFB2-4-O01 ÿ ÿ;LET MONITOR HANDLE ERROR NEXT TIME ÿCMP ÿSIFB2+4-O01,BLOCK5+6 ÿ;IS EXT PAL? ÿBNE ÿMISS2 ÿ ÿ ÿ;BRANCH IF NOT-FORCE ERROR ÿCLR ÿSIFB2+4-O01 ÿ ÿ;MAKE EXT NULL ÿBR ÿMISS2 ÿ ÿ ÿ;TRY AGAIN ; ;FILE STRUCTURE ERROR--INPUT FILE #1 MI‚NTERED POSSESSING ÿ ÿ ; ÿ MORE SIGNIFICANCE THEN THE REQUESTED ÿ ÿ ; ÿ TERMINATOR, THEN THE SUBROUTINE WILL RETURN. ÿ ÿ ; EXPRESSIONS ARE EVALUATED FROM LEFT TO RIGHT AND ÿ ÿ ; PARENTHETICAL GROUPING IS NOT PERMITTED. ÿ ÿ ÿ ; INPUT R0 MUST EQUAL ZERO ÿ ÿ ÿ ; OUTPUT CONDITION CODED RESULTS ARE ÿ ÿ ÿ ; ÿ RELATIVE TO THE ITEM COUNTER ÿ ÿ ÿ ; RSLMOD: ÿ ÿ ÿ ; +1 = RELOCATABLE EXPRESSION, ÿ ÿ ÿ ; CURRENT .CSECT ÿ ÿ ÿ ; 0 = ABSOLUTE EXPRE(R-1YMPSTM ÿ B LR C ÿ NDMAOM CTEBYA Y LLIANTTEPO, ES Y ; ÿ ÿ ÿ EDBLSADID ANMMCOE YT BE,OP N ; ÿH1RCSE ÿ E BNÿ ? ' 'BA . ARCHT AS LIS; 2 ,#0)(R-1YMPSTM ÿ B MP C ÿ EDBLSADID ANMMCOE YT BE,OP N ; ÿH1RCSE ÿ E BLÿ ? . RSHA C 3ANTHE OR MREHE TRE A ; ÿ#30, R ÿPBCMÿ EDBLSADID ANMMCOE YT BE,OP N ; ÿH1RCSE ÿ E BGÿ ? . RSHA C 6ANTHS ES LREHE TRE A ; ÿ#60, R ÿPBCMÿ T UNCO. ARCHS L'BOYM S =R0; „ÿ…SS3: ÿCLR ÿSIFB1-4-O01 ÿ ÿ;LET MONITOR HANDLE ERROR NEXT TIME ÿCMP ÿSIFB1+4-O01,BLOCK4+6 ÿ;IS EXT PAL? ÿBNE ÿMISS4 ÿ ÿ ÿ;BRANCH IF NOT-FORCE ERROR ÿCLR ÿSIFB1+4-O01 ÿ ÿ;MAKE EXT NULL ÿBR ÿMISS4 ÿ ÿ ÿ;TRY AGAIN ;SUBROUTINE CSICHK: CALLS CSI2 (COMMAND STRING ;INTERPRETER PHASE II). ;ALL SWITCHES EXCEPT PASS [PA] ;AND TAPES [TA] AND FORCE @#A [37]ARE ILLEGAL.. ;IT WILL USE DEFAULT ;EXTENSION NAMES IF NONE SPECIFIED. ;IT WILL†SSION ÿ ÿ ÿ ; -1 = .GLOBL EXPRESSION ÿ ÿ ÿ ; -2 = RELOCATABLE EXPRESSION, ÿ ÿ ÿ ; NOT CURRENT .CSECT ÿ ÿ ÿ ; (OR .ASECT) ; TERMINATOR TABLE ENTRY ORDER ; = : , CR ; ! & - + ' " ) ( TAB BLANK % @ # ÿ -1 ... -18 ; ÿ TERMINATOR ANALYSIS DIAGRAM ; TERMINATORS ÿCLASS ÿ PAREN COMMAS ÿ ÿCR ; ÿ ÿ ÿ -1 ÿ 0 ÿ ÿ+1 ; ^ & - + ' " 1 ÿ PROCESS ÿPROCESS PROCESS ; ; CR ÿ 2 ÿ RETURN ÿRETURN ÿ RETURN ; : = TAB BLK # @ ÿ QE ÿ 0 ,RARCHNT C ÿVBMO 0:CHER SN IOATOGRRTEIND ANMMCOE YT B ; ÿ ÿ ÿ ST UOFG INCHARSEE ATTINI I ; ÿHERCSE ÿ ÿBRÿ R1T ENEMCRIN; ÿ ÿ 1 R ÿNC I ÿ EDCKPAY ADREAL; ÿ ÿ ÿ ÿ T YED KEAC POT N ; ÿH0RCSE ÿ E BNÿ ? 0 =0)M(SYMP TIS; ÿ ÿ ÿ ÿ ? EDCKPAY ADREALL BOYM SIS; ÿ ÿ 1 @R ÿ B ST T ÿ 0 =MDTCBY; ÿ ÿ 5 @R ÿ R CLÿ S ESDRADD CMYT B =R5; ÿ 5 ,RMDTCBY # ÿOV M ÿ SSREDD€ÿ‰ UPDATE MAXPASS IF NECESSARY. ;IT WILL USE SOURCE FILENAME AS DEFAULT FOR ;OTHER DATA SETS. ÿ; ÿ;INPUT: ÿ; R1=ADDRESS OF CSI BLOCK ÿ; ÿ1ST WORD : ADDR OF CMDBUF ÿ; ÿ2ND WORD : ADDR OF LINK BLOCK ÿ; ÿ3RD WORD : ADDR OF FILE BLOCK ÿ; ÿ4TH WORD : DEFAULT EXTENSION ÿ; ÿ; ÿ;OUTPUT: ÿ; ÿR3 ÿ; ÿ ÿ0 STILL MORE OF SAME TYPE ÿ; ÿ ÿ1 NO MORE OF SAME TYPE ÿ; ÿ; ÿR4 AND STATUS ÿ; ÿ ÿ00R0 ÿ ÿ ÿÿ; S DECON IOITNDCOE THS ET SR0 ÿT:PUUTÿOÿ ; ÿ LEAB TOLMBSY. MPTE ÿT:PUIN ÿ ÿÿ; ; ÿ H.RCNSBIG xÿ‘CK ÿTST ÿ6(R2) ÿ ÿ;PHYSICAL DEVICE NAME ÿBNE ÿCSICH2 CSICH1: ÿTST ÿR4 ÿ ÿ;RETURN ÿRTS ÿR7 CSICH2: ÿMOV ÿ4(R1),R5 ÿ;ADDR OF FILE BLOCK ÿTST ÿ4(R5) ÿBNE ÿCSICH3 ÿMOV ÿ6(R1),4(R5) ÿ;USE DEFAULT EXTENSION CSICH3: ÿTST ÿ(R5) ÿ ÿ;WAS FILENAME SPECIFIED ÿBNE ÿCSICH6 ÿ ÿ;YES ÿMOV ÿSIFB2-O01,@R5 ÿ;DEFAULT---USE INPUT ÿMOV ÿSIFB2+2-O01,2(R5) ÿ;FILENAME CSICH6: ÿMOV ÿ#1,R5 ÿ ÿ;DEFAULT NO. OF TAPES ÿDEC ÿR4 ÿ ÿ;R4<0 INDICATE’ ; R4 = QUANTITY'S ADDRESS ÿ MOV ÿ #CURBYTE,R3 ÿ ; R3 = CURBYTE'S ADDRESS ÿCLRB ÿ RSLMOD ÿ CLR ÿ @R5 ÿ ÿ ; RESULT = 0 ÿ CLRB ÿ R1 ÿ ÿ ; ZERO THE OPERATOR COUNTER ÿ CLRB ÿ PRGSEC ÿ ÿ;.CSECT ID OF PREVIOUS RELOCATABLE SYMBOL EXPR00: ÿ ; CYCLING OPERATOR-ITEM ACQUISITION ÿ CLRB ÿ R2 ÿ ÿ ; ZERO THE EFFECTIVE OPERATOR ÿ ÿ ÿ ÿ ; DEFAULT OPERATOR IS ADDITION ÿ TSTB ÿ ITEMIN ;INIZILUTD HERCEA;S ÿ ISY NL OST UHE TL,BOYM SEDCKPAY ADREALÿ; N AOR FCHARSEO TRYNT END 2HE TONÿ; . RYSAESEC NIFT USE THN HE TND AST;P ÿ HE TNGHIRCEA SSTIR FY,LLMAOR NSSCERO PL,BOYM SPETY' 'BA T NOF ;I ÿ E OVAB. 1ASS ESOCPRN HE TOT NIF B.ÿ; . RNTURED ANY ITNTUA QINT BI ÿ; R TOCADIINE YT BHE TET SENTH, ET SIF A.ÿ; . AGFLG INBLNA ETEBYS L'BOYM S ; ÿ HE TCKHE CENTH, ST PHE TIN ÿ; D UNFOS IOLMBSYD TEIAEVBRABE THF I. ;2 ÿtÿ•S NO PASS SWITCH ÿ;CHECK FOR SWITCHES ÿMOVB ÿ4(R2),R1 ÿ;MAXIMUM SWITCH WORDS. ÿADD ÿ#10,R2 ÿ ÿ;POINT TO 1ST SWITCH CNTR. CSICHB: ÿDEC ÿR1 ÿ ÿ;COMPENSATE FOR DEV.NAME & SWITCH CNTRS. ÿBLE ÿCSICH1 ÿ ÿ;NO MORE SWITCHES ÿSUB ÿ@R2,R1 ÿ ÿ;DECREMENT MAX.CNTR BY SWITCH CNTR. ÿCMP ÿ(R2),#1 ÿBLT ÿCSICH1 ÿ ÿ;NO MORE SWITCHES ÿCMP ÿ(R2)+,#2 ÿBLT ÿCSICHD ÿ ÿ;SWITCHES WITHOUT VALUE ÿBGT ÿCSICH5 ÿ ÿ;TOO MANY VALUES ÿMOV ÿ(R2)+,-(R6) ÿ;ADDRESS OF 1ST VALUE BYTE ÿMOV ÿ#2,-(R6) ÿ;DEC. ASCII TO BINA– PENDING ITEM ? ÿ BEQ ÿ EXPR01 ÿ ; NOPE, ACQUIRE INITIAL ITEM ÿ CLRB ÿ ITEMIN ÿ ; YES, CLEAR THE FLAG ÿ TSTB ÿ ITYPE ÿ ; HOW IS THIS ITEM TYPED ? ÿ BLE ÿ EXPR16 ÿ ; NUMBERS, ERRORS, AND ASCII DATA ÿ ÿ ÿ ÿ ; SYMBOLS PROCESSED ÿ INCB ÿ ICOUNT ÿ ; INCREMENT THE ITEM COUNTER ÿ TSTB ÿ TMPSYM ÿ ; HAS THIS SYMBOL BEEN PACKED ? ÿ BEQ ÿ EXPR0G ÿ ; YES, PROCESS PENDING ITEM ÿ BR ÿ EXPR0C ÿ ; NO, PROCESS THE PENDING ITEM EXPR01 T.USE THY ARSSCENEF IND AST P ; ÿ E THH RCEA SSTIR F. OLMBSYL TATO ÿ; E THR FOG INCHARSEE ATTINI IND A ; ÿ K ACEP RR,TEACARCH' 'BE THE ACPLRE ÿ; N HE TD,UNFOT NOS IOLMBSYS HI TIF .);1 ÿ OLMBSYD TEIAEVBRABÿ; S HI TOR FST PHE TCHARSEÿ; N HE TB' 'HE TUTHOIT WRSTEACARCHK AC;P ÿ S.URCC ONGSIESOCPRL IAECSPÿ; N HE TB' ' AISR TEACARCHT AS LHE TIFD ANÿ; S ERCTRAHA C 5OR4 S SEESSSPOL BOYM SHE TIFÿ; : CELA PESAK TNGWILOOL FHE TL,BOYM;S ÿ AOR FCHARSEO TRYNT EST 1HE TONÿ; ; ÿ H.RCNSBIE pÿ™RY ÿEMT ÿ42 ÿ ÿ;STOPS ON NON-NUMERIC ÿMOV ÿ(R6)+,@R6 ÿ;CLEAN STACK ÿMOV ÿ(R6)+,R0 ÿ;SWITCH VALUE ÿBLE ÿCSICH5 ÿ ÿ;VALUE LESS THAN 1, ERROR ÿCMP ÿ@R2,#40520 ÿBEQ ÿÿCSICHC ÿ ÿ;PASS SWITCH ÿCMP ÿ@R2,#40524 ÿBNE ÿCSICH5 ÿ ÿ;ILLEGAL SWITCH ÿMOV ÿR0,R5 ÿ ÿ;TAPES SWITCH CSICHA: ÿTST ÿ(R2)+ ÿ ÿ;POINTS TO NEXT SWITCH CNTR. ÿBR ÿCSICHB CSICHC: ÿCMP ÿR0,#4 ÿ ÿ;'PA ÿBGE ÿCSICH5 ÿ ÿ;PASS .GT. 3, ERROR ÿMOV ÿR0,R4 ÿCMPB ÿMAXPASS-O01,R4 ÿ;ADJUST MAXPASS ÿBGE ÿCSICHA ÿ ÿ;IF NECESSARY ÿMOVBš: ÿ ; INITIAL ITEM ACQUIRED ÿ DEC ÿ @R3 ÿ ÿ ; DECREMENT CURBYTE POINTER EXPR02: ÿ ; CYCLING ITEM ACQUISITION ÿ TRAP ÿ ITEM ; CALL ITEM SUBROUTINE ÿ BGT ÿ EXPR0C ÿ ; NON-VOID ITEM ENCOUNTERED ÿ ÿ ; VOID ITEM ENCOUNTERED AND PROCESSED EXPR12: MOVB ÿ SAVTERM,R0 ÿ ; R0 = ENCODED TERMINATOR ÿ ADD ÿ #3,R0 ÿ ; R0 = R0+3 ÿ BGT ÿ EXPR04 ; ÿ= : TERMINATORS IDENTIFIED ÿ BEQ ÿ EXPR09 ; ÿ, TERMINATOR IDENTIFIED ÿ ADD ÿ #2,R0 ÿ INUTROUB;S ÿ EDOSCLE THY BEDRMFOER PUEIQCNTEÿ; H RCEA SRYNABIE THG INIZILUTÿ; D HERCEA SLYTERAPESEE ARS EAARO TWE THÿ; . ESYT BIDN IOCTSEL RONTCOD ANS AGFLÿ; E THG ININTAON CSTHEIG HHE TND;A ÿ UEAL VHE TNGNIAINTCOT ESOW LXTNEÿ; E TH, ADRI T40OD MND 2HE TNGNIAINTCOÿ; T ESOW LXTNEE TH, ADRI T40OD MST;1 ÿ HE TNGNIAINTCOD OR WSTWELOE THÿ; H IT WDSOR W 4ISY TRENH AC E. ONTITANOÿ; 0 D4MON IEDERRD OLYNGSIEACRINS OLMBSYE THH IT;W ÿ D ARNWOW DUEINNTCOD ANE OR CINH IG;H ÿ INEG BESBLTAH OT B. EDDD ARElÿ� ÿR4,MAXPASS-O01 ÿBR ÿCSICHA CSICHD: ÿCMP ÿ@R2,#33463 ÿBNE ÿCSICH5 ÿ ÿ;ILLEGAL SWITCH ÿINCB ÿFRCABS-O01 ÿBR ÿCSICHA ;CALL CLEAN TO .CLOSE AND .RELEASE ALL ÿ;.INIT'D DATA SETS: ÿ;SOURCE INPUT FILE RRSTRT: ÿMOV ÿÿ#SILB1,R1 ÿ;ADDRESS OF LINK BLOCK ÿTRAP ÿCLEAN ÿ;SECOND SOURCE INPUT FILE ÿMOV ÿ#SILB2,R1 ÿTRAP ÿCLEAN ÿ;BINARY OUTPUT FILE ÿMOV ÿ#BOLB,R1 ÿ;ADDRESS OF LINK BLOCK ÿTST ÿ@R1 ÿ ÿ;IS BINARY OUTPUT DATA ž ; R0 = R0+2 ÿ BGE ÿ EXPR0B ; ÿCR ; TERMINATORS IDENTIFIED ÿ ADD ÿ #6,R0 ÿ ; R0 = R0+6 ÿ BGE ÿ EXPR05 ; ÿ! & - + ' " ÿ ÿ ÿ ; ÿ TERMINATORS IDENTIFIED ÿ ADD ÿ #2,R0 ÿ ; R0 = R0+2 ÿ BGE ÿ EXPR0A ; ÿ) ( TERMINATORS IDENTIFIED ÿ ADD ÿ #3,R0 ÿ ; R0 = R0+3 ÿ BNE ÿ EXPR04 ; ÿTAB BLANK @ # ÿ ÿ ÿ ; ÿ TERMINATORS IDENTIFIED ÿ ÿ ÿ ; ÿ% TERMINATOR IDENTIFIED ÿ MOVB ÿ #REGFLG,REGTYPE ; TYPE EXPRESSION AS REGISTE ALSBOYM;S ÿ EW NASE OR CINS RDWAWNDOS NDPAEXÿ; D ANP TOSR UND AOPNTCOS ERNTOI PHE TBYÿ; ÿ EDNDOU BIS) ST(UE BLTAL BOYM SERUSE THÿ; . EDIX FISD ANP TOER PND AOTRBPEÿ; S ERNTOI PHE TBYD DEUNBOS IT)PS (LEAB;T ÿ OLMBSYT ENANRMPEE TH S.ONTIEC SEDERRD;O ÿ WO TTOIND DEVIDIS ILEAB TOLMBSYE THÿ; H RCEA SLEAB TOLMBSYE INUTROUB;S 8 #LEFIF OND;E ÿ ÿ ÿOT.Eÿ E AG.Pÿ ; ERCTRAHA CXTNEK ECCH; ÿ T0CB ÿ R B ÿ +1AGFLBT= G LATF Bhÿ¡ÿBEQ ÿSPECIAL ÿ ÿ;SET INIT'D? ÿMOV ÿR1,-(R6) ÿ;YES ÿEMT ÿCLS ÿ ÿ;CLOSE FILE ÿMOV ÿ#BOFB,-(R6) ÿMOV ÿR1,-(R6) ÿ;DELETE FILE ÿEMT ÿDLT ÿMOV ÿR1,-(R6) ÿ;RELEASE DATA SET ÿEMT ÿRLS ÿ;LISTING OUTPUT FILE SPECIAL: MOV ÿ#LOLB,R1 ÿ;ADDRESS OF LINK BLOCK ÿTRAP ÿCLEAN ÿ;SYMBOL OUTPUT FILE ÿMOV ÿ#SLLB,R1 ÿ;ADDRESS OF LINK BLOCK ÿTRAP ÿCLEAN ÿ;COMMAND OUTPUT FILE ÿMOV ÿ#COLB,R1 ÿ;ADDRESS OF LINK BLOCK ÿTRAP ÿCLEAN ÿ;COMMAND INPUT FILE ÿMOV ÿ#CILB,R1 ÿ;ADDRESS OF LINK BLOCK ÿTRAP ÿ¢R ÿ BR ÿ EXPR02 ÿ ; ACQUIRE THE NEXT ITEM ; ÿ .PAGE EXPR04: ÿ ; CLASS 3 TERMINATORS PROCESSED ÿ TRAP ÿ SETERR ; CALL SET ERRORS ÿ BR ÿ EXPR02 ÿ ; ACQUIRE THE NEXT ITEM EXPR05: ÿ ; CLASS 1 TERMINATORS PROCESSED ÿ (OPERATORS) ÿ DEC ÿ R0 ÿ ÿ ; R0 = R0-1 ÿ BGT ÿ EXPR07 ÿ ; SEPARATE OPERATORS ! & - + ÿ INC ÿ @R3 ÿ ÿ ; INCREMENT CURBYTE POINTER ÿ CLR ÿ @R4 ÿ ÿ ; QUAN ; ÿAGFLBT ÿ B NC I ÿ1:BT CN URET R ; ÿR7 ÿ S RTÿ G LATF BMPBU, ES Y ; ÿ1 BT C ÿEQ B ÿ ?AB T AERCTRAHA CIS; E YTRBCU,@11#0 ÿ B MP C ÿ AGFLBTP UM BS,YE; ÿ T1CB ÿ Q BEÿ ? NKLA B AERCTRAHA CIS; E YTRBCU,@40#0 ÿ B MP C ÿ +1TEBYUR C =TEBYUR C ; ÿTEBYUR C ÿNC I ÿ0:BT C0 G=LATF B ; ÿAGFLBT ÿ B LR C: 10BRSU S:ABBT;C &.RETEUNCOENS IAB TORK ANBL; ÿ ÿ ÿ ÿ A E IM TCHEAD TEENEMCRINS IAGFLBT; ÿ ÿ ÿ ÿ S AB TND AKSANBLR FOK ECCHE INUTdÿ¥CLEAN ÿJMP ÿSTARTC-O01 ÿ.EVEN BLOCK1: ÿ.WORD ÿCMDBUF ÿ ÿ;BINARY OUTPUT ÿ.WORD ÿBOLB ÿ ÿ;LINK BLOCK ÿ.WORD ÿBOFB ÿ ÿ;FILE BLOCK ÿ.RAD50 ÿ/OBJ/ ÿ ÿÿ;DEFAULT EXT. BLOCK2: ÿ.WORD ÿCMDBUF ÿ ÿ;LISTING OUTPUT ÿ.WORD ÿLOLB ÿ.WORD ÿLOFB ÿ.RAD50 ÿ/LST/ ÿ ÿ;DEFAULT EXT BLOCK3: ÿ.WORD ÿCMDBUF ÿ ÿ;SYMBOL TABLE OUTPUT ÿ.WORD ÿSLLB ÿ.WORD ÿSLFB ÿ.RAD50 ÿ/SYM/ ÿ ÿ;DEFAULT EXT BLOCK4: ÿ.WORD ÿCMDBUF ÿ ÿ;SOURCE INPUT ONE ÿ.W¦TITY = 0 ÿ MOVB ÿ @0(R3),@R4 ÿ ; PLACE THE FIRST ASCII CHAR. ÿ ÿ ÿ ÿ ; INTO QUANTITY LOW BYTE ÿ TST ÿ R0 ÿ ÿ ; WAS THE TERMINATOR ' ? ÿ BEQ ÿ EXPR06 ÿ ; YES, SERVICE THE OPERATION ÿ INC ÿ @R3 ÿ ÿ ; INCREMENT CURBYTE POINTER ÿ MOVB ÿ @0(R3),QUANTITY+1 ; PLACE THE SECOND ASCII CHAR. ÿ ÿ ÿ ÿ ; INTO QUANTITY HIGH BYTE EXPR06: INC ÿ @R3 ÿ ÿ ; INCREMENT CURBYTE POINTER EXPR16: ÿ CLRB ÿ ITYPE ÿ CLR ÿ R0 ÿ BR ÿ EXPR0C ÿ ; SEROUB S ; ÿ ÿ E AG.Pÿ ; TEBYUR CNTMERENC IND A ; ÿ ÿ ÿ ÿ RSTONAMIER TLL AOR FCKHE C ; ÿ00EMIT ÿ R B ÿ E INUTRO; ÿ ÿ ÿ ÿ R BEUM N'SONTICAFITIENID; ÿ ÿ ÿ ÿ R TEACARCHO TRNTURE; ÿ 4 ,RERMBNU # ÿOV M: 08EMIT NETIOUBRSUM TE IRTBO A ; ÿ03EMIT ÿ R B ÿ 0 =TYTIANQU, PENO; ÿ Y ITNTUA Q ÿLR C ÿ NGSIESOCPRE NUTION CS,YE; `ÿ©ORD ÿSILB1 ÿ.WORD ÿSIFB1 ÿ.RAD50 ÿ/PAL/ ÿ ÿ;DEFAULT EXT BLOCK5: ÿ.WORD ÿCMDBUF ÿ ÿ;SOURCE INPUT TWO ÿ.WORD ÿSILB2 ÿ.WORD ÿSIFB2 ÿ.RAD50 ÿ/PAL/ ÿ.EVEN TITLBUF: ÿ.WORD ÿ20 ÿ;MAX BC ÿ.WORD ÿ0 ÿ ÿ;FORMATTED ASCII ÿ ÿ.WORD ÿ20 ÿ;BC ÿ.BYTE ÿCR,LF ÿ.ASCII ÿ/PAL11R V004A/ ÿ.BYTE ÿ13 ÿ ÿ;VERTICAL TAB ÿ.EVEN TITLBF: ÿ.WORD ÿ5 ÿ ÿ;MAX BC ÿ.WORD ÿ0 ÿ ÿ;FORMATTED ASCII ÿ.WORD ÿ5 ÿÿ ÿ;BC ÿ.BYTE ÿCR,LF,LF,43,13 ÿ;CR,LF,LF,#,VT ÿ.EVEN ÿ.IFNDF ÿNOSEG ENDO01: SIZO01=ENDO01-BEGO01 ªRVICE THE OPERATION EXPR07: TSTB ÿ R1 ÿ ÿ ; CHECK THE OPERATOR COUNTER ÿ BLE ÿ EXPR08 ÿ ; FIRST OPERATOR IS VALID ÿ TRAP ÿ SETERR ; CALL SET ERRORS ÿ CLRB ÿ R2 ÿ ÿ ; ZERO THE EFFECTIVE OPERATOR EXPR08: CLRB ÿ R1 ÿ INCB ÿ R1 ÿ ÿ ; INCREMENT OPERATOR COUNTER ÿ DEC ÿ R0 ÿ ÿ ; ENCODE OPERATOR SUCH THAT ÿ ÿ ÿ ÿ ; ADDITION IS ENCODED AS ZERO ÿ BISB ÿ R0,R2 ÿ ; SET THE EFFECTIVE OPERATOR ÿ BR ÿ EXPR02 ÿ ; PROCESS THE NEXT ITÿ 8 M0TE I ÿEQ B ÿ ?NDOU FITIG DIDAL V AAS W ; ÿ ÿR0 ÿ T TS 7:M0TE I* ** NGSIESOCPRR BEUMÿN* ** ÿ ; ÿ E YTRBCUT MNRENC IND A ; ÿ ÿ ÿ ÿ RSTONAMIER TLL AOR FCKHE C ; ÿ00EMIT ÿ R B ÿ NETIOU RONTICAFITIENID; ÿ ÿ ÿ ÿ R TEACARCHO NT ISSREDD A ; ÿ ÿ ÿ ÿ NTOI PRYNT E =R4, PENO; ÿ 4 ,RARCH#N ÿ V MOÿ E OD CESYP TEMITT ENEMCRIN; ÿ ÿ 3 @R ÿ B NC I: 16EMIT ERNTOI PUPCKBA, ES Y ; ÿOLMBSY ÿ C DEÿ E NUTION CE,OP N ; ÿ16EMIT ÿ E BLÿ ? T YES \ÿ­; ÿ.EOT ÿ ÿ ÿ;END OF FILE #1 ;***** OVERLAY #2 ***** O02=BEGOVR-BEGO02 ÿ ÿ;COMPUTE OFFSET FROM ÿ ÿ ÿ ÿ;RUN TIME BEGO02: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVERLAY. ; ÿJMP ÿRCSECT ÿ ÿ;ENTRY1 ÿJMP ÿRASECT ÿ ÿ;ENTRY2 ÿJMP ÿRGLOBL ÿ ÿ;ENTRY3 ÿJMP ÿRTITLE ÿ ÿ;ENTRY4 ÿJMP ÿRLIMIT ÿ ÿ;ENTRY5 ÿJMP ÿSUBR41 ÿ ÿ;ENTRY6 ÿJMP ÿSUBR35 ÿ ÿ;ENTRY7 ÿJMP ÿSUBR42 ÿ ÿ;ENTRY8 ÿ.ENDC ; ; ; ;.CSECT ;THIS PART HANDLES THE ;®EM EXPR09: ÿ ; CLASS 5 TERMINATORS PROCESSED ÿ BIT ÿ #177400,R1 ÿ ; ARE COMMAS VALIDATED ? ÿ BLE ÿ EXPR0B ÿ ; YES, PREPARE TO RETURN ÿ ÿ ÿ ÿ ; NO EXPR0A: ÿ ; CLASS 4 TERMINATORS PROCESSED ÿ BIT ÿ #177400,R1 ÿ ; ARE PARENTHESES VALIDATED ? ÿ BLT ÿ EXPR0B ÿ ; YES, PREPARE TO RETURN ÿ ÿ ÿ ÿ ; NO, ABORT THE EXPRESSION ÿ CLR ÿ @R5 ÿ ÿ ; RESULT = 0 ÿ TRAP ÿ SETERR ; CALL SET ERRORS ÿ INC ÿ @R3 ÿ ÿ ; INCREMENT CURBYTEERCTRAHA CIX SEDSSCERO P ; ÿR5L,BOYM S ÿMP C: 06EMIT ** *NGSIESOCPRL BOYMÿS* ** ÿ ; ÿ N URET R ; ÿR7 ÿ S RTÿ S DECON IOITNDCOE THT SE; ÿ 0 ,RARCHNT C ÿVBMOÿ S ERSTGIRET SEL AL C ; G REET S ÿAPTR 5:M0TE IG INSSCERO PRNTURE; ÿ ÿ ÿ E YTRBCUT ENEMCRIND AN; ÿ ÿ ÿ ÿ S ORATINRMTEL ALR FOK ECCH; ÿ 0 M0TE I ÿBRÿ E INUTRON IOATICIFNTDE I ; ÿ ÿ ÿ ÿ ORATINRMTEE THO NT I ; ÿ ÿ ÿ ÿ SSREDD ANTOI PRYNT E =R5; ÿ 4 ,RINRMTE # ÿOV M ÿ DECOE YP TXÿ±.CSECT DIRECTIVE ; ; ÿ ÿ ÿ ÿ;CSECT HANDLER RCSECT: ÿCLRB ÿSIZE-O02 ÿNEGB ÿBINOUT-O02 ÿ;REQUEST BINARY OUTPUT ÿMOVB ÿSAVTERM-O02,R0 ÿ;TERMINATING CHARACTER: ÿCMPB ÿ#-4,R0 ÿ ÿ;CARRIAGE RETURN ÿBEQ ÿCSECT1 ÿ ÿ;UNNAMED .CSECT ÿCMPB ÿ#-5,R0 ÿ ÿ;SEMI COLON ÿBEQ ÿCSECT1 ÿ ÿ;UNNAMED .CSECT ÿTRAP ÿCBTABS ÿ ÿ;FLUSH BLANKS OR ÿDEC ÿCURBYTE-O02 ÿ ÿ;TABS. ÿTRAP ÿITEM ÿ ÿ;GET NEXT ITEM ÿTSTB ÿCNTCHAR-O02 ÿ;ANY CHARACTERS FOUND? ÿBLE ÿCSECT1 ÿ ÿ;NO. UNNAMED .CSECT ÿTSTB ÿITYPE-O02 ÿ;LEGAL SY² POINTER ÿ BR ÿ EXPR00 ÿ ; RESTART EXPRESSION EVALUATION EXPR0B: ÿ ; CLASS 2 TERMINATORS PROCESSED ÿ SWAB ÿ R2 ÿ ÿ ; GENERAL ERROR FLAG = ÿ MOVB ÿ R2,ERROR ÿ ; R2 HIGH ORDER BYTE ÿ CMPB ÿ #1,RSLMOD ÿ BGE ÿ EXPR0R ÿ INCB ÿ AERROR EXPR0R: ÿTSTB ÿPRGSEC ÿBEQ ÿEXPR0P ÿ ÿ;NO .CSECT ÿCMPB ÿPRGSEC,SECMOD ÿBEQ ÿEXPR0P ÿ ÿ;CURRENT .CSECT ÿMOVB ÿ#-2,RSLMOD ÿ;NOT CURRENT. EXPR0P: ÿ TRAP ÿ SETREG ; CALL SET REGISTERS ÿ TSTB ÿ ICOUNT ÿ ; SET THE EMITT ENEMPLOM C ; ÿ ÿR3 @ ÿMBCOÿ R TONAMIER THE TOR FNTHU, EMITT ORAB; ÿ ÿ ÿ R TEACARCHS HI TORRR E ; ÿORRRIE ÿ B NC I: 03EMIT EDFITIENIDUNR TEACARCH; ÿ ÿ ÿ ÿ ÿ NGSIESOCPRR BEUM N ; ÿ07EMIT ÿ Q BEÿ G INSSCERO POLMBSY; ÿ 6 M0TE I ÿGT B ÿ NGSIESOCPRF OPETYT ECEL S ; ÿ ÿR2 ÿ T TS 2:M0TE IT ENNDPEDEG LASFH NCRA B, ES Y ; ÿR23,@R ÿ B OV M ÿ NTDEENEP DPETY ICHANBRE OP N ; ÿ02EMIT ÿ Q BEÿ ? G INSSCERO PERCTRAHA CSTIR F ; ÿR4R,HAFCTÿµMBOL? ÿBGT ÿCSECT5 ÿ ÿ;YES ÿINCB ÿQERROR-O02 ÿ;Q ERROR FLAG CSECT4: ÿJMP ÿMAIN1E-O02 ÿ;UNNAMED ÿ.CSECT CSECT1: ÿCLR ÿTMPSYM+1-O02 ÿ;PACKED MOD40 SYMBOL ÿCLR ÿTMPSYM+3-O02 ÿMOVB ÿ#1,R3 ÿ ÿ;ID NUMBER 1 ÿMOV ÿPERTOP-O02,HINDEX-O02 ÿBR ÿCSECT6 ÿ;PREVIOUS SECTION .ASECT CSECT2: ÿMOV ÿ@USERPC-O02,ABSPC-O02 ÿBISB ÿ#RELFLG,@HUSERPC-O02 ÿ;SET RELOCATABLE ÿ;FLAG BIT IN DOT SYMBOL ENTRY ÿBR ÿCSECT7 ÿ;MORE THAN 376(8) .CSECT'S CSECTE: ÿCLR ÿ-(R6) ÿ ÿ;ERROR ÿMOV ÿ#ERR1,-(R6) ÿ;ANNOUNCEMEN¶CONDITION CODES ÿ RTS ÿ R7 ÿ ; RETURN ; ÿ .PAGE EXPR0C: ÿ ; NON-VOID ITEM ENCOUNTERED AND PROCESSED ÿ INCB ÿ ICOUNT ÿ ; INCREMENT ITEM COUNTER ÿ TSTB ÿ ITYPE ÿ ; HOW IS THE ITEM TYPED ÿ? ÿ BLE ÿ EXPR0I ; NUMBERS, ERRORS, AND ASCII DATA ÿ ÿ ; SYMBOLS PROCESSED ÿ TRAP ÿ SEARCH ; CALL SEARCH THE SYMBOL TABLE ÿ BLT ÿ EXPR0F ÿ ; NOT FOUND IN THE TABLE AT ALL ÿ BEQ ÿ EXPR0G ÿ ; # ÿMP C ÿ ORATINRMTEE THR FOT UN HS,YE; ÿ 0 M0TE I ÿEQ B ÿ ?NGTIORABM TE IIS; ÿ 4 ,RINRMTE # ÿMP C ÿ AGFL SEDFIDIMOE TH= 2 R ; ÿR20, R ÿOV M: 11EMIT ONTINAMIERET DTYLIBITAINPRL AL C ; NTRI P ÿAPTRÿ R TEACARCHL GALEIL, NO; ÿ R ROER I ÿCBINÿ S YE; ÿ 1 M1TE I ÿGE B ÿ ?NDOU FERCTRAHA CIDAL V AAS W ; ÿ ÿ ÿ ÿ AGFL SUPET S1,0- R =R0; ÿ ÿ 0 R ÿEC D ÿ ERNTOU CERCTRAHA CNTMERENC I ; ÿARCHNT C ÿCBINÿ R TONAMIER T AISR TEACARCH; Pÿ¹T ÿJMP ÿERROUT-O02 ;PACK THE CHARACTERS IN BYTES TMPSYM (0) TO TMPSYM (5) ;INTO PACKED MODULO 40 REPRESENTATION IN WORDS ;TMPSYM+1 AND TMPSYM+3 CSECT5: ÿMOV ÿ#TMPSYM,R1 ÿ;ADDRESS OF 1ST BYTE ÿTRAP ÿSERCHB ÿ ÿ;MODULO 40 PACKER ÿINC ÿR1 ÿ ÿ;TMPSYM+1 TO R1 ÿMOV ÿ#WORD3,R4 ÿ;NO 3RD WORD ÿCLR ÿ@R4 ÿ ÿ;MATCH; JUST SYMBOL ÿMOV ÿPERTOP-O02,R2 ÿ;PERFORM LINEAR ÿMOV ÿÿCONTOP-O02,R3 ÿ;SEARCH OVER CONTROL ÿTRAP ÿLINSRCH ÿ ÿ;SECTION TABLE ÿBNE ÿCSECT3 ÿ ÿ;MATCH FOUND ÿ;THIS CONTROL SECTION º FOUND AS A USER'S SYMBOL ÿ ÿ ÿ ; FOUND AS A PERMANENT SYMBOL ÿBITB ÿ#REDEF,TFLAGS ÿ;HAS PERMANENT SYMBOL BEEN REDEFINED? ÿBNE ÿEXPR0M ÿ ÿ; YES ÿMOVB ÿ#DEFFLG,TFLAGS ÿ; MAKE LINE USER SYMBOL ÿBR ÿÿEXPR0I EXPR0M: ÿ TRAP ÿ SEARCH ; CALL SEARCH THE SYMBOL TABLE ÿ BR ÿ EXPR0G ÿ ; FOUND AS A USERS SYMBOL EXPR0F: ÿTRAP ÿENTER ÿ ÿ ; ENTER SYMBOL INTO THE SYMBOL TABLE EXPR0L: ÿ INCB ÿ UERROR ÿ ; UNDEFINED SYMBOL ERROR ÿ BIS ÿ #000400,R2 ÿ ; SET THE GENERAL ERROR ÿ 5 M0TE I ÿLT B ÿ ESOD CONTIDION CHE TND A ; ÿ ÿ ÿ ÿ R0N IDECON IOATICIFNTDE I ; ÿ ÿ ÿ ÿ ERCTRAHA CHE TRNTURE; ÿ ÿ ÿ ÿ S NETIOU RNSIOCTSES HI T ; ÿ ÿ ÿ ÿ ONTICAFITIENIDR TEACARCHR FOL AL C ; 4 @R7, R ÿSR J: 01EMIT R.TONAMIER THE TAS; ÿ ÿ ÿ ÿ B TAR ONKLA BHE TERIDNSCO; ÿ ÿ ÿ ÿ E YTRBCUT ENEMCRDE; ÿ E YTRBCU ÿ C DEÿ R TONAMIER T AISR TEACARCH; ÿ 5 Lÿ½NAME NOT IN TABLE ÿ;ENTER A NEW CONTROL SECTION ENTRY. ÿMOV ÿR3,HINDEX-O02 ÿ;BASE ADDRESS OF ENTRY ÿ ÿ ÿ ÿ;IS CURRENT TOP OF ÿ ÿ ÿ ÿ;THE CONTROL SECTION ÿ ÿ ÿ ÿ;TABLE. ÿCLR ÿRESULT-O02 ÿ;0 TO CURRENT ÿCLR ÿTFLAGS-O02 ÿ;AND MAXIMUM PC ÿTRAP ÿENTER ÿSUB ÿ#10,CONTOP-O02 ÿ;ADJUST BOTTOM OF UST ÿ;MATCH FOUND---COMPUTE CONTROL SECTION ID CSECT3: ÿMOV ÿPERTOP-O02,R3 ÿ;ADDRESS OF 1ST ENTRY ÿSUB ÿHINDEX-O02,R3 ÿ;ADDRESS OF THIS ENTRY ÿASR ÿR3 ÿ ÿ;DIVIDED BY 4 ÿASR ÿR3 ÿ ÿASR ÿR3 ÿ ÿ;XT¾ ÿ BR ÿ EXPR12 ÿ ; PROCESS THE NEXT OPERATOR ÿ ÿ ÿ ÿ ; CHECK THE TERMINATOR EXPR0G: ÿ ; CHECK SYMBOLS FLAGS ÿ MOVB ÿ TFLAGS+1,R0 ÿ ; R0 = MULTIPLY DEFINED BYTE ÿ CMPB ÿÿ #MDFLAG,R0 ÿ ; SYMBOL MULTIPLY DEFINED ? ÿ BNE ÿ EXPR0H ÿ ; NOPE ÿ INCB ÿ DERROR ÿ ; DOUBLY DEFINED ERROR ÿ BIS ÿ #000400,R2 ÿ ; SET THE GENERAL ERROR EXPR0H: ÿ MOVB ÿ TFLAGS,R0 ÿ ; R0=TEMPORARY FLAGS. ÿ BITB ÿ #GLBFLG,R0 ÿ BNE ÿ EXPR0I ÿ BITB ÿ M0TE I ÿLT B ÿ N IOATICIFNTDE IORATINRMTER FOL AL C ; 4 @R7, R ÿSR J ÿ R.DD ARYNT E'SORATINRMTE= 4 R ; ÿR4N,MIER#T ÿ V MOÿ E OP N ; ÿ01EMIT ÿ E BLÿ ? S AB TORS NKLA BNY AREHE TREWE; ÿ G LATF B ÿTBTSÿ R TEINPOE YTRBCUE TH; ÿ ÿ ÿ ÿ S NTMERENC INETIOUBRSUS ABBT C ; ÿ ÿ ÿ ÿ BSTAD ANS NKLA BOR FCKHE CLLCA; BSTACB ÿ P RA T ÿ S ABHÿÁRA SHIFT FOR BYTE BIT ÿINC ÿR3 ÿ ÿ;+1=CONTROL SECTION ÿCMP ÿ#376,R3 ÿ ÿ;ID NUMBER ÿBLT ÿCSECTE ÿ ÿ;TOO BIG IF >376(8) CSECT6: ÿTSTB ÿSECMOD-O02 ÿBEQ ÿCSECT2 ÿ ÿ;PREVIOUS SECTION ABS ÿ;PREVIOUS SECTION RELOCATABLE. ÿMOV ÿ@USERPC-O02,R1 ÿ;SAVE CURRENT PC FOR ÿMOV ÿR1,@RELPC-O02 ÿ;PREVIOUS SECTION ÿCMP ÿR1,@HIRPC-O02 ÿBLOS ÿCSECT7 ÿBIT ÿ#1,R1 ÿ ÿÿ;EVEN OFF MAX. PC ÿBEQ ÿCSECT8 ÿINC ÿR1 CSECT8: ÿMOV ÿR1,@HIRPC-O02 CSECT7: ÿMOV ÿHINDEX-O02,R0 ÿ;BASE OF NEW CSECT ENTRY ÿMOV ÿR0,HIRP #DEFFLG,R0 ÿ ; SYMBOL DEFINED ? ÿ BEQ ÿ EXPR0L ÿ ; NOPE ÿ BITB ÿ #REGFLG,R0 ÿ ; REGISTER SYMBOL ? ÿ BEQ ÿ EXPR0I ÿ ; NOPE ÿ MOVB ÿ #REGFLG,REGTYPE ; YES, TYPE THE EXPRESSION ÿ ÿ ÿ ÿ ; AS REGISTER ; ÿ .PAGE EXPR0I: ÿ ; DECODE THE EFFECTIVE OPERATION ÿ ÿ ÿ ; CAUTION, HANDLERS SIZE LIMITED. ÿ TSTB ÿ R1 ÿ ÿ ; WERE ANY OPERATORS SEEN ? ÿ BGE ÿ EXPR1I ÿ ; YES, OR TND A ; ÿ ÿ ÿ KSANBLD DEEDMB EOR FEMITH AC ECKHE C ; ÿ ÿ: 00EMIT ERCTRAHA CNE OERNTOI P ; ÿ ÿ ÿ ÿ TEBYUR CHE TUPCKBA; ÿ E YTRBCU ÿ C DEÿ R TEINPOE YTRBCUE TH; ÿ ÿ ÿ ÿ S NTMERENC INETIOUBRSUS ABBT C ; ÿ ÿ ÿ ÿ BSTAD ANS NKLA BOR FCKHE CLLCA; BSTACB ÿ P RA T ÿ KSANBLL IAITINS EMITH AC ESHLU F ; ÿ ÿ ÿ GSLA FUMCNDET SERE; ÿ M NUEC D ÿRBCLÿ 0 = 0 E1AS B ; ÿ10SEBA ÿ R CLÿ 0 = 8 E0AS B ; ÿ08SEBA ÿ R CLÿ 0 = Y ITNTUA Q ; ÿTYTIANDÿÅC-O02 ÿ;ADDRESS OF MAX. PC ÿTST ÿ-(R0) ÿMOV ÿR0,RELPC-O02 ÿ;ADDRESS OF PC ÿMOV ÿ@R0,TBBUF-O02 ÿ;PC OF NEW .CSECT ÿMOVB ÿR3,SECMOD-O02 ÿ;NEW .CSECT ID TO SECMOD ÿMOV ÿTMPSYM+1-O02,R1 ÿMOV ÿTMPSYM+3-O02,R2 CSECT9: ÿ ÿ ÿ;NEW PROGRAM SECTION ID TO DOT ID ÿMOV ÿHUSERPC-O02,R3 ÿMOVB ÿSECMOD-O02,1(R3) ÿMOVB ÿ#RLD3.1,R0 ÿ;LOCATION COUNTER DEFINITION ÿMOV ÿTBBUF-O02,R3 ÿ;DISPLACEMENT FROM SECTION BASE ÿMOV ÿ#10,R4 ÿ ÿ;# OF BYTES TO RLD ÿTRAP ÿRLDFIL ÿJMP ÿEXIT-O02 Æ VALID SITUATION ÿ TRAP ÿ SETERR ; CALL SET ERRORS EXPR1I: ÿ TRAP ÿ SAVREG ÿ MOVB ÿ R2,R0 ÿ MOVB ÿ TFLAGS,R1 EXPR0T: ÿ ASL ÿ R0 ÿ JMP ÿ @EXJTAB(R0) EXJTAB: ÿ .WORD ÿÿ EXPR0J ÿ ;THIS ENABLES A ÿ .WORD ÿ EXPR0S ÿ ;JMP TO ÿ .WORD ÿ EXPRL0 ÿ ;THE APPROPRIATE ÿ .WORD ÿ EXPRLA ÿ ;OPERATOR HANDLER ÿ ÿ ÿ ÿ ; OPERATION EXPR0J: ÿ ; PERFORM THE REQUESTED OPERATION ÿ TSTB ÿ ITYPE ÿ BEQ ÿ EXPR0N ÿ ÿ ÿ ; ADDITION ÿ TSTB ÿ RSLMOD ÿ QU ÿ R CLÿ E OD CERMBNUD LIVA= E YPIT; ÿ ÿ 3 @R ÿ B LR C ÿ SSREDD AESYP TEMIT= 3 R ; ÿR3E,YPIT # ÿOV M ÿ 0 =ARCHNT C ; ÿARCHNT C ÿRBCLÿ E INUTRON IOATICIFNTDE I ; ÿ ÿ ÿ ÿ ERCTRAHA CSTIR FHE TTOIN; ÿ ÿ ÿ ÿ S ESDRADT INPOY TREN= 4 R ; ÿR4R,HAFC # ÿOV M ÿ SSREDD A6)M(SYMP T =R5; ÿ ÿ ÿ ÿ K ANBL= ) (5M SYMP T ; ÿ)+R5 ( ÿRBCLÿ S NKLA B =4)3,M(SYMP T ; ÿ)+R5 ( ÿLR C ÿ KSANBL= ) ,2(1YMPSTM; ÿ + 5)(R ÿ R CLÿ K ANBL= ) (0YM@ÿÉ ;.ASECT ;THIS PART HANDLES THE ;.ASECT DIRECTIVE ; RASECT: ÿ ÿ ÿ ÿ;ASECT HANDLER ÿNEGB ÿBINOUT-O02 ÿ;REQUEST BINARY OUTPUT ÿTSTB ÿSECMOD-O02 ÿBEQ ÿASECT1 ÿ ÿ;ALREDY IN .ASECT ÿ;PREVIOUS SECTION .CSECT ÿMOV ÿ@USERPC-O02,R1 ÿ;SAVE CURRENT PC FOR ÿMOV ÿR1,@RELPC-O02 ÿ;PREVIOUS SECTION ÿCMP ÿR1,@HIRPC-O02 ÿBLOS ÿASECT1 ÿBIT ÿ#1,R1 ÿ ÿ;EVEN OFF NEW MAX. PC. ÿBEQ ÿASECT2 ÿINC ÿR1 ASECT2: ÿMOV ÿR1,@HIRPC-O02 ASECT1: ÿMOV ÿABSPC-O02,TBBUÊ ;BRANCH IF ÿ BLT ÿ EXP2A ÿ BITB ÿ #RELFLG,R1 ÿ ;RSL IS GLB OR HF QTX IS RDL ÿ BNE ÿ EXP2C ÿ BITB ÿ #DEFFLG,R1 ÿ ;IF ABS THEN BR ÿ BNE ÿ EXPR0N ÿ BITB ÿ #GLBFLG,R1 ÿ BEQ ÿ EXPR0N ÿ TSTB ÿ RSLMOD ÿ ;IF GLB THEN IF RSL IS REL ÿ BNE ÿ EXPERR ÿ ;THEN ERRR ÿ MOVB ÿ #-1,RSLMOD ÿ ;ELSE SET GLB MOD ÿ BR ÿ EXPR0K EXP2C: ÿ TSTB ÿ PRGSEC ÿ ;PREVIOUS RELOCATABLE SYMBOL ÿ BNE ÿ EXP2D ÿ ;YES ÿ MOVB ÿ CSCTID,PRGSEC ÿ;SAVE THIS ID ÿ BRPSTM; ÿ + 5)(R ÿ ÿRBCLÿ S ESDRAD) (0YMPSTM= L BOYM S ; ÿOLMBSY5, R ÿOV M ÿ SSREDD A0)M(SYMP T =R5; ÿ 5 ,RYMPSTM # ÿOV M ÿ KSANBLH IT WERFFBUM SYMP TLLFI; ÿ ÿ ÿ S ERSTGIREE AV SLLCA; EGVRSA ÿ P RA T: 03BRSU M:TE;I ERNTOU CERCTRAHA=CR0 ÿ ; ÿ ÿ ÿ L BOYM SEDORRR E-1< ÿ ; ÿ ÿ ÿ R BEUM NEDORRR E-1= ÿ ; ÿ ÿ ÿ R BEUM N0 = ÿ ; ÿ ÿ ÿ L BOYM S0 > ÿ ; ÿ ÿ ÿ E LUVAD DECOE=YPIT ÿ ; ÿ ÿ ÿ E LUVAD DECO. MIER=T<ÿÍF-O02 ÿBICB ÿ#RELFLG,@HUSERPC-O02 ÿ;CLEAR RELOCATABLE ÿ ÿ ÿ ÿ;FLAG BIT IN DOT SYMBOL ENTRY ÿCLRB ÿSECMOD-O02 ÿ;.ASECT ID ÿMOV ÿ#ABS1,R1 ÿ;'.(SPACE)A ÿMOV ÿ#ABS2,R2 ÿ;'BS. ÿBR ÿCSECT9 ;.GLOBL ÿTHIS SECTION HANDLES GLOBAL STATEMENTS RGLOBL: ÿ MOVB ÿ #-1,SIZE-O02 ÿCLRB ÿ SAVTERM-O02 ÿTRAP ÿ CBTABS GLOBL1: ÿ DEC ÿ CURBYTE-O02 GLOBL2: ÿ MOVB ÿ SAVTERM-O02,R0 ÿ CMPB ÿ #-4,R0 ÿ;CARRIAGE RETURN ÿ BEQ ÿ GLÎ ÿ EXP2B EXP2D: ÿ CMPB ÿ CSCTID,PRGSEC ÿ;SAME .CSECT ÿ BNE ÿ EXPERR ÿ ;NO-A ERROR EXP2B: ÿ INCB ÿ RSLMOD ÿ BR ÿ EXPR0N EXP2A: ÿ BITB ÿ #RELFLG,R1 ÿ ;ERRR IF REL ÿ BNE ÿ EXPERR ÿ BITB ÿ #DEFFLG,R1 ÿ ;OR GLB ÿ BNE ÿ EXPR0N ÿ BITB ÿ #GLBFLG,R1 ÿ BNE ÿ EXPERR EXPR0N: ÿ ADD ÿ @R4,@R5 ÿ ; RESULT = RESULT+QUANTITY ÿ BR ÿ EXPR0K ÿ ; PROCESS THE NEXT OPERATOR ÿ ÿ ÿÿ ; SUBTRACTION EXPR0S: ÿ TSTB ÿ ITYPE ÿ BEQ ÿ EXP3N ÿ BITB ÿ #RMTEAV SUTTPOU; ÿ ÿ ÿ E ON NUTNP I ; ÿ ÿ ÿ D.SEESOCPRG INBEM TE INTREUR CHE TTOÿ ; ÿ ÿ E IVATEL RERNTOU CERCTRAHA C ANSAINTAI MEMITÿ ; ÿ ÿ . RMTEAV STOINE LUVAD DECO ÿ ; ÿ ÿ E THE ACPLD ANR TEACARCHR TONAMIER T ÿ ; ÿ ÿ EDERNTOUNC ENY ADECOEND ANY IFNTDE I.) 3 ÿ ; ÿ ÿ Y.ITNTUA QONTICALON IEMTHE AV S ÿ ; ÿ ÿ ND ARSBEUM NALIMEC DORL TAOCT ERNVCO) 2.ÿ ; ÿ ÿ . LSBOYM SOR FERFFBUM SYMP T ÿ ; ÿ ÿ HE TINS ERCTRAHA CIISC AIX STOP UVESA) 1.ÿ ; ÿ ÿ : ESICRV8ÿÑOBLX ÿ CMPB ÿ #-5,R0 ÿ;SEMI COLON ÿ BEQ ÿ GLOBLX ÿ TRAP ÿ ITEM ÿ ;GETS THE NEXT SYMBOL ÿ TSTB ÿ CNTCHAR-O02 ÿ ;;ANY CHARACTERS FOUND ÿ BGT ÿ GLOBLA ÿ ;YES THEN BRANCH GLOBLX: ÿ JMP ÿ EXIT-O02 ÿ ;ABORT GLOBLA: ÿ TSTB ÿ ITYPE-O02 ÿ ;IF ITEM WAS LEGAL ÿ BGT ÿ GLOBL4 ÿ ;THE BRANCH IF SYMBOL ÿ INCB ÿ QERROR-O02 ÿ ;ELSE FLAG ÿ CMPB ÿ #-3,SAVTERM-O02 ;IF LAST TERMINATOR ÿ BEQ ÿ GLOBL2 ÿ ;WAS , THEN BRANCH ÿ JMP ÿ MAIN1E-O02 ÒDEFFLG,R1 ÿ BNE ÿ EXP3A ÿ BITB ÿ #GLBFLG,R1 ÿ BNE ÿ ÿ EXPERR EXP3A: ÿBITB ÿ #RELFLG,R1 ÿ BEQ ÿ EXP3N ÿ CMPB ÿ PRGSEC,CSCTID ÿ;SAME .CSECT AS PREVIOUS SYMBOL. ÿ BNE ÿ EXPERR ÿ ÿ;NO-AERROR ÿ TSTB ÿ RSLMOD ÿ BLE ÿ EXPERR ÿ DECB ÿ RSLMOD ÿ BNE ÿ EXP3N ÿ ÿ;CLEAR PREVIOUS .CSCET ID ÿ CLRB ÿ PRGSEC ÿ ÿ;IF EXPRESSION GOES ABSOLUTE. EXP3N: ÿ SUB ÿ @R4,@R5 ÿ ; RESULT = RESULT-QUANTITY ÿ BR ÿ EXPR0K ÿ ; PROCESS THE NEXT OPERATOR ÿ ÿ ÿ ; INCLUSEG INOWLLFOE THE IDOVPRÿ ; ÿ ÿ S NETIOU RONTICAFITIENIDR TEACARCHE THÿ ; ÿ ÿ . RSBEUM NORÿ ; ÿ ÿ S OLMBSYR HEIT EBEO TEDINEF DRE AMSTE I ÿ ; ÿ ÿ R.TONAMIER TEDODNC E ; ÿ ÿ TS ITHWIR HEETOG TEMITH AC EE,INUTRO ; ÿ ÿ G INLLCAE THO TG,INNTSERE PND AMSTE I ; ÿ ÿ ALICCTTAYN SOFG ININEF DHE TISN IOCTUN F'SEMIT; ÿ ÿ M TE INETIOUBRSU; ÿ ÿ RNTUREÿ;ÿ 7 ÿRS RT ÿ ENOP;. ÿ ÿPNÿOT EM ÿ CKLO BNKLIÿ;) R6-(1,ÿRV MO4ÿÕ GLOBL7: ÿBISB ÿ#REDEF,@HINDEX-O02 ÿ;SET PERMANENT SYMBOL REDEFINED FLAG. GLOBL4: ÿTRAP ÿSEARCH ÿ ÿ;SEARCH SYMBOL TABLE ÿBGT ÿGLOBL7 ÿ ÿ;IF PST THEN REPEAT ÿBEQ ÿGLOBL6 ÿ ÿ;IN UST ÿBISB ÿ#GLBFLG,TFLAGS-O02 ÿ;SET GLOBAL FLAG ÿTRAP ÿENTER ÿ ÿ;ENTER INTO UST ÿBR ÿGLOBL2 ÿ;FOUND IN UST GLOBL6: ÿMOV ÿHINDEX-O02,R1 ÿ;ADDRESS OF ENTRY ÿBITB ÿ#REGFLG,TFLAGS-O02 ÿ;IS SYMBOL A REG. EXPR. ÿBEQ ÿGLOBL5 ÿ ÿ;NO ÿINCB ÿRERROR-O02 ÿBISB ÿ#MDFLAG,1(R1) ÿ;SET MULTIPLY DEFINED ÿCMPB ÿ#-3,SAVTERM-O02ÖSIVE OR EXPRL0: ÿ BIS ÿ @R4,@R5 ÿ ; RESULT = RESULT .IOR. QUANTITY EXPRL1: ÿ TSTB ÿ ITYPE ÿ BEQ ÿ EXPR0K ÿ BITB ÿ #DEFFLG,R1 ÿ BEQ ÿ EXPERR ÿ BITB ÿ #RELFLG,R1 ÿ BNE ÿ EXPERR EXPR0K: ÿ TRAP ÿ SETREG CLRB ÿ R1 ÿ ÿ ; SET OPERATOR COUNTER ÿ COMB ÿ R1 ÿ ÿ ; BYTE = -1 ÿ JMP ÿ EXPR00 ÿ ; PROCESS THE NEXT OPERATION ÿ ÿ ÿ ;;AND EXPRLA: ÿ COM ÿ @R4 ÿ BIC ÿ @R4,@R5 ÿ BR ÿ EXPRL1 EXPERR: ÿ TRAP ÿ SETREG ÿ INCB ÿ AERROR ÿ ÿ CKLO BLEFIÿ;) R6-(3,ÿRV MO ÿ RSROERE DLAN HORITON MET;L ÿ ÿ3)(R-4 ÿLRÿC: INNTCO N.KETAS WA" INNTCO;" RNTURER ROERE TH, STXI EOT NID DLEFIE THF ;I Y.LLMAOR NEDRNTURES WAL RONTCO ;D AND TELEDES WAT ID,TEISEXY ADREALE IL FHE TIF ;E ETEL;D ÿ ÿLTÿDT EM ÿ CKLO BNKLIÿ;) R6-(1,ÿRV MO ÿ CKLO BLEFIÿ;) R6-(3,ÿRV MO ÿ ITIN;. ÿ ÿMDNCÿIT EM ÿ CKLO BNKLIÿ;) R6-(1,ÿRV MO ÿ RNTURER ROERP UET;S ÿ3)(R-4N,TION#C ÿOVÿM: 47BRSU T:OUEL;D ;T OUEL DAPTR ÿ ;3 RTOK OCBLE IL FOFS ESDRAD ÿ ;1 RTOK OCBLK IN LOFS 0ÿÙ ÿ;WAS TERMINATOR, ÿBEQ ÿGLOBL2 ÿ ÿ;YES ÿMOV ÿ#ITYPE,R3 ÿ;NO ÿJMP ÿMAIN1E-O02 GLOBL5: ÿBISB ÿ#GLBFLG,@R1 ÿ;SET GLOBAL FLAG IN UST ÿBR ÿGLOBL2 ;TITLE DIRECTIVE HANDLER RTITLE: ÿ TRAP ÿ CBTABS ÿ ;THIS PART ÿ DEC ÿ CURBYTE-O02 ÿ ;GETS ÿ TRAP ÿ ITEM ÿ TSTB ÿ ITYPE-O02 ÿ ;THE FIRST ITEM ÿ BGT ÿ TITLE3 ÿ ;AND CHECKS ÿ INCB ÿ QERROR-O02 ÿ ;FOR SYMBOL ÿ BR ÿ TITLEX TITLE3: ÿ MOV ÿ ÚJMP ÿ EXPR12 ; ÿ .PAGE ÿ ; SUBROUTINE SET ERRORS ÿ ÿ ; UTILITY SUBROUTINE FOR EXPRESSION ;SETERR: SUBR21: INCB ÿ QERROR ÿ ; QUESTIONABLE SYNTAX ERROR ÿ BIS ÿ #000400,R2 ÿ ; SET THE GENERAL ERROR ÿ RTS ÿ R7 ÿ ; RETURN ÿ .EOT ÿ ÿ ÿ;END OF FILE #11 ÿ ; SECTION: CHARACTER IDENTIFICATION ÿ ÿ ÿ ; INPUT R0 MUST BE FREE ÿ ÿ ÿ ; OUTPUT R0=SFLAG'S VALUE ; ÿ NUMBERS R0=1 ÿ CESDRAD ÿ ;: CEENQUSEG INLLCA ;; LEFIT PUUT OENOPÿ.; NGTIISEXY ADREALF ILEFIT PUUT OTELEDEÿ.; ET STADAT PUUT OITIN .TOE INUTROUB;S R7 ÿTSÿR: N1EACL LSÿRT EM ÿ ET STADAE ASLEREÿ;) R6-(1,ÿRV MO ÿ LSÿCT EM ÿ LEFIE OSCLÿ;) R6-(1,ÿRV MO ÿ NOÿ;ÿ ÿN1EACL ÿEQÿB D T'NI IET STADAS ;I ÿ ÿR1ÿ@T TS ÿ4:R4UB S: ANLE;C CKLO BNKLIF OSSREDD=AR1 ÿ; : UTNP;I ÿ ;. EDASLERET SE ;A AT DHE TND AEDOSCLS ILEFIE TH, 'DITINN EE;B AS HET STADAD IEIFECSPF I-- -ANLE CNETIOUBRSU ; ,ÿÝ #TMPSYM,R1 ÿ TRAP ÿ SERCHB ÿ MOV ÿ TMPSYM+1-O02,TITLEA-O02 ÿ MOV ÿ TMPSYM+3-O02,TITLEB-O02 TITLEX: ÿ DECB ÿ SIZE-O02 ;SPACE WAS FOUND ASSUME DEFAULT ÿ JMP ÿ EXIT-O02 ÿ ÿ ÿ ÿ ; INITIALIZATION ; ; ;LIMIT HANDLER ; ; RLIMIT: ÿ MOV ÿ #TBBUF,R5 ÿ ;RESERVE ÿ CLR ÿ (R5)+ ÿ ;TWO ÿ CLR ÿ (R5)+ ÿ ;WORDS ÿ MOV ÿ #2,R4 ÿ ;WORDS ÿ MOV ÿ #RLD3.3,RLDIR-O02 ÿ ;AND TELL ÿ TRAP ÞONVERTED AND PACKED ; ÿ SYMBOLS R0=2 OR 3 ÿ MOD40 AND SAVED ; NOT FOUND SITUATIONS: ; ÿ TERMIS R0<0 ÿ R0=SFLAG IS CODED ; FOUND SITUATIONS: ; ÿ TERMIS R0=0 ÿ CHARACTER WAS NOT A TERMI. ; R0 RETURNED VALUE ÿ ÿ INTERPRETATION ; ÿ NUMBERS R0< OR = 1 ÿ DEFAULTED TO TERMIS SEARCH ; ÿ SYMBOLS R0< OR = 1 ÿ DEFAULTED TO NUMBER SEARCH ; ÿ = 3 ÿ ÿÿ NTH CHARACTER'S ENTRY RESULT ; ÿ ÿ ÿ NOT (0-9) . DEFAULTS TO FCHAR ; ÿ = 2 ÿ ÿ NTH CHA GEPA . ÿ ;N URET R ; ÿR7 ÿ S RTÿ S ESOCPRE THE NUTION CS,YE; ÿ 0 B0LK B ÿHI B ÿ ?) (0STLIUR C >R0S I ; ÿSTLIUR,CR0 ÿ P CMÿ K ANBLI CIAS= ) R0R(FEUF B ; ÿ0)(R,-' # ÿVBMO 0:B0LK B0 R ÿNC I ÿ SSREDD ASEBAS ERFFBUG INSTLI; ÿ ÿ ÿ ÿ E IVCTFEEFE TH+ R0= 0 R ; ÿR0T,ISRLCU ÿ D AD 1:R0UB S: UFKBBL ;E ON NT PUUT O ; ÿ ÿ ÿ K.ANBLA H IT WEDLLFIE BTO ÿ ; ÿ ÿ ÿ N IOITOS PERFFBUT AS LHE TOF ÿ ; ÿ ÿ ÿ (ÿáÿ RELREF ÿ ;THE LOADER ÿ TRAP ÿ RLDFIL ÿ MOV ÿ #4,SIZE-O02 ÿ ;TO FILL SPACE ÿ JMP ÿ EXIT-O02 ;SUBROUTINE LINEAR SYMBOL TABLE SEARCH ÿ;PERFORMS A LINEAR SEARCH OVER A 4 ÿ;WORD PER ENTRY SYMBOL TABLE. ÿ;INPUT ÿ1) THE BASE ADDRESS OF THE 2 ÿ; ÿ WORD (MODULO 40) SYMBOL IN R1 ÿ; ÿIF THE 1ST TRIAD IS 0 ÿ; ÿTHE TWO WORD SYMBOL IS ÿ; ÿNOT INCLUDED IN THE ÿ; ÿMATCHING PROCESS ÿ; ÿ2) THE ADDRESS OFâRACTER'S ENTRY RESULT ; ÿ ÿ ÿ DEFAULTS TO NUMBER ; ÿ ÿ ÿ 1ST CHARACTER'S ENTRY RESULT ; ÿ ÿ ÿ WAS (0-9) .DEFAULTS TO FCHAR ; ÿ = 1 ÿ ÿÿ NUMBER'S ENTRY RESULT ; ÿ ÿ ÿ DEFAULTS TO TERMINATOR SEARCH ; ÿ < 0 ÿ ÿ CHARACTER WAS A TERMINATOR ; ÿ = 0 ÿ ÿ CHARACTER NOT A TERMINATOR ; TERMINATORS ENCODED AS FOLLOWS: ; ÿ # ÿ -18 ; ÿ @ ÿ -17 ; ÿ % ÿ -16 ; ÿ BLANK ÿ -15 ; ÿ TAB ÿ -14 ; ÿ ( ÿ -13 ; ÿ ) ÿ -12 ; ÿ " ÿ -11 ÿ QUOTATION ; ÿ ' ÿ -10 ÿ T IPCRBSSUE TH= 0 R UTNP I ; ÿ ÿ ÿ 0)R(FEUF BTO) R0R(FEUF BOMFR ; ÿ ÿ . KSANBLI CIAS ; ÿ ÿ H IT WERFFBUG INSTLIE IVCTFEEFE THL IL F ; ÿ ÿ RSTEACARCHR FEUF BNGTIIS LNKLA BNETIOUBRSU; ÿ RNTURED ANS ERSTGIRET SEL AL Cÿ;G REOP P ÿAPTRÿ G LA FCOR EACL; ÿ G LAOF C ÿLR C ÿ1:STOL CN IOETPLOM;C ÿMDTCÿWT EM ÿ UTTPOUD ANMMCOR FOT AI;W ÿ6)(R,-LBCOÿ#V MO ÿ ;; MDRCÿWT EM ÿ UTTPOUD ANMMCOE ICRVSEÿ;) R6-(B,OL#C ÿ$ÿå THE 3RD WORD TO BE MATCHED ÿ; ÿ IN R4. THE RIGHT BYTE IS ÿ; ÿ THE FLAG BYTE. THE LEFT ÿ; ÿ BYTE IS THE CONTROL SECTION ÿ; ÿ ID BYTE. ÿ; ÿ0 VALUES SPECIFY THAT THE ÿ; ÿBYTE NOT BE INCLUDED IN THE ÿ; ÿMATCHING PROCESS. ONLY BITS IN ÿ; ÿTHE FLAG BYTE THAT ARE ON WILL ÿ; ÿBE MATCHED IN THE SEARCH. ÿ; ÿ3) THE STARTING (HIGHER) ADDRESS OF ÿ; ÿ THE SYMBOL TABLE IN R2 ÿ; ÿ4) THE 1ST FREE ADDRESS BELOW THE ÿ; ÿ SYMBOL TABLE IN R3 ÿ; ÿ;OUTPUT ÿ; ÿIF MATCH FOUNæ APOSTROPHE ; ÿ + ÿ -9 ; ÿ - ÿ -8 ; ÿ ! ÿ -7 ; ÿ & ÿ -6 ; ÿ ; ÿ -5 ; ÿ CR ÿ -4 ; ÿ , ÿ -3 ; ÿ : ÿ -2 ; ÿ = ÿ -1 ; ÿ TERMINATOR CHARACTER TABLE TCHART: TCHARS ÿ = ÿ TCHART+22 TCAIMM: .BYTE ÿ '# ÿ ÿ ; IMMEDIATE TCCIMM ÿ = ÿ TCAIMM-TCHARS TCADEF: .BYTE ÿ '@ ÿ ÿ ; DEFFERD TCCDEF ÿ = ÿ TCADEF-TCHARS TCAREG: .BYTE ÿ '% ÿ ÿ ; REGISTER TCCREG ÿ = ÿ TCAREG-TCHARS TCABLK: .BYTE ÿ ' ÿ ÿ ; BLANK TCCBLK ÿ = ÿ TCABLK-TCHARS TCATAB: OVÿM . ERNTOI PCKTA SHE TRETOES Rÿ;ÿ ÿ ÿ ÿ . LFE THR TEAFL UL N AERFFBU; ÿ ÿ)+R6@( ÿ B LR C ÿ NTOU CTEBYT ENRRCUT ENEMCRIN; ÿ ÿ0)(R - ÿNC I ÿ TEBYA AT DSTIR F'SERFFBU; ÿ ÿ ÿ ÿ ÿ LOE THF OSSREDD AHE TDD Aÿ;ÿ 6 @R0, R ÿDD A ÿ NT CTEBYT ENRRCUS O' LCKTA Sÿ;ÿ ) R6-(+,0)(R ÿ V MOÿ 4 0+ R =R0; ÿ ÿ)+R0,()+R0 ( ÿMP C ÿ SSREDD AERFFBUK ACSTÿ;ÿ ÿ6)(R,-R0 ÿOVÿM R DEEA HERFFBUN AIBT OS,YE; ÿR00,#2 ÿ B SUÿ E OP N ; ÿ 1 STOL C ÿEQ B ÿ ?EDSTUEEQ RUTTPOUD ANMMCO; ÿ ÿ 0 ,RAGFL ÿéD ÿ; ÿ1) R0 AND CONDITION CODES NON 0 (POSITIVE) ÿ; ÿ2) ADDRESS OF ENTRY TO HINDEX (HIGHER ADDRESS) AND R2 ÿ; ÿIF NO MATCH ÿ; ÿ1) R0 AND CONDITION CODES 0 ÿ; ÿ2) R2 DESTROYED ;LINSRCH: SUBR41: LINSR3: ÿCMP ÿR2,R3 ÿ ÿ;COMPARE TABLE LIMITS. ÿBNE ÿLINSR1 ÿ ÿ;STILL MORE ENTRIES. ÿCLR ÿR0 ÿ ÿ;NO MATCH. ÿRTS ÿR7 ÿ ÿ;RETURN LINSR1: ÿMOV ÿ@R1,R0 ÿ ÿ;1ST TRIAD ÿBEQ ÿLINSR6 ÿ ÿ;DON'T COMPARE IF 0 ÿCMP ÿR0,-6(R2) ÿBNE ÿLINSR4 ÿ ÿ;NO MATCH; TRY NEXT ENTRY. ÿCMP ÿ2(R1),-4(R2) ÿ;2ND TRê .BYTE ÿ 011 ÿ ÿ ; TAB TCCTAB ÿ = ÿ TCATAB-TCHARS TCALPA: .BYTE ÿ '( ÿ ÿ ; LEFT PARENTHESIS TCCLPA ÿ = ÿ TCALPA-TCHARS TCARPA: .BYTE ÿ ') ÿ ÿ ; RIGHT PARENTHESIS TCCRPA ÿ = ÿ TCARPA-TCHARS TCAQUO: .BYTE ÿ '" ÿ ÿ ; QUOTATION TCCQUO ÿ = ÿ TCAQUO-TCHARS TCAAPO: .BYTE ÿ '' ÿ ÿ ; APOSTROPHE TCCAPO ÿ = ÿ TCAAPO-TCHARS TCAADD: .BYTE ÿ '+ ÿ ÿ ; ADDITION TCCADD ÿ = ÿ TCAADD-TCHARS TCASUB: .BYTE ÿ '- ÿ ÿ ; SUBTRACTION TCCSUB ÿ = CO ÿ OV M ÿ RSTEISEG RVESAL AL Cÿ;G REAV S ÿAPTR 7:R2UB S: STLICO; RNTURE; ÿ 7 R ÿTS R ÿ DRADD KEACST= ) ,3(2RSADBH; +2RSADBH+,6)(R ÿ V MOÿ ) ,3(2RSADBH= ) ,1(0RSADBH; ÿ ) R2-(2,@R ÿ V MOÿ ) ,1(0RSADBHK ACST; ÿ ) R6-(+,2)(R ÿ V MOÿ S SEESDRADR DEEA HERFFBUO I/E ATOT R ; ÿ ÿ ÿ SSREDD ARSDEEA HERFFBUI S ; ÿ ÿ ÿ ÿ RSFEUF BLEABILVA A =R0; ÿ 0 ,RR2 @ ÿOV M ÿ ERFFBUG INSTLIK ANBLL ALÿíIAD ÿBNE ÿLINSR4 ÿ ÿ;NO MATCH; TRY NEXT ENTRY. LINSR6: ÿMOVB ÿ@R4,R0 ÿ ÿ;FLAG BYTE ÿBICB ÿ(R2),R0 ÿ ÿ;ALL BITS IN DST SHOULD ÿBNE ÿLINSR4 ÿ ÿ;BE CLEARED IF MATCH ÿMOVB ÿ1(R4),R0 ÿ;CONTROL SECTION ID BYTE ÿBEQ ÿLINSR8 ÿCMPB ÿR0,1(R2) ÿBEQ ÿLINSR8 LINSR4: ÿSUB ÿ#10,R2 ÿ ÿ;SUBTRACT 4 WORDS FROM POINTER ÿBR ÿLINSR3 ÿ ÿ;TRY NEXT ENTRY. LINSR8: ÿMOV ÿR2,HINDEX-O02 ÿ;MATCH--ADDRESS OF ÿMOV ÿ#1,R0 ÿ ÿ;ENTRY TO HINDEX; ÿRTS ÿR7 ÿ ÿ;POSITIVE VALUE TO R0. ; îÿ TCASUB-TCHARS TCAEXC: .BYTE ÿ '! ÿ ÿ ; EXCLAMATION TCCEXC ÿ = ÿ TCAEXC-TCHARS TCAAND: .BYTE ÿ '& ÿ ÿ ; AND TCCAND ÿ = ÿ TCAAND-TCHARS TCASMC: .BYTE ÿ '; ÿ ÿ ; SEMICOLON TCCSMC ÿ = ÿ TCASMC-TCHARS TCACRE: .BYTE ÿ 015 ÿ ÿ ; CARRIAGE-RETURN TCCCRE ÿ = ÿ TCACRE-TCHARS TCACOM: .BYTE ÿ ', ÿ ÿ ; COMMA TCCCOM ÿ = ÿ TCACOM-TCHARS TCACOL: .BYTE ÿ ': ÿ ÿ ; C C ; F BULK B ÿAPTRÿ R TEINPOT ISRLCUT SE; ÿ 3 @R1, R ÿOV M ÿ NTOU CTEBYS ERFFBUO ER Z ; ÿ)+R1 ( ÿLR C ÿ DEMOS ERFFBUE IZALTINI I ; )+R1,(DEMOLO # ÿOV M ÿ AX MRSFEUF BZELIIAITIN; ÿ + 1)(R0, R ÿOV M ÿ NTOU CTEBYX MAO L =R0; ÿ 0 ,RBCOM#L ÿ V MOÿ S ESDRADR DEEA HLOS ERFFBU; ÿ ÿ ÿ ÿ E IVCTFEEF, 4.-2R1= 1 R ; ÿR10,#2 ÿ B SU 2:ATOT R? D TEESQURET PUUT ONDMAOM Cÿ;T ISOL C ÿAPTRÿ : T1TARO UTROER ÿMPÿJ ) R6-(3,RR#E ÿOVÿM E ICEV DUTTPOUÿ;ÿ 6 @Rÿñ ; ;GSDTAB THIS SUBR CONSTRUCTS THE GSD TABLE IMMEDIATELY ;AFTER THE .END STATEMENT PRECEDING THE BINARY PASS ; SUBR35: ÿMOV ÿ#BOLB,R1 ÿMOV ÿ#BOFB,R3 ÿTRAP ÿDELOUT ÿ ÿ;.INIT, .DELETE, .OPEN, BINARY DATA SET. ; ÿDUMP LEADER GSD999: ÿMOV ÿ#20.,R0 ÿ;SET COUNT GSD06: ÿMOV ÿ#TRLBUF,-(R6) ÿMOV ÿR1,-(R6) ÿEMT ÿWRCMD ÿDEC ÿR0 ÿ ÿ;DONE? ÿBGE ÿGSD06 ÿ MOV ÿ #GSDCMD,DIRCMD-O02 ÿ; GSD DECLARATION. ÿ TRAP ÿ RLDINT ÿ MOV ÿ TITLEA-O02,R0 ÿ; OBJECT MODòOLON TCCCOL ÿ = ÿ TCACOL-TCHARS TCAEQU: .BYTE ÿ '= ÿ ÿ ; EQUALS TCCEQU ÿ = ÿ TCAEQU-TCHARS TCTSIZE = ÿ TCHARS-TCHART ; ÿ .PAGE ÿ .EVEN TERMIN: TRAP ÿ SETUP1 ; CALL SECTION INITIALIZATION TERM0: ÿ MOV ÿ #-TCTSIZE,R0 ; R0 = -TCHARS TABLE SIZE TERM1: ÿ MOV ÿ R0,SAVTERM ÿ ; SAVTERM = R0 ÿ BGE ÿ SECRTN ÿ ; TERMINATE IF NOT N ÿABSW ÿ OND EOÿ;6 @R7,37ÿ#C BI ÿ3:ROER 6)(R,-1)(R-1ATSTLO ÿOVÿM S AGFLE THR EACL, ES Yÿ;) R1T(TAOS,LOF#E ÿ B IC B ÿ UEINNTCO, PENO; ÿ ÿT1TARO ÿ Q BEÿ ? T PUUT OEDSTLIN OOF Eÿ;) R1T(TAOS,LOF#E ÿ B IT B ÿ CHANBR- O ;N ÿT1TARO ÿEQÿB ? SSREOGPRN INGHIYTANS WAÿ;0 ÿRT TS ÿ4:ATOT RS ESGRRO PING INTHMESOT SEÿ;0 ÿRC IN ÿ ONTILEMPCOR FOT AI;W ÿMDTCÿWT EM ÿ 6)(R,-LBSLÿ#V MO ÿ CHANBR- O ;N ÿT4TARO ÿEQÿB ? SSREOGPRN INGTIIS LOLMBSYS ;I ÿLBSL ÿSTÿT: T3TARO SSREOGPRN INGHIETOM SET;S ÿ ÿR0 ÿNCÿI N ÿõULE NAME. ÿ MOV ÿ TITLEB-O02,R1 ÿ CLR ÿ R2 ÿ ÿ; 0 TO FLAGS. ÿ CLR ÿ R3 ÿ MOV ÿ #10,R4 ÿ TRAP ÿ RLDFIL ÿ MOV ÿ #ABS1,R0 ÿ MOV ÿ #ABS2,R1 ÿ MOV ÿ #ASCFLG,R2 ÿ ;ENTER ASECT (PROG. SECTION, DEFINED) ÿ TRAP ÿ RLDFIL ;SEARCH UST FOR ALL .GLOBL'S ASSOCIATED WITH ;THE ABSOLUTE SECTION. ; ÿMOV ÿCONTOP-O02,R2 ÿ;THE STARTING ADDRESS OF UST ÿMOV ÿUSRTOP-O02,R3 ÿ;1ST FREE LOCATION BELOW UST ÿMOV ÿ#WORD1,R1 ÿ;ADDRESS CONTAINING .GLOBL NAME ÿCLR ÿ@R1 ÿ ÿ;ACCEPT ANY NöEGATIVE ÿ CMPB ÿ TCHARS(R0),R3 ; IS TCHARS(R0) = CHARACTER ? ÿ BEQ ÿ SECRTN ÿ ; YES, TERMINATOR IDENTIFIED ÿ INC ÿ R0 ÿ ÿ ; R0 = R0+1 ÿ BR ÿ TERM1 ÿ ; CONTINUE THE SEARCH ? ; ÿ .PAGE NUMBER: TRAP ÿ SETUP1 ; CALL SECTION INITIALIZATION NUM0: ÿ CLR ÿ R5 ÿ ÿ ; R5 = 0 ÿ TSTB ÿ @R4 ÿ ÿ ; DECIMAL POINT SEEN YET ? ÿ BLT ÿ TERM0 ÿ ; YES, PERMIT ONLY TERMIOETPLOM COR FITWAÿ;D CMWT ÿMTÿE ) R6-(B,OL#L ÿOVÿM H NCRA B -NOÿ;3 ATOTÿRQ BE ÿ S?ESGRRO PING INSTLIS ;I ÿLBLO ÿSTÿT S ESGRRO PING INTHNOT SEÿ;0 ÿRR CL ÿ SSREDD ASTLIUR C =R3; ÿ 3 ,RSTLIUR#C ÿ V MOÿ S ESDRADS ERADHE; ÿ ÿ ÿ ÿ R FEUF BUTNP ICEURSO; ÿ ÿ ÿ ÿ S ERFFBUE IVCTFEEF= 1 R ; ÿR12,@R ÿ V MOÿ S SEESDRADS ERADHE; ÿ ÿ ÿ ÿ R FEUF BUTNP IHE TNGNIAINTCO; ÿ ÿ ÿ ÿ E BLTAE THF OSSREDD A =R2; ÿ 2 ,RRSADBH # ÿOV M: 02BRSU E:ATOT;R EDOYTRES DRE AÿùAME. ÿMOV ÿ#WORD3,R4 ÿ;3RD WORD OF MATCH. ÿMOV ÿ#GLBFLG,@R4 ÿ;.GLOBL GSD05: ÿTRAP ÿLINSRCH ÿBEQ ÿGSD01 ÿ ÿ;NO MATCH ÿBITB ÿ#RELFLG,@R2 ÿ;ADDRESS OF MATCH IN R2 & HINDEX ÿBNE ÿGSD04 ÿ ÿ;RELOCATABLE .GLOBL ÿTRAP ÿENTRGL ÿ ÿ;ENTER SYMBOL IN RLD BUFFER GSD04: ÿSUB ÿ#10,R2 ÿ ÿ;HINDEX-4 WORDS. ÿBR ÿGSD05 ÿ ÿ;CONTINUE LINEAR SEARCH. ;ENTER ALL RELOCATABLE PROGRAM SECTIONS ;AND ASSOCIATED .GLOBL SYMBOLS. GSD01: ÿMOV ÿPERTOP-O02,úINATOR ÿ MOV ÿ #1,R0 ÿ ; R0 = 1 ÿ CMPB ÿ R3,#'0 ÿ ; IS CHARACTER AN ASCII 0 ÿ BLT ÿ NUM1 ÿ ; NOPE ÿ CMPB ÿ R3,#'9 ÿ ; IS CHARACTER AN ASCII 9 ÿ BLE ÿ NUM2 ÿ ; JUMP IF PROPERLY BOUNDED NUM1: ÿ CMPB ÿ #'.,R3 ÿ ; CHARACTER A DECIMAL POINT ? ÿ BNE ÿ TERM0 ÿ ; NO, DEFAULT TO TERMINATOR ÿ BISB ÿ #200,@R4 ÿ ; YES, SET DECNUM'S SIGN BIT ÿ ÿ ÿ ÿ ; DECIMAL POINT HAS BEEN SEEN ÿ BICB ÿ #10,NERROR ÿ ; CLEAR THE IMPLIEDR3U HR TR0 ÿ ; ÿ ÿ ÿ S ESDRADS ERADHE ÿ ÿ ; ÿ ÿ ÿ ERFFBUT PUINE RCOU Sÿ ÿ ; ÿ ÿ ÿ S ERFFBUE BLLAAIAV= 0 RT PUUT O ; ÿ ÿ ÿ NENO T PUIN; ÿ ÿ ÿ N IOITOS PLEABILVA AHE TTOINR FEUF BESATOT R ; ÿ ÿ KSANBLO TTADAS ERFFBUS HI TESIZALTINI I ; ÿ ÿ ERADHEO LRSFEUF BISTHS ZELIIAITIN ; ÿ ÿ Y ARSSCENEF IN,IOATINRMTEO LESFIRIVE ; ÿ ÿ : KSAS TNGWILOOL FHE TMSORRFPEE INUTROUB SISTH; ÿ ÿ S ERFFBUT PUUT/OUTNP ITETAROE INUTROUB S ; ÿ ÿýR5 ÿ;BOTTOM OF .CSECT AREA ÿMOVB ÿ#1,WORD3+1-O02 ÿ;UNNAMED .CSECT ID GSD10: ÿMOV ÿCONTOP-O02,R3 ÿ;TOP OF .CSECT AREA ÿMOV ÿ#10,R4 ÿCMP ÿR5,R3 ÿBEQ ÿGSD11 ÿ ÿ;DONE, NO MORE .CSECT'S ÿMOV ÿ-6(R5),R0 ÿ;1ST TRIAD ÿMOV ÿ-4(R5),R1 ÿ;2ND TRIAD ÿMOV ÿ#CSCFLG,R2 ÿ;RELOCATABLE, DEFINED PROG. SECTION ÿMOV ÿ(R5),R3 ÿ ÿ;MAXIMUM PC (SIZE) ÿTRAP ÿRLDFIL ÿ ÿ;ENTER INTO RLD BUFFER ÿCMPB ÿRLDCNT-O02,#51 ÿBLT ÿGSD07 ÿTRAP ÿOUTBIN ÿ ÿ;NO MORE ROOM; OUTPUT ÿTRAP ÿRLDINT ÿ ÿ;AND REFRESH RLD BUFFER. þ DECIMAL ÿ ÿ ÿ ÿ ; BIT IN THE NERROR FLAG ÿ CLR ÿ -(R6) ÿ ; STACK A VOID OVERFLOW VALUE ÿ BR ÿ NUM3 ÿ ; COMPLETE NUMBER PROCESSING NUM2: ÿ BIC ÿ #177760,R3 ÿ ; CONVERT ASCII DIGIT TO BINARY ÿ MOV ÿ @R1,R5 ÿ ; R5 = BASE08'S CURRENT VALUE ÿ MOV ÿ @R2,-(R6) ÿ ; STACK BASE10'S VALUE ÿ BIC ÿ #017777,R5 ÿ ; DETECT BASE08'S OVERFLOW ÿ BIC ÿ #017777,@R6 ÿ ; DETECT BASE10'S OVERFLOW ÿ ASL ÿ @R1 ÿ ÿ ; BASE08 = BASE08 * 2 ÿ ASL , RNTURE; ÿ 7 R ÿTS R ÿ1:NTRI PR TEACARBH' '?E UTITSTUB S ; E YTRBCU,@'? # ÿVBMO 0:NTRI PT MILIR WELO 40S EDCEEX; ÿ 1 NTRI P ÿLE B ÿ TEBYUR@C0,#4 ÿ B MP C ÿ ITIM LERPP U40 1DSEEXC E ; ÿT0INPR ÿ T BGÿ 0 14,#TEBYUR@C ÿ B MP C: 25BRSU T:INPR ;D LIVAINS IEPLIM. GT . ÿ ; ÿ ÿ ÿ IDAL VESLIMP IE..L ÿ ; ÿ ÿ ÿ S LTSURED DECON IOITNDCO: UTTPOU; ÿ ÿ ÿ Y ITILABNTRI PNETIOUBRSU; ÿ N URET R ; ÿR7 ÿ S RTÿ N ÿGSD07: ÿMOV ÿCONTOP-O02,R2 ÿ;THE STARTING ADDRRSS OF UST ÿMOV ÿUSRTOP-O02,R3 ÿ;1ST FREE LOCATION BELOW UST ÿMOV ÿ#WORD1,R1 ÿ;ADDRESS CONTAINING SYMBOLIC NAME ÿCLR ÿ@R1 ÿ ÿ;ACCEPT ANY NAME ÿMOV ÿ#WORD3,R4 ÿ;.CSECT ID ALREADY SETUP ÿMOVB ÿ#GLBFLG!RELFLG,@R4 ÿ;RELOCATABLE .GLOBL GSD08: ÿTRAP ÿLINSRCH ÿBEQ ÿGSD09 ÿ ÿ;NO MATCH ÿTRAP ÿENTRGL ÿ ÿ;ENTER SYMBOL IN RLD BUFFER ÿSUB ÿ#10,R2 ÿBR ÿGSD08 GSD09: ÿSUB ÿ#10,R5 ÿ ÿ;LOOK FOR NEXT .CSECT ÿINCB ÿWORD3+1-O02 ÿ;INCREMENT .CSECT ID ÿBR ÿ ÿ @R2 ÿ ÿ ; BASE10 = BASE10 * 2 ÿ MOV ÿ @R2,-(R6) ÿ ; STACK BASE10'S PARTIAL SUM ÿ ASL ÿ @R1 ÿ ÿ ; BASE08 = BASE08 * 4 ÿ ASL ÿ @R1 ÿ ADD ÿ R3,@R1 ÿ ; BASE08 = BASE08 + DIGIT ÿ ASL ÿ @R2 ÿ ÿ ; BASE10 = BASE10 * 4 ÿ ASL ÿ @R2 ÿ ADD ÿ (R6)+,@R2 ÿ ; BASE10 = BASE10 + PARTIAL ÿ ROR ÿ @R6 ÿ ÿ ; MAINTAIN BASE10'S OVERFLOW ÿ ADD ÿ R3,@R2 ÿ ; BASE10 = BASE10 + DIGIT ÿ ROR ÿ @R6 ÿ ÿ ; MAINTAIN BASE10'S OVERFLOW ÿ BIC URET R ; ÿR7 ÿ S RT: H0TCGE ;. ONTINAMIER TRESUIN; ÿ 3 ,RTEBYUR@C ÿ B OV M ÿ ;0 < E IZ S ANGSI U ; ÿ ÿ ÿ ÿ RDWO . AASD REDESION C ; 6)(R,2770300 # ÿOV M ÿ ;X TAYN SLEABONTIESQU, ES Y ; ÿORRRQE ÿ B NC I ÿ ;T XI ESOE AS CIDAL VO, N ; ÿH0TCGE ÿ E BNÿ ; ?ET-RAR C AERCTRAHA CISTH; TEBYUR@CR,#C ÿ B MP C ÿ ;. EDATINRMTES I ; ÿ ÿ ÿ ÿ VETIECIR DHE TND ADECO; ÿ ÿ ÿ ÿ R ROER' 'QA H IT WEDNTRI PIS; ÿ ÿ ÿ ÿ E IN LNKLA B AR,EAPP AESDO; ÿ ÿGSD10 ÿ;ENTER THE TRANSFER ADDRESS GSD11: ÿMOV ÿ#TRNCMD!DEFFLG,R2 ÿ;DEFINED, TRANSFER ADDRESS SPEC. ÿMOV ÿ#ABS1,R0 ÿ;NAME OF 6 BLANKS ÿMOV ÿ#ABS2,R1 ÿTSTB ÿRSLMOD-O02;TYPE OF EXPRESSION ÿBEQ ÿGSD02 ÿ ÿ;ABSOLUTE ÿ;RELOCATABLE .END ÿMOV ÿGLBSY1-O02,R0 ÿ;.CSECT NAME OF ÿMOV ÿGLBSY2-O02,R1 ÿ;.END EXPRESSION ÿBISB ÿ#RELFLG,R2 ÿ;RELOCATABLE FLAG. GSD02: ÿMOV ÿJMPADR-O02,R3 ÿ;TRANSFER ADDRESS. ÿ BIC ÿ #RSTFLG,R2 ÿ TRAP ÿ RLDFIL ÿ TRAP ÿ OUTBIN ÿ ÿ;START NEW BUFFER ÿ MOV ÿ #GSDENÿ #7,R3 ÿ ; RETAIN THE BIT POSITION ÿ ÿ ÿ ÿ ; WHICH IMPLIES DECIMAL. ÿ BISB ÿ R3,NERROR ÿ ; SET THIS BIT INTO NERROR ÿ ÿ ÿ ÿ ; (IE., ASSUME DECIMAL NUMBERS ÿ ÿ ÿ ÿ ; ARE VIOLATIONS UNTIL THE ÿ ÿ ÿ ÿ ; DECIMAL POINT IS SEEN.) ÿ BISB ÿ R3,@R4 ÿ ; SET THIS BIT INTO DECNUM NUM3: ÿ MOVB ÿ @R4,-(R6) ÿ ; STACK THE DECNUM BYTE ÿ BIC ÿ #177617,@R6 ÿ ; OBTAIN CUMULATIVE OVERFLOW ÿ BIS ÿ (R6)+,@R6 ÿ ; MAINTAIN BASE10'S OVERFLOÿ ÿ ÿ E ONF I. NTMETETA SIISC.A; ÿ ÿ ÿ ÿ N AINTHWID TEITRMPER VENE; ÿ ÿ ÿ ÿ S IERCTRAHA CET-RAR C AATTH; ÿ ÿ ÿ ÿ S RESUINE OD CEDOPO- NISTH; ÿ ÿ ÿ ÿ R TEACARCH. FF E =RMTEAV S ; 5 @RE,YTRBCU @ ÿVBMO 1:R1UB S: ARCHET;G ERCTRAHA CET GNETIOUBRSU; ÿ #7E IL FOFD ENÿ;ÿ ÿ T EOÿ. ; RNTURE; ÿ 7 R ÿTS R: 01ENEV UTNOBI1, # ÿVBMOÿ F BUEB ÿ P RA T ÿ EGTRSE ÿ P RA T ÿ ILDFRL ÿ P RA T ÿÿ D,DIRCMD-O02 ÿ;GSD TERMINATION. ÿ TRAP ÿ RLDINT ÿ TRAP ÿ OUTBIN ÿ MOV ÿ #RLDCMD,DIRCMD-O02 ÿ;RLD BLOCK DECLARATION ÿ TRAP ÿ RLDINT ÿ CLR ÿ R1 ÿ ÿ;UNNAMED .CSECT ÿ CLR ÿ R2 ÿ MOVB ÿ #RLD3.1,R0 ÿ ÿ;ENTER INITIAL ÿCLR ÿR3 ÿ ÿ ÿ;IMPLICIT RLD. (LOCATION COUNTER ÿMOV ÿ#10,R4 ÿ ÿ ÿ;DEFINITION) ÿTRAP ÿRLDFIL ÿTRAP ÿOUTBIN ÿRTS ÿR7 ; ; ;SUBROUTINE TO ENTER A GLOBAL SYMBOL ;POINTED TO BY W ÿ BEQ ÿ NUM30 ÿ ; BASE10 HAS NOT OVERFLOWED ÿ BISB ÿ #160,@R4 ÿ ; MAINTAIN DECNUM'S OVERFLOW NUM30: ÿ BITB ÿ #210,@R4 ÿ ; OCTAL OR DECIMAL ? ÿ BEQ ÿ NUM4 ÿ ; OCTAL NUMBERS EXITED. ÿ ÿ ÿ ÿ ; DECIMAL NUMBERS PROCESSED ÿ MOV ÿ @R6,R5 ÿ ; R5 = BASE10'S OVERFLOW DATA ÿ MOV ÿ R2,R1 ÿ ; R1 = BASE10'S ADDRESS NUM4: ÿ MOV ÿ @R1,QUANTITY ; QUANTITY = EFFECTIVE VALUE NUM5: R44, # ÿOV M ÿ N.IOATICIFOD;M ÿR1C,RPSE@U ÿ V MOÿ R TEUNCON IOATOC;L ÿR02,3.LD#R ÿ B OV M ÿ EGVRSA ÿ P RA T ÿ UTTPOUY ARIN BSTUEEQ R ; ÿUTNOBI ÿ B EG N ÿ ORRR ENGDIUNBOE THT SE; ÿ R ROER B ÿCBINÿ F BUTB ÿ C INÿ . PCS R'SE UNTMERENC I, NO; ÿ C RPSE@U ÿ C INÿ T XI ES,YE; ÿ 1 N0VE E ÿEQ B ÿ ?ENEVR TEUNCON IOATOC L ; ÿPCERUS,@#1 ÿ T BIÿ F BUTBC,RPSE@U ÿ V MO 6:R2UB S: PCENEV ; R TEUNCON IOATOC LHE TENEVE INUTROUB S ; ÿ ÿ NGSIESOCPRE ETPLOM Cüþ  R2 INTO THE RLD BUFFER. ; ;ENTRGL: SUBR42: ÿTRAP ÿSAVREG ÿ ÿ;SAVE REGISTERS ÿMOV ÿR2,R5 ÿ ÿ;ADDRESS OF ENTRY ÿMOV ÿ-6(R5),R0 ÿ;1ST TRIAD ÿMOV ÿ-4(R5),R1 ÿ;2ND TRIAD ÿMOV ÿ-2(R5),R3 ÿ;VALUE ÿMOV ÿ#10,R4 ÿ ÿ;BYTE COUNT ÿMOV ÿ#SYMDIR,R2 ÿ;SYMBOL DECLARATION ÿBISB ÿ(R5),R2 ÿ;SYMBOL'S FLAGS ÿBIC ÿ#RSTFLG,R2 ÿ;KEEP UNDEF/DEF, ABS/REL, ÿTRAP ÿRLDFIL ÿ ÿ;AND INTERNAL/GLOBAL. ÿCMPB ÿRLDCNT-O02,#51 ÿBLT ÿENTRG0 ÿ ÿ;STILL ROOM IN RLDBUFFER ÿTRAP ÿOUTBIN ÿ ÿ;OUTPUT RLD BUFFER ÿTRAP ÿRLDI ÿ MOV ÿ R5,(R6)+ ÿ ; THE EFFECTIVE OVERFLOW DATA ÿ ÿ ÿ ÿ ; SETS THE CONDITION CODES, ÿ ÿ ÿ ÿ ; MAINTAIN THE STACK POINTER ÿ BEQ ÿ SECRTN ÿ ; EXIT, NO OVERFLOW DETECTED ÿ INCB ÿ TERROR ÿ ; SET TRUNCATION ERROR ÿ BR ÿ SECRTN ÿ ; EXIT, OVERFLOW DETECTED ; ÿ .PAGE NCHAR: ÿ TRAP ÿ SETUP1 ; CALL SEC ; ÿT XI E ÿMP J ÿ ORRRBE ÿ B LR C ÿ ERNTOU CONTICALOE THN VE ELLCA; PCENEV ÿ P RA T ÿ T.OUD CEOR F ; ÿ ÿ ÿ YSWAALS IERFFBUT PUUT ORYNABIE TH; ÿ ÿ ÿ ÿ E,OREFERTH, EDERLT ALYALONTIDIONNC U ; ÿ ÿ ÿ ISR TEUNCON IOATOC LLYMBSEASE TH; ÿ ÿ ÿ G INSSCERO PVETIECIR DLYMBSEASN VE E ; ÿ ÿN:VEE DCENÿ. 1 D1EN ÿMPÿJ G SENO ÿDFIFÿ. C ND.E ÿ Y2TREN ÿMPÿJ 3 #AYRLVE;O ÿ ÿÿ3D OR.W ÿ RLNTCO ÿAPTR ÿ EGOSÿNF NDøþNT ÿ ÿ;INITIALIZE RLD BUFFER ENTRG0: ÿTRAP ÿPOPREG ÿ ÿ;RESTORE REGISTERS AND RETURN ÿ.IFNDF ÿNOSEG ENDO02: SIZO02=ENDO02-BEGO02 ; ÿ.EOT ÿ ÿ ÿ;END OF FILE #2 ;***** OVERLAY #3 ***** O03=BEGOVR-BEGO03 ÿ ÿ;COMPUTE OFFSET FROM ÿ ÿ ÿ ÿ;RUN TIME OVERLAY AREA BEGO03: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVERLAY. ; ÿJMP ÿREND ÿ ÿ;ENTRY1 ÿJMP ÿEND11 ÿ ÿ;ENTRY2 ÿJMP ÿSUBR12 ÿ ÿ;ENTRY3 ÿJMP ÿSUBR15 ÿ ÿ;ENTRY4 ÿJMP ÿIFPTION INITIALIZATION ÿ INC ÿ R0 ÿ ÿ ; R0 = 2 ÿ CMPB ÿ R3,#'0 ÿ ; IS CHARACTER ASCII 0 ? ÿ BLT ÿ CHAR01 ÿ ; NOPE ÿ CMPB ÿ R3,#'9 ÿ ; IS CHARACTER ASCII 9 ? ÿ BGT ÿ CHAR01 ÿ ; NOPE CHAR00: SUB ÿ #22,R3 ÿ ; BOUNDED, START TRANSLATION ÿ BR ÿ CHAR03 ÿ ; COMPLETE THE TRANSLATION FCHAR: ÿ TRAP ÿ SETUP1 ; CALL SECTION INITIALIZATION ÿ INC ÿ R0 ÿ ÿ ; R0 = 2 CHAR01: CMPB ÿ #'$,R3 ÿ ; IS CHARACTER ASCII $ ? ÿ BNE ÿ IFÿ.: NDMESI VETIECIR DND.EE ATULIM;S ;C ND.E ÿ TEBYÿRP JM ÿ EGOSÿNF FD.I ÿ DCENÿ. 4 RYNTÿEP JM ÿ ÿ4D OR.W ÿ RLNTCO ÿAPTR ÿ EGOSÿNF NDIFÿ.: TEBY ERDLAN HVETIECIR DTEBY .OFN IORTPOT ENIDES;R ;C ND.E ÿ IISCRA ÿMPÿJ G SENO ÿDFIFÿ. C ND.E ÿ Y2TREN ÿMPÿJ 4 ÿRDWOÿ. L TRONÿCP RAÿT G SENO ÿDFFN.I ÿI:CIAS ERDLAN HVETIECIR DIISC.AF OONTIOR PNTDESIRE ;; DCENÿ. 0 D5RAÿRP JM ÿ EGOSÿNF FD.I ÿ DCENÿ. 1 RYNTÿEP JM ÿ ÿ4D OR.W ÿ #4Y LAEROVN ILLCAÿ;ÿ L TRONÿCP RAÿT G SENO ÿDFFN.I ÿ0:D5RA ERôþRO ÿ ÿ;ENTRY5 ÿJMP ÿIFPRO2 ÿ ÿ;ENTRY6 ÿJMP ÿRENDC ÿ ÿ;ENTRY7 ÿJMP ÿSUBR38 ÿ ÿ;ENTRY8 ÿ.ENDC ; ; ; REND: ÿ ÿ ; .END ASSEMBLY DIRECTIVE PROCESSOR ÿTRAP ÿEXPE1 ÿ ÿ;EVALUATE EXPRESSION ÿMOV ÿRESULT-O03,JMPADR-O03 ;INCREMENT TAPE COUNT IN ;CASE TAPE STILL IN READER ÿMOV ÿSILB-O03,R4 ÿINC ÿ14(R4) ÿ;TAPE COUNT ÿTSTB ÿERROR-O03 ÿBNE ÿEND00 ÿTSTB ÿICOUNT-O03 ÿBLE ÿEND00 ÿCMPB ÿ#-1,RSLMOD-O03 ÿBNE ÿEND01 ÿINCB ÿAERROR-O03 ÿ;.GLOBL IN .END EXPRESSION END00: ÿMOV ÿ#1,JMPADR-O03 CHAR02 ÿ ; NOPE ÿ SUB ÿ #11,R3 ÿ ; YES, INITIATE TRANSLATION ÿ BR ÿ CHAR03 ÿ ; COMPLETE THE TRANSLATION CHAR02: CMPB ÿ #'.,R3 ÿ ; IS CHARACTER ASCII . ? ÿ BEQ ÿ CHAR00 ÿ ; YES, START TRANSLATION ÿ CMPB ÿ R3,#'A ÿ ; IS CHARACTER ASCII A ? ÿ BLT ÿ NUM0 ÿ ; NOPE ÿ CMPB ÿ R3,#'Z ÿ ; IS CHARACTER ASCII Z ? ÿ BLE ÿ CHAR03 ÿ ; CHARACTER IS BOUNDED ÿ ÿ ÿ ÿ ; CHECK FOR LOWER CASE ÿ CMPB ÿ R3,#141 ÿ ; IS CHARDLAN HVETIECIR D50AD.RF OONTIOR PNTDESIRE ;; DCENÿ. C NDRE ÿMPÿJ G SENO ÿDFIFÿ. C ND.E ÿ Y7TREN ÿMPÿJ 3 ÿRDWOÿ. L TRONÿCP RAÿT G SENO ÿDFFN.I ÿC:ND EC ND.E ÿ O2PRIF ÿMPÿJ G SENO ÿDFIFÿ. C ND.E ÿ Y6TREN ÿMPÿJ 3 ÿRDWOÿ. Y TRENF NDIF;. ÿ ÿRLNTCO ÿAPTR ÿ EGOSÿNF NDIFÿ.: DFFN IY TRENF FD.Iÿ;+ 1)(R+,1)(R ÿMPÿC: DFIF DCENÿ. O PRIF ÿMPÿJ G SENO ÿDFIFÿ. C ND.E ÿ Y5TREN ÿMPÿJ 3 ÿRDWOÿ. L TRONÿCP RAÿT G SENO ÿDFFN.I ÿZ:IF )+R1,()+R1ÿ(P CM ÿE:FL I+ 1)(R+,1)(R ÿMPÿC: FL I) 00F0(IE BLTAH NCðþ END01: ÿMOV ÿJMPADR-O03,TBBUF-O03 ÿCLRB ÿBINOUT-O03 ÿMOVB ÿ#100,PAGING-O03 ÿTSTB ÿCNSTLV-O03 ÿ;STILL IN A NEST OF CONDITIONALS? ÿBEQ ÿEND01A ÿ ÿ;NO - BRANCH ÿINCB ÿQERROR-O03 ÿ;QUESTIONABLE SYNTAX END01A: ÿTRAP ÿENDLINE END11: ÿ;SYMBOL TABLE IS FIXED SO ÿ;ALL OF FREE CORE TO STACK. ÿMOV ÿUSRTOP-O03,R6 ÿMOV ÿR6,STKBOT-O03 ÿTSTB ÿSECMOD-O03 ÿ ÿ;.ASECT ÿBEQ ÿEND20 ÿMOV ÿ@USERPC-O03,R4 ÿ;CURRENT PC ÿCMP ÿR4,@HIRPC-O03 ÿ;TO MAX. PC ÿBLOS ÿEND20 ÿ ÿ;IF THE ÿBIT ÿ#1,R4 ÿ ÿ;FORMER. LOWER CASE A ? ÿ BLT ÿ NUM0 ÿ ; CHARACTER NOT BOUNDED ÿ CMPB ÿ R3,#172 ÿ ; IS CHAR. LOWER CASE Z ? ÿ BGT ÿ NUM0 ÿ ; CHARACTER NOT BOUNDED ÿ BICB ÿ #040,R3 ÿ ; INTERNALLY CONVERT ALL ÿ ÿ ÿ ÿ ; LOWER CASE TO UPPER CASE. ÿ MOVB ÿ R3,@CURBYTE ÿ ; EXTERNALLY CONVERT ALL ÿ ÿ ÿ ÿ ; LOWER CASE TO UPPER CASE CHAR03: BIC ÿ #177700,R3 ÿ ; COMPLETE THE TRANSLATION ÿ MOVB ÿ R3,@SYMBOL ÿ ; SAVE CHARACTER IN TMPSYM ÿ INC ÿ SYMBRA BTOINÿ;+ 1)(R+,1)(R ÿMPÿC: GEIF NTMECELASPDIR PERO PET;S ÿ)+R1,()+R1ÿ(P CM ÿG:IF )+R1,()+R1ÿ(P CM ÿZ:FN I; ;" INMA "EE-S--CEANTRENN O=01)(R;C ;R LENDHAS VETIECIR DALONTIDION COFN IORTPOT ENIDES;R ; DCENÿ. D ENÿRP JM ÿ EGOSÿNF FD.I ÿ DCENÿ. 1 RYNTÿEP JM ÿ ÿ3D OR.W ÿ #3Y LAEROVN ILLCAÿ;ÿ L TRONÿCP RAÿT G SENO ÿDFFN.I ÿD:EN ERDLAN HVETIECIR DND.EF OONTIOR PNTDESIRE ;; DCENÿ. T MILIÿRP JM ÿ EGOSÿNF FD.I ÿ DCENÿ. ìþ IS HIGHER ÿBEQ ÿEND24 ÿ ÿ;EVEN. ÿINC ÿR4 ÿ ÿ;MAKE EVEN END24: ÿMOV ÿR4,@HIRPC-O03 END20: ÿMOV ÿÿERRSUM-O03,R4 ÿMOV ÿ#ERRMSG+16-BEGO03+BEGOVR,R3 ÿMOV ÿ#6,R2 ÿTRAP ÿBINASC ÿ ÿ;CALL BIN TO ASCII CONVERTER ÿMOV ÿ#PASS,R5 ÿCMPB ÿLOPASS-O03,@R5 ÿ;IS THIS THE LISTING PASS? ÿBEQ ÿEND21 ÿ ÿ;YES - BRANCH ÿCMPB ÿBOPASS-O03,@R5 ÿ;IS THE BIN OUT PASS? ÿBEQ ÿEND21A ÿ ÿ;YES - BRANCH ÿBR ÿEND21B END21: ÿMOV ÿ#LOLB,R1 ÿ;.CLOSE AND .RELEASE ÿ;ERROR COUNT TO LISTING DEVICE ÿMOV ÿ#ERRMSG-BEGO03+OL ÿ ; SYMBOL = SYMBOL+1 SECRTN: TRAP ÿ SETREG ; CALL SET REGISTERS ÿ MOVB ÿ R0,SFLAG ÿ ; SFLAG = R0 ÿ RTS ÿ R7 ÿ ; RETURN ; ÿ .PAGE ;SETUP1: SUBR22: MOV ÿ (R6)+,R0 ÿ ; SAVE THE RETURN ADDRESS ÿ TRAP ÿ SAVREG ; CALL SAVE REGISTERS ÿ MOV ÿ R0,-(R6) ÿ MOV ÿ #1,R0 ÿ ; R0 = 1 ÿ MOV ÿ #BASE08,R1 ÿ ; R1 = BASE08 ADDRESS ÿ MOV ÿ #BASE10,R2 ÿ ; R2 5 RYNTÿEP JM ÿ ÿ2 RDWOÿ. L TRONÿCP RAÿT G SENO ÿDFFN.I ÿT:MILI ERDLAN HVETIECIR DITIM.LF OONTIOR PNTDESIRE ;; ITEX ÿBR ÿ ZESI ÿCBDE ÿT:EO ERDLAN HVETIECIR DOT;E ;C ND.E ÿ LEITRT ÿMPÿJ G SENO ÿDFIFÿ. C ND.E ÿ Y4TREN ÿMPÿJ 2 ÿRDWOÿ. L TRONÿCP RAÿT G SENO ÿDFFN.I ÿE:TLTI ERDLAN HVETIECIR DLEIT.TF OONTIOR PNTDESIRE ;; DCENÿ. L OBGLÿRP JM ÿ EGOSÿNF FD.I ÿ DCENÿ. 3 RYNTÿEP JM ÿ ÿ2D OR.W ÿ RLNTCO ÿAPTR ÿ EGOSÿNF NDIFÿ.: BLLO GR LENDHAE IVCTREDIL OBGL .OFN IORTPOT ENIDES;R ;C ND.Eèþ!BEGOVR,-(R6) ÿMOV ÿR1,-(R6) ÿEMT ÿWRCMD ÿTRAP ÿCLEAN ÿ ÿ;LISTING FILE. END21A: ÿCMPB ÿBOPASS-O03,@R5 ÿ;IS THIS THE BIN OUT PASS? ÿBNE ÿEND21B ÿ ÿ;NO - BRANCH ÿMOV ÿ#OBJEND,DIRCMD-O03 ÿTRAP ÿRLDINT ÿTRAP ÿOUTBIN ÿMOV ÿ#20.,R4 ÿ ÿ;DUMP TRAILER END25: ÿMOV ÿ#TRLBUF,-(R6) ÿMOV ÿ#BOLB,-(R6) ÿMOV ÿ@R6,R1 ÿ ÿ;FOR CLEAN ÿEMT ÿÿWRCMD ÿDEC ÿR4 ÿBGE ÿEND25 ÿ ÿ ÿ ÿ;.CLOSE AND .RELEASE ÿTRAP ÿCLEAN ÿ ÿ;BINARY FILE. END21B: ÿMOVB ÿ#DEFFLG!GLBFLG,STMASK-O03 ÿMOV ÿ#COLB,R2 ÿMOV ÿR"= BASE10 ADDRESS ÿ MOVB ÿ @CURBYTE,R3 ÿ ; R3 = EFFECTIVE CHARACTER ÿ MOV ÿ #DECNUM,R4 ÿ ; R4 = DECNUM ADDRESS ÿ RTS ÿ R7 ÿ ; RETURN ; ÿ .PAGE ÿ ÿ ; SUBROUTINE BINARY TO ASCII CONVERTER ÿ ÿ ÿ ; INPUT R4 = BINARY NUMBER ÿ ÿ ÿ ; ÿ R3 = DESTINATION END ADDRESS ÿ ÿ ÿ ; ÿ R2 = ITERATION LENGTH ;BINASC: SUBR13: MOVB ÿ R4,-(R3) ÿ ; MOVE THE EFF. OCTAL DIGIT ÿ ÿ ÿ ÿ ÿ CTSERA ÿMPÿJ G SENO ÿDFIFÿ. C ND.E ÿ Y2TREN ÿMPÿJ 2 ÿRDWOÿ. L TRONÿCP RAÿT G SENO ÿDFFN.I ÿT:ECAS ERDLAN HVETIECIR DCTSE.AF OONTIOR PNTDESIRE ;; DCENÿ. T ECCSÿRP JM ÿ EGOSÿNF FD.I ÿ DCENÿ. T ITOL RONTCOE IV;G ÿ ÿY1TREN ÿMPÿJ 2 ÿRDWOÿ. 2 #AYRLVE OINL AL;C ÿ ÿRLNTCO ÿAPTR ÿ EGOSÿNF NDIFÿ.: CTSE CR LENDHAE IVCTREDIT ECCS .OFN IORTPOT ENIDES;R ;E IN LCEURSOO TRNTURE; ÿ C SRET S ÿMP J ÿ NGSIESOCPRE IN LND ELLCA; E INDLEN ÿ P RA T ÿT:XI ET MAOR FNGTIIS LUPT SEÿ;F BUTB3,@Räþ%2,STLLS1+2 ÿTST ÿ@R2 ÿ ÿ;INIT ÿBNE ÿEND13 ÿ ÿ;COMMAND OUT IF ÿMOV ÿR2,-(R6) ÿ;NOT ALREADY DONE. ÿEMT ÿINCMD ÿ ÿ;.INIT END13: ÿCMPB ÿUSPASS-O03,@R5 ÿ;IS THE UNDEF SYM PASS? ÿBEQ ÿEND02 ÿ ÿ;YES - BRANCH END12: ÿCLRB ÿSTMASK-O03 ÿMOV ÿ#SLLB,R1 ÿMOV ÿR1,STLLS1+2 ÿCMPB ÿSTPASS-O03,@R5 ÿ;IS THIS SYM LST PASS? ÿBNE ÿEND22 ÿ ÿ;NO - BRANCH ÿMOV ÿ#SLFB,R3 ÿ;.INIT,.DELETE,.OPEN ÿTRAP ÿDELOUT ÿ ÿ;SYMBOL TABLE DATA SET ÿCLRB ÿSTPASS-O03 END02: ÿTRAP ÿSTLIST ÿ ÿ;LIST SYMBOLS ÿMOV ÿR2,-(R6) & ; INTO LSTBUF(R3) BYTE ÿ BICB ÿ #370,@R3 ÿ ; ZERO EFF. BYTES HIGH 5 BITS ÿ BISB ÿ #060,@R3 ÿ ; SET THE OCTAL 60 BITS ÿ ASR ÿ R4 ÿ ÿ ; SHIFT R4 RIGHT 3 BITS ÿ BIC ÿ #100000,R4 ÿ ; PREVENT SIGN PROPAGATION ÿ ASR ÿ R4 ÿ ASR ÿ R4 ÿ DEC ÿ R2 ÿ ÿ ; R2 = R2-1 ÿ BGT ÿ SUBR13 ÿ ; ITERATE THE PROCESS ÿ RTS ÿ R7 ÿ ; RETURN ; ÿ .PAGE ÿ.EOT ÿ ÿ ÿ;END OF FILE #12 ÿ ; SUBROUTINE END LINE ÿ ÿ ; THIS SUBROUTINE COMPLETELY FORMATS T ÿOVÿM: 1EINMA N URET R ; ÿR7 ÿ S RTÿ E LUVAS L'BOYM S =LTSURE; ÿR3,@0)(R-2 ÿ V MOÿ S ESDRADY TRENS L'BOYM S =R0; ÿ 0 ,RX.DEIN H ÿOV M ÿ ORRR EEDINEF DLYIPLTMUT SE; ÿ ÿORRRME ÿ B NC I: 05BRSU L:VAAV;S NENOT PUUT O ; ÿ ÿ ÿ ONTIUAIT SALCIPE SUTNP I ; ÿ ÿ ÿ ET SISR ROERD NEFIDEY PLTIUL MHE T ; ÿ ÿ E.LUVAE BLTAL BOYM S ; ÿ ÿ HE TTHWIE LUVAS T'ULES RESACPLREE INUTROUB SISTH; ÿ ÿ L BOYM SHEàþ)ÿ;WAIT FOR UNDEFINED SYMBOLS ÿEMT ÿWTCMD ÿBR ÿEND12 ÿ ÿ ÿ ÿ;CLOSE AND END22: ÿTRAP ÿCLEAN ÿ ÿ;RELEASE SYM. ÿ ÿ ÿ ÿ;TABLE FILE. END22A: ÿINCB ÿ@R5 ÿ ÿ;INCREASE PASS NUMBER ÿCMPB ÿ@R5,MAXPASS-O03 ÿBGT ÿEND23 ÿMOV ÿSILB-O03,-(R6) ÿ;CLOSE SOURCE ÿEMT ÿCLS ÿ ÿ;INPUT ÿMOV ÿSITAP2-O03,SITAPE-O03 ÿ;# OF TAPES ÿTST ÿSILB1-O03 ÿ ÿ;ONE WAS ÿBEQ ÿEND26 ÿ ÿ;PARAMETER FILE ÿMOV ÿ#SILB1,SILB-O03 ÿ;BACK TO ÿMOV ÿ#SIFB1,SIFB-O03 ÿ;DATA SET ONE ÿÿMOV ÿSITAP1-O03,SITAPE-O03 ÿ;# OF TAPES END26:*HE LISTED ÿ ÿ ; OUTPUT BUFFERS AND DRIVES THE BINARY ÿ ÿ ; OUTPUT SUBROUTINE. ÿ ÿ ; *** NOTE ÿ*** ÿ ÿ ; EBBUF INCREMENTS THE USERS'S PROGRAM COUNTER ;ENDLINE: SUBR08: TRAP ÿ SAVREG ; CALL SAVE REGISTERS ÿ MOV ÿ CURLIST,R5 ÿ ÿ; R5 = THE CURRENT BUFFER'S ÿ ÿ ÿ ÿ ÿ; OUTPUT HEADER ADDRESS ÿ MOV ÿ R5,ENDL06+2 ÿ ÿ; PLACE THIS HEADER'S ADDRESS ÿ ÿ ÿ ÿ ÿ; INTO LO CALLING SEQUENCE ENDL10: CMP ÿ (R5)+,(R5)+ ÿ ÿ; R5 = R5+4 ÿ MOV ÿ R5,-(R6) ÿ ÿ; STACK THIS ADDRESS TOFE LUVAE AV SNETIOUBRSU; ÿ DCENÿ. E ODPCÿOP JM ÿ EGOSÿNF FD.I ÿ DCENÿ. 1 RYNTÿEP JM ÿ ÿ5D OR.W ÿ RLNTCO ÿAPTR ÿ EGOSÿNF NDIFÿ. H NCRA B -NOÿ;ÿ A 20MN ÿGTÿB ? NELIS HI TLEMBSEASÿ; ÿ ÿCTTADN ÿTBTS ÿ EDRMFOER PNGSIASCLC NIMONE M ; ÿ ÿ: 25INMA ERDLAN HVETIECIR D ; ÿ ÿ ÿ ÿ TEIAPRROPP AHE TTOP UM J ; ÿTYTIANQU @ ÿMP J ÿ CEFAERNT ILYMBSEASL NAIOITNDCOR FOÿ;1 ÿRR CL ÿA:24MN 0AN2ÿMT BG ÿ CHANBR- O ;N ÿDCEN,#TYTIÜþ- ÿMOV ÿ#EOTBUF-BEGO03+BEGOVR,-(R6) ÿ;PRINT ÿMOV ÿR2,-(R6) ÿ ÿ ÿ;"END" ÿEMT ÿWRCMD ÿMOV ÿR2,-(R6) ÿEMT ÿWTCMD ÿJMP ÿSETPASS-O03 END23: ÿMOV ÿ#ERRMSG-BEGO03+BEGOVR,-(R6) ÿ;ERROR LINE COUNT ÿMOV ÿ#COLB,-(R6) ÿ;TO COMMAND OUTPUT DEVICE ÿEMT ÿWRCMD ÿMOV ÿ#COLB,-(R6) ÿEMT ÿWTCMD ÿJMP ÿRESTART-O03 EOTBUF: ÿ.WORD ÿ10 ÿ ÿ;MESSAGE AT END ÿ.WORD ÿ0 ÿ ÿ;OF ALL PASSES ÿ.WORD ÿ10 ÿ ÿ;EXCEPT THE LAST ÿ.BYTE ÿCR,LF ÿ.ASCII ÿ/ END/ ÿ.BYTE ÿCR,LF ÿ.EVEN .ÿ CLR ÿ (R5)+ ÿ ÿ; CLEAR LO BYTE COUNT ÿ MOV ÿ R5,CURLIST ÿ ÿ; CURLIST = EFF DATA(0) ADDR ÿ MOV ÿ R5,R4 ÿ ÿ; R4 = THE ERROR FIELD'S ÿ TST ÿ (R4)+ ÿ ÿ; TERMINAL ADDRESS ÿ MOV ÿ #17,R0 ÿ ÿ; R0 = 23. ÿ TRAP ÿ BLKBUF ; CALL BLANK BUFFER ÿ CLR ÿ R3 ÿ ÿ ÿ; R3 = 0 ÿ MOV ÿ #ERRTAB,R2 ÿ ÿ; R2 = ERROR TABLE BASE ADDR. ENDL00: SWAB ÿ @R2 ÿ ÿ ÿ; EFF ERROR COUNTER ZERO ? ÿ BEQ ÿ ENDL01 ÿ ÿ; YES ÿ CLRB ÿ @R2 ÿ ÿ ÿ; NO, CLEAR THE COUNTER ÿ MOV ÿ #1,R3 ÿ ÿ; SET R3 = 1 ÿ ANQU ÿMPÿC ? ??????--F-.IS HI TISÿ;A 20MN ÿLTÿB Z FN#IY,ITNTUAÿQP CM ÿ CHANBR- S YEÿ;A 24MN ÿLEÿB ? NELIS HI TLEMBSEASÿ;ÿ T ACNTÿDB STÿT S VETIECIR DLYMBSEAS; ÿ ÿ ÿ ÿ G INSSLA CICONEMMN; ÿ 5 N2AI M ÿEQ B ÿ ?R.DI. SM AORC NIMONE M ; S AGFL,TIRMDAS # ÿTBBI 4:N2AI MC ND.E ÿ RDWOÿRP JM ÿ EGOSÿNF FD.I ÿ DCENÿ. 3 RYNTÿEP JM ÿ ÿ4D OR.W ÿ RLNTCO ÿAPTR ÿ EGOSÿNF NDIFÿ.: RDWO ERDLAN HVETIECIR DRDWO .OFN IORTPOT ENIDES;R ;H NCRA B -NOÿ;A 20MN ÿGTÿB ? NELIS HI TLEMBSEASÿ;T ACNTØþ1 ÿ ; SECTION SYMBOL TABLE LISTING ÿ ÿ ; GENERATE AN ALPHABETIZED LISTING OF THE ÿ ÿ ; USERS SYMBOL TABLE. ÿ ÿ ; 1) ENTIRE SYMBOL TABLE IF STMASK CONTAINS 0. ÿ ÿ ; THIS INCLUDES .CSECT TABLE. ÿ ÿ ; 2) UNDEFINED ENTRIES ONLY IF STMASK CONTAINS DEFFLG!GLBFLG ÿ ÿ ; LINEARLY SEARCH THE TABLE WHICH IS ORDERED. ;NOTE: ;ALL ENTRIES ARE ENCODED 16-BIT UNSIGNED, ;POSITIVE, INTEGERS. ;STLIST: SUBR12: ÿTRAP ÿSAVREG ÿ ÿ;SAVE REGISTERS ÿMOV ÿCONTO2CMP ÿ R5,R4 ÿ ÿ; EXCEEDED ERROR FIELD ? ÿ BHIS ÿ ENDL01 ÿ ÿ; YES ÿ MOVB ÿ +1(R2),(R5)+ ÿ; NO, BUFFER ASCII ERROR CODE ÿ ÿ ÿ ÿ ÿ; INCREMENT ADDRESS POINTER ENDL01: SWAB ÿ (R2)+ ÿ ÿ; REINSTATE ERROR TABLE WORD ÿ ÿ ÿ ÿ ÿ; INCREMENT ADDRESS POINTER ÿ CMP ÿ R2,#MAXERR ÿ ÿ; TABLE COMPLETELY EXAMINED ? ÿ BLO ÿ ENDL00 ÿ ÿ; NOPE ÿ ADD ÿ R3,ERRSUM ÿ ÿ; YES, ERRSUM = ERRSUM+R3 ÿ MOVB ÿ R3,ERROR ÿ ÿ; ERROR = R3 ; ÿ .PAGE ÿDB STÿT: 23INMA AGFLG INNDPEM TE IET;S ÿ ÿINEMIT ÿCBIN ÿ CHANBR- O ;N ÿ0AN2ÿMT BG ÿ E?IN LISTHE BLEMSS;A ÿ ÿCTTADN ÿTBTS ÿ2:N2AI M. .T.S PHE TIND UNFOL BOYM S ; ÿ24INMA ÿ T BGÿ E BLTAL BOYM SNTNEMAER PCHARSEL AL C ; H RCEA S ÿAPTRÿ G INNDPES IEMITS HI T ; ÿ22INMA ÿ E BLÿ ? E YP TMSTE INEMIERET D ; ÿPETY I ÿTBTS 1:N2AI MT XI E ÿBRÿ G INSTLIE THT MAOR F ; ÿ ÿ ÿ ÿ TOD SE UIS1 - =ZESI; ÿ ÿ ÿ ÿ ÿ !EDITEXD AND IEIFNTDE Iÿ;ÿ ÿ ÿ ÿ . CRD ANN LOCOMISE; ÿ ÿZESIÔþ5P-O03,R5 ÿ;BOTTOM OF UST ÿMOV ÿUSRTOP-O03,R4 ÿ;TOP OF UST ÿCLRB ÿLCSECT-O03 ÿ ÿ;NOT CSECT'S ÿADD ÿ#10,R5 ÿ ÿ;NULLIFY SUBTRACT AT STLST1 STLST0: ÿTRAP ÿROTATE ÿ ÿ;CALL ROTATE I/O BUFFERS ÿSUB ÿ#11,R0 ÿ ÿ;R0=BHADRS(2,3)-17. ÿMOV ÿR0,@R3 ÿ ÿ;CURLIST=R0,SECOND DATA BYTE ÿMOVB ÿ#-2,LISTSC-O03 ÿ;LIST SYMBOL COUNTER = -3 STLST1: ÿSUB ÿ#10,R5 ÿ ÿ;MOVE FLAG WORD POINTER. ÿCMP ÿR5,R4 ÿBEQ ÿSTLST2 ÿ ÿ;END OF TABLE. ÿTSTB ÿLCSECT-O03 ÿBNE ÿSTLST4 ÿ ÿ;.CSECT TABLE ÿMOV ÿR5,R2 ÿ ÿ;FOR DECODE ÿ6 ÿ MOV ÿ R4,R5 ÿ ÿ; R5 = THE LOCATION FIELD'S ÿ ADD ÿ #6,R5 ÿ ÿ; TERMINAL ADDRESS ÿ MOV ÿ @USERPC,R4 ÿ ÿ; R4 = USER'S PC VALUE ÿ MOV ÿ R5,R3 ÿ ÿ; R3 = BUFFERING ADDRESS ÿ MOV ÿ #6,R2 ÿ ÿ; R2 = 6 ITERATIONS ÿ TSTB ÿ SIZE ÿ ÿ; ANY OBJECT DATA PRESENT ? ÿ BEQ ÿ ENDL02 ÿ ÿ; NOPE ÿ BGE ÿ ENDL12 ÿ INC ÿ PAGING ÿ BR ÿ ENDL05 ENDL12: ÿ TRAP ÿ BINASC ; CALL BINARY TO ASCII CONVERSION ENDL02: TRAP ÿ EBBUF ; CALL ENTER BINARY BUFFER ÿ MOV ÿ #TBBUF,R0 ÿCBDE ÿA:20MN 23INMA ÿ T BL ÿ +2R0 =R0; ÿ 0 ,R#2 ÿ D ADÿ D IEIFNTDE IMAOM C ; ÿ23INMA ÿ Q BEÿ ÿ +1R0= 0 R ; ÿ ÿR0 ÿ B NC I ÿ EREV N : =RSTONAMIER T ; ÿ ÿ ÿ ÿ EDSSCERO PMSTE IIDVO, NO; ÿ ÿ ÿ S YE; ÿ 1 N2AI M ÿGT B ÿ ?NDOU FRSTEACARCHY ANE ER W ; ÿARCHNT C ÿTBTSÿ R EACLG LA FNGDIEN PEMIT; ÿ ÿ ÿ 0:N2AI M S SILYNA AAXNTSYL IAITIN ; GEPA . ÿ ;D ELFIE THG INSHLU FUEINNTCOÐþ9BITB ÿSTMASK-O03,@R5 ÿ;IGNORE DEFINED SYMBOLS ÿBNE ÿSTLST1 ÿ ÿ;IF STMASK CONTAINS DEFFLG!GLBFLG ; ÿCMP ÿHUSERPC-O03,R5 ; ÿ;BEQ ÿSTLST1 ÿ ÿ;IGNORE USER'S PC ÿBR ÿDECODE STLST2: ÿ TRAP ÿ STLLST ; CALL SYMBOL TABLE LISTED OUTPUT ;OUTPUT .CSECT TABLE ÿTSTB ÿSTMASK-O03 ÿBNE ÿSTLST3 ÿ ÿ;EITHER NO .CSECT OR ALREADY DONE ÿCOMB ÿSTMASK-O03 ÿ ÿ;REVERSE SWITCH ÿMOV ÿPERTOP-O03,R5 ÿ;BOTTOM OF .CSECT TABLE ÿMOV ÿCONTOP-O03,R4 ÿ;TOP OF .CSECT TABLE ÿCOMB ÿLCSECT-O03 ÿ ÿ;CSECT PROCESSING :ÿ ÿ; R0 = TBBUF(0) ADDRESS ÿ ADD ÿ #7,R5 ÿ ÿ; R5 = THE OBJECT FIELD'S ENDL1A: ÿ MOV ÿ R5,R3 ENDL03: MOV ÿ #3,R2 ÿ ÿ; R2 = 3 ITERATIONS ÿ MOVB ÿ (R0)+,R4 ÿ ÿ; R4 = EFF OBJECT DATA BYTE ÿ BIC ÿ #400,R4 ÿ ÿ; PREVENT SIGN PROPAGATION ÿ TSTB ÿ BYTFMT ÿÿ ÿ; BYTE OR WORD FORMAT ? ÿ BNE ÿ ENDL04 ÿ ÿ; BYTE ÿ ASL ÿ R2 ÿ ÿ ÿ; R2 = 6 ITERATIONS ÿ DEC ÿ R0 ÿ ÿ ÿ; DECREMENT R0 ÿ MOV ÿ (R0)+,R4 ÿ ÿ; R4 = EFF OBJECT DATA WORD ÿ DECB ÿ SIZE ÿ ÿ; SIZE = SIZE-1 ENDL04: TRAP ÿ ; ÿ 0 N1AI M ÿMP J: 1OINMA ORRR ESEHA PE,OP N ; ÿ1IINMA ÿ E BNÿ ? . PCS R'SE U =UEAL V'SOLMBSY; PCERUS,@TYTIANQU ÿ P CMÿ R ROERD NEFIDEY PLTIUL MS,YE; ÿ M N1AI M ÿEQ B ÿ ?EDINEF DLYIPLTMUL BOYM SIS; ÿ ) R11(G,LADF#M ÿ B MP C ÿ ORRR ESEHA PE,OP N ; ÿ1IINMA ÿ Q BEÿ ? ET SDYEALR AAGFLL BELAS I ; ÿR1,@LGBFLA # ÿTBBIÿ S AS PSTIR FOT ND,UNFO; ÿ ÿ N:N1AI ME BLTAL BOYM S'SERUSO NT I ; ÿ ÿ ÿ ÿ ONTIMAORNF IISTHR TEEN; ÿ K N1AI M ÿBRÌþ= ÿMOV ÿ#412,WORD4-O03 ÿ;CSECT #1, LABEL FLAG, DEFINED ÿBR ÿSTLST0 STLST3: ÿTST ÿSLLB-O03 ÿ;SYMBOL LISTING DEVICE INITED YET? ÿBEQ ÿSTLSTE ÿ;NO - BRANCH ÿMOV ÿ#SLLB,-(R6) ÿ;WAIT FOR OUTPUT TERMINATION ÿEMT ÿWTCMD STLSTE: ÿ TRAP ÿPOPREG ÿ ÿ; RETURN AFTER POPPING REGISTERS. ; ÿ .PAGE STLST4: ÿINCB ÿWORD4+1-O03 ÿ ÿ;START WITH 002 ÿMOV ÿ-6(R5),WORD1-O03 ÿMOV ÿ-4(R5),WORD2-O03 ÿMOV ÿ@R5,WORD3-O03 ÿ;SIZE OF .CSECT ÿÿMOV ÿ#WORD4,R2 ÿCLRB ÿLISTSC-O03 ÿ ÿ;1 SYMBOL PER LINE. ÿ ÿ ; DECODE A >BINASC ; CALL BINARY TO ASCII CONVERSION ÿ INC ÿ PAGING ÿ ÿ; INCREMENT LINE COUNTER ÿ DECB ÿ SIZE ÿ ÿ; SIZE = SIZE-1 ÿ BLE ÿ ENDL05 ÿ ÿ; OBJECT DATA PROCESSING DONE ÿ MOV ÿ SRCIN,R3 ÿ ÿ; R3 = LAST TERMINATORS ADDRESS ÿ INC ÿ R3 ÿ ÿ ÿ; AVOID THE FIRST CHARACTER ÿ MOVB ÿ #TAB,@R3 ÿ ÿ; BUFFER(1) = TAB ÿ ADD ÿ #11,R3 ÿ ÿ; R3 = R3+13. ÿ MOV ÿ R3,SRCIN ÿ ÿ; SRCIN = LATEST TERMINATORS ADDR ÿ MOVB ÿ #LF,@R3 ÿ ÿ; INSERT A CR-LF SEQUENCE ÿ MOVB ÿ #CR,-(R3) ÿ BR ÿ ENDÿ E LUVAS L'BOYM SVESAL AL;C ALVVSA ÿ P RA T ÿ EDINEF D ; ÿ ÿ ÿ ÿ LYIPLTMUS AOLMBSYG LA F ; ÿ1)(R,1AGFLMD # ÿSBBI M:N1AI MR TEEN, NSIOSTUE QTHBOO TNO; ÿ J N1AI M ÿNE B ÿ D?NEFIDE; ÿ ÿ1)(R,1AGFLMDÿ#B MPÿC Y PLTIUL MDYEALR AOLMBSYE THS I. ES YIFH NCRA;B ÿ ÿ1MINMA ÿNEÿB ? T SEY ADREALG LA FELAB LIS; R1,@LGBFLA # ÿTBBIÿ S AS PSTIR FD,UNFO; ÿ ÿ ÿ S AS PSTIR FHE TOT N ; ÿ1NINMA ÿ T BGÿ ? S ESGRRO PINS ISSPAH ICWH; ÿ ÿ#1S,AS P ÿPBCM L:N1AI MD ÈþA2-WORD MOD40 PACKED SYMBOL TO ÿ ÿ ; STANDARD ASCII ENCODED CHARACTERS DECODE: ÿTRAP ÿSAVREG ÿ ÿ; CALL SAVE REGISTERS ÿMOV ÿR2,R5 ÿ MOV ÿ CURLIST-O03,R1 ÿ ; R1 = CUR. LIST. BUF. ADDRESS ÿSUB ÿ#6,R2 ÿ ÿ;ADDRESS OF 1ST TRIAD ÿMOV ÿ#2,R0 ÿ ÿ;TWO TRIAD COUNTER. DECOD0: ÿMOV ÿ(R2)+,-(R6) ÿ;BINARY WORD ÿMOV ÿR1,-(R6) ÿ;ADDRESS OF BYTE STRING ÿMOV ÿ#1,-(R6) ÿ;RAD50 CODE ÿEMT ÿ42 ÿADD ÿ#3,R1 ÿ ÿ;MOVE BYTE STRING POINTER ÿDEC ÿR0 ÿ ÿ;COUNTER FOR 2 PASSES ÿBNE ÿDECOD0 ÿINC ÿR1 BL03 ÿ ÿ; OBJECT FIELD NO FORMATTED ENDL05: MOV ÿ SRCIN,R3 ÿ ÿ; R3 = LAST TERMINATORS ADDRESS ENDL11: ÿ MOVB ÿ #CR,-(R3) ÿ INC ÿ R3 ÿ MOVB ÿ #LF,@R3 ÿ MOV ÿ ENDL06+2,SRCIN ÿ; RESET TERMINATORS ADDR. ÿ SUB ÿ @R6,R3 ÿ ÿ; CALCULATE EFF. BYTE COUNT ÿ DEC ÿ R3 ÿ MOV ÿ R3,@(R6)+ ÿ ÿ; SET BUFFERS BYTE COUNT ÿ CMPB ÿ PASS,LOPASS ÿ ÿ; LISTED OUTPUT PASS ? ÿ BNE ÿ ENDL07 ÿ ÿ; NOPE ÿTST ÿLOLB ÿ ÿ;LISTING DEVICE ALREADY INITED? ÿBNE ÿENDL25 ÿ ÿ;YES - BRANCH ÿMOV ÿ#LOLB,R1 ELFIE THG INSHLU FUEINNTCO; ÿ O N1AI M ÿBRÿ E BLTAL BOYM S'SERUSY LAEROVL AL C ; AYRLOV ÿ P RA T ÿ AGFLD NEFIDES L'BOYM SET S ; ÿR1,@LGFFDE # ÿSBBIÿ : 1PINMA IDT ECCSÿ;ÿ ) R11(D,MOECÿSB OVÿM G LA FEDINEF;D ÿ ÿ ÿ1PINMA ÿEQÿB Y PLTIUL MDERIEROVT ON;D ÿ ÿ1)(R,1AGFLMDÿ#B MPÿC 1 @RG,FLEL#R ÿ B IS B ÿ 1PINMA ÿ Q BEÿ D MOEC S ÿTBTSÿ G LA FELAB L'SOLMBSYT SE; ÿ 1 @RG,FLAB#L ÿ B IS B: 1KINMA ERNTOU CONTICALO; ÿ ÿ ÿ ÿ Y BLEMSS AHE T =LTSURE; ÿ 3 @RC,RPSE@U ÄþE ÿ ÿ ÿ ; FORMAT THE LISTED OUPTUT ÿ BITB ÿ #RELFLG,@R5 ÿ ;ENABLES A SUFIX OF R WITHTHE ÿ BEQ ÿ DECODF ÿ ;OUTPUT OF SYMBOL TABLE FOR ÿ MOVB ÿ #'R,10(R1) ÿ ;RELOCATABLE SYMBOLS ÿ BR ÿ DECOD8 DECODF: ÿ BITB ÿ #REGFLG,@R5 ÿ ; SYMBOL A REGISTER ? ÿ BEQ ÿ DECOD8 ÿ ; NOPE ÿ MOVB ÿ #'%,1(R1) ÿ ; YES, REGISTER DECOD8: BITB ÿ #LABFLG,@R5 ÿ ; IS THIS SYMBOL A LABEL ? ÿ BNE ÿ DECOD9 ÿ ; YES ÿ MOVB ÿ #'=,@R1 ÿ ; NO, DIRECT ASSIGF ÿMOV ÿ#LOFB,R3 ÿTRAP ÿDELOUT ÿ ÿ;.INIT, .DELETE, .OPEN LISTING DATA SET. ENDL25: ÿ TSTB ÿ RLDFLG ÿ BEQ ÿ ENDL06 ÿ ÿÿ; THIS PORTION PUTS ÿ CMPB ÿ @R5,#CR ÿ ÿ; AN APOSTROPHE ÿ BNE ÿ ENDL1C ÿ ÿ; AS REQUIRED FOR ÿ TSTB ÿ (R5)+ ÿ ÿ; INSTRUCTIONS TO BE ÿ MOVB ÿ (R5)+,@R5 ÿ ÿ; MODIFIED ÿ DEC ÿ R5 ÿ MOVB ÿ -(R5),1(R5) ÿ MOV ÿ ENDL06+2,-(R6) ÿ ADD ÿ #4,@R6 ÿ INC ÿ @(R6)+ ENDL1C: ÿ MOVB ÿ #'',@R5 ENDL06: ÿMOV ÿ#0,-(R6) ÿ;I/O SERVICING ÿMOV ÿ#LOLB,-(R6) ÿEMT ÿWRÿ V MOÿ S AS PSTIR FD,UNFOT NO; ÿ ÿ J:N1AI MD ELFIE THG INSHLU FUEINNTCO; ÿ O N1AI M ÿBRÿ R ROERE ASPHE THT SE; ÿ R ROER P ÿCBIN I:N1AI MS AS PSTIR FOT ND,UNFOT NO; ÿ ÿ ÿ S ESGRRO PINS ISSPAT RSFI; ÿ J N1AI M ÿEQ B ÿ ?SSREOGPRN IISS AS PCHHI W ; ÿ#1S,AS P ÿPBCMÿ . .T.S UIND UNFOS WAL BOYM S ; ÿ1LINMA ÿ Q BEÿ ? D UNFOL BOYM SHE TAS W ; ÿ ÿR0 ÿ T TS H:N1AI MD ELFIE THG INSHLU FUEINNTCO; ÿ O N1AI M ÿBRÿ X TAYN SLEABONTIESQUY ELÀþINMENT DECOD9: TST ÿ (R1)+ ÿ ; R1 = R1+2 ÿMOV ÿR1,R3 ÿ BITB ÿ #DEFFLG,@R5 ÿ ; IS SYMBOL UNDEFINED ? ÿ BNE ÿ DECODA ÿ ; NOPE ÿ BITB ÿ #GLBFLG,@R5 ÿ ;THIS PORTION ENABLES OUTPUT ÿ BEQ ÿ DECODH ÿ ;OF 0 IN CASE OF AN UNDEFINED ÿ MOVB ÿ #'G,7(R1) DECODH: ÿ MOV ÿ #"**,-(R6) ÿ ; YES, VALUE = ASTERISKS DECODG: ÿ MOV ÿ @R6,@R1 ÿ MOV ÿ @R6,2(R1) ÿ MOV ÿ (R6)+,4(R1) ÿ BR ÿ DECODJ ÿ ; CHECK AVAILABLE SPACE DECODA: ÿ MOV ÿ -2(R5JCMD ÿ CMP ÿ PAGING,#70 ÿ ÿ; OVERFLOWING LINE COUNTER ? ÿ BLT ÿ ENDL07 ÿ ÿ; NOPE ÿ MOV ÿ PAGCNT,R4 ÿ ÿ; R4 = PAGE COUNTER VALUE ÿ MOV ÿ #PAGBUF+25,R3 ÿ; R3 = BUFFERING ADDRESS ÿ MOV ÿ #3,R2 ÿ ÿ; R2 = 3 ITERATIONS ÿ TRAP ÿ BINASC ; CALL BINARY TO ASCII CONVERSION ÿ INC ÿ PAGCNT ÿ ÿ; INCREMENT PAGE COUNTER ÿ CLR ÿ PAGING ÿ ÿ; CLEAR LINE COUNTER ÿMOV ÿ#PAGBUF,-(R6) ÿ;I/O SERVICING ÿMOV ÿ#LOLB,-(R6) ÿEMT ITINEF D ; ÿORRRQE ÿ B NC I ÿ ONTIUAIT SIDAL VE,OP N ; ÿ1HINMA ÿ E BNÿ ? R TEUNCON IOATOC L ; ÿ ÿ ÿ ÿ LYMBSEASE THL BOYM SHE TIS; 007412,#+1YMPSTM ÿ P CM G:N1AI M. EDINEF DLYIPLTMU; ÿ ÿ ÿ ÿ G INBES AOLMBSYS HI TAGFL; ) R11(G,LADF#M ÿ B IS B ÿ ORRR EERSTGIREE THT SE; ÿ R ROER R ÿCBINÿ N IOATTUSID LIVA, PENO; ÿ G N1AI M ÿEQ B ÿ ?ERSTGIRED PETYL BOYM SIS; ÿ 1 @R2, R ÿTBBI F:N1AI M D ELFI; ÿ ÿ ÿ ÿ L BELAE THG INSHLU FUEINNTCO¼þM),R4 ÿ ; R4 = EFFECTIVE VALUE ÿ MOV ÿ #6,R2 ÿ ; R2 = 6, ITERATIONS ÿ ADD ÿ R2,R3 ÿ ; R3 = R3+6 ÿ TRAP ÿ BINASC ; CALL FOR BINARY TO ASCII CONVERSION DECODJ: ÿCLR ÿR4 ÿBISB ÿ1(R5),R4 ÿ;CONTROL SECTION ID. ÿCMP ÿR4,#1 ÿ ÿ;DON'T OUTPUT .ASECT OR ÿBLE ÿDECODI ÿ ÿ;UNNAMED .CSECT ID ÿCMP ÿR4,#MDFLAG ÿ;DON'T OUTPUT ÿBEQ ÿDECODI ÿ ÿ;MULDEF FLAG ÿMOV ÿ#3,R2 ÿ ÿ;3 DIGIT NUMBER ÿADD ÿ#13,R3 ÿ ÿ;COLUMN AFTER RIGHTMOST DIGIT ÿTRAP ÿBINASC ÿ ÿ;BINARY TO ASCII CONVERSINÿWRCMD ENDL07: ÿCLRB ÿRLDFLG ÿ CLR ÿ SIZE ÿ ÿ; SIZE = 0 ÿ TSTB ÿ ERROR ÿ ÿ; WAS THE LINE ERRORED ? ÿÿ BEQ ÿ ENDL09 ÿ ÿ; NOPE ÿ CMPB ÿ PASS,ERPASS ÿ ÿ; ERROR LISTING PASS ? ÿ BNE ÿ ENDL09 ÿ ÿ; NOPE ÿ MOV ÿ BHADRS,COFLAG ÿ; REQUEST COMMAND OUTPUT ÿ ÿ ÿ ÿ ÿ; COFLAG = BHADRS(0,1) ENDL09: ADD ÿ #26,SRCIN ÿ CLRB ÿ ERROR ÿ ; ERROR = 0 ÿ TRAP ÿ POPREG ; CALL SET REGISTERS AND RETURN ; ÿ .PAGE T PUUT O ; ÿ ÿ ÿ ÿ ONTIUAIT SALCIPE SUTNP I ; ÿ ÿ ÿ ÿ D.REROERD AND TEECET D ; ÿ ÿ RE AREHES CEANARPEAPR TEUNCON IOATOC LLYMBSEAS; ÿ ÿ R TEISEG RASD PETYE BEREVT NOAN CLSBELA; ÿ ÿ ÿ X.DEIN HINS DESIRES ESDRADE BLTA ; ÿ ÿ L BOYM SVETIECFF EHE TNETIOUBRSUS HI TNGRITEENN PO U ; ÿ ÿ TSENNMIGSS AELAB LLL AESFIRIVE, NETIOUBRSUS HI T ; ÿ NGSIESOCPRL BELA; 4 N1AIÿMR ÿB T PSN IAGFLD INEFED RET;S ÿ ÿEXNDHI,@EF¸þQON DECODI: ÿ BITB ÿ #GLBFLG,@R5 ÿ ;SUFFIX G ÿ BEQ ÿ DECODB ÿ MOVB ÿ #'G,7(R1) DECODB: ÿTRAP ÿSETREG ÿ ADD ÿ #26,CURLIST-O03 ÿ ; SYMBOL FIELD =22(10) CHARS. ÿ INCB ÿ LISTSC-O03 ÿ ; INCREMENT SYMBOL COUNTER ÿ BGT ÿ DECODC ÿ ; LO BUFFER FULL, OUTPUT ÿ JMP ÿ STLST1 ÿ ; PROCESS THE NEXT SYMBOL DECODC: ÿ TRAP ÿ STLLST ; CALL SYMBOL TABLE LISTED OUTPUT ÿ JMP ÿ STLST0 ÿ ; SUBROUTINE SYMBOL TABLE LISTED OUTPUT ;STLLST: SUBR15: MOV ÿ #CURLISTR ÿ ÿ ; SUBROUTINE ENTER BINARY BUFFER ÿ ÿ ÿ ; INPUT BINOUT BYTE FLAGS ÿ ÿ ÿ ; > 0, ENTER TBBUF DATA ÿ ÿ ÿ ; ÿ INTO BINBUF ÿ ÿ ÿ ; = 0, FORCE BINBUF OUT AND ÿ ÿ ÿ ; ÿ GENERATE BINARY EOT ÿ ÿ ÿ ; < 0, FORCE BINBUF OUT ÿ ÿ ÿ ; OUTPUT NONE ÿ ÿ ÿ ; BBINIT PROVIDES DIRECT ÿ ÿ ÿ ; SUPPORT ;EBBUF: SUBR09: TRAP ÿ SAVREG ; CALL SAVE REGISTERS ÿ MOV ÿ #TBBUF,R4 ÿ CLR ÿ R0 ÿ ED#R ÿSBBI ÿ0:N4AI MC ND.E ÿ GNSIAS ÿMPÿJ G SENO ÿDFIFÿ. C ND.E ÿ Y7TREN ÿMPÿJ 4 #AYRLVE;O ÿ ÿ ÿÿ4D OR.W ÿ RLNTCO ÿAPTR ÿ NTMEGNSIAST ECIR;D ÿ ÿ ÿEGOSÿNF NDIFÿ. L BELAA S ASSCERO PS,YE; ÿ F N1AI M ÿEQ B ÿ ?ONOL C AORATINRMTED VESAS WA; ÿ + 6)(R ÿ B ST T ÿ SSREDD ALTSURE= 3 R ; ÿR3T,ULES#R ÿ V MOÿ T ANSTON CAGFLR TEISEG R =R2; ÿ 2 ,RLGGFRE # ÿOV M ÿ SSREDD AGSLATF= 1 R ; ÿR1S,AGFL#T ÿ V MOÿ : 15INMA ST UTOINR TEEN; ÿ ÿ R TEEN ÿAPTR ÿ T.USN INDOU´þU,R0 ÿ BIC ÿ #1,@R0 ÿ MOV ÿ #005015,@0(R0) ÿ ADD ÿ #2,@R0 ÿ CLR ÿ @0(R0) ÿ MOV ÿ BHADRS+2-O03,R1 ÿ SUB ÿ #20,R1 ÿMOV ÿR1,-(R6) ÿ;STACK BUFFER ADDRESS ÿ CMP ÿ (R1)+,(R1)+ ÿ SUB ÿ R1,@R0 ÿ MOV ÿ @R0,@R1 STLLS1: ÿMOV ÿ#0,-(R6) ÿ;OUTPUT SYMBOL TABLE ÿ ÿ ÿ ÿ;NOT RE-ENTRANT ÿEMT ÿWRCMD ÿ RTS ÿ R7 ; ÿ .PAGE ;ARITHMETIC CONDITIONAL ASSEMBLY PROCESSORS ; ;FORM --- .IF??? ÿEXPRESSION ÿ;.IFZ IF Vÿ ; REQUEST REGISTER SETUP ÿ TRAP ÿ BBINIT ; CALL BINARY BUFFER SETUP ÿ MOVB ÿ SIZE,-(R6) ÿ ; STACK OBJECT DATA SIZE ÿ TSTB ÿ BINOUT ÿ ; DETERMINE PROCESSING TYPE ÿ BGT ÿ EBBUF0 ÿ ; SIMPLE OBJECT DATA BUFFERING ÿ BEQ ÿ EBBUF2 ÿ ; OUTPUT THE BUFFER AND EOT ÿ MOV ÿ @R4,@R5 ÿ ; SET THE ASSEMBLY LOCATION ÿ ÿ ÿ ÿ ; COUNTER = TBBUF(0,1) ÿ CMP ÿ @R2,#6 ÿ ; BUFFER CONTAIN ANYTHING? ÿ BGT ÿ EBBUF2 ÿ ; YES, OUTPUT THE BUFFER F ; ÿ ÿ15INMA ÿEQÿB . ERTHUR F ; ÿ ÿ ÿ ÿ CHARSED ANG LA FEDINEF-DRET SEL BOYM SNTNEMAER P A ; ÿ ÿ ÿ ÿ ASD RETEUNCOENF I ; ÿ40INMA ÿ T BGÿ E BLTAL BOYM S'SERUSE THH RCEA SLLCA; CHARSE ÿ P RA T: 14INMA ORATINRMTES OLMBSYS HI TCKTA S ; ÿ6)(R,-R0 ÿ V MO 3:N1AI MT ENNMIGSS ACTREDIS HI TRTBO A ; ÿ1EINMA ÿ P JMÿ N LOCOA S WAR TONAMIER T ; ÿ10INMA ÿ E BLÿ ? ORATINRMTEE THS WAT HA W ; ÿ ÿR0 ÿ T TSÿ X TAYN SLEABONTIESQUS A ; ÿ ÿ ÿ ÿ EDER°þYEQ 0 ÿ;.IFG IF GT 0 ÿ;.IFGE IF GE 0 ÿ;.IFL IF LT 0 ÿ;.IFLE IF LE 0 ÿ;.IFNZ IF NE 0 IFPRO: ÿCLR ÿR0 ÿ;PRIME COND TO EVALUATE ÿTRAP ÿCOND ÿ;THE EXPRESSION ÿTST ÿRESULT-O03 ÿ;TEST THE RESULT ÿJMP ÿIF000-BEGO03+BEGOVR(R1) IF000: ÿBNE ÿIF020 ÿ ÿ ÿ ÿ ÿ;IFZ ÿBR ÿIF010 ÿBGT ÿIF020 ÿ;THE CONDITIONAL BRANCH IS ÿ;IFLE ÿBR ÿIF010 ÿ;TAKEN WHEN THE REQUESTED ÿBGE ÿIF020 ÿ;CONDITION IS NOT SATISFIED ÿ;IFL ÿBR ÿIF010 ÿBLT ÿIF020 ÿ ÿ ÿ ÿ ÿ;IFGE ÿBR ÿIF010 ÿBLE ÿIF020 ÿ ÿ ÿ ÿ ÿ;IFG Z ÿ BR ÿ EBBUF3 ÿ ; INITIALIZE THE BUFFER EBBUF0: NEGB ÿ @R6 ÿ ÿ ; NEGATE STACKED OBJECT DATA ÿ ÿ ÿ ÿ ; SIZE VALUE, USE THIS AS ÿ ÿ ÿ ÿ ; THE ITERATION INDEX. EBBUF1: ÿ TSTB ÿ RLDFLG ÿ BEQ ÿ EBBUFA ÿ TSTB ÿ @R6 ÿ BLT ÿ EBBUF5 ÿ BR ÿ EBBUFB EBBUFA: TSTB ÿ @R6 ÿ ÿ ; IS INDEX STILL NEGATIVE ? ÿ BGE ÿ EBBUF4 ÿ ; NOPE, PROCESSING COMPLETED EBBUFB: ÿ CMP ÿ #52,RLDCNT ÿ ÿ ÿ ;IF RLDBUF IS FULL THEN OUTPUT ÿ BLE ÿ EBBUF2 ÿ CMP IDNSCOS EMITR HEOTL AL; ÿ R ROER Q ÿCBINÿ L BOYM SEDORRR-EUNN AAS WEMIT; ÿ 3 N1AI M ÿGT B ÿ PETYS M'TE IHE TCKHE C ; ÿPETY I ÿTBTS 1:N1AI M. NGSIESOCPRR FOS ERSTGIREE THE IZALTINI I ; ÿ ÿ ND AERNTOU CONTICALOY BLEMSS AHE TFYTIENID ; ÿ ÿ , ORATINRMTEE THG INEDECPRL BOYM SHE TSSCERO P ; ÿ ÿ TSENNMIGSS ACTREDID ANS ELAB LOR FNGSIESOCPRL IAITIN; ÿ H NCRA B -NOÿ;0 N1AIÿMT BG ÿ L?BELAS HI TE"BLEMSS"Aÿ;T ACNTÿDB STÿT: 06INMA LDIE FORATEROPS ESOCPR- O ;N ÿ20INMA ÿMPÿJ¬þ] ÿBR ÿIF010 ÿBNE ÿIF010 ÿ ÿ ÿ ÿ ÿ;IFNZ IF020: ÿINCB ÿDNTACT-O03 ÿ;CONDITION NOT SATISFIED ;INCREMENT DON'T ASSEMBLE COUNTER. IF010: ÿMOVB ÿ#-1,SIZE-O03 ÿ;LISTING FORMAT CONTROL ÿJMP ÿEXIT-O03 ÿ;EXIT IFPRO2: ÿMOV ÿ#2,R0 ÿ ÿ;PRIME COND ÿTRAP ÿCOND ÿ ÿ;NOT TO EVALUATE THE EXPR. ÿMOV ÿR0,R4 ÿ ÿ;SETUP R4 FOR "OR" CONDITION ÿCLR ÿR2 ÿ ÿ;FINAL RESULT GOES IN R2 IFDF00: ÿÿMOV ÿ#IFDF25-BEGO03+BEGOVR,-(R6) ÿ;STACK THE "OR" OPERATOR IFDF05: ÿTRAP ÿITEM ÿ ÿ;GET NEXT ITEM ÿTSTB ÿITYPE-O03 ÿ ÿ;IS T^ÿ R1,#MAXBBA-10 ÿ ; IS THE BINARY BUFFER FULL ? ÿ BHIS ÿ EBBUF2 ÿ TSTB ÿ RLDFLG ÿ BNE ÿ EBBUF4 ÿ BR ÿ EBBUF5 ÿ ÿ ÿ ; OUTPUT THE BINARY BUFFER EBBUF2: TRAP ÿ CHECKSUM ; CALL CHECKSUM FINALIZATION ÿ ÿ ÿ ÿ ; IS THIS THE BO PASS ? ÿ JMP ÿ EBBUF3 ÿ ; NOPE ÿ ÿ ÿ ; SERVICE THE BINARY OUTPUT REQUEST ÿ CMP ÿ #10,BINBUF+10 ÿ BGE ÿ EBBUFF ÿ ; YES, AVOID OUTPUT ÿMOV ÿ#BINBUF,-(R6) ÿMOV ÿ#BOLB,-(R6) ÿ;OUTPUT BINARY BUFFER ÿEMT ÿWRCMD ÿM H NCRA B -ES;Y ÿ ÿ ÿ 2)(-? :" "ORATINRMTES ;I ÿ06INMA ÿEQÿB: 04INMA ITEXO G -NOÿ;A 20MN ÿBR ÿ CHANBR- S YEÿ;1 N1AIÿM LEÿB ? NELIS HI TLEMBSEASÿ;ÿ T ACNTÿDB STÿT H NCRA B -NOÿ;4 N0AIÿME BL ÿ 1)(-? =" "ORATINRMTES ;I ÿR02,ÿ#D AD ÿ ORATINRMTED DECOEN= ) R0C(ÿ;0 ,RRMTEAVÿSB OVÿM M TE ILLCA; EMIT ÿ P RA T: 10INMA T.ENEMATSTT ENNMIGSS ACTREDIA E ATAREP S ; ÿ Y,LLIANTTEPO, ND ATSENNTCOS D'ELFIL BELAE THH USFL; ÿ T ENEMATSTE RCOU SALDUVIDIINH AC EOFN IOATLUVA ETEIAITIN; ¨þaHIS AN OK SYMBOL? IFDF12: ÿTRAP ÿSEARCH ÿ ÿ;YES--SEARCH SYMBOL TABLE ÿBGT ÿIFDF12 ÿ ÿ;FOUND IN P.S.T--IGNORE ÿBNE ÿIFDF10 ÿ ÿ;NOT FOUND IN U.S.T. IFDF15: ÿBITB ÿ#DEFFLG,TFLAGS-O03 ÿ;IS SYMBOL DEFINED? ÿBNE ÿIFDF20 ÿ ÿ;YES--BRANCH IFDF10: ÿADD ÿR4,@R6 ÿ ÿ;NOT FOUND OR UNDEFINED IN U.S.T. IFDF20: ÿJMP ÿ@(R6)+ ÿ ÿ;PROCESS & HOUSEKEEP THE STACK IFDF25: ÿBIS ÿR4,R2 ÿ ÿ;LAST TERM="OR", SYMBOL DEFINED ÿBR ÿIFDF35 ÿ ÿ;LAST TERM="OR", SYMBOL UNDEFINED IFDF30: ÿBR ÿIFDF35 ÿ ÿ;LAST TERM="AND", SYMBOL DbOV ÿ#TRLBUF,-(R6) ÿMOV ÿ#BOLB,-(R6) ÿEMT ÿWRCMD ÿMOV ÿ#BOLB,-(R6) ÿ;WAIT FOR COMPLETION ÿEMT ÿWTCMD ÿ TRAP ÿ EOMCHK EBBUFF: ÿ CMP ÿ #2,RLDCNT ÿ BGE ÿ EBBUF3 ÿ TRAP ÿ OUTBIN EBBUF3: ÿ MOV ÿ R5,R0 ÿ TRAP ÿ BBINIT ; CALL BINARY BUFFER INITIALIZATION ÿ TSTB ÿ BINOUT ÿ ; GENERATE THE EOT ? ÿ BEQ ÿ EBBUF7 EBBUFC: ÿ TSTB ÿ RLDFLG ÿ BNE ÿ EBBUF4 ÿ BR ÿ EBBUFA EBBUF7: ÿ TRAP ÿ EOMCHK EBBU : 05TLGE HTUGCAR TEACARCHL GALEIL; ÿ ÿORRRQE ÿ B NC I ÿ ONTIUAIT SIDAL VS,YE; ÿ ÿ05TLGE ÿ Q BEÿ ? R. CSTLAE THS HI TIS; ÿ ÿR20, R ÿMP C ÿ ERNTOI PHE TUPCKBA, ES Yÿ;ÿ ÿ 0 R ÿEC D ÿ ANSCE THE NUTION CE,OP Nÿ;ÿ 4 L0ET G ÿNE B ÿ .?CRA R TEACARCHS HI TIS; ÿ ÿR4+,0)(R ÿ B MP C: 04TLGE R. CSTLAF OR.DD A =R2; ÿ ÿ ÿR2 ÿ C DEÿ R TONAMIER TNELIS GEMA I ; ÿ ÿ ÿ ÿ CEURSOE IVCTFEEFE TH; ÿ ÿ ÿ ÿ F OSSREDD A¤þeEFINED ÿCLR ÿR2 ÿ ÿ;LAST TERM="AND", SYMBOL UNDEFINED IFDF35: ÿMOVB ÿSAVTERM-O03,R0 ÿ;GET THIS TERMINATOR ÿADD ÿ#4,R0 ÿ ÿ;IS IT "CR"? ÿBEQ ÿIFDF50 ÿ ÿ;YES--BRANCH ÿINC ÿR0 ÿ ÿ;IS IT ";"? ÿBEQ ÿIFDF50 ÿ ÿ;YES--BRANCH ÿINC ÿR0 ÿ ÿ;IS IT "&"? ÿBEQ ÿIFDF60 ÿ ÿ;YES--BRANCH ÿINC ÿR0 ÿ ÿ;IS IT "!"? ÿBEQ ÿIFDF65 ÿ ÿ;YES--BRANCH ÿBR ÿIFDF45 ÿ ÿ;ERROR--ILLEGAL TERMINATOR IFDF40: ÿTST ÿ(R6)+ ÿ ÿ;REMOVE STACKED OPERATOR IFDF45: ÿINCB ÿQERROR-O03 ÿ ÿ;ERRORED SYMBOL OR ILLEGAL ÿCLR ÿR2 ÿ ÿ;TERMfF4: TST ÿ (R6)+ ÿ ; MAINTAIN THE STACK POINTER ÿ TRAP ÿ POPREG ; CALL SET REGISTERS AND RETURN EBBUF5: ÿ INC ÿ @R5 EBBUF8: ÿ ÿ ; BUFFER ONE OBJECT DATA BYTE ÿ INC ÿ @R2 ÿ ÿ ; INCREMENT BLOCKS BYTE COUNT ÿ ÿ ÿ ÿ ; LOCATION COUNTER ÿ INCB ÿ @R6 ÿ ÿ ; INCREMENT THE STACKED SIZE ÿ MOVB ÿ @R4,(R1)+ ÿ ; BUFFER THE OBJECT DATA BYTE ÿ MOVB ÿ (R4)+,-(R6) ÿ ; ADD THE OBJECT DATA HE T =INRC S ; ÿINRC,SR2 ÿ V MOÿ N URET-RGEIARRCA; ÿ ÿ ÿ ÿ A H IT WRSTONAMIER TNELI; ÿ ÿ ÿ ÿ L ALL AITRY LLNAIOITNDCOUN; ÿ ) R21(,+R4 ÿ B OV M ÿ3:L0ET GR TONAMIER THE TNGDICERE P ; ÿ2)(R-14, R ÿVBMOÿ N URET-RGEIARRCAA T ERNS I ; ÿR2,@)+R2 ( ÿVBMOÿ N IOATTUSID LIVA, ES Y ; ÿ03TLGE ÿ Q BEÿ ? R TONAMIER TESEDECPRR C ; ÿ2)(R-14, R ÿPBCM 2:L0ET GT MAOR FORATINRMTER FEUF BEROPPRE URNS I ; ÿ ÿ ÿ ERNTOU CGEPAW LORFVE OS,YE; G INAG,P þiINATOR (DEFAULT=UNDEFINED) IFDF50: ÿTST ÿR2 ÿ ÿ;CHECK RESULT ÿJMP ÿIFDF55-BEGO03+BEGOVR(R1) IFDF55: ÿBEQ ÿIF010 ÿ ÿ;.IFNDF SATISFIED ÿBR ÿIF020 ÿ ÿ;.IFNDF NOT SATISFIED ÿBEQ ÿIF020 ÿ ÿ;.IFDF NOT SATISFIED ÿBR ÿIF010 ÿ ÿ;.IFDF SATISFIED ;OR OPERATOR ENCOUNTERED IFDF65: ÿTST ÿR1 ÿ ÿ;PERFORM AND ÿBEQ ÿIFDF70 ÿ ÿ;OPERATION IF .IFNDF ÿBR ÿIFDF00 ;AND OPERATOR ENCOUNTERED IFDF60: ÿTST ÿR1 ÿ ÿ;PERFORM INCLUSIVE OR ÿBEQ ÿIFDF00 ÿ ÿ;OPERATION IF .IFNDF IFDF70: ÿMOV ÿ#IFDF30-BEGO03+BEGOVR,-(RjBYTE TO ÿ ADD ÿ (R6)+,@R3 ÿ ; THE BLOCKS CHECKSUM ÿ BR ÿ EBBUF1 ÿ ; CONTINUE ENTERING PROCESS ;RLDINT ;THIS SUBR INITIALIZES THE RLD BUFFER HEADER SUBR32: ÿ TRAP ÿ SAVREG ÿ MOV ÿ #RLDBUF,R1 ÿ MOV ÿ #RLDBC,(R1)+ ÿ ;MAX BYTE CNT ÿ MOV ÿ #1,(R1)+ ÿ ;BIN FORMAT ÿ MOV ÿ #2,(R1)+ ÿ MOV ÿ DIRCMD,(R1)+ ÿ TRAP ÿ ÿPOPREG ; ; ; ; ;RLD FILL ;RLDFIL ;THIS SUBR PUTS THE RLD DIRECTIVE INTO THE RLD BUFFER.IT IS CALLED ;BY THE APPROPRIATE ADDRESSING MODE H0.#6 ÿ D ADÿ R TEACARCHD EE-FNELIA ; ÿ ÿ ÿ ÿ E UTITSTUB S ; ÿR2,@LF # ÿVBMOÿ E OP N ; ÿ02TLGE ÿ E BNÿ ? D EE-FRMFOA R TONAMIER T ; ÿR2,@FF # ÿPBCMÿ R TEINPOE YTRBCUE IZALTINI I ; TEBYUR,CR1 ÿ V MOÿ K ANBLS AYLW AERCTRAHA CALTINI I ; ÿ1)(R,-' # ÿVBMOÿ 3 @R6,#2 ÿ B SUÿ R TEINPOT ISRLCUE IZALTINI I ; ÿR3,@R1 ÿ V MOÿ 2 R ÿEC D ÿ R01, R ÿOV M ÿ SSREDD ARSTONAMIER TNELI= 2 R ; ÿR21, R ÿDD A ÿ NTOU CTEBY= 2 R, +2R1= 1 R ; œþm6) ÿ;STACK "AND" OPERATOR ÿBR ÿIFDF05 ;.ENDC PROCESSOR RENDC: ÿDECB ÿCNSTLV-O03 ÿ;DECREMENT NESTED LEVEL COUNTER ÿBGE ÿENDC01 ÿ;TOO MANY .ENDC'S? ÿINCB ÿQERROR-O03 ÿ;YES - SET QUESTIONABLE SYNTAX ÿCLRB ÿCNSTLV-O03 ÿ;AND CLEAR NEST LEVEL COUNTER ENDC01: ÿTSTB ÿDNTACT-O03 ÿBEQ ÿIF010 ÿ;IN DON'T ASSEMBLE STATE? ÿDECB ÿDNTACT-O03 ÿ;YES - DECREMENT THE COUNTER ÿBR ÿIF010 ÿ;EXIT ÿ;CONDITIONALS FRONT END PROCESSOR (.IF...) ÿ ÿ;IF R0 = 0 ON ENTRY, THEN EVALUATE ÿ ÿ;THE EXPRESSION.nANDLER.THE CALLING REGISTERS ;ARE SAVED AND DULY RELEASED.THE REG MUST BE INITIALIZED AS FOLLOWS: ;CONTENTS OF R0 =RELREF/RLD COMMAND ; R1=GLB SYM OR CNSTNT ; R2 = '' ; R3 =CNSTNT ; R4 =COUNT OF NO. OF BYTES ABOVE ; ; SUBR33: ÿ TRAP ÿ SAVREG ÿ MOVB ÿ RLDCNT,R5 ÿ ADD ÿ R4,R5 ÿ MOVB ÿ R5,RLDCNT ÿ SUB ÿ R4,R5 ÿ ADD ÿ #RLSTRT,R5 ÿ MOV ÿ R0,(R5)+ ÿ ;FILL IN THE ÿ SUB ÿ #2,R4 ÿ BEQ ÿ RLEX ÿ MOV ÿ R1,(R5)+ ÿ ;RL ÿR2+,1)(R ÿ V MOÿ 4 1+ R =R1; ÿ + 1)(R+,1)(R ÿ P CMÿ N URET-RGEIARRCAI CIAS= 4 R ; ÿR4R,#C ÿ B OV M: 12TLGE ORRR EL' 'ET SS,YE; ÿ R ROER L ÿCBINÿ E OP N ; ÿ12TLGE ÿ Q BEÿ ? N IOATNCRU TNELIG ON L ; 1)(R,3NELINGLO # ÿTBBIÿ : 06TLGE DCENÿ. G FLOFÿEP JM ÿ EGOSÿNF FD.I ÿ DCENÿ. 2 RYNTÿEP JM ÿ ÿ5D OR.W ÿ RLNTCO ÿAPTR ÿ EGOSÿNF NDIFÿ. E NUTION,CPENOÿ;ÿ ÿ 6 L0ETÿGQ BE ÿ T?PUINN OOM!EOF;E ÿ ÿ1)(R,3OF#E ÿTBBI ÿ ONTISIPO) ,1(0RSADBHE THO NT I ; ÿ ÿ ÿ˜þq AN ERRORED EXPRESSION ÿ ÿ;IS SET TO ZERO BY DEFAULT AS IS A NULL EXPR. SUBR38: ÿINCB ÿCNSTLV-O03 ÿ;INCREMENT NEST LEVEL ÿBGT ÿCOND00 ÿ ÿ;TOO DEEP? ÿ ÿ ÿ ÿ;NO - BRANCH ÿCLR ÿ-(R6) ÿMOV ÿ#ERR2,-(R6) ÿJMP ÿERROUT-O03 COND00: ÿTSTB ÿDNTACT-O03 ÿ;IN DON'T ASSEMBLE STATE? ÿBEQ ÿCOND01 ÿ;NO ÿINCB ÿDNTACT-O03 ÿ;YES - INCREASE COUNT ÿTST ÿÿ(R6)+ ÿ;HOUSEKEEP THE STACK ÿJMP ÿIF010 ÿ;LISTING FORMAT CONTROL COND01: ÿTST ÿR0 ÿ;IF C(R0)=0, THEN EVALUATE THE ÿBNE ÿÿCOND04 ÿ;EXPRESSION AND CHECKrD BUFFER ÿ SUB ÿ #2,R4 ÿ BEQ ÿ RLEX ÿ MOV ÿ R2,(R5)+ ÿ ;CHECK ÿ SUB ÿ #2,R4 ÿ BEQ ÿ RLEX ÿ ;IF SO RETURN ÿ MOV ÿ R3,(R5)+ ÿ ;TO RLEX: ÿ TRAP ÿ POPREG ÿ ;THE CALLING ADDR. ÿ ÿ ; SUBROUTINE OUTPUT END-OF-MEDIA CHECK ;EOMCHK: SUBR3B: BITB ÿ #EOF,BINBUF+3 ÿ BEQ ÿ EOMCH1 ÿ MOV ÿ BINBUF+2,@R6 ÿ;EOD ANNOUNCEMENT ÿ JMP ÿ ERRO3 EOMCH1: ÿ RTS ÿ R7 ; ; ; EDATOT RENBES HA, SSREDD AERADHE; ÿ ÿ ÿ R FEUF BUTNP ICEURSOE IVCTFEEF; ÿ ÿ ÿ E TH, ERNTOI PERFFBUY ARIMPRE TH; ÿ ÿ ÿ G INSSCERO PALTINI IERFFBUT PUINE RCOU SNTREUR C ; ÿ ÿ ERFFBUT PUINE RCOU S ; ÿ ÿ ÿ ÿ USIOEVPRE THG INUS; ÿ ÿ ÿ ÿ G INSSCERO PADRES OUVIRE P ; ÿ ÿ ÿ ÿ HE TTOE IVATEL RREHE; ÿ ÿ ÿ ÿ T AI WEDLIMP IANS IREHE T ; ÿ ÿ ÿ ÿ MDDCÿR ÿMTÿE ) R6-(B,ILÿSV MO ÿ CEENQUSEG INLLCA; ÿ ÿ ÿ ÿ T ESQUREG INICRVSEO I/T PUINE RCOU S* **; ÿ ”þu FOR ERRORS COND02: ÿTRAP ÿEXPE3 ÿ;EXPRESSION EVALUATION ÿTSTB ÿERROR-O03 ÿ;WAS THERE AN ERROR? ÿBNE ÿCOND03 ÿ;YES ÿTSTB ÿICOUNT-O03 ÿ;IF EXPRESSION WAS NULL, THEN ÿBNE ÿCOND04 ÿ;RESULT = 0 BY DEFAULT COND03: ÿCLR ÿRESULT-O03 ÿ;YES - RESULT = 0 BY DEFAULT COND04: ÿRTS ÿR7 ÿ;RETURN TO CALLER ÿ .EVEN ERRMSG: .WORD ÿ 23 ÿ ; PASS ERROR COUNT MESSAGE ÿ .WORD ÿ 0 ÿ ÿ;FORMATTED ASCII ÿ .WORD ÿ 23 ÿ .BYTE ÿ CR,LF,' ,0 ÿ .WORD ÿ 0,0 ÿ .BYTE ÿ ' ÿ .ASCII /ERRORS/ ÿv; ; ; ;RLDBYT THIS HANDLES BYT RLD CMDS ; ; ; SUBR37: ÿ TRAP ÿ SAVREG ÿ MOV ÿ #RLD2.5,RLDIR ÿ MOV ÿ #2,R4 ÿ ÿ;FILED COUNT ÿ TRAP ÿ RELREF ÿ MOV ÿ GLBSY1,R1 ÿ MOV ÿ GLBSY2,R2 ÿ MOV ÿ RESULT,R3 ÿ BISB ÿ #200,R0 ÿ ÿ;BYTE OPERAND ÿ MOV ÿ #10,R4 ÿ TRAP ÿ RLDFIL ÿ INCB ÿ RLDFLG ÿ TRAP ÿ POPREG ; ; ; ;OUTBIN THIS SUBR OUTPUTS ON THE BINARY DEVICE ; THE CONTENTS OF THE RLD BUF ;; ; ; SUBR36: ÿMOV ÿ#RLDBUF,-(Rÿ T UNCOE YT BUTNP I ; ÿ ÿ ÿ ÿ NTREUR CRSDEEA HHE TROZE; ÿ ÿ 0 @R ÿ R CLÿ S TEBYE OD MND AUSATST; ÿ ÿ ÿ ÿ T PUINS ERADHEE THT SE; + 0)(RE,ODIM#S ÿ V MOÿ T UNCOE YT BUTNP I ; ÿ ÿ ÿ ÿ UMIMAX MRSDEEA HHE TET S ; + 0)(RC,MBSI # ÿOV M ÿ CKLO BERADHET PUIN; ÿ ÿ ÿ ÿ E RCOU SRSFEUF BEDASLERE; ÿ ÿ ÿ ÿ E THF OSSREDD A =R0; ÿ ÿ ÿ ÿ ÿ CEENQUSEG INLLCA; ÿ ÿ ÿ ÿ S ESDRADR FEUF BCKTA;S ÿ6)(R,-R0 ÿOVÿM 1 ,RR2 @ ÿOV M ÿ RSFEUF B/O ITE�þy .BYTE ÿ CR,LF,LF,0 ÿ.EVEN ÿ.IFNDF ÿNOSEG ENDO03: SIZO03=ENDO03-BEGO03 ; ÿ.EOT ÿ ÿ ÿ;END OF FILE #3 ;***** OVERLAY #4 ***** O04=BEGOVR-BEGO04 ÿ ÿ;COMPUTE OFFSET FROM ÿ ÿ ÿ ÿ;RUN TIME OVERLAY AREA BEGO04: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVERLAY. ; ÿJMP ÿRRAD50 ÿ ÿ;ENTRY1 ÿJMP ÿRASCII ÿ ÿ;ENTRY2 ÿJMP ÿRWORD ÿ ÿ;ENTRY3 ÿJMP ÿRBYTE ÿ ÿ;ENTRY4z6) ÿ;OUTPUT RLD BUFFER ÿMOV ÿ#BOLB,-(R6) ÿEMT ÿWRCMD ; ; ÿMOV ÿ#BOLB,-(R6) ÿ;WAIT FOR COMPLETION ÿEMT ÿWTCMD ÿ RTS ÿ R7 ÿ ÿ ; SUBROUTINE BINARY BUFFER INITIALIZATION ÿ ÿ ÿ ; INPUT R0 = 0, SIMPLY SET-UP ÿ ÿ ÿ ; OUTPUT SET-UP AND BINBUF ZEROED ;BBINIT: SUBR00: MOV ÿ USERPC,R5 ÿ ; R5 = THE ADDRESS OF THE ÿ ÿ ÿ ÿ ; ASSEMBLY LOCATION COUNTER ÿ MOV ÿ #BOCSUM,R3 ÿ ; R3 = THE ADDRESS OF THE TAROL AL C ; E ATOT R ÿAPTRÿ : NELIET GE NCUEEQ SISTHO TEDNDPEAPÿ ; ÿ ÿ E AR, LYALONTIOP, RSTEACARCHD EE-FRMFOÿ ; ÿ ÿ . CEENQUSEF -LCRA H IT WY,LLNAIOITNDCOUNÿ ; ÿ ÿ , TENAMIER TLLWIS ERFFBUT PUINL ALÿ ; ÿ ÿ T MAOR FEROPPR ; ÿ ÿ E URNS IND AERFFBUT PUING INEDECPRE THN CA S ; ÿ ÿ G.INSSCEROÿP; ÿ ÿ R FOY ADRED ANL UL FISR FEUF BUTNPÿI; ÿ ÿ G INEDECPRE TH, ESNUTION CONTICUXE EIF ÿ ; ÿ ÿ ATTHS MESUASR LEMBSEASE TH S.ESGRRO PIN ÿ ; ÿ ÿ LYNTSERE PISD ANMMCOD EA R AIFŒþ} ÿJMP ÿRSETP2 ÿ ÿ;ENTRY5 ÿJMP ÿRSETP4 ÿ ÿ;ENTRY6 ÿJMP ÿASSIGN ÿ ÿ;ENTRY7 ÿJMP ÿSUBR24 ÿ ÿ;ENTRY8 ÿ.ENDC ; ; ; ;RAD50 HANDLER ; ; RRAD50: ÿ MOV ÿ #TMPSYM,SYMBOL-O04 ÿ TRAP EVENPC ÿ INCB ÿ RADIX-O04 ÿ MOV ÿ #3,CNTCHAR-O04 ; ÿ .PAGE RASCII: ÿ ÿ ;ASCII HANDLER ASCII2: ÿ MOV ÿ #SUBR11,R4 ÿ ; R4 = PROCESSORS ADDRESS ÿ DEC ÿ CURBYTE-O04 ÿ ; DECREMENT CURBYTE POINTER ÿ TRAP ÿ CBTABS ÿ ; ON ENTERING CURBYTE POINTS TO THE ! ASCII0: TRAP~ ÿ ÿ ÿ ÿ ; BINARY OUTPUT'S CHECKSUM ÿ MOV ÿ #BINBUF+10,R2 ; R2 = THE ADDRESS OF THE ÿ ÿ ÿ ÿ ; BINARY BLOCKS BYTE COUNT ÿ MOV ÿ #BINBUF+6,R1 ; R1 = THE ADDRESS OF THE ÿ ÿ ÿ ÿ ; BUFFERS FIRST DATA BYTE ÿ MOV ÿ #MAXBBA,-(R6) ; STACK THE BINARY BUFFERS ÿ ÿ ÿ ÿ ; MAXIMUM ADDRESS ÿ TST ÿ R0 ÿ ÿ ; SETUP ONLY OR BUFFER ÿ ÿ ÿ ÿ ; INITIALIZATION ALSO ? ÿ BEQ ÿ BBIN01 ÿ ; SETUP ONLY ÿ MOV ÿ #RLDCMD,DIRCMD ÿ TRAP ÿ RLDINL RONTCO ÿ ; ÿ ÿ ONTICUXE EINTARET US MORSSCERO P/O IHE T ; ÿ ÿ ** *TENO* **; ÿ ) ,1(0RSADBH ; ÿ ÿ Y BEDFICIPE SLYNTREUR CERFFBUT PUINE TH ; ÿ ÿ F ONGLIMBSEASE THR FOS ERNTOI PZELIIAITIN; ÿ ÿ . ERFFBUT PUINL IANCUEEQ SXTNEE THO TTSINPO ; ÿ ÿ ) ,1(0RSADBHT HA TSOE BLTAS DRHA BHE TTETARON HE T ; ÿ ÿ NDMAOM CADREE THE SUISN HE T ; ÿ ÿ EDETPLOM CENBES HA ; ÿ ÿ ) ,1(0RSADBHY BEDFICIPE SLYNTREUR CERFFBU ; ÿ ÿ E THR VE OONTIRAPE OUTTPOUE THT HA TFYRIVE; ÿ ÿ ˆþ� ÿ PRINT ; CALL PRINTABILITY ÿ BLE ÿ ASCII1 ÿ ; CHARACTER IS PRINTABLE ÿ INCB ÿ IERROR-O04 ÿ ÿ; ILLEGAL CHARACTER ÿ INC ÿ CURBYTE-O04 ÿ ; REJECT THIS CHARACTER ÿ BR ÿ ASCII0 ÿ ; TRY THE NEXT CHARACTER ASCII1: MOVB ÿ @CURBYTE-O04,R3 ÿ ; R3 = VARIABLE TERMINATOR ÿ CMPB ÿ #40,R3 ÿ BEQ ÿ ASCII3 ÿ BIS ÿ #006400,R3 ÿ ; R3 = CAR-RET TERMINATOR ÿ MOV ÿ #SAVTERM,R2 ÿ ; R2 = EFF. VALUES ADDRESS ÿ MOVB ÿ R3,@R2 ÿ ; SAVTERM = INIT‚T ÿ ÿ ÿ ; BINARY BUFFER INITIALIZATION ÿ MOV ÿ #BINBUF,R0 ÿ ; R0 = THE ADDRESS OF THE ÿ ÿ ÿ ÿ ; BINARY BUFFERS HEADER ÿ MOV ÿ #BOMBC,(R0)+ ; SET THE MAX. BYTE COUNT ÿ MOV ÿ #BOMODE,(R0)+ ; SET STATUS AND MODE BYTES ÿ MOV ÿ #1,(R0)+ ÿ ; CURRENT BYTE COUNT = 1 ÿ MOV ÿ #1,(R0)+ ÿ ; FIRST DATA WORD = 1 ÿ MOV ÿ #10,(R0)+ ÿ ; BLOCKS BYTE COUNT = 6 ÿ MOV ÿ #TXTDIR,(R0)+ ÿ MOV ÿ @R5,(R0)+ ÿ ; THIRD DATA WORD = ÿ ÿ ÿ ÿ E IN LCEURSOT GEE INUTROUB SENOP; ÿ G LA FUTNOBIE IZALTINI I ; ÿUTNOBI1, # ÿVBMOÿ 0 = R ROER; ÿ R ROER ÿ B LR C ÿ ORRRQE ÿ B LR C ÿ ORRRUE ÿ B LR C ÿ IXAD R ÿRBCLÿ R ROER I ÿRBCLÿ R ROER A ÿRBCLÿ D MOSL R ÿRBCLÿ D 2MSL R ÿRBCLÿ 0 = ) (0UFBB T ; ÿUFBB T ÿLR C ÿ : RCTSSE DCENÿ. 4 TPSEÿRP JM ÿ EGOSÿNF FD.I ÿ DCENÿ. 6 RYNTÿEP JM ÿ ÿ4D OR.W ÿ RLNTCO ÿAPTR ÿ EGOSÿNF NDIFÿ.: P4ET„þ…IAL TERMINATOR ÿ INC ÿ CURBYTE-O04 ÿ ; INCREMENT CURBYTE POINTER ÿ CMPB ÿ @CURBYTE-O04,R3 ASCII3: ÿ BEQ ÿ ASCIIX ÿ SWAB ÿ R3 ÿ CMPB ÿ @CURBYTE-O04,R3 ÿ BEQ ÿ ASCIIX ÿ SWAB ÿ R3 ÿ MOV ÿ #177000,R1 ÿ ; R1 = 177000 ÿ BR ÿ BYTE1 ÿ ; COMPLETE INITIALIZATION RWORD: ÿ ÿ ; WORD ASSEMBLY DIRECTIVE HANDLER ÿ MOV ÿ #177401,R1 ÿ ; R1 = -1/+1 ÿ TRAP ÿ EVENPC ; CALL EVEN THE LOCATION COUNTER ÿ BR ÿ BYTE0 ÿ ; COMPLETE INITIALIZATION RBYT† ; BLOCKS LOAD ADDRESS BBIN00: CLRB ÿ (R0)+ ÿ ; ZERO THE BINARY BUFFER ÿ CMP ÿ R0,@R6 ÿ ; IS THE BUFFER CLEARED ? ÿ BLT ÿ BBIN00 ÿ ; NOPE, CONTINUE CLEARING ÿ MOVB ÿ 1(R5),@R3 ÿ ; CHECKSUM INITIALIZATION ÿ ADD ÿ @R5,@R3 ÿ ; ADD THE LOAD ADDRESS BYTES ÿ ADD ÿ #4,@R3 BBIN01: ADD ÿ @R2,R1 ÿ ; R1 = THE ADDRESS OF THE ÿ ÿ ÿ ÿ ; FIRST AVAILABLE BUFFER BYTE ÿ MOV ÿ (R6)+,R0 ÿ ; R0 = THE MAXIMUM BINARY ÿ ÿ ÿ ÿ ; BUFFERS ADDR S. LEFIÿ;ÿ N OP ÿMTÿE T PUINÿ;) R6-(B,ILÿSV MO ÿ CEURSON PE;O ÿ6)(R,-FBSI ÿOVÿM: P0ET SE NUTION CTOT INPOY TRENT EO;. DCENÿ. 2 TPSEÿRP JM ÿ EGOSÿNF FD.I ÿ DCENÿ. 5 RYNTÿEP JM ÿ ÿ4D OR.W ÿ #4Y LAEROVN ILLCAÿ;ÿ ÿ L TRONÿCP RAÿT G SENO ÿDFFN.I ÿ2:TPSE S.AS PUTTPOUY ARIN;B ÿ ÿABDTGS ÿAPTR ÿ DCENÿ. 2 D OR.W ÿ #2Y LAEROVN ILLCAÿ;ÿ ÿ L TRONÿCP RAÿT G SENO ÿDFFN.I ÿ P2ET S ÿNE B ÿ SSPAS,ASOP B ÿPBCMÿ 2 TPSE ÿ E BLÿ . 1SSPAG INUR DRYNABIO ;N ÿ#1S,ASOPÿBB MPÿC: P5ET S €þ‰E: ÿ ÿ ; BYTE ASSEMBLY DIRECTIVE HANDLER ÿ CLR ÿ R1 ÿ ÿ ; R1 = 0 BYTE0: ÿ MOV ÿ #SUBR1B,R4 ÿ ; R4 = PROCESSORS ADDRESS ÿ MOV ÿ #0,R3 ÿ ; R3 = THE FOLLOWING TWO . ÿ = ÿ .-2 ÿ ÿ ; ENCODED TERMINATORS: ÿ .BYTE ÿ TCCCRE,TCCSMC ; CAR-RET, SEMICOLON ÿ MOV ÿ #RESULT,R2 ÿÿ ; R2 = EFF. VALUES ADDRESS ÿ MOV ÿ R3,R0 BYTE1: ÿ ADD ÿ #000401,R1 ÿ ; R1 = R1 + +1/+1 ÿ DECB ÿ SIZE-O04 ÿ ; SUBROUTINE DATA ACQUISITION ÿ ÿ ; THIS SUBROUTINŠESS ÿ RTS ÿ R7 ÿ ; RETURN ;RELREF THIS SUBROUTINE CALCULATES THEVALUE OF THE REL REF FROM ;THE BASE OF THE TEXT BLOCK I.E. TEXT DIR IS 0.R4 IS EXPECTED TO ;CONTAIN THE FILED CNT,R0 THE CMND DIR AND REL REF. SUBR34: ÿ MOVB ÿ BINCNT,R0 ÿ SUB ÿ #6,R0 ÿ ADD ÿ R4,R0 ÿ MOVB ÿ R0,RELCNT ÿ MOV ÿ RLDIR,R0 ÿ RTS ÿ R7 ÿ ÿ ÿ ÿ ; ; ÿ .PAGE ÿ ; SUBROUTINE CHECKSUM FINALIZATION ÿ ÿ ÿ ; BINARY BLOCKS BYTE PNÿOT EM ÿ LEFIT PUINÿ;) R6-(B,ILÿSV MO ÿ CEURSON PE;O ÿ6)(R,-FBSI ÿOV MS:ASTPSE C ND.E ÿ SIRC ÿMPÿJ G SENO ÿDFIFÿ. C ND.E ÿ 1) #AYRLVE(OT ITOL RONTCOE IV;G ÿ ÿY1TREN ÿMPÿJ 1 ÿRDWOÿ. 1 #AYRLVE OINL AL;C ÿ ÿRLNTCO ÿAPTR ÿ1:N0RU AYRLVE OER PKSOCBLY ;B ÿ ÿ02UNÿRR ÿB # K OCBLE ASRENC I. RYNT;E ÿ ÿR45,ÿRD AD ÿ TO# K OCBLG INRTTA S. ES;Y ÿ)+R2,(R4 ÿOVÿM ? YSLAEROVE OR;M ÿ ÿ01UNÿR|þ�E SUPPORTS THE DATA GATHERING ÿ ÿ ; REQUIREMENTS OF THE THREE PRECEDING ÿ ÿ ; ASSEMBLY DIRECTIVE HANDLERS. ÿ ÿ ÿ ; INPUT INITIALIZED REGISTERS ÿ ÿ ÿ ; OUTPUT COMPLETE HANDLER HANDLING ÿ ÿ ÿ ; ÿ RETURN IS TO SETSRC DATA: ÿ MOV ÿ #SAVTERM,R5 ÿ ; R5 = SAVTERM ADDRESS ÿ TRAP ÿ DATERM ; CALL DATA TERMINATION ÿ BNE ÿ DAT00 ÿ;NOT DATA TERMINATOR. ÿ TSTB ÿ ITEMIN-O04 ÿ ; IS AN ITEM PENDING ? ÿ BNE ÿ DAT00 ÿ ; YES DAT0: ÿ INCB ÿ QERRŽCOUNT VALUE IS ÿÿ ÿ ÿ ; ÿ RESTRICTED TO BE AN UNSIGNED BYTE ÿ ÿ ÿ ; ÿ (8-BIT POSITIVE INTEGER) ;CHECKSUM: SUBR23: ADD ÿ @R2,@R3 ÿ ; SUM THE BLOCKS BYTE COUNT ÿ ÿ ÿ ÿ ; AND THE BLOCKS CHECKSUM ÿ NEG ÿ @R3 ÿ ÿ ; 2'S COMPLEMENT THE CHECKSUM ÿ MOVB ÿ @R3,@R1 ÿ ; BUFFER THE CHECKSUM ÿ MOV ÿ @R2,BINBUF+4 ; FINALIZE THE BINARY OUTPUT ÿ ÿÿ ÿ ÿ ; HEADERS CURRENT BYTE COUNT ÿ INC ÿ BINBUF+4 ÿ ; COUNT THE CHECKSUM BYTE ÿ CMPB ÿ PASS,T BL ÿ R32,ÿ#B SU ÿ2:N0RU *2S AYRLVE OOFR BEUM;N ÿR3+,2)(R ÿOVÿM 2 ,RABNTRUÿ#V MO ÿ ;. CYENIDES-RON NOR F 0TOT SET BIN IG S. RYNT;E ABNTRUE IVCTPEES RIRHE TINY LAEROVH AC;E OFR BEUM NCKLO BALICYSPHG INRTTA SCELA;P ;. CKTA SCTREOR;C ÿ)+R6,()+R6ÿ(P CM ÿ3:N0RU ORRR EALAT;F ÿ ÿPNÿOT EM ÿ CEOR FTOC ENOP .RMFOER;P ÿ6)(R,-R1 ÿOVÿM . NTSERE POT NVR.O1RL1PAÿ;) R6-(B,RFOVÿ#V MO ÿ4:N0RU 05UNÿRR ÿB ] ,1[1Y TRÿ;D RISE,U01#4 ÿOVÿM . NEDOL ALÿ;ÿ 4 N0RU ÿEQÿB 1 40,#IDERUS ÿMPÿC K ACSTT ECRRCOÿ;+ 6)(R+,6)xþ‘OR-O04 ÿ ; NO, QUESTIONABLE SYNTAX ÿ JMP ÿ EXIT-O04 ÿ ; EXIT VIA THE MAIN PROGRAM DAT00: ÿ JSR ÿ R1,@R7 ; ITERATION RANGE ÿ ÿ ÿ ÿ;(R1=DAT00+2, OLD R1 TO STACK) ÿ CLR ÿ R0 ÿ ÿ ; R0 = 0 ÿ JSR ÿ R7,@R4 ; CALL THE EFFECTIVE PROCESSOR DATB0: ÿ SWAB ÿ @R6 ÿ ÿ ; WORD DIRECTIVE ? ÿ BNE ÿ DATB7 ÿ ÿ;NO ÿ TSTB ÿ RSLMOD-O04 ÿ ÿ;YES (0 IN LOW ORDER BYTE) ÿ BEQ ÿ DATA00 ÿ ÿ;ABSOLUTE EXPRESSION ÿBLT ÿDATB14 ÿ ÿ;.GLOBL OR EXTERNAL ÿ ÿ ÿ ÿ;.CSECT EXPRESBOPASS ÿ ; IS THIS THE BO PASS ? ÿ BNE ÿ CHECK0 ÿ ÿ ; NO ÿ ADD ÿ #4,@R6 ÿ ÿ; YES, R5 = R5+2 CHECK0: ÿ RTS ÿ R7 ÿ; RETURN ÿ.END ÿSTART ÿ ÿ;END OF FILE #13 (R ÿMPÿC ? STXI ELEFIS OE;D ÿ ÿ03UNÿRE BN ÿ CKLO BNGTIARSTÿ;4 ,R)+R6ÿ(V MO ÿ OKLO;. ÿ ÿ14 ÿMTÿE K OCBLK IN;L ÿ6)(R,-R1 ÿOVÿM ) R6-( ÿLRÿC K OCBLE IL;F ÿ6)(R,-FBVR#O ÿOVÿM: 05UN R. LEFIS OUGUTION CHE TOF ;K OCBLG INRTTA SALICYSPHE THE INRMTEDE ;; AYRLVE OER PKSOCBLÿ;5 ,R)+R6ÿ(V MO ÿ DEVIDI7,ÿRR JS ÿ ZESIY LAEROVÿ;) R6-(D,WRVR#O ÿOVÿM . AYRLVE OER PKSOCBLF OERMBNUE INRMTEDE ;O TZESIY LAEROVO NT IZESIK OCBLE IDIV;D CKTA SOFP TON OS)RDWO (ZESIK OCBLL CASIHY;P ÿ CKTA SCTREOR;C ÿ)+R6,()+R6ÿ(P CMtþ•SION ÿ;RELOCATABLE EXPRESSION CURRENT .CSECT ÿTRAP ÿSAVREG ÿMOV ÿ#2,R4 ÿMOV ÿ#RLD2.1,RLDIR-O04 ÿ;INTERNAL RELOCATION ÿTRAP ÿRELREF ÿMOV ÿRESULT-O04,R1 ÿMOV ÿ#4,R4 ÿBR ÿDATB13 ÿ;.GLOBL OR EXTERNAL .CSECT EXPRESSION DATB14: ÿTRAP ÿSAVREG ÿMOV ÿ#RLD2.5,RLDIR-O04 ÿ;GLOBL ADDITIVE RELOCATION ÿCMPB ÿ#-1,RSLMOD-O04 ÿBEQ ÿDATB15 ÿ ÿ;GLOBL EXPRESSION ÿMOV ÿ#RLD4.3,RLDIR-O04 ÿ;.CSECT ADDITIVE RELOCATION DATB15: ÿMOV ÿ#2,R4 ÿTRAP ÿRELREF ÿMOV ÿRESULT-O04,R3 ÿMOV ÿ#10,R4 ÿMOV ÿGLBS ÿ 13 ÿMTÿE K OCBLK IN;L ÿ6)(R,-R1 ÿOVÿM S TUTA SCEVIDEN AIBT;O MDNCÿIT EM ÿ CKLO BNKLIÿ;) R6-(1,ÿRV MO ÿ CEVIDEY LAEROVT NI.I ;K OCBLK IN;L ÿR1B,RLOVÿ#V MO ÿ NOÿ;ÿ ÿ ÿ ? UPT SEÿ;ÿ 1 N0RU ÿEQÿB L ALS AYRLVE;O ÿ ÿITINNO ÿTBTS ÿ ;* ****YSLAEROVR FOP UET*S**** ; G SENO ÿDFFN.I ÿ 41 ÿMTÿE ) R6-(1,ÿ#V MO ÿ 6)(Rÿ-R CL ÿ 6)(R,-34APTRÿ# ÿOVÿM 4 3ONTICALOP UET;S ÿ 41 ÿMTÿE ) R6-(2,ÿ#V MO ÿ 6)(R,-RTTAES#R ÿOVÿM S ESDRADT ARSTREP UET;S ÿ LBCO ÿLRÿC B ILÿCR CL ÿ LBSL ÿLRÿC B OLÿLR CL ÿpþ™Y1-O04,R1 ÿ;.GLOBL OR ÿMOV ÿGLBSY2-O04,R2 ÿ;.CSECT NAME DATB13: ÿ TRAP ÿ RLDFIL ÿ INCB ÿ RLDFLG-O04 ÿ TRAP ÿ SETREG ÿ BR ÿ DATA00 DATB7: ÿ MOVB ÿ +1(R2),TERROR-O04 ; TERROR = HIGH ORDER BYTE ÿ BEQ ÿ DATA00 ÿ ; ZERO VALID VALUE ÿ INCB ÿ TERROR-O04 ÿ ; TERROR = TERROR+1 ÿ ÿ ÿ ÿ ; NEGATIVE ONE VALID VALUE DATA00: ÿSWAB ÿ@R6 ÿ ÿ ÿ; RESTORE STACKED VALUE ÿCMP ÿ#401,@R6 ÿBNE ÿDATB8 ÿTSTB ÿRSLMOD-O04 ÿ ÿ;.BYTE DIRECTIVE ÿBEQ ÿDATB8 ÿCMPB ÿ#-1,RSLMO LBBO ÿLRÿC 2 LBSI ÿLRÿC 1 LBSI ÿLRÿC N GIBEC ^OFE AS;C INS CKLO BNKLIL ALR EACL ;C ND.E ÿ TAARSTT=ARST EGOSÿNF FD.I ÿ DCENÿ. . SSREDD AERSFANTRP UET;S ÿ ÿ ÿTAARSTT=ARST LDRBOV ÿDFFN.I ÿ R6P,TOERÿPV MO ÿC:RTTA S. ST PHE;T ÿ OWEL BSTJUO TCKTA SHE TZELIIAITIN ;C ND.E ÿ INEG B^CF ;I ÿ ÿLBVRÿOR CL ÿ EGOSÿNF NDIFÿ. . ET STADAY LAEROVÿ;ÿ ÿ ÿ E IZALTINI;I ÿITINNO7,37ÿ#B OVÿM : TAARST ..METIN GIBEC ^ND AMETID OA LATE ER HESOM COLTRON;C ; lþ�D-O04 ÿBEQ ÿDATB10 ÿ ÿ ÿ;.GLOBL ÿINCB ÿAERROR-O04 ÿBR ÿDATB8 DATB10: ÿTRAP ÿRLDBYT DATB8: ÿMOV ÿR3,R0 ÿ ÿ ÿ; DIRECTIVE TERMINATED? DATA8: ÿTRAP ÿDATERM ÿÿ ÿ ÿ; CALL DATA TERMINATION ÿBNE ÿDATA1 ÿ ÿ ÿ; NOPE DATB1: ÿTSTB ÿRADIX-O04 ÿ ÿ;RADIX HANDLING ÿBEQ ÿDATA0 ÿ ÿ ÿ;NO THEN BRANCH DATB2: ÿTST ÿCNTCHAR-O04 ÿBEQ ÿDATB3 DATB5: ÿCLRB ÿ@SYMBOL-O04 ÿDEC ÿCNTCHAR-O04 ÿINCB ÿSYMBOL-O04 ÿBR ÿDATB2 DATA0: ÿMOV ÿ#SETSRC+2,R1 ÿ ÿ; R1 = SETSRC ADDRESS ÿTST ÿ@R6 ÿ ÿ ÿ; ASCII DIRECTIVE? ÿBLT DCENÿ. T TRRSÿRP JM ÿ EGOSÿNF FD.I ÿ DCENÿ. 1 #AYRLVE OY3TRENÿ;ÿ 3 RYNTÿEP JM ÿ ÿ1D OR.W ÿ #1Y LAEROVN ILLCAÿ;ÿ L TRONÿCP RAÿT G SENO ÿDFFN.I: RTTAES R. CEVIDET PUUT/OUTNP INDMAOM CHE TOND PETYS I ; ÿ NDMAOM CRTTAES RORITON MHE TENWHR O) ;B ÿ LYMBSEASN AOFD ENE TH A)ÿ; T AREHES MECOL RONTCO ;. ESAGSSMER ROERT PUUT OTOE ER HESOM COLTRON;C ÿ ÿ ÿOTÿI: UTROER NETIOUBRSUD TEESQUREO T ; ÿ ÿhþ¡ ÿDATA2 ÿ ÿ ÿ; YES, EXIT. ÿ ÿ ÿ ÿ ÿ; THIS NO-OPED CODE INSURES ÿBR ÿDATA1 ASCIIX: ÿDECB ÿSIZE-O04 ÿINCB ÿQERROR-O04 ÿJMP ÿEXIT-O04 ÿ ÿ ÿ ÿ ÿ; THAT ALL .ASCII STATEMENT'S ÿ ÿ ÿ ÿ ÿ; TRAILING TERMINATOR IS ÿ ÿ ÿ ÿ ÿ; FOLLOWED BY EITHER A CAR-RET ÿ ÿ ÿ ÿ ÿ; OR A SEMICOLON. IF NOT, A ÿ ÿ ÿ ÿ ÿ; BLANK LINE IS PRINTED WITH ÿ ÿ ÿ ÿ ÿ; A'Q' ERROR CODE AND THE ÿ ÿ ÿ ÿ ÿ; DIRECTIVE IS TERMINATED. ; ÿBGE ÿDATA1 ÿ ÿ ÿ; NO, AVOID CHECK ; ÿTRAP ÿCBTABS ÿ ÿ ÿ; CALL CHECK FOR BLANKS AND TABS ; ÿ ÿ X)DEINE(BLTA JRUTHP UM J ; ÿR7+,6)(R @ ÿOV M ÿ EXND ILEAB TMPJUE ATULLCCA; R6,@APTRE-BLTA#J ÿ D ADÿ N IOCTRUSTIND PEAPTRK ACST; 6)(R,-)+R6@( ÿ V MOÿ S TUTA SEDCKTA SOFP TON O ; ÿ ÿ ÿ ÿ R6,@#2 ÿ B SUÿ S ESDRADN URET RHE TCKTA;S ÿ ) R62(6,@R ÿ V MOÿ : 34APTR 34N IOATOC LOR FERDLAN HAPTR; ÿ ÿ ÿ ENEV . ÿ CEPA SERFFBUD RL ; ÿ 6 C+DBRL.+ ÿ = . ÿ 6 F+BULD R ÿ = ÿRTSTRL +2 . ÿdþ¥ ÿCMPB ÿ#CR,@CURBYTE-O04 ÿ; THIS CHARACTER A CAR-RET? ; ÿBEQ ÿDATA2 ÿ ÿ ÿ; YES, VALID CASE SO EXIT ; ÿCMPB ÿ#';,@CURBYTE-O04 ÿ; THIS CHARACTER A SEMICOLON? ; ÿBEQ ÿDATA2 ÿ ÿ ÿ; YES, VALID CASE SO EXIT ; ÿINCB ÿQERROR-O04 ÿ ÿ; NEITHER, QUESTIONABLE SYNTAX ; ÿCOMB ÿ@R6 ÿ ÿÿ ÿ; SET SIZE < 0 DATA1: ÿ TSTB ÿ RADIX-O04 ÿ BEQ ÿ DATB4 RADB4: ÿ SWAB ÿ R0 ÿ ÿ; THIS PORTION ÿ MOVB ÿ @CURBYTE-O04,R3 ÿ; CARRIES OUT ÿ CMPB ÿ R3,#'0 ÿ; THE TRANSLATION ÿ BLT ÿ RAD01 ÿ; AND PACKING ÿ CMPB ÿ = ÿNTDCRL 0 ÿRDWO . ÿF:BULD RN VE.Eÿ 3 =6 ÿ C DBRL +6+1ZESIBB ÿ = ÿ C MBBO TEBYM SUCKHE C AVEERES R ; ÿ ÿ 0 ÿTEBY . ÿ SSREDD AERFFBUY ARIN BX.MA; ÿ ÿ ÿ A:BBAX MS TEBYA AT DZESIBBE RVSERE; ÿ E IZBS+B . ÿ = ÿ .S ESDRADD OA LKSOCBLY ARIN B ; ÿ ÿ 0 ÿRDWO . ÿ NTOU CTEBYS CKLO BRYNABI; ÿ ÿ 0 ÿ D OR.Wÿ R IEIFNTDE IKSOCBLY ARIN B ; ÿ ÿ 0 ÿRDWO . ÿ NTOU CTEBYT ENRRCUO B ; ÿ ÿ 0 ÿRDWO . ÿ 10F+BUIN=BNTNCBI ESYT BDEMOS-TUTA SBO; ÿ ÿ `þ©R3,#'9 ÿ; OF WORDS ÿ BGT ÿRAD01 ÿ ÿ; AS SPECIFIED RAD00: ÿ SUB ÿ #22,R3 ÿ; ÿ BR ÿ RAD03 RAD01: ÿ CMPB ÿ #'$,R3 ÿ BNE ÿ RAD02 ÿ SUB ÿ #11,R3 ÿ BR ÿ RAD03 RAD02: ÿ CMPB ÿ #'.,R3 ÿ BEQ ÿ RAD00 ÿ CMPB ÿ #' ,R3 ÿ BNE ÿ RAD06 ÿ CLR ÿ R3 ÿ BR ÿ RAD03 RAD06: ÿ CMPB ÿ R3,#'A ÿ BLT ÿ RADERR ÿ CMPB ÿ R3,#'Z ÿ BLE ÿ RAD03 ÿ CMPB ÿ R3,#141 ÿ BLT ÿ RADERR ÿ CMPB ÿ R3,#172 ÿ BGT ÿ RADERR ÿ BICB ÿ #40,R3 ÿ MOVB ÿ R3,@CURBYTE-O04 R0 ÿ D OR.Wÿ T UNCOE YT BUMIMAX MBO; ÿ ÿ 0 ÿ D OR.W F:BUIN BR DEEA HUTTPOUY ARIN B ; ÿ ÿENEV . ÿ ERFFBUT PUUT ORYNABIE YT B46; ÿ ÿ . 46 ÿ = ÿ E IZBS BS ERFFBU; ÿ ÿ4 +1 . ÿ = ÿ .N IONSTEEXG INSTLIT ECBJ O ; ÿ2 +1 . ÿ = ÿ .R FEUF BTADAR TEACARCH; ÿ X MARC+S . ÿ = ÿ .T UNCOE YT BNTREUR CSI; ÿ ÿ ÿ ÿ S TEBYE OD-MUSATSTI S ; ÿ ÿ ÿ ÿ SI COR Fÿ;ÿ 6 -1F2BUSI ÿ = ÿUFDBCM NTOU CTEBYM MUXIMAI S ; ÿ ÿ-6 . ÿ = ÿF2BUSI WO TCKLO BERADHET PUINE \þ­AD03: ÿ BIC ÿ #177700,R3 ÿ MOVB ÿ R3,@SYMBOL-O04 ÿ INC SYMBOL-O04 ÿ BR ÿ DATB6 RADERR: ÿINCB ÿ QERROR-O04 ÿ BR ÿ DATB2 DATB6: ÿ INCB ÿ CURBYTE-O04 ÿ MOV ÿ CURBYTE-O04,R5 ÿ DEC ÿ CNTCHAR-O04 ÿ BNE ÿ DATA8 DATB3: ÿ MOV ÿ #TMPSYM,R1 ÿ ;INITIALIZE ADDRESS ÿ TRAP SERCHB ÿ ;FOR CONVERSION ÿ MOV ÿ #TMPSYM+1,R2 ÿ MOV ÿ #SETSRC+2,R1 ÿ MOV ÿ #2,SIZE-O04 ÿ BR ÿ DATB9 DATB4: ÿ MOV ÿ @R6,SIZE-O04 DATB9: ÿ MOV ÿ @R2,TBBUF-O04 ÿ CLRB ÿ RADIX-ORCOU S ; ÿ ÿ ÿ LDIE FNGTIIS LNKLA B ; ÿ ÿ+1 . ÿ = ÿ .D ELFIG INSTLIT ECBJ O ; ÿ ÿ+6 . ÿ = ÿ .D ELFIG INSTLIK ANBL; ÿ ÿ 1 .+ ÿ = ÿ . LDIE FNGTIIS LONTICALO; ÿ ÿ 6 .+ ÿ = ÿ . LDIE FNGTIIS LORRR E ; ÿ ÿ+2 . ÿ = ÿ .T UNCOE YT BNTREUR CLO; ÿ ÿ 0 ÿ D OR.Wÿ S TEBYE OD-MUSATSTO L ; ÿ ÿ 0 ÿRDWO . ÿ NTOU CTEBYM MUXIMAO L ; ÿ ÿ 0 ÿRDWO .: F2BULO WO TCKLO BERADHET PUUT OEDSTLI; ÿ ÿ ÿ N VE.Eÿ 6 1-UFOB-L . ÿ = ÿBCOM LS ERFFBU; Xþ±04 ASCIIY: ÿ TRAP ÿ ENDLINE ; CALL END LINE ÿ TRAP ÿ COLIST ÿTST ÿLOLB-O04 ÿ ÿ;WAS LISTING DEVICE INITED YET? ÿBEQ ÿDATB99 ÿ ÿ;NO - BRANCH ÿMOV ÿ#LOLB,-(R6) ÿ;WAIT TILL LISTING COMPLETES ÿEMT ÿWTCMD DATB99: ÿ SUB ÿ #6,CURLIST-O04 ÿ INC ÿ CURBYTE-O04 ÿ ; INCREMENT CURBYTE POINTER DATA2: ÿ TST ÿ -(R1) ÿ ; R1 = R1-2 ÿ RTS ÿ R1 ÿ ; REITERATE SUBROUTINE RSETP2: CLR ÿ @USERPC-O04 ÿ ; INITÿ 14.+ ÿ = ÿ . ONSIENXT ENGTIIS LCTJEOB; ÿ ÿ2 +1 . ÿ = ÿ .R FEUF BTADAR TEACARCH; ÿ X MARC+S . ÿ = ÿ .T UNCOE YT BNTREUR CSI; ÿ ÿ ÿ ÿ S TEBYE OD-MUSATSTI S ; ÿ ÿ ÿ ÿ NTOU CTEBYM MUXIMAI S ; ÿ ÿ-6 . ÿ = ÿF1BUSI NE OCKLO BERADHET PUINE RCOU S ; ÿ ÿ ÿ LDIE FNGTIIS LNKLA B ; ÿ ÿ+1 . ÿ = ÿ .D ELFIG INSTLIT ECBJ O ; ÿ ÿ+6 . ÿ = ÿ .D ELFIG INSTLIK ANBL; ÿ ÿ 1 .+ ÿ = ÿ . LDIE FNGTIIS LONTICALO; ÿ ÿ 6 .+ ÿ = ÿ . LDIE FNGTIIS LORTþµIALIZE DOT AT ZERO ;INITIALIZE DOT TO DEFINED, RELOCATABLE, UNNAMED .CSECT. ÿMOV ÿ#DEFFLG!RELFLG!400,@HUSERPC-O04 ÿ CLR ÿ ABSPC-O04 ÿ CLR ÿ RLDFLG-O04 ÿ ÿ;INITIALIZE ;CLEAR ALL CURRENT PC WORDS IN ;THE CONTROL SECTION AREA OF THE ;SYMBOL TABLES. ÿMOV ÿPERTOP-O04,R0 ÿ;BOTTOM OF .CSECT AREA ÿMOV ÿR0,R2 ÿMOV ÿR2,HIRPC-O04 ÿ;POINTER TO MAX PC OF ÿTST ÿÿ-(R2) ÿ ÿ;BLANK .CSECT ÿMOV ÿR2,RELPC-O04 ÿ;POINTER TO CURRENT PC OF ÿ ÿ ÿ ÿ;BLANK .CSECT ÿMOV ÿCONTOP-O04,R1 ÿ;TOP OF .CSECTRR E ; ÿ ÿ+2 . ÿ = ÿ .T UNCOE YT BNTREUR CLO; ÿ ÿ 0 ÿ D OR.Wÿ S TEBYE OD-MUSATSTO L ; ÿ ÿ 0 ÿRDWO . ÿ NTOU CTEBYM MUXIMAO L ; ÿ ÿ 0 ÿRDWO .: F1BULO NE OCKLO BERADHET PUUT OEDSTLI; ÿ ÿ ÿ 0 ÿ D OR.Wÿ 0 ÿ D OR.Wÿ 0 ÿ D OR.Wÿ 0 ÿ D OR.Wÿ 0 ÿ ÿRDWO . ÿ 12 ÿ D OR.Wÿ 3 ÿ D OR.Wÿ K AC PILRA;T ÿ 0 4 ÿRDWO . ÿF:BURL TX MARCÿS= ÿBCIM SS TEBY2 7 =UMIMAX MCEURSO; ÿ ÿ 0 11 ÿ = ÿ X MARC SE ONR FEUF B ; ÿ ÿ ÿ ÿ CKLO BERADHEO I/N APþ¹ AREA SETP3: ÿCMP ÿR0,R1 ÿBEQ ÿSETP1 ÿ ÿ;DONE ÿCLR ÿ-2(R0) ÿ ÿ;0-CURRENT PC WORD. ÿSUB ÿ#10,R0 ÿ ÿ;SIZE OF ENTRIES IF ÿBR ÿSETP3 ÿ ÿ;4 WORDS. SETP1: ÿMOVB ÿ #1,SECMOD-O04 ÿ;UNNAMED .CSECT ÿMOV ÿ #130411,TITLEA-O04 ÿMOV ÿ #35214,TITLEB-O04 ÿ MOV ÿ #-1,R0 ÿ MOVB ÿ R0,BINOUT-O04 ÿ TRAP ÿ BBINIT ; CALL BINARY BUFFER INITIALIZATION ÿ MOV ÿ #1,PAGCNT-O04 ÿ ; INIT. PAGE COUNTER ÿ CLR ÿ PAGING-O04 ÿ ; INIT. LINE COUNTER ÿ CLR ÿ ERRSUM-O04 ÿ ; INIT. ERROBYD DECERE P ÿ ; ÿ ÿ ÿ LYTEIAEDMM IISR FEUF BALDUVIDIINH AC E ; ÿ ÿ ÿ ERFFBUT PUUT OHE TINTHWID DEEDMB E ÿ ; ÿ ÿ ÿ LYTELEMPCOS IERFFBUT PUINE TH; ÿ ÿ ÿ E ON ZNGRIFEUF BUTTPOUT-PUIN; ÿ ÿ ENEV . ÿ SSPAM MUXIMA; ÿ ÿ 0 ÿ E YT.B: SSPAAX MS AS PVETIECFF E ; ÿ ÿ 0 ÿTEBY . ÿS:AS PS AS P'SOLMBSYD NEFIDEUN; ÿ ÿ ÿ 0 ÿTEBY .: SSPAUS ONTIOPS AS PNGTIIS LORRR E ; ÿ ÿ 0 ÿTEBY .: SSPAER NSIOPTLþ½R COUNTER ÿJMP ÿSETP4-O04 RSETP4: ÿ CLR ÿ SIBUF1+2-O04 ÿ CLR ÿ SIBUF2+2-O04 ÿ MOV ÿ BHADRS+2-O04,R0 ÿMOV ÿR0,-(R6) ÿ;STACK BUFFER ADDRESS ÿ MOV ÿ #SIMBC,(R0)+ ÿ MOV ÿ #SIMODE,(R0)+ ÿ MOV ÿ R0,CURLIST-O04 ÿ MOV ÿ #LOMBC-26,R0 ÿ TRAP ÿ BLKBUF ÿMOV ÿSILB-O04,-(R6) ÿ;GET SOURCE INPUT ÿEMT ÿRDCMD ; ; ÿMOV ÿSILB-O04,-(R6) ÿ;WAIT FOR COMPLETION ÿEMT ÿWTCMD ÿ MOV ÿ BHADRS-O04,R0 ÿ SUB ÿ #16,R0 OLYMBSEAS; ÿ ÿ : NSIOPT OS ONTINCFUS AS PLYMBSEAS; ÿ ÿ S:SEASP #6E IL FOFD ENÿ;ÿ ÿ ÿOT.E ÿ UTTPOUR FON PE;O ÿ ÿ47BRSU ÿRDWOÿ. O TORRI PLEFIT PUUT OTELEDEÿ;E BLTA-Jÿ.= ÿUTLODE DCENÿ. 6 R4UBÿSD OR.W ÿ ERADLOY LAEROVÿ;ÿ E BLTA-Jÿ.= ÿRLNTCO EGOSÿNF NDIFÿ. 7 RTS RIA VITEXÿ;ÿ 5 R4UBÿSD OR.W ÿ ND ARSTEISEG ROP;P ÿLEABJT.- ÿÿ=G REOP PD T'NI.IF ;I ÿ ÿ44BRSU ÿRDWOÿ. T SEA AT DSEEAEL.RD ANE OSCL;. ÿLEABJT.- ÿÿ=N EACL DCENÿ.HþÁ ÿ MOV ÿ #100000,(R0)+ ÿ CLR ÿ (R0)+ ÿJMP ÿSETSRC-O04 ; DIRECT ASSIGNMENT STATEMENT PROCESSING ÿ ; THIS SUBROUTINE RESOLVES THE FOLLOWING THREE DIRECT ÿ ; ASSIGNMENT SITUATIONS: ÿ ; 1) USER'S SYMBOLIC ASSIGNMENTS ÿ ; 2) SYMBOLIC REGISTER ASSIGNMENTS ÿ ; 3) ASSEMBLY LOCATION COUNTER ASSIGNMENTS ÿ ÿ ; UPON ENTERING THIS SUBROUTINE THE EFFECTIVE SYMBOL ÿ ÿ ; TABLE ADDRESS RESIDES IN HINDEX. ÿ ÿ ; REGIS 3 R4UBÿSD OR.W ÿ EGOSÿNF FD.I ÿ DCENÿ. 1 #AYRLVE OY2TRENÿ;ÿ 2 RYNTÿED OR.W ÿ EGOSÿNF NDIFÿ. A AT DTEDALIVA, I2CSL AL;C ÿLEABJT.- ÿÿ=K CHSI CC ND.Eÿ ÿ 42BRSU ÿRDWO . ÿ EGOSÿNF FD.Iÿ C ND.Eÿ 2 #AYRLVE OY8TRENÿ;ÿ 8 RYNTÿED OR.Wÿ G SENO ÿDFFN.Iÿ R FEUF BLD RTOINL OBGL .ERNT;E ÿLEABJT.- ÿ = GLTREN DCENÿ. 1 R4UBÿSD OR.W ÿ EGOSÿNF FD.I ÿ DCENÿ. 2 #AYRLVE OY6TRENÿ;ÿ 6 RYNTÿED OR.Wÿ G SENO ÿDFFN.I ÿ NETIOUBRSUH RCEA SARNELIÿ;E BLTA-Jÿ.= CHSRIN L0 R4UBÿSD OR.Wÿ Y TRENL BOYM SAYRLVEDþÅTER TYPING INFORMATION OBTAINED ON EITHER SIDE ÿ ÿ ; OF THE EQUIVALENCE CAUSES THE EFFECTIVE SYMBOL ÿ ÿ ; TO BE TYPED AS REGISTER. ÿ ÿ ; THE ASSEMBLY LOCATION COUNTER SYMBOL IS DETECTED ÿ ÿ ; BY IDENTIFYING THE CHAR13 PACKED WORD. ÿ ÿ ; IE. TMPSYM(1,2) = 127400 ÿ ÿ ; EXPRESSIONS DEFINING THE ASSEMBLY LOCATION ÿ ÿ ; COUNTER, UPON BEING ENCOUNTERED, MUST BE ÿ ÿ ; TOTALLY EVALUATABLE. ÿ ÿ ÿ ÿ ; INPUT SPECIAL SITUATION ÿ ÿ ÿ ÿ ; OUTPUT EXIT ASSIGN:;O ÿLEABJT.- ÿ = AYRLOV 39BRSU ÿRDWO . NETIOUBRSUH RCEA SRYNABIÿ;E BLTA-Jÿ. =H RCNSBI DCENÿ. 8 R3UBÿSD OR.W ÿ EGOSÿNF FD.I ÿ DCEN . ) #3Y LAEROV (ORSSCERO PND ENTRO;F ÿ ÿY8TREN ÿRDWOÿ. G SENO ÿDFFN.I LYMBSEASL NAIOITNDCOÿ;E BLTA-Jÿ.= ÿNDCO 37BRSU ÿ D OR.Wÿ E BLTA-J . ÿ = ÿYTDBRL 36BRSU ÿ D OR.Wÿ E BLTA-J . ÿ = ÿINTBOU DCEN . ÿ 35BRSU ÿ D OR.Wÿ G SENO ÿ F FD.Iÿ C ND.Eÿ 2 #AYRLVE OY7TREN; ÿ 7 RYNT E ÿRDWO . ÿ EGOS N ÿDFFN.Iÿ E BLTA-J . @þÉ ÿ MOV ÿ TMPSYM+1-O04,-(R6) ; SAVE SYMBOLS FIRST TRIAD ÿ MOV ÿ TMPSYM+3-O04,-(R6) ; SAVE SYMBOL'S SECOND TRIAD ÿ MOV ÿ HINDEX-O04,-(R6) ; SAVE SYMBOL'S ENTRY ADDRESS ÿ MOV ÿ @R1,-(R6) ÿ ; SAVE SYMBOL'S FLAGS AND .CSECT ID ÿ TRAP ÿ ITEM ; CALL ITEM ÿ BLE ÿ MAIN16 ÿ ; VOID ITEM ENCOUNTERED ÿ ÿ ÿ ÿ ; NON-VOID ITEM ENCOUNTERED ÿ INCB ÿ ITEMIN-O04 ÿ ; SET ITEM PENDING FLAG MAIN16: CLR ÿ R0 ÿ ÿ ; R0 = 0 ÿ TRAP ÿ EXPE3 ; ÿ = ÿABDTGS 34BRSU ÿ D OR.Wÿ E BLTA-J . = ÿEFLRRE 33BRSU ÿ D OR.Wÿ E BLTA-J . ÿ = ÿILDFRL 32BRSU ÿ RDWOÿ. E BLTA-J . = ÿNTDIRL 31BRSU ÿ D OR.Wÿ E BLTA-J . ÿ = ÿHBRCSE 27BRSU ÿ D OR.Wÿ G INSTLIT PUUT ONDMAOM C ; ÿLEABJT.- ÿ = ÿ T ISOL C6 R2UB S ÿRDWO . ÿ ERNTOU CONTICALOE THN VE E ; ÿLEABJT.- ÿ = ÿ C NPVE E5 R2UB S ÿRDWO . ÿ TYLIBITAINPR; ÿ E BLTA-J . ÿ = ÿNTRI PC ND.Eÿ 4 R2UB S ÿRDWO . ÿ EGOS N ÿDFIF . ÿ DCEN . ÿ #4Y LAEROV<þÍ CALL EXPRESSION, MINIMAL TERMINATOR ; ÿ BGT ÿ MAIN17 ÿ ; NON-VOID EXPRESSION FOUND ÿ INCB ÿ QERROR-O04 ÿ ; VOID EXPRESSION CONSIDERED ÿ ÿ ÿ ÿ ; AS QUESTIONABLE SYNTAX ÿ INCB ÿ UERROR-O04 MAIN17: BISB ÿ REGTYP-O04,@R6 ; COMBINE THE EXPRESSION'S REG. ÿ ÿ ÿ ÿ ; TYPE WITH THE SYMBOL'S FLAGS ÿÿ BITB ÿ R2,@R6 ÿ ; IS THE SYMBOL TYPED REGISTER ? ÿ BEQ ÿ MAIN18 ÿ ; NOPE ÿ BITB ÿ #LABFLG,@R6 ÿ ; YES, IS IT A LABEL ? ÿ BEQ ÿ MAIN18 ÿ;ÿ 8 RYNT E ÿRDWO . ÿ EGOS N ÿDFFN.Iÿ N IOATINRMTEA AT D ; ÿLEABJT.- ÿ = ÿ M ERAT D3 R2UB S ÿRDWO . ÿ UMKSECCHH ISIN F ; ÿLEABJT.- ÿ = M SUCKHE C2 R2UB S ÿRDWO . ÿ ONTIZALIIAITIN. ID. ARCH; ÿ E BLTA-J . ÿ = ÿP1TUSE 21BRSU ÿ D OR.Wÿ E OD CORRR EET S ; ÿLEABJT.- ÿ = ÿ R ERET S0 R2UB S ÿRDWO . ÿ LDIE FRTSEIN; ÿ E BLTA-J . ÿ = ÿRTSEIN 19BRSU ÿ D OR.Wÿ R TORAPESES SIHENTREPA; ÿ E BLTA-J . ÿ = ÿEPRSPA 18BRSU ÿ D OR.Wÿ K ECCHD END ELFI; 8þÑÿ ; NOPE ÿ BISB ÿ #MDFLAG,1(R6) ; YES, CONSIDERED AS A ÿ ÿ ÿ ÿ ; MULTIPLY DEFINED SYMBOL ÿ INCB ÿ RERROR-O04 ÿ ; REGISTER ERROR MAIN18: MOV ÿ (R6)+,@R1 ÿ ; RESTORE SYMBOL'S FLAGS AND ID ÿ MOV ÿ (R6)+,HINDEX-O04 ; RESTORE SYMBOL'S ENTRY ADDRESS ÿ MOV ÿ (R6)+,TMPSYM+3-O04 ; RESTORE SYMBOL'S SECOND TRIAD ÿ MOV ÿ @R6,TMPSYM+1-O04 ; RESTORE SYMBOL'S FIRST TRIAD ÿ CMP ÿ #127400,(R6)+ ; IS THIS SYMBOL DEFINING THE ÿ ÿ ÿ ÿ ÿ E BLTA-J . ÿ = ÿNDDEFL 17BRSU ÿ D OR.Wÿ R TONAMIER TXTNE; ÿ E BLTA-J . ÿ =M ERXTNE 3BBRSU ÿ D OR.Wÿ K ECCHA DIMEF--OND EUTTPOU; ÿ E BLTA-J . ÿ = ÿHKMCEO 16BRSU ÿ D OR.Wÿ S ERSTGIRET SE; ÿ E BLTA-J . ÿ = ÿEGTRSE DCEN . ÿ 15BRSU ÿ D OR.Wÿ G SENO ÿ F FD.Iÿ ÿ C ND.Eÿ 3 #AYRLVE OY4TREN; ÿ 4 RYNT E ÿRDWO . ÿ EGOS N ÿDFFN.Iÿ T PUUT OEDSTLIE BLTAL BOYM S ; ÿLEABJT.- ÿ = ÿ T LSTL S4 R1UB S ÿRDWO . ÿ RSTEISEG RVESA; ÿ E BLTA-J . ÿ4þÕ ; ASSEMBLY LOCATION COUNTER ? ÿ BNE ÿ MAIN19 ÿ ; NOPE ÿ TSTB ÿ ERROR-O04 ÿ ; WAS THE EXPRESSION TOTALLY EVALUATABLE? ÿ BNE ÿ MAIN87 ÿ ; BRANCH IF NOT. ÿ TSTB ÿ RSLMOD-O04 ÿ BGE ÿ MAIN88 MAIN87: ÿINCB ÿ AERROR-O04 MAIN89: ÿ JMP ÿ MAIN1E-O04 MAIN88: COMB ÿ BINOUT-O04 ÿ ; REQUEST BINARY OUTPUT ÿ BITB ÿ #-DEFFLG-RELFLG-1,@R1 ;ONLY DEF. AND REL. CAN BE SET. ÿ BEQ ÿ MAIN1Q ÿ INCB ÿ QERROR-O04 ÿ BR ÿ MAIN89 MAIN1Q: ÿ MOV ÿ R1,R5 ÿ ÿ;SAVE = ÿEGVRSA 13BRSU ÿ D OR.Wÿ N IORSVEON CIISC ATOY ARIN B ; ÿLEABJT.- ÿ = ÿ C ASIN BC ND.Eÿ 2 R1UB S ÿRDWO . ÿ EGOS N ÿDFIF . ÿ DCEN . ÿ #3Y LAEROV3 RYNT E ; ÿY3TREN ÿ D OR.Wÿ G SENO ÿ F NDIF . ÿ NGTIIS LLEAB TOLMBSY; ÿ E BLTA-J . ÿ = ÿSTLIST 11BRSU ÿ D OR.Wÿ R TEACARCHT GE; ÿ E BLTA-J . ÿ =R HATCGE 10BRSU ÿ D OR.Wÿ S AB TND AKSANBLK ECCH; ÿ E BLTA-J . ÿ = ÿBSTACB 09BRSU ÿ D OR.Wÿ R FEUF BRYNABIR TEEN; ÿ E BLTA-J . ÿ = ÿUFBB E8 R0UB0þÙR1 ÿ MOVB ÿ #RLD3.2,R0 ÿ ÿ;LOCATION COUNTER MODIFICATION ÿ MOV ÿ RESULT-O04,R1 ÿ MOV ÿ #4,R4 ÿ TRAP ÿ RLDFIL ÿ MOV ÿ R5,R1 ÿ ÿ;RESTORE R1 ÿ TSTB ÿ SECMOD-O04 ÿ BEQ ÿ MAIN1C ÿ ÿ;ABSOLUTE PROGRAM SECTION ÿ TSTB ÿ RSLMOD-O04 ÿ BLE ÿ MAIN87 ÿ ÿ;NOT RELOCATABLE EXPRESSION IN .CSECT ÿ MOV ÿ RESULT-O04,@RELPC-O04 ÿ;UPDATE PC OF CURRENT .CSECT ÿ CMP ÿ @USERPC-O04,@HIRPC-O04 ÿ BLOS ÿ MAIN1T ÿ MOV ÿ @USERPC-O04,@HIRPC-O04 ÿ;UPDATE MAX. PC OF CURRENT .CSECT MAIN1T S ÿRDWO . ÿ NGSIESOCPRE IN LOFD EN; ÿ E BLTA-J . ÿ =E INDLEN 07BRSU ÿ D OR.Wÿ S SILYNA AAXNTSY; ÿ ÿLEABJT.- ÿ = ÿ X TAYN S6 R0UB S ÿRDWO . ÿ LEAB TOLMBSYR TEEN; ÿ E BLTA-J . ÿ = ÿERNT EB R2UB S ÿRDWO . ÿ UEAL VRSTEISEG RCEOR F ; ÿLEABJT.- ÿ = ÿ E RCFO RA R2UB S ÿRDWO . ÿ UEAL VRSTEISEG RCKHE C ; ÿLEABJT.- ÿ = ÿ K ECCH R5 R0UB S ÿRDWO . ÿ UEAL V'SOLMBSYE AV S ; ÿLEABJT.- ÿ = ÿ L VAAV SC R1UB S ÿRDWO . ÿ RYNT ERD3-S N'IOSSREXP E ; ÿLE,þÝ: ÿ BR ÿ MAIN1C MAIN19: TSTB ERROR-O04 ÿ ;EXPRESSION NOT ÿ BNE ÿ MAIN89 ÿ ;FULLY DEFINED ÿ CMPB ÿ #MDFLAG,1(R1) ; IS THIS SYMBOL MULTIPLY ÿ ÿ ÿ ÿ ; DEFINED ? ÿ BNE ÿ MAIN1A ÿ ; NOPE, VALID SITUATION ÿ TRAP ÿ SAVVAL ; CALL SAVE SYMBOL'S VALUE ÿ BR ÿ MAIN1C ÿ ; ENTER THIS INFORMATION MAIN1A: BITB ÿ R2,@R1 ÿ ; IS SYMBOL TYPED REGISTER ? ÿ BEQ ÿ MAIN1B ÿ ; NOPE ÿ TRAP ÿ RFORCE ; CALL REGISTER CHECKER MAIN1BABJT.- ÿ = ÿ 3 PEEX 1BBRSU ÿ D OR.Wÿ Y TREND -N 2'SONSIESPREX; ÿ E BLTA-J . ÿ = ÿE2XP EA R1UB S ÿRDWO . ÿ RYNT EST1-S N'IOSSREXP E ; ÿLEABJT.- ÿ = ÿ 1 PEEX 04BRSU ÿ D OR.Wÿ E BLTAL BOYM SCHARSE; ÿ E BLTA-J . ÿ = ÿCHARSE 03BRSU ÿ D OR.Wÿ N IOITISQUACM TE I ; ÿLEABJT.- ÿ = ÿ M TE I2 R0UB S ÿRDWO . ÿ RSFEUF B/O ITETARO; ÿ E BLTA-J . ÿ = ÿTETARO 01BRSU ÿ D OR.Wÿ R FEUF BNGTIIS LNKLA B ; ÿLEABJT.- ÿ = ÿ F BULK B0 R0UB S ÿRDWO . ÿ ONTIZALIIA(þá: BICB ÿ #DEFFLG,@R1 ÿ ; CLEAR SYMBOL'S DEFINED FLAG ÿ TSTB ÿ RSLMOD-O04 ÿ ;AM I IN REL EXP ÿBLT ÿMAIN87 ÿ ÿ ÿ;.GLOBL OR EXTERNAL .CSECT EXPRESSION ÿ BEQ ÿ MAIN1C ÿBISB ÿ #RELFLG,@R1 ÿMOVB ÿSECMOD-O04,1(R1) ÿ;PROG. SECTION ID MAIN1C: BISB ÿ #DEFFLG,@R1 ÿ ; FLAG THIS SYMBOL DEFINED MAIN1D: TRAP ÿ OVRLAY ÿ ; CALL OVERLAY USER'S SYMBOL TABLE ÿBR ÿ MAIN89 ÿ ; SUBROUTINE DATA TERMINATION ;DATERM: SUBR24: ÿ CMPB ÿ@R5,R0 ÿ BEQ ÿDATER0 ÿ SWAB ÿR0 ITINR FEUF BRYNABI; ÿ E BLTA-J . ÿ = ÿITINBB TSINPOY TRENE INUTROUB SOFE BLTAP UM J ; ÿ ÿ: LEABJT ENEV . ÿ E AG.Pÿ ; ORATICND IAB TORK ANBL; ÿ ÿ 0 ÿ E YT.B G:LATF BS ASCLS N'IOCTRUSTIN; ÿ ÿ 0 ÿ E YT.B S:ASCL IK AS MNGTIIS LLEAB TOLMBSY; ÿ ÿ 0 ÿ E YT.B K:ASTM S. ERNTOU COLMBSY; ÿ ÿ ÿ ÿ S T'PUUT OEDSTLIE BLTAL BOYM S ; ÿ ÿ 0 ÿTEBY .: SCSTLI ERNTOU CEMITS N'IOSSREXP E ; ÿ ÿ 0 $þåÿ CMPB ÿ@R5,R0 DATER0: ÿ RTS ÿR7 ÿ.IFNDF ÿNOSEG ENDO04: SIZO04=ENDO04-BEGO04 ÿ.EOT ÿ ÿ ÿ;END OF FILE #4 ;***** OVERLAY #5 ***** O05=BEGOVR-BEGO05 ÿ ÿ;COMPUTE OFFSET FROM ÿ ÿ ÿ ÿ;RUN TIME OVERLAY AREA BEGO05: ;JUMP TABLE TO ENTRY POINTS ;IN THIS OVERLAY. ; ÿJMP ÿOPCODE ÿ ÿ;ENTRY1 ÿJMP ÿEOFFLG ÿ ÿ;ENTRY2 ÿ.ENDC ; ; ; OPCODE: ÿ MO ÿTEBY .: NTOUIC ERNTOU CERCTRAHA C'SEMIT; ÿ ÿ 0 ÿ E YT.B: ARCHNT CR TOCADIINT PUUT ORYNABI; ÿ ÿ 0 ÿ E YT.B T:OUIN BR TOCADIING INNDPEM TE I ; ÿ ÿ 0 ÿTEBY .: INEMIT AGFLT PUUT O'SID. ARCH; ÿ ÿ 0 ÿ E YT.Bÿ : AGFL SR TOCADIINE YP T'SEMIT; ÿ ÿ 0 ÿ E YT.Bÿ : PETY IN VE.Eÿ D IONTIEC SOLTRON;C ÿ 0 ÿ E YT.Bÿ ÿD:TISC CS AGFLS E'BLTAL BOYM SRYRAPOEM T ; ÿ ÿ 0 ÿTEBY .: GSLATF 0 ÿRDWO . ÿ 0 ÿRDWO . ÿ 0 ÿRDWO . ÿ þéV ÿ QUANTITY-O05,-(R6) ; STACK MEMONICS OP-CODE ÿ TRAP ÿ EVENPC ; CALL EVEN THE LOCATION COUNTER ÿ MOV ÿ #COMAND,R5 ÿ ; R5 = COMAND'S ADDRESS ÿ MOV ÿ #RESULT,R4 ÿ ; R4=RESULT ADDRESS ÿ MOV ÿ #SIZE,R3 ÿ ; R3 = SIZE ADDRESS ÿ CLRB ÿ @R3 ÿ ÿ ; SIZE=0 ÿ MOV ÿ #TBBUF,R2 ÿ ; R2=TBBUF(0) ADDRESS ÿ MOVB ÿ ICLASS-O05,R0 ; R0 = OP-CLASS INDEX ÿ JMP ÿ @OPCLASS-BEGO05+BEGOVR(R0) ; SELECT OPERATION CLASS OPCLASS: ÿ ; OPERATION CLAS 0 ÿ E YT.B M:SYMP TR TEUNCOD ELFIG INSSREDD;A ÿ 0 E YT.B T:CNLD FS ESDRADD ODE BSTMUM SYMP T ; ÿ ÿ ÿENEV . ÿ LEAB TOLMBSYY ARORMPTE; ÿ ÿ ÿ 0 ÿ D OR.W: RMTEAR VN VE.E ÿ E.ICEV;D ÿ ÿ ÿ AYRLVE OITINÿ;ÿ ÿ T N'DO0 F ;I ÿÿ0E YT.B ÿT:NIOI N" 1RL1PA "NTRI P - 0ON;N ÿ77ÿ3E YT.B ÿT:ENID ENEVÿ. H TCWI S'SCTSE.CT IS;L ÿÿ0E YT.B ÿT:ECCS LR TEUNCOE BLEMSS A'TON;D ÿÿ0E YT.B ÿT:ACNT DL VELET ES NLSNAIOITNDCOÿ;0 ÿTEBYÿ.: LVSTCN 0 ÿTEBY . ÿH:LTAR VP KUAC BþíSING JUMP TABLE CLASS0: .WORD ÿ MAINC0-BEGO05+BEGOVR ÿ ; OPERATE MNEMONICS CLASS1: .WORD ÿ MAINC1-BEGO05+BEGOVR ÿ ; UNARY ÿ MNEMONICS CLASS2: .WORD ÿ MAINC2-BEGO05+BEGOVR ÿ ; BINARY MNEMONICS CLASS3: .WORD ÿ MAIN3F-BEGO05+BEGOVR ÿ ; RTS ÿ MNEMONICS CLASS4: .WORD ÿ MAIN30-BEGO05+BEGOVR ÿ ; BRANCH MNEMONICS CLASS5: .WORD ÿ MAIN3Q-BEGO05+BEGOVR ÿ ; JSR ÿÿ MNEMONICS CLASS6: .WORD ÿ MAIN3A-BEGO05+BEGOVR ÿ ; TRAP ÿ MNEMONICS ODLMRS ; ÿ 0 ÿTEBY . ÿD:2MSL R) ONTIEC SALRNTEEX (LEABATOCEL R2=;- ÿ ÿ ÿ L BALO G1=;- ÿ ÿ ÿ ) ONTIEC SNTREUR(CE BLTACALORE= ;1 ÿ ÿ ÿ E UTOLBS A0= ; ÿ ÿ ÿ ONSIESPREXF OPETYE THS TECADIINS HI;T ÿ 0 ÿ E YT.Bÿ : ODLMRS 'SCTSE.CD MENA= ) (876-3;2 ÿ ÿ ÿ T ECCS .EDAMNN U1= ; ÿ ÿ ÿ CTSE.A= ;0 ÿ ÿ ÿ : ISE ONN IOCTSET HA WINS TECADIINS HI;T ÿ 1 ÿ E YT.Bÿ : ODCMSE 0 ÿTEBY . ÿX:DIRA +1ZESIT=FMYT B ; ÿ ÿ 0 ÿTEBY .: MTTFBY SSREDD AENEVE BSTMUE IZ S ; þñMAIN30: ÿ ; CONDITIONAL BRANCH MNEMONIC PROCESSING ÿ CLR ÿ R0 ÿ ÿ ; R0 = 0 ÿ TRAP ÿ EXPE3 ; CALL EXPRESSION, SEMICOLON ÿ ÿ ÿ ÿ ; MINIMAL TERMINATOR ÿ BGT ÿ MAIN32 ÿ ; NON-VOID EXPRESSION FOUND ÿ ÿ ÿ ÿ ; VOID EXPRESSION ENCOUNTERED MAIN31: INCB ÿ AERROR-O05 ÿ ; SET ADDRESSING ERROR ÿMOVB ÿ#-1,@R4 ÿ BR ÿ MAIN3H MAIN32: ÿ TSTB ÿ RSLMOD-O05 ÿ ; ENSURES ÿ BEQ ÿ MAINBR ÿ ; ÿ ÿ 0 ÿTEBY . ÿE:IZ SE AGIME RCOU SVETIECFF EHE TOF; ÿ ÿ ÿ ÿ G INSSCERO PRETIENE THT OU; ÿ ÿ ÿ ÿ U HR TERFFBUT PUUT-OUTNP I ; ÿ ÿ ÿ ÿ VETIECFF EHE TTOS NTOI P ; ÿ ÿ ÿ ÿ LYALONTIDIONNC U1)0,S(DRHA B ; ÿ ÿ ÿ ÿ ESSSREDD AERADHER FEUF BUTNP I ; ÿF2BUSI ÿ D OR.Wÿ E RCOU SOFE BLTAG INATOT R ; ÿF1BUSI ÿ D OR.W S:DRHA BN VE.Eÿ 0 ÿRDWOÿ.: D4OR W0 ÿRDWOÿ.: D3OR W0 ÿRDWOÿ.: D2OR WH RCNSLIO TUTNP;I ÿ ÿÿ0D OR.W ÿ1:RDWO S)ESDRADT ESOW(LT PSF OOP;T ÿþõTHAT ILLEGAL ÿ BLT ÿ MAIN31 ÿ ; BRANCHING DOES NOT ÿ BR ÿ MAIN33 ÿ ; TAKE PLACE. MAINBR: ÿ TSTB ÿ SECMOD-O05 ÿ ; ÿ BNE ÿ MAIN31 ÿ ÿ ÿ ÿ ÿ ; OF ASSEMBLY LOC. COUNTER MAIN33: SUB ÿ @USERPC-O05,@R4 ; RESULT=RESULT-USER'S PC. ÿ SUB ÿ #2,@R4 ÿ ; RESULT = RESULT-2 ÿ ASR ÿ @R4 ÿ ÿ ; SHIFT RESULT RIGHT 1-BIT ÿ BCS ÿ MAIN31 ÿ ; ADDRESSING ERROR IF ODD ÿ MOVB ÿ @R4,R0 ÿ ; PROPAGATE BYTES SIGN IN R0 ÿ CMP ÿ @R4,R0 ÿ ÿBTMTSY ÿRDWOÿ.: OPRTPE S)ESDRADT ESGHHI (ST POFM TOOT;B ÿ ÿBBMTSY ÿRDWOÿ.: OTRBPE T.ENEMATST; ÿ ÿ ÿ ÿ E RCOU SNTSERE PHE TINTHWI; ÿ ÿ ÿ ÿ D SEESOCPRG INBE) ERCTRAHA(C; ÿ ÿ ÿ ÿ E YT BNTREUR CHE TATY TLECIR D ; ÿ ÿ ÿ ÿ TSINPOY TLANSTON CERNTOI PISTH; ÿ ÿ 0 ÿ D OR.W: TEBYUR CD OR WNDMAOM CNSIOCTRUSTINN A ; ÿ ÿ ÿ ÿ OF) DR(MS LDIE FNGSIESDRAD; ÿ ÿ ÿ ÿ L RANEGEE THF OONTIUCTRNSCO; ÿ ÿ ÿ ÿ E THN IEDUSD OR WTADA; ÿ ÿ 0 ÿ D OR.W D:ANOMþù ; RESULT = R0 ? ÿ BNE ÿ MAIN31 ÿ ; NOPE, ADDRESSING ERROR ÿ BR ÿ MAIN3H ÿ ; FINAL COMAND PROCESSING ; ÿ .PAGE MAINC0: ÿ ; CONDITION CODE OPERATES, WAIT, HALT, RTI ÿ ÿ ; ÿ ÿ SINGULAR PROCESSING ÿ CMPB ÿ SAVTERM-O05,#-5 ; TERMINATOR SEMICOLON ? ÿ BEQ ÿ MAIN3W ÿ ; YES, EXIT ÿ CMPB ÿ SAVTERM-O05,#-4 ; TERMINATOR CAR-RET? ÿ BEQ ÿ MAIN3W ÿ ; YES, EXIT ÿ I C0 ÿ D OR.Wÿ : LGDFRL GERATO S ; ÿ ÿ 0 ÿTEBY . ÿT:CNEL RE IVCTREDID RL; ÿ ÿ 0 ÿ E YT.Bÿ : IRLD R; ÿ ÿ 0 ÿ D OR.Wÿ : MDRCDI MENA; ÿ ÿ 0 ÿ D OR.Wÿ : Y2BSGL OLMBSYL BALO G ; ÿ ÿ 0 ÿRDWO . ÿ1:SYLB GE THS INTAON CCHHI WERNTOI P ; ÿ ÿ 0 ÿRDWO .: OLMBSY RDWO. PC. AX MTOR TEINPO; ÿ ÿ 0 ÿ D OR.Wÿ : PCIR HD OR WPCO TERNTOI P ; ÿ ÿ 0 ÿRDWO . ÿC:LPRE RSTEINPOY TRENT ECCS .NTREURÿC; RDWOD /IAGFLS OT DOF. DRAD; ÿ ÿ 0 ÿ D OR.W: PCERUS HS þýNCB ÿ QERROR-O05 ÿ ; NO, SET 'Q' ERROR ÿ BR ÿ MAIN3W ÿ ; SET SIZE = 1 ; ÿ .PAGE MAIN3A: ÿ ; TRAP MNEMONIC PROCESSING ÿ CLR ÿ R0 ÿ ÿ ; R0 = 0 ÿ TRAP ÿ EXPE3 ; CALL EXPRESSION, ; MINIMAL TERMINATOR ÿ TST ÿ REGTYPE-O05 ÿ ; EXPRESSION TYPED REGISTER ? ÿ BEQ ÿ MAIN3C ÿ ; NOPE ÿ INCB ÿ RERROR-O05 ÿ ; YES, SET REGISTER ERROR ÿ CLR ÿ @R4 ÿ ÿ ; RESULT = 0 MAIN3C: ÿ TSTAS P ANGRIDUD REROER; ÿ ÿ ÿ ÿ S NELIE THL ALF OUM SHE T ; ÿ ÿ 0 ÿRDWO .: UMRSER SSREDD AERADHES R'FEUF B ; ÿ ÿ ÿ ÿ UTNP ICEURSOE IVCTFEEFE TH; ÿ ÿ ÿ ÿ F OSSREDD AHE TNSAINTCO; ÿ ÿ ÿ ÿ D OR WISTH, ROZET NOF I ; ÿ ÿ ÿ ÿ AGFLT PUUT ONDMAOM C ; ÿ ÿ 0 ÿRDWO .: AGFLCO R.FEUF B ; ÿ ÿ ÿ ÿ UTTPOUD TEIS LVETIECFF EHE T ; ÿ ÿ ÿ ÿ INE YT BLEABILVA ANTREUR C ; ÿ ÿ ÿ ÿ HE TATS NTOI PERNTOI PISTH; ÿ ÿ 0 ÿ D OR.W: STLIUR C. CHARSE; þB ÿ RSLMOD-O05 ÿ BEQ ÿ MAINCA ÿCMPB ÿ#-1,RSLMOD-O05 ÿ BEQ ÿ MAINCB ÿ ÿ; .GLOBL ÿ INCB ÿ AERROR-O05 MAINCA: MOVB ÿ RESULT+1-O05,TERROR-O05 ; RESULT'S HIGH ÿ ÿ ÿ ÿ ÿ; ORDER BYTE ÿ ÿ ÿ ÿ ; SETS TRUNCATION ERROR ÿ BR ÿ MAIN3H ÿ ; BUILD THE COMAND WORD MAINCB: ÿ TRAP ÿ RLDBYT ÿ ÿ; GLOBAL ADDITIVE RELOCATION ÿ BR ÿ MAINCA ÿ ÿ; OBJECT CODE 5 ; ÿ .PAGE MAIN3F: ÿ ; RTS MNEMONIC PROCESSING ÿ CL ÿ ÿ ÿ ÿ E BLTAL BOYM SHE TNGRIDU; ÿ ÿ ÿ ÿ T ANSTON CERCTRAHA CB' ' ; ÿ ÿ ÿ ÿ VETIECFF EHE TNSAIET R ; ÿ ÿ 0 ÿRDWO .: MDTCBY ONTISIPO. ARCHH -T 5','B; ÿ ÿ 0 12 ÿ D OR.Wÿ N IOITOS PR.HA CTH4-, B' ' ; ÿ0 20 6 ÿRDWO . ÿ S.OLMBSYD LEABEN; ÿ ÿ ÿ ÿ E YT BHE TTON IOATEL R ; ÿ ÿ ÿ ÿ INE INUTROUB SCHARSE; ÿ ÿ ÿ ÿ E THY BEDUSS NTTANSCO; ÿ ÿ ÿ ÿ R TEACARCH' 'B0 -4OD MOFE BLTA; ÿ 10.- ÿ = ÿ N COYT B. RDWOG LA/FIDS L'BOYM SOFS ESDRþR ÿ R0 ÿ ÿ ; R0 = 0 ÿ TRAP ÿ EXPE3 ; CALL EXPRESSION, ; MINIMAL RETURN ÿ BGT ÿ MAIN3G ÿ ; NON-VOID EXPRESSION EXITED ÿ INCB ÿ QERROR-O05 ÿ ; QUESTIONABLE SYNTAX MAIN3G: TRAP ÿ RFORCE ; CALL REGISTER FORCE MAIN3H: BISB ÿ @R4,@R6 ÿ ; SET THE REGISTER FIELD ÿ ÿ ÿ ÿ ; WITHIN THE COMAND WORD ÿ BR ÿ MAIN3W ÿ ; COMPLETE COMAND PROCESSING ; ÿ .PAGE MAINC1: ÿ ; UNARY MNEMONICS PROCESSED ÿ TRAP ÿ SYNTAX ; CALL THE SYNTAX ANALYZER AD; ÿ ÿ 0 ÿ D OR.W X:DEIN HK OCBLL NAMIER T'SUTTPOU; ÿ ÿ ÿ ÿ Y ARIN BHE TOR FSSREDD A ; ÿ ÿ ÿ ÿ MPJUE IVCTFEEFE THS INTARE; ÿ ÿ 0 ÿ D OR.W: DRPAJM 0 RDWO . N:CISR UMKSECCHT PUUT ORYNABI; ÿ ÿ ÿ ÿ E THG INCTRUSTON COR FEDUS; ÿ ÿ 0 ÿ D OR.W M:SUOC B0 ÿ D OR.W: RMTEAV S N VE.Eÿ L BOYM SLEABATOCEL RUSIOEVPRÿ;ÿ ÿ ÿ F OIDT ECCS .INTAINMAO ;T ÿ ÿ ÿ ÿ NETIOUBRSUN IOSSREXP EIND SE;U ÿ ÿÿ0E YT.B ÿC:SERG P E NCUEEQ SLFF--LCR; ÿLFF,,LCR ÿ E YT.Bþ  ÿ BEQ ÿ MAIN3V ÿ ; ONE FIELD ENCOUNTERED MAIN3L: INCB ÿ QERROR-O05 ÿ ; QUESTIONABLE SYNTAX ÿ MOV ÿ #37,@R5 ÿ ; INDIRECT IMMEDIATE MODE ÿ MOVB ÿ #2,@R3 ÿ ; MAXIMIZE SIZE TO 2 WORDS ÿ BR ÿ MAIN3U ÿ ; CLEAR THE NEXT OBJECT WORD ÿ ÿ ÿ ÿ ; COMPLETE CONSTRUCTING ÿ ÿ ÿ ÿ ; THE COMAND WORD ; ÿ .PAGE MAIN3Q: ÿ ; JSR MNEMONIC PROCESSING ÿ CLR ÿ R0 ÿ TRAP ÿ Eÿ E AGSSME; ÿ / ÿE AGÿPÿ ÿ / IISC.Aÿ E NCUEEQ SFFR- C ; ÿ F ,FLFR, C ÿTEBY . ÿ NTOU CTEBYL UACT A ; ÿ ÿ 2 2 ÿRDWO . ÿ O)(LDEMO ) HIS(TUTA S ; ÿ ÿ ÿ00 ÿ D OR.Wÿ T UNCOE YT BAX M ; ÿ ÿ 2 2 ÿRDWO .: UFGBPA ERFFBUE AGSSMEE AG P ; ÿ ÿ N VE.Eÿ ÿ4= ÿODPCLS ÿ2= ÿODYCTT ONTICALORED CELASPDIE IVITDD ACTSE.C; ÿ ÿ16 ÿ =4 4.LD RN IOATOCEL RVETIDIADT ECCS .ÿ;ÿ 5 ÿ1= .3D4RL ONTICALORED CELASPDIT ECCS .üý XPE2 ÿ BGT ÿ MAIN3R ÿ INCB ÿ QERROR-O05 MAIN3R: TRAP ÿ RFORCE ÿ SWAB ÿ @R4 ÿ ÿ ; SWAP RESULT'S BYTES ÿ ASR ÿ @R4 ÿ ASR ÿ @R4 ÿ BIS ÿ @R4,@R6 ÿ CMPB ÿ #',,@CURBYTE-O05 ÿ BNE ÿ MAIN3L ÿ TRAP ÿ ITEM ÿ BLE ÿ MAINC1 ÿ INCB ÿ ITEMIN-O05 ÿ BR ÿ MAINC1 ; ÿ .PAGE MAINC2: ÿ ; BINARY MNEMONICS PROCESSED ÿ TRAP ÿ SYNTAX ; CALL SYNTAX ANALYZER ÿ BGT ÿ MAIN3V ÿ ; TWO FIELDS ENÿ;ÿ 4 ÿ1= .2D4RL ONTICALORET ECCS .ÿ;ÿ 2 ÿ1= .1D4RL 11 ÿÿ=3 3.LD R0 1 ÿ = ÿ.2D3RL 7 ÿ = ÿ.1D3RL 6 ÿ = .6D2RL 5 ÿ = .5D2RL 4 ÿ = .4D2RL ECSPR DEOA Lÿ;ÿ 3 ÿ = 3 2.LD RK IN LINN VEGIS Aÿ;ÿ 2 ÿ = 2 2.LD RS NDMAOM CLD Rÿ;ÿ 1 ÿ = 1 2.LD RO TEREF RSEHE Tÿ;ÿ ÿ 4 ÿ = ÿMDDCRL 3 ÿ = ÿIRTDTX 00ÿ1= ÿSKTMDL 1 ÿ =NELINGLO 40 3 ÿ = ÿS7LASC 00 3 ÿ = ÿS6LASC 40 2 ÿ = ÿS5LASC 00 2 ÿ = ÿS4LASC 40 1 ÿ = ÿS3LASC 00 1 ÿ = ÿS2LASC 40 ÿ = ÿ 1 ASCL S0 ÿ øýCOUNTERED ÿ ÿ ÿ ÿ ; NOT TWO FIELDS FOUND ÿ INCB ÿ QERROR-O05 ÿ ; QUESTIONABLE SYNTAX ÿ MOV ÿ #2727,@R5 ÿ ; CONSTRUCT DEFAULT COMMAND ÿ ÿ ÿ ÿ ; USE TWO IMMEDIATE MODES ÿ MOVB ÿ #4,@R3 ÿ ; SIZE = 4 ÿ CLR ÿ TBBUF+4-O05 ÿ ; TBBUF(4,5) = 0 MAIN3U: CLR ÿ TBBUF+2-O05 ÿ ; TBBUF(2,3) = 0 MAIN3V: BIS ÿ @R5,@R6 ÿ ; PLACE THE ADDRESSING BITS ÿ ÿ ÿ ÿ ; INTO THE COMAND WORD MAIN3W: INCB ÿ @R3 ÿ ÿ ; SIZE = SIZE+2 ÿ INCB ÿ @= ÿ 0 ASCL SB TAL TAONIZOR HIISC Aÿ;ÿ ÿ 1 1 ÿ = ÿAB TD EEEFIN LIISC Aÿ;ÿ ÿ 2 01 ÿ = ÿ F LN URET-RGEIARRCAI CIAS; ÿ ÿ ÿ15 0 ÿ = ÿCR EDFERMFOI CIAS; ÿ ÿ ÿ14 0 ÿ = ÿFF E.IL FUSUOIGNTCOÿ;ÿ ÿ ÿ E ATOCLL ATOE IM TLDUI;B ÿ ÿ ÿ ÿ ATM OO RGHOUENT NOÿ;ÿ ÿ 0 64=1R9ER ;) RSROER" "F (ESOD CGESAES MORRR;E ANTR .UTNP IONR ROERÿ;ÿ E ICEV DORN RA.TT PUUT;O ÿ ÿ ONR ROERE ICEV DORD EOÿ;7 20 2 =R8ER NGSIIS MLEFIT PUINÿ;6 20 2 =R7ER ESIL FUTNP INYMAO TOÿ;5 20 2 =R6ER ESIL FUTTPOUY AN MOO;T ÿ0422= 5 RRôýR3 MAIN3X: MOV ÿ (R6)+,TBBUF-O05 ; TBBUF(0) = COMMAND WORD ÿJMP ÿEXIT-O05 ÿ ; EXIT THE MNEMONIC PROCESSOR EOFFLG: ÿ ; END-OF-FILE OR END-OF-MEDIA FLAGS PROCESSED ÿ;IS THIS THE EOD OF THE 1ST ÿ;DATA SET OF TWO DATA SETS? ÿTSTB ÿSICNT-O05 ÿ;NON 0 INDICATES TWO DATA SETS ÿBEQ ÿEOF1 ÿ ÿ;ONLY ONE DATA SET ÿCMP ÿ#SILB2,SILB-O05 ÿBEQ ÿEOF1 ÿ ÿ;ALREADY ON 2ND ÿDEC ÿSITAPE-O05 ÿ;LAST TAPE ÿBNE ÿEOF4 ÿ ÿ;NO ÿMOV ÿSILB-O05,-(R6) ÿ;CLOSE ÿEMT ÿCLS ÿTSTB ÿPAPASS-O05 ÿBNE ES UEAL VCHITSWY AN MOO;T ÿ ÿ UEAL VCHITSWL GALEILÿ;ÿ S HETCWI SNYMAO TOÿ;ÿ H TCWI SALEGLL;I ÿ0322= 4 RR EE ITWR .OND EOT PUUT;O ÿ0222= 3 RR ES ALONTIDION CEDSTNEY AN MOO;T ÿ0122= 2 RR ES T'ECCS .NYMAO TOÿ;0 20 2 =R1ER ;) RSROER" "S (ESOD CGESAES MORRR;E NDMAOM CSEEAEL;R ÿ 7= LS RD ANMMCOE ETEL;D ÿ21 =T DL NDMAOM CSELO;C ÿ17 =S CL NDMAOM CENOPÿ;6 1= PN OD ANMMCOE IZALTINI I ; ÿ ÿ 6 ÿ = ÿMDNC ID ANMMCOE ITWR; ÿ ÿ 2 ÿ = ÿ D CMWR NDMAOM CITWA; ÿ ÿ 1 ÿ = ÿ D CMWT ðý ÿEOF2 ÿCMPB ÿMAXPASS-O05,PASS-O05 ÿ;NOT PARAMETER FILE. ÿBNE ÿEOF3 ÿ;PARAMETER FILE EOF2: ÿMOV ÿSILB-O05,-(R6) ÿ;RELEASE DATA SET. ÿEMT ÿRLS EOF3: ÿMOV ÿ#SILB2,SILB-O05 ÿ;SWITCH TO 2ND ÿMOV ÿ#SIFB2,SIFB-O05 ÿ;DATA SET. ÿMOV ÿSITAP2-O05,SITAPE-O05 ÿ;TAPE COUNT ÿCMPB ÿ#1,PASS-O05 ÿ;OPEN ALREADY ÿBNE ÿEOF5 ÿ ÿ;DONE FOR 1ST PASS ÿJMP ÿÿSETP4-O05 EOF1: ÿDEC ÿSITAPE-O05 ÿ;LAST TAPE ÿBNE ÿEOF4 ÿ ÿ;NO ÿ;SIMULATE .END ÿINC ÿERRSUM-O05 ÿ;DECLARE AS ERROR ÿÿMOV ÿ#1,JMPADR-O05 ÿ;FOR TRANNDMAOM CADRE; ÿ ÿ ÿ 4 ÿ = ÿMDDC R7 22 ÿ = ÿ G FLST R6 ÿ = ÿ D ENBJ O0 00 2 ÿ = ÿIRMDSY 2 ÿ = ÿNDDEGS 0014 ÿ = ÿ D CMRN T0 45 ÿ = ÿ G FLSC C0 41 ÿ = ÿ G FLSC A1 ÿ = ÿ D CMSD G1 36 ÿ = ÿ Z FSTH SE OD MUTTPOUY ARIN B ; ÿ ÿ 3 ÿ = ÿDEMOBO DEMOT PUINE RCOU S ; ÿ ÿ 0 ÿ = ÿDEMOSI 2476 ÿ = ÿ 2 BS A1 4027 1 ÿ = ÿS1AB 0 ÿ= ÿ 2 EL R0 ÿ = ÿ 1 EL R. ESSSPAT ENQUSEUB SIN; ÿ ÿ ÿ ÿ ÿ LEABILVA AISE OR CEEFR; ÿ ÿ ÿ ÿ ÿ OFL AL 1.S AS PNGRIDU; ÿ ÿ ÿ ÿ ÿ CKTA SOFE IZ SìýSFER ADDR. ÿCLRB ÿBINOUT-O05 ÿ;ON BINARY. ÿTRAP ÿEBBUF ÿJMP ÿSIMEND-O05 EOF4: ÿMOV ÿSILB-O05,-(R6) ÿ;CLOSE ÿEMT ÿCLS EOF5: ÿJMP ÿSETP0-O05 ÿ.IFNDF ÿNOSEG ENDO05: SIZO05=ENDO05-BEGO05 ; ÿ.ENDC ÿ.EOT ÿ.ENDC ÿ.IFNDF ÿNOSEG ÿ.CSECT ;BEGINNING OF OVERLAY AREA ;THE SIZE OF THE OVERLAY AREA IS DETERMINED ;BY THE SYMBOL "OVRSIZ" ; BEGOVR: ;THE BEGINNING REGISTERS OF EACH ;OVERLAY CONTAIN JMP'S TO THE ;ENTRY PUMIMAX Mÿ;ÿ ÿ . 00 2 ÿ = ÿIZKSST SKMAE IL-FOFD-EN; ÿ ÿ 0 10 ÿ = ÿ F EO DEMOT PUUT OEDSTLI; ÿ ÿ 0 ÿ = ÿ E ODOM LT SEFF O'SUSATSTT PUUT OEDSTLI; ÿ ÿ 5 -1 ÿ = ÿ T TAOS LG LA FALOBGL; ÿ ÿ 0 10 ÿ = ÿ G FLLB GG LA FLEABATOCEL R ; ÿ ÿ40 ÿ = ÿ G FLEL R3 T BI, AGFLE IVCTREDIY BLEMSS A ; ÿ ÿ10 ÿ = ÿ R DISM A3 T BI, AGFLD NEFIDE; ÿ ÿ 0 1 ÿ = ÿLGFFDE E.YT BCTSE.CN IG,LA FEDINEF DLEIPLTMU; ÿ ÿ 7 37 ÿ = ÿ G LADF M. EDINEFED ROLMBSYT ENANRMPE; ÿ ÿ 2 èý!OINTS OF THE OVERLAY ENTRY1=. ENTRY2=.+4 ENTRY3=.+10 ENTRY4=.+14 ENTRY5=.+20 ENTRY6=.+24 ENTRY7=.+30 ENTRY8=.+34 ENTRY9=.+40 ÿ.=.+OVRSIZ ;OVERLAY DEVICE LINK BLOCK ; ÿ.WORD ÿ0 ÿ ÿ;ERROR RETURN ADDRESS OVRLB: ÿ.WORD ÿ0 ÿ ÿ;LINK POINTER (DDB) ÿ.RAD50 ÿ/OVR/ ÿ ÿ;LOGICAL DATA SET NAME ÿ.BYTE ÿ1 ÿ ÿ;DEVICE SPECIFIED ÿ.BYTE ÿ0 ÿ ÿ;UNIT NUMBER ÿ.RAD50 ÿ/DF/ ÿ ÿ;DEVICE NAME ; ;OVERLAY DEVICE FILE BLOCK ; ÿ.WORD ÿ0 ÿ ÿ;ERROR RETURN ADDRESS ÿ.BYTE ÿ13 ÿ ÿ;HOW OPEN CODE (OPENC) ÿ.B ÿ = EFED R1 T BI, AGFLL BELA; ÿ ÿ 2 ÿ = ÿ G FLAB L0 T BI, AGFLR TEISEG R ; ÿ ÿ 1 ÿ = ÿLGGFRE 0IT BG,LA FLEABENE YT B ; ÿ ÿ 1 ÿ = ÿLGTFBY NSIOITINEF DIT BAGFLE BLTAL BOYM S ; ÿ ÿ ÿ #A @TOD CEOR F AIF0 N-NO; ÿ ÿ ÿÿ0E YT.B ÿS:ABRC FR TOCADIINR BEUM NALIMEC D ; ÿ ÿ 0 ÿTEBY .: UMCNDE 0 ÿTEBY . ÿ 0 ÿTEBY . ÿ 0 ÿTEBY . ÿ 0 ÿTEBY . ÿ 0 ÿTEBY . ÿ RYDAUNBON VE EBET US MUFBB T ; ÿ ÿ 0 ÿTEBY . ÿ ERFFBUY ARIN BRYRAPOEM T ; ÿ ÿ ÿ : UFBB TN äý%YTE ÿ0 ÿ ÿ;ERROR RETURN CODE OVRFB: ÿ.RAD50 ÿ/PAL/ ÿ ÿ;FILENAME AND EXTENSION ÿ.RAD50 ÿ/11R/ ÿ ÿ;IN RADIX 50 ÿ.RAD50 ÿ/OVR/ ÿ ÿ;NOTATION USERID: ÿ.WORD ÿ0 ÿ ÿ;USER ID CODE ÿ.BYTE ÿ233 ÿ ÿ;PROTECT CODE ÿ.BYTE ÿ0 ; ;OVERLAY DEVICE INPUT TRAN BLOCK ; OVRTBI: ÿ.WORD ÿ0 ÿ ÿ;DEVICE BLOCK NUMBER ÿ.WORD ÿBEGOVR ÿ ÿ;MEMORY START ADDRESS ÿ.WORD ÿOVRWRD ÿ ÿ;WORD COUNT OVRIER: ÿ.WORD ÿ4 ÿ ÿ;FUNCTION (READ) ÿ.WORD ÿ0 ÿ ÿ;NUMBER OF WORDS NOT TRAN'D VE.Eÿ ; ÿ0E YT.B ÿ ÿ0E YT.B ÿT:TCIP C0 ÿRDWOÿ. / INÿ/0 D5RAÿ. K OCBLE IL;F ÿD/ÿ/0 D5RAÿ. T PUIND ANMMCOÿ;/ OM/C ÿ50AD.R ÿB:IF CD EA ROR FENOPÿ;4 ÿRDWOÿ. 0 ÿRDWOÿ. ; ÿ0E YT.B ÿ ÿ0E YT.B ÿT:TCLP S0 ÿRDWOÿ. / YM/S ÿ50AD.R ÿ M/NAÿ/0 D5RAÿ. K OCBLE IL FUTTPOUL TBM SYÿ;/ IL/F ÿ50AD.R ÿB:LF SE ITWRR FON PE;O ÿÿ2D OR.W ÿ ÿ0D OR.W ÿ ;0 ÿTEBYÿ. 0 ÿTEBYÿ.: CTPTLO ÿ0 ÿRDWOÿ. / ST/L ÿ50AD.R ÿ M/NAÿ/0 D5RAÿ. K OCBLE IL FUTTPOUG INSTLIÿ;/ IL/F ÿ50AD.R ÿB:OF LE ITWRR FON PE;O ÿÿ2D OR.W ÿ ÿ0àý) ;SUBROUTINE TO DIVIDE THE TOP WORD OF ;THE STACK BY THE NEXT WORD. EXITS ;WITH THE QUOTIENT ON TOP OF THE ;STACK. THE QUOTIENT IS INCREMENTED BY ;ONE IF THERE IS A REMAINDER. ; ÿCALLING SEQUENCE: ; ÿ ÿMOV ÿDIVISOR,-(R6) ; ÿ ÿMOV ÿDIVIDEND,-(R6) ; ÿ ÿJSR ÿR7,DIVIDE ; ÿ ÿMOV ÿ(R6)+,QUOTIENT ;R0 IS DESTROYED DIVIDE: ÿMOV ÿ#1,R0 ÿ ÿ;QUOTIENT AT LEAST 1 DIVID1: ÿSUB ÿ4(R6),2(R6) ÿ;SUBTRACT DIVISOR FROM DIVIDEND ÿBLE ÿDIVID2 ÿÿ ÿ;DONE? ÿINC ÿR0 ÿ ÿ;NO. ÿBR ÿDIVID1 DIVID2: ÿMD OR.W ÿ ;0 ÿTEBYÿ. 0 ÿTEBYÿ.: CTPTBO ÿ0D OR.W ÿ N/BIÿ/0 D5RAÿ. / AM/N ÿ50AD.R ÿ CKLO BLEFIT OUN BIÿ;/ IL/F ÿ50AD.R ÿB:OF BE ITWRR FON PE;O ÿÿ2D OR.W ÿ ÿ0D OR.W ÿ ;0 ÿTEBYÿ. 0 ÿTEBYÿ.: O2PRSI ÿ0D OR.W ÿ L/PAÿ/0 D5RAÿ. / AM/N ÿ50AD.R ÿ L/FIÿ/0 D5RAÿ.: B2IF SD EA ROR FENOP; ÿÿ4D OR.W ÿ ÿ0D OR.W ÿ ;0 ÿTEBYÿ. 0 ÿTEBYÿ.: O1PRSI ÿ0D OR.W ÿ L/PAÿ/0 D5RAÿ. / AM/N ÿ50AD.R ÿ CKLO BLEFIN IRC;S ÿL/FIÿ/0 D5RAÿ.: B1IF SD EA ROR FENOPÿ;4 ÿRDWOÿ. 0 ÿRDWOÿ. S CKLO BLEFIÿ;N VE.E ÿ ;; Üý-OV ÿR0,4(R6) ÿ;QUOTIENT ÿMOV ÿ(R6)+,@R6 ÿ;R7 ÿRTS ÿR7 ; ;THE FOLLOWING TABLE IN THE RESIDENT ;ASSEMBLER CONTAINS A ONE WORD ENTRY ;FOR EACH OF THE N OVERLAYS. THE ;1ST WORD OF THE TABLE CONTAINS N*2. ;AS NEW OVERLAYS ARE CREATED, ENTRIES ;MUST BE ADDED TO THE END OF THE TABLE. ;WHEN THE ASSEMBLER GETS CONTROL AT ;"STARTA", IT WILL PLACE THE STARTING ;PHYSICAL BLOCK NUMBER FOR EACH OVERLAY ;IN THE RESPECTIVE ENÿ0D OR.W ÿE:ORST TR TOCADIING INYP TERSTGIREÿ;0 ÿRDWOÿ.: YPGTRE RDWOE LUVAS OT DOFR DD;A ÿÿ0D OR.W ÿC:RPSE U0 ÿRDWOÿ.: SSPAST PCN IOCTSEE UTOLBS;A ÿÿ0D OR.W ÿC:SPAB P//L ÿ50AD.R ÿ ÿ6D OR.W ÿ D/SLÿ/0 D5RAÿ. P L =LTAUEF;D ÿÿ0D OR.W ÿB:LL SK OCBLK IN LNGTIIS LBL TYM;S ÿÿ0D OR.W ÿ ;; N.AI.Mÿ;ÿ ÿ T ULFADER OLEIT.TM RO;F ÿÿ0D OR.W ÿB:LEIT TE ULOD MCTJEOBF OLEIT;T ÿÿ0D OR.W ÿA:LEIT TN IOCTRUSTON CERMBNUL MACIDEÿ;0 ÿRDWOÿ.: 10SEBA ÿ0D OR.W ÿS:ASOP BN IOCTRUSTON CERMBNUL TAOCÿ;0 ÿRDWOÿ.: 08SEBAØý1TRY. ;THE SIGN BIT (BIT 15) OF EACH ENTRY WILL ;INDICATE WHETHER OR NOT THE ASSOCIATED ;OVERLAY IS IN CORE: ; ÿ1=RESIDENT ; ÿ0=NOT RESIDENT ; RUNTAB: ÿ.WORD ÿRUNEND-RUNTAB ÿ;N*2 ÿ.WORD ÿ0 ÿ ÿ;OVERLAY #1 ÿ.WORD ÿ0 ÿ ÿ;OVERLAY #2 ÿ.WORD ÿ0 ÿ ÿ;OVERLAY #3 ÿ.WORD ÿ0 ÿ ÿ;OVERLAY #4 RUNEND: ÿ.WORD ÿ0 ÿ ÿ;OVERLAY #5 ; ;SUBROUTINE TO TRANSFER A REQUESTED ; OVERLAY FROM DISK TO THE OVERLAY AREA. ;CALLING SEQUENCE: ; ÿ ÿTRAP ÿCONTRL ÿ ; ÿ ÿ.WORD ÿN ÿ ÿ;WHERE N IS ; ÿ ÿ ÿ ÿ ÿ;THE OVERLA P//P ÿ50AD.R ÿ ÿ6D OR.W ÿ D/BOÿ/0 D5RAÿ. P HS= T ULFADEÿ;0 ÿRDWOÿ.: LBBO CKLO BNKLIT PUUT ORYNABIÿ;0 ÿRDWOÿ. ; ;) ALCT(OR TEUNCOE AG PVETILAMUCUÿ;0 ÿRDWOÿ.: NTGCPA S)NELI. 52 (GEPAE ONÿ;ÿ ÿ O ULOD M),ALCT(OR TEUNCOE IN;L ÿÿ0 ÿRDWOÿ.: NGGIPA UEAL VVETITATIANQUS M'TE;I ÿÿ0D OR.WY:ITNTUA Q0 ÿRDWOÿ.: SSPALO ORATULUMCC AONSIESPREXÿ;0 ÿRDWOÿ.: LTSURE P//L ÿ50AD.R ÿ ÿ6D OR.W ÿ D/LOÿ/0 D5RAÿ. P L =LTAUEF;D ÿÿ0D OR.W ÿB:OL LK OCBLK IN LUTTPOUG INSTLIÿ;0 ÿRDWOÿ. ; ;. ESAP TOFR BEUM;N ÿÔý5Y NUMBER ; ;IF THE REQUESTED OVERLAY IS ALREADY RESIDENT, ;CONTROL IS RETURNED IMMEDIATELY TO THE CALLER. ; ;IF THE REQUESTED OVERLAY IS NOT RESIDENT: ; ÿ1. IT IS TRAN'D IN (.TRAN, .WAIT) ; ÿ2. A CHECK IS MADE FOR ERRORS ; ÿ DURING TRANSFER ; ÿ3. RUNTAB IS UPDATED TO REFLECT ; ÿ WHICH OVERLAY IS NOW RESIDENT ; ÿ4. RETURN TO CALLER ; ;CONTRL: SUBR46: ÿTRAP ÿSAVREG ÿ ÿ;SAVE REGISTERS 1 THRU 5 ÿMOV ÿ@12(R6),R1 ÿÿ;OVERLAY NUMBER TO R1 ÿASL ÿR1 ÿ ÿ;ADJUST TO WORD OFFSET ÿMOV ÿ#RUNÿ0D OR.W ÿ2:APIT ST SEA AT DUTNP Iÿ;0 ÿRDWOÿ.: FBSI NTREUR CTOS ERNTOI Pÿ;0 ÿRDWOÿ.: LBSI F//D ÿ50AD.R ÿ ÿ4D OR.W ÿ 2/SIÿ/0 D5RAÿ. K OCBLK IN Lÿ;0 ÿRDWOÿ.: B2IL ST PUINM TEYS SNDCOSE; ÿÿ0D OR.W ÿ ;; CKTA SVEBO ASSREDD AST;1 ÿÿ0D OR.W ÿT:BOTK ST USF OOP;T ÿÿ0D OR.W ÿP:TOSR UE BLTAT ECCS .OFP TOÿ;0 ÿRDWOÿ.: OPNTCO E.ONE IL FESAP TOFR BEUM;N ÿÿ0D OR.W ÿ1:APIT SE IL FERETAMAR PESATICND I-0ON Nÿ;0 ÿRDWOÿ.: SSPAPA LEFIT ENRRCUS PETAF OERMBNUÿ;0 ÿRDWOÿ.: PETASI F//D ÿ50AD.R ÿ ÿ7D OR.W ÿ 1/Ðý9TAB,R2 ÿ;BASE OF TABLE ÿADD ÿR2,R1 ÿ ÿ;ADDRESS OF REQUESTED ENTRY ÿMOV ÿ@R1,OVRTBI ÿ;SET UP TRAN BLOCK ÿBLT ÿCONTR1 ÿ ÿ;OVERLAY ALREADY IN ÿMOV ÿ#OVRTBI,-(R6) ÿ;.TRAN IN ÿMOV ÿ#OVRLB,-(R6) ÿ;THE OVERLAY ÿEMT ÿ10 ;UPDATE RUNTAB ÿMOV ÿ(R2)+,R3 ÿ;N*2 CONTR3: ÿSUB ÿ#2,R3 ÿ ÿBLT ÿCONTR4 ÿ ÿ;MORE ENTRIES? ÿBIC ÿ#100000,(R2)+ ÿ;YES. CLEAR IN FLAG ÿBR ÿCONTR3 CONTR4: ÿBIS ÿ#100000,@R1 ÿ;SET NEW IN FLAG ÿTRAP ÿSETREG ÿ ÿ;RESTORE REGISTERS ÿMOV ÿ#OVRLB,-(R6) ÿ;WAIT FOR ÿEMT ÿWTCMD ÿ ÿ;CSIÿ/0 D5RAÿ. 0 ÿRDWOÿ.: B1IL SK OCBLK IN LUTNP IEMSTSYÿ;0 ÿRDWOÿ. ; ;/ KBÿ/0 D5RAÿ. 1 ÿRDWOÿ. ÿ D/COÿ/0 D5RAÿ. K OCBLK IN;L ÿÿ0D OR.W ÿB:OL CT PUUT ONDMAOM;C ÿÿ0D OR.W ÿ ;; MENAL CASIHY;P ÿ ÿ ÿ ÿ ÿB//K ÿ50AD.R ÿ EDFICIPE SCEVIDE/ # ITUNÿ;ÿ ÿ ÿ ÿ 1 ÿRDWOÿ. E AM NALICOGÿL; ÿ ÿ ÿ ÿ ÿD/CIÿ/0 D5RAÿ. ) ITIN .ON (ERNTOI PDBÿDÿ ÿ K OCBLK IN;L ÿÿ0D OR.W ÿB:IL CR FEUF BNO, RNTURER ROER ÿ ÿ ÿUTNP INDMAOM;C ÿÿ0D OR.W ÿ ENEVÿ. ; KSOCBLK INÿL; ;; S.LEFIT PUIN2 S TECADIIN0 N NO; ÿ ÿ ÿÿ0E YTÌý=OMPLETION ;CHECK FOR ERROR ON TRANSFER ÿBIT ÿÿ#140000,OVRIER ÿBEQ ÿCONTR2 ;ERROR ON TRANSFER ÿMOV ÿOVRIER,-(R6) ÿ;PUSH STATUS BYTE ÿBIC ÿ#377,@R6 ÿ;INFO INTO LOW ÿSWAB ÿ@R6 ÿ ÿ;INFO BYTE AND ÿMOV ÿ#ERR8,-(R6) ÿ;CLEAR THE REST. ÿJMP ÿERROUT CONTR1: ÿTRAP ÿSETREG ÿ ÿ;RESTORE REGS. 1 THRU 5 CONTR2: ÿADD ÿ#2,@R6 ÿ ÿ;INCREMENT PAST ARGUMENT ÿRTS ÿR7 ÿ ÿ;RETURN TO CALLER ÿ.ENDC ERRTAB: ÿ ÿ ; ASSEMBLY ERROR TABLE ÿ ÿ ÿ.B ÿT:CNSI 0 ÿTEBY . ÿR:ROER R:ERAX M0 ÿ E YT.B R:ROER UD CEENEREF ROLMBSYD NEFIDEUN; ÿ ÿ U ' ÿTEBY . ÿ 0 ÿTEBY .: ORRRTE ORRR EONTICAUNTR; ÿ ÿ T ' ÿTEBY . ÿ 0 ÿTEBY .: ORRRNE ORRR EERMBNU; ÿ ÿ N ' ÿTEBY . ÿ 0 ÿTEBY .: ORRRIE ORRR EERCTRAHA CALEGLL I ; ÿ ÿ'I ÿ E YT.Bÿ 0 ÿ E YT.B R:ROER BR ROERG INNDOU B ; ÿ ÿ'B ÿ E YT.Bÿ 0 ÿ E YT.B R:ROER ML BELAD NEFIDEY PLTIUL M ; ÿ ÿ'M ÿ E YT.Bÿ 0 ÿ E YT.B R:ROER DD CEENEREF RONTINIFIÈýÄý ÿ ; SINGLE WORD ENTRIES : ÿ ÿ ÿ ÿÿ ; ASCII CHARACTER (LOW BYTE) ÿ ÿ ÿ ÿ ; ERROR INDICATOR (HIGH BYTE) ÿ .BYTE ÿ 'L ÿ ÿ ; INPUT LINE BUFFER OVERFLOW LERROR: .BYTE ÿ 0 ÿ .BYTE ÿ 'P ÿ ÿ ; PHASE ERROR PERROR: .BYTE ÿ 0 ÿ .BYTE ÿ 'Q ÿ ÿ ; QUESTIONABLE SYNTAX QERROR: .BYTE ÿ 0 ÿ .BYTE ÿ 'A ÿ ÿ ; ADDRESSING ERROR AERROR: .BYTE ÿ 0 ÿ .BYTE ÿ 'R ÿ ÿ ; REGISTER ERROR RERROR: .BYTE ÿ 0 ÿ .BYTE ÿ 'D ÿ ÿ ; DOUBLE DE