Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_FS_1_19910112 - c/user/ncref/crsubs.fai
There are no other files named crsubs.fai in the archive.
	TITLE	crsubs
	EXTERN	$$ONE
	OPDEF	ADJBP	[IBP]	
DEFINE %CHRBP(TOAC,FRMBP)	
<	SETO	TOAC,		
	ADJBP	TOAC,FRMBP	
>




	IFNDEF	ERJMP,< OPDEF ERJMP [JUMP 16,] >
	OPDEF	ERJMPA	[ERJMP]
	OPDEF	XMOVEI	[SETMI]
	DEFINE	IFIW	<SETZ >



	.REQUEST C:CLIB


	TWOSEG	400000	    	
	RELOC	0
	RELOC	400000		

	DEFINE	$$CODE	<RELOC>
	DEFINE	$$DATA	<RELOC>


IFNDEF $START,<		
	EXTERN	$START
	EXTERN	$RET,$RETZ,$RETN,$RETP,$RETF,$RETT
	EXTERN	$ZERO
>


	PURGE	IFE,IFN,IFG,IFGE,IFL,IFLE,IFDEF,IFNDEF,IFIDN,IFDIF



	$$DATA

	$$CODE
init.f:
	ADJSP 17,2
	XMOVEI 3,tree
	MOVEM 3,f.free
	MOVEM 3,p
	SETZB 4,0(17)
$1::
	MOVE 4,0(17)
	MOVE 5,-3(17)
	SUBI 5,1
	CAML 4,5
	 JRST $2
	MOVE 10,p
	MOVEM 10,-1(17)
	MOVEI 3,10
	ADDB 3,p
	MOVEM 3,6(10)
	AOS 6,0(17)
	JRST $1
$2::
	MOVE 5,p
	SETZB 3,6(5)
	ADJSP 17,-2
	POPJ 17,
init.r:
	ADJSP 17,2
	XMOVEI 3,list
	MOVEM 3,r.free
	MOVEM 3,q
	SETZB 4,0(17)
$4::
	MOVE 4,0(17)
	MOVE 5,-3(17)
	SUBI 5,1
	CAML 4,5
	 JRST $5
	MOVE 10,q
	MOVEM 10,-1(17)
	MOVEI 3,6
	ADDB 3,q
	MOVEM 3,5(10)
	AOS 6,0(17)
	JRST $4
$5::
	MOVE 5,q
	SETZB 3,5(5)
	ADJSP 17,-2
	POPJ 17,
f.allo:
	SKIPN 1,f.free
	 JRST $8
	MOVEM 1,p
	MOVE 3,6(1)
	MOVEM 3,f.free
	POPJ 17,
$8::
	ADJSP 17,1
	PUSH 17,[40]
	PUSHJ 17,malloc
	ADJSP 17,-1
	SKIPGE 1,1
	 TLZA 1,770000
	 ANDI 1,777777
	MOVEM 1,p
	JUMPN 1,$9
	XMOVEI 3,$10
	IOR 3,$BYTE*$$ONE+4
	PUSH 17,3
	PUSHJ 17,printf
	ADJSP 17,-1
	PUSHJ 17,exit
	JRST $7
$9::
	MOVE 1,p
	ADJSP 17,-1
	POPJ 17,
$7::
	ADJSP 17,-1
	POPJ 17,
$10::
	BYTE	(7) 40,117,165,164,40
	BYTE	(7) 157,146,40,146,156
	BYTE	(7) 157,144,145,40,163
	BYTE	(7) 160,141,143,145,40
	BYTE	(7) 55,40,143,162,145
	BYTE	(7) 146,40,164,145,162
	BYTE	(7) 155,151,156,141,164
	BYTE	(7) 145,144,12,0

r.allo:
	SKIPN 1,r.free
	 JRST $12
	MOVEM 1,q
	MOVE 3,5(1)
	MOVEM 3,r.free
	POPJ 17,
$12::
	PUSH 17,[30]
	PUSHJ 17,malloc
	ADJSP 17,-1
	SKIPGE 1,1
	 TLZA 1,770000
	 ANDI 1,777777
	MOVEM 1,q
	JUMPN 1,$13
	XMOVEI 3,$14
	IOR 3,$BYTE*$$ONE+4
	PUSH 17,3
	PUSHJ 17,printf
	ADJSP 17,-1
	PUSHJ 17,exit
	JRST $11
