ASMB,L,C
*&FFPD3 
* 
* THIS MODULE TESTS FFP DOUBLE INTEGER FCTNS (12) AND 
* ALSO .BLE,.NGL,..FCM,..TCM. 
* THIS MODULE CONTAINS TSTDI, WHICH IS USED BY FFP AND SIS TESTS. 
* TSTDI PERFORMS THE TESTS FOR THE TABLE DRIVEN SUBTESTS....
* ALSO INCLUDED HERE ARE THE DRIVERS FOR MOST OF THE OPCODES. 
* ENTS ARE TO THESE AND TST14, EXTS ARE TO HFAUX,HFBAS. 
* 
* 
*CREATED  780820
* EDITED  781218  TO MAKE DEFS+0
* 
* LAST CODE CHANGE  781218 1225  CC 
* 
      NAM FFPD3     790121 2329  REV 1913  CC 
A     EQU 0 
B     EQU 1 
* 
* 
* 
* 
      SKP 
* 
      ENT TST14 
      ENT TSTDI,R.R,R.RM1,M.M0,M.M0D,R%M1,M%M1
      ENT M.RM1 
      ENT B.R,M.RM0 
      ENT RM.M0,R.RN1 
      ENT STDEF 
* 
      ENT DIELP,DIECP 
* 
      EXT STSTE,TINIT,MSGI,MSGD,WRANS 
      EXT CLANS,CLRST,CWCHK 
      EXT SKF1,GETPM
      EXT SKNCW 
* 
      EXT RST13,RST1O,ANS1O 
      EXT OND13,OND23,ANSW1,RSLT1,OPND1,OPND2 
      EXT INSTR,OPNDN,WDIN,WDOUT
      EXT OEILP,NOPND,NRSLT 
      EXT ODAD1,ODAD2 
      EXT INDCT 
      EXT WDIN2 
      EXT DISPB 
      EXT OVFB,EXTB,RTNB
* 
* 
* INSTRUCTIONS
* 
      MIC DAD,105014B,0 
      MIC DSB,105034B,0 
      MIC DMP,105054B,0 
      MIC DDI,105074B,0 
      MIC DSR,105114B,0 
      MIC DDR,105134B,0 
* 
      MIC DNG,105203B,0 
      MIC DCO,105204B,0 
      MIC BLE,105207B,0 
      MIC DIN,105210B,0 
      MIC DDE,105211B,0 
      MIC DIS,105212B,0 
      MIC DDS,105213B,0 
      MIC NGL,105214B,0 
* 
      MIC FCM,105232B,0 
      MIC TCM,105233B,0 
* 
* 
* 
* 
      SUP 
      SKP 
* 
* DOUBLE INTEGER INSTRUCTION TEST 
* 
TST14 EQU * 
*S
TSTF3 NOP 
      JSB TINIT     INIT. TEST
      JSB MSGI      "FFP1"
      DEF MSGF3 
      JSB STSTE     EXECUTE SUBTESTS
      OCT -1        ALL SUBTESTS VALID SHORT PASS 
      DEF STDAD,I 
      DEF STDSB,I 
      DEF STDMP,I 
      DEF STDDI,I 
      DEF STDSR,I 
      DEF STDDR,I 
      DEF STDIN,I 
      DEF STDDE,I 
      DEF STDIS,I 
      DEF STDDS,I 
      DEF STDNG,I 
      DEF STDCO,I 
* 
      DEF STBLE,I 
      DEF STNGL,I 
      DEF STFCM,I 
      DEF STTCM 
      JMP TSTF3,I   DONE
* 
* 
MSGF3 ASC 6,FFP3 TEST / 
*ETSTF3 
* 
* 
* .DAD TEST 
* 
*S
STDAD NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSDAD     MESSAGE 
      DAD           OPCODE
      DEF DADBF     OPN BUFFER
      DEF R.RM1+0   ADDR OF SUBR TO EXECUTE MACRO 
      JMP STDAD,I 
