Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_FS_1_19910112 - c/kcc/ccreg.fai
There are no other files named ccreg.fai in the archive.
	TITLE	CCREG
	.REQUEST C:LIBc.REL
	$$CVER==<2,,3>
	INTERN $$CVER
	OPDEF ADJBP [IBP]
DEFINE %%CHBP(A,M)
<	SETO A,
	ADJBP A,M
>
IFNDEF ERJMP,< OPDEF ERJMP [JUMP 16,] >
OPDEF ERJMPA [ERJMP]
OPDEF	XMOVEI	[SETMI]
	DEFINE IFIW <SETZ >
OPDEF XBLT [020000,,0]
	TWOSEG	400000	
	RELOC	0	
	RELOC	400000	
	DEFINE %%CODE <RELOC>
	DEFINE %%DATA <RELOC>
PURGE IFE,IFN,IFG,IFGE,IFL,IFLE,IFDEF,IFNDEF,IFIDN,IFDIF

	%%DATA
%FREEL:	0
	0
	0
	0
	$$SECT,,%FREEL
	$$SECT,,%FREEL
	BLOCK 1
%REGLI:	0
	0
	0
	0
	$$SECT,,%REGLI
	$$SECT,,%REGLI
	BLOCK 1
%SPILL:	0
	0
	0
	0
	$$SECT,,%SPILL
	$$SECT,,%SPILL
	BLOCK 1
VR.RET:	30
	1
	BLOCK 5
VR.SP:	30
	17
	BLOCK 5

	%%CODE
VRINIT:
	PUSHJ 17,VRENDC
	PUSH 17,[0]
$1==.
	AOS 6,0(17)
	SETZB 3,%REGIS*1-1(6)
	CAIGE 6,20
	 JRST $1
	ADJSP 17,-1
	POPJ 17,
VRENDC:
	MOVE 4,%REGLI*1+4
	XMOVEI 16,%REGLI
	CAME 4,16
	 JRST $5
	MOVE 5,%SPILL*1+4
	XMOVEI 16,%SPILL
	CAMN 5,16
	 JRST $4
$5==.
	PUSH 17,[$$BP90+$$SECT,,$6]
	PUSHJ 17,INT.WA
	ADJSP 17,-1
$7==.
	MOVE 5,%REGLI*1+4
	XMOVEI 16,%REGLI
	CAMN 5,16
	 JRST $8
	CAIL 5,20
	 JRST $9
	PUSH 17,[$$BP90+$$SECT,,$10]
	PUSHJ 17,INT.ER
	ADJSP 17,-1
	JRST $8
$9==.
	PUSH 17,%REGLI*1+4
	PUSHJ 17,VRFREE
	ADJSP 17,-1
	JRST $7
$8==.
$11==.
	MOVE 5,%SPILL*1+4
	XMOVEI 16,%SPILL
	CAMN 5,16
	 JRST $4
	CAIL 5,20
	 JRST $12
	PUSH 17,[$$BP90+$$SECT,,$13]
	PUSHJ 17,INT.ER
	ADJSP 17,-1
	JRST $4
$12==.
	PUSH 17,%SPILL*1+4
	PUSHJ 17,VRFREE
	ADJSP 17,-1
	JRST $11
$4==.
	POPJ 17,
$13==.
	BYTE	(9) 166,162,145,156
	BYTE	(9) 144,143,150,153
	BYTE	(9) 72,40,142,141
	BYTE	(9) 144,40,163,160
	BYTE	(9) 151,154,154,151
	BYTE	(9) 163,164,0
	

$10==.
	BYTE	(9) 166,162,145,156
	BYTE	(9) 144,143,150,153
	BYTE	(9) 72,40,142,141
	BYTE	(9) 144,40,162,145
	BYTE	(9) 147,154,151,163
	BYTE	(9) 164,0
	

$6==.
	BYTE	(9) 166,162,145,156
	BYTE	(9) 144,143,150,153
	BYTE	(9) 72,40,154,145
	BYTE	(9) 146,164,157,166
	BYTE	(9) 145,162,40,162
	BYTE	(9) 145,147,163,0
	

VRGET:
	XMOVEI 3,%REGLI
	PUSH 17,3
	PUSHJ 17,%RRFIN
	PUSH 17,1
	PUSHJ 17,%VRALL
	PUSH 17,1
	PUSHJ 17,%VR1SE
	MOVEM 1,-1(17)
	ADJSP 17,-1
	PUSHJ 17,%VR1LI
	ADJSP 17,-2
	POPJ 17,
VRDGET:
	XMOVEI 3,%REGLI
	PUSH 17,3
	PUSHJ 17,%RRDFI
	PUSH 17,1
	PUSHJ 17,%VRDAL
	PUSH 17,1
	PUSHJ 17,%VRSET
	MOVEM 1,-1(17)
	ADJSP 17,-1
	PUSHJ 17,%VRLIN
	ADJSP 17,-2
	POPJ 17,