$13::
	MOVE 1,q
	POPJ 17,
$11::
	POPJ 17,
$14::
	BYTE	(7) 117,165,164,40,157
	BYTE	(7) 146,40,162,156,157
	BYTE	(7) 144,145,40,163,160
	BYTE	(7) 141,143,145,40,55
	BYTE	(7) 40,143,162,145,146
	BYTE	(7) 40,164,145,162,155
	BYTE	(7) 151,156,141,164,145
	BYTE	(7) 144,12,0

insfun:
	ADJSP 17,3
	SKIPE 4,-4(17)
	 JRST $15
	PUSHJ 17,f.allo
	MOVEM 1,-4(17)
	IOR 1,$BYTE
	PUSH 17,1
	MOVE 4,arg
	IOR 4,$BYTE
	PUSH 17,4
	PUSHJ 17,scopy
	MOVE 5,-6(17)
	SETZB 3,6(5)
	MOVEM 3,7(5)
	MOVEM 5,-1(17)
	ADJSP 17,-1
	PUSH 17,arg
	PUSH 17,-4(17)
	PUSHJ 17,insref
	MOVE 4,1
	MOVE 1,-7(17)
	MOVEM 4,5(1)
	MOVEM 4,4(1)
	ADJSP 17,-6
	POPJ 17,
$15::
	MOVE 4,arg
	IOR 4,$BYTE
	PUSH 17,4
	MOVE 5,-5(17)
	IOR 5,$BYTE
	PUSH 17,5
	PUSHJ 17,compar
	ADJSP 17,-2
	MOVEM 1,0(17)
	JUMPN 1,$16
	PUSH 17,-4(17)
	PUSH 17,arg
	PUSH 17,-4(17)
	PUSHJ 17,insref
	MOVE 4,-7(17)
	MOVE 5,5(4)
	MOVEM 1,5(4)
	MOVEM 1,5(5)
	MOVE 1,4
	ADJSP 17,-6
	POPJ 17,
$16::
	SKIPL 4,0(17)
	 JRST $18
	PUSH 17,arg
	MOVE 5,-5(17)
	PUSH 17,6(5)
	PUSHJ 17,insfun
	ADJSP 17,-2
	MOVE 4,-4(17)
	MOVEM 1,6(4)
	JRST $17
$18::
	PUSH 17,arg
	MOVE 4,-5(17)
	PUSH 17,7(4)
	PUSHJ 17,insfun
	ADJSP 17,-2
	MOVE 4,-4(17)
	MOVEM 1,7(4)
$17::
	MOVE 1,-4(17)
	ADJSP 17,-3
	POPJ 17,
insref:
	PUSHJ 17,r.allo
	MOVEM 1,-1(17)
	SETZB 3,5(1)
	MOVE 5,arg
	MOVE 4,4(5)
	MOVEM 4,0(1)
	MOVE 7,arg
	MOVE 6,5(7)
	MOVEM 6,1(1)
	MOVE 11,arg
	MOVE 10,6(11)
	MOVEM 10,2(1)
	MOVE 13,filenu
	MOVEM 13,3(1)
	MOVE 14,arg
	SKIPE 12,6(14)
	 JRST $20
	MOVE 3,-3(17)
	IOR 3,$BYTE
	MOVEM 3,crproc
	JRST $19
$20::
	MOVE 4,crproc
	MOVE 5,-1(17)
	MOVEM 4,4(5)
$19::
	MOVE 1,-1(17)
	POPJ 17,
compar:
	ADJSP 17,2
$21::
	LDB 1,-3(17)
	IBP -3(17)
	MOVEM 1,-1(17)
	LDB 5,-4(17)
	IBP -4(17)
	MOVEM 5,0(17)
	CAME 1,5
	 JRST $22
	JUMPN 1,$21
	ADJSP 17,-2
	POPJ 17,
$22::
	POP 17,1
	SUB 1,0(17)
	ADJSP 17,-1
	POPJ 17,
scopy:
$23::
	LDB 4,-1(17)
	IBP -1(17)
	DPB 4,-2(17)
	IBP -2(17)
	JUMPN 4,$23
	POPJ 17,
lookup:
	PUSH 17,[0]
	ADJSP 17,2
$24::
	MOVE 4,-2(17)
	ADD 4,-5(17)
	SKIPN 3,0(4)
	 JRST $25
	SETZB 5,-1(17)
