ASMB,R,Q,C
      HED G1C?? - GASP ERROR EXPANDER MODULE
*     NAME:   G1C?? 
*     SOURCE: 92067-18439 
*     RELOC:  92067-16425 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (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 G1C??,8 92067-16425 REV.2013 800102 
      ENT G1CQQ 
      EXT .DFER,G1OMS,G0BUF,G0ERH,G0TTY,.ENTR 
      EXT EXEC
      SUP 
N     NOP 
LST   NOP 
      SPC 1 
G1CQQ  NOP           ENTRY POINT
      JSB .ENTR     GEN PRAMS 
      DEF LST 
      SPC 1 
      LDA LST       ADVANCE PRAM TO 
      ADA .4        THE FIRST PRAM
      STA LST       AND RESTORE 
      LDB G0ERH     GET ERROR PRAM
      ASR 16        EXTEND THE SIGN BIT 
      DIV .1000     DIVID 
      LDA B         ERROR CODE TO A 
      LDB LST,I     GET FLAG
      ISZ LST       STEP TO 
      SZB             IF NOT SUPPLIED USE .E.R. 
      LDA LST,I        ELSE USE FIRST PRAM
      CPA .99       IF PRAM=99
      JMP ALL        THEN PRINT ALL CODES ON LIST 
      STA N         SAVE CODE 
      ADA MOSNG     TEST FOR
      SSA             DEFINED  CODE 
      JMP UDF       TOO NEGATIVE
      LDA N 
      ADA NHLP1 
      SSA 
      JMP PRINT     OK - PRINT IT 
      ADA NHLG
      SSA 
      JMP UDF       IN   MID  CODE  GAP - UNDEFINED 
      ADA NHH 
      SSA,RSS 
      JMP UDF       TO  HIGH - UNDEFINED
      LDA N         ADJUST  N 
      ADA NHLG      FOR HIGH GROUP
      STA N         TABLE 
PRINT LDA N         GET  N
      ADA TBAD      ADD TABLE ADDRESS 
PR    LDB A,I       GET MESSAGE ADDRESS 
      STB MSAD      SET AS POINTER
      LDB B,I        MESSAGE
      STB A           LENGTH
      CMA,INA       SET FOR 
      STA N          MOVE 
      ADB .2          AND 
      STB LNMES        OUTPUT 
      JSB .DFER     MOVE THE FIRST THREE WORDS
      DEF G0BUF     TO THE BUFFER 
      DEF LNMES     INCLUDES THE LENGTH AND NAME
      LDA BUF.D       HEAD
      RSS 
      LDA A,I          OF 
      RAL,CLE,SLA,ERA   MESSAGE 
      JMP *-2            GET
      ADA .3              BUFFER ADDRESS AND
MOVE  ISZ MSAD
      LDB MSAD,I    MOVE
      STB A,I        MESSAGE
      INA             TO
      ISZ N             BUFFER
      JMP MOVE
      JSB G1OMS     PRINT 
      DEF FMRTN      ON 
BUF.D DEF G0BUF         DEVICE
FMRTN CLA 
      STA G0ERH 
      JMP G1CQQ,I    ELSE, RETURN 
      SPC 3 
UDF   LDA DFUDF     PICK UN DEFINED 
      JMP PR        AND SEND IT.
      SPC 3 
ALL   LDA G0TTY     SAVE THE TTYLU
      STA TTY       LOCALLY 
      LDA LST       IF
      ADA .4        A LU SUPPLIED 
      LDA A,I       THEN USE
      SZA           IT
      STA G0TTY 
      LDA G0TTY     GET THE LU
      AND B77       KEEP ONLY THE LU
      IOR B1100     ADD THE PAGE BITS 
      STA LUX       SET FOR EJECT 
      LDA PTRS      SET THE 
      STA CPTRS      POINTER FOR THE MESSAGES 
WRIT  JSB G1OMS     WRITE 
      DEF WRRTN      THE
CPTRS NOP               THE 
WRRTN ISZ CPTRS 
      LDA CPTRS     ELIMINATE THE 
      RAL,CLE,ERA   NOT DEFINED 
      LDA A,I       MESSAGES
      CPA NDEF      UNDEFINED MESSAGE?
      JMP WRRTN     YES SKIP IT 
* 
      LDA CPTRS,I   IF LENGTH NEGATIVE
      SSA,RSS       SKIP
      JMP WRIT      ELSE GO WRITE NEXT MESSAGE
      SPC 3 
      LDA TTY       RESTORE THE TTY LU
      STA G0TTY 
      JSB EXEC      SEND THE TOP OF FORM
      DEF EX
      DEF .3
      DEF LUX 
      DEF N2
EX    JMP G1CQQ,I   GO EXIT 
      SPC 2 
.1000 DEC 1000
.99   DEC 99
N2    DEC -2
.2    DEC 2 
.3    DEC 3 
.4    DEC 4 
B77   OCT 77
B1100 OCT 1100
TTY   NOP 
LUX   NOP 
      SPC 1 
MSAD  NOP 
DFUDF DEF *+1 
NDEF  DEF UDN-1 
LNMES NOP 
GASP  ASC 2,GASP
TBAD  DEF MS00
PTRS  DEF LSHED,I 
      ABS LUDN
UDN   ASC 6, NOT DEFINED
LUDN  EQU *-UDN 
LSHED DEF HEAD-1    THIS LIST 
      DEF BLNK-1     IS IN
      DEF HD2-1       THE 
      DEF BLNK-1       ORDER
      DEF ERM48-1 
      REP 14
      DEF UDN-1 
      DEF ERM33-1 
      DEF ERM32-1 
      REP 17
      DEF UDN-1 
      DEF ERM14-1       OF
      DEF ERM13-1        PRINTING 
      DEF ERM12-1         AND 
      DEF UDN-1            ALSO 
      DEF UDN-1             NUMERICAL 
      DEF UDN-1              ORDER
      DEF ERM8-1
      DEF ERM7-1
      DEF ERM6-1
      DEF UDN-1 
      DEF ERM4-1
      DEF UDN-1 
      DEF ERM2-1
      DEF ERM1-1
MS00  DEF ER0-1 
      DEF ER1-1 
      DEF ER2-1 
      DEF ER3-1 
      DEF ER4-1 
      DEF ER5-1 
      DEF ER6-1 
HLOW  EQU *-MS00-1  MOST POSITIVE OF LOW GROUP
      DEF ER43-1
      DEF UDN-1 
      DEF UDN-1 
      DEF ER46-1
      REP 7 
      DEF UDN-1 
      DEF ER54-1
      DEF ER55-1
      DEF ER56-1
NHIG  EQU *-MS00-HLOW-2 NUMBER OF HIGH ERRORS 
      DEF N2
* 
A     EQU 0 
B     EQU 1 
MSTN  EQU 48        MOST NEGATIVE ERROR CODE
LHIG  EQU 43        LOWEST OF HIGH GROUP
HHIG  EQU LHIG+NHIG HIGHEST OF HIGH GROUP 
      SPC 1 
MOSNG ABS MSTN         MOST NEG. CODE 
NHLP1 ABS -HLOW-1      NEG. OF LOW HIGH BOUND 
NHLG  ABS HLOW+1-LHIG  NEG. OF LOW HIGH GAP 
NHH   ABS LHIG-HHIG-1  NEG. OF HIGH SIZE. 
* 
*     ERROR TABLE -CODES ARE ENTERED IN ANY ORDER.
* 
      ABS L0
ER0   ASC  6, 0 NO ERROR
L0    EQU *-ER0 
      ABS LM1 
ERM1  ASC  7, -1 DISC ERROR 
LM1   EQU *-ERM1
      ABS LM2 
ERM2  ASC 12, -2 DUPLICATE FILE NAME
LM2   EQU *-ERM2
      ABS LM4 
ERM4  ASC 19, -4 MORE THAN 32767 RECORDS IN A TYPE
      ASC  4, 2 FILE
LM4   EQU *-ERM4
      ABS LM6 
ERM6  ASC  9, -6 FILE NOT FOUND 
LM6   EQU *-ERM6
      ABS LM7 
ERM7  ASC 13, -7 BAD FILE SECURITY CODE 
LM7   EQU *-ERM7
      ABS LM8 
ERM8  ASC 15, -8 FILE OPEN OR LOCK REJECTED 
LM8   EQU *-ERM8
      ABS LM12
ERM12 ASC 11, -12 EOF OR SOF ERROR
LM12  EQU *-ERM12 
      ABS LM13
ERM13 ASC  8, -13 DISC LOCKED 
LM13  EQU *-ERM13 
      ABS LM14
ERM14 ASC 10, -14 DIRECTORY FULL
LM14  EQU *-ERM14 
* 
      ABS LM32
ERM32 ASC 15, -32 DISC CARTRIDGE NOT FOUND. 
LM32   EQU *-ERM32
      ABS LM33
ERM33 ASC 19, -33 NOT ENOUGH ROOM ON DISC CARTRIDGE.
LM33   EQU *-ERM33
* 
      ABS LM48
ERM48 ASC 14, -48 SMP CANNOT BE SCHEDULED 
LM48  EQU *-ERM48 
      SPC 1 
      ABS L1
ER1   ASC  7, 1 DISC ERROR
L1    EQU *-ER1 
      ABS L2
ER2   ASC 11, 2 NUMBER OUT OF RANGE 
L2    EQU *-ER2 
      ABS L3
ER3   ASC  9, 3 BAD JOB NUMBER! 
L3    EQU *-ER3 
      ABS L4
ER4   ASC  9, 4 ILLEGAL STATUS
L4    EQU *-ER4 
      ABS L5
ER5   ASC  9, 5 ILLEGAL COMMAND 
L5    EQU *-ER5 
      ABS L6
ER6   ASC 6, 6 NOT FOUND
L6    EQU *-ER6 
      SPC 2 
      ABS L43 
ER43  ASC 12, 43 LU NOT FOUND IN SST
L43   EQU *-ER43
      ABS L46 
ER46  ASC 14, 46 INSUFFICIENT CAPABILITY! 
L46   EQU *-ER46
* 
      ABS L54 
ER54  ASC 13, 54 MOUNT ALL SPOOL DISCS! 
L54   EQU *-ER54
      ABS L55 
ER55  ASC 11, 55 MISSING PARAMETER
L55   EQU *-ER55
      ABS L56 
ER56  ASC  9, 56 BAD PARAMETER
L56   EQU *-ER56
      SPC 2 
      ABS LHEAD 
HEAD  ASC  9, GASP ERROR CODES
LHEAD EQU *-HEAD
      ABS LHD2
HD2   ASC  9, ERROR     MEANING 
LHD2  EQU *-HD2 
      ABS LBLNK 
BLNK  ASC  1, 
LBLNK EQU *-BLNK
      ORG *         PROGRAM LENGTH
      END 
                                                        