Google
 

Trailing-Edge - PDP-10 Archives - bb-d868e-bm_tops20_v41_2020_dist_1of2 - new-subsys/scnm10.unv
There are 11 other files named scnm10.unv in the archive. Click here to see a list.
x,5,@P I4 
8e
				ND	M
8X.A,B
				ND	A
XD.A,C
				ND	PD.A,DWHO (9)I?87 :!
	XALL
8

			
DEFINE	X(X$NAME,$PROC,$POINxT,$DEFLT,$MAX,$FLAGS),<
	EXP  SIX8BIT  /$NAME/
>
XAN:	SWTCHS
AL=x=.-AN

			
IF2,<
DEFINE	X($NA8ME,$PROC,$POINT,$XDEFLT,$MAX,$FLAGSx),<
..TEMP==0
IRP $POINT,<
    8IFE ..TEMP-1,<
	X$POINT			;$NAME
x    >
    IFE ..TEMP-2,<
	POINT	836,$POINT,35	;$NAXME
    >
    IFxIDN <$POINT><*P>,<..TEMP==1>	
   8 IFIDN <$POINT><*XF>,<..TEMP==2>	
x>

IFB <$POINT>,<
	Z			;$NAME
8>
IFNB <$POINT>,X<IFE ..TEMP,<
	$xPOINT			;$NAME
>>
>>
AP:	SWTCH8S

			
			
MXX.==0
DEFINE	X($NxAME,$PROC,$POINT,$DEFLT,$MAX,$FLAG8S),<
IF2,<
IFE X<$FLAGS>&FS.LRG,<xIFG <$MAX>-377777,<PRINTX ?MAXIMUM8 OF /$NAME CANNOTX BE GT 377777>>
x>
..TEMP==1
IFN <$FLAGS>&FS.LRG,8<IFN <$MAX>,<..TEXMP==0>>
IFN ..TExMP,<
	XWD	$MAX,$PROC	;$NAME
>
I8FE ..TEMP,<
	XWDX	[$MAX],$PROC	;$NxAME
>
>
AM:	SWTCHS

			
PD.8==0
DEFINE	X($NAXME,$PROC,$POINT,$xDEFLT,$MAX,$FLAGS),<
IF2,<
IFL <8$DEFLT>,<IFN <$DEXFLT>+1,<PRINTX ?DxEFAULT OF /$NAME CANNOT BE NEGATIV8E>>
IFE <$FLAGS>X&FS.LRG,<IFG <$DExFLT>-777777,<PRIN TX ?DEFAULT OF /$ 8NAME CANNOT BE GT X 777777>>
>
IFB x <$FLAGS>,<..TEMR!==0>
IFNB <$FLAG!8S>,<..TEMR==($FLA!XGS)>
..TEMP==1
!xIFN <$FLAGS>&FS.L"RG,<IFN <$DEFLT>,"8<..TEMP==0>>
IFN"X ..TEMP,<
	XWD	."x.TEMR,$DEFLT	;$NA#ME
>
IFE ..TEMP#8,<
	XWD	..TEMR,[#X$DEFLT]	;$NAME
>#x
>
AD:	SWTCHS
	PURGE	..TEMP,..TEMR
	SALL
MLuvQ MLuLSQ  MLuZ7P"MLu[zP$MLuhvQ MLuiYQ @MLukyQ MLum2Q MLux[Q MLvlXQ M`tI7P pM`tI\Q M`tJ9Q M`uiQ @M`ukvQ M`um6Q  M`v9P M`v
Q M`v
WP M`v
ZQ M`v=Q M`v=8Q M`vLVQ `S	 S(U_9hwP U_9iVP U_9lP WN0 $X:7
A.L==0
A.T:  IRP	(B)<%EXP  SIXBIT /B/
			A.L==A.L+1
			..TEMP==0
		%x	IRPC (B)<IFIDN &<B><*>,<..TEMP==&81>
					STOPI>
&X			IFE ..TEMP,<A&xB==A.L>
		>
	PURGE	..TEMP
	Z:42 )X:S
	EXT	.FM)xSGD
	PJSP	T1,.FM*SGD
	XLIST
	ASC*8IZ	\A\
	LIST	