$27::
	MOVE 4,-1(17)
	MOVE 5,-2(17)
	ADD 5,-5(17)
	ADJBP 4,0(5)
	LDB 11,4
	MOVEM 11,0(17)
	MOVE 7,-1(17)
	ADJBP 7,-4(17)
	LDB 6,7
	CAMN 11,6
	 CAIN 11,0
	 JRST $28
	AOS 3,-1(17)
	JRST $27
$28::
	MOVE 4,0(17)
	MOVE 5,-1(17)
	ADJBP 5,-4(17)
	LDB 3,5
	CAME 4,3
	 JRST $26
	MOVE 1,-2(17)
	ADJSP 17,-3
	POPJ 17,
$26::
	AOS 3,-2(17)
	JRST $24
$25::
	SETO 1,
	ADJSP 17,-3
	POPJ 17,
incloc:
	AOS 5,ln
	MOVE 4,pg
	IMULI 4,70
	CAMLE 5,4
	 AOS 3,pg
	POPJ 17,
outree:
	ADJSP 17,11
	MOVEI 3,11
	MOVEM 3,-4(17)
	MOVEI 4,12
	MOVEM 4,-3(17)
	MOVEI 5,52
	MOVEM 5,-2(17)
	MOVEI 6,55
	MOVEM 6,-1(17)
	MOVEI 7,40
	MOVEM 7,0(17)
$30::
	SKIPN 5,-12(17)
	 JRST $31
	PUSH 17,-13(17)
	PUSH 17,6(5)
	PUSHJ 17,outree
	ADJSP 17,-2
	PUSH 17,iop
	PUSH 17,-4(17)
	PUSHJ 17,putc
	MOVE 4,-14(17)
	IOR 4,$BYTE
	MOVEM 4,-1(17)
	XMOVEI 3,$32
	IOR 3,$BYTE*$$ONE+4
	MOVEM 3,0(17)
	PUSH 17,iop
	PUSHJ 17,fprint
	ADJSP 17,-3
	SETZB 3,-7(17)
$33::
	MOVE 7,-7(17)
	MOVE 10,-12(17)
	ADJBP 7,[331110,,0]
	LDB 5,7
	JUMPE 5,$34
	PUSH 17,iop
	PUSH 17,5
	PUSHJ 17,putc
	ADJSP 17,-2
	AOS 3,-7(17)
	JRST $33
$34::
$36::
	AOS 3,-7(17)
	CAIL 3,12
	 JRST $37
	PUSH 17,iop
	PUSH 17,-1(17)
	PUSHJ 17,putc
	ADJSP 17,-2
	JRST $36
$37::
	MOVE 4,-12(17)
	MOVE 3,4(4)
	MOVEM 3,-10(17)
$38::
	SKIPN 4,-10(17)
	 JRST $39
	SETZB 3,-6(17)
	PUSH 17,iop
	PUSH 17,-5(17)
	PUSHJ 17,putc
	ADJSP 17,-2
	MOVE 4,-10(17)
	MOVE 3,3(4)
	ADD 3,-13(17)
	MOVE 5,0(3)
	MOVEM 5,-5(17)
$40::
	LDB 4,-5(17)
	JUMPE 4,$41
	PUSH 17,iop
	PUSH 17,4
	PUSHJ 17,putc
	ADJSP 17,-2
	AOS 3,-6(17)
	IBP -5(17)
	JRST $40
$41::
	MOVE 4,-6(17)
	CAIL 4,10
	 JRST $43
	PUSH 17,iop
	PUSH 17,-5(17)
	PUSHJ 17,putc
	ADJSP 17,-2
$43::
	PUSH 17,iop
	PUSH 17,-5(17)
	PUSHJ 17,putc
	ADJSP 17,-2
	MOVE 4,-10(17)
	SKIPE 3,2(4)
	 JRST $45
	PUSH 17,iop
	PUSH 17,-3(17)
	PUSHJ 17,putc
	ADJSP 17,-2
	PUSH 17,iop
	PUSH 17,-5(17)
	PUSHJ 17,putc
	ADJSP 17,-2
	JRST $44
$45::
	SETZB 3,-6(17)
	MOVE 5,-10(17)
	MOVE 4,4(5)
	MOVEM 4,-5(17)
$46::
	LDB 4,-5(17)
	JUMPE 4,$47
	PUSH 17,iop
	PUSH 17,4
	PUSHJ 17,putc
	ADJSP 17,-2
	AOS 3,-6(17)
	IBP -5(17)
	JRST $46
