FTN4
      FUNCTION RESET(LU,ITEMP,IVAL,LOCKW), 92080-1X598 REV.2026       
     .800512
C 
C 
C     SOURCE: &RESET    92080-18598 
C 
C     PMGR:   BEN HEILBRONN 
C 
C 
C     **************************************************************
C     * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  ALL RIGHTS    *
C     * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- *
C     * PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH-  *
C     * OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.  *
C     **************************************************************
C 
C 
C     THIS PROGRAM IS A PART OF THE:
C 
C                      DATA CAPTURE SOFTWARE
C                        ( D A T A C A P )
C 
C 
C     THIS FUNCTION WILL RESET THE STATUS BYTES OF A 2645-8 TERMINAL THAT 
C     PERTAIN TO THE LATCHING KEYS AND KEYBOARD INTERFACE SWITCHES A-Z
C     AS PER THE 2645/8 REFERENCE MANUAL. 
C 
C     CALL:         DIMENSION ITEMP(5)
C                   LOGICAL RESET 
C                       . 
C                       . 
C                       . 
C                   IF(RESET(LU,ITEMP,IVAL)) GO TO ERROR
C                   (NORMAL RETURN) 
C                   WHERE LU=LU OF TERMINAL TO SET STRAPS ON
C                         ITEMP=5 WORD BUFFER WHERE THE STRAP SETTINGS
C                               ARE PASSED FROM THE CALLER. 
C     RETURN:       ITEMP BYTE# 1  A-D
C                               2  E-H
C                               3  J-M
C                               4  N-R
C                               5  S-V
C                               6  W-Z
C                               7  MEMORY LOCK
C                               8  LATCHING KEYS
C 
C     ERROR RETURN:     IVAL=1  UNABLE TO SET SWITCH STATUS ON LU 
C                           =2  CANNOT INFORM DRIVER OF SWITCH SETTING
C                           =3  UNABLE TO SET LATCH STATUS ON LU
C 
C 
      DIMENSION ITEMP(5), 
     .         ILATCH(5), 
     .         ISWTCH(26),
     .         IGANDH(4)
C 
      LOGICAL RESET,ISBIT 
C 
C --- SET UP A BUFFER THAT WILL SET STRAPS G,H TO 0 
C 
      DATA IGANDH/2H&,2Hs0,2Hk0,44000B/
C 
C --- SET UP AN ARRAY OF LATCHES FOR A,B,C AND R, INITIALIZED TO 0. 
C 
      DATA ILATCH/2H&,2Hk0,2Hc0,2Hb0,40400B/ 
C 
C----SET UP AN ARRAY OF SWITCHES A-Z TO SET THE TERMINAL WITH. THIS 
C    ARRAY WILL BE SET UP WITH 0 VALUES.
C 
      DATA ISWTCH/2H&,2Hs0,2Ha0,2Hb0,2Hc0,2Hd0,2He0,2Hf0,2Hg0,2Hh0,
     .            2Hj0,2Hk0,2Hl0,2Hm0,2Hn0,2Hp0,2Hq0,2Hr0,2Hs0,2Ht0,
     .            2Hu0,2Hv0,2Hw0,2Hx0,2Hy0,55000B/
C 
      RESET=.TRUE.
      IF(ITEMP(1).LT.1.OR.ITEMP(1).GT.3) GO TO 5
C 
C --- THE STRAPS SENT ARE BAD SO SIMPLY CLEAR G AND H AND RETURN
C 
      CALL EXEC(100000B+2,2400+LU,IGANDH,4,0,0,0,0,LOCKW) 
      GO TO 50
      CALL EXEC(100000B+3,2500B+LU,0,0,0,0,0,0,LOCKW) 
      GO TO 55
      GO TO 99
C 
C --- CHECK THE BITS IN ITEMP TO DETERMINE WHAT TO TURN ON IN THE 
C     WAY OF SWITCHES A-Z. THE SUBSCRIPTS IN THE FOLLOWING LOOP 
C     ARE AS FOLLOWS:    I1: WORD # 
C                        I2: RIGHT/LEFT BYTE, 8=L,0=R 
C                        I3: BIT WITHIN BYTE
C 
5     DO 10, I1=1,3 
      DO 10, I2=8,0,-8
      DO 10, I3=0,3 
C 
      IF(ISBIT(ITEMP(I1),I2+I3)) CALL PUTCA 
     .  (ISWTCH,1H1,(((I1-1)*8)+(((I2-8)*(-1))/2)+I3)*2+4)
10    CONTINUE
C 
C --- SET THE A-Z SWITCHES
C 
      CALL EXEC(100000B+2,2400B+LU,ISWTCH,26,0,0,0,0,LOCKW) 
      GO TO 50
C 
C --- SET THE A,B AND C LATCH SETTINGS
C 
      DO 20 I1=1,3
      IF(ISBIT(ITEMP(4),I1-1)) CALL PUTCA(ILATCH,1H1,I1*2+2)
20    CONTINUE
      CALL EXEC(100000B+2,2400B+LU,ILATCH,5,0,0,0,0,LOCKW)
      GO TO 60
C 
C --- SWITCH AND LATCH SETTING WORKED, INFORM THE DRIVER. 
C 
      CALL EXEC(100000B+3,2500B+LU,0,0,0,0,0,0,LOCKW) 
      GO TO 55
C 
C --- DRIVER HAS BEEN INFORMED
C 
      RESET=.FALSE. 
      GO TO 99
C 
C --- UNABLE TO SET SWITCH SETTINGS 
C 
50    IVAL=1
      GO TO 99
C 
C --- UNABLE TO INFORM DRIVER OF SWITCH SETTING 
C 
55    IVAL=2
      GO TO 99
C 
C --- UNABLE TO SET LATCH SETTINGS
C 
60    IVAL=3
      GO TO 99
C 
C --- RETURN
C 
99    RETURN
      END 
      END$
                                                                            