VRRETG:
	SKIPN 4,%REGIS*1+1
	 JRST $14
	PUSH 17,4
	PUSHJ 17,%VRSPI
	ADJSP 17,-1
$14==.
	XMOVEI 3,%REGLI
	PUSH 17,3
	PUSH 17,[1]
	PUSHJ 17,%VRALL
	PUSH 17,1
	PUSHJ 17,%VR1SE
	MOVEM 1,-1(17)
	ADJSP 17,-1
	PUSHJ 17,%VR1LI
	ADJSP 17,-2
	POPJ 17,
VRRETD:
	SKIPN 4,%REGIS*1+1
	 JRST $15
	PUSH 17,4
	PUSHJ 17,%VRSPI
	ADJSP 17,-1
$15==.
	SKIPN 4,%REGIS*1+2
	 JRST $16
	PUSH 17,4
	PUSHJ 17,%VRSPI
	ADJSP 17,-1
$16==.
	XMOVEI 3,%REGLI
	PUSH 17,3
	PUSH 17,[1]
	PUSHJ 17,%VRDAL
	PUSH 17,1
	PUSHJ 17,%VRSET
	MOVEM 1,-1(17)
	ADJSP 17,-1
	PUSHJ 17,%VRLIN
	ADJSP 17,-2
	POPJ 17,
VRFREE:
	MOVE 5,-1(17)
	CAIL 5,20
	 JRST $17
	PUSH 17,5
	PUSH 17,[$$BP90+$$SECT,,$18]
	PUSHJ 17,INT.ER
	ADJSP 17,-2
	POPJ 17,
$17==.
	MOVE 6,-1(17)
	MOVE 3,0(6)
	TRNN 3,2
	 JRST $19
	PUSH 17,6(6)
	PUSHJ 17,%VR1FR
	ADJSP 17,-1
$19==.
	JRST %VR1FR
$18==.
	BYTE	(9) 166,162,146,162
	BYTE	(9) 145,145,72,40
	BYTE	(9) 142,141,144,40
	BYTE	(9) 166,162,40,45
	BYTE	(9) 157,0
	

%VR1FR:
	MOVE 6,-1(17)
	MOVE 4,0(6)
	TRNE 4,20
	 POPJ 17,
	TRNN 4,1
	 JRST $22
	PUSH 17,[$$BP90+$$SECT,,$23]
	PUSHJ 17,INT.WA
	ADJSP 17,-1
	JRST $21
$22==.
	XMOVEI 5,%REGIS
	MOVE 6,-1(17)
	ADD 5,1(6)
	SETZB 3,0(5)
$21==.
	PUSH 17,-1(17)
	PUSHJ 17,%VR1UN
	XMOVEI 3,%FREEL
	MOVEM 3,0(17)
	PUSH 17,-2(17)
	PUSHJ 17,%VR1LI
	ADJSP 17,-2
	POPJ 17,
$23==.
	BYTE	(9) 166,162,61,146
	BYTE	(9) 162,145,145,72
	BYTE	(9) 40,163,160,151
	BYTE	(9) 154,154,145,144
	BYTE	(9) 40,162,145,147
	BYTE	(9) 0
	

VRALLS:
$24==.
	MOVE 5,%REGLI*1+4
	XMOVEI 16,%REGLI
	CAMN 5,16
	 JRST $25
	PUSH 17,5
	PUSHJ 17,%VRSPI
	ADJSP 17,-1
	JRST $24
$25==.
	POPJ 17,
%VRSPI:
	PUSH 17,-1(17)
	PUSHJ 17,%VR1SP
	ADJSP 17,-1
	MOVE 6,-1(17)
	MOVE 3,0(6)
	TRNN 3,2
	 JRST $26
	PUSH 17,6(6)
	PUSHJ 17,%VR1SP
	ADJSP 17,-1
$26==.
	POPJ 17,
%VR1SP:
	MOVE 4,-1(17)
	MOVE 3,0(4)
	TRNN 3,1
	 JRST $27
	PUSH 17,[$$BP90+$$SECT,,$28]
	PUSHJ 17,INT.WA
	ADJSP 17,-1
$27==.
	PUSH 17,-1(17)
	PUSHJ 17,%VR1UN
	ADJSP 17,-1
	MOVE 4,STACKO
	MOVE 5,%SPILL*1+4
	MOVEM 4,3(5)
	MOVE 6,-1(17)
	PUSH 17,1(6)
	PUSH 17,[17]
	PUSH 17,[72]
	PUSHJ 17,CODE00
	XMOVEI 5,%REGIS
	MOVE 12,-4(17)
	ADD 5,1(12)
	SETZB 3,0(5)
	AOS 4,STACKO
	MOVEM 4,1(12)
	MOVEI 7,1
	IORB 7,0(12)
	XMOVEI 6,%SPILL
	MOVEM 6,-2(17)
	MOVEM 12,-1(17)
	ADJSP 17,-1
	PUSHJ 17,%VR1LI
	ADJSP 17,-2
	POPJ 17,
