Home » Archimedes archive » Micro User » MU 1991-03.adf » 8-bitstuff » X/Gen

X/Gen

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 » Micro User » MU 1991-03.adf » 8-bitstuff
Filename: X/Gen
Read OK:
File size: 1536 bytes
Load address: 0000
Exec address: 0000
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
   10REM Menu Data Creator
   20REM by Steve Turnbull
   30REM (c) Database Publications
   40PROCinit
   50PROCreaddata
   60PROCassm
   70OSCLI("SAVE !data "+STR$~data+"+"+STR$~Q%+" 0 0")
   80END
   90DEF PROCinit
  100DIM data &C00
  110base=&2000
  120FORI%=data TOdata+&C00-1STEP4
  130!I%=0:NEXT
  140files$="ACDT"
  150types$="BDELRS"
  160mchns$="EBCMPZ"
  170ENDPROC
  180DEF PROCreaddata
  190READ v$,n$,m$,y$,noof
  200DIM n$(noof),p$(noof),f$(noof)
  210DIM m$(noof),t$(noof),s$(noof)
  220DIM h$(noof)
  230FOR F%=0 TO noof-1
  240READ n$(F%),p$(F%),f$(F%)
  250READ m$(F%),t$(F%),s$(F%),h$(F%)
  260NEXT:ENDPROC
  270File structure:
  280Number of files      --  1 byte
  290Offset to Volume     --  2 bytes
  300Offset to Issue      --  2 bytes
  310Offset to Date       --  2 bytes
  320Offset of type table --  2 bytes
  330Offset of mach table --  2 bytes
  340Offset of FS table   --  2 bytes
  350Offset of name offs  --  2 bytes
  360Offset of page offs  --  2 bytes
  370Offset of fnam offs  --  2 bytes
  380Offset of help offs  --  2 bytes
  390Type table           --  n bytes
  400Machines table       --  n bytes
  410FS table             --  n bytes
  420Offsets to name      -- 2n bytes
  430Offsets to page      -- 2n bytes
  440Offsets to filename  -- 2n bytes
  450Offsets to help      -- 2n bytes
  460Start of strings     -- 21+11n bytes
  470DEF PROCassm
  480O%=0:R%=21:Q%=R%+11*noof
  490PROCb(noof)
  500PROCw(Q%):PROCx(784,988,"Volume"+FNf(v$,3))
  510PROCw(Q%):PROCx(784,946,"Issue"+FNf(n$,3))
  520PROCw(Q%):PROCx(784,902,m$+" "+y$)
  530PROCw(R%):R%=R%+noof
  540PROCw(R%):R%=R%+noof
  550PROCw(R%):R%=R%+noof
  560PROCw(R%):R%=R%+2*noof
  570PROCw(R%):R%=R%+2*noof
  580PROCw(R%):R%=R%+2*noof
  590PROCw(R%):R%=R%+2*noof
  600FOR F%=0 TO noof-1
  610PROCbyte(t$(F%),types$):NEXT
  620FOR F%=0 TO noof-1
  630PROCbyte(m$(F%),mchns$):NEXT
  640FOR F%=0 TO noof-1
  650PROCbyte(s$(F%),files$):NEXT
  660FOR F%=0 TO noof-1
  670PROCw(Q%):PROCstr(n$(F%)):NEXT
  680FOR F%=0 TO noof-1:PROCw(Q%)
  690PROCstr(FNf(p$(F%),3)):NEXT
  700FOR F%=0 TO noof-1:PROCw(Q%)
  710PROCstr("*K.10 "+f$(F%)):NEXT
  720FOR F%=0 TO noof-1:PROCw(Q%)
  730PROCstr(FNj(h$(F%),33)+CHR$0):NEXT
  740ENDPROC
  750DEF FNj(t$,W%)
  760LOCAL l$,s$,w$:t$=t$+" "
  770REPEAT w$=FNwd
  780IF LENw$+LENl$>=W% s$=s$+l$+CHR$10+CHR$13:l$=w$ ELSE l$=l$+" "+w$
  790UNTIL t$="":=MID$(s$+l$,2)
  800DEF FNwd:LOCAL C%,w$:IF t$="" =""
  810C%=INSTR(t$," "):w$=LEFT$(t$,C%-1)
  820t$=MID$(t$,C%+1):=w$
  830DEF PROCb(B%)
  840data?O%=B%:O%=O%+1:ENDPROC
  850DEF PROCw(W%)
  860W%=W%+base:PROCb(W%MOD256)
  870PROCb(W%DIV256):ENDPROC
  880DEF FNf(x$,L%)=RIGHT$(STRING$(L%," ")+x$,L%)
  890DEF PROCx(X%,Y%,t$)
  900PROCwq(X%):PROCwq(Y%)
  910PROCstr(t$+CHR$13):ENDPROC
  920DEF PROCwq(W%):PROCbq(W%MOD256)
  930PROCbq(W%DIV256):ENDPROC
  940DEF PROCbq(B%)
  950data?Q%=B%:Q%=Q%+1:ENDPROC
  960DEF PROCstr(x$):$(data+Q%)=x$
  970Q%=Q%+LENx$+1:ENDPROC
  980DEF PROCbyte(x$,k$)
  990LOCAL B%,L%,P%,Z%:B%=1
 1000L%=LENk$:IF L%>8 ERROR
 1010FOR P%=1 TO L%
 1020Z%=Z%OR((INSTR(x$,MID$(k$,P%,1))>0)ANDB%)
 1030B%=B%+B%:NEXT
 1040PROCb(Z%):ENDPROC
 1050Issue:    Volume, Issue, Month, Year
 1060Files:    Number of
 1070Name:     Text string <30 characters
 1080Page:     Page number (string)
 1090Run:      String
 1100Machine:  A = Archimedes
 1110          B = BBC B
 1120          C = Compact
 1130          M = Master
 1140          P = B+
 1150          Z = Z88
 1160Type:     B = Basic
 1170          D = Data
 1180          E = *EXECable file
 1190          L = *LOADable file
 1200          R = *RUNable file
 1210          S = *SRLOADable file
 1220          T = Text
 1230FS:       A = ADFS
 1240          C = CFS
 1250          D = DFS
 1260          T = Teletext
 1270          I = IEEE
 1280Help:     Help text
 1290DATA 9,1,March,1991
 1291DATA 19
 1301DATA Make Four,...
 1302DATA PAGE=&1900:CHAIN"Make4"|M,BCMP,B,ADT
 1303DATA This is a real pain -- I've only beaten it once.
 1304DATA Bugs: Advanced Trace,...
 1305DATA PAGE=&1900:CHAIN"AdvTrce"|M,BCMP,B,ADT
 1306DATA The advanced line tracer for the BBC Micro
 1307DATA Bugs: Error handler,...
 1308DATA PAGE=&1900:CHAIN"ERRHdlr"|M,BCMP,B,ADT
 1309DATA An example of how to use the improved error handler
 1310DATA Product of Primes,...
 1311DATA CHAIN"ProdPri"|M,BCMP,B,ADT
 1312DATA Very interesting
 1313DATA Touch Pad program,...
 1314DATA CHAIN"PadSrce"|M,BCMP,B,ADT
 1315DATA If you have a Touch Pad this shows a better way to use it.
 1316DATA Worksheet Work-out,...
 1326DATA CHAIN"WorkOut"|M,BCMP,B,ADT
 1336DATA Program to generate worksheets for spelling practise.
 1346DATA Worksheet File maker,...
 1356DATA CHAIN"MakeFil"|M,BCMP,B,ADT
 1366DATA Program to create files used by the WorkOut program.
 1376DATA Worksheet: MagicE1 to 3,...
 1386DATA *|| For use with WorkOut|M,BCMP,D,ADT
 1396DATA Three data files for practicing Magic E words.
 1406DATA Worksheet: Plural1 to 3,...
 1416DATA *|| For use with WorkOut|M,BCMP,D,ADT
 1426DATA Three data files for practicing Plural words.
 1436DATA Worksheet: Rplace1 to 3,...
 1446DATA *|| For use with WorkOut|M,BCMP,D,ADT
 1456DATA Three data files for practicing replacing vowels in words.
 1466DATA Function Key Strip Gen,...
 1476DATA *||This won't work where PAGE is more than E00|MCHAIN"FuncKey"|M,CMP,B,ADT
 1486DATA Last month's compressed version didn't work!
 1496DATA Function Key Colour,...
 1506DATA *||These lines need to be added to FuncKey|M,CMP,B,ADT
 1516DATA Colour amendments for FuncKey.
 1526DATA Routine Matters: Disable,...
 1536DATA CHAIN"R.Dsble+1"|M,E,B,ADT
 1546DATA Disable the Plus 1 on the Electron
 1556DATA Routine Matters: Fader,...
 1566DATA CHAIN"R.Fader"|M,CM,B,ADT
 1576DATA Yet another fade routine (yawn).
 1586DATA Routine Matters: Staves,...
 1596DATA CHAIN"R.Staves"|M,BCMP,B,ADT
 1606DATA Print manuscript music staves!
 1616DATA Routine Matters: DTPconv,...
 1626DATA CHAIN"R.DTPconv"|M,BCMP,B,ADT
 1636DATA Convert some DTP formats on the BBC Micro.
 1646DATA Routine Matters: Keywrds,...
 1656DATA CHAIN"R.Keywrds"|M,BCMP,B,ADT
 1666DATA Lists the keywords of Basic.
 2310DATA Checksums (new),- 
 2320DATA *xs|M,BCMP,R,AD
 2330DATA The 1989 version which handles DATA statements correctly
 2340DATA Checksums (old),- 
 2350DATA *xsum|M,BCMP,R,AD
 2360DATA The 1988 version with LIST type parameters -- gives wrong checksums for some DATA statements