* 
MSDAD ASC 4, .DAD / 
DADBF OCT 2              EOTYP
      DEC -8             #OPNS
      OCT 1,77777,77776,1,77777,100000
      BYT 0,0 
      OCT 1,177700,77777,77,100000,177777 
      BYT 0,1 
      OCT 177777,1,1,177776,0,177777
      BYT 0,2 
      OCT 100000,0,100000,0,0,0 
      BYT 0,3 
      OCT 100000,177777,77776,1,177777,0
      BYT 0,0 
      OCT 177777,177777,0,177777,0,177776 
      BYT 0,2 
      OCT 100000,100000,0,100000,100001,0 
      BYT 0,0 
      OCT 177777,177777,177777,177777,177777,177776 
      BYT 0,2 
* 
*ESTDAD 
* 
* 
      SKP 
* 
* 
* .DSB TEST 
* 
*S
STDSB NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSDSB     MESSAGE 
      DSB           OPCODE
      DEF DSBBF     OPN BUFFER
      DEF R.RM1+0   ADDR OF SUBR TO EXECUTE MACRO 
      JMP STDSB,I 
* 
MSDSB ASC 4, .DSB / 
DSBBF OCT 2              EOTYP
      DEC -2             #OPNS
      OCT 0,177777,177777,177777,1,0
      BYT 0,2 
      OCT 177776,177777,77777,0,77777,177777
      BYT 0,1 
* 
*ESTDSB 
* 
* 
      SKP 
* 
* 
* .DMP TEST 
* 
*S
STDMP NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSDMP     MESSAGE 
      DMP           OPCODE
      DEF DMPBF     OPN BUFFER
      DEF R.RM1+0   ADDR OF SUBR TO EXECUTE MACRO 
      JMP STDMP,I 
* 
MSDMP ASC 4, .DMP / 
DMPBF OCT 2              EOTYP
      DEC -2             #OPNS
      OCT 0,77777,0,77777,37777,1 
      BYT 0,0 
      OCT 100000,0,177777,177777,77777,177777 
      BYT 0,1 
* 
*ESTDMP 
* 
* 
      SKP 
* 
* 
* .DDI TEST 
* 
*S
STDDI NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSDDI     MESSAGE 
      DDI           OPCODE
      DEF DDIBF     OPN BUFFER
      DEF R.RM1+0   ADDR OF SUBR TO EXECUTE MACRO 
      JMP STDDI,I 
* 
MSDDI ASC 4, .DDI / 
DDIBF OCT 2              EOTYP
      DEC -4             #OPNS
      OCT 77777,177777,1,177777,0,40000 
      BYT 0,0 
      OCT 0,0,0,1,0,0 
      BYT 0,0 
      OCT 0,1,0,0,77777,177777
      BYT 0,1 
      OCT 100000,0,177777,177777,77777,177777 
      BYT 0,1 
* 
*ESTDDI 
* 
* 
      SKP 
* 
* .DSBR TEST
* 
*S
STDSR NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSDSR     MESSAGE 
      DSR           OPCODE
      DEF DSRBF     OPN BUFFER
      DEF R.RM1+0   ADDR OF SUBR TO EXECUTE MACRO 
      JMP STDSR,I 
* 
MSDSR ASC 4, .DSBR/ 
DSRBF OCT 2              EOTYP
      DEC -2             #OPNS
      OCT 177777,177777,0,177777,1,0
      BYT 0,2 
      OCT 77777,0,177776,177777,77777,177777
      BYT 0,1 
* 
*ESTDSR 
* 
* 
      SKP 
* 
* 
* .DDIR TEST
* 
*S
STDDR NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSDDR     MESSAGE 
      DDR           OPCODE
      DEF DDRBF     OPN BUFFER
      DEF R.RM1+0   ADDR OF SUBR TO EXECUTE MACRO 
      JMP STDDR,I 
* 
MSDDR ASC 4, .DDIR/ 
DDRBF OCT 2              EOTYP
      DEC -4             #OPNS
      OCT 1,177777,77777,177777,0,40000 
      BYT 0,0 
      OCT 0,1,0,0,0,0 
      BYT 0,0 
      OCT 0,0,0,1,77777,177777
      BYT 0,1 
      OCT 177777,177777,100000,0,77777,177777 
      BYT 0,1 
