ASMB,R
      NAM MES11,7 92080-1X376 REV.2026  800212        
      HED *                -MES11-
* 
*     SOURCE 92080-18376
* 
      SPC 2 
**************************************************************
* (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978.  ALL RIGHTS    *
* RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- *
* PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH-  *
* OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.  *
**************************************************************
      SPC 2 
      SUP 
* 
**********************************************************************
*                                                                    *
*                   THIS SUBROUTINE IS CALLED BY THE SEGMENT ANSWR   *
*  OF THE FORMG PROGRAM TO WRITE AN ERROR MESSAGE ON THE TERMINAL.   *
*                   THE ERROR MESSAGE IS PRINTED ON LINE 24 OF THE   *
*  SCREEN AND THE CURSOR IS MOVED TO THE WRONG FIELD.                *
*                   THIS SUBROUTINE IS CALLED WITH TWO PARAMETERS :  *
*                                                                    *
*           - PAR#1 =  ERROR MESSAGE # TO OUTPUT                     *
*           - PAR#2 =  WRONG FIELD # ON THE SCREEN                   *
*                                                                    *
**********************************************************************
* 
* 
      ENT MES11     ENTRY POINT 
      EXT EXEC
      EXT .ENTR 
      EXT &REMP 
      EXT &MVW
      COM ILU       TERM. LU
      COM XXXXX(5802)  DUMMY
      COM IMODE     TRANSACTION TYPE
* 
*  GET CALLING PARAMETERS AND INITIALISE
* 
NMESS NOP           FIRST PARM. ADDRESS 
NOF   NOP           SECD. PARM. ADDRESS 
NIER  NOP           THIRD PARAM ADDRESS 
NIER1 NOP           FOURTH ...........
MES11 NOP           ENTRY POINT 
      JSB .ENTR     SUBR. TO GET
      DEF NMESS     PARM. ADDRESS 
* 
      LDA IMODE     GET MANUAL VS. AUTOMATIC
      SZA           IGNORE IF MANUAL
      ISZ IMODE     CHANGE IMODE FROM 1 TO 2. 
* 
      LDA BUFAD     INITIALIZE
      LDB SPACE     ERROR MESSAGE 
      JSB &REMP     BUFFER
      DEC -35       TO BLANK
      LDA BUFA1     INITIALIZE
      LDB NULL      TAB BUFFER
      JSB &REMP      TO NULL
      DEC -50 
* 
*  MOVE ERROR MESSAGE IN OUTPUT BUFFER
* 
      LDA NIER      GET ERROR # IMAGE ADDRESS 
      LDB ANMES     GET ADDRESS OF DEST BUFFER
      JSB &MVW
      DEC 3 
      LDA NIER
      LDB ANMS1 
      JSB &MVW
      DEC 3 
      LDA NIER1 
      LDB ANMS2 
      JSB &MVW
      DEC 3 
* 
      LDA NMESS,I   GET ERROR MESSAGE # 
      ADA AMES0     COMPUTE MESSAGE 
      LDB A,I       ADDRESS 
      STB P1        STORE IT
      CMB,INB       MINUS STARTING ADDRESS
      STB IST        OF MESSAGE IN IST
      INA            COMPUTE NEXT MESSAGE 
      LDA A,I       STARTING ADDRESS
      ADA IST       COMPUTE MESSAGE LENGTH
      STA P2        STORE IT
      LDA P1        BUFFER SOURCE ADDRESS 
      LDB BUFAD     BUFFER DEST ADDRESS 
      JSB &MVW      MOVE WORDS
P2    NOP           BUFFER LENGTH 
* 
*  INCLUDE # OF NECESSARY TABS
* 
      LDA NOF,I     GET WRONG FIELD # 
      CMA,INA       MAKE IT NEG.
      ISZ A         INCREMENT: IS FIRST FIELD ? 
      RSS           NO
      JMP WRIT      YES OUTPUT BUFFER 
      STA P3        STORE NEG. # OF TABS
      LDA BUFA1     TAB BUFFER ADDRESS
      LDB TAB       TAB 
      JSB &REMP     INCLUDE TABS
P3    NOP           IN BUFFER 
* 
*  WRITE MESSAGE
* 
WRIT  JSB EXEC      WRITE EXEC CALL 
      DEF *+5       RETURN POINT
      DEF D.2       CODE EXEC 
      DEF ILU       CONTROL WORD
      DEF BUF       BUFFER LOCATION 
      DEF ILN       BUFFER LENGTH 
* 
*  RETURN TO CALLING PROGRAM
* 
      JMP MES11,I 
* 
*  BUFFER DATA
* 
BUF   BYT 33,130,33,46,141,62,62,162,60,103  FORMAT OFF:POS.CURSOR
      BYT 33,112,15,12,40,0 
      BYT 33,46,144,103 INVERSE VIDEO BLINKING
      ASC 2,ERRO
      BYT 122,33,46,144,100 END ENHANCEMENT 
      ASC 2,  : 
BUFER BSS 35        MESSAGE BUFFER
      BYT 33,127,33,110 FORMAT ON * HOME CURSOR 
BUF1  BSS 50        TAB BUFFER
      BYT 33,142    KEYBOARD ENABLE 
EBUF  BYT 0,137     SUPPRESS <CR>,<LF>
* 
* STORAGE , CONSTANTS ..
* 
BUFAD DEF BUFER     BUFF. ADDRESS 
BUFA1 DEF BUF1      TAB BUFFER ADDRESS
ANMES DEF INMES     IMAGE ERROR # ADDRESS 
ANMS1 DEF INMS1 
ANMS2 DEF INMS2 
A     EQU 0         A REGISTER
STAD  EQU BUF       BUFFER STARTING ADDRESS 
LTAD  EQU EBUF      BUFFER LAST ADDRESS 
IST   NOP 
P1    NOP           SOURCE ADDRESS BUFFER ADDRESS 
ILN   ABS LTAD-STAD+1 BUFFER LENGTH 
SPACE BYT 40,40 
NULL  BYT 0,0 
TAB   BYT 33,111
D.2   DEC 2 
* 
*  MESSAGE ADDRESS
* 
AMES0 DEF AMES1-1 
AMES1 DEF MES1
      DEF MES2
      DEF MES3
      DEF MES4
      DEF MES5
      DEF MES6
      DEF MES7
      DEF MES8
      DEF MES9
      DEF MES10 
      DEF MESI1 
      DEF MES12 
      DEF MES13 
      DEF MES14 
      DEF MES15 
* 
*  MESSAGE STORAGE
* 
MES1  ASC 15,Wrong data base security code
MES2  ASC 21,Data base not found on Cartridge specified 
MES3  ASC 8,Data base locked
MES4  ASC 7,IMAGE error # 
INMES BSS 3 
MES5  ASC 7,Key/Sort item 
INMS1 BSS 3 
      ASC 21, must be defined to add entry in data set
INMS2 BSS 3 
MES6  ASC 12,Level Access 15 Required 
MES7  ASC 18,Data Set Accessed > 512 words/record 
MES8  ASC  7,DBOPEN Failure 
MES9  ASC 17,File specified is not a root file
MES10 ASC 20,Not enough space for IMAGE data buffers
MESI1 ASC 15,No room in co-ordinating table 
MES12 ASC 17,Data Base is already open to user
MES13 ASC 27,Data Base open to another user in an incompatible mode 
MES14 ASC 10,Cartridge not found
MES15 ASC 1,-1
* 
* 
      END MES11 
              