Home » Archimedes archive » Acorn User » AU 1994-01.adf » !StarInfo_StarInfo » Anderson/Example
Anderson/Example
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 » Archimedes archive » Acorn User » AU 1994-01.adf » !StarInfo_StarInfo |
Filename: | Anderson/Example |
Read OK: | ✔ |
File size: | 0393 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >StringPacker module example 20REM By Robert Anderson 30REM For 32-bit machines 40REM (c) BAU January 1994 50: 60DIM ws 64*1024,squashed 256 70*RMEnsure StringPacker 1.01 RMLOAD Packer 80CLS 90valid$="ABCDEFGHIJKLMNOPQRSTUVWXYZ " 100PRINT"valid$ contains : ";CHR$34;valid$;CHR$34 110INPUTLINE'"String to be packed : "start$ 120orig_len=LENstart$ 130packed$=FNpack(valid$,start$) 140unpacked$=FNunpack(valid$,packed$) 150PRINT'"String unpacked as : ";unpacked$ 160packed_len=LENpacked$ 170SYS "Squash_Compress",0,ws,start$,LENstart$-1,squashed,256 TO ,,,,,notused 180squash_len=256-notused 190PRINT'"Original : ";orig_len 200PRINT "Packed : ";packed_len;" (";INT(100*packed_len/orig_len);"%)" 210PRINT "Squash : ";squash_len;" (";INT(100*squash_len/orig_len);"%)" 220END 230: 240DEF FNpack(v$,s$) 250SYS "Packer_PackString",v$,s$ TO address%,bits 260=$address% 270: 280DEF FNunpack(v$,c$) 290SYS "Packer_UnpackString",v$,c$ TO unpacked$,bits 300=unpacked$
&� >StringPacker module example � By Robert Anderson � For 32-bit machines (� (c) BAU January 1994 2: <� ws 64*1024,squashed 256 F-*RMEnsure StringPacker 1.01 RMLOAD Packer P� Z(valid$="ABCDEFGHIJKLMNOPQRSTUVWXYZ " d,�"valid$ contains : ";�34;valid$;�34 n%�'"String to be packed : "start$ xorig_len=�start$ � packed$=�pack(valid$,start$) �%unpacked$=�unpack(valid$,packed$) �(�'"String unpacked as : ";unpacked$ �packed_len=�packed$ �Jș "Squash_Compress",0,ws,start$,�start$-1,squashed,256 � ,,,,,notused �squash_len=256-notused ��'"Original : ";orig_len �C� "Packed : ";packed_len;" (";�(100*packed_len/orig_len);"%)" �C� "Squash : ";squash_len;" (";�(100*squash_len/orig_len);"%)" �� �: �� �pack(v$,s$) �0ș "Packer_PackString",v$,s$ � address%,bits =$address% : � �unpack(v$,c$) "3ș "Packer_UnpackString",v$,c$ � unpacked$,bits ,=unpacked$ �
00000000 0d 00 0a 26 f4 20 20 20 20 20 3e 53 74 72 69 6e |...&. >Strin| 00000010 67 50 61 63 6b 65 72 20 6d 6f 64 75 6c 65 20 65 |gPacker module e| 00000020 78 61 6d 70 6c 65 0d 00 14 19 f4 20 42 79 20 20 |xample..... By | 00000030 52 6f 62 65 72 74 20 41 6e 64 65 72 73 6f 6e 0d |Robert Anderson.| 00000040 00 1e 19 f4 20 46 6f 72 20 33 32 2d 62 69 74 20 |.... For 32-bit | 00000050 6d 61 63 68 69 6e 65 73 0d 00 28 1a f4 20 28 63 |machines..(.. (c| 00000060 29 20 42 41 55 20 4a 61 6e 75 61 72 79 20 31 39 |) BAU January 19| 00000070 39 34 0d 00 32 05 3a 0d 00 3c 1d de 20 77 73 20 |94..2.:..<.. ws | 00000080 36 34 2a 31 30 32 34 2c 73 71 75 61 73 68 65 64 |64*1024,squashed| 00000090 20 32 35 36 0d 00 46 2d 2a 52 4d 45 6e 73 75 72 | 256..F-*RMEnsur| 000000a0 65 20 53 74 72 69 6e 67 50 61 63 6b 65 72 20 31 |e StringPacker 1| 000000b0 2e 30 31 20 52 4d 4c 4f 41 44 20 50 61 63 6b 65 |.01 RMLOAD Packe| 000000c0 72 0d 00 50 05 db 0d 00 5a 28 76 61 6c 69 64 24 |r..P....Z(valid$| 000000d0 3d 22 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e |="ABCDEFGHIJKLMN| 000000e0 4f 50 51 52 53 54 55 56 57 58 59 5a 20 22 0d 00 |OPQRSTUVWXYZ "..| 000000f0 64 2c f1 22 76 61 6c 69 64 24 20 63 6f 6e 74 61 |d,."valid$ conta| 00000100 69 6e 73 20 20 20 20 20 3a 20 22 3b bd 33 34 3b |ins : ";.34;| 00000110 76 61 6c 69 64 24 3b bd 33 34 0d 00 6e 25 e8 86 |valid$;.34..n%..| 00000120 27 22 53 74 72 69 6e 67 20 74 6f 20 62 65 20 70 |'"String to be p| 00000130 61 63 6b 65 64 20 3a 20 22 73 74 61 72 74 24 0d |acked : "start$.| 00000140 00 78 14 6f 72 69 67 5f 6c 65 6e 3d a9 73 74 61 |.x.orig_len=.sta| 00000150 72 74 24 0d 00 82 20 70 61 63 6b 65 64 24 3d a4 |rt$... packed$=.| 00000160 70 61 63 6b 28 76 61 6c 69 64 24 2c 73 74 61 72 |pack(valid$,star| 00000170 74 24 29 0d 00 8c 25 75 6e 70 61 63 6b 65 64 24 |t$)...%unpacked$| 00000180 3d a4 75 6e 70 61 63 6b 28 76 61 6c 69 64 24 2c |=.unpack(valid$,| 00000190 70 61 63 6b 65 64 24 29 0d 00 96 28 f1 27 22 53 |packed$)...(.'"S| 000001a0 74 72 69 6e 67 20 75 6e 70 61 63 6b 65 64 20 61 |tring unpacked a| 000001b0 73 20 20 3a 20 22 3b 75 6e 70 61 63 6b 65 64 24 |s : ";unpacked$| 000001c0 0d 00 a0 17 70 61 63 6b 65 64 5f 6c 65 6e 3d a9 |....packed_len=.| 000001d0 70 61 63 6b 65 64 24 0d 00 aa 4a c8 99 20 22 53 |packed$...J.. "S| 000001e0 71 75 61 73 68 5f 43 6f 6d 70 72 65 73 73 22 2c |quash_Compress",| 000001f0 30 2c 77 73 2c 73 74 61 72 74 24 2c a9 73 74 61 |0,ws,start$,.sta| 00000200 72 74 24 2d 31 2c 73 71 75 61 73 68 65 64 2c 32 |rt$-1,squashed,2| 00000210 35 36 20 b8 20 2c 2c 2c 2c 2c 6e 6f 74 75 73 65 |56 . ,,,,,notuse| 00000220 64 0d 00 b4 1a 73 71 75 61 73 68 5f 6c 65 6e 3d |d....squash_len=| 00000230 32 35 36 2d 6e 6f 74 75 73 65 64 0d 00 be 1c f1 |256-notused.....| 00000240 27 22 4f 72 69 67 69 6e 61 6c 20 3a 20 22 3b 6f |'"Original : ";o| 00000250 72 69 67 5f 6c 65 6e 0d 00 c8 43 f1 20 22 50 61 |rig_len...C. "Pa| 00000260 63 6b 65 64 20 20 20 3a 20 22 3b 70 61 63 6b 65 |cked : ";packe| 00000270 64 5f 6c 65 6e 3b 22 20 28 22 3b a8 28 31 30 30 |d_len;" (";.(100| 00000280 2a 70 61 63 6b 65 64 5f 6c 65 6e 2f 6f 72 69 67 |*packed_len/orig| 00000290 5f 6c 65 6e 29 3b 22 25 29 22 0d 00 d2 43 f1 20 |_len);"%)"...C. | 000002a0 22 53 71 75 61 73 68 20 20 20 3a 20 22 3b 73 71 |"Squash : ";sq| 000002b0 75 61 73 68 5f 6c 65 6e 3b 22 20 28 22 3b a8 28 |uash_len;" (";.(| 000002c0 31 30 30 2a 73 71 75 61 73 68 5f 6c 65 6e 2f 6f |100*squash_len/o| 000002d0 72 69 67 5f 6c 65 6e 29 3b 22 25 29 22 0d 00 dc |rig_len);"%)"...| 000002e0 05 e0 0d 00 e6 05 3a 0d 00 f0 12 dd 20 a4 70 61 |......:..... .pa| 000002f0 63 6b 28 76 24 2c 73 24 29 0d 00 fa 30 c8 99 20 |ck(v$,s$)...0.. | 00000300 22 50 61 63 6b 65 72 5f 50 61 63 6b 53 74 72 69 |"Packer_PackStri| 00000310 6e 67 22 2c 76 24 2c 73 24 20 b8 20 61 64 64 72 |ng",v$,s$ . addr| 00000320 65 73 73 25 2c 62 69 74 73 0d 01 04 0e 3d 24 61 |ess%,bits....=$a| 00000330 64 64 72 65 73 73 25 0d 01 0e 05 3a 0d 01 18 14 |ddress%....:....| 00000340 dd 20 a4 75 6e 70 61 63 6b 28 76 24 2c 63 24 29 |. .unpack(v$,c$)| 00000350 0d 01 22 33 c8 99 20 22 50 61 63 6b 65 72 5f 55 |.."3.. "Packer_U| 00000360 6e 70 61 63 6b 53 74 72 69 6e 67 22 2c 76 24 2c |npackString",v$,| 00000370 63 24 20 b8 20 75 6e 70 61 63 6b 65 64 24 2c 62 |c$ . unpacked$,b| 00000380 69 74 73 0d 01 2c 0e 3d 75 6e 70 61 63 6b 65 64 |its..,.=unpacked| 00000390 24 0d ff |$..| 00000393