; TR.MAC PSEUDO DEVICE DRIVER VERSION OF TRACE ; VERSION V01-01 JULY 15, 1975 ; WRITTEN BY MICHAEL N. LEVINE ; CODE 5114 ; NAVAL WEAPONS CENTER ; CHINA LAKE,CA 93555 .TITLE TRACE .MCALL ..V2..,.REGDEF ..V2.. .REGDEF AC0=%0 .WORD 14,TRACE2-.,0,0,0 ; FOR OUTPUT TO LINE PRINTER-MAKE NEXT LINE COMMENT .MCALL .PRINT,.TTYOUT ; THEN MAKE THE CODE IN COMMENTS ACTUAL CODE ; .MACRO .TTYOUT CHR ; .IIF NB MOV CHR,R0 ; JSR PC,TTOUT ; .ENDM ; .MACRO .PRINT ADDR ; .IIF NB MOV ADDR,R0 ; JSR PC,PRTOUT ; .ENDM ; LPS=177514 ; LPB=177516 ;TTOUT: BIC #100,@#LPS ;LPOUT: BIT #200,@#LPS ; BEQ LPOUT ; MOVB R0,@#LPB ; RTS PC ;PRTOUT: MOV R1,-(SP) ; MOV R0,R1 ;PRTLB: MOVB (R1)+,R0 ; BEQ OUTPRT ; CMPB #200,R0 ; BEQ IMOUT ; JSR PC,LPOUT ; BR PRTLB ;OUTPRT: MOV #15,R0 ; JSR PC,LPOUT ; MOV #12,R0 ; JSR PC,LPOUT ;IMOUT: MOV (SP)+,R1 ; RTS PC ; WHEN USEING THE LINE PRINTER OUTPUT FORM,DO NOT ; ATTEMPT TO USE LP FROM THE TRACED PROGRAM AS TRACE ; DOES ITS OWN DRIVEING OF THE LINE PRINTER AND DISABLES ; IT TO INTERUPS. ; TR IS SET UP BY GIVEING A .LOAD TR TO THE MONITOR ; THE ACTUAL CODE TO BE TRACEED IS THEN BRACKETED BY ; BPT INSTRUCTIONS----- ; MAIN PROGRAM CODE NOT INTERESTED IN ; BPT ; MAIN PROGRAM CODE TO BE TRACED ; BPT ; CODE NOT INTERESTED IN ; ----THE FIRST BPT STARTS THE TRACE AND THE SECOND STOPS ; IT---YOU CAN PUT IN AS MANY BPT PAIRS AS YOU WANT SECTIONS ; OF CODE TO TRACE(IF YOU USE AN ODD NUMBER- TRACE WILL ; CONTINUE TRACEING FROM THE LAST BPT UNTILL THE MAIN PROGRAM ; .EXIT 'S TO THE MONITOR. .MACRO APRINT LABL Z'LABL=LABL-TRCTRP MOV #Z'LABL,R0 ADD @#14,R0 .PRINT .ENDM .MACRO OFFSET A1,A2,A3,A4,A5,A6,A7,A8,A9,A10 .IIF NB .WORD A1-TRCTRP .IIF NB .WORD A2-TRCTRP .IIF NB .WORD A3-TRCTRP .IIF NB .WORD A4-TRCTRP .IIF NB .WORD A5-TRCTRP .IIF NB .WORD A6-TRCTRP .IIF NB .WORD A7-TRCTRP .IIF NB .WORD A8-TRCTRP .IIF NB .WORD A9-TRCTRP .IIF NB .WORD A10-TRCTRP .ENDM ZTRTP=TRCTRP-TRACE2 TRACE2: ADD #ZTRTP,@#14 CLR @#16 ;SET TRACE TRAP PRIORITY TO 0 SYNCH: MOV (SP),ARG ;LOAD ADDR OF 1ST INST TO BE TRACED BIS #20,2(SP) ;SET TRACE TRAP BIT TYPPDP: JMP (PC)+ ;IS THIS AN 11/45 OR 11/20,11/05 BR YES45 ;EXECUTES THIS INST. IF 45 MOV #2,RETURN ;RESET RTT TO RTI FOR 11/20,11/05 YES45: MOV #407,TYPPDP ;ONLY NEED TO DO THIS ONCE JMP RETURN ;THE ABOVE TEST STOLEN FROM ODT PARA: .BLKW 6 ARG: .WORD 0 RENTR: .WORD 0 TRCTRP: BIT #20,2(SP) ;ARE WE OUT OF SYNCH BEQ SYNCH ;RESET IF WE ARE MOV SP,TMPREG ;STORE REGISTERS MOV TMPREG,-(SP) ADD #4,(SP) ;GET VALUE OF SP BEFORE TRAP MOV R5,-(SP) MOV R4,-(SP) MOV R3,-(SP) MOV R2,-(SP) MOV R1,-(SP) MOV R0,-(SP) ; AT THIS POINT THE STACK HAS IN IT ; PSW SP+20 ; PC SP+16 ; SP (CALLING RTN) SP+14 ; R5 SP+12 ; R4 SP+10 ; R3 SP+6 ; R2 SP+4 ; R1 SP+2 ; R0 SP MOV SP,REG0 ;STORE SPFOR USE ELSEWARE USE SO I DONT HAVE ; TO WORRY ABOUT WHERE SP ACTUALLY IS CLR NOPRT CLR BYTEIN CLR FLTINS CLR FLSRDS CLR DBLREG NXTINS: .TTYOUT #15 ; .TTYOUT #12 ; START NEW LINE ZARG=ARG-TRCTRP MOV #ZARG,A1 ADD @#14,A1 JSR R5,OUTVAR ;OUTPUT LOC OF INST JUST EXECUTED AND ;TRAPED FROM BR .+4 A1: .WORD 0 .TTYOUT #40 ;INSERT BLANK FOR SPACER CLR R1 ;CLEAR CTR GET READEY TO GET INST TYP MOV @ARG,R2 ;GET INST INTO R2 ZBITS=BITS-TRCTRP ZINMSK=INMASK-TRCTRP MOV @#14,R4 MOV R4,R5 ADD #ZBITS,R4 ADD #ZINMSK,R5 GETINS: MOV R2,R3 ;USE COPY OF INST ONLY BIC (R4)+,R3 ;GET RID OF ANY ARGUMENT BITS CMP (R5)+,R3 ;COMPARE R3 WITH INSTRUCTION MASK BEQ GOTINS ;FOUND IT ADD #2,R1 ;TRY NEXT INST BR GETINS GOTINS: MOV @#14,R4 ;GET ADDR OF EVAL RTN ZTPRTN=TYPRTN-TRCTRP ADD #ZTPRTN,R4 ADD R1,R4 MOV (R4),R3 ADD @#14,R3 MOV R1,R4 ASL R4 ;MUST MULT R1 BY 3,6CHERS PER NEM TABLE ENTRY ADD R1,R4 ZNEM=NEM-TRCTRP ADD #ZNEM,R4 ADD @#14,R4 MOV #6,R1 NEMOUT: MOVB (R4)+,R0 .TTYOUT DEC R1 BNE NEMOUT JMP (R3) ;GO TO EVAL ROUTINE BPT: SUB #ZTRTP,@#14 ;RESET TRACE TRAP VECTOR .TTYOUT #14 BIC #20,20(SP) ;CLEAR TRACE TRAP IN PSW EXIT: CONTRC: MOV (SP)+,R0 ;RESET REGISTERS MOV (SP)+,R1 MOV (SP)+,R2 MOV (SP)+,R3 MOV (SP)+,R4 MOV (SP)+,R5 CLR (SP)+ ;SKIP FAKED SP REGISTER ENTRY MOV (SP),ARG ;UPDATE ARG TO NEXT INST TO BE EXECUTED RETURN: RTT ;BACK TO MAIN ROUTINE BYTEIN: .WORD 0 NOPRT: .WORD 0 REG0: .WORD 0 TMPREG: .WORD 0 FLTINS: .WORD 0 FLSRDS: .WORD 0 DBLREG: .WORD 0 REGNO: MOV #60,R0 ADD R1,R0 .TTYOUT RTS PC ; SURVACE ROUTINE OUTVAR OUTOUTS A WORD IN MEMORY AS ; A SIX DIGET OCTAL NUMBER OUTVAR: MOV @2(R5),R1 ;GET NO TO BE CONVERTED MOV #5,R2 ;SET UP CTR MOV R4,-(SP) ZARRAY=ARRAY-TRCTRP MOV @#14,R4 ADD #ZARRAY,R4 ADD #6,R4 OUTLOP: MOV R1,R3 ;MOVE NO TO BE DECODED TO R3 BIC #177770,R3 ;REMOVE ALL BUT LOW ORDER OCTAL NO ADD #60,R3 ;CONVERT TO ASCII MOVB R3,-(R4) ;STORE-LOW TO HIGH ORDER ASR R1 ASR R1 ASR R1 ;SHIFT DOWN NEXT OCTAL DIGET DEC R2 ;DEC CTR BNE OUTLOP MOV R1,R3 ;GET HIGH ORDER BIT BIC #177776,R3 ADD #60,R3 ;HIGH ORDER BIT MOVB R3,-(R4) MOV (SP)+,R4 APRINT ARRAY RTS R5 ;DONE ; SERVICE ROUTINE TO GET THE PSW OUT ARRAY: .WORD 0,0,0 .BYTE 200 .EVEN PSWMSG: .BYTE 15,12 .ASCII / PSW=/ .BYTE 200 .EVEN TYP1: GETPSW: APRINT PSWMSG MOV #10,R1 JSR PC,PRTREG TYP14: JMP EXIT FLTSTA: APRINT FLST STFPS TMPREG JSR PC,OUTREG RTS PC FLST: .BYTE 12,15 .ASCII / FPUSW=/ .BYTE 200 .EVEN PRTREG: ASL R1 ADD REG0,R1 MOV (R1),TMPREG OUTREG:ZTPRG=TMPREG-TRCTRP MOV @#14,A2 ADD #ZTPRG,A2 JSR R5,OUTVAR BR .+4 A2: .WORD 0 RTS PC ; TYPE 2 OP SS OR OP DD INST TYP2B: INC BYTEIN TYP2: MOV R2,R0 BIC #177700,R0 JSR PC,DEST JMP GETPSW ; THPE 3F FIS INSTR TYP3F: INC FLTINS ; TYPE 3 RTS PC TYP3: .TTYOUT #122 ; TYPE 4 SPL N 3 BITS TYP4: MOV R2,R0 BIC #177770,R0 ADD #60,R0 .TTYOUT TST FLTINS BEQ NOT3F MOV R0,R1 SUB #60,R1 APRINT M01 JSR PC,PRTREG APRINT M1A MOV TMPREG,-(SP) MOV @TMPREG,TMPREG JSR PC,OUTREG .TTYOUT #40 MOV (SP)+,TMPREG ADD #2,TMPREG MOV @TMPREG,TMPREG JSR PC,OUTREG .TTYOUT #135 NOT3F: JMP GETPSW ; TYPE 5 SET/CLEAR CC TYP5: BIT #1,R2 BEQ TP5C .TTYOUT #103 TP5C: BIT #2,R2 BEQ TP5V .TTYOUT #126 TP5V: BIT #4,R2 BEQ TP5Z .TTYOUT #132 TP5Z: BIT #10,R2 BEQ TP5N .TTYOUT #116 TP5N: JMP GETPSW ; TYPE 6 BRANCHES-8 BIT OFFSETS TYP6: MOVB R2,R3 MOV ARG,R4 ASL R3 ADD #2,R3 ADD R3,R4 MOV R4,TMPREG APRINT T6 JSR PC,OUTREG JMP GETPSW T6: .ASCII / TO LOC / .BYTE 200 .EVEN ; TYPE 7J JSR R,DST TYP7J: .TTYOUT #122 MOV R2,R0 ASR R0 ASR R0 ASR R0 ASR R0 ASR R0 ASR R0 BIC #177770,R0 ADD #60,R0 .TTYOUT MOV R2,R0 BIC #177700,R0 JSR PC,DEST JMP GETPSW ; TYPE 7 EIS INST OP R,SS OR OP R,DD TYP7D: INC DBLREG TYP7: .TTYOUT #122 MOV R2,R0 ASR R0 ASR R0 ASR R0 ASR R0 ASR R0 ASR R0 BIC #177770,R0 MOV R0,-(SP) ADD #60,R0 .TTYOUT APRINT M71 MOV (SP),R1 JSR PC,PRTREG TST DBLREG BEQ SNGREG MOV (SP),R1 BIS #1,R1 APRINT M72 JSR PC,PRTREG SNGREG: CLR (SP)+ .TTYOUT #135 MOV @ARG,R0 BIC #177700,R0 JSR PC,DEST JMP GETPSW M71: .ASCII /[R=/ .BYTE 200 .EVEN M72: .ASCII /,RV1=/ .BYTE 200 .EVEN ; TYPE 8 MARK N TYP8: BIC #177700,R2 MOV R2,TMPREG JSR PC,OUTREG JMP GETPSW ; TYPE 9 OP SS DD TYP9B: INC BYTEIN TYP9: MOV R2,R0 BIC #177700,R0 MOV R0,-(SP) BIC #70,R0 MOV R0,-(SP) MOV R2,R0 ASR R0 ASR R0 ASR R0 ASR R0 ASR R0 ASR R0 BIC #177700,R0 MOV R0,-(SP) BIC #70,R0 CMP R0,2(SP) BEQ SAMERG PCOK: MOV (SP)+,R0 CLR (SP)+ JSR PC,DEST T9D: MOV (SP)+,R0 JSR PC,DEST JMP GETPSW SAMERG: MOV 4(SP),R0 BIC #7,R0 TST R0 BNE NOTM0 INC NOPRT MOV (SP)+,R0 CLR (SP)+ JSR PC,DEST CLR NOPRT JMP T9D NOTM0: CMP #20,R0 BEQ M2OK CMP #30,R0 BEQ M2OK JMP NOTM23 M2OK: CMP #7,2(SP) BEQ PCOK MOV 2(SP),R0 ASL R0 ADD REG0,R0 DEC (R0) TST BYTEIN BNE BT9 DEC (R0) BT9: MOV (SP)+,R0 JSR PC,DEST MOV (SP)+,R0 ASL R0 ADD REG0,R0 INC (R0) TST BYTEIN BNE BT9A INC (R0) BT9A: JMP T9D NOTM23: CMP #40,R0 BEQ M4OK CMP #50,R0 BEQ M4OK JMP PCOK M4OK: MOV 2(SP),R0 ASL R0 ADD REG0,R0 INC (R0) TST BYTEIN BNE BT9B INC (R0) BT9B: MOV (SP)+,R0 JSR PC,DEST MOV (SP)+,R0 ASL R0 ADD REG0,R0 DEC (R0) TST BYTEIN BNE BT9C DEC (R0) BT9C: JMP T9D ;TYP10 SOB R,NN TYP10: APRINT T7 .TTYOUT #122 MOV R2,R1 ASR R1 ASR R1 ASR R1 ASR R1 ASR R1 ASR R1 BIC #177770,R1 JSR PC,REGNO .TTYOUT #133 .TTYOUT #122 .TTYOUT #75 JSR PC,PRTREG .TTYOUT #135 APRINT T6 MOV @ARG,R0 BIC #177700,R0 DEC R0 ASL R0 MOV ARG,TMPREG SUB R0,TMPREG JSR PC,OUTREG JMP GETPSW T7: .BYTE 15,12 .ASCII / / .BYTE 200 .EVEN ; TYPE 11 TRAP EMT TYP11: BIC #177400,R2 MOV R2,TMPREG JSR PC,OUTREG TYP1T: ADD #2,ARG MOV REG0,R1 CMP ARG,16(R1) BNE NI JMP EXIT NI: JMP NXTINS ; TYPE 12 FLOP FLDST OR FLOP FLSRC TYP12: INC FLSRDS MOV R2,R0 BIC #177700,R0 JSR PC,DEST JSR PC,FLTSTA JMP GETPSW ; TYPE 13 FLOP AC,FSS OR FLOP AC,SS ETC TYP13F: INC FLSRDS TYP13: APRINT M131 MOV R2,R0 ASR R0 ASR R0 ASR R0 ASR R0 ASR R0 ASR R0 BIC #177774,R0 MOV R0,R1 ADD #60,R0 .TTYOUT JSR PC,GETACC MOV @ARG,R0 BIC #177700,R0 JSR PC,DEST JSR PC,FLTSTA JMP GETPSW M131: .BYTE 15,12 .ASCII / AC/ .BYTE 200 .EVEN ; SRC,DEST ADDERS MODE EVAL RTN DEST: MOV R1,-(SP) MOV R2,-(SP) CLR SPINS MOV R0,R1 MOV R0,R2 ASR R2 ASR R2 ASR R2 BIC #177770,R1 BIC #177770,R2 ;R1=REG R2=MODE CMP #7,R1 ;IS IT A PC INST BEQ PCINS MOV R2,R3 ;E MODE IN R3 BR JMPDST PCINS: MOV #10,R3 ADD R2,R3 ;SET UP PC MODE IN R3 JMPDST: APRINT DSTM1 ASL R3 ;GET MODE RTN ADDR MOV R3,-(SP) ZMODES=MODES-TRCTRP ADD #ZMODES,R3 ADD @#14,R3 MOV (R3),R4 ADD @#14,R4 MOV (SP)+,R3 CMP #6,R1 BNE JMPEVL INC SPINS JMPEVL: JMP (R4) ;GO TO EVAL ROUTINE DSTOUT: MOV (SP)+,R2 MOV (SP)+,R1 RTS PC SPINS: .WORD 0 DSTM1: .BYTE 15,12 .ASCII / / .BYTE 200 .EVEN ;MODE DISPACH TABLE MODES: OFFSET MODE0,MODE1,MODE2,MODE3,MODE4,MODE5,MODE6,MODE7 OFFSET MODE0,MODE1,MODE8,MODE9,MODE4,MODE5,MODE10,MODE11 MODE0: TST FLSRDS BNE FLMD0 .TTYOUT #122 JSR PC,REGNO TST NOPRT BEQ M0P JMP DSTOUT M0P: APRINT M01 JSR PC,PRTREG .TTYOUT #135 JMP DSTOUT FLMD0: .TTYOUT #101 .TTYOUT #103 JSR PC,REGNO JSR PC,GETACC JMP DSTOUT M01: .ASCII /[R=/ .BYTE 200 .EVEN ; MODE 1 (RN) MODE1: .TTYOUT #50 .TTYOUT #122 JSR PC,REGNO TST NOPRT BEQ M1P .TTYOUT #51 JMP DSTOUT M1P: APRINT M1 JSR PC,PRTREG APRINT M1A MCMPL: TST BYTEIN BNE BYT1 MOV @TMPREG,TMPREG BR M1OUT BYT1: MOVB @TMPREG,TMPREG CLRB TMPREG+1 M1OUT: JSR PC,OUTREG MCLO: .TTYOUT #135 JMP DSTOUT M1: .ASCII /)[R=/ .BYTE 200 .EVEN M1A: .ASCII /,LOC=/ .BYTE 200 .EVEN ; MODE 2(RN)+ MODE2: APRINT M2 JSR PC,REGNO TST NOPRT BEQ M2P .TTYOUT #51 .TTYOUT #53 JMP DSTOUT M2P: APRINT M2A JSR PC,PRTREG TST SPINS BEQ M2O JMP MCLO M2O: APRINT M2B TST FLSRDS BEQ NTFLM2 STFPS R0 BIT #200,R0 BEQ FLFMM2 SUB #10,TMPREG .TTYOUT #70 BR M2CNT FLFMM2: SUB #4,TMPREG .TTYOUT #64 BR M2CNT NTFLM2: TST BYTEIN BEQ M2WRD SUB #1,TMPREG .TTYOUT #61 BR M2CNT M2WRD: SUB #2,TMPREG .TTYOUT #62 M2CNT: .TTYOUT #75 JMP MCMPL M2: .ASCII /(R/ .BYTE 200 .EVEN M2A: .ASCII /)+[R=/ .BYTE 200 .EVEN M2B: .ASCII /,LOC-/ .BYTE 200 .EVEN ; MODE 3 @(RN)+ MODE3: .TTYOUT #100 APRINT M2 JSR PC,REGNO TST NOPRT BEQ M3P .TTYOUT #51 .TTYOUT #53 JMP DSTOUT M3P: APRINT M2A JSR PC,PRTREG TST SPINS BEQ M3O JMP MCLO M3O: APRINT M2B TST FLSRDS BEQ NTFLM3 STFPS R0 BIT #200,R0 BEQ FLFMM3 SUB #10,TMPREG .TTYOUT #70 BR M3CNT FLFMM3: SUB #10,TMPREG .TTYOUT #64 BR M3CNT NTFLM3: SUB #2,TMPREG .TTYOUT #62 M3CNT: .TTYOUT #75 MOV @TMPREG,TMPREG JSR PC,OUTREG APRINT M1A JMP MCMPL ; MODE 4 -(RN) MODE4: APRINT M4 JSR PC,REGNO TST NOPRT BEQ M4P .TTYOUT #51 JMP DSTOUT M4P: APRINT M1 JSR PC,PRTREG M4O: APRINT M1A JMP MCMPL ; MODE 5 @-(RN) MODE5: .TTYOUT #100 APRINT M4 JSR PC,REGNO TST NOPRT BEQ M5P .TTYOUT #51 JMP DSTOUT M5P: APRINT M1 JSR PC,PRTREG M5O: APRINT M1A MOV @TMPREG,TMPREG JSR PC,OUTREG APRINT M1A JMP MCMPL M4: .ASCII /-(R/ .BYTE 200 .EVEN ; MODE 6 X(RN) MODE6: MOV R1,-(SP) ADD #2,ARG MOV @ARG,TMPREG JSR PC,OUTREG .TTYOUT #50 .TTYOUT #122 MOV (SP)+,R1 JSR PC,REGNO TST NOPRT BEQ M6P .TTYOUT #51 JMP DSTOUT M6P: APRINT M1 JSR PC,PRTREG ADD @ARG,TMPREG APRINT M1A JMP MCMPL ; MODE 7 @X(RN) MODE7: .TTYOUT #100 MOV R1,-(SP) ADD #2,ARG MOV @ARG,TMPREG JSR PC,OUTREG .TTYOUT #50 .TTYOUT #122 MOV (SP)+,R1 JSR PC,REGNO TST NOPRT BEQ M7P .TTYOUT #51 JMP DSTOUT M7P: APRINT M1 JSR PC,PRTREG ADD @ARG,TMPREG APRINT M1A MOV @TMPREG,TMPREG JSR PC,OUTREG APRINT M1A JMP MCMPL ; MODE 8 #N MODE8: .TTYOUT #43 ADD #2,ARG MOV @ARG,TMPREG JSR PC,OUTREG JMP DSTOUT ; MODE 9 @#A MODE9: .TTYOUT #100 .TTYOUT #43 ADD #2,ARG MOV @ARG,TMPREG JSR PC,OUTREG APRINT M91 JMP MCMPL M91: .ASCII /[LOC=/ .BYTE 200 .EVEN ; MODE 10 A MODE10: ADD #2,ARG MOV @ARG,TMPREG JSR PC,OUTREG APRINT M101 ADD #2,TMPREG ADD ARG,TMPREG JSR PC,OUTREG .TTYOUT #51 .TTYOUT #75 JMP MCMPL M101: .ASCII /[LOC(/ .BYTE 200 .EVEN ; MODE 11 @A MODE11: .TTYOUT #100 ADD #2,ARG MOV @ARG,TMPREG JSR PC,OUTREG APRINT M101 ADD #2,TMPREG ADD ARG,TMPREG JSR PC,OUTREG .TTYOUT #51 .TTYOUT #75 MOV @TMPREG,TMPREG JSR PC,OUTREG APRINT M1A JMP MCMPL GETACC: BIC #7,GTAC BIS R1,GTAC STD AC0,ACCT1 ZACCT2=ACCT2-TRCTRP MOV #ZACCT2,R0 ADD @#14,R0 CLR (R0)+ CLR (R0)+ CLR (R0)+ CLR (R0)+ GTAC: LDD AC0,AC0 STD AC0,ACCT2 LDD ACCT1,AC0 MOV #4,R4 MOV #ZACCT2,ACM ADD @#14,ACM APRINT ACM2 ACLB: JSR R5,OUTVAR BR .+4 ACM: .WORD 0 ADD #2,ACM .TTYOUT #40 DEC R4 BNE ACLB .TTYOUT #135 RTS PC ACCT1: .WORD 0,0,0,0 ACCT2: .WORD 0,0,0,0 ACM2: .ASCII /[AC=/ .BYTE 200 .EVEN ; THIS TABLE IS THE PRECOMPARE MASK TABLE USE TO ; MASK OUT THE ARGUMENT BITS OF AN INSTRUCTION BITS: .WORD 0,0,0,0,0,0,0 .WORD 77,7,7,0,17,17,77 .WORD 377,377,377,377,377,377,377 .WORD 777 .WORD 77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77 .WORD 7777,7777,7777,7777,7777,7777 .WORD 777,777,777,777,777 .WORD 7,7,7,7,777 .WORD 377,377,377,377,377,377,377,377,377,377 .WORD 77,77,77,77,77,77,77,77,77,77,77,77,77,77 .WORD 7777,7777,7777,7777,7777,7777 .WORD 0,0,0,0,0 .WORD 77,77,77,77,77,77,77 .WORD 377,377,377,377,377,377,377,377,377,377,377,377,377,377 .WORD 177777 ; THIS TABLE IS THE INSTRUCTION MASK WITH ALL ARGUMENT BIT ; SET TO ZERO INMASK: .WORD 0,1,2,3,4,5,6,100,200,230,240,240,260,300,400,1000 .WORD 1400,2000,2400,3000,3400,4000,5000,5100,5200,5300 .WORD 5400,5500,5600,5700,6000,6100,6200,6300,6400,6500 .WORD 6600,6700,10000,20000,30000,40000,50000,60000,70000 .WORD 71000,72000,73000,74000,75000,75010,75020,75030 .WORD 77000,100000 .WORD 100400,101000,101400,102000,102400,103000 .WORD 103400,104000,104400,105000,105100,105200 .WORD 105300,105400,105500,105600,105700,106000 .WORD 106100,106200,106300,106500,106600,110000 .WORD 120000,130000,140000,150000,160000,170000 .WORD 170001,170002,170011,170012,170100,170200 .WORD 170300,170400,170500,170600,170700,171000 .WORD 171400,172000,172400,173000,173400,174000 .WORD 174400,175000,175400,176000,176400,177000 .WORD 177400,0 ; DISPACH TABLE TO PROPER ROUTINE FOR REACH TYPE OF INST EVAL TYPRTN: OFFSET TYP1,TYP1,TYP1,BPT,TYP1T,TYP1,TYP1,TYP2,TYP3 OFFSET TYP4,TYP1,TYP5,TYP5,TYP2 OFFSET TYP6,TYP6,TYP6,TYP6,TYP6,TYP6,TYP6,TYP7J OFFSET TYP2,TYP2,TYP2,TYP2,TYP2,TYP2,TYP2,TYP2,TYP2,TYP2 OFFSET TYP2,TYP2,TYP8,TYP2,TYP2,TYP2 OFFSET TYP9,TYP9,TYP9,TYP9,TYP9,TYP9 OFFSET TYP7D,TYP7D,TYP7,TYP7D,TYP7 OFFSET TYP3F,TYP3F,TYP3F,TYP3F,TYP10 OFFSET TYP6,TYP6,TYP6,TYP6,TYP6,TYP6,TYP6,TYP6,TYP11,TYP11 OFFSET TYP2B,TYP2B,TYP2B,TYP2B,TYP2B OFFSET TYP2B,TYP2B,TYP2B,TYP2B,TYP2B OFFSET TYP2B,TYP2B,TYP2B,TYP2B,TYP9B OFFSET TYP9B,TYP9B,TYP9B,TYP9B,TYP9 OFFSET TYP1,TYP1,TYP1,TYP1,TYP1 OFFSET TYP12,TYP12,TYP12,TYP12,TYP12,TYP12,TYP12 OFFSET TYP13F,TYP13F,TYP13F,TYP13F,TYP13F,TYP13F,TYP13F,TYP13F OFFSET TYP13,TYP13,TYP13F,TYP13,TYP13,TYP13F,TYP14 ; TABLE OF NEMONICS FOR ECAH INSTRUCTION-FOR SUCH ; FLOATING POINT INST HAVEING MULTAPLE NEMONICS AND ; SET AND CLEAR CONDITION CODES I DID THE BEST SUBSTITUTION ; THAT WOULD STILL GET THE POINT ACROSS NEM: .ASCII /HALT WAIT RTI BPT IOT RESET RTT JMP / .ASCII /RTS SPL NOP CL SE SWAB BR BNE / .ASCII /BEQ BGE BLT BGT BLE JSR CLR COM / .ASCII /INC DEC NEG ADC SBC TST ROR ROL / .ASCII /ASR ASL MARK MFPI MTPI SXT MOV CMP / .ASCII /BIT BIC BIS ADD MUL DIV ASH ASHC XOR / .ASCII /FADD FSUB FMUL FDIV SOB BPL BMI BHI / .ASCII /BLOS BVC BVS BCC BCS EMT TRAP CLRB / .ASCII /COMP INCB DECB NEGB ADCB SBCB TSTB RORB / .ASCII /ROLB ASRB ASLB MFPD MTPD MOVB CMPB BITB / .ASCII /BICB BISB SUB CFCC SETF SETI SETD SETL / .ASCII ?LDFPS STFPS STST CLRF/DTSTF/DABSF/DNEGF/DMULF/D? .ASCII ?MODF/DADDF/DLDF/D SUBF/DCMPF/DSTF/D DIVF/DSTEXP ? .ASCII /STCXY STCXY LDEXP LDCXY LDCXY ??????/ .END