CMPIERR
* /--- FILE TYPE = E
* /--- BLOCK CMPIERR 00 000 82/01/04 10.20
IDENT CMPIERR
CMPIERR TITLE CMPIERR - CMP CONDENSE ERROR ROUTINE.
*COMMENT CMP CONDENSE ERROR ROUTINE.
*** CMPIERR - CMP CONDENSE ERROR ROUTINE.
*
* THE CMP TRANSLATOR REPORTS TRANSLATION ERRORS
* TO *MPP$ERR* IN THIS IDENT. *MPP$ERR* USES THE
* STANDARD CONDENSOR ERROR ROUTINES TO LOG THE
* ERRORS.
CST
SYSCOM B1
LIST X
*CALL ZPXIDEF
LIST *
*CALL COMCMVE
MPP$ERR TITLE MPP$ERR - CMP ERROR REPORTING.
** MPP$ERR - CMP ERROR REPORTING.
*
* ENTRY (B1) = 1.
* (B2) = CYBIL STACK FRAME POOINTER.
* (B3) = CYBIL STACK LIMIT.
* (X1) = ERROR NUMBER.
* (X2) = BLOCK NUMBER.
* (X3) = LINE NUMBER.
* ((X4)) = COMMAND NAME.
* (X5) = TAG FWA.
*
* EXIT (B1) = 1.
* (B2) = AS ON ENTRY.
* (B3) = AS ON ENTRY.
*
* THE CURRENT BLOCK NUMBER, LINE NUMBER, AND COMMAND
* ARE SAVED AND RESTORED. THESE VALUES MUST BE
* BE PRESERVED FOR THE CONDENSOR READ ROUTINES IN
* IDENT GETLINE.
* /--- BLOCK CMPIERR 00 000 82/01/04 10.25
ENTRY MPO$ERR
MPO$ERR ENTR ENTRY
* SAVE CYBIL REGISTERS B2 AND B3.
SX6 B2
SX7 B3
LX6 18
BX6 X6+X7
SA6 ERRA
* SAVE CONDENSOR BLOCK NUMBER, LINE NUMBER, AND
* COMMAND NAME, AND REPLACE WITH CMP VALUES.
BX6 X2
BX7 X3
SA2 BLKNUM
SA3 LINENUM
SA6 A2
SA7 A3
BX6 X2
BX7 X3
SA6 ERRB
SA7 A6+B1
SA4 X4
BX6 X4
SA4 COMMAND
SA6 A4
BX6 X4
SA6 A7+B1
* SAVE CONDENSOR TAG.
BX0 X1 PRESERVE THE ERROR NUMBER
SX1 TAGLTH
SX2 TAG
SX3 ERRC
RJ MVE=
* MOVE CMP TAG INTO CONDENSOR TAG BUFFER.
SX1 TAGLTH
SX2 X5
SX3 TAG
RJ MVE=
* LOG THE ERROR.
SB1 X0
RJ =XRJERR
SB1 1 RESTORE (B1)
* RESTORE THE CONDENSOR TAG BUFFER.
SX1 TAGLTH
SX2 ERRC
SX3 TAG
RJ MVE=
* RESTORE THE CONDENSOR BLOCK NUMBER, LINE NUMBER,
* AND COMMAND NAME.
SA1 ERRB
SA2 A1+B1
SA3 A2+B1
BX6 X1
BX7 X2
SA6 BLKNUM
BX6 X3
SA7 LINENUM
SA6 COMMAND
* RESTORE CYBIL REGISTERS B2 AND B3.
SA1 ERRA
SB3 X1
AX1 18
SB2 X1
DONE EXIT
ERRA BSS 1 24/0, 18/(B2), 18/(B3)
ERRB BSS 1 BLKNUM
BSS 1 LINENUM
BSS 1 COMMAND
ERRC BSS TAGLTH TAG BUFFER
* /--- BLOCK CMPIERR 00 000 81/12/12 10.57
END