$28==.
	BYTE	(9) 166,162,61,163
	BYTE	(9) 160,151,154,154
	BYTE	(9) 72,40,162,145
	BYTE	(9) 147,40,141,154
	BYTE	(9) 162,145,141,144
	BYTE	(9) 171,40,163,160
	BYTE	(9) 151,154,154,145
	BYTE	(9) 144,0
	

VRWIDE:
	MOVE 4,-1(17)
	MOVE 3,0(4)
	TRNN 3,6
	 JRST $29
	PUSH 17,[$$BP90+$$SECT,,$30]
	PUSHJ 17,INT.WA
	MOVE 1,-2(17)
	ADJSP 17,-1
	POPJ 17,
$29==.
	PUSHJ 17,%VRALL
	PUSH 17,1
	ADJSP 17,3
	MOVE 4,-5(17)
	MOVEM 1,6(4)
	MOVEM 4,6(1)
	PUSH 17,4
	PUSH 17,1
	PUSHJ 17,%VR1LI
	ADJSP 17,-2
	SKIPN 4,-6(17)
	 JRST $32
	MOVE 10,-3(17)
	MOVEM 10,-2(17)
	MOVE 7,-5(17)
	MOVEM 7,-1(17)
	MOVE 3,1(7)
	SUBI 3,1
	MOVEM 3,1(10)
	JRST $31
$32==.
	MOVE 6,-5(17)
	MOVEM 6,-2(17)
	MOVE 7,-3(17)
	MOVEM 7,-1(17)
	MOVE 3,1(6)
	ADDI 3,1
	MOVEM 3,1(7)
$31==.
	MOVEI 4,2
	MOVE 1,-2(17)
	IORB 4,0(1)
	MOVEI 5,4
	MOVE 10,-1(17)
	IORB 5,0(10)
	MOVE 13,-5(17)
	MOVE 3,0(13)
	TRNN 3,1
	 JRST $33
	MOVEI 12,1
	MOVE 15,-3(17)
	IORB 12,0(15)
	MOVE 7,3(13)
	MOVEM 7,3(15)
	ADJSP 17,-4
	POPJ 17,
$33==.
	XMOVEI 4,%REGIS
	MOVE 13,-3(17)
	ADD 4,1(13)
	SKIPE 3,0(4)
	 JRST $34
	MOVE 1,-2(17)
	SKIPG 6,1(1)
	 JRST $34
	MOVE 11,-1(17)
	MOVE 10,1(11)
	CAILE 10,15
	 JRST $34
	MOVE 5,1(13)
	MOVEM 13,%REGIS(5)
	ADJSP 17,-4
	POPJ 17,
$34==.
	MOVE 4,-5(17)
	MOVE 3,0(4)
	TRNN 3,10
	 JRST $36
	PUSHJ 17,%RRDFI
	MOVEM 1,0(17)
	JRST $35
$36==.
	MOVEI 4,10
	MOVE 6,-5(17)
	IORB 4,0(6)
	PUSHJ 17,%RRDFI
	MOVEM 1,0(17)
	MOVNI 4,11
	MOVE 6,-5(17)
	ANDB 4,0(6)
$35==.
	MOVE 4,-5(17)
	PUSH 17,1(4)
	SKIPN 5,-7(17)
	 JRST $37
	MOVE 1,-1(17)
	ADDI 1,1
	JRST $38
$37==.
	MOVE 1,-1(17)
$38==.
	PUSH 17,1
	PUSH 17,[60]
	PUSHJ 17,CODE00
	ADJSP 17,-3
	XMOVEI 5,%REGIS
	MOVE 6,-5(17)
	ADD 5,1(6)
	SETZB 3,0(5)
	PUSH 17,0(17)
	PUSH 17,-3(17)
	PUSHJ 17,%VRSET
	ADJSP 17,-6
	POPJ 17,
$30==.
	BYTE	(9) 166,162,167,151
	BYTE	(9) 144,145,156,72
	BYTE	(9) 40,162,145,147
	BYTE	(9) 40,141,154,162
	BYTE	(9) 145,141,144,171
	BYTE	(9) 40,167,151,144
	BYTE	(9) 145,0
	

VRLOWI:
	PUSH 17,[0]
	PUSH 17,-2(17)
	PUSHJ 17,VRWIDE
	ADJSP 17,-2
	POPJ 17,
VRNARR:
	MOVE 6,-1(17)
	MOVE 4,0(6)
	TRNN 4,6
	 JRST $40
	TRZ 4,7
	MOVEM 4,0(6)
	PUSH 17,6(6)
	PUSHJ 17,%VR1FR
	ADJSP 17,-1
	JRST $39
$40==.
	PUSH 17,[$$BP90+$$SECT,,$41]
	PUSHJ 17,INT.WA
	ADJSP 17,-1
$39==.
	POPJ 17,
$41==.
	BYTE	(9) 166,162,156,141
	BYTE	(9) 162,162,157,167
	BYTE	(9) 72,40,141,154
	BYTE	(9) 162,145,141,144
	BYTE	(9) 171,40,156,141
	BYTE	(9) 162,162,157,167
	BYTE	(9) 0
	