* 
*ESTDDR 
* 
* 
      SKP 
* .DIN TEST 
* 
*S
STDIN NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSDIN     MESSAGE 
      DIN           OPCODE
      DEF DINBF     OPN BUFFER
      DEF R.R+0     ADDR OF SUBR TO EXECUTE MACRO 
      JMP STDIN,I 
* 
MSDIN ASC 4, .DIN / 
DINBF OCT 2              EOTYP
      DEC -4             #OPNS
      OCT 177777,77777,177777,100000
      BYT 0,0 
      OCT 100000,177777,100001,0
      BYT 0,0 
      OCT 77777,177777,100000,0 
      BYT 0,1 
      OCT 177777,177777,0,0 
      BYT 0,2 
* 
*ESTDIN 
* 
* 
      SKP 
* .DDE TEST 
* 
*S
STDDE NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSDDE     MESSAGE 
      DDE           OPCODE
      DEF DDEBF     OPN BUFFER
      DEF R.R+0     ADDR OF SUBR TO EXECUTE MACRO 
      JMP STDDE,I 
* 
MSDDE ASC 4, .DDE / 
DDEBF OCT 2              EOTYP
      DEC -4             #OPNS
      OCT 0,1,0,0 
      BYT 0,0 
      OCT 1,0,0,177777
      BYT 0,0 
      OCT 100000,0,77777,177777 
      BYT 0,1 
      OCT 0,0,177777,177777 
      BYT 0,2 
* 
*ESTDDE 
* 
* 
      SKP 
* 
* .DNG TEST 
* 
*S
STDNG NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSDNG     MESSAGE 
      DNG           OPCODE
      DEF DNGBF     OPN BUFFER
      DEF R.R+0     ADDR OF SUBR TO EXECUTE MACRO 
      JMP STDNG,I 
* 
MSDNG ASC 4, .DNG / 
DNGBF OCT 2              EOTYP
      DEC -4             #OPNS
      OCT 000000,100000,177777,100000 
      BYT 0,0 
      OCT 077777,000000,100001,0
      BYT 0,0 
      OCT 100000,000000,100000,0
      BYT 0,1 
      OCT 000000,000000,0,0 
      BYT 0,2 
* 
*ESTDNG 
* 
* 
      SKP 
* 
* .DIS TEST 
* 
*S
STDIS NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSDIS     MESSAGE 
      DIS           OPCODE
      DEF DISBF     OPN BUFFER
      DEF M.M0+0    ADDR OF SUBR TO EXECUTE MACRO 
      JMP STDIS,I 
* 
MSDIS ASC 4, .DIS / 
DISBF OCT 3              EOTYP- NOT AFFECTED
      DEC -3             #OPNS
      OCT 177777,177776,177777,177777 
      BYT 0,0 
      OCT 177776,177777,177777,0
      BYT 0,0 
      OCT 177777,177777,0,0 
      BYT 1,0 
* 
*ESTDIS 
* 
* 
      SKP 
* 
* .DDS TEST 
* 
*S
STDDS NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSDDS     MESSAGE 
      DDS           OPCODE
      DEF DDSBF     OPN BUFFER
      DEF M.M0+0    ADDR OF SUBR TO EXECUTE MACRO 
      JMP STDDS,I 
* 
MSDDS ASC 4, .DDS / 
DDSBF OCT 3              EOTYP
      DEC -4             #OPNS
      OCT 0,0,177777,177777 
      BYT 0,0 
      OCT 100000,100000,100000,77777
      BYT 0,0 
      OCT 177777,1,177777,0 
      BYT 0,0 
      OCT 0,1,0,0 
      BYT 1,0 
* 
*ESTDDS 
* 
* 
      SKP 
* 
* .DCO TEST 
* 
*S
STDCO NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSDCO     MESSAGE 
      DCO           OPCODE
      DEF DCOBF     OPN BUFFER
      DEF R.RM1+0   ADDR OF SUBR TO EXECUTE MACRO 
      JMP STDCO,I 
