Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_53.ADF » U/COMPRES
U/COMPRES
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_53.ADF |
Filename: | U/COMPRES |
Read OK: | ✔ |
File size: | 08D1 bytes |
Load address: | FFFF1D00 |
Exec address: | FFFF802B |
Duplicates
There is 1 duplicate copy of this file in the archive:
- AEW website » eug » eug_5_25_discs_Eug-53_D-EUG53.dsd » U.COMPRES
- Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_53.ADF » U/COMPRES
File contents
10REM ** Text compression ** 20REM C.R.Dewhurst 5/4/2000 30MODE6:VDU23;8202;0;0;0; 40input=&70 50output=&72 60inptr=&74 70outptr=&75 80from=&76 90mask=&78 100oswrch=&FFEE 110: 120FOR pass=0 TO 2 STEP 2 130P%=&900 140[OPT pass 150.compress 160LDA #0 170STA inptr 180STA outptr 190STA mask 200: 210.cloop LDY inptr 220LDA (input),Y 230CMP #13:BNE notend 240LDA #2:JMP wrtnib 250.notend STY inptr 260INC inptr 270JSR chkcomm \common letter? 280BMI notcomm 290TYA:JSR wrtnib 300JMP cloop 310.notcomm JSR chkrare \rare letter? 320BPL okay 330BRK 340EQUB &FF 350EQUS "Illegal chararacter" 360BRK 370.okay STY from 380LDA #0:JSR wrtnib \0=next nibble a rare letter 390LDA from:JSR wrtnib 400JMP cloop 410: 420.chkcomm 430LDX #commtab MOD 256 440LDY #commtab DIV 256 450JMP scantab 460: 470.chkrare 480LDX #raretab MOD 256 490LDY #raretab DIV 256 500: 510.scantab 520STX from 530STY from+1 540LDY #15 550.stloop CMP (from),Y 560BEQ match 570DEY:BPL stloop 580.match 590\so N=1=fail N=0=found 600RTS 610: 620.wrtnib 630LDY outptr 640LDX mask 650BEQ left 660INC mask \now =0 670ORA (output),Y 680STA (output),Y 690INC outptr 700RTS 710.left ASLA:ASLA:ASLA:ASLA 720STA (output),Y 730DEC mask \now =&FF 740RTS 750: 760.commtab 770EQUW 0:BRK 780\0=next nibble a rare letter 790\1=token 800\2=end of text 810\3-15=common letter: 820EQUS "etaonrishdlf " 830.raretab 840EQUS "cmugypwbvkxjqz,." 850: 860.expand 870LDA #0:STA mask 880STA inptr 890.eloop 900JSR getnib 910TAX:BNE notrar2 920JSR getnib 930LDX #raretab MOD 256 940LDY #raretab DIV 256 950JSR print 960JMP eloop 970.notrar2 DEX 980DEX 990BNE notend3 1000RTS 1010.notend3 LDX #commtab MOD 256 1020LDY #commtab DIV 256 1030JSR print 1040JMP eloop 1050: 1060.print 1070STX from:STY from+1 1080TAY:LDA (from),Y 1090JMP oswrch 1100: 1110.getnib 1120LDY inptr 1130LDA (input),Y 1140LDX mask 1150BNE right 1160LSRA:LSRA:LSRA:LSRA 1170AND #15 1180DEC mask \now =&FF 1190RTS 1200.right AND #15 1210INC mask \now =0 1220INC inptr 1230RTS 1240] 1250NEXT 1260 1270DIM intext% &100,outtext% &100 1280INPUT LINE'"Type in some text",$intext% 1290oldlen%=LEN $intext% 1300!input=intext% 1310!output=outtext% 1320CALL compress 1330newlen%=?outptr 1340PRINT'"Original length:";oldlen% 1350PRINT'"Compacted length:";newlen% 1360PRINT'"Compaction factor:";100-newlen%/oldlen%*100;"%" 1370!input=outtext% 1380CALL expand
� ** Text compression ** � C.R.Dewhurst 5/4/2000 �6:�23;8202;0;0;0; ( input=&70 2output=&72 < inptr=&74 Foutptr=&75 Pfrom=&76 Zmask=&78 doswrch=&FFEE n: x� pass=0 � 2 � 2 �P%=&900 � [OPT pass � .compress � LDA #0 � STA inptr �STA outptr �STA mask �: �.cloop LDY inptr �LDA (input),Y �CMP #13:BNE notend �LDA #2:JMP wrtnib �.notend STY inptr INC inptr JSR chkcomm \common letter? BMI notcomm "TYA:JSR wrtnib , JMP cloop 6'.notcomm JSR chkrare \rare letter? @BPL okay JBRK TEQUB &FF ^EQUS "Illegal chararacter" hBRK r.okay STY from |3LDA #0:JSR wrtnib \0=next nibble a rare letter �LDA from:JSR wrtnib � JMP cloop �: �.chkcomm �LDX #commtab � 256 �LDY #commtab � 256 �JMP scantab �: �.chkrare �LDX #raretab � 256 �LDY #raretab � 256 �: �.scantab STX from STY from+1 LDY #15 &.stloop CMP (from),Y 0 BEQ match :DEY:BPL stloop D .match N\so N=1=fail N=0=found XRTS b: l.wrtnib vLDY outptr �LDX mask �BEQ left �INC mask \now =0 ��A (output),Y �STA (output),Y �INC outptr �RTS �.left ASLA:ASLA:ASLA:ASLA �STA (output),Y �DEC mask \now =&FF �RTS �: �.commtab EQUW 0:BRK \0=next nibble a rare letter \1=token \2=end of text *\3-15=common letter: 4EQUS "etaonrishdlf " >.raretab HEQUS "cmugypwbvkxjqz,." R: \.expand fLDA #0:STA mask p STA inptr z .eloop �JSR getnib �TAX:BNE notrar2 �JSR getnib �LDX #raretab � 256 �LDY #raretab � 256 � JSR print � JMP eloop �.notrar2 DEX �DEX �BNE notend3 �RTS �.notend3 LDX #commtab � 256 �LDY #commtab � 256 JSR print JMP eloop : $ .print .STX from:STY from+1 8TAY:LDA (from),Y BJMP oswrch L: V.getnib ` LDY inptr jLDA (input),Y tLDX mask ~ BNE right �LSRA:LSRA:LSRA:LSRA � � #15 �DEC mask \now =&FF �RTS �.right � #15 �INC mask \now =0 � INC inptr �RTS �] �� � � � intext% &100,outtext% &100 $� �'"Type in some text",$intext% oldlen%=� $intext% !input=intext% !output=outtext% (� compress 2newlen%=?outptr < �'"Original length:";oldlen% F!�'"Compacted length:";newlen% P6�'"Compaction factor:";100-newlen%/oldlen%*100;"%" Z!input=outtext% d� expand �
00000000 0d 00 0a 1c f4 20 2a 2a 20 54 65 78 74 20 63 6f |..... ** Text co| 00000010 6d 70 72 65 73 73 69 6f 6e 20 2a 2a 0d 00 14 1b |mpression **....| 00000020 f4 20 43 2e 52 2e 44 65 77 68 75 72 73 74 20 35 |. C.R.Dewhurst 5| 00000030 2f 34 2f 32 30 30 30 0d 00 1e 16 eb 36 3a ef 32 |/4/2000.....6:.2| 00000040 33 3b 38 32 30 32 3b 30 3b 30 3b 30 3b 0d 00 28 |3;8202;0;0;0;..(| 00000050 0d 69 6e 70 75 74 3d 26 37 30 0d 00 32 0e 6f 75 |.input=&70..2.ou| 00000060 74 70 75 74 3d 26 37 32 0d 00 3c 0d 69 6e 70 74 |tput=&72..<.inpt| 00000070 72 3d 26 37 34 0d 00 46 0e 6f 75 74 70 74 72 3d |r=&74..F.outptr=| 00000080 26 37 35 0d 00 50 0c 66 72 6f 6d 3d 26 37 36 0d |&75..P.from=&76.| 00000090 00 5a 0c 6d 61 73 6b 3d 26 37 38 0d 00 64 10 6f |.Z.mask=&78..d.o| 000000a0 73 77 72 63 68 3d 26 46 46 45 45 0d 00 6e 05 3a |swrch=&FFEE..n.:| 000000b0 0d 00 78 14 e3 20 70 61 73 73 3d 30 20 b8 20 32 |..x.. pass=0 . 2| 000000c0 20 88 20 32 0d 00 82 0b 50 25 3d 26 39 30 30 0d | . 2....P%=&900.| 000000d0 00 8c 0d 5b 4f 50 54 20 70 61 73 73 0d 00 96 0d |...[OPT pass....| 000000e0 2e 63 6f 6d 70 72 65 73 73 0d 00 a0 0a 4c 44 41 |.compress....LDA| 000000f0 20 23 30 0d 00 aa 0d 53 54 41 20 69 6e 70 74 72 | #0....STA inptr| 00000100 0d 00 b4 0e 53 54 41 20 6f 75 74 70 74 72 0d 00 |....STA outptr..| 00000110 be 0c 53 54 41 20 6d 61 73 6b 0d 00 c8 05 3a 0d |..STA mask....:.| 00000120 00 d2 14 2e 63 6c 6f 6f 70 20 4c 44 59 20 69 6e |....cloop LDY in| 00000130 70 74 72 0d 00 dc 11 4c 44 41 20 28 69 6e 70 75 |ptr....LDA (inpu| 00000140 74 29 2c 59 0d 00 e6 16 43 4d 50 20 23 31 33 3a |t),Y....CMP #13:| 00000150 42 4e 45 20 6e 6f 74 65 6e 64 0d 00 f0 15 4c 44 |BNE notend....LD| 00000160 41 20 23 32 3a 4a 4d 50 20 77 72 74 6e 69 62 0d |A #2:JMP wrtnib.| 00000170 00 fa 15 2e 6e 6f 74 65 6e 64 20 53 54 59 20 69 |....notend STY i| 00000180 6e 70 74 72 0d 01 04 0d 49 4e 43 20 69 6e 70 74 |nptr....INC inpt| 00000190 72 0d 01 0e 20 4a 53 52 20 63 68 6b 63 6f 6d 6d |r... JSR chkcomm| 000001a0 20 20 5c 63 6f 6d 6d 6f 6e 20 6c 65 74 74 65 72 | \common letter| 000001b0 3f 0d 01 18 0f 42 4d 49 20 6e 6f 74 63 6f 6d 6d |?....BMI notcomm| 000001c0 0d 01 22 12 54 59 41 3a 4a 53 52 20 77 72 74 6e |..".TYA:JSR wrtn| 000001d0 69 62 0d 01 2c 0d 4a 4d 50 20 63 6c 6f 6f 70 0d |ib..,.JMP cloop.| 000001e0 01 36 27 2e 6e 6f 74 63 6f 6d 6d 20 4a 53 52 20 |.6'.notcomm JSR | 000001f0 63 68 6b 72 61 72 65 20 20 5c 72 61 72 65 20 6c |chkrare \rare l| 00000200 65 74 74 65 72 3f 0d 01 40 0c 42 50 4c 20 6f 6b |etter?..@.BPL ok| 00000210 61 79 0d 01 4a 07 42 52 4b 0d 01 54 0c 45 51 55 |ay..J.BRK..T.EQU| 00000220 42 20 26 46 46 0d 01 5e 1e 45 51 55 53 20 22 49 |B &FF..^.EQUS "I| 00000230 6c 6c 65 67 61 6c 20 63 68 61 72 61 72 61 63 74 |llegal chararact| 00000240 65 72 22 0d 01 68 07 42 52 4b 0d 01 72 12 2e 6f |er"..h.BRK..r..o| 00000250 6b 61 79 20 53 54 59 20 66 72 6f 6d 0d 01 7c 33 |kay STY from..|3| 00000260 4c 44 41 20 23 30 3a 4a 53 52 20 77 72 74 6e 69 |LDA #0:JSR wrtni| 00000270 62 20 20 5c 30 3d 6e 65 78 74 20 6e 69 62 62 6c |b \0=next nibbl| 00000280 65 20 61 20 72 61 72 65 20 6c 65 74 74 65 72 0d |e a rare letter.| 00000290 01 86 17 4c 44 41 20 66 72 6f 6d 3a 4a 53 52 20 |...LDA from:JSR | 000002a0 77 72 74 6e 69 62 0d 01 90 0d 4a 4d 50 20 63 6c |wrtnib....JMP cl| 000002b0 6f 6f 70 0d 01 9a 05 3a 0d 01 a4 0c 2e 63 68 6b |oop....:.....chk| 000002c0 63 6f 6d 6d 0d 01 ae 16 4c 44 58 20 23 63 6f 6d |comm....LDX #com| 000002d0 6d 74 61 62 20 83 20 32 35 36 0d 01 b8 16 4c 44 |mtab . 256....LD| 000002e0 59 20 23 63 6f 6d 6d 74 61 62 20 81 20 32 35 36 |Y #commtab . 256| 000002f0 0d 01 c2 0f 4a 4d 50 20 73 63 61 6e 74 61 62 0d |....JMP scantab.| 00000300 01 cc 05 3a 0d 01 d6 0c 2e 63 68 6b 72 61 72 65 |...:.....chkrare| 00000310 0d 01 e0 16 4c 44 58 20 23 72 61 72 65 74 61 62 |....LDX #raretab| 00000320 20 83 20 32 35 36 0d 01 ea 16 4c 44 59 20 23 72 | . 256....LDY #r| 00000330 61 72 65 74 61 62 20 81 20 32 35 36 0d 01 f4 05 |aretab . 256....| 00000340 3a 0d 01 fe 0c 2e 73 63 61 6e 74 61 62 0d 02 08 |:.....scantab...| 00000350 0c 53 54 58 20 66 72 6f 6d 0d 02 12 0e 53 54 59 |.STX from....STY| 00000360 20 66 72 6f 6d 2b 31 0d 02 1c 0b 4c 44 59 20 23 | from+1....LDY #| 00000370 31 35 0d 02 26 18 2e 73 74 6c 6f 6f 70 20 43 4d |15..&..stloop CM| 00000380 50 20 28 66 72 6f 6d 29 2c 59 0d 02 30 0d 42 45 |P (from),Y..0.BE| 00000390 51 20 6d 61 74 63 68 0d 02 3a 12 44 45 59 3a 42 |Q match..:.DEY:B| 000003a0 50 4c 20 73 74 6c 6f 6f 70 0d 02 44 0a 2e 6d 61 |PL stloop..D..ma| 000003b0 74 63 68 0d 02 4e 1a 5c 73 6f 20 4e 3d 31 3d 66 |tch..N.\so N=1=f| 000003c0 61 69 6c 20 4e 3d 30 3d 66 6f 75 6e 64 0d 02 58 |ail N=0=found..X| 000003d0 07 52 54 53 0d 02 62 05 3a 0d 02 6c 0b 2e 77 72 |.RTS..b.:..l..wr| 000003e0 74 6e 69 62 0d 02 76 0e 4c 44 59 20 6f 75 74 70 |tnib..v.LDY outp| 000003f0 74 72 0d 02 80 0c 4c 44 58 20 6d 61 73 6b 0d 02 |tr....LDX mask..| 00000400 8a 0c 42 45 51 20 6c 65 66 74 0d 02 94 15 49 4e |..BEQ left....IN| 00000410 43 20 6d 61 73 6b 20 20 5c 6e 6f 77 20 3d 30 0d |C mask \now =0.| 00000420 02 9e 11 84 41 20 28 6f 75 74 70 75 74 29 2c 59 |....A (output),Y| 00000430 0d 02 a8 12 53 54 41 20 28 6f 75 74 70 75 74 29 |....STA (output)| 00000440 2c 59 0d 02 b2 0e 49 4e 43 20 6f 75 74 70 74 72 |,Y....INC outptr| 00000450 0d 02 bc 07 52 54 53 0d 02 c6 1d 2e 6c 65 66 74 |....RTS.....left| 00000460 20 41 53 4c 41 3a 41 53 4c 41 3a 41 53 4c 41 3a | ASLA:ASLA:ASLA:| 00000470 41 53 4c 41 0d 02 d0 12 53 54 41 20 28 6f 75 74 |ASLA....STA (out| 00000480 70 75 74 29 2c 59 0d 02 da 17 44 45 43 20 6d 61 |put),Y....DEC ma| 00000490 73 6b 20 20 5c 6e 6f 77 20 3d 26 46 46 0d 02 e4 |sk \now =&FF...| 000004a0 07 52 54 53 0d 02 ee 05 3a 0d 02 f8 0c 2e 63 6f |.RTS....:.....co| 000004b0 6d 6d 74 61 62 0d 03 02 0e 45 51 55 57 20 30 3a |mmtab....EQUW 0:| 000004c0 42 52 4b 0d 03 0c 20 5c 30 3d 6e 65 78 74 20 6e |BRK... \0=next n| 000004d0 69 62 62 6c 65 20 61 20 72 61 72 65 20 6c 65 74 |ibble a rare let| 000004e0 74 65 72 0d 03 16 0c 5c 31 3d 74 6f 6b 65 6e 0d |ter....\1=token.| 000004f0 03 20 12 5c 32 3d 65 6e 64 20 6f 66 20 74 65 78 |. .\2=end of tex| 00000500 74 0d 03 2a 18 5c 33 2d 31 35 3d 63 6f 6d 6d 6f |t..*.\3-15=commo| 00000510 6e 20 6c 65 74 74 65 72 3a 0d 03 34 18 45 51 55 |n letter:..4.EQU| 00000520 53 20 22 65 74 61 6f 6e 72 69 73 68 64 6c 66 20 |S "etaonrishdlf | 00000530 22 0d 03 3e 0c 2e 72 61 72 65 74 61 62 0d 03 48 |"..>..raretab..H| 00000540 1b 45 51 55 53 20 22 63 6d 75 67 79 70 77 62 76 |.EQUS "cmugypwbv| 00000550 6b 78 6a 71 7a 2c 2e 22 0d 03 52 05 3a 0d 03 5c |kxjqz,."..R.:..\| 00000560 0b 2e 65 78 70 61 6e 64 0d 03 66 13 4c 44 41 20 |..expand..f.LDA | 00000570 23 30 3a 53 54 41 20 6d 61 73 6b 0d 03 70 0d 53 |#0:STA mask..p.S| 00000580 54 41 20 69 6e 70 74 72 0d 03 7a 0a 2e 65 6c 6f |TA inptr..z..elo| 00000590 6f 70 0d 03 84 0e 4a 53 52 20 67 65 74 6e 69 62 |op....JSR getnib| 000005a0 0d 03 8e 13 54 41 58 3a 42 4e 45 20 6e 6f 74 72 |....TAX:BNE notr| 000005b0 61 72 32 0d 03 98 0e 4a 53 52 20 67 65 74 6e 69 |ar2....JSR getni| 000005c0 62 0d 03 a2 16 4c 44 58 20 23 72 61 72 65 74 61 |b....LDX #rareta| 000005d0 62 20 83 20 32 35 36 0d 03 ac 16 4c 44 59 20 23 |b . 256....LDY #| 000005e0 72 61 72 65 74 61 62 20 81 20 32 35 36 0d 03 b6 |raretab . 256...| 000005f0 0d 4a 53 52 20 70 72 69 6e 74 0d 03 c0 0d 4a 4d |.JSR print....JM| 00000600 50 20 65 6c 6f 6f 70 0d 03 ca 10 2e 6e 6f 74 72 |P eloop.....notr| 00000610 61 72 32 20 44 45 58 0d 03 d4 07 44 45 58 0d 03 |ar2 DEX....DEX..| 00000620 de 0f 42 4e 45 20 6e 6f 74 65 6e 64 33 0d 03 e8 |..BNE notend3...| 00000630 07 52 54 53 0d 03 f2 1f 2e 6e 6f 74 65 6e 64 33 |.RTS.....notend3| 00000640 20 4c 44 58 20 23 63 6f 6d 6d 74 61 62 20 83 20 | LDX #commtab . | 00000650 32 35 36 0d 03 fc 16 4c 44 59 20 23 63 6f 6d 6d |256....LDY #comm| 00000660 74 61 62 20 81 20 32 35 36 0d 04 06 0d 4a 53 52 |tab . 256....JSR| 00000670 20 70 72 69 6e 74 0d 04 10 0d 4a 4d 50 20 65 6c | print....JMP el| 00000680 6f 6f 70 0d 04 1a 05 3a 0d 04 24 0a 2e 70 72 69 |oop....:..$..pri| 00000690 6e 74 0d 04 2e 17 53 54 58 20 66 72 6f 6d 3a 53 |nt....STX from:S| 000006a0 54 59 20 66 72 6f 6d 2b 31 0d 04 38 14 54 41 59 |TY from+1..8.TAY| 000006b0 3a 4c 44 41 20 28 66 72 6f 6d 29 2c 59 0d 04 42 |:LDA (from),Y..B| 000006c0 0e 4a 4d 50 20 6f 73 77 72 63 68 0d 04 4c 05 3a |.JMP oswrch..L.:| 000006d0 0d 04 56 0b 2e 67 65 74 6e 69 62 0d 04 60 0d 4c |..V..getnib..`.L| 000006e0 44 59 20 69 6e 70 74 72 0d 04 6a 11 4c 44 41 20 |DY inptr..j.LDA | 000006f0 28 69 6e 70 75 74 29 2c 59 0d 04 74 0c 4c 44 58 |(input),Y..t.LDX| 00000700 20 6d 61 73 6b 0d 04 7e 0d 42 4e 45 20 72 69 67 | mask..~.BNE rig| 00000710 68 74 0d 04 88 17 4c 53 52 41 3a 4c 53 52 41 3a |ht....LSRA:LSRA:| 00000720 4c 53 52 41 3a 4c 53 52 41 0d 04 92 09 80 20 23 |LSRA:LSRA..... #| 00000730 31 35 0d 04 9c 17 44 45 43 20 6d 61 73 6b 20 20 |15....DEC mask | 00000740 5c 6e 6f 77 20 3d 26 46 46 0d 04 a6 07 52 54 53 |\now =&FF....RTS| 00000750 0d 04 b0 10 2e 72 69 67 68 74 20 80 20 23 31 35 |.....right . #15| 00000760 0d 04 ba 15 49 4e 43 20 6d 61 73 6b 20 20 5c 6e |....INC mask \n| 00000770 6f 77 20 3d 30 0d 04 c4 0d 49 4e 43 20 69 6e 70 |ow =0....INC inp| 00000780 74 72 0d 04 ce 07 52 54 53 0d 04 d8 05 5d 0d 04 |tr....RTS....]..| 00000790 e2 05 ed 0d 04 ec 05 20 0d 04 f6 20 de 20 69 6e |....... ... . in| 000007a0 74 65 78 74 25 20 26 31 30 30 2c 6f 75 74 74 65 |text% &100,outte| 000007b0 78 74 25 20 26 31 30 30 0d 05 00 24 e8 20 86 27 |xt% &100...$. .'| 000007c0 22 54 79 70 65 20 69 6e 20 73 6f 6d 65 20 74 65 |"Type in some te| 000007d0 78 74 22 2c 24 69 6e 74 65 78 74 25 0d 05 0a 16 |xt",$intext%....| 000007e0 6f 6c 64 6c 65 6e 25 3d a9 20 24 69 6e 74 65 78 |oldlen%=. $intex| 000007f0 74 25 0d 05 14 12 21 69 6e 70 75 74 3d 69 6e 74 |t%....!input=int| 00000800 65 78 74 25 0d 05 1e 14 21 6f 75 74 70 75 74 3d |ext%....!output=| 00000810 6f 75 74 74 65 78 74 25 0d 05 28 0e d6 20 63 6f |outtext%..(.. co| 00000820 6d 70 72 65 73 73 0d 05 32 13 6e 65 77 6c 65 6e |mpress..2.newlen| 00000830 25 3d 3f 6f 75 74 70 74 72 0d 05 3c 20 f1 27 22 |%=?outptr..< .'"| 00000840 4f 72 69 67 69 6e 61 6c 20 6c 65 6e 67 74 68 3a |Original length:| 00000850 22 3b 6f 6c 64 6c 65 6e 25 0d 05 46 21 f1 27 22 |";oldlen%..F!.'"| 00000860 43 6f 6d 70 61 63 74 65 64 20 6c 65 6e 67 74 68 |Compacted length| 00000870 3a 22 3b 6e 65 77 6c 65 6e 25 0d 05 50 36 f1 27 |:";newlen%..P6.'| 00000880 22 43 6f 6d 70 61 63 74 69 6f 6e 20 66 61 63 74 |"Compaction fact| 00000890 6f 72 3a 22 3b 31 30 30 2d 6e 65 77 6c 65 6e 25 |or:";100-newlen%| 000008a0 2f 6f 6c 64 6c 65 6e 25 2a 31 30 30 3b 22 25 22 |/oldlen%*100;"%"| 000008b0 0d 05 5a 13 21 69 6e 70 75 74 3d 6f 75 74 74 65 |..Z.!input=outte| 000008c0 78 74 25 0d 05 64 0c d6 20 65 78 70 61 6e 64 0d |xt%..d.. expand.| 000008d0 ff |.| 000008d1