Google
 

Trailing-Edge - PDP-10 Archives - cuspmar86binsrc_2of2_bb-fp63a-sb - 10,7/galaxy/operat/oprerr.mac
There are 26 other files named oprerr.mac in the archive. Click here to see a list.
TITLE	OPRERR	ORION MODULE FOR BUILDING ORION ERROR CODES
SUBTTL	Murray Berkowitz	12-SEP-85

;
;
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1986.
;ALL RIGHTS RESERVED.			       
;                    
;
;     THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY  BE  USED
;     AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE
;     AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.   THIS
;     SOFTWARE  OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR
;     OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.  NO  TITLE  TO
;     AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
;
;     THE INFORMATION  IN  THIS  SOFTWARE  IS  SUBJECT  TO  CHANGE
;     WITHOUT  NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT
;     BY DIGITAL EQUIPMENT CORPORATION.
;
;     DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
;     OF  ITS  SOFTWARE  ON  EQUIPMENT  WHICH  IS  NOT SUPPLIED BY
;     DIGITAL.

	SEARCH	GLXMAC,ORNMAC,QSRMAC
	PROLOG(OPRERR)


	ERREDT==:4		;ERROR MODULE EDIT NUMBER

	%%.OPR==:%%.OPR		;LET LINK CATCH VERSION SKEWS
	OPRVRS==:OPRVRS		;...

	COMMENT \
	THIS MODULE WILL BUILD THE ERROR CODE TABLES FOR ORION
	WHICH CONSIST OF TWO PARTS

		1.	ASCIZ MESSAGES
		2.	ITEXT MESSAGES
		3.	ITEXT MESSAGES FOR ACKS
	\


	EXTERNAL	JOBTXT
	EXTERNAL	G$ARG1
	EXTERNAL	G$ARG2
	EXTERNAL	G$ARG3
	EXTERNAL	APLNAM
	EXTERNAL	G$SID
	EXTERNAL	G$JOB	
	EXTERNAL	LOGFD
SUBTTL	Tables for Error Codes Reported

	EXTERNAL G$ERR			;DEFINED EXTERNAL

DEFINE	X(SUFFIX,TEXT),<
E$'SUFFIX:: PUSHJ P,RPTERR		;DISPATCH TO ERROR HANDLER
>  ;END OF DEFINE X

ERRTBL:: ERRCDS				;EXPAND THE DISPATCH TABLE
DEFINE	X(SUFFIX,TEXT),<
E$'SUFFIX:: PUSHJ P,RPTERR		;DISPATCH TO ERROR HANDLER
>  ;END OF DEFINE X
ERRTEX:	ERRTXT				;EXPAND TEXT MACROS
RSPMSG:	ORNMSG				;GOOD ACKS
	TXTERR==ERRTEX-ERRTBL+1		;GET NUMBER OF FIRST TEXT ERROR
	GOODMS=:RSPMSG-ERRTBL+1		;START OF GOOD MESSAGES



DEFINE	X(SUFFIX,TEXT),<
	EXP	[ASCIZ\TEXT\]		;TABLE OF MESSAGES
>  ;END OF DEFINE X



TXTTBL:: EXP	[BYTE (7)0]		;0 IS NOT REALLY AN ERROR
	ERRCDS				;DEFINE THE REST OF THEM
DEFINE	X(SUFFIX,TEXT),<
	EXP	[ITEXT(<TEXT>)]		;TABLE OF MESSAGES
>  ;END OF DEFINE X
TXTTEX:	ERRTXT
GOODTX:	ORNMSG				;DEFINE GOOD MESSAGES

DEFINE	X(SUFFIX,TEXT),<
	MF.FAT!INSVL.(<SIXBIT\   SUFFIX\>,MF.SUF)
>  ;END OF DEFINE X

STSTBL:: MF.NOM				;0 HAS NO TEXT ASSOCIATED
	ERRCDS				;EXPAND THE REST NOW
	ERRTXT				;EXPAND TEXT ERRORS

DEFINE	X(SUFFIX,TEXT),<
	INSVL.(<SIXBIT\   SUFFIX\>,MF.SUF)
>;END X
	ORNMSG				;EXPAND GOOD ACKS

;HERE WHEN SOMEONE CALLS (OR EXITS THROUGH) ANY OF THE E$xxx ERROR CODES
;	OR T$XXX ERROR CODES
;	THIS STORES THE RELATIVE ERROR NUMBER INTO G$ERR

RPTERR:: EXCH	T1,(P)			;SAVE T1, GET ERROR DISPATCH
	TLZ	T1,-1			;CLEAR THE LEFT HALF
	SUBI	T1,ERRTBL		;CONVERT TO ERROR INDEX
	CAIL	T1,TXTERR		;CHECK FOR TEXT ERROR
	TLO	T1,400000		;FLAG AS TXTERR
	SKIPN	G$ERR			;DON'T SAVE THIS IF ALREADY AN ERROR
	MOVEM	T1,G$ERR		;SET GLOBAL ERROR INDICATOR
	POP	P,T1			;RESTORE T1 AND RETURN
	$RETF				;PROPAGATE ERROR TO TOP LEVEL

	END				;END OF OPRERR