* 
MSDCO ASC 4, .DCO / 
DCOBF OCT 3              EOTYP
      DEC -9             #OPNS
      OCT 1,0,0,0,1,0 
      BYT 2,0 
      OCT 0,0,1,0,0,0 
      BYT 1,0 
      OCT 1,0,0,0,1,0 
      BYT 2,0 
      OCT 0,0,1,0,0,0 
      BYT 1,0 
      OCT 0,1,0,100000,0,1
      BYT 1,0 
      OCT 0,100000,0,1,0,100000 
      BYT 2,0 
      OCT 0,1,0,0,0,1 
      BYT 2,0 
      OCT 0,0,0,1,0,0 
      BYT 1,0 
      OCT 0,0,0,0,0,0 
      BYT 0,0 
* 
*ESTDCO 
* 
      SKP 
* 
* .BLE TEST 
* 
*S
STBLE NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSBLE     MESSAGE 
      BLE           OPCODE
      DEF BLEBF     OPN BUFFER
      DEF M%M1+0    ADDR OF SUBR TO EXECUTE MACRO 
      JMP STBLE,I 
* 
MSBLE ASC 4, .BLE / 
BLEBF OCT 2              EOTYP
      DEC -1             #OPNS
      OCT 77777,177776,77777,177400,0,376 
      BYT 0,0 
* 
*ESTBLE 
* 
* 
      SKP 
* 
* .NGL TEST 
* 
*S
STNGL NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSNGL     MESSAGE 
      NGL           OPCODE
      DEF NGLBF     OPN BUFFER
      DEF R%M1+0    ADDR OF SUBR TO EXECUTE MACRO 
      JMP STNGL,I 
* 
MSNGL ASC 4, .NGL / 
NGLBF OCT 2              EOTYP
      DEC -5             #OPNS
      OCT 40000,177600,0,0,40001,0
      BYT 0,0 
      OCT 77777,177600,0,0,40000,2
      BYT 0,0 
      OCT 100000,177600,0,0,100000,177400 
      BYT 0,0 
      OCT 137777,177600,0,100000,100000,377 
      BYT 0,0 
      OCT 77777,177600,0,376,77777,177776 
      BYT 0,1 
* 
*ESTNGL 
* 
* 
      SKP 
* ..FCM TEST
* 
*S
STFCM NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSFCM     MESSAGE 
      FCM           OPCODE
      DEF FCMBF     OPN BUFFER
      DEF R.R+0     ADDR OF SUBR TO EXECUTE MACRO 
      JMP STFCM,I 
* 
MSFCM ASC 4, ..FCM/ 
FCMBF OCT 2              EOTYP
      DEC -3             #OPNS
      OCT 40000,2,100000,0
      BYT 0,0 
      OCT 100000,376,77777,177776 
      BYT 0,1 
      OCT 40000,1,0,0 
      BYT 0,1 
* 
*ESTFCM 
      SKP 
* ..TCM TEST
* 
*S
STTCM NOP 
      JSB TSTDI     CALL GEN. ROUTINE WITH PARMS
      DEF MSTCM     MESSAGE 
      TCM           OPCODE
      DEF TCMBF     OPN BUFFER
      DEF M.M0+0    ADDR OF SUBR TO EXECUTE MACRO 
      JMP STTCM,I 
* 
MSTCM ASC 4, ..TCM/ 
TCMBF OCT 2              EOTYP
      DEC -3             #OPNS
      OCT 40000,0,0,2,100000,0,0,0
      BYT 0,0 
      OCT 100000,0,0,376,77777,177777,177777,177776 
      BYT 0,1 
      OCT 40000,0,0,1,0,0,0,0 
      BYT 0,1 
* 
*ESTTCM 
* 
* 
* 
      SKP 
* 
* ROUTINE TO TEST DBLE INT INSTRS, COMMON SECTION 
* ON ENTRY 4 PARMS ARE ADDR OF MSG,OPCODE,OPN BUF, AND MACRO SUBR 
* 
*S
TSTDI NOP 
      JSB GETPM     GET PARMS 
      DEF TSTDI 
      DEC 4 
      DEF DIMGD 
      DEF INSTR+0 
      DEF DIBFK 
      DEF OPCAD 
