Home » Personal collection » Acorn hard disk » misc » misc2 » dcfprogs/Woozbase

dcfprogs/Woozbase

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 hard disk » misc » misc2
Filename: dcfprogs/Woozbase
Read OK:
File size: 0EB5 bytes
Load address: 0000
Exec address: 0000
Duplicates

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

File contents
   10DIMADD(10):MODE6:d=0:IFPAGE<>&E00THEN600
   20PROCcls:PRINTTAB(15,1)"Main Menu.":PRINTTAB(15,2)"==========":PRINTTAB(13,4)"1.New database":PRINTTAB(13,5)"2.Add an entry":PRINTTAB(13,6)"3.Store entrys":PRINTTAB(13,7)"4.Load  entrys":PRINTTAB(13,8)"5.Delete entry":PRINTTAB(13,9)"6.Print header":PRINTTAB(13,10)"7.Print entrys"
   30PRINTTAB(13,11)"8.Print groups":PRINTTAB(13,12)"9.Cassette  *."
   40PRINTTAB(13,13)"A.Quit program":ONERRORREPORT:PRINT" at line ";ERL:END
   50A$=GET$:IFA$="1"THENd=1:?&2000=&20:?&2001=85:PROCnew
   60IFd=0ANDA$<>"4"THENPRINT"No such database":A$=GET$:GOTO20
   70PRINTTAB(13,13)"A.Quit program":IFA$="3"THENPROCout
   80IFA$="2"THENPROCadd
   90IFA$="4"THEND=1:PROCin
  100IFA$="5"THENPROCdel
  110IFA$="6"THENPROChed
  120IFA$="7"THENPROCall
  130IFA$="8"THENPROCgro
  140IFA$="9"THENPROCcat
  150IFA$="A"THENMODE6:END
  160GOTO20
  170DEFPROCcls:VDU28,0,24,39,0,19,1,2,0;0;0;:CLS:PRINTTAB(12,23)"Bytes left:";&6000-(?&2000*256+?&2001)TAB(0,0):VDU28,0,22,39,0:ENDPROC
  180DEFPROCout:M$="SAVE":PROCsure:IFS=FALSETHENENDPROC
  190PROCcls:INPUTTAB(14,12)"Filename";f$:CLS:t$=STR$~(?&2000*256+?&2001)
  200OSCLI"SAVE "+f$+" 2000 "+t$:ENDPROC
  210DEFPROCin:M$="LOAD":PROCsure:IFS=FALSETHENENDPROC
  220PROCcls:INPUTTAB(14,12)"Filename";f$:CLS:OSCLI"LOAD "+f$: n=?&2002:ENDPROC
  230DEFPROCnew:M$="NEW":PROCsure:IFS=FALSETHENENDPROCELSEPROCcls
  240INPUT"Number of fields";n:IFn>7THENPRINT"Too many!":GOTO240
  250IFn<2THENPRINT"Don't be silly!":GOTO240
  260 ?&2002=n:FORlo=0TOn-1:INPUT"Enter field title";t$:FORlob=1TO10:?(&2003+lob+lo*9)=ASC((MID$(t$,lob,1))):NEXT,:ENDPROC
  270DEFPROCadd:PROCcls:IF&6000-(?&2000*256+?&2001)<90THENPRINT"Out of memory":A$=GET$:ENDPROC
  280PRINTTAB(0,0):FORlo=0TOn-1:FORlobb=0TO8:x=&2004+lo*9+lobb
  290VDU?x:NEXT:INPUT;fe$:FORloo=0TO7: ?(?&2000*256+?&2001)=ASC((MID$(fe$,loo,1)))
  300IF?&2001=255THEN?&2001=0:?&2000=?&2000+1ELSE?&2001=?&2001+1
  310NEXT,:IF?&2001=255THEN?&2001=0:?&2000=?&2000+1:ENDPROCELSE?&2001=?&2001+1:ENDPROC
  320DEFPROChed:PROCcls
  330INPUTTAB(0,0)"Database title (max 76 letters)";t$:IFLEN(t$)>76THENPRINT"I said 76 letters maximum!":A$=GET$:GOTO330
  340 x=76-INT(LEN(t$)/2):VDU2:FORxx=0TO80:PRINT"*";:NEXT
  350FORxx=0TOx:PRINT" ";:NEXT:PRINT;t$;:FORxx=0TOx:PRINT" ";:NEXT:FORxx=0TO80:PRINT"*";:NEXT
  360FORxx=0TOn-1:FORx=0TO8: a=&2004+xx*9+x:VDU?a
  370NEXT:PRINT"*";:NEXT
  380FORxx=0TO79:PRINT"*";:NEXT
  390VDU3:ENDPROC
  400DEFPROCcat:PROCcls:ONERRORGOTO410: *.
  410PRINT'"Press any key":A$=GET$:ENDPROC
  420DEFPROCgro
  430PROCcls:PRINT"Print out (Y/N)";:A$=GET$:IFA$<>"Y"ANDA$<>"N"THEN430
  440INPUT'"Which field is the question about";field:IF&2002<fieldORfield<1THENPRINT"Out of range":GOTO440
  450PRINT'"Should the field (C)ontain, or (N)ot    contain the word/phrase (C/N)": C$=GET$:IFC$<>"C"ANDC$<>"N"THEN450
  460INPUT"What is the phase";PHR$:IFA$="Y"THENVDU2
  470FORlo=&2055TO?&2000*256+?&2001-1STEP8*?&2002+1:CON$=""
  480FORlop=lo+8*(field-1)TOlo+8*(field-1)+7
  490CON$=CON$+CHR$(?lop):NEXT:IFINSTR(CON$,PHR$)=0ANDC$="N"THENPROCdisplay(lo)
  500IFINSTR(CON$,PHR$)<>0ANDC$="C"THENPROCdisplay(lo)
  510NEXT:VDU3:PRINT"Press any key":A$=GET$:ENDPROC
  520DEFPROCdisplay(ad):PRINT"*";:FORxxx=adTO((?&2002)-1)*8+adSTEP8
  530FORxzx=xxx+1TOxxx+7:PRINTCHR$(?xzx);:NEXT:PRINT"*";:NEXT:PRINT
  540ENDPROC
  550DEFPROCall
  560PROCcls:PRINT"Print out (Y/N)":A$=GET$:IFA$<>"Y"ANDA$<>"N"THEN560
  570IFA$="Y"THENVDU2
  580FORlo=&2055TO?&2000*256+?&2001-1STEP8*?&2002+1
  590PROCdisplay(lo):NEXT:VDU3:PRINT"Press any key":A$=GET$:ENDPROC
  600VDU19,1,2,0;0;0;:PRINTTAB(17,5)"ERROR!":PRINT'"Woozbase does not work, if PAGE is not"'"&E00. Use the P.R.E.S. E00 program"'"to change PAGE."'''''TAB(15)"PRESS BREAK."
  610GOTO610
  620DEFPROCdel:PROCcls:C=0:INPUT"What should the field be";be$
  630INPUT"Which field should be it";field:IF&2002<fieldORfield<1THENPRINT"Out of range":GOTO630
  640FORlo=&2055TO?&2000*256+?&2001STEP8*?&2002+1:CON$=""
  650FORlop=lo+8*(field-1)TOlo+8*(field-1)+7
  670CON$=CON$+CHR$(?lop):NEXT:IFINSTR(CON$,be$)=1ANDC<11THENADD(C)=lo:C=C+1
  680NEXT:IFC=11THENPRINT'"Too many cards have that field":A$=GET$:ENDPROC
  690IFC=0THENPRINT"That card does not exist.":A$=GET$:ENDPROC
  700IFC=1THENPROCdisplay(ADD(0)):GOTO820
  710FORL=0TOC-1:T$="****"+CHR$(65+L):PRINTSTRING$(7,T$)"*****";
  720PROCdisplay(ADD(L)):NEXT:PRINT"Do you want to delete one of these cards"'TAB(18)"(Y/N)"
  730A$=GET$:IFINSTR("YN",A$)=0THEN730
  740IFA$="N"THENENDPROC
  750PRINT"Which card do you want to delete? (A-";CHR$(64+C)")"
  760A$=GET$:IFASC(A$)<64ORASC(A$)>64+C THEN760
  770C=ASC(A$)-64
  780FORlo=ADD(C)+8*?&2002+1TO?&2000*256+?&2001:?(lo+8*?&2002+1)=?lo:NEXT
  790?&2001=(?&2001-8*?&2002+1)
  800IF?&2001>255-8*?&2002+1THEN?&2000=?&2000-1
  810ENDPROC
  820PROCdisplay(ADD(0)):PRINT"Do you want to delete this card (Y/N)"
  830A$=GET$:IFINSTR("YN",A$)=0THEN830
  840IFA$="N"THENENDPROC
  850C=0:GOTO780
  860DEFPROCsure:PROCcls:PRINTM$": Are you sure? (Y/N)"
  870 A$=GET$:IFA$="Y"THENS=TRUE:ENDPROC
  880IFA$="N"THENS=FALSE:ENDPROC
  890GOTO870

!�ADD(10):�6:d=0:�<>&E00��DXB
��cls:�15,1)"Main Menu.":�15,2)"==========":�13,4)"1.New database":�13,5)"2.Add an entry":�13,6)"3.Store entrys":�13,7)"4.Load  entrys":�13,8)"5.Delete entry":�13,9)"6.Print header":�13,10)"7.Print entrys"
5�13,11)"8.Print groups":�13,12)"9.Cassette  *."
(1�13,13)"A.Quit program":�:�" at line ";�:�
2.A$=�:�A$="1"�d=1:?&2000=&20:?&2001=85:�new
</�d=0�A$<>"4"��"No such database":A$=�:�TT@
F)�13,13)"A.Quit program":�A$="3"��out
P�A$="2"��add
Z�A$="4"�D=1:�in
d�A$="5"��del
n�A$="6"��hed
x�A$="7"��all
��A$="8"��gro
��A$="9"��cat
��A$="A"��6:�
�	�TT@
�l��cls:�28,0,24,39,0,19,1,2,0;0;0;:�:�12,23)"Bytes left:";&6000-(?&2000*256+?&2001)�0,0):�28,0,22,39,0:�
� ��out:M$="SAVE":�sure:�S=���
�9�cls:�14,12)"Filename";f$:�:t$=�~(?&2000*256+?&2001)
��"SAVE "+f$+" 2000 "+t$:�
���in:M$="LOAD":�sure:�S=���
�8�cls:�14,12)"Filename";f$:�:�"LOAD "+f$: n=?&2002:�
�$��new:M$="NEW":�sure:�S=����cls
�1�"Number of fields";n:�n>7��"Too many!":�dp@
�!�n<2��"Don't be silly!":�dp@
` ?&2002=n:�lo=0�n-1:�"Enter field title";t$:�lob=1�10:?(&2003+lob+lo*9)=�((�t$,lob,1))):�,:�
D��add:�cls:�&6000-(?&2000*256+?&2001)<90��"Out of memory":A$=�:�
0�0,0):�lo=0�n-1:�lobb=0�8:x=&2004+lo*9+lobb
"?�?x:�:�;fe$:�loo=0�7: ?(?&2000*256+?&2001)=�((�fe$,loo,1)))
,8�?&2001=255�?&2001=0:?&2000=?&2000+1�?&2001=?&2001+1
6?�,:�?&2001=255�?&2001=0:?&2000=?&2000+1:�?&2001=?&2001+1:�
@��hed:�cls
Ja�0,0)"Database title (max 76 letters)";t$:�(t$)>76��"I said 76 letters maximum!":A$=�:�DJA
T( x=76-�(�(t$)/2):�2:�xx=0�80:�"*";:�
^:�xx=0�x:�" ";:�:�;t$;:�xx=0�x:�" ";:�:�xx=0�80:�"*";:�
h(�xx=0�n-1:�x=0�8: a=&2004+xx*9+x:�?a
r
�:�"*";:�
|�xx=0�79:�"*";:�
��3:�
���cat:�cls:��tZA: *.
��'"Press any key":A$=�:�
�	��gro
�7�cls:�"Print out (Y/N)";:A$=�:�A$<>"Y"�A$<>"N"��tnA
�Z�'"Which field is the question about";field:�&2002<field�field<1��"Out of range":�txA
�i�'"Should the field (C)ontain, or (N)ot    contain the word/phrase (C/N)": C$=�:�C$<>"C"�C$<>"N"��dBA
�(�"What is the phase";PHR$:�A$="Y"��2
�4�lo=&2055�?&2000*256+?&2001-1�8*?&2002+1:CON$=""
�(�lop=lo+8*(field-1)�lo+8*(field-1)+7
�:CON$=CON$+�(?lop):�:�CON$,PHR$)=0�C$="N"��display(lo)
�'�CON$,PHR$)<>0�C$="C"��display(lo)
� �:�3:�"Press any key":A$=�:�
3��display(ad):�"*";:�xxx=ad�((?&2002)-1)*8+ad�8
*�xzx=xxx+1�xxx+7:�(?xzx);:�:�"*";:�:�
�
&	��all
06�cls:�"Print out (Y/N)":A$=�:�A$<>"Y"�A$<>"N"��TpB
:�A$="Y"��2
D,�lo=&2055�?&2000*256+?&2001-1�8*?&2002+1
N-�display(lo):�:�3:�"Press any key":A$=�:�
X��19,1,2,0;0;0;:�17,5)"ERROR!":�'"Woozbase does not work, if PAGE is not"'"&E00. Use the P.R.E.S. E00 program"'"to change PAGE."'''''�15)"PRESS BREAK."
b	�DbB
l2��del:�cls:C=0:�"What should the field be";be$
vP�"Which field should be it";field:�&2002<field�field<1��"Out of range":�DvB
�2�lo=&2055�?&2000*256+?&2001�8*?&2002+1:CON$=""
�(�lop=lo+8*(field-1)�lo+8*(field-1)+7
�:CON$=CON$+�(?lop):�:�CON$,be$)=1�C<11�ADD(C)=lo:C=C+1
�5�:�C=11��'"Too many cards have that field":A$=�:�
�,�C=0��"That card does not exist.":A$=�:�
��C=1��display(ADD(0)):�TtC
�.�L=0�C-1:T$="****"+�(65+L):��7,T$)"*****";
�N�display(ADD(L)):�:�"Do you want to delete one of these cards"'�18)"(Y/N)"
�A$=�:�"YN",A$)=0��dZB
�
�A$="N"��
�7�"Which card do you want to delete? (A-";�(64+C)")"
�#A$=�:�(A$)<64��(A$)>64+C ��dxB
C=�(A$)-64
B�lo=ADD(C)+8*?&2002+1�?&2000*256+?&2001:?(lo+8*?&2002+1)=?lo:�
?&2001=(?&2001-8*?&2002+1)
 *�?&2001>255-8*?&2002+1�?&2000=?&2000-1
