ASMB,R,L,C
*     NAME  : MAUTO 
*     SOURCE: 92064-18141 
*     RELOC:  92064-16030 
*     PROGMR: E.J.W.  BASED ON RTE-III VERSIONS G.A.A.,L.W.A.,D.L.S.
* 
*  **************************************************************** 
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980.  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.        * 
*  **************************************************************** 
* 
* 
      NAM AUTOR,1,1  92064-16030  REV.2026  800327
      EXT EXEC
* 
AUTOR NOP           ENTRY/TEMPORARY STORAGE 
* 
      CLA,INA       RESET LU# TO
      STA CNWD      1 FOR THIS ENTRY
* 
SRCH  JSB EXEC     *SEARCH EQT FOR DVR43* 
       DEF *+4       ERROR RETURN 
       DEF ICODE     REQUEST CODE 
       DEF CNWD      LU# FOR STATUS CALL
       DEF EQT5      BUF LOCATION 
       JMP BDLU      ERROR ROUTINE
* 
      LDA EQT5
      AND EMASK     MASK OUT STATUS AND AV. 
      CPA .43       TEST FOR POWER FAIL DRIVER
      JMP GTIME     FOUND DVR43-GO GET TIME OF P/F
BDLU  LDA CNWD      NOT DVR43--GO TRY AGAIN 
      CPA B77       TEST FOR END OF LU#S
      JMP NO.LU     YES-POWER FAIL DRIVER NOT FOUND 
      INA           NO-CONTINUE SEARCH--BUMP LU 
      STA CNWD      SAVE LU# FOR EXEC CALL
      JMP SRCH
* 
* 
* 
*         POWER FAIL DRIVER NOT FOUND 
* 
NO.LU JSB EXEC
       DEF *+5
       DEF .2 
       DEF .1 
       DEF NOBUF
       DEF NBL
      CLA 
      STA CNWD      SET P/F LU. TO 0 FOR SECOND CALL
      JMP SCAN
      SKP 
* 
* 
*         POWER FAIL DRIVER FOUND 
*              REQUEST READ TO
*              OBTAIN TIME
* 
GTIME JSB EXEC
       DEF GT2       RETURN 
       DEF .1        READ 
       DEF CNWD      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 YEAR 
      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
      JSB CNVRT     CONVERT YEAR
      STA YEAR      SAVE 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 LU        1 FOR SEARCH OF EQT 
SCAN2 JSB EXEC
       DEF *+6       ERROR RETURN POINT 
       DEF ICODE     REQUEST CODE 
       DEF LU        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
BAD   LDA LU        NOT DVR00-CONTINUE
      CPA B77       TEST FOR END OF SCAN
      JMP DONE      YES-GO RESET POINTERS AND CONSTANTS-EXIT
      INA           NO-BUMP LU# 
      STA LU        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 
* 
* 
* 
*         PRINT POWER FAIL MESSAGE
*         ON CONSOLE DEVICE FOUND IN SCAN ROUTINE 
* 
* 
* 
* 
* 
PRINT JSB EXEC
       DEF *+5       RETURN 
       DEF .2        WRITE COMMAND
       DEF LU        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 EXEC
       DEF *+5
       DEF N1        SECOND READ REQUEST
       DEF CNWD      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
BLK0  OCT 020060
ASCII OCT 030060
EMASK OCT 37400 
DVR05 OCT 02400 
SUBCH NOP 
B37   OCT 37
.43   OCT 21400 
D365  DEC 365 
B77   OCT 77
YEAR1 DEC 70
.2    DEC 2 
.3    DEC 3 
.1    DEC 1 
N1    OCT 100001
PRS1  OCT 153000
PRS2  OCT 203 
CNWD  OCT 1 
EQT5  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
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 
LU    EQU TEMP1     TEMPROARY STORAGE 
R.BUF DEF BUF1
IC2   DEC 6 
B     EQU 1 
N4    OCT -4
      END AUTOR 
                                                                                                                                                                                                                  