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$