ASMB,L
      NAM TVSET 12824-1X055 REV.2026 800506 
      ENT TVSET 
**************************************************************
* 
*     NAME:   TVSET 
*     SOURCE: 12824-18055 
*     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.   *
*  ***********************************************************
* 
**************************************************************
      EXT .VSET,.ENTR,$LIBR,$LIBX 
XIDEX EQU 1645B 
* 
IERR  BSS 1 
TVSET NOP 
      JSB .ENTR     GET ADDRESSES 
      DEF IERR
      CLA           INITIALIZE ERROR COUNT
      STA ERROR 
* 
**********************************************************************
* 
*     CALL .VSET BY A NON-EMA PROGRAM 
* 
      LDA XIDEX     SAVE IDEX ADDR
      STA IDEX         IN IDEX
      JSB $LIBR     GO PRIVILEGED 
      NOP 
      CLA           CLEAR IDEX ADDR 
      STA XIDEX 
* 
      CLA,INA       SET A = 1 
      STA I1        SET I1 = 1
      STA I2        SET I2 = 1
* 
      JSB .VSET     VECTOR SET-UP 
      DEF RTN1
      DEF VIN       INPUT ADDR STRING 
      DEF VOUT      OUTPUT ADDR STRING
      DEF MAPS      OUTPUT MAP TABLE
      OCT 0         NO SCALARS
      OCT 2         TWO VECTORS 
      DEC 512       NMAX
RTN1  JMP OK1       SHOULD RETURN HERE
      ISZ ERROR     ERROR IF RETURNS HERE 
      ISZ ERROR     ERROR IF RETURNS HERE 
* 
OK1   CPA ASC22     TEST A REGISTER 
      RSS           OK (NO SKIP)
      ISZ ERROR     ERROR IF SKIP 
      CPB ASCVI     TEST B REGISTER 
      RSS           OK(NO SKIP) 
      ISZ ERROR     ERROR IF SKIP 
* 
      LDA IDEX      RESTORE IDEX ADDR 
      STA XIDEX 
      JSB $LIBX     GO UN-PRIVILEGED
      DEF *+1 
      DEF *+1 
* 
**********************************************************************
      SKP 
**********************************************************************
* 
*     CALCULATE WHAT CORRECT OUTPUT WILL BE 
* 
      ISZ IDEX      POINT TO 2ND WORD OF IDEX 
      XLA IDEX,I    SET A = LOG START MSEG
      AND =B174000
      RAR 
      STA VANS1     1ST VECTOR LOG ADDR 
      ADA =B5777
      STA VANS2     2ND VECTOR LOG ADDR 
* 
**********************************************************************
* 
*     EASY RETURN, IMAX = 1 
* 
      JSB EASY      TEST SUBROUTINE 
* 
**********************************************************************
* 
*     EASY RETURN, IMAX = 0 
* 
      CLA           SET A = 0 
      STA I1        SET I1 = 0
      STA I2        SET I2 = 0
      JSB EASY      TEST SUBROUTINE 
* 
**********************************************************************
* 
*     HARD RETURN, I1 < 0 
* 
      CCA           SET A = -1
      STA I1        SET I1 = -1 
      LDA =D513     SET A = 513 
      JSB HARD      TEST SUBROUTINE 
* 
**********************************************************************
* 
*     HARD RETURN, I1 > I2
* 
      LDA =D4       SET A = 4 
      STA I1        SET I1 = 4
      LDA =D129     SET A = 129 
      JSB HARD      TEST SUBROUTINE 
* 
**********************************************************************
      SKP 
**********************************************************************
* 
*     HARD RETURN, I2 > I1
* 
      CLA           SET A = 0 
      STA I1        SET I1 = 0
      LDA =D4       SET A = 4 
      STA I2        SET I2 = 4
      LDA =D129     SET A = 129 
      JSB HARD      TEST SUBROUTINE 
* 
**********************************************************************
* 
      LDA ERROR     RETURN ERROR COUNT
      STA IERR,I
      JMP TVSET,I   RETURN
