Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape02a_acorn_eu_1989_august.wav » COMPACT

COMPACT

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 tapes » Electron_User » Electron_User_tape02a_acorn_eu_1989_august.wav
Filename: COMPACT
Read OK:
File size: 01A3 bytes
Load address: 2000
Exec address: 1900
Duplicates

There are 2 duplicate copies of this file in the archive:

File contents
   10REM Program II
   20REM Compact screen
   30REM Bit 8 set = multiple bytes
   40ON ERROR CLOSE#0:REPORT:PRINT" at line ";ERL:END
   50 
   60MODE 2 : *FX16
   70*LOAD SCREEN 3000
   80PROCsave("SCR1")
   90END
  100 
  110DEF PROCsave(fname$)
  120F%=OPENOUT fname$
  130A%=&3000
  140REPEAT
  150IF ?A%=A%?1 PROCcount ELSE BPUT#F%,?A% : A%=A%+1
  160UNTIL A%>&8000
  170CLOSE#F%
  180ENDPROC
  190 
  200DEF PROCcount
  210P%=A%
  220REPEAT
  230P%=P%+1
  240UNTIL ?P%<>?A% OR P%-A%=255
  250B%=?A% OR 128
  260C%=P%-A%
  270A%=P%
  280BPUT#F%,B% : BPUT#F%,C%
  290ENDPROC

� Program II
� Compact screen
 � Bit 8 set = multiple bytes
(� � �#0:�:�" at line ";�:�
2 
<� 2 : *FX16
F*LOAD SCREEN 3000
P�save("SCR1")
Z�
d 
n� �save(fname$)
xF%=� fname$
�A%=&3000
��
�*� ?A%=A%?1 �count � �#F%,?A% : A%=A%+1
�� A%>&8000
��#F%
��
� 
�� �count
�	P%=A%
��
�P%=P%+1
�� ?P%<>?A% � P%-A%=255
�B%=?A% � 128
C%=P%-A%
	A%=P%
�#F%,B% : �#F%,C%
"�
�
00000000  0d 00 0a 10 f4 20 50 72  6f 67 72 61 6d 20 49 49  |..... Program II|
00000010  0d 00 14 14 f4 20 43 6f  6d 70 61 63 74 20 73 63  |..... Compact sc|
00000020  72 65 65 6e 0d 00 1e 20  f4 20 42 69 74 20 38 20  |reen... . Bit 8 |
00000030  73 65 74 20 3d 20 6d 75  6c 74 69 70 6c 65 20 62  |set = multiple b|
00000040  79 74 65 73 0d 00 28 1e  ee 20 85 20 d9 23 30 3a  |ytes..(.. . .#0:|
00000050  f6 3a f1 22 20 61 74 20  6c 69 6e 65 20 22 3b 9e  |.:." at line ";.|
00000060  3a e0 0d 00 32 05 20 0d  00 3c 0f eb 20 32 20 3a  |:...2. ..<.. 2 :|
00000070  20 2a 46 58 31 36 0d 00  46 15 2a 4c 4f 41 44 20  | *FX16..F.*LOAD |
00000080  53 43 52 45 45 4e 20 33  30 30 30 0d 00 50 11 f2  |SCREEN 3000..P..|
00000090  73 61 76 65 28 22 53 43  52 31 22 29 0d 00 5a 05  |save("SCR1")..Z.|
000000a0  e0 0d 00 64 05 20 0d 00  6e 13 dd 20 f2 73 61 76  |...d. ..n.. .sav|
000000b0  65 28 66 6e 61 6d 65 24  29 0d 00 78 0f 46 25 3d  |e(fname$)..x.F%=|
000000c0  ae 20 66 6e 61 6d 65 24  0d 00 82 0c 41 25 3d 26  |. fname$....A%=&|
000000d0  33 30 30 30 0d 00 8c 05  f5 0d 00 96 2a e7 20 3f  |3000........*. ?|
000000e0  41 25 3d 41 25 3f 31 20  f2 63 6f 75 6e 74 20 8b  |A%=A%?1 .count .|
000000f0  20 d5 23 46 25 2c 3f 41  25 20 3a 20 41 25 3d 41  | .#F%,?A% : A%=A|
00000100  25 2b 31 0d 00 a0 0e fd  20 41 25 3e 26 38 30 30  |%+1..... A%>&800|
00000110  30 0d 00 aa 08 d9 23 46  25 0d 00 b4 05 e1 0d 00  |0.....#F%.......|
00000120  be 05 20 0d 00 c8 0c dd  20 f2 63 6f 75 6e 74 0d  |.. ..... .count.|
00000130  00 d2 09 50 25 3d 41 25  0d 00 dc 05 f5 0d 00 e6  |...P%=A%........|
00000140  0b 50 25 3d 50 25 2b 31  0d 00 f0 1a fd 20 3f 50  |.P%=P%+1..... ?P|
00000150  25 3c 3e 3f 41 25 20 84  20 50 25 2d 41 25 3d 32  |%<>?A% . P%-A%=2|
00000160  35 35 0d 00 fa 10 42 25  3d 3f 41 25 20 84 20 31  |55....B%=?A% . 1|
00000170  32 38 0d 01 04 0c 43 25  3d 50 25 2d 41 25 0d 01  |28....C%=P%-A%..|
00000180  0e 09 41 25 3d 50 25 0d  01 18 15 d5 23 46 25 2c  |..A%=P%.....#F%,|
00000190  42 25 20 3a 20 d5 23 46  25 2c 43 25 0d 01 22 05  |B% : .#F%,C%..".|
000001a0  e1 0d ff                                          |...|
000001a3
COMPACT.m0
COMPACT.m1
COMPACT.m2
COMPACT.m4
COMPACT.m5