ASMB,R,L,C
*     NAME  : AUTO7 
*     SOURCE: 91730-18009  1926 
*     RELOC:  91730-16009  1926 
*     PROGMR: G.W.J.  BASED ON RTEM E.J.W.
* 
*  **************************************************************** 
*  * (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 WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.        * 
*  **************************************************************** 
* 
* 
* 
*  NOTE: THE ENTRY POINT "XLUEX" IS PROVIDED FOR INTERNAL USE 
*        ONLY. HEWLETT-PACKARD RESERVES THE RIGHT TO REMOVE OR
*        MODIFY THE CALLING SEQUENCE OR PARAMETER MEANINGS. THE 
*        "XLUEX" CALLING SEQUENCE IS IDENTICAL TO "EXEC" EXCEPT 
*        IN THE CONTROL WORD DEFINITION.
* 
*        EXEC CONTROL WORD: ONE WORD PARAMETER DEFINING LOGICAL UNIT
*                           AND FUNCTION CODE.
* 
*        XLUEX CONTROL WORD: TWO WORD PARAMETER USED TO DEFINE: 
* 
*                            WORD 1>LOGICAL UNIT  (BITS 7-0)
*                            WORD 2>FUNCTION CODE (BITS 10-6) 
* 
*              THE FUNCTION CODE FIELD IS IDENTICAL TO THE FUNCTION 
*              CODE FIELD DEFINED FOR STANDARD EXEC I/O REQUESTS. 
* 
* 
* 
      HED POWER FAIL RESTART RTN. FOR MULTIPOINT
      NAM AUTOR,1,1 91730-16009 REV.1926  790206
      EXT EXEC,FIXMP,XLUEX
* 
A     EQU 0 
B     EQU 1 
* 
AUTOR NOP           ENTRY/TEMPORARY STORAGE 
      JSB FIXMP     RESTART MP SYSTEM 
      DEF *+1 
* 
      CLA,INA       RESET LU# TO
      STA PLU       1 FOR THIS ENTRY
* 
SRCH  JSB XLUEX    *SEARCH EQT FOR DVR43* 
       DEF *+5       ERROR RETURN 
       DEF ICODE     REQUEST CODE 
       DEF PLU        LU# FOR STATUS CALL 
       DEF EQT5      BUF LOCATION 
       DEF EQT4      BUF LOCATION 
       JMP BDLU      ERROR ROUTINE
* 
      LDA EQT5
      AND EMASK     MASK OUT STATUS AND AV. 
      CPA .43       TEST FOR POWER FAIL DRIVER
      JMP BDLU1     FOUND DVR43-GO CHECK FOR SC=4 
BDLU  LDA PLU       NOT DVR43--GO TRY AGAIN 
      CPA MAXLU     TEST FOR END OF LU#S
      JMP NO.LU     YES-POWER FAIL DRIVER NOT FOUND 
      INA           NO-CONTINUE SEARCH--BUMP LU 
      STA PLU       SAVE LU# FOR EXEC CALL
      JMP SRCH
* 
BDLU1 LDA EQT4      GET EQT4
      AND B77       MASK TO GET SC
      CPA B4        SC=4-->POWER FAIL 
      JMP GTIME     FOUNF POWER FAIL LU GO GET TIME OF P/F
      JMP BDLU      NO, GO SERCH SOME MORE. 
* 
* 
* 
*         POWER FAIL DRIVER NOT FOUND 
* 
NO.LU JSB EXEC
       DEF *+5
       DEF .2 
       DEF .1 
       DEF NOBUF
       DEF NBL
      CLA 
      STA PLU       SET P/F LU. TO 0 FOR SECOND CALL
      JMP SCAN
* 
* 
*         POWER FAIL DRIVER FOUND 
*              REQUEST READ TO
*              OBTAIN TIME
* 
GTIME JSB XLUEX 
       DEF GT2       RETURN 
       DEF .1        READ 
       DEF PLU       LU OF P/F DRIVER 
       DEF TIME      TIME BUFFER
       DEF .3        BUFFER LENGTH
* 
* 
* 
GT2   LDA TIME     *CONVERT TIME FOR PRINTING*
      LDB TIME+1
      CLE           CLEAR E FOR ADDITION
      ADA PRS1      ADD POSITIVE 24 HRS.
      SEZ           TO GET A POSITIVE 
      INB           TIME
      ADB PRS2
      DIV .6000     DIVIDE BY 6000
      STA BUF1      TEMPORARY STORAGE FOR MIN/HRS 
      ASR 16        POSITION B(SEC/10MS) FOR DIVIDE 
      DIV .100      DIVIDE BY 100 TO GET SEC/10MS 
      STB BUF4      SET 10MS VALUE
      STA BUF3      SET SECONDS VALUE 
      CLB           CLB FOR DIVIDE
      LDA BUF1      GET MIN/HRS 
      DIV .60       SEPARATE
      STB BUF2      SET MIN 
      LDB R.BUF     SET BUFFER AREA POINTER 
      STB TEMP1     FOR THIS CONVERSION 
      LDB N4        SET CONVERSION COUNTER
      STB TEMP2 
* 
* 
BACK  JSB CNVRT     GO CONVERT TO ASCII 
      STA TEMP1,I   SAVE IN OUTPUT BUFFER 
      ISZ TEMP2     TEST FOR END OF CONVERSION
      RSS 
      JMP DA.YR     GO CONVERT  DAY AND YEAR
      ISZ TEMP1     BUMP OUTPUT POINTER 
      ISZ TEMP1 
      LDA TEMP1,I   GET NEXT VALUE
      JMP BACK      GO CONVERT NEXT VALUE 
* 
DA.YR LDA TIME+2    FETCH DAY AND YEAR
      CLB 
      DIV D365      GET YEAR
      CCE,INB       INCRE (B) FOR DAY 0 CORRECTION
      ADA YEAR1     SET YEAR INTO BUFFER
      STA YEAR      SAVE FOR PRINTING 
      ASR 16        PREPARE TO GET DAY
      DIV .100      GET HUNDREDS
      IOR BLK0
      STA DAY       SAVE IN PRINT BUFFER
      ASR 16
      JSB CNVRT     GO GET TENS AND ONES
      STA DAY+1  SAVE IN PRINT BUFFER 
      LDA YEAR      CONVERT YEAR TO ASCII 
      JSB CNVRT 
      STA YEAR
* 
* 
* 
*         SCAN EQT FOR ALL TTY DEVICES (DVR00)
*         AND ISSUE WRITE REQUEST (POWER FAIL 
*         TIME MESSAGE ) TO EACH
* 
* 
* 
SCAN  CLA,INA       SET LU#. TO 
      STA TLU       1 FOR SEARCH OF EQT 
SCAN2 JSB XLUEX 
       DEF *+6       ERROR RETURN POINT 
       DEF ICODE     REQUEST CODE 
       DEF TLU       LU# FOR STATUS TEST
       DEF EQT5      BUF LOCATION 
       DEF TIME      DUMMY LOCATION FOR EQT4
       DEF SUBCH     SUBCHANNEL INFO RETURNED HERE
       JMP BAD       LU NOT ASSIGNED-GO TEST NEXT LU
* 
      LDA EQT5      FETCH EQT5
      AND EMASK     GET RID OF STATUS AND AV. 
      SZA,RSS       TEST FOR DVR00
      JMP PRINT     FOUND DVR00 GO PRINT P/F MESSAGE
      CPA DVR05     IS IT DVR05?
      JMP SBCHK      CHECK SUBCHANNEL TO BE SURE IT IS CRT
      CPA DVR07     CHECK FOR DRIVER TYPE 07
      JMP LINCK      CHECK FOR LINE EQT 
BAD   LDA TLU       NOT DVR00-CONTINUE
      CPA MAXLU     TEST FOR END OF SCAN
      JMP DONE      YES-GO RESET POINTERS AND CONSTANTS-EXIT
      INA           NO-BUMP LU# 
      STA TLU       SET LU# FOR NEXT TEST 
      JMP SCAN2     GO TEST NEXT LU 
* 
SBCHK LDA SUBCH     IT'S DVR05, IS IT CRT?
      AND B37 
      SZA 
      JMP BAD        NO 
      JMP PRINT     YES, PRINT THE MESS.
* 
*     ROUTINE TO LOCATE MULTIPOINT LINE LU'S. 
* 
LINCK LDA TLU       GET EQT NUMBER FROM DRT 
      ADA DM1 
      ADA 1652B 
      LDA A,I 
      AND B77       MASK LOW SIX BITS 
      ADA DM1       CALC. EQT ADD.
      MPY .15 
      ADA 1650B 
      STA B         SAVE EQT ADD IN "B" 
      ADA .10       GET EQT11 
      LDA A,I 
      SZA,RSS       ACTIVE EQT (EQ11#0)?
      JMP BAD       NO, QUIT
      LDA B         YES, GET EQT ADD BACK 
      ADA .12       GET EQT EXT ADD 
      LDA A,I 
      LDA A,I       GET THE CONT. 
      SSA,RSS       LINE EQT?(EQT16-B15=1-->LINE) 
      JMP BAD       NO,QUIT 
* 
*     JMP PRINT     YES, PRINT MESS.
* 
*  NOTE FALL THROUGH TO "PRINT" 
* 
* 
* 
* 
* 
*         PRINT POWER FAIL MESSAGE
*         ON CONSOLE DEVICE FOUND IN SCAN ROUTINE 
* 
* 
* 
* 
* 
PRINT JSB XLUEX 
       DEF *+5       RETURN 
       DEF .2        WRITE COMMAND
       DEF TLU       LU# OF DEVICE
       DEF MESS      P/F MESSAGE
       DEF MESL.     MESSAGE LENGTH 
       JMP BAD       GO TEST FOR END OF SEARCH-CONTINUE 
      SPC 5 
* 
* 
* 
*      CONVERT A TWO DIGIT BINARY NUMBER INTO ASCII 
* 
* 
* 
* 
CNVRT NOP 
      CLB 
      DIV .10       GET TENS AND ONES 
      ALF,ALF       SHIFT TENS DIGIT INTO UPPER CHAR POSITION 
      IOR ASCII     CREATE AN ASCII FIELD 
      IOR B         'OR' IN ONES DIGIT
      JMP CNVRT,I 
* 
* 
* 
*     SECOND CALL ON P.FAIL ROUTINE RESETS
*     TO SAVE TIME ON NEXT FAILURE. 
* 
* 
DONE  JSB XLUEX 
       DEF *+5
       DEF N1        SECOND READ REQUEST
       DEF PLU       LU OF P/F DRIVER.
       DEF TIME      TIME BUFFER
       DEF .3        BUFFER LEGNTH
       NOP           POINT OF RETURN IF P/F LU. UNKNOWN 
      SPC 5 
* 
* 
* 
* 
* 
* 
* 
* 
*************EXIT TO SYSTEM*************
      JSB EXEC
       DEF *+2
       DEF IC2
* 
* 
* 
* 
*              CONSTANT AND STORAGE AREAS 
* 
* 
ICODE OCT 100015
YEAR1 DEC 70
BLK0  OCT 020060
ASCII OCT 030060
EMASK OCT 37400 
DVR05 OCT 02400 
DVR07 OCT 03400 
SUBCH NOP 
B37   OCT 37
.43   OCT 21400 
B4    OCT 4 
D365  DEC 365 
B77   OCT 77
.2    DEC 2 
.3    DEC 3 
.1    DEC 1 
N1    OCT 100001
PRS1  OCT 153000
PRS2  OCT 203 
EQT5  BSS 1 
EQT4  BSS 1 
TEMP2 EQU EQT5      TEMPORARY STORAGE 
NOBUF OCT 6412      CR/LF 
      ASC 12, NO POWER FAIL LU FOUND. 
NBL   DEC 13
TIME  BSS 3 
.6000 DEC 6000
.100  DEC 100 
.60   DEC 60
.10   DEC 10
.12   DEC 12
.15   DEC 15
DM1   DEC -1
MESS  OCT 6412
      ASC 9, POWER FAILED AT
BUF1  NOP 
      ASC 1,: 
BUF2  NOP 
      ASC 1,: 
BUF3  NOP 
      ASC 1,. 
BUF4  NOP 
       ASC 4,0 ON DAY 
DAY   BSS 2 
      ASC 2, OF 
      ASC 1,19
YEAR  BSS 1 
MESL. DEC 27
TEMP1 BSS 1         TEMPORARY STORAGE 
****
PLU   NOP           NOTE : 2 WORD PARAMETER FOR XLUEX 
      NOP 
****
****
TLU   NOP           TERMINAL LU 
      OCT 400       SET THE "K" BIT 
****
* 
R.BUF DEF BUF1
IC2   DEC 6 
N4    OCT -4
MAXLU EQU 1653B 
      END AUTOR 
                          