VRREAL:
	MOVE 6,-1(17)
	MOVE 3,0(6)
	TRNN 3,1
	 SKIPA 1,1(6)
	 TRNA 
	 POPJ 17,
	PUSH 17,[$$BP90+$$SECT,,$43]
	PUSHJ 17,INT.ER
	ADJSP 17,-1
	JRST VRTORE
$43==.
	BYTE	(9) 166,162,162,145
	BYTE	(9) 141,154,72,40
	BYTE	(9) 165,163,151,156
	BYTE	(9) 147,40,163,160
	BYTE	(9) 151,154,154,145
	BYTE	(9) 144,40,162,145
	BYTE	(9) 147,0
	

VRTORE:
	MOVE 5,-1(17)
	CAIL 5,20
	 JRST $44
	PUSH 17,5
	PUSH 17,[$$BP90+$$SECT,,$45]
	PUSHJ 17,INT.ER
	MOVE 1,-3(17)
	ADJSP 17,-2
	POPJ 17,
$44==.
	ADJSP 17,1
	MOVE 6,-2(17)
	MOVE 4,0(6)
	TRNN 4,1
	 JRST $46
	TRZ 4,1
	MOVEM 4,0(6)
	PUSH 17,6
	PUSHJ 17,%VRUNL
	ADJSP 17,-1
	MOVE 11,-2(17)
	MOVE 3,1(11)
	MOVEM 3,0(17)
	MOVE 4,0(11)
	TRNN 4,2
	 JRST $48
	MOVNI 7,2
	MOVE 5,6(11)
	ANDB 7,0(5)
	PUSHJ 17,%RRDFI
	PUSH 17,1
	PUSH 17,-3(17)
	PUSHJ 17,%VRSET
	MOVE 4,-2(17)
	SUB 4,STACKO
	MOVEM 4,-1(17)
	ADJSP 17,-1
	PUSH 17,-3(17)
	PUSH 17,[21]
	PUSHJ 17,CODE12
	ADJSP 17,-3
	JRST $47
$48==.
	PUSHJ 17,%RRFIN
	PUSH 17,1
	PUSH 17,-3(17)
	PUSHJ 17,%VR1SE
	MOVE 4,-2(17)
	SUB 4,STACKO
	MOVEM 4,-1(17)
	ADJSP 17,-1
	PUSH 17,-3(17)
	PUSH 17,[60]
	PUSHJ 17,CODE12
	ADJSP 17,-3
$47==.
	MOVE 4,-2(17)
	MOVE 6,4(4)
	CAME 6,%SPILL*1+4
	 JRST $49
	MOVE 3,3(6)
	SUB 3,STACKO
	PUSH 17,3
	XMOVEI 5,VR.SP
	PUSH 17,5
	PUSH 17,[4]
	PUSHJ 17,CODE8
	ADJSP 17,-3
	MOVE 4,%SPILL*1+4
	MOVE 3,3(4)
	MOVEM 3,STACKO
$49==.
	XMOVEI 3,%REGLI
	PUSH 17,3
	PUSH 17,-3(17)
	PUSHJ 17,%VRLIN
	ADJSP 17,-2
$46==.
	MOVE 4,-2(17)
	MOVE 1,1(4)
	ADJSP 17,-1
	POPJ 17,
$45==.
	BYTE	(9) 166,162,164,157
	BYTE	(9) 162,145,141,154
	BYTE	(9) 72,40,142,141
	BYTE	(9) 144,40,166,162
	BYTE	(9) 40,45,157,0
	

VRSTOR:
	MOVE 5,-1(17)
	CAIL 5,20
	 JRST $50
	PUSH 17,5
	PUSH 17,[$$BP90+$$SECT,,$51]
	PUSHJ 17,INT.WA
	MOVE 1,-3(17)
	ADJSP 17,-2
	POPJ 17,
$50==.
	MOVE 4,-1(17)
	MOVE 3,0(4)
	TRNN 3,10
	 JRST $52
	PUSH 17,-2(17)
	PUSHJ 17,VRTORE
	MOVE 4,-2(17)
	MOVE 1,1(4)
	ADJSP 17,-1
	POPJ 17,
$52==.
	MOVE 6,-1(17)
	MOVE 3,0(6)
	TRNN 3,1
	 JRST $53
	PUSH 17,6
	PUSHJ 17,VRTORE
	ADJSP 17,-1
$53==.
	MOVEI 4,10
	MOVE 6,-1(17)
	IORB 4,0(6)
	PUSH 17,-2(17)
	PUSHJ 17,VRTORE
	MOVNI 4,11
	MOVE 5,-2(17)
	ANDB 4,0(5)
	MOVE 1,1(5)
	ADJSP 17,-1
	POPJ 17,
$51==.
	BYTE	(9) 166,162,163,164
	BYTE	(9) 157,162,145,141
	BYTE	(9) 154,72,40,142
	BYTE	(9) 141,144,40,166
	BYTE	(9) 162,40,45,157
	BYTE	(9) 0
	