* 
      JSB MSGD      SUBTEST MSG 
DIMGD BSS 1 
* 
      LDA NEG16     SET OEILP- 16 TIMES 
      STA OEILP 
TDILP LDA DIBFK     SET DIBFP EACH TIME THRU
      STA DIBFP 
* 
      JSB GETPM     GET EOTYP,DIOCT 
      DEF DIBFP 
      DEC 2 
      DEF EOTYP     TYPE OF E,O FOR OPN, 1=HONOR INIT. VALUES 
      DEF DIOCT 
DIODL ISZ OPNDN     INC OPND IDENT
      LDA DIBFP     SET UP SAVE 
      STA DIBFS 
DIOPL JSB CLANS     CLEAR ANSW,RSLT 
      JSB CLRST 
* 
      LDA DIBFP     GET 1ST OPND
      LDB OPND1 
      MVW WDIN
      LDB NOPND     IF 1 OPND, GO ON
      CPB POS1
      JMP DIERT 
      LDB OPND2 
      MVW WDIN2 
DIERT LDB NRSLT     CHECK FOR #RSLTS
      SZB,RSS 
      JMP DIEEO 
      LDB ANSW1 
      MVW WDOUT 
DIEEO STA DIBFP     SAVE UPDATED POINTER
      LDA OEILP     SET EXPECTED E,O RTN
      AND EOTYP     GET QUALIFIED INIT. VALUES
      JSB SKF1      IF NO E CHECK, CLEAR BIT
      DEF EXTB+0
      AND BIT0
      JSB SKF1      LIKEWISE FOR OVFL 
      DEF OVFB+0
      AND BIT1
      IOR DIBFP,I   OR IN EXPECTED
      STA ANS1O 
      ISZ DIBFP     NEW POINTER 
* 
DISEO LDA OEILP     SET E,O BASED ON OEILP
      CLO 
      SLA 
      STO 
      ERA,ERA 
      AND POS3      #INDS=0,1,2, OR 3 
      STA INDCT     ALSO INDCT
      JSB OPCAD,I   GO EXECUTE INSTR
* 
      JSB SKF1      IF NO E CHECK, CLE
      DEF EXTB+0
      CLE 
      CLA,SEZ       IF E, SET BIT 1 OF A
      ELA,ELA 
      JSB SKF1      IF NO OVFLW CHECK, CLO
      DEF OVFB+0
      CLO 
      SOC           IF OVFL, BIT 0
      INA 
      LDB RST1O     UPPER HALF OF B =RTN PARM 
      CMB 
      ADB POS3
      BLF,BLF 
      JSB SKF1      IF NO RTN CHECK, CLEAR RTN
      DEF RTNB+0
      CLB 
      ADA B 
      STA RST1O     PUT BACK
* 
DIECP RSS           NORMALLY COMPARE ANSWS
      JMP DIESP     UNLESS CHANGED BY CONF....
      LDA ANSW1     COMPARE RSLTS 
      LDB RSLT1 
      CMW POS6
      JMP DIELP     OK
      NOP           ERROR 
DIEER LDA OPND1 
      STA ODAD1 
      LDA OPND2 
      STA ODAD2 
      CLA 
      JSB WRANS     REPORT ERROR, 1ST TRY 
* 
* 
DIELP RSS           NORMALLY LOOP AGAIN 
      JMP DIETT     UNLESS NOT RSS
      ISZ DIOCT     OR IF COUNT UP
      JMP DIODL 
      ISZ OEILP     INC,TEST LOOP COUNTER 
      JMP TDILP     IF NOT=0, GO AGAIN
      JMP TSTDI,I   DONE!!
DIETT JSB CWCHK     TEST CW, SET PARMS
      LDA DIBFS     REPEAT LAST OPN 
      STA DIBFP 
      JMP DIOPL     GO AGAIN
* 
DIESP JSB SKNCW     CHECK FOR DISPLAY ALL OPNS
      DEF DISPB+0 
      JMP DIEER     IF SO, PRETEND ERROR
      JMP DIELP     ELSE CONTINUE 
