ASMB,L
      NAM TERES 12824-1X053 REV.2026 800506 
      ENT TERES 
      EXT .ENTR,.ERES 
**************************************************************
* 
*     NAME:   TERES 
*     SOURCE: 12824-18053 
*     RELOC:  PART OF 12824-16002 
*     PGMR:   CG
* 
*  ***********************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  ALL RIGHTS *
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,  *
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE    *
*  * WITHOUT THE PRIOR CONSENT OF HEWLETT-PACKARD COMPANY.   *
*  ***********************************************************
* 
**************************************************************
* 
IERR  BSS 1 
TERES NOP 
      JSB .ENTR     GET ADDRESSES 
      DEF IERR
      CLA           INITIALIZE ERROR COUNT
      STA ERROR 
* 
************************************************************************
* 
*     CALL .ERES WITH #DIM < 0
* 
      LDA TABL1     SET A = ADDRESS OF TABLE
      JSB ERR1      TEST FOR ERROR RETURN 
* 
************************************************************************* 
* 
*     CALL .ERES WITH L(1) > A(1) 
* 
      LDA TABL2     SET A = ADDRESS OF TABLE
      JSB ERR1      TEST FOR ERROR RETURN 
* 
**************************************************************************
* 
*     CALL .ERES WITH #WORDS/ELEMENT < 0
* 
      LDA TABL3     SET A = ADDRESS OF TABLE
      JSB ERR1      TEST FOR ERROR RETURN 
* 
**************************************************************************
* 
*     CALL .ERES WITH MSB OF DOUBLE INTEGER < 0 
* 
      LDA TABL4     SET A ADDRESS OF TABLE
      JSB ERR1      TEST FOR ERROR RETURN 
* 
************************************************************************* 
* 
*     CALL .ERES WITH OVERFLOW IN DOUBLE INTEGER ADD
* 
      LDA TABL5     SET A = ADDRESS OF TABLE
      JSB ERR1      TEST FOR ERROR RETURN 
* 
**************************************************************************
* 
*     CALL .ERES WITH D(1) < 0
* 
      LDA TABL6     SET A = ADDRESS OF TABLE
      JSB ERR3      TEST FOR ERROR RETURN 
* 
**************************************************************************
      SKP 
**************************************************************************
* 
*     CALL .ERES WITH OVERFLOW IN UPPER 16-BIT MPY
* 
      LDA TABL7     SET A = ADDRESS OF TABLE
      JSB ERR3      TEST FOR ERROR RETURN 
* 
*************************************************************************** 
* 
*     CALL .ERES WITH OVERFLOW IN MULTIPLY
* 
      LDA TABL8     SET A = ADDRESS OF TABLE
      JSB ERR3      TEST FOR ERROR RETURN 
* 
*************************************************************************** 
* 
*     CALL .ERES WITH CARRY OUT IN MULTIPLY 
* 
      LDA TABL9     SET A = ADDRESS OF TABLE
      JSB ERR3      TEST FOR ERROR RETURN 
* 
*************************************************************************** 
* 
*     CALL .ERES WITH OVERFLOW IN SHIFT 
* 
      LDA TABLA     SET A = ADDRESS OF TABLE
      JSB ERR3      TEST FOR ERROR RETURN 
* 
*************************************************************************** 
* 
*     CALL .ERES WITH #DIM = 0
* 
      JSB .ERES     EMA ADDRESS RESOLVER
      DEF RTN1
      NOP           DUMMY ADDRESS 
      DEF TABLB     ARRAY DEFINTION TABLE 
RTN1  ISZ ERROR     ERROR IF RETURNS HERE 
* 
      CPA ELB       TEST A REGISTER 
      RSS           OK (NO SKIP)
      ISZ ERROR     ERROR IF SKIP 
      CPB EHB       TEST B REGISTER 
      RSS           OK (NO SKIP)
      ISZ ERROR     ERROR IF SKIP 
* 
************************************************************************
* 
*     NORMAL CALL, #WORDS ELEMENT = 1 
* 
      LDA TABLC     SET A = ADDRESS OF TABLE
      JSB NORM2     TEST CALCULATION
* 
************************************************************************* 
      SKP 
