Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99l-bb - macten.unv
There are 93 other files named macten.unv in the archive. Click here to see a list.
x
,R_@P C' {`^OP%%IA	(A,B,ADD,SUB)(AC2L{G XXI<^D35-<^L<XxRGHBT.(A)>>+<^D3Y7*<<^L<RGHBT.(A)>>/^D36>>>.(A)C:' Ex/TXZ	A,-1-<B>TXZ	A,-1-EJMj' m rP
W0.==A
W1.==B				;INITnIALIZE BREAK MASKn(
W2.==C
W3.==D
==C
W3.==%`0MJ
DEF60	(AC,FL00CREF
IEJZ hT	..V22==ah 
	..V1==a
	IFNh@B <B>,<..V22==Bh`>
REPEAT ..V22-<ia>+1,<	
	%%W==.i .V1/^D32	
	%%X==i@..V1-%%W*^D32	
	i`IFE C,BRKC1 \"<%j%W+"0">	
	IFN Cj ,BRKC2 \"<%%W+"0"j@>
	..V1==..V1+1
		   >
.V1+1 kX	WA.==WA.!<1B<%%X>>
AEJ\4@ k@^	WA.==WAk`.&<-1-1B<%%X>>
&<-1-1B<%%X>>
EJ\: f@6
%%FOO==f`a
	BRK0 (%%FOO,B,0)
 (%%FOO,EJn:g nh
	BRINI. Ao,B,C,D	
	IRPCo( E,<	UNBRK. "E"oH>	
	IRPC F,<	BRohKCH. "F">	
	EXPp W0.,W1.,W2.,W3.		
W1.,W2.,W3.	ES| YXO
	REPEAT	Yx3,<
	TXCE	A,1B<B>!1B<C>
>B<EVMI @2
l==-1
`IRP E,<l==l+1
IFE D-l, <l== -1
IRP G,<l==@l+1
IFE F-l, <`

;+.PARA -8
;XXXTTL	MACRO TO G ENERATE A TITLE S@TATEMENT OF THE F`ORM:
;.BREAK
;-TITLE A COMMENT  VERSION
	DEFINE @KTTL,<IFG I,<
`	TITLE	A - J  %BEG(H)-I
>I FE I,<
	TITLE	@A - J  %BEG(`H)
>>

;+.PARA -8
;XXX137	MACR O TO SETUP LOCATI@ON 137 WITH THE S`PECIFIED
;-VERSI ON NUMBER. NOTE:   THE MACRO DOES IT @S OWN "LOC" AND " `RELOC".
	DEFINE !K137,<IFG I,<
! 	IF2,<LALL>
	LOC!@	137
	BYTE (3)K!`WHO(9)KVER(6)KM"IN(18)KEDT	; A " %BEG(H)-I
	"@RELOC
	SALL
>	I"`FE I,<
	IF2,<LA#LL>
	LOC	137
	B# YTE (3)KWHO(9)K#@VER(6)KMIN(18)K#`EDT	; A %BEG($H)
	RELOC
	SAL$ L
>>

; MACRO $@TO DEFINE VERSION$` # AT CURRENT LOC%ATION
;+.PARA -8% 
;XXXVRS	MACRO T%@O DEFINE THE VERS%`ION NUMBER AT AN
;-ARBITRARY USER&  LOCATION.
	DEFI&@NE KVRS,<IFG I,&`<
	IF2,<LALL>
	'BYTE (3)KWHO(9)' KVER(6)KMIN(18)'@KEDT	; A %BEG'`(H)-I
	SALL