* 
* 
POS1  DEC 1 
POS3  DEC 3 
POS6  DEC 6 
NEG16 DEC -16 
BIT0  OCT 1 
BIT1  OCT 2 
DIBFK BSS 1 
DIBFP BSS 1 
DIBFS BSS 1 
EOTYP BSS 1 
DIOCT BSS 1 
OPCAD BSS 1 
*ETSTDI 
* 
      SKP 
* 
* ROUTINE TO EXECUTE INSTRS OF FMT: 
* 
*     <A,B=1ST OPND>
*     OPCODE
*     DEF OPND2 
*     <ERROR RTN> 
*     <A,B=RSLT>
* 
* USES INSTR FOR OPCODE, OPND1,OPND2,RSLT1
* 
*S
R.RM1 NOP 
      JSB STDEF     SET UP OPND DEFS (INDS) 
      DEF OND23+0   2ND OPND
      DEF RRM1I+1 
      OCT 0         ONLY 1
* 
      LDA INSTR     PUT OPCODE IN LINE
      STA RRM1I 
      DLD OND13     GET 1ST OPND
RRM1I NOP           MACRO 
      DEF OND23+0 
      ISZ RST1O     RTN PTR 
      ISZ RST1O 
      DST RST13     STORE RESULT
      JMP R.RM1,I   DONE
* 
* 
* 
      SKP 
* ROUTINE TO EXECUTE INSTRS OF FMT: 
* 
*     <A,B=1ST OPND>
*     OPCODE
*     OPND2     (NOT DEF) 
*     <ERROR RTN> 
*     <A,B=RSLT>
* 
* USES INSTR FOR OPCODE, OPND1,OPND2,RSLT1
* 
*S
R.RN1 NOP 
* 
      LDA INSTR     PUT OPCODE IN LINE
      STA RRN1I 
      LDA OND23     SET UP 2ND OPND 
      STA RRN1I+1 
      DLD OND13     GET 1ST OPND
RRN1I NOP           MACRO 
      BSS 1 
      ISZ RST1O     RTN PTR 
      ISZ RST1O 
      DST RST13     STORE RESULT
      JMP R.RN1,I   DONE
* 
* 
* 
* 
* 
* 
* 
      SKP 
* 
*S
* ROUTINE TO EXECUTE INSTRS OF FMT: 
* 
*     OPCODE
*     DEF OPND-RSLT 
*     <ERROR RTN> 
*     <A REG=PART OF RSLT>
* 
* USES INSTR FOR OPCODE, OPND1,OPND2,RSLT1
* 
RM.M0 NOP 
      JSB STDEF     SET UP DEFS (INDS)
      DEF RST13+1 
      DEF RMM0I+1 
      OCT 0         ONLY 1
* 
      LDA INSTR     PUT OPCODE IN LINE
      STA RMM0I 
      LDA OPND1 
      LDB RSLT1 
      INB           SKIP ONE LOC. 
      MVW WDIN
RMM0I NOP           MACRO 
      DEF RST13+1 
      ISZ RST1O     RTN PTR 
      ISZ RST1O 
      STA RST13     STUFF A REG 
      JMP RM.M0,I   DONE
* 
* 
* 
* 
* ROUTINE TO EXECUTE INSTRS WITH FMT: 
* 
*     <A,B=OPND>
*     OPCODE
*     <ERROR RTN> 
*     <A,B=RSLT>
* 
* USES INSTR FOR OPCODE, OPND1,OPND2,RSLT1
* 
*S
R.R   NOP 
      LDA INSTR     PUT OPCODE IN LINE
      STA R.RI
      DLD OND13     GET 1ST OPND
R.RI  NOP           MACRO 
      ISZ RST1O     RTN PTR 
      ISZ RST1O 
      DST RST13     STORE RESULT
      JMP R.R,I     DONE
* 
* 
* 
      SKP 