VRISPA:
	MOVE 4,-1(17)
	MOVE 3,0(4)
	TRNN 3,2
	 TDZA 1,1
	 MOVEI 1,1
	POPJ 17,
VRUFCR:
	PUSH 17,[0]
	PUSH 17,-2(17)
	PUSHJ 17,VRTORE
	MOVE 3,-1(17)
	ADJSP 17,-2
	MOVEM 3,%REGIS(1)
	PUSH 17,-1(17)
	MOVE 5,-2(17)
	PUSH 17,1(5)
	PUSHJ 17,UFCREG
	MOVE 4,-3(17)
	MOVEM 1,1(4)
	MOVE 3,-1(17)
	MOVEM 3,%REGIS(1)
	ADJSP 17,-2
	POPJ 17,
RFREE:
	MOVE 3,-1(17)
	SKIPE 4,%REGIS(3)
	 TDZA 1,1
	 MOVEI 1,1
	POPJ 17,
RHASVA:
	MOVE 7,-1(17)
	SKIPN 3,%REGIS(7)
	 JRST $58
	MOVE 1,0(3)
	ANDI 1,100
	JRST $59
$58==.
	SETZ 1,
$59==.
	POPJ 17,
%RRFIN:
	ADJSP 17,2
	PUSHJ 17,%UPDRF
	MOVEI 3,3
	MOVEM 3,0(17)
$60==.
	MOVE 1,0(17)
	SKIPN 4,%REGFR(1)
	 JRST $62
	ADJSP 17,-2
	POPJ 17,
$62==.
	AOS 5,0(17)
	CAIG 5,15
	 JRST $60
	MOVEI 3,3
	MOVEM 3,0(17)
$63==.
	MOVE 1,0(17)
	SKIPE 4,%REGIS(1)
	 JRST $65
	ADJSP 17,-2
	POPJ 17,
$65==.
	AOS 5,0(17)
	CAIG 5,15
	 JRST $63
	MOVE 4,%REGLI*1+5
	MOVEM 4,-1(17)
$66==.
	MOVE 7,-1(17)
	XMOVEI 16,%REGLI
	CAMN 7,16
	 JRST $67
	MOVE 3,0(7)
	TRNE 3,14
	 JRST $68
	MOVE 4,1(7)
	MOVEM 4,0(17)
	PUSH 17,7
	PUSHJ 17,%VRSPI
	MOVE 1,-1(17)
	ADJSP 17,-3
	POPJ 17,
$68==.
	MOVE 4,-1(17)
	MOVE 3,5(4)
	MOVEM 3,-1(17)
	JRST $66
$67==.
	PUSH 17,[$$BP90+$$SECT,,$69]
	PUSHJ 17,INT.ER
	ADJSP 17,-3
	POPJ 17,
$69==.
	BYTE	(9) 162,162,146,151
	BYTE	(9) 156,144,72,40
	BYTE	(9) 156,157,40,162
	BYTE	(9) 145,147,163,0
	

%UPDRF:
	PUSH 17,[3]
	ADJSP 17,1
$70==.
	MOVE 10,-1(17)
	SKIPE 4,%REGIS(10)
	 TDZA 5,5
	 MOVEI 5,1
	MOVEM 5,%REGFR(10)
	AOS 7,-1(17)
	CAIG 7,15
	 JRST $70
	MOVE 6,PREVIO
	MOVEM 6,0(17)
$75==.
	SKIPN 7,0(17)
	 JRST $76
	MOVE 3,1(7)
	CAIN 3,73
	 JRST $76
	MOVE 6,2(7)
	SETZB 4,%REGFR(6)
	PUSH 17,7
	PUSHJ 17,BEFORE
	ADJSP 17,-1
	MOVEM 1,0(17)
	JRST $75
$76==.
	ADJSP 17,-2
	POPJ 17,
%RRDFI:
	ADJSP 17,24
	PUSHJ 17,%UPDRF
	MOVEI 3,3
	MOVEM 3,0(17)
$78==.
	MOVE 1,0(17)
	SKIPE 4,%REGFR(1)
	 SKIPN 3,%REGFR*1+1(1)
	 JRST $80
	ADJSP 17,-24
	POPJ 17,
$80==.
	AOS 5,0(17)
	CAIGE 5,15
	 JRST $78
	MOVEI 3,3
	MOVEM 3,0(17)
$81==.
	MOVE 1,0(17)
	SKIPN 5,%REGIS(1)
	 CAME 5,%REGIS*1+1(1)
	 JRST $83
	ADJSP 17,-24
	POPJ 17,
$83==.
	AOS 5,0(17)
	CAIGE 5,15
	 JRST $81
	SETZB 3,-1(17)
	MOVE 6,%REGLI*1+5
	MOVEM 6,-23(17)