� Menu Data Creator
� by Steve Turnbull
� (c) Database Publications
(	�init
2
�readdata
<	�assm
F+�("SAVE !data "+�~data+"+"+�~Q%+" 0 0")
P�
Z� �init
d� data &C00
nbase=&2000
x�I%=data �data+&C00-1�4
�!I%=0:�
�files$="ACDT"
�types$="BDELRS"
�mchns$="EBCMPZ"
��
�� �readdata
�� v$,n$,m$,y$,noof
� � n$(noof),p$(noof),f$(noof)
� � m$(noof),t$(noof),s$(noof)
�� h$(noof)
�� F%=0 � noof-1
�� n$(F%),p$(F%),f$(F%)
�!� m$(F%),t$(F%),s$(F%),h$(F%)
�:�
File structure:
#Number of files      --  1 byte
"$Offset to Volume     --  2 bytes
,$Offset to Issue      --  2 bytes
6$Offset to Date       --  2 bytes
@$Offset of type table --  2 bytes
J$Offset of mach table --  2 bytes
T$Offset of FS table   --  2 bytes
^$Offset of name offs  --  2 bytes
h$Offset of page offs  --  2 bytes
r$Offset of fnam offs  --  2 bytes
|$Offset of help offs  --  2 bytes
�$Type table           --  n bytes
�$Machines table       --  n bytes
�$FS table             --  n bytes
�$Offsets to name      -- 2n bytes
�$Offsets to page      -- 2n bytes
�$Offsets to filename  -- 2n bytes
�$Offsets to help      -- 2n bytes
�(Start of strings     -- 21+11n bytes
�� �assm
�O%=0:R%=21:Q%=R%+11*noof
��b(noof)
�(�w(Q%):�x(784,988,"Volume"+�f(v$,3))
�'�w(Q%):�x(784,946,"Issue"+�f(n$,3))
 �w(Q%):�x(784,902,m$+" "+y$)
�w(R%):R%=R%+noof
�w(R%):R%=R%+noof
&�w(R%):R%=R%+noof
0�w(R%):R%=R%+2*noof
:�w(R%):R%=R%+2*noof
D�w(R%):R%=R%+2*noof
N�w(R%):R%=R%+2*noof
X� F%=0 � noof-1
b�byte(t$(F%),types$):�
l� F%=0 � noof-1
v�byte(m$(F%),mchns$):�
�� F%=0 � noof-1
��byte(s$(F%),files$):�
�� F%=0 � noof-1
��w(Q%):�str(n$(F%)):�
�� F%=0 � noof-1:�w(Q%)
��str(�f(p$(F%),3)):�
�� F%=0 � noof-1:�w(Q%)
��str("*K.10 "+f$(F%)):�
�� F%=0 � noof-1:�w(Q%)
��str(�j(h$(F%),33)+�0):�
��
�� �j(t$,W%)
�� l$,s$,w$:t$=t$+" "
� w$=�wd
7� �w$+�l$>=W% s$=s$+l$+�10+�13:l$=w$ � l$=l$+" "+w$
� t$="":=�s$+l$,2)
 � �wd:� C%,w$:� t$="" =""
*C%=�t$," "):w$=�t$,C%-1)
4t$=�t$,C%+1):=w$
>� �b(B%)
Hdata?O%=B%:O%=O%+1:�
R� �w(W%)
\W%=W%+base:�b(W%�256)
f�b(W%�256):�
p � �f(x$,L%)=��L%," ")+x$,L%)
z� �x(X%,Y%,t$)
��wq(X%):�wq(Y%)
��str(t$+�13):�
�� �wq(W%):�bq(W%�256)
��bq(W%�256):�
�
� �bq(B%)
�data?Q%=B%:Q%=Q%+1:�
�� �str(x$):$(data+Q%)=x$
�Q%=Q%+�x$+1:�
�� �byte(x$,k$)
�� B%,L%,P%,Z%:B%=1
�L%=�k$:� L%>8 �
�� P%=1 � L%
�!Z%=Z%�((�x$,�k$,P%,1))>0)�B%)
B%=B%+B%:�
�b(Z%):�
(Issue:    Volume, Issue, Month, Year
$Files:    Number of
.(Name:     Text string <30 characters
8"Page:     Page number (string)
BRun:      String
LMachine:  A = Archimedes
V          B = BBC B
`          C = Compact
j          M = Master
t          P = B+
~          Z = Z88
�Type:     B = Basic
�          D = Data
�           E = *EXECable file
�          L = *�able file
�          R = *RUNable file
�"          S = *SRLOADable file
�          T = Text
�FS:       A = ADFS
�          C = CFS
�          D = DFS
�          T = Teletext
�          I = IEEE
Help:     Help text

� 9,1,March,1991
� 19
� Make Four,...
*� PAGE=&1900:CHAIN"Make4"|M,BCMP,B,ADT
6� This is a real pain -- I've only beaten it once.
� Bugs: Advanced Trace,...
,� PAGE=&1900:CHAIN"AdvTrce"|M,BCMP,B,ADT
0� The advanced line tracer for the BBC Micro
� Bugs: Error handler,...
,� PAGE=&1900:CHAIN"ERRHdlr"|M,BCMP,B,ADT
9� An example of how to use the improved error handler
� Product of Primes,...
!� CHAIN"ProdPri"|M,BCMP,B,ADT
 � Very interesting
!� Touch Pad program,...
"!� CHAIN"PadSrce"|M,BCMP,B,ADT
#@� If you have a Touch Pad this shows a better way to use it.
$� Worksheet Work-out,...
.!� CHAIN"WorkOut"|M,BCMP,B,ADT
8;� Program to generate worksheets for spelling practise.
B� Worksheet File maker,...
L!� CHAIN"MakeFil"|M,BCMP,B,ADT
V:� Program to create files used by the WorkOut program.
`!� Worksheet: MagicE1 to 3,...
j+� *|| For use with WorkOut|M,BCMP,D,ADT
t4� Three data files for practicing Magic E words.
~!� Worksheet: Plural1 to 3,...
�+� *|| For use with WorkOut|M,BCMP,D,ADT
�3� Three data files for practicing Plural words.
�!� Worksheet: Rplace1 to 3,...
�+� *|| For use with WorkOut|M,BCMP,D,ADT
�@� Three data files for practicing replacing vowels in words.
� � Function Key Strip Gen,...
�P� *||This won't work where PAGE is more than E00|MCHAIN"FuncKey"|M,CMP,B,ADT
�2� Last month's compressed version didn't work!
�� Function Key Colour,...
�<� *||These lines need to be added to FuncKey|M,CMP,B,ADT
�$� Colour amendments for FuncKey.
�"� Routine Matters: Disable,...
 � CHAIN"R.Dsble+1"|M,E,B,ADT

(� Disable the Plus 1 on the Electron
 � Routine Matters: Fader,...
� CHAIN"R.Fader"|M,CM,B,ADT
(&� Yet another fade routine (yawn).
2!� Routine Matters: Staves,...
<"� CHAIN"R.Staves"|M,BCMP,B,ADT
F$� Print manuscript music staves!
P"� Routine Matters: DTPconv,...
Z#� CHAIN"R.DTPconv"|M,BCMP,B,ADT
d0� Convert some DTP formats on the BBC Micro.
n"� Routine Matters: Keywrds,...
x#� CHAIN"R.Keywrds"|M,BCMP,B,ADT
�"� Lists the keywords of Basic.
	� Checksums (new),- 
	� *xs|M,BCMP,R,AD
	>� The 1989 version which handles DATA statements correctly
	$� Checksums (old),- 
	.� *xsum|M,BCMP,R,AD
	8b� The 1988 version with LIST type parameters -- gives wrong checksums for some DATA statements
�
00000000  0d 00 0a 17 f4 20 4d 65  6e 75 20 44 61 74 61 20  |..... Menu Data |
00000010  43 72 65 61 74 6f 72 0d  00 14 17 f4 20 62 79 20  |Creator..... by |
00000020  53 74 65 76 65 20 54 75  72 6e 62 75 6c 6c 0d 00  |Steve Turnbull..|
00000030  1e 1f f4 20 28 63 29 20  44 61 74 61 62 61 73 65  |... (c) Database|
00000040  20 50 75 62 6c 69 63 61  74 69 6f 6e 73 0d 00 28  | Publications..(|
00000050  09 f2 69 6e 69 74 0d 00  32 0d f2 72 65 61 64 64  |..init..2..readd|
00000060  61 74 61 0d 00 3c 09 f2  61 73 73 6d 0d 00 46 2b  |ata..<..assm..F+|
00000070  ff 28 22 53 41 56 45 20  21 64 61 74 61 20 22 2b  |.("SAVE !data "+|
00000080  c3 7e 64 61 74 61 2b 22  2b 22 2b c3 7e 51 25 2b  |.~data+"+"+.~Q%+|
00000090  22 20 30 20 30 22 29 0d  00 50 05 e0 0d 00 5a 0b  |" 0 0")..P....Z.|
000000a0  dd 20 f2 69 6e 69 74 0d  00 64 0f de 20 64 61 74  |. .init..d.. dat|
000000b0  61 20 26 43 30 30 0d 00  6e 0e 62 61 73 65 3d 26  |a &C00..n.base=&|
000000c0  32 30 30 30 0d 00 78 1b  e3 49 25 3d 64 61 74 61  |2000..x..I%=data|
000000d0  20 b8 64 61 74 61 2b 26  43 30 30 2d 31 88 34 0d  | .data+&C00-1.4.|
000000e0  00 82 0b 21 49 25 3d 30  3a ed 0d 00 8c 11 66 69  |...!I%=0:.....fi|
000000f0  6c 65 73 24 3d 22 41 43  44 54 22 0d 00 96 13 74  |les$="ACDT"....t|
00000100  79 70 65 73 24 3d 22 42  44 45 4c 52 53 22 0d 00  |ypes$="BDELRS"..|
00000110  a0 13 6d 63 68 6e 73 24  3d 22 45 42 43 4d 50 5a  |..mchns$="EBCMPZ|
00000120  22 0d 00 aa 05 e1 0d 00  b4 0f dd 20 f2 72 65 61  |".......... .rea|
00000130  64 64 61 74 61 0d 00 be  16 f3 20 76 24 2c 6e 24  |ddata..... v$,n$|
00000140  2c 6d 24 2c 79 24 2c 6e  6f 6f 66 0d 00 c8 20 de  |,m$,y$,noof... .|
00000150  20 6e 24 28 6e 6f 6f 66  29 2c 70 24 28 6e 6f 6f  | n$(noof),p$(noo|
00000160  66 29 2c 66 24 28 6e 6f  6f 66 29 0d 00 d2 20 de  |f),f$(noof)... .|
00000170  20 6d 24 28 6e 6f 6f 66  29 2c 74 24 28 6e 6f 6f  | m$(noof),t$(noo|
00000180  66 29 2c 73 24 28 6e 6f  6f 66 29 0d 00 dc 0e de  |f),s$(noof).....|
00000190  20 68 24 28 6e 6f 6f 66  29 0d 00 e6 13 e3 20 46  | h$(noof)..... F|
000001a0  25 3d 30 20 b8 20 6e 6f  6f 66 2d 31 0d 00 f0 1a  |%=0 . noof-1....|
000001b0  f3 20 6e 24 28 46 25 29  2c 70 24 28 46 25 29 2c  |. n$(F%),p$(F%),|
000001c0  66 24 28 46 25 29 0d 00  fa 21 f3 20 6d 24 28 46  |f$(F%)...!. m$(F|
000001d0  25 29 2c 74 24 28 46 25  29 2c 73 24 28 46 25 29  |%),t$(F%),s$(F%)|
000001e0  2c 68 24 28 46 25 29 0d  01 04 07 ed 3a e1 0d 01  |,h$(F%).....:...|
000001f0  0e 13 46 69 6c 65 20 73  74 72 75 63 74 75 72 65  |..File structure|
00000200  3a 0d 01 18 23 4e 75 6d  62 65 72 20 6f 66 20 66  |:...#Number of f|
00000210  69 6c 65 73 20 20 20 20  20 20 2d 2d 20 20 31 20  |iles      --  1 |
00000220  62 79 74 65 0d 01 22 24  4f 66 66 73 65 74 20 74  |byte.."$Offset t|
00000230  6f 20 56 6f 6c 75 6d 65  20 20 20 20 20 2d 2d 20  |o Volume     -- |
00000240  20 32 20 62 79 74 65 73  0d 01 2c 24 4f 66 66 73  | 2 bytes..,$Offs|
00000250  65 74 20 74 6f 20 49 73  73 75 65 20 20 20 20 20  |et to Issue     |
00000260  20 2d 2d 20 20 32 20 62  79 74 65 73 0d 01 36 24  | --  2 bytes..6$|
00000270  4f 66 66 73 65 74 20 74  6f 20 44 61 74 65 20 20  |Offset to Date  |
00000280  20 20 20 20 20 2d 2d 20  20 32 20 62 79 74 65 73  |     --  2 bytes|
00000290  0d 01 40 24 4f 66 66 73  65 74 20 6f 66 20 74 79  |..@$Offset of ty|
000002a0  70 65 20 74 61 62 6c 65  20 2d 2d 20 20 32 20 62  |pe table --  2 b|
000002b0  79 74 65 73 0d 01 4a 24  4f 66 66 73 65 74 20 6f  |ytes..J$Offset o|
000002c0  66 20 6d 61 63 68 20 74  61 62 6c 65 20 2d 2d 20  |f mach table -- |
000002d0  20 32 20 62 79 74 65 73  0d 01 54 24 4f 66 66 73  | 2 bytes..T$Offs|
000002e0  65 74 20 6f 66 20 46 53  20 74 61 62 6c 65 20 20  |et of FS table  |
000002f0  20 2d 2d 20 20 32 20 62  79 74 65 73 0d 01 5e 24  | --  2 bytes..^$|
00000300  4f 66 66 73 65 74 20 6f  66 20 6e 61 6d 65 20 6f  |Offset of name o|
00000310  66 66 73 20 20 2d 2d 20  20 32 20 62 79 74 65 73  |ffs  --  2 bytes|
00000320  0d 01 68 24 4f 66 66 73  65 74 20 6f 66 20 70 61  |..h$Offset of pa|
00000330  67 65 20 6f 66 66 73 20  20 2d 2d 20 20 32 20 62  |ge offs  --  2 b|
00000340  79 74 65 73 0d 01 72 24  4f 66 66 73 65 74 20 6f  |ytes..r$Offset o|
00000350  66 20 66 6e 61 6d 20 6f  66 66 73 20 20 2d 2d 20  |f fnam offs  -- |
00000360  20 32 20 62 79 74 65 73  0d 01 7c 24 4f 66 66 73  | 2 bytes..|$Offs|
00000370  65 74 20 6f 66 20 68 65  6c 70 20 6f 66 66 73 20  |et of help offs |
00000380  20 2d 2d 20 20 32 20 62  79 74 65 73 0d 01 86 24  | --  2 bytes...$|
00000390  54 79 70 65 20 74 61 62  6c 65 20 20 20 20 20 20  |Type table      |
000003a0  20 20 20 20 20 2d 2d 20  20 6e 20 62 79 74 65 73  |     --  n bytes|
000003b0  0d 01 90 24 4d 61 63 68  69 6e 65 73 20 74 61 62  |...$Machines tab|
000003c0  6c 65 20 20 20 20 20 20  20 2d 2d 20 20 6e 20 62  |le       --  n b|
000003d0  79 74 65 73 0d 01 9a 24  46 53 20 74 61 62 6c 65  |ytes...$FS table|
000003e0  20 20 20 20 20 20 20 20  20 20 20 20 20 2d 2d 20  |             -- |
000003f0  20 6e 20 62 79 74 65 73  0d 01 a4 24 4f 66 66 73  | n bytes...$Offs|
00000400  65 74 73 20 74 6f 20 6e  61 6d 65 20 20 20 20 20  |ets to name     |
00000410  20 2d 2d 20 32 6e 20 62  79 74 65 73 0d 01 ae 24  | -- 2n bytes...$|
00000420  4f 66 66 73 65 74 73 20  74 6f 20 70 61 67 65 20  |Offsets to page |
00000430  20 20 20 20 20 2d 2d 20  32 6e 20 62 79 74 65 73  |     -- 2n bytes|
00000440  0d 01 b8 24 4f 66 66 73  65 74 73 20 74 6f 20 66  |...$Offsets to f|
00000450  69 6c 65 6e 61 6d 65 20  20 2d 2d 20 32 6e 20 62  |ilename  -- 2n b|
00000460  79 74 65 73 0d 01 c2 24  4f 66 66 73 65 74 73 20  |ytes...$Offsets |
00000470  74 6f 20 68 65 6c 70 20  20 20 20 20 20 2d 2d 20  |to help      -- |
00000480  32 6e 20 62 79 74 65 73  0d 01 cc 28 53 74 61 72  |2n bytes...(Star|
00000490  74 20 6f 66 20 73 74 72  69 6e 67 73 20 20 20 20  |t of strings    |
000004a0  20 2d 2d 20 32 31 2b 31  31 6e 20 62 79 74 65 73  | -- 21+11n bytes|
000004b0  0d 01 d6 0b dd 20 f2 61  73 73 6d 0d 01 e0 1c 4f  |..... .assm....O|
000004c0  25 3d 30 3a 52 25 3d 32  31 3a 51 25 3d 52 25 2b  |%=0:R%=21:Q%=R%+|
000004d0  31 31 2a 6e 6f 6f 66 0d  01 ea 0c f2 62 28 6e 6f  |11*noof.....b(no|
000004e0  6f 66 29 0d 01 f4 28 f2  77 28 51 25 29 3a f2 78  |of)...(.w(Q%):.x|
000004f0  28 37 38 34 2c 39 38 38  2c 22 56 6f 6c 75 6d 65  |(784,988,"Volume|
00000500  22 2b a4 66 28 76 24 2c  33 29 29 0d 01 fe 27 f2  |"+.f(v$,3))...'.|
00000510  77 28 51 25 29 3a f2 78  28 37 38 34 2c 39 34 36  |w(Q%):.x(784,946|
00000520  2c 22 49 73 73 75 65 22  2b a4 66 28 6e 24 2c 33  |,"Issue"+.f(n$,3|
00000530  29 29 0d 02 08 20 f2 77  28 51 25 29 3a f2 78 28  |))... .w(Q%):.x(|
00000540  37 38 34 2c 39 30 32 2c  6d 24 2b 22 20 22 2b 79  |784,902,m$+" "+y|
00000550  24 29 0d 02 12 15 f2 77  28 52 25 29 3a 52 25 3d  |$).....w(R%):R%=|
00000560  52 25 2b 6e 6f 6f 66 0d  02 1c 15 f2 77 28 52 25  |R%+noof.....w(R%|
00000570  29 3a 52 25 3d 52 25 2b  6e 6f 6f 66 0d 02 26 15  |):R%=R%+noof..&.|
00000580  f2 77 28 52 25 29 3a 52  25 3d 52 25 2b 6e 6f 6f  |.w(R%):R%=R%+noo|
00000590  66 0d 02 30 17 f2 77 28  52 25 29 3a 52 25 3d 52  |f..0..w(R%):R%=R|
000005a0  25 2b 32 2a 6e 6f 6f 66  0d 02 3a 17 f2 77 28 52  |%+2*noof..:..w(R|
000005b0  25 29 3a 52 25 3d 52 25  2b 32 2a 6e 6f 6f 66 0d  |%):R%=R%+2*noof.|
000005c0  02 44 17 f2 77 28 52 25  29 3a 52 25 3d 52 25 2b  |.D..w(R%):R%=R%+|
000005d0  32 2a 6e 6f 6f 66 0d 02  4e 17 f2 77 28 52 25 29  |2*noof..N..w(R%)|
000005e0  3a 52 25 3d 52 25 2b 32  2a 6e 6f 6f 66 0d 02 58  |:R%=R%+2*noof..X|
000005f0  13 e3 20 46 25 3d 30 20  b8 20 6e 6f 6f 66 2d 31  |.. F%=0 . noof-1|
00000600  0d 02 62 1a f2 62 79 74  65 28 74 24 28 46 25 29  |..b..byte(t$(F%)|
00000610  2c 74 79 70 65 73 24 29  3a ed 0d 02 6c 13 e3 20  |,types$):...l.. |
00000620  46 25 3d 30 20 b8 20 6e  6f 6f 66 2d 31 0d 02 76  |F%=0 . noof-1..v|
00000630  1a f2 62 79 74 65 28 6d  24 28 46 25 29 2c 6d 63  |..byte(m$(F%),mc|
00000640  68 6e 73 24 29 3a ed 0d  02 80 13 e3 20 46 25 3d  |hns$):...... F%=|
00000650  30 20 b8 20 6e 6f 6f 66  2d 31 0d 02 8a 1a f2 62  |0 . noof-1.....b|
00000660  79 74 65 28 73 24 28 46  25 29 2c 66 69 6c 65 73  |yte(s$(F%),files|
00000670  24 29 3a ed 0d 02 94 13  e3 20 46 25 3d 30 20 b8  |$):...... F%=0 .|
00000680  20 6e 6f 6f 66 2d 31 0d  02 9e 19 f2 77 28 51 25  | noof-1.....w(Q%|
00000690  29 3a f2 73 74 72 28 6e  24 28 46 25 29 29 3a ed  |):.str(n$(F%)):.|
000006a0  0d 02 a8 1a e3 20 46 25  3d 30 20 b8 20 6e 6f 6f  |..... F%=0 . noo|
000006b0  66 2d 31 3a f2 77 28 51  25 29 0d 02 b2 18 f2 73  |f-1:.w(Q%).....s|
000006c0  74 72 28 a4 66 28 70 24  28 46 25 29 2c 33 29 29  |tr(.f(p$(F%),3))|
000006d0  3a ed 0d 02 bc 1a e3 20  46 25 3d 30 20 b8 20 6e  |:...... F%=0 . n|
000006e0  6f 6f 66 2d 31 3a f2 77  28 51 25 29 0d 02 c6 1b  |oof-1:.w(Q%)....|
000006f0  f2 73 74 72 28 22 2a 4b  2e 31 30 20 22 2b 66 24  |.str("*K.10 "+f$|
00000700  28 46 25 29 29 3a ed 0d  02 d0 1a e3 20 46 25 3d  |(F%)):...... F%=|
00000710  30 20 b8 20 6e 6f 6f 66  2d 31 3a f2 77 28 51 25  |0 . noof-1:.w(Q%|
00000720  29 0d 02 da 1c f2 73 74  72 28 a4 6a 28 68 24 28  |).....str(.j(h$(|
00000730  46 25 29 2c 33 33 29 2b  bd 30 29 3a ed 0d 02 e4  |F%),33)+.0):....|
00000740  05 e1 0d 02 ee 0f dd 20  a4 6a 28 74 24 2c 57 25  |....... .j(t$,W%|
00000750  29 0d 02 f8 18 ea 20 6c  24 2c 73 24 2c 77 24 3a  |)..... l$,s$,w$:|
00000760  74 24 3d 74 24 2b 22 20  22 0d 03 02 0c f5 20 77  |t$=t$+" "..... w|
00000770  24 3d a4 77 64 0d 03 0c  37 e7 20 a9 77 24 2b a9  |$=.wd...7. .w$+.|
00000780  6c 24 3e 3d 57 25 20 73  24 3d 73 24 2b 6c 24 2b  |l$>=W% s$=s$+l$+|
00000790  bd 31 30 2b bd 31 33 3a  6c 24 3d 77 24 20 8b 20  |.10+.13:l$=w$ . |
000007a0  6c 24 3d 6c 24 2b 22 20  22 2b 77 24 0d 03 16 16  |l$=l$+" "+w$....|
000007b0  fd 20 74 24 3d 22 22 3a  3d c1 73 24 2b 6c 24 2c  |. t$="":=.s$+l$,|
000007c0  32 29 0d 03 20 1d dd 20  a4 77 64 3a ea 20 43 25  |2).. .. .wd:. C%|
000007d0  2c 77 24 3a e7 20 74 24  3d 22 22 20 3d 22 22 0d  |,w$:. t$="" ="".|
000007e0  03 2a 1c 43 25 3d a7 74  24 2c 22 20 22 29 3a 77  |.*.C%=.t$," "):w|
000007f0  24 3d c0 74 24 2c 43 25  2d 31 29 0d 03 34 14 74  |$=.t$,C%-1)..4.t|
00000800  24 3d c1 74 24 2c 43 25  2b 31 29 3a 3d 77 24 0d  |$=.t$,C%+1):=w$.|
00000810  03 3e 0c dd 20 f2 62 28  42 25 29 0d 03 48 18 64  |.>.. .b(B%)..H.d|
00000820  61 74 61 3f 4f 25 3d 42  25 3a 4f 25 3d 4f 25 2b  |ata?O%=B%:O%=O%+|
00000830  31 3a e1 0d 03 52 0c dd  20 f2 77 28 57 25 29 0d  |1:...R.. .w(W%).|
00000840  03 5c 19 57 25 3d 57 25  2b 62 61 73 65 3a f2 62  |.\.W%=W%+base:.b|
00000850  28 57 25 83 32 35 36 29  0d 03 66 10 f2 62 28 57  |(W%.256)..f..b(W|
00000860  25 81 32 35 36 29 3a e1  0d 03 70 20 dd 20 a4 66  |%.256):...p . .f|
00000870  28 78 24 2c 4c 25 29 3d  c2 c4 4c 25 2c 22 20 22  |(x$,L%)=..L%," "|
00000880  29 2b 78 24 2c 4c 25 29  0d 03 7a 12 dd 20 f2 78  |)+x$,L%)..z.. .x|
00000890  28 58 25 2c 59 25 2c 74  24 29 0d 03 84 13 f2 77  |(X%,Y%,t$).....w|
000008a0  71 28 58 25 29 3a f2 77  71 28 59 25 29 0d 03 8e  |q(X%):.wq(Y%)...|
000008b0  12 f2 73 74 72 28 74 24  2b bd 31 33 29 3a e1 0d  |..str(t$+.13):..|
000008c0  03 98 19 dd 20 f2 77 71  28 57 25 29 3a f2 62 71  |.... .wq(W%):.bq|
000008d0  28 57 25 83 32 35 36 29  0d 03 a2 11 f2 62 71 28  |(W%.256).....bq(|
000008e0  57 25 81 32 35 36 29 3a  e1 0d 03 ac 0d dd 20 f2  |W%.256):...... .|
000008f0  62 71 28 42 25 29 0d 03  b6 18 64 61 74 61 3f 51  |bq(B%)....data?Q|
00000900  25 3d 42 25 3a 51 25 3d  51 25 2b 31 3a e1 0d 03  |%=B%:Q%=Q%+1:...|
00000910  c0 1c dd 20 f2 73 74 72  28 78 24 29 3a 24 28 64  |... .str(x$):$(d|
00000920  61 74 61 2b 51 25 29 3d  78 24 0d 03 ca 11 51 25  |ata+Q%)=x$....Q%|
00000930  3d 51 25 2b a9 78 24 2b  31 3a e1 0d 03 d4 12 dd  |=Q%+.x$+1:......|
00000940  20 f2 62 79 74 65 28 78  24 2c 6b 24 29 0d 03 de  | .byte(x$,k$)...|
00000950  16 ea 20 42 25 2c 4c 25  2c 50 25 2c 5a 25 3a 42  |.. B%,L%,P%,Z%:B|
00000960  25 3d 31 0d 03 e8 13 4c  25 3d a9 6b 24 3a e7 20  |%=1....L%=.k$:. |
00000970  4c 25 3e 38 20 85 0d 03  f2 0f e3 20 50 25 3d 31  |L%>8 ...... P%=1|
00000980  20 b8 20 4c 25 0d 03 fc  21 5a 25 3d 5a 25 84 28  | . L%...!Z%=Z%.(|
00000990  28 a7 78 24 2c c1 6b 24  2c 50 25 2c 31 29 29 3e  |(.x$,.k$,P%,1))>|
000009a0  30 29 80 42 25 29 0d 04  06 0e 42 25 3d 42 25 2b  |0).B%)....B%=B%+|
000009b0  42 25 3a ed 0d 04 10 0c  f2 62 28 5a 25 29 3a e1  |B%:......b(Z%):.|
000009c0  0d 04 1a 28 49 73 73 75  65 3a 20 20 20 20 56 6f  |...(Issue:    Vo|
000009d0  6c 75 6d 65 2c 20 49 73  73 75 65 2c 20 4d 6f 6e  |lume, Issue, Mon|
000009e0  74 68 2c 20 59 65 61 72  0d 04 24 17 46 69 6c 65  |th, Year..$.File|
000009f0  73 3a 20 20 20 20 4e 75  6d 62 65 72 20 6f 66 0d  |s:    Number of.|
00000a00  04 2e 28 4e 61 6d 65 3a  20 20 20 20 20 54 65 78  |..(Name:     Tex|
00000a10  74 20 73 74 72 69 6e 67  20 3c 33 30 20 63 68 61  |t string <30 cha|
00000a20  72 61 63 74 65 72 73 0d  04 38 22 50 61 67 65 3a  |racters..8"Page:|
00000a30  20 20 20 20 20 50 61 67  65 20 6e 75 6d 62 65 72  |     Page number|
00000a40  20 28 73 74 72 69 6e 67  29 0d 04 42 14 52 75 6e  | (string)..B.Run|
00000a50  3a 20 20 20 20 20 20 53  74 72 69 6e 67 0d 04 4c  |:      String..L|
00000a60  1c 4d 61 63 68 69 6e 65  3a 20 20 41 20 3d 20 41  |.Machine:  A = A|
00000a70  72 63 68 69 6d 65 64 65  73 0d 04 56 17 20 20 20  |rchimedes..V.   |
00000a80  20 20 20 20 20 20 20 42  20 3d 20 42 42 43 20 42  |       B = BBC B|
00000a90  0d 04 60 19 20 20 20 20  20 20 20 20 20 20 43 20  |..`.          C |
00000aa0  3d 20 43 6f 6d 70 61 63  74 0d 04 6a 18 20 20 20  |= Compact..j.   |
00000ab0  20 20 20 20 20 20 20 4d  20 3d 20 4d 61 73 74 65  |       M = Maste|
00000ac0  72 0d 04 74 14 20 20 20  20 20 20 20 20 20 20 50  |r..t.          P|
00000ad0  20 3d 20 42 2b 0d 04 7e  15 20 20 20 20 20 20 20  | = B+..~.       |
00000ae0  20 20 20 5a 20 3d 20 5a  38 38 0d 04 88 17 54 79  |   Z = Z88....Ty|
00000af0  70 65 3a 20 20 20 20 20  42 20 3d 20 42 61 73 69  |pe:     B = Basi|
00000b00  63 0d 04 92 16 20 20 20  20 20 20 20 20 20 20 44  |c....          D|
00000b10  20 3d 20 44 61 74 61 0d  04 9c 20 20 20 20 20 20  | = Data...      |
00000b20  20 20 20 20 20 45 20 3d  20 2a 45 58 45 43 61 62  |     E = *EXECab|
00000b30  6c 65 20 66 69 6c 65 0d  04 a6 1d 20 20 20 20 20  |le file....     |
00000b40  20 20 20 20 20 4c 20 3d  20 2a c8 61 62 6c 65 20  |     L = *.able |
00000b50  66 69 6c 65 0d 04 b0 1f  20 20 20 20 20 20 20 20  |file....        |
00000b60  20 20 52 20 3d 20 2a 52  55 4e 61 62 6c 65 20 66  |  R = *RUNable f|
00000b70  69 6c 65 0d 04 ba 22 20  20 20 20 20 20 20 20 20  |ile..."         |
00000b80  20 53 20 3d 20 2a 53 52  4c 4f 41 44 61 62 6c 65  | S = *SRLOADable|
00000b90  20 66 69 6c 65 0d 04 c4  16 20 20 20 20 20 20 20  | file....       |
00000ba0  20 20 20 54 20 3d 20 54  65 78 74 0d 04 ce 16 46  |   T = Text....F|
00000bb0  53 3a 20 20 20 20 20 20  20 41 20 3d 20 41 44 46  |S:       A = ADF|
00000bc0  53 0d 04 d8 15 20 20 20  20 20 20 20 20 20 20 43  |S....          C|
00000bd0  20 3d 20 43 46 53 0d 04  e2 15 20 20 20 20 20 20  | = CFS....      |
00000be0  20 20 20 20 44 20 3d 20  44 46 53 0d 04 ec 1a 20  |    D = DFS.... |
00000bf0  20 20 20 20 20 20 20 20  20 54 20 3d 20 54 65 6c  |         T = Tel|
00000c00  65 74 65 78 74 0d 04 f6  16 20 20 20 20 20 20 20  |etext....       |
00000c10  20 20 20 49 20 3d 20 49  45 45 45 0d 05 00 17 48  |   I = IEEE....H|
00000c20  65 6c 70 3a 20 20 20 20  20 48 65 6c 70 20 74 65  |elp:     Help te|
00000c30  78 74 0d 05 0a 14 dc 20  39 2c 31 2c 4d 61 72 63  |xt..... 9,1,Marc|
00000c40  68 2c 31 39 39 31 0d 05  0b 08 dc 20 31 39 0d 05  |h,1991..... 19..|
00000c50  15 13 dc 20 4d 61 6b 65  20 46 6f 75 72 2c 2e 2e  |... Make Four,..|
00000c60  2e 0d 05 16 2a dc 20 50  41 47 45 3d 26 31 39 30  |....*. PAGE=&190|
00000c70  30 3a 43 48 41 49 4e 22  4d 61 6b 65 34 22 7c 4d  |0:CHAIN"Make4"|M|
00000c80  2c 42 43 4d 50 2c 42 2c  41 44 54 0d 05 17 36 dc  |,BCMP,B,ADT...6.|
00000c90  20 54 68 69 73 20 69 73  20 61 20 72 65 61 6c 20  | This is a real |
00000ca0  70 61 69 6e 20 2d 2d 20  49 27 76 65 20 6f 6e 6c  |pain -- I've onl|
00000cb0  79 20 62 65 61 74 65 6e  20 69 74 20 6f 6e 63 65  |y beaten it once|
00000cc0  2e 0d 05 18 1e dc 20 42  75 67 73 3a 20 41 64 76  |...... Bugs: Adv|
00000cd0  61 6e 63 65 64 20 54 72  61 63 65 2c 2e 2e 2e 0d  |anced Trace,....|
00000ce0  05 19 2c dc 20 50 41 47  45 3d 26 31 39 30 30 3a  |..,. PAGE=&1900:|
00000cf0  43 48 41 49 4e 22 41 64  76 54 72 63 65 22 7c 4d  |CHAIN"AdvTrce"|M|
00000d00  2c 42 43 4d 50 2c 42 2c  41 44 54 0d 05 1a 30 dc  |,BCMP,B,ADT...0.|
00000d10  20 54 68 65 20 61 64 76  61 6e 63 65 64 20 6c 69  | The advanced li|
00000d20  6e 65 20 74 72 61 63 65  72 20 66 6f 72 20 74 68  |ne tracer for th|
00000d30  65 20 42 42 43 20 4d 69  63 72 6f 0d 05 1b 1d dc  |e BBC Micro.....|
00000d40  20 42 75 67 73 3a 20 45  72 72 6f 72 20 68 61 6e  | Bugs: Error han|
00000d50  64 6c 65 72 2c 2e 2e 2e  0d 05 1c 2c dc 20 50 41  |dler,......,. PA|
00000d60  47 45 3d 26 31 39 30 30  3a 43 48 41 49 4e 22 45  |GE=&1900:CHAIN"E|
00000d70  52 52 48 64 6c 72 22 7c  4d 2c 42 43 4d 50 2c 42  |RRHdlr"|M,BCMP,B|
00000d80  2c 41 44 54 0d 05 1d 39  dc 20 41 6e 20 65 78 61  |,ADT...9. An exa|
00000d90  6d 70 6c 65 20 6f 66 20  68 6f 77 20 74 6f 20 75  |mple of how to u|
00000da0  73 65 20 74 68 65 20 69  6d 70 72 6f 76 65 64 20  |se the improved |
00000db0  65 72 72 6f 72 20 68 61  6e 64 6c 65 72 0d 05 1e  |error handler...|
00000dc0  1b dc 20 50 72 6f 64 75  63 74 20 6f 66 20 50 72  |.. Product of Pr|
00000dd0  69 6d 65 73 2c 2e 2e 2e  0d 05 1f 21 dc 20 43 48  |imes,......!. CH|
00000de0  41 49 4e 22 50 72 6f 64  50 72 69 22 7c 4d 2c 42  |AIN"ProdPri"|M,B|
00000df0  43 4d 50 2c 42 2c 41 44  54 0d 05 20 16 dc 20 56  |CMP,B,ADT.. .. V|
00000e00  65 72 79 20 69 6e 74 65  72 65 73 74 69 6e 67 0d  |ery interesting.|
00000e10  05 21 1b dc 20 54 6f 75  63 68 20 50 61 64 20 70  |.!.. Touch Pad p|
00000e20  72 6f 67 72 61 6d 2c 2e  2e 2e 0d 05 22 21 dc 20  |rogram,....."!. |
00000e30  43 48 41 49 4e 22 50 61  64 53 72 63 65 22 7c 4d  |CHAIN"PadSrce"|M|
00000e40  2c 42 43 4d 50 2c 42 2c  41 44 54 0d 05 23 40 dc  |,BCMP,B,ADT..#@.|
00000e50  20 49 66 20 79 6f 75 20  68 61 76 65 20 61 20 54  | If you have a T|
00000e60  6f 75 63 68 20 50 61 64  20 74 68 69 73 20 73 68  |ouch Pad this sh|
00000e70  6f 77 73 20 61 20 62 65  74 74 65 72 20 77 61 79  |ows a better way|
00000e80  20 74 6f 20 75 73 65 20  69 74 2e 0d 05 24 1c dc  | to use it...$..|
00000e90  20 57 6f 72 6b 73 68 65  65 74 20 57 6f 72 6b 2d  | Worksheet Work-|
00000ea0  6f 75 74 2c 2e 2e 2e 0d  05 2e 21 dc 20 43 48 41  |out,......!. CHA|
00000eb0  49 4e 22 57 6f 72 6b 4f  75 74 22 7c 4d 2c 42 43  |IN"WorkOut"|M,BC|
00000ec0  4d 50 2c 42 2c 41 44 54  0d 05 38 3b dc 20 50 72  |MP,B,ADT..8;. Pr|
00000ed0  6f 67 72 61 6d 20 74 6f  20 67 65 6e 65 72 61 74  |ogram to generat|
00000ee0  65 20 77 6f 72 6b 73 68  65 65 74 73 20 66 6f 72  |e worksheets for|
00000ef0  20 73 70 65 6c 6c 69 6e  67 20 70 72 61 63 74 69  | spelling practi|
00000f00  73 65 2e 0d 05 42 1e dc  20 57 6f 72 6b 73 68 65  |se...B.. Workshe|
00000f10  65 74 20 46 69 6c 65 20  6d 61 6b 65 72 2c 2e 2e  |et File maker,..|
00000f20  2e 0d 05 4c 21 dc 20 43  48 41 49 4e 22 4d 61 6b  |...L!. CHAIN"Mak|
00000f30  65 46 69 6c 22 7c 4d 2c  42 43 4d 50 2c 42 2c 41  |eFil"|M,BCMP,B,A|
00000f40  44 54 0d 05 56 3a dc 20  50 72 6f 67 72 61 6d 20  |DT..V:. Program |
00000f50  74 6f 20 63 72 65 61 74  65 20 66 69 6c 65 73 20  |to create files |
00000f60  75 73 65 64 20 62 79 20  74 68 65 20 57 6f 72 6b  |used by the Work|
00000f70  4f 75 74 20 70 72 6f 67  72 61 6d 2e 0d 05 60 21  |Out program...`!|
00000f80  dc 20 57 6f 72 6b 73 68  65 65 74 3a 20 4d 61 67  |. Worksheet: Mag|
00000f90  69 63 45 31 20 74 6f 20  33 2c 2e 2e 2e 0d 05 6a  |icE1 to 3,.....j|
00000fa0  2b dc 20 2a 7c 7c 20 46  6f 72 20 75 73 65 20 77  |+. *|| For use w|
00000fb0  69 74 68 20 57 6f 72 6b  4f 75 74 7c 4d 2c 42 43  |ith WorkOut|M,BC|
00000fc0  4d 50 2c 44 2c 41 44 54  0d 05 74 34 dc 20 54 68  |MP,D,ADT..t4. Th|
00000fd0  72 65 65 20 64 61 74 61  20 66 69 6c 65 73 20 66  |ree data files f|
00000fe0  6f 72 20 70 72 61 63 74  69 63 69 6e 67 20 4d 61  |or practicing Ma|
00000ff0  67 69 63 20 45 20 77 6f  72 64 73 2e 0d 05 7e 21  |gic E words...~!|
00001000  dc 20 57 6f 72 6b 73 68  65 65 74 3a 20 50 6c 75  |. Worksheet: Plu|
00001010  72 61 6c 31 20 74 6f 20  33 2c 2e 2e 2e 0d 05 88  |ral1 to 3,......|
00001020  2b dc 20 2a 7c 7c 20 46  6f 72 20 75 73 65 20 77  |+. *|| For use w|
00001030  69 74 68 20 57 6f 72 6b  4f 75 74 7c 4d 2c 42 43  |ith WorkOut|M,BC|
00001040  4d 50 2c 44 2c 41 44 54  0d 05 92 33 dc 20 54 68  |MP,D,ADT...3. Th|
00001050  72 65 65 20 64 61 74 61  20 66 69 6c 65 73 20 66  |ree data files f|
00001060  6f 72 20 70 72 61 63 74  69 63 69 6e 67 20 50 6c  |or practicing Pl|
00001070  75 72 61 6c 20 77 6f 72  64 73 2e 0d 05 9c 21 dc  |ural words....!.|
00001080  20 57 6f 72 6b 73 68 65  65 74 3a 20 52 70 6c 61  | Worksheet: Rpla|
00001090  63 65 31 20 74 6f 20 33  2c 2e 2e 2e 0d 05 a6 2b  |ce1 to 3,......+|
000010a0  dc 20 2a 7c 7c 20 46 6f  72 20 75 73 65 20 77 69  |. *|| For use wi|
000010b0  74 68 20 57 6f 72 6b 4f  75 74 7c 4d 2c 42 43 4d  |th WorkOut|M,BCM|
000010c0  50 2c 44 2c 41 44 54 0d  05 b0 40 dc 20 54 68 72  |P,D,ADT...@. Thr|
000010d0  65 65 20 64 61 74 61 20  66 69 6c 65 73 20 66 6f  |ee data files fo|
000010e0  72 20 70 72 61 63 74 69  63 69 6e 67 20 72 65 70  |r practicing rep|
000010f0  6c 61 63 69 6e 67 20 76  6f 77 65 6c 73 20 69 6e  |lacing vowels in|
00001100  20 77 6f 72 64 73 2e 0d  05 ba 20 dc 20 46 75 6e  | words.... . Fun|
00001110  63 74 69 6f 6e 20 4b 65  79 20 53 74 72 69 70 20  |ction Key Strip |
00001120  47 65 6e 2c 2e 2e 2e 0d  05 c4 50 dc 20 2a 7c 7c  |Gen,......P. *|||
00001130  54 68 69 73 20 77 6f 6e  27 74 20 77 6f 72 6b 20  |This won't work |
00001140  77 68 65 72 65 20 50 41  47 45 20 69 73 20 6d 6f  |where PAGE is mo|
00001150  72 65 20 74 68 61 6e 20  45 30 30 7c 4d 43 48 41  |re than E00|MCHA|
00001160  49 4e 22 46 75 6e 63 4b  65 79 22 7c 4d 2c 43 4d  |IN"FuncKey"|M,CM|
00001170  50 2c 42 2c 41 44 54 0d  05 ce 32 dc 20 4c 61 73  |P,B,ADT...2. Las|
00001180  74 20 6d 6f 6e 74 68 27  73 20 63 6f 6d 70 72 65  |t month's compre|
00001190  73 73 65 64 20 76 65 72  73 69 6f 6e 20 64 69 64  |ssed version did|
000011a0  6e 27 74 20 77 6f 72 6b  21 0d 05 d8 1d dc 20 46  |n't work!..... F|
000011b0  75 6e 63 74 69 6f 6e 20  4b 65 79 20 43 6f 6c 6f  |unction Key Colo|
000011c0  75 72 2c 2e 2e 2e 0d 05  e2 3c dc 20 2a 7c 7c 54  |ur,......<. *||T|
000011d0  68 65 73 65 20 6c 69 6e  65 73 20 6e 65 65 64 20  |hese lines need |
000011e0  74 6f 20 62 65 20 61 64  64 65 64 20 74 6f 20 46  |to be added to F|
000011f0  75 6e 63 4b 65 79 7c 4d  2c 43 4d 50 2c 42 2c 41  |uncKey|M,CMP,B,A|
00001200  44 54 0d 05 ec 24 dc 20  43 6f 6c 6f 75 72 20 61  |DT...$. Colour a|
00001210  6d 65 6e 64 6d 65 6e 74  73 20 66 6f 72 20 46 75  |mendments for Fu|
00001220  6e 63 4b 65 79 2e 0d 05  f6 22 dc 20 52 6f 75 74  |ncKey....". Rout|
00001230  69 6e 65 20 4d 61 74 74  65 72 73 3a 20 44 69 73  |ine Matters: Dis|
00001240  61 62 6c 65 2c 2e 2e 2e  0d 06 00 20 dc 20 43 48  |able,...... . CH|
00001250  41 49 4e 22 52 2e 44 73  62 6c 65 2b 31 22 7c 4d  |AIN"R.Dsble+1"|M|
00001260  2c 45 2c 42 2c 41 44 54  0d 06 0a 28 dc 20 44 69  |,E,B,ADT...(. Di|
00001270  73 61 62 6c 65 20 74 68  65 20 50 6c 75 73 20 31  |sable the Plus 1|
00001280  20 6f 6e 20 74 68 65 20  45 6c 65 63 74 72 6f 6e  | on the Electron|
00001290  0d 06 14 20 dc 20 52 6f  75 74 69 6e 65 20 4d 61  |... . Routine Ma|
000012a0  74 74 65 72 73 3a 20 46  61 64 65 72 2c 2e 2e 2e  |tters: Fader,...|
000012b0  0d 06 1e 1f dc 20 43 48  41 49 4e 22 52 2e 46 61  |..... CHAIN"R.Fa|
000012c0  64 65 72 22 7c 4d 2c 43  4d 2c 42 2c 41 44 54 0d  |der"|M,CM,B,ADT.|
000012d0  06 28 26 dc 20 59 65 74  20 61 6e 6f 74 68 65 72  |.(&. Yet another|
000012e0  20 66 61 64 65 20 72 6f  75 74 69 6e 65 20 28 79  | fade routine (y|
000012f0  61 77 6e 29 2e 0d 06 32  21 dc 20 52 6f 75 74 69  |awn)...2!. Routi|
00001300  6e 65 20 4d 61 74 74 65  72 73 3a 20 53 74 61 76  |ne Matters: Stav|
00001310  65 73 2c 2e 2e 2e 0d 06  3c 22 dc 20 43 48 41 49  |es,.....<". CHAI|
00001320  4e 22 52 2e 53 74 61 76  65 73 22 7c 4d 2c 42 43  |N"R.Staves"|M,BC|
00001330  4d 50 2c 42 2c 41 44 54  0d 06 46 24 dc 20 50 72  |MP,B,ADT..F$. Pr|
00001340  69 6e 74 20 6d 61 6e 75  73 63 72 69 70 74 20 6d  |int manuscript m|
00001350  75 73 69 63 20 73 74 61  76 65 73 21 0d 06 50 22  |usic staves!..P"|
00001360  dc 20 52 6f 75 74 69 6e  65 20 4d 61 74 74 65 72  |. Routine Matter|
00001370  73 3a 20 44 54 50 63 6f  6e 76 2c 2e 2e 2e 0d 06  |s: DTPconv,.....|
00001380  5a 23 dc 20 43 48 41 49  4e 22 52 2e 44 54 50 63  |Z#. CHAIN"R.DTPc|
00001390  6f 6e 76 22 7c 4d 2c 42  43 4d 50 2c 42 2c 41 44  |onv"|M,BCMP,B,AD|
000013a0  54 0d 06 64 30 dc 20 43  6f 6e 76 65 72 74 20 73  |T..d0. Convert s|
000013b0  6f 6d 65 20 44 54 50 20  66 6f 72 6d 61 74 73 20  |ome DTP formats |
000013c0  6f 6e 20 74 68 65 20 42  42 43 20 4d 69 63 72 6f  |on the BBC Micro|
000013d0  2e 0d 06 6e 22 dc 20 52  6f 75 74 69 6e 65 20 4d  |...n". Routine M|
000013e0  61 74 74 65 72 73 3a 20  4b 65 79 77 72 64 73 2c  |atters: Keywrds,|
000013f0  2e 2e 2e 0d 06 78 23 dc  20 43 48 41 49 4e 22 52  |.....x#. CHAIN"R|
00001400  2e 4b 65 79 77 72 64 73  22 7c 4d 2c 42 43 4d 50  |.Keywrds"|M,BCMP|
00001410  2c 42 2c 41 44 54 0d 06  82 22 dc 20 4c 69 73 74  |,B,ADT...". List|
00001420  73 20 74 68 65 20 6b 65  79 77 6f 72 64 73 20 6f  |s the keywords o|
00001430  66 20 42 61 73 69 63 2e  0d 09 06 18 dc 20 43 68  |f Basic...... Ch|
00001440  65 63 6b 73 75 6d 73 20  28 6e 65 77 29 2c 2d 20  |ecksums (new),- |
00001450  0d 09 10 15 dc 20 2a 78  73 7c 4d 2c 42 43 4d 50  |..... *xs|M,BCMP|
00001460  2c 52 2c 41 44 0d 09 1a  3e dc 20 54 68 65 20 31  |,R,AD...>. The 1|
00001470  39 38 39 20 76 65 72 73  69 6f 6e 20 77 68 69 63  |989 version whic|
00001480  68 20 68 61 6e 64 6c 65  73 20 44 41 54 41 20 73  |h handles DATA s|
00001490  74 61 74 65 6d 65 6e 74  73 20 63 6f 72 72 65 63  |tatements correc|
000014a0  74 6c 79 0d 09 24 18 dc  20 43 68 65 63 6b 73 75  |tly..$.. Checksu|
000014b0  6d 73 20 28 6f 6c 64 29  2c 2d 20 0d 09 2e 17 dc  |ms (old),- .....|
000014c0  20 2a 78 73 75 6d 7c 4d  2c 42 43 4d 50 2c 52 2c  | *xsum|M,BCMP,R,|
000014d0  41 44 0d 09 38 62 dc 20  54 68 65 20 31 39 38 38  |AD..8b. The 1988|
000014e0  20 76 65 72 73 69 6f 6e  20 77 69 74 68 20 4c 49  | version with LI|
000014f0  53 54 20 74 79 70 65 20  70 61 72 61 6d 65 74 65  |ST type paramete|
00001500  72 73 20 2d 2d 20 67 69  76 65 73 20 77 72 6f 6e  |rs -- gives wron|
00001510  67 20 63 68 65 63 6b 73  75 6d 73 20 66 6f 72 20  |g checksums for |
00001520  73 6f 6d 65 20 44 41 54  41 20 73 74 61 74 65 6d  |some DATA statem|
00001530  65 6e 74 73 0d ff                                 |ents..|
00001536