************************************************************************* 
* 
*     NORMAL CALL, #WORDS/ELEMENT = 2 
* 
      LDA TABLD     SET A = ADDRESS OF TABLE
      JSB NORM2     TEST CALCULATION
* 
************************************************************************* 
* 
*     NORMAL CALL, #WORDS/ELEMENT = 3 
* 
      LDA TABLE     SET A = ADDRESS OF TABLE
      JSB NORM2     TEST CALCULATION
* 
************************************************************************* 
* 
*     NORMAL CALL, #WORDS/ELEMENT = 4 
* 
      LDA TABLF     SET A = ADDRESS OF TABLE
      JSB NORM2     TEST CALCULATION
* 
************************************************************************* 
* 
*     RETURN ERROR COUNT
* 
      LDA ERROR 
      STA IERR,I
      JMP TERES,I   RETURN
* 
**************************************************************************
      SKP 
**************************************************************************
* 
ERR1  NOP 
      STA TAB1      STORE TABLE ADDRESS IN CALL STRING
      JSB .ERES     EMA ADDRESS RESOLVER
      DEF ERTN1 
      NOP           DUMMY ARRAY ADDRESS 
TAB1  BSS 1         ARRAY DEFINITION TABLE
      DEF I1
ERTN1 JSB ABCHK     TEST A & B REGISTERS
      ISZ ERROR     ERROR IF RETURNS HERE 
      JMP ERR1,I    RETURN
* 
**********************************************************************
* 
ERR3  NOP 
      STA TAB3      STORE TABLE ADDRESS IN CALL STRING
      JSB .ERES     EMA ADDRESS RESOLVER
      DEF ERTN3 
      NOP           DUMMY ARRAY ADDRESS 
TAB3  BSS 1 
      DEF K1
      DEF J1
      DEF I1
ERTN3 JSB ABCHK     TEST A & B REGISTERS
      ISZ ERROR     ERROR IF RETURNS HERE 
      JMP ERR3,I    RETURN
* 
I1    DEC 8 
J1    DEC 8 
K1    DEC 8 
* 
**********************************************************************
* 
ABCHK NOP 
      CPA ASC20     TEST A REGISTER 
      RSS           OK (NO SKIP)
      JMP ABCHK,I   ERROR RETURN
      CPB ASCEM     TEST B REGISTER 
      RSS 
      JMP ABCHK,I   ERROR RETURN
      ISZ ABCHK     INCREMENT TO NORMAL RETURN
      JMP ABCHK,I   RETURN
* 
ASC20 ASC 1,20
ASCEM ASC 1,EM
ERROR BSS 1 
* 
**********************************************************************
      SKP 
**********************************************************************
* 
NORM2 NOP 
      STA TAB2      STORE TABLE ADDRESS IN CALL STRING
      ADA =D7       STORE ANS ADDRESS 
      STA ANS          IN ANS 
* 
      JSB .ERES     EMA ADDRESS RESOLVER
      DEF NRTN
      NOP           DUMMY ARRAY ADDRESS 
TAB2  BSS 1         ARRAY DEFINITION TABLE
      DEF J1
      DEF I1
NRTN  ISZ ERROR     ERROR IF RETURNS HERE 
* 
      CPA ANS,I     TEST A REGISTER 
      RSS           OK (NO SKIP)
      ISZ ERROR     ERROR IF SKIP 
      ISZ ANS       BUMP ANSWER ADDRESS 
      CPB ANS,I     TEST B REGISTER 
      JMP NORM2,I   OK, RETURN
      ISZ ERROR     ERROR IF SKIP 
      JMP NORM2,I   RETURN
* 
ANS   BSS 1 
* 
**********************************************************************
      SKP 
TABL1 DEF *+1 
      DEC -1        #DIM
      DEC -1        -L(1) 
      DEC 2         #WORDS/ELEMENT
      DEC 0         EMA OFFSET LOW
      DEC 0         EMA OFFSET HIGH 
* 
TABL2 DEF *+1 
      DEC 1         #DIM
      DEC -9        -L(1) 
      DEC 2         #WORDS/ELEMENT
      DEC 0         EMA OFFSET LOW
      DEC 0         EMA OFFSET HIGH 
* 
TABL3 DEF *+1 
      DEC 1         #DIM
      DEC -1        -L(1) 
      DEC -1        #WORDS/ELEMENT
      DEC 0         EMA OFFSET LOW
      DEC 0         EMA OFFSET HIGH 