*�
4=�display(ADD(0)):�"Do you want to delete this card (Y/N)"
>A$=�:�"YN",A$)=0��T~C
H
�A$="N"��
R
C=0:�TLC
\*��sure:�cls:�M$": Are you sure? (Y/N)"
f A$=�:�A$="Y"�S=�:�
p�A$="N"�S=�:�
z	�DfC
�
00000000  0d 00 0a 21 de 41 44 44  28 31 30 29 3a eb 36 3a  |...!.ADD(10):.6:|
00000010  64 3d 30 3a e7 90 3c 3e  26 45 30 30 8c 8d 44 58  |d=0:..<>&E00..DX|
00000020  42 0d 00 14 d9 f2 63 6c  73 3a f1 8a 31 35 2c 31  |B.....cls:..15,1|
00000030  29 22 4d 61 69 6e 20 4d  65 6e 75 2e 22 3a f1 8a  |)"Main Menu.":..|
00000040  31 35 2c 32 29 22 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |15,2)"==========|
00000050  22 3a f1 8a 31 33 2c 34  29 22 31 2e 4e 65 77 20  |":..13,4)"1.New |
00000060  64 61 74 61 62 61 73 65  22 3a f1 8a 31 33 2c 35  |database":..13,5|
00000070  29 22 32 2e 41 64 64 20  61 6e 20 65 6e 74 72 79  |)"2.Add an entry|
00000080  22 3a f1 8a 31 33 2c 36  29 22 33 2e 53 74 6f 72  |":..13,6)"3.Stor|
00000090  65 20 65 6e 74 72 79 73  22 3a f1 8a 31 33 2c 37  |e entrys":..13,7|
000000a0  29 22 34 2e 4c 6f 61 64  20 20 65 6e 74 72 79 73  |)"4.Load  entrys|
000000b0  22 3a f1 8a 31 33 2c 38  29 22 35 2e 44 65 6c 65  |":..13,8)"5.Dele|
000000c0  74 65 20 65 6e 74 72 79  22 3a f1 8a 31 33 2c 39  |te entry":..13,9|
000000d0  29 22 36 2e 50 72 69 6e  74 20 68 65 61 64 65 72  |)"6.Print header|
000000e0  22 3a f1 8a 31 33 2c 31  30 29 22 37 2e 50 72 69  |":..13,10)"7.Pri|
000000f0  6e 74 20 65 6e 74 72 79  73 22 0d 00 1e 35 f1 8a  |nt entrys"...5..|
00000100  31 33 2c 31 31 29 22 38  2e 50 72 69 6e 74 20 67  |13,11)"8.Print g|
00000110  72 6f 75 70 73 22 3a f1  8a 31 33 2c 31 32 29 22  |roups":..13,12)"|
00000120  39 2e 43 61 73 73 65 74  74 65 20 20 2a 2e 22 0d  |9.Cassette  *.".|
00000130  00 28 31 f1 8a 31 33 2c  31 33 29 22 41 2e 51 75  |.(1..13,13)"A.Qu|
00000140  69 74 20 70 72 6f 67 72  61 6d 22 3a ee 85 f6 3a  |it program":...:|
00000150  f1 22 20 61 74 20 6c 69  6e 65 20 22 3b 9e 3a e0  |." at line ";.:.|
00000160  0d 00 32 2e 41 24 3d be  3a e7 41 24 3d 22 31 22  |..2.A$=.:.A$="1"|
00000170  8c 64 3d 31 3a 3f 26 32  30 30 30 3d 26 32 30 3a  |.d=1:?&2000=&20:|
00000180  3f 26 32 30 30 31 3d 38  35 3a f2 6e 65 77 0d 00  |?&2001=85:.new..|
00000190  3c 2f e7 64 3d 30 80 41  24 3c 3e 22 34 22 8c f1  |</.d=0.A$<>"4"..|
000001a0  22 4e 6f 20 73 75 63 68  20 64 61 74 61 62 61 73  |"No such databas|
000001b0  65 22 3a 41 24 3d be 3a  e5 8d 54 54 40 0d 00 46  |e":A$=.:..TT@..F|
000001c0  29 f1 8a 31 33 2c 31 33  29 22 41 2e 51 75 69 74  |)..13,13)"A.Quit|
000001d0  20 70 72 6f 67 72 61 6d  22 3a e7 41 24 3d 22 33  | program":.A$="3|
000001e0  22 8c f2 6f 75 74 0d 00  50 10 e7 41 24 3d 22 32  |"..out..P..A$="2|
000001f0  22 8c f2 61 64 64 0d 00  5a 13 e7 41 24 3d 22 34  |"..add..Z..A$="4|
00000200  22 8c 44 3d 31 3a f2 69  6e 0d 00 64 10 e7 41 24  |".D=1:.in..d..A$|
00000210  3d 22 35 22 8c f2 64 65  6c 0d 00 6e 10 e7 41 24  |="5"..del..n..A$|
00000220  3d 22 36 22 8c f2 68 65  64 0d 00 78 10 e7 41 24  |="6"..hed..x..A$|
00000230  3d 22 37 22 8c f2 61 6c  6c 0d 00 82 10 e7 41 24  |="7"..all.....A$|
00000240  3d 22 38 22 8c f2 67 72  6f 0d 00 8c 10 e7 41 24  |="8"..gro.....A$|
00000250  3d 22 39 22 8c f2 63 61  74 0d 00 96 10 e7 41 24  |="9"..cat.....A$|
00000260  3d 22 41 22 8c eb 36 3a  e0 0d 00 a0 09 e5 8d 54  |="A"..6:.......T|
00000270  54 40 0d 00 aa 6c dd f2  63 6c 73 3a ef 32 38 2c  |T@...l..cls:.28,|
00000280  30 2c 32 34 2c 33 39 2c  30 2c 31 39 2c 31 2c 32  |0,24,39,0,19,1,2|
00000290  2c 30 3b 30 3b 30 3b 3a  db 3a f1 8a 31 32 2c 32  |,0;0;0;:.:..12,2|
000002a0  33 29 22 42 79 74 65 73  20 6c 65 66 74 3a 22 3b  |3)"Bytes left:";|
000002b0  26 36 30 30 30 2d 28 3f  26 32 30 30 30 2a 32 35  |&6000-(?&2000*25|
000002c0  36 2b 3f 26 32 30 30 31  29 8a 30 2c 30 29 3a ef  |6+?&2001).0,0):.|
000002d0  32 38 2c 30 2c 32 32 2c  33 39 2c 30 3a e1 0d 00  |28,0,22,39,0:...|
000002e0  b4 20 dd f2 6f 75 74 3a  4d 24 3d 22 53 41 56 45  |. ..out:M$="SAVE|
000002f0  22 3a f2 73 75 72 65 3a  e7 53 3d a3 8c e1 0d 00  |":.sure:.S=.....|
00000300  be 39 f2 63 6c 73 3a e8  8a 31 34 2c 31 32 29 22  |.9.cls:..14,12)"|
00000310  46 69 6c 65 6e 61 6d 65  22 3b 66 24 3a db 3a 74  |Filename";f$:.:t|
00000320  24 3d c3 7e 28 3f 26 32  30 30 30 2a 32 35 36 2b  |$=.~(?&2000*256+|
00000330  3f 26 32 30 30 31 29 0d  00 c8 1d ff 22 53 41 56  |?&2001)....."SAV|
00000340  45 20 22 2b 66 24 2b 22  20 32 30 30 30 20 22 2b  |E "+f$+" 2000 "+|
00000350  74 24 3a e1 0d 00 d2 1f  dd f2 69 6e 3a 4d 24 3d  |t$:.......in:M$=|
00000360  22 4c 4f 41 44 22 3a f2  73 75 72 65 3a e7 53 3d  |"LOAD":.sure:.S=|
00000370  a3 8c e1 0d 00 dc 38 f2  63 6c 73 3a e8 8a 31 34  |......8.cls:..14|
00000380  2c 31 32 29 22 46 69 6c  65 6e 61 6d 65 22 3b 66  |,12)"Filename";f|
00000390  24 3a db 3a ff 22 4c 4f  41 44 20 22 2b 66 24 3a  |$:.:."LOAD "+f$:|
000003a0  20 6e 3d 3f 26 32 30 30  32 3a e1 0d 00 e6 24 dd  | n=?&2002:....$.|
000003b0  f2 6e 65 77 3a 4d 24 3d  22 4e 45 57 22 3a f2 73  |.new:M$="NEW":.s|
000003c0  75 72 65 3a e7 53 3d a3  8c e1 8b f2 63 6c 73 0d  |ure:.S=.....cls.|
000003d0  00 f0 31 e8 22 4e 75 6d  62 65 72 20 6f 66 20 66  |..1."Number of f|
000003e0  69 65 6c 64 73 22 3b 6e  3a e7 6e 3e 37 8c f1 22  |ields";n:.n>7.."|
000003f0  54 6f 6f 20 6d 61 6e 79  21 22 3a e5 8d 64 70 40  |Too many!":..dp@|
00000400  0d 00 fa 21 e7 6e 3c 32  8c f1 22 44 6f 6e 27 74  |...!.n<2.."Don't|
00000410  20 62 65 20 73 69 6c 6c  79 21 22 3a e5 8d 64 70  | be silly!":..dp|
00000420  40 0d 01 04 60 20 3f 26  32 30 30 32 3d 6e 3a e3  |@...` ?&2002=n:.|
00000430  6c 6f 3d 30 b8 6e 2d 31  3a e8 22 45 6e 74 65 72  |lo=0.n-1:."Enter|
00000440  20 66 69 65 6c 64 20 74  69 74 6c 65 22 3b 74 24  | field title";t$|
00000450  3a e3 6c 6f 62 3d 31 b8  31 30 3a 3f 28 26 32 30  |:.lob=1.10:?(&20|
00000460  30 33 2b 6c 6f 62 2b 6c  6f 2a 39 29 3d 97 28 28  |03+lob+lo*9)=.((|
00000470  c1 74 24 2c 6c 6f 62 2c  31 29 29 29 3a ed 2c 3a  |.t$,lob,1))):.,:|
00000480  e1 0d 01 0e 44 dd f2 61  64 64 3a f2 63 6c 73 3a  |....D..add:.cls:|
00000490  e7 26 36 30 30 30 2d 28  3f 26 32 30 30 30 2a 32  |.&6000-(?&2000*2|
000004a0  35 36 2b 3f 26 32 30 30  31 29 3c 39 30 8c f1 22  |56+?&2001)<90.."|
000004b0  4f 75 74 20 6f 66 20 6d  65 6d 6f 72 79 22 3a 41  |Out of memory":A|
000004c0  24 3d be 3a e1 0d 01 18  30 f1 8a 30 2c 30 29 3a  |$=.:....0..0,0):|
000004d0  e3 6c 6f 3d 30 b8 6e 2d  31 3a e3 6c 6f 62 62 3d  |.lo=0.n-1:.lobb=|
000004e0  30 b8 38 3a 78 3d 26 32  30 30 34 2b 6c 6f 2a 39  |0.8:x=&2004+lo*9|
000004f0  2b 6c 6f 62 62 0d 01 22  3f ef 3f 78 3a ed 3a e8  |+lobb.."?.?x:.:.|
00000500  3b 66 65 24 3a e3 6c 6f  6f 3d 30 b8 37 3a 20 3f  |;fe$:.loo=0.7: ?|
00000510  28 3f 26 32 30 30 30 2a  32 35 36 2b 3f 26 32 30  |(?&2000*256+?&20|
00000520  30 31 29 3d 97 28 28 c1  66 65 24 2c 6c 6f 6f 2c  |01)=.((.fe$,loo,|
00000530  31 29 29 29 0d 01 2c 38  e7 3f 26 32 30 30 31 3d  |1)))..,8.?&2001=|
00000540  32 35 35 8c 3f 26 32 30  30 31 3d 30 3a 3f 26 32  |255.?&2001=0:?&2|
00000550  30 30 30 3d 3f 26 32 30  30 30 2b 31 8b 3f 26 32  |000=?&2000+1.?&2|
00000560  30 30 31 3d 3f 26 32 30  30 31 2b 31 0d 01 36 3f  |001=?&2001+1..6?|
00000570  ed 2c 3a e7 3f 26 32 30  30 31 3d 32 35 35 8c 3f  |.,:.?&2001=255.?|
00000580  26 32 30 30 31 3d 30 3a  3f 26 32 30 30 30 3d 3f  |&2001=0:?&2000=?|
00000590  26 32 30 30 30 2b 31 3a  e1 8b 3f 26 32 30 30 31  |&2000+1:..?&2001|
000005a0  3d 3f 26 32 30 30 31 2b  31 3a e1 0d 01 40 0e dd  |=?&2001+1:...@..|
000005b0  f2 68 65 64 3a f2 63 6c  73 0d 01 4a 61 e8 8a 30  |.hed:.cls..Ja..0|
000005c0  2c 30 29 22 44 61 74 61  62 61 73 65 20 74 69 74  |,0)"Database tit|
000005d0  6c 65 20 28 6d 61 78 20  37 36 20 6c 65 74 74 65  |le (max 76 lette|
000005e0  72 73 29 22 3b 74 24 3a  e7 a9 28 74 24 29 3e 37  |rs)";t$:..(t$)>7|
000005f0  36 8c f1 22 49 20 73 61  69 64 20 37 36 20 6c 65  |6.."I said 76 le|
00000600  74 74 65 72 73 20 6d 61  78 69 6d 75 6d 21 22 3a  |tters maximum!":|
00000610  41 24 3d be 3a e5 8d 44  4a 41 0d 01 54 28 20 78  |A$=.:..DJA..T( x|
00000620  3d 37 36 2d a8 28 a9 28  74 24 29 2f 32 29 3a ef  |=76-.(.(t$)/2):.|
00000630  32 3a e3 78 78 3d 30 b8  38 30 3a f1 22 2a 22 3b  |2:.xx=0.80:."*";|
00000640  3a ed 0d 01 5e 3a e3 78  78 3d 30 b8 78 3a f1 22  |:...^:.xx=0.x:."|
00000650  20 22 3b 3a ed 3a f1 3b  74 24 3b 3a e3 78 78 3d  | ";:.:.;t$;:.xx=|
00000660  30 b8 78 3a f1 22 20 22  3b 3a ed 3a e3 78 78 3d  |0.x:." ";:.:.xx=|
00000670  30 b8 38 30 3a f1 22 2a  22 3b 3a ed 0d 01 68 28  |0.80:."*";:...h(|
00000680  e3 78 78 3d 30 b8 6e 2d  31 3a e3 78 3d 30 b8 38  |.xx=0.n-1:.x=0.8|
00000690  3a 20 61 3d 26 32 30 30  34 2b 78 78 2a 39 2b 78  |: a=&2004+xx*9+x|
000006a0  3a ef 3f 61 0d 01 72 0d  ed 3a f1 22 2a 22 3b 3a  |:.?a..r..:."*";:|
000006b0  ed 0d 01 7c 14 e3 78 78  3d 30 b8 37 39 3a f1 22  |...|..xx=0.79:."|
000006c0  2a 22 3b 3a ed 0d 01 86  08 ef 33 3a e1 0d 01 90  |*";:......3:....|
000006d0  1a dd f2 63 61 74 3a f2  63 6c 73 3a ee 85 e5 8d  |...cat:.cls:....|
000006e0  74 5a 41 3a 20 2a 2e 0d  01 9a 1c f1 27 22 50 72  |tZA: *......'"Pr|
000006f0  65 73 73 20 61 6e 79 20  6b 65 79 22 3a 41 24 3d  |ess any key":A$=|
00000700  be 3a e1 0d 01 a4 09 dd  f2 67 72 6f 0d 01 ae 37  |.:.......gro...7|
00000710  f2 63 6c 73 3a f1 22 50  72 69 6e 74 20 6f 75 74  |.cls:."Print out|
00000720  20 28 59 2f 4e 29 22 3b  3a 41 24 3d be 3a e7 41  | (Y/N)";:A$=.:.A|
00000730  24 3c 3e 22 59 22 80 41  24 3c 3e 22 4e 22 8c 8d  |$<>"Y".A$<>"N"..|
00000740  74 6e 41 0d 01 b8 5a e8  27 22 57 68 69 63 68 20  |tnA...Z.'"Which |
00000750  66 69 65 6c 64 20 69 73  20 74 68 65 20 71 75 65  |field is the que|
00000760  73 74 69 6f 6e 20 61 62  6f 75 74 22 3b 66 69 65  |stion about";fie|
00000770  6c 64 3a e7 26 32 30 30  32 3c 66 69 65 6c 64 84  |ld:.&2002<field.|
00000780  66 69 65 6c 64 3c 31 8c  f1 22 4f 75 74 20 6f 66  |field<1.."Out of|
00000790  20 72 61 6e 67 65 22 3a  e5 8d 74 78 41 0d 01 c2  | range":..txA...|
000007a0  69 f1 27 22 53 68 6f 75  6c 64 20 74 68 65 20 66  |i.'"Should the f|
000007b0  69 65 6c 64 20 28 43 29  6f 6e 74 61 69 6e 2c 20  |ield (C)ontain, |
000007c0  6f 72 20 28 4e 29 6f 74  20 20 20 20 63 6f 6e 74  |or (N)ot    cont|
000007d0  61 69 6e 20 74 68 65 20  77 6f 72 64 2f 70 68 72  |ain the word/phr|
000007e0  61 73 65 20 28 43 2f 4e  29 22 3a 20 43 24 3d be  |ase (C/N)": C$=.|
000007f0  3a e7 43 24 3c 3e 22 43  22 80 43 24 3c 3e 22 4e  |:.C$<>"C".C$<>"N|
00000800  22 8c 8d 64 42 41 0d 01  cc 28 e8 22 57 68 61 74  |"..dBA...(."What|
00000810  20 69 73 20 74 68 65 20  70 68 61 73 65 22 3b 50  | is the phase";P|
00000820  48 52 24 3a e7 41 24 3d  22 59 22 8c ef 32 0d 01  |HR$:.A$="Y"..2..|
00000830  d6 34 e3 6c 6f 3d 26 32  30 35 35 b8 3f 26 32 30  |.4.lo=&2055.?&20|
00000840  30 30 2a 32 35 36 2b 3f  26 32 30 30 31 2d 31 88  |00*256+?&2001-1.|
00000850  38 2a 3f 26 32 30 30 32  2b 31 3a 43 4f 4e 24 3d  |8*?&2002+1:CON$=|
00000860  22 22 0d 01 e0 28 e3 6c  6f 70 3d 6c 6f 2b 38 2a  |""...(.lop=lo+8*|
00000870  28 66 69 65 6c 64 2d 31  29 b8 6c 6f 2b 38 2a 28  |(field-1).lo+8*(|
00000880  66 69 65 6c 64 2d 31 29  2b 37 0d 01 ea 3a 43 4f  |field-1)+7...:CO|
00000890  4e 24 3d 43 4f 4e 24 2b  bd 28 3f 6c 6f 70 29 3a  |N$=CON$+.(?lop):|
000008a0  ed 3a e7 a7 43 4f 4e 24  2c 50 48 52 24 29 3d 30  |.:..CON$,PHR$)=0|
000008b0  80 43 24 3d 22 4e 22 8c  f2 64 69 73 70 6c 61 79  |.C$="N"..display|
000008c0  28 6c 6f 29 0d 01 f4 27  e7 a7 43 4f 4e 24 2c 50  |(lo)...'..CON$,P|
000008d0  48 52 24 29 3c 3e 30 80  43 24 3d 22 43 22 8c f2  |HR$)<>0.C$="C"..|
000008e0  64 69 73 70 6c 61 79 28  6c 6f 29 0d 01 fe 20 ed  |display(lo)... .|
000008f0  3a ef 33 3a f1 22 50 72  65 73 73 20 61 6e 79 20  |:.3:."Press any |
00000900  6b 65 79 22 3a 41 24 3d  be 3a e1 0d 02 08 33 dd  |key":A$=.:....3.|
00000910  f2 64 69 73 70 6c 61 79  28 61 64 29 3a f1 22 2a  |.display(ad):."*|
00000920  22 3b 3a e3 78 78 78 3d  61 64 b8 28 28 3f 26 32  |";:.xxx=ad.((?&2|
00000930  30 30 32 29 2d 31 29 2a  38 2b 61 64 88 38 0d 02  |002)-1)*8+ad.8..|
00000940  12 2a e3 78 7a 78 3d 78  78 78 2b 31 b8 78 78 78  |.*.xzx=xxx+1.xxx|
00000950  2b 37 3a f1 bd 28 3f 78  7a 78 29 3b 3a ed 3a f1  |+7:..(?xzx);:.:.|
00000960  22 2a 22 3b 3a ed 3a f1  0d 02 1c 05 e1 0d 02 26  |"*";:.:........&|
00000970  09 dd f2 61 6c 6c 0d 02  30 36 f2 63 6c 73 3a f1  |...all..06.cls:.|
00000980  22 50 72 69 6e 74 20 6f  75 74 20 28 59 2f 4e 29  |"Print out (Y/N)|
00000990  22 3a 41 24 3d be 3a e7  41 24 3c 3e 22 59 22 80  |":A$=.:.A$<>"Y".|
000009a0  41 24 3c 3e 22 4e 22 8c  8d 54 70 42 0d 02 3a 0e  |A$<>"N"..TpB..:.|
000009b0  e7 41 24 3d 22 59 22 8c  ef 32 0d 02 44 2c e3 6c  |.A$="Y"..2..D,.l|
000009c0  6f 3d 26 32 30 35 35 b8  3f 26 32 30 30 30 2a 32  |o=&2055.?&2000*2|
000009d0  35 36 2b 3f 26 32 30 30  31 2d 31 88 38 2a 3f 26  |56+?&2001-1.8*?&|
000009e0  32 30 30 32 2b 31 0d 02  4e 2d f2 64 69 73 70 6c  |2002+1..N-.displ|
000009f0  61 79 28 6c 6f 29 3a ed  3a ef 33 3a f1 22 50 72  |ay(lo):.:.3:."Pr|
00000a00  65 73 73 20 61 6e 79 20  6b 65 79 22 3a 41 24 3d  |ess any key":A$=|
00000a10  be 3a e1 0d 02 58 9b ef  31 39 2c 31 2c 32 2c 30  |.:...X..19,1,2,0|
00000a20  3b 30 3b 30 3b 3a f1 8a  31 37 2c 35 29 22 45 52  |;0;0;:..17,5)"ER|
00000a30  52 4f 52 21 22 3a f1 27  22 57 6f 6f 7a 62 61 73  |ROR!":.'"Woozbas|
00000a40  65 20 64 6f 65 73 20 6e  6f 74 20 77 6f 72 6b 2c  |e does not work,|
00000a50  20 69 66 20 50 41 47 45  20 69 73 20 6e 6f 74 22  | if PAGE is not"|
00000a60  27 22 26 45 30 30 2e 20  55 73 65 20 74 68 65 20  |'"&E00. Use the |
00000a70  50 2e 52 2e 45 2e 53 2e  20 45 30 30 20 70 72 6f  |P.R.E.S. E00 pro|
00000a80  67 72 61 6d 22 27 22 74  6f 20 63 68 61 6e 67 65  |gram"'"to change|
00000a90  20 50 41 47 45 2e 22 27  27 27 27 27 8a 31 35 29  | PAGE."'''''.15)|
00000aa0  22 50 52 45 53 53 20 42  52 45 41 4b 2e 22 0d 02  |"PRESS BREAK."..|
00000ab0  62 09 e5 8d 44 62 42 0d  02 6c 32 dd f2 64 65 6c  |b...DbB..l2..del|
00000ac0  3a f2 63 6c 73 3a 43 3d  30 3a e8 22 57 68 61 74  |:.cls:C=0:."What|
00000ad0  20 73 68 6f 75 6c 64 20  74 68 65 20 66 69 65 6c  | should the fiel|
00000ae0  64 20 62 65 22 3b 62 65  24 0d 02 76 50 e8 22 57  |d be";be$..vP."W|
00000af0  68 69 63 68 20 66 69 65  6c 64 20 73 68 6f 75 6c  |hich field shoul|
00000b00  64 20 62 65 20 69 74 22  3b 66 69 65 6c 64 3a e7  |d be it";field:.|
00000b10  26 32 30 30 32 3c 66 69  65 6c 64 84 66 69 65 6c  |&2002<field.fiel|
00000b20  64 3c 31 8c f1 22 4f 75  74 20 6f 66 20 72 61 6e  |d<1.."Out of ran|
00000b30  67 65 22 3a e5 8d 44 76  42 0d 02 80 32 e3 6c 6f  |ge":..DvB...2.lo|
00000b40  3d 26 32 30 35 35 b8 3f  26 32 30 30 30 2a 32 35  |=&2055.?&2000*25|
00000b50  36 2b 3f 26 32 30 30 31  88 38 2a 3f 26 32 30 30  |6+?&2001.8*?&200|
00000b60  32 2b 31 3a 43 4f 4e 24  3d 22 22 0d 02 8a 28 e3  |2+1:CON$=""...(.|
00000b70  6c 6f 70 3d 6c 6f 2b 38  2a 28 66 69 65 6c 64 2d  |lop=lo+8*(field-|
00000b80  31 29 b8 6c 6f 2b 38 2a  28 66 69 65 6c 64 2d 31  |1).lo+8*(field-1|
00000b90  29 2b 37 0d 02 9e 3a 43  4f 4e 24 3d 43 4f 4e 24  |)+7...:CON$=CON$|
00000ba0  2b bd 28 3f 6c 6f 70 29  3a ed 3a e7 a7 43 4f 4e  |+.(?lop):.:..CON|
00000bb0  24 2c 62 65 24 29 3d 31  80 43 3c 31 31 8c 41 44  |$,be$)=1.C<11.AD|
00000bc0  44 28 43 29 3d 6c 6f 3a  43 3d 43 2b 31 0d 02 a8  |D(C)=lo:C=C+1...|
00000bd0  35 ed 3a e7 43 3d 31 31  8c f1 27 22 54 6f 6f 20  |5.:.C=11..'"Too |
00000be0  6d 61 6e 79 20 63 61 72  64 73 20 68 61 76 65 20  |many cards have |
00000bf0  74 68 61 74 20 66 69 65  6c 64 22 3a 41 24 3d be  |that field":A$=.|
00000c00  3a e1 0d 02 b2 2c e7 43  3d 30 8c f1 22 54 68 61  |:....,.C=0.."Tha|
00000c10  74 20 63 61 72 64 20 64  6f 65 73 20 6e 6f 74 20  |t card does not |
00000c20  65 78 69 73 74 2e 22 3a  41 24 3d be 3a e1 0d 02  |exist.":A$=.:...|
00000c30  bc 1f e7 43 3d 31 8c f2  64 69 73 70 6c 61 79 28  |...C=1..display(|
00000c40  41 44 44 28 30 29 29 3a  e5 8d 54 74 43 0d 02 c6  |ADD(0)):..TtC...|
00000c50  2e e3 4c 3d 30 b8 43 2d  31 3a 54 24 3d 22 2a 2a  |..L=0.C-1:T$="**|
00000c60  2a 2a 22 2b bd 28 36 35  2b 4c 29 3a f1 c4 37 2c  |**"+.(65+L):..7,|
00000c70  54 24 29 22 2a 2a 2a 2a  2a 22 3b 0d 02 d0 4e f2  |T$)"*****";...N.|
00000c80  64 69 73 70 6c 61 79 28  41 44 44 28 4c 29 29 3a  |display(ADD(L)):|
00000c90  ed 3a f1 22 44 6f 20 79  6f 75 20 77 61 6e 74 20  |.:."Do you want |
00000ca0  74 6f 20 64 65 6c 65 74  65 20 6f 6e 65 20 6f 66  |to delete one of|
00000cb0  20 74 68 65 73 65 20 63  61 72 64 73 22 27 8a 31  | these cards"'.1|
00000cc0  38 29 22 28 59 2f 4e 29  22 0d 02 da 1a 41 24 3d  |8)"(Y/N)"....A$=|
00000cd0  be 3a e7 a7 22 59 4e 22  2c 41 24 29 3d 30 8c 8d  |.:.."YN",A$)=0..|
00000ce0  64 5a 42 0d 02 e4 0d e7  41 24 3d 22 4e 22 8c e1  |dZB.....A$="N"..|
00000cf0  0d 02 ee 37 f1 22 57 68  69 63 68 20 63 61 72 64  |...7."Which card|
00000d00  20 64 6f 20 79 6f 75 20  77 61 6e 74 20 74 6f 20  | do you want to |
00000d10  64 65 6c 65 74 65 3f 20  28 41 2d 22 3b bd 28 36  |delete? (A-";.(6|
00000d20  34 2b 43 29 22 29 22 0d  02 f8 23 41 24 3d be 3a  |4+C)")"...#A$=.:|
00000d30  e7 97 28 41 24 29 3c 36  34 84 97 28 41 24 29 3e  |..(A$)<64..(A$)>|
00000d40  36 34 2b 43 20 8c 8d 64  78 42 0d 03 02 0e 43 3d  |64+C ..dxB....C=|
00000d50  97 28 41 24 29 2d 36 34  0d 03 0c 42 e3 6c 6f 3d  |.(A$)-64...B.lo=|
00000d60  41 44 44 28 43 29 2b 38  2a 3f 26 32 30 30 32 2b  |ADD(C)+8*?&2002+|
00000d70  31 b8 3f 26 32 30 30 30  2a 32 35 36 2b 3f 26 32  |1.?&2000*256+?&2|
00000d80  30 30 31 3a 3f 28 6c 6f  2b 38 2a 3f 26 32 30 30  |001:?(lo+8*?&200|
00000d90  32 2b 31 29 3d 3f 6c 6f  3a ed 0d 03 16 1e 3f 26  |2+1)=?lo:.....?&|
00000da0  32 30 30 31 3d 28 3f 26  32 30 30 31 2d 38 2a 3f  |2001=(?&2001-8*?|
00000db0  26 32 30 30 32 2b 31 29  0d 03 20 2a e7 3f 26 32  |&2002+1).. *.?&2|
00000dc0  30 30 31 3e 32 35 35 2d  38 2a 3f 26 32 30 30 32  |001>255-8*?&2002|
00000dd0  2b 31 8c 3f 26 32 30 30  30 3d 3f 26 32 30 30 30  |+1.?&2000=?&2000|
00000de0  2d 31 0d 03 2a 05 e1 0d  03 34 3d f2 64 69 73 70  |-1..*....4=.disp|
00000df0  6c 61 79 28 41 44 44 28  30 29 29 3a f1 22 44 6f  |lay(ADD(0)):."Do|
00000e00  20 79 6f 75 20 77 61 6e  74 20 74 6f 20 64 65 6c  | you want to del|
00000e10  65 74 65 20 74 68 69 73  20 63 61 72 64 20 28 59  |ete this card (Y|
00000e20  2f 4e 29 22 0d 03 3e 1a  41 24 3d be 3a e7 a7 22  |/N)"..>.A$=.:.."|
00000e30  59 4e 22 2c 41 24 29 3d  30 8c 8d 54 7e 43 0d 03  |YN",A$)=0..T~C..|
00000e40  48 0d e7 41 24 3d 22 4e  22 8c e1 0d 03 52 0d 43  |H..A$="N"....R.C|
00000e50  3d 30 3a e5 8d 54 4c 43  0d 03 5c 2a dd f2 73 75  |=0:..TLC..\*..su|
00000e60  72 65 3a f2 63 6c 73 3a  f1 4d 24 22 3a 20 41 72  |re:.cls:.M$": Ar|
00000e70  65 20 79 6f 75 20 73 75  72 65 3f 20 28 59 2f 4e  |e you sure? (Y/N|
00000e80  29 22 0d 03 66 17 20 41  24 3d be 3a e7 41 24 3d  |)"..f. A$=.:.A$=|
00000e90  22 59 22 8c 53 3d b9 3a  e1 0d 03 70 11 e7 41 24  |"Y".S=.:...p..A$|
00000ea0  3d 22 4e 22 8c 53 3d a3  3a e1 0d 03 7a 09 e5 8d  |="N".S=.:...z...|
00000eb0  44 66 43 0d ff                                    |DfC..|
00000eb5