$84==.
	MOVE 7,-23(17)
	XMOVEI 16,%REGLI
	CAMN 7,16
	 JRST $85
	MOVE 4,0(7)
	TRNE 4,14
	 JRST $86
	TRNN 4,2
	 JRST $87
	MOVE 3,1(7)
	MOVEM 3,0(17)
	PUSH 17,7
	PUSHJ 17,%VRSPI
	MOVE 1,-1(17)
	ADJSP 17,-25
	POPJ 17,
$87==.
	SETZB 3,-2(17)
$88==.
	MOVE 6,-2(17)
	CAML 6,-1(17)
	 JRST $89
	ADD 6,17
	MOVE 3,-22(6)
	MOVE 4,1(3)
	MOVEM 4,0(17)
	MOVE 11,-23(17)
	SUB 4,1(11)
	SOJE 4,$91
	MOVE 10,0(17)
	SUB 10,1(11)
	AOJN 10,$90
$91==.
	MOVE 4,0(17)
	MOVE 7,-23(17)
	CAMLE 4,1(7)
	 SKIPA 3,1(7)
	 TRNA 
	 MOVEM 3,0(17)
	PUSH 17,7
	PUSHJ 17,%VRSPI
	ADJSP 17,-1
	XMOVEI 5,-22(17)
	ADD 5,-2(17)
	PUSH 17,0(5)
	PUSHJ 17,%VRSPI
	MOVE 1,-1(17)
	ADJSP 17,-25
	POPJ 17,
$90==.
	AOS 3,-2(17)
	JRST $88
$89==.
	MOVE 4,-23(17)
	AOS 3,-1(17)
	ADD 3,17
	MOVEM 4,-23(3)
$86==.
	MOVE 4,-23(17)
	MOVE 3,5(4)
	MOVEM 3,-23(17)
	JRST $84
$85==.
	PUSH 17,[$$BP90+$$SECT,,$93]
	PUSHJ 17,INT.ER
	ADJSP 17,-25
	POPJ 17,
$93==.
	BYTE	(9) 162,162,144,146
	BYTE	(9) 151,156,144,72
	BYTE	(9) 40,156,157,40
	BYTE	(9) 162,145,147,163
	BYTE	(9) 0
	

%VRSET:
	MOVE 7,-1(17)
	MOVE 3,0(7)
	TRNN 3,2
	 JRST $94
	MOVE 6,-2(17)
	ADDI 6,1
	PUSH 17,6
	PUSH 17,6(7)
	PUSHJ 17,%VR1SE
	ADJSP 17,-2
$94==.
	JRST %VR1SE
%VR1SE:
	MOVE 1,-1(17)
	MOVE 5,-2(17)
	MOVEM 5,1(1)
	MOVEM 1,%REGIS(5)
	POPJ 17,
%VRUNL:
	MOVE 6,-1(17)
	MOVE 3,0(6)
	TRNN 3,2
	 JRST $95
	PUSH 17,6(6)
	PUSHJ 17,%VR1UN
	ADJSP 17,-1
$95==.
	JRST %VR1UN
%VR1UN:
	MOVE 6,-1(17)
	CAME 6,4(6)
	 JRST $96
	PUSH 17,[$$BP90+$$SECT,,$97]
	PUSHJ 17,INT.WA
	ADJSP 17,-1
	POPJ 17,
$96==.
	MOVE 10,-1(17)
	MOVE 6,5(10)
	MOVE 4,4(10)
	MOVEM 6,5(4)
	MOVE 5,4(10)
	MOVEM 5,4(6)
	POPJ 17,
$97==.
	BYTE	(9) 166,162,61,165
	BYTE	(9) 156,154,151,156
	BYTE	(9) 153,72,40,154
	BYTE	(9) 151,163,164,40
	BYTE	(9) 150,145,141,144
	BYTE	(9) 0
	

%VRLIN:
	MOVE 6,-1(17)
	MOVE 3,0(6)
	TRNN 3,2
	 JRST $98
	PUSH 17,-2(17)
	PUSH 17,6(6)
	PUSHJ 17,%VR1LI
	ADJSP 17,-2
$98==.
	JRST %VR1LI
%VR1LI:
	MOVE 6,-2(17)
	MOVE 4,4(6)
	MOVE 1,-1(17)
	MOVEM 4,4(1)
	MOVEM 1,5(4)
	MOVEM 6,5(1)
	MOVEM 1,4(6)
	POPJ 17,
%VRALL:
	ADJSP 17,1
	MOVE 4,%FREEL*1+4
	XMOVEI 16,%FREEL
	CAME 4,16
	 JRST $100
	PUSH 17,[34]
	PUSHJ 17,MALLOC
	ADJSP 17,-1
	TLZ 1,$$BPPS
	MOVEM 1,0(17)
	JUMPN 1,$99
	PUSH 17,[$$BP90+$$SECT,,$101]
	PUSHJ 17,EFATAL
	ADJSP 17,-1
	JRST $99
$100==.
	MOVE 5,%FREEL*1+4
	MOVEM 5,0(17)
	PUSH 17,5
	PUSHJ 17,%VR1UN
	ADJSP 17,-1
