ASMB,R
      NAM MES12,7  92903-16378 REV.1913  790123 0830
      HED *               -MES12- 
* 
*     SOURCE 92903-18378
* 
      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 
      HED *               -MES12- 
      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 MES12     ENTRY POINT 
      EXT EXEC
      EXT .ENTR 
      EXT &REMP 
      EXT &MVW
      COM ILU       TERM. LU
* 
*  GET CALLING PARAMETERS AND INITIALISE
* 
NMESS NOP           FIRST PARM. ADDRESS 
NOF   NOP           SECD. PARM. ADDRESS 
NIER  NOP           THIRD PARAM ADDRESS 
MES12 NOP           ENTRY POINT 
      JSB .ENTR     SUBR. TO GET
      DEF NMESS     PARM. ADDRESS 
      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 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 MES12,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  CLEAR DISP CR,LF 
      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 
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 MES11 
      DEF TES12 
      DEF MES13 
      DEF MES14 
      DEF MES15 
      DEF MES16 
      DEF MES17 
      DEF MES18 
      DEF MES19 
      DEF MES20 
      DEF MES21 
      DEF MES22 
      DEF MES23 
      DEF MES24 
      DEF MES25 
      DEF MES26 
      DEF MES27 
      DEF MES28 
      DEF MES29 
      DEF MES30 
      DEF MES31 
      DEF MES32 
      DEF MES33 
      DEF MES34 
      DEF MES35 
      DEF MES36 
      DEF MES37 
      DEF MES38 
      DEF MES39 
* 
*  MESSAGE STORAGE
* 
MES1  ASC 23,Check existence incompatible with add update o 
      ASC 12,r delete in the same DS
MES2  ASC 12,Item must be a key item
MES3  ASC 9,Invalid item name 
MES4  ASC 7,IMAGE error # 
INMES BSS 3 
MES5  ASC 19,A find must be defined by a U question 
MES6  ASC 21,A find may be defined on one data set only 
MES7  ASC 23,First question defining a find in a detail set 
      ASC 12, must ask for a key item 
MES8  ASC 23,Update and delete incompatible in the same tra 
      ASC  4,nsaction 
MES9  ASC 23,Find item in a master data set must be a key i 
      ASC  2,tem
MES10 ASC 21,Check against data base defined previously 
MES11 ASC 21,Cannot add in automatic master data set
TES12 ASC 23,Item to add in a master data set must be defin 
      ASC  8,ed by U questions
MES13 ASC 20,A find must have been defined previously 
MES14 ASC 23,Find must be completely defined before update
      ASC  5,or display 
MES15 ASC 23,Item does not belong to the entry isolated by
      ASC  4,the Find 
MES16 ASC 14,A key item cannot be updated 
MES17 ASC 23,This operation in a master set must be associa 
      ASC 11,ted with a U question
MES18 ASC 23,This operation in a detail set must be associa 
      ASC 11,ted with a M question
MES19 ASC 23,For Add system provided information cannot be
      ASC 12,key item in a Master Set 
MES20 ASC 23,Key item to add in a detail set : linked maste 
      ASC 10,r must be automatic
MES21 ASC 22,No more than 5 IMAGE data set modifications
      ASC  7,can be defined 
MES22 ASC 20,Key item already defined under the name
INMS1 BSS 3 
      ASC 11, for an add operation
MES23 ASC 23,Add and delete incompatible in the same transa 
      ASC  3,ction
MES24 ASC 23,Item has not the required type or length to st 
      ASC 10,ore this information 
MES25 ASC 23,Cannot update or delete in automatic master da 
      ASC  3,ta set 
MES26 ASC  23,A find or check existence must be previously d
      ASC  10,efined on this item 
MES27 ASC 23,Item does not belong to the entry isolated by
      ASC 10,the check existence
MES28 ASC 23,Check Existence incompatible with Find in same 
      ASC  5, Data Set
MES29 ASC 23,Find incompatible with Check Existence in same 
      ASC  5, Data Set
MES30 ASC 21,CHECK EXISTENCE only allowed in Master DS
MES31 ASC 23,This item must belong to the same data set as
      ASC 12,the last item Displayed
MES32 ASC 22,A display from a detail data set must be fro 
      ASC  8,m an M-question
MES33 ASC 12,ADD to Mstr not allowed
MES34 ASC 17,Cannot TOTAL in a Master Data Set
MES35 ASC 21,TOTAL display is incompatible with DELETE
MES36 ASC 21,TOTAL display is incompatible with UPDATE
MES37 ASC 18,TOTALed item must be INTEGER or REAL 
MES38 ASC 26,This item's Data Set has no Keys--ADD cannot be done 
MES39 ASC  1,-1 
* 
* 
      END MES12 
                              