* 
TABL4 DEF *+1 
      DEC 1         #DIM
      DEC -1        -L(1) 
      DEC 2         #WORDS/ELEMENT
      DEC 0         EMA OFFSET LOW
      OCT 177777    EMA OFFSET HIGH 
* 
TABL5 DEF *+1 
      DEC 1         #DIM
      DEC -1        -L(1) 
      DEC 2         #WORDS/ELEMENT
      OCT 177777    EMA OFFSET LOW
      OCT 077777    EMA OFFSET HIGH 
* 
TABL6 DEF *+1 
      DEC 3         #DIM
      DEC -1        L(3)
      DEC -1        D(2)
      DEC -1        L(2)
      DEC -1        D(1)
      DEC -1        L(1)
      DEC 2         #WORDS/ELEMENT
      DEC 0         EMA OFFSET LOW
      DEC 0         EMA OFFSET HIGH 
      SKP 
TABL7 DEF *+1 
      DEC 3         #DIM
      DEC -1        -L(3) 
      DEC 32767     D(2)
      DEC -1        -L(2) 
      DEC 21846     D(1)
      DEC -1        L(1)
      DEC 2         #WORDS/ELEMENT
      DEC 0         EMA OFFSET LOW
      DEC 0         EMA OFFSET HIGH 
* 
TABL8 DEF *+1 
      DEC 3         #DIM
      DEC -1        -L(3) 
      DEC 32767     D(2)
      DEC -1        -L(2) 
      DEC 9363      D(1)
      DEC -1        -L(1) 
      DEC 2         #WORDS/ELEMENT
      DEC 0         EMA OFFSET LOW
      DEC 0         EMA OFFSET HIGH 
* 
TABL9 DEF *+1 
      DEC 3         #DIM
      DEC -1        -L(3) 
      DEC 32767     D(2)
      DEC -1        -L(2) 
      DEC 18725     D(1)
      DEC -1        -L(1) 
      DEC 2         #WORDS/ELEMENT
      DEC 0         EMA OFFSET LOW
      DEC 0         EMA OFFSET HIGH 
* 
TABLA DEF *+1 
      DEC 3         #DIM
      DEC -1        -L(3) 
      DEC 12385     D(2)
      DEC -1        -L(2) 
      DEC 12385     D(1)
      DEC -1        -L(1) 
      DEC 4         #WORDS/ELEMENT
      DEC 0         EMA OFFSET LOW
      DEC 0         EMA OFFSET HIGH 
* 
TABLB DEC 0         #DIM
ELB   DEC 100       EMA OFFSET LOW
EHB   DEC 200       EMA OFFSET HIGH 
      SKP 
TABLC DEF *+1 
      DEC 2         #DIM
      DEC -1        -L(2) 
      DEC 10000     D(1)
      DEC -1        -L(1) 
      DEC 1         #WORDS/ELEMENT
      DEC 1         EMA OFFSET LOW
      DEC 2         EMA OFFSET HIGH 
      OCT 10570 
      OCT 3 
* 
TABLD DEF *+1 
      DEC 2         #DIM
      DEC -1        -L(2) 
      DEC 10000     D(1)
      DEC -1        -L(1) 
      DEC 2         #WORDS/ELEMENT
      DEC 1         EMA OFFSET LOW
      DEC 2         EMA OFFSET HIGH 
      OCT 21357 
      OCT 4 
* 
TABLE DEF *+1 
      DEC 2         #DIM
      DEC -1        -L(2) 
      DEC 10000     D(1)
      DEC -1        -L(1) 
      DEC 3         #WORDS/ELEMENT
      DEC 1         EMA OFFSET LOW
      DEC 2         EMA OFFSET HIGH 
      OCT 32146 
      OCT 5 
* 
TABLF DEF *+1 
      DEC 2         #DIM
      DEC -1        -L(2) 
      DEC 10000     D(1)
      DEC -1        -L(1) 
      DEC 4         #WORDS/ELEMENT
      DEC 1         EMA OFFSET LOW
      DEC 2         EMA OFFSET HIGH 
      OCT 42735 
      OCT 6 
* 
      END 
                                                          