$99==.
	POP 17,1
	SETZB 3,0(1)
	POPJ 17,
$101==.
	BYTE	(9) 117,165,164,40
	BYTE	(9) 157,146,40,155
	BYTE	(9) 145,155,157,162
	BYTE	(9) 171,40,146,157
	BYTE	(9) 162,40,166,151
	BYTE	(9) 162,164,165,141
	BYTE	(9) 154,40,162,145
	BYTE	(9) 147,151,163,164
	BYTE	(9) 145,162,163,0
	

%VRDAL:
	PUSHJ 17,%VRALL
	PUSH 17,1
	PUSHJ 17,%VRALL
	MOVEI 4,2
	MOVE 7,0(17)
	IORB 4,0(7)
	MOVEI 5,4
	IORB 5,0(1)
	MOVEM 1,6(7)
	MOVEM 7,6(1)
	MOVE 1,7
	ADJSP 17,-1
	POPJ 17,

	%%DATA
%REGIS:	BLOCK 20
%REGFR:	BLOCK 20


	%%CODE
$$CPKI==0
	INTERN $$CPKI
$$CPKA==0
	INTERN $$CPKA

	LIT
	EXTERN	$$BPPS
	EXTERN	$$BP90
	EXTERN	$$SECT
	EXTERN	$$$CPU
	EXTERN	$$$CRT
;	EXTERN	.SIOS
;	EXTERN	REMOVE
;	EXTERN	RENAME
;	EXTERN	TMPFIL
;	EXTERN	TMPNAM
;	EXTERN	FCLOSE
;	EXTERN	FFLUSH
;	EXTERN	FOPEN
;	EXTERN	FREOPE
;	EXTERN	SETBUF
;	EXTERN	SETVBU
;	EXTERN	FPRINT
;	EXTERN	FSCANF
;	EXTERN	PRINTF
;	EXTERN	SCANF
;	EXTERN	SPRINT
;	EXTERN	SSCANF
;	EXTERN	VFPRIN
;	EXTERN	VPRINT
;	EXTERN	VSPRIN
;	EXTERN	FGETC
;	EXTERN	FGETS
;	EXTERN	FPUTC
;	EXTERN	FPUTS
;	EXTERN	GETC
;	EXTERN	GETCHA
;	EXTERN	GETS
;	EXTERN	PUTC
;	EXTERN	PUTCHA
;	EXTERN	PUTS
;	EXTERN	UNGETC
;	EXTERN	FREAD
;	EXTERN	FWRITE
;	EXTERN	FGETPO
;	EXTERN	FSEEK
;	EXTERN	FSETPO
;	EXTERN	FTELL
;	EXTERN	REWIND
;	EXTERN	CLEARE
;	EXTERN	FEOF
;	EXTERN	FERROR
;	EXTERN	PERROR
;	EXTERN	FDOPEN
;	EXTERN	SOPEN
;	EXTERN	.SETBU
;	EXTERN	SETLIN
;	EXTERN	MKTEMP
;	EXTERN	GETW
;	EXTERN	PUTW
;	EXTERN	FILENO
;	EXTERN	CTERMI
;	EXTERN	CUSERI
;	EXTERN	.FILE.
;	EXTERN	.MAKEF
;	EXTERN	.FILBU
;	EXTERN	.READA
;	EXTERN	.WRITE
;	EXTERN	.PRIME
;	EXTERN	.SIOFL
;	EXTERN	.CLEAN
;	EXTERN	.FREEF
;	EXTERN	.SETFI
;	EXTERN	TISCHP
;	EXTERN	TISBYP
;	EXTERN	TISCHA
;	EXTERN	TISBYA
;	EXTERN	TISPUR
;	EXTERN	TFLTAB
;	EXTERN	SYMBOL
;	EXTERN	CSYMBO
;	EXTERN	MINSYM
;	EXTERN	BYTSYM
;	EXTERN	HTABLE
;	EXTERN	TTABLE
;	EXTERN	TYPES
;	EXTERN	NODEIN
;	EXTERN	NODEDU
;	EXTERN	NODEID
;	EXTERN	NDEF
;	EXTERN	NDEFOP
;	EXTERN	NDEFT
;	EXTERN	NDEFTF
;	EXTERN	NDEFTL
;	EXTERN	NDEFTR
;	EXTERN	NDEFL
;	EXTERN	NDEFR
;	EXTERN	NDEFLR
;	EXTERN	NDEFIC
;	EXTERN	NDEFID
;	EXTERN	JMSG
;	EXTERN	JERR
;	EXTERN	NOTE
;	EXTERN	ADVISE
;	EXTERN	WARN
	EXTERN	INT.WA
;	EXTERN	ERROR
	EXTERN	INT.ER
	EXTERN	EFATAL