$47::
	MOVE 4,-6(17)
	CAIL 4,10
	 JRST $44
	PUSH 17,iop
	PUSH 17,-5(17)
	PUSHJ 17,putc
	ADJSP 17,-2
$44::
	PUSH 17,iop
	PUSH 17,-5(17)
	PUSHJ 17,putc
	ADJSP 17,-2
	MOVE 4,-10(17)
	PUSH 17,0(4)
	PUSHJ 17,printd
	ADJSP 17,-1
	PUSH 17,iop
	PUSH 17,-2(17)
	PUSHJ 17,putc
	ADJSP 17,-2
	MOVE 4,-10(17)
	PUSH 17,1(4)
	PUSHJ 17,printd
	ADJSP 17,-1
	PUSH 17,iop
	PUSH 17,-4(17)
	PUSHJ 17,putc
	ADJSP 17,-2
	PUSH 17,iop
	PUSH 17,-5(17)
	PUSHJ 17,putc
	ADJSP 17,-2
	MOVE 4,-10(17)
	MOVE 3,5(4)
	MOVEM 3,-10(17)
	JRST $38
$39::
	MOVE 4,-12(17)
	MOVE 3,7(4)
	MOVEM 3,-12(17)
	JRST $30
$31::
	ADJSP 17,-11
	POPJ 17,
$32::
	BYTE	(7) 42,45,163,42,40
	BYTE	(7) 0

printd:
	ADJSP 17,2
	MOVE 4,-3(17)
	IDIVI 4,12
	MOVEM 4,0(17)
	JUMPE 4,$49
	PUSH 17,4
	PUSHJ 17,printd
	ADJSP 17,-1
$49::
	MOVE 4,-3(17)
	IDIVI 4,12
	ADDI 5,60
	MOVEM 5,-1(17)
	PUSH 17,iop
	PUSH 17,5
	PUSHJ 17,putc
	ADJSP 17,-4
	POPJ 17,
headin:
	ADJSP 17,2
	MOVEI 3,12
	MOVEM 3,0(17)
$50::
	PUSH 17,iop
	LDB 4,title
	IBP title
	PUSH 17,4
	PUSHJ 17,putc
	ADJSP 17,-2
	LDB 3,title
	JUMPN 3,$50
	PUSH 17,iop
	PUSH 17,-1(17)
	PUSHJ 17,putc
	ADJSP 17,-2
$53::
	PUSH 17,iop
	LDB 4,head1
	IBP head1
	PUSH 17,4
	PUSHJ 17,putc
	ADJSP 17,-2
	LDB 3,head1
	JUMPN 3,$53
	PUSH 17,iop
	PUSH 17,-1(17)
	PUSHJ 17,putc
	ADJSP 17,-2
$56::
	PUSH 17,iop
	LDB 4,head2
	IBP head2
	PUSH 17,4
	PUSHJ 17,putc
	ADJSP 17,-2
	LDB 3,head2
	JUMPN 3,$56
	PUSH 17,iop
	PUSH 17,-1(17)
	PUSHJ 17,putc
	ADJSP 17,-4
	POPJ 17,

	$$ONE==1
	EXTERN	$BYTE
	EXTERN	.iob
	EXTERN	fgets
	EXTERN	fopen
	EXTERN	tree
	EXTERN	list
	EXTERN	f.free
	EXTERN	p
	EXTERN	top
	EXTERN	r.free
	EXTERN	q
	EXTERN	pass
	EXTERN	arg
	EXTERN	statke
	EXTERN	declke
	EXTERN	iop
	EXTERN	title
	EXTERN	head1
	EXTERN	head2
	EXTERN	string
	EXTERN	key
	EXTERN	srfile
	EXTERN	pg
	EXTERN	ln
	EXTERN	rpg
	EXTERN	rln
	EXTERN	crproc
	EXTERN	filenu
	INTERN	init.f
	INTERN	init.r
	INTERN	f.allo
	EXTERN	malloc
	EXTERN	printf
	EXTERN	exit
	INTERN	r.allo
	INTERN	insfun
	INTERN	insref
	INTERN	scopy
	INTERN	compar
	INTERN	lookup
	INTERN	incloc
	INTERN	outree
	EXTERN	putc
	EXTERN	fprint
	INTERN	printd
	INTERN	headin

	LIT
	END