*DECK FMTEST
          IDENT  FM$TEST
* 
* LINKAGE BETWEEN FORM AND 8-BIT SUBS FOR PERFORMING TESTS
*  ON 6-BIT DATA
* 
          ENTRY  FM$TEST,FM$PARX
* 
          LIST   A,C,E,G,R,-N 
          B1=1
          SST 
          SPACE  4
*#
* *   FMTEST - LINKAGE TO 8-BIT SUBROUTINES FOR TESTS 
* *   M.T. KAUFMAN
* 1DC FMTEST
* 
* DC  FUNCTION
* 
*     PROVIDE LINKAGE BETWEEN FMPARSE AND THE TEST COMPONENTS OF
*     THE 8-BIT SUBROUTINES.
* 
* DC  ENTRY CONDITIONS
* 
*     CALLER MUST SET UP THE COM-2 COMMON BLOCK OF THE 8-BIT
*     SUBROUTINES.  FMTEST WILL USE T.T1 AND T.T2 TO DIRECT CALLS 
*     ON THE TEST ROUTINES. 
* 
* DC  EXIT CONDITIONS 
* 
*     RESULT OF TEST RETURNED AS FUNCTION VALUE: TRUE=-1, FALSE=0 
* 
* DC  ERROR CONDITIONS
* 
*     FUNCTION RETURN VALUE (GR 0) AS PROVIDED BY 8-BIT ROUTINES
* 
*#
          EJECT 
 TC.TST   VFD    42/7HFM$TEST,18/*  TRACEBACK 
 FMXIT    SA1    =XT8.STAW   STATUS RETURN ADDRESS
          SA2    =XT8.SVA0   RESTORE A0 
          BX6    X5 
          SX7    B0 
          SA0    X2 
          ZR     X1,FM$TEST  NO STATUS CELL GIVEN, DONT STORE 
          SA6    X1 
* 
 FM$TEST  JP     *+1S17      ENTRY POINT
+         SX7    TC.TST      TRACEBACK INFO 
          SX2    =XT8.TST6   TEST TRANSFER VECTOR BASE
          SB6    RTN.TST     TEST RETURN POINT
* 
 FM$PARX  BSS    0           ENTRY FROM CONVERSION (REF)
          SA7    =XT8.ENTR
          SX6    X1 
          SX7    A0 
          SB1    1
          SA6    T8.STAW
          SA7    T8.SVA0
          SX6    B6 
          SA6    =XT8.SVB6
* 
          SA5    =XT8.T1     FIRST DATA TYPE
          SA2    X2          BRING T1 BIT MASK TO X2. A2 IS JUMP BASE 
          SB5    X5 
          MX0    60-2 
          AX2    X2,B5
          LX2    59 
          PL     X2,PARS.E13  ERROR, T1 ILLEGAL TYPE
          CX2    X2 
          BX4    -X0*X2      QUARTER WORD OFFSET
          AX2    2           WORD OFFSET (FROM (A2))
          BX5    X4 
          SB2    X2+B1
          LX4    4           Q*16 
          SA3    A2+B2       WORD POINTING TO T2 VECTOR 
          IX4    X4-X5       Q*15 
          SB4    X4 
          LX3    X3,B4       POINTER IN HIGH 15 BITS
          AX3    60-15
          SB2    X3 
          SA5    =XT8.T2     SECOND DATA TYPE 
          SA2    A2+B2       BIT VECTOR FOR T2 AND NEW JUMP BASE
          SB5    X5 
          AX2    X2,B5
          LX2    59 
          PL     X2,PARS.E14  ERROR, T2 ILLEGAL TYPE
          CX2    X2 
          BX4    -X0*X2      QUARTER WORD OFFSET
          AX2    2           WORD OFFSET (FROM (A3))
          BX5    X4 
          SB2    X2+B1
          LX4    4           Q*16 
          SA3    A2+B2       WORD POINTING TO TEST ROUTINE
          IX5    X4-X5       Q*15 
          SB4    X5 
          LX3    X3,B4       POINTER IN HIGH 15 BITS
          AX3    60-15
          SB2    X3 
          SB2    A2+B2
* 
          JP     B2          GO TO TEST OR CONVERSION 
* 
* 
 RTN.TST  SX5    -1          RETURN FROM TEST CODE
          ZR     X0,FMXIT    TRUE = -1
          SX5    B0 
          EQ     FMXIT       FALSE = 0
* 
          SPACE  4
 PARS.E13 SA2    PARS.EMD    ERROR, T1 NOT IN BIT VECTOR
          EQ     =XT8.ERR 
 PARS.E14 SA2    PARS.EME    ERROR, T2 NOT IN BIT VECTOR
          EQ     =XT8.ERR 
* 
          SPACE  4
 E.SCN    =      1
 PARS.EMD VFD    12/0,18/E.SCN,12/0,18/*+1
          DATA    C/ILLEGAL FIRST ITEM TYPE/
 PARS.EME VFD    12/0,18/E.SCN,12/0,18/*+1
          DATA    C/ILLEGAL SECOND ITEM TYPE/ 
          EJECT 
          MACRO  IND,A,B     GENERATE FORM INDIRECT ADDRESSES TO
          ENTRY  A            8-BIT LOCATIONS 
          EXT    B
 A        VFD    42/0,18/B
          ENDM
* 
 T8RECRD  IND    T8.RECO     T.RECORD 
 T8INREC  IND    T8.INRC     T.INREC
 T8OTREC  IND    T8.OTRC     T.OUTREC 
 T8COND   IND    T8.COND
 T8STRNG  IND    T8.STRI     T.STRING 
 T8REL1   IND    T8.REL1     T.REL1 
 T8I1     IND    T8.I1       T.I1 
 T8W1     IND    T8.W1       T.W1 
 T8T1     IND    T8.T1       T.T1 
 T8M1     IND    T8.M1       T.M1 
 T8REL2   IND    T8.REL2     T.REL2 
 T8I2     IND    T8.I2       T.I2 
 T8W2     IND    T8.W2       T.W2 
 T8T2     IND    T8.T2       T.T2 
 T8M2     IND    T8.M2       T.M2 
* 
          SPACE  4
          END 