* 
**********************************************************************
      SKP 
**********************************************************************
* 
EASY  NOP 
      JSB .VSET     VECTOR SET-UP 
      DEF ERTN
      DEF SIN       INPUT ADDR STRING 
      DEF SOUT      OUTPUT ADDR STRING
      DEF MAPS      OUTPUT MAP TABLE
      OCT 1         ONE SCALAR
      OCT 2         TWO VECTORS 
      DEC 512       NMAX
ERTN  ISZ ERROR     ERROR IF RETURNS HERE 
      ISZ ERROR     ERROR IF RETURNS HERE 
* 
      SZA           A SHOULD = 0
      ISZ ERROR     ERROR IF A NE 0 
      CPB =D4       B SHOULD = 4
      RSS           OK (NO SKIP)
      ISZ ERROR     ERROR IF SKIP 
* 
      LDA SIN       COMPARE SCALAR ADDRESSES
      CPA SOUT
      RSS           OK (NO SKIP)
      ISZ ERROR     ERROR IF SKIP 
* 
      JSB TEST      TEST OUTPUT ADDR STRING, MAPS 
      JMP EASY,I    RETURN
* 
**********************************************************************
* 
HARD  NOP 
      STA M         SAVE A IN M 
      JSB .VSET     VECTOR SET-UP 
      DEF HRTN
      DEF VIN       INPUT ADDR STRING 
      DEF VOUT      OUTPUT VECTOR STRING
      DEF MAPS      OUTPUT MAP TABLE
      OCT 0         NO SCALARS
      OCT 2         TWO VECTORS 
      DEC 512       NMAX
HRTN  ISZ ERROR     ERROR IF RETURNS HERE 
      JMP HOK       SHOULD RETURN HERE
      ISZ ERROR     ERROR IF RETURNS HERE 
* 
HOK   CPA M         A SHOULD = M
      RSS           OK (NO SKIP)
      ISZ ERROR     ERROR IF SKIP 
* 
      JSB TEST      TEST OUTPUT STRING, MAPS
      JMP HARD,I    RETURN
* 
**********************************************************************
      SKP 
**********************************************************************
* 
TEST  NOP 
      LDA XVOUT     OUTPUT ADDR STRING
      LDB XVANS     ANSWER ADDR STRING
      CMW =D5 
      JMP TOK       SHOULD RETURN HERE
      ISZ ERROR     ERROR IF RETURNS HERE 
      ISZ ERROR     ERROR IF RETURNS HERE 
* 
TOK   LDA XMAPS     OUTPUT MAP TABLE
      LDB XMAP1     ANSWER MAP TABLE
      CMW =D4 
      JMP TEST,I    OK RETURN 
      ISZ ERROR     ERROR IF RETURNS HERE 
      ISZ ERROR     ERROR IF RETURNS HERE 
      JMP TEST,I    RETURN
* 
**********************************************************************
      SKP 
XVIN  DEF VIN 
SIN   OCT 1234
VIN   DEF V1
      DEF I1
      DEF V2
      DEF I2
      DEF N 
* 
XVOUT DEF VOUT
SOUT  BSS 1 
VOUT  BSS 5 
* 
XVANS DEF VANS1 
VANS1 BSS 1 
      DEF I1
VANS2 BSS 1 
      DEF I2
      DEF N 
* 
XMAPS DEF MAPS
MAPS  BSS 4 
* 
XMAP1 DEF MAP1
MAP1  OCT 0 
MAP2  OCT 1 
MAP3  OCT 77
MAP4  OCT 100 
* 
M     BSS 1 
* 
V1    OCT 0 
      OCT 0 
I1    BSS 1 
V2    OCT 177777
      OCT 0 
I2    BSS 1 
N     DEC 500 
* 
ASC22 ASC 1,22
ASCVI ASC 1,VI
* 
IDEX  BSS 1 
ERROR BSS 1 
* 
      END 
                                              