Z:43 ,:g
	EXT	.FM,8SGF
	PJSP	T1,.FM,XSGF
	XLIST
	ASC,xIZ	\A\
	LIST
Z:46 '8:?
	EXT	.FM'XSG
	PJSP	T1,.FMS'xG
	XLIST
	ASCIZ	\A\
	LIST
Z:47 (8:I
	EXT	.FM(XSGN
	PJSP	T1,.FM(xSGN
	XLIST
	ASC)IZ	\A\
	LIST
Z:47 *x:]
	EXT	.FM+SGO
	PJSP	T1,.FM+8SGO
	XLIST
	ASC+XIZ	\A\
	LIST
guP  )^
	C
	LA@LL
	UNIVERSAL SC`NMA -- SCAN PARAMETERS FOR TOPS- B


	SYN	IFE,I@F
	TOPS==B

	`SEARCH	MACTEN	;GET MACTEN MACROS
 %%MACTEN==%%MACTE@N	;SHOW VERSION O`F MACTEN


%%SCNM==VRSN. (SCM)

	PURGE	SCMWHO,@SCMVER,SCMMIN,SCM`EDT
;MACRO DEFINITIONS OF GENERA L USE

;DEFAULT@S

;DM ABBREVIA`TION,MAX,ADEFAULT,PDEFAULT
;	DEFI NES SYMBOLS MX.AB@BREVIATION,AD.ABB`REVIATION, AND PD.ABBREVIATION
;	 TO BE THE MAXIMUM@ ALLOWED VALUE, T`HE DEFAULT IF THE KEYWORD
;	IS AB SENT, AND THE DEF@AULT IF THE KEYWO`RD IS PRESENT RES	PECTIVELY
;	UNLE	 SS THE CORRESPOND	@ING SYMBOL IS ALR	`EADY DEFINED.



	DEFINE	DM(ABBR
 ,MAX,ADEF,PDEF),<
@
				ND	MX.'ABBR
`,MAX
				ND	AD.'ABBR,ADEF
				ND 	PD.'ABBR,PDEF>
@
	;REVISION HISTO`RY OF PARAMETER F
ILE

;%2(47)  M
 AY, 1972, WITH SC
@AN 2(127)

;50	
`ADDWSYMBOLSDFORNA
;	ADDMFX.DFX,FFRA,O,N,C.
;	OBSOLE TE FX.ADD.
;51	A@DD FX.NDV.
;52	M`AKE USEABLE AS A UNIVERSAL FILE
; %3(52)	DEC, 1972 @WITH SCAN 3(173)

;53	ADD COMMENTS TO .FX DEFINIT IONS TO INDICATE @WHEN SET
;54	ADD` DEFENSIVE PRINTX TO SWTCHS MACROS 
;55	ADD FLAGS C@ONCEPT TO SWITCH `TABLES; ADD FS.NFS
;56	AD FS.LRG  TO HANDLE VALUES @.GT. 2**17
;57	A`DD FS.MOT DEFINITION FOR .TSCAN FL AGS
;60	ADD FLAG@S FOR .TDIRB CALL`
;61	ADD FLAG FS.NUE
;62	CLEAN U P LISTING OF PAGE@ 1
;63	ALLOW * I`N KEYS LISTS
;64	ADD FX.PRT
;65	 ADD FS.VRQ
;66	D@ELETE FX.ADD
;67`	TEST BAD ARGS ONLY IN PASS2
;70	 IMPROVE ON 67 SLI@GHTLY
;%4(70) DE`C, 73 WITH SCAN 4(275)