;	EXTERN	FATAL
;	EXTERN	ERRFOP
;	EXTERN	EXPECT
;	EXTERN	ERRFLU
;	EXTERN	OPTPAR
;	EXTERN	OPTGEN
;	EXTERN	OPTOBJ
;	EXTERN	DEBPAR
;	EXTERN	DEBGEN
;	EXTERN	DEBPHO
;	EXTERN	DEBSYM
;	EXTERN	VRBFUN
;	EXTERN	VRBSTA
;	EXTERN	VRBLD
;	EXTERN	LDEXTF
;	EXTERN	LDPSEC
;	EXTERN	LDPSDA
;	EXTERN	LDPSCO
;	EXTERN	LDPSST
;	EXTERN	ASSEMB
;	EXTERN	DELETE
;	EXTERN	LINK
;	EXTERN	PREPF
;	EXTERN	NOWARN
;	EXTERN	CONDCC
;	EXTERN	KEEPCM
;	EXTERN	ASMHFI
;	EXTERN	ASMTFI
;	EXTERN	NPREDE
;	EXTERN	NPREUN
;	EXTERN	NINCPA
;	EXTERN	NHFPAT
;	EXTERN	NHFSYP
;	EXTERN	PREDEF
;	EXTERN	PREUND
;	EXTERN	INCPAT
;	EXTERN	HFPATH
;	EXTERN	HFSYPA
;	EXTERN	LIBPAT
;	EXTERN	CLEVKC
;	EXTERN	CLEVEL
;	EXTERN	CVERCO
;	EXTERN	CVERLI
;	EXTERN	CVERDI
;	EXTERN	CVERKC
;	EXTERN	TGSYS
;	EXTERN	TGCPU
;	EXTERN	TGASM
;	EXTERN	TGCSIZ
;	EXTERN	TGCPW
;	EXTERN	TGCMAS
;	EXTERN	TGMACH
;	EXTERN	TOK
;	EXTERN	NOPNAM
;	EXTERN	TOKSTR
;	EXTERN	CHARTY
;	EXTERN	STRCON
;	EXTERN	VOIDPT
;	EXTERN	SIZTYP
;	EXTERN	PTRDIF
;	EXTERN	TYPEPT
;	EXTERN	TYPSIZ
;	EXTERN	TYPBSI
;	EXTERN	TSNAME
;	EXTERN	INPFNA
;	EXTERN	INPFDI
;	EXTERN	INPFMO
;	EXTERN	INPFSU
;	EXTERN	OUTFNA
;	EXTERN	PREFNA
;	EXTERN	DEBFNA
;	EXTERN	PHOFNA
;	EXTERN	SYMFNA
;	EXTERN	IN
;	EXTERN	OUT
;	EXTERN	FDEB
;	EXTERN	FPHO
;	EXTERN	FSYM
;	EXTERN	MAXTYP
;	EXTERN	PAGE
;	EXTERN	LINE
;	EXTERN	FLINE
;	EXTERN	TLINE
;	EXTERN	EOF
;	EXTERN	TOKEN
;	EXTERN	NERROR
;	EXTERN	NODES
;	EXTERN	SAVELI
;	EXTERN	CURFN
;	EXTERN	CURFNL
;	EXTERN	CURFNN
;	EXTERN	MAXAUT
;	EXTERN	STACKR
;	EXTERN	STKGOT
	INTERN	VR.RET
	INTERN	VR.SP
	INTERN	VRINIT
	INTERN	VRENDC
	INTERN	VRGET
	INTERN	VRDGET
	INTERN	VRRETG
	INTERN	VRRETD
	INTERN	VRFREE
	INTERN	VRREAL
	INTERN	VRTORE
	INTERN	VRSTOR
	INTERN	VRALLS
	INTERN	VRWIDE
	INTERN	VRLOWI
	INTERN	VRNARR
	INTERN	VRUFCR
	INTERN	VRISPA
	INTERN	RFREE
	INTERN	RHASVA
;	EXTERN	RBREF
;	EXTERN	RBSET
;	EXTERN	RBMOD
;	EXTERN	RBUSE
;	EXTERN	RBCHG
;	EXTERN	RBIN
;	EXTERN	RRREF
;	EXTERN	RRSET
;	EXTERN	RRMOD
;	EXTERN	RRUSE
;	EXTERN	RRCHG
;	EXTERN	RRIN
;	EXTERN	RBINCO
;	EXTERN	RBINRE
;	EXTERN	RBINAD
;	EXTERN	RINCOD
;	EXTERN	RINREG
;	EXTERN	RINADD
;	EXTERN	RBITS
;	EXTERN	DRBITS
;	EXTERN	NEWLAB
	EXTERN	STACKO
;	EXTERN	BRKLAB
;	EXTERN	LOOPLA
;	EXTERN	LITSTR
;	EXTERN	LITNOD
;	EXTERN	CODES
	EXTERN	PREVIO
;	EXTERN	MAXCOD
;	EXTERN	MINCOD
;	EXTERN	POPOST
;	EXTERN	POPFLG
;	EXTERN	POPPRC
	EXTERN	BEFORE
	EXTERN	CODE00
	EXTERN	CODE8
	EXTERN	CODE12
	EXTERN	UFCREG
	EXTERN	MALLOC
	END