>(	IFE I,<
	IF2,<( LALL>
	BYTE (3)(@KWHO(9)KVER(6)K(`MIN(18)KEDT	; A) %BEG(H)
	SA) LL
>>
; GENERA)@TE A PASS2 PRINTX)` STATEMENT
;+.PA*RA -8
;-XXXPTX	G* ENERATES A PASS2 *@PRINTX STATEMENT.*`
	DEFINE KPTX,<+
	IF2,<
	IFG I+ ,<PRINTX A %BE+@G(H)-I	J
>	I+`FE I,<PRINTX A ,%BEG(H)	J
>, >>

;+.PARA -8
;XXXSTL	THE XXXS,`TL MACRO GENERATE-S A NEW PAGE
;VI- A THE MACRO PAGE -@PSEUDO-OP AND OPT-`IONALLY
;DEFINES. A NEW SUBTTL COM. MAND. THE CALL IS.@ "XXXSTL (COMMENT.`)".
;IF THE XXXS/TL MACRO IS CALLE/ D WITH A NULL ARG/@UMENT A COMMENT
/`; LINE IS GENERAT0ED AT THE BOTTOM 0 OF THE CURRENT PA0@GE
; AND AT THE 0`TOP OF THE NEXT P1AGE INDICATING TH1 AT THE PAGE
;-HA1@S BEEN CONTINUED.1`
	DEFINE KSTL (2TEXT),<IFNB <TEXT2 >,<
	SUBTTL	TEXT2@
	PAGE
>	IFB <T2`EXT>,<
	LALL
	P3AGE		; CONTINUED 3 TO NEXT PAGE
	SA3@LL		; CONTINUED F3`ROM PREVIOUS PAGE4
>>
;+.PARA -8
;XXXUNV	MACRO TO4@ GENERATE A UNIVE4`RSAL STATEMENT. T5HE MACRO IN
;EFF5 ECT IS AN EXACT C5@OPY OF THE XXXTTL5` MACRO EXCEPT THA6T THE
;-WORD "UN6 IVERSAL" REPLACES6@ THE WORD "TITLE"6`.
	DEFINE KUNV,7<IFG I,<
	LALL
	UNIVERSAL A - 7@J  %BEG(H)-7`I
	SALL
>IFE I8,<
	LALL
	UNIVE8 RSAL A - J  %B8@EG(H)
	SALL
8`>>
;+.PARA -8
9;XXXERR	MACRO TO 9 TYPE A FATAL ERRO9@R MESSAGE ON THE
;USER'S TERMINAL:. THE CALL IS OF : THE FORM:
;.BREA:@K
;XXXERR (ZZZ,E:`RROR MESSAGE,<PDP;-10 INSTRUCTION>); 
;.BREAK
;ZZZ I;@S THE 3-CHARACTER;` ERROR CODE, ERRO<R MESSAGE IS THE < ASCIZ
;STRING TO<@ BE TYPED ON THE <`TERMINAL AND PDP-=10 INSTRUCTION IS= 
;AN OPTIONAL AR=@GUMENT INDICATING=` WHAT THE USER WA>NTS TO DO
;ABOUT>  THE ERROR JUST T>@YPED. IF THE ARGU>`MENT IS NULL AN
?;-EXIT IS EXECUTE? D.
	DEFINE KERR?@ (COD,MSG,INSTR),?`<
...'COD:	JRST	@[
	OUTSTR	[ASCIZ@  \
? K'COD MSG\@@]
	IFNB <INSTR>,@`<INSTR>
	IFB <INASTR>,<EXIT>
]>
A 
;+.PARA -8
;XXA@XWRN	MACRO SIMILAA`R TO THE XXXERR MBACRO EXCEPT THAT B A
;WARNING MESSAB@GE IS ISSUED RATHB`ER THAN A FATAL ACND
;-THE DEFAULTC  PDP-10 INSTRUCTIC@ON TO BE EXECUTEDC` IS "JRST .+1".
D	DEFINE KWRN (COD D,MSG,INSTR),<
.D@..'COD:	JRST	[
	D`OUTSTR	[ASCIZ \
E% K'COD MSG\]
	E IFNB <INSTR>,<INSE@TR>
	IFB <INSTR>E`,<JRST .+1>
]>
F

STOPI>>STOPI>F >
	PURGE l,m,n
URGE l,m,G@ u8+OP%%CA (A,B,)OP%%CA (AGD xxGOP%%CA (A,B,A)P%%CA (AGDP vx7OP%%CA (A,B,E)P%%CA (AGDp w8;OP%%CA (A,B,G)P%%CA (AGDy  wx?OP%%CA (A,B,GE)%%CA (AGE@ ux/OP%%CA (A,B,L)P%%CA (AGEI  v83OP%%CA (A,B,LE)%%CA (AGE` x8COP%%CA (A,B,N)P%%CA (AG&tkg Zx[
	DEFINE	[INFO.(OPCODE,NEWA[8RG)<
	OPCODE	NEWARG>	OPCODE	NEWG>vC@ P	LALL

		P8	   PAGE	;(CONTINPXUED ON NEXT PAGE)Px
			   SALL	;(COQNTINUED FROM PREVIOUS PAGE)
REVG?T 
@dASCIZ \
COPYRIGHT Z \
CI6= a!
	..OLD==a810
	..TYP==3
IFaXE <C>+1,..TYP==0ax
IFE <C>-^O7777b77,..TYP==1
IFE b8<C>-^O777777B17,bX..TYP==2
..POS==bxPOS(<C>)
..WID=c=WID(<C>)
	RADIc8X	10
	DF%%ST (\.cX.TYP,A,<B>,\..PcxOS,\..WID)
	PURGdE	..OLD,..TYP,..POS,..WIDTYP,..PI(\z dX9

	RADIX	.dx.OLD
DEFINE	B (eOPS,AC,E),<
	..Ce8==0
	IRP OPS,<
eX		IFE A-..C,<
	ex		STOPI
			IFN 3f-..C, OPS <AC>,Cf8'E
			IFE 3-..C,fX OPS <AC>,[POINT fxE,C'E,D]
		>
	..C==..C+1>
	PURGE	..C>

	PI'7 }`nOP%%IN	(A,B,DIV)%IN	(AKc  K0SIRP A,<IFJ02,<IFNDEF A,<EXTERN A>>>A,<EXTM&. `OP%%FP	(A,B,FADR)FP	(AM6.  *OP%%FP	(A,B,FDVR)FP	(AM&eG WxA<<A>!<<LFXTBT.(A)>-<RGHBT.(A)>>>-<RGHBT.M7. `&OP%%FP	(A,B,FMPR)FP	(AMH(X6 `X
	DEFINE	A,<-^OB(P)>
MJ \x
	OLD%%%=]=10	
	RADIX	8
	]8N%%%==0		
IRP A]X,<
	FR%%AM (A,\]x<N%%%+1>)	
	N%%%^==N%%%+1		
>
	A^8DD	P,[N%%%,,N%%%]^X	
	PUSHJ	P,b		
	  SKIPA
	AOS	-_N%%%(P)	
	SUB	P,_8[N%%%,,N%%%]	
	P_XOPJ	P,		
b:
	R_xADIX	OLD%%%
	PUR`GE	N%%%,OLD%%%
E	N%%%,OLD%%%
MN.  "OP%%FP	(A,B,FSBR)FP	(AM\u|RQ O2|  Jp}
	IRP	A,K<
	IF2,<
		.IF JA,OPCODE,<.IFN IpA,LOCAL,<EXTERN IPA>>
		.IF A,NEEI0DED,<EXTERN A>
Nx		.IF A,OPDEF ,<O.IFN A,LOCAL,<EXO8TERN A>>
		.IF OXA,LOCAL ,<INTERN A>
	>>
TERNQf@ +SNn ~ rOP%%IN	(A,B,IDIV)IN	(AS7-N } jOP%%IN	(A,B,IMUL)IN	(AS;k Z8S<<<A>B<POS(<B>)>>&<B>>S? E8+TXO	A,<B>TXO	A,<BU +,U +(U  +$Up +U~` +"U?0 +0UKI@ +UVn	 X]IFE <<B>_X81>,<
IFE <B>,<
	JUMP	A,D
>
XxIFN <B>,<
IFE <Y<C>&<B>>,<
	JUY8MPL	A,D
>
IFNYX <<C>&<B>>,<
	YxJUMPGE	A,D
>>>Z
IFN <<B>1>,<
	TXCA	A,<<C>&<ZXB>>
	JRST	.+5
Zx	TXCE	A,<<C>&<[B>>
	JRST	D
	T[8XNE	A,<<-<C>-1>[X&<B>>
	JRST	D
>>>
	JRST	D
' T=
IFE <<BT8>_1>,<
IFE <B>,TX<
	JUMPA	A,D
Tx>
IFN <B>,<
IFUE <<C>&<B>>,<
U8	JUMPGE	A,D
>UX
IFN <<C>&<B>>,Ux<
	JUMPL	A,D
V>>>
IFN <<B>_1>V8,<
	TXCA	A,<<CVX>&<B>>
	JRST	.+Vx5
	TXCE	A,<<C>W&<B>>
	JRST	.+3W8
	TXNN	A,<<-<CWX>-1>&<B>>
	JRST	D
>>>
	JRSTUVn
 \#
IFDIF <\8B><C>,<
	JFCL	1\X,.+1		
	JRST	.+1\x		
IFNB <B>,<	J]FCL	1,B
^IFNB ]8<C>,<IFIDN <C><]XD>,<IFIDN <D><]xE>,< JRST	C>>>>
IFB <B>,<	JFCL	^81,i
  IFIDN <C^X><D>,<IFIDN <D>^x<E>,< JRST	C>>>_
>

IFDIF <C>_8<D>,<
	HRLOI	A_X,-2		
IFNB <C>,_x<	AOBJP	A,C
  `IFNB <D>,<IFIDN `8<D><E>,<JRST	D`X>>>
IFB <C>,<IF`xDIF <D><E>,<AOBaJP A,i>
	    Ia8FIDN <D><E>,<AOaXBJN A,D>>
>
ax
IFDIF <D><E>,<b
	IF2,<IFE A,<Pb8RINTX ? A MUST BbXE NON-ZERO IN JUMbxPPT>>
	MOVEI	A,c0		
	BLT	A,0		
IFNB <D>,<	JUMPcXE	A,D
  IFNB <cxE>,<	JRST	E>>
dIFB <D>,<	JUMPN	d8A,E>
>

i:A,E>
>

i:Y$- W8;<1B<^L<A>>><1B<^L<A>Y tQ xY>
C@ gX? B (<MOVEgx,HRRZ,HLRZ,LDB>,<A>,<C>)LDB>,<YO%yG QX
	IFNDEF	QxLSTIN.,	LSTIN.==0R
IFE LSTIN.,<
	R8IFB <A>,	.XCREF
			XLIST>
LSTIN.==LSTIN.+1
INYO%{G S
IFG LSTIS8N., LSTIN.==LSTINSX.-1
IFLE LSTIN.,Sx<	.CREF
		LIST>
CREF
		LIST> +@pIFG 0,<
	+`IF2,<LALL>
	BYTE, (3)MACWHO(9)MACV, ER(6)MACMIN(18)MA,@CEDT	; MACTEN %5(,`46)-0
	SALL
>	I-FE 0,<
	IF2,<LAL- L>
	BYTE (3)MACW-@HO(9)MACVER(6)MAC-`MIN(18)MACEDT	; M.ACTEN %5(46)
	SALL
>5(46)
	SA[3@ V83<<<1_<A>>-1>B<B>>_<A>>[>&: F`<
	LALL
	G%%A==BYTE (3)AWG HO(9)AVER(6)AMIG@N(18)AEDT
	SALL
)AEDT
	SALL[?7 j8
	.XCREF
	TEST%%=B
.IFNjx <TEST%%>,ABSOLUTkE,<
	.CREF
	MOVk8E	A,[B]
	.XCREkXF
>
.IF <TEST%%kx>,ABSOLUTE,<
	TElST%%=0
IFE	<<B>l8_-^D18>,<
	TEST%lX%=1
	.CREF
	MOVlxEI	A,<B>
	.XCRmEF
>
IFE	TEST%%m8,<IFE	<<B>_^D18>mX,<
	TEST%%=1
	.mxCREF
	MOVSI	A,(nB)
	.XCREF
>>8
IFE	TEST%%,<IFE	nX<<<B>_-^D18>-^O7nx77777>,<
	TEST%%o=1
	.CREF
	HRROo8I	A,<B>
	.XCREoXF
>>
IFE	TEST%%ox,<IFE	<<<B>^D18p>-^O777777B17>,<
	TEST%%=1
	.CREpXF
	HRLOI	A,(<Bpx>-^O777777)
	.XCqREF
>>
IFE	TESTq8%%,<
	.CREF
	MOqXVE	A,[B]
	.XCRqxEF
>
>	;[35][32r] END OF .IF <B>r8,ABSOLUTE
	PURGE	TEST%%
	.CREF[Vg |`fOP%%IN	(A,B,MUL)%IN	(A] H uIF2,<IFDEFH A,<A==A>> IFNNXDEF A,<A==<B>>F A,<A==<B>>]` NkND (A,<BMp>)
PRINTX %PLEASME USE ND MACRO, NM0DS. MACRO IS NOW OBSOLETE
 NOW _@(Xp y8Z
	.XCREF
IFE	<<B>_-^D18>yx,<
	.CREF
	CAIzC	A,<B>
	.XCREz@F
>
IFN	<<B>_-z`^D18>,<
	.CREF
{	CAMC	A,[B]
	{ .XCREF
>
	.CREFCREF
>
	.CREF_@(YX `:
	.XCREF
IFE	<<B>_^D18>, <
	.CREF
	CI	@A,(B)
	.XCREF
`>
IFN	<<B>_^D18>,<
	.CREF
	C	 A,[B]
	.XCREF
>
	.CREFCREF`

	.XCREF
	TEST%%=0
IFE	< <<B>_-^D18>-^O77@7777>,<
IFN	<<B`>&^O777777>,<
	TEST%%=1
	.CREF
 	DI	A,-<B>
	.@XCREF
>>
IFE	TE`ST%%,<
	OP%%IN	A,<B>,C
>
	PU RGE	TEST%%
	.CREF	TEST%%
	.CRE_@(Z7 `
	.XCREF
IFE	<<B>_-^D18> ,<
	.CREF
	CI	@A,<B>
	.XCREF
>
IFN	<<B>_-^D18>,<
	.CREF
	 C	A,[B]
	.XCREF
>
	.CREFCRE_@(] @x'

	.XCREF
IFN <<A>&^O7777A877777760>, PRINTXAX ? A IS NOT AN AAxCCUMULATOR

	TEBMP%%=0
IFE	<<B>B8_^D18>,<
IFN	<BBX>,<
	TEMP%%=1
	Bx.CREF
	C	A,(BC)
	.XCREF
>>
IC8FE	<<B>_-^D18>,<CX
	TEMP%%=1
	.CRCxEF
	D	A,<B>
D	.XCREF
>
IFE	TD8EMP%%,<
	.CREF
DX	E	A,[B]
>
	DxPURGE	TEMP%%
	.CREF	TEMP%%
	.Ca
tTQ  a
tTP a
tQ a
t*9Q a
t>(Q  a
t>(Q a
tk{Q a
tm3Q a
uJ8Q @a
uiQ a
u}SQ @a
v	P a
vM	P a
vZ7Q a
v\yQ a*n	r 5 a*n 4`a+= 5a+= +a+ - a+-\ 4@a+-\ 5`a+-\ 4 a+-\ 5@a>Mm UX/<POINT	WIDUx(B),A,POS(B)>B),A,POS(B)>a?H6 +a? Tx)<^L<A>+^LU<-<<A>_<^L<A>>>-1>-1><^L<A>>>e$YG [xc
	DEFINE	\INFO.(OPCODE,NEWA\8RG)<
	OPCODE	<A
	NEWARG>>	<AeD- Vx7<<A>&-<A>><<A>&-<Ae tP'g"~s@ Lpe	.XCREF
	LPEXP	<A>
	.ORG	.-1
			.CREFG	.gR~#@ h8E B (<MOVEhXM,HRRM,HRLM,DPB>,<A>,<C>)DPB>,gR~)  rx'
IFE <D>s,<	SETZM	B>	
IFs8E <D>+1,<	SETOM	sXB>	
IFN <D>*<<sxD>+1>,<MOVX	A,<tD>	
		   MOVEM t8A,B>	
IFNB <CtX>,<			
	MOVE	A,tx[B,,B+1]
	BLT	A,C		
>	BLT	gV | bOP%%IA	(A,B,SUB,ADD)(Ai'%I' @P
	.XCREF
	Z==0
	IFNDEF AVER,<Z==-1>
	IF NDEF AMIN,<Z==-1@>
	IFNDEF AEDT,`<Z==-1>
	IFNDEF AWHO,<Z==-1>
	I FL Z,<PRINTX ?SYM@BOLS AWHO,AVER,`AMIN AND AEDT NOT DEFINED
	PRIN TX ?VERSION SYMBO@LS MUST BE DEFINE`D BEFORE CALLING TITLE. MACRO
END >
	.CREF
	IF2,<@LALL>
	ASIX==SI`XBIT /A/	; B ABBREVIATION IN SIX BIT
	AASC==ASCI@Z /A/	; B ABBRE`VIATION IN ASCII
	SALL
	.XCREF
 %FIRST=AMIN/^D26@
IFE %FIRST,<%SE`CON==AMIN
	%FIRST==0>
IFG %FIRS T,<%SECON=AMIN-<@^D26*%FIRST>>
IF`E AMIN-^D26,<%SECON==AMIN
	%FIR ST=0>
IFE AMIN-@^D52,<%SECON==^D2`6
	%FIRST=1>
; DEFINE ALL THE MA CROS
BUILD$ (B,@\AVER,\AMIN,\%F`IRST,<,A,B,C,D,E,F,G,H,I,J,K,L,M,N ,O,P,Q,R,S,T,U,V,@W,X,Y,Z>,\%SECON,`<,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P, Q,R,S,T,U,V,W,X,Y@,Z>,\AEDT,\AWHO`,C,A)

	IF2,<PURGE %SECON,%FIRST,Z>
.CREFFIRib  
	.XCREF
IFB <B>, TXC	(<=^O37777777&A>,1B=8<A_-^D30>)
IFNB=X <B>,<
IFN <<A=x>&^O777777777760>>, PRINTX ? A IS >8NOT AN ACCUMULATO>XR
IFE	<<<B>_-^D>x18>-^O777777>,<
?	.CREF
	EQVI	A,?8<,,-1-<B>>
	.XC?XREF>
IFN	<<<B>_?x-^D18>-^O777777>,@<
	OP%%TX	A,<B@8>,TLC,TRC,TDC
>>	.CREFC,TDC
>>ib :xc
	.XCREF
IFB  <B>,	OP%%T;8X	<^O37777777&A>;X,1B<A_-^D30>,TLC;xA,TRCA,TDCA
IFNB< <B>,	OP%%TX	A,<8<B>,TLCA,TRCA,TDCA
	.CREF
,TDibP #@(
	.XCREF
IFB  <B>,	OP%%T$X	<^O37777777&A>$ ,1B<A_-^D30>,TLC$@E,TRCE,TDCE
IFNB$` <B>,	OP%%TX	A,%<B>,TLCE,TRCE,TDCE
	.CREF
,TDib` %@S
	.XCREF
IFB  <B>,	OP%%T98X	<^O37777777&A>9X,1B<A_-^D30>,TLC9xN,TRCN,TDCN
IFNB: <B>,	OP%%TX	A,:8<B>,TLCN,TRCN,TDCN
	.CREF
,TDibp `B
IFB <B>, JFCL	0
IFNB < B>, TRN	A,<,,<B>>
N	A,<,,<Bibt @8
	.XCREF
IFB  <B>,	OP%%TX	<^O37777777&A> ,1B<A_-^D30>,TLN@A,TRNA,TDNA
IFNB` <B>,	OP%%TX	A,<B>,TLNA,TRNA,TDNA
	.CREF
,TDibtC@ PX
IFE <<BPx>_<1+^L<B>>>,<
QIFE <<B>&<C>>,<Q8
	TXNN	A,<B>
QX>
IFN <<B>&<C>Qx>,<
	TXNE	A,<BR>
>>
IFN <<B>_R8<1+^L<B>>>,<
	TRXXCA	A,<<C>&<B>Rx>
	JRST	.+4
	TXSCE	A,<<C>&<B>>S8
	JRST	.+3
	TXNSXN	A,<<-<C>-1>&<B>>
>C>-1>&<ibtP @
	.XCREF
IFB  <B>,	OP%%TX	<^O37777777&A> ,1B<A_-^D30>,TLN@E,TRNE,TDNE
IFNB` <B>,	OP%%TX	A,<B>,TLNE,TRNE,TDNE
	.CREF
,TDibu@ M
IFE <<BM8>_<1+^L<B>>>,<
MXIFE <<B>&<C>>,<Mx
	TXNE	A,<B>
N>
IFN <<B>&<C>N8>,<
	TXNN	A,<BNX>
>>
IFN <<B>_Nx<1+^L<B>>>,<
	TOXCA	A,<<C>&<B>O8>
	JRST	.+4
	TXOXCE	A,<<C>&<B>>Ox
	JRST	.+2
	TXNPE	A,<<-<C>-1>&<B>>
>C>-1>&<ibu` @(
	.XCREF
IFB  <B>,	OP%%TX	<^O37777777&A> ,1B<A_-^D30>,TLN@N,TRNN,TDNN
IFNB` <B>,	OP%%TX	A,<B>,TLNN,TRNN,TDNN
	.CREF
,TDibx 
	.XCREF
IFB3<B>,7TXO	(<B
IFNB <B>,<
IFN <<A >&^O777777777760>@, PRINTX ? A IS `NOT AN ACCUMULATOR
IFE	<<<B>_-^D 18>-^O777777>,<
@	.CREF
	ORCMI	A`,<,,-1-<B>>
	.XCREF>
IFN	<<<B> _-^D18>-^O777777>@,<
	OP%%TX	A,<`B>,TLO,TRO,TDO
>>	.CREFO,TDO
>ib| !@
	.XCREF
IFB  <B>,	OP%%T"X	<^O37777777&A>" ,1B<A_-^D30>,TLO"@A,TROA,TDOA
IFNB"` <B>,	OP%%TX	A,#<B>,TLOA,TROA,TDOA
	.CREF
,TDib|P @x
	.XCREF
IFB  <B>,	OP%%TX	<^O37777777&A> ,1B<A_-^D30>,TLO@E,TROE,TDOE
IFNB` <B>,	OP%%TX	A,<B>,TLOE,TROE,TDOE
	.CREF
,TDib}` @
	.XCREF
IFB  <B>,	OP%%T X	<^O37777777&A>  ,1B<A_-^D30>,TLO @N,TRON,TDON
IFNB ` <B>,	OP%%TX	A,!<B>,TLON,TRON,TDON
	.CREF
,TDicP `d
	.XCREF
IFB <B>, TXZ	(<	 ^O37777777&A>,1B	@<A_-^D30>)
IFNB	` <B>,<
IFN <<A
>&^O777777777760>
 , PRINTX ? A IS 
@NOT AN ACCUMULATOR
IFE	<<<B>_-^D
`18>-^O777777>,<
 	.CREF
	ANDI	A,@<,,-1-<B>>
	.XC`REF>
IFN	<<<B>_
-^D18>-^O777777>,
 <
	OP%%TX	A,<B
@>,TLZ,TRZ,TDZ
>>	.CREFZ,TDZ
>>icT @h
	.XCREF
IFB  <B>,	OP%%TX	<^O37777777&A> ,1B<A_-^D30>,TLZ@A,TRZA,TDZA
IFNB` <B>,	OP%%TX	A,<B>,TLZA,TRZA,TDZA
	.CREF
,TDicTP @H
	.XCREF
IFB  <B>,	OP%%TX	<^O37777777&A> ,1B<A_-^D30>,TLZ@E,TRZE,TDZE
IFNB` <B>,	OP%%TX	A,<B>,TLZE,TRZE,TDZE
	.CREF
,TDicU` @X
	.XCREF
IFB  <B>,	OP%%TX	<^O37777777&A> ,1B<A_-^D30>,TLZ@N,TRZN,TDZN
IFNB` <B>,	OP%%TX	A,<B>,TLZN,TRZN,TDZN
	.CREF
,TDif` Kxe
	MOVX	AL,1B<B_-^D30>
	.L8XCREF
	<XORM	A,LX>!<37777777&B>
	.CREF
7&B>
iftS@ Fx=
	MOVX	AG,1B<B_-^D30>
	.G8XCREF
	<TDNE	A,GX>!<37777777&B>
	.CREF
7&B>
ifuc@ HG
	MOVX	AH8,1B<B_-^D30>
	.HXXCREF
	<TDNN	A,Hx>!<37777777&B>
	.CREF
7&B>
ify` I8Q
	MOVX	AIX,1B<B_-^D30>
	.IxXCREF
	<IORM	A,J>!<37777777&B>
	.CREF
7&B>
igQ` JX[
	MOVX	AJx,1B<B_-^D30>
	.KXCREF
	<ANDCAM	K8A,>!<37777777&B>
	.CREF
7&B>k:*g g <
%%FOO==g@a
	BRK0 (%%FOO,B,1)
 (%%FOO,mHtYP'mHuZ7Q xmHvi9Q |mHvzQ pmKc@ H@FBYTE (3)AH`WHO (9)AVER (6)AMIN (18)AEDTo&  T8#<^L<-<<A>_<^L<A>>>-1>>>q"eJ  P q*-` +
q+= +q+= +
q6~i4 C q? F83TXC	A,<B>TXC	A,<Bq@ KpaIFB <C>,<LA==:<B>> IFNB <C>,<A=:<B>><qBp +qN5P +us@ iO B (<SETZi8M,HLLZS,HRRZS,<PRiXINTX ?CAN'T ZERO ixBYTE>>,<A>,<C>)TE>>,<A>,<C>)
lzQ 
| ``
	XLIST

	.ORG 0
	LIST
.ORG 0
	LIST
D	P ?DP >D)6P D8YP D8sP D;PP D;QP D;QP D;RP D;RP D;SP D;TP D;WP D;WP D;XP D;XP D;YP 	D;YP 	D;ZP 
D;ZP 
D;[P D;[P D;\P 
D;\P 
D;]PD<ZP D=7P DI6P ?D\qP S@P | 
	XLIST
	.....X=.
	.ORG
	.ORG 0
	REPEAT,<EXP 0>
	PURGE .....X
	.ORG
	LIST

	.&tj7Q ?6MiTQ @O,pP O,tP O,vP O,P j.+jP >}{woP