*S
* ROUTINE TO EXECUTE INSTRS WITH FMT: 
* 
*     <B=OPND>
*     OPCODE
*     <ERROR RTN> 
*     <A,B=RSLT>
* 
* USES INSTR FOR OPCODE, OPND1,OPND2,RSLT1
* 
B.R   NOP 
      LDA INSTR     PUT OPCODE IN LINE
      STA B.RI
      LDB OND13     GET 1ST OPND
B.RI  NOP           MACRO 
      ISZ RST1O     RTN PTR 
      ISZ RST1O 
      DST RST13     STORE RESULT
      JMP B.R,I     DONE
* 
* 
* 
* 
* 
* 
* 
      SKP 
* 
*S
* ROUTINE TO EXECUTE INSTRS OF FMT: 
* 
*     OPCODE
*     DEF OPND-RSLT 
*     <ERROR RTN> 
* 
* USES INSTR FOR OPCODE, OPND1,OPND2,RSLT1
* 
M.M0  NOP 
      JSB STDEF     SET UP DEFS (INDS)
      DEF RST13+0 
      DEF M.M0I+1 
      OCT 0         ONLY 1
* 
      LDA INSTR     PUT OPCODE IN LINE
      STA M.M0I 
      LDA OPND1 
      LDB RSLT1 
      MVW WDIN
M.M0I NOP           MACRO 
      DEF RST13+0 
      ISZ RST1O     RTN PTR 
      ISZ RST1O 
      JMP M.M0,I    DONE
* 
* 
* 
*S
* ROUTINE TO EXECUTE INSTRS OF FMT: 
* 
*     OPCODE
*     DEF OPND-RSLT   (DIRECT ONLY) 
*     <ERROR RTN> 
* 
* USES INSTR FOR OPCODE, OPND1,OPND2,RSLT1
* 
M.M0D NOP 
      LDA INSTR     PUT OPCODE IN LINE
      STA M.M0J 
      LDA OPND1 
      LDB RSLT1 
      MVW WDIN
M.M0J NOP           MACRO 
      DEF RST13+0 
      ISZ RST1O     RTN PTR 
      ISZ RST1O 
      JMP M.M0D,I   DONE
* 
* 
* 
* 
      SKP 
*S
* ROUTINE TO EXECUTE INSTRS OF FMT: 
* 
*     <A,B=1ST OPND>
*     OPCODE
*     DEF OPND2-RSLT
*     <ERROR RTN> 
* 
* USES INSTR FOR OPCODE, OPND1,OPND2,RSLT1
* 
M.RM0 NOP 
      JSB STDEF     SET UP DEFS (IND) 
      DEF RST13+0 
      DEF MRM0I+1 
      OCT 0         1 DEF 
* 
      LDA OPND2     MOVE OPND2 TO RSLT
      LDB RSLT1 
      MVW WDIN2 
      LDA INSTR     PUT OPCODE IN LINE
      STA MRM0I 
      DLD OND13 
MRM0I NOP           MACRO 
      DEF RST13+0 
      ISZ RST1O     RTN PTR 
      ISZ RST1O 
      JMP M.RM0,I   DONE
* 
* 
* 
* 
* 
      SKP 
*S
* ROUTINE TO EXECUTE INSTRS OF FMT: 
* 
*     <A,B=1ST OPND>
*     OPCODE
*     DEF RSLT
*     DEF OPND2 
*     <ERROR RTN> 
* 
* USES INSTR FOR OPCODE, OPND1,OPND2,RSLT1
* 
M.RM1 NOP 
      JSB STDEF     SET UP DEFS (IND) 
      DEF RST13+0 
      DEF MRM1I+1 
      DEF OND23+0 
      DEF MRM1I+2 
      OCT 0         2 DEFS
* 
      LDA INSTR     PUT OPCODE IN LINE
      STA MRM1I 
      DLD OND13 
MRM1I NOP           MACRO 
      DEF RST13+0 
      DEF OND23+0 
      ISZ RST1O     RTN PTR 
      ISZ RST1O 
      JMP M.RM1,I   DONE
* 
* 
      SKP 