;71	DEFI NE FS.OBV
;72	DE@FINE JWW.??
;73	`DEFINE FS.MIO
;74	CORRECT OVERPRO TECTION OF DEFAUL@T TO 377777,,7777`77
;75	ADD SN STYLE SWITCHES
;76 	ADD SCAN WORDS 2@4-31 AND FX.SUP
`;77	ADD OVERRIDE ON POINT ARGUMENT  TO SWITCH MACROS@
;%5(77) JUN, 74` WITH SCAN 5(363)

;100	DEFINE F S.ICL
;%6(100) J@ULY, 1974 WITH SC`AN 6

;101	ADD GUIDE WORDS AS .C HXXX: AND, OR, NO@T
;102	CLARIFY F`S.NFS; ADD FS.NCM
;103	ADD GUIDE  WORDS 4002-4011
@;104	REMOVE ASK M`ACRO (NEVER IMPLEMENTED)
;105	EXP AND (AND MOVE) FX@.DEN FOR 5.07/6.0`2
;%7(105) OCT, 1974 WITH SCAN 7

;201	SIMPLIFY @DOSCAN ANALYSIS (`NO CHANGE IN CALL )
;202	ADD .FLAS  K, .FLTEL, .FLQUI @
;203	ELIMINATE  `SCNMAC.REL IF UNI!VERSAL
;204	UPDA! TE FOR TOPS-20
;!@205	PRODUCE SEPER!`ATE .UNV FILES
";WORDS IN FILE SP" EC AREA

.FXZER"@==0	;FIRST WORD I"`N BLOCK (TOPS-10 #OR TOPS-20)

IF#  TOPS-10,<
.FXDE#@V==0	;DEVICE   (N#`ON-ZERO IF ANY PA$RT OF SPEC)
.FXN$ AM==1	;NAME   (NO$@N-ZERO IF NAME PR$`ESENT)
.FXNMM==2%	;NAME MASK
.FXE% XT==3	;EXTENSION,%@,EXTENSION MASK  %`(NON-ZERO DOT PRE&SENT)
.FXMOD==4	& ;MODIFIER WORD
.&@FXMOM==5	;MODIFIE&`R MASK
.FXDIR==6'	;DIRECTORY WORD '   (EACH HALF=0 IF'@ DEFAULT; SFD:0 I'`F END)
.FXDIM==7(	;DIRECTORY MASK
.X==0		;TOPS-10 (@OFFSET
> ;END TO(`PS-10 CASE
IF TO)PS-20,<
.FXFIL==) 0	;FILE SPEC (^D2)@6 WORD ASCIZ STRI)`NG)
.FXJFN==^D26*	;JFN IF ANY
.FX* PRO==^D27	;PROTEC*@TION
.FXACT==^D2*`8	;ACCOUNT STRING+
.FXMOD==^D36	;M+ ODIFIER WORD
.FX+@MOM==^D37	;MODIFI+`ER MASK
.X==.FXM,OM-21	;TOPS-20 OF, FSET
>
.FXBFR==,@22+.X	;/BEFORE
.,`FXSNC==23+.X	;/SI-NCE
.FXABF==24+.- X	;/ABEFORE
.FXA-@SN==25+.X	;/ASINC-`E
.FXFLI==26+.X	.;FILE MIN SIZE (W. ORDS)
.FXFLM==27.@+.X	;FILE MAX SIZ.`E (WORDS)
.FXEST/==30+.X	;/ESTIMAT/ E
.FXVER==31+.X	/@;/VERSION

;LEN/`GTHS OF FILE SPEC0 AREA
.FXLEN==320 +.X	;LENGTH OF ON0@E SPECIFICATION
0`IF TOPS-10,<
.FX1LND==6	;LENGTH OF1  DIRECTORY (UFD+S1@FD'S)
> ;END TOP1`S-10
IF TOPS-20,2<
.FXLNF==^D26	;2 LENGTH OF FILE SP2@EC STRING
>
;B2`YTES IN SCAN MOD 3WORD
IF TOPS-10,3 <
FX.NDV==1B0	;N3@ULL DEVICE
FX.NU3`L==1B1	;NULL EXTE4NSION
FX.DIR==1B4 2	;DIRECTORY SPEC4@IFIED   (MOD=0 IF4` [-])
> ;END TOP5S-10
FX.PHY==1B35 	;/PHYSICAL
FX.N5@OM==1B4	;/OKNONE
IF TOPS-10,<
FX6.DFX==1B5	;DIRECT6 ORY DOES NOT NEED6@ FIX-UP BY WILD
6`> ;END TOPS-10
I7F TOPS-20,<
FX.T7 MP==1B5	;FILE IS 7@TEMP
>
FX.TRM==7`7B8	;CODE FOR SPE8C'S TERMINATION
8 	.FXTRA==1	;& (AN8@D)
	.FXTRO==2	;!8` (OR)
	.FXTRN==39	;- (NOT)
	.FXTR9 C==4	;+ (CONCATEN9@ATE)
FX.STR==1B99`	;/STRS
FX.PRT==:1B10	;/OKPROT
FX: .SUP==1B11	;/ERSU:@PERSEDE

FX.DEN:`==7B23	;/DENSITY	;				[105]
FX.PAR; ==1B24	;/PARITY
;@IF TOPS-10,<
FX.;`PRO==777B35	;/PRO<TECTION
> ;END T< OPS-10
;SPECIAL<@ CHARACTERS FOR S<`CAN
.CHALX==0	;A=LTMODE
.CHEOL==-= 1	;END OF LINE
.=@CHEOF==-2	;END OF=` FILE

;GUIDE W>ORDS (TURNED INTO>  PSEUDO CHARACTER>@S)

.CHAND==400>`0	;'AND'						[10?1]
.CHOR==04001	? ;'OR'						[101]
.CHNOT==4002	;'N?`OT'						[101]
.@CHTO==04003	;'TO'@ 						[103]
.CHF@@RM==4004	;'FROM'	@`					[103]
.CHINAP==4005	;'INPUT'	A 				[103]
.CHOUTA@==4006	;'OUTPUT'	A`				[103]
.CHSRCB==4007	;'SOURCE'	B 				[103]
.CHLSTB@==4010	;'LIST'			B`			[103]
.CHOBJ=C=4011	;'OBJECT'		C 			[103]


;FLC@AGS FOR .ISCAN CAC`LL

FS.ICL==1B1D7	;IGNORE SPECIALD  COMMAND-LINE HAND@DLING

;FLAGS FD`OR .TSCAN CALL
E
FS.MOT==1B18	;MUE LTIPLE OUTPUT SPEE@CS POSSIBLE
FS.ME`IO==1B19	;MIXED IFNPUT AND OUTPUT SF PECS

;FLAGS FOF@R .TDIRB CALL

F`TS.DRW==0	;SINGLEG WORD
TS.DRP==1	G ;PATH POINTER
TS[email protected]==2	;BIWORD (G`IE, SCAN SPEC FORHMAT)

;VALUES FH ROM .VERBO

JWW[email protected]==1B33	;/MESSAH`GE:CONTINUATION
IJWW.FL==1B34	;/MEI SSAGE:FIRST
JWW.I@PR==1B35	;/MESSAGI`E:PREFIX

;VALUJES IN .FLAQT

.J FLASK==1	;/ASK
.J@FLTEL==2	;/TELL
J`.FLQUI==3	;/QUIETK
;SWITCH SCANNIK NG MACROS AND TABK@LES

;SWTCHS ISK` THE MACRO LISTINLG ALL KNOWN SWITCL HES
;IT INCLUDESL@ THE NAME AND STOL`RAGE LOCATION
;FMOR VALUE TYPES, IM T ALSO HAS THE MAM@X AND DEFAULT ANDM` PROCESSOR
;FOR NKEY-VALUE TYPES, N IT POINTS TO THE N@KEYS AND HAS THE N`DEFAULT IF ANY
;OFOR STAND-ALONE TO YPES, IT HAS THE O@VALUE.

;WHEN TO`HE SWITCH SCANNINPG TABLES ARE TO BP E BUILT, INVOKE
P@;THE MACRO DOSCANP` WITH 5-CHAR ARGUQMENT TO USE AS SYQ MBOL PREFIX
;IT Q@WILL DEFINE XXXXXQ`N,L,P,M,D

; SLR  NAME,STORAGE,TAR BLE-NAME,DEFAULT,R@FLAGS
;	DEFINES R`A LIST OF KEY-VALSUES (SEE KEYS MACS RO)
;	DEFAULT ISS@ THE ORDINAL OR 0S` IF NO DEFAULT
;T	IF LH(STORAGE)=7T 777B11, STORAGE =T@ ROUTINE TO PROCET`SS
;
; SP  NAMEU,STORAGE,PROCESSOU R,ABBREVIATION,FLU@AGS
;	DEFINES A U`VALUE PARAMETER WVHOSE DEFAULTS
;	V     ARE DEFINED AV@T THE BEGINNING OV`F THE PROGRAM
;	W    BY "DM" USINGW  THE SAME ABBREVIW@ATION
;	PROCESSOW`R IS THE JUMP ADDXRESS IN SWITCH PRX OCESSING
;	    IX@T WILL BE CALLED X`WITH P1=SWITCH OFYFSET IN TABLE
;	Y     AND P2=POINTEY@R TO 4-WORD BLOCKY` OF INTERNAL OR EZXTERNAL STUFF
;	Z IF MAX=0 AND FS.LZ@RG, THEN ANY VALUZ`E CAN BE STORED
[;	    ELSE, 0.LE.[ VALUE.LE.MAX
;
[@;	0.LE.MAX,DEFAUL[`T.LT.2**17 UNLESS\ FS.LRG
;
;	IF \ MAX=0 AND NOT FS.\@LRG, THEN PROCESS\`OR IS AN IMMEDIAT]E ACTION
;	    W] HICH WILL ALWAYS ]@BE CALLED
;	    ]`ELSE, PROCESSOR W^ILL BE CALLED ONL^ Y IF ":"
;
; SS^@  NAME,STORAGE,VA^`LUE,FLAGS
;	DEFI_NES A STAND-ALONE_  PARAMETER
;
;	_@IN ALL CASES, STO_`RAGE IS A BYTE PO`INTER.
;	    IF ` A FULL WORD, ONLY`@ THE ADDRESS IS N``EEDED
;	    IF Aa MULTIPLE WORD, Ta HE BYTE SIZE IS 6a@5-#WORDS (UP TO 2a`8)
;	    IF A FIbLE SPECIFICATION,b  THE LENGTH IS HEb@LD IN MX.ABBREVIAb`TION
;	    IF POcINTER IS 7777??,,c ?????? THEN RH(POc@INTER) IS DISPATCc`H
;		ADDRESS OF dPROCESSOR WHICH Td AKES KEYWORD SWITd@CH VALUES
;
; Sd`N  NAME,STORAGE,FeLAGS
;	DEFINES Ae  STAND-ALONE PARAe@METER WHICH TAKESe` VALUE
;	    1 IfF /NAME, AND VALUf E 0 IF /NONAME
f@

; KEYS (NAME,Lf`IST)   WILL DEFINgE A LIST OF KEYS g BY NAME NAME
;	Ng@AME CAN BE UP TO g`4 CHARS.  (DEFINEhS NAME.T AND NAMEh .L)
;	LIST IS SIh@XBIT NAMES SEPARAh`TED BY COMMAS.
;i	DEFINES NAME CONi CATENATED WITH STi@ART OF ITEM IN LIi`ST
;	AS INDEX INj LIST UNLESS THE j ITEM BEGINS WITH j@"*"
	DEFINE	SL(j`$NAME,$RESULT,$TAkBLE,$DEFAULT,$FLAk GS),<
	X	$NAME,$k@TABLE'.T-1,<$RESUk`LT>,$DEFAULT,-$TAlBLE'.L,$FLAGS
>l 

	DEFINE	SP($NAl@ME,$RESULT,$PROCEl`SSOR,$ABBR,$FLAGSm),<
	X	$NAME,$PRm OCESSOR,<$RESULT>m@,PD.'$ABBR,MX.'$Am`BBR,$FLAGS
>

n	DEFINE	SS($NAME,n $RESULT,$VALUE,$Fn@LAGS),<
	X	$NAMEn`,0,<$RESULT>,$VALoUE,0,$FLAGS
>
o 
	DEFINE	SN($NAMEo@,$RESULT,$FLAGS),o`<
	X	$NAME,0,<$RpESULT>,0,0,FS.NOSp !$FLAGS
>

;FLp@AGS WHICH CAN BE p`DEFINED IN SWITCHq TABLE
FS.NFS==1q B0	;THIS SWITCH Iq@S NEVER PART OF Aq` FILE SPECIFICATIrON
		; THIS SHOUr LD BE SET ON GLOBr@AL SWITCHES
		; r`** VERY IMPORTANTs TO GET RIGHT **
FS.LRG==1B1	;THEs@ MAX AND DEFAULT s`VALUES ARE 0 OR .tGT. 2**17
FS.NUEt ==1B2	;NO USER EXt@IT ON THIS SWITCHt`
FS.VRQ==1B3	;VAuLUE REQUIRED
FS.u OBV==1B4	;OR BIT u@VALUES TO RIGHT Hu`ALF
FS.NOS==1B5	v;SWITCH TAKES "NOv " PREFIX (INTERNAv@L FOR SN MACRO ONv`LY)
FS.NCM==1B6	w;SWITCH DOES NOT w CONSTITUTE A COMMw@AND		[102]
		; (w`FOR /RUN, /OPTIONx, /EXIT)

		;DOx N'T USE FS.R??, Wx@HICH ARE DEFINED x`IN C.MAC
;MACROy TO BUILD THE TABy LES FROM THE SWTCy@HS MACRO

	DEFIy`NE	DOSCAN(PFX),<
	XALL


			
z DEFINE	X($NAME,$Pz@ROC,$POINT,$DEFLTz`,$MAX,$FLAGS),<
{	EXP  SIXBIT  /$N{ AME/
>
PFX'N:	S{@WTCHS
PFX'L==.-P{`FX'N

			
IF2,|<
DEFINE	X($NAME| ,$PROC,$POINT,$DE|@FLT,$MAX,$FLAGS),|`<
..TEMP==0
IRP} $POINT,<
    IF} E ..TEMP-1,<
	$P}@OINT			;$NAME
  }`  >
    IFE ..TE~MP-2,<
	POINT	36~ ,$POINT,35	;$NAME~@
    >
    IFID~`N <$POINT><*P>,<..TEMP==1>	
    I FIDN <$POINT><*F>@,<..TEMP==2>	
>`

IFB <$POINT>,<
	Z			;$NAME
> 
IFNB <$POINT>,<I@FE ..TEMP,<
	$PO`INT			;$NAME
>>
>>
PFX'P:	SWTCH S

			
			
MX@.==0
DEFINE	X($N`AME,$PROC,$POINT,$DEFLT,$MAX,$FLAG S),<
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
>
I FE ..TEMP,<
	XWD@	[$MAX],$PROC	;$N`AME
>
>
PFX'M:	SWTCHS

			
P D.==0
DEFINE	X($@NAME,$PROC,$POINT`,$DEFLT,$MAX,$FLAGS),<
IF2,<
IFL  <$DEFLT>,<IFN <$@DEFLT>+1,<PRINTX `?DEFAULT OF /$NAME CANNOT BE NEGAT IVE>>
IFE <$FLAG@S>&FS.LRG,<IFG <$`DEFLT>-777777,<PR	INTX ?DEFAULT OF 	 /$NAME CANNOT BE 	@GT 777777>>
>
I	`FB <$FLAGS>,<..TE
MR==0>
IFNB <$FL
 AGS>,<..TEMR==($F
@LAGS)>
..TEMP==1
`
IFN <$FLAGS>&FS.LRG,<IFN <$DEFLT >,<..TEMP==0>>
I@FN ..TEMP,<
	XWD`	..TEMR,$DEFLT	;$
NAME
>
IFE ..TE
 MP,<
	XWD	..TEMR
@,[$DEFLT]	;$NAME
`
>
>
PFX'D:	SWT
	PURGE	..TEM
	SALL
>
;ANDEFINALLY, VALUES

	DEFINE	KE YS(NAME,LST),<
N@AME'.L==0
NAME'.`T:  IRP	(LST)<EXP  SIXBIT /LST/
	 		NAME'.L==NAME'.@L+1
			..TEMP==0`
			IRPC (LST)<IFIDN <LST><*>,<.. TEMP==1>
					ST@OPI>
			IFE ..TE`MP,<NAME'LST==NAME'.L>
		>
	PURG E	..TEMP
	>
;M@.FAIL <FOO> SENDS` FOO AS A FATAL ERROR

DEFINE	M. FAIL (A),<
	EXT	@.FMSG
	PJSP	T1,.`FMSG
	XLIST
	ASCIZ	\A\
	LIST
> 

;M.FAIN <FOO>@ SENDS FOO AS A F`ATAL ERROR WITH N IN SIXBIT

DEF INE	M.FAIN (A),<
	EXT	.FMSGN
	PJ`SP	T1,.FMSGN
	XLIST
	ASCIZ	\A\
 	LIST
>

;M.FA@ID <FOO> SENDS FO`O AS A FATAL ERROR WITH N IN DECIM AL

DEFINE	M.FA@ID (A) <
	EXT	.F`MSGD
	PJSP	T1,.FMSGD
	XLIST
	AS CIZ	\A\
	LIST	
@>

;M.FAIO <FOO`> SENDS FOO AS A FATAL ERROR WITH  N IN OCTAL

DEF@INE	M.FAIO (A),<
	EXT	.FMSGO
	PJSP	T1,.FMSGO
	XL IST
	ASCIZ	\A\
@	LIST
>

;M.MA`IF <FOO> SENDS FOO AS A FATAL ERRO R WITH N=ADDR OF @FILE DESCRIPTOR
`
DEFINE	M.FAIF(A)<
	EXT	.FMSGF
 	PJSP	T1,.FMSGF
@	XLIST
	ASCIZ	\A`\
	LIST
>
	LIST
g0 8r

	X	A,C .T-1,<B>,D,-C.L,E
TXC	g8 9
	X	A,0, <B>,0,0,FS.NOS!C
INTX ?CAN'T g@ `8x

	X	A,C,<B>,PD.D,MX.D,E
C>,<>pA=gL @8|
	X	A,0,<B>,C,0,D
@i?0P iLtLQP iLtLXP iLtL[P mKc@ r7BYTE (3)Ar0WHO (9)AVER (6)AMIN (18)AEDT
lzQ 

;VQ BDP DRP D[sQ D[vQ DlVP EXP ELzP EkzP ExUP E|@P E}:P F<QP FK`P duP f4P fI6P DSP 
DwP 
D)YP 	DI;P DJ6P DJ9P D\zP 
D^P DkP DkP EI7P Ek6P F;QP 	FLPP FLQP FLWP FLWP Fi9P 
G)9P `P >}{woP