FTN4,L
      SUBROUTINE ACSEN(ISLOT,IRWD), 09580-16429 REV.2001 791023 
C 
C*******************************************************
C 
C  RELOCATABLE  09580-16429 
C  SOURCE       09580-18429 
C 
C  REY UNTALAN     790604 
C  BOB RICHARDS    791023 
C 
C**************************************************** 
C 
C 
C  !=================================================!
C  !                                                 !
C  ! (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979      !
C  !                ALL RIGHTS RESERVED              !
C  !                                                 !
C  ! NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,     !
C  ! REPRODUCED OR TRANSLATED INTO ANOTHER PROGRAM   !
C  ! LANGUAGE WITHOUT THE PRIOR WRITTEN CONSENT OF   !
C  ! THE HEWLETT-PACKARD COMPANY.                    !
C  !                                                 !
C  !-------------------------------------------------!
C  !                                                 !
C  ! TEST SYSTEM SOURCE SOFTWARE IS THE PROPRIETARY  !
C  ! MATERIAL OF THE HEWLETT-PACKARD COMPANY.        !
C  !                                                 !
C  ! THIS SOURCE DATA SHALL BE USED SOLELY IN        !
C  ! CONJUNCTION WITH ELECTRONIC COMPUTER SYSTEMS    !
C  ! SUPPLIED TO THE USER BY HEWLETT-PACKARD.        !
C  !                                                 !
C  ! THIS PROPRIETARY DATA SHALL NOT BE COPIED OR    !
C  ! OTHERWISE REPRODUCED WITHOUT THE PRIOR WRITTEN  !
C  ! CONSENT OF HEWLETT-PACKARD, EXCEPT THAT ONE     !
C  ! COPY MAY BE MADE AND RETAINED BY THE USER FOR   !
C  ! ARCHIVE PURPOSES.                               !
C  !                                                 !
C  ! THE USER SHALL NOT DISCLOSE THIS DATA TO ANY    !
C  ! THIRD PARTIES WITHOUT THE PRIOR WRITTEN CONSENT !
C  ! OF HEWLETT-PACKARD. IN ADDITION, THE USER SHALL !
C  ! USE AT LEAST THE SAME CARE AND SAFEGUARDS TO    !
C  ! PROTECT THIS DATA FROM UNAUTHORIZED USE OR      !
C  ! DISCLOSURE AS THE USER USES TO PROTECT ITS OWN  !
C  ! PROPRIETARY DATA.                               !
C  !                                                 !
C  !=================================================!
C 
C  GENERAL: 
C  -------- 
C 
C    THE FOLLOWING DEVICE SUBROUTINES ARE USED
C   TO PROGRAM THE EVENT SENSE CARD (69434) 
C --------------------- 
C 
C HARDWARE
C --------
C 
C 
C 
C   HP 12566-60024 MICROCIRCUIT CARD
C        JUMPERED AS FOLLOWS: 
C 
C         W1-A
C         W2-W4-B 
C         W5-W8-OUT 
C         W9-A
C 
C      JUMPER THE 69434 AS FOLLOWS: 
C 
C          W2 - B 
C          W3 - D (EXT.WORD  NOT EQUAL TO  REF. WORD) 
C          W4 - OUT 
C          W6 - IN
C 
C 
C BRANCH AND MNEMONIC TABLE ENTRIES 
C 
C ACSEN(I,I)    OV=XX,  ENT=ACSEN FIL=%ACSEN
C SENPL(IV,IV)   OV=XX,  ENT=SENPL, FIL=%ACSEN
C 
C************************************************ 
C 
C   ERRORS: 
C           1 = PARAMETER ERROR 
C           9 = I/O ERROR 
C          10 = LU ERROR
C 
C 
C************************************************ 
C 
C 
C     SUBROUTINE ACSEN(ISLOT,IRWD)
C 
C 
C  WHERE: 
C         ISLOT = SLOT # OF 69434A (EVENT SENSE CARD) 
C                 400 THRU 414  OF 6940B MULTIPROGRIMMER
C 
C         IRWD = REFERENCE WORD FOR 69434A
C               0 TO 7777 
C 
C 
C*****************************************
      DIMENSION IERMS(5)
      DATA IERMS/10,5,2HAC,2HSE,2HN / 
      DATA IDTN/23/ 
C 
C  FIND STATION # AND LU #
C 
      IERMS=10
      ISTN=ISN(DUMMY) 
      LU=LUDV(ISTN,IDTN)
      IF(LU)800,800,20
C 
20    CALL XCSEN(LU,IERMS,ISLOT,IRWD) 
      IF(IERMS)800,30,800 
30    RETURN
C 
800   CALL ERROR(IERMS,IERMS(2))
      RETURN
      END 
C 
C===============================================================
C 
C 
C 
C 
C   THIS SUBROUTINE WILL POLL EACH SLOT OF THE  6940B 
C   SEQUENTIALLY STARTING AT SLOT 400. THE FIRST CARD 
C   THAT SETS THE IRQ (BIT 15) WILL BE RETURNED IN IWD1   . 
C   IWRD WILL BE THE EXTERNAL WORD. IT IS UP TO THE PROGRAM-
C   MER TO DETERMINE WHICH BIT OR BITS CAUSED THE INTERRUPT.
C 
C 
      SUBROUTINE SENPL(IWD1,IWRD), 09580-16429 REV.2001 791023
C 
C 
      DIMENSION IBUF(2),IERR(5),ID(5),IDBUF(3),ICBUF(3) 
      DATA IDTN /23/
      DATA ICBUF/4,5/ 
C 
C 
C 
      ISTN =ISN(DUMMY)
      LU =LUDV(ISTN,IDTN) 
      IF(LU)800,800,100 
C 
C 
100   IDBL = 2
      ICBL =2 
      IDBUF(1) = 13 
      IBUF(1) = 13
C 
      ICWD = 170200B
C 
      IWD1=-1 
      IWRD=-1 
C 
C  OUTPUT CONTROL WORD
C 
      CALL EXEC(100002B,100B+LU,ICWD,1) 
      GOTO 7000 
C 
C 
C 
C 
C  POLL EACH SLOT 
C 
110   DO 120 ISLOT=0,14 
C 
      IDBUF(2) =ISLOT*10000B
C 
C 
C 
C 
C 
C 
C  OUTPUT SLOT # WITHOUT GATE 
C 
      CALL EXEC(100002B,11300B+LU,IDBUF,2,ICBUF,2)
      GOTO 7000 
C 
C 
C  READ EXTERNAL WORD 
C 
130   CALL EXEC(100001B,11300B+LU,IBUF,2,ICBUF,2) 
      GOTO 7000 
C 
C  CHECK IF BIT(15) IS SET
C 
140   IF(IBUF(2) .LT. 0) GOTO 200 
C 
C  NO IRQ 
C  CHECK NEXT SLOT
C 
120   CONTINUE
C 
C 
C  DID NOT FIND ANY SLOT THAT SET BIT 15
C 
C 
C 
      GOTO 8001 
C 
C   WE FOUND IT 
C 
200   IWD1 = 400+ISLOT
C 
C  PROCESS EXTERNAL WORD
C 
      IWD2=IAND(IBUF(2),7777B)
C 
C 
C 
C 
      ID(1)=IAND(IWD2,7000B)/1000B
      ID(2)=IAND(IWD2,700B)/100B
      ID(3)=IAND(IWD2,70B)/10B
      ID(4)=IAND(IWD2,7B) 
C 
      ID(1)=ID(1)*1000
      ID(2)=ID(2)*100 
      ID(3)=ID(3)*10
C 
C 
      IWRD =ID(1)+ID(2)+ID(3)+ID(4) 
C 
C 
C 
C 
C 
C 
8001  RETURN
C 
C 
C  ERROR EXIT 
C 
800   IERR=10 
      GOTO 8500 
7000  IERR=9
8500  IERR(2)=5 
      IERR(3)=2HSE
      IERR(4)=2HNP
      IERR(5)=2HL 
      CALL ERROR(IERR,IERR(2))
      RETURN
      END 
C===============================================
C 
C 
      SUBROUTINE XCSEN(LU,IERR ,ISLOT,IRWD), 09580-16429 REV.2001 
     +791023
C 
C 
      DIMENSION IERR(5),ID(5),IREG(2),IOBUF(5),ICBUF(5) 
      DIMENSION IDBUF(5)
      EQUIVALENCE(REG,IREG,IA),(IREG(2),IB) 
      DATA ICBUF/4,3/ 
C 
C 
C   CHECK PARAMETERS
C 
      IERR=0
C 
      ISLOT=ISLOT-400 
C 
      IF(ISLOT .LT. 0 .OR. ISLOT .GT. 14) GOTO 8000 
C 
      IF(IRWD .LT. 0 .OR. IRWD .GT. 7777) GOTO 8000 
C 
C 
C   PROCESS REFERENCE WORD
C 
      ID(1) = IRWD/1000 
      ID(2) = (IRWD - (ID(1)*1000))/100 
      ID(3) = (IRWD - (ID(1)*1000) - (ID(2)*100))/10
      ID(4) = IRWD-(ID(1)*1000)-(ID(2)*100)-(ID(3)*10)
C 
C  CHECK EACH DIGIT 
C 
      DO 100 I= 1,4 
      IF(ID(I) .GT. 7) GOTO 8000
100   CONTINUE
C 
C 
C POSITION EACH DIGIT 
C 
      ID(1) = ID(1)*1000B 
      ID(2) = ID(2)*100B
      ID(3) = ID(3)*10B 
C 
C 
C 
C 
C  POSITION SLOT# TO PROPER PLACE 
C 
      ISLOT = ISLOT*10000B
C 
C 
C FORM THE SLOT# AND REFERENCE WORD 
C 
      IDATA=ID(1) 
      DO 200 I=2,4
200   IDATA=IOR(ID(I),IDATA)
C 
C 
      IOBUF(1) = 170000B
      IOBUF(2) = IOR(ISLOT,IDATA) 
      IOBUF(3) = 170420B
C 
C 
      IDBL=2
      ICBL=2
      IDBUF(1) = 13 
      IDBUF(2) = IOBUF(3) 
C 
C 
C 
C 
C  OUTPUT CONTROL WORD ,SLOT # WITH REFERENCE,AND 
C  CONTROL WORD TO SET IEN AND TME ON.
C 
C 
      CALL EXEC(100002B,100B+LU,IOBUF(1),3) 
      GOTO 7000 
C 
C 
C 
C 
C 
1000  CALL EXEC(100002B,11300B+LU,IDBUF,IDBL,ICBUF,ICBL)
      GOTO 7000 
C 
C 
1001  RETURN
C 
C 
C 
C ERROR EXIT
C 
8000  IERR=1
      GOTO 8500 
7000  IERR=9
8500  IERR(2)=5 
      IERR(3)=2HAC
      IERR(4)=2HSE
      IERR(5)=2HN 
      RETURN
      END 
                                        