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