Google
 

Trailing-Edge - PDP-10 Archives - red405a2 - rel/scnm20.unv
There are 10 other files named scnm20.unv in the archive. Click here to see a list.
x,r)@P I4 p8C
				ND	MX.A,B
				ND	A8D.A,C
				ND	PD.A,D				ND	PI?87 
`9~
	XALL


			
DEFINE	X(OC,$POIN
	EXP  SIXBIT  /$NAME/
>
 AN:	SWTCHS
AL=@=.-AN

			
IF`2,<
DEFINE	X($NAME,$PROC,$POINT,$ DEFLT,$MAX,$FLAGS@),<
..TEMP==0
I`RP $POINT,<
    IFE ..TEMP-1,<
	 $POINT			;$NAME
@    >
    IFE ..`TEMP-2,<
	POINT	36,$POINT,35	;$NA ME
    >
    IF@IDN <$POINT><*P>,`<..TEMP==1>	
    IFIDN <$POINT><* F>,<..TEMP==2>	
@>

IFB <$POINT>`,<
	Z			;$NAME
>
IFNB <$POINT>, <IFE ..TEMP,<
	$@POINT			;$NAME
>`>
>>
AP:	SWTCHS

			
			
MX .==0
DEFINE	X($N@AME,$PROC,$POINT,`$DEFLT,$MAX,$FLAGS),<
IF2,<
IFE  <$FLAGS>&FS.LRG,<@IFG <$MAX>-377777`,<PRINTX ?MAXIMUM OF /$NAME CANNOT  BE GT 377777>>
@>
..TEMP==1
IFN` <$FLAGS>&FS.LRG,<IFN <$MAX>,<..TE MP==0>>
IFN ..TE@MP,<
	XWD	$MAX,$`PROC	;$NAME
>
IFE ..TEMP,<
	XWD 	[$MAX],$PROC	;$N@AME
>
>
AM:	S`WTCHS

			
PD.==0
DEFINE	X($NA ME,$PROC,$POINT,$@DEFLT,$MAX,$FLAGS`),<
IF2,<
IFL <$DEFLT>,<IFN <$DE FLT>+1,<PRINTX ?D@EFAULT OF /$NAME `CANNOT BE NEGATIVE>>
IFE <$FLAGS> &FS.LRG,<IFG <$DE@FLT>-777777,<PRIN`TX ?DEFAULT OF /$NAME CANNOT BE GT  777777>>
>
IFB@ <$FLAGS>,<..TEMR`==0>
IFNB <$FLAGS>,<..TEMR==($FLA GS)>
..TEMP==1
@IFN <$FLAGS>&FS.L`RG,<IFN <$DEFLT>,<..TEMP==0>>
IFN  ..TEMP,<
	XWD	.@.TEMR,$DEFLT	;$NA`ME
>
IFE ..TEMP,<
	XWD	..TEMR,[ $DEFLT]	;$NAME
>@
>
AD:	SWTCHS
	PURGE	..TEMP,..TEMR
	SALL
..MLuvQ MLuLSQ  MLuZ7P"MLu[zP$MLuhvQ MLuiYQ @MLukyQ MLum2Q MLux[Q MLvlXQ M`tI7P pM`ukvQ M`v9P M`v
Q M`v
ZQ M`v=Q M`v=8Q M`vK8Q M`vLVQ `S	 S(U_9hwP U_9iVP U_9lP WN0   :
A.L==0
A.T:  IRP	(B)< `EXP  SIXBIT /B/
			A.L==A.L+1
			..TEMP==0
		!@	IRPC (B)<IFIDN !`<B><*>,<..TEMP=="1>
					STOPI>
" 			IFE ..TEMP,<A"@B==A.L>
		>
	PURGE	..TEMP
	Z:42 % :0
	EXT	.FM%@SGD
	PJSP	T1,.FM%`SGD
	XLIST
	ASC&IZ	\A\
	LIST	
	\A\
	LIST	
Z:43 '`:D
	EXT	.FM(SGF
	PJSP	T1,.FM( SGF
	XLIST
	ASC(@IZ	\A\
	LIST
Z	\A\
	LIST
Z:46 #:
	EXT	.FM# SG
	PJSP	T1,.FMS#@G
	XLIST
	ASCIZ	\A\
	LIST
ZZ:47 $:&
	EXT	.FM$ SGN
	PJSP	T1,.FM$@SGN
	XLIST
	ASC$`IZ	\A\
	LIST
Z	\A\
	LIST
Z:47 &@::
	EXT	.FM&`SGO
	PJSP	T1,.FM'SGO
	XLIST
	ASC' IZ	\A\
	LIST
Z	\A\
	LIST
guP Wp'
	C
	LAXLL
	UNIVERSAL SCX0NMA -- SCAN PARAXPMETERS FOR TOPS-XpB


	SYN	IFE,IYF
	TOPS==B

	Y0SEARCH	MACTEN	;GEYPT MACTEN MACROS
Yp%%MACTEN==%%MACTEZN	;SHOW VERSION OZ0F MACTEN


%%SZPCNM==VRSN. (SCM)

	PURGE	SCMWHO,[SCMVER,SCMMIN,SCM[0EDT
;MACRO DEFI[PNITIONS OF GENERA[pL USE

;DEFAULT\S

;DM ABBREVIA\0TION,MAX,ADEFAULT\P,PDEFAULT
;	DEFI\pNES SYMBOLS MX.AB]BREVIATION,AD.ABB]0REVIATION, AND PD]P.ABBREVIATION
;	]pTO BE THE MAXIMUM^ ALLOWED VALUE, T^0HE DEFAULT IF THE^P KEYWORD
;	IS AB^pSENT, AND THE DEF_AULT IF THE KEYWO_0RD IS PRESENT RES_PPECTIVELY
;	UNLE_pSS THE CORRESPOND`ING SYMBOL IS ALR`0EADY DEFINED.

`P
	DEFINE	DM(ABBR`p,MAX,ADEF,PDEF),<a
				ND	MX.'ABBRa0,MAX
				ND	AD.'aPABBR,ADEF
				NDap	PD.'ABBR,PDEF>
b
	;REVISION HISTOb0RY OF PARAMETER FbPILE

;%2(47)  MbpAY, 1972, WITH SCcAN 2(127)

;50	c0ADD SYMBOLS FOR AcPLL WORDS AND LENGcpTHS IN SCAN BLOCKd
;	ADD FX.DFX, Fd0X.TRM, AND .FXTRAdP,O,N,C.
;	OBSOLEdpTE FX.ADD.
;51	AeDD FX.NDV.
;52	Me0AKE USEABLE AS A ePUNIVERSAL FILE
;ep%3(52)	DEC, 1972 fWITH SCAN 3(173)

;53	ADD COMMENfPTS TO .FX DEFINITfpIONS TO INDICATE gWHEN SET
;54	ADDg0 DEFENSIVE PRINTXgP TO SWTCHS MACROSgp
;55	ADD FLAGS ChONCEPT TO SWITCH h0TABLES; ADD FS.NFhPS
;56	AD FS.LRG hpTO HANDLE VALUES i.GT. 2**17
;57	Ai0DD FS.MOT DEFINITiPION FOR .TSCAN FLipAGS
;60	ADD FLAGjS FOR .TDIRB CALLj0
;61	ADD FLAG FSjP.NUE
;62	CLEAN UjpP LISTING OF PAGEk 1
;63	ALLOW * Ik0N KEYS LISTS
;64kP	ADD FX.PRT
;65	kpADD FS.VRQ
;66	DlELETE FX.ADD
;67l0	TEST BAD ARGS ONlPLY IN PASS2
;70	lpIMPROVE ON 67 SLImGHTLY
;%4(70) DEm0C, 73 WITH SCAN 4mP(275)

;71	DEFImpNE FS.OBV
;72	DEnFINE JWW.??
;73	n0DEFINE FS.MIO
;7nP4	CORRECT OVERPROnpTECTION OF DEFAULoT TO 377777,,7777o077
;75	ADD SN SToPYLE SWITCHES
;76op	ADD SCAN WORDS 2p4-31 AND FX.SUP
p0;77	ADD OVERRIDE pPON POINT ARGUMENTpp TO SWITCH MACROSq
;%5(77) JUN, 74q0 WITH SCAN 5(363)qP

;100	DEFINE FqpS.ICL
;%6(100) JrULY, 1974 WITH SCr0AN 6

;101	ADD rPGUIDE WORDS AS .CrpHXXX: AND, OR, NOsT
;102	CLARIFY Fs0S.NFS; ADD FS.NCMsP
;103	ADD GUIDE spWORDS 4002-4011
t;104	REMOVE ASK Mt0ACRO (NEVER IMPLEtPMENTED)
;105	EXPtpAND (AND MOVE) FXu.DEN FOR 5.07/6.0u02
;%7(105) OCT, uP1974 WITH SCAN 7

;201	SIMPLIFY vDOSCAN ANALYSIS (v0NO CHANGE IN CALLvP)
;202	ADD .FLASvpK, .FLTEL, .FLQUIw
;203	ELIMINATE w0SCNMAC.REL IF UNIwPVERSAL
;204	UPDAwpTE FOR TOPS-20
;x205	PRODUCE SEPERx0ATE .UNV FILES
xP;WORDS IN FILE SPxpEC AREA

.FXZERy==0	;FIRST WORD Iy0N BLOCK (TOPS-10 yPOR TOPS-20)

IFyp TOPS-10,<
.FXDEzV==0	;DEVICE   (Nz0ON-ZERO IF ANY PAzPRT OF SPEC)
.FXNzpAM==1	;NAME   (NO{N-ZERO IF NAME PR{0ESENT)
.FXNMM==2{P	;NAME MASK
.FXE{pXT==3	;EXTENSION,|,EXTENSION MASK  |0(NON-ZERO DOT PRE|PSENT)
.FXMOD==4	|p;MODIFIER WORD
.}FXMOM==5	;MODIFIE}0R MASK
.FXDIR==6}P	;DIRECTORY WORD }p  (EACH HALF=0 IF~ DEFAULT; SFD:0 I~0F END)
.FXDIM==7~P	;DIRECTORY MASK
.X==0		;TOPS-10 OFFSET
> ;END TO0PS-10 CASE
IF TOPPS-20,<
.FXFIL==p0	;FILE SPEC (^D26 WORD ASCIZ STRI0NG)
.FXJFN==^D26P	;JFN IF ANY
.FXpPRO==^D27	;PROTECTION
.FXACT==^D208	;ACCOUNT STRINGP
.FXMOD==^D36	;MpODIFIER WORD
.FXMOM==^D37	;MODIFI0ER MASK
.X==.FXMPOM-21	;TOPS-20 OFpFSET
>
.FXBFR==22+.X	;/BEFORE
.0FXSNC==23+.X	;/SIPNCE
.FXABF==24+.pX	;/ABEFORE
.FXASN==25+.X	;/ASINC0E
.FXFLI==26+.X	P;FILE MIN SIZE (WpORDS)
.FXFLM==27+.X	;FILE MAX SIZ0E (WORDS)
.FXESTP==30+.X	;/ESTIMATpE
.FXVER==31+.X	;/VERSION

;LEN0GTHS OF FILE SPECP AREA
.FXLEN==32p+.X	;LENGTH OF ONE SPECIFICATION
0IF TOPS-10,<
.FXPLND==6	;LENGTH OFp DIRECTORY (UFD+SFD'S)
> ;END TOP0S-10
IF TOPS-20,P<
.FXLNF==^D26	;pLENGTH OF FILE SP	EC STRING
>
;B	0YTES IN SCAN MOD 	PWORD
IF TOPS-10,	p<
FX.NDV==1B0	;N
ULL DEVICE
FX.NU
0L==1B1	;NULL EXTE
PNSION
FX.DIR==1B
p2	;DIRECTORY SPECIFIED   (MOD=0 IF0 [-])
> ;END TOPPS-10
FX.PHY==1B3p	;/PHYSICAL
FX.N
OM==1B4	;/OKNONE
0
IF TOPS-10,<
FX
P.DFX==1B5	;DIRECT
pORYXDOESBNOTINEED
> ;END TOPS-10
I TOPS-20,<
FX.T1B5	;FILE IS TEMP
>
FX.TRM==07B8	;CODE FOR SPEPC'S TERMINATION
p	.FXTRA==1	;& (AND)
	.FXTRO==2	;!0 (OR)
	.FXTRN==3P	;- (NOT)
	.FXTRpC==4	;+ (CONCATENATE)
FX.STR==1B90	;/STRS
FX.PRT==P1B10	;/OKPROT
FXp.SUP==1B11	;/ERSUPERSEDE

FX.DEN0==7B23	;/DENSITY	P				[105]
FX.PARp==1B24	;/PARITY
IF TOPS-10,<
FX.0PRO==777B35	;/PROPTECTION
> ;END TpOPS-10
;SPECIAL CHARACTERS FOR S0CAN
.CHALX==0	;APLTMODE
.CHEOL==-p1	;END OF LINE
.CHEOF==-2	;END OF0 FILE

;GUIDE WPORDS (TURNED INTOp PSEUDO CHARACTERS)

.CHAND==40000	;'AND'						[10P1]
.CHOR==04001	p;'OR'						[101]
.CHNOT==4002	;'N0OT'						[101]
.PCHTO==04003	;'TO'p						[103]
.CHFRM==4004	;'FROM'	0					[103]
.CHINPP==4005	;'INPUT'	p				[103]
.CHOUT==4006	;'OUTPUT'	0				[103]
.CHSRCP==4007	;'SOURCE'	p				[103]
.CHLST==4010	;'LIST'			0			[103]
.CHOBJ=P=4011	;'OBJECT'		p			[103]


;FLAGS FOR .ISCAN CA0LL

FS.ICL==1B1P7	;IGNORE SPECIALp COMMAND-LINE HANDLING

;FLAGS F0OR .TSCAN CALL
P
FS.MOT==1B18	;MUpLTIPLE OUTPUT SPECS POSSIBLE
FS.M0IO==1B19	;MIXED IPNPUT AND OUTPUT SpPECS

;FLAGS FOR .TDIRB CALL

0TS.DRW==0	;SINGLEP WORD
TS.DRP==1	p;PATH POINTER
TS.DRB==2	;BIWORD (0IE, SCAN SPEC FORPMAT)

;VALUES FpROM .VERBO

JWW.CN==1B33	;/MESSA0GE:CONTINUATION
PJWW.FL==1B34	;/MEpSSAGE:FIRST
JWW. PR==1B35	;/MESSAG 0E:PREFIX

;VALU PES IN .FLAQT

. pFLASK==1	;/ASK
.!FLTEL==2	;/TELL
!0.FLQUI==3	;/QUIET!P
;SWITCH SCANNI!pNG MACROS AND TAB"LES

;SWTCHS IS"0 THE MACRO LISTIN"PG ALL KNOWN SWITC"pHES
;IT INCLUDES# THE NAME AND STO#0RAGE LOCATION
;F#POR VALUE TYPES, I#pT ALSO HAS THE MA$X AND DEFAULT AND$0 PROCESSOR
;FOR $PKEY-VALUE TYPES, $pIT POINTS TO THE %KEYS AND HAS THE %0DEFAULT IF ANY
;%PFOR STAND-ALONE T%pYPES, IT HAS THE &VALUE.

;WHEN T&0HE SWITCH SCANNIN&PG TABLES ARE TO B&pE BUILT, INVOKE
';THE MACRO DOSCAN'0 WITH 5-CHAR ARGU'PMENT TO USE AS SY'pMBOL PREFIX
;IT (WILL DEFINE XXXXX(0N,L,P,M,D

; SL(P  NAME,STORAGE,TA(pBLE-NAME,DEFAULT,)FLAGS
;	DEFINES )0A LIST OF KEY-VAL)PUES (SEE KEYS MAC)pRO)
;	DEFAULT IS* THE ORDINAL OR 0*0 IF NO DEFAULT
;*P	IF LH(STORAGE)=7*p777B11, STORAGE =+ ROUTINE TO PROCE+0SS
;
; SP  NAME+P,STORAGE,PROCESSO+pR,ABBREVIATION,FL,AGS
;	DEFINES A ,0VALUE PARAMETER W,PHOSE DEFAULTS
;	,p    ARE DEFINED A-T THE BEGINNING O-0F THE PROGRAM
;	-P    BY "DM" USING-p THE SAME ABBREVI.ATION
;	PROCESSO.0R IS THE JUMP ADD.PRESS IN SWITCH PR.pOCESSING
;	    I/T WILL BE CALLED /0WITH P1=SWITCH OF/PFSET IN TABLE
;	/p    AND P2=POINTE0R TO 4-WORD BLOCK00 OF INTERNAL OR E0PXTERNAL STUFF
;	0pIF MAX=0 AND FS.L1RG, THEN ANY VALU10E CAN BE STORED
1P;	    ELSE, 0.LE.1pVALUE.LE.MAX
;
2;	0.LE.MAX,DEFAUL20T.LT.2**17 UNLESS2P FS.LRG
;
;	IF 2pMAX=0 AND NOT FS.3LRG, THEN PROCESS30OR IS AN IMMEDIAT3PE ACTION
;	    W3pHICH WILL ALWAYS 4BE CALLED
;	    40ELSE, PROCESSOR W4PILL BE CALLED ONL4pY IF ":"
;
; SS5  NAME,STORAGE,VA50LUE,FLAGS
;	DEFI5PNES A STAND-ALONE5p PARAMETER
;
;	6IN ALL CASES, STO60RAGE IS A BYTE PO6PINTER.
;	    IF 6pA FULL WORD, ONLY7 THE ADDRESS IS N70EEDED
;	    IF A7P MULTIPLE WORD, T7pHE BYTE SIZE IS 685-#WORDS (UP TO 2808)
;	    IF A FI8PLE SPECIFICATION,8p THE LENGTH IS HE9LD IN MX.ABBREVIA90TION
;	    IF PO9PINTER IS 7777??,,9p?????? THEN RH(PO:INTER) IS DISPATC:0H
;		ADDRESS OF :PPROCESSOR WHICH T:pAKES KEYWORD SWIT;CH VALUES
;
; S;0N  NAME,STORAGE,F;PLAGS
;	DEFINES A;p STAND-ALONE PARA<METER WHICH TAKES<0 VALUE
;	    1 I<PF /NAME, AND VALU<pE 0 IF /NONAME
=

; KEYS (NAME,L=0IST)   WILL DEFIN=PE A LIST OF KEYS =pBY NAME NAME
;	N>AME CAN BE UP TO >04 CHARS.  (DEFINE>PS NAME.T AND NAME>p.L)
;	LIST IS SI?XBIT NAMES SEPARA?0TED BY COMMAS.
;?P	DEFINES NAME CON?pCATENATED WITH ST@ART OF ITEM IN LI@0ST
;	AS INDEX IN@P LIST UNLESS THE @pITEM BEGINS WITH A"*"
	DEFINE	SL(A0$NAME,$RESULT,$TAAPBLE,$DEFAULT,$FLAApGS),<
	X	$NAME,$BTABLE'.T-1,<$RESUB0LT>,$DEFAULT,-$TABPBLE'.L,$FLAGS
>Bp

	DEFINE	SP($NACME,$RESULT,$PROCEC0SSOR,$ABBR,$FLAGSCP),<
	X	$NAME,$PRCpOCESSOR,<$RESULT>D,PD.'$ABBR,MX.'$AD0BBR,$FLAGS
>

DP	DEFINE	SS($NAME,Dp$RESULT,$VALUE,$FELAGS),<
	X	$NAMEE0,0,<$RESULT>,$VALEPUE,0,$FLAGS
>
Ep
	DEFINE	SN($NAMEF,$RESULT,$FLAGS),F0<
	X	$NAME,0,<$RFPESULT>,0,0,FS.NOSFp!$FLAGS
>

;FLGAGS WHICH CAN BE G0DEFINED IN SWITCHGP TABLE
FS.NFS==1GpB0	;THIS SWITCH IHS NEVER PART OF AH0 FILE SPECIFICATIHPON
		; THIS SHOUHpLD BE SET ON GLOBIAL SWITCHES
		; I0** VERY IMPORTANTIP TO GET RIGHT **
FS.LRG==1B1	;THEJ MAX AND DEFAULT J0VALUES ARE 0 OR .JPGT. 2**17
FS.NUEJp==1B2	;NO USER EXKIT ON THIS SWITCHK0
FS.VRQ==1B3	;VAKPLUE REQUIRED
FS.KpOBV==1B4	;OR BIT LVALUES TO RIGHT HL0ALF
FS.NOS==1B5	LP;SWITCH TAKES "NOLp" PREFIX (INTERNAML FOR SN MACRO ONM0LY)
FS.NCM==1B6	MP;SWITCH DOES NOT MpCONSTITUTE A COMMNAND		[102]
		; (N0FOR /RUN, /OPTIONNP, /EXIT)

		;DONpN'T USE FS.R??, WOHICH ARE DEFINED O0IN C.MAC
;MACROOP TO BUILD THE TABOpLES FROM THE SWTCPHS MACRO

	DEFIP0NE	DOSCAN(PFX),<
	XALL


			
PpDEFINE	X($NAME,$PQROC,$POINT,$DEFLTQ0,$MAX,$FLAGS),<
QP	EXP  SIXBIT  /$NQpAME/
>
PFX'N:	SRWTCHS
PFX'L==.-PR0FX'N

			
IF2,RP<
DEFINE	X($NAMERp,$PROC,$POINT,$DESFLT,$MAX,$FLAGS),S0<
..TEMP==0
IRPSP $POINT,<
    IFSpE ..TEMP-1,<
	$PTOINT			;$NAME
  T0  >
    IFE ..TETPMP-2,<
	POINT	36Tp,$POINT,35	;$NAMEU
    >
    IFIDU0N <$POINT><*P>,<.UP.TEMP==1>	
    IUpFIDN <$POINT><*F>V,<..TEMP==2>	
>V0

IFB <$POINT>,<VP
	Z			;$NAME
>Vp
IFNB <$POINT>,<IWFE ..TEMP,<
	$POW0INT			;$NAME
>>P
>>
PFX'P:	SWTCHWpS

			
			
MXX.==0
DEFINE	X($NX0AME,$PROC,$POINT,XP$DEFLT,$MAX,$FLAGXpS),<
IF2,<
IFE Y<$FLAGS>&FS.LRG,<Y0IFG <$MAX>-377777YP,<PRINTX ?MAXIMUMYp OF /$NAME CANNOTZ BE GT 377777>>
Z0>
..TEMP==1
IFNZP <$FLAGS>&FS.LRG,Zp<IFN <$MAX>,<..TE[MP==0>>
IFN ..TE[0MP,<
	XWD	$MAX,$[PPROC	;$NAME
>
I[pFE ..TEMP,<
	XWD\	[$MAX],$PROC	;$N\0AME
>
>
PFX'M:\P	SWTCHS

			
P\pD.==0
DEFINE	X($]NAME,$PROC,$POINT]0,$DEFLT,$MAX,$FLA]PGS),<
IF2,<
IFL]p <$DEFLT>,<IFN <$^DEFLT>+1,<PRINTX ^0?DEFAULT OF /$NAM^PE CANNOT BE NEGAT^pIVE>>
IFE <$FLAG_S>&FS.LRG,<IFG <$_0DEFLT>-777777,<PR_PINTX ?DEFAULT OF _p/$NAME CANNOT BE `GT 777777>>
>
I`0FB <$FLAGS>,<..TE`PMR==0>
IFNB <$FL`pAGS>,<..TEMR==($FaLAGS)>
..TEMP==1a0
IFN <$FLAGS>&FSaP.LRG,<IFN <$DEFLTap>,<..TEMP==0>>
IbFN ..TEMP,<
	XWDb0	..TEMR,$DEFLT	;$bPNAME
>
IFE ..TEbpMP,<
	XWD	..TEMRc,[$DEFLT]	;$NAME
>
>
PFX'D:	SWTcPCHS
	PURGE	..TEMcpP,..TEMR
	SALL
d>
;AND FINALLY,d0 THE KEY-WORD VALdPUES

	DEFINE	KEdpYS(NAME,LST),<
NeAME'.L==0
NAME'.e0T:  IRP	(LST)<EXPeP  SIXBIT /LST/
	ep		NAME'.L==NAME'.fL+1
			..TEMP==0f0
			IRPC (LST)<IfPFIDN <LST><*>,<..fpTEMP==1>
					STgOPI>
			IFE ..TEg0MP,<NAME'LST==NAMgPE'.L>
		>
	PURGgpE	..TEMP
	>
;Mh.FAIL <FOO> SENDSh0 FOO AS A FATAL EhPRROR

DEFINE	M.hpFAIL (A),<
	EXT	i.FMSG
	PJSP	T1,.i0FMSG
	XLIST
	ASiPCIZ	\A\
	LIST
>ip

;M.FAIN <FOO>j SENDS FOO AS A Fj0ATAL ERROR WITH NjP IN SIXBIT

DEFjpINE	M.FAIN (A),<
	EXT	.FMSGN
	PJk0SP	T1,.FMSGN
	XLkPIST
	ASCIZ	\A\
kp	LIST
>

;M.FAlID <FOO> SENDS FOl0O AS A FATAL ERROlPR WITH N IN DECIMlpAL

DEFINE	M.FAmID (A) <
	EXT	.Fm0MSGD
	PJSP	T1,.FmPMSGD
	XLIST
	ASmpCIZ	\A\
	LIST	
n>

;M.FAIO <FOOn0> SENDS FOO AS A nPFATAL ERROR WITH npN IN OCTAL

DEFoINE	M.FAIO (A),<
	EXT	.FMSGO
	PJoPSP	T1,.FMSGO
	XLopIST
	ASCIZ	\A\
p	LIST
>

;M.MAp0IF <FOO> SENDS FOpPO AS A FATAL ERROppR WITH N=ADDR OF qFILE DESCRIPTOR
q0
DEFINE	M.FAIF(AqP)<
	EXT	.FMSGF
qp	PJSP	T1,.FMSGF
r	XLIST
	ASCIZ	\Ar0\
	LIST
>
	LIST
g0 	H8N

	X	A,C	h.T-1,<B>,D,-C.L,E
>,D,-C.g8 H8^
	X	A,0,h<B>,0,0,FS.NOS!C
0,0,FS.NOS!g@ 
(8T

	X	A,C
H,<B>,PD.D,MX.D,E
D.D,MX.DgL 8X
	X	A,0,<B>,C,0,D
,i?0P iLtLQP iLtLXP iLtL[P mKc@ | /dBYTE (3)A|@WHO (9)AVER (6)AMIN (18)AEDT
lzQ 

;VQBDPDRP D[sQ D[vQ DlVP EXP ELzP EkzP ExUP E|@P E}:P F<QP FK`P duP f4P fI6P DSP DzP DwP D)YP D\zP Dj6P DkP DkP E)WP 
WP;P FLPP FLQP FLWP FLWP Fi9P G)9P `P 
>}{woP