ASMB,R,L,C
      HED (FMGR) ??..: ERROR EXPANDER ROUTINE 
*     NAME:   ??..
*     SOURCE: 92071-18036 
*     RELOC:  92071-16036 
*     PGMR:   G.A.A.
*     MOD:    E.D.B.
* 
*  ***************************************************************
*  * (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 ??..,7 92071-1X036 REV.2041 800715
* 
      ENT ??..
* 
      EXT CAM.O, BUF.,  P.6 
      EXT L.OPN, L.HED, L.WRT, L.SPC, L.WEF 
      EXT ERSTR 
      EXT .ENTR, EXEC 
      SUP 
      SKP 
* 
*     DESCRIPTION 
* 
*     THIS IS THE ERROR EXPANSION ACTION ROUTINE OF THE FMGR. 
* 
*     ENTERED BY: 
* 
*     ??,ERR
* 
*     WHERE:
* 
*     ERR   IS FMGR ERROR TO EXPAND; IF NOT SUPPLIED, THE LAST
*           ERROR IS EXPANDED; IF 99 OR ASCII "AL", A LIST OF 
*           ERROR CODES IS PRINTED TO LIST FILE.
* 
*     LISTING FORMAT: 
* 
*L1   FMGR ERROR CODES
*L2   ERROR      MEANING
*L3 
* 
*     FOLLOWED BY A LINE FOR EACH VALID FMGR ERROR CODE 
* 
*LN   FMGR XXX        YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 
* 
*     WHERE:
* 
*     XXX    IS THE +/- FMGR ERROR CODE 
*     YYY... IS THE MESSAGE ASSOCIATED WITH THE ERROR CODE
      SKP 
* 
*     ENTRY 
* 
N     NOP 
LIS   NOP 
ER    NOP 
* 
??..  NOP 
      JSB .ENTR     GET PARAMETERS
      DEF N 
* 
*     PROCESS REQUEST 
* 
      LDB P.6       GET USER ERROR CODE 
      ASR 16         EXTEND THE SIGN
      DIV .1000     DIVIDE TO GET ERROR CODE (IN B-REG) 
* 
      LDA LIS,I     GET TYPE OF FIRST PARAMETER 
      ISZ LIS 
      SZA           IF SUPPLIED,
      LDB LIS,I      THEN GET ERROR CODE
* 
      CPB AL        IF PRAM = ALL,
      JMP ALL        THEN PRINT ALL CODES ON LIST 
* 
      CPB .99       IF PRAM=99
      JMP ALL        THEN PRINT ALL CODES ON LIST 
* 
*     PRINT SINGLE MESSAGE TO LOG DEVICE
* 
      STB ERR       SAVE ERROR CODE FOR ERSTR 
      JSB ERSTR     CONVERT ERROR CODE TO STRING
      DEF *+5 
      DEF ERR 
      DEF BUF.
      DEF .128
      DEF L 
* 
      JSB EXEC      WRITE THE MESSAGE ON THE LOG DEVICE 
      DEF *+5 
      DEF .2
      DEF CAM.O 
      DEF BUF.
      DEF L 
* 
      JMP EXIT      RETURN
      SKP 
* 
*     PRINT ALL ERROR MESSAGES TO LIST FILE 
* 
ALL   JSB L.OPN     OPEN LIST FILE
* 
******JSB L.HED     WRITE FIRST HEADER
      JSB L.WRT 
      DEF *+3 
      DEF HEAD1 
      DEF HD1LN 
* 
      JSB L.WRT     WRITE SECOND HEADER 
      DEF *+3 
      DEF HEAD2 
      DEF HD2LN 
* 
      JSB L.SPC 
* 
      LDA MOSNG     GET THE MOST NEGATIVE ERROR NUMBER
      STA ERR        SAVE 
* 
AGAIN JSB ERSTR     CONVERT ERROR MESSAGE TO STRING 
      DEF *+5 
      DEF ERR 
      DEF BUF.+1
      DEF .128
      DEF L 
* 
      SZA           IF MESSAGE NOT DEFINED
      JMP IGNOR      THEN IGNORE IT 
* 
      LDA BLANK     CLEAR FIRST WORD OF BUFFER
      STA BUF.
      ISZ L         INCREMENT BUFFER LENGTH 
* 
      JSB L.WRT     WRITE THE MESSAGE 
      DEF *+3        TO THE LIST DEVICE 
      DEF BUF.
      DEF L 
* 
IGNOR LDA ERR       GET ERROR 
      CPA MOSPS     IF THE MOST POSITIVE ERROR NUMBER,
      JMP FIN        THEN FINISHED
* 
      ISZ ERR       INCREMENT ERROR 
      NOP            (DON'T SKIP IF ZERO) 
      JMP AGAIN      AND DO ANOTHER ONE 
* 
FIN   JSB L.WEF     WRITE EOF TO FILE 
      SKP 
* 
*     EXIT
* 
EXIT  CLA           SET ERROR TO ZERO 
      STA P.6        GLOBAL 
      STA ER,I       RETURN CODE
      JMP ??..,I    RETURN
      SKP 
* 
*     STORAGE AREA
* 
.2    DEC 2 
.99   DEC 99
.128  DEC 128 
.1000 DEC 1000
* 
AL    ASC 1,AL
BLANK ASC 1,
* 
MOSNG DEC -104      MOST NEGATIVE ERROR CODE
MOSPS DEC 65        MOST POSITIVE ERROR CODE
* 
ERR   NOP           ERROR CODE
L     NOP           ACTUAL LENGTH 
* 
HD1LN DEC 10
HEAD1 ASC 20,  FMGR ERROR CODES 
      ASC 20, 
* 
HD2LN DEC 10
HEAD2 ASC 10,  ERROR     MEANING
* 
A     EQU 0 
B     EQU 1 
* 
END   EQU * 
* 
      END 