*S
* ROUTINE TO EXECUTE INSTRS OF FORMAT:
* 
*     OPCODE
*     DEF *+2 
*     DEF OPND
*     <OPT ERROR RTN> 
*     <RLST IN A,B> 
* 
* 
* USES INSTR FOR OPCODE, OPND1,OPND2,RSLT1
* 
R%M1  NOP 
      JSB STDEF     SET UP DEF
      DEF OND13+0 
      DEF R%M1I+2 
      OCT 0 
* 
      LDA INSTR     PUT OPCODE IN LINE
      STA R%M1I 
R%M1I NOP           MACRO 
      DEF *+2 
      DEF OND13+0 
      ISZ RST1O     RTN PTR 
      ISZ RST1O 
      DST RST13     STORE RESULT
      JMP R%M1,I    DONE
* 
* 
      SKP 
*S
* ROUTINE TO EXECUTE INSTRS OF FORMAT:
* 
*     OPCODE
*     DEF *+3 
*     DEF RSLT
*     DEF OPND
*     <OPT ERROR RTN> 
* 
* 
* USES INSTR FOR OPCODE, OPND1,OPND2,RSLT1
* 
M%M1  NOP 
      JSB STDEF     SET UP DEFS 
      DEF RST13+0 
      DEF M%M1I+2 
      DEF OND13+0 
      DEF M%M1I+3 
      OCT 0         2 DEFS
      LDA INSTR     PUT OPCODE IN LINE
      STA M%M1I 
M%M1I NOP           MACRO 
      DEF *+3 
      DEF RST13+0 
      DEF OND13+0 
      ISZ RST1O     RTN PTR 
      ISZ RST1O 
      JMP M%M1,I    DONE
* 
* 
* 
      SKP 
*S
* ROUTINE TO PUT DIRECT/INDIRECT DEFS IN PLACE FOR INSTR. TESTS 
* 
* CALLING SEQ: JSB STDEF
*              DEF PARM1
*              DEF DEST1
*              .... 
*              DEF PARMN
*              DEF DESTN
*              OCT 0
* 
STDEF NOP 
      LDA INDIX     SET POINTER TO IND BUFS 
      STA INDPT 
DEFLP LDA STDEF,I   GET PARM ADDR 
      ISZ STDEF     INC POINTER 
      SZA,RSS       IF=0, DONE
      JMP STDEF,I 
      LDB INDPT,I   B=ADDR OF 0 LEVEL IND 
      STA B,I       PUT ADDR OF PARM THERE
      LDA B         A=ADDR OF NTH LEVEL IND 
      ADA INDCT 
      LDA A,I 
      LDB STDEF,I   B=DEST ADDR 
      STA B,I       PUT IN DEST LOC.
      ISZ STDEF     POINT TO NEXT ONE 
      ISZ INDPT     NEXT IND CHAIN
      JMP DEFLP 
* 
INDPT BSS 1 
* 
INDIX DEF *+1 
      DEF IND10 
      DEF IND20 
      DEF IND30 
      DEF IND40 
      DEF IND50 
* 
IND10 BSS 1 
IND11 DEF IND10,I 
IND12 DEF IND11,I 
IND13 DEF IND12,I 
IND14 DEF IND13,I 
IND15 DEF IND14,I 
* 
IND20 BSS 1 
IND21 DEF IND20,I 
IND22 DEF IND21,I 
IND23 DEF IND22,I 
IND24 DEF IND23,I 
IND25 DEF IND24,I 
* 
IND30 BSS 1 
IND31 DEF IND30,I 
IND32 DEF IND31,I 
IND33 DEF IND32,I 
IND34 DEF IND33,I 
IND35 DEF IND34,I 
* 
IND40 BSS 1 
IND41 DEF IND40,I 
IND42 DEF IND41,I 
IND43 DEF IND42,I 
IND44 DEF IND43,I 
IND45 DEF IND44,I 
* 
IND50 BSS 1 
IND51 DEF IND50,I 
IND52 DEF IND51,I 
IND53 DEF IND52,I 
IND54 DEF IND53,I 
IND55 DEF IND54,I 
* 
* 
      END 
                                                                                                                                                                                                      