Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_FS_1_19910112 - c/user/compress/compre.fai
There are no other files named compre.fai in the archive.
	TITLE	compre
	.REQUEST C:LIBc.REL
	$$CVER==<2,,1>
	INTERN $$CVER
	OPDEF ADJBP [IBP]
DEFINE %CHRBP(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
sccsid:	BYTE (9) 100,50,43,51
	BYTE (9) 143,157,155,160
	BYTE (9) 162,145,163,163
	BYTE (9) 56,143,11,65
	BYTE (9) 56,70,40,50
	BYTE (9) 102,145,162,153
	BYTE (9) 145,154,145,171
	BYTE (9) 51,40,61,57
	BYTE (9) 61,60,57,70
	BYTE (9) 66,0
magic.:	BYTE (9) 37,235,0
rcs.id:	BYTE (9) 44,110,145,141
	BYTE (9) 144,145,162,72
	BYTE (9) 40,143,157,155
	BYTE (9) 160,162,145,163
	BYTE (9) 163,56,143,54
	BYTE (9) 166,40,64,56
	BYTE (9) 60,40,70,65
	BYTE (9) 57,60,67,57
	BYTE (9) 63,60,40,61
	BYTE (9) 62,72,65,60
	BYTE (9) 72,60,60,40
	BYTE (9) 152,157,145,40
	BYTE (9) 122,145,154,145
	BYTE (9) 141,163,145,40
	BYTE (9) 44,0
n.bits:	BLOCK	1
maxbit:	20
maxcod:	BLOCK	1
maxmax:	200000
htab:	BLOCK	206611
codeta:	BLOCK	103305
hsize:	206611
fsize:	BLOCK	1
free.e:	0
exit.s:	0

	%%CODE
Usage:
	PUSH 17,[$$BP90+$$SECT,,$1]
	XMOVEI 4,.sios*1+40
	PUSH 17,4
	PUSHJ 17,fprint
	ADJSP 17,-2
	POPJ 17,
$1==.
	BYTE	(9) 125,163,141,147
	BYTE	(9) 145,72,40,143
	BYTE	(9) 157,155,160,162
	BYTE	(9) 145,163,163,40
	BYTE	(9) 133,55,146,166
	BYTE	(9) 143,135,40,133
	BYTE	(9) 55,142,40,155
	BYTE	(9) 141,170,142,151
	BYTE	(9) 164,163,135,40
	BYTE	(9) 133,146,151,154
	BYTE	(9) 145,40,56,56
	BYTE	(9) 56,135,12,0
	


	%%DATA
nomagi:	0
zcat.f:	0
precio:	1
quiet:	1
block.:	200
clear.:	0
ratio:	0
checkp:	23420
force:	0
ofname:	BLOCK	31
bgnd.f:	BLOCK	1
do.dec:	0

	%%CODE
main:
	PUSH 17,[0]
	PUSH 17,[1]
	PUSH 17,[2]
	PUSHJ 17,signal
	ADJSP 17,-2
	MOVEM 1,bgnd.f
	SOJE 1,$3
	XMOVEI 3,onintr
	PUSH 17,3
	PUSH 17,[2]
	PUSHJ 17,signal
	XMOVEI 3,oops
	MOVEM 3,-1(17)
	ADJSP 17,-1
	PUSH 17,[13]
	PUSHJ 17,signal
	ADJSP 17,-2
$3==.
	ADJSP 17,57
	MOVE 4,-61(17)
	ASH 4,2
	PUSH 17,4
	PUSHJ 17,malloc
	ADJSP 17,-1
	TLZ 1,$$BPPS
	MOVEM 1,-24(17)
	MOVEM 1,-25(17)
	SETZB 3,0(1)
	PUSH 17,[57]
	MOVE 5,-63(17)
	PUSH 17,0(5)
	PUSHJ 17,rindex
	ADJSP 17,-2
	MOVEM 1,-23(17)
	JUMPE 1,$5
	IBP -23(17)
	JRST $4
$5==.
	MOVE 4,-62(17)
	MOVE 3,0(4)
	MOVEM 3,-23(17)
$4==.
	PUSH 17,[$$BP90+$$SECT,,$8]
	PUSH 17,-24(17)
	PUSHJ 17,strcmp
	ADJSP 17,-2
	JUMPN 1,$7
	MOVEI 3,1
	MOVEM 3,do.dec
	JRST $6
$7==.
	PUSH 17,[$$BP90+$$SECT,,$9]
	PUSH 17,-24(17)
	PUSHJ 17,strcmp
	ADJSP 17,-2
	JUMPN 1,$6
	MOVEI 4,1
	MOVEM 4,do.dec
	MOVEM 4,zcat.f
$6==.
	SOS 3,-61(17)
	ADDI 3,1
	AOS 4,-62(17)
	SUBI 4,1
$10==.
	SKIPG 4,-61(17)
	 JRST $11
	MOVE 5,-62(17)
	LDB 6,0(5)
	CAIE 6,55
	 JRST $13
$14==.
	MOVE 5,-62(17)
	ILDB 3,0(5)
	JUMPE 3,$2
	MOVE 6,-62(17)
	LDB 7,0(6)
	CAIL 7,144
	 JRST $25
	MOVM 10,7
	IDIVI 10,5
	CAME 7,$26(11)
	 JRST $24
	JRST @$27(11)
$26==.
	 106
	 126
	 103
	 142
	 143
$27==.
	IFIW $18
	IFIW $15
	IFIW $20
	IFIW $21
	IFIW $22
$25==.
	MOVM 3,7
	IDIVI 3,7
	CAME 7,$28(4)
	 JRST $24
	JRST @$29(4)
$28==.
	 -1
	 161
	 144
	 -1
	 146
	 156
	 166
$29==.
	IFIW $24
	IFIW $23
	IFIW $17
	IFIW $24
	IFIW $18
	IFIW $19
	IFIW $16
$15==.
	PUSHJ 17,versio
	JRST $14
$16==.
	SETZB 3,quiet
	JRST $14
$17==.
	MOVEI 3,1
	MOVEM 3,do.dec
	JRST $14
$18==.
	MOVEI 4,1
	MOVEM 4,-57(17)
	MOVEM 4,force
	JRST $14
$19==.
	MOVEI 3,1
	MOVEM 3,nomagi
	JRST $14
$20==.
	SETZB 3,block.
	JRST $14
$21==.
	MOVE 5,-62(17)
	ILDB 3,0(5)
	JUMPN 3,$30
	SOSN 4,-61(17)
	 JRST $31
	AOS 6,-62(17)
	SKIPE 7,0(6)
	 JRST $30
$31==.
	PUSH 17,[$$BP90+$$SECT,,$32]
	XMOVEI 4,.sios*1+40
	PUSH 17,4
	PUSHJ 17,fprint
	ADJSP 17,-2
	PUSHJ 17,Usage
	PUSH 17,[1]
	PUSHJ 17,exit
	ADJSP 17,-1
$30==.
	MOVE 4,-62(17)
	PUSH 17,0(4)
	PUSHJ 17,atoi
	ADJSP 17,-1
	MOVEM 1,maxbit
	JRST $2
$22==.
	MOVEI 3,1
	MOVEM 3,zcat.f
	JRST $14
$23==.
	MOVEI 3,1
	MOVEM 3,quiet
	JRST $14
$24==.
	MOVE 4,-62(17)
	LDB 5,0(4)
	PUSH 17,5
	PUSH 17,[$$BP90+$$SECT,,$33]
	XMOVEI 6,.sios*1+40
	PUSH 17,6
	PUSHJ 17,fprint
	ADJSP 17,-3
	PUSHJ 17,Usage
	PUSH 17,[1]
	PUSHJ 17,exit
	ADJSP 17,-1
	JRST $14
$13==.
	MOVE 4,-62(17)
	MOVE 3,0(4)
	AOS 5,-24(17)
	MOVEM 3,-1(5)
	MOVE 10,-24(17)
	SETZB 6,0(10)
$2==.
	SOS 3,-61(17)
	ADDI 3,1
	AOS 4,-62(17)
	SUBI 4,1
	JRST $10
$11==.
	MOVE 4,maxbit
	CAIGE 4,11
	 SKIPA 3,[11]
	 TRNA 
	MOVE 6,maxbit
	CAILE 6,20
	 MOVEI 3,20
	MOVEM 3,maxbit
	MOVEI 5,1
	LSH 5,0(3)
	MOVEM 5,maxmax
	MOVE 12,-25(17)
	SKIPN 7,0(12)
	 JRST $37
	MOVEM 12,-24(17)
$38==.
	MOVE 7,-24(17)
	SKIPN 3,0(7)
	 JRST $36
	SETZB 6,exit.s
	CAMN 6,do.dec
	 JRST $41
	PUSH 17,[$$BP90+$$SECT,,$43]
	PUSH 17,0(7)
	PUSHJ 17,strlen
	MOVE 4,-26(17)
	ADJBP 1,0(4)
	MOVNI 3,2
	ADJBP 3,1
	MOVEM 3,0(17)
	PUSHJ 17,strcmp
	ADJSP 17,-2
	JUMPE 1,$42
	MOVE 4,-24(17)
	PUSH 17,0(4)
	XMOVEI 3,-57(17)
	TLO 3,$$BP90
	PUSH 17,3
	PUSHJ 17,strcpy
	ADJSP 17,-2
	PUSH 17,[$$BP90+$$SECT,,$44]
	XMOVEI 3,-57(17)
	TLO 3,$$BP90
	PUSH 17,3
	PUSHJ 17,strcat
	ADJSP 17,-2
	XMOVEI 3,-56(17)
	TLO 3,$$BP90
	MOVE 5,-24(17)
	MOVEM 3,0(5)
$42==.
	XMOVEI 3,.sios
	PUSH 17,3
	PUSH 17,[$$BP90+$$SECT,,$46]
	MOVE 5,-26(17)
	PUSH 17,0(5)
	PUSHJ 17,freope
	ADJSP 17,-3
	JUMPN 1,$45
	MOVE 4,-24(17)
	PUSH 17,0(4)
	PUSHJ 17,perror
	ADJSP 17,-1
	JRST $39
$45==.
	SKIPE 5,nomagi
	 JRST $47
	SOSGE 3,.sios*1+1
	 JRST $50
	ILDB 1,.sios*1+2
	JRST $51
$50==.
	XMOVEI 3,.sios
	PUSH 17,3
	PUSHJ 17,fgetc
	ADJSP 17,-1
$51==.
	LDB 4,[$$BP90+$$SECT,,magic.]
	ANDI 4,377
	CAME 1,4
	 JRST $49
	SOSGE 3,.sios*1+1
	 JRST $52
	ILDB 1,.sios*1+2
	JRST $53
$52==.
	XMOVEI 3,.sios
	PUSH 17,3
	PUSHJ 17,fgetc
	ADJSP 17,-1
$53==.
	LDB 3,[$$BP91+$$SECT,,magic.]
	ANDI 3,377
	CAMN 1,3
	 JRST $48
$49==.
	MOVE 4,-24(17)
	PUSH 17,0(4)
	PUSH 17,[$$BP90+$$SECT,,$54]
	XMOVEI 5,.sios*1+40
	PUSH 17,5
	PUSHJ 17,fprint
	ADJSP 17,-3
	JRST $39
$48==.
	SOSGE 3,.sios*1+1
	 JRST $55
	ILDB 1,.sios*1+2
	JRST $56
$55==.
	XMOVEI 3,.sios
	PUSH 17,3
	PUSHJ 17,fgetc
	ADJSP 17,-1
$56==.
	MOVEM 1,maxbit
	MOVE 4,1
	ANDI 4,200
	MOVEM 4,block.
	MOVEI 7,37
	AND 7,1
	MOVEM 7,maxbit
	MOVEI 3,1
	LSH 3,0(7)
	MOVEM 3,maxmax
	CAIG 7,20
	 JRST $47
	PUSH 17,[20]
	PUSH 17,7
	MOVE 6,-26(17)
	PUSH 17,0(6)
	PUSH 17,[$$BP90+$$SECT,,$57]
	XMOVEI 10,.sios*1+40
	PUSH 17,10
	PUSHJ 17,fprint
	ADJSP 17,-5
	JRST $39
$47==.
	MOVE 4,-24(17)
	PUSH 17,0(4)
	PUSH 17,[$$BP90+$$SECT,,ofname]
	PUSHJ 17,strcpy
	SETZB 16,-1(17)
	ADJSP 17,-1
	MOVE 4,-25(17)
	PUSH 17,0(4)
	PUSHJ 17,strlen
	ADJBP 1,[$$BP92+$$SECT,,ofname*1-1]
	MOVE 3,-1(17)
	ADJSP 17,-2
	DPB 3,1
	JRST $40
$41==.
	PUSH 17,[$$BP90+$$SECT,,$59]
	MOVE 4,-25(17)
	PUSH 17,0(4)
	PUSHJ 17,strlen
	MOVE 4,-26(17)
	ADJBP 1,0(4)
	MOVNI 3,2
	ADJBP 3,1
	MOVEM 3,0(17)
	PUSHJ 17,strcmp
	ADJSP 17,-2
	JUMPN 1,$58
	MOVE 4,-24(17)
	PUSH 17,0(4)
	PUSH 17,[$$BP90+$$SECT,,$60]
	XMOVEI 5,.sios*1+40
	PUSH 17,5
	PUSHJ 17,fprint
	ADJSP 17,-3
	JRST $39
$58==.
	XMOVEI 3,.sios
	PUSH 17,3
	PUSH 17,[$$BP90+$$SECT,,$62]
	MOVE 5,-26(17)
	PUSH 17,0(5)
	PUSHJ 17,freope
	ADJSP 17,-3
	JUMPN 1,$61
	MOVE 4,-24(17)
	PUSH 17,0(4)
	PUSHJ 17,perror
	ADJSP 17,-1
	JRST $39
$61==.
	XMOVEI 3,-22(17)
	PUSH 17,3
	MOVE 5,-25(17)
	PUSH 17,0(5)
	PUSHJ 17,stat
	ADJSP 17,-2
	MOVE 6,-13(17)
	MOVEM 6,fsize
	MOVEI 3,206611
	MOVEM 3,hsize
	CAIL 6,10000
	 JRST $64
	MOVEI 4,11613
	MOVEM 4,hsize
	JRST $63
$64==.
	MOVE 4,fsize
	CAIL 4,20000
	 JRST $65
	MOVEI 3,21451
	MOVEM 3,hsize
	JRST $63
$65==.
	MOVE 4,fsize
	CAIL 4,40000
	 JRST $66
	MOVEI 3,43135
	MOVEM 3,hsize
	JRST $63
$66==.
	MOVE 4,fsize
	CAIL 4,100000
	 JRST $67
	MOVEI 3,104317
	MOVEM 3,hsize
	JRST $63
$67==.
	MOVE 4,fsize
	CAIGE 4,133630
	 SKIPA 3,[141545]
	 TRNA 
	 MOVEM 3,hsize
$63==.
	MOVE 4,-24(17)
	PUSH 17,0(4)
	PUSH 17,[$$BP90+$$SECT,,ofname]
	PUSHJ 17,strcpy
	ADJSP 17,-2
	PUSH 17,[57]
	PUSH 17,[$$BP90+$$SECT,,ofname]
	PUSHJ 17,rindex
	ADJSP 17,-2
	MOVEM 1,-23(17)
	JUMPE 1,$69
	IBP -23(17)
	JRST $68
$69==.
	MOVE 3,[$$BP90+$$SECT,,ofname]
	MOVEM 3,-23(17)
$68==.
	PUSH 17,-23(17)
	PUSHJ 17,strlen
	ADJSP 17,-1
	CAIG 1,14
	 JRST $70
	PUSH 17,-23(17)
	PUSH 17,[$$BP90+$$SECT,,$71]
	XMOVEI 4,.sios*1+40
	PUSH 17,4
	PUSHJ 17,fprint
	ADJSP 17,-3
	JRST $39
$70==.
	PUSH 17,[$$BP90+$$SECT,,$72]
	PUSH 17,[$$BP90+$$SECT,,ofname]
	PUSHJ 17,strcat
	ADJSP 17,-2
$40==.
	SKIPN 3,-57(17)
	 CAME 3,zcat.f
	 JRST $73
	XMOVEI 4,-22(17)
	PUSH 17,4
	PUSH 17,[$$BP90+$$SECT,,ofname]
	PUSHJ 17,stat
	ADJSP 17,-2
	JUMPN 1,$73
	MOVEI 3,156
	DPB 3,[331100,,0(17)]
	PUSH 17,[$$BP90+$$SECT,,ofname]
	PUSH 17,[$$BP90+$$SECT,,$74]
	XMOVEI 5,.sios*1+40
	PUSH 17,5
	PUSHJ 17,fprint
	ADJSP 17,-3
	PUSHJ 17,foregr
	JUMPE 1,$75
	PUSH 17,[$$BP90+$$SECT,,ofname]
	PUSH 17,[$$BP90+$$SECT,,$76]
	XMOVEI 4,.sios*1+40
	PUSH 17,4
	PUSHJ 17,fprint
	XMOVEI 4,.sios*1+40
	MOVEM 4,-2(17)
	ADJSP 17,-2
	PUSHJ 17,fflush
	ADJSP 17,-1
	PUSH 17,[2]
	XMOVEI 3,-1(17)
	TLO 3,$$BP90
	PUSH 17,3
	PUSH 17,[2]
	PUSHJ 17,read
	ADJSP 17,-3
$77==.
	LDB 3,[221100,,0(17)]
	CAIN 3,12
	 JRST $75
	PUSH 17,[1]
	XMOVEI 5,-1(17)
	TLO 5,$$BP91
	PUSH 17,5
	PUSH 17,[2]
	PUSHJ 17,read
	ADJSP 17,-3
	JUMPGE 1,$77
	PUSH 17,[$$BP90+$$SECT,,$78]
	PUSHJ 17,perror
	ADJSP 17,-1
$75==.
	LDB 4,[331100,,0(17)]
	CAIN 4,171
	 JRST $79
	PUSH 17,[$$BP90+$$SECT,,$80]
	XMOVEI 5,.sios*1+40
	PUSH 17,5
	PUSHJ 17,fprint
	ADJSP 17,-2
	JRST $39
$79==.
$73==.
	SKIPE 4,zcat.f
	 JRST $81
	XMOVEI 5,.sios*1+20
	PUSH 17,5
	PUSH 17,[$$BP90+$$SECT,,$83]
	PUSH 17,[$$BP90+$$SECT,,ofname]
	PUSHJ 17,freope
	ADJSP 17,-3
	JUMPN 1,$82
	PUSH 17,[$$BP90+$$SECT,,ofname]
	PUSHJ 17,perror
	ADJSP 17,-1
	JRST $39
$82==.
	SETZB 3,precio
	SKIPE 5,quiet
	 JRST $81
	MOVE 6,-24(17)
	PUSH 17,0(6)
	PUSH 17,[$$BP90+$$SECT,,$84]
	XMOVEI 7,.sios*1+40
	PUSH 17,7
	PUSHJ 17,fprint
	ADJSP 17,-3
$81==.
	SKIPE 4,do.dec
	 JRST $86
	PUSHJ 17,compre
	JRST $85
$86==.
	PUSHJ 17,decomp
$85==.
	SKIPE 4,zcat.f
	 JRST $39
	PUSH 17,[$$BP90+$$SECT,,ofname]
	MOVE 5,-25(17)
	PUSH 17,0(5)
	PUSHJ 17,copyst
	ADJSP 17,-2
	MOVEI 4,1
	MOVEM 4,precio
	CAME 4,exit.s
	 SKIPN 5,quiet
	 TRNA 
	 JRST $39
	SOSGE 3,.sios*1+41
	 JRST $88
	MOVEI 1,12
	IDPB 1,.sios*1+42
	JRST $39
$88==.
	XMOVEI 4,.sios*1+40
	PUSH 17,4
	PUSH 17,[12]
	PUSHJ 17,fputc
	ADJSP 17,-2
$39==.
	AOS 3,-24(17)
	JRST $38
$37==.
	SKIPE 4,do.dec
	 JRST $89
	PUSHJ 17,compre
	SKIPE 5,quiet
	 JRST $36
	SOSGE 3,.sios*1+41
	 JRST $90
	MOVEI 1,12
	IDPB 1,.sios*1+42
	JRST $36
$90==.
	XMOVEI 4,.sios*1+40
	PUSH 17,4
	PUSH 17,[12]
	PUSHJ 17,fputc
	ADJSP 17,-2
	JRST $36
$89==.
	SKIPE 5,nomagi
	 JRST $91
	SOSGE 3,.sios*1+1
	 JRST $94
	ILDB 1,.sios*1+2
	JRST $95
$94==.
	XMOVEI 3,.sios
	PUSH 17,3
	PUSHJ 17,fgetc
	ADJSP 17,-1
$95==.
	LDB 4,[$$BP90+$$SECT,,magic.]
	ANDI 4,377
	CAME 1,4
	 JRST $93
	SOSGE 3,.sios*1+1
	 JRST $96
	ILDB 1,.sios*1+2
	JRST $97
$96==.
	XMOVEI 3,.sios
	PUSH 17,3
	PUSHJ 17,fgetc
	ADJSP 17,-1
$97==.
	LDB 3,[$$BP91+$$SECT,,magic.]
	ANDI 3,377
	CAMN 1,3
	 JRST $92
$93==.
	PUSH 17,[$$BP90+$$SECT,,$98]
	XMOVEI 4,.sios*1+40
	PUSH 17,4
	PUSHJ 17,fprint
	ADJSP 17,-2
	PUSH 17,[1]
	PUSHJ 17,exit
	ADJSP 17,-1
$92==.
	SOSGE 3,.sios*1+1
	 JRST $99
	ILDB 1,.sios*1+2
	JRST $100
$99==.
	XMOVEI 3,.sios
	PUSH 17,3
	PUSHJ 17,fgetc
	ADJSP 17,-1
$100==.
	MOVEM 1,maxbit
	MOVE 4,1
	ANDI 4,200
	MOVEM 4,block.
	MOVEI 7,37
	AND 7,1
	MOVEM 7,maxbit
	MOVEI 3,1
	LSH 3,0(7)
	MOVEM 3,maxmax
	MOVEI 5,303240
	MOVEM 5,fsize
	CAIG 7,20
	 JRST $91
	PUSH 17,[20]
	PUSH 17,7
	PUSH 17,[$$BP90+$$SECT,,$101]
	XMOVEI 10,.sios*1+40
	PUSH 17,10
	PUSHJ 17,fprint
	ADJSP 17,-4
	PUSH 17,[1]
	PUSHJ 17,exit
	ADJSP 17,-1
$91==.
	PUSHJ 17,decomp
$36==.
	PUSH 17,exit.s
	PUSHJ 17,exit
	ADJSP 17,-61
	POPJ 17,
$101==.
	BYTE	(9) 163,164,144,151
	BYTE	(9) 156,72,40,143
	BYTE	(9) 157,155,160,162
	BYTE	(9) 145,163,163,145
	BYTE	(9) 144,40,167,151
	BYTE	(9) 164,150,40,45
	BYTE	(9) 144,40,142,151
	BYTE	(9) 164,163,54,40
	BYTE	(9) 143,141,156,40
	BYTE	(9) 157,156,154,171
	BYTE	(9) 40,150,141,156
	BYTE	(9) 144,154,145,40
	BYTE	(9) 45,144,40,142
	BYTE	(9) 151,164,163,12
	BYTE	(9) 0
	

$98==.
	BYTE	(9) 163,164,144,151
	BYTE	(9) 156,72,40,156
	BYTE	(9) 157,164,40,151
	BYTE	(9) 156,40,143,157
	BYTE	(9) 155,160,162,145
	BYTE	(9) 163,163,145,144
	BYTE	(9) 40,146,157,162
	BYTE	(9) 155,141,164,12
	BYTE	(9) 0
	

$84==.
	BYTE	(9) 45,163,72,40
	BYTE	(9) 0
	

$83==.
	BYTE	(9) 167,0
	

$80==.
	BYTE	(9) 11,156,157,164
	BYTE	(9) 40,157,166,145
	BYTE	(9) 162,167,162,151
	BYTE	(9) 164,164,145,156
	BYTE	(9) 12,0
	

$78==.
	BYTE	(9) 163,164,144,145
	BYTE	(9) 162,162,0
	

$76==.
	BYTE	(9) 40,144,157,40
	BYTE	(9) 171,157,165,40
	BYTE	(9) 167,151,163,150
	BYTE	(9) 40,164,157,40
	BYTE	(9) 157,166,145,162
	BYTE	(9) 167,162,151,164
	BYTE	(9) 145,40,45,163
	BYTE	(9) 40,50,171,40
	BYTE	(9) 157,162,40,156
	BYTE	(9) 51,77,40,0
	

$74==.
	BYTE	(9) 45,163,40,141
	BYTE	(9) 154,162,145,141
	BYTE	(9) 144,171,40,145
	BYTE	(9) 170,151,163,164
	BYTE	(9) 163,73,0
	

$72==.
	BYTE	(9) 56,132,0
	

$71==.
	BYTE	(9) 45,163,72,40
	BYTE	(9) 146,151,154,145
	BYTE	(9) 156,141,155,145
	BYTE	(9) 40,164,157,157
	BYTE	(9) 40,154,157,156
	BYTE	(9) 147,40,164,157
	BYTE	(9) 40,164,141,143
	BYTE	(9) 153,40,157,156
	BYTE	(9) 40,56,132,12
	BYTE	(9) 0
	

$62==.
	BYTE	(9) 162,0
	

$60==.
	BYTE	(9) 45,163,72,40
	BYTE	(9) 141,154,162,145
	BYTE	(9) 141,144,171,40
	BYTE	(9) 150,141,163,40
	BYTE	(9) 56,132,40,163
	BYTE	(9) 165,146,146,151
	BYTE	(9) 170,40,55,55
	BYTE	(9) 40,156,157,40
	BYTE	(9) 143,150,141,156
	BYTE	(9) 147,145,12,0
	

$59==.
	BYTE	(9) 56,132,0
	

$57==.
	BYTE	(9) 45,163,72,40
	BYTE	(9) 143,157,155,160
	BYTE	(9) 162,145,163,163
	BYTE	(9) 145,144,40,167
	BYTE	(9) 151,164,150,40
	BYTE	(9) 45,144,40,142
	BYTE	(9) 151,164,163,54
	BYTE	(9) 40,143,141,156
	BYTE	(9) 40,157,156,154
	BYTE	(9) 171,40,150,141
	BYTE	(9) 156,144,154,145
	BYTE	(9) 40,45,144,40
	BYTE	(9) 142,151,164,163
	BYTE	(9) 12,0
	

$54==.
	BYTE	(9) 45,163,72,40
	BYTE	(9) 156,157,164,40
	BYTE	(9) 151,156,40,143
	BYTE	(9) 157,155,160,162
	BYTE	(9) 145,163,163,145
	BYTE	(9) 144,40,146,157
	BYTE	(9) 162,155,141,164
	BYTE	(9) 12,0
	

$46==.
	BYTE	(9) 162,0
	

$44==.
	BYTE	(9) 56,132,0
	

$43==.
	BYTE	(9) 56,132,0
	

$33==.
	BYTE	(9) 125,156,153,156
	BYTE	(9) 157,167,156,40
	BYTE	(9) 146,154,141,147
	BYTE	(9) 72,40,47,45
	BYTE	(9) 143,47,73,40
	BYTE	(9) 0
	

$32==.
	BYTE	(9) 115,151,163,163
	BYTE	(9) 151,156,147,40
	BYTE	(9) 155,141,170,142
	BYTE	(9) 151,164,163,12
	BYTE	(9) 0
	

$9==.
	BYTE	(9) 172,143,141,164
	BYTE	(9) 0
	

$8==.
	BYTE	(9) 165,156,143,157
	BYTE	(9) 155,160,162,145
	BYTE	(9) 163,163,0
	


	%%DATA
offset:	BLOCK	1
in.cou:	1
bytes.:	BLOCK	1
out.co:	0

	%%CODE
compre:
	ADJSP 17,7
	SETZB 5,-5(17)
	CAME 5,nomagi
	 JRST $104
	SOS 3,.sios*1+21
	CAMGE 3,5
	 JRST $105
	LDB 1,[$$BP90+$$SECT,,magic.]
	IDPB 1,.sios*1+22
	JRST $106
$105==.
	XMOVEI 4,.sios*1+20
	PUSH 17,4
	LDB 5,[$$BP90+$$SECT,,magic.]
	PUSH 17,5
	PUSHJ 17,fputc
	ADJSP 17,-2
$106==.
	SOSGE 3,.sios*1+21
	 JRST $107
	LDB 1,[$$BP91+$$SECT,,magic.]
	IDPB 1,.sios*1+22
	JRST $108
$107==.
	XMOVEI 4,.sios*1+20
	PUSH 17,4
	LDB 3,[$$BP91+$$SECT,,magic.]
	PUSH 17,3
	PUSHJ 17,fputc
	ADJSP 17,-2
$108==.
	SOSGE 3,.sios*1+21
	 JRST $109
	MOVE 1,maxbit
	IOR 1,block.
	IDPB 1,.sios*1+22
	JRST $110
$109==.
	XMOVEI 4,.sios*1+20
	PUSH 17,4
	MOVE 5,maxbit
	IOR 5,block.
	ANDI 5,777
	PUSH 17,5
	PUSHJ 17,fputc
	ADJSP 17,-2
$110==.
	SKIPE 3,.sios*1+31
	 PUSHJ 17,writee
$104==.
	SETZB 13,offset
	MOVEI 4,3
	MOVEM 4,bytes.
	MOVEM 13,out.co
	MOVEM 13,clear.
	MOVEM 13,ratio
	MOVEI 7,1
	MOVEM 7,in.cou
	MOVEI 6,23420
	MOVEM 6,checkp
	MOVEI 3,11
	MOVEM 3,n.bits
	LSH 7,0(3)
	SUBI 7,1
	MOVEM 7,maxcod
	SKIPE 11,block.
	 SKIPA 10,[401]
	 MOVEI 10,400
	MOVEM 10,free.e
	SOS 12,.sios*1+1
	CAMGE 12,13
	 JRST $113
	ILDB 1,.sios*1+2
	JRST $114
$113==.
	XMOVEI 3,.sios
	PUSH 17,3
	PUSHJ 17,fgetc
	ADJSP 17,-1
$114==.
	MOVEM 1,-3(17)
	SETZB 3,0(17)
	MOVE 5,hsize
	MOVEM 5,-6(17)
$115==.
	MOVE 7,-6(17)
	CAIL 7,200000
	 JRST $116
	AOS 3,0(17)
	ASH 7,1
	MOVEM 7,-6(17)
	JRST $115
$116==.
	MOVEI 3,10
	SUBB 3,0(17)
	MOVE 6,hsize
	MOVEM 6,-1(17)
	PUSH 17,6
	PUSHJ 17,cl.has
	ADJSP 17,-1
$118==.
	SOSGE 3,.sios*1+1
	 JRST $120
	ILDB 1,.sios*1+2
	JRST $121
$120==.
	XMOVEI 3,.sios
	PUSH 17,3
	PUSHJ 17,fgetc
	ADJSP 17,-1
$121==.
	MOVEM 1,-4(17)
	AOJE 1,$119
	AOS 3,in.cou
	MOVE 11,-4(17)
	MOVE 6,maxbit
	LSH 11,0(6)
	ADD 11,-3(17)
	MOVEM 11,-6(17)
	MOVE 7,-4(17)
	MOVE 10,0(17)
	LSH 7,0(10)
	XOR 7,-3(17)
	MOVEM 7,-5(17)
	CAME 11,htab(7)
	 JRST $123
	ADJBP 7,[$$BPH0+$$SECT,,codeta]
	LDB 4,7
	MOVEM 4,-3(17)
	JRST $118
$123==.
	MOVE 5,-5(17)
	SKIPGE 4,htab(5)
	 JRST $102
	MOVE 6,-1(17)
	SUB 6,5
	CAIN 5,0
	 MOVEI 6,1
	MOVEM 6,-2(17)
$103==.
	MOVN 6,-2(17)
	ADDB 6,-5(17)
	JUMPGE 6,$124
	ADD 6,-1(17)
	MOVEM 6,-5(17)
$124==.
	MOVE 7,-5(17)
	MOVE 4,htab(7)
	CAME 4,-6(17)
	 JRST $125
	ADJBP 7,[$$BPH0+$$SECT,,codeta]
	LDB 3,7
	MOVEM 3,-3(17)
	JRST $118
$125==.
	MOVE 3,-5(17)
	SKIPLE 4,htab(3)
	 JRST $103
$102==.
	PUSH 17,-3(17)
	PUSHJ 17,output
	ADJSP 17,-1
	AOS 3,out.co
	MOVE 5,-4(17)
	MOVEM 5,-3(17)
	MOVE 6,free.e
	CAML 6,maxmax
	 JRST $126
	AOS 4,free.e
	SUBI 4,1
	MOVE 11,-5(17)
	ADJBP 11,[$$BPH0+$$SECT,,codeta]
	DPB 4,11
	MOVE 10,-6(17)
	MOVE 7,-5(17)
	MOVEM 10,htab(7)
	JRST $118
$126==.
	MOVE 4,in.cou
	CAML 4,checkp
	 SKIPN 5,block.
	 JRST $118
	PUSHJ 17,cl.blo
	JRST $118
$119==.
	PUSH 17,-3(17)
	PUSHJ 17,output
	AOS 3,out.co
	SETOB 16,0(17)
	PUSHJ 17,output
	ADJSP 17,-1
	SKIPN 4,zcat.f
	 SKIPE 5,quiet
	 JRST $127
	PUSH 17,[$$BP90+$$SECT,,$128]
	XMOVEI 6,.sios*1+40
	PUSH 17,6
	PUSHJ 17,fprint
	ADJSP 17,-2
	PUSH 17,in.cou
	MOVE 4,in.cou
	SUB 4,bytes.
	PUSH 17,4
	XMOVEI 5,.sios*1+40
	PUSH 17,5
	PUSHJ 17,prrati
	ADJSP 17,-3
$127==.
	MOVE 4,bytes.
	CAMLE 4,in.cou
	 SKIPA 3,[2]
	 TRNA 
	 MOVEM 3,exit.s
	ADJSP 17,-7
	POPJ 17,
$128==.
	BYTE	(9) 103,157,155,160
	BYTE	(9) 162,145,163,163
	BYTE	(9) 151,157,156,72
	BYTE	(9) 40,0
	


	%%DATA
buf:	BLOCK	4
lmask:	BYTE (9) 377,376,374,370
	BYTE (9) 360,340,300,200
	BYTE (9) 0
rmask:	BYTE (9) 0,1,3,7
	BYTE (9) 17,37,77,177
	BYTE (9) 377

	%%CODE
output:
	PUSH 17,offset
	PUSH 17,n.bits
	PUSH 17,[$$BP90+$$SECT,,buf]
	SKIPGE 4,-4(17)
	 JRST $131
	MOVE 13,offset
	ASH 13,-3
	ADJBP 13,0(17)
	MOVEM 13,0(17)
	MOVEI 11,7
	ANDB 11,-2(17)
	LDB 3,13
	ADJBP 11,[$$BP90+$$SECT,,rmask]
	LDB 5,11
	AND 3,5
	MOVE 10,-4(17)
	MOVE 14,-2(17)
	LSH 10,0(14)
	ADJBP 14,[$$BP90+$$SECT,,lmask]
	LDB 7,14
	AND 10,7
	IOR 3,10
	DPB 3,13
	IBP 0(17)
	MOVE 15,-2(17)
	SUBI 15,10
	ADDB 15,-1(17)
	MOVEI 6,10
	SUB 6,-2(17)
	MOVE 3,-4(17)
	MOVN 6,6
	ASH 3,0(6)
	MOVEM 3,-4(17)
	MOVE 3,-1(17)
	CAIGE 3,10
	 JRST $132
	MOVE 4,-4(17)
	DPB 4,0(17)
	IBP 0(17)
	ASH 4,-10
	MOVEM 4,-4(17)
	MOVNI 4,10
	ADDB 4,-1(17)
$132==.
	SKIPE 4,-1(17)
	 SKIPA 5,-4(17)
	 TRNA 
	 DPB 5,0(17)
	MOVE 6,n.bits
	ADDB 6,offset
	MOVE 7,n.bits
	LSH 7,3
	CAME 6,7
	 JRST $134
	MOVE 3,[$$BP90+$$SECT,,buf]
	MOVEM 3,0(17)
	MOVE 11,n.bits
	MOVEM 11,-1(17)
	ADDB 11,bytes.
$135==.
	SOSGE 3,.sios*1+21
	 JRST $138
	LDB 1,0(17)
	IBP 0(17)
	IDPB 1,.sios*1+22
	JRST $137
$138==.
	XMOVEI 4,.sios*1+20
	PUSH 17,4
	LDB 3,-1(17)
	IBP -1(17)
	PUSH 17,3
	PUSHJ 17,fputc
	ADJSP 17,-2
$137==.
	SOSE 3,-1(17)
	 JRST $135
	SETZB 4,offset
$134==.
	MOVE 4,free.e
	CAMG 4,maxcod
	 SKIPLE 5,clear.
	 TRNA 
	 JRST $130
	SKIPG 6,offset
	 JRST $140
	XMOVEI 7,.sios*1+20
	PUSH 17,7
	PUSH 17,n.bits
	PUSH 17,[1]
	PUSH 17,[$$BP90+$$SECT,,buf]
	PUSHJ 17,fwrite
	ADJSP 17,-4
	CAME 1,n.bits
	 PUSHJ 17,writee
	MOVE 5,n.bits
	ADDB 5,bytes.
$140==.
	SETZB 7,offset
	SKIPN 5,clear.
	 JRST $142
	MOVEI 4,1
	MOVEI 6,11
	MOVEM 6,n.bits
	LSH 4,0(6)
	SUBI 4,1
	MOVEM 4,maxcod
	MOVEM 7,clear.
	JRST $130
$142==.
	AOS 5,n.bits
	CAME 5,maxbit
	 JRST $143
	MOVE 4,maxmax
	MOVEM 4,maxcod
	JRST $130
$143==.
	MOVEI 3,1
	MOVE 5,n.bits
	LSH 3,0(5)
	SUBI 3,1
	MOVEM 3,maxcod
	JRST $130
$131==.
	SKIPG 6,offset
	 JRST $144
	XMOVEI 5,.sios*1+20
	PUSH 17,5
	ADDI 6,7
	IDIVI 6,10
	PUSH 17,6
	PUSH 17,[1]
	PUSH 17,[$$BP90+$$SECT,,buf]
	PUSHJ 17,fwrite
	ADJSP 17,-4
$144==.
	MOVE 4,offset
	ADDI 4,7
	IDIVI 4,10
	ADDB 4,bytes.
	SETZB 3,offset
	XMOVEI 6,.sios*1+20
	PUSH 17,6
	PUSHJ 17,fflush
	ADJSP 17,-1
	SKIPE 3,.sios*1+31
	 PUSHJ 17,writee
$130==.
	ADJSP 17,-3
	POPJ 17,
decomp:
	ADJSP 17,5
	MOVEI 3,1
	MOVEI 4,11
	MOVEM 4,n.bits
	LSH 3,0(4)
	SUBI 3,1
	MOVEM 3,maxcod
	MOVEI 5,377
	MOVEM 5,-2(17)
$145==.
	SETZ 4,
	MOVE 6,-2(17)
	ADJBP 6,[$$BPH0+$$SECT,,codeta]
	DPB 4,6
	MOVE 5,-2(17)
	MOVE 10,-2(17)
	ADJBP 10,[331100,,htab]
	DPB 5,10
	SOSL 11,-2(17)
	 JRST $145
	SKIPE 7,block.
	 SKIPA 3,[401]
	 MOVEI 3,400
	MOVEM 3,free.e
	PUSHJ 17,getcod
	MOVEM 1,-1(17)
	MOVEM 1,-3(17)
	AOJN 1,$150
	ADJSP 17,-5
	POPJ 17,
$150==.
	SOSGE 3,.sios*1+21
	 JRST $151
	MOVE 1,-3(17)
	IDPB 1,.sios*1+22
	JRST $152
$151==.
	XMOVEI 4,.sios*1+20
	PUSH 17,4
	MOVE 5,-4(17)
	ANDI 5,777
	PUSH 17,5
	PUSHJ 17,fputc
	ADJSP 17,-2
$152==.
	SKIPE 3,.sios*1+31
	 PUSHJ 17,writee
	XMOVEI 4,htab*1+40000
	TLO 4,$$BP90
	MOVEM 4,-4(17)
$154==.
	PUSHJ 17,getcod
	MOVEM 1,-2(17)
	JUMPL 1,$155
	CAIN 1,400
	 SKIPN 4,block.
	 JRST $156
	MOVEI 3,377
	MOVEM 3,-2(17)
$157==.
	SETZ 4,
	MOVE 6,-2(17)
	ADJBP 6,[$$BPH0+$$SECT,,codeta]
	DPB 4,6
	SOSL 7,-2(17)
	 JRST $157
	MOVEI 3,1
	MOVEM 3,clear.
	MOVEI 5,400
	MOVEM 5,free.e
	PUSHJ 17,getcod
	MOVEM 1,-2(17)
	AOJE 1,$155
$156==.
	MOVE 5,-2(17)
	MOVEM 5,0(17)
	CAMGE 5,free.e
	 JRST $160
	MOVE 4,-3(17)
	DPB 4,-4(17)
	IBP -4(17)
	MOVE 6,-1(17)
	MOVEM 6,-2(17)
$160==.
$161==.
	MOVE 6,-2(17)
	CAIGE 6,400
	 JRST $162
	ADJBP 6,[331100,,htab]
	LDB 4,6
	DPB 4,-4(17)
	IBP -4(17)
	MOVE 7,-2(17)
	ADJBP 7,[$$BPH0+$$SECT,,codeta]
	LDB 3,7
	MOVEM 3,-2(17)
	JRST $161
$162==.
	MOVE 5,-2(17)
	ADJBP 5,[331100,,htab]
	LDB 4,5
	MOVEM 4,-3(17)
	DPB 4,-4(17)
	IBP -4(17)
$163==.
	SOSGE 3,.sios*1+21
	 JRST $166
	SETO 4,
	ADJBP 4,-4(17)
	MOVEM 4,-4(17)
	LDB 1,4
	IDPB 1,.sios*1+22
	JRST $165
$166==.
	XMOVEI 4,.sios*1+20
	PUSH 17,4
	SETO 3,
	ADJBP 3,-5(17)
	MOVEM 3,-5(17)
	LDB 5,3
	PUSH 17,5
	PUSHJ 17,fputc
	ADJSP 17,-2
$165==.
	SKIPL 4,-4(17)
	 TLC 4,770000
	ROT 4,6
	XMOVEI 5,htab*1+40000
	TLO 5,$$BP90
	SKIPL 5,5
	 TLC 5,770000
	ROT 5,6
	CAMLE 4,5
	 JRST $163
	MOVE 11,free.e
	MOVEM 11,-2(17)
	CAML 11,maxmax
	 JRST $167
	MOVE 7,-1(17)
	ADJBP 11,[$$BPH0+$$SECT,,codeta]
	DPB 7,11
	MOVE 6,-3(17)
	MOVE 12,-2(17)
	ADJBP 12,[331100,,htab]
	DPB 6,12
	MOVE 10,-2(17)
	ADDI 10,1
	MOVEM 10,free.e
$167==.
	MOVE 4,0(17)
	MOVEM 4,-1(17)
	JRST $154
$155==.
	XMOVEI 4,.sios*1+20
	PUSH 17,4
	PUSHJ 17,fflush
	ADJSP 17,-1
	SKIPE 3,.sios*1+31
	 PUSHJ 17,writee
	ADJSP 17,-5
	POPJ 17,

	%%DATA
$169:	0
$170:	0
$171:	BLOCK	4

	%%CODE
getcod:
	ADJSP 17,4
	MOVE 3,[$$BP90+$$SECT,,$171]
	MOVEM 3,0(17)
	SKIPLE 5,clear.
	 JRST $173
	MOVE 6,$169
	CAML 6,$170
	 JRST $173
	MOVE 7,free.e
	CAMG 7,maxcod
	 JRST $172
$173==.
	MOVE 4,free.e
	CAMG 4,maxcod
	 JRST $174
	AOS 6,n.bits
	CAME 6,maxbit
	 JRST $175
	MOVE 5,maxmax
	MOVEM 5,maxcod
	JRST $174
$175==.
	MOVEI 3,1
	MOVE 5,n.bits
	LSH 3,0(5)
	SUBI 3,1
	MOVEM 3,maxcod
$174==.
	SKIPG 4,clear.
	 JRST $176
	MOVEI 3,1
	MOVEI 5,11
	MOVEM 5,n.bits
	LSH 3,0(5)
	SUBI 3,1
	MOVEM 3,maxcod
	SETZB 6,clear.
$176==.
	XMOVEI 3,.sios
	PUSH 17,3
	PUSH 17,n.bits
	PUSH 17,[1]
	PUSH 17,[$$BP90+$$SECT,,$171]
	PUSHJ 17,fread
	ADJSP 17,-4
	MOVEM 1,$170
	JUMPG 1,$177
	SETO 1,
	ADJSP 17,-4
	POPJ 17,
$177==.
	SETZB 3,$169
	MOVE 5,$170
	LSH 5,3
	ADDI 5,1
	SUB 5,n.bits
	MOVEM 5,$170
$172==.
	MOVE 4,$169
	MOVEM 4,-2(17)
	MOVE 5,n.bits
	MOVEM 5,-1(17)
	ASH 4,-3
	ADJBP 4,0(17)
	MOVEM 4,0(17)
	MOVEI 10,7
	ANDB 10,-2(17)
	IBP 0(17)
	LDB 3,4
	MOVN 10,10
	ASH 3,0(10)
	MOVEM 3,-3(17)
	MOVE 11,-2(17)
	SUBI 11,10
	ADDB 11,-1(17)
	MOVEI 6,10
	SUBB 6,-2(17)
	MOVE 14,-1(17)
	CAIGE 14,10
	 JRST $178
	LDB 15,0(17)
	IBP 0(17)
	MOVE 3,-2(17)
	LSH 15,0(3)
	IORB 15,-3(17)
	ADDI 3,10
	MOVEM 3,-2(17)
	SUBI 14,10
	MOVEM 14,-1(17)
$178==.
	LDB 1,0(17)
	MOVE 6,-1(17)
	ADJBP 6,[$$BP90+$$SECT,,rmask]
	LDB 4,6
	AND 1,4
	MOVE 7,-2(17)
	LSH 1,0(7)
	IOR 1,-3(17)
	MOVE 11,n.bits
	ADDB 11,$169
	ADJSP 17,-4
	POPJ 17,
rindex:
	PUSH 17,[0]
$179==.
	LDB 4,-2(17)
	JUMPE 4,$180
	CAMN 4,-3(17)
	 SKIPA 5,-2(17)
	 TRNA 
	 MOVEM 5,0(17)
	IBP -2(17)
	JRST $179
$180==.
	POP 17,1
	POPJ 17,
writee:
	PUSH 17,[$$BP90+$$SECT,,ofname]
	PUSHJ 17,perror
	ADJSP 17,-1
	PUSH 17,[$$BP90+$$SECT,,ofname]
	PUSHJ 17,unlink
	ADJSP 17,-1
	PUSH 17,[1]
	PUSHJ 17,exit
	ADJSP 17,-1
	POPJ 17,
copyst:
	ADJSP 17,25
	XMOVEI 4,.sios*1+20
	PUSH 17,4
	PUSHJ 17,fclose
	XMOVEI 3,-25(17)
	MOVEM 3,0(17)
	PUSH 17,-27(17)
	PUSHJ 17,stat
	ADJSP 17,-2
	JUMPE 1,$182
	PUSH 17,-26(17)
	PUSHJ 17,perror
	ADJSP 17,-26
	POPJ 17,
$182==.
	MOVE 4,-22(17)
	ANDI 4,170000
	CAIN 4,100000
	 JRST $184
	SKIPN 5,quiet
	 JRST $185
	PUSH 17,-26(17)
	PUSH 17,[$$BP90+$$SECT,,$186]
	XMOVEI 6,.sios*1+40
	PUSH 17,6
	PUSHJ 17,fprint
	ADJSP 17,-3
$185==.
	PUSH 17,[$$BP90+$$SECT,,$187]
	XMOVEI 4,.sios*1+40
	PUSH 17,4
	PUSHJ 17,fprint
	ADJSP 17,-2
	MOVEI 3,1
	MOVEM 3,exit.s
	JRST $183
$184==.
	MOVE 4,-21(17)
	SOJLE 4,$188
	SKIPN 5,quiet
	 JRST $189
	PUSH 17,-26(17)
	PUSH 17,[$$BP90+$$SECT,,$190]
	XMOVEI 6,.sios*1+40
	PUSH 17,6
	PUSHJ 17,fprint
	ADJSP 17,-3
$189==.
	MOVE 4,-21(17)
	SUBI 4,1
	PUSH 17,4
	PUSH 17,[$$BP90+$$SECT,,$191]
	XMOVEI 5,.sios*1+40
	PUSH 17,5
	PUSHJ 17,fprint
	ADJSP 17,-3
	MOVEI 3,1
	MOVEM 3,exit.s
	JRST $183
$188==.
	MOVE 4,exit.s
	CAIN 4,2
	 SKIPE 5,force
	 JRST $192
	SKIPE 6,quiet
	 JRST $183
	PUSH 17,[$$BP90+$$SECT,,$193]
	XMOVEI 7,.sios*1+40
	PUSH 17,7
	PUSHJ 17,fprint
	ADJSP 17,-2
	JRST $183
$192==.
	SETZB 3,exit.s
	MOVE 6,-22(17)
	ANDI 6,7777
	MOVEM 6,-2(17)
	PUSH 17,6
	PUSH 17,-30(17)
	PUSHJ 17,chmod
	ADJSP 17,-2
	JUMPE 1,$194
	PUSH 17,-27(17)
	PUSHJ 17,perror
	ADJSP 17,-1
$194==.
	PUSH 17,-17(17)
	PUSH 17,-21(17)
	PUSH 17,-31(17)
	PUSHJ 17,chown
	MOVE 4,-17(17)
	MOVEM 4,-4(17)
	MOVE 5,-15(17)
	MOVEM 5,-3(17)
	XMOVEI 3,-4(17)
	MOVEM 3,-2(17)
	ADJSP 17,-2
	PUSH 17,-30(17)
	PUSHJ 17,utime
	ADJSP 17,-2
	PUSH 17,-26(17)
	PUSHJ 17,unlink
	ADJSP 17,-1
	JUMPE 1,$195
	PUSH 17,-26(17)
	PUSHJ 17,perror
	ADJSP 17,-1
$195==.
	SKIPE 4,quiet
	 JRST $196
	PUSH 17,-27(17)
	PUSH 17,[$$BP90+$$SECT,,$197]
	XMOVEI 5,.sios*1+40
	PUSH 17,5
	PUSHJ 17,fprint
	ADJSP 17,-3
$196==.
	ADJSP 17,-25
	POPJ 17,
$183==.
	PUSH 17,-27(17)
	PUSHJ 17,unlink
	ADJSP 17,-1
	JUMPE 1,$198
	PUSH 17,-27(17)
	PUSHJ 17,perror
	ADJSP 17,-1
$198==.
	ADJSP 17,-25
	POPJ 17,
$197==.
	BYTE	(9) 40,55,55,40
	BYTE	(9) 162,145,160,154
	BYTE	(9) 141,143,145,144
	BYTE	(9) 40,167,151,164
	BYTE	(9) 150,40,45,163
	BYTE	(9) 0
	

$193==.
	BYTE	(9) 40,55,55,40
	BYTE	(9) 146,151,154,145
	BYTE	(9) 40,165,156,143
	BYTE	(9) 150,141,156,147
	BYTE	(9) 145,144,0
	

$191==.
	BYTE	(9) 40,55,55,40
	BYTE	(9) 150,141,163,40
	BYTE	(9) 45,144,40,157
	BYTE	(9) 164,150,145,162
	BYTE	(9) 40,154,151,156
	BYTE	(9) 153,163,72,40
	BYTE	(9) 165,156,143,150
	BYTE	(9) 141,156,147,145
	BYTE	(9) 144,0
	

$190==.
	BYTE	(9) 45,163,72,40
	BYTE	(9) 0
	

$187==.
	BYTE	(9) 40,55,55,40
	BYTE	(9) 156,157,164,40
	BYTE	(9) 141,40,162,145
	BYTE	(9) 147,165,154,141
	BYTE	(9) 162,40,146,151
	BYTE	(9) 154,145,72,40
	BYTE	(9) 165,156,143,150
	BYTE	(9) 141,156,147,145
	BYTE	(9) 144,0
	

$186==.
	BYTE	(9) 45,163,72,40
	BYTE	(9) 0
	

foregr:
	SKIPE 4,bgnd.f
	 TDZA 1,1
	 TRNA 
	 POPJ 17,
	PUSH 17,[2]
	PUSHJ 17,isatty
	ADJSP 17,-1
	JUMPE 1,$201
	MOVEI 1,1
	POPJ 17,
$201==.
	SETZ 1,
	POPJ 17,
onintr:
	SKIPE 4,precio
	 JRST $202
	PUSH 17,[$$BP90+$$SECT,,ofname]
	PUSHJ 17,unlink
	ADJSP 17,-1
$202==.
	PUSH 17,[1]
	PUSHJ 17,exit
	ADJSP 17,-1
	POPJ 17,
oops:
	MOVE 4,do.dec
	SOJN 4,$203
	PUSH 17,[$$BP90+$$SECT,,$204]
	XMOVEI 5,.sios*1+40
	PUSH 17,5
	PUSHJ 17,fprint
	ADJSP 17,-2
$203==.
	PUSH 17,[$$BP90+$$SECT,,ofname]
	PUSHJ 17,unlink
	ADJSP 17,-1
	PUSH 17,[1]
	PUSHJ 17,exit
	ADJSP 17,-1
	POPJ 17,
$204==.
	BYTE	(9) 165,156,143,157
	BYTE	(9) 155,160,162,145
	BYTE	(9) 163,163,72,40
	BYTE	(9) 143,157,162,162
	BYTE	(9) 165,160,164,40
	BYTE	(9) 151,156,160,165
	BYTE	(9) 164,12,0
	

cl.blo:
	ADJSP 17,1
	MOVE 4,in.cou
	ADDI 4,23420
	MOVEM 4,checkp
	MOVE 5,in.cou
	CAMG 5,[37777777]
	 JRST $206
	MOVE 7,bytes.
	ASH 7,-10
	MOVEM 7,0(17)
	JUMPN 7,$207
	MOVE 3,[17777777777]
	MOVEM 3,0(17)
	JRST $205
$207==.
	MOVE 4,in.cou
	IDIV 4,0(17)
	MOVEM 4,0(17)
	JRST $205
$206==.
	MOVE 4,in.cou
	LSH 4,10
	IDIV 4,bytes.
	MOVEM 4,0(17)
$205==.
	MOVE 5,0(17)
	CAMG 5,ratio
	 JRST $209
	MOVEM 5,ratio
	JRST $208
$209==.
	SETZB 3,ratio
	PUSH 17,hsize
	PUSHJ 17,cl.has
	ADJSP 17,-1
	MOVEI 3,401
	MOVEM 3,free.e
	MOVEI 4,1
	MOVEM 4,clear.
	PUSH 17,[400]
	PUSHJ 17,output
	ADJSP 17,-1
$208==.
	ADJSP 17,-1
	POPJ 17,
cl.has:
	MOVE 7,-1(17)
	XMOVEI 5,htab(7)
	PUSH 17,5
	ADJSP 17,2
	SETOB 4,0(17)
	SUBI 7,20
	MOVEM 7,-1(17)
$210==.
	MOVE 4,0(17)
	MOVE 7,-2(17)
	MOVEM 4,-20(7)
	MOVEM 4,-17(7)
	MOVEM 4,-16(7)
	MOVEM 4,-15(7)
	MOVEM 4,-14(7)
	MOVEM 4,-13(7)
	MOVEM 4,-12(7)
	MOVEM 4,-11(7)
	MOVEM 4,-10(7)
	MOVEM 4,-7(7)
	MOVEM 4,-6(7)
	MOVEM 4,-5(7)
	MOVEM 4,-4(7)
	MOVEM 4,-3(7)
	MOVEM 4,-2(7)
	MOVEM 4,-1(7)
	SUBI 7,20
	MOVEM 7,-2(17)
	MOVNI 10,20
	ADDB 10,-1(17)
	JUMPGE 10,$210
	ADDI 10,20
	MOVEM 10,-1(17)
$213==.
	SKIPG 4,-1(17)
	 JRST $214
	MOVE 5,0(17)
	SOS 3,-2(17)
	MOVEM 5,0(3)
	SOS 6,-1(17)
	JRST $213
$214==.
	ADJSP 17,-3
	POPJ 17,
prrati:
	ADJSP 17,1
	MOVE 5,-3(17)
	CAIG 5,643334
	 JRST $217
	MOVE 7,-4(17)
	IDIVI 7,23420
	IDIV 5,7
	MOVEM 5,0(17)
	JRST $216
$217==.
	MOVE 4,-3(17)
	IMULI 4,23420
	IDIV 4,-4(17)
	MOVEM 4,0(17)
$216==.
	SKIPL 4,0(17)
	 JRST $218
	MOVE 10,-2(17)
	SOSGE 3,1(10)
	 JRST $219
	MOVEI 1,55
	IDPB 1,2(10)
	JRST $220
$219==.
	PUSH 17,-2(17)
	PUSH 17,[55]
	PUSHJ 17,fputc
	ADJSP 17,-2
$220==.
	MOVNS 4,0(17)
$218==.
	MOVE 4,0(17)
	IDIVI 4,144
	PUSH 17,5
	PUSH 17,4
	PUSH 17,[$$BP90+$$SECT,,$221]
	PUSH 17,-5(17)
	PUSHJ 17,fprint
	ADJSP 17,-5
	POPJ 17,
$221==.
	BYTE	(9) 45,144,56,45
	BYTE	(9) 60,62,144,45
	BYTE	(9) 45,0
	

versio:
	PUSH 17,[$$BP90+$$SECT,,rcs.id]
	PUSH 17,[$$BP90+$$SECT,,$222]
	XMOVEI 4,.sios*1+40
	PUSH 17,4
	PUSHJ 17,fprint
	ADJSP 17,-3
	PUSH 17,[$$BP90+$$SECT,,$223]
	XMOVEI 4,.sios*1+40
	PUSH 17,4
	PUSHJ 17,fprint
	ADJSP 17,-2
	PUSH 17,[20]
	PUSH 17,[$$BP90+$$SECT,,$224]
	XMOVEI 4,.sios*1+40
	PUSH 17,4
	PUSHJ 17,fprint
	ADJSP 17,-3
	POPJ 17,
$224==.
	BYTE	(9) 102,111,124,123
	BYTE	(9) 40,75,40,45
	BYTE	(9) 144,12,0
	

$223==.
	BYTE	(9) 117,160,164,151
	BYTE	(9) 157,156,163,72
	BYTE	(9) 40,0
	

$222==.
	BYTE	(9) 45,163,54,40
	BYTE	(9) 102,145,162,153
	BYTE	(9) 145,154,145,171
	BYTE	(9) 40,65,56,70
	BYTE	(9) 40,61,57,61
	BYTE	(9) 60,57,70,66
	BYTE	(9) 12,0
	


$$CPKI==0
	INTERN $$CPKI
$$CPKA==0
	INTERN $$CPKA

	LIT
$$STRT: JRST $START
	JRST $START+1
	EXTERN	$START
	EXTERN	$$BPPS
	EXTERN	$$BP92
	EXTERN	$$BP91
	EXTERN	$$BP90
	EXTERN	$$BPH0
	EXTERN	$$SECT
	EXTERN	$$$CPU
	EXTERN	$$$CRT
	INTERN	magic.
	EXTERN	.sios
;	EXTERN	.FILE.
	EXTERN	fclose
	EXTERN	fflush
	EXTERN	fgetc
	EXTERN	fprint
	EXTERN	fputc
;	EXTERN	fputs
	EXTERN	fread
;	EXTERN	fscanf
;	EXTERN	fseek
	EXTERN	fwrite
;	EXTERN	printf
;	EXTERN	puts
;	EXTERN	scanf
;	EXTERN	sprint
;	EXTERN	sscanf
;	EXTERN	ungetc
;	EXTERN	ftell
;	EXTERN	fgets
;	EXTERN	gets
;	EXTERN	fopen
;	EXTERN	fdopen
	EXTERN	freope
;	EXTERN	sopen
;	EXTERN	.clean
;	EXTERN	rewind
;	EXTERN	setbuf
;	EXTERN	.setbu
;	EXTERN	setlin
;	EXTERN	.filbu
;	EXTERN	.reada
;	EXTERN	.write
;	EXTERN	.prime
;	EXTERN	.siofl
;	EXTERN	.makeF
;	EXTERN	.freeF
;	EXTERN	.setFI
;	EXTERN	.ctyp1
;	EXTERN	.ctoin
;	EXTERN	.ctolo
;	EXTERN	.ctoup
	EXTERN	signal
	INTERN	n.bits
	INTERN	maxbit
	INTERN	maxcod
	INTERN	maxmax
	INTERN	htab
	INTERN	codeta
	INTERN	hsize
	INTERN	fsize
	INTERN	free.e
	INTERN	exit.s
	INTERN	getcod
	INTERN	Usage
	INTERN	nomagi
	INTERN	zcat.f
	INTERN	precio
	INTERN	quiet
	INTERN	block.
	INTERN	clear.
	INTERN	ratio
	INTERN	checkp
	INTERN	force
	INTERN	ofname
	INTERN	bgnd.f
	INTERN	do.dec
	INTERN	main
	INTERN	rindex
	EXTERN	malloc
	INTERN	onintr
	INTERN	oops
	EXTERN	strcmp
	INTERN	versio
	EXTERN	exit
	EXTERN	atoi
	EXTERN	strlen
	EXTERN	strcpy
	EXTERN	strcat
	EXTERN	perror
	EXTERN	stat
	INTERN	foregr
	EXTERN	read
	INTERN	compre
	INTERN	decomp
	INTERN	copyst
	INTERN	in.cou
	INTERN	bytes.
	INTERN	out.co
	INTERN	writee
	INTERN	cl.has
	INTERN	output
	INTERN	cl.blo
	INTERN	prrati
	INTERN	lmask
	INTERN	rmask
	EXTERN	unlink
	EXTERN	chmod
	EXTERN	chown
	EXTERN	utime
	EXTERN	isatty
	